mirror of https://github.com/GNOME/gimp.git
13 Commits
Author | SHA1 | Message | Date |
---|---|---|---|
Michael Natterer | 02d2b990f5 |
Redid the whole internal progress stuff: don't pass around
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. |
|
Michael Natterer | 2632cd8f64 |
app/actions/documents-actions.c app/actions/documents-commands.c
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. |
|
Michael Natterer | 4654280114 |
Switch from GtkItemFactory to GtkUIManager. The migration is almost
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. |
|
Michael Natterer | 661f6ddeb8 |
removed...
2004-04-20 Michael Natterer <mitch@gimp.org> * app/gui/*-commands.[ch]: removed... * app/actions/*-commands.[ch]: ...and added here. * app/gui/Makefile.am * app/gui/*-menu.c * app/gui/dialogs-constructors.c * app/gui/gui.c * app/gui/menus.c * app/actions/Makefile.am * app/actions/*-actions.c: changed accordingly. * app/actions/plug-in-actions.[ch] * app/actions/tools-actions.[ch]: new files. * app/Makefile.am: had to add more -u evilness because gui/ and actions/ have cyclic dependencies. * menus/image-menu.xml: added some more items. |
|
Michael Natterer | 3781c7fb51 |
Use the global <Image> accel_group in all docks except the toolbox (the
2004-01-31 Michael Natterer <mitch@gimp.org> Use the global <Image> accel_group in all docks except the toolbox (the latter needs GTK+ 2.4's new menu features). Addresses bug #119878: * app/gui/buffers-commands.c * app/gui/channels-commands.c * app/gui/data-commands.c * app/gui/documents-commands.c * app/gui/drawable-commands.c * app/gui/edit-commands.c * app/gui/file-commands.c * app/gui/gradients-commands.c * app/gui/image-commands.c * app/gui/layers-commands.c * app/gui/plug-in-commands.c * app/gui/select-commands.c * app/gui/tool-options-commands.c * app/gui/tools-commands.c * app/gui/vectors-commands.c * app/gui/view-commands.c: changed the various return_if_no_foo() macros to also accept a GimpDock as user_data. * app/gui/image-menu.c (image_menu_update): don't update the display related menu items if they don't exist (see below). * app/gui/gui.c (gui_display_changed): simplified. * app/widgets/gimpimagedock.[ch]: create an "<Image>" item_factory and attach its accel_group to the dock. Destroy all display related menu items. Destroy the layer stack navigation items because their default shortcuts interfere with tree and grid view keybindings. Connect to "image_changed" of the dock's private context and to "flush" of the image container to update the item_factory's state. |
|
Michael Natterer | 9827ceac0e |
added gimp_list_uniquefy_name() utility function.
2003-04-06 Michael Natterer <mitch@gimp.org> * app/core/gimplist.[ch]: added gimp_list_uniquefy_name() utility function. * app/core/gimpdatalist.c * app/core/gimpitem.c: use it here instead of duplicating almost the same code. * app/widgets/Makefile.am * app/widgets/widgets-types.h * app/widgets/gimptemplateview.[ch]: new widget for editing the template list. * app/gui/dialogs-constructors.c: use it. * app/gui/Makefile.am * app/gui/templates-commands.[ch] * app/gui/templates-menu.[ch]: new files implementing the context menu for the template list. * app/gui/menus.c: register the new menu with the menu factory. * app/gui/file-commands.c (file_new_template_callback): uniquefy the new template's name. * app/gui/documents-commands.c: fixed typo. |
|
Michael Natterer | 6f29b766e8 |
app/gui/brushes-menu.[ch] app/gui/buffers-menu.[ch]
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. |
|
Michael Natterer | dd27eb1ec9 |
app/widgets/gimpcolormapeditor.c app/widgets/gimpcontainereditor.[ch] pass
2003-01-10 Michael Natterer <mitch@gimp.org> * app/widgets/gimpcolormapeditor.c * app/widgets/gimpcontainereditor.[ch] * app/widgets/gimpdataeditor.c: pass the editor widget as callback_data to GtkItemFactory callbacks, not a "Gimp" pointer. * app/gui/buffers-commands.c * app/gui/colormap-editor-commands.c * app/gui/data-commands.c * app/gui/documents-commands.c * app/gui/gradient-editor-commands.c * app/gui/gradients-commands.c * app/gui/images-commands.c * app/gui/palette-editor-commands.c * app/gui/palettes-commands.c * app/gui/patterns-commands.c: simply cast the passed "data" pointer instead of calling gimp_widget_get_callback_context(). Don't #include "widgets/gimpwidgets-utils.h". |
|
Michael Natterer | 57d3fff345 |
app/widgets/gimpdocumentview.[ch] app/gui/documents-commands.[ch] changed
2002-09-12 Michael Natterer <mitch@gimp.org> * app/widgets/gimpdocumentview.[ch] * app/gui/documents-commands.[ch] * app/gui/menus.c: changed icon/variables/functions to say "Remove" instead of "Delete" because "Delete" is misleading (we don't delete the file but just remove the entry from the document history). |
|
Michael Natterer | 63ca433dce |
added "gchar *name_changed_signal" to GimpViewableClass which defaults to
2002-04-29 Michael Natterer <mitch@gimp.org> * app/core/gimpviewable.[ch]: added "gchar *name_changed_signal" to GimpViewableClass which defaults to "name_changed". * app/widgets/gimplistitem.c * app/widgets/gimpmenuitem.c: connect to viewable_class->name_changed_signal instead of just "name_changed". Fixed possible UI inconsistency where the previous viewable's tooltip would have been displayed. * app/core/gimpimagefile.[ch]: set name_changed_signal to "info_changed" so views can update their tooltips correctly. Merged the separate image_state and thumb_state states into one state variable and extended the state enum. Added description strings for all states. Show the file size for all files, not only for those with a thumbnail. Enabled display of outdated thumbnails. * app/gui/file-open-dialog.c: some changes because gimp_imagefile_get_description() returns 3 instead of 2 lines of text now. * app/widgets/gimpcontainerview-utils.c: show the imagefile's description in the tooltip. * app/gui/menus.c * app/gui/documents-commands.[ch] * app/widgets/gimpdocumentview.c: added functions to remove "dangling" document history entries. Updated the context menu so all functions can be accessed through it. |
|
Michael Natterer | bba8413773 |
app/core/Makefile.am new files: the QMask stuff stripped from GUI code.
2001-11-30 Michael Natterer <mitch@gimp.org> * app/core/Makefile.am * app/core/gimpimage-qmask.[ch]: new files: the QMask stuff stripped from GUI code. Added gimp_image_qmask_invert(). * app/core/gimpimage.[ch]: removed the QMask functions. * app/display/Makefile.am * app/display/gimpdisplayshell-qmask.[ch]: removed. * app/gui/Makefile.am * app/gui/qmask-commands.[ch]: new files for the new QMask item factory callbacks and the qmask query dialog. * app/gui/menus.c: added a context menu for the QMask button. * app/display/gimpdisplayshell.c * app/display/gimpdisplayshell-handlers.c: don't include the qmask stuff. * app/display/gimpdisplayshell-callbacks.[ch]: Moved the 2 qmask callbacks here. Don't popup the dialog on double_click. Show the contect menu on right-click. * app/display/gimpdisplayshell-callbacks.[ch]: gimp_display_shell_canvas_events(): removed the hack of conntecting "key_press_event" to gtk_true() while a tool is active. Instead, check for (event & GDK_BUTTON1_MASK) in the key_press and key_release handlers and stop signal emission. Save the modifier state on "button_press" and restore it after "button_release". Changed the way context menus are updated/shown: - removed GimpContainerContextFunc. - pass around item factory identifiers (e.g. "<Brushes>") - added voodoo to update the menus before showing them. * app/widgets/gimpitemfactory.[ch]: gimp_item_factory_new(): take a GimpItemFactoryUpdateFunc parameter, attach it as data to the factory and use it to update the menu in gimp_item_factory_popup_with_date(). * app/widgets/gimpwidgets-utils.[ch]: removed gimp_item_factory_popup_with_data() here. * app/widgets/gimpbrushfactoryview.[ch] * app/widgets/gimpbufferview.[ch] * app/widgets/gimpcontainereditor.[ch] * app/widgets/gimpdatafactoryview.[ch] * app/widgets/gimpdocumentview.[ch] * app/widgets/gimpdrawablelistview.[ch]: use item_factory identifier strings all over the place. * app/widgets/gimpdockbook.c: removed the menu update code, it's now in gui/dialogs-commands.c. * app/gui/brushes-commands.[ch] * app/gui/buffers-commands.[c] * app/gui/channels-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/layers-commands.[ch] * app/gui/palettes-commands.[ch] * app/gui/patterns-commands.[ch]: removed all show_context_menu() functions and made the update functions public. Changed all update functions to use the gimp_item_factory_set_foo() methods instead of gimp_menu_item_set_foo(). * app/gui/menus.c: pass the update functions to the gimp_item_factory_new(). * app/gui/dialogs-constructors.c: pass item factory identifiers to all view constructors. * app/gui/gradient-editor.c: show the context menu using the new method. * app/gui/toolbox.c: no need to include "dialogs-commands.h". |
|
Michael Natterer | 653f6999e1 |
app/widgets/Makefile.am put the whole generic stuff from gui/menus.[ch]
2001-11-27 Michael Natterer <mitch@gimp.org> * app/widgets/Makefile.am * app/widgets/gimpitemfactory.[ch]: put the whole generic stuff from gui/menus.[ch] here (where generic == less_evil because it at least does not depend on particular menu entries). * app/gui/menus.[ch]: removed the stuff here. Only the global menu definitions and bad hacks to adjust them to our needs left. Removed all menus_get_foobar_factory() functions because we can use gtk_item_factory_from_path("<FooBar>") all over the place. * app/plug_in.c * app/display/gimpdisplayshell.c * app/gui/brushes-commands.c * app/gui/buffers-commands.c * app/gui/channels-commands.c * app/gui/dialogs.c * app/gui/documents-commands.c * app/gui/file-dialog-utils.c * app/gui/file-open-dialog.c * app/gui/file-save-dialog.c * app/gui/gradient-editor-commands.c * app/gui/gradients-commands.c * app/gui/gui.c * app/gui/layers-commands.c * app/gui/palettes-commands.c * app/gui/paths-dialog.c * app/gui/patterns-commands.c * app/gui/toolbox.c: changed accordingly. None of these files except gui/gui.c includes gui/menus.h any more. |
|
Michael Natterer | f766956e67 |
added gimp_button_extended_clicked() which emits the resp. signal.
2001-10-24 Michael Natterer <mitch@gimp.org> * libgimpwidgets/gimpbutton.[ch]: added gimp_button_extended_clicked() which emits the resp. signal. * app/gui/menus.[ch]: added new item factories "<Buffers>" and "<Documents>". * app/gui/Makefile.am * app/gui/buffers-commands.[ch] * app/gui/documents-commands.[ch]: new files for the callbacks. * app/gui/dialogs-constructors.c: use them. * app/gui/file-open-dialog.c: set the title to "Open Image", not "Load Image". |