mirror of
https://gitlab.gnome.org/GNOME/gimp
synced 2024-10-19 06:14:03 +00:00
app/actions/view-actions.c added actions & callbacks to configure the
2004-06-22 Michael Natterer <mitch@gimp.org> * app/actions/view-actions.c * app/actions/view-commands.[ch]: added actions & callbacks to configure the canvas padding color. * app/widgets/gimphelp-ids.h * menus/image-menu.xml.in: added the actions' help IDs and menu entries. * app/display/display-enums.h: added /*< skip >*/'ed enum value GIMP_CANVAS_PADDING_MODE_RESET. * app/display/gimpdisplayshell-appearance.c * app/display/gimpdisplayshell-callbacks.[ch] * app/display/gimpdisplayshell-handlers.c * app/display/gimpdisplayshell.[ch]: removed the canvas padding button and its popup menu (fixes bug #142996). Instead, added a toggle button which allows to zoom the image when the window is resized (as known from sodipodi, except it doesn't work as nice yet :-) improvements to the algorithm are welcome). Cleaned up the GimpDisplayShell struct a bit and renamed some of its members. * libgimpwidgets/gimpstock.[ch] * themes/Default/images/Makefile.am * themes/Default/images/stock-zoom-follow-window-12.png: added new icon for the new display toggle button.
This commit is contained in:
parent
afeaf96dd5
commit
9fe8e84963
28
ChangeLog
28
ChangeLog
|
@ -1,3 +1,31 @@
|
|||
2004-06-22 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/actions/view-actions.c
|
||||
* app/actions/view-commands.[ch]: added actions & callbacks to
|
||||
configure the canvas padding color.
|
||||
|
||||
* app/widgets/gimphelp-ids.h
|
||||
* menus/image-menu.xml.in: added the actions' help IDs and menu entries.
|
||||
|
||||
* app/display/display-enums.h: added /*< skip >*/'ed enum value
|
||||
GIMP_CANVAS_PADDING_MODE_RESET.
|
||||
|
||||
* app/display/gimpdisplayshell-appearance.c
|
||||
* app/display/gimpdisplayshell-callbacks.[ch]
|
||||
* app/display/gimpdisplayshell-handlers.c
|
||||
* app/display/gimpdisplayshell.[ch]: removed the canvas padding
|
||||
button and its popup menu (fixes bug #142996). Instead, added a
|
||||
toggle button which allows to zoom the image when the window is
|
||||
resized (as known from sodipodi, except it doesn't work as nice
|
||||
yet :-) improvements to the algorithm are welcome).
|
||||
Cleaned up the GimpDisplayShell struct a bit and renamed some
|
||||
of its members.
|
||||
|
||||
* libgimpwidgets/gimpstock.[ch]
|
||||
* themes/Default/images/Makefile.am
|
||||
* themes/Default/images/stock-zoom-follow-window-12.png: added new
|
||||
icon for the new display toggle button.
|
||||
|
||||
2004-06-22 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/tools/gimpclonetool.c (gimp_clone_tool_draw): chain up
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "libgimpcolor/gimpcolor.h"
|
||||
#include "libgimpwidgets/gimpwidgets.h"
|
||||
|
||||
#include "actions-types.h"
|
||||
|
@ -32,11 +33,13 @@
|
|||
|
||||
#include "widgets/gimpactiongroup.h"
|
||||
#include "widgets/gimphelp-ids.h"
|
||||
#include "widgets/gimpwidgets-utils.h"
|
||||
|
||||
#include "display/gimpdisplay.h"
|
||||
#include "display/gimpdisplayoptions.h"
|
||||
#include "display/gimpdisplayshell.h"
|
||||
#include "display/gimpdisplayshell-appearance.h"
|
||||
#include "display/gimpdisplayshell-render.h"
|
||||
#include "display/gimpdisplayshell-selection.h"
|
||||
|
||||
#include "view-actions.h"
|
||||
|
@ -47,14 +50,18 @@
|
|||
|
||||
/* local function prototypes */
|
||||
|
||||
static void view_actions_set_zoom (GimpActionGroup *group,
|
||||
GimpDisplayShell *shell);
|
||||
static void view_actions_set_zoom (GimpActionGroup *group,
|
||||
GimpDisplayShell *shell);
|
||||
static void view_actions_check_type_notify (GimpDisplayConfig *config,
|
||||
GParamSpec *pspec,
|
||||
GimpActionGroup *group);
|
||||
|
||||
|
||||
static GimpActionEntry view_actions[] =
|
||||
{
|
||||
{ "view-menu", NULL, N_("_View") },
|
||||
{ "view-zoom-menu", NULL, N_("_Zoom") },
|
||||
{ "view-menu", NULL, N_("_View") },
|
||||
{ "view-zoom-menu", NULL, N_("_Zoom") },
|
||||
{ "view-padding-color-menu", NULL, N_("_Padding Color") },
|
||||
|
||||
{ "view-new", GTK_STOCK_NEW,
|
||||
N_("_New View"), "", NULL,
|
||||
|
@ -240,6 +247,34 @@ static GimpRadioActionEntry view_zoom_actions[] =
|
|||
GIMP_HELP_VIEW_ZOOM_OTHER }
|
||||
};
|
||||
|
||||
static GimpEnumActionEntry view_padding_color_actions[] =
|
||||
{
|
||||
{ "view-padding-color-theme", NULL,
|
||||
N_("From _Theme"), NULL, NULL,
|
||||
GIMP_CANVAS_PADDING_MODE_DEFAULT,
|
||||
GIMP_HELP_VIEW_PADDING_COLOR },
|
||||
|
||||
{ "view-padding-color-light-check", NULL,
|
||||
N_("_Light Check Color"), NULL, NULL,
|
||||
GIMP_CANVAS_PADDING_MODE_LIGHT_CHECK,
|
||||
GIMP_HELP_VIEW_PADDING_COLOR },
|
||||
|
||||
{ "view-padding-color-dark-check", NULL,
|
||||
N_("_Dark Check Color"), NULL, NULL,
|
||||
GIMP_CANVAS_PADDING_MODE_DARK_CHECK,
|
||||
GIMP_HELP_VIEW_PADDING_COLOR },
|
||||
|
||||
{ "view-padding-color-custom", GTK_STOCK_SELECT_COLOR,
|
||||
N_("Select _Custom Color..."), NULL, NULL,
|
||||
GIMP_CANVAS_PADDING_MODE_CUSTOM,
|
||||
GIMP_HELP_VIEW_PADDING_COLOR },
|
||||
|
||||
{ "view-padding-color-prefs", GIMP_STOCK_RESET,
|
||||
N_("As in _Preferences"), NULL, NULL,
|
||||
GIMP_CANVAS_PADDING_MODE_RESET,
|
||||
GIMP_HELP_VIEW_PADDING_COLOR }
|
||||
};
|
||||
|
||||
|
||||
void
|
||||
view_actions_setup (GimpActionGroup *group)
|
||||
|
@ -260,6 +295,11 @@ view_actions_setup (GimpActionGroup *group)
|
|||
10000,
|
||||
G_CALLBACK (view_zoom_cmd_callback));
|
||||
|
||||
gimp_action_group_add_enum_actions (group,
|
||||
view_padding_color_actions,
|
||||
G_N_ELEMENTS (view_padding_color_actions),
|
||||
G_CALLBACK (view_padding_color_cmd_callback));
|
||||
|
||||
/* connect "activate" of view-zoom-other manually so it can be
|
||||
* selected even if it's the active item of the radio group
|
||||
*/
|
||||
|
@ -268,6 +308,12 @@ view_actions_setup (GimpActionGroup *group)
|
|||
g_signal_connect (action, "activate",
|
||||
G_CALLBACK (view_zoom_other_cmd_callback),
|
||||
group->user_data);
|
||||
|
||||
g_signal_connect_object (group->gimp->config, "notify::check-type",
|
||||
G_CALLBACK (view_actions_check_type_notify),
|
||||
group, 0);
|
||||
view_actions_check_type_notify (GIMP_DISPLAY_CONFIG (group->gimp->config),
|
||||
NULL, group);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -312,6 +358,8 @@ view_actions_update (GimpActionGroup *group,
|
|||
gimp_action_group_set_action_label (group, action, (label))
|
||||
#define SET_SENSITIVE(action,condition) \
|
||||
gimp_action_group_set_action_sensitive (group, action, (condition) != 0)
|
||||
#define SET_COLOR(action,color) \
|
||||
gimp_action_group_set_action_color (group, action, color, FALSE)
|
||||
|
||||
SET_SENSITIVE ("view-new", gdisp);
|
||||
SET_SENSITIVE ("view-close", gdisp);
|
||||
|
@ -351,6 +399,23 @@ view_actions_update (GimpActionGroup *group,
|
|||
SET_ACTIVE ("view-show-grid", gdisp && options->show_grid);
|
||||
SET_ACTIVE ("view-snap-to-grid", gdisp && shell->snap_to_grid);
|
||||
|
||||
if (gdisp)
|
||||
{
|
||||
SET_COLOR ("view-padding-color-menu", &options->padding_color);
|
||||
|
||||
if (shell->canvas)
|
||||
{
|
||||
GimpRGB color;
|
||||
|
||||
gtk_widget_ensure_style (shell->canvas);
|
||||
gimp_rgb_set_gdk_color (&color,
|
||||
shell->canvas->style->bg + GTK_STATE_NORMAL);
|
||||
gimp_rgb_set_alpha (&color, GIMP_OPACITY_OPAQUE);
|
||||
|
||||
SET_COLOR ("view-padding-color-theme", &color);
|
||||
}
|
||||
}
|
||||
|
||||
SET_SENSITIVE ("view-show-menubar", gdisp);
|
||||
SET_ACTIVE ("view-show-menubar", gdisp && options->show_menubar);
|
||||
SET_SENSITIVE ("view-show-rulers", gdisp);
|
||||
|
@ -369,6 +434,7 @@ view_actions_update (GimpActionGroup *group,
|
|||
#undef SET_VISIBLE
|
||||
#undef SET_LABEL
|
||||
#undef SET_SENSITIVE
|
||||
#undef SET_COLOR
|
||||
}
|
||||
|
||||
|
||||
|
@ -423,3 +489,27 @@ view_actions_set_zoom (GimpActionGroup *group,
|
|||
/* flag as dirty */
|
||||
shell->other_scale = - fabs (shell->other_scale);
|
||||
}
|
||||
|
||||
static void
|
||||
view_actions_check_type_notify (GimpDisplayConfig *config,
|
||||
GParamSpec *pspec,
|
||||
GimpActionGroup *group)
|
||||
{
|
||||
GimpRGB color;
|
||||
|
||||
gimp_rgba_set_uchar (&color,
|
||||
render_blend_light_check[0],
|
||||
render_blend_light_check[1],
|
||||
render_blend_light_check[2],
|
||||
255);
|
||||
gimp_action_group_set_action_color (group, "view-padding-color-light-check",
|
||||
&color, FALSE);
|
||||
|
||||
gimp_rgba_set_uchar (&color,
|
||||
render_blend_dark_check[0],
|
||||
render_blend_dark_check[1],
|
||||
render_blend_dark_check[2],
|
||||
255);
|
||||
gimp_action_group_set_action_color (group, "view-padding-color-dark-check",
|
||||
&color, FALSE);
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
#include "display/gimpdisplay.h"
|
||||
#include "display/gimpdisplay-foreach.h"
|
||||
#include "display/gimpdisplayoptions.h"
|
||||
#include "display/gimpdisplayshell.h"
|
||||
#include "display/gimpdisplayshell-appearance.h"
|
||||
#include "display/gimpdisplayshell-filter-dialog.h"
|
||||
|
@ -42,6 +43,7 @@
|
|||
#include "widgets/gimpdialogfactory.h"
|
||||
#include "widgets/gimpuimanager.h"
|
||||
|
||||
#include "gui/color-notebook.h"
|
||||
#include "gui/dialogs.h"
|
||||
#include "gui/info-dialog.h"
|
||||
#include "gui/info-window.h"
|
||||
|
@ -49,10 +51,12 @@
|
|||
#include "actions.h"
|
||||
#include "view-commands.h"
|
||||
|
||||
#include "gimp-intl.h"
|
||||
|
||||
#define SET_ACTIVE(manager,group_name,action_name,active) \
|
||||
|
||||
#define SET_ACTIVE(manager,action_name,active) \
|
||||
{ GimpActionGroup *group = \
|
||||
gimp_ui_manager_get_action_group (manager, group_name); \
|
||||
gimp_ui_manager_get_action_group (manager, "view"); \
|
||||
gimp_action_group_set_action_active (group, action_name, active); }
|
||||
|
||||
#define IS_ACTIVE_DISPLAY(gdisp) \
|
||||
|
@ -187,11 +191,11 @@ view_dot_for_dot_cmd_callback (GtkAction *action,
|
|||
{
|
||||
gimp_display_shell_scale_set_dot_for_dot (shell, active);
|
||||
|
||||
SET_ACTIVE (shell->menubar_manager, "view", "view-dot-for-dot",
|
||||
SET_ACTIVE (shell->menubar_manager, "view-dot-for-dot",
|
||||
shell->dot_for_dot);
|
||||
|
||||
if (IS_ACTIVE_DISPLAY (gdisp))
|
||||
SET_ACTIVE (shell->popup_manager, "view", "view-dot-for-dot",
|
||||
SET_ACTIVE (shell->popup_manager, "view-dot-for-dot",
|
||||
shell->dot_for_dot);
|
||||
}
|
||||
}
|
||||
|
@ -422,6 +426,126 @@ view_snap_to_grid_cmd_callback (GtkAction *action,
|
|||
gimp_display_shell_set_snap_to_grid (shell, active);
|
||||
}
|
||||
|
||||
static void
|
||||
view_padding_color_callback (ColorNotebook *cnb,
|
||||
const GimpRGB *color,
|
||||
ColorNotebookState state,
|
||||
gpointer data)
|
||||
{
|
||||
GimpDisplayShell *shell = GIMP_DISPLAY_SHELL (data);
|
||||
GimpDisplayOptions *options;
|
||||
gboolean fullscreen;
|
||||
|
||||
fullscreen = gimp_display_shell_get_fullscreen (shell);
|
||||
|
||||
if (fullscreen)
|
||||
options = shell->fullscreen_options;
|
||||
else
|
||||
options = shell->options;
|
||||
|
||||
switch (state)
|
||||
{
|
||||
case COLOR_NOTEBOOK_OK:
|
||||
options->padding_mode_set = TRUE;
|
||||
|
||||
gimp_display_shell_set_padding (shell, GIMP_CANVAS_PADDING_MODE_CUSTOM,
|
||||
color);
|
||||
/* fallthru */
|
||||
|
||||
case COLOR_NOTEBOOK_CANCEL:
|
||||
g_object_set_data (G_OBJECT (shell), "padding-color-notebook", NULL);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
view_padding_color_cmd_callback (GtkAction *action,
|
||||
gint value,
|
||||
gpointer data)
|
||||
{
|
||||
GimpDisplay *gdisp;
|
||||
GimpDisplayShell *shell;
|
||||
GimpDisplayOptions *options;
|
||||
gboolean fullscreen;
|
||||
return_if_no_display (gdisp, data);
|
||||
|
||||
shell = GIMP_DISPLAY_SHELL (gdisp->shell);
|
||||
|
||||
fullscreen = gimp_display_shell_get_fullscreen (shell);
|
||||
|
||||
if (fullscreen)
|
||||
options = shell->fullscreen_options;
|
||||
else
|
||||
options = shell->options;
|
||||
|
||||
switch ((GimpCanvasPaddingMode) value)
|
||||
{
|
||||
case GIMP_CANVAS_PADDING_MODE_DEFAULT:
|
||||
case GIMP_CANVAS_PADDING_MODE_LIGHT_CHECK:
|
||||
case GIMP_CANVAS_PADDING_MODE_DARK_CHECK:
|
||||
g_object_set_data (G_OBJECT (shell), "padding-color-notebook", NULL);
|
||||
|
||||
options->padding_mode_set = TRUE;
|
||||
|
||||
gimp_display_shell_set_padding (shell, (GimpCanvasPaddingMode) value,
|
||||
&options->padding_color);
|
||||
break;
|
||||
|
||||
case GIMP_CANVAS_PADDING_MODE_CUSTOM:
|
||||
{
|
||||
ColorNotebook *color_notebook;
|
||||
|
||||
color_notebook = g_object_get_data (G_OBJECT (shell),
|
||||
"padding-color-notebook");
|
||||
|
||||
if (! color_notebook)
|
||||
{
|
||||
color_notebook = color_notebook_new (GIMP_VIEWABLE (gdisp->gimage),
|
||||
_("Set Canvas Padding Color"),
|
||||
GTK_STOCK_SELECT_COLOR,
|
||||
NULL,
|
||||
gdisp->shell,
|
||||
NULL, NULL,
|
||||
&options->padding_color,
|
||||
view_padding_color_callback,
|
||||
shell,
|
||||
FALSE, FALSE);
|
||||
g_object_set_data_full (G_OBJECT (shell), "padding-color-notebook",
|
||||
color_notebook,
|
||||
(GDestroyNotify) color_notebook_free);
|
||||
}
|
||||
|
||||
color_notebook_show (color_notebook);
|
||||
}
|
||||
break;
|
||||
|
||||
case GIMP_CANVAS_PADDING_MODE_RESET:
|
||||
g_object_set_data (G_OBJECT (shell), "padding-color-notebook", NULL);
|
||||
|
||||
{
|
||||
GimpDisplayConfig *config;
|
||||
GimpDisplayOptions *default_options;
|
||||
|
||||
config = GIMP_DISPLAY_CONFIG (gdisp->gimage->gimp->config);
|
||||
|
||||
options->padding_mode_set = FALSE;
|
||||
|
||||
if (fullscreen)
|
||||
default_options = config->default_fullscreen_view;
|
||||
else
|
||||
default_options = config->default_view;
|
||||
|
||||
gimp_display_shell_set_padding (shell,
|
||||
default_options->padding_mode,
|
||||
&default_options->padding_color);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
view_shrink_wrap_cmd_callback (GtkAction *action,
|
||||
gpointer data)
|
||||
|
@ -452,11 +576,11 @@ view_fullscreen_cmd_callback (GtkAction *action,
|
|||
|
||||
if (active != fullscreen)
|
||||
{
|
||||
SET_ACTIVE (shell->menubar_manager, "view", "view-fullscreen",
|
||||
SET_ACTIVE (shell->menubar_manager, "view-fullscreen",
|
||||
fullscreen);
|
||||
|
||||
if (IS_ACTIVE_DISPLAY (gdisp))
|
||||
SET_ACTIVE (shell->popup_manager, "view", "view-fullscreen",
|
||||
SET_ACTIVE (shell->popup_manager, "view-fullscreen",
|
||||
fullscreen);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -66,6 +66,9 @@ void view_toggle_grid_cmd_callback (GtkAction *action,
|
|||
gpointer data);
|
||||
void view_snap_to_grid_cmd_callback (GtkAction *action,
|
||||
gpointer data);
|
||||
void view_padding_color_cmd_callback (GtkAction *action,
|
||||
gint value,
|
||||
gpointer data);
|
||||
|
||||
void view_shrink_wrap_cmd_callback (GtkAction *action,
|
||||
gpointer data);
|
||||
|
|
|
@ -41,7 +41,8 @@ typedef enum
|
|||
GIMP_CANVAS_PADDING_MODE_DEFAULT, /*< desc="From Theme" >*/
|
||||
GIMP_CANVAS_PADDING_MODE_LIGHT_CHECK, /*< desc="Light Check Color" >*/
|
||||
GIMP_CANVAS_PADDING_MODE_DARK_CHECK, /*< desc="Dark Check Color" >*/
|
||||
GIMP_CANVAS_PADDING_MODE_CUSTOM /*< desc="Custom Color" >*/
|
||||
GIMP_CANVAS_PADDING_MODE_CUSTOM, /*< desc="Custom Color" >*/
|
||||
GIMP_CANVAS_PADDING_MODE_RESET = -1 /*< skip >*/
|
||||
} GimpCanvasPaddingMode;
|
||||
|
||||
|
||||
|
|
|
@ -47,11 +47,16 @@
|
|||
(gimp_display_shell_get_fullscreen (shell) ? \
|
||||
shell->fullscreen_options : shell->options)
|
||||
|
||||
#define SET_ACTIVE(manager,group_name,action_name,active) \
|
||||
#define SET_ACTIVE(manager,action_name,active) \
|
||||
{ GimpActionGroup *group = \
|
||||
gimp_ui_manager_get_action_group (manager, group_name); \
|
||||
gimp_ui_manager_get_action_group (manager, "view"); \
|
||||
gimp_action_group_set_action_active (group, action_name, active); }
|
||||
|
||||
#define SET_COLOR(manager,action_name,color) \
|
||||
{ GimpActionGroup *group = \
|
||||
gimp_ui_manager_get_action_group (manager, "view"); \
|
||||
gimp_action_group_set_action_color (group, action_name, color, FALSE); }
|
||||
|
||||
#define IS_ACTIVE_DISPLAY(shell) \
|
||||
((shell)->gdisp == \
|
||||
gimp_context_get_display (gimp_get_user_context \
|
||||
|
@ -94,7 +99,7 @@ gimp_display_shell_set_show_menubar (GimpDisplayShell *shell,
|
|||
|
||||
g_object_set (options, "show-menubar", show, NULL);
|
||||
|
||||
vbox = GTK_CONTAINER (shell->qmask->parent->parent);
|
||||
vbox = GTK_CONTAINER (shell->qmask_button->parent->parent);
|
||||
|
||||
if (show)
|
||||
gtk_widget_show (shell->menubar);
|
||||
|
@ -106,10 +111,10 @@ gimp_display_shell_set_show_menubar (GimpDisplayShell *shell,
|
|||
else
|
||||
gtk_container_set_border_width (vbox, 0);
|
||||
|
||||
SET_ACTIVE (shell->menubar_manager, "view", "view-show-menubar", show);
|
||||
SET_ACTIVE (shell->menubar_manager, "view-show-menubar", show);
|
||||
|
||||
if (IS_ACTIVE_DISPLAY (shell))
|
||||
SET_ACTIVE (shell->popup_manager, "view", "view-show-menubar", show);
|
||||
SET_ACTIVE (shell->popup_manager, "view-show-menubar", show);
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
@ -137,7 +142,7 @@ gimp_display_shell_set_show_rulers (GimpDisplayShell *shell,
|
|||
|
||||
if (show)
|
||||
{
|
||||
gtk_widget_show (shell->origin);
|
||||
gtk_widget_show (shell->origin_button);
|
||||
gtk_widget_show (shell->hrule);
|
||||
gtk_widget_show (shell->vrule);
|
||||
|
||||
|
@ -146,7 +151,7 @@ gimp_display_shell_set_show_rulers (GimpDisplayShell *shell,
|
|||
}
|
||||
else
|
||||
{
|
||||
gtk_widget_hide (shell->origin);
|
||||
gtk_widget_hide (shell->origin_button);
|
||||
gtk_widget_hide (shell->hrule);
|
||||
gtk_widget_hide (shell->vrule);
|
||||
|
||||
|
@ -154,10 +159,10 @@ gimp_display_shell_set_show_rulers (GimpDisplayShell *shell,
|
|||
gtk_table_set_row_spacing (table, 0, 0);
|
||||
}
|
||||
|
||||
SET_ACTIVE (shell->menubar_manager, "view", "view-show-rulers", show);
|
||||
SET_ACTIVE (shell->menubar_manager, "view-show-rulers", show);
|
||||
|
||||
if (IS_ACTIVE_DISPLAY (shell))
|
||||
SET_ACTIVE (shell->popup_manager, "view", "view-show-rulers", show);
|
||||
SET_ACTIVE (shell->popup_manager, "view-show-rulers", show);
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
@ -190,8 +195,8 @@ gimp_display_shell_set_show_scrollbars (GimpDisplayShell *shell,
|
|||
gtk_widget_show (shell->nav_ebox);
|
||||
gtk_widget_show (shell->hsb);
|
||||
gtk_widget_show (shell->vsb);
|
||||
gtk_widget_show (shell->qmask);
|
||||
gtk_widget_show (shell->padding_button);
|
||||
gtk_widget_show (shell->qmask_button);
|
||||
gtk_widget_show (shell->zoom_button);
|
||||
|
||||
gtk_box_set_spacing (hbox, 1);
|
||||
gtk_box_set_spacing (vbox, 1);
|
||||
|
@ -201,17 +206,17 @@ gimp_display_shell_set_show_scrollbars (GimpDisplayShell *shell,
|
|||
gtk_widget_hide (shell->nav_ebox);
|
||||
gtk_widget_hide (shell->hsb);
|
||||
gtk_widget_hide (shell->vsb);
|
||||
gtk_widget_hide (shell->qmask);
|
||||
gtk_widget_hide (shell->padding_button);
|
||||
gtk_widget_hide (shell->qmask_button);
|
||||
gtk_widget_hide (shell->zoom_button);
|
||||
|
||||
gtk_box_set_spacing (hbox, 0);
|
||||
gtk_box_set_spacing (vbox, 0);
|
||||
}
|
||||
|
||||
SET_ACTIVE (shell->menubar_manager, "view", "view-show-scrollbars", show);
|
||||
SET_ACTIVE (shell->menubar_manager, "view-show-scrollbars", show);
|
||||
|
||||
if (IS_ACTIVE_DISPLAY (shell))
|
||||
SET_ACTIVE (shell->popup_manager, "view", "view-show-scrollbars", show);
|
||||
SET_ACTIVE (shell->popup_manager, "view-show-scrollbars", show);
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
@ -235,7 +240,7 @@ gimp_display_shell_set_show_statusbar (GimpDisplayShell *shell,
|
|||
|
||||
g_object_set (options, "show-statusbar", show, NULL);
|
||||
|
||||
vbox = GTK_CONTAINER (shell->qmask->parent->parent);
|
||||
vbox = GTK_CONTAINER (shell->qmask_button->parent->parent);
|
||||
|
||||
if (show)
|
||||
gtk_widget_show (shell->statusbar);
|
||||
|
@ -247,10 +252,10 @@ gimp_display_shell_set_show_statusbar (GimpDisplayShell *shell,
|
|||
else
|
||||
gtk_container_set_border_width (vbox, 0);
|
||||
|
||||
SET_ACTIVE (shell->menubar_manager, "view", "view-show-statusbar", show);
|
||||
SET_ACTIVE (shell->menubar_manager, "view-show-statusbar", show);
|
||||
|
||||
if (IS_ACTIVE_DISPLAY (shell))
|
||||
SET_ACTIVE (shell->popup_manager, "view", "view-show-statusbar", show);
|
||||
SET_ACTIVE (shell->popup_manager, "view-show-statusbar", show);
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
@ -276,10 +281,10 @@ gimp_display_shell_set_show_selection (GimpDisplayShell *shell,
|
|||
if (shell->select)
|
||||
gimp_display_shell_selection_set_hidden (shell->select, ! show);
|
||||
|
||||
SET_ACTIVE (shell->menubar_manager, "view", "view-show-selection", show);
|
||||
SET_ACTIVE (shell->menubar_manager, "view-show-selection", show);
|
||||
|
||||
if (IS_ACTIVE_DISPLAY (shell))
|
||||
SET_ACTIVE (shell->popup_manager, "view", "view-show-selection", show);
|
||||
SET_ACTIVE (shell->popup_manager, "view-show-selection", show);
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
@ -305,10 +310,10 @@ gimp_display_shell_set_show_layer (GimpDisplayShell *shell,
|
|||
if (shell->select)
|
||||
gimp_display_shell_selection_layer_set_hidden (shell->select, ! show);
|
||||
|
||||
SET_ACTIVE (shell->menubar_manager, "view", "view-show-layer-boundary", show);
|
||||
SET_ACTIVE (shell->menubar_manager, "view-show-layer-boundary", show);
|
||||
|
||||
if (IS_ACTIVE_DISPLAY (shell))
|
||||
SET_ACTIVE (shell->popup_manager, "view", "view-show-layer-boundary", show);
|
||||
SET_ACTIVE (shell->popup_manager, "view-show-layer-boundary", show);
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
@ -351,10 +356,10 @@ gimp_display_shell_set_show_grid (GimpDisplayShell *shell,
|
|||
if (shell->gdisp->gimage->grid)
|
||||
gimp_display_shell_expose_full (shell);
|
||||
|
||||
SET_ACTIVE (shell->menubar_manager, "view", "view-show-grid", show);
|
||||
SET_ACTIVE (shell->menubar_manager, "view-show-grid", show);
|
||||
|
||||
if (IS_ACTIVE_DISPLAY (shell))
|
||||
SET_ACTIVE (shell->popup_manager, "view", "view-show-grid", show);
|
||||
SET_ACTIVE (shell->popup_manager, "view-show-grid", show);
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
@ -375,10 +380,10 @@ gimp_display_shell_set_snap_to_grid (GimpDisplayShell *shell,
|
|||
{
|
||||
shell->snap_to_grid = snap ? TRUE : FALSE;
|
||||
|
||||
SET_ACTIVE (shell->menubar_manager, "view", "view-snap-to-grid", snap);
|
||||
SET_ACTIVE (shell->menubar_manager, "view-snap-to-grid", snap);
|
||||
|
||||
if (IS_ACTIVE_DISPLAY (shell))
|
||||
SET_ACTIVE (shell->popup_manager, "view", "view-snap-to-grid", snap);
|
||||
SET_ACTIVE (shell->popup_manager, "view-snap-to-grid", snap);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -405,10 +410,10 @@ gimp_display_shell_set_show_guides (GimpDisplayShell *shell,
|
|||
if (shell->gdisp->gimage->guides)
|
||||
gimp_display_shell_expose_full (shell);
|
||||
|
||||
SET_ACTIVE (shell->menubar_manager, "view", "view-show-guides", show);
|
||||
SET_ACTIVE (shell->menubar_manager, "view-show-guides", show);
|
||||
|
||||
if (IS_ACTIVE_DISPLAY (shell))
|
||||
SET_ACTIVE (shell->popup_manager, "view", "view-show-guides", show);
|
||||
SET_ACTIVE (shell->popup_manager, "view-show-guides", show);
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
@ -429,10 +434,10 @@ gimp_display_shell_set_snap_to_guides (GimpDisplayShell *shell,
|
|||
{
|
||||
shell->snap_to_guides = snap ? TRUE : FALSE;
|
||||
|
||||
SET_ACTIVE (shell->menubar_manager, "view", "view-snap-to-guides", snap);
|
||||
SET_ACTIVE (shell->menubar_manager, "view-snap-to-guides", snap);
|
||||
|
||||
if (IS_ACTIVE_DISPLAY (shell))
|
||||
SET_ACTIVE (shell->popup_manager, "view", "view-snap-to-guides", snap);
|
||||
SET_ACTIVE (shell->popup_manager, "view-snap-to-guides", snap);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -484,6 +489,7 @@ gimp_display_shell_set_padding (GimpDisplayShell *shell,
|
|||
break;
|
||||
|
||||
case GIMP_CANVAS_PADDING_MODE_CUSTOM:
|
||||
case GIMP_CANVAS_PADDING_MODE_RESET:
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -494,19 +500,12 @@ gimp_display_shell_set_padding (GimpDisplayShell *shell,
|
|||
|
||||
gimp_canvas_set_bg_color (GIMP_CANVAS (shell->canvas), &color);
|
||||
|
||||
if (shell->padding_button)
|
||||
{
|
||||
g_signal_handlers_block_by_func (shell->padding_button,
|
||||
gimp_display_shell_color_button_changed,
|
||||
shell);
|
||||
SET_COLOR (shell->menubar_manager, "view-padding-color-menu",
|
||||
&options->padding_color);
|
||||
|
||||
gimp_color_button_set_color (GIMP_COLOR_BUTTON (shell->padding_button),
|
||||
&color);
|
||||
|
||||
g_signal_handlers_unblock_by_func (shell->padding_button,
|
||||
gimp_display_shell_color_button_changed,
|
||||
shell);
|
||||
}
|
||||
if (IS_ACTIVE_DISPLAY (shell))
|
||||
SET_COLOR (shell->popup_manager, "view-padding-color-menu",
|
||||
&options->padding_color);
|
||||
|
||||
gimp_display_shell_expose_full (shell);
|
||||
}
|
||||
|
|
|
@ -327,6 +327,34 @@ gimp_display_shell_canvas_configure (GtkWidget *widget,
|
|||
if ((shell->disp_width != shell->canvas->allocation.width) ||
|
||||
(shell->disp_height != shell->canvas->allocation.height))
|
||||
{
|
||||
if (shell->zoom_on_resize &&
|
||||
shell->disp_width > 64 &&
|
||||
shell->disp_height > 64 &&
|
||||
shell->canvas->allocation.width > 64 &&
|
||||
shell->canvas->allocation.height > 64)
|
||||
{
|
||||
gdouble scale;
|
||||
gint offset_x;
|
||||
gint offset_y;
|
||||
|
||||
scale = shell->scale;
|
||||
|
||||
/* multiply the zoom_factor with the ratio of the new and
|
||||
* old canvas diagonals
|
||||
*/
|
||||
scale *= (sqrt (SQR (shell->canvas->allocation.width) +
|
||||
SQR (shell->canvas->allocation.height)) /
|
||||
sqrt (SQR (shell->disp_width) +
|
||||
SQR (shell->disp_height)));
|
||||
|
||||
offset_x = UNSCALEX (shell, shell->offset_x);
|
||||
offset_y = UNSCALEX (shell, shell->offset_y);
|
||||
|
||||
shell->scale = scale;
|
||||
shell->offset_x = SCALEX (shell, offset_x);
|
||||
shell->offset_y = SCALEY (shell, offset_y);
|
||||
}
|
||||
|
||||
shell->disp_width = shell->canvas->allocation.width;
|
||||
shell->disp_height = shell->canvas->allocation.height;
|
||||
|
||||
|
@ -438,7 +466,7 @@ gimp_display_shell_popup_menu (GtkWidget *widget)
|
|||
gimp_ui_manager_ui_popup (shell->popup_manager, "/dummy-menubar/image-popup",
|
||||
GTK_WIDGET (shell),
|
||||
gimp_display_shell_origin_menu_position,
|
||||
shell->origin,
|
||||
shell->origin_button,
|
||||
NULL, NULL);
|
||||
|
||||
return TRUE;
|
||||
|
@ -1419,115 +1447,6 @@ gimp_display_shell_origin_button_press (GtkWidget *widget,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
gboolean
|
||||
gimp_display_shell_color_button_press (GtkWidget *widget,
|
||||
GdkEventButton *bevent,
|
||||
GimpDisplayShell *shell)
|
||||
{
|
||||
if (bevent->button == 3)
|
||||
{
|
||||
GimpColorButton *color_button;
|
||||
GtkItemFactory *item_factory;
|
||||
guchar r, g, b;
|
||||
GimpRGB color;
|
||||
|
||||
color_button = GIMP_COLOR_BUTTON (widget);
|
||||
item_factory = GTK_ITEM_FACTORY (color_button->popup_menu);
|
||||
|
||||
r = shell->canvas->style->bg[GTK_STATE_NORMAL].red >> 8;
|
||||
g = shell->canvas->style->bg[GTK_STATE_NORMAL].green >> 8;
|
||||
b = shell->canvas->style->bg[GTK_STATE_NORMAL].blue >> 8;
|
||||
|
||||
gimp_rgba_set_uchar (&color, r, g, b, 255);
|
||||
gimp_item_factory_set_color (item_factory,
|
||||
"/From Theme", &color, FALSE);
|
||||
|
||||
gimp_rgba_set_uchar (&color,
|
||||
render_blend_light_check[0],
|
||||
render_blend_light_check[1],
|
||||
render_blend_light_check[2],
|
||||
255);
|
||||
gimp_item_factory_set_color (item_factory,
|
||||
"/Light Check Color", &color, FALSE);
|
||||
|
||||
gimp_rgba_set_uchar (&color,
|
||||
render_blend_dark_check[0],
|
||||
render_blend_dark_check[1],
|
||||
render_blend_dark_check[2],
|
||||
255);
|
||||
gimp_item_factory_set_color (item_factory,
|
||||
"/Dark Check Color", &color, FALSE);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void
|
||||
gimp_display_shell_color_button_changed (GtkWidget *widget,
|
||||
GimpDisplayShell *shell)
|
||||
{
|
||||
GimpRGB color;
|
||||
|
||||
if (gimp_display_shell_get_fullscreen (shell))
|
||||
shell->fullscreen_options->padding_mode_set = TRUE;
|
||||
else
|
||||
shell->options->padding_mode_set = TRUE;
|
||||
|
||||
gimp_color_button_get_color (GIMP_COLOR_BUTTON (widget), &color);
|
||||
|
||||
gimp_display_shell_set_padding (shell,
|
||||
GIMP_CANVAS_PADDING_MODE_CUSTOM, &color);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_display_shell_color_button_menu_callback (gpointer callback_data,
|
||||
guint callback_action,
|
||||
GtkWidget *widget)
|
||||
{
|
||||
GimpDisplayOptions *options;
|
||||
GimpDisplayShell *shell;
|
||||
gboolean fullscreen;
|
||||
|
||||
shell = GIMP_DISPLAY_SHELL (callback_data);
|
||||
|
||||
fullscreen = gimp_display_shell_get_fullscreen (shell);
|
||||
|
||||
if (fullscreen)
|
||||
options = shell->fullscreen_options;
|
||||
else
|
||||
options = shell->options;
|
||||
|
||||
if (callback_action == GIMP_CANVAS_PADDING_MODE_CUSTOM)
|
||||
{
|
||||
gtk_button_clicked (GTK_BUTTON (shell->padding_button));
|
||||
}
|
||||
else if (callback_action == 0xffff)
|
||||
{
|
||||
GimpDisplayConfig *config;
|
||||
GimpDisplayOptions *default_options;
|
||||
|
||||
config = GIMP_DISPLAY_CONFIG (shell->gdisp->gimage->gimp->config);
|
||||
|
||||
options->padding_mode_set = FALSE;
|
||||
|
||||
if (fullscreen)
|
||||
default_options = config->default_fullscreen_view;
|
||||
else
|
||||
default_options = config->default_view;
|
||||
|
||||
gimp_display_shell_set_padding (shell,
|
||||
default_options->padding_mode,
|
||||
&default_options->padding_color);
|
||||
}
|
||||
else
|
||||
{
|
||||
options->padding_mode_set = TRUE;
|
||||
|
||||
gimp_display_shell_set_padding (shell, callback_action,
|
||||
&options->padding_color);
|
||||
}
|
||||
}
|
||||
|
||||
gboolean
|
||||
gimp_display_shell_qmask_button_press (GtkWidget *widget,
|
||||
GdkEventButton *bevent,
|
||||
|
|
|
@ -61,15 +61,6 @@ gboolean gimp_display_shell_origin_button_press (GtkWidget *widget,
|
|||
GdkEventButton *bevent,
|
||||
GimpDisplayShell *shell);
|
||||
|
||||
gboolean gimp_display_shell_color_button_press (GtkWidget *widget,
|
||||
GdkEventButton *bevent,
|
||||
GimpDisplayShell *shell);
|
||||
void gimp_display_shell_color_button_changed (GtkWidget *widget,
|
||||
GimpDisplayShell *shell);
|
||||
void gimp_display_shell_color_button_menu_callback (gpointer data,
|
||||
guint action,
|
||||
GtkWidget *widget);
|
||||
|
||||
gboolean gimp_display_shell_qmask_button_press (GtkWidget *widget,
|
||||
GdkEventButton *bevent,
|
||||
GimpDisplayShell *shell);
|
||||
|
|
|
@ -408,13 +408,13 @@ gimp_display_shell_qmask_changed_handler (GimpImage *gimage,
|
|||
{
|
||||
GtkImage *image;
|
||||
|
||||
image = GTK_IMAGE (GTK_BIN (shell->qmask)->child);
|
||||
image = GTK_IMAGE (GTK_BIN (shell->qmask_button)->child);
|
||||
|
||||
g_signal_handlers_block_by_func (shell->qmask,
|
||||
g_signal_handlers_block_by_func (shell->qmask_button,
|
||||
gimp_display_shell_qmask_toggled,
|
||||
shell);
|
||||
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (shell->qmask),
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (shell->qmask_button),
|
||||
shell->gdisp->gimage->qmask_state);
|
||||
|
||||
if (shell->gdisp->gimage->qmask_state)
|
||||
|
@ -422,7 +422,7 @@ gimp_display_shell_qmask_changed_handler (GimpImage *gimage,
|
|||
else
|
||||
gtk_image_set_from_stock (image, GIMP_STOCK_QMASK_OFF, GTK_ICON_SIZE_MENU);
|
||||
|
||||
g_signal_handlers_unblock_by_func (shell->qmask,
|
||||
g_signal_handlers_unblock_by_func (shell->qmask_button,
|
||||
gimp_display_shell_qmask_toggled,
|
||||
shell);
|
||||
}
|
||||
|
|
|
@ -55,7 +55,6 @@
|
|||
#include "vectors/gimpvectors.h"
|
||||
#include "vectors/gimpstroke.h"
|
||||
|
||||
#include "widgets/gimpcolorpanel.h"
|
||||
#include "widgets/gimpdnd.h"
|
||||
#include "widgets/gimphelp-ids.h"
|
||||
#include "widgets/gimpmenufactory.h"
|
||||
|
@ -147,14 +146,14 @@ gimp_display_shell_get_type (void)
|
|||
static const GTypeInfo shell_info =
|
||||
{
|
||||
sizeof (GimpDisplayShellClass),
|
||||
(GBaseInitFunc) NULL,
|
||||
(GBaseFinalizeFunc) NULL,
|
||||
(GClassInitFunc) gimp_display_shell_class_init,
|
||||
NULL, /* class_finalize */
|
||||
NULL, /* class_data */
|
||||
sizeof (GimpDisplayShell),
|
||||
0, /* n_preallocs */
|
||||
(GInstanceInitFunc) gimp_display_shell_init,
|
||||
(GBaseInitFunc) NULL,
|
||||
(GBaseFinalizeFunc) NULL,
|
||||
(GClassInitFunc) gimp_display_shell_class_init,
|
||||
NULL, /* class_finalize */
|
||||
NULL, /* class_data */
|
||||
sizeof (GimpDisplayShell),
|
||||
0, /* n_preallocs */
|
||||
(GInstanceInitFunc) gimp_display_shell_init,
|
||||
};
|
||||
|
||||
shell_type = g_type_register_static (GTK_TYPE_WINDOW,
|
||||
|
@ -258,25 +257,31 @@ gimp_display_shell_init (GimpDisplayShell *shell)
|
|||
|
||||
shell->select = NULL;
|
||||
|
||||
shell->hsbdata = NULL;
|
||||
shell->vsbdata = NULL;
|
||||
|
||||
shell->canvas = NULL;
|
||||
shell->grid_gc = NULL;
|
||||
|
||||
shell->hsbdata = NULL;
|
||||
shell->vsbdata = NULL;
|
||||
shell->hsb = NULL;
|
||||
shell->vsb = NULL;
|
||||
shell->qmask = NULL;
|
||||
|
||||
shell->hrule = NULL;
|
||||
shell->vrule = NULL;
|
||||
shell->origin = NULL;
|
||||
|
||||
shell->origin_button = NULL;
|
||||
shell->qmask_button = NULL;
|
||||
shell->zoom_button = NULL;
|
||||
shell->nav_ebox = NULL;
|
||||
|
||||
shell->menubar = NULL;
|
||||
shell->statusbar = NULL;
|
||||
|
||||
shell->render_buf = g_malloc (GIMP_DISPLAY_SHELL_RENDER_BUF_WIDTH *
|
||||
GIMP_DISPLAY_SHELL_RENDER_BUF_HEIGHT *
|
||||
3);
|
||||
|
||||
shell->title_idle_id = 0;
|
||||
|
||||
shell->icon_size = 32;
|
||||
shell->icon_idle_id = 0;
|
||||
|
||||
|
@ -293,11 +298,6 @@ gimp_display_shell_init (GimpDisplayShell *shell)
|
|||
shell->cursor_x = 0;
|
||||
shell->cursor_y = 0;
|
||||
|
||||
shell->show_transform_preview = FALSE;
|
||||
|
||||
shell->padding_button = NULL;
|
||||
shell->nav_ebox = NULL;
|
||||
|
||||
shell->warning_dialog = NULL;
|
||||
shell->info_dialog = NULL;
|
||||
shell->scale_dialog = NULL;
|
||||
|
@ -308,14 +308,14 @@ gimp_display_shell_init (GimpDisplayShell *shell)
|
|||
shell->filter_idle_id = 0;
|
||||
shell->filters_dialog = NULL;
|
||||
|
||||
shell->window_state = 0;
|
||||
|
||||
shell->paused_count = 0;
|
||||
|
||||
shell->options =
|
||||
g_object_new (GIMP_TYPE_DISPLAY_OPTIONS, NULL);
|
||||
shell->fullscreen_options =
|
||||
g_object_new (GIMP_TYPE_DISPLAY_OPTIONS_FULLSCREEN, NULL);
|
||||
shell->window_state = 0;
|
||||
shell->zoom_on_resize = FALSE;
|
||||
shell->show_transform_preview = FALSE;
|
||||
|
||||
shell->options = g_object_new (GIMP_TYPE_DISPLAY_OPTIONS, NULL);
|
||||
shell->fullscreen_options = g_object_new (GIMP_TYPE_DISPLAY_OPTIONS_FULLSCREEN, NULL);
|
||||
|
||||
shell->space_pressed = FALSE;
|
||||
shell->space_release_pending = FALSE;
|
||||
|
@ -704,7 +704,7 @@ gimp_display_shell_new (GimpDisplay *gdisp,
|
|||
* | | |
|
||||
* | | +-- right_vbox
|
||||
* | | |
|
||||
* | | +-- padding_button
|
||||
* | | +-- zoom_on_resize_button
|
||||
* | | +-- vscrollbar
|
||||
* | |
|
||||
* | +-- lower_hbox
|
||||
|
@ -795,18 +795,18 @@ gimp_display_shell_new (GimpDisplay *gdisp,
|
|||
/* create the contents of the inner_table ********************************/
|
||||
|
||||
/* the menu popup button */
|
||||
shell->origin = gtk_button_new ();
|
||||
GTK_WIDGET_UNSET_FLAGS (shell->origin, GTK_CAN_FOCUS);
|
||||
shell->origin_button = gtk_button_new ();
|
||||
GTK_WIDGET_UNSET_FLAGS (shell->origin_button, GTK_CAN_FOCUS);
|
||||
|
||||
image = gtk_image_new_from_stock (GIMP_STOCK_MENU_RIGHT, GTK_ICON_SIZE_MENU);
|
||||
gtk_container_add (GTK_CONTAINER (shell->origin), image);
|
||||
gtk_container_add (GTK_CONTAINER (shell->origin_button), image);
|
||||
gtk_widget_show (image);
|
||||
|
||||
g_signal_connect (shell->origin, "button_press_event",
|
||||
g_signal_connect (shell->origin_button, "button_press_event",
|
||||
G_CALLBACK (gimp_display_shell_origin_button_press),
|
||||
shell);
|
||||
|
||||
gimp_help_set_help_data (shell->origin, NULL,
|
||||
gimp_help_set_help_data (shell->origin_button, NULL,
|
||||
GIMP_HELP_IMAGE_WINDOW_ORIGIN_BUTTON);
|
||||
|
||||
shell->canvas = gimp_canvas_new ();
|
||||
|
@ -867,80 +867,44 @@ gimp_display_shell_new (GimpDisplay *gdisp,
|
|||
shell);
|
||||
|
||||
/* create the contents of the right_vbox *********************************/
|
||||
shell->padding_button = gimp_color_panel_new (_("Set Canvas Padding Color"),
|
||||
&shell->options->padding_color,
|
||||
GIMP_COLOR_AREA_FLAT,
|
||||
15, 15);
|
||||
GTK_WIDGET_UNSET_FLAGS (shell->padding_button, GTK_CAN_FOCUS);
|
||||
gimp_color_panel_set_context (GIMP_COLOR_PANEL (shell->padding_button),
|
||||
gimp_get_user_context (gdisp->gimage->gimp));
|
||||
shell->zoom_button = gtk_check_button_new ();
|
||||
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (shell->zoom_button), FALSE);
|
||||
gtk_widget_set_size_request (GTK_WIDGET (shell->zoom_button), 16, 16);
|
||||
GTK_WIDGET_UNSET_FLAGS (shell->zoom_button, GTK_CAN_FOCUS);
|
||||
|
||||
gimp_help_set_help_data (shell->padding_button,
|
||||
_("Set canvas padding color"),
|
||||
GIMP_HELP_IMAGE_WINDOW_PADDING_BUTTON);
|
||||
image = gtk_image_new_from_stock (GIMP_STOCK_ZOOM_FOLLOW_WINDOW,
|
||||
GTK_ICON_SIZE_MENU);
|
||||
gtk_container_add (GTK_CONTAINER (shell->zoom_button), image);
|
||||
gtk_widget_show (image);
|
||||
|
||||
g_signal_connect (shell->padding_button, "button_press_event",
|
||||
G_CALLBACK (gimp_display_shell_color_button_press),
|
||||
shell);
|
||||
g_signal_connect (shell->padding_button, "color_changed",
|
||||
G_CALLBACK (gimp_display_shell_color_button_changed),
|
||||
shell);
|
||||
gimp_help_set_help_data (shell->zoom_button,
|
||||
_("Zoom image when window size changes"),
|
||||
GIMP_HELP_IMAGE_WINDOW_ZOOM_FOLLOW_BUTTON);
|
||||
|
||||
{
|
||||
static GtkItemFactoryEntry menu_items[] =
|
||||
{
|
||||
{ N_("/From _Theme"), NULL,
|
||||
gimp_display_shell_color_button_menu_callback,
|
||||
GIMP_CANVAS_PADDING_MODE_DEFAULT, NULL },
|
||||
{ N_("/_Light Check Color"), NULL,
|
||||
gimp_display_shell_color_button_menu_callback,
|
||||
GIMP_CANVAS_PADDING_MODE_LIGHT_CHECK, NULL },
|
||||
{ N_("/_Dark Check Color"), NULL,
|
||||
gimp_display_shell_color_button_menu_callback,
|
||||
GIMP_CANVAS_PADDING_MODE_DARK_CHECK, NULL },
|
||||
|
||||
{ "/---", NULL, NULL, 0, "<Separator>"},
|
||||
|
||||
{ N_("/Select _Custom Color..."), NULL,
|
||||
gimp_display_shell_color_button_menu_callback,
|
||||
GIMP_CANVAS_PADDING_MODE_CUSTOM, "<StockItem>",
|
||||
GTK_STOCK_SELECT_COLOR },
|
||||
{ N_("/As in _Preferences"), NULL,
|
||||
gimp_display_shell_color_button_menu_callback,
|
||||
0xffff, "<StockItem>",
|
||||
GIMP_STOCK_RESET }
|
||||
};
|
||||
|
||||
GtkItemFactory *item_factory;
|
||||
|
||||
item_factory =
|
||||
GTK_ITEM_FACTORY (GIMP_COLOR_BUTTON (shell->padding_button)->popup_menu);
|
||||
|
||||
gtk_item_factory_create_items (item_factory,
|
||||
G_N_ELEMENTS (menu_items), menu_items,
|
||||
shell);
|
||||
}
|
||||
g_signal_connect (shell->zoom_button, "toggled",
|
||||
G_CALLBACK (gimp_toggle_button_update),
|
||||
&shell->zoom_on_resize);
|
||||
|
||||
/* create the contents of the lower_hbox *********************************/
|
||||
|
||||
/* the qmask button */
|
||||
shell->qmask = gtk_check_button_new ();
|
||||
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (shell->qmask), FALSE);
|
||||
gtk_widget_set_size_request (GTK_WIDGET (shell->qmask), 16, 16);
|
||||
GTK_WIDGET_UNSET_FLAGS (shell->qmask, GTK_CAN_FOCUS);
|
||||
shell->qmask_button = gtk_check_button_new ();
|
||||
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (shell->qmask_button), FALSE);
|
||||
gtk_widget_set_size_request (GTK_WIDGET (shell->qmask_button), 16, 16);
|
||||
GTK_WIDGET_UNSET_FLAGS (shell->qmask_button, GTK_CAN_FOCUS);
|
||||
|
||||
image = gtk_image_new_from_stock (GIMP_STOCK_QMASK_OFF, GTK_ICON_SIZE_MENU);
|
||||
gtk_container_add (GTK_CONTAINER (shell->qmask), image);
|
||||
gtk_container_add (GTK_CONTAINER (shell->qmask_button), image);
|
||||
gtk_widget_show (image);
|
||||
|
||||
gimp_help_set_help_data (shell->qmask,
|
||||
gimp_help_set_help_data (shell->qmask_button,
|
||||
_("Toggle QuickMask"),
|
||||
GIMP_HELP_IMAGE_WINDOW_QMASK_BUTTON);
|
||||
|
||||
g_signal_connect (shell->qmask, "toggled",
|
||||
g_signal_connect (shell->qmask_button, "toggled",
|
||||
G_CALLBACK (gimp_display_shell_qmask_toggled),
|
||||
shell);
|
||||
g_signal_connect (shell->qmask, "button_press_event",
|
||||
g_signal_connect (shell->qmask_button, "button_press_event",
|
||||
G_CALLBACK (gimp_display_shell_qmask_button_press),
|
||||
shell);
|
||||
|
||||
|
@ -968,7 +932,7 @@ gimp_display_shell_new (GimpDisplay *gdisp,
|
|||
/* pack all the widgets **************************************************/
|
||||
|
||||
/* fill the inner_table */
|
||||
gtk_table_attach (GTK_TABLE (inner_table), shell->origin, 0, 1, 0, 1,
|
||||
gtk_table_attach (GTK_TABLE (inner_table), shell->origin_button, 0, 1, 0, 1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_table_attach (GTK_TABLE (inner_table), shell->hrule, 1, 2, 0, 1,
|
||||
GTK_EXPAND | GTK_SHRINK | GTK_FILL, GTK_FILL, 0, 0);
|
||||
|
@ -979,12 +943,11 @@ gimp_display_shell_new (GimpDisplay *gdisp,
|
|||
GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
|
||||
|
||||
/* fill the right_vbox */
|
||||
gtk_box_pack_start (GTK_BOX (right_vbox), shell->padding_button,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (right_vbox), shell->zoom_button, FALSE, FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (right_vbox), shell->vsb, TRUE, TRUE, 0);
|
||||
|
||||
/* fill the lower_hbox */
|
||||
gtk_box_pack_start (GTK_BOX (lower_hbox), shell->qmask, FALSE, FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (lower_hbox), shell->qmask_button, FALSE, FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (lower_hbox), shell->hsb, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (lower_hbox), shell->nav_ebox, FALSE, FALSE, 0);
|
||||
|
||||
|
@ -994,7 +957,7 @@ gimp_display_shell_new (GimpDisplay *gdisp,
|
|||
|
||||
if (shell->options->show_rulers)
|
||||
{
|
||||
gtk_widget_show (shell->origin);
|
||||
gtk_widget_show (shell->origin_button);
|
||||
gtk_widget_show (shell->hrule);
|
||||
gtk_widget_show (shell->vrule);
|
||||
}
|
||||
|
@ -1005,8 +968,8 @@ gimp_display_shell_new (GimpDisplay *gdisp,
|
|||
{
|
||||
gtk_widget_show (shell->vsb);
|
||||
gtk_widget_show (shell->hsb);
|
||||
gtk_widget_show (shell->padding_button);
|
||||
gtk_widget_show (shell->qmask);
|
||||
gtk_widget_show (shell->zoom_button);
|
||||
gtk_widget_show (shell->qmask_button);
|
||||
gtk_widget_show (shell->nav_ebox);
|
||||
}
|
||||
|
||||
|
|
|
@ -90,29 +90,33 @@ struct _GimpDisplayShell
|
|||
gint disp_xoffset;
|
||||
gint disp_yoffset;
|
||||
|
||||
gboolean proximity; /* is a device in proximity */
|
||||
gboolean proximity; /* is a device in proximity */
|
||||
gboolean snap_to_guides; /* should the guides be snapped to? */
|
||||
gboolean snap_to_grid; /* should the grid be snapped to? */
|
||||
|
||||
Selection *select; /* Selection object */
|
||||
|
||||
GtkAdjustment *hsbdata; /* adjustments */
|
||||
GtkAdjustment *vsbdata;
|
||||
|
||||
GtkWidget *canvas; /* GimpCanvas widget */
|
||||
GdkGC *grid_gc; /* GC for grid drawing */
|
||||
|
||||
GtkAdjustment *hsbdata; /* adjustments */
|
||||
GtkAdjustment *vsbdata;
|
||||
GtkWidget *hsb; /* scroll bars */
|
||||
GtkWidget *vsb;
|
||||
GtkWidget *qmask; /* qmask button */
|
||||
|
||||
GtkWidget *hrule; /* rulers */
|
||||
GtkWidget *vrule;
|
||||
GtkWidget *origin; /* origin button */
|
||||
|
||||
GtkWidget *origin_button; /* NW: origin button */
|
||||
GtkWidget *qmask_button; /* SW: qmask button */
|
||||
GtkWidget *zoom_button; /* NE: zoom toggle button */
|
||||
GtkWidget *nav_ebox; /* SE: navigation event box */
|
||||
|
||||
GtkWidget *menubar; /* menubar */
|
||||
GtkWidget *statusbar; /* statusbar */
|
||||
|
||||
guchar *render_buf; /* buffer for rendering the image */
|
||||
|
||||
guint title_idle_id; /* title update idle ID */
|
||||
|
||||
gint icon_size; /* size of the icon pixmap */
|
||||
|
@ -131,11 +135,6 @@ struct _GimpDisplayShell
|
|||
gint cursor_x; /* software cursor X value */
|
||||
gint cursor_y; /* software cursor Y value */
|
||||
|
||||
gboolean show_transform_preview;
|
||||
|
||||
GtkWidget *padding_button; /* GimpColorPanel in the NE corner */
|
||||
GtkWidget *nav_ebox; /* GtkEventBox on the SE corner */
|
||||
|
||||
GtkWidget *warning_dialog; /* close warning dialog */
|
||||
InfoDialog *info_dialog; /* image information dialog */
|
||||
GtkWidget *scale_dialog; /* scale (zoom) dialog */
|
||||
|
@ -146,14 +145,16 @@ struct _GimpDisplayShell
|
|||
guint filter_idle_id;
|
||||
GtkWidget *filters_dialog;/* color display filter dialog */
|
||||
|
||||
GdkWindowState window_state; /* for fullscreen display */
|
||||
|
||||
gint paused_count;
|
||||
|
||||
GQuark vectors_freeze_handler;
|
||||
GQuark vectors_thaw_handler;
|
||||
GQuark vectors_visible_handler;
|
||||
|
||||
GdkWindowState window_state; /* for fullscreen display */
|
||||
gboolean zoom_on_resize;
|
||||
gboolean show_transform_preview;
|
||||
|
||||
GimpDisplayOptions *options;
|
||||
GimpDisplayOptions *fullscreen_options;
|
||||
|
||||
|
|
|
@ -90,6 +90,7 @@
|
|||
#define GIMP_HELP_VIEW_SHOW_RULERS "gimp-view-show-rulers"
|
||||
#define GIMP_HELP_VIEW_SHOW_SCROLLBARS "gimp-view-show-scrollbars"
|
||||
#define GIMP_HELP_VIEW_SHOW_STATUSBAR "gimp-view-show-statusbar"
|
||||
#define GIMP_HELP_VIEW_PADDING_COLOR "gimp-view-padding-color"
|
||||
#define GIMP_HELP_VIEW_SHRINK_WRAP "gimp-view-shrink-wrap"
|
||||
#define GIMP_HELP_VIEW_FULLSCREEN "gimp-view-fullscreen"
|
||||
#define GIMP_HELP_VIEW_CHANGE_SCREEN "gimp-view-change-screen"
|
||||
|
@ -97,6 +98,7 @@
|
|||
#define GIMP_HELP_IMAGE_WINDOW "gimp-image-window"
|
||||
#define GIMP_HELP_IMAGE_WINDOW_ORIGIN_BUTTON "gimp-image-window-origin-button"
|
||||
#define GIMP_HELP_IMAGE_WINDOW_PADDING_BUTTON "gimp-image-window-padding-button"
|
||||
#define GIMP_HELP_IMAGE_WINDOW_ZOOM_FOLLOW_BUTTON "gimp-image-window-zoom-follow-button"
|
||||
#define GIMP_HELP_IMAGE_WINDOW_QMASK_BUTTON "gimp-image-window-qmask-button"
|
||||
#define GIMP_HELP_IMAGE_WINDOW_NAV_BUTTON "gimp-image-window-nav-button"
|
||||
#define GIMP_HELP_IMAGE_WINDOW_RULER "gimp-image-window-ruler"
|
||||
|
|
|
@ -496,6 +496,7 @@ gimp_stock_menu_pixbufs[] =
|
|||
{ GIMP_STOCK_MOVE_TO_SCREEN, stock_move_to_screen_16 },
|
||||
{ GIMP_STOCK_DEFAULT_COLORS, stock_default_colors_12 },
|
||||
{ GIMP_STOCK_SWAP_COLORS, stock_swap_colors_12 },
|
||||
{ GIMP_STOCK_ZOOM_FOLLOW_WINDOW, stock_zoom_follow_window_12 },
|
||||
|
||||
{ GIMP_STOCK_GRADIENT_LINEAR, stock_gradient_linear_16 },
|
||||
{ GIMP_STOCK_GRADIENT_BILINEAR, stock_gradient_bilinear_16 },
|
||||
|
|
|
@ -191,6 +191,7 @@ G_BEGIN_DECLS
|
|||
#define GIMP_STOCK_MOVE_TO_SCREEN "gimp_move-to-screen"
|
||||
#define GIMP_STOCK_DEFAULT_COLORS "gimp-default-colors"
|
||||
#define GIMP_STOCK_SWAP_COLORS "gimp-swap-colors"
|
||||
#define GIMP_STOCK_ZOOM_FOLLOW_WINDOW "gimp-zoom-follow-window"
|
||||
|
||||
#define GIMP_STOCK_TOOLS "gimp-tools"
|
||||
#define GIMP_STOCK_TOOL_OPTIONS "gimp-tool-options"
|
||||
|
|
|
@ -203,6 +203,14 @@
|
|||
<menuitem action="view-snap-to-guides" />
|
||||
<menuitem action="view-show-grid" />
|
||||
<menuitem action="view-snap-to-grid" />
|
||||
<menu action="view-padding-color-menu" name="Padding color">
|
||||
<menuitem action="view-padding-color-theme" />
|
||||
<menuitem action="view-padding-color-light-check" />
|
||||
<menuitem action="view-padding-color-dark-check" />
|
||||
<menuitem action="view-padding-color-custom" />
|
||||
<separator />
|
||||
<menuitem action="view-padding-color-prefs" />
|
||||
</menu>
|
||||
<separator />
|
||||
<menuitem action="view-show-menubar" />
|
||||
<menuitem action="view-show-rulers" />
|
||||
|
|
|
@ -117,7 +117,8 @@ STOCK_MENU_IMAGES = \
|
|||
stock-video-16.png \
|
||||
stock-warning-16.png \
|
||||
stock-wilber-16.png \
|
||||
stock-web-16.png
|
||||
stock-web-16.png \
|
||||
stock-zoom-follow-window-12.png
|
||||
|
||||
STOCK_BUTTON_IMAGES = \
|
||||
stock-anchor-16.png \
|
||||
|
|
BIN
themes/Default/images/stock-zoom-follow-window-12.png
Normal file
BIN
themes/Default/images/stock-zoom-follow-window-12.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 262 B |
Loading…
Reference in a new issue