1. 07 Jul, 2004 2 commits
    • Michael Natterer's avatar
      app/gui/Makefile.am removed... · 8fc8cb48
      Michael Natterer authored
      2004-07-07  Michael Natterer  <mitch@gimp.org>
      
      	* app/gui/Makefile.am
      	* app/gui/clipboard.[ch]: removed...
      
      	* app/widgets/Makefile.am
      	* app/widgets/gimpclipboard.[ch]: ...and added here.
      
      	* app/actions/edit-commands.c
      	* app/gui/gui.c: changed accordingly.
      8fc8cb48
    • Michael Natterer's avatar
      added "..." to "Clear undo history" because it has a confirmation dialog. · c5640071
      Michael Natterer authored
      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.
      c5640071
  2. 02 Jul, 2004 1 commit
    • Sven Neumann's avatar
      app/gui/Makefile.am new files implementing a clipboard for image data · 6423529b
      Sven Neumann authored
      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.
      6423529b
  3. 25 May, 2004 1 commit
    • Michael Natterer's avatar
      added GimpContext parameters to GimpActivateItemFunc, GimpNewItemFunc and · 18d2d499
      Michael Natterer authored
      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.
      18d2d499
  4. 12 May, 2004 1 commit
    • Michael Natterer's avatar
      app/actions/documents-actions.c app/actions/documents-commands.c · 2632cd8f
      Michael Natterer authored
      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.
      2632cd8f
  5. 03 May, 2004 2 commits
    • Michael Natterer's avatar
      app/actions/actions.h. added the various return_if_no_foo() macros here. · 3590757d
      Michael Natterer authored
      2004-05-03  Michael Natterer  <mitch@gimp.org>
      
      	* app/actions/actions.h. added the various return_if_no_foo()
      	macros here.
      
      	* app/actions/channels-commands.c
      	* app/actions/dialogs-commands.c
      	* app/actions/drawable-commands.c
      	* app/actions/edit-commands.c
      	* app/actions/file-commands.c
      	* app/actions/image-commands.c
      	* app/actions/layers-commands.c
      	* app/actions/qmask-commands.c
      	* app/actions/select-commands.c
      	* app/actions/vectors-commands.c
      	* app/actions/view-commands.c: removed them here. Some cleanup.
      3590757d
    • Michael Natterer's avatar
      added some utility functions to get a Gimp, GimpImage, GimpDisplay and · d745841e
      Michael Natterer authored
      2004-05-03  Michael Natterer  <mitch@gimp.org>
      
      	* app/actions/actions.[ch]: added some utility functions to get a
      	Gimp, GimpImage, GimpDisplay and GtkWidget from the "data" pointer
      	passed to action callbacks.
      
      	* app/actions/channels-actions.c
      	* app/actions/channels-commands.c
      	* app/actions/drawable-actions.c
      	* app/actions/drawable-commands.c
      	* app/actions/edit-actions.c
      	* app/actions/edit-commands.c
      	* app/actions/file-actions.c
      	* app/actions/file-commands.c
      	* app/actions/help-commands.c
      	* app/actions/image-actions.c
      	* app/actions/image-commands.c
      	* app/actions/layers-actions.c
      	* app/actions/layers-commands.c
      	* app/actions/plug-in-actions.c
      	* app/actions/plug-in-commands.c
      	* app/actions/qmask-actions.c
      	* app/actions/qmask-commands.c
      	* app/actions/select-actions.c
      	* app/actions/select-commands.c
      	* app/actions/tools-commands.c
      	* app/actions/vectors-actions.c
      	* app/actions/vectors-commands.c
      	* app/actions/view-commands.c: use the new functions instead of
      	duplicating insane macros and if() constructs over and over again.
      d745841e
  6. 29 Apr, 2004 1 commit
    • Michael Natterer's avatar
      Switch from GtkItemFactory to GtkUIManager. The migration is almost · 46542801
      Michael Natterer authored
      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...
      46542801
  7. 20 Apr, 2004 1 commit
    • Michael Natterer's avatar
      removed... · 661f6dde
      Michael Natterer authored
      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.
      661f6dde
  8. 19 Apr, 2004 1 commit
    • Michael Natterer's avatar
      More GtkAction stuff (still unused): · 8848558f
      Michael Natterer authored
      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.
      8848558f
  9. 14 Apr, 2004 1 commit
    • Michael Natterer's avatar
      Get rid of the "current_context" which was in fact just a bunch of global · 18d9161e
      Michael Natterer authored
      2004-04-15  Michael Natterer  <mitch@gimp.org>
      
      	Get rid of the "current_context" which was in fact just a bunch of
      	global variables. Instead, pass the needed context all the way
      	from the GUI and the PDB to the core. This is a prerequisite for
      	macro recording and generally helps separating the various
      	subsystems from each other. Work in progress...
      
      	* app/core/gimp.[ch]: removed member "current_context" and
      	gimp_[get|set]_current_context().
      
      	* app/core/gimp-edit.[ch]
      	* app/core/gimpdrawable-blend.[ch]
      	* app/core/gimpdrawable-bucket-fill.[ch]
      	* app/core/gimpdrawable-offset.[ch]
      	* app/core/gimpdrawable-transform.[ch]
      	* app/core/gimpimage-crop.[ch]
      	* app/core/gimpimage-flip.[ch]
      	* app/core/gimpimage-merge.[ch]
      	* app/core/gimpimage-resize.[ch]
      	* app/core/gimpimage-rotate.[ch]
      	* app/core/gimpimage.[ch]
      	* app/core/gimpimagefile.[ch]
      	* app/core/gimpitem-linked.[ch]
      	* app/core/gimpitem.[ch]
      	* app/core/gimplayer.[ch]
      	* app/core/gimpselection.[ch]
      	* app/core/gimptemplate.[ch]
      	* app/file/file-open.[ch]
      	* app/file/file-save.[ch]
      	* app/pdb/procedural_db.[ch]
      	* app/text/gimptext-compat.[ch]
      	* app/text/gimptextlayer-transform.[ch]
      	* app/gui/brush-select.[ch]
      	* app/gui/font-select.[ch]
      	* app/gui/gradient-select.[ch]
      	* app/gui/palette-select.[ch]
      	* app/gui/pattern-select.[ch]: added tons of "GimpContext *context"
      	parameters and use the passed context instead of
      	gimp_get_current_context().
      
      	* app/app_procs.c
      	* app/batch.c
      	* app/core/gimpchannel.c
      	* app/core/gimpdrawable.c
      	* app/paint/gimperaser.c
      	* app/paint/gimppaintbrush.c
      	* app/plug-in/plug-in-message.c
      	* app/plug-in/plug-ins.c
      	* app/text/gimptextlayer.c
      	* app/tools/gimpblendtool.c
      	* app/tools/gimpbucketfilltool.c
      	* app/tools/gimpcroptool.c
      	* app/tools/gimpeditselectiontool.c
      	* app/tools/gimpfliptool.c
      	* app/tools/gimpinktool.c
      	* app/tools/gimptransformtool.c
      	* app/vectors/gimpvectors.c
      	* app/gui/convert-dialog.c
      	* app/gui/drawable-commands.c
      	* app/gui/edit-commands.c
      	* app/gui/file-commands.c
      	* app/gui/file-new-dialog.c
      	* app/gui/file-open-dialog.c
      	* app/gui/file-save-dialog.c
      	* app/gui/image-commands.c
      	* app/gui/layers-commands.c
      	* app/gui/offset-dialog.c
      	* app/gui/select-commands.c
      	* app/gui/vectors-commands.c
      	* app/widgets/gimpdnd.c
      	* app/widgets/gimpdocumentview.c
      	* app/widgets/gimphelp.c
      	* app/widgets/gimpthumbbox.c: pass gimp_get_user_context() or
      	GIMP_CONTEXT(tool_options) or whatever is the right context
      	to the changed core functions.
      
      	* tools/pdbgen/app.pl: pass "GimpContext *context" to all
      	generated PDB invokers.
      
      	* tools/pdbgen/pdb/brush_select.pdb
      	* tools/pdbgen/pdb/brushes.pdb
      	* tools/pdbgen/pdb/drawable.pdb
      	* tools/pdbgen/pdb/edit.pdb
      	* tools/pdbgen/pdb/font_select.pdb
      	* tools/pdbgen/pdb/gradient_select.pdb
      	* tools/pdbgen/pdb/gradients.pdb
      	* tools/pdbgen/pdb/image.pdb
      	* tools/pdbgen/pdb/layer.pdb
      	* tools/pdbgen/pdb/paint_tools.pdb
      	* tools/pdbgen/pdb/palette.pdb
      	* tools/pdbgen/pdb/palette_select.pdb
      	* tools/pdbgen/pdb/palettes.pdb
      	* tools/pdbgen/pdb/paths.pdb
      	* tools/pdbgen/pdb/pattern_select.pdb
      	* tools/pdbgen/pdb/patterns.pdb
      	* tools/pdbgen/pdb/selection.pdb
      	* tools/pdbgen/pdb/text_tool.pdb
      	* tools/pdbgen/pdb/transform_tools.pdb: pass the new context
      	parameter to the changed core functions.
      
      	* app/pdb/*_cmds.c: regenerated.
      18d9161e
  10. 19 Feb, 2004 1 commit
    • Michael Natterer's avatar
      added new signal "buffer_changed" and new function · 513f5eac
      Michael Natterer authored
      2004-02-19  Michael Natterer  <mitch@gimp.org>
      
      	* app/core/gimp.[ch]: added new signal "buffer_changed" and new
      	function gimp_set_global_buffer() which emits it when the global
      	buffer changes.
      
      	* app/core/gimp-edit.c (gimp_edit_extract): use it instead
      	of fiddling with gimp->global_buffer manually.
      
      	* app/gui/image-menu.c: connect to "buffer_changed" and set the
      	"Paste" menu entries sensitive. Fixes bug #134752.
      
      	(image_menu_update): changed accordingly. Also changed a lot of
      	buggy SET_SENSITIVE() lines which made menu items which work fine
      	on any drawable insensitive when there were no layers (instead
      	of no drawable).
      
      	* app/gui/edit-commands.c: added new macro return_if_new_drawable()
      	and use it instead of return_if_no_image() so we don't run
      	into assertions if there is no active drawable.
      
      	(cut,copy_named_buffer_callback): unfortunately had to introduce
      	two new translated messages about not being able to cut/copy when
      	there is no active drawable.
      513f5eac
  11. 31 Jan, 2004 1 commit
    • Michael Natterer's avatar
      Use the global <Image> accel_group in all docks except the toolbox (the · 3781c7fb
      Michael Natterer authored
      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.
      3781c7fb
  12. 16 Jan, 2004 1 commit
    • Michael Natterer's avatar
      converted tabs to spaces. · b6683376
      Michael Natterer authored
      2004-01-16  Michael Natterer  <mitch@gimp.org>
      
      	* app/gui/edit-commands.[ch]: converted tabs to spaces.
      
      	(cut,copy_named_buffer_callback): unref the buffer after adding it
      	to gimp->named_buffers. Seems we leaked all named buffers...
      
      	Removed code duplication I have just introduced:
      
      	* app/gui/edit-commands.[ch] removed
      	edit_paste_into_cmd_callback(). Instead, pass the "paste_into"
      	boolean as "guint action" to gimp_edit_paste_cmd_callback().
      
      	* app/gui/image-menu.c: changed accordingly.
      
      	* app/widgets/gimpbufferview.c: added utility function
      	gimp_buffer_view_paste() and call it from the paste and paste_into
      	callbacks.
      b6683376
  13. 15 Jan, 2004 1 commit
    • Michael Natterer's avatar
      Fixed bug #78732 (don't paste off screen): · 0af39061
      Michael Natterer authored
      2004-01-15  Michael Natterer  <mitch@gimp.org>
      
      	Fixed bug #78732 (don't paste off screen):
      
      	* app/display/gimpdisplayshell-transform.[ch]: added new function
      	gimp_display_shell_untransform_viewport() which returns the
      	visible rectangle of the image in image coordinates.
      
      	* app/core/gimp-edit.[ch] (gimp_edit_paste): added viewport
      	parameters and changed positioning of the pasted layer as follows:
      
      	- if there is a selection, center on the selection (just as before).
      	- if there is no viewport, center on the active drawable.
      	- if the viewport intersects with the active drawable, center
      	  on the intersection.
      	- if the viewport does *not* intersect with the active drawable,
      	  center on the active drawable (off-screen, but better than pasting
      	  something that will be invisible due to floating selection clipping).
      	- if there is no active drawable, center on the viewport.
      	- if there is no active drawable and no viewport, center on the image.
      
      	* app/widgets/gimpbufferview.c (gimp_buffer_view_paste_clicked)
      	(gimp_buffer_view_paste_into_clicked)
      	* app/display/gimpdisplayshell-dnd.c (gimp_display_shell_drop_buffer)
      	* app/gui/edit-commands.c (edit_paste_cmd_callback)
      	(edit_paste_into_cmd_callback): ask the shell for the viewport
      	and pass it to gimp_edit_paste().
      
      	* app/display/gimpdisplayshell-dnd.c
      	(gimp_display_shell_drop_drawable): center the created layer on
      	the viewport.
      
      	* app/tools/gimpmovetool.c (gimp_move_tool_button_release): use
      	gimp_display_shell_untransform_viewport() (its code was taken from
      	here).
      
      	* tools/pdbgen/pdb/edit.pdb: pass "no viewport" to gimp_edit_paste().
      
      	* app/pdb/edit_cmds.c: regenerated.
      0af39061
  14. 06 Jan, 2004 1 commit
    • Michael Natterer's avatar
      Enabled skipping enum values for either the PDB or GType registration · dec20d82
      Michael Natterer authored
      2004-01-06  Michael Natterer  <mitch@gimp.org>
      
      	Enabled skipping enum values for either the PDB or GType
      	registration (don't always skip both targets):
      
      	* tools/gimp-mkenums: skip enum values only if there is a literal
      	"skip" (don't match "pdb-skip").
      
      	* tools/pdbgen/enumgen.pl: skip only "pdb-skip" values, not "skip"
      	ones.
      
      	* app/base/base-enums.h
      	* app/core/core-enums.h
      	* app/paint/paint-enums.h
      	* libgimpbase/gimpbaseenums.h: use the right "pdb-skip"/"skip"
      	combination to skip enum values. Changed comments accordingly.
      
      	Cleaned up the fill functions:
      
      	* app/core/core-enums.[ch]: added GIMP_PATTERN_FILL enum value to
      	the GimpFillType enum. Don't export GIMP_NO_FILL to the PDB
      	because it's completely useless to export a NOP.
      
      	* app/core/gimp-edit.c (gimp_edit_fill, gimp_edit_fill_internal):
      	handle pattern fill requests.
      
      	* app/core/gimpdrawable.[ch] (gimp_drawable_fill): added GimpPattern
      	parameter and fill with it if...
      dec20d82
  15. 18 Nov, 2003 1 commit
    • Michael Natterer's avatar
      support '|'-separated lists of dialog identifiers and raise any of them if · 56863fac
      Michael Natterer authored
      2003-11-18  Michael Natterer  <mitch@gimp.org>
      
      	* app/widgets/gimpdialogfactory.[ch]
      	(gimp_dialog_factory_dialog_raise): support '|'-separated lists of
      	dialog identifiers and raise any of them if it is already open, or
      	the first dialog in the list otherwise.
      
      	* app/gui/dialogs-commands.c (dialogs_create_dockable_cmd_callback):
      	removed the same functionality here.
      
      	* app/gui/edit-commands.c
      	* app/tools/gimppaintoptions-gui.c
      	* app/tools/gimptextoptions.c
      	* app/widgets/gimpdevicestatus.c
      	* app/widgets/gimptoolbox-indicator-area.c: pass lists of dialog
      	identifiers to gimp_dialog_factory_dialog_raise().
      56863fac
  16. 14 Nov, 2003 1 commit
    • Michael Natterer's avatar
      libgimpwidgets/gimpquerybox.c configure the labels in the message dialog · 6eb77294
      Michael Natterer authored
      2003-11-14  Michael Natterer  <mitch@gimp.org>
      
      	* libgimpwidgets/gimpquerybox.c
      	* app/widgets/gimpwidgets-utils.c: configure the labels in the
      	message dialog and the query boxes to do automatic word wrapping
      	to be HIG compliant.
      
      	* app/app_procs.c
      	* app/batch.c
      	* app/config/gimpconfig-deserialize.c
      	* app/config/gimpconfig-path.c
      	* app/config/gimpconfig-utils.c
      	* app/config/gimpconfigwriter.c
      	* app/config/gimpscanner.c
      	* app/core/gimpbrush.c
      	* app/core/gimpbrushgenerated.c
      	* app/core/gimpbrushpipe.c
      	* app/core/gimpdatafactory.c
      	* app/core/gimpgradient.c
      	* app/core/gimpimage-merge.c
      	* app/core/gimpimage.c
      	* app/core/gimpimagefile.c
      	* app/core/gimplayer-floating-sel.c
      	* app/core/gimppalette.c
      	* app/core/gimppattern.c
      	* app/core/gimpselection.c
      	* app/display/gimpdisplayshell.c
      	* app/file/file-utils.c
      	* app/gui/brush-select.c
      	* app/gui/dialogs-commands.c
      	* app/gui/drawable-commands.c
      	* app/gui/edit-commands.c
      	* app/gui/file-commands.c
      	* app/gui/file-new-dialog.c
      	* app/gui/font-select.c
      	* app/gui/gradient-select.c
      	* app/gui/gui.c
      	* app/gui/image-commands.c
      	* app/gui/layers-commands.c
      	* app/gui/palette-select.c
      	* app/gui/palettes-commands.c
      	* app/gui/pattern-select.c
      	* app/gui/preferences-dialog.c
      	* app/gui/select-commands.c
      	* app/gui/stroke-dialog.c
      	* app/gui/tool-options-menu.c
      	* app/gui/vectors-commands.c
      	* app/gui/view-commands.c
      	* app/plug-in/plug-in-message.c
      	* app/plug-in/plug-in.c
      	* app/plug-in/plug-ins.c
      	* app/text/gimptextlayer-xcf.c
      	* app/text/gimptextlayer.c
      	* app/tools/gimpcurvestool.c
      	* app/tools/gimphuesaturationtool.c
      	* app/tools/gimplevelstool.c
      	* app/tools/gimptransformtool.c
      	* app/vectors/gimpvectors-export.c
      	* app/widgets/gimpdatafactoryview.c
      	* app/widgets/gimphelp.c
      	* app/widgets/gimptemplateview.c
      	* app/widgets/gimptooloptionseditor.c
      	* app/xcf/xcf.c
      	* tools/pdbgen/pdb/image.pdb: removed explicit newlines from
      	messages. Reduced number of translatable strings by making many
      	file error messages the same. Quote single words and filenames
      	with 'foo', not "foo". Replaced some more "drawable" by "layer".
      	General message cleanup and consistency check.
      
      	* app/pdb/image_cmds.c: regenerated.
      6eb77294
  17. 08 Nov, 2003 1 commit
    • Michael Natterer's avatar
      To be multihead safe, each new window or menu needs to be associated with · bcd9794a
      Michael Natterer authored
      2003-11-08  Michael Natterer  <mitch@gimp.org>
      
      	To be multihead safe, each new window or menu needs to be
      	associated with a GdkScreen or it will pop up on the default
      	screen.
      
      	* libgimpwidgets/gimpquerybox.[ch]
      	* app/display/gimpdisplayshell-layer-select.[ch]
      	* app/widgets/widgets-types.h
      	* app/widgets/gimpitemfactory.[ch]
      	* app/widgets/gimpitemtreeview.[ch]
      	* app/widgets/gimptemplateview.[ch]
      	* app/widgets/gimptooldialog.[ch]
      	* app/widgets/gimpviewabledialog.[ch]
      	* app/gui/channels-commands.[ch]
      	* app/gui/color-notebook.[ch]
      	* app/gui/convert-dialog.[ch]
      	* app/gui/edit-commands.[ch]
      	* app/gui/grid-dialog.[ch]
      	* app/gui/image-commands.[ch]
      	* app/gui/info-dialog.[ch]
      	* app/gui/layers-commands.[ch]
      	* app/gui/offset-dialog.[ch]
      	* app/gui/resize-dialog.[ch]
      	* app/gui/stroke-dialog.[ch]
      	* app/gui/templates-commands.[ch]
      	* app/gui/vectors-commands.[ch]: added "GtkWidget *parent"
      	paramaters to all functions which create menus, popups or windows
      	and pass "parent" to gimp_dialog_new() or one of the various
      	wrappers around it. As a side effect, this fixes bug #61092.
      
      	* app/widgets/gimpdialogfactory.[ch]: added "GdkScreen *screen"
      	instead of "parent" here since there are no possible parent
      	windows on startup.
      
      	* app/display/gimpdisplayshell-callbacks.c
      	(gimp_display_shell_origin_button_press): added a quick hack to
      	send a display to another screen: click the origin button with the
      	middle mouse button.
      
      	* app/display/gimpdisplayshell.c
      	(gimp_display_shell_screen_changed): don't chain up
      	undonditionally (don't crash).
      
      	* libgimpwidgets/gimpdialog.c (gimp_dialog_new_valist): set the
      	dialog's screen from a non-GtkWidget parent widget. The rest of
      	non-window parent widget handling is still unimplemented.
      
      	* libgimpwidgets/gimpcolorbutton.c
      	* app/widgets/gimpcolormapeditor.c
      	* app/widgets/gimpcolorpanel.c
      	* app/widgets/gimpcomponenteditor.c
      	* app/widgets/gimpcontainereditor.c
      	* app/widgets/gimpcontainergridview.c
      	* app/widgets/gimpcontainerpopup.c
      	* app/widgets/gimpcontainertreeview.c
      	* app/widgets/gimpdatafactoryview.c
      	* app/widgets/gimpdevicestatus.c
      	* app/widgets/gimpdockable.c
      	* app/widgets/gimpdrawabletreeview.c
      	* app/widgets/gimperrorconsole.c
      	* app/widgets/gimpgradienteditor.c
      	* app/widgets/gimphelp.c
      	* app/widgets/gimppaletteeditor.c
      	* app/widgets/gimppreview-popup.c
      	* app/widgets/gimpselectioneditor.c
      	* app/widgets/gimpsessioninfo.c
      	* app/widgets/gimptoolbox-color-area.c
      	* app/widgets/gimptoolbox-indicator-area.c
      	* app/widgets/gimptoolbox.c
      	* app/widgets/gimptooloptionseditor.c
      	* app/widgets/gimpvectorstreeview.c
      	* app/widgets/gimpwidgets-utils.c
      	* app/display/gimpdisplayshell-scale.c
      	* app/display/gimpnavigationview.c
      	* app/gui/module-browser.c
      	* app/gui/dialogs-commands.c
      	* app/gui/dialogs-constructors.c
      	* app/gui/drawable-commands.c
      	* app/gui/file-commands.c
      	* app/gui/file-new-dialog.c
      	* app/gui/file-save-dialog.c
      	* app/gui/gradient-editor-commands.c
      	* app/gui/gui-vtable.c
      	* app/gui/gui.c
      	* app/gui/info-window.c
      	* app/gui/palette-import-dialog.c
      	* app/gui/palettes-commands.c
      	* app/gui/qmask-commands.c
      	* app/gui/select-commands.c
      	* app/gui/tool-options-commands.c
      	* app/gui/view-commands.c
      	* app/tools/gimpcolorpickertool.c
      	* app/tools/gimpcroptool.c
      	* app/tools/gimpimagemaptool.c
      	* app/tools/gimpmeasuretool.c
      	* app/tools/gimptransformtool.c
      	* plug-ins/FractalExplorer/FractalExplorer.c
      	* plug-ins/gfig/gfig.c
      	* plug-ins/gflare/gflare.c: changed addordingly. Changed all
      	menu_position funcs to place the menu on the right screen.
      bcd9794a
  18. 30 Sep, 2003 1 commit
    • Michael Natterer's avatar
      cleanup. · d0e1c1c6
      Michael Natterer authored
      2003-09-30  Michael Natterer  <mitch@gimp.org>
      
      	* app/paint/gimppaintcore-stroke.c: cleanup.
      
      	(gimp_paint_core_stroke_boundary): don't push a separate undo
      	for each part of the boundary.
      
      	* app/core/gimpdrawable-stroke.[ch]: added empty stub
      	gimp_drawable_stroke_boundary(). Changed
      	gimp_drawable_stroke_vectors() to take the GimpStrokeOptions as
      	second parameter.
      
      	* app/core/gimpchannel.c (gimp_channel_stroke): use it. No need
      	to push an undo group around gimp_paint_core_stroke_boundary().
      
      	* app/vectors/gimpvectors.c: changed accordingly.
      
      	* app/widgets/gimpselectioneditor.[ch]: added a GimpStrokeItemFunc
      	pointer and use it for stroking.
      
      	* app/gui/edit-commands.[ch] (edit_stroke_selection): a
      	GimpStrokeItemFunc which strokes the selection using the
      	stroke-dialog.
      
      	* app/gui/dialogs-constructors.c: use it for the selection editor.
      d0e1c1c6
  19. 26 Sep, 2003 1 commit
    • Simon Budig's avatar
      New Object, holding the Options for a Libart-Stroke. · 10a5269e
      Simon Budig authored
      2003-09-26  Simon Budig  <simon@gimp.org>
      
      	* app/core/gimpstrokeoptions.[ch]: New Object, holding the
      	Options for a Libart-Stroke.
      
      	* app/core/Makefile.am
      	* app/core/core-types.h: Changed accordingly.
      
      	* app/core/gimpitem.[ch]: Changed the Signature of
      	gimp_item_stroke to accept a GimpObject instead of a
      	GimpPaintInfo. This enables us to pass GimpStrokeOptions
      	to it. To be cleaned up for 2.2.
      
      	* app/core/gimpselection.c
      	* app/core/gimpchannel.c
      	* app/vectors/gimpvectors.c: Changed accordingly
      
      	* app/gui/edit-commands.c
      	* app/gui/vectors-commands.c
      	* app/pdb/edit_cmds.c
      	* app/pdb/paths_cmds.c
      	* app/widgets/gimpselectioneditor.c
      	* app/widgets/gimpvectorstreeview.c: Fixed warnings by
      	casting the GimpPaintInfo to GimpObject.
      10a5269e
  20. 15 Sep, 2003 1 commit
    • Michael Natterer's avatar
      app/core/gimpedit.[ch] app/core/gimpmodules.[ch] app/core/gimpunits.[ch] · 28d6f0a2
      Michael Natterer authored
      2003-09-15  Michael Natterer  <mitch@gimp.org>
      
      	* app/core/gimpedit.[ch]
      	* app/core/gimpmodules.[ch]
      	* app/core/gimpunits.[ch]
      	* app/text/gimpfonts.[ch]: removed...
      
      	* app/core/gimp-edit.[ch]
      	* app/core/gimp-modules.[ch]
      	* app/core/gimp-units.[ch]
      	* app/text/gimp-fonts.[ch]: ...and added with new names because
      	these files operate on members of a Gimp instance and are
      	therefore methods of the Gimp object.
      
      	* app/core/Makefile.am
      	* app/text/Makefile.am
      	* app/display/gimpdisplayshell-dnd.c
      	* app/gui/edit-commands.c
      	* app/gui/module-browser.c
      	* app/gui/preferences-dialog.c
      	* app/widgets/gimpbufferview.c
      	* app/widgets/gimpdocumentview.c
      	* app/widgets/gimptoolbox-dnd.c
      	* app/app_procs.c
      	* tools/pdbgen/pdb/edit.pdb
      	* tools/pdbgen/pdb/fonts.pdb: changed accordingly.
      
      	* app/pdb/edit_cmds.c
      	* app/pdb/fonts_cmds.c: regenerated.
      
      	* app/core/gimp.c (gimp_init): don't create gimp->fonts.
      	(gimp_initialize): call gimp_fonts_init().
      	(gimp_restore): call gimp_fonts_load() instead of _init().
      
      	* app/text/gimp-fonts.c (gimp_fonts_init): don't call
      	gimp_fonts_load(), just create gimp->fonts and connect to
      	"notify::font-path" of gimp->config.
      28d6f0a2
  21. 05 Sep, 2003 2 commits
    • Sven Neumann's avatar
      make it actually compile... · b66e3ddd
      Sven Neumann authored
      b66e3ddd
    • Sven Neumann's avatar
      free the memory allocated for the GimpLut structure. Removed trailing · 8e38f70b
      Sven Neumann authored
      2003-09-05  Sven Neumann  <sven@gimp.org>
      
      	* app/base/gimplut.[ch] (gimp_lut_free): free the memory allocated
      	for the GimpLut structure. Removed trailing whitespace.
      
      	* app/core/gimpbuffer.c: cosmetics.
      
      	* app/core/gimpedit.[ch]: let gimp_edit_cut() and gimp_edit_copy()
      	return a pointer to the global cut buffer instead of creating a
      	GimpBuffer which was leaked by most callers.
      
      	* app/gui/edit-commands.c: changed accordingly.
      
      	* libgimpwidgets/gimpquerybox.[ch] (string_query_box_ok_callback):
      	removed a superfluous g_strdup(); made GimpQueryStringCallback take
      	a const gchar* pointer.
      
      	* app/gui/edit-commands.c
      	* app/gui/file-commands.c
      	* app/gui/palettes-commands.c: changed accordingly.
      8e38f70b
  22. 03 Sep, 2003 1 commit
    • Michael Natterer's avatar
      removed the _translate() and _stroke() wrappers. · f47b758f
      Michael Natterer authored
      2003-09-03  Michael Natterer  <mitch@gimp.org>
      
      	* app/core/gimpimage-mask.[ch]: removed the _translate()
      	and _stroke() wrappers.
      
      	* app/gui/edit-commands.c
      	* app/tools/gimpeditselectiontool.c
      	* app/widgets/gimpselectioneditor.c
      	* tools/pdbgen/pdb/edit.pdb
      	* tools/pdbgen/pdb/selection.pdb: changed accordingly.
      
      	* app/pdb/edit_cmds.c
      	* app/pdb/selection_cmds.c: regenerated.
      
      	* app/core/gimpselection.c: implement GimpItem::scale(), resize(),
      	flip() and rotate().
      
      	* 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: no need to call
      	gimp_image_mask_invalidate() and/or gimp_image_mask_changed()
      	manually after scale, resize, flip and rotate, since GimpSelection
      	updates itself correctly.
      f47b758f
  23. 01 Sep, 2003 1 commit
    • Michael Natterer's avatar
      added new virtual function GimpItem::stroke(). · dcb6f225
      Michael Natterer authored
      2003-09-01  Michael Natterer  <mitch@gimp.org>
      
      	* app/core/gimpitem.[ch]: added new virtual function
      	GimpItem::stroke().
      
      	* app/core/gimpchannel.c
      	* app/vectors/gimpvectors.c: implement GimpItem::stroke().
      
      	* app/core/gimpimage-mask.[ch] (gimp_image_mask_stroke): changed
      	signature to match gimp_item_stroke() (the selection mask *really*
      	should be a GimpChannel subclass).
      	Removed global variable "gboolean gimp_image_mask_stroking"...
      
      	* app/core/gimpimage.[ch]: ...and added "gboolean mask_stroking"
      	to the GimpImage struct.
      
      	* app/gui/vectors-commands.[ch]: removed vectors_stroke_vectors().
      
      	* app/widgets/widgets-types.h: removed GimpStrokeItemFunc typedef.
      
      	* app/widgets/gimpvectorstreeview.[ch]: removed "stroke_item_func"
      	member and use gimp_item_stroke() instead.
      
      	* app/gui/dialogs-constructors.c (dialogs_vectors_list_view_new)
      	* app/gui/edit-commands.c (edit_stroke_cmd_callback)
      	* app/gui/vectors-commands. (vectors_stroke_cmd_callback)
      	* app/widgets/gimpselectioneditor.c
      	(gimp_selection_editor_stroke_clicked)
      	* tools/pdbgen/pdb/edit.pdb (gimp_edit_stroke): changed accordingly.
      
      	* app/pdb/edit_cmds.c: regenerated.
      
      	Note that there is no GUI for "stroke channel", although it would
      	be utterly cool to have one, since currently slelection stroking
      	cannot be masked by a selection (because we stroke the selection).
      	Anyway, if anyone has an idea how to trigger "stroke channel" with
      	another drawable active (the one to stroke to), please let me
      	know...
      dcb6f225
  24. 21 Aug, 2003 1 commit
    • Michael Natterer's avatar
      app/widgets/Makefile.am new file defining the available help topics. Work · a319c455
      Michael Natterer authored
      2003-08-21  Michael Natterer  <mitch@gimp.org>
      
      	* app/widgets/Makefile.am
      	* app/widgets/gimphelp-ids.h: new file defining the available help
      	topics. Work in progress and totally unusable for matching to the
      	help system. Stay tuned...
      
      	* app/gui/about-dialog.c
      	* app/gui/brushes-menu.c
      	* app/gui/buffers-menu.c
      	* app/gui/channels-commands.[ch]
      	* app/gui/channels-menu.c
      	* app/gui/edit-commands.c
      	* app/gui/file-commands.c
      	* app/gui/file-new-dialog.c
      	* app/gui/file-open-dialog.c
      	* app/gui/file-save-dialog.c
      	* app/gui/gradients-commands.c
      	* app/gui/gradients-menu.c
      	* app/gui/image-menu.c
      	* app/gui/layers-commands.[ch]
      	* app/gui/layers-menu.c
      	* app/gui/module-browser.c
      	* app/gui/offset-dialog.c
      	* app/gui/palettes-menu.c
      	* app/gui/patterns-menu.c
      	* app/gui/resize-dialog.c
      	* app/gui/select-commands.c
      	* app/gui/templates-menu.c
      	* app/gui/tips-dialog.c
      	* app/gui/toolbox-menu.c
      	* app/gui/vectors-commands.[ch]
      	* app/gui/vectors-menu.c: replaced literal HTML file paths by help
      	IDs from gimphelp-ids.h. Renamed some menu callbacks to be
      	consistent with similar ones. This is just an intermediate commit
      	and not finished.
      
      	While browsing all the menus, I noticed that our "x to selection"
      	functions are not consistent at all. They should all offer the
      	REPLACE,ADD,SUBTRACT,INTERSECT options:
      
      	* app/core/gimpchannel.[ch]: added new function
      	gimp_channel_new_from_alpha(). Removed gimp_channel_layer_alpha()
      	and gimp_channel_layer_mask().
      
      	* app/core/gimpimage-mask.[ch]: added
      	gimp_image_mask_select_alpha() and
      	gimp_image_mask_select_component() which offer the full set of
      	operation, feather and feather_radius parameters as the other
      	selection functions.
      
      	* app/core/gimpimage-mask-select.[ch]: removed
      	gimp_image_mask_layer_alpha() and gimp_image_mask_layer_mask().
      
      	* app/gui/channels-commands.c (channels_channel_to_selection): use
      	gimp_image_mask_select_component() instead of implementing it
      	here.
      
      	* app/gui/image-menu.c
      	* app/gui/layers-commands.[ch]: offer the full choice of
      	REPLACE,ADD,SUBTRACT,INTERSECT with "Alpha to Selection" and "Mask
      	to Selection".
      
      	* tools/pdbgen/pdb/selection.pdb: changed accordingly.
      
      	* app/pdb/selection_cmds.c: regenerated.
      a319c455
  25. 02 Jul, 2003 1 commit
    • Sven Neumann's avatar
      app/gui/edit-commands.c added "Fill with Pattern" menu entry as suggested · e7860145
      Sven Neumann authored
      2003-07-02  Sven Neumann  <sven@gimp.org>
      
      	* app/gui/edit-commands.c
      	* app/gui/image-menu.c: added "Fill with Pattern" menu entry as
      	suggested in bug #116365.
      
      	* app/base/temp-buf.c
      	* app/base/tile-swap.c
      	* app/config/gimpbaseconfig.c
      	* app/config/gimpconfig-types.c
      	* app/display/gimpdisplayshell-filter-dialog.c
      	* app/display/gimpdisplayshell.c
      	* app/file/file-utils.c
      	* app/paint-funcs/paint-funcs-types.h
      	* app/tools/gimpdrawtool.c
      	* app/tools/gimpinktool.c
      	* app/tools/gimpiscissorstool.h
      	* app/tools/gimptextoptions.c
      	* app/paint-funcs/paint-funcs-types.h
      	* app/vectors/gimpbezierstroke.c
      	* app/vectors/gimpstroke.c
      	* app/vectors/gimpvectors.c
      	* app/vectors/vectors-types.h
      	* libgimp/gimpbrushmenu.c
      	* libgimp/gimpmisc.h
      	* libgimpmodule/gimpmodule.c: fixed some minor issues found
      	compiling with -pedantic.
      
      	* app/pdb/misc_tools_cmds.c
      	* tools/pdbgen/pdb/misc_tools.pdb: adapt to the changed order of
      	arguments for gimp_image_pick_color().
      e7860145
  26. 25 Mar, 2003 1 commit
    • Sven Neumann's avatar
      Makefile.am removed this header file. · 28fddfd5
      Sven Neumann authored
      2003-03-25  Sven Neumann  <sven@gimp.org>
      
      	* Makefile.am
      	* gimpintl.h: removed this header file.
      
      	* gimpmiscui.c: include libgimp-intl.h.
      
      	* gimp.c (gimp_main): call setlocale() and bind to the libgimp
      	textdomain so that plug-ins don't need to do that explicitely.
      
      	* libgimp/stdplugins-intl.h: added the functionality that used to
      	live in gimpintl.h and removed the libgimp related stuff. Got rid
      	of the INIT_I18N_UI() macro.
      
      	* plug-ins/*/*.c: removed all occurances of INIT_I18N_UI().
      	Plug-ins simply call INIT_I18N() once in their run() function.
      
      	* plug-ins/script-fu/script-fu-intl.h: added the functionality
      	that used to live in gimpintl.h and removed the libgimp related
      	stuff.
      
      	* app/Makefile.am
      	* app/gimp-intl.h: new file that defines the gettext macros for
      	the GIMP core.
      
      	* app/*/*.c: include gimp-intl.h instead of libgimp/gimpintl.h.
      
      	* plug-ins/script-fu/scripts/test-sphere.scm: fixed typos.
      28fddfd5
  27. 12 Feb, 2003 1 commit
    • Michael Natterer's avatar
      Moved the undo system to the core: Keep GimpUndoStack objects as undo and · be70105d
      Michael Natterer authored
      2003-02-12  Michael Natterer  <mitch@gimp.org>
      
      	Moved the undo system to the core: Keep GimpUndoStack objects as
      	undo and redo stack. Use GimpUndo objects as members of the
      	stacks. GimpUndoStack is derived from GimpUndo and keeps undo
      	groups, so undo group handling is much simpler than before
      	(the whole group is just a single GimpUndo object on the
      	stack and not everything between group boundary markers).
      
      	* app/Makefile.am
      	* app/undo_types.h: removed.
      
      	* app/config/gimpcoreconfig.[ch]: added "gulong undo_size".
      	* app/config/gimprc-blurbs.h: and its blurb.
      
      	* app/core/core-enums.[ch]: added GimpUndoMode and GimpUndoType.
      
      	* app/core/core-types.h: removed UndoType, added GimpUndoAccumulator,
      	GimpUndoPopFunc and GimpUndoFreeFunc.
      
      	* app/core/gimpundo.[ch]: do everything the old "Undo" struct did.
      	Removed the virtual push() function and added free().
      
      	* app/core/gimpundostack.[ch]: keeps the new undo/redo stacks
      	and also acts as undo group.
      
      	* app/core/gimpimage-undo.[ch]: moved the undo apparatus here.
      
      	* app/core/gimpimage.[ch]: removed the old stuff.
      
      	* app/core/gimpmarshal.list: added marshaller needed for GimpUndo.
      
      	* app/undo.[ch]: removed the whole undo mechanism. Only the
      	actual undo pushing functions are left.
      
      	* app/undo_history.c
      	* app/gui/edit-commands.c
      	* app/gui/file-commands.c
      	* app/gui/image-menu.c
      	* app/gui/preferences-dialog.c
      	* app/tools/gimpeditselectiontool.c: changed accordingly.
      be70105d
  28. 02 Jan, 2003 1 commit
    • Michael Natterer's avatar
      Replaced Garry's fix for bug #98843 by a more general solution which stops · ea95a322
      Michael Natterer authored
      2003-01-02  Michael Natterer  <mitch@gimp.org>
      
      	Replaced Garry's fix for bug #98843 by a more general solution
      	which stops the active tool when an undo group start is pushed:
      
      	* app/core/gimpimage.[ch]: removed the "layer_merge" signal
      	and added "undo_start" instead.
      
      	* app/undo.c: emit "undo_start" in undo_push_group_start()
      	_before_ checking if gimage->undo_on is TRUE.
      
      	* app/tools/tool_manager.c: connect to "undo_start" and HALT the
      	active tool if neccessary.
      
      	* app/core/core-types.h: added EDIT_COPY_UNDO_GROUP.
      
      	* app/core/gimpedit.c: push an undo group around the copy
      	operation. Will probably have to add more undo group types to wrap
      	other critical image modifications with.
      
      	* app/core/gimpimage-merge.c
      	* app/gui/convert-dialog.c
      	* app/gui/edit-commands.c
      	* app/gui/test-commands.c
      	* app/tools/gimpimagemaptool.c: removed all special code to
      	stop the active tool.
      ea95a322
  29. 10 Dec, 2002 1 commit
    • Michael Natterer's avatar
      The unbelievable happened: a menu bar per display (optionally) · b1ebd9cd
      Michael Natterer authored
      2002-12-10  Michael Natterer  <mitch@gimp.org>
      
      	The unbelievable happened: a menu bar per display (optionally)
      
      	* app/widgets/gimpitemfactory.[ch]: Added the possibility to have
      	more than one item factory per <Prefix>. Added
      	gimp_item_factories_set_foobar() variants of all functions which
      	set menu item properties (label, sensitive, ...). Removed
      	the #ifndef ENABLE_NLS code since that's no longer possible.
      
      	* app/widgets/gimptoolbox.c: made it robust againt the <Image>
      	factory not existing at the time of toolbox creation.
      
      	* app/config/gimpconfig-blurbs.h
      	* app/config/gimpdisplayconfig.[ch]: added boolean
      	"menu_bar_per_display" property.
      
      	* app/gui/preferences-dialog.c: added a toggle for the new option.
      
      	* app/gui/menus.[ch]: added menus_get_new_image_factory() as
      	temporary solution. Will add a GimpMenuFactory which creates the
      	item factories soon.
      
      	* app/display/gimpdisplayshell.c: add the menu bar if requested.
      	Changed widget packing slightly for the menu bar case.
      
      	* app/display/gimpdisplayshell-callbacks.c: changed accordingly.
      	Currently there is no right-click popup menu when we have a menu
      	bar. This will change soon.
      
      	* app/gui/file-dialog-utils.c
      	* app/gui/gui.c: use gimp_item_factories_set_foo().
      
      	* app/gui/channels-commands.c
      	* app/gui/dialogs-commands.c
      	* app/gui/dialogs-constructors.c
      	* app/gui/drawable-commands.c
      	* app/gui/edit-commands.c
      	* app/gui/file-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/tools-commands.c
      	* app/gui/vectors-commands.c
      	* app/gui/view-commands.c: per-display item factories pass the
      	GimpDisplay as user_data to callbacks, not a Gimp. Changed all
      	return_if_no_foo() macros to handle both cases.
      
      	Cleaned up the plug-in menu stuff:
      
      	* app/plug-in/plug-in-types.h: removed PlugInMenuEntry type.
      
      	* app/plug-in/plug-ins.[ch]: added plug_ins_proc_def_add() as
      	counterpart to plug_ins_proc_def_remove(). Added
      	plug_ins_locale_domain() as counterpart to plug_ins_help_path().
      	Remember the locale domains just as the help paths. Changed
      	plug-in initialization so that their menus can be created multiple
      	times.
      
      	* app/plug-in/plug-in.[ch]: use plug_ins_proc_def_add() instead of
      	doing it manually.
      
      	* app/gui/plug-in-menus.[ch]: added plug_in_menus_init() which
      	just registers the locale domains. Changed plug_in_make_menu() to
      	take a list of proc_defs, not plug_ins_defs so it can be used
      	after plug-in query.
      b1ebd9cd
  30. 08 May, 2002 1 commit
    • Michael Natterer's avatar
      Started to get rid of the gdisplays_foo() functions in · a3bb0b0d
      Michael Natterer authored
      2002-05-08  Michael Natterer  <mitch@gimp.org>
      
      	Started to get rid of the gdisplays_foo() functions in
      	app/display/gimpdisplay-foreach.[ch]. Work in progress...
      
      	* app/core/gimp.[ch]: added the display list to the Gimp object
      	(as a GimpList of GimpObjects). This way we get more independent
      	from whether there is GUI or not, as gimp->displays will simply
      	be an empty list for the --no-interface case.
      
      	* app/display/gimpdisplay.[ch]: Removed the global "display_list"
      	and "display_num" variables. Use gimp->displays instead.
      
      	* app/display/gimpdisplay-foreach.[ch]: renamed most functions
      	from gdisplays_foo() to gimp_displays_foo() and pass them a Gimp
      	pointer.
      
      	* app/core/gimpimage.[ch]: added a "flush" signal.
      
      	* app/display/gimpdisplay-handlers.c: connect to "flush" and call
      	gimp_display_flush() in the callback.
      
      	* tools/pdbgen/pdb/display.pdb: use gimp_displays_flush(gimp)
      	here and only here.
      
      	* app/pdb/display_cmds.c: regenerated.
      
      	* app/app_procs.c
      	* app/gui/gui.c
      	* app/gui/preferences-dialog.c:
      	s/gdislays_foo()/gimp_displays_foo(gimp)/
      
      	* app/image_map.c
      	* app/undo_history.c
      	* app/display/gimpdisplayshell-callbacks.c
      	* app/display/gimpdisplayshell-dnd.c
      	* app/display/gimpdisplayshell-layer-select.c
      	* app/display/gimpdisplayshell-scale.c
      	* app/gui/channels-commands.c
      	* app/gui/colormap-editor-commands.c
      	* app/gui/convert-dialog.c
      	* app/gui/drawable-commands.c
      	* app/gui/edit-commands.c
      	* app/gui/file-commands.c
      	* app/gui/image-commands.c
      	* app/gui/layers-commands.c
      	* app/gui/offset-dialog.c
      	* app/gui/qmask-commands.c
      	* app/gui/select-commands.c
      	* app/gui/vectors-commands.c
      	* app/paint/gimpairbrush.c
      	* app/tools/gimpbezierselecttool.c
      	* app/tools/gimpblendtool.c
      	* app/tools/gimpbrightnesscontrasttool.c
      	* app/tools/gimpbucketfilltool.c
      	* app/tools/gimpbycolorselecttool.c
      	* app/tools/gimpcolorbalancetool.c
      	* app/tools/gimpcurvestool.c
      	* app/tools/gimpeditselectiontool.c
      	* app/tools/gimpfreeselecttool.c
      	* app/tools/gimpfuzzyselecttool.c
      	* app/tools/gimphuesaturationtool.c
      	* app/tools/gimpinktool.c
      	* app/tools/gimpiscissorstool.c
      	* app/tools/gimplevelstool.c
      	* app/tools/gimpmeasuretool.c
      	* app/tools/gimpmovetool.c
      	* app/tools/gimppainttool.c
      	* app/tools/gimpposterizetool.c
      	* app/tools/gimprectselecttool.c
      	* app/tools/gimptexttool.c
      	* app/tools/gimpthresholdtool.c
      	* app/tools/gimptransformtool.c
      	* app/tools/gimpvectortool.c
      	* app/widgets/gimpbufferview.c
      	* app/widgets/gimpchannellistview.c
      	* app/widgets/gimpcomponentlistitem.c
      	* app/widgets/gimpdocumentview.c
      	* app/widgets/gimpdrawablelistitem.c
      	* app/widgets/gimpdrawablelistview.c
      	* app/widgets/gimpimageview.c
      	* app/widgets/gimpitemlistitem.c
      	* app/widgets/gimpitemlistview.c
      	* app/widgets/gimplayerlistitem.c
      	* app/widgets/gimplayerlistview.c
      	* app/widgets/gimpvectorslistview.c: replaced gdisplays_flush()
      	with calls to gimp_image_flush(gimage). Removed inclusion of
      	"display/gimpdisplay-foreach.h" from most files.
      a3bb0b0d
  31. 14 Apr, 2002 1 commit
    • Michael Natterer's avatar
      removed some #if 0'ed stuff. · 6d215cae
      Michael Natterer authored
      2002-04-14  Michael Natterer  <mitch@gimp.org>
      
      	* app/core/gimp.c: removed some #if 0'ed stuff.
      
      	* app/gui/edit-commands.c (edit_copy_cmd_callback): call
      	gdisplays_flush() so the menus are updated correctly.
      
      	* app/widgets/gimpitemfactory.c (gimp_item_factory_set_color):
      	pack the original menu item label with TRUE, TRUE into the created
      	hbox so it's accel. label is visible.
      6d215cae
  32. 28 Mar, 2002 1 commit
    • Hans Breuer's avatar
      #define GETTEXT_PACKAGE · de5f8b5f
      Hans Breuer authored
      2001-03-28  Hans Breuer  <hans@breuer.org>
      
      	* config.h.win32 : #define GETTEXT_PACKAGE
      
      	* makefile.msc : add theme rule
      
      	* app/makefile.msc : gimp.exe depends on all the libs
      	and general update
      
      	* app/base/makefile.msc : updated
      
      	* app/config/gimpconfig-serialize.c : #include <io.h> for win32
      	* app/config/gimpconfig-types.c : #include <string.h>
      
      	* app/core/gimpcontext.c app/core/gimpcontainer.c
      	  app/core/gimptoolinfo.c : #include <string.h>
      
      	* app/core/gimpdocuments.c (gimp_documents_save_func) :
      	need to g_strescape() the filename to not make
      	backslashes vanish during de-serialization
      
      	* app/core/gimpimagefile.c : #define S_ISREG for G_OS_WIN32
      
      	* app/core/makefile.msc : add -DGIMP_COMPILATION
      	required for cpercep.c build
      
      	* app/display/gimpdisplayshell.c : #include <string.h>
      
      	* app/display/makefile.msc : -FImsvc_recommended_pragmas.h,
      	G_LOG_DOMAIN definition and object file update
      
      	* app/file/makefile.msc : -FImsvc_recommended_pragmas.h,
      	G_LOG_DOMAIN definition
      
      	* app/file/file-open.c (file_open_with_proc_and_display) :
      	use absolute filename for gimp_documents_add()
      
      	* app/gui/channel-commands.c app/gui/colormap-editor-commands.c
      	  app/gui/edit-commands.c app/gui/vectors-commands.c :
      	#include <string.h>
      
      	* app/gui/makefile.msc : updated
      
      	* app/gui/menus.c : use g_file_test() instead of access()
      	to avoid inclusion <unistd.h>
      
      	* app/paint/makefile.msc : updated
      
      	* app/plug-in/plug-in-params.c : #include <string.h>
      
      	* app/plug-in/makefile.msc : updated
      
      	* app/plug-in/plug-in-def.h : #include <time.h> for time_t
      
      	* app/plug-in/plug-in.c : remove definition of S_IFREG
      
      	* app/plug-in/gap/gap_arr_dialog.c : include <config.h>
      	before including libgimp/libgimp-intl.h
      
      	* app/tools/makefile.msc : updated
      
      	* app/vectors/makefile.msc : new file
      
      	* app/widgets/makefile.msc : updated
      
      	* libgimp/gimp.def : updated externals
      
      	* libgimpwidgets/gimpwidgets.def : updated externals
      
      	* modules/makefile.msc : updated and disabled colorsel_gtk.
      
      	* plug-in/makefile.msc : don't define GETTEXT_PACKAGE
      
      	* themes/Default/images/makefile.msc : moved makefile.msc from ..
      	and adapted pathes to images
      de5f8b5f
  33. 21 Mar, 2002 1 commit
    • Michael Natterer's avatar
      ./mitch --sanitize-identifier-namespace · ffcb0bfa
      Michael Natterer authored
      2002-03-20  Michael Natterer  <mitch@gimp.org>
      
      	./mitch --sanitize-identifier-namespace
      
      	* app/core/gimpcontext.c
      	* app/display/gimpdisplayshell-callbacks.c
      	* app/display/gimpdisplayshell-dnd.c
      	* app/gui/dialogs-commands.c
      	* app/gui/dialogs-constructors.c
      	* app/gui/dialogs.c
      	* app/gui/edit-commands.c
      	* app/gui/gui.c
      	* app/gui/menus.c
      	* app/gui/vectors-commands.c
      	* app/gui/view-commands.c
      	* app/tools/gimpairbrushtool.c
      	* app/tools/gimpbezierselecttool.c
      	* app/tools/gimpblendtool.c
      	* app/tools/gimpbrightnesscontrasttool.c
      	* app/tools/gimpbucketfilltool.c
      	* app/tools/gimpbycolorselecttool.c
      	* app/tools/gimpclonetool.c
      	* app/tools/gimpcolorbalancetool.c
      	* app/tools/gimpcolorpickertool.c
      	* app/tools/gimpconvolvetool.c
      	* app/tools/gimpcroptool.c
      	* app/tools/gimpcurvestool.c
      	* app/tools/gimpdodgeburntool.c
      	* app/tools/gimpellipseselecttool.c
      	* app/tools/gimperasertool.c
      	* app/tools/gimpfliptool.c
      	* app/tools/gimpfreeselecttool.c
      	* app/tools/gimpfuzzyselecttool.c
      	* app/tools/gimphistogramtool.c
      	* app/tools/gimphuesaturationtool.c
      	* app/tools/gimpinktool.c
      	* app/tools/gimpiscissorstool.c
      	* app/tools/gimplevelstool.c
      	* app/tools/gimpmagnifytool.c
      	* app/tools/gimpmeasuretool.c
      	* app/tools/gimpmovetool.c
      	* app/tools/gimppaintbrushtool.c
      	* app/tools/gimppathtool.c
      	* app/tools/gimppenciltool.c
      	* app/tools/gimpperspectivetool.c
      	* app/tools/gimpposterizetool.c
      	* app/tools/gimprectselecttool.c
      	* app/tools/gimprotatetool.c
      	* app/tools/gimpscaletool.c
      	* app/tools/gimpsheartool.c
      	* app/tools/gimpsmudgetool.c
      	* app/tools/gimptexttool.c
      	* app/tools/gimpthresholdtool.c
      	* app/tools/gimpvectortool.c
      	* app/widgets/gimpdnd.c
      	* app/widgets/gimptoolbox-indicator-area.c
      	* app/widgets/gimptoolbox.c: s/gimp:/gimp-/g and s/_/-/g for all
      	identifier strings (e.g. gimp:eraser_tool -> gimp-eraser-tool,
      	gimp:layer-list -> gimp-layer-list, ...)
      
      	* plug-ins/tools/common/gimpbrushselecttool.c:
      	s/gimp:brush_select_tool/gimp-brush-select-tool-module/
      
      	Don't quite remember why I introduced the "gimp:" prefix in the
      	first place, but we can always add it back if we need it (for
      	whatever reason)
      
      	You may want to edit your ~/.gimp-1.3/sessionrc and devicerc or
      	all session settings will be lost due to parse errors.
      ffcb0bfa
  34. 12 Feb, 2002 1 commit
  35. 10 Feb, 2002 1 commit
    • Michael Natterer's avatar
      removed #if 0'ed old display update hackery. Don't flush the displays here · ceed8eae
      Michael Natterer authored
      2002-02-10  Michael Natterer  <mitch@gimp.org>
      
      	* app/undo.c: removed #if 0'ed old display update hackery. Don't
      	flush the displays here at all and include nothing from
      	"display/".
      
      	* app/undo_history.c
      	* app/gui/edit-commands.c: call gdisplays_flush() if undo_pop() or
      	undo_redo() return TRUE.
      
      	* app/core/gimpimage-contiguous-region.[ch]: allow a contiguous
      	transparent region to be selected/filled (#71058).
      
      	* app/core/gimpdrawable-bucket-fill.[ch]
      	* app/core/gimpimage-mask-select.[ch]: take a boolean
      	fill_transparent/select_transparent parameter and pass it to the
      	contiguous region funcion.
      
      	* app/display/gimpdisplayshell-dnd.c: pass
      	fill_transparent == FALSE to bucket_fill_full because we fill the
      	whole drawable anyway here.
      
      	* app/tools/gimpbucketfilltool.c
      	* app/tools/gimpbycolorselecttool.c
      	* app/tools/gimpfuzzyselecttool.c
      	* app/tools/selection_options.[ch]: added toggle buttons to the
      	tool options and pass the value to the fill and select core
      	functions.
      
      	* tools/pdbgen/pdb/misc_tools.pdb
      	* tools/pdbgen/pdb/selection_tools.pdb: hardcode
      	"select_transparent" to FALSE to get the old behaviour. Should
      	export the new feature to plug-ins however.
      
      	* app/pdb/misc_tools_cmds.c
      	* app/pdb/selection_tools_cmds.c: regenerated.
      ceed8eae
  36. 12 Dec, 2001 1 commit
    • Michael Natterer's avatar
      made gimp->global_buffer a GimpBuffer, not TileManager. · 9b8bf8de
      Michael Natterer authored
      2001-12-13  Michael Natterer  <mitch@gimp.org>
      
      	* app/core/gimp.[ch]: made gimp->global_buffer a GimpBuffer,
      	not TileManager.
      
      	* app/core/gimpbuffer.[ch]: added a "gboolean copy_pixels" to
      	gimp_buffer_new().
      
      	* app/core/gimpimage-new.c
      	* app/core/gimpedit.[ch]
      	* app/core/gimpimage-qmask.c
      	* app/widgets/gimpbufferpreview.c
      	* app/widgets/gimpbufferview.c
      	* app/widgets/gimpcontainerview-utils.c: chaned accordingly, don't
      	include "base/tile-manager.h".
      
      	* app/core/gimpdrawable.[ch]: added gimp_drawable_copy().
      
      	* app/core/gimpchannel.[ch]
      	* app/core/gimplayer.[ch]
      	* app/core/gimplayermask.[ch]: use it in
      	gimp_[channel|layer|layer_mask]_copy(), added "GType new_type" as
      	paramater to all of them.
      
      	* app/core/gimpimage-duplicate.c
      	* app/gui/channels-commands.c
      	* app/gui/edit-commands.c
      	* app/gui/layers-commands.c
      	* app/widgets/gimpchannellistview.c
      	* tools/pdbgen/pdb/channel.pdb
      	* tools/pdbgen/pdb/layer.pdb
      	* tools/pdbgen/pdb/selection.pdb: changed accordingly.
      
      	* app/pdb/channel_cmds.c
      	* app/pdb/layer_cmds.c
      	* app/pdb/selection_cmds.c: regenerated.
      
      	* app/core/gimplayer.[ch]: removed the "layer_type" parameter from
      	gimp_layer_new_from_tiles() because it always needed to be equal
      	to gimp_image_base_type_with_alpha() of the passed image.
      
      	* app/core/gimpdrawable-transform.c
      	* app/core/gimpedit.c
      	* app/core/gimpimage-mask.c: cahanged accordingly.
      
      	* app/core/gimpimage.[ch]: added some new GIMP_IMAGE_TYPE_FOO()
      	marcos to get rid of magic values like "pixels = 3" all over the
      	place.
      
      	* app/core/gimplayer.[ch]: added gimp_layer_new_from_drawable()
      	which creates a layer from an other image's drawable.
      
      	* app/core/gimpimage-convert.[ch]: made the RGB and GRAY converters
      	public to use them above, use the new GIMP_IMAGE_TYPE() macros.
      
      	* app/display/gimpdisplayshell-dnd.c
      	* app/gui/toolbox.c: removed tile manager stuff and use the new
      	functions.
      
      	* app/widgets/gimpdrawablelistview.[ch]: added a
      	"convert_drawable_func" which is used to handle drops from other
      	images.
      
      	* app/widgets/gimpdrawablelistitem.c
      	* app/widgets/gimplayerlistitem.c
      	* app/widgets/gimplistitem.[ch]: implemented DND of layers between
      	images using gimp_layer_new_from_drawable().
      
      	* app/gui/dialogs-constructors.c: changed accordingly.
      9b8bf8de
  37. 28 Nov, 2001 1 commit
    • Michael Natterer's avatar
      s/gimage_mask/gimp_image_mask/g · f7bbdc3e
      Michael Natterer authored
      2001-11-28  Michael Natterer  <mitch@gimp.org>
      
      	* app/core/gimpimage-mask.[ch]: s/gimage_mask/gimp_image_mask/g
      
      	* app/floating_sel.c
      	* app/undo.c
      	* app/undo_history.c
      	* app/core/gimpchannel.c
      	* app/core/gimpdrawable-blend.c
      	* app/core/gimpdrawable-transform.c
      	* app/core/gimpdrawable.c
      	* app/core/gimpedit.c
      	* app/core/gimpimage-crop.c
      	* app/core/gimpimage-mask-select.c
      	* app/core/gimpimage-resize.c
      	* app/core/gimpimage-scale.c
      	* app/core/gimpimage.c
      	* app/display/gimpdisplayshell-qmask.c
      	* app/display/gimpdisplayshell-selection.c
      	* app/display/gimpdisplayshell.c
      	* app/gui/channels-commands.c
      	* app/gui/edit-commands.c
      	* app/gui/layers-commands.c
      	* app/gui/select-commands.c
      	* app/tools/gimpbucketfilltool.c
      	* app/tools/gimpbycolorselecttool.c
      	* app/tools/gimpclonetool.c
      	* app/tools/gimpcroptool.c
      	* app/tools/gimpeditselectiontool.c
      	* app/tools/gimpfliptool.c
      	* app/tools/gimpfreeselecttool.c
      	* app/tools/gimpinktool.c
      	* app/tools/gimpmovetool.c
      	* app/tools/gimppainttool.c
      	* app/tools/gimprectselecttool.c
      	* app/tools/gimpselectiontool.c
      	* app/tools/gimptexttool.c
      	* app/tools/gimptransformtool.c
      	* app/widgets/gimpchannellistview.c
      	* app/xcf/xcf-save.c
      	* tools/pdbgen/pdb/edit.pdb
      	* tools/pdbgen/pdb/selection.pdb: changed accordingly.
      
      	* app/pdb/edit_cmds.c
      	* app/pdb/selection_cmds.c: regenerated.
      f7bbdc3e