2006-12-10 05:33:38 +08:00
|
|
|
/* GIMP - The GNU Image Manipulation Program
|
2001-05-04 06:19:17 +08:00
|
|
|
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
|
|
|
*
|
2009-01-18 06:28:01 +08:00
|
|
|
* This program is free software: you can redistribute it and/or modify
|
2001-05-04 06:19:17 +08:00
|
|
|
* it under the terms of the GNU General Public License as published by
|
2009-01-18 06:28:01 +08:00
|
|
|
* the Free Software Foundation; either version 3 of the License, or
|
2001-05-04 06:19:17 +08:00
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
2009-01-18 06:28:01 +08:00
|
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
2001-05-04 06:19:17 +08:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __WIDGETS_TYPES_H__
|
|
|
|
#define __WIDGETS_TYPES_H__
|
|
|
|
|
|
|
|
|
2001-05-08 11:48:54 +08:00
|
|
|
#include "libgimpwidgets/gimpwidgetstypes.h"
|
|
|
|
|
include the new "paint-funcs/paint-funcs-types.h".
2001-11-28 Michael Natterer <mitch@gimp.org>
* app/base/base-types.h: include the new
"paint-funcs/paint-funcs-types.h".
* app/paint-funcs/Makefile.am
* app/paint-funcs/paint-funcs-types.h: new file. Includes
"base/base-types.h".
* app/paint-funcs/paint-funcs.[ch]: removed the enums here,
include "paint-funcs-types.h".
* app/widgets/widgets-types.h: include "display/display-types.h"
* app/display/display-types.h: include "widgets/widgets-types.h".
* app/tools/tools-types.h: include "display/display-types.h"
* app/gui/gui-types.h: include "tools/tools-types.h".
The order of namespaces/dependencies should be (but is not):
(base, paint-funcs) -> (core, file, xcf, pdb) ->
(widgets, display) -> tools -> gui
* app/path.c: include "tools/tools-types.h".
* app/core/Makefile.am
* app/core/gimpimage-guides.[ch]
* app/core/gimpimage-merge.[ch]
* app/core/gimpimage-resize.[ch]
* app/core/gimpimage-scale.[ch]: new files.
* app/core/gimpimage.[ch]: removed the stuff which is in the new
files. Reordered all functions in both the .h and .c files,
commented the groups of functions.
* app/core/gimpcontainer.c: create the handler_id using a counter,
not the address of a pointer, because the address *may* be the
same twice, added debugging output.
* app/core/gimpviewable.[ch]: added primitive support for getting
a preview GdkPixbuf.
* app/nav_window.c
* app/undo.c
* app/undo_history.c
* app/core/gimpimage-duplicate.c
* app/core/gimpimage-mask.[ch]
* app/display/gimpdisplay.c
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-dnd.c
* app/display/gimpdisplayshell-render.c
* app/display/gimpdisplayshell-scale.c
* app/display/gimpdisplayshell-scroll.c
* app/gui/image-commands.c
* app/gui/info-window.c
* app/gui/layers-commands.c
* app/gui/palette-import-dialog.c
* app/tools/gimpbycolorselecttool.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpmeasuretool.c
* app/tools/gimpmovetool.c
* app/widgets/gimpcontainerview-utils.c
* app/xcf/xcf-load.c: changed accordingly, some cleanup.
* tools/pdbgen/pdb/guides.pdb
* tools/pdbgen/pdb/image.pdb: changed accordingly, reordered functions.
* app/plug_in.c: set the labels of the "Repeat" and "Re-Show" menu
items to the name of the last plug-in (Fixes #50986).
* app/display/gimpdisplayshell.[ch]: set the labels of "Undo" and
"Redo" to the resp. undo names. Much simplified the WM icon stuff
by removing most code and using gimp_viewable_get_new_preview_pixbuf().
* app/widgets/gimpbrushfactoryview.c: forgot to assign the GQuark
returned by gimp_container_add_handler().
* app/pdb/guides_cmds.c
* app/pdb/image_cmds.c
* libgimp/gimpimage_pdb.[ch]: regenerated.
2001-11-29 01:51:06 +08:00
|
|
|
#include "core/core-types.h"
|
|
|
|
|
2002-03-13 22:51:48 +08:00
|
|
|
#include "widgets/widgets-enums.h"
|
2001-12-08 01:39:51 +08:00
|
|
|
|
2001-05-09 03:46:57 +08:00
|
|
|
|
2004-07-19 20:08:37 +08:00
|
|
|
/* input devices & controllers */
|
2001-05-04 06:19:17 +08:00
|
|
|
|
2003-03-04 01:19:30 +08:00
|
|
|
typedef struct _GimpDeviceInfo GimpDeviceInfo;
|
2004-07-19 20:08:37 +08:00
|
|
|
typedef struct _GimpControllerInfo GimpControllerInfo;
|
|
|
|
typedef struct _GimpControllerKeyboard GimpControllerKeyboard;
|
|
|
|
typedef struct _GimpControllerWheel GimpControllerWheel;
|
|
|
|
|
|
|
|
|
|
|
|
/* docks */
|
|
|
|
|
|
|
|
typedef struct _GimpDock GimpDock;
|
2009-09-26 22:48:39 +08:00
|
|
|
typedef struct _GimpDockColumns GimpDockColumns;
|
2009-09-10 00:15:34 +08:00
|
|
|
typedef struct _GimpDockWindow GimpDockWindow;
|
2005-05-12 04:26:12 +08:00
|
|
|
typedef struct _GimpMenuDock GimpMenuDock;
|
2004-07-19 20:08:37 +08:00
|
|
|
typedef struct _GimpToolbox GimpToolbox;
|
|
|
|
typedef struct _GimpDockbook GimpDockbook;
|
|
|
|
typedef struct _GimpDockable GimpDockable;
|
|
|
|
typedef struct _GimpDocked GimpDocked; /* dummy typedef */
|
2009-10-25 00:52:48 +08:00
|
|
|
typedef struct _GimpPanedBox GimpPanedBox;
|
2004-07-19 20:08:37 +08:00
|
|
|
|
|
|
|
|
|
|
|
/* GimpEditor widgets */
|
|
|
|
|
|
|
|
typedef struct _GimpEditor GimpEditor;
|
|
|
|
typedef struct _GimpColorEditor GimpColorEditor;
|
|
|
|
typedef struct _GimpDeviceStatus GimpDeviceStatus;
|
|
|
|
typedef struct _GimpErrorConsole GimpErrorConsole;
|
|
|
|
typedef struct _GimpToolOptionsEditor GimpToolOptionsEditor;
|
|
|
|
|
|
|
|
|
|
|
|
/* GimpDataEditor widgets */
|
|
|
|
|
|
|
|
typedef struct _GimpDataEditor GimpDataEditor;
|
|
|
|
typedef struct _GimpBrushEditor GimpBrushEditor;
|
2009-10-14 03:19:40 +08:00
|
|
|
typedef struct _GimpDynamicsEditor GimpDynamicsEditor;
|
2004-07-19 20:08:37 +08:00
|
|
|
typedef struct _GimpGradientEditor GimpGradientEditor;
|
|
|
|
typedef struct _GimpPaletteEditor GimpPaletteEditor;
|
|
|
|
|
|
|
|
/* GimpImageEditor widgets */
|
|
|
|
|
|
|
|
typedef struct _GimpImageEditor GimpImageEditor;
|
|
|
|
typedef struct _GimpColormapEditor GimpColormapEditor;
|
|
|
|
typedef struct _GimpComponentEditor GimpComponentEditor;
|
|
|
|
typedef struct _GimpHistogramEditor GimpHistogramEditor;
|
2005-04-03 23:48:03 +08:00
|
|
|
typedef struct _GimpSamplePointEditor GimpSamplePointEditor;
|
2004-07-19 20:08:37 +08:00
|
|
|
typedef struct _GimpSelectionEditor GimpSelectionEditor;
|
|
|
|
typedef struct _GimpUndoEditor GimpUndoEditor;
|
|
|
|
|
|
|
|
|
|
|
|
/* GimpContainerView and its implementors */
|
|
|
|
|
|
|
|
typedef struct _GimpContainerView GimpContainerView; /* dummy typedef */
|
|
|
|
typedef struct _GimpContainerBox GimpContainerBox;
|
|
|
|
typedef struct _GimpContainerComboBox GimpContainerComboBox;
|
|
|
|
typedef struct _GimpContainerEntry GimpContainerEntry;
|
|
|
|
typedef struct _GimpContainerGridView GimpContainerGridView;
|
|
|
|
typedef struct _GimpContainerTreeView GimpContainerTreeView;
|
|
|
|
typedef struct _GimpItemTreeView GimpItemTreeView;
|
|
|
|
typedef struct _GimpDrawableTreeView GimpDrawableTreeView;
|
|
|
|
typedef struct _GimpLayerTreeView GimpLayerTreeView;
|
|
|
|
typedef struct _GimpChannelTreeView GimpChannelTreeView;
|
|
|
|
typedef struct _GimpVectorsTreeView GimpVectorsTreeView;
|
|
|
|
|
|
|
|
typedef struct _GimpContainerPopup GimpContainerPopup;
|
|
|
|
typedef struct _GimpViewableButton GimpViewableButton;
|
|
|
|
|
|
|
|
|
|
|
|
/* GimpContainerEditor widgets */
|
|
|
|
|
|
|
|
typedef struct _GimpContainerEditor GimpContainerEditor;
|
|
|
|
typedef struct _GimpBufferView GimpBufferView;
|
|
|
|
typedef struct _GimpDocumentView GimpDocumentView;
|
|
|
|
typedef struct _GimpFontView GimpFontView;
|
|
|
|
typedef struct _GimpImageView GimpImageView;
|
|
|
|
typedef struct _GimpTemplateView GimpTemplateView;
|
2009-07-03 12:55:07 +08:00
|
|
|
typedef struct _GimpToolEditor GimpToolEditor;
|
2004-07-19 20:08:37 +08:00
|
|
|
|
|
|
|
|
|
|
|
/* GimpDataFactoryView widgets */
|
|
|
|
|
|
|
|
typedef struct _GimpDataFactoryView GimpDataFactoryView;
|
|
|
|
typedef struct _GimpBrushFactoryView GimpBrushFactoryView;
|
2009-10-10 01:25:07 +08:00
|
|
|
typedef struct _GimpDynamicsFactoryView GimpDynamicsFactoryView;
|
2004-07-19 20:08:37 +08:00
|
|
|
typedef struct _GimpPatternFactoryView GimpPatternFactoryView;
|
|
|
|
|
|
|
|
|
|
|
|
/* menus */
|
2003-03-04 01:19:30 +08:00
|
|
|
|
2004-04-21 07:04:50 +08:00
|
|
|
typedef struct _GimpActionFactory GimpActionFactory;
|
2004-04-16 20:09:46 +08:00
|
|
|
typedef struct _GimpActionGroup GimpActionGroup;
|
2004-05-20 04:56:37 +08:00
|
|
|
typedef struct _GimpAction GimpAction;
|
2004-04-16 20:09:46 +08:00
|
|
|
typedef struct _GimpEnumAction GimpEnumAction;
|
2004-04-27 21:55:26 +08:00
|
|
|
typedef struct _GimpPlugInAction GimpPlugInAction;
|
2004-04-16 20:09:46 +08:00
|
|
|
typedef struct _GimpStringAction GimpStringAction;
|
2004-07-19 20:08:37 +08:00
|
|
|
typedef struct _GimpMenuFactory GimpMenuFactory;
|
2004-04-22 00:33:17 +08:00
|
|
|
typedef struct _GimpUIManager GimpUIManager;
|
2004-04-16 20:09:46 +08:00
|
|
|
|
2004-04-18 09:20:26 +08:00
|
|
|
|
2004-07-19 20:08:37 +08:00
|
|
|
/* misc dialogs */
|
|
|
|
|
2004-09-24 04:41:40 +08:00
|
|
|
typedef struct _GimpColorDialog GimpColorDialog;
|
2004-08-26 01:58:52 +08:00
|
|
|
typedef struct _GimpErrorDialog GimpErrorDialog;
|
2004-07-19 20:08:37 +08:00
|
|
|
typedef struct _GimpFileDialog GimpFileDialog;
|
2004-10-13 22:35:28 +08:00
|
|
|
typedef struct _GimpMessageDialog GimpMessageDialog;
|
2006-12-18 16:15:56 +08:00
|
|
|
typedef struct _GimpProfileChooserDialog GimpProfileChooserDialog;
|
2004-08-11 02:47:21 +08:00
|
|
|
typedef struct _GimpProgressDialog GimpProgressDialog;
|
2004-07-19 20:08:37 +08:00
|
|
|
typedef struct _GimpTextEditor GimpTextEditor;
|
2005-08-22 01:28:18 +08:00
|
|
|
typedef struct _GimpToolDialog GimpToolDialog;
|
2004-07-19 20:08:37 +08:00
|
|
|
typedef struct _GimpViewableDialog GimpViewableDialog;
|
|
|
|
|
|
|
|
|
|
|
|
/* GimpPdbDialog widgets */
|
|
|
|
|
|
|
|
typedef struct _GimpPdbDialog GimpPdbDialog;
|
|
|
|
typedef struct _GimpBrushSelect GimpBrushSelect;
|
|
|
|
typedef struct _GimpGradientSelect GimpGradientSelect;
|
|
|
|
typedef struct _GimpPaletteSelect GimpPaletteSelect;
|
|
|
|
typedef struct _GimpPatternSelect GimpPatternSelect;
|
|
|
|
typedef struct _GimpFontSelect GimpFontSelect;
|
|
|
|
|
|
|
|
|
|
|
|
/* misc widgets */
|
|
|
|
|
2008-09-05 18:37:06 +08:00
|
|
|
typedef struct _GimpActionEditor GimpActionEditor;
|
2004-07-21 02:50:20 +08:00
|
|
|
typedef struct _GimpActionView GimpActionView;
|
2004-08-05 02:15:41 +08:00
|
|
|
typedef struct _GimpBlobEditor GimpBlobEditor;
|
2004-07-19 20:08:37 +08:00
|
|
|
typedef struct _GimpColorBar GimpColorBar;
|
|
|
|
typedef struct _GimpColorDisplayEditor GimpColorDisplayEditor;
|
|
|
|
typedef struct _GimpColorFrame GimpColorFrame;
|
|
|
|
typedef struct _GimpColorPanel GimpColorPanel;
|
2008-12-20 22:46:54 +08:00
|
|
|
typedef struct _GimpComboTagEntry GimpComboTagEntry;
|
2004-10-26 20:26:47 +08:00
|
|
|
typedef struct _GimpControllerEditor GimpControllerEditor;
|
2005-05-09 17:35:41 +08:00
|
|
|
typedef struct _GimpControllerList GimpControllerList;
|
2007-11-04 21:09:10 +08:00
|
|
|
typedef struct _GimpCurveView GimpCurveView;
|
2004-07-19 20:08:37 +08:00
|
|
|
typedef struct _GimpDashEditor GimpDashEditor;
|
|
|
|
typedef struct _GimpFgBgEditor GimpFgBgEditor;
|
2005-03-31 21:39:18 +08:00
|
|
|
typedef struct _GimpFgBgView GimpFgBgView;
|
2004-07-19 20:08:37 +08:00
|
|
|
typedef struct _GimpFileProcView GimpFileProcView;
|
2008-10-25 01:55:30 +08:00
|
|
|
typedef struct _GimpFillEditor GimpFillEditor;
|
2004-07-19 20:08:37 +08:00
|
|
|
typedef struct _GimpGridEditor GimpGridEditor;
|
2007-11-20 17:10:39 +08:00
|
|
|
typedef struct _GimpHandleBar GimpHandleBar;
|
2004-07-19 20:08:37 +08:00
|
|
|
typedef struct _GimpHistogramBox GimpHistogramBox;
|
|
|
|
typedef struct _GimpHistogramView GimpHistogramView;
|
2007-06-27 17:46:00 +08:00
|
|
|
typedef struct _GimpImageCommentEditor GimpImageCommentEditor;
|
2006-11-03 21:52:17 +08:00
|
|
|
typedef struct _GimpImageParasiteView GimpImageParasiteView;
|
2006-10-25 15:31:04 +08:00
|
|
|
typedef struct _GimpImageProfileView GimpImageProfileView;
|
2009-12-31 05:21:54 +08:00
|
|
|
typedef struct _GimpImagePropView GimpImagePropView;
|
|
|
|
typedef struct _GimpLanguageComboBox GimpLanguageComboBox;
|
2008-02-12 04:19:03 +08:00
|
|
|
typedef struct _GimpLanguageEntry GimpLanguageEntry;
|
2009-12-31 05:21:54 +08:00
|
|
|
typedef struct _GimpLanguageStore GimpLanguageStore;
|
2004-08-24 07:22:46 +08:00
|
|
|
typedef struct _GimpMessageBox GimpMessageBox;
|
2009-10-19 03:57:34 +08:00
|
|
|
typedef struct _GimpOverlayBox GimpOverlayBox;
|
2004-08-11 06:21:56 +08:00
|
|
|
typedef struct _GimpProgressBox GimpProgressBox;
|
2008-05-26 23:01:36 +08:00
|
|
|
typedef struct _GimpScaleButton GimpScaleButton;
|
2008-06-13 19:56:46 +08:00
|
|
|
typedef struct _GimpSettingsBox GimpSettingsBox;
|
2008-06-23 01:31:25 +08:00
|
|
|
typedef struct _GimpSettingsEditor GimpSettingsEditor;
|
2004-10-12 22:59:14 +08:00
|
|
|
typedef struct _GimpSizeBox GimpSizeBox;
|
2004-07-19 20:08:37 +08:00
|
|
|
typedef struct _GimpStrokeEditor GimpStrokeEditor;
|
2008-12-20 22:46:54 +08:00
|
|
|
typedef struct _GimpTagEntry GimpTagEntry;
|
|
|
|
typedef struct _GimpTagPopup GimpTagPopup;
|
2004-07-19 20:08:37 +08:00
|
|
|
typedef struct _GimpTemplateEditor GimpTemplateEditor;
|
|
|
|
typedef struct _GimpThumbBox GimpThumbBox;
|
2009-12-31 06:55:26 +08:00
|
|
|
typedef struct _GimpTranslationStore GimpTranslationStore;
|
2008-02-12 04:19:03 +08:00
|
|
|
typedef struct _GimpUnitStore GimpUnitStore;
|
|
|
|
typedef struct _GimpUnitComboBox GimpUnitComboBox;
|
2008-04-29 00:30:55 +08:00
|
|
|
typedef struct _GimpWindow GimpWindow;
|
2004-07-19 20:08:37 +08:00
|
|
|
|
|
|
|
|
2004-08-25 01:16:46 +08:00
|
|
|
/* views */
|
2004-07-19 20:08:37 +08:00
|
|
|
|
2004-08-25 01:16:46 +08:00
|
|
|
typedef struct _GimpView GimpView;
|
2005-07-14 22:41:29 +08:00
|
|
|
typedef struct _GimpPaletteView GimpPaletteView;
|
2004-08-27 08:42:46 +08:00
|
|
|
typedef struct _GimpNavigationView GimpNavigationView;
|
2004-07-19 20:08:37 +08:00
|
|
|
|
|
|
|
|
2004-08-26 22:20:30 +08:00
|
|
|
/* view renderers */
|
2003-03-04 01:19:30 +08:00
|
|
|
|
2004-08-26 06:31:44 +08:00
|
|
|
typedef struct _GimpViewRenderer GimpViewRenderer;
|
2004-08-26 22:20:30 +08:00
|
|
|
typedef struct _GimpViewRendererBrush GimpViewRendererBrush;
|
2004-09-14 20:06:28 +08:00
|
|
|
typedef struct _GimpViewRendererBuffer GimpViewRendererBuffer;
|
2004-08-26 22:20:30 +08:00
|
|
|
typedef struct _GimpViewRendererDrawable GimpViewRendererDrawable;
|
|
|
|
typedef struct _GimpViewRendererGradient GimpViewRendererGradient;
|
2005-07-14 04:11:24 +08:00
|
|
|
typedef struct _GimpViewRendererPalette GimpViewRendererPalette;
|
2004-08-26 22:20:30 +08:00
|
|
|
typedef struct _GimpViewRendererLayer GimpViewRendererLayer;
|
|
|
|
typedef struct _GimpViewRendererImage GimpViewRendererImage;
|
|
|
|
typedef struct _GimpViewRendererImagefile GimpViewRendererImagefile;
|
|
|
|
typedef struct _GimpViewRendererVectors GimpViewRendererVectors;
|
2001-05-04 06:19:17 +08:00
|
|
|
|
2004-06-16 06:59:26 +08:00
|
|
|
|
2004-07-19 20:08:37 +08:00
|
|
|
/* cell renderers */
|
|
|
|
|
2005-05-22 04:24:42 +08:00
|
|
|
typedef struct _GimpCellRendererDashes GimpCellRendererDashes;
|
2004-07-19 20:08:37 +08:00
|
|
|
typedef struct _GimpCellRendererViewable GimpCellRendererViewable;
|
|
|
|
|
|
|
|
|
|
|
|
/* misc utilities & constructors */
|
2001-05-04 06:19:17 +08:00
|
|
|
|
2004-07-19 20:08:37 +08:00
|
|
|
typedef struct _GimpDialogFactory GimpDialogFactory;
|
2009-10-04 08:09:53 +08:00
|
|
|
typedef struct _GimpUIConfigurer GimpUIConfigurer;
|
2003-12-28 03:25:19 +08:00
|
|
|
|
2001-05-04 06:19:17 +08:00
|
|
|
|
2008-05-14 05:17:11 +08:00
|
|
|
/* session management objects and structs */
|
|
|
|
|
|
|
|
typedef struct _GimpSessionInfo GimpSessionInfo;
|
|
|
|
typedef struct _GimpSessionInfoBook GimpSessionInfoBook;
|
2009-12-06 21:49:13 +08:00
|
|
|
typedef struct _GimpSessionInfoDock GimpSessionInfoDock;
|
2008-05-14 05:17:11 +08:00
|
|
|
typedef struct _GimpSessionInfoDockable GimpSessionInfoDockable;
|
|
|
|
typedef struct _GimpSessionInfoAux GimpSessionInfoAux;
|
|
|
|
|
|
|
|
|
2003-01-11 01:55:53 +08:00
|
|
|
/* structs */
|
|
|
|
|
2004-07-19 20:08:37 +08:00
|
|
|
typedef struct _GimpActionEntry GimpActionEntry;
|
|
|
|
typedef struct _GimpToggleActionEntry GimpToggleActionEntry;
|
|
|
|
typedef struct _GimpRadioActionEntry GimpRadioActionEntry;
|
|
|
|
typedef struct _GimpEnumActionEntry GimpEnumActionEntry;
|
|
|
|
typedef struct _GimpStringActionEntry GimpStringActionEntry;
|
|
|
|
typedef struct _GimpPlugInActionEntry GimpPlugInActionEntry;
|
2008-05-08 18:44:05 +08:00
|
|
|
|
2004-07-19 20:08:37 +08:00
|
|
|
typedef struct _GimpDialogFactoryEntry GimpDialogFactoryEntry;
|
2008-05-08 18:44:05 +08:00
|
|
|
|
2003-01-11 01:55:53 +08:00
|
|
|
|
2001-05-04 06:19:17 +08:00
|
|
|
/* function types */
|
|
|
|
|
2009-10-11 19:59:02 +08:00
|
|
|
typedef void (* GimpActionGroupSetupFunc) (GimpActionGroup *group);
|
|
|
|
typedef void (* GimpActionGroupUpdateFunc) (GimpActionGroup *group,
|
|
|
|
gpointer data);
|
|
|
|
|
|
|
|
typedef void (* GimpUIManagerSetupFunc) (GimpUIManager *manager,
|
|
|
|
const gchar *ui_path);
|
|
|
|
|
|
|
|
typedef void (* GimpMenuPositionFunc) (GtkMenu *menu,
|
|
|
|
gint *x,
|
|
|
|
gint *y,
|
|
|
|
gpointer data);
|
app: Use a GdkWindow instead of GimpDockSeparators for dockable DND
Make drag-and-drop rearrangement of dockables happen directly in the
existing widget hierarchy so we don't have to use special, ugly
widgets (read GimpDockSeparator:s) for that.
More specifically, make edges of dockables and dockbooks have the same
semantics as the GimpDockSeparators had. We put a highlight colored
GdkWindow on top of the widget in question to highlight these special
drop areas. This GdkWindow is not taken into consideration in the GTK+
drag-and-drop code, so it does not interupt the DND interaction.
To achive this, there is a problem we must solve: Drag events in GTK+
are propagated inwards and out, but we sometimes want ancenstor
widgets to take care of drop events. We solve this by introducing the
concept of "drag handlers". A drag handler is asked if it will handle
a given drag event, and if it will, a client will let the drag event
be propagated upwards in the widget hierarchy. Right now, the
GimpPanedBox is the only "drag handler". The code could be generalized
more but it doesn't feel worth it at this point.
The size of the special drop area is 5px, the same size as the default
GtkPaned handles. This is because the plan is to later use these
handles as drop areas too.
Other changes of interest are:
* We need to take care of "drag-motion", "drag-drop" and widget
highlightning ourselves. We can not use the GtkDestDefaults
conveniences with gtk_drag_dest_set() any longer since we need more
control.
* Make the drop callback pass the insert index directly instead of a
GimpDockSeparator
* Add some GIMP_LOG() debug output for DND
* Disable the GimpDockSeparator code in GimpToolbox
2009-11-30 01:22:12 +08:00
|
|
|
typedef gboolean (* GimpPanedBoxDroppedFunc) (GtkWidget *source,
|
|
|
|
gint insert_index,
|
2009-10-11 19:59:02 +08:00
|
|
|
gpointer data);
|
2001-05-04 06:19:17 +08:00
|
|
|
|
|
|
|
|
|
|
|
#endif /* __WIDGETS_TYPES_H__ */
|