2004-09-19 Michael Natterer <mitch@gimp.org>
* app/actions/qmask-commands.c (qmask_invert_cmd_callback): is a
GtkRadioAction callback but behaved like a GtkToggleAction
callback. Fixes bug #152948.
2004-09-19 Sven Neumann <sven@gimp.org>
Try to make floating selections more obvious:
* app/widgets/gimplayertreeview.c
(gimp_layer_tree_view_floating_selection_changed): always display
"Floating Selection" as the name for a floating selection.
* app/core/gimpselection.c (gimp_selection_float): call the new
layer "Selection" instead of "Floating Selection". This is what
will be displayed if the FS is turned into a layer.
* app/actions/layers-commands.c (layers_edit_layer_query): don't
special case floating selections here.
* app/core/gimplayer-floating-sel.c: cosmetics.
2004-09-18 Sven Neumann <sven@gimp.org>
* app/actions/qmask-commands.c
* libgimpcolor/gimprgb.c (gimp_rgba_distance): just some cleanup.
* app/core/gimpimage-qmask.c (gimp_image_set_qmask_color): always
set gimage->qmask_color regardless of the qmask state.
* libgimpwidgets/gimpcolorbutton.c (gimp_color_button_new): set
the type before setting the color.
2004-09-15 Michael Natterer <mitch@gimp.org>
* app/widgets/gimphelp-ids.h: added help IDs for the drawable- and
vectors-visible and -liked actions as well as for the layer mask
property action.
* app/actions/drawable-actions.c
* app/actions/vectors-actions.c: use them.
* app/actions/layers-actions.c
* app/actions/layers-commands.[ch]: ditto. Use
GIMP_STOCK_TRANSPARENCY for all layer opacity actions. Replaced
"paint_mode" by "mode" in all action and function/variable names
because this is the layer mode, not a paint mode.
* app/actions/channels-commands.c
* app/actions/layers-commands.c
* app/actions/vectors-commands.c: set the "activates-default"
property on the name entry in all "New Foo" and "Edit Foo
Attributes" dialogs except in the "New Layer" dialog.
Addresses bug #148026.
* menus/image-menu.xml.in: added a (commented out) layer
properties menu containing all the new actions.
2004-09-15 Michael Natterer <mitch@gimp.org>
* app/actions/layers-actions.c
* app/actions/layers-commands.[ch]: added actions and callbacks
"layers-preserve-transparency" and
"layers-paint-mode-first,last,previous,next". Update the "active"
state of the recently added layer mask property actions in
layers_actions_update().
* app/actions/drawable-actions.c
* app/actions/drawable-commands.[ch]: added actions and callbacks
for "drawable-visible" and "drawable-linked". Fixes bug #152597.
* app/actions/vectors-actions.c
* app/actions/vectors-commands.[ch]: same here ("vectors-visible"
and "vectors-linked").
* app/widgets/gimplayertreeview.c
(gimp_layer_tree_view_preserve_button_toggled): flush the image
so the new actions are updated. Compress preserve_trans undos.
* menus/image-menu.xml.in: added the layer mask property actions
to the Layers/Mask submenu.
* menus/layers-menu.xml: reordered the mask property actions
to have the same order as in the image menu.
2004-09-14 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpbufferview.c: simplified the code which deals
with the global_buffer's preview. The new buffer view renderer
does the aspect ratio magic all by itself now.
* app/actions/image-commands.h: removed trailing whitespace.
2004-09-13 Michael Natterer <mitch@gimp.org>
* app/actions/file-commands.c: resurrected file_open_dialog_show()
and file_save_dialog_show() as private utility functions to get
rid of code duplication.
2004-09-13 Michael Natterer <mitch@gimp.org>
* app/dialogs/Makefile.am
* app/dialogs/file-dialog-utils.[ch]: removed these files.
* app/dialogs/file-save-dialog.[ch]: removed functions
file_save_dialog_show() and file_save_a_copy_dialog_show() and
changed internal function file_save_dialog_create() to
file_save_dialog_new().
* app/dialogs/dialogs.c
* app/dialogs/dialogs-constructors.[ch]: made it completely
managed by the dialog factory.
* app/actions/file-commands.c: create it using the dialog
factory. Attach it to the image so we open only one save
dialog per image.
* app/dialogs/file-open-dialog.c: added precondition checks
to file_open_dialog_new().
2004-09-13 Michael Natterer <mitch@gimp.org>
* app/dialogs/file-open-dialog.[ch]: removed function
file_open_dialog_show() and changed internal function
file_open_dialog_create() to file_open_dialog_new().
* app/dialogs/dialogs.c
* app/dialogs/dialogs-constructors.[ch]: made it completely
managed by the dialog factory.
* app/actions/file-commands.c: create it using the dialog factory.
2004-09-11 Simon Budig <simon@gimp.org>
* app/widgets/gimpdialogfactory.[ch]: Added boolean parameter to
gimp_dialog_factories_toggle to make it possible to ensure a visible
toolbox.
* app/actions/dialogs-commands.c: Use the new parameter to ensure
toolbox visibility after the last image window closes.
* app/display/gimpdisplayshell-callbacks.c: Changed accordingly.
Fixes bug #137057 (the discussion is in bug #152285)
2004-09-09 Michael Natterer <mitch@gimp.org>
* app/gui/convert-dialog.[ch] (convert_dialog_new): changed
GimpDisplay* parameter to GimpProgress* because that's what it's
used for.
* app/actions/image-commands.c (image_convert_cmd_callback):
changed accordingly.
* app/gui/convert-dialog.c: massively cleaned up internals. Use a
GimpViewableButton + GimpContainerEntry combo as in text options
for selecting the custom palette. Use a filtered container which
contains only palettes with a maximum of 256 colors.
Fixes bug #136574
2004-09-09 Michael Natterer <mitch@gimp.org>
* app/gui/file-open-location-dialog.[ch]: changed
file_open_location_dialog_show() to
file_open_location_dialog_new() and return the dialog.
* app/gui/dialogs.c
* app/gui/dialogs-constructors.[ch]: added a constructor for it
and let the dialog factory manage it entirely.
* app/actions/file-commands.c
(file_open_location_dialog_cmd_callback): use the dialog factory
to create it.
2004-09-07 Michael Natterer <mitch@gimp.org>
* app/actions/context-actions.c
* app/actions/context-commands.[ch]: applied a heavily modified
patch from David Gowers which adds actions to modify the context's
paint_mode. Fixes bug #151471.
* menus/image-menu.xml.in: added them to the (commentd out)
"Context" submenu.
2004-09-05 Simon Budig <simon@gimp.org>
* app/core/gimpimage-resize.[ch]: Implement function to resize
the image to contain all layers completely. Untabified.
* app/actions/image-actions.c
* app/actions/image-commands.[ch]
* app/widgets/gimphelp-ids.h
* menus/image-menu.xml.in: Make it available in the GUI.
* tools/pdbgen/pdb/image.pdb: Make it available in the PDB.
* app/pdb/image_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpimage_pdb.[ch]: regenerated.
2004-09-01 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdialogfactory.[ch]: added a boolean parameter to
gimp_dialog_factory_dialog_new() to let the caller decide whether
the window should be presented or not.
* app/actions/dialogs-commands.c
* app/actions/image-commands.c
* app/actions/templates-commands.c
* app/gui/gui-vtable.c
* app/gui/gui.c
* app/widgets/gimpsessioninfo.c: changed accordingly. Do not let
gimp_dialog_factory_dialog_new() present the dialog if we need to
change it after creation. This avoids annoying resizes, noticeable
especially with the error dialog.
2004-08-21 Sven Neumann <sven@gimp.org>
* app/actions/layers-actions.[ch]
* app/actions/layers-commands.[ch]
* app/widgets/gimplayertreeview.c: added actions to handle layer
masks as suggested in bug #150446.
* menus/layers-menu.xml: added menu entries for new actions,
commented out raise/lower menu entries.
2004-08-12 Sven Neumann <sven@gimp.org>
* app/actions/context-actions.c: changed the icons to indicate
what part of the context is affected by the action. Looks better
in the shortcut editor.
2004-08-10 Michael Natterer <mitch@gimp.org>
Redid the whole internal progress stuff: don't pass around
progress_callback and progress_data; instead, provide a
pointer to a GimpProgressInterface which can be implemented
by a variety of backends.
Addresses (but not yet fixes) bugs #6010, #97266 and #135185.
* app/display/Makefile.am
* app/display/gimpprogress.[ch]: removed the old progress hack.
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimpprogress.[ch]: implement GimpProgressInterface.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpprogressdialog.[ch]: the standalone progress
dialog as widget implementing GimpProgressInterface.
* app/display/gimpdisplay.c
* app/display/gimpstatusbar.[ch]
* app/widgets/gimpfiledialog.[ch]
* app/widgets/gimpthumbbox.[ch]: added GimpProgressInterface
implementation to these classes.
* app/core/gimp-gui.[ch]
* app/gui/gui-vtable.c: replaced the old progress vtable entries
by two new to create and destroy a GimpProgressDialog in case
no other progress is available.
* app/pdb/procedural_db.[ch]
* app/plug-in/plug-in-run.[ch]
* tools/pdbgen/app.pl: pass a GimpProgress to all PDB wrappers and
all plug-ins.
* app/plug-in/plug-in.[ch]
* app/plug-in/plug-ins.c
* app/plug-in/plug-in-message.c
* app/plug-in/plug-in-progress.c: handle the case there the
plug-in was crated with a progress as well as the case where it
wasn't.
* app/app_procs.c
* app/batch.c
* app/xcf/xcf.c
* app/file/file-open.[ch]
* app/file/file-save.[ch]
* app/widgets/gimphelp.c
* app/widgets/gimpbrushselect.c
* app/widgets/gimpfontselect.c
* app/widgets/gimpgradientselect.c
* app/widgets/gimppaletteselect.c
* app/widgets/gimppatternselect.c: changed accordingly.
* app/core/gimpimagefile.[ch]
* app/display/gimpdisplayshell-dnd.c
* app/gui/file-open-dialog.c
* app/gui/file-open-location-dialog.c
* app/gui/file-save-dialog.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimptoolbox-dnd.c: pass a GimpProgress to all file
related functions. Embed the progress in the file dialog where
possible.
* app/core/gimpdrawable-blend.[ch]
* app/core/gimpdrawable-transform.[ch]
* app/core/gimpimage-convert.[ch]
* app/core/gimpimage-flip.[ch]
* app/core/gimpimage-resize.[ch]
* app/core/gimpimage-rotate.[ch]
* app/core/gimpimage-scale.[ch]
* app/core/gimpitem-linked.[ch]
* app/core/gimpitem.[ch]
* app/core/gimpchannel.c
* app/core/gimpdrawable.c
* app/core/gimplayer.c
* app/core/gimpselection.c
* app/vectors/gimpvectors.c: replaced callback/data by GimpProgress.
* app/tools/gimpblendtool.c
* app/tools/gimptransformtool.c
* app/gui/convert-dialog.c
* app/actions/documents-commands.c
* app/actions/file-commands.c
* app/actions/image-commands.c
* app/actions/layers-commands.c
* app/actions/plug-in-commands.c
* app/actions/vectors-commands.c
* tools/pdbgen/pdb/convert.pdb
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/layer.pdb: changed callers accordingly.
* app/pdb/*_cmds.c: regenerated.
2004-08-09 Michael Natterer <mitch@gimp.org>
Applied (slightly modified) patch from Shlomi Fish which adds a
progress bar to the RGB -> INDEXED conversion. Fixes bug #145274
(and shows that we really really need a GimpProgressInterface in
the core to give progress users full access to the progress API)
* app/core/gimpimage-convert.[ch]: added special
GimpImageConvertProgress function typedef to cope with the
different stages of converting. Support passing such a callback &
data to gimp_image_convert() and update the progress accordingly.
* app/gui/convert-dialog.[ch]: added a convert progress callback
and pass it to gimp_image_convert().
* app/actions/image-commands.c
* tools/pdbgen/pdb/convert.pdb: changed accordingly.
* app/pdb/convert_cmds.c: regenerated.
2004-08-08 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in-proc.[ch] (plug_in_proc_def_get_sensitive):
new function which checks a GimpImageType against the
proc_def->image_types_val mask.
* app/actions/plug-in-actions.c: use the new function here. Also
separated setting the "Repeat last" and "Reshow last" actions'
labels from setting their sensitivity and made them use the same
sensitivity logic as all other plug-in actions. Fixes bug #149567.
2004-08-05 Michael Natterer <mitch@gimp.org>
* app/actions/context-actions.c: use GTK_STOCK_JUMP_TO for
all "Set" actions (like context-foreground-red-set).
2004-08-05 Michael Natterer <mitch@gimp.org>
* app/actions/context-actions.c
* app/actions/context-commands.[ch]
* menus/image-menu.xml.in: added actions, callbacks and menu items
for the brush shape and spikes.
2004-08-04 Michael Natterer <mitch@gimp.org>
* app/core/gimp.[ch]: changed member "ProcRecord last_plug_in" to
PlugInProcDef last_plug_in". Added function
gimp_set_last_plug_in() and signal Gimp::last-plug-in-changed.
* app/actions/plug-in-commands.c
* app/plug-in/plug-in-run.c: changed accordingly.
* app/actions/plug-in-actions.c: factored out updating of the
"Reshow Last" and "Rerun Last" actions to a private function.
Connect each "plug-in" action group to Gimp::last-plug-in-changed
and update the actions' label and sensitivity in the
callback. Fixes bug #149139.
2004-08-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-undo.[ch] (gimp_image_undo_can_compress):
new function which checks if undo compression is possible:
(1) is the image dirty? Fixes bug #148853.
(2) is redo stack empty?
(3) do both the passed undo object_type and undo_type
match the top undo item?
Consistently name the GType and GimpUndoType passed to undo
functions "object_type" and "undo_type" to avoid confusion.
* app/actions/layers-commands.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimptexttool.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c: use the new utility function
instead of checking the above conditions manually.
2004-07-31 Hans Breuer <hans@breuer.org>
* app/display/makefile.msc app/widgets/makefile.msc : build
but *dont link* display-enums.obj, widget-enums.obj and
gimpdisplayoptions.obj. They must be in the dll
* app/makefile.msc : build gimp.exe and gimp-console.exe both
using the same gimp-core.dll
* app/gimpcore.def : new file, exports for gimp-core.dll
* app/Makefile.am : added to EXTRA_DIST
* cursors/makefile.msc : new file to create gimp-tool-cursors.h
* cursors/Makefile.am : added to EXTRA_DIST
* **/makefile.msc : updated
* app/main.c app/app_procs.c : moved code to close the console
from the former to the later. It only is to be used if The Gimp
is not build as console app.
* plug-ins/gfig/gfig.c : dont gimp_drawable_detach() the same
drawable twice
* plug-ins/gfig-dialog.c() : added a g_return_if_fail() to avoid
crashing on File/Import
2004-07-28 Michael Natterer <mitch@gimp.org>
* app/actions/actions.c (action_groups): register the
GIMP_STOCK_VISIBLE icon with the "view" action group.
2004-07-28 Michael Natterer <mitch@gimp.org>
Enabled disabling all menu mnemonics. Addresses bug #120034:
* app/config/gimpguiconfig.[ch]
* app/config/gimprc-blurbs.h: added boolean RESTART property
"menu-menonics".
* app/gui/preferences-dialog.c: added a GUI for it.
* app/widgets/gimpactiongroup.[ch]: added boolean CONSTRUCT_ONLY
property "mnemonics".
(gimp_action_group_add_*_actions): call gimp_strip_uline() on
the actions' labels if mnemonics is FALSE.
* app/widgets/gimpactionfactory.[ch]
* app/actions/actions.c: pass gui_config->menu_menmonics to
all action groups.
2004-07-26 Michael Natterer <mitch@gimp.org>
* app/pdb/procedural_db.[ch] (procedural_db_free_data): new
function which clears the whole list of data set by plug-ins.
(procedural_db_free): use it.
* app/actions/plug-in-actions.c
* app/actions/plug-in-commands.[ch]: added action, callback and
confirmation dialog for "Reset all filters to default values".
Somehow addresses bug #81015.
* app/widgets/gimphelp-ids.h: added a help ID for the new action.
* menus/image-menu.xml.in: added it to the "Filters" submenu.
2004-07-21 Michael Natterer <mitch@gimp.org>
* app/actions/context-actions.c: changed names of actions which
select brushes, patterns etc. from e.g. "context-brush-first" to
"context-brush-select-first".
* menus/image-menu.xml.in: changed accordingly.
2004-07-21 Michael Natterer <mitch@gimp.org>
* app/core/gimpmarshal.list
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcellrendereraccel.[ch]: new cell renderer
which displays an accelerator and allows to edit it (ripped
out of libegg and modified).
* app/widgets/gimpactionview.c: use the new renderer and connect
to its "accel-edited" signal (its callback is one huge mess that
needs to be cleaned up). Added ugly hack to work around GTK+ API
limitation that seems to prevent implementing a shortcut editor in
a sane way.
* app/actions/file-actions.c
* app/actions/image-actions.c
* app/actions/tools-actions.c: added ugly hacks here, too.
* app/gui/preferences-dialog.c: relaced Cancel/Ok in the shortcut
editor by Close.
2004-07-20 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpactionfactory.[ch]
* app/widgets/gimpactiongroup.[ch]: added "label" and "stock-id"
properties to GtkActionGroup and allow to register them in the
GimpActionFactory.
* app/actions/actions.c: register user visible labels and icons
with all action groups.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpactionview.[ch]: new widget which shows a
treeview of action groups and their actions & shortcuts.
* app/widgets/gimpaction.[ch]: added gimp_action_name_compare()
utility function.
* app/widgets/gimpwidgets-utils.[ch]: added
gimp_get_accel_string() utility function.
* app/widgets/gimpcontrollers.[ch]: added
gimp_controllers_get_ui_manager() which will be used for setting
up the controller mapping dialog.
* app/gui/preferences-dialog.c: added a "Configure Keyboard
Shortcuts" button which pops up a GimpControllerView. Work in
progress...
2004-07-20 Michael Natterer <mitch@gimp.org>
* app/actions/image-actions.c: make sure that the "image-new" and
"image-new-from-image" actions always have the same shortcut.
2004-07-18 Sven Neumann <sven@gimp.org>
* app/composite/gimp-composite-mmx.h: don't start a comment with
/** unless it's meant to be parsed by gtk-doc.
* app/actions/Makefile.am:
* app/actions/file-dialog-commands.[ch]: removed, not used any
longer.
2004-07-17 Sven Neumann <sven@gimp.org>
* app/actions/file-actions.c (file_actions): use GIMP_STOCK_WEB
for "file-open-location".
* app/widgets/gimpfiledialog.c: create the scrolled window with
shadow_type GTK_SHADOW_IN.
* app/widgets/gimpfileprocview.c (gimp_file_proc_view_new): skip
procedures that register a prefix (the URL loader).
* app/widgets/gimphelp-ids.h: removed help IDs that used to be
used from the file-open and file-save menus.
* plug-ins/common/xwd.c (query): "X window dump" seems to be more
appropriate than "X window image".
2004-07-16 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpfileprocview.[ch]: added new widget that offers
a treeview on file procedures.
* app/widgets/gimpfiledialog.[ch]: replaced the file type option
menu with the new GimpFileProcView widget.
(gimp_file_dialog_set_image): reset the file type to Automatic
(fixes bug #141535).
* app/actions/file-commands.c
* app/gui/file-open-dialog.[ch]
* app/gui/file-save-dialog.[ch]: changed accordingly.
* plug-ins/common/bz2.c
* plug-ins/common/gz.c: don't register "xcf.gz" and "xcf.bz2"
extension. It's redundant and breaks the code that sets the
extension from the selected file-type.
* plug-ins/common/dicom.c: register a shorter menu label.
* plug-ins/common/gbr.c
* plug-ins/common/gih.c
* plug-ins/common/pat.c
* plug-ins/common/url.c: register stock icons.
2004-07-15 Michael Natterer <mitch@gimp.org>
* app/actions/file-commands.h: reordered to match the .c file.
* app/core/gimpitem.c
* app/vectors/gimpvectors-import.c: fixed API docs.
2004-07-14 Michael Natterer <mitch@gimp.org>
* app/display/Makefile.am
* app/display/gimpdisplayshell-close.[ch]: new files for
gimp_display_shell_close() and its dialog & callback.
* app/display/gimpdisplayshell.[ch]: removed from here.
* app/actions/view-actions.c (view_close_view_cmd_callback):
changed accordingly.
2004-07-11 Hans Breuer <hans@breuer.org>
* **/makefile.msc : updated
app/actions/makefile.msc app/menus/makefile.msc : (new files)
app/actions/Makefile.msc app/menus/Makefile.am : added to EXTRA_DIST
* libgimpbase/gimputils.c libgimpwidgets/gimpmemsizeentry.c
app/widgets/gimppropwidgets.c : bumped compiler version check,
msvc6 still can't cast from unsigned __int64 to double
* app/actions/debug-actions.c : only use debug_*_callback
and thus debug_action if ENABLE_DEBUG_MENU
* app/core/gimpalette-import.c : added gimpwin32-io.h
* plug-ins/common/convmatrix.c : s/snprintf/g_snprintf/
* plug-ins/common/screenshot.c : make it compile with msvc,
but still no win32 specific implementation ...
2004-07-07 Michael Natterer <mitch@gimp.org>
* app/actions/edit-actions.c (edit_actions): added "..." to "Clear
undo history" because it has a confirmation dialog.
* app/actions/edit-commands.c: cleanup: moved static functions to
the end of the file and prototyped them.
2004-07-07 Michael Natterer <mitch@gimp.org>
* app/actions/view-actions.c
* app/actions/view-commands.[ch]: added actions and callbacks for
scrolling the view. Not used in menus but useful for controllers.
2004-07-05 Michael Natterer <mitch@gimp.org>
* app/core/gimpchannel.[ch]: added signal "color-changed" and emit
it in gimp_channel_set_color() and gimp_channel_set_opacity().
* app/core/gimpimage-qmask.[ch]: added new functions
gimp_image_set,get_qmask_color().
* app/core/gimpimage.[ch]: install a "color-changed" handler on
gimage->channels and update gimage->qmask_color when the qmask's
color changes. Fixes bug #145361.
* app/actions/qmask-commands.c: use the new qmask color API.
2004-07-04 Simon Budig <simon@gimp.org>
* app/actions/dialogs-commands.c
* app/display/gimpdisplayshell-dnd.c
* app/gui/preferences-dialog.c
* app/tools/gimppainttool.c
* app/widgets/gimpdeviceinfo.c
* app/widgets/gimpitemtreeview.c
* plug-ins/imagemap/imap_selection.c
* tools/pdbgen/pdb/gradients.pdb: Small changes to make GIMP
CVS compile with gcc 2.95 again. Mostly double semicolons and
variable declarations after other stuff. Spotted by Martin
Renold.
* app/pdb/gradients_cmds.c: regenerated.
(there is one issue left, see his patch at
http://old.homeip.net/martin/gcc-2.95.diff, I did not
copy the #define va_copy __va_copy, since I don't know
what happens here.)
2004-07-02 Sven Neumann <sven@gimp.org>
* app/actions/edit-actions.c: don't let the Paste menu items
sensitivity depend on the availability of clipboard data because
we aren't notified when the GDK clipboard changes.
2004-07-02 Sven Neumann <sven@gimp.org>
* app/gui/Makefile.am
* app/gui/clipboard.[ch]: new files implementing a clipboard for
image data based on GDK_SELECTION_CLIPBOARD (bug #133247).
* app/actions/edit-actions.c
* app/actions/edit-commands.c: use the new clipboard API.
* app/gui/gui.c: initialize and shutdown the clipboard.
* app/core/gimpbuffer.c: cosmetics.
* app/actions/actions.c
* app/menus/menus.c: added sanity checks to exit functions.
* app/display/gimpdisplayshell-dnd.[ch]: let
gimp_display_shell_drop_svg() take a guchar * buffer.
* app/widgets/gimpselectiondata.c (gimp_selection_data_get_pixbuf):
fixed the implementation.
2004-06-29 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.c: reordered drop destinations
so vectors are preferred over SVG.
* app/vectors/gimpvectors-import.[ch]: added "gint position"
parameter to all import functions so the imported vectors can be
added at any position in the vectors stack.
* app/actions/vectors-commands.c
* app/display/gimpdisplayshell-dnd.c
* tools/pdbgen/pdb/paths.pdb: changed accordingly (pass -1 as
position).
* app/pdb/paths_cmds.c: regenerated.
* app/widgets/gimpvectorstreeview.c: implemented SVG DND from and
to the paths dialog.
2004-06-25 Michael Natterer <mitch@gimp.org>
* app/actions/context-actions.c: added GIMP_ACTION_SELECT_SET
actions which set a generated brush's properties directly.
* app/actions/context-commands.c: adjust the range of possible
brush radius and aspect_ratio values to be actually usable.
2004-06-22 Michael Natterer <mitch@gimp.org>
* app/actions/view-actions.c
* app/actions/view-commands.[ch]: added actions & callbacks to
configure the canvas padding color.
* app/widgets/gimphelp-ids.h
* menus/image-menu.xml.in: added the actions' help IDs and menu entries.
* app/display/display-enums.h: added /*< skip >*/'ed enum value
GIMP_CANVAS_PADDING_MODE_RESET.
* app/display/gimpdisplayshell-appearance.c
* app/display/gimpdisplayshell-callbacks.[ch]
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell.[ch]: removed the canvas padding
button and its popup menu (fixes bug #142996). Instead, added a
toggle button which allows to zoom the image when the window is
resized (as known from sodipodi, except it doesn't work as nice
yet :-) improvements to the algorithm are welcome).
Cleaned up the GimpDisplayShell struct a bit and renamed some
of its members.
* libgimpwidgets/gimpstock.[ch]
* themes/Default/images/Makefile.am
* themes/Default/images/stock-zoom-follow-window-12.png: added new
icon for the new display toggle button.
2004-06-20 Philip Lafleur <plafleur@cvs.gnome.org>
* app/display/gimpdisplayshell-scale.[ch]:
* app/display/gimpnavigationview.[ch]:
* app/actions/view-actions.c:
* app/actions/view-commands.[ch]:
* app/widgets/gimphelp-ids.h:
* menus/image-menu.xml.in: Changed "Zoom to Fit Window" command
to "Fit Image in Window" and added another command, "Fit Image
to Window", that zooms according to the opposite dimension. Fixes
bug #144597.
2004-06-18 Michael Natterer <mitch@gimp.org>
* app/actions/context-actions.c
* app/actions/context-commands.[ch]: added tons of new actions to
modify the current FG/BG color's RGB components.
Added new enum value GIMP_CONTEXT_SELECT_SET which allows to set
values, not only increase/decrease them.
Changed context_select_value() utility function to interpret
GimpEnumAction::value being >= GIMP_CONTEXT_SELECT_SET as settings
in a range from 0 to 1000. Yes, that's a hack...
2004-06-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontrollers.c: ref the actions when putting
them in the mapping table.
* app/actions/context-actions.c: added actions to change the
opacity in 10% steps.
2004-06-15 Michael Natterer <mitch@gimp.org>
* app/actions/Makefile.am
* app/actions/context-actions.[ch]
* app/actions/context-commands.[ch]: added new action group to
modify all GimpContext properties. So far there are actions to
cycle through the lists of brushes, patterns etc., to change the
opacity, to swap and default colors and to edit generated brushes.
* app/actions/actions.c: register the new "context" action group.
* app/actions/tools-actions.c
* app/actions/tools-commands.[ch]: removed "tools-default-colors"
and "tools-swap-colors" actions and callbacks because they are
in the "context" action group now.
* app/menus/menus.c: add the "context" group to the <Image> and
<Dock> UI managers.
* menus/image-menu.xml.in: changed accordingly. Added a temporary
"Context" menu to test and debug the new actions.
2004-06-10 Michael Natterer <mitch@gimp.org>
* app/actions/image-actions.c
* app/actions/image-commands.[ch]
* app/actions/layers-actions.c
* app/actions/layers-commands.[ch]: made the
"image-convert-rgb/grayscale/indexed" and the
"layers-mask-apply/delete" actions GimpEnumActions and merged
their callbacks.
2004-06-09 Sven Neumann <sven@gimp.org>
* app/actions/select-actions.c (select_actions_update): "Save to
Channel" makes sense without a selection also, so don't set it
insensitive.
2004-06-07 Michael Natterer <mitch@gimp.org>
* app/actions/view-actions.c
* app/actions/view-commands.[ch]: added separate callback for
"view-zoom-other" and connect GtkAction::activate manually so
"Other..." can be selected even if it's the active item in the
zoom radio group. Fixes bug #143850.
2004-06-03 Michael Natterer <mitch@gimp.org>
* app/actions/vectors-actions.c: added alternative actions
"vectors-selection-from-vectors" and
"vectors-selection-to-vectors-short" with different labels suited
for the "Select" menu.
* app/actions/select-actions.c: removed "select-from-vectors"
and "select-to-vectors" (to vectors was crashing anyway).
* app/actions/select-commands.[ch]: removed
select_from_vectors_cmd_callback(). Fixes code dupliction.
* menus/image-menu.xml.in
* menus/selection-editor-menu.xml: changed accordingly.
2004-06-02 Sven Neumann <sven@gimp.org>
* app/actions/Makefile.am (EXTRA_DIST)
* app/menus/Makefile.am (EXTRA_DIST): removed makefile.msc until
they have been added.
2004-06-01 Sven Neumann <sven@gimp.org>
* tools/pdbgen/pdb/image.pdb
* app/pdb/image_cmds.c
* app/core/gimpimage.[ch]: reverted changes I did to the image
unit earlier. As in 2.0, it will continue to not accept pixels.
This makes the PDB API and the XCF format compatible again and
fixes bug #142961 (and to some extent bug #137704).
* app/core/Makefile.am
* app/core/gimpimage-unit.[ch]: removed these files. The
convenience accessors defined here aren't commonly used any
longer.
* app/display/gimpdisplay.[ch]
* app/display/gimpdisplayshell.[ch]: added a unit parameter to
gimp_display_new(). Made "unit" and "scale" properties of
GimpDisplayShell.
* app/actions/image-commands.c
* app/actions/images-commands.c
* app/actions/layers-commands.c
* app/actions/select-commands.c
* app/actions/view-commands.c
* app/core/gimp-edit.c
* app/core/gimp.[ch]
* app/core/gimptemplate.c
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell-scale.c
* app/display/gimpdisplayshell-title.c
* app/display/gimpstatusbar.c
* app/file/file-open.c
* app/gui/gui-vtable.c
* app/gui/info-window.c
* app/gui/offset-dialog.c
* app/gui/resize-dialog.[ch]
* app/pdb/display_cmds.c
* app/tools/gimpcroptool.c
* app/tools/gimpmeasuretool.c
* app/tools/gimppainttool.c
* app/tools/gimprectselecttool.c
* app/tools/gimprotatetool.c
* app/tools/gimpscaletool.c
* app/vectors/gimpvectors-export.c
* app/widgets/gimptoolbox-dnd.c
* tools/pdbgen/pdb/display.pdb: changed accordingly. Use the
display unit where the image unit was used before.
2004-06-01 Michael Natterer <mitch@gimp.org>
* app/core/gimpdatafactory.[ch]: added new function
gimp_data_factory_data_delete().
* app/actions/data-commands.c (data_delete_callback): use it.
* tools/pdbgen/pdb/gradients.pdb: applied (slightly modified)
patch from Shlomi Fish which adds PDB wrappers to create, delete,
duplicate and rename gradients.
* app/pdb/gradients_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpgradients_pdb.[ch]: regenerated.
2004-06-01 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.h: renamed the values of the
GimpGradientSegment* enums from GIMP_GRAD_* to
GIMP_GRADIENT_SEGMENT_* because they are exported now.
* app/core/gimp-gradients.c
* app/core/gimpgradient.c
* app/actions/gradient-editor-actions.c: changed accordingly.
* libgimp/gimpenums.h
* plug-ins/pygimp/gimpenums.py
* plug-ins/script-fu/script-fu-constants.c
* tools/pdbgen/enums.pl: regenerated.
2004-06-01 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpsessioninfo.c (gimp_session_info_restore): added
a horrible hack that sets the paned's position after the first
"size-allocate" after "map". Makes position remembering work for
the toolbox and fixes bug #142697.
* app/widgets/gimpdockable.[ch]: added new function
gimp_dockable_set_tab_style()
* app/actions/dockable-commands.c (dockable_tab_style_cmd_callback)
* app/widgets/gimpsessioninfo.c (gimp_session_info_restore):
use gimp_dockable_set_tab_style().
2004-05-31 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.h
* app/core/gimpgradient.[ch]
* app/pdb/Makefile.am
* app/widgets/gimpgradienteditor.c
* tools/pdbgen/Makefile.am
* tools/pdbgen/groups.pl
* tools/pdbgen/pdb/gradient_edit.pdb: applied a patch from Shlomi
Fish that adds lots of gradient edit functions to
gimpgradient.[ch] and makes them available through the PDB.
Fixes bug #129675 and bug #129678.
Did some cleanups / enhancments to the patch:
* app/core/gimpgradient.[ch]: changed the naming scheme of the new
functions and changed old functions to match the new scheme.
Introduce a "freeze_count" and public freeze()/thaw() API which
enables subsequent gradient changes without "dirty" being emitted
all the time. Added GimpGradient parameters to all functions
which modify the gradient.
* app/widgets/gimpgradienteditor.c: use the new freeze/thaw
stuff to keep the gradient from updating when not in
"Instant Update" mode.
* app/actions/gradient-editor-commands.c: removed all gradient
editing code and call the new core functions.
* libgimp/Makefile.am
* tools/pdbgen/pdb/gradient_edit.pdb: changed the namespace of all
added functions. Generate libgimp wrappers for them..
* app/pdb/gradient_edit_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimp_pdb.h
* libgimp/gimpenums.h
* libgimp/gimpgradientedit_pdb.[ch]
* plug-ins/pygimp/gimpenums.py
* plug-ins/script-fu/script-fu-constants.c
* tools/pdbgen/enums.pl: (re)generated.
2004-05-25 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpitemtreeview.h: added GimpContext parameters
to GimpActivateItemFunc, GimpNewItemFunc and GimpEditItemFunc.
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimpitemtreeview.c: pass the view's context to
the functions.
* app/actions/actions.c (action_data_get_context): return
gimp_get_user_context() if "data" is a Gimp.
* app/actions/channels-commands.[ch]
* app/actions/layers-commands.[ch]
* app/actions/vectors-commands.[ch]: added GimpContext parameters
to the resp. activate, new and edit functions and use the passed
context instead of gimp_get_user_context().
* app/actions/layers-commands.[ch]: removed the merge and flatten
callbacks.
* app/actions/image-commands.[ch]: made public layer merge utility
function private and cleaned the whole file up a lot.
* app/actions/layers-actions.c: use the callbacks from
image-commands.c for merge and flatten.
* app/actions/edit-commands.c
* app/actions/file-commands.c
* app/actions/select-commands.c: use action_data_get_context()
instead of gimp_get_user_context().
* app/actions/edit-actions.c: some cleanup.
2004-05-25 Michael Natterer <mitch@gimp.org>
* app/actions/file-actions.c
* app/actions/file-commands.[ch]: removed action "file-new", added
action "file-open-from-image".
* app/actions/image-actions.c
* app/actions/image-commands.[ch]: added actions "image-new" and
"image-new-from-image".
* menus/image-menu.xml.in: use the "-from-image" variants of
the "new" and "open" actions so the dialogs are preconfigured
from the image they were invoked from (regression fix).
* menus/toolbox-menu.xml.in: s/file-new/image-new/.
2004-05-24 Michael Natterer <mitch@gimp.org>
Long overdue core container cleanup:
* app/core/gimplist.[ch]: added "unique-names" and "sort-func"
properties and merged the resp. code from GimpDataList into
GimpList. Removed "policy" parameters from gimp_list_new() and
added "unique_names". Added new constructor gimp_list_new_weak().
Made public function gimp_list_uniquefy_name() private.
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimpdatalist.[ch]: removed. Its functionality is
entirely in GimpList now.
* app/core/gimpdata.[ch]: added gimp_data_name_compare() which
used to live in GimpDataList.
* app/core/gimp.c
* app/core/gimpdatafactory.c
* app/core/gimpimage.c
* app/core/gimptoolinfo.c
* app/core/gimpundostack.c
* app/paint/gimp-paint.c
* app/tools/gimp-tools.c
* app/widgets/gimpdevices.c
* app/widgets/gimptemplateeditor.c
* app/widgets/gimpundoeditor.c: changed list creation accordingly.
Made gimp->templates, gimp->named_buffers, tool_info->presets and
the image's lists of layers, channels and vectors automatically
ensure unique names.
* app/widgets/gimptemplateview.c
* app/actions/file-commands.c
* app/actions/templates-commands.c
* app/actions/tool-options-commands.c: removed calls to
gimp_list_uniquefy_name().
* app/core/gimpitem.c: removed major insanity where the items
themselves where ensuring their unique names. Bah!
* app/core/gimplayer.c (gimp_layer_name_changed): chain up
conditionally.
* app/core/gimplayermask.c (gimp_layer_mask_name_changed): removed
because there is no need any more to keep the parent
implementation from being invoked.
2004-05-23 Michael Natterer <mitch@gimp.org>
* app/widgets/widgets-types.h: reoedered to somehow reflect the
class hierarchy.
Some dockable context handling cleanup:
* app/widgets/gimpdocked.[ch]: removed "prev_context" parameter
from GimpDocked::set_context(). Widgets which need the old context
to disconnect from should remember it themselves.
* app/widgets/gimpdockable.c (gimp_dockable_set_context): don't
pass the old context to gimp_docked_set_context().
Some cleanup.
* app/widgets/gimpcontainerbox.c
* app/widgets/gimpcontainereditor.c: changed accordingly.
* app/display/gimpnavigationview.[ch]
* app/widgets/gimpimageeditor.[ch]
* app/widgets/gimpitemtreeview.[ch]: added a "context" member
which holds the context set by GimpDocked::set_context().
* app/widgets/gimpdrawabletreeview.c: use the view's context
instead of gimp_get_user_context().
* app/widgets/gimpcoloreditor.[ch]: removed separate API to
set the context because it implements the GimpDockedInterface.
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimperrorconsole.c: pass "menu-factory",
"menu-identifier" and "ui-path" to g_object_new() instead of
calling gimp_editor_create_menu() later.
Action cleanup partly related to the context stuff above:
* app/actions/actions.c (action_data_get_gimp): get the Gimp from
context->gimp, not gimage->gimp because gimage may be NULL.
(action_data_get_context): changed to use the new context members
added above.
* app/actions/channels-actions.c (channels_actions_update): cleanup.
* app/actions/edit-actions.c (edit_actions_update): fixed
sensitivity of "edit-undo-clear".
* app/actions/vectors-actions.c (vectors_actions_update): make
"vectors-merge-visible" sensitive only if there is more than one
GimpVectors in the image.
* app/actions/colormap-editor-actions.c
* app/actions/gradient-editor-actions.c
* app/actions/palette-editor-actions.c: added FG/BG color previews
to actions which take colors from them. Changed code to be safe
against "context" being NULL.
* app/actions/drawable-commands.c:
s/active_drawable/drawable/g. Makes the code more readable.
* app/actions/select-commands.[ch]
* app/actions/vectors-commands.[ch]: removed public stroke utility
functions and other stuff which is not needed any more because
dialog buttons invoke the correct actions now. Moved the
functions' code to the resp. action callbacks.
2004-05-19 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpaction.[ch]: new GtkAction subclass which can
show either a color or viewable preview in GtkImageMenuItem
proxies.
* app/widgets/gimpenumaction.[ch]
* app/widgets/gimppluginaction.[ch]
* app/widgets/gimpstringaction.[ch]: derive them from GimpAction.
* app/widgets/gimpactiongroup.c (gimp_action_group_add_actions):
add GimpActions, not GtkActions.
(gimp_action_group_set_action_color)
(gimp_action_group_set_action_viewable): removed all hacks and
simply set the "color" or "viewable" properties of the GimpAction
to change. Fixes color/viewable previews in menus.
* app/actions/file-actions.c: show previews in the "Open Recent"
menu items.
Unrelated:
* app/widgets/widgets-types.h: removed GimpDockedInterface typedef...
* app/widgets/gimpdocked.h: ...and added it here. We don't have
class struct typedefs in the types header either.
* app/actions/edit-actions.c: added <Ctrl>+semicolon as shortcut
for "edit-fill-pattern".
* app/actions/gradient-editor-actions.c: added some stock IDs.
Please comment.
2004-05-18 Michael Natterer <mitch@gimp.org>
Allow plug-ins to register menu icons. Fixes bug #120500.
* app/core/core-enums.[ch]: added enum GimpIconType which can
be one of { STOCK_ID, IMAGE_FILE, INLINE_PIXBUF }.
* app/config/gimpconfigwriter.[ch] (gimp_config_writer_data)
* app/config/gimpscanner.[ch] (gimp_scanner_parse_data): new
functions which write/parse raw binary data. Needed for storing
inline pixbufs in pluginrc.
* app/config/gimpconfigwriter.[ch] (gimp_config_writer_identifier):
new function which writes out an unquoted and unescaped string.
* app/plug-in/plug-in-proc.[ch] (struct PlugInProcDef): added
new members "icon_type", "icon_data_length" and "icon_data".
Reordered members so file_proc specific stuff is at the end.
(plug_in_proc_def_get_stock_id)
(plug_in_proc_def_get_pixbuf): new functions to access the
procedure's icon.
* app/plug-in/plug-in-rc.c: save/restore the registered icons.
* app/actions/file-dialog-actions.c
* app/actions/plug-in-actions.c: set the action's stock ID from
the procedure's stock ID.
* app/widgets/gimppluginaction.c
(gimp_plug_in_action_connect_proxy): if the procedure provides a
pixbuf, set it as icon for the menu item.
* app/menus/file-dialog-menu.[ch]
* app/menus/file-open-menu.c
* app/menus/file-save-menu.c
* app/xcf/xcf.c: changed accordingly.
* tools/pdbgen/pdb/plug_in.pdb (plugin_icon_register): new PDB
function which can be called during query().
* tools/pdbgen/enums.pl
* app/pdb/internal_procs.c
* app/pdb/plug_in_cmds.c
* libgimp/gimpenums.h
* libgimp/gimpplugin_pdb.c
* libgimp/gimpplugin_pdb.h
* plug-ins/pygimp/gimpenums.py
* plug-ins/script-fu/script-fu-constants.c: regenerated.
* plug-ins/common/plugindetails.c
* plug-ins/common/uniteditor.c
* plug-ins/print/print.c: register stock_id icons.
* plug-ins/common/screenshot.c: register an inline_pixbuf icon for
testing purposes (used emblem-camera.png from gnome-icon-theme).
* app/actions/dialogs-actions.c
* app/actions/file-actions.c: unrelated: added some more icons
to menu items.
2004-05-18 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in-proc.[ch] (plug_in_proc_def_get_label): new
function which returns a newly allocated string which is the menu
item's name stripped of mnemonics an ellipses.
* app/actions/plug-in-actions.c (plug_in_actions_update)
* app/plug-in/plug-in.c (plug_in_get_undo_desc): use the function
instead of implementing the same twice slightly different.
2004-05-17 Michael Natterer <mitch@gimp.org>
* app/actions/edit-actions.c (edit_actions_update): don't forget
to set the sensitivity of "edit-named-copy".
2004-05-15 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in-params.c (plug_in_proc_args_check): changed
warnings to include the invalid menu path. Added check that makes
sure menu paths are either "<Prefix>" or "<Prefix>/foo" but *not*
"<Prefix>foo".
* app/actions/plug-in-actions.c: added function
plug_in_actions_check_translation() which validates both the
original and translated menu paths and spits detailed error
messages if any of them is broken. Made action creation simpler
(?) and more robust.
* app/menus/plug-in-menus.c: argh, the translated menu path must
be a sorting criteria *only*. Fixed the whole stuff to always use
the original menu path because translation is done entirely by
plug-in-actions.c. Fixes bad crashes for all locales. Added
boolean return value to plug_in_menus_build_path() and don't try
to create the menu item in an invalid location if creating the
submenus failed.
2004-05-14 Michael Natterer <mitch@gimp.org>
* app/actions/select-actions.c (select_actions_update): don't
make "select-invert" insensitive if there is no selection.
2004-05-14 Sven Neumann <sven@gimp.org>
* tools/pdbgen/pdb/fileops.pdb: added new PDB function
gimp_register_file_handler_mime() that allows to associate a MIME
type with a file procecdurre.
* app/pdb/fileops_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpfileops_pdb.[ch]: regenerated.
* app/plug-in/plug-in-proc.[ch]
* app/plug-in/plug-in-rc.c
* app/plug-in/plug-ins.[ch]: store a mimetype with file procedures.
* app/actions/file-commands.c
* app/core/gimpdocumentlist.[ch]
* app/core/gimpimagefile.[ch]
* app/file/file-open.[ch]
* app/file/file-save.c: set the thumbnail's mimetype from the file
procedure used to load/save the image.
* app/xcf/xcf.c
* plug-ins/bmp/bmp.c
* plug-ins/common/csource.c
* plug-ins/common/dicom.c
* plug-ins/common/gif.c
* plug-ins/common/gifload.c
* plug-ins/common/jpeg.c
* plug-ins/common/mng.c
* plug-ins/common/png.c
* plug-ins/common/postscript.c
* plug-ins/common/psd.c
* plug-ins/common/psd_save.c
* plug-ins/common/sunras.c
* plug-ins/common/svg.c
* plug-ins/common/tga.c
* plug-ins/common/tiff.c
* plug-ins/common/wmf.c
* plug-ins/common/xbm.c
* plug-ins/common/xpm.c
* plug-ins/common/xwd.c
* plug-ins/faxg3/faxg3.c
* plug-ins/winicon/main.c: register a mimetype, set a translatable
action name (taken from shared-mime-info) and register to the <Load>
and <Save> menus using gimp_plugin_menu_register().
2004-05-13 Michael Natterer <mitch@gimp.org>
* menus/tool-options-menu.xml: added "name" attributes to all
submenus.
* app/menus/tool-options-menu.c: use the menu names instead of the
overly long action names.
* app/actions/colormap-editor-commands.c
* app/actions/tool-options-commands.c: added some callback
implementations.
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimptooloptionseditor.c: removed the callbacks here
and use action buttons.
* app/actions/actions.c
* app/actions/colormap-editor-actions.c
* app/actions/edit-actions.c: code review / cleanup.
2004-05-13 Michael Natterer <mitch@gimp.org>
* app/actions/tools-actions.c (tools_actions_update): don't use
action_data_get_context() to update the "tools" action group
because it may return NULL. Use gimp_get_user_context() instead
because the active tool is global regardless of the action group's
context. Fixes accidential tool hiding when closing the last
display.
2004-05-12 Michael Natterer <mitch@gimp.org>
* app/actions/documents-actions.c
* app/actions/documents-commands.c
* app/actions/edit-actions.c
* app/actions/edit-commands.[ch]
* app/actions/layers-actions.c
* app/actions/layers-commands.c
* app/actions/select-actions.c
* app/actions/select-commands.[ch]
* app/actions/vectors-actions.c
* app/actions/vectors-commands.[ch]: added tooltips for actions
which are now used for dialog buttons, added callback
implementations which formerly lived in various widgets, moved
some actions around and did some general cleanups.
* menus/image-menu.xml.in: s/edit-stroke/select-stroke/
* menus/Makefile.am
* menus/selection-editor-menu.xml: new popup menu.
* app/menus/menus.c: register <SelectionEditor> and <UndoEditor>
UI managers.
* app/widgets/gimpeditor.[ch]: added construct properties
"menu-factory", "menu-identifier", "ui-path" and "popup-data".
Implement GObject::constructor() and create the UI manager
if all needed properties were set. Enables creating action
buttons at widget construction time because they need a
UI manager.
(gimp_editor_add_action_button): changed to take a va_list of
"extended" actions which are invoked if the resp. button emits
"extended_clicked". Store the actions and their modifier masks in
a list attached to the button.
* app/widgets/gimpcontainerview.c
(gimp_container_view_item_selected): if the view has container
*and* context, simply change the context and return.
(gimp_container_view_context_changed): don't emit "select_item"
manually but simply call gimp_container_view_select_item().
(gimp_container_view_viewable_dropped): use
gimp_container_view_item_selected() instead of changing the
context directly.
* app/widgets/gimpcontainereditor.c
(gimp_container_editor_select_item): update the UI manager.
* app/widgets/gimpdockable.c: don't try to fiddle with the
dialog's menu if it doesn't have a ui_path (happens if the UI
manager is just a collection of actions for the dialog buttons and
has no menu registered).
* app/widgets/gimpimageeditor.c: connect to the image's "flush"
signal and update the UI manager in the callback.
* app/widgets/gimpitemtreeview.c: use GimpEditor's construct
properties to create the UI manager so GimpItemTreeView subclasses
can have action buttons. Update the UI manager in
gimp_item_tree_view_select_item().
* app/widgets/gimpbufferview.c
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpdatafactoryview.c
* app/widgets/gimpfontview.c
* app/widgets/gimpimageview.c
* app/widgets/gimptemplateview.c
* app/widgets/gimptoolview.c: changed calls to
gimp_editor_add_action_button() accordingly and removed some
unneeded select_item() implementations.
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpvectorstreeview.[ch]
* app/widgets/gimpdocumentview.[ch]
* app/widgets/gimplayertreeview.c
* app/widgets/gimpselectioneditor.[ch]
* app/widgets/gimpundoeditor.[ch]: use action buttons and removed
lots of callbacks which went to the resp. action callbacks.
* app/widgets/widgets-types.h: removed some now unneeded function
prototypes.
* app/gui/dialogs-constructors.c: changed (simplified) many dialog
constructors accordingly.
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 Sven Neumann <sven@gimp.org>
* app/actions/view-actions.c: added a stock icon for "view-zoom-1-1".
* app/widgets/gimpunitcombobox.[ch]: added functions to get and
set the active unit.
* app/widgets/gimpunitstore.c (gimp_unit_store_tree_model_get_value):
need to special case GIMP_UNIT_PIXEL.
* app/display/Makefile.am
* app/display/display-types.h
* app/display/gimpscalecombobox.[ch]: new widget to be used in the
display's statusbar.
* app/display/gimpdisplayshell-cursor.[ch]: always display the
cursor position, not only if the cursor is inside the image. Added
new function gimp_display_shell_clear_cursor() to clear the cursor
label.
* app/display/gimpdisplayshell-callbacks.c: changed accordingly.
* app/display/gimpstatusbar.[ch]
* app/display/gimpdisplayshell.c
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell-scale.c: do not explicitely resize
the statusbar cursor label, connect to GimpDisplayShell::scaled
instead. Added a GimpScaleComboBox to the status bar.
2004-05-10 Michael Natterer <mitch@gimp.org>
Started making the toolbox configurable.
Addresses bug #105764. Not finished yet.
* app/core/gimptoolinfo.[ch]: renamed "in_toolbox" to "visible"
and made it a GObject property.
* app/tools/gimp-tools.[ch]: added new function
gimp_tools_get_default_order() which returns a GList of tool
identifiers.
* app/actions/tools-actions.c
* app/actions/tools-commands.[ch]: added actions & callbacks for
toggling the "visible" boolean and for resetting all tools.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimptoolview.[ch]: new widget which allows to
toggle a tool's visibility and to reorder the tools.
* app/widgets/gimptoolbox.[ch]: removed member "GtkWidget *trash"
and pack all tool buttons into the same wrap box. Connect to
"reoder" of the tool container and to "notify::visible" of all
tool infos and update the toolbox accordingly.
* app/gui/dialogs-constructors.c: create a GimpToolView for the
tools list/grid.
* app/menus/menus.c: register a <Tools> menu for the dialog above.
* menus/Makefile.am
* menus/tools-menu.xml: added the menu.
2004-05-07 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in-proc.[ch]: removed member "accelerator".
It was never set and this is the conceptually wrong place to store
it anyway.
* app/actions/file-dialog-actions.c
* app/actions/plug-in-actions.c
* app/plug-in/plug-in-message.c
* app/xcf/xcf.c: changed accordingly.
* tools/pdbgen/pdb/plug_in.pdb (plugins_query): always return NULL
as accelerator. Cleaned up the function a bit and made it aware of
proc_def->menu_label added below.
* app/pdb/plug_in_cmds.c: regenerated.
2004-05-07 Michael Natterer <mitch@gimp.org>
Changed plug-in menu registration again to allow passing just the
menu item's label (not the full path) in gimp_install_procedure()
and only the path (excluding the item's label) in
gimp_plugin_menu_register(). Matches the internal action system
better and makes translating the menu paths much easier.
(Of yourse it's still possible to use the old syntax for backward
compatibility).
* app/plug-in/plug-in-proc.[ch]: added "gchar *menu_label".
* app/plug-in/plug-in-params.[ch]: added new functions
plug_in_param_defs_check() and plug_in_proc_args_check() which
check if a procedure's parameters match its menu location
(e.g. <Image> needs RUN-MODE, IMAGE, DRAWABLE).
* app/plug-in/plug-in-message.c (plug_in_handle_proc_install): if
registering an old-style (full) menu_path, use
plug_in_param_defs_check(), set proc_def->menu_label otherwise.
* tools/pdbgen/pdb/plug_in.pdb (plugin_menu_register): use
plug_in_proc_args_check() on the passed menu_path and make sugre
old and new style menu registration are not mixed.
* app/pdb/plug_in_cmds.c: regenerated.
* app/plug-in/plug-in-rc.c: save/restore "menu_label".
* app/actions/file-dialog-actions.c
* app/actions/plug-in-actions.c
* app/menus/plug-in-menus.c: changed action/menu creation
accordingly. Some hacks needed to allow both old and new style
menu_label/menu_paths.
* app/plug-in/plug-in.c
* app/widgets/gimpfiledialog.c
* app/xcf/xcf.c: changed accordingly.
* plug-ins/common/align_layers.c
* plug-ins/common/animationplay.c
* plug-ins/common/animoptimize.c
* plug-ins/common/apply_lens.c
* plug-ins/common/autocrop.c
* plug-ins/common/autostretch_hsv.c
* plug-ins/common/blinds.c
* plug-ins/common/blur.c
* plug-ins/common/borderaverage.c
* plug-ins/common/bumpmap.c
* plug-ins/common/c_astretch.c
* plug-ins/common/ccanalyze.c
* plug-ins/common/channel_mixer.c
* plug-ins/common/checkerboard.c
* plug-ins/common/color_enhance.c
* plug-ins/common/colorify.c
* plug-ins/common/colortoalpha.c
* plug-ins/common/compose.c
* plug-ins/common/convmatrix.c
* plug-ins/common/cubism.c
* plug-ins/common/curve_bend.c
* plug-ins/common/decompose.c
* plug-ins/common/deinterlace.c
* plug-ins/common/depthmerge.c
* plug-ins/common/destripe.c
* plug-ins/common/diffraction.c
* plug-ins/common/displace.c
* plug-ins/common/edge.c
* plug-ins/common/emboss.c
* plug-ins/common/engrave.c
* plug-ins/common/exchange.c
* plug-ins/common/film.c
* plug-ins/common/flarefx.c
* plug-ins/common/fractaltrace.c
* plug-ins/common/screenshot.c: ported the first few plug-ins
to the new registration scheme.
2004-05-06 Michael Natterer <mitch@gimp.org>
Enabled multiple menu entries per plug-in procedure:
* app/plug-in/plug-in-proc.[ch]: changed "gchar *menu_path" to
"GList *menu_paths".
* app/plug-in/plug-in-message.c
* app/plug-in/plug-in-rc.c
* app/plug-in/plug-in.c
* app/plug-in/plug-ins.c
* app/menus/menus.c
* app/widgets/gimpfiledialog.c
* app/xcf/xcf.c: changed accordingly.
* app/actions/file-dialog-actions.c
* app/actions/plug-in-actions.c: create an action for the first
element of proc_def->menu_paths.
* app/gui/gui-vtable.c
* app/menus/plug-in-menus.[ch]: create proxy widgets for each
element of proc_def->menu_paths.
* tools/pdbgen/pdb/plug_in.pdb: added new function
gimp_plugin_menu_add() which can be called during query() and adds
a menu path to a procedure registered by the calling plugin.
* app/pdb/internal_procs.c
* app/pdb/plug_in_cmds.c
* libgimp/gimpplugin_pdb.[ch]: regenerated.
* menus/image-menu.xml.in
* menus/toolbox-menu.xml.in: added lots of <placeholder>s for
logical groups (like Image/Resize, Image/Scale, Image/Crop
etc.). Added empty placeholder File/Send for stuff like print and
mail. Added an "Acquire" menu under <Image>/File
* plug-ins/common/mail.c
* plug-ins/print/print.c
* plug-ins/common/winprint.c: register under File/Send.
* plug-ins/common/screenshot.c
* plug-ins/winsnap/winsnap.c: also register under
<Image>/File/Acquire.
* plug-ins/common/autocrop.c
* plug-ins/common/ccanalyze.c
* plug-ins/common/colortoalpha.c
* plug-ins/common/threshold_alpha.c
* plug-ins/common/zealouscrop.c: register additional menu entries
under placeholders in the "Image" and "Layer" menus. This is not
meant to be final but just a hint to keep in mind when
reorganizing the plug-in menus.
2004-05-06 Sven Neumann <sven@gimp.org>
* app/gui/resize-dialog.[ch]: cleaned up variable names and
external API. Still quite a mess.
* app/Makefile.am
* app/actions/image-commands.c
* app/actions/layers-commands.c: changed accordingly.
2004-05-05 Michael Natterer <mitch@gimp.org>
* app/actions/plug-in-actions.c (plug_in_actions_add_proc): fixed
bug which would have leaked broken menu translations.
* app/gui/plug-in-menus.c: removed useless #includes.
2004-05-05 Michael Natterer <mitch@gimp.org>
* app/actions/file-actions.c
* app/actions/file-commands.[ch]: remove "file-close" action and
callback...
* app/actions/view-actions.c
* app/actions/view-commands.[ch]: ...and added it here as
"view-close" because that's what it does.
* app/actions/qmask-actions.c
* app/actions/qmask-commands.c: s/QMask/QuickMask/g
* app/gui/menus.c: add the "channels" action group to the <Image>
and <Dock> UI managers, renamed UI manager <Dialogs> to
<Dockable>.
* app/widgets/gimpdockbook.c: s/<Dialogs>/<Dockable>/.
* menus/image-menu.xml.in: s/file-close/view-close/, added
separators at the end of most menus, moved the bottom group of the
"View" menu after the zoom group.
2004-05-05 Michael Natterer <mitch@gimp.org>
* app/actions/select-actions.c: removed action "select-by-color".
* app/tools/gimpbycolorselecttool.c: add the shortcut here.
* app/actions/tools-actions.c: added alternative tool actions for
"by-color-select" and "rotate" which are identical to the ones
generated from the GimpToolInfo except for their label. Make sure
they have the same accelerators as the generated ones.
* menus/image-menu.xml.in: use the alternative actions for
"<Image>/Select/By Color" and
"<Layer>/Transform/Arbitrary Rotation...".
2004-05-04 Michael Natterer <mitch@gimp.org>
* app/actions/file-dialog-actions.c (file_dialog_actions_setup):
don't forget to set the action's accelerator.
2004-05-03 Manish Singh <yosh@gimp.org>
* app/actions/qmask-actions.c: initialize is_active for qmask-toggle.
* app/actions/tools-actions.c: set entry help_id from tool_info,
since gimp_action_group_add_string_actions expects it to be there
now.
2004-05-03 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpwidgets.c: use a GimpFrame for
gimp_radio_group_new() and friends.
* themes/Default/gtkrc
* themes/Small/gtkrc: set a smaller label_spacing for GimpFrame
widgets in GimpDockables. Lame hack to keep the tool options
compact.
* app/actions/image-commands.c: changed spacing.
* app/gui/offset-dialog.c: merged check and radio buttons into a
single radio button group; changed spacing.
2004-05-03 Michael Natterer <mitch@gimp.org>
* app/actions/dockable-commands.c (dockable_add_tab_cmd_callback):
truncate the passed dialog identifier at the first '|'. Fixes
creating brushes, paterns etc. dialogs from the dockables'
"Add Tab" menu.
2004-05-02 Michael Natterer <mitch@gimp.org>
* app/actions/qmask-actions.c: renamed action "qmask-toggle" to
"qmask-active" and added new action "qmask-toggle" with a label
and shortcut suited for the "Select" menu.
* app/actions/select-actions.c: removed "select-toggle-qmask".
* app/actions/select-commands.[ch]: removed callback
select_toggle_quickmask_cmd_callback().
* app/actions/channels-actions.c (channels_actions_update)
* app/actions/vectors-actions.c (vectors_actions_update): handle
"data" being both GimpDisplay and GimpDisplayShell so the actions
can be used in the image menu.
* menus/image-menu.xml.in: s/select-toggle-qmask/qmask-toggle/.
* menus/qmask-menu.xml: s/qmask-toggle/qmask-active/.
2004-05-02 Michael Natterer <mitch@convergence.de>
* app/actions/Makefile.am
* app/actions/file-dialog-actions.[ch]: new files containing
factored out code to set up the <Load> and <Save> actions.
Use GimpPlugInActions instead of just GtkActions.
* app/actions/file-dialog-commands.[ch]: new files containing
file_dialog_type_cmd_callback() which is a
GimpPlugInAction::selected() callback now.
* app/actions/file-commands.[ch]: removed the callback here.
* app/actions/file-open-actions.c
* app/actions/file-save-actions.c: removed code duplication and
use file_dialog_actions_setup() instead.
2004-05-02 Michael Natterer <mitch@gimp.org>
* app/actions/*-actions.c: added help IDs to all actions
representing the toplevel popups and menus (as fallbacks for the
still-to-be-written help system intrgration of GimpUIManager).
* app/display/gimpdisplayshell.c (gimp_display_shell_new): removed
call to gtk_ui_manager_ensure_update() because that's done by
gimp_ui_manager_ui_get() now.
* app/widgets/gimpmenufactory.[ch]: removed API to register and
create item factories.
* app/gui/menus.c: changed accordingly.
* app/gui/dialogs.c
* app/actions/plug-in-commands.c
* app/gui/file-dialog-utils.c
* app/gui/file-save-dialog.c
* app/widgets/gimpdataeditor.c
* app/widgets/gimpdockable.c
* app/widgets/gimpdockbook.[ch]
* app/widgets/gimpimagedock.c
* app/widgets/gimpitemtreeview.c: removed leftover item factory
cruft.
* app/widgets/widgets-types.h: removed item factory typedefs...
* app/widgets/gimpitemfactory.h: ...and added them here.
* app/widgets/gimpactiongroup.[ch]: added new function
gimp_action_group_add_plug_in_actions().
* app/actions/plug-in-actions.c: use it here instead of adding
the actions manually.
* app/widgets/gimptoolbox.c: ported the code which dynamically
updates the tool button tooltips on accelerator changes to
GtkAction. Disabled the whole stuff because GTK+ lacks
gtk_action_get_accel_closure().
2004-04-30 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpuimanager.[ch]: added signal "update" which
is G_SIGNAL_RUN_LAST, so handlers can hook in before and after
the default implementation. Update the action groups
in the default implementations.
(gimp_ui_manager_ui_get): make sure we always return a widget
by calling gtk_ui_manager_ensure_update().
* app/widgets/gimpdockable.c (gimp_dockable_show_menu): make
sure the dockable menu is loaded before trying to access its
widgets/actions.
Resurrected the dynamic tool options menus:
* app/actions/tool-options-actions.c: dynamically destroy/create
actions for the tool options' presets.
* app/actions/tool-options-commands.[ch]: all callbacks are
GimpEnumAction::selected() callbacks now.
* app/gui/tool-options-menu.[ch]: connect and connect_after to
GimpUIManager::update(). Remove the old preset menu items
in the former callback, create the new ones in the latter.
Removed the last item factory entries.
* app/gui/menus.c
* app/widgets/gimptooloptionseditor.c: changed accordingly.
2004-04-29 Michael Natterer <mitch@gimp.org>
* libgimpbase/gimputils.[ch] (gimp_escape_uline): new function
which does the opposite of gimp_strip_uline().
* app/actions/file-actions.c (file_actions_last_opened_update):
escape ulines in filenames so they don't end up as mnemonics.
Spotted by Pedro Gimeno.
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-04-26 Michael Natterer <mitch@gimp.org>
* app/core/gimp.[ch]: removed "locale_domain" and "help_domain"
parameters from GimpMenusCreateFunc.
* app/plug-in/plug-ins.c (plug_ins_temp_proc_def_add)
* app/actions/plug-in-actions.[ch] (plug_in_actions_add_proc_def):
changed accordingly.
* app/widgets/gimpactiongroup.[ch]: remember all created action
groups is a hash table in GimpActionGroupClass. Added
gimp_action_groups_from_name() which returns a GList of all groups
with the given name.
* app/actions/plug-in-actions.[ch] (plug_in_actions_setup):
removed the tree sorting code. Actions don't need to be ordered
alphabetically.
(plug_in_actions_update): copied & ported plug_in_menus_update().
* app/gui/gui-vtable.c (gui_menus_create,delete_entry):
dynamically add/remove plug-in actions in all "plug-in" action
groups.
2004-04-21 Michael Natterer <mitch@gimp.org>
* app/actions/actions.c: forgot to register the "patterns" actions.
* app/actions/*-actions.c: added actions representing the toplevel
menus (popups and menubars). Fixed some typos.
* menus/*-menu.xml: added action="foo" attributes to all toplevel
menus. Fixed typos here too.
* menus/gtkuimanager.dtd: fixed possible attributes.
2004-04-21 Michael Natterer <mitch@gimp.org>
* app/actions/qmask-actions.c
* app/actions/qmask-commands.c: prepared qmask_actions_update()
and the qmask callbacks to be merged into the image ui manager.
* app/actions/dialogs-actions.c
* app/actions/edit-actions.c
* app/actions/file-actions.c
* app/actions/image-actions.c
* app/actions/layers-actions.c
* app/actions/plug-in-actions.c
* app/actions/tools-actions.c
* app/actions/view-actions.c: fixed lots of typos and buglets
spotted in my first test run.
* app/gui/menus.c: register the needed action groups with the
<Image> menu.
* app/tools/gimp-tools.c
* app/tools/gimpdodgeburntool.[ch]
* app/tools/gimppaintoptions-gui.c: s/dodgeburn/dodge_burn/g.
* app/widgets/gimpactionfactory.c
* app/widgets/gimpmenufactory.[ch]: s/G_GNUC_FUNCTION/G_STRFUNC/g,
updated copyright header.
* menus/image-menu.xml: fixed typos and added the "Filters"
submenus.
2004-04-21 Michael Natterer <mitch@gimp.org>
More unused action stuff:
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpactionfactory.[ch]: added a simple factory which
produces GimpActionGroups.
* app/widgets/gimpactiongroup.[ch]: added an "update_func" member
to the GimpActionGroup struct. Added it as parameter to
gimp_action_group_new(). Added function gimp_action_group_update().
* app/widgets/gimpmenufactory.[ch]: added an "action_factory"
member and constructor parameter. Added code to create
GtkUIManagers from registered action group identifiers.
* app/actions/Makefile.am
* app/actions/actions.[ch]: new files: create a
"global_action_factory" and register all action groups with it.
* app/actions/edit-actions.c: s/edit_action_update/edit_actions_update/
* app/actions/plug-in-actions.[ch]: added API to add/remove
plug-in procedure actions dynamically (unfinished).
* app/gui/menus.c (menus_init): call actions_init().
(menus_exit): call actions_exit().
2004-04-20 Michael Natterer <mitch@gimp.org>
* app/gui/convert-dialog.[ch]: renamed convert_to_indexed()
to convert_dialog_new() and return the dialog. Removed
convert_to_rgb() and convert_to_grayscale().
* app/gui/offset-dialog.[ch]: renamed offset_dialog_create()
to offset_dialog_new() and return the dialog.
* app/Makefile.am
* app/actions/drawable-commands.c
* app/actions/image-commands.c: changed accordingly.
2004-04-19 Michael Natterer <mitch@gimp.org>
More GtkAction stuff (still unused):
* configure.in: added new directories menus/ and app/actions/
* Makefile.am: build menus/
* menus/.cvsignore
* menus/Makefile.am
* menus/*-menu.xml: new files: XML menu descriptions for each menu
which is now defined in gui/*-menu.c.
* app/widgets/widgets-types.h: some typedefs for GimpActionGroup.
* app/widgets/gimpactiongroup.[ch]: added a "Gimp" construct-only
property. Added APIs to set actions visible/sensitive/active
and an unimplemented stub for setting the action's color.
* app/Makefile.am: build actions/ and link libappactions.a
* app/actions/.cvsignore
* app/actions/Makefile.am
* app/actions/*-actions.[ch]: new files: GtkActions for each
*-commands.c file in gui/. Ported all "update" functions from the
*-menu.c files.
(everything completely unused, untested and partly #if 0'ed)
* app/core/gimpimage.[ch]: for reasons of (action-) symmetry, added
API to raise/lower channels/vectors to top/bottom.
* app/gui/channels-commands.[ch]
* app/gui/vectors-commands.[ch]: added callbacks for the new
to top/bottom functions.
* app/gui/Makefile.am
* app/gui/dockable-commands.[ch]: new files split out of
dialogs-commands.[ch].
* app/gui/dialogs-commands.[ch]
* app/gui/dialogs-menu.c: changed accordingly.
* app/gui/edit-commands.[ch]: added edit_paste_into_cmd_callback()
and remove usage of "guint action".
* app/gui/image-menu.c: changed accordingly.
* app/gui/palette-editor-commands.[ch]: split
+palette_editor_new_color_cmd_callback() into separate callbacks
for adding from FG and BG.
* app/gui/palette-editor-menu.c: changed accordingly.
2004-04-15 Michael Natterer <mitch@gimp.org>
Context cleanup continued:
* app/core/gimpitem.[ch]: added context parameter to
GimpItem::stroke().
* app/core/gimpchannel.c (gimp_channel_stroke)
* app/vectors/gimpvectors.c (gimp_vectors_stroke): use it to get
default values from instead of gimp_get_user_context().
* app/core/gimpselection.c
* app/gui/stroke-dialog.c
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/paths.pdb: changed accordingly.
* app/pdb/edit_cmds.c
* app/pdb/paths_cmds.c: regenerated.
* app/plug-in/plug-in.[ch]: added GimpContext member to the PlugIn
struct. Added context parameter to plug_in_new(),
plug_in_call_query() and plug_in_call_init().
* app/plug-in/plug-in-run.[ch]: added context parameters to
plug_in_run() and plug_in_repeat().
* app/gui/plug-in-commands.c
* app/gui/vectors-commands.c
* app/pdb/procedural_db.c
* app/widgets/gimphelp.c: pass a context to plug_in_run() and
plug_in_repeat().
* app/plug-in/plug-in-message.c (plug_in_handle_proc_run): call
procedures with the plug-in's context.
* app/plug-in/plug-ins.c: use a temporary context for running the
plug-ins' query() and init() functions. Use the same context for
running automatic extensions. This temporarily separates the main
Script-Fu extension from the user context (i.e. scripts have no
way of setting/getting the global FG, BG, brush etc.).
2004-04-13 Michael Natterer <mitch@gimp.org>
Moved the calls to floating_sel_relax()/rigor() from various
places to two single spots in the core where they are actually
needed. Fixes bug #138356 (which was caused by the projection
being triggered in the middle of changing the floating selection's
size or the size of the drawable it is attached to). This commit
effectively removes floating selection fiddling from the core's
public API.
* app/core/gimpdrawable.[ch] (gimp_drawable_has_floating_sel): new
function which returns TRUE if there is a floating selection
attached to the drawable.
* app/core/gimpdrawable.c (gimp_drawable_translate)
(gimp_drawable_set_tiles_full): if the drawable *has* a floating
selection, relax/rigor it before/after modifying the drawable.
* app/core/gimplayer.c (gimp_layer_translate)
(gimp_layer_set_tiles): if the layer *is* the floating selection,
relax/rigor it before/after modifying it.
* app/core/gimpdrawable-transform.c
* app/core/gimpimage-convert.c
* app/core/gimpimage-crop.c
* app/core/gimpimage-flip.c
* app/core/gimpimage-resize.c
* app/core/gimpimage-rotate.c
* app/core/gimpimage-scale.c
* app/gui/layers-commands.c
* app/tools/gimpeditselectiontool.c
* tools/pdbgen/pdb/layer.pdb: removed calls to
floating_sel_rigor()/relax() all over the place. Also removed
lots of undo groups which are obsolete now.
* app/pdb/layer_cmds.c: regenerated.
2004-04-13 Michael Natterer <mitch@gimp.org>
GimpItem undo group cleanup in preparation of fixing bug #138356:
* app/core/core-enums.[c]: renamed LAYER_SCALE and LAYER_RESIZE
undo groups to ITEM_SCALE and ITEM_RESIZE.
* app/core/gimpitem.[ch]: always push undo groups around
GimpItem::translate(), scale(), resize(), flip(), rotate() and
transform(). Added the resp. undo_desc strings to GimpItemClass.
* app/core/gimpchannel.[ch]
* app/core/gimpdrawable.[ch]
* app/core/gimplayer.c: removed all undo groups from
implementations of the above methods. Removed the undo_desc
strings which were moved to GimpItemClass.
* app/core/gimpimage-crop.c
* app/core/gimpselection.c
* app/gui/layers-commands.c
* app/vectors/gimpvectors.c
* tools/pdbgen/pdb/layer.pdb: changed accordingly.
* app/pdb/layer_cmds.c: regenerated.
2004-03-22 Michael Natterer <mitch@gimp.org>
* app/file/file-open.c (file_open_with_proc_and_display): removed
the undo clearing/sanitizing code...
(file_open_image): ...and added it here so *all* newly opened
images start with a clean and sane undo state.
* app/gui/file-commands.c (file_revert_confirm_callback): removed
(incomplete) undo sanitizing here too.