With style BOTH_HORIZ the label would not be selected (if not marked
"important") and when there's no icon, it would result in an empty button.
Signed-off-by: Olivier Brunel <jjk@jjacky.com>
https://bugzilla.gnome.org/show_bug.cgi?id=710134
We've recently a number of classes wholly. For these cases,
move the headers and sources to gtk/deprecated/ and adjust
Makefiles and includes accordingly.
Affected classes:
GtkAction
GtkActionGroup
GtkActivatable
GtkIconFactory
GtkImageMenuItem
GtkRadioAction
GtkRecentAction
GtkStock
GtkToggleAction
GtkUIManager
This is the interface for GtkWidgets that can be associated with an
action on a GtkAppicationWindow or associated GtkApplication.
It essentially features 'action-name' and 'action-target' properties
with some associated convenience API.
This interface is implemented by GtkButton and GtkToolButton.
https://bugzilla.gnome.org/show_bug.cgi?id=667394
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
* gtk/gtktoolshell.c: Added vfuncs to get/set ellipsize, text-orientation,
text-alignment and size-group plus getter/setters to invoke these vfuncs.
* gtk/gtktoolitem.[h|c]: Added getters and setters to get/set these from the
parent GtkToolShell. This is in the style of the existing "properties".
* gtk/gtktoolbutton.c: Updated to use the extra properties.
* docs/reference/gtk/gtk-sections.txt
* gtk/gtk.symbols: Updated to mention the new functions.
These new "properties" are used by GtkToolPalette.
* gtk/gtk.symbols:
* gtk/gtkactivatable.[hc]: Rename gtk_activatable_reset to
gtk_activatable_sync_action_properties, since the previous name
was deemed too generic. Update all implementations.
svn path=/trunk/; revision=22389
* gtk/gtkaction.c (gtk_action_[un]block_activate_from): Block
the action.
* gtk/gtkcheckmenuitem.c (gtk_check_menu_item_activatable_reset):
* gtk/gtktogglebutton. (gtk_toggle_button_activatable_reset):
* gtk/gtktoggletoolbutton.c (gtk_toggle_tool_button_activatable_reset):
Work with non-toggle actions without complaining.
* gtk/gtktoolbutton.c (gtk_tool_button_activatable_update): Updating
the icon-name should not remove the label.
* gtk/gtkimagemenuitem.c (activatable_update_icon_name): Also
update the image when the icon name is set to NULL.
svn path=/trunk/; revision=22290
Rework the way actions and proxies interact, to make the
interaction less ad hoc, more extensible, and better suited
for support in GUI builders like glade.
To be used as a proxy, a widget must now implement the
GtkActivatable interface, and GtkActivatable implementations
are responsible for syncing their appearance with the action
and for activating the action.
All the widgets that are commonly used as proxies implement
GtkActivatable now.
Patch by Tristan van Berkom.
* gtk/gtkactivatable.[hc]: The GtkActivatable interface.
* gtk/gtkbutton.c:
* gtk/gtktogglebutton.c:
* gtk/gtktoolitem.c:
* gtk/gtktoolbutton.c:
* gtk/gtktoggletoolbutton.c:
* gtk/gtkmenuitem.c:
* gtk/gtkcheckmenuitem.c:
* gtk/gtkimagemenuitem.c:
* gtk/gtkradiomenuitem.c:
* gtk/gtkrecentchooserprivate.h:
* gtk/gtkrecentchooser.c:
* gtk/gtkrecentchooserdefault.c:
* gtk/gtkrecentchoosermenu.c: Implement GtkActivatable.
* gtk/gtkaction.[hc]: Move appearance synchronization to
GtkActivatable implementations.
* gtk/gtkradioaction.c:
* gtk/gtkrecentaction.c:
* gtk/gtktoggleaction.c:
* gtk/gtkactiongroup.c: Adapt.
* gtk/gtk.h: Include gtkactivatable.h
* gtk/gtk.symbols: Add new functions
svn path=/trunk/; revision=22195
* gtk/gtktoolbutton.c: Properly create a menu proxy from a GIcon.
Patch by Christian Persch
* tests/testtoolbar.c: Add an example with a GIcon
svn path=/trunk/; revision=22084
2007-01-27 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktoolbar.c:
* gtk/gtktoolitem.c:
* gtk/gtktoolbutton.c: Rearrange things so that setting
multiple properties causes not more than a single
reconstruction of the contents.
* gtk/gtkaction.c (connect_proxy): Set all tool button
properties in one go.
svn path=/trunk/; revision=17227
2006-06-20 Matthias Clasen <mclasen@redhat.com>
Fix handling of stock items without icons in action-based
ui. (#342458, Callum McKenzie)
* gtk/gtkactiongroup.c (gtk_action_group_add_actions_full): Set
the stock id even if there is no icon for it.
* gtk/gtkaction.c (connect_proxy):
* gtk/gtktoolbutton.c (gtk_tool_button_construct_contents): Only
construct a stock icon if the stock item has an icon.
2006-06-01 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktoolbutton.c (gtk_tool_button_class_init): Add
an icon-spacing style property for the same purpose.
* gtk/gtkbutton.c (gtk_button_class_init): Add an image-spacing
style property that allows to adjust the spacing between image
and label in button. (#320431, James Moger)
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.
2005-05-18 Matthias Clasen <mclasen@redhat.com>
* gtk/gtk.symbols:
* gtk/gtktoolbutton.h:
* gtk/gtktoolbutton.c (gtk_tool_button_set_icon_name)
(gtk_tool_button_get_icon_name): Support named icons in
tool buttons by adding a icon-name property.
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.
Tue Sep 14 23:20:56 2004 Søren Sandmann <sandmann@redhat.com>
* gtk/gtkaction.c (connect_proxy): Call
gtk_tool_item_rebuild_menu().
* gtk/gtktoolitem.c (gtk_tool_item_class_init): Update
documentation for GtkToolItem::create_menu_proxy.
* gtk/gtktoolitem.c (gtk_tool_item_rebuild_menu): New
API to make the toolbar update itself when the proxy menu item
for a tool item changes.
* gtk/gtktoolbutton.c (gtk_tool_button_construct_contents): Call
gtk_tool_item_rebuild_menu here()
* gtk/gtktoolbutton.c (gtk_tool_button_construct_contents):
Remove redundant check for need_label.
Mon Aug 9 12:48:04 2004 Matthias Clasen <maclas@gmx.de>
Add hidden aliases for exported symbols which are
used internally in order to get rid of many PLT
entries. (#145519, Arjan van de Ven)
* gtk/Makefile.am: Add rules to generate gtk.def and
from gtk.symbols, and make make check check the abi
with abicheck.sh.
(gtk_private_h_sources): Add gtkinternals.h
(gtk_built_private_headers): Add gtkalias.h
(gtk_extra_sources): Add gtk.symbols
(EXTRA_DIST): Add makegtkalias.pl and abicheck.sh
* gtk/gtk.symbols: New file. Definition of the GTK+ ABI.
The file can be processed by cpp to filter out certain
subsets of symbols.
* gtk/abicheck.sh: New file. Script to check the actually
symbols exported from libgtk-x11.2.0.so against the symbols
found in gtk.symbols.
* gtk/makegtkalias.pl: New file. Perl script to generate the
header containing the alias definitions for internally used
exported symbols from a list of symbols.
* gtk/gtkinternals.h: New file. An uninstalled header listing
symbols which must be exported for some reason and do not appear
in any other header.
* gtk/*.c: Include gtkalias.h
Wed Apr 21 21:38:03 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoolbutton.c (gtk_tool_button_set_label_widget,
gtk_tool_button_set_icon_widget): Remove the old widget from the
tool button before overwriting it with the new widget.
(#140508, Todd Goyen)
2004-03-05 Federico Mena Quintero <federico@ximian.com>
Fixes#136082 and #135265, patch by Morten Welinder.
* configure.in: Use AC_SYS_LARGEFILE.
* */*.c: #include <config.h>
Sat Jan 24 23:17:27 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoolbutton.c (gtk_tool_button_construct_contents): Only
try to pack icon if there actually is one.
* gtk/gtktoolbar.c (gtk_toolbar_size_allocate): Make sure
OVERFLOWN items get an allocation even when they are
unmapped. This ensures they will slide in properly.
* gtk/gtktoolbar.c (slide_idle_handler): Make sure we return TRUE
when there are overflown items that need to slide in. Also add
comments and make formatting more readable.
Fri Jan 16 23:59:01 2004 Matthias Clasen <maclas@gmx.de>
The first part of the fix for #114351 (see also
gdk-pixbuf/ChangeLog and po/ChangeLog):
* gtk/gtkintl.h:
* gdk-pixbuf/gdk-pixbuf-i18n.h:
* gdk/gdkintl.h: Define P_() for property blurbs and nicks.
* gdk/gdkdisplaymanager.c:
* gdk-pixbuf/gdk-pixbuf.c:
* modules/input/gtkimcontextxim.c:
* gtk/*.c: Mark property blurbs and nicks with P_().
* po/Makefile.in.in: Add --keyword=P_ to the xgettext
invocation, since property blurbs and nicks are
now marked with P_().
2003-10-01 Matthias Clasen <maclas@gmx.de>
* gtk/gtkmain.c: Doc formatting tweaks.
* gtk/gtktoolitem.c (gtk_tool_item_set_is_important): Fix a typo.
* gtk/gtkcheckmenuitem.h (gtk_check_menu_item_set_draw_as_radio):
Use the same parameter names as in .c file, to pacify gtk-doc.
* gtk/gtktoggletoolbutton.[hc]:
* gtk/gtktoolbutton.[hc]:
* gtk/gtktoolitem.[hc]:
* gtk/gtktoolbar.[hc]:
* gtk/gtkcolorbutton.[hc]:
* gtk/gtkfontbutton.[hc]:
* gtk/gtkalignment.[hc]: Define GET_PRIVATE macros in the
source, not in the header.
* gtk/gtkcheckmenuitem.c (gtk_check_menu_item_[sg]et_draw_as_radio):
Document these as 2.4 API additions.
* gtk/tmpl/gtkaction.sgml: Fix cross reference to GtkMenuMerge.
* gtk/gtk-sections.txt: Additions.
* gtk/tmpl/gtkitemfactory.sgml: Add hint to use #GtkUIManager instead.
Fri Aug 29 20:32:07 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoolbar.c: Only treat buttons as homogeneous when they
are narrower than 13 time the estimated character width of the
font. (#107781, David Bordoley)
* gtk/gtktoggletoolbutton.c (gtk_toggle_tool_button_init): Check
here if the GtkToggleButton is active. This may be the case if it
is a radio button.
* gtk/gtktoolbar.c: Clarify documentation wrt. GtkSignalFunc
vs. void (*) (GtkWidget, gpointer). (#107495, Mariano
Suarez-Alvarez).
* gtk/gtkcheckmenuitem.[ch]: new "draw_as_radio"
property. (#111207, David Bordoley).
* gtk/gtktoggletoolbutton.c
(gtk_toggle_tool_button_create_menu_proxy): use new
"draw_as_radio" property on the menu item when the item is a radio
tool button
* gtk/gtktoolbutton.c (gtk_tool_button_create_menu_proxy): Fixes
to only pay attention to the "use_underline" property when the
button label comes from the "label" property.
Fri Aug 1 15:26:46 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoolbar.c, gtk/toolitem.c: add new "is_important"
property
* gtk/gtkradiotoolbutton.c
(gtk_radio_tool_button_new_from_widget): Don't take a stock id
* gtk/gtkradiotoolbutton.c
(gtk_radio_tool_button_new_with_stock_from_widget): make this
function take a stock_id.
* gtk/toolbar: documentation
Sat Jul 19 16:26:02 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoolbutton.c (gtk_tool_button_construct_contents): don't
attempt to add a NULL icon to the box.
Fri Jul 18 18:43:01 2003 Soeren Sandmann <sandmann@daimi.au.dk>
By popular request give toolbuttons a border.
* gtk/gtktoolitem.c
(gtk_tool_item_size_allocate):
(gtk_tool_item_size_request): don't request and allocate a border
around the child
* gtk/gtktoolbutton.c
(gtk_tool_button_size_allocate):
(gtk_tool_button_size_request): remove these functions
* gtk/gtktoolbar.c
(gtk_toolbar_size_request):
(gtk_toolbar_size_allocate): request and allocate a border if we
have a shadow.
Tue Jul 8 19:57:14 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtkstyle.c (gtk_default_draw_arrow): remove correction on x
when detail is "menuitem". With the new menu look is isn't needed
anymore.
* gtk/gtktoolitem.c (gtk_tool_item_toolbar_reconfigured): queue a
resize here, so that tool items will get a chance to relayout
themselves based on the toolbar configuration.
change DEFAULT_SPACE_SIZE to 4 instead of 5
* gtk/gtktoolbar.c
Get rid of "!GTK_BIN (item)->child means separator". Separators
are widgets in their own right
change DEFAULT_SPACE_SIZE to 4 instead of 5
(get_space_size): remove this function
(toolbar_item_is_homogeneous): new function
* gtk/gtkseparatortoolitem.c
(gtk_separator_tool_item_size_request): new function.
Tue Jul 8 14:10:35 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoggletoolbutton.h: use private data, add new
internal function _gtk_toggle_tool_button_get_button()
* gtk/gtktoolbutton.h: move to private data
* gtk/gtkradiotoolbutton.c, gtk/gtktoolbutton.c: updates for new
private data.
Tue Jul 8 12:50:20 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoolbutton.c (gtk_tool_button_get_icon_widget): fix a
type check, (#116947, Krasimir Angelov)
* gtk/gtktoolbar.c: Use new GtkToolItem accessors.
* gtk/gtktoolitem.[ch]: Use a private struct to hold the instance
data. Not instance private data yet, because of bug 116921.
* gtk/gtktoolitem.h: new accessors:
gtk_tool_item_get_homogeneous ()
gtk_tool_item_get_expand ()
gtk_tool_item_get_pack_end ()
gtk_tool_item_get_use_drag_window ()
Thu Jul 3 03:13:20 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtkpaned.c (gtk_paned_set_child_property): Insert cast to
fix warning. Assign something to old_value to quiet gcc
* gtk/gtkcalendar.c
(start_spinning): gtk_timeout_add->g_timeout_add
* gtk/gtkicontheme.c
(theme_lookup_icon): Make it compile (remove double semicolon)
* gtk/gtktoolbutton.c
(gtk_tool_button_class_init): Long comment about properties.
(gtk_tool_button_class_init): Improve text for "use_underline"
property
(gtk_tool_button_create_menu_proxy): Fix up to use_mnemonic based
on whether the passed-in label has use_mnemonic set
(gtk_tool_button_create_menu_proxy): Split image cloning out in
new function. Make that function also handle image with pixbuf
storage.
(gtk_tool_button_construct_contents): Use gtk_widget_destroy()
instead of gtk_container_remove().
(gtk_tool_button_construct_contents): Fix eliding bug
* gtk/gtktoolbar.c
(gtk_toolbar_finalize): New function. Unref tooltips, pointed out
by Morten Welinder
(gtk_toolbar_button_press): Make popup_context_menu signal provide
coordinates and button number
* tests/testtoolbar.c (main): Add new pixbuf toolbutton
* tests/apple-red.png: new file
Wed Jul 2 15:42:26 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtk.h: Add new toolbar headers
* tests/testtoolbar.c: new file
* tests/Makefile.am (noinst_PROGRAMS): Add testtoolbar.c
* gtk/gtkexpander.c (gtk_expander_class_init): Make it compile
Tue Jul 1 22:49:25 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoolbar.c:
(gtk_toolbar_remove_tool_item): Fix bug where list is changed
inside a for loop (pointed out by Morten Welinder).
(gtk_toolbar_focus_home_or_end): Minor formatting change
Comments from Owen:
* gtk/gtktoolbutton.c: remove copy of elide_underscores(). Use
gtk_toolbar_elide_underscores instead.
* gtk/gtktoolbar.c: rename signal from focus_ends to
focus_home_or_end.
(_gtk_toolbar_elide_underscores): export this as an internal
function.
(gtk_toolbar_move_focus): add comment explaining difference to
gtk_toolbar_focus();
(gtk_toolbar_list_children_in_focus_order): Make TAB_FORWARD and
TAB_BACKWARD focus the right widgets in RTL mode
* gtk/gtktoolbutton.c (gtk_tool_button_new): Change to take
"label" and "icon" parameters
* gtk/gtktoolbutton.[ch]: remove icon_set property.