To be multihead safe, each new window or menu needs to be associated with

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 accordingly. Changed all
	menu_position funcs to place the menu on the right screen.
This commit is contained in:
Michael Natterer 2003-11-08 15:32:38 +00:00 committed by Michael Natterer
parent bcd9794a99
commit b62f8e9a75
50 changed files with 230 additions and 103 deletions

View file

@ -311,6 +311,7 @@ gimp_color_picker_tool_info_create (GimpColorPickerTool *picker_tool)
g_return_if_fail (tool->drawable != NULL);
picker_tool->dialog = gimp_tool_dialog_new (tool->tool_info,
GIMP_TOOL (picker_tool)->gdisp->shell,
_("Color Picker Information"),
GTK_STOCK_CLOSE,

View file

@ -957,6 +957,7 @@ crop_info_create (GimpCropTool *crop)
GIMP_OBJECT (tool->tool_info)->name,
stock_id,
_("Crop & Resize Information"),
GTK_WIDGET (shell),
gimp_standard_help_func,
tool->tool_info->help_id);

View file

@ -212,7 +212,9 @@ gimp_image_map_tool_initialize (GimpTool *tool,
stock_id = gimp_viewable_get_stock_id (GIMP_VIEWABLE (tool_info));
image_map_tool->shell = shell =
gimp_tool_dialog_new (tool_info, image_map_tool->shell_desc,
gimp_tool_dialog_new (tool_info,
gdisp->shell,
image_map_tool->shell_desc,
GIMP_STOCK_RESET, RESPONSE_RESET,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,

View file

@ -827,12 +827,13 @@ gimp_measure_tool_dialog_update (GimpMeasureTool *mtool,
static GtkWidget *
gimp_measure_tool_dialog_new (GimpMeasureTool *mtool)
{
GtkWidget *dialog;
GtkWidget *hbox;
GtkWidget *table;
GtkWidget *label;
GtkWidget *dialog;
GtkWidget *hbox;
GtkWidget *table;
GtkWidget *label;
dialog = gimp_tool_dialog_new (GIMP_TOOL (mtool)->tool_info,
GIMP_TOOL (mtool)->gdisp->shell,
_("Measure Distances and Angles"),
GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,

View file

@ -1275,6 +1275,7 @@ gimp_transform_tool_dialog (GimpTransformTool *tr_tool)
GIMP_OBJECT (tool_info)->name,
stock_id,
tr_tool->shell_desc,
GIMP_TOOL (tr_tool)->gdisp->shell,
gimp_standard_help_func,
tool_info->help_id);

View file

@ -770,6 +770,7 @@ gimp_colormap_preview_button_press (GtkWidget *widget,
gimp_colormap_editor_set_index (editor, col);
gimp_item_factory_popup_with_data (GIMP_EDITOR (editor)->item_factory,
GIMP_EDITOR (editor)->item_factory_data,
GTK_WIDGET (editor),
NULL, NULL, NULL);
return TRUE;
@ -928,6 +929,7 @@ gimp_colormap_edit_clicked (GtkWidget *widget,
_("Edit Indexed Color"),
GIMP_STOCK_CONVERT_INDEXED,
_("Edit Indexed Image Palette Color"),
GTK_WIDGET (editor),
toplevel_factory,
"gimp-colormap-editor-color-dialog",
(const GimpRGB *) &color,

View file

@ -94,7 +94,7 @@ gimp_color_panel_get_type (void)
"GimpColorPanel",
&panel_info, 0);
}
return panel_type;
}
@ -110,7 +110,7 @@ gimp_color_panel_class_init (GimpColorPanelClass *klass)
widget_class = GTK_WIDGET_CLASS (klass);
button_class = GTK_BUTTON_CLASS (klass);
color_button_class = GIMP_COLOR_BUTTON_CLASS (klass);
parent_class = g_type_class_peek_parent (klass);
object_class->destroy = gimp_color_panel_destroy;
@ -132,7 +132,7 @@ gimp_color_panel_destroy (GtkObject *object)
GimpColorPanel *panel;
g_return_if_fail (GIMP_IS_COLOR_PANEL (object));
panel = GIMP_COLOR_PANEL (object);
if (panel->color_notebook)
@ -258,6 +258,7 @@ gimp_color_panel_clicked (GtkButton *button)
{
panel->color_notebook =
color_notebook_new (GIMP_COLOR_BUTTON (button)->title,
GTK_WIDGET (button),
NULL, NULL,
(const GimpRGB *) &color,
gimp_color_panel_select_callback,

View file

@ -492,6 +492,7 @@ gimp_component_editor_button_press (GtkWidget *widget,
case 3:
gimp_item_factory_popup_with_data (GIMP_EDITOR (editor)->item_factory,
GIMP_EDITOR (editor)->item_factory_data,
GTK_WIDGET (editor),
NULL, NULL, NULL);
break;

View file

@ -264,6 +264,7 @@ gimp_container_editor_real_context_item (GimpContainerEditor *editor,
if (gimp_editor->item_factory)
gimp_item_factory_popup_with_data (gimp_editor->item_factory,
gimp_editor->item_factory_data,
GTK_WIDGET (editor),
NULL, NULL, NULL);
}
}

View file

@ -373,7 +373,9 @@ gimp_container_grid_view_menu_position (GtkMenu *menu,
gtk_widget_size_request (GTK_WIDGET (menu), &requisition);
screen = gtk_widget_get_screen (GTK_WIDGET (menu));
screen = gtk_widget_get_screen (widget);
gtk_menu_set_screen (menu, screen);
if (*x + requisition.width > gdk_screen_get_width (screen))
*x -= requisition.width;
@ -401,6 +403,7 @@ gimp_container_grid_view_popup_menu (GtkWidget *widget)
{
gimp_item_factory_popup_with_data (editor->item_factory,
editor->item_factory_data,
GTK_WIDGET (editor),
gimp_container_grid_view_menu_position,
grid_view->selected_item,
NULL);

View file

@ -591,6 +591,7 @@ gimp_container_popup_dialog_clicked (GtkWidget *button,
GimpContainerPopup *popup)
{
gimp_dialog_factory_dialog_raise (popup->dialog_factory,
gtk_widget_get_screen (button),
popup->dialog_identifier, -1);
g_signal_emit (popup, popup_signals[CONFIRM], 0);
}

View file

@ -317,7 +317,9 @@ gimp_container_tree_view_menu_position (GtkMenu *menu,
gtk_widget_size_request (GTK_WIDGET (menu), &requisition);
screen = gtk_widget_get_screen (GTK_WIDGET (menu));
screen = gtk_widget_get_screen (widget);
gtk_menu_set_screen (menu, screen);
if (*x + requisition.width > gdk_screen_get_width (screen))
*x -= requisition.width;
@ -346,6 +348,7 @@ gimp_container_tree_view_popup_menu (GtkWidget *widget)
{
gimp_item_factory_popup_with_data (editor->item_factory,
editor->item_factory_data,
GTK_WIDGET (editor),
gimp_container_tree_view_menu_position,
editor,
NULL);

View file

@ -403,6 +403,7 @@ gimp_data_factory_view_delete_clicked (GtkWidget *widget,
GIMP_OBJECT (data)->name);
dialog = gimp_query_boolean_box (_("Delete Data Object"),
GTK_WIDGET (view),
gimp_standard_help_func, NULL,
GIMP_STOCK_QUESTION,
str,

View file

@ -433,5 +433,7 @@ gimp_device_status_preview_clicked (GtkWidget *widget,
dialog_factory = gimp_dialog_factory_from_name ("dock");
gimp_dialog_factory_dialog_raise (dialog_factory, identifier, -1);
gimp_dialog_factory_dialog_raise (dialog_factory,
gtk_widget_get_screen (widget),
identifier, -1);
}

View file

@ -374,6 +374,7 @@ gimp_dialog_factory_find_session_info (GimpDialogFactory *factory,
static GtkWidget *
gimp_dialog_factory_dialog_new_internal (GimpDialogFactory *factory,
GdkScreen *screen,
GimpContext *context,
const gchar *identifier,
gint preview_size,
@ -427,7 +428,7 @@ gimp_dialog_factory_dialog_new_internal (GimpDialogFactory *factory,
{
GtkWidget *dockbook;
dock = gimp_dialog_factory_dock_new (factory);
dock = gimp_dialog_factory_dock_new (factory, screen);
dockbook = gimp_dockbook_new (factory->menu_factory);
gimp_dock_add_book (GIMP_DOCK (dock),
@ -509,6 +510,7 @@ gimp_dialog_factory_dialog_new_internal (GimpDialogFactory *factory,
{
if (GTK_WIDGET_TOPLEVEL (dialog))
{
gtk_window_set_screen (GTK_WINDOW (dialog), screen);
gtk_window_present (GTK_WINDOW (dialog));
}
else if (GIMP_IS_DOCKABLE (dialog))
@ -559,13 +561,16 @@ gimp_dialog_factory_dialog_new_internal (GimpDialogFactory *factory,
**/
GtkWidget *
gimp_dialog_factory_dialog_new (GimpDialogFactory *factory,
GdkScreen *screen,
const gchar *identifier,
gint preview_size)
{
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 (identifier != NULL, NULL);
return gimp_dialog_factory_dialog_new_internal (factory,
screen,
factory->context,
identifier,
preview_size,
@ -588,13 +593,16 @@ gimp_dialog_factory_dialog_new (GimpDialogFactory *factory,
**/
GtkWidget *
gimp_dialog_factory_dialog_raise (GimpDialogFactory *factory,
GdkScreen *screen,
const gchar *identifier,
gint preview_size)
{
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 (identifier != NULL, NULL);
return gimp_dialog_factory_dialog_new_internal (factory,
screen,
NULL,
identifier,
preview_size,
@ -630,6 +638,7 @@ gimp_dialog_factory_dockable_new (GimpDialogFactory *factory,
g_return_val_if_fail (identifier != NULL, NULL);
return gimp_dialog_factory_dialog_new_internal (factory,
gtk_widget_get_screen (GTK_WIDGET (dock)),
dock->context,
identifier,
preview_size,
@ -648,17 +657,21 @@ gimp_dialog_factory_dockable_new (GimpDialogFactory *factory,
* Return value: the newly created #GimpDock.
**/
GtkWidget *
gimp_dialog_factory_dock_new (GimpDialogFactory *factory)
gimp_dialog_factory_dock_new (GimpDialogFactory *factory,
GdkScreen *screen)
{
GtkWidget *dock;
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->new_dock_func != NULL, NULL);
dock = factory->new_dock_func (factory, factory->context, 0);
if (dock)
{
gtk_window_set_screen (GTK_WINDOW (dock), screen);
gimp_dialog_factory_set_widget_data (dock, factory, NULL);
gimp_dialog_factory_add_dialog (factory, dock);

View file

@ -103,16 +103,19 @@ GimpSessionInfo * gimp_dialog_factory_find_session_info
const gchar *identifier);
GtkWidget * gimp_dialog_factory_dialog_new (GimpDialogFactory *factory,
GdkScreen *screen,
const gchar *identifier,
gint preview_size);
GtkWidget * gimp_dialog_factory_dialog_raise (GimpDialogFactory *factory,
GdkScreen *screen,
const gchar *identifier,
gint preview_size);
GtkWidget * gimp_dialog_factory_dockable_new (GimpDialogFactory *factory,
GimpDock *dock,
const gchar *identifier,
gint preview_size);
GtkWidget * gimp_dialog_factory_dock_new (GimpDialogFactory *factory);
GtkWidget * gimp_dialog_factory_dock_new (GimpDialogFactory *factory,
GdkScreen *screen);
void gimp_dialog_factory_add_dialog (GimpDialogFactory *factory,
GtkWidget *dialog);

View file

@ -809,7 +809,8 @@ gimp_dockable_detach (GimpDockable *dockable)
src_dock = dockable->dockbook->dock;
dock = gimp_dialog_factory_dock_new (src_dock->dialog_factory);
dock = gimp_dialog_factory_dock_new (src_dock->dialog_factory,
gtk_widget_get_screen (GTK_WIDGET (dockable)));
gimp_dock_setup (GIMP_DOCK (dock), src_dock);
gtk_window_set_position (GTK_WINDOW (dock), GTK_WIN_POS_MOUSE);
@ -954,6 +955,7 @@ gimp_dockable_show_menu (GimpDockable *dockable)
gimp_item_factory_popup_with_data (dockbook_item_factory,
dockable,
GTK_WIDGET (dockable),
gimp_dockable_menu_position,
dockable,
(GtkDestroyNotify) gimp_dockable_menu_end);

View file

@ -218,7 +218,7 @@ gimp_drawable_tree_view_new_dropped (GimpItemTreeView *view,
gimp_image_undo_group_start (view->gimage, GIMP_UNDO_GROUP_EDIT_PASTE,
_("New Layer"));
view->new_item_func (view->gimage, NULL, FALSE);
view->new_item_func (view->gimage, NULL, FALSE, GTK_WIDGET (view));
drawable = gimp_image_active_drawable (view->gimage);

View file

@ -303,6 +303,7 @@ gimp_error_console_button_press (GtkWidget *widget,
gimp_item_factory_popup_with_data (editor->item_factory,
editor->item_factory_data,
GTK_WIDGET (editor),
NULL, NULL, NULL);
return TRUE;
}

View file

@ -713,6 +713,7 @@ preview_events (GtkWidget *widget,
gimp_item_factory_popup_with_data (gimp_editor->item_factory,
gimp_editor->item_factory_data,
GTK_WIDGET (editor),
NULL, NULL, NULL);
}
break;
@ -1152,6 +1153,7 @@ control_button_press (GimpGradientEditor *editor,
gimp_item_factory_popup_with_data (gimp_editor->item_factory,
gimp_editor->item_factory_data,
GTK_WIDGET (editor),
NULL, NULL, NULL);
return;
}

View file

@ -207,7 +207,7 @@ gimp_help_internal (Gimp *gimp,
{
GtkWidget *not_found =
gimp_query_boolean_box (_("Could not find GIMP Help Browser"),
NULL, NULL, FALSE,
NULL, NULL, NULL, FALSE,
_("Could not find the GIMP Help Browser procedure.\n"
"It probably was not compiled because\n"
"you don't have GtkXmHTML installed."),
@ -251,7 +251,7 @@ gimp_help_internal (Gimp *gimp,
{
GtkWidget *not_found =
gimp_query_boolean_box (_("Could not start GIMP Help Browser"),
NULL, NULL, FALSE,
NULL, NULL, NULL, FALSE,
_("Could not start the GIMP Help Browser."),
_("Use web browser instead"),
GTK_STOCK_CANCEL,

View file

@ -417,6 +417,7 @@ gimp_item_factory_update (GimpItemFactory *item_factory,
void
gimp_item_factory_popup_with_data (GimpItemFactory *item_factory,
gpointer popup_data,
GtkWidget *parent,
GimpMenuPositionFunc position_func,
gpointer position_data,
GtkDestroyNotify popdown_func)
@ -427,6 +428,7 @@ gimp_item_factory_popup_with_data (GimpItemFactory *item_factory,
guint32 activate_time;
g_return_if_fail (GIMP_IS_ITEM_FACTORY (item_factory));
g_return_if_fail (GTK_IS_WIDGET (parent));
if (item_factory->update_on_popup)
gimp_item_factory_update (item_factory, popup_data);
@ -434,7 +436,7 @@ gimp_item_factory_popup_with_data (GimpItemFactory *item_factory,
if (! position_func)
{
position_func = gimp_menu_position;
position_data = NULL;
position_data = parent;
}
(* position_func) (GTK_MENU (GTK_ITEM_FACTORY (item_factory)->widget),

View file

@ -100,6 +100,7 @@ void gimp_item_factory_update (GimpItemFactory *item_factory,
gpointer popup_data);
void gimp_item_factory_popup_with_data (GimpItemFactory *factory,
gpointer popup_data,
GtkWidget *parent,
GimpMenuPositionFunc position_func,
gpointer position_data,
GtkDestroyNotify popdown_func);

View file

@ -776,7 +776,7 @@ gimp_item_tree_view_activate_item (GimpContainerView *view,
item,
insert_data);
item_view->activate_item_func (GIMP_ITEM (item));
item_view->activate_item_func (GIMP_ITEM (item), GTK_WIDGET (view));
}
static void
@ -796,6 +796,7 @@ gimp_item_tree_view_context_item (GimpContainerView *view,
if (editor->item_factory)
gimp_item_factory_popup_with_data (editor->item_factory,
editor->item_factory_data,
GTK_WIDGET (editor),
NULL, NULL, NULL);
}
@ -902,7 +903,7 @@ gimp_item_tree_view_edit_clicked (GtkWidget *widget,
item = GIMP_ITEM_TREE_VIEW_GET_CLASS (view)->get_active_item (view->gimage);
if (item)
view->edit_item_func (item);
view->edit_item_func (item, GTK_WIDGET (view));
}
@ -912,7 +913,7 @@ static void
gimp_item_tree_view_new_clicked (GtkWidget *widget,
GimpItemTreeView *view)
{
view->new_item_func (view->gimage, NULL, TRUE);
view->new_item_func (view->gimage, NULL, TRUE, GTK_WIDGET (view));
}
static void
@ -927,7 +928,8 @@ gimp_item_tree_view_new_dropped (GtkWidget *widget,
if (viewable && gimp_container_have (GIMP_CONTAINER_VIEW (view)->container,
GIMP_OBJECT (viewable)))
{
view->new_item_func (view->gimage, GIMP_ITEM (viewable), FALSE);
view->new_item_func (view->gimage, GIMP_ITEM (viewable), FALSE,
GTK_WIDGET (view));
gimp_image_flush (view->gimage);
}

View file

@ -41,11 +41,14 @@ typedef void (* GimpAddItemFunc) (GimpImage *gimage,
typedef void (* GimpRemoveItemFunc) (GimpImage *gimage,
GimpItem *item);
typedef void (* GimpEditItemFunc) (GimpItem *item);
typedef void (* GimpEditItemFunc) (GimpItem *item,
GtkWidget *parent);
typedef void (* GimpNewItemFunc) (GimpImage *gimage,
GimpItem *template,
gboolean interactive);
typedef void (* GimpActivateItemFunc) (GimpItem *item);
gboolean interactive,
GtkWidget *parent);
typedef void (* GimpActivateItemFunc) (GimpItem *item,
GtkWidget *parent);
#define GIMP_TYPE_ITEM_TREE_VIEW (gimp_item_tree_view_get_type ())

View file

@ -600,6 +600,7 @@ palette_editor_eventbox_button_press (GtkWidget *widget,
gimp_item_factory_popup_with_data (gimp_editor->item_factory,
gimp_editor->item_factory_data,
GTK_WIDGET (editor),
NULL, NULL, NULL);
}
@ -1091,6 +1092,7 @@ palette_editor_edit_clicked (GtkWidget *widget,
_("Edit Palette Color"),
GTK_STOCK_SELECT_COLOR,
_("Edit Color Palette Entry"),
GTK_WIDGET (editor),
toplevel_factory,
"gimp-palette-editor-color-dialog",
(const GimpRGB *) &editor->color->color,

View file

@ -181,9 +181,13 @@ gimp_preview_popup_timeout (GimpPreviewPopup *popup)
popup->timeout_id = 0;
screen = gtk_widget_get_screen (popup->widget);
window = gtk_window_new (GTK_WINDOW_POPUP);
gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
gtk_window_set_screen (GTK_WINDOW (window), screen);
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);
gtk_container_add (GTK_CONTAINER (window), frame);
@ -200,7 +204,6 @@ gimp_preview_popup_timeout (GimpPreviewPopup *popup)
gdk_window_get_origin (popup->widget->window, &orig_x, &orig_y);
screen = gtk_widget_get_screen (popup->widget);
scr_width = gdk_screen_get_width (screen);
scr_height = gdk_screen_get_height (screen);

View file

@ -354,7 +354,8 @@ gimp_selection_editor_stroke_clicked (GtkWidget *widget,
GimpSelectionEditor *sel_editor = GIMP_SELECTION_EDITOR (editor);
if (sel_editor->stroke_item_func)
sel_editor->stroke_item_func (GIMP_ITEM (gimp_image_get_mask (editor->gimage)));
sel_editor->stroke_item_func (GIMP_ITEM (gimp_image_get_mask (editor->gimage)),
GTK_WIDGET (editor));
}
}

View file

@ -541,6 +541,7 @@ gimp_session_info_restore (GimpSessionInfo *info,
dialog =
gimp_dialog_factory_dialog_new (factory,
gdk_screen_get_default (),
info->toplevel_entry->identifier,
info->toplevel_entry->preview_size);
@ -552,7 +553,8 @@ gimp_session_info_restore (GimpSessionInfo *info,
GimpDock *dock;
GList *books;
dock = GIMP_DOCK (gimp_dialog_factory_dock_new (factory));
dock = GIMP_DOCK (gimp_dialog_factory_dock_new (factory,
gdk_screen_get_default ()));
if (dock && info->aux_info)
session_info_set_aux_info (GTK_WIDGET (dock), info->aux_info);

View file

@ -254,7 +254,8 @@ gimp_template_view_create_clicked (GtkWidget *widget,
GIMP_OBJECT (template)))
{
if (view->create_image_func)
view->create_image_func (editor->view->context->gimp, template);
view->create_image_func (editor->view->context->gimp, template,
GTK_WIDGET (view));
}
}
@ -275,7 +276,8 @@ gimp_template_view_new_clicked (GtkWidget *widget,
}
if (view->new_template_func)
view->new_template_func (editor->view->context->gimp, NULL);
view->new_template_func (editor->view->context->gimp, NULL,
GTK_WIDGET (view));
}
static void
@ -305,7 +307,8 @@ gimp_template_view_duplicate_clicked (GtkWidget *widget,
GIMP_OBJECT (new_template));
if (view->edit_template_func)
view->edit_template_func (editor->view->context->gimp, new_template);
view->edit_template_func (editor->view->context->gimp, new_template,
GTK_WIDGET (view));
g_object_unref (new_template);
}
@ -326,7 +329,8 @@ gimp_template_view_edit_clicked (GtkWidget *widget,
GIMP_OBJECT (template)))
{
if (view->edit_template_func)
view->edit_template_func (editor->view->context->gimp, template);
view->edit_template_func (editor->view->context->gimp, template,
GTK_WIDGET (view));
}
}
@ -386,6 +390,7 @@ gimp_template_view_delete_clicked (GtkWidget *widget,
GIMP_OBJECT (template)->name);
dialog = gimp_query_boolean_box (_("Delete Template"),
GTK_WIDGET (view),
gimp_standard_help_func, NULL,
GIMP_STOCK_QUESTION,
str,
@ -443,7 +448,8 @@ gimp_template_view_activate_item (GimpContainerEditor *editor,
{
if (view->create_image_func)
view->create_image_func (editor->view->context->gimp,
GIMP_TEMPLATE (viewable));
GIMP_TEMPLATE (viewable),
GTK_WIDGET (editor));
}
}

View file

@ -27,7 +27,8 @@
typedef void (* GimpTemplateActionFunc) (Gimp *gimp,
GimpTemplate *template);
GimpTemplate *template,
GtkWidget *parent);
#define GIMP_TYPE_TEMPLATE_VIEW (gimp_template_view_get_type ())

View file

@ -78,7 +78,8 @@ static void color_area_select_callback (ColorNotebook *color_notebook,
const GimpRGB *color,
ColorNotebookState state,
gpointer data);
static void color_area_edit (GimpContext *context);
static void color_area_edit (GimpContext *context,
GtkWidget *widget);
static void color_area_drop_color (GtkWidget *widget,
const GimpRGB *color,
gpointer data);
@ -349,7 +350,8 @@ color_area_select_callback (ColorNotebook *color_notebook,
}
static void
color_area_edit (GimpContext *context)
color_area_edit (GimpContext *context,
GtkWidget *widget)
{
GimpRGB color;
const gchar *title;
@ -379,6 +381,7 @@ color_area_edit (GimpContext *context)
toplevel_factory = gimp_dialog_factory_from_name ("toplevel");
color_notebook = color_notebook_new (title,
widget,
toplevel_factory,
"gimp-toolbox-color-dialog",
(const GimpRGB *) &color,
@ -461,7 +464,7 @@ color_area_events (GtkWidget *widget,
{
case FORE_AREA:
case BACK_AREA:
color_area_edit (context);
color_area_edit (context, widget);
break;
default:

View file

@ -53,6 +53,7 @@ brush_preview_clicked (GtkWidget *widget,
GimpToolbox *toolbox)
{
gimp_dialog_factory_dialog_raise (GIMP_DOCK (toolbox)->dialog_factory,
gtk_widget_get_screen (widget),
"gimp-brush-grid", -1);
}
@ -74,6 +75,7 @@ pattern_preview_clicked (GtkWidget *widget,
GimpToolbox *toolbox)
{
gimp_dialog_factory_dialog_raise (GIMP_DOCK (toolbox)->dialog_factory,
gtk_widget_get_screen (widget),
"gimp-pattern-grid", -1);
}
@ -95,6 +97,7 @@ gradient_preview_clicked (GtkWidget *widget,
GimpToolbox *toolbox)
{
gimp_dialog_factory_dialog_raise (GIMP_DOCK (toolbox)->dialog_factory,
gtk_widget_get_screen (widget),
"gimp-gradient-list", -1);
}

View file

@ -814,6 +814,7 @@ toolbox_tool_button_press (GtkWidget *widget,
if ((event->type == GDK_2BUTTON_PRESS) && (event->button == 1))
{
gimp_dialog_factory_dialog_raise (GIMP_DOCK (toolbox)->dialog_factory,
gtk_widget_get_screen (widget),
"gimp-tool-options",
-1);
}

View file

@ -51,6 +51,7 @@
**/
GtkWidget *
gimp_tool_dialog_new (GimpToolInfo *tool_info,
GtkWidget *parent,
const gchar *desc,
...)
{
@ -60,6 +61,7 @@ gimp_tool_dialog_new (GimpToolInfo *tool_info,
va_list args;
g_return_val_if_fail (GIMP_IS_TOOL_INFO (tool_info), NULL);
g_return_val_if_fail (GTK_IS_WIDGET (parent), NULL);
stock_id = gimp_viewable_get_stock_id (GIMP_VIEWABLE (tool_info));
@ -68,6 +70,7 @@ gimp_tool_dialog_new (GimpToolInfo *tool_info,
GIMP_OBJECT (tool_info)->name,
stock_id,
desc ? desc : tool_info->help,
parent,
gimp_standard_help_func,
tool_info->help_id,
NULL);

View file

@ -23,8 +23,9 @@
#define __GIMP_TOOL_DIALOG_H__
GtkWidget * gimp_tool_dialog_new (GimpToolInfo *tool_info,
const gchar *desc,
GtkWidget * gimp_tool_dialog_new (GimpToolInfo *tool_info,
GtkWidget *parent,
const gchar *desc,
...);

View file

@ -409,6 +409,7 @@ gimp_tool_options_editor_reset_ext_clicked (GtkWidget *widget,
GtkWidget *qbox;
qbox = gimp_query_boolean_box (_("Reset Tool Options"),
GTK_WIDGET (editor),
gimp_standard_help_func,
GIMP_HELP_TOOL_OPTIONS_RESET,
GTK_STOCK_DIALOG_QUESTION,

View file

@ -320,5 +320,5 @@ gimp_vectors_tree_view_stroke_clicked (GtkWidget *widget,
item = GIMP_ITEM_TREE_VIEW_GET_CLASS (view)->get_active_item (gimage);
if (item && view->stroke_item_func)
view->stroke_item_func (item);
view->stroke_item_func (item, GTK_WIDGET (view));
}

View file

@ -181,9 +181,13 @@ gimp_preview_popup_timeout (GimpPreviewPopup *popup)
popup->timeout_id = 0;
screen = gtk_widget_get_screen (popup->widget);
window = gtk_window_new (GTK_WINDOW_POPUP);
gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
gtk_window_set_screen (GTK_WINDOW (window), screen);
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);
gtk_container_add (GTK_CONTAINER (window), frame);
@ -200,7 +204,6 @@ gimp_preview_popup_timeout (GimpPreviewPopup *popup)
gdk_window_get_origin (popup->widget->window, &orig_x, &orig_y);
screen = gtk_widget_get_screen (popup->widget);
scr_width = gdk_screen_get_width (screen);
scr_height = gdk_screen_get_height (screen);

View file

@ -152,13 +152,14 @@ gimp_viewable_dialog_destroy (GtkObject *object)
}
GtkWidget *
gimp_viewable_dialog_new (GimpViewable *viewable,
const gchar *title,
const gchar *role,
const gchar *stock_id,
const gchar *desc,
GimpHelpFunc help_func,
const gchar *help_id,
gimp_viewable_dialog_new (GimpViewable *viewable,
const gchar *title,
const gchar *role,
const gchar *stock_id,
const gchar *desc,
GtkWidget *parent,
GimpHelpFunc help_func,
const gchar *help_id,
...)
{
GimpViewableDialog *dialog;
@ -169,6 +170,7 @@ gimp_viewable_dialog_new (GimpViewable *viewable,
g_return_val_if_fail (! viewable || GIMP_IS_VIEWABLE (viewable), NULL);
g_return_val_if_fail (title != NULL, NULL);
g_return_val_if_fail (role != NULL, NULL);
g_return_val_if_fail (parent == NULL || GTK_IS_WIDGET (parent), NULL);
dialog = g_object_new (GIMP_TYPE_VIEWABLE_DIALOG,
"title", title,
@ -176,6 +178,16 @@ gimp_viewable_dialog_new (GimpViewable *viewable,
gtk_window_set_role (GTK_WINDOW (dialog), role);
if (parent)
{
if (GTK_IS_WINDOW (parent))
gtk_window_set_transient_for (GTK_WINDOW (dialog),
GTK_WINDOW (parent));
else
gtk_window_set_screen (GTK_WINDOW (dialog),
gtk_widget_get_screen (parent));
}
if (help_func)
gimp_help_connect (GTK_WIDGET (dialog), help_func, help_id, dialog);

View file

@ -60,6 +60,7 @@ GtkWidget * gimp_viewable_dialog_new (GimpViewable *viewable,
const gchar *role,
const gchar *stock_id,
const gchar *desc,
GtkWidget *parent,
GimpHelpFunc help_func,
const gchar *help_id,
...);

View file

@ -257,13 +257,15 @@ gimp_menu_position (GtkMenu *menu,
g_return_if_fail (GTK_IS_MENU (menu));
g_return_if_fail (x != NULL);
g_return_if_fail (y != NULL);
g_return_if_fail (GTK_IS_WIDGET (data));
gdk_window_get_pointer (NULL, &pointer_x, &pointer_y, NULL);
gdk_display_get_pointer (gtk_widget_get_display (GTK_WIDGET (data)),
&screen, &pointer_x, &pointer_y, NULL);
gtk_menu_set_screen (menu, screen);
gtk_widget_size_request (GTK_WIDGET (menu), &requisition);
screen = gtk_widget_get_screen (GTK_WIDGET (menu));
screen_width = gdk_screen_get_width (screen);
screen_height = gdk_screen_get_height (screen);
@ -327,7 +329,9 @@ gimp_button_menu_position (GtkWidget *button,
}
}
screen = gtk_widget_get_screen (GTK_WIDGET (menu));
screen = gtk_widget_get_screen (GTK_WIDGET (button));
gtk_menu_set_screen (menu, screen);
gdk_window_get_origin (button->window, x, y);

View file

@ -134,7 +134,8 @@ typedef void (* GimpMenuPositionFunc) (GtkMenu *menu,
gint *y,
gpointer data);
typedef void (* GimpStrokeItemFunc) (GimpItem *item);
typedef void (* GimpStrokeItemFunc) (GimpItem *item,
GtkWidget *parent);
typedef void (* GimpSelectionToVectorsFunc) (GimpImage *gimage,
gboolean advanced);

View file

@ -1,4 +1,4 @@
/* LIBGIMP - The GIMP Library
/* LIBGIMP - The GIMP Library
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
*
* gimpcolorbutton.c
@ -8,10 +8,10 @@
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
*
* This library 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
* Library General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
@ -70,7 +70,7 @@ static void gimp_color_button_dialog_cancel (GtkWidget *widget,
gpointer data);
static void gimp_color_button_use_color (gpointer callback_data,
guint callback_action,
guint callback_action,
GtkWidget *widget);
static gchar * gimp_color_button_menu_translate (const gchar *path,
gpointer func_data);
@ -81,14 +81,14 @@ static void gimp_color_button_color_changed (GtkObject *object,
static GtkItemFactoryEntry menu_items[] =
{
{ N_("/Foreground Color"), NULL,
{ N_("/Foreground Color"), NULL,
gimp_color_button_use_color, GIMP_COLOR_BUTTON_COLOR_FG, NULL },
{ N_("/Background Color"), NULL,
{ N_("/Background Color"), NULL,
gimp_color_button_use_color, GIMP_COLOR_BUTTON_COLOR_BG, NULL },
{ "/fg-bg-separator", NULL, NULL, 0, "<Separator>"},
{ N_("/Black"), NULL,
{ N_("/Black"), NULL,
gimp_color_button_use_color, GIMP_COLOR_BUTTON_COLOR_BLACK, NULL },
{ N_("/White"), NULL,
{ N_("/White"), NULL,
gimp_color_button_use_color, GIMP_COLOR_BUTTON_COLOR_WHITE, NULL },
};
@ -118,10 +118,10 @@ gimp_color_button_get_type (void)
};
button_type = g_type_register_static (GIMP_TYPE_BUTTON,
"GimpColorButton",
"GimpColorButton",
&button_info, 0);
}
return button_type;
}
@ -135,10 +135,10 @@ gimp_color_button_class_init (GimpColorButtonClass *klass)
object_class = GTK_OBJECT_CLASS (klass);
widget_class = GTK_WIDGET_CLASS (klass);
button_class = GTK_BUTTON_CLASS (klass);
parent_class = g_type_class_peek_parent (klass);
gimp_color_button_signals[COLOR_CHANGED] =
gimp_color_button_signals[COLOR_CHANGED] =
g_signal_new ("color_changed",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_FIRST,
@ -173,13 +173,13 @@ gimp_color_button_init (GimpColorButton *button)
gtk_container_add (GTK_CONTAINER (button), button->color_area);
gtk_widget_show (button->color_area);
/* right-click opens a popup */
button->item_factory = gtk_item_factory_new (GTK_TYPE_MENU, "<popup>", NULL);
button->item_factory = gtk_item_factory_new (GTK_TYPE_MENU, "<popup>", NULL);
gtk_item_factory_set_translate_func (button->item_factory,
gimp_color_button_menu_translate,
NULL, NULL);
gtk_item_factory_create_items (button->item_factory,
gtk_item_factory_create_items (button->item_factory,
G_N_ELEMENTS (menu_items), menu_items, button);
}
@ -220,13 +220,16 @@ gimp_color_button_button_press (GtkWidget *widget,
gint y;
button = GIMP_COLOR_BUTTON (widget);
if (bevent->button == 3)
{
gdk_window_get_origin (GTK_WIDGET (widget)->window, &x, &y);
x += widget->allocation.x;
y += widget->allocation.y;
gtk_menu_set_screen (GTK_MENU (button->item_factory->widget),
gtk_widget_get_screen (widget));
gtk_item_factory_popup (button->item_factory,
x + bevent->x, y + bevent->y,
bevent->button, bevent->time);
@ -241,7 +244,7 @@ gimp_color_button_button_press (GtkWidget *widget,
static void
gimp_color_button_state_changed (GtkWidget *widget,
GtkStateType prev_state)
{
{
g_return_if_fail (GIMP_IS_COLOR_BUTTON (widget));
if (! GTK_WIDGET_IS_SENSITIVE (widget) && GIMP_COLOR_BUTTON (widget)->dialog)
@ -257,8 +260,8 @@ gimp_color_button_state_changed (GtkWidget *widget,
* @width: Width of the colorpreview in pixels.
* @height: Height of the colorpreview in pixels.
* @color: A pointer to a #GimpRGB color.
* @type:
*
* @type:
*
* Creates a new #GimpColorButton widget.
*
* This returns a button with a preview showing the color.
@ -266,7 +269,7 @@ gimp_color_button_state_changed (GtkWidget *widget,
* If the user changes the color the new color is written into the
* array that was used to pass the initial color and the "color_changed"
* signal is emitted.
*
*
* Returns: Pointer to the new #GimpColorButton widget.
**/
GtkWidget *
@ -277,13 +280,13 @@ gimp_color_button_new (const gchar *title,
GimpColorAreaType type)
{
GimpColorButton *button;
g_return_val_if_fail (color != NULL, NULL);
g_return_val_if_fail (color != NULL, NULL);
button = g_object_new (GIMP_TYPE_COLOR_BUTTON, NULL);
button->title = g_strdup (title);
gtk_widget_set_size_request (GTK_WIDGET (button->color_area), width, height);
gimp_color_area_set_color (GIMP_COLOR_AREA (button->color_area), color);
@ -296,10 +299,10 @@ gimp_color_button_new (const gchar *title,
* gimp_color_button_set_color:
* @button: Pointer to a #GimpColorButton.
* @color: Pointer to the new #GimpRGB color.
*
*
* Sets the @button to the given @color.
**/
void
void
gimp_color_button_set_color (GimpColorButton *button,
const GimpRGB *color)
{
@ -313,7 +316,7 @@ gimp_color_button_set_color (GimpColorButton *button,
* gimp_color_button_get_color:
* @button: Pointer to a #GimpColorButton.
* @color: Pointer to a #GimpRGB struct used to return the color.
*
*
* Retrieves the currently set color from the @button.
**/
void
@ -380,7 +383,7 @@ gimp_color_button_clicked (GtkButton *button)
alpha = TOUINT16 (color.a);
dialog = color_button->dialog;
if (!dialog)
{
dialog = gtk_color_selection_dialog_new (color_button->title);
@ -395,13 +398,13 @@ gimp_color_button_clicked (GtkButton *button)
&color_button->dialog);
g_signal_connect (GTK_COLOR_SELECTION_DIALOG (dialog)->ok_button,
"clicked",
G_CALLBACK (gimp_color_button_dialog_ok),
G_CALLBACK (gimp_color_button_dialog_ok),
color_button);
g_signal_connect (GTK_COLOR_SELECTION_DIALOG (dialog)->cancel_button,
"clicked",
G_CALLBACK (gimp_color_button_dialog_cancel),
G_CALLBACK (gimp_color_button_dialog_cancel),
color_button);
gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE);
gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE);
color_button->dialog = dialog;
}
@ -412,8 +415,8 @@ gimp_color_button_clicked (GtkButton *button)
gtk_widget_show (dialog);
}
static void
gimp_color_button_dialog_ok (GtkWidget *widget,
static void
gimp_color_button_dialog_ok (GtkWidget *widget,
gpointer data)
{
GimpColorButton *button;
@ -435,11 +438,11 @@ gimp_color_button_dialog_ok (GtkWidget *widget,
gimp_color_button_set_color (button, &color);
gtk_widget_hide (button->dialog);
gtk_widget_hide (button->dialog);
}
static void
gimp_color_button_dialog_cancel (GtkWidget *widget,
static void
gimp_color_button_dialog_cancel (GtkWidget *widget,
gpointer data)
{
g_return_if_fail (GIMP_IS_COLOR_BUTTON (data));
@ -448,9 +451,9 @@ gimp_color_button_dialog_cancel (GtkWidget *widget,
}
static void
gimp_color_button_use_color (gpointer callback_data,
guint callback_action,
static void
gimp_color_button_use_color (gpointer callback_data,
guint callback_action,
GtkWidget *widget)
{
GimpRGB color;
@ -494,7 +497,7 @@ gimp_color_button_color_changed (GtkObject *object,
guint16 alpha;
gimp_color_button_get_color (GIMP_COLOR_BUTTON (data), &color);
gdk_color.red = TOUINT16 (color.r);
gdk_color.green = TOUINT16 (color.g);
gdk_color.blue = TOUINT16 (color.b);
@ -508,7 +511,7 @@ gimp_color_button_color_changed (GtkObject *object,
}
static gchar *
gimp_color_button_menu_translate (const gchar *path,
gimp_color_button_menu_translate (const gchar *path,
gpointer func_data)
{
return (gettext (path));

View file

@ -219,6 +219,8 @@ gimp_dialog_new_valist (const gchar *title,
}
else
{
gtk_window_set_screen (GTK_WINDOW (dialog),
gtk_widget_get_screen (parent));
/* TODO */
}
}

View file

@ -55,6 +55,7 @@ struct _QueryBox
static QueryBox * create_query_box (const gchar *title,
GtkWidget *parent,
GimpHelpFunc help_func,
const gchar *help_data,
GCallback response_callback,
@ -93,6 +94,7 @@ static void query_box_cancel_callback (QueryBox *query_box);
*/
static QueryBox *
create_query_box (const gchar *title,
GtkWidget *parent,
GimpHelpFunc help_func,
const gchar *help_data,
GCallback response_callback,
@ -111,13 +113,14 @@ create_query_box (const gchar *title,
/* make sure the object / signal passed are valid
*/
g_return_val_if_fail (parent == NULL || GTK_IS_WIDGET (parent), NULL);
g_return_val_if_fail (object == NULL || G_IS_OBJECT (object), NULL);
g_return_val_if_fail (object == NULL || signal != NULL, NULL);
query_box = g_new0 (QueryBox, 1);
query_box->qbox = gimp_dialog_new (title, "gimp-query-box",
NULL, 0,
parent, 0,
help_func, help_data,
cancel_button, GTK_RESPONSE_CANCEL,
@ -201,6 +204,7 @@ create_query_box (const gchar *title,
/**
* gimp_query_string_box:
* @title: The query box dialog's title.
* @parent: The dialog's parent widget.
* @help_func: The help function to show this dialog's help page.
* @help_data: A string pointing to this dialog's html help page.
* @message: A string which will be shown above the dialog's entry widget.
@ -216,6 +220,7 @@ create_query_box (const gchar *title,
**/
GtkWidget *
gimp_query_string_box (const gchar *title,
GtkWidget *parent,
GimpHelpFunc help_func,
const gchar *help_data,
const gchar *message,
@ -228,7 +233,7 @@ gimp_query_string_box (const gchar *title,
QueryBox *query_box;
GtkWidget *entry;
query_box = create_query_box (title, help_func, help_data,
query_box = create_query_box (title, parent, help_func, help_data,
G_CALLBACK (string_query_box_response),
GTK_STOCK_DIALOG_QUESTION,
message,
@ -254,6 +259,7 @@ gimp_query_string_box (const gchar *title,
/**
* gimp_query_int_box:
* @title: The query box dialog's title.
* @parent: The dialog's parent widget.
* @help_func: The help function to show this dialog's help page.
* @help_data: A string pointing to this dialog's html help page.
* @message: A string which will be shown above the dialog's entry widget.
@ -271,6 +277,7 @@ gimp_query_string_box (const gchar *title,
**/
GtkWidget *
gimp_query_int_box (const gchar *title,
GtkWidget *parent,
GimpHelpFunc help_func,
const gchar *help_data,
const gchar *message,
@ -286,7 +293,7 @@ gimp_query_int_box (const gchar *title,
GtkWidget *spinbutton;
GtkObject *adjustment;
query_box = create_query_box (title, help_func, help_data,
query_box = create_query_box (title, parent, help_func, help_data,
G_CALLBACK (int_query_box_response),
GTK_STOCK_DIALOG_QUESTION,
message,
@ -312,6 +319,7 @@ gimp_query_int_box (const gchar *title,
/**
* gimp_query_double_box:
* @title: The query box dialog's title.
* @parent: The dialog's parent widget.
* @help_func: The help function to show this dialog's help page.
* @help_data: A string pointing to this dialog's html help page.
* @message: A string which will be shown above the dialog's entry widget.
@ -330,6 +338,7 @@ gimp_query_int_box (const gchar *title,
**/
GtkWidget *
gimp_query_double_box (const gchar *title,
GtkWidget *parent,
GimpHelpFunc help_func,
const gchar *help_data,
const gchar *message,
@ -346,7 +355,7 @@ gimp_query_double_box (const gchar *title,
GtkWidget *spinbutton;
GtkObject *adjustment;
query_box = create_query_box (title, help_func, help_data,
query_box = create_query_box (title, parent, help_func, help_data,
G_CALLBACK (double_query_box_response),
GTK_STOCK_DIALOG_QUESTION,
message,
@ -372,6 +381,7 @@ gimp_query_double_box (const gchar *title,
/**
* gimp_query_size_box:
* @title: The query box dialog's title.
* @parent: The dialog's parent widget.
* @help_func: The help function to show this dialog's help page.
* @help_data: A string pointing to this dialog's html help page.
* @message: A string which will be shown above the dialog's entry widget.
@ -397,6 +407,7 @@ gimp_query_double_box (const gchar *title,
**/
GtkWidget *
gimp_query_size_box (const gchar *title,
GtkWidget *parent,
GimpHelpFunc help_func,
const gchar *help_data,
const gchar *message,
@ -415,7 +426,7 @@ gimp_query_size_box (const gchar *title,
QueryBox *query_box;
GtkWidget *sizeentry;
query_box = create_query_box (title, help_func, help_data,
query_box = create_query_box (title, parent, help_func, help_data,
G_CALLBACK (size_query_box_response),
GTK_STOCK_DIALOG_QUESTION,
message,
@ -449,6 +460,7 @@ gimp_query_size_box (const gchar *title,
/**
* gimp_query_boolean_box:
* @title: The query box dialog's title.
* @parent: The dialog's parent widget.
* @help_func: The help function to show this dialog's help page.
* @help_data: A string pointing to this dialog's html help page.
* @stock_id: A stock_id to specify an icon to appear on the left
@ -469,6 +481,7 @@ gimp_query_size_box (const gchar *title,
**/
GtkWidget *
gimp_query_boolean_box (const gchar *title,
GtkWidget *parent,
GimpHelpFunc help_func,
const gchar *help_data,
const gchar *stock_id,
@ -482,7 +495,7 @@ gimp_query_boolean_box (const gchar *title,
{
QueryBox *query_box;
query_box = create_query_box (title, help_func, help_data,
query_box = create_query_box (title, parent, help_func, help_data,
G_CALLBACK (boolean_query_box_response),
stock_id,
message,

View file

@ -57,6 +57,7 @@ typedef void (* GimpQueryBooleanCallback) (GtkWidget *query_box,
/* some simple query dialogs */
GtkWidget * gimp_query_string_box (const gchar *title,
GtkWidget *parent,
GimpHelpFunc help_func,
const gchar *help_data,
const gchar *message,
@ -67,6 +68,7 @@ GtkWidget * gimp_query_string_box (const gchar *title,
gpointer data);
GtkWidget * gimp_query_int_box (const gchar *title,
GtkWidget *parent,
GimpHelpFunc help_func,
const gchar *help_data,
const gchar *message,
@ -79,6 +81,7 @@ GtkWidget * gimp_query_int_box (const gchar *title,
gpointer data);
GtkWidget * gimp_query_double_box (const gchar *title,
GtkWidget *parent,
GimpHelpFunc help_func,
const gchar *help_data,
const gchar *message,
@ -92,6 +95,7 @@ GtkWidget * gimp_query_double_box (const gchar *title,
gpointer data);
GtkWidget * gimp_query_size_box (const gchar *title,
GtkWidget *parent,
GimpHelpFunc help_func,
const gchar *help_data,
const gchar *message,
@ -108,6 +112,7 @@ GtkWidget * gimp_query_size_box (const gchar *title,
gpointer data);
GtkWidget * gimp_query_boolean_box (const gchar *title,
GtkWidget *parent,
GimpHelpFunc help_func,
const gchar *help_data,
const gchar *stock_id,

View file

@ -765,6 +765,7 @@ delete_fractal_callback (GtkWidget *widget,
sel_obj->draw_name);
delete_dialog = gimp_query_boolean_box (_("Delete Fractal"),
gtk_widget_get_toplevel (list),
gimp_standard_help_func,
"filters/fractalexplorer.html",
GTK_STOCK_DIALOG_QUESTION,

View file

@ -3472,6 +3472,7 @@ gfig_response (GtkWidget *widget,
"Continue with exiting?"), count);
dialog = gimp_query_boolean_box (_("Warning"),
widget,
gimp_standard_help_func,
"filters/gfig.html",
GTK_STOCK_DIALOG_WARNING,
@ -4374,6 +4375,7 @@ gfig_delete_gfig_callback (GtkWidget *widget,
sel_obj->draw_name);
delete_dialog = gimp_query_boolean_box (_("Delete Gfig Drawing"),
gtk_widget_get_toplevel (list),
gimp_standard_help_func,
"filters/gfig.html",
FALSE,

View file

@ -2947,11 +2947,12 @@ dlg_selector_list_item_callback (GtkWidget *widget,
*/
static void
dlg_selector_new_callback (GtkWidget *widget,
gpointer data)
gpointer data)
{
GtkWidget *query_box;
query_box = gimp_query_string_box (_("New GFlare"),
gtk_widget_get_toplevel (widget),
gimp_standard_help_func,
"filters/gflare.html",
_("Enter a Name for the New GFlare:"),
@ -3024,6 +3025,7 @@ dlg_selector_copy_callback (GtkWidget *widget,
name = g_strdup_printf ("%s copy", dlg->gflare->name);
query_box = gimp_query_string_box (_("Copy GFlare"),
gtk_widget_get_toplevel (widget),
gimp_standard_help_func,
"filters/gflare.html",
_("Enter a Name for the Copied GFlare:"),
@ -3084,6 +3086,7 @@ dlg_selector_delete_callback (GtkWidget *widget,
dlg->gflare->name);
dialog = gimp_query_boolean_box (_("Delete GFlare"),
dlg->shell,
gimp_standard_help_func,
"filters/gflare.html",
GTK_STOCK_DIALOG_QUESTION,