mirror of
https://gitlab.gnome.org/GNOME/gimp
synced 2024-10-19 14:23:33 +00:00
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:
parent
bcd9794a99
commit
b62f8e9a75
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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 ())
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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 ())
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
...);
|
||||
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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,
|
||||
...);
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue