1. 11 Oct, 2003 1 commit
    • Matthias Clasen's avatar
      Add G_BEGIN_DECLS/G_END_DECLS to make these usable in C++. (#124351, · c44e5b00
      Matthias Clasen authored
      Sat Oct 11 23:14:36 2003  Matthias Clasen  <maclas@gmx.de>
      
      	* gtk/gtkactiongroup.h:
      	* gtk/gtkaction.h:
      	* gtk/gtkradioaction.h:
      	* gtk/gtkradiotoolbutton.h:
      	* gtk/gtkseparatortoolitem.h:
      	* gtk/gtktoggleaction.h:
      	* gtk/gtktoolitem.h:
      	* gtk/gtkuimanager.h: Add G_BEGIN_DECLS/G_END_DECLS to make
      	these usable in C++.  (#124351, Murray Cumming)
      c44e5b00
  2. 17 Sep, 2003 1 commit
    • Matthias Clasen's avatar
      Install accelerators on actions, not on proxies, support accelerator-only · 0ceb0db0
      Matthias Clasen authored
      2003-09-18  Matthias Clasen  <maclas@gmx.de>
      
      	Install accelerators on actions, not on proxies, support
      	accelerator-only actions:
      
      	* gtk/gtkmenu.c (get_accel_path): New function to get the accel path
      	and its lock status either via _gtk_widget_get_accel_path() or by
      	looking at the accel_path stored in the menu item itself and determining
      	its lock status by peeking into the contained accel label. This was
      	already (accidentally) committed a week ago.
      
      	* gtk/gtkaction.h (gtk_action_set_accel_group):
      	(gtk_action_[dis]connect_accelerator): New functions.
      
      	* gtk/gtkaction.c (struct _GtkActionPrivate): Add accel_group,
      	accel_closure and accel_count. We must have a reference to the accel_group,
      	since we need it in connect_proxy. The count is necessary to ensure
      	that the accelerator isn't removed before the last proxy requesting
      	it has been unmerged.
      	(connect_proxy): Connect the accelerator to the
      	action now, only set the accel_path on the menuitem.
      	(remove_proxy): Disconnect the accelerator from the action, not from
      	the menuitem.
      	(gtk_action_set_accel_group): Set the accel group.
      	(gtk_action_[dis]connect_accelerator): Count the number of times
      	this functions have been called and install/remove the accelerator if
      	the count leaves/reaches zero.
      
      	* gtk/gtkuimanager.h (GtkUIManagerItemType): Add
      	GTK_UI_MANAGER_ACCELERATOR.
      
      	* gtk/gtkuimanager.c (NodeType): Add NODE_TYPE_ACCELERATOR.
      	(start_element_handler): Create NODE_TYPE_ACCELERATOR nodes from
      	<accelerator> elements.
      	(gtk_ui_manager_add_ui): Create NODE_TYPE_ACCELERATOR nodes when
      	type is GTK_UI_MANAGER_ACCELERATOR.
      	(update_node): Set the accel group on actions before creating their
      	proxies. Don't set the accel group on created menus. For
      	NODE_TYPE_ACCELERATOR nodes, [dis]connect the actions' accelerator.
      	(print_node): Also emit <accelerator> elements.
      
      	* tests/testmerge.c (dump_accels): Add a "Dump Accels" button.
      0ceb0db0
  3. 15 Sep, 2003 1 commit
    • Matthias Clasen's avatar
      Apply egtk-format-protos. Doc tweaks. · 543b020f
      Matthias Clasen authored
      	* gtk/gtkaction.h: Apply egtk-format-protos.
      	* gtk/gtkuimanager.c: Doc tweaks.
      
      	* gtk/tmpl/gtkaction.sgml:
      	* gtk/tmpl/gtkradioaction.sgml:
      	* gtk/tmpl/gtkactiongroup.sgml:
      	* gtk/tmpl/gtkuimanager.sgml: Updates.
      543b020f
  4. 24 Aug, 2003 1 commit
    • Matthias Clasen's avatar
      A model-view separation for menus and toolbars, using the EggMenu code by · e7e39565
      Matthias Clasen authored
      2003-08-24  Matthias Clasen  <maclas@gmx.de>
      
      	* gtk/gtkaction.[ch]:
      	* gtk/gtktoggleaction.[ch]:
      	* gtk/gtktoggleactionprivate.h:
      	* gtk/gtkradioaction.[ch]:
      	* gtk/gtkactiongroup.[ch]:
      	* gtk/gtkmenumerge.[ch]: A model-view separation for menus and
      	toolbars, using the EggMenu code by James Henstridge.
      
      	* gtk/gtk.h: Include new headers.
      	* gtk/Makefile.am: Add new files.
      
      	* tests/testactions.c: Test for actions.
      	* tests/testmerge.c: Test for menu merging.
      	* tests/merge-[123].ui: Test data for testmerge.
      	* tests/Makefile.am: Add testactions and testmerge.
      
      	* demos/gtk-demo/appwindow.c: Use GtkMenuMerge to construct the
      	menubar and toolbar.
      e7e39565