Sun Oct 12 00:18:02 2003 Matthias Clasen <maclas@gmx.de>
* tests/testtreeview.c:
* demos/testpixbuf-scale.c:
* tests/prop-editor.c: These files still use option menus,
so turn off GTK_DISABLE_DEPRECATED to fix the build.
Wed Oct 1 22:43:40 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtkcellview.[ch]: implement the GtkCellLayout interface, drop
packing/attribute/cell data functions from the header,
(gtk_cell_view_set_cell_data): added support for cell data funcs.
* gtk/gtkcombobox.[ch]: implement the GtkCellLayout interface, drop
packing/attribute/cell data functions from the header, implemented
cell data func support.
* gtk/gtkcomboboxentry.c (gtk_combo_box_entry_new): updated
for the move to GtkCellLayout.
* tests/testcombo.c (create_combo_box_grid_demo), (main): ditto.
2003-10-01 Matthias Clasen <maclas@gmx.de>
* gtk/gtkaction.c (gtk_action_class_init):
(gtk_action_[gs]et_property): Introduce a separate
"hide_if_empty" property for empty menu handling.
(_gtk_action_sync_menu_visible): ...and use it here.
* tests/testmerge.c (main): ...and here.
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-27 Matthias Clasen <maclas@gmx.de>
* tests/testtext.c: Turn off GTK_DISABLE_DEPRECATED, since
this test uses the soon-to-be-deprecated GtkItemFactory.
* demos/gtk-demo/Makefile.am (demos): Add ui_manager.c,
remove item_factory.c
* demos/gtk-demo/ui_manager.c: Duplicate of item_factory.c
using GtkUIManager instead of GtkItemFactory.
2003-09-27 Matthias Clasen <maclas@gmx.de>
* tests/testmerge.c: Demonstrate the use of the
connect-proxy signal.
* gtk/gtkaction.c (connect_proxy): Add connect-proxy and
disconnect-proxy signals to do small customizations
like displaying tooltips in the statusbar without
custom actions. (#122894, Philip Langdale)
* gtk/gtkuimanager.c (update_node): Don't leak tooltip.
Fri Sep 26 23:49:44 2003 Kristian Rietveld <kris@gtk.org>
Landing the new ComboBox. Note that only gtkcombobox.h and
gtkcomboboxentry.h are public.
* gtk/gtkcellview.[ch], gtk/gtkcellviewmenuitem.[ch],
gtk/gtkcombobox.[ch], gtk/gtkcomboboxentry.[ch]: new files.
* gtk/Makefile.am, gtk/gtk.h: adding the new files.
* tests/testcombo.c: and a new test.
* tests/Makefile.am: adding the new test.
2003-09-22 Matthias Clasen <maclas@gmx.de>
* tests/testmerge.c (main): Initially activate the JUSTIFY_RIGHT
group member to test the fix for #122904.
* gtk/gtkactiongroup.c (gtk_action_group_add_radio_actions_full):
Add the action to the group before activating it, otherwise we
may end up with multiple active group members. (#122904, Marco
Pesenti Gritti)
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-10 Federico Mena Quintero <federico@ximian.com>
* TODO: Added an API point about needing a way to fetch the hpaned
position so we can save it.
* gtkfilechooser.c (_gtk_file_chooser_get_paths): Fixed API docs.
(gtk_file_chooser_get_uris): Likewise.
(gtk_file_chooser_get_filenames): Likewise.
* gtkfilechooserdialog.c (file_chooser_widget_file_activated): New
callback, calls gtk_window_activate_default().
* testfilechooser.c (response_cb): Print the selected files if the
user clicks OK.
2003-09-08 Federico Mena Quintero <federico@ximian.com>
* gtkfilesystem.c (gtk_file_info_free): Free the display_key.
* gtkfilechooserimpldefault.c (list_mtime_data_func): New
function.
(create_file_list): Add a modification time column; remove the
size column.
(mtime_sort_func): New callback.
(tree_selection_changed): Add a sorting function for the mtime
column. Have the model fetch the modification time as well.
(tree_selection_changed): Do allow the file list model to show
directories.
* testfilechooser.c (my_new_from_file_at_size): Do not try to read
non-regular files.
2003-09-08 Alexander Larsson <alexl@redhat.com>
* gtk/gtkeventbox.[hc]:
Implement gtk_event_box_get/set_input_only()
* tests/testgtk.c:
Tests for the new input only event boxes
2003-09-04 Matthias Clasen <maclas@gmx.de>
* tests/testmerge.c: Test buttons and toggle buttons as proxies.
* gtk/gtktoggleaction.c (connect_proxy):
(gtk_toggle_action_real_toggled): Support toggle buttons as proxies. Note
that a "draw_as_radio" property is needed for check buttons similar to
check menu items, in order to fully support button proxies for radio actions.
* gtk/gtkaction.c (connect_proxy): Allow buttons as proxies.
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-03 Federico Mena Quintero <federico@ximian.com>
* TODO: Removed the "extra widget" bit, implemented with the
following:
* gtkfilechooser.h: Added gtk_file_chooser_{set,get}_extra_widget().
* gtkfilechooser.c (gtk_file_chooser_base_init): Install an
"extra-widget" interface property.
(gtk_file_chooser_set_extra_widget): Implemented.
(gtk_file_chooser_get_extra_widget): Implemented.
* gtkfilechooserutils.h (GtkFileChooserProp): Added
GTK_FILE_CHOOSER_PROP_EXTRA_WIDGET.
* gtkfilechooserutils.c (_gtk_file_chooser_install_properties):
Added the "extra-widget" property.
* gtkfilechooserimpldefault.c (struct _GtkFileChooserImplDefault):
Added an extra_widget field.
(gtk_file_chooser_impl_default_set_property): Handle the
"extra-widget" property.
(gtk_file_chooser_impl_default_get_property): Likewise.
(set_preview_widget): Fix the call gtk_container_remove(). Also,
we don't need to ref/sink/unref the preview widget, as that gets
already done by container_add/remove.
(set_extra_widget): New utility function.
* testfilechooser.c (main): Add an extra widget.
Mon Sep 1 00:32:30 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* tests/testtoolbar.c (main): connect to "delete_event" so the
application will actually quit when you close the window
2003-08-30 Matthias Clasen <maclas@gmx.de>
* tests/testmerge.c (add_widget): Connect to "destroy" on toolbar,
rather than to "remove" on handlebox.
* gtk/gtkuimanager.[hc] (gtk_ui_manager_activate): New method to
activate an action found by following a path. (#120658)
* tests/testmerge.c: Add a button to test gtk_ui_manager_activate().
2003-08-30 Matthias Clasen <maclas@gmx.de>
* gtk/gtkuimanager.[hc]: Add a boolean property, "add_tearoffs" with
setter and getter. If it is set, add tearoff menu items to regular
menus, but not to popups.
* tests/testmerge.c: Add button to test the generation of tearoff
menu items.
2003-08-28 Matthias Clasen <maclas@gmx.de>
* gtk/gtkuimanager.c: Change the XML format:
<Root> element is replaced by <ui>,
<menu> element is replaced by <menubar>,
<submenu> element is replaced by <menu>,
<dockitem> element is replaced by <toolbar>,
<popups> element is gone,
verb attribute is replaced by action,
name defaults to action or the element name.
* gtk/gtkactiongroup.[hc]: Replace GtkActionGroupEntry by GtkActionEntry
and GtkRadioActionEntry. GtkActionEntry is simplified by removing
the user_data, entry_type and extra_data fields, GtkRadioActionEntry is
further simplified by removing the callback. The user_data can now be
specified as an argument to gtk_action_group_add_actions(). There is
a new method gtk_action_group_add_radio_actions(), which is similar
to gtk_action_group_add_actions(), but takes GtkRadioActionEntrys
and a callback parameter in addition to the user_data. The callback
is connected to the ::changed signal of the first group member.
There are _full() variants taking a GDestroyNotify of
gtk_action_group_add_[radio_]actions().
* gtk/gtkradioaction.[hc]: Add a ::changed signal which gets emitted
on every member of the radio group when the active member is changed.
Add an integer property "value", and a getter for the value of "value"
on the currently active group member.
* tests/testactions.c:
* tests/testmerge.c:
* tests/merge-[123].ui:
* demos/gtk-demo/appwindow.c: Adjust to these changes.
* gtk/gtktoolbar.c (gtk_toolbar_append_element): Trivial doc fix.
2003-08-26 Matthias Clasen <maclas@gmx.de>
* gtk/gtkuimanager.[hc] (gtk_ui_manager_add_ui_from_string): Use gssize
for length, not gsize.
* gtk/gtkuimanager.c: Refactor the XML format a bit: rename <Root> to
<ui> and make it optional in strings. Rename verb to action, <dockitem>
to <toolbar>, <menu> to <menubar>, <submenu> to <menu>.
* demos/gtk-demo/appwindow.c:
* tests/testactions.c:
* tests/testmerge.c:
* tests/merge-1.ui:
* tests/merge-2.ui:
* tests/merge-3.ui: Adjust to the new XML format.
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.
Wed Aug 20 22:04:47 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gdk/gdkwindow.c: Make the layers in the paint stack have their
own pixmap instead of sharing one.
* tests/testgtk.c (create_get_image): Fixes to make the window fit
on an 800x600 screen
2003-08-13 Anders Carlsson <andersca@gnome.org>
* tests/testtoolbar.c: (set_important_func), (important_toggled),
(create_items_list):
Add an important column.
Wed Jul 23 17:52:01 2003 Owen Taylor <otaylor@redhat.com>
* testfilechooser.c: Add over-big test case for preview
(much of size from a modified copy of
gdk_pixbuf_new_from_file_at_size())
* gtkfilechooserutils.[ch] gtkfilechooser.c
gtkfilechooserprivate.h gtkfilechooserimpldefault.c:
Add get_preview_path() as a virtual function; implement
update-preview signal that was in the header file.
* gtkfilechooserimpldefault.c: Finish a simple preview
widget implementation.
Wed Jul 23 11:23:43 2003 Owen Taylor <otaylor@redhat.com>
* gtkfilefilter.[ch]: File filter objects.
* gtkfilechooser.[ch] gtkfilechooserutils.[ch]: Add
file filtering to API.
* gtkfilechooserimpldefault.c: Implement file filters.
* testfilechooser.c: Try out the filter functionality.
* gtkfilesystemmodel.c: Add
_gtk_file_system_model_set_filter() to set a callback
function for filtering.
* gtkfilechooserutils.c: Propagate property notification
to the receiver.
* fnmatch.c: Copy this from GTK+ temporarily to get
UTF-8 pattern matching functionality.
2003-07-20 Hans Breuer <hans@breuer.org>
* makefile.msc : new file to build it all
* Makefile.am : ... added to EXTRA_DIST
* gdk/makefile.msc gtk/stock-icons/makefile.msc
gtk/makefile.msc.in tests/makefile.msc : updated
* gdk/gdk.def gtk/gtk.def : export a bunch of new
functions
* gtk/gtkbbox.c : use g_return_val_if_fail() if
there is a value to return
* gtk/gtkfontsel.c gtk/gtkiconfactory.c :
static correctness
* gtk/gtkicontheme.c : ported to use GTimeVal instead of
struct timeval and GTK_DATA_PREFIX instead of GTK_DATADIR
* gtk/gtkicontheme.c : use HAVE_LC_MESSAGES
* gtk/gtkimmulticontext.c : use gtkprivate.h
* gtk/stock-icons/stock_color_picker_25.png
gtk/stock-icons/stock_jump_to_rtl_16.png
gtk/stock-icons/stock_jump_to_rtl_24.png
gtk/stock-icons/stock_redo_rtl_16.png
gtk/stock-icons/stock_redo_rtl_24.png
gtk/stock-icons/stock_undelete_rtl_16.png
gtk/stock-icons/stock_undelete_rtl_24.png
gtk/stock-icons/stock_undo_rtl_16.png :
gtk/stock-icons/stock_undo_rtl_24.png :
readded as binary
Wed Jul 16 16:50:31 2003 Owen Taylor <otaylor@redhat.com>
* configure.ac Makefile.am: auto-ize.
* xdgmime/: Add freedesktop.org MIME spec implementatin
by Jonathan Blandford.
* gtkfilesystem.[ch]: Add gtk_file_info_render_icon()
gtk_file_info_set/get_icon_type to do icon handling
based on MIME type. Add a simple icon caching system.
* gtkfilesystemgnomevfs.c: Implement ensure_types()
so that extending the set of types for a loaded
directory works. Set the MIME type to get the default
icon handling.
* gtkfilesystemunix.c: Look up the MIME type using
xdgmime.
* gtkfilechooserimpldefault.c: Display icons in the list.
Fri Jul 11 14:37:07 2003 Owen Taylor <otaylor@redhat.com>
* gtkfilechooser.[ch] gtkfilechooserprivate.h
gtkfilechooserimpldefault.c: Add
gtk_file_chooser_set_current_name() to set the current
entry contents.
* *.c: Consistently use '-' not '_' in property names and
signal names.
* gtkfilechooser.c: Document all exported functions.
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 ()
Sat Jul 5 09:55:38 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdnd-x11.c (precache_target_list): Lookup
all the atoms in the target list at once.
* gdk/x11/gdkdnd-x11.c (gdk_drag_get_protocol_for_display):
Local drag short-circuit.
* gdk/x11/gdkdnd-x11.c (gdk_drag_motion): For the
local case, poke the actions in directly instead of
going through xdnd_set_actions.
* gdk/x11/gdkdnd-x11.c (xdnd_read_actions): Short-circuit
the local case.
* gdk/x11/gdkdnd-x11.c (xdnd_manage_source_filter): Don't
XSelectInput()/add a filter if the drag is local.
* gdk/x11/gdkdnd-x11.c (gdk_drag_get_selection):
Simplify handling of "XdndSelection".
* gdk/x11/gdkevents-x11.c (gdk_event_send_client_message_to_all_recurse): Somehow,
a WM_STATE => _NET_WM_STATE change hand been made here.
* gdk/x11/gdkproperty-x11.c (_gdk_x11_precache_atoms): Free
xatom_names, not atom_names.
* tests/testdnd.c (target_drag_motion): Make the trashcan
open again. (Got lost in deprecation cleanup.)
Fri Jul 4 19:06:31 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* tests/stresstest-toolbar.c: new test for removing items
* tests/testtoolbar.c: add a popup menu
* gtk/gtkcontainer.c (gtk_container_remove): add hack to avoid
assert widget->parent == container when the container is a
toolbar.
* gtk/gtktoolbar.c (gtk_toolbar_remove_tool_item): Make much
simpler. Also make correct.
* gtk/gtktoolbar.c (gtk_toolbar_button_press): make
popup_context_menu a boolean handled signal.
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.