This is because focus in treeviews can be given to cells that cannot do anything
with activation (for better keynav), so we dissociate the concept of cell
activation and focusing.
Since a cell renderer might use more space than the natural
size when recieving expand space it's impossible to know how
much space is actually used to render content.
Adding this virtual method to allow text renderers to implement
it, the base default method uses height-for-width apis and aligns
the cell assuming the renderer uses a fixed size.
This commit removes the similar code from gtkcellarea and
subclasses.
This is just a private convenience function, and exporting _-prefixed
functions doesn't work with our libtool setup. Just do the 3 line
calculation in gail.
This mostly goes to keep consistency with the changes to GtkSizeRequest
in the last patch, as GtkCellSizeRequest requires GtkCellRenderer and
GtkCellRenderer implements GtkCellSizeRequest there's no use in keeping
them separate.
This patch renames the functions:
gtk_cell_size_request_get_request_mode()
=> gtk_cell_renderer_get_request_mode()
gtk_cell_size_request_get_width()
=> gtk_cell_renderer_get_preferred_width()
gtk_cell_size_request_get_height()
=> gtk_cell_renderer_get_preferred_height()
gtk_cell_size_request_get_size()
=> gtk_cell_renderer_get_preferred_size()
gtk_cell_size_request_get_width_for_height()
=> gtk_cell_renderer_get_preferred_width_for_height()
gtk_cell_size_request_get_height_for_width()
=> gtk_cell_renderer_get_preferred_height_for_width()
... and moves the corresponding vfuncs to GtkCellRenderer.
The patch also renames the implementations of these functions in cell
renderers to include the word "preferrred".
This patch adds height-for-width geometry management
for cell renderers while still responding to the old
gtk_cell_renderer_get_size() apis with virtual return values
(obtained by soliciting the new height-for-width cell renderer
apis).
2008-06-24 Michael Natterer <mitch@imendio.com>
* gtk/gtkassistant.h
* gtk/gtkcellrenderer.h
* gtk/gtkfilechooserentry.h
* gtk/gtkprivate.h
* gtk/gtktooltip.h
* gtk/gtktreeview.h
* gtk/gtkwindow.h: no need to include gtkwidget.h or gtkobject.h
if there is any other widget included, they all have to include
their respective parent classes (the is-a relation works for
includes too).
svn path=/trunk/; revision=20679
2008-05-28 Michael Natterer <mitch@imendio.com>
* gtk/gtk.h: define __GTK_H_INSIDE__ around including all other
headers.
* gtk/gtktypebuiltins.h.template
* gtk/gtkversion.h.in
* gtk/gtk*.h: add single-include guards that #error out if
GTK_DISABLE_SINGLE_INCLUDES is defined and any of these files is
included individually.
* gtk/gtkprintbackend.h
* gtk/gtkprinter-private.h
* gtk/gtktextlayout.h
* gtk/gtktexttagprivate.h
* gtk/gtktexttypes.h
* gtk/gtktreedatalist.h: include <gtk/gtk.h> instead of individual
headers in these private or semi-private headers.
* gtk/gtkimmodule.h: also here because it's not in gtk.h.
* gtk/gtkpagesetupunixdialog.h
* gtk/gtkprinter.h
* gtk/gtkprintjob.h
* gtk/gtkprintunixdialog.h: likewise in the gtkunixprint headers.
* gtk/gtkclist.h
* gtk/gtkcombo.h
* gtk/gtkctree.h
* gtk/gtkfilesel.h
* gtk/gtkitemfactory.h
* gtk/gtklist.h
* gtk/gtklistitem.h
* gtk/gtkoldeditable.h
* gtk/gtkoptionmenu.h
* gtk/gtkpixmap.h
* gtk/gtkpreview.h
* gtk/gtksignal.h
* gtk/gtktipsquery.h: whenever possible, include only <gtk/gtk.h>
instead of individual headers in these deprecated headers. They
don't get included at all when GTK_DISABLE_DEPRECATED is defined,
so if an app needs them anyway, it must undef GTK_DISABLE_DEPRECATED
and include them individually, which should continue to work.
* gtk/gtkclist.c: include "gtkctree.h" because of the change
above.
svn path=/trunk/; revision=20221
2006-12-13 Benjamin Berg <benjamin@sipsolutions.net>
* engines/clearlooks/src/clearlooks_rc_style.c:
(clearlooks_rc_style_init), (clearlooks_gtk2_rc_parse_dummy),
(clearlooks_rc_style_parse), (clearlooks_rc_style_merge):
* engines/clearlooks/src/clearlooks_rc_style.h:
* engines/clearlooks/src/clearlooks_style.c:
(clearlooks_style_draw_box), (clearlooks_style_init_from_rc),
(clearlooks_style_copy):
* engines/clearlooks/src/clearlooks_style.h:
* engines/clearlooks/src/clearlooks_types.h:
- Remove unused code/options from the code. Warn about their usage
while parsing.
* themes/Clearlooks/gtk-2.0/gtkrc:
- Remove options that don't have any effect.
2004-12-09 Matthias Clasen <mclasen@redhat.com>
Fix#145463, reported by Michael Natterer.
* gtk/gtkcellrenderer.h (struct _GtkCellRenderer): Add an
editing flag to keep track of when editing is done.
* gtk/gtkcellrenderer.h:
* gtk/gtkcellrenderer.c (gtk_cell_renderer_stop_editing): New
function to replace gtk_cell_renderer_editing_canceled().
Deprecate gtk_cell_renderer_editing_canceled().
* gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_editing_done):
* gtk/gtkcellrenderercombo.c (gtk_cell_renderer_combo_editing_done):
* gtk/gtktreeview.c (gtk_tree_view_stop_editing):
Use gtk_cell_renderer_stop_editing().
2004-07-20 Matthias Clasen <mclasen@redhat.com>
Allow custom initialization of cell editables. (#147221)
* gtk/gtkcellrenderer.h (struct _GtkCellRendererClass):
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init): Add a
::editing-started signal as a hook for setting up the
GtkCellEditable.
(gtk_cell_renderer_start_editing): ...and emit it here.
2003-09-30 Murray Cumming <murrayc@usa.net>
* gtk/gtkcellrenderer.h: The render vfunc takes a GdkDrawable*
instead of a GdkWindow*, because that what it is given. The
documentation was already correct. This should cause no API/ABI
breakage with C compilers.
* gtk/gtkcellrenderertext.c, gtkcellrendererpixbuf.c,
gtkcellrenderertogger.c: Updated the declarations of the render vfunc
implementation accordingly.
Tue Nov 26 22:26:04 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtk{tree,list}store.c (gtk_{tree,list}_store_real_set_value):
add a gtk_list_store_sort_iter_changed line for some special
case ... (#96647 (issue 1), testcases from Soeren Sandmann and
Daniel Elstner).
Tue Nov 26 22:18:06 2002 Kristian Rietveld <kris@gtk.org>
Inconsistent state for toggle renderers, requested by Paolo Bacchilega
in #88130.
* gtk/gtktreeprivate.h: move GtkCellRendererInfo here.
* gtk/gtkcellrenderer.c: moved GtkCellRendererInfo away,
fix some indentation issues.
* gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_class_init),
(gtk_cell_renderer_toggle_set_property),
(gtk_cell_renderer_toggle_get_property),
(gtk_cell_renderer_toggle_render): add an inconsistent property.
* gtk/gtkstyle.c (gtk_default_draw_check),
(gtk_default_draw_option): support drawing inconsistent
options/checks for cells.
Tue Nov 26 22:14:14 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_editing_done),
(gtk_cell_renderer_text_start_editing): add a focus_out_id to avoid
calling _editing_done twice (which has nasty side-effects). (#96647,
(issue 2) testcase from Soeren Sandmann).
Tue Nov 26 22:12:21 2002 Kristian Rietveld <kris@gtk.org>
#82739, patch from Padraig O'Briain.
* gtk/gtktreeviewcolumn.[ch]: add
gtk_tree_view_column_cell_get_position()
Tue Nov 26 22:06:29 2002 Kristian Rietveld <kris@gtk.org>
Yes, this chunk breaks ABI compatibility. Owen knows about it and
agreed with it. It doesn't break ABI that bad though, things will
still work. Please keep it silent :P.
This patch fixes some keynav issues reported by Narayana Pattipati
in #81633. (Also mentioned in #92037 (Sun tracking bug)).
* gtk/gtkmarshalers.list: add two silly marshalers
* gtk/gtktreeview.[ch] (gtk_tree_view_real_select_all),
(gtk_tree_view_real_unselect_all),
(gtk_tree_view_real_select_cursor_row),
(gtk_tree_view_real_toggle_cursor_row),
(gtk_tree_view_real_expand_collapse_cursor_row),
(gtk_tree_view_real_start_interactive_search): change the return
type from void to gboolean, update prototypes, functions, signals and
entries in GtkTreeViewClass,
(gtk_tree_view_class_init): add select_cursor_row binding for
enter key,
(gtk_tree_view_key_press): only navigate the header button if the
header is also visible ...
Tue Nov 26 22:05:48 2002 Kristian Rietveld <kris@gtk.org>
API bit of #75745, reported by Richard Hult.
* gtk/gtkcellrenderer.h (GtkCellRendererState): add
GTK_CELL_RENDERER_FOCUSED, rest of this bug fix will follow later.
Fri Apr 26 21:46:42 2002 Kristian Rietveld <kris@gtk.org>
This commit fixes binary compatibility, which I broke with my
recent cell renderer commits :/.
* gtk/gtkcellrenderer.h: move cell_background out of _GtkCellRenderer
* gtk/gtkcellrenderer.c: create GtkCellRendererInfo, with the
cell_background field and use this as object data. This way we keep
the field private and dont break ABI.
* gtk/gtkcellrendererpixbuf.h: remove stock_id, stock_size and
stock_detail from _GtkCellRendererPixbuf
* gtk/gtkcellrendererpixbuf.c: create a GtkCellRendererPixbufInfo
with above mentioned fields. And update everything.
Tue Apr 23 18:35:34 2002 Kristian Rietveld <kris@gtk.org>
This commit adds a cell_background property for cell renderers. With
this property you can make your TreeView look incredibly ugly.
* gtk/gtkcellrenderer.c: add cell_background, cell_background_gdk and
cell_background_set properties,
(set_cell_bg_color): new function,
(gtk_cell_renderer_get_property), (gtk_cell_renderer_set_property):
support for new properties,
(gtk_cell_renderer_render): render a background when set.
* gtk/gtkcellrenderer.h: add cell_background_set and cell_background
fields.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
when rendering, pass in just the background_area of the cell and not
the background_area of the entire column.
Sat Feb 23 11:54:12 2002 Owen Taylor <otaylor@redhat.com>
* gtk/*.h gdk/*.h: Massive padding addition to class structures.
* gtk/gtktextmark.h: Fix a FIXME about G_CONST_RETURN.
Tue Sep 18 13:51:35 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkcellrenderer.h (enum): Get rid of broken "can_edit" and
"can_activate" properties in favor of
GTK_CELL_RENDERER_MODE_INERT, GTK_CELL_RENDERER_MODE_ACTIVATABLE,
and GTK_CELL_RENDERER_MODE_EDITABLE
Mon Sep 17 17:39:52 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkcelleditable.[ch]: Add editable interface. This should
be the last big GtkTreeView API change.
* gtk/gtkcellrenderer.[ch]: Get rid of the "event" vfunc, and
replace with "activate" and "start_editing". Also, added a
"can_activate" and "can_edit" property.
* gtk/gtktreeviewcolumn.c: modify to use above.
Sat Aug 18 04:34:31 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init): 2 new
signals; is_expander/is_expanded.
* gtk/gtlcellrendererpixbuf.c: Allow other expanded and closed
pixbufs.
* gtk/gtktreeview.c: set above properties.
Fri Jun 29 22:13:28 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreestore.c (gtk_tree_store_new): changed new_with_types
to just plain new, fixing the number of columns, and column types
at creation time.
* gtk/gtkliststore.c (gtk_list_store_new): ditto.
* gtk/gtkcellrenderertext.c
(gtk_cell_renderer_text_set_fixed_height_from_font): FIX the
height to a specific font.
* gtk/gtktreeview.c (gtk_tree_view_is_expander_column): fix brokenness.
* tests/*c: change to work with new store models.
Tue Mar 27 22:36:07 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.h gtk/gtkrange.h: Apply patch from
Nils Barth fixing event return values. (#51041)
* gtk/gtkwidget.c: Fix some return values for default
functions.
* gtk/gtk[vh]scrollbar.c gtk/gtk[vh]range.c: Fix
return values for trough_keys functions.
* gtk/gtkwidget.h (struct _GtkWidgetClass): Fix return
value for add_accelerator (shoudl have been a void
return.)
* gtk/gtkcellrenderer.[ch]: gtkcellrenderertoggle.h:
Fix return type of EVENT.
* gtk/gtkmarshal.list gtk/gtktexttag.c: Make EVENT
signal return a boolean.
Thu Mar 15 18:22:44 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkcellrenderer.h: Changed prototype to allow for getting
the location of the cell relative to its area.
* gtk/gtkcell*: modified for above change
* gtk/gtktreeview.c: modified for above change.
Wed Mar 14 13:58:32 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_set_model): Ref the model.
(gtk_tree_view_finalize): actually unref the model. Thanks to
Jamie Strachan <frostfreek@yahoo.com> for noticing this error.