2004-08-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainercombobox.[ch]
* app/widgets/gimpcontainertreeview.c: when removing the last item
from the view, manually clear all GimpCellRendererViewables'
"renderer" properties; otherwise we have stale GimpPreviewRenderers
with still-refed viewables hanging around in the cells.
Works around GTK+ bug #149906.
2004-08-05 Michael Natterer <mitch@gimp.org>
Enabled previewing items without selecting them in all list and
grid views using mouse button 2. Implicitly enables previewing of
items in container popups and thus fixes bug #121011:
* app/widgets/gimppreview.c (gimp_preview_button_press_event)
* app/widgets/gimpcellrendererviewable.c
(gimp_cell_renderer_viewable_clicked): show the preview also on
mouse button 2 click.
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_button_press): dispatch mouse button 2
clicks to GimpCellRendererViewable, but don't select or change
anything in the tree_view.
Unrelated cleanup:
* app/widgets/gimppreview.c (gimp_preview_button_press_event):
don't offset bevent->x,y by widget->allocation.x,y before calling
gimp_preview_popup_show() ...
* app/widgets/gimppreview-popup.c (gimp_preview_popup_show):
... instead, do it here generically (check if the parent widget is
GTK_WIDGET_NO_WINDOW()).
2004-07-06 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.c: connect to
"editing-canceled" of the name cell renderer and restore the
original text in the callback. Doesn't work reliably until GTK+
bug #145463 is fixed.
2004-06-28 Michael Natterer <mitch@gimp.org>
Allow all sorts of things to be dropped on or in between the
items of a GimpContainerTreeView:
* app/widgets/gimpcontainertreeview.[ch]: added more parameters to
GimpContainerTreeView::drop_possible() to specify where ecactly
the drop should take place (between or into items) and to support
dropping all sorts of things.
Renamed ::drop() to ::drop_viewable() and added ::drop_color(),
::drop_files() and ::drop_svg(), which cover all possible drop
types.
* app/widgets/gimpcontainertreeview-dnd.[ch]: changed accordingly.
Dispatch all kinds of drops to the resp. virtual functions.
* app/widgets/gimpitemtreeview.c: changed accordingly.
* app/widgets/gimplayertreeview.c: allow to drop URIs, colors
and patterns to the layers dialog. Fixes bugs #119506 and #139246.
2004-05-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainergridview.[ch]
* app/widgets/gimpcontainertreeview.[ch]: removed "reorderable"
from gimp_container_foo_view_new().
* app/widgets/gimpcontainereditor.[ch]: removed "reorderable" from
gimp_container_editor_construct(). Automatically set the view to
reorderable if the viewed container has no sort_func.
* app/widgets/gimpbufferview.c
* app/widgets/gimpdatafactoryview.c
* app/widgets/gimpdocumentview.c
* app/widgets/gimpimageview.c
* app/widgets/gimptemplateview.c
* app/widgets/gimptoolview.c
* app/widgets/gimpundoeditor.c: removed reoderable stuff because
GimpContainerEditor does this generically now.
* app/widgets/gimpcontainerpopup.c
* app/widgets/gimpfontview.c: set reorderable to FALSE because
they should not be reodered even if they don't have a sort_func.
* app/gui/font-select.c: removed reorderable stuff. Some cleanup.
* app/gui/brush-select.c
* app/gui/gradient-select.c
* app/gui/palette-select.c
* app/gui/pattern-select.c: same cleanups as in font-select.c
2004-05-17 Michael Natterer <mitch@gimp.org>
* menus/menus.xsl: put the image popup menu into a dummy menubar
to work around the silly GtkUIManager restriction that popup menus
can't have tearoff items.
* app/menus/menus.c
* app/menus/image-menu.c
* app/display/gimpdisplayshell-callbacks.c
* app/gui/gui-vtable.c
* app/menus/plug-in-menus.c: changed accordingly.
* app/gui/gui.c (gui_restore_after_callback): connect to
"notify::tearoff-menus" of GimpGuiConfig and reconfigure the
global image UI manager accordingly.
* app/config/gimpguiconfig.c: removed GIMP_PARAM_RESTART from the
"tearoff-menus" property because GtkUIManager can change this on
the fly.
* app/display/gimpdisplayshell.[ch]: added the menubar to the
GimpDisplayShell struct. Some cleanup in gimp_display_shell_new().
* app/display/gimpdisplayshell-appearance.c
(gimp_display_shell_set_show_menubar): use shell->menubar instead
of asking the UI manager.
* app/widgets/gimpuimanager.[ch]: changed gimp_ui_manager_ui_get()
to transparently load the XML files even if a sub-widget was
requested. Reordered parameters of gimp_ui_manager_ui_popup().
Lots of internal cleanups.
* app/widgets/gimpdockable.c
* app/widgets/gimptooloptionseditor.c: simplified accordingly.
* app/widgets/gimpeditor.[ch]: added new function
gimp_editor_popup_menu() which takes a GimpMenuPositionFunc and
updates/shows the editor's menu.
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimperrorconsole.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimppaletteeditor.c: use gimp_editor_popup_menu().
* app/widgets/gimptoolbox.c: moved all code from
gimp_toolbox_new() to GObject::constructor().
2004-05-11 Michael Natterer <mitch@gimp.org>
* app/widgets/widgets-types.h
* app/widgets/gimpcontainerview.[ch]: made GimpContainerView an
interface. Added accessors for all members in the private struct
and made it really private.
* app/widgets/gimpcontainerbox.[ch]: derive it from GimpEditor and
implement GimpContainerViewInterface and its properties.
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpcontainertreeview-dnd.c
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimpvectorstreeview.c: implement
GimpContainerViewInterface and use the new accessor functions.
* app/widgets/gimpcontainerpopup.c
* app/widgets/gimpdocumentview.c: changed accordingly.
* app/widgets/gimptemplateview.c
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpundoeditor.c
* app/actions/palettes-commands.c: #include "gimpcontainerview.h"
2004-05-10 Michael Natterer <mitch@gimp.org>
Prepare for making an interface out of GimpContainerView:
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcontainerbox.[ch]: new GimpContainerView
subclass which implements GimpDocked interface and contains the
vbox-with-scrolled-window stuff common to GimpContainerGridView
and GimpContainerTreeView.
* app/widgets/gimpcontainerview.[ch]: removed that functionality
here.
* app/widgets/gimpcontainergridview.[ch]
* app/widgets/gimpcontainertreeview.[ch]: derive them from
GimpContainerBox.
* app/gui/brush-select.c
* app/gui/font-select.c
* app/gui/gradient-select.c
* app/gui/palette-select.c
* app/gui/pattern-select.c
* app/widgets/gimpcontainerpopup.c: changed accordingly.
2004-04-29 Michael Natterer <mitch@gimp.org>
Switch from GtkItemFactory to GtkUIManager. The migration is
almost complete, still stuff missing/incomplete, definitely added
a bunch of new bugs...
* app/actions/*-commands.[ch]: converted all callback from
GtkItemFactory callbacks to GtkAction callbacks.
* app/actions/debug-actions.c
* app/actions/gradient-editor-actions.c
* app/actions/help-actions.c
* app/actions/plug-in-actions.c
* app/actions/qmask-actions.c
* app/actions/tool-options-actions.c: various fixes.
* app/display/gimpdisplay.[ch]
* app/display/gimpdisplayshell-appearance.[ch]
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell.[ch]: move everything from
GtkItemFactory to GtkUIManager.
* app/gui/dialogs.[ch]: added new function dialogs_get_toolbox().
Needed because the action callbacks don't have a widget parameter
and sometimes we need a parent window for showing dialogs.
* app/gui/Makefile.am
* app/gui/brushes-menu.[ch]
* app/gui/buffers-menu.[ch]
* app/gui/channels-menu.[ch]
* app/gui/colormap-editor-menu.[ch]
* app/gui/dialogs-menu.[ch]
* app/gui/documents-menu.[ch]
* app/gui/error-console-menu.[ch]
* app/gui/fonts-menu.[ch]
* app/gui/gradient-editor-menu.[ch]
* app/gui/gradients-menu.[ch]
* app/gui/images-menu.[ch]
* app/gui/layers-menu.[ch]
* app/gui/palette-editor-menu.[ch]
* app/gui/palettes-menu.[ch]
* app/gui/patterns-menu.[ch]
* app/gui/qmask-menu.[ch]
* app/gui/templates-menu.[ch]
* app/gui/vectors-menu.[ch]: removed these files.
* app/gui/gui.c: create a global UI manager for the image popup
menu and the toolbox menubar.
* app/gui/menus.[ch]: removed all GtkItemFactory code.
* app/gui/image-menu.[ch]
* app/gui/toolbox-menu.[ch]: removed everything except the trivial
setup_funcs.
* app/gui/file-open-menu.c
* app/gui/file-save-menu.c
* app/gui/tool-options-menu.c: don't use the macros from menus.h
any more, they are gone.
* app/gui/gui-vtable.c
* app/gui/plug-in-menus.[ch]: create/destroy the dynamic plug-in
menu entries.
* app/tools/gimpimagemaptool.c: s/gimp_item_factory_update/
gimp_ui_manager_update/g
* app/widgets/gimpuimanager.[ch]: added API to get an action
group by name.
* app/widgets/gimpmenufactory.c: don't choke on the item_factory
entries being NULL.
* app/widgets/gimpactiongroup.c: make sure booleans set using
g_object_set() only have TRUE or FALSE values.
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainereditor.[ch]
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpdockable.[ch]
* app/widgets/gimpdocked.[ch]
* app/widgets/gimpeditor.[ch]
* app/widgets/gimperrorconsole.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimppaletteeditor.c
* app/widgets/gimptoolbox.c
* app/widgets/gimptooloptionseditor.c: removed all GtkItemFactory
code and enable the #if 0'ed UI manager stuff.
* menus/gradient-editor-menu.xml: fixed typos.
* menus/image-menu.xml: duplicate everything so we have both
an image menubar and an image popup menu. Badly cries for an
XSL processor.
* menus/toolbox-menu.xml: added an "Extensions" placeholder.
2004-04-22 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpuimanager.[ch]: remember and ref the created
widgets. Added gimp_ui_manager_ui_popup() which pops up a GtkMenu
with a custom GimpMenuPositionFunc and a GtkDestroyNotify which is
called on popdown.
* app/widgets/gimpmenufactory.c (gimp_menu_factory_finalize):
don't forget to free the list of managed UIs.
* app/widgets/gimpdockable.[ch]
* app/widgets/gimpdockbook.[ch]
* app/widgets/gimpdocked.[ch]
* app/widgets/gimpeditor.[ch]: added GimpUIManager stuff parallel
to the to-be-removed GtkItemFactory stuff.
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimperrorconsole.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimppaletteeditor.c
* app/widgets/gimptooloptionseditor.c: changed accordingly and added
#if 0'ed code which actually uses all the UI managers.
* app/display/gimpdisplay.c
* app/display/gimpdisplayshell.c
* app/gui/gui-vtable.c: disabled some gimp_ui_manager_update()
calls because they were invoking toggle and radio callbacks
which still have the wrong signature.
2004-04-15 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell.c
* app/widgets/gimpcontainertreeview.c: removed runtime version
checks and workarounds for bugs which are fixed in GTK+ 2.4.
* app/widgets/gimpfiledialog.c
(gimp_file_dialog_selection_changed): added runtime check for GTK+
2.4.1 and work around GtkFileChooser's missing "update_preview"
functionality for multiple selections if the dependency is not
met.
* app/widgets/gimpwidgets-utils.c (gimp_menu_position)
(gimp_menu_button_position): call gtk_menu_set_monitor() until
bug #139187 is fixed.
2004-01-29 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontext.[ch]: removed the last artefact of context
signal handling from 1.2:
GimpContext used to connect to e.g. the current brush's
"invalidate_preview" and "name_changed" signals and emitted
"brush_changed" when the callback was invoked. This was needed to
make 1.2 work, but is conceptually broken with the real model <->
view approach implemented in the current code.
This change also optimizes things quite a bit because lots of
signal emissions are saved.
Added utility function which finds a container's current object
after a freeze/thaw.
* app/widgets/gimpcontainerview.[ch]: added new virtual function
GimpContainerView::rename_item(). Connect to "name_changed" of the
corrent container's children and invoke rename_item() accordingly.
* app/widgets/gimpcontainertreeview.[ch]: removed name_changed
handler and implement GimpContainerView::rename_item().
* app/widgets/gimpcontainergridview.c: ditto. the grid view was
still relying on the removed GimpContext behaviour for updating
the label showing the sleected item's name.
2003-11-20 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdnd.[ch]: changed drag source stuff to allow
multiple data types. Changed DND source API to speak in terms of
add()/remove() instead of set()/unset(). Added GimpDndDragFileFunc
typedef and gimp_dnd_file_source_add().
Unfortunately GTK+'s DND API lacks symmetry here (no GtkTargetList
based API for drag sources), so we cannot really change drag
sources on-the-fly and need to set GtkTargetEntry arrays manually.
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpmenuitem.c
* app/widgets/gimppaletteeditor.c
* app/widgets/gimppreview.c
* app/widgets/gimptoolbox-color-area.c: changed accordingly.
* app/widgets/gimpdocumentview.c: ditto. Additionally offer
"text/uri-list" so it's possible to drag images from the document
history to the file manager or browser.
2003-11-19 Sven Neumann <sven@gimp.org>
* app/widgets/gimpitemfactory.c
* app/widgets/gimpwidgets-utils.[ch]: moved the
gimp_menu_position() implementation that was used only from
GimpItemFactory to gimpitemfactory.c. Added a new function of the
same name that positions a menu taking into account the monitor
geometry and the render direction.
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c: use gimp_menu_position().
* app/widgets/gimpcontainerpopup.c
* app/widgets/gimppreview-popup.c: let windows popup on the
current monitor (for Xinerama setups).
2003-11-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppreviewrenderer.[ch]: multihead fix: added
gimp_preview_renderer_unrealize() which destroys the cached
GdkGC. This function must be called whenever the widget owning the
renderer is unrealized.
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimppreview.c: implement GtkWidget::unrealize() and
call gimp_preview_renderer_unrealize() on all renderers.
2003-11-08 Michael Natterer <mitch@gimp.org>
To be multihead safe, each new window or menu needs to be
associated with a GdkScreen or it will pop up on the default
screen.
* libgimpwidgets/gimpquerybox.[ch]
* app/display/gimpdisplayshell-layer-select.[ch]
* app/widgets/widgets-types.h
* app/widgets/gimpitemfactory.[ch]
* app/widgets/gimpitemtreeview.[ch]
* app/widgets/gimptemplateview.[ch]
* app/widgets/gimptooldialog.[ch]
* app/widgets/gimpviewabledialog.[ch]
* app/gui/channels-commands.[ch]
* app/gui/color-notebook.[ch]
* app/gui/convert-dialog.[ch]
* app/gui/edit-commands.[ch]
* app/gui/grid-dialog.[ch]
* app/gui/image-commands.[ch]
* app/gui/info-dialog.[ch]
* app/gui/layers-commands.[ch]
* app/gui/offset-dialog.[ch]
* app/gui/resize-dialog.[ch]
* app/gui/stroke-dialog.[ch]
* app/gui/templates-commands.[ch]
* app/gui/vectors-commands.[ch]: added "GtkWidget *parent"
paramaters to all functions which create menus, popups or windows
and pass "parent" to gimp_dialog_new() or one of the various
wrappers around it. As a side effect, this fixes bug #61092.
* app/widgets/gimpdialogfactory.[ch]: added "GdkScreen *screen"
instead of "parent" here since there are no possible parent
windows on startup.
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_origin_button_press): added a quick hack to
send a display to another screen: click the origin button with the
middle mouse button.
* app/display/gimpdisplayshell.c
(gimp_display_shell_screen_changed): don't chain up
undonditionally (don't crash).
* libgimpwidgets/gimpdialog.c (gimp_dialog_new_valist): set the
dialog's screen from a non-GtkWidget parent widget. The rest of
non-window parent widget handling is still unimplemented.
* libgimpwidgets/gimpcolorbutton.c
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcolorpanel.c
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainerpopup.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpdatafactoryview.c
* app/widgets/gimpdevicestatus.c
* app/widgets/gimpdockable.c
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimperrorconsole.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimphelp.c
* app/widgets/gimppaletteeditor.c
* app/widgets/gimppreview-popup.c
* app/widgets/gimpselectioneditor.c
* app/widgets/gimpsessioninfo.c
* app/widgets/gimptoolbox-color-area.c
* app/widgets/gimptoolbox-indicator-area.c
* app/widgets/gimptoolbox.c
* app/widgets/gimptooloptionseditor.c
* app/widgets/gimpvectorstreeview.c
* app/widgets/gimpwidgets-utils.c
* app/display/gimpdisplayshell-scale.c
* app/display/gimpnavigationview.c
* app/gui/module-browser.c
* app/gui/dialogs-commands.c
* app/gui/dialogs-constructors.c
* app/gui/drawable-commands.c
* app/gui/file-commands.c
* app/gui/file-new-dialog.c
* app/gui/file-save-dialog.c
* app/gui/gradient-editor-commands.c
* app/gui/gui-vtable.c
* app/gui/gui.c
* app/gui/info-window.c
* app/gui/palette-import-dialog.c
* app/gui/palettes-commands.c
* app/gui/qmask-commands.c
* app/gui/select-commands.c
* app/gui/tool-options-commands.c
* app/gui/view-commands.c
* app/tools/gimpcolorpickertool.c
* app/tools/gimpcroptool.c
* app/tools/gimpimagemaptool.c
* app/tools/gimpmeasuretool.c
* app/tools/gimptransformtool.c
* plug-ins/FractalExplorer/FractalExplorer.c
* plug-ins/gfig/gfig.c
* plug-ins/gflare/gflare.c: changed accordingly. Changed all
menu_position funcs to place the menu on the right screen.
2003-10-26 Michael Natterer <mitch@gimp.org>
* app/gui/gui.c (gui_libs_init): resurrected the runtime check for
the required Gtk+ version. Depend on Gtk+ >= 2.2.2 and abort if
the requirement is not met. This is mainly for catching packaging
errors, as we already compile-time require Gtk+ 2.2.2.
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c: removed #warnings and
workarounds for bugs in Gtk+ < 2.2.2.
* app/widgets/gimpcontainertreeview.c: replaced the #warning about
the pending fix for bug #115871 by a #warning plus runtime check
for Gtk+ >= 2.2.3. Did some general cleanups.
2003-10-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview-dnd.c: added auto-scrolling
when DND-hovering close to the widget's top or bottom border.
Fixes bug #124231.
* app/widgets/gimpcontainertreeview.h: added some auto-scroll state
to the GimpContainerTreeView struct.
* app/widgets/gimpcontainertreeview.c: remove the auto-scroll
timeout in GtkWidget::unmap().
2003-09-30 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c: implement
GtkWidget::popup_menu() and pop up the menu from the selected
item. If there is no selected item, return FALSE to
makeGimpDockable pop up the menu from its menu button.
2003-08-19 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_reorder_item): when reordering the
selected item, don't just scroll to its position but call
gimp_container_view_select_item(), so the views' state
(e.g. raise/lower buttons) updates correctly. Fixes bug #120177.
2003-06-24 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_select_item): put back the hack which
calls gtk_tree_selection_select_iter() in addition to
gtk_tree_view_set_cursor() until bug #115871 is fixed.
2003-06-21 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c: disable workarounds for
bugs #110737 and #108956 for GTK+ >= 2.2.2. Will remove them as
soon as we depend on 2.2.2.
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_select_item): disabled optimization
which didn't select an already selected iter because it broke the
fix for #108956. Cleanup.
2003-05-29 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_button_press): remove
main_column->editable_widget on each button_press_event. Should
fix more (if not all) stale editing widgets.
2003-05-21 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable.[ch]: added GimpDrawable::alpha_changed()
signal.
* app/core/gimpimage-undo-push.c
* app/core/gimplayer.c: emit it when alpha is removed from or
added to a layer.
* app/widgets/gimpcontainertreeview.[ch]: added a
"name_attributes" column to the list store which provides a
PangoAttrList for the name column.
* app/widgets/gimplayertreeview.[ch]: connect to all layers'
"alpha_changed" and set the BG layer's name to bold.
* app/widgets/gimpdrawabletreeview.c: removed redundant assertions.
2003-05-18 Michael Natterer <mitch@gimp.org>
* app/core/gimpmarshal.list: added BOOLEAN: OBJECT, POINTER.
* app/widgets/gimpcontainerview.[ch]: added a boolean return
value to GimpContainerView::select_item() which indicates if
the select operation was successful.
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimpvectorstreeview.c: changed accordingly.
* app/widgets/gimpdrawabletreeview.c: ditto. Removed the
tree_view's select_function because it was only constraining the
widget, not the underlying select operation. Instead, implement
GimpContainerView::select_item() and disallow anything but the
floating selection to be selected. Also re-enabled the
"floating_selection_changed" callback and explicitely set the
active item so the button states get updated. Fixes bug #112487.
2003-04-29 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_button_press): when editing an object's
name, make sure we really edit its name, not its description.
2003-04-08 Michael Natterer <mitch@gimp.org>
* app/core/gimpviewable.[ch]: added vitrual function
GimpViewable::get_description() which returns the string that
should be presented to the user plus an optional tooltip with more
information. The default implementation just returns the object's
name and no tooltip.
* app/core/gimpbrush.c
* app/core/gimpbuffer.c
* app/core/gimpimage.c
* app/core/gimppalette.c
* app/core/gimppattern.c
* app/core/gimptoolinfo.c: implement get_description().
* app/core/gimpimagefile.[ch]: ditto. Renamed
gimp_imagefile_get_description() to
gimp_imagefile_get_desc_string(). Well, um, gimme a better name...
* app/gui/file-open-dialog.c: changed accordingly.
* app/file/file-utils.[ch]: renamed readXVThumb() to
file_utils_readXVThumb().
* tools/pdbgen/pdb/fileops.pdb: changed accordingly.
* app/widgets/widgets-types.h: removed GimpItemGetNameFunc typedef.
* app/widgets/gimpcontainerview-utils.[ch]: removed the the actual
get_name_funcs. They now live in the core as
GimpViewable::get_description() implementations.
* app/widgets/gimpcontainermenu.[ch]
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainermenuimpl.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpcontainerview.[ch]
* app/widgets/gimpmenuitem.[ch]
* app/widgets/gimpviewabledialog.c: removed get_name_func stuff
and use gimp_viewable_get_description().
* app/widgets/gimpcontainermenu.[ch]: added "preview_border_width"
to gimp_container_menu_set_preview_size().
* app/widgets/gimpimagedock.c: changed accordingly.
* app/pdb/fileops_cmds.c: regenerated.
2003-04-04 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.[ch]: removed
tree_view->preview_border_width.
* app/widgets/gimpcontainermenu.[ch]
* app/widgets/gimpcontainerview.[ch]: and added it here so it is
configurable in all views. Synced the changes in both classes.
* app/widgets/gimpcontainermenuimpl.[ch]
* app/widgets/gimpmenuitem.[ch]: made preview_border_size
configurable here, too.
* app/widgets/gimplayertreeview.c
* app/widgets/gimpimagedock.c
* app/gui/palette-import-dialog.c: changed accordingly.
* app/gui/file-new-dialog.c: Removed the border from the template
menu previews.
2003-03-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_select_item): call
gtk_tree_selection_select_iter() in addition to
gtk_tree_view_set_cursor() so we get the focus *and* the selection
right in all cases.
2003-03-26 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainerview.[ch]: added
gimp_container_view_construct(). The new function calls
gimp_container_view_set_preview_size() instead of simply assigning
view->preview_size (Fixes wrongly-sized toggle cells spotted by
Jimmac).
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpitemtreeview.c: call when creating a view.
* app/widgets/gimpchanneltreeview.c: check view->component_editor
for being non-NULL before accessing it.
2003-03-26 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainerview.[ch]: added the scrolled_win
to the GimpContainerView struct. Create it in init().
Added gimp_container_view_set_size_request() which adds the
scrolled_window's scrollbar and frames sizes correctly.
* app/widgets/gimpcontainergridview.[ch]
* app/widgets/gimpcontainertreeview.[ch]: removed scrolled windows
here and use the one from the parent_instance. Use the new utility
function.
* app/widgets/gimpcontainertreeview.c: enable searching in the
name column. Grab the focus in button_press.
* app/widgets/gimpcontainerpopup.[ch]: added a button_box containing
zoom in/out, view as list/grid and a button to show the permanently
open dialog. Added more parameters to gimp_container_popup_new().
* app/tools/gimpblendoptions.c
* app/tools/gimpbucketfilloptions.c
* app/tools/gimptextoptions.c
* app/tools/paint_options.c: changed accordingly.
2003-03-25 Michael Natterer <mitch@gimp.org>
* app/app_procs.c (app_init): cast batch_cmds to (const gchar **)
when passing them to batch_init().
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_button_press): moved the call just added
inside the if(view->container) because it will fail if selecting
the item destroyed the widget.
2003-03-25 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_button_press): need to call
gtk_tree_view_column_cell_set_cell_data() again after fiddling
with the GtkTreeView (fixes bug #109121).
2003-03-22 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainereditor.c: allow to create a
GimpContainerEditor without a popup menu.
* app/widgets/gimpcellrendererviewable.c: free the event we
got from gdk_get_current_event().
* app/widgets/gimpcontainerview.c: check view->hash_table for
being non-NULL before using it. Be prepared to be destroyed by as
a result of calling gimp_context_set_foo(view->context, foo).
* app/widgets/gimpcontainertreeview.[ch]: added
tree_view->editable_cells and handle *all* mouse clicks in
gimp_container_tree_view_button_press() (by returning TRUE). Start
editing on double-click only. Use gtk_tree_view_set_cursor()
instead of gtk_tree_selection_select_path() to avoid
selected/focus confusion when the focus enters the widget. Be
prepeared to be destroyed as a result of item selection.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcontainerpopup.[ch]: new GtkWindow derived
widget which pops up a selection of any GimpContainer/GimpContext
combo.
* app/widgets/gimpdatafactoryview.c
* app/widgets/gimpitemtreeview.c: add the name cell to
tree_view->editable_cells so it becomes editable.
* app/tools/gimpblendoptions.c
* app/tools/paint_options.c: use the new container popup for
selecting brushes and gradients.
2003-03-20 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-new.c (gimp_image_new_values_new): default
the fill_type to GIMP_BACKGROUND_FILL (as in gimp_initialize()).
* app/gui/file-commands.c
* app/gui/file-new-dialog.c: made more dialogs transient for their
parent window.
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpimageeditor.c
* app/widgets/gimpundoeditor.c: simplified a little bit.
2003-03-19 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcellrenderertoggle.[ch]
* app/widgets/gimpcellrendererviewable.[ch]: added public
functions to emit the "clicked" signal.
* app/widgets/gimpcontainertreeview.c: use them instead of
g_signal_emit_by_name().
* app/widgets/Makefile.am
* app/widgets/gimpcontainertreeview-dnd.[ch]: new files
implementing DND for tree views.
* app/widgets/gimpcontainertreeview.[ch]: added virtual
functions drop_possible() and drop().
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c: implement drop_possible()
and drop().
2003-03-17 Michael Natterer <mitch@gimp.org>
Made drawable/layer properties (visibility, opacity etc.)
undoable (fixes bug #73893).
* app/core/core-enums.[ch]: added undo types/groups for
visibility, mode, opacity, linked and preserve_trans.
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimpitemundo.[ch]: new GimpUndo subclass which holds a
ref'ed GimpItem pointer so (1) this doesn't need to be done by all
undo steps related to an item and (2) the item the undo step is
for can be determined from outside the undo system.
* app/core/gimpimage-undo.[ch]: added gimp_image_undo_push_item()
which returns a new GimpItemUndo.
* app/core/gimpimage-undo-push.[ch]: use it for all item related
undo steps. Removed lots of GimpItem, GimpLayer, GimpDrawable
and GimpVectors pointers from the private undo structs. Added
undo push functions for the new undo types added above.
* app/core/gimpdrawable.[ch] (gimp_drawable_set_visible): added
"gboolean push_undo" parameter.
* app/core/gimplayer.[ch] (gimp_layer_set_opacity, _mode,
_preserve_trans, _linked): added "gboolean push_undo" parameters.
* app/core/gimpimage-mask.c
* app/core/gimpimage-merge.c
* app/core/gimplayer-floating-sel.c
* app/tools/gimpmovetool.c
* app/xcf/xcf-load.c
* app/widgets/gimpdrawablelistitem.c
* app/widgets/gimplayerlistitem.c
* app/widgets/gimplayerlistview.c: changed accordingly.
* tools/pdbgen/pdb/channel.pdb
* tools/pdbgen/pdb/layer.pdb: ditto. Added '$undo' paramaters to
the foo_accessors() functions. Removed $func from foo_accesors()
because we don't manipulate items without using getters/setters
any longer.
* app/pdb/channel_cmds.c
* app/pdb/layer_cmds.c: regenerated.
* app/widgets/gimpcellrenderertoggle.[ch]: added "clicked" signal
which carries an additional "GdkModifierType state" parameter as
in GimpCellRendererViewable .
* app/widgets/gimpcontainertreeview.c: emit "clicked" from
the toggle renderer, not "toggled" so the callbacks get the
modifier state.
* app/widgets/gimpdrawabletreeview.c: resurrected the "exclusive
visible by <shift>+click" feature as in 1.2.
* app/widgets/gimplayertreeview.c: compress layer opacity undos by
looking at the top of the undo stack and not pushing an undo if
there already is a GIMP_UNDO_DRAWABLE_OPACITY for the active
layer.
2003-03-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.[ch]: added utility function
gimp_container_tree_view_find_click_cell(). Don't select the
row if one of tree_view->toggle_cells was clicked. Removed
"GList *toggle_columns" from the struct.
* app/widgets/gimpdrawabletreeview.[ch]: added a
GtkTreeSelectionFunc which ensures that nothing but the floating
selection can be selected. Removed the "eye_column" from the
struct.
* app/widgets/gimpitemtreeview.[ch]: added virtual function
rename_item() and a default implementation.
* app/widgets/gimplayertreeview.[ch]: implement rename_item() and
special case floating selections. Added
gimp_layer_tree_view_mask_update() utility function to factor out
duplicated code. Removed "chain_column" from the struct. Cleanup.
2003-03-16 Michael Natterer <mitch@gimp.org>
Added GtkTreeView versions of layers/channels/vectors:
* app/core/core-enums.[ch]: renamed GIMP_UNDO_GROUP_LAYER_PROPERTIES
to GIMP_UNDO_GROUP_ITEM_PROPERTIES.
* app/core/gimpcontainer.c (gimp_container_reorder): don't try
to reorder containers with num_children == 1.
* app/core/gimpmarshal.list: added VOID: STRING, UINT marshaller.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpchanneltreeview.[ch]
* app/widgets/gimpdrawabletreeview.[ch]
* app/widgets/gimpitemtreeview.[ch]
* app/widgets/gimplayertreeview.[ch]
* app/widgets/gimpvectorstreeview.[ch]: new widgets.
* app/widgets/gimpcellrenderertoggle.c: draw the frame only if the
cell is prelit.
* app/widgets/gimpcellrendererviewable.[ch]: added "clicked"
signal, unref the renderer in finalize(). Set the renderer's
border color to black if the cell is not selected (a hack that
saves tons of code in GimpLayerTreeView).
* app/widgets/gimpcomponenteditor.c: no need to gtk_list_store_set()
stuff we just got from the store.
* app/widgets/gimpcontainertreeview.[ch]: added lots of state used
by the new subclasses to the GimpContainerTreeView struct. Create
the GtkListStore/GtkTreeView in GObject::constructor() and only
collect parameters in init() so subclasses can modify store/view
creation. Do most of the button_press_event stuff manually and
return TRUE from the handler.
* app/widgets/gimpcontainerview.c: cleanup.
* app/widgets/gimpitemlistview.h
* app/widgets/gimpvectorslistview.h: temp hacks before they die.
* app/widgets/gimppreviewrenderer.[ch]: added
gimp_preview_renderer_update_idle() which idle-emits "update"
without invalidating.
* app/gui/dialogs-constructors.[ch]
* app/gui/dialogs.c: added constructors for the new dialogs.
* app/gui/channels-commands.c
* app/gui/channels-menu.c
* app/gui/layers-commands.c
* app/gui/layers-menu.c
* app/gui/vectors-commands.c
* app/gui/vectors-menu.c: accept tree views as callback data.
2003-03-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcomponenteditor.c: disable expensive column
auto-resizing and call gtk_tree_view_columns_autosize() in
gimp_component_editor_set_preview_size().
* app/widgets/gimpcontainertreeview.[ch]: ditto. Changed the
GtkListStore pointer in the GimpContainerTreeView struct to
GtkTreeModel.
2003-03-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcellrenderertoggle.c: fixed size calculation,
removed padding and the spacing between the icon and the frame
around it.
* app/widgets/gimpwidgets-utils.[ch]: added gimp_get_icon_size()
which returns the best matching icon size for a given allocation.
* app/widgets/gimpcomponenteditor.[ch]: adjust the eye icon's
size according to the preview_size.
* app/widgets/gimppreviewrenderer.c
(gimp_preview_renderer_default_render_stock): use gimp_get_icon_size()
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainertreeview.c: iterate the tree model
using a for() loop instead of nested if() { do { } while() }
stuff.
2003-03-06 Michael Natterer <mitch@gimp.org>
* themes/Default/images/stock-delete-16.png
* themes/Default/images/stock-lower-16.png
* themes/Default/images/stock-new-16.png
* themes/Default/images/stock-paste-16.png
* themes/Default/images/stock-raise-16.png
* themes/Default/images/stock-refresh-16.png: removed these files
since we use the icons provided by GTK+ now.
* themes/Default/gtkrc
* themes/Default/images/Makefile.am: removed them here hoo.
* libgimpwidgets/gimpstock.[ch]: reordered stuff to be consistent
in the header and the .c file. Added GIMP_STOCK_ERROR and
GIMP_STOCK_QUESTION which are available in all sizes (unlike
GTK_STOCK_DIALOG_ERROR and GTK_STOCK_DIALOG_QUESTION).
* app/core/gimpviewable.c
* app/display/gimpdisplayshell.c
* app/gui/file-commands.c
* app/gui/file-new-dialog.c
* app/gui/file-save-dialog.c
* app/widgets/gimpwidgets-utils.c
* app/widgets/gimpdatafactoryview.c: use the new stock IDs.
* app/config/gimpcoreconfig.[ch]: renamed "preview_size" to
"layer_preview_size" and added "gboolean layer_previews" which
switches layer previews on/off independent of their size.
* app/config/gimprc-blurbs.h: added/changed their blurbs.
* app/core/core-enums.[ch]: removed GIMP_PREVIEW_SIZE_NONE.
* app/core/gimpdrawable-preview.c
* app/core/gimpdrawable.c
* app/core/gimpimage.c: return NULL previews if
core_config->layer_previews is FALSE. Invalidate all layer/channel
previews whenever "layer_previews" changes.
* app/widgets/gimppreviewrendererdrawable.c
* app/widgets/gimppreviewrendererimage.c: render the stock_id
if the drawable/image returns a NULL preview. Fixes bug #107242.
* app/display/gimpdisplayshell-handlers.c: don't set the
sensitivity of the navigation button because it can no longer be
disabled.
* app/display/gimpdisplayshell-layer-select.c
* app/gui/dialogs-constructors.c
* app/gui/dialogs.c
* app/gui/paths-dialog.c: changed accordingly.
* app/gui/preferences-dialog.c: added a toggle button for the new
"layer_previews" boolean.
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainerlistview.c: chain up unconditionally
in GimpContainerView::clear_items().
* app/widgets/gimpcontainertreeview.c: ditto. Made the reorder()
implementation lengthy and eeky (but working) again... Stop signal
emission on double clicks so GtkTreeView doesn't re-select the
item we are about change.
* app/widgets/gimpcontainerview.c
(gimp_container_view_real_clear_items): need to use
g_hash_table_new_full() here too or everything will b0rk.
* app/widgets/gimppreviewrenderer.c
(gimp_preview_renderer_default_render_stock): use
gtk_widget_render_icon() instead of gtk_icon_set_render_icon().
* tools/pdbgen/enums.pl: this file wanted to be regenerated...
2003-03-05 Manish Singh <yosh@gimp.org>
* configure.in: require GTK+ 2.2. The 2.0.x series is no longer
maintained, and there are some very real bugs that won't go away.
* app/gui/about-dialog.c
* app/widgets/gimppreviewrenderer.c
* app/widgets/gimptoolbox-color-area.c
* plug-ins/common/uniteditor.c: remove special casing for GTK+ 2.0
vs. 2.2
* app/widgets/gtkwrapbox.[ch]
* app/widgets/gtkhwrapbox.[ch]
* app/widgets/gtkvwrapbox.[ch]: remove deprecated functions
* app/gui/gui.c: free return value of gdk_get_display ()
* app/widgets/gimpcontainertreeview.c: use gtk_list_store_move_before () for reordering.
2003-03-03 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppreviewrenderer.[ch]: removed the constructors
with a GimpViewable parameter and always create renderers from
viewable types only. Made gimp_preview_renderer_update() emit only
the "update" signal and added the new function
gimp_preview_renderer_invalidate() which does what the old
_update() did (invalidating and adding an idle function which
emits "update"). Added gimp_preview_renderer_remove_idle() so
renderer updating can be fully controlled using public functions.
* app/widgets/gimppreviewrendererbrush.[ch]: no need to remember
the widget for the brushpipe animation, simply call
gimp_preview_renderer_update() in the animation timeout.
* app/widgets/gimppreview.[ch]
* app/widgets/gimpcontainertreeview.c: changed accordingly. Call
gimp_preview_renderer_remove_idle() after setting the initial
viewable because we will be updated anyway by the first expose.
* app/widgets/gimppreview.[ch]: Added a size_request()
implementation. Removed gimp_preview_update(). Added new
constructor gimp_preview_new_full_by_types() to make the
constructor API symmetric. Removed code duplication by calling the
_by_types() constructors from the ones taking GimpViewable
parameters.
* app/gui/palette-import-dialog.c
* app/widgets/gimppropwidgets.c
* app/widgets/gimpselectioneditor.c: changed accordingly.
2003-03-01 Michael Natterer <mitch@gimp.org>
* app/core/gimpbuffer.c: don't scale the preview up if the
buffer is too small.
* app/core/gimppattern.c: don't add a white border around the
preview if the pattern is too small.
* app/widgets/gimppreviewrenderer.[ch]: new object. A buffer
that updates itself on GimpViewable changes and can render
itself to any widget. Basically GimpPreview reduced to the
render and draw code.
* app/widgets/gimppreview.[ch]: removed all rendering and drawing
code and keep a GimpPreviewRenderer instance. Connect to its
"update" signal for queuing draws on the preview.
* app/widgets/gimpcellrendererviewable.[ch]
* app/widgets/gimpcontainertreeview.c: same here: removed
rendering and drawing code and keep GimpPreviewRenderers in the
list store. Delays preview creation for GtkTreeViews until the
buffer is really needed for drawing and adds idle preview updating
on viewable changes.
* app/widgets/gimppreview-utils.[ch]
* app/widgets/gimpbrushpreview.[ch]
* app/widgets/gimpbufferpreview.[ch]
* app/widgets/gimpdrawablepreview.[ch]
* app/widgets/gimpimagepreview.[ch]: removed...
* app/widgets/gimppreviewrenderer-utils.[ch]
* app/widgets/gimppreviewrendererbrush.[ch]
* app/widgets/gimppreviewrendererdrawable.[ch]
* app/widgets/gimppreviewrendererimage.[ch]: ...and converted to
GimpPreviewRenderer subclasses.
* app/display/gimpnavigationview.c
* app/gui/palette-import-dialog.c
* app/widgets/Makefile.am
* app/widgets/widgets-enums.h
* app/widgets/widgets-types.h
* app/widgets/gimpchannellistview.c
* app/widgets/gimpcomponentlistitem.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainermenuimpl.c
* app/widgets/gimplayerlistitem.c
* app/widgets/gimplistitem.c
* app/widgets/gimpnavigationpreview.[ch]
* app/widgets/gimpselectioneditor.c
* app/widgets/gimpvectorslistview.c: changed accordingly.
2003-02-26 Michael Natterer <mitch@gimp.org>
* app/core/gimpviewable.[ch]: added "gchar *stock_id" to the
GimpViewable struct. It is used by the GUI if the get_preview()
functions return NULL. Default to GTK_STOCK_DIALOG_QUESTION.
* app/core/gimptoolinfo.[ch]: set the tool's stock_id. Removed
the cached GdkPixbuf. Don't implement any preview function
so the GUI uses the stock_id.
* app/tools/tool_manager.c: removed GdkPixbuf creation, removed
the #warning about the buggy way we created the pixbuf.
* app/gui/dialogs-constructors.c
* app/gui/image-menu.c
* app/tools/gimpcroptool.c
* app/tools/gimphistogramtool.c
* app/tools/gimpimagemaptool.c
* app/tools/gimpmeasuretool.c
* app/tools/gimptransformtool.c
* app/widgets/gimptoolbox.c: use viewable->stock_id instead
of tool_info->stock_id.
* app/core/gimpbrush.c
* app/core/gimpgradient.c
* app/core/gimpimagefile.c
* app/core/gimpundo.c: simplified get_preview() implementations:
- never scale previews up, only down.
- don't render white or checks backgrounds but simply return
TempBufs with alpha and let the preview system do its job.
- don't add padding but simply return previews smaller than
requested.
* app/display/gimpdisplayshell-render.[ch]: added
"render_blend_white", a 2d lookup table for blending on white,
just as the check lookup tables. Added "render_white_buf".
* app/widgets/gimppreview.[ch]: changed a lot:
- don't render the preview's border into the buffer.
- added "GdkGC *border_gc" and draw the preview's border in expose()
using gdk_draw_rectangle().
- added "GdkPixbuf *no_preview_pixbuf" and create it in
gimp_preview_real_render() if gimp_viewable_get_preview()
returned NULL.
- factored the actual preview rendering out to
gimp_preview_render_to_buffer(). Added configurable background
rendering for the preview itself and it's padding area
(the area the preview is larger than the buffer returned
by gimp_viewable_get_preview()).
- changed gimp_preview_render_and_flush() to
gimp_preview_render_preview() and added "inside_bg" and
"outside_bg" parameters.
- use the new render buffers for blending on white.
* app/widgets/gimpbrushpreview.c
* app/widgets/gimpbufferpreview.c
* app/widgets/gimpdrawablepreview.c
* app/widgets/gimpgradientpreview.c
* app/widgets/gimpimagepreview.c
* app/widgets/gimppalettepreview.c
* app/widgets/gimppatternpreview.c: don't create large white
TempBufs to center the previews in but simply set the TempBuf's
offsets to get them centered. Simplified & cleaned up many preview
render functions. Pass the correct GimpPreviewBG modes to
gimp_preview_render_preview().
* app/widgets/gimpcellrendererviewable.[ch]: new GtkCellRenderer
class derived from GtkCellRendererPixbuf which knows how
to use gimp_viewable_get_preview_size() and renders the
viewable's stock item if no preview can be created.
* app/widgets/gimpcontainertreeview.c: added a GtkTreeCellDataFunc
which creates the preview pixbuf if needed so we don't create it
unconditionally upon item insertion. Fixed preview size assertion
to use GIMP_PREVIEW_MAX_SIZE, not "64". Block "selection_changed"
while reordering the selected item.
* app/widgets/gimpcontainerview.c: cosmetic.
* app/widgets/gimpimagefilepreview.[ch]
* app/widgets/gimptoolinfopreview.[ch]
* app/widgets/gimpundopreview.[ch]: removed because the default
implementation is good enough.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimppreview-utils.c: changed accordingly.
* app/gui/dialogs-constructors.[ch]
* app/gui/dialogs-menu.c
* app/gui/dialogs.c
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: register grid and tree view variants
of the document history.
Unrelated:
* app/gui/gui.c (gui_exit_finish_callback): disconnect from
signals earlier.
* app/gui/user-install-dialog.c: create the "tool-options" subdir
of the user's ~/.gimp-1.3 directory.
2003-02-25 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_button_press): the gtk_tree_model_get()
argument list ends with -1, not NULL.
2003-02-24 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainerview.[ch]: added "GDestroyNotify
insert_data_free" to the GimpContainerViewClass struct. Pass it as
"value_destroy_func" to g_hash_table_new_full().
* app/widgets/gimpcontainertreeview.[ch]: set g_free() as
insert_data_free, so we don't leak the GtkTreeIters used as
insert_data. Added DND stuff (you can drag any item without
selecting it using mouse button 2). Cleanup.
* app/widgets/gimpcontainereditor.c: cosmetic.
2003-02-21 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewabledialog.c: added missing cast.
* app/widgets/gimpcontainertreeview.c: do not include a non-existant
header file.