app: Use the dialog factory for creating docks

Instead of having one dock constructor per dialog factory, put entries
for the normal dock and the toolbox dock in the dock window
factory. To do this we also need to merge the dock and normal dialog
constructors into one function protptype.

This takes us one step closer to be able to merge the
global_dock_window_factory and the global_toolbox_factory into one.

The long term goal: Support multi-column dock windows with one of the
docks being the toolbox. In this situation we can't have the toolbox
dock created by a separate dialog factory, that is too messy.
This commit is contained in:
Martin Nordholts 2010-01-17 00:00:19 +01:00
parent 0e9f434277
commit 408c22b79e
6 changed files with 188 additions and 38 deletions

View file

@ -101,6 +101,7 @@ static void dialogs_indexed_palette_selected (GimpColormapEditor *editor,
GtkWidget *
dialogs_image_new_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return image_new_dialog_new (context);
@ -109,6 +110,7 @@ dialogs_image_new_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_file_open_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return file_open_dialog_new (context->gimp);
@ -117,6 +119,7 @@ dialogs_file_open_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_file_open_location_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return file_open_location_dialog_new (context->gimp);
@ -125,6 +128,7 @@ dialogs_file_open_location_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_file_save_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return file_save_dialog_new (context->gimp, FALSE);
@ -133,6 +137,7 @@ dialogs_file_save_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_file_export_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return file_save_dialog_new (context->gimp, TRUE);
@ -141,6 +146,7 @@ dialogs_file_export_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_preferences_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return preferences_dialog_create (context->gimp);
@ -149,6 +155,7 @@ dialogs_preferences_get (GimpDialogFactory *factory,
GtkWidget *
dialogs_keyboard_shortcuts_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return keyboard_shortcuts_dialog_new (context->gimp);
@ -157,6 +164,7 @@ dialogs_keyboard_shortcuts_get (GimpDialogFactory *factory,
GtkWidget *
dialogs_module_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return module_dialog_new (context->gimp);
@ -165,6 +173,7 @@ dialogs_module_get (GimpDialogFactory *factory,
GtkWidget *
dialogs_palette_import_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return palette_import_dialog_new (context);
@ -173,6 +182,7 @@ dialogs_palette_import_get (GimpDialogFactory *factory,
GtkWidget *
dialogs_tips_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return tips_dialog_create (context->gimp);
@ -181,6 +191,7 @@ dialogs_tips_get (GimpDialogFactory *factory,
GtkWidget *
dialogs_about_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return about_dialog_create (context);
@ -189,6 +200,7 @@ dialogs_about_get (GimpDialogFactory *factory,
GtkWidget *
dialogs_error_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_error_dialog_new (_("GIMP Message"));
@ -197,6 +209,7 @@ dialogs_error_get (GimpDialogFactory *factory,
GtkWidget *
dialogs_close_all_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return close_all_dialog_new (context->gimp);
@ -205,6 +218,7 @@ dialogs_close_all_get (GimpDialogFactory *factory,
GtkWidget *
dialogs_quit_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return quit_dialog_new (context->gimp);
@ -218,7 +232,8 @@ dialogs_quit_get (GimpDialogFactory *factory,
GtkWidget *
dialogs_toolbox_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager)
GimpUIManager *ui_manager,
gint view_size)
{
/* we pass "global_dock_window_factory", _not_
* "global_toolbox_factory" to the toolbox constructor, because the
@ -232,6 +247,7 @@ dialogs_toolbox_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_toolbox_dock_window_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_dock_window_new ("gimp-toolbox",
@ -244,7 +260,8 @@ dialogs_toolbox_dock_window_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_dock_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager)
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_menu_dock_new ();
}
@ -252,6 +269,7 @@ dialogs_dock_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_dock_window_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_dock_window_new ("gimp-dock",
@ -271,6 +289,7 @@ dialogs_dock_window_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_tool_options_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_tool_options_editor_new (context->gimp,
@ -280,6 +299,7 @@ dialogs_tool_options_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_device_status_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_device_status_new (context->gimp);
@ -288,6 +308,7 @@ dialogs_device_status_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_error_console_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_error_console_new (context->gimp,
@ -297,6 +318,7 @@ dialogs_error_console_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_cursor_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_cursor_view_new (gimp_dialog_factory_get_menu_factory (factory));
@ -308,6 +330,7 @@ dialogs_cursor_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_image_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_image_view_new (GIMP_VIEW_TYPE_LIST,
@ -320,6 +343,7 @@ dialogs_image_list_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_brush_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_brush_factory_view_new (GIMP_VIEW_TYPE_LIST,
@ -333,6 +357,7 @@ dialogs_brush_list_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_dynamics_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_dynamics_factory_view_new (GIMP_VIEW_TYPE_LIST,
@ -345,6 +370,7 @@ dialogs_dynamics_list_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_pattern_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_pattern_factory_view_new (GIMP_VIEW_TYPE_LIST,
@ -357,6 +383,7 @@ dialogs_pattern_list_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_gradient_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_data_factory_view_new (GIMP_VIEW_TYPE_LIST,
@ -371,6 +398,7 @@ dialogs_gradient_list_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_palette_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_data_factory_view_new (GIMP_VIEW_TYPE_LIST,
@ -385,6 +413,7 @@ dialogs_palette_list_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_font_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_font_view_new (GIMP_VIEW_TYPE_LIST,
@ -397,6 +426,7 @@ dialogs_font_list_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_buffer_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_buffer_view_new (GIMP_VIEW_TYPE_LIST,
@ -409,6 +439,7 @@ dialogs_buffer_list_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_document_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_document_view_new (GIMP_VIEW_TYPE_LIST,
@ -421,6 +452,7 @@ dialogs_document_list_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_template_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_template_view_new (GIMP_VIEW_TYPE_LIST,
@ -436,6 +468,7 @@ dialogs_template_list_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_image_grid_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_image_view_new (GIMP_VIEW_TYPE_GRID,
@ -448,6 +481,7 @@ dialogs_image_grid_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_brush_grid_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_brush_factory_view_new (GIMP_VIEW_TYPE_GRID,
@ -461,6 +495,7 @@ dialogs_brush_grid_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_pattern_grid_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_pattern_factory_view_new (GIMP_VIEW_TYPE_GRID,
@ -473,6 +508,7 @@ dialogs_pattern_grid_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_gradient_grid_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_data_factory_view_new (GIMP_VIEW_TYPE_GRID,
@ -487,6 +523,7 @@ dialogs_gradient_grid_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_palette_grid_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_data_factory_view_new (GIMP_VIEW_TYPE_GRID,
@ -501,6 +538,7 @@ dialogs_palette_grid_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_font_grid_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_font_view_new (GIMP_VIEW_TYPE_GRID,
@ -513,6 +551,7 @@ dialogs_font_grid_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_buffer_grid_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_buffer_view_new (GIMP_VIEW_TYPE_GRID,
@ -525,6 +564,7 @@ dialogs_buffer_grid_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_document_grid_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_document_view_new (GIMP_VIEW_TYPE_GRID,
@ -537,6 +577,7 @@ dialogs_document_grid_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_template_grid_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_template_view_new (GIMP_VIEW_TYPE_GRID,
@ -552,6 +593,7 @@ dialogs_template_grid_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_layer_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
if (view_size < 1)
@ -567,6 +609,7 @@ dialogs_layer_list_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_channel_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
if (view_size < 1)
@ -582,6 +625,7 @@ dialogs_channel_list_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_vectors_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
if (view_size < 1)
@ -597,6 +641,7 @@ dialogs_vectors_list_view_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_colormap_editor_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
GtkWidget *view;
@ -613,6 +658,7 @@ dialogs_colormap_editor_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_histogram_editor_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_histogram_editor_new ();
@ -621,6 +667,7 @@ dialogs_histogram_editor_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_selection_editor_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_selection_editor_new (gimp_dialog_factory_get_menu_factory (factory));
@ -629,6 +676,7 @@ dialogs_selection_editor_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_undo_editor_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_undo_editor_new (context->gimp->config,
@ -638,6 +686,7 @@ dialogs_undo_editor_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_sample_point_editor_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_sample_point_editor_new (gimp_dialog_factory_get_menu_factory (factory));
@ -649,6 +698,7 @@ dialogs_sample_point_editor_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_navigation_editor_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_navigation_editor_new (gimp_dialog_factory_get_menu_factory (factory));
@ -660,6 +710,7 @@ dialogs_navigation_editor_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_color_editor_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_color_editor_new (context);
@ -673,6 +724,7 @@ dialogs_color_editor_new (GimpDialogFactory *factory,
GtkWidget *
dialogs_brush_editor_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_brush_editor_new (context,
@ -681,8 +733,9 @@ dialogs_brush_editor_get (GimpDialogFactory *factory,
GtkWidget *
dialogs_dynamics_editor_get (GimpDialogFactory *factory,
GimpContext *context,
gint view_size)
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_dynamics_editor_new (context,
gimp_dialog_factory_get_menu_factory (factory));
@ -691,6 +744,7 @@ dialogs_dynamics_editor_get (GimpDialogFactory *factory,
GtkWidget *
dialogs_gradient_editor_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_gradient_editor_new (context,
@ -700,6 +754,7 @@ dialogs_gradient_editor_get (GimpDialogFactory *factory,
GtkWidget *
dialogs_palette_editor_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
return gimp_palette_editor_new (context,

View file

@ -23,45 +23,59 @@
GtkWidget * dialogs_image_new_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_file_open_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_file_open_location_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_file_save_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_file_export_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_preferences_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_keyboard_shortcuts_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_module_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_palette_import_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_tips_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_about_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_error_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_close_all_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_quit_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
@ -69,16 +83,20 @@ GtkWidget * dialogs_quit_get (GimpDialogFactory *factory,
GtkWidget * dialogs_toolbox_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager);
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_toolbox_dock_window_new
(GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_dock_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager);
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_dock_window_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
@ -86,123 +104,161 @@ GtkWidget * dialogs_dock_window_new (GimpDialogFactory *factory,
GtkWidget * dialogs_tool_options_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_device_status_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_error_console_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_cursor_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_image_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_brush_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_dynamics_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_pattern_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_gradient_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_palette_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_font_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_buffer_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_document_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_template_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_image_grid_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_brush_grid_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_pattern_grid_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_gradient_grid_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_palette_grid_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_font_grid_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_buffer_grid_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_document_grid_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_template_grid_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_layer_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_channel_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_vectors_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_path_list_view_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_colormap_editor_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_histogram_editor_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_selection_editor_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_undo_editor_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_sample_point_editor_new(GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_navigation_editor_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_color_editor_new (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_brush_editor_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_dynamics_editor_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_gradient_editor_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
GtkWidget * dialogs_palette_editor_get (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);

View file

@ -90,6 +90,20 @@ GimpContainer *global_recent_docks = NULL;
TRUE /* remember_if_open */, \
TRUE /* dockable */}
#define DOCK(id, new_func) \
{ id /* identifier */, \
NULL /* name */, \
NULL /* blurb */, \
NULL /* stock_id */, \
NULL /* help_id */, \
new_func /* new_func */, \
0 /* view_size */, \
FALSE /* singleton */, \
FALSE /* session_managed */, \
FALSE /* remember_size */, \
FALSE /* remember_if_open */, \
FALSE /* dockable */}
#define LISTGRID(id, name, blurb, stock_id, help_id, view_size) \
{ "gimp-"#id"-list" /* identifier */, \
name /* name */, \
@ -196,6 +210,12 @@ static const GimpDialogFactoryEntry toplevel_entries[] =
static const GimpDialogFactoryEntry dock_entries[] =
{
/* docks */
DOCK ("gimp-dock",
dialogs_dock_new),
DOCK ("gimp-toolbox",
dialogs_toolbox_new),
/* singleton dockables */
DOCKABLE ("gimp-tool-options",
N_("Tool Options"), NULL, GIMP_STOCK_TOOL_OPTIONS,
@ -319,14 +339,12 @@ dialogs_init (Gimp *gimp,
global_dialog_factory = gimp_dialog_factory_new ("toplevel",
gimp_get_user_context (gimp),
menu_factory,
NULL,
TRUE);
/* Toolbox */
global_toolbox_factory = gimp_dialog_factory_new ("toolbox",
gimp_get_user_context (gimp),
menu_factory,
dialogs_toolbox_new,
TRUE);
gimp_dialog_factory_set_dock_window_func (global_toolbox_factory,
dialogs_toolbox_dock_window_new);
@ -335,7 +353,6 @@ dialogs_init (Gimp *gimp,
global_dock_window_factory = gimp_dialog_factory_new ("dock",
gimp_get_user_context (gimp),
menu_factory,
dialogs_dock_new,
TRUE);
gimp_dialog_factory_set_dock_window_func (global_dock_window_factory,
dialogs_dock_window_new);
@ -344,7 +361,6 @@ dialogs_init (Gimp *gimp,
global_display_factory = gimp_dialog_factory_new ("display",
gimp_get_user_context (gimp),
menu_factory,
NULL,
FALSE);

View file

@ -30,6 +30,11 @@
#include "widgets-types.h"
/* FIXME: Remove when the toolbox and dock window factories have been
* merged
*/
#include "dialogs/dialogs.h"
#include "core/gimpcontext.h"
#include "core/gimpmarshal.h"
@ -69,7 +74,6 @@ struct _GimpDialogFactoryPrivate
GList *session_infos;
GimpDialogNewFunc new_dock_window_func;
GimpDialogNewDockFunc new_dock_func;
GList *registered_dialogs;
@ -82,6 +86,7 @@ static void gimp_dialog_factory_finalize (GObject
static GtkWidget * gimp_dialog_factory_constructor (GimpDialogFactory *factory,
GimpDialogFactoryEntry *entry,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
static void gimp_dialog_factory_set_widget_data (GtkWidget *dialog,
GimpDialogFactory *factory,
@ -255,7 +260,6 @@ GimpDialogFactory *
gimp_dialog_factory_new (const gchar *name,
GimpContext *context,
GimpMenuFactory *menu_factory,
GimpDialogNewDockFunc new_dock_func,
gboolean toggle_visibility)
{
GimpDialogFactory *factory;
@ -288,7 +292,6 @@ gimp_dialog_factory_new (const gchar *name,
factory->p->context = context;
factory->p->menu_factory = menu_factory;
factory->p->new_dock_func = new_dock_func;
factory->p->toggle_visibility = toggle_visibility;
return factory;
@ -449,6 +452,7 @@ static GtkWidget *
gimp_dialog_factory_dialog_new_internal (GimpDialogFactory *factory,
GdkScreen *screen,
GimpContext *context,
GimpUIManager *ui_manager,
const gchar *identifier,
gint view_size,
gboolean return_existing,
@ -524,14 +528,17 @@ gimp_dialog_factory_dialog_new_internal (GimpDialogFactory *factory,
if (context)
dialog = gimp_dialog_factory_constructor (factory, entry,
context,
ui_manager,
view_size);
else if (dock)
dialog = gimp_dialog_factory_constructor (factory, entry,
gimp_dock_get_context (GIMP_DOCK (dock)),
gimp_dock_get_ui_manager (GIMP_DOCK (dock)),
view_size);
else
dialog = gimp_dialog_factory_constructor (factory, entry,
factory->p->context,
ui_manager,
view_size);
if (dialog)
@ -650,6 +657,7 @@ gimp_dialog_factory_dialog_new (GimpDialogFactory *factory,
return gimp_dialog_factory_dialog_new_internal (factory,
screen,
factory->p->context,
NULL,
identifier,
view_size,
FALSE,
@ -745,6 +753,7 @@ gimp_dialog_factory_dialog_raise (GimpDialogFactory *factory,
dialog = gimp_dialog_factory_dialog_new_internal (factory,
screen,
NULL,
NULL,
ids[i] ? ids[i] : ids[0],
view_size,
TRUE,
@ -756,6 +765,7 @@ gimp_dialog_factory_dialog_raise (GimpDialogFactory *factory,
dialog = gimp_dialog_factory_dialog_new_internal (factory,
screen,
NULL,
NULL,
identifiers,
view_size,
TRUE,
@ -796,6 +806,7 @@ gimp_dialog_factory_dockable_new (GimpDialogFactory *factory,
return gimp_dialog_factory_dialog_new_internal (factory,
gtk_widget_get_screen (GTK_WIDGET (dock)),
gimp_dock_get_context (dock),
gimp_dock_get_ui_manager (dock),
identifier,
view_size,
FALSE,
@ -820,12 +831,12 @@ gimp_dialog_factory_dock_with_window_new (GimpDialogFactory *factory,
GdkScreen *screen)
{
GtkWidget *dock_window = NULL;
gchar *dock_id = NULL;
GtkWidget *dock = NULL;
GimpUIManager *ui_manager = NULL;
g_return_val_if_fail (GIMP_IS_DIALOG_FACTORY (factory), NULL);
g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
g_return_val_if_fail (factory->p->new_dock_func != NULL, NULL);
/* Create a dock window to put the dock in. We need to create the
* dock window before the dock because the dock has a dependnecy to
@ -835,7 +846,14 @@ gimp_dialog_factory_dock_with_window_new (GimpDialogFactory *factory,
/* Create the dock */
ui_manager = gimp_dock_window_get_ui_manager (GIMP_DOCK_WINDOW (dock_window));
dock = gimp_dialog_factory_dock_new (factory, screen, ui_manager);
dock_id = g_strconcat ("gimp-", gimp_object_get_name (factory), NULL);
dock = gimp_dialog_factory_dialog_new (global_dock_window_factory,
screen,
"gimp-dock",
-1 /*view_size*/,
FALSE /*present*/);
g_free (dock_id);
if (dock)
{
@ -868,7 +886,7 @@ gimp_dialog_factory_dock_window_new (GimpDialogFactory *factory,
g_return_val_if_fail (factory->p->new_dock_window_func != NULL, NULL);
/* Create the dock window */
dock_window = factory->p->new_dock_window_func (factory, factory->p->context, 0);
dock_window = factory->p->new_dock_window_func (factory, factory->p->context, NULL, 0);
gtk_window_set_screen (GTK_WINDOW (dock_window), screen);
gimp_dialog_factory_set_widget_data (dock_window, factory, NULL);
@ -880,19 +898,6 @@ gimp_dialog_factory_dock_window_new (GimpDialogFactory *factory,
return dock_window;
}
GtkWidget *
gimp_dialog_factory_dock_new (GimpDialogFactory *factory,
GdkScreen *screen,
GimpUIManager *ui_manager)
{
g_return_val_if_fail (GIMP_IS_DIALOG_FACTORY (factory), NULL);
g_return_val_if_fail (factory->p->new_dock_func != NULL, NULL);
g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
g_return_val_if_fail (ui_manager != NULL, NULL);
return factory->p->new_dock_func (factory, factory->p->context, ui_manager);
}
void
gimp_dialog_factory_add_dialog (GimpDialogFactory *factory,
GtkWidget *dialog)
@ -1373,14 +1378,16 @@ gimp_dialog_factory_get_has_min_size (GtkWindow *window)
/* private functions */
static GtkWidget *
gimp_dialog_factory_constructor (GimpDialogFactory *factory,
GimpDialogFactoryEntry *entry,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size)
{
GtkWidget *widget;
widget = entry->new_func (factory, context, view_size);
widget = entry->new_func (factory, context, ui_manager, view_size);
/* The entry is for a dockable, so we simply need to put the created
* widget in a dockable

View file

@ -34,12 +34,15 @@ typedef enum
} GimpDialogVisibilityState;
/* In order to support constructors of various types, these functions
* takes the union of the set of arguments required for each type of
* widget constructor. If this set becomes too big we can consider
* passing a struct or use varargs.
*/
typedef GtkWidget * (* GimpDialogNewFunc) (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager,
gint view_size);
typedef GtkWidget * (* GimpDialogNewDockFunc) (GimpDialogFactory *factory,
GimpContext *context,
GimpUIManager *ui_manager);
struct _GimpDialogFactoryEntry
@ -105,7 +108,6 @@ GType gimp_dialog_factory_get_type (void) G_GNUC_CONST
GimpDialogFactory * gimp_dialog_factory_new (const gchar *name,
GimpContext *context,
GimpMenuFactory *menu_factory,
GimpDialogNewDockFunc new_dock_func,
gboolean toggle_visibility);
GimpDialogFactory * gimp_dialog_factory_from_name (const gchar *name);
void gimp_dialog_factory_set_dock_window_func (GimpDialogFactory *factory,
@ -151,9 +153,6 @@ GtkWidget * gimp_dialog_factory_dock_with_window_new (GimpDialogFactory
GdkScreen *screen);
GtkWidget * gimp_dialog_factory_dock_window_new (GimpDialogFactory *factory,
GdkScreen *screen);
GtkWidget * gimp_dialog_factory_dock_new (GimpDialogFactory *factory,
GdkScreen *screen,
GimpUIManager *ui_manager);
void gimp_dialog_factory_add_dialog (GimpDialogFactory *factory,
GtkWidget *dialog);
void gimp_dialog_factory_add_foreign (GimpDialogFactory *factory,

View file

@ -26,6 +26,11 @@
#include "widgets-types.h"
/* FIXME: Remove when the toolbox and dock window factories have been
* merged
*/
#include "dialogs/dialogs.h"
#include "gimpdialogfactory.h"
#include "gimpdock.h"
#include "gimpdockwindow.h"
@ -206,6 +211,7 @@ gimp_session_info_dock_restore (GimpSessionInfoDock *dock_info,
GdkScreen *screen,
GimpDockWindow *dock_window)
{
gchar *dock_id = NULL;
GtkWidget *dock = NULL;
GList *iter = NULL;
GimpUIManager *ui_manager = NULL;
@ -214,7 +220,18 @@ gimp_session_info_dock_restore (GimpSessionInfoDock *dock_info,
g_return_if_fail (GDK_IS_SCREEN (screen));
ui_manager = gimp_dock_window_get_ui_manager (GIMP_DOCK_WINDOW (dock_window));
dock = gimp_dialog_factory_dock_new (factory, screen, ui_manager);
/* Create the dock. Always use the dock window factory for it (but
* we want to refactor away that hard-coding eventually) but the
* type of dock depends on the factory
*/
dock_id = g_strconcat ("gimp-", gimp_object_get_name (factory), NULL);
dock = gimp_dialog_factory_dialog_new (global_dock_window_factory /* FIXME */,
screen,
dock_id,
-1 /*view_size*/,
FALSE /*present*/);
g_free (dock_id);
g_return_if_fail (GIMP_IS_DOCK (dock));