2003-09-30 Matthias Clasen <maclas@gmx.de>
* tests/merge-*.ui:
* tests/testmerge.c: Test handling of empty menus.
* gtk/gtkuimanager.c (_gtk_menu_is_empty): New function to determine
whether a menu is empty. Used in gtkaction.c.
(update_smart_separators): Also update the visibility of empty menus.
(update_node): When creating a new menu proxy, insert an "Empty" menu
item which only gets shown if the menu is empty.
* gtk/gtkaction.c (gtk_action_class_init): Document the meaning of
"is_important" for menu proxies.
(_gtk_action_sync_menu_visible): New function to sync the visibility
of menu proxies. Used in gtkuimanager.c.
(gtk_action_sync_visible): New function to sync the visibility of
proxies.
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.
2003-09-21 Matthias Clasen <maclas@gmx.de>
Changes to make cross-process merging feasible:
* gtk/gtkuimanager.[hc]: Add a readonly "ui" property which holds the
merged UI definition. Remove the "changed" signal, since its role
is now filled by "notify::ui". Instead add a "actions-changed" signal
which gets emitted when the set of actions changes.
* gtk/gtktoggleactionprivate.h:
* gtk/gtktoggleaction.[hc] (gtk_toggle_action_[sg]et_draw_as_radio):
Add a "draw_as_radio" property to toggle actions so that they can be
used as proxies for radio actions much like the "draw_as_radio"
property on check menu items enables them to operate as proxies for
radio actions.
Prevent the "show_all" trap for action-based menus (see
http://mail.gnome.org/archives/gtk-devel-list/2003-September/
msg00260.html):
* gtk/gtkmenu.c (gtk_menu_{hide,show}_all): Remove g_return_if_fail()
calls from static functions.
* gtk/gtkuimanager.c (update_node):
* gtk/gtkaction.c (connect_proxy): Set "no_show_all" on constructed
widgets whose visibility is externally controlled.
* gtk/gtkwidget.[hc] (gtk_widget_[gs]et_no_show_all): Add a boolean
"no_show_all" property with setter and getter. When TRUE, it keeps
gtk_widget_{hide,show}_all() from modifying the visibility of the
widget and its children.
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.
* gtk/gtkuimanager.c (update_smart_separators): New function which
implements "smart" separators by iterating once over the entries of a
menu, hiding and showing separators as necessary.
(update_node): Mark separators used as fences of placeholders as
hidden. Explicitly added separators are marked as smart. Call
update_smart_separators after updating a menu or toolbar node.
Connect update_smart_separators to "notify::visible" signal on menu
and tool items.
* tests/merge-[12].ui: Test smart separators.
* gtk/tmpl/gtkuimanager.sgml: Add a paragraph about smart separators.
2003-09-15 Matthias Clasen <maclas@gmx.de>
* gtk/gtkactiongroup.[hc]: (gtk_action_group_add_radio_actions):
(gtk_action_group_add_radio_actions_full): Add value parameter to allow
setting the currently selected group member before connecting signals.
(GtkToggleActionEntry): Separate struct for constructing toggle actions,
including a boolean to initialize the action state before connecting
signals.
(gtk_action_group_add_toggle_actions):
(gtk_action_group_add_toggle_actions_full): New functions to construct
toggle actions from an array of GtkToggleActionEntries.
* demos/gtk-demo/appwindow.c:
* tests/testactions.c:
* tests/testmerge.c: Adjust to new action group API.
* gtk/gtk-sections.txt: Add gtk_action_group_add_toggle_actions[_full].
2003-09-04 Matthias Clasen <maclas@gmx.de>
* tests/testmerge.c (toggle_dynamic): Test gtk_ui_manager_add_ui().
* gtk/gtkuimanager.h: Add GtkUIManagerItemType enum which is needed for the
'type' argument of gtk_ui_manager_add_ui().
* gtk/gtkuimanager.[hc] (gtk_ui_manager_add_ui): Add 'type' and 'top' arguments
to make this function as powerful as the XML methods of adding UI. (#120647)
* gtk/gtk-sections.txt: Add GtkUIManagerItemType.
* tests/merge-2.ui: Use "position" instead of "pos".
* gtk/gtkuimanager.c (start_element_handler): No need
to be terse: Change the name of the "pos" attribute
to "position".
* gtk/tmpl/gtkuimanager.sgml: Change the name of the "pos"
attribute to "position".
2003-09-02 Matthias Clasen <maclas@gmx.de>
* gtk/gtkuimanager.c: Shorten the names of some static
functions.
Support adding and removing merge nodes dynamically (#120647,
Anders Carlsson):
* gtk/gtkuimanager.[ch] (gtk_ui_manager_new_merge_id): Renamed
gtk_ui_manager_next_merge_id to gtk_ui_manager_new_merge_id
and made it public.
(gtk_ui_manager_add_ui): New function to add UI elements
without juggling XML fragments, currently restricted to menuitems,
toolitems and separators. Actions still come from registered
action groups.
2003-09-01 Matthias Clasen <maclas@gmx.de>
* gtk/gtkuimanager.[ch] (gtk_ui_manager_ensure_update): Make
this public again, since it's occasionally useful. (#121128,
Marco Pesenti Gritti)
* gtk/gtkaction.c: Add an "is_important" property and propagate
it to toolitem proxies. (#121058, Marco Pesenti Gritti)
Wed Aug 20 21:26:49 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkplug.c (gtk_plug_focus): Send the focus on
to the parent when there was no focus widget before
and no focus widget after - that is, when there are
no focusable widgets. (#108678, help tracking it
down from Padraig O'Briain, Federico Mena Quintero, )
* gtk/gtkxembed.[ch]: Move various shared utilities
for the XEMBED protocol eused by GtkPlug and GtkSocket
here.
* gtk/gtkxembed.[ch] gtkplug.c gtksocket.c: Implement
a flag bit that is sent with focus mesages to indicate
that the focus has wrapped around on the toplevel;
use this bit to catch infinite loops when there is no
focusable widget at ll in the entire toplevel.
* tests/testsocket.c (child_read_watch): Remove an
extraneous unref.
* gtk/gtkplug.c gtk/gtksocket.c gtk/gtkxembed.h:
Up XEMBED protocol version to 1, add logic for
sending the right version in XEMBED_EMBEDDED_NOTIFY.
* gtk/gtksocket.c (gtk_socket_add_window): Send
the embedder window in the XEMBED_EMBEDDED_NOTIFY
as the spec requires.
* acinclude.m4: Copy newer versions of JH_CHECK_XML_CATALOG and JH_PATH_XML_CATALOG from
gtk-doc to enable configuring without xmlcatalog in PATH. (#119115)
2003-08-09 Noah Levitt <nlevitt@columbia.edu>
* gdk/gdkevents.h:
* docs/reference/gdk/tmpl/windows.sgml: Elaborate a bit more in the
docs on GdkFilterFunc and GdkFilterReturn.
* gtk/gtkcalendar.c: Get the information about the first day of the week from
the locale using another instance of the "magic translated string" technique.
Ignore the display option GTK_CALENDAR_WEEK_START_MONDAY with a warning. (#87977)
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
2003-07-29 Sven Neumann <sven@gimp.org>
* gdk/tmpl/pixmaps.sgml: Resurrected documentation that got lost
when the window parameter was renamed to drawable.
2003-07-21 Matthias Clasen <maclas@gmx.de>
* gtk/tmpl/gtkdnd.sgml: It is GTK_DEST_DEFAULT_DROP, not GTK_DRAG_DEFAULT_DROP. (#117917,
Tim-Philipp Müller)
2003-07-18 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextview.c (gtk_text_view_class_init): Add a new keybinding signal, move_viewport.
(gtk_text_view_move_viewport): New function which implements the move_viewport functionality.
(gtk_text_view_move_cursor_internal): If the cursor is not visible, move the viewport. (#78669)
* gtk/gtkenums.h (GtkScrollStep): New enumeration, used for move_viewport argument.
* gtk/gtkstatusbar.c (gtk_statusbar_class_init): Add a has_resize_grip property. (#111779)
* gtk/gtkwindow.h:
* gtk/gtkwindow.c (gtk_window_set_default_icon): New method. (#95816)
* gtk/gtkmessagedialog.h:
* gtk/gtkmessagedialog.c (gtk_message_dialog_add_buttons): New method.
(#65501, Sebastian Rittau)
2003-07-13 Matthias Clasen <maclas@gmx.de>
* gdk-pixbuf.h:
* gdk-pixbuf-io.c (gdk_pixbuf_new_from_file_at_size): New function to load an image from a file at a
specified size. (#105326, Dom Lachowicz)
Sat Jul 5 10:34:00 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtkmenu.c: add vertical_padding style property.
* gtk/gtkmenuitem.c: add style properties toggle_spacing,
arrow_spacing and horizontal_padding. Also center separators and
make them a bit taller.
* gtk/*menuitem.c: use new style properties.
* docs/widget_geometry.txt: Add note about GtkMenuItem
* gtk/gtkstyle.c
(gtk_default_draw_vline, gtk_default_draw_hline):
fix +/-1 errors.
(gtk_default_draw_shadow): draw a black border around menus.
* gtk/gtkvseparator, gtk/gtkhseparator.c, gtk/gtkmenuitem.c: fix
calls to gtk_paint_hline() and gtk_paint_vline() (they take x1,
x2 and y1, y2 respectively, not x, width and y, height).
2003-06-30 Mark McLoughlin <mark@skynet.ie>
Add GtkExpander. See discussion in bug #60553.
* gtk/gtkexpander.[ch]: add.
* gtk/Makefile.am: build gtk-expander.[ch].
* docs/widget_geometry.txt: add info on the layout
of GtkExpander.
Tue Jun 24 20:00:45 BST 2003 Tony Gale <gale@gtk.org>
* docs/faq/gtk-faq.sgml: Thread support updates
from Owen. Various suggestions from Steve Chaplin.
2003-06-17 Matthias Clasen <maclas@gmx.de>
* gdk-pixbuf/Makefile.am: Add rule to regenerate man pages from
Docbook.
(man_MANS): Add gdk-pixbuf-csource.1, gdk-pixbuf-query-loaders.1.
(content_files): Add gdk-pixbuf-csource.xml,
gdk-pixbuf-query-loaders.xml.
* gdk-pixbuf/gdk-pixbuf-csource.xml: New refentry, containing the
former gdk-pixbuf/gdk-pixbuf-csource.1, converted to Docbook.
* gdk-pixbuf/gdk-pixbuf-query-loaders.xml: New refentry.
* gdk-pixbuf/gdk-pixbuf-csource.1:
* gdk-pixbuf/gdk-pixbuf-query-loaders.1: Man pages generated from
the .xml sources.
* gdk-pixbuf/gdk-pixbuf.sgml: Include gdk-pixbuf-csource.xml and
gdk-pixbuf-query-loaders.xml.
* gtk/Makefile.am: Add rule to regenerate man pages from Docbook.
(man_MANS): Add gtk-query-immodules-2.0.1
(content_files): Add gtk-query-immodules-2.0.xml
* gtk/gtk-query-immodules-2.0.xml: New refentry.
* gtk/gtk-query-immodules-2.0.1: Man page generated from the .xml
source.
* gtk/gtk-docs.sgml: Include gtk-query-immodules-2.0.xml.
* acinclude.m4 (JH_PATH_XML_CATALOG, JH_CHECK_XML_CATALOG): New
macros to check for XML catalog contents and path, borrowed from
gtk-doc.
* configure.in: New option --enable-man to enable regeneration of
man pages from Docbook, if the necessary tools are found.
Tue May 6 16:50:52 2003 Owen Taylor <otaylor@redhat.com>
Patch from James Henstridge to update to automake-1.7
(#109542)
* autogen.sh: update to call newer tools.
* configure.in: various updates, to use M4 macros to put
variables that change each release at the top.
Use AC_HELP_STRING to format help strings.
Use AC_CONFIG_COMMANDS to generate gdkconfig.h.
* Makefile.am: require Automake 1.7. Remove gdk-2.0.pc and
gtk+-2.0.pc on uninstall. Pass --enable-gtk-doc to configure
during distcheck.
* docs/reference/*/Makefile.am: simplify to use the gtk-doc.make
makefile fragment.
* */Makefile.am: don't use STRIP_BEGIN/STRIP_END.
Use BUILT_SOURCES where appropriate.
Build generated files in builddir rather than srcdir.
Fix uninstall and distclean targets to satisfy distcheck.
===
* gdk/*/Makefile.am: Remove the hacks to get gdkenumtypes.h
built first, since we are now using BUILT_SOURCES.
* gdk/Makefile.am: Remove an outdated comment about gdk_headers.
* demos/gtk-demo/Makefile.am: Fix srcdir != buildd problem
with geninclude.pl.
* configure.in: Update versions to 2.3.0.
2003-05-06 Matthias Clasen <maclas@gmx.de>
* tests/testmultidisplay.c: Don't include strings.h, it's not
needed anymore. (#112388)
* examples/menu/itemfactory.c:
* docs/tutorial/gtk-tut.sgml: Remove an unneeded include from the
itemfactory example.
2003-03-22 Michael Natterer <mitch@gimp.org>
* gtk/Makefile.am: copy stock_color_picker_25.png, don't copy
stock_save_24.png twice.
* gtk/tmpl/gtkstock.sgml: use it for GTK_STOCK_COLOR_PICKER
instead of stock_colorselector_24.png.
Thu Jan 23 20:56:56 GMT 2003 Tony Gale <gale@gtk.org>
* Sebastian Rittau <srittau@jroger.in-berlin.de>:
docs/tutorial/gtk-tut.sgml: Adopted chapter 21.3 "Creating a
Composite widget" to modern standards. (I.e. use gobject instead of
glib, derive from GtkTable instead of GtkVBox.) Bugzilla #103869.
* docs/tutorial/gtk-tut.sgml, examples/tictactoe: Fixup tic-tac-toe
code in Appendix C to reflect above changes.
* examples/rangewidgets/rangewidgets.c: From Roger Leigh
auto resize on page size change
* gtk/gtktextview.c (gtk_text_view_move_cursor_internal): Skip
invisible chars for GTK_MOVEMENT_LOGICAL_POSITIONS and
GTK_MOVEMENT_WORDS.
* gtk/gtktextiter.c,
gtk/gtktextiter.h: Add some variant movement functions which
skip invisible chars, and do some cleanups.
* gtk/gtk-sections.txt: Add new GtkTextIter functions.
2003-01-13 Matthias Clasen <maclas@gmx.de>
* gdk-pixbuf/tmpl/gdk-pixbuf.sgml:
* gdk-pixbuf/tmpl/animation.sgml: Remove ids which are now
generated by gtk-doc.
Fri Dec 20 15:23:26 2002 Owen Taylor <otaylor@redhat.com>
* === Released 2.2.0 ===
* configure.in: Version 2.2.0, interface age 0, binary age 200.
* README.in: Update the release notes.
* INSTALL.in: Mention that Pango-1.0 can be used with GTK+-2.2.
* NEWS: Update.
Fri Dec 20 13:10:06 2002 Owen Taylor <otaylor@redhat.com>
* gtk/building.sgml: Update directories in download
locations; add information about fontconfig and Xft2.
2002-12-16 Matthias Clasen <maclas@gmx.de>
* gtk/tmpl/gtkradiomenuitem.sgml:
* gtk/tmpl/gtkradiobutton.sgml: Add some information about group
list handling. (#101328, James M. Cape)
Wed Dec 11 18:30:05 2002 Owen Taylor <otaylor@redhat.com>
* === Released GTK+-2.1.4 ===
* NEWS: Updated.
* modules/input/Makefile.am (INCLUDES): Remove GTK_LOCALEDIR
from here as well. (Manish Singh)
* gdk/x11/gdkwindow-x11.c (set_initial_hints): Delete EWMH
properties if no private->state flags are set. (#66754)
* gtk/gtkwidget.c (gtk_widget_class_find_style_property):
* gtk/gtkcontainer.c (gtk_container_class_find_child_property):
Doc typo fixes.
* gtk/tmpl/gtktextview.sgml: Add docs.
* gtk/tree_widget.sgml: Fix some links.
* gtk/tmpl/gtkwindow.sgml: Add docs.
* gtk/tmpl/gtkeditable.sgml: Document GtkEditable as an interface,
not as an abstract base class.
* gtk/gtk-docs.sgml: Move GtkEditable from "Abstract Base Classes"
to "Numeric/Text Data Entry".
* gdk/x11/gdkcursor-x11.c (gdk_cursor_new_from_pixmap):
Remove period from title of example in docs.
* gdk/tmpl/x_interaction.sgml:
* gdk/tmpl/pango_interaction.sgml:
* gdk/tmpl/input_devices.sgml:
* gdk/tmpl/input.sgml:
* gdk/tmpl/threads.sgml:
* gdk/tmpl/properties.sgml:
* gdk/tmpl/dnd.sgml:
* gdk/tmpl/selections.sgml:
* gdk/tmpl/keys.sgml:
* gdk/tmpl/event_structs.sgml:
* gdk/tmpl/events.sgml:
* gdk/tmpl/windows.sgml:
* gdk/tmpl/cursors.sgml:
* gdk/tmpl/fonts.sgml:
* gdk/tmpl/colors.sgml:
* gdk/tmpl/pixbufs.sgml:
* gdk/tmpl/images.sgml:
* gdk/tmpl/pixmaps.sgml:
* gdk/tmpl/drawing.sgml:
* gdk/tmpl/regions.sgml:
* gdk/tmpl/gdkdisplaymanager.sgml:
* gdk/tmpl/gdkscreen.sgml:
* gdk/tmpl/gdkdisplay.sgml:
* gdk/tmpl/general.sgml:
Add missing short descriptions, standardize them to start with
a capital and end without a period. Also remove periods from
titles of examples.