2004-05-13 Michael Natterer <mitch@gimp.org>
* app/menus/Makefile.am: added file-menu.[ch] and
file-dialog-menu.[ch]
* app/menus/menus.[ch]: removed menus_open_recent_add()...
* app/menus/file-menu.[ch]: ...and added it here as file_menu_setup().
* app/menus/image-menu.c
* app/menus/toolbox-menu.c: changed accordingly.
* app/menus/file-dialog-menu.[ch]: added factored out code from the
file-open and file-save menus as file_dialog_menu_setup().
* app/menus/file-open-menu.c
* app/menus/file-save-menu.c: call file_dialog_menu_setup().
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-27 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimppluginaction.[ch]: new GtkAction subclass which
remembers the PlugInProcDef.
* app/widgets/gimpactiongroup.[ch]: added "gpointer user_data" to
the GimpActionGroup struct and to gimp_action_group_new(). Removed
the user_data parameter from gimp_action_group_add_*_actions().
* app/widgets/gimpactionfactory.[ch]: changed accordingly.
* app/actions/*-actions.[ch]: removed user_data from all setup_funcs.
* app/actions/plug-in-actions.c: use a GimpPlugInAction and
finally use the right user_data for the callback so plug-in
callbacks have a proper context.
* app/gui/plug-in-menus.[ch]: renamed plug_in_menus_create2() to
plug_in_menus_setup().
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: changed accordingly.
2004-04-27 Michael Natterer <mitch@gimp.org>
Correctly translated & sorted plug-in actions & menu entries:
* app/widgets/gimpuimanager.[ch]: added a "gchar *name" property
and a hash table which keeps all created UI managers (similar to
GimpActionGroup's hash table). Added function
gimp_ui_managers_from_name() which returns a list of all managers
with the given name.
* app/widgets/gimpmenufactory.c: register a name per UI manager
and pass the name to gimp_ui_manager_new().
* app/actions/plug-in-actions.c: added code which correctly
translates the created plug-in actions and also creates translated
menu actions for the plug-in's menu_path elements.
* app/gui/plug-in-menus.[ch]: sort the plug-ins' menu entries
using a GTree. For each entry, recursivlely create submenus
from the dynamic menu actions created above before creating
the plug-in's menu entry itself.
* app/gui/image-menu.c (image_menu_setup2)
* app/gui/toolbox-menu.c (toolbox_menu_setup2): call
plug_in_menus_create2().
* app/gui/gui-vtable.c (gui_menus_create_entry)
(gui_menus_delete_entry): added some uglyness which maps old <Prefix>
menu identifiers to new-style UI manager plus ui_path tuples and
call plug_in_menus_add,remove_proc() accordingly.
* menus/image-menu.xml
* menus/toolbox-menu.xml: added name="Foo" attributes to all menus
so plug-in entries find their place.
2004-04-26 Michael Natterer <mitch@gimp.org>
* app/widgets/widgets-types.h: added GimpUIManagerSetupFunc typedef.
* app/widgets/gimpuimanager.[ch]: added the setup_func to the
GimpUIManagerUIEntry struct and to gimp_ui_manager_ui_register().
Call the setup_func after creating the UI. Replaced the term
"identifier" by "ui_path".
* app/widgets/gimpmenufactory.c: ditto.
* app/gui/menus.c (menus_init): register the new setup_funcs below.
* app/gui/menus.[ch] (menus_open_recent_add)
* app/gui/image-menu.[ch] (image_menu_setup2)
* app/gui/toolbox-menu.[ch] (toolbox_menu_setup2): new setup_funcs
which add the "Open Recent" menu items.
* app/actions/file-actions.c: removed "file-open-recent-empty"
action because it's not needed.
* menus/image-menu.xml
* menus/toolbox-menu.xml: removed "file-open-recent-empty" menu
items and added <placeholder>s for the "Open Recent" menu items.
2004-03-04 Sven Neumann <sven@gimp.org>
* app/config/gimprc-blurbs.h: marked new strings for translation.
* libgimpwidgets/gimpstock.h: added #defines for missing icons.
This allows us to replace them later without changing the API.
* app/gui/dialogs-constructors.c
* app/gui/dialogs-menu.c
* app/gui/gradient-editor-commands.c
* app/gui/image-menu.c
* app/gui/toolbox-menu.c
* app/tools/gimppaintoptions-gui.c
* app/tools/gimptextoptions.c
* app/widgets/gimppaletteeditor.c: use the new stock icon names
instead of abusing GTK+ and GIMP tool stock icons.
* app/gui/preferences-dialog.c (prefs_dialog_new): added icons
to the new check buttons.
2004-02-27 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpfiledialog.[ch]: new widget swallowing most
of file-dialog-utils.[ch]'s functionality.
* app/widgets/widgets-types.h: added "gpointer callback_data" to
GimpItemFactorySetupFunc so the setup_funcs can create items in
the same context as the item factory's default items.
* app/widgets/gimpmenufactory.c (gimp_menu_factory_menu_new):
pass "callback_data" to setup_func().
* app/gui/file-open-menu.[ch]
* app/gui/file-save-menu.[ch]: use the passed callback_data
when creating the menus and attach the file_proc to the
menu items using g_object_set_data().
* app/gui/file-commands.[ch]: merged separate file type callbacks
for open and save dialogs into one callback which simply
calls gimp_file_dialog_set_file_proc().
* app/gui/file-dialog-utils.[ch]: removed file_dialog_new()
and file_dialog_set_proc().
* app/gui/file-open-dialog.[ch]
* app/gui/file-save-dialog.[ch]: use the new widget and removed
global variables except the dialog pointer itself.
* app/gui/image-menu.[ch]
* app/gui/tool-options-menu.[ch]
* app/gui/toolbox-menu.[ch]: changed accordingly.
2004-02-05 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-crop.c: removed trailing whitespace.
* app/gui/debug-commands.[ch]
* app/gui/toolbox-menu.c: renamed ENABLE_DEBUG_ENTRIES to
ENABLE_DEBUG_MENU and #define it to be equal to GIMP_UNSTABLE.
2003-10-23 Sven Neumann <sven@gimp.org>
* themes/Default/images/Makefile.am
* themes/Default/images/stock-tools-[16|24].png
* themes/Default/images/stock-device-status-24.png
* themes/Default/images/stock-tool-options-24.png: new icons drawn
by Jimmac.
* libgimpwidgets/gimpstock.[ch]: register the new icons.
* app/gui/dialogs-constructors.c
* app/gui/dialogs-menu.c: use the new GIMP_STOCK_TOOLS icon.
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: add the Tools dialog entry here as well.
* app/widgets/gimphelp-ids: s/TOOL_DIALOG/TOOLS_DIALOG/.
2003-09-30 Sven Neumann <sven@gimp.org>
* app/gui/dialogs-commands.c (dialogs_create_dockable_cmd_callback):
accept a list of dialog identifiers and try to raise an existing
dockable from the list. If that fails, create a new one from the
first entry.
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: specify alternative dialog identifiers
where appropriate.
* app/vectors/gimpstroke.c (gimp_stroke_interpolate): use NULL
instead of 0.
2003-08-25 Michael Natterer <mitch@gimp.org>
* app/widgets/gimphelp-ids.h
* app/widgets/gimppaletteeditor.c
* app/gui/palette-editor-menu.c: help IDs for the palette editor.
* app/gui/toolbox-menu.c: forgot some dialog help IDs.
2003-08-21 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/gimphelp-ids.h: new file defining the available help
topics. Work in progress and totally unusable for matching to the
help system. Stay tuned...
* app/gui/about-dialog.c
* app/gui/brushes-menu.c
* app/gui/buffers-menu.c
* app/gui/channels-commands.[ch]
* app/gui/channels-menu.c
* app/gui/edit-commands.c
* app/gui/file-commands.c
* app/gui/file-new-dialog.c
* app/gui/file-open-dialog.c
* app/gui/file-save-dialog.c
* app/gui/gradients-commands.c
* app/gui/gradients-menu.c
* app/gui/image-menu.c
* app/gui/layers-commands.[ch]
* app/gui/layers-menu.c
* app/gui/module-browser.c
* app/gui/offset-dialog.c
* app/gui/palettes-menu.c
* app/gui/patterns-menu.c
* app/gui/resize-dialog.c
* app/gui/select-commands.c
* app/gui/templates-menu.c
* app/gui/tips-dialog.c
* app/gui/toolbox-menu.c
* app/gui/vectors-commands.[ch]
* app/gui/vectors-menu.c: replaced literal HTML file paths by help
IDs from gimphelp-ids.h. Renamed some menu callbacks to be
consistent with similar ones. This is just an intermediate commit
and not finished.
While browsing all the menus, I noticed that our "x to selection"
functions are not consistent at all. They should all offer the
REPLACE,ADD,SUBTRACT,INTERSECT options:
* app/core/gimpchannel.[ch]: added new function
gimp_channel_new_from_alpha(). Removed gimp_channel_layer_alpha()
and gimp_channel_layer_mask().
* app/core/gimpimage-mask.[ch]: added
gimp_image_mask_select_alpha() and
gimp_image_mask_select_component() which offer the full set of
operation, feather and feather_radius parameters as the other
selection functions.
* app/core/gimpimage-mask-select.[ch]: removed
gimp_image_mask_layer_alpha() and gimp_image_mask_layer_mask().
* app/gui/channels-commands.c (channels_channel_to_selection): use
gimp_image_mask_select_component() instead of implementing it
here.
* app/gui/image-menu.c
* app/gui/layers-commands.[ch]: offer the full choice of
REPLACE,ADD,SUBTRACT,INTERSECT with "Alpha to Selection" and "Mask
to Selection".
* tools/pdbgen/pdb/selection.pdb: changed accordingly.
* app/pdb/selection_cmds.c: regenerated.
2003-07-08 Michael Natterer <mitch@gimp.org>
Added configurable styles for dockable tabs (fixes bug #87376):
* app/widgets/widgets-enums.[ch]: added new enum GimpTabStyle
which can be one on { ICON, NAME, ICON_NAME, ICON_BLURB }.
* app/widgets/gimpdockable.[ch]: added a GimpTabStyle member to
the GimpDockable struct which defaults to GIMP_TAB_STYLE_ICON.
Renamed "short_name" to "name" and "name" to "blurb". Renamed
GimpDockableGetTabFunc to GimpDockableGetIconFunc. Implemented all
tab styles in gimp_dockable_real_get_tab_widget() and use the
"get_icon_func" only for creating the tab's icon, not the entire
tab widget.
* app/widgets/gimpdockbook.[ch]: changed accordingly. Create the
menu widgets and the DND icon using gimp_dockable_get_tab_widget()
with tab_style == GIMP_TAB_STYLE_ICON_BLURB instead of duplicating
tons of code. Made gimp_dockbook_get_tab_widget() public because
it's needed for exchanging tabs on-the-fly.
* app/widgets/gimpimagedock.c: changed accordingly.
* app/widgets/gimpdialogfactory.c: remember the dockables' tab
style in sessionrc.
* app/gui/dialogs-menu.c: added a submenu to select the tab style
for each dockable.
* app/gui/dialogs-commands.[ch]: new callback
dialogs_tab_style_cmd_callback().
* app/gui/dialogs-constructors.[ch]: added stock_ids to all
dockables, swapped the "name" and "blurb" parameters, reordered
functions, cleanup.
* app/gui/dialogs-menu.c
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: use GIMP_STOCK_DEFAULT_COLORS for the
color editor dockable and renamed it to "FG/BG Color".
2003-07-07 Michael Natterer <mitch@gimp.org>
* app/gui/Makefile.am
* app/gui/device-status-dialog.[ch]: removed...
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpdevicestatus.[ch]: ...added here as widget. The
thing is narrower now but not nicer and needs some polishing.
* app/widgets/gimppropwidgets.[ch]: added gimp_prop_color_area_new()
and gimp_prop_stock_image_new() (the latter is still unused).
* app/gui/dialogs-constructors.[ch]
* app/gui/dialogs.c: made the device status a dockable.
* app/gui/dialogs-menu.c
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: changed accordingly.
* app/gui/gui.c: update the device status dialog indirectly now
using the new gui_device_change_notify() callback.
2003-07-02 Michael Natterer <mitch@gimp.org>
* app/widgets/widgets-types.h: added GimpMenuPositionFunc typedef.
* app/widgets/gimpwidgets-utils.[ch]: made gimp_menu_position()
a GimpMenuPositionFunc.
* app/widgets/gimpitemfactory.[ch]
(gimp_item_factory_popup_with_data): added position_func and
position_data parameters. Use gimp_menu_position() if no
position_func is given.
* app/display/gimpdisplayshell-callbacks.c: removed
gimp_display_shell_origin_menu_popup() and call
gimp_item_factory_popup_with_data() directly from
gimp_display_shell_popup_menu(), using
gimp_display_shell_origin_menu_position() as position_func.
* app/widgets/gimpeditor.[ch]: added a GtkWidget::popup_menu()
implementation so all context menus are keyboard accessible.
Added "gpointer factory_data" member so the menu can be popped up
in the right context.
* app/gui/channels-menu.c
* app/gui/layers-menu.c
* app/gui/vectors-menu.c: make them work without an active image
since they can be popped up at any time now.
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: cleanup.
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpdockbook.c
* app/widgets/gimperrorconsole.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimppaletteeditor.c: pass NULL, NULL as
position_func and position_data so the default implementation is
used.
2003-06-06 Michael Natterer <mitch@gimp.org>
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: moved the convenience items which
create new docks from the "Dialogs/" level to a new
"Dialogs/Create New Dock/" sub-menu. Fixes bug #111278.
* app/gui/dialogs-commands.[ch] (dialogs_create_data_cmd_callback):
new convenience constructor callback. Factored out duplicated
code to the new dialogs_create_dock() utility function.
2003-06-06 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpitemfactory.c (gimp_item_factory_set_label):
use gtk_label_set_text_with_mnemonic() instead of just
gtk_label_set_text().
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: added mnemonics for all sub-menus.
Fixes bug #106991.
* app/gui/image-menu.c: cleaned up the "Layers" menu: moved
sub-menus together. Changed the "Stack" menu's labels and
accelerators and added "Select Top/Bottom Layer" for consistency
(bound to Home/End).
* app/gui/layers-commands.[ch]: changed accordingly. Added the
new select top/bottom callbacks.
2003-04-05 Michael Natterer <mitch@gimp.org>
* app/config/gimpconfig-utils.c (gimp_config_reset_properties):
reset object properties only if they are GIMP_PARAM_SERIALIZABLE.
* app/core/gimpcontext.[ch]: added a GimpTemplate property.
* app/gui/dialogs-constructors.[ch]
* app/gui/dialogs.c: added a template dialog.
* app/gui/dialogs-menu.c
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: and menu entries to open it.
* app/widgets/gimpdnd.[ch]: added DND for GimpTemplates.
2003-04-04 Michael Natterer <mitch@gimp.org>
* app/gui/documents-menu.c: use "", not NULL for "no accelerator",
since NULL will show the stock_item's accelerator.
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: added a "Document History..." menu item
at the bottom of the "Open Recent" submenus.
* app/gui/menus.c (menus_last_opened_add): reorder the dynamically
created entries to the top of the menu. Cleanup.
2003-04-01 Sven Neumann <sven@gimp.org>
* app/gui/toolbox-menu.c (toolbox_menu_entries): removed some
debug entries which are not needed any longer. Fixes bug #109680.
* app/gui/Makefile.am
* app/gui/test-commands.[ch]: removed these files from CVS.
2003-03-26 Michael Natterer <mitch@gimp.org>
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: removed cut'n'paste-duplicated
accelerators from the new font selection menu entries.
2003-03-25 Sven Neumann <sven@gimp.org>
* Makefile.am
* gimpintl.h: removed this header file.
* gimpmiscui.c: include libgimp-intl.h.
* gimp.c (gimp_main): call setlocale() and bind to the libgimp
textdomain so that plug-ins don't need to do that explicitely.
* libgimp/stdplugins-intl.h: added the functionality that used to
live in gimpintl.h and removed the libgimp related stuff. Got rid
of the INIT_I18N_UI() macro.
* plug-ins/*/*.c: removed all occurances of INIT_I18N_UI().
Plug-ins simply call INIT_I18N() once in their run() function.
* plug-ins/script-fu/script-fu-intl.h: added the functionality
that used to live in gimpintl.h and removed the libgimp related
stuff.
* app/Makefile.am
* app/gimp-intl.h: new file that defines the gettext macros for
the GIMP core.
* app/*/*.c: include gimp-intl.h instead of libgimp/gimpintl.h.
* plug-ins/script-fu/scripts/test-sphere.scm: fixed typos.
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-20 Michael Natterer <mitch@gimp.org>
Reimplemented the undo history:
* app/Makefile.am
* app/undo_history.[ch]: removed.
Changes/cleanups to the undo system to enable/simplify the new
undo history implementation:
* app/core/core-types.h: removed enum undo_event_t. Removed the
GimpImage parameter from GimpUndoPopFunc and GimpUndoFreeFunc
because GimpUndo has a GimpImage pointer now (see below).
* app/core/core-enums.[ch]: added enum GimpUndoEvent. Added an
enum value for REDO_EXPIRED.
* app/core/gimpimage.[ch]: added a GimpUndo pointer to the
"undo_event" signal which needs to be passed for all events except
UNDO_FREE.
* app/display/gimpdisplayshell-handlers.c: changed accordingly.
* app/core/gimpundo.[ch]: added a GimpImage pointer to the
GimpUndo struct. Removed GimpImage parameters all over the
place. Added preview stuff. The preview creation needs to be
triggered explicitly using gimp_undo_create_preview() because the
GimpUndo can't know when it's possible to create the preview.
* app/core/gimpimage-undo-push.c
* app/paint/gimppaintcore-undo.c
* app/tools/gimptransformtool-undo.c: changed accordingly, cleanup.
* app/core/gimpundostack.[ch]: ditto. Return the freed undo from
gimp_undo_stack_free_bottom(). Removed unused container signal
handlers.
* app/core/gimpimage-undo.c: free the redo stack the same way old
undos are freed (from bottom up). Emit "undo_event" with event ==
REDO_EXPIRED for each removed redo.
* app/core/gimpmarshal.list: added new marshallers.
New undo history implementation:
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpundoeditor.[ch]
* app/widgets/gimpundopreview.[ch]: new widgets for the undo
step previews and the history itself.
* app/widgets/gimppreview-utils.c: added GimpUndoPreview to the
list of possible preview types.
* app/gui/dialogs-constructors.[ch]
* app/gui/dialogs-menu.c
* app/gui/dialogs.c
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: removed the old and added the new undo
history to the dialog factory and the various dialog menus.
* app/widgets/gimpdnd.[ch]: don't warn if a GType has no
corresponding DND type. Instead, return FALSE from the function
that failed.
* app/widgets/gimppreview.c: check the return value of gimpdnd
functions. Not only add drag sources but also remove them when no
longer needed.
* app/widgets/gimpselectioneditor.h: removed unneeded inclusion of
"gui/gui-types.h".
2003-01-17 Michael Natterer <mitch@gimp.org>
One more Plug-In cleanup, it's still a mess...
* app/plug-in/plug-in-def.[ch]: renamed "gboolean query" field
to "needs_query". Added setters for all values. Added
g_return_if_fail() stuff to all functions.
* app/plug-in/plug-in-proc.[ch]: added plug_in_proc_def_new().
Removed the "gboolean data_only" parameter from
plug_in_proc_def_destroy() and renamed it to
plug_in_proc_def_free(). Added plug_in_proc_def_get_progname()
which handles GIMP_TEMPORARY procedures correctly.
* app/plug-in/plug-in-rc.c: use the new stuff above.
* app/plug-in/plug-in.[ch]: renamed field "user_data" to
"plug_in_def" and added a comment that it is valid only during
query() and init(). Use the new APIs above. Pass meaningful
locale_domains and help_paths when adding temporary procedures
(fixes Scrip-Fu menu translation the right way (TM)). Cleanup.
* app/plug-in/plug-ins.[ch]: renamed plug_ins_def_add() to
plug_ins_def_add_from_rc(). Renamed plug_ins_proc_def_[add|remove]()
to plug_ins_temp_proc_def_[add|remove](). Added "Gimp" parameters
to plug_ins_help_path() and plug_ins_locale_domain(). Removed
unused pre-1.2 cruft "gimprc_prof_defs" and plug_ins_image_types().
Reverse gimp->load_procs and gimp->save_procs after all procedures
are registered. Removed Script-Fu translation hack. Reordered stuff.
* app/gui/plug-in-menus.[ch]: changed accordingly. Named all
public functions plug_in_menus_*(). Fixed Script-Fu menu translation
by using plug_in_proc_def_get_progname(). Cleanup.
* app/gui/file-open-menu.c
* app/gui/file-save-menu.c: don't g_slist_reverse() gimp->load_procs
and gimp->save_procs here.
* app/gui/toolbox-menu.c
* app/gui/image-menu.c
* tools/pdbgen/pdb/help.pdb
* tools/pdbgen/pdb/plug_in.pdb: changed accordingly.
* app/pdb/help_cmds.c
* app/pdb/plug_in_cmds.c: regenerated.
Unrelated:
* app/gui/image-menu.c
* app/widgets/gimpitemfactory.c: s/"tearoff1"/"tearoff"/g. I don't
get why the "1" was there. Minor cleanup.
2003-01-13 Michael Natterer <mitch@gimp.org>
* 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/file-open-menu.[ch]
* app/gui/file-save-menu.[ch]
* app/gui/gradient-editor-menu.[ch]
* app/gui/gradients-menu.[ch]
* app/gui/image-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/toolbox-menu.[ch]
* app/gui/vectors-menu.[ch]: new files, one per GimpItemFactory,
containing the menu entries and their setup and update funcs.
* app/gui/brushes-commands.[ch]
* app/gui/patterns-commands.[ch]: removed because they contained
only update funcs.
* app/gui/Makefile.am: changed accordingly. Split the huge
SOURCES list in smaller ones for menus and dialogs.
* app/gui/menus.[ch]: removed the menu entries and setup funcs.
Added MENU_SEPARATOR() and MENU_BRANCH() macros to the header.
Made some utility functions public.
* app/display/gimpdisplayshell.[ch]
* app/gui/buffers-commands.[ch]
* app/gui/channels-commands.[ch]
* app/gui/colormap-editor-commands.[ch]
* app/gui/dialogs-commands.[ch]
* app/gui/documents-commands.[ch]
* app/gui/gradient-editor-commands.[ch]
* app/gui/gradients-commands.[ch]
* app/gui/images-commands.[ch]
* app/gui/layers-commands.[ch]
* app/gui/palette-editor-commands.[ch]
* app/gui/palettes-commands.[ch]
* app/gui/qmask-commands.[ch]
* app/gui/vectors-commands.[ch]: removed the update funcs.
* app/gui/plug-in-menus.[ch]: renamed plug_in_set_menu_sensitivity()
to plug_in_menus_update(). Cleanup.
* app/gui/paths-dialog.[ch]: added the <Paths> entries here
so they will go away together with these files.
* app/gui/dialogs-constructors.c
* app/gui/drawable-commands.c: removed useless #includes.