app: Make GimpDock a GtkVBox

Make GimpDock be a GtkVBox instead of a GimpDockWindow. This means we
can now put a GimpDock anywhere, including inside an image window.

In order to do this we need to:

 * Separate dock and dock window creation in the dialog factory and
   add a couple of new dock window constructors

 * Change gimp_dialog_factory_dock_new() to not only create a dock,
   but also create a dock window and then combine those two

 * Change the dock constructor to take a GimpUIManager since they
   depend on that during their construction. We get the ui manager
   from the dock window, but we can't create the dock *inside* the
   dock window, we have to add the dock later. So we create the dock
   window first and then pass its ui manager to the dock constructors

 * Make some other minor adaptions, mostly with
   gimp_dock_window_from_dock() and gimp_dock_window_get_dock()
This commit is contained in:
Martin Nordholts
2009-09-26 16:21:10 +02:00
parent 5447938d5c
commit 4f7693acf0
13 changed files with 134 additions and 54 deletions

View File

@ -68,9 +68,16 @@ GtkWidget * dialogs_quit_get (GimpDialogFactory *factory,
/* docks */
GtkWidget * dialogs_toolbox_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager);
GtkWidget * dialogs_toolbox_dock_window_new
(GimpDialogFactory *factory,
GimpContext *context,
gint view_size);
GtkWidget * dialogs_dock_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager);
GtkWidget * dialogs_dock_window_new (GimpDialogFactory *factory,
GimpContext *context,
gint view_size);