The keysyms create a lot of potential namespace conflicts for
C, and are especially problematic for introspection, where we take
constants into the namespace, so GDK_Display conflicts with GdkDisplay.
For C application compatiblity, add gdkkeysyms-compat.h which uses
the old names.
Just one user in GTK+ continues to use gdkkeysyms-compat.h, which is
the gtkimcontextsimple.c, since porting that requires porting more
custom Perl code.
Since we have a new mechanism for requesting sizes: GtkSizeRequestIface;
it makes no sense to maintain this cache on the GtkWidget structure...
removing the requisition cache however does not break the old "size-request"
signal which is there for backwards compatability reasons.
In any case widget->requisition should not have been accessed,
gtk_widget_get_child_requisition() would have been the correct way
to consult the cache.
This commit also deprecates the newly added gtk_widget_get_requisition()
API and makes it fallback on gtk_size_request_get_size().
Rename the ::orientation property of GtkIconView to item-orientation,
which is both clearer and avoids the conflict with the orientation
property of GtkOrientable implementations.
Includes fixing all callers to use the cairo region API instead. This is
usually just replacing the function names, the only difference is
gdk_region_get_rectangles() being replaced by
cairo_region_num_rectangles() and cairo_region_get_rectangle() which
required a bit more work.
https://bugzilla.gnome.org/show_bug.cgi?id=613284
The old version wasn't introspectable as it didn't have a length
return parameter. Also, delete gtk_tree_path_get_indices_with_depth,
since it's no longer needed.
Use ::keynav-failed for arrow navigation in icon views, so that
it is possible to override error handling. Also add API to get the
row/col of an item. With this, it is possible to make arrow keynav
span adjacent icon views, which is desired in the new control-center
shell. testiconview-keynav demonstrates this.
In the early 2.14.x releases, GtkAdjustment was changed to enforce
that values are restricted to the range [lower, upper - page_size].
This has always been the documented behaviour, and the recommended
practice is to set page_size to 0 when using adjustments for simple
scalar values, like in a slider or spin button.
Due to the large number of applications that are affected by this
change, the behaviour has been reverted to the old behaviour in
2.14.3, with an explicit warning that this change will be
reintroduced in 2.90.
This reverts commit e6373738fc.
https://bugzilla.gnome.org/show_bug.cgi?id=619474
This commit was created using a script that searched for all docstrings
containing a parameter and the string 'or %NULL'.
Gdk backends and demos excluded as they are not part of a public API
https://bugzilla.gnome.org/show_bug.cgi?id=610474
Deprecate widget flag macros GTK_WIDGET_STATE, GTK_WIDGET_SAVED_STATE,
GTK_WIDGET_FLAGS, GTK_WIDGET_TOPLEVEL, GTK_WIDGET_NO_WINDOW and
GTK_WIDGET_COMPOSITE_CHILD.
Also deprecate the type macros GTK_WIDGET_TYPE, GTK_OBJECT_TYPE_NAME and
GTK_OBJECT_TYPE which have become redundant.
Instances of GTK_WIDGET_TOPLEVEL are replaced with gtk_widget_is_toplevel,
GTK_WIDGET_TYPE is replaced with G_OBJECT_TYPE, GTK_WIDGET_COMPOSITE_CHILD
is replaced with use of the "composite-child" property and uses of
GTK_WIDGET_NO_WINDOW are adjusted to use gtk_widget_get_has_window.
Uses of GTK_WIDGET_SAVED_STATE and GTK_WIDGET_FLAGS inside GtkWidget are
changed to direct flag usage.
Documentation is updated to refer to gtk_widget_set_has_window and
gtk_widget_get_has_window.
Gail and tests are updated as well.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=69872
The Gtk-custom.c file in gir-repository contained a number of
introspection annotations. Merge those into the GTK source files.
Some documentation was moved from the tmpl/ files to accomodate
the addition of annotations.
Either g_type_register_static_simple (used by G_DEFINE_TYPE_EXTENDED)
and G_IMPLEMENT_INTERFACE use automatic variables for GTypeInfo and
GInterfaceInfo structs, while tutorials and source code often use
static variables. This commit consistently adopts the former method.
https://bugzilla.gnome.org/show_bug.cgi?id=600158
Run gtk_icon_view_layout() if necessary before attempting to paint the
icon view items during an expose event. This ensures all the items have
valid sizes, as some themes don't take kindly to negative dimensions.
* gtk/gtkiconview.c
(gtk_icon_view_item_accessible_image_set_image_description): Copy
the right string. Pointed out by Tommi Rantala
svn path=/trunk/; revision=22417
2008-12-23 Li Yuan <li.yuan@sun.com>
* gtk/gtkiconview.c: (gtk_icon_view_accessible_model_row_changed):
Bug #549251. No need to set name if there is no a11y item object.
svn path=/trunk/; revision=21926
2008-12-21 Yair Hershkovitz <yairhr@gmail.com>
Bug 565203: RTL locales: icons are misplaced when horizontal
gtkiconview is contained in a gtkscrolledwindow.
* gtk/gtkiconview.c (gtk_icon_view_layout_single_row):
Fix horizontal icon positions when in RTL locale.
svn path=/trunk/; revision=21918
* gtk/gtkiconview.c (gtk_icon_view_accessible_model_row_changed):
Handle separate append/set for rows. Patch by Li Yuan
svn path=/trunk/; revision=21884
2008-12-11 Sven Herzberg <sven@imendio.com>
Document the "set-scroll-adjustments" signal
Reviewed by Kristian Rietveld.
* gtk/gtkiconview.c,
* gtk/gtklayout.c,
* gtk/gtktextview.c,
* gtk/gtktreeview.c,
* gtk/gtkviewport.c: added proper documentation for the signal
svn path=/trunk/; revision=21871
2008-09-27 Denis Washington <denisw@svn.gnome.org>
* gtk/gtkiconview.c: only draw keyboard focus when keyboard navigation
is used, like GtkTreeView. (Bug #553575)
svn path=/trunk/; revision=21534
2008-09-24 Denis Washington <denisw@svn.gnome.org>
* gtk/gtkiconview.c: draw focus as a rectangle around the
complete item, not just the text. (Bug #38254)
svn path=/trunk/; revision=21506
2008-09-03 Matthias Clasen <mclasen@redhat.com>
Bug 550528 - IconView DND interface does not work if only used as
source
* gtk/gtkiconview.c: Make source-only DND work.
Found by Alex Simon
svn path=/trunk/; revision=21270
2008-08-12 Michael Natterer <mitch@imendio.com>
* gtk/*.c: consistently chain up using
GTK_FOO_CLASS(parent_class)->bar(instance) instead of
(*GTK_FOO_CLASS(parent_class))->bar(instance).
svn path=/trunk/; revision=21085
2008-08-06 Michael Natterer <mitch@imendio.com>
* gtk/gtkcombobox.c
* gtk/gtkiconview.c
* gtk/gtkrange.c
* gtk/gtkscrolledwindow.c
* gtk/gtktreeview.c: remove CLAMPing from values passed to
gtk_adjustment_set_value() since it does it right now.
svn path=/trunk/; revision=21021
2008-02-12 Matthias Clasen <mclasen@redhat.com>
* gtk/*.c: Unify the handling of various "Enter" keysyms
all over the place. (#515047, Christian Persch)
svn path=/trunk/; revision=19528
2008-02-11 Kristian Rietveld <kris@imendio.com>
* gtk/gtkcellview.c (gtk_cell_view_cell_layout_reorder)
* gtk/gtkiconview.c (gtk_icon_view_cell_layout_reorder): plug leak
wrt. link deletion from list; contination of fix for #503569.
svn path=/trunk/; revision=19513
2007-09-09 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (gtk_icon_view_item_hit_test): Add a
bounding box test that will avoid getting the individual cell
boxes if they haven't been calculated yet. (#404541)
svn path=/trunk/; revision=18775
2007-07-11 Matthias Clasen <mclasen@redhat.com>
* gtk/gtk.symbols:
* gtk/gtkiconview.[hc]
(gtk_icon_view_convert_widget_to_bin_window_coords): New
function to convert widget coords to what is expected by
the at_pos functions. (#455984)
svn path=/trunk/; revision=18445
2007-06-12 Michael Natterer <mitch@imendio.com>
* gtk/gtkiconview.c (update_text_cell): use PANGO_BREAK_WORD_CHAR
instead of PANGO_BREAK_WORD so the text cell doesn't overflow the
wrap-width if there is no whitespace found to break at.
Fixes bug #446107.
svn path=/trunk/; revision=18112
2007-06-12 Kristian Rietveld <kris@imendio.com>
Fix#410815, reported by Lucas Rocha.
* gtk/gtkiconview.c (gtk_icon_view_layout): determine a suitable
wrap-width with the first icon, if it exists,
(adjust_wrap_width): try to use icon_view->priv->item_width
if available,
(gtk_icon_view_set_cell_data): don't call adjust_wrap_width here,
which caused changes in wrap-width during the layouting process and
resulted in layouting artefacts,
(update_text_cell): don't set the wrap-width property, this should
be handled by adjust_wrap_width.
svn path=/trunk/; revision=18111
2007-05-30 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (gtk_icon_view_layout): Queue a resize
if the size changed. (#418047, Alex Graveley)
svn path=/trunk/; revision=17985
2006-12-29 Matthias Clasen <mclasen@redhat.com>
* gtk/gtk.symbols:
* gtk/gtkcelllayout.[hc] (gtk_cell_layout_get_cells):
New function to get the cell renderers of a cell layout.
* gtk/gtktreeviewcolumn.c:
* gtk/gtkcellview.c:
* gtk/gtkiconview.c: Implement get_cells.
2006-12-28 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c: Use word wrapping by default, and
center multiline labels. (#318763, Ross Burton)
* gtk/gtkcellrenderertext.c (get_layout): Remove a special
case for single-line layouts.
2006-11-16 Michael Natterer <mitch@imendio.com>
Add new infrastructure for notifications of failed keyboard
navigation and navigation with restricted set of keys.
The patch handles configurable beeping, navigating the GUI with
cursor keys only (as in phone environments), and configurable
wrap-around. Fixes bugs #322640, #70986, #318827, #334726, #334742
and #309291.
* gtk/gtksettings.c: added properties gtk-keynav-cursor-only,
gtk-keynav-wrap-around and gtk-error-bell.
* gtk/gtkwidget.[ch]: added new signal "keynav-failed" and public
API to emit it. Added New function gtk_widget_error_bell() which
looks at the gtk-error-bell setting and calls gdk_window_beep()
accordingly.
* gtk/gtk.symbols: add the new widget symbols.
* gtk/gtkcellrendereraccel.c
* gtk/gtkimcontextsimple.c
* gtk/gtkmenu.c
* gtk/gtknotebook.c: use gtk_widget_error_bell() or look at the
gtk-error-bell setting instead of calling gdk_display_beep()
unconditionally.
* gtk/gtkcombobox.c
* gtk/gtkentry.c
* gtk/gtkiconview.c
* gtk/gtklabel.c
* gtk/gtkmenushell.c
* gtk/gtkspinbutton.c
* gtk/gtktextview.c
* gtk/gtktreeview.c: call gtk_widget_error_bell() on failed keynav.
* gtk/gtkentry.c
* gtk/gtklabel.c
* gtk/gtkrange.c
* gtk/gtktextview.c: consult gtk_widget_keynav_failed() on failed
cursor navigation and leave the widget if it returns FALSE.
* gtk/gtkmenushell.c
* gtk/gtknotebook.c: only wrap around if gtk-keynav-wrap-around
is TRUE.
* gtk/gtkradiobutton.c: ask gtk_widget_keynav_failed() to decide
whether to to wrap-around, and don't select active items on cursor
navigation if gtk-keynav-cursor-only is TRUE. Should look at
gtk-keynav-wrap-around too, will look into that.
Mon May 15 15:12:05 2006 Søren Sandmann <sandmann@redhat.com>
* gtk/gtklayout.c (gtk_layout_realize),
* gtk/gtkiconview.c (gtk_icon_view_realize),
* gtk/gtktreeview.c (gtk_tree_view_realize): Set the background of
the clip windows to NULL, since they are generally invisible and
don't have EXPOSURE set, which means they temp-unvlicker code
doesn't apply to them.
* gdk/x11/gdkgeometry-x11.c (_gdk_window_move_resize_child): Unset
the background of the parent window during resizing. Invalidate
the uncoered area of the parent window. Bug 341332.
2006-03-19 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (gtk_icon_view_set_cursor): Document that
@cell must be one of the renderers of the icon view, warn if
it is not, and ignore @start_editing if @cell is not set.
(#335001, Emmanuel Rodriguez)
2006-03-05 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (adjust_wrap_width): Apply some
arbitrary lower limit for the guessed wrap width. (#332466,
Donald Straney)
2006-03-02 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (gtk_icon_view_layout)
(gtk_icon_view_row_inserted, gtk_icon_view_scroll_to_path):
Make scroll_to_path work for newly inserted items, by delaying
the scroll until layout is done. (#332923, Cory Dodt)
2005-12-21 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (adjust_wrap_width): Adjust the
wrap-width also if an explicit item width is set.
(#322475, Alex Graveley)
2005-12-20 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (gtk_icon_view_button_press): Reset
pressed_button to -1 after handling a double click, so that
motion events occurring between here and the release event
don't trigger DND. (#324588, Dave Andreoli)
2005-11-28 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (update_text_cell, update_pixbuf_cell): Correctly
handle the cell list and indices into it. (#321856)
2005-09-19 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c: Use g_list_nth_data() instead of g_list_nth()->data
in multiple places to avoid segfaults if the index is out of range.
(#316422, Guillaume Cottenceau)
2005-09-01 Matthias Clasen <mclasen@redhat.com>
* gdk/*.c: Intern some more strings.
* gtk/gtkintl.h:
* gtk/*.c: Define an I_() macro and use it instead of the
bulky g_intern_static_string().
2005-08-31 Matthias Clasen <mclasen@redhat.com>
* gdk/Makefile.am:
* gtk/Makefile.am: Intern type names in code generated by
glib-mkenums, too.
* gtk/*.c:
* gdk/x11/*.c:
* gdk/*.c: Intern type names before registering the type to avoid
unnecessary copies.
Sat Aug 20 16:12:14 2005 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_set_model): clear
scroll_to_path if the model changes.
* gtk/gtkiconview.c: (gtk_icon_view_destroy),
(gtk_icon_view_size_allocate), (gtk_icon_view_set_cursor),
(gtk_icon_view_scroll_to_path): Handle scrolling to a path before
we're realized, #312798
(gtk_icon_view_set_model): clear scroll_to_path if the model
changes.
2005-06-28 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (gtk_icon_view_calculate_item_size2):
Make sure that cell boxes are always completely inside
the item area.
2005-06-11 Matthias Clasen <mclasen@redhat.com>
* gtk/gtk.symbols:
* gtk/gtkiconview.h:
* gtk/gtkiconview.c (gtk_icon_view_get_visible_range):
Add a function to determine what parts of the model are
visible. (#306726, Jonathan Blandford)
2005-06-09 Matthias Clasen <mclasen@redhat.com>
* gtk/gtk.symbols:
* gtk/gtkiconview.h:
* gtk/gtkiconview.c (gtk_icon_view_scroll_to_path): New function
to scroll to a path. (#306838, Jonathan Blandford)
2005-05-11 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcolorbutton.c: Use a GtkAlignment rather than a GtkDrawingArea
to draw the swatch in to avoid having an extraneous window.
* gtk/gtkcolorsel.c (color_sample_draw_sample): Actually se tthe
color when !has_opacity.
2005-05-10 Owen Taylor <otaylor@redhat.com>
* gdk/gdkcairo.[ch] gdk/gdkcolor.[ch] gdk/Makefile.am: Add source
files for Cairo convenience functionality.
* gdk/gdkcairo.h (gdk_cairo_rectangle, gdk_cairo_region): Add a
convenience functions to add GdkRectangle, GdkRegion to a cairo path.
* gdk/gdkwindow.c gdk/gdkgc.c gtk/gtkcolorsel.c gtk/gtkiconview.c
gtk/gtkstyle.c: Use gdk_cairo_rectangle/region().
* gdk/gdkcairo.[ch] gdk/gdkdrawable.h gdk/gdkdraw.c: Rename
gdk_drawable_create_cairo_context() to gdk_cairo_create().
* gdk/gdkcairo.c gdk/gdkpixbuf.h gdk/gdkpixbuf-render.c:
Rename gdk_pixbuf_set_as_cairo_source() to
gdk_cairo_set_source_pixbuf().
* gdk/gdkdraw.c gdk/gdkpango.c gtk/gtkcolorsel.c gtk/gtkhruler.c
gtk/gtkhsv.c gtk/gtkiconview.c gtk/gtkstyle.c gtk/gtkvruler.c:
Adjust for renames.
* gdk/gdk.symbols: Update.
* gtk/gtkwidget.c (gtk_widget_queue_shallow_draw): Fix
coordinate system problem that was causing the wrong portions
to be invalidated.
* gtk/gtkcellrenderer.c (gtk_cell_renderer_render)
gtk/gtkcellrendererpixbuf.c (gtk_cell_renderer_pixbuf_render)
gtk/gtkcellrendererprogress.c (gtk_cell_renderer_progress_render)
gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_render)
gtk/gtkcellview.c (gtk_cell_view_expose)
gtk/gtkdnd.c (gtk_drag_highlight_expose)
gtk/gtkentry.c (gtk_entry_draw_text)
gtk/gtktextview.c (text_window_invalidate_rect): Some cairoization.
* gtk/gtkcalendar.[ch]: Beat into something roughly resembling
GTK+ style ... use instance-private data and standard names for
private structure, etc. Move function docs inline.
* gtk/gtkcalendar.[ch]: Switch to drawing everything in
expose. Switch drawing to Cairo.
* gtk/gtkcalendar.c (gtk_calendar_freeze): Deprecate
gtk_calendar_freeze/thaw
2005-05-06 Matthias Clasen <mclasen@redhat.com>
* tests/testiconview.c: Test DND.
* gtk/gtk.symbols:
* gtk/gtkiconview.[hc]: Add DND support similar to the DND
support in the tree view. (#150270)
2005-05-02 Matthias Clasen <mclasen@redhat.com>
* tests/testiconview.c: Test cell renderers.
* gtk/gtk.symbols: Add new functions.
* gtk/gtkiconview.[hc]: Implement GtkCellLayout and use
cell renderers for drawing and editing. (#148144, #160242)
2005-04-29 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (gtk_icon_view_map): Get rid of this
function, instead show the bin_window when it is created.
2005-04-29 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (gtk_icon_view_move_cursor_start_end): Use
the internal unselect_all function, since we need the unselection
to happen even in browse mode. (#300995, Mathias Hasselmann)
2005-04-29 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (gtk_icon_view_scroll_to_item): Also
scroll horizontally when necessary, and keep the northwest
corner of the item visible. (#300913, Mathias Hasselmann)
2005-04-29 Matthias Clasen <mclasen@redhat.com>
* tests/testiconview.c: Add some more tests.
* gtk/gtkiconview.c (gtk_icon_view_select_path): Don't crash
if the path does not point to a row in the model. (#300909,
Mathias Hasselmann)
(gtk_icon_view_rows_reordered): Re-layout here. (#301009,
Mathias Hasselmann)
2005-04-29 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (gtk_icon_view_select_path): Don't crash
if the path does not point to a row in the model. (#300909,
Mathias Hasselmann)
2005-04-18 Owen Taylor <otaylor@redhat.com>
* gtk/gtkstyle.c gtk/gtkcolorsel.c gtk/gtkhsv.c gtk/gtkiconview.c
* gdk/gdkcolor.c gdk/gdkwindow.c gdk/gdkpixbuf-render.c
gdk/gdkpango.c tests/testcairo.c: Update to new Cairo API for
setting color and opacity. (#301066, Vincent Noel)
2005-03-21 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkprivate.h: Define macros GTK_PARAM_READABLE,
GTK_PARAM_WRITABLE, GTK_PARAM_READWRITE which are like
their G_ counterparts, but also mark the name, nick
and blurb as static.
* gtk/*.c: Mark param spec strings as static, using
the new macros.
2005-03-20 Matthias Clasen <mclasen@redhat.com>
Make PLT-reduction work with gcc4, and don't include
everything in gdkalias.h:
* gtk/grk.symbols: Group symbols by header and source file.
* gtk/makegtkalias.pl: Protect definitions by the same
preprocessor symbols used to guard the headers. Move
the alias declarations to a separate file which is
produced when calling makegtkalias.pl -def
* gdk/Makefile.am (gtkaliasdef.c): Add a rule to generate
this file.
* gtk/*.c: Include gtkalias.h after the other headers,
include gtkaliasdef.c at the bottom.
* gtk/*.h: Small cleanups.