Changed "Zoom to Fit Window" command to "Fit Image in Window" and added

2004-06-20  Philip Lafleur  <plafleur@cvs.gnome.org>

	* app/display/gimpdisplayshell-scale.[ch]:
	* app/display/gimpnavigationview.[ch]:
	* app/actions/view-actions.c:
	* app/actions/view-commands.[ch]:
	* app/widgets/gimphelp-ids.h:
	* menus/image-menu.xml.in: Changed "Zoom to Fit Window" command
	to "Fit Image in Window" and added another command, "Fit Image
	to Window", that zooms according to the opposite dimension. Fixes
	bug #144597.
This commit is contained in:
Philip Lafleur 2004-06-20 12:09:03 +00:00 committed by Philip Lafleur
parent 3bc62470fe
commit c7364a64aa
12 changed files with 214 additions and 114 deletions

View File

@ -1,13 +1,25 @@
2004-06-19 Michael Schumacher <schumaml@cvs.gnome.org>
2004-06-20 Philip Lafleur <plafleur@cvs.gnome.org>
* app/display/gimpdisplayshell-scale.[ch]:
* app/display/gimpnavigationview.[ch]:
* app/actions/view-actions.c:
* app/actions/view-commands.[ch]:
* app/widgets/gimphelp-ids.h:
* menus/image-menu.xml.in: Changed "Zoom to Fit Window" command
to "Fit Image in Window" and added another command, "Fit Image
to Window", that zooms according to the opposite dimension. Fixes
bug #144597.
2004-06-19 Michael Schumacher <schumaml@cvs.gnome.org>
* libgimpwidgets/gimpwidgets.def: added missing
gimp_controller_* entries
2004-06-19 Michael Schumacher <schumaml@cvs.gnome.org>
2004-06-19 Michael Schumacher <schumaml@cvs.gnome.org>
* modules/controller_midi.c: #ifdef G_OS_WIN32 for an O_NONBLOCK
2004-06-19 Bill Skaggs <weskaggs@primate.ucdavis.edu>
2004-06-19 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* plug-ins/common/jpeg.c: more changes to save dialog. Moved
comment field to Advanced area. Don't set restart marker
@ -15,7 +27,7 @@
scale from 0-1 to 0-100 to follow the jpeg spec (but left
allowable range for pdb at 0-1 to avoid breaking anything).
2004-06-19 Bill Skaggs <weskaggs@primate.ucdavis.edu>
2004-06-19 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimpscaletool.c: fixed my fix for bug # 68106, which
worked incorrectly for two of the control points.

View File

@ -76,10 +76,15 @@ static GimpActionEntry view_actions[] =
G_CALLBACK (view_zoom_in_cmd_callback),
GIMP_HELP_VIEW_ZOOM_IN },
{ "view-zoom-fit", GTK_STOCK_ZOOM_FIT,
N_("Zoom to _Fit Window"), "<control><shift>E", NULL,
G_CALLBACK (view_zoom_fit_cmd_callback),
GIMP_HELP_VIEW_ZOOM_FIT },
{ "view-zoom-fit-in", GTK_STOCK_ZOOM_FIT,
N_("_Fit Image in Window"), "<control><shift>E", NULL,
G_CALLBACK (view_zoom_fit_in_cmd_callback),
GIMP_HELP_VIEW_ZOOM_FIT_IN },
{ "view-zoom-fit-to", GTK_STOCK_ZOOM_FIT,
N_("Fit Image to Window"), NULL, NULL,
G_CALLBACK (view_zoom_fit_to_cmd_callback),
GIMP_HELP_VIEW_ZOOM_FIT_TO },
{ "view-info-window", GIMP_STOCK_INFO,
N_("_Info Window"), "<control><shift>I", NULL,
@ -314,9 +319,10 @@ view_actions_update (GimpActionGroup *group,
SET_SENSITIVE ("view-dot-for-dot", gdisp);
SET_ACTIVE ("view-dot-for-dot", gdisp && shell->dot_for_dot);
SET_SENSITIVE ("view-zoom-out", gdisp);
SET_SENSITIVE ("view-zoom-in", gdisp);
SET_SENSITIVE ("view-zoom-fit", gdisp);
SET_SENSITIVE ("view-zoom-out", gdisp);
SET_SENSITIVE ("view-zoom-in", gdisp);
SET_SENSITIVE ("view-zoom-fit-in", gdisp);
SET_SENSITIVE ("view-zoom-fit-to", gdisp);
SET_SENSITIVE ("view-zoom-16-1", gdisp);
SET_SENSITIVE ("view-zoom-8-1", gdisp);

View File

@ -110,13 +110,23 @@ view_zoom_in_cmd_callback (GtkAction *action,
}
void
view_zoom_fit_cmd_callback (GtkAction *action,
gpointer data)
view_zoom_fit_in_cmd_callback (GtkAction *action,
gpointer data)
{
GimpDisplay *gdisp;
return_if_no_display (gdisp, data);
gimp_display_shell_scale_fit (GIMP_DISPLAY_SHELL (gdisp->shell));
gimp_display_shell_scale_fit_in (GIMP_DISPLAY_SHELL (gdisp->shell));
}
void
view_zoom_fit_to_cmd_callback (GtkAction *action,
gpointer data)
{
GimpDisplay *gdisp;
return_if_no_display (gdisp, data);
gimp_display_shell_scale_fit_to (GIMP_DISPLAY_SHELL (gdisp->shell));
}
void

View File

@ -29,7 +29,9 @@ void view_zoom_out_cmd_callback (GtkAction *action,
gpointer data);
void view_zoom_in_cmd_callback (GtkAction *action,
gpointer data);
void view_zoom_fit_cmd_callback (GtkAction *action,
void view_zoom_fit_in_cmd_callback (GtkAction *action,
gpointer data);
void view_zoom_fit_to_cmd_callback (GtkAction *action,
gpointer data);
void view_zoom_cmd_callback (GtkAction *action,
GtkAction *current,

View File

@ -390,7 +390,7 @@ gimp_display_shell_scale (GimpDisplayShell *shell,
}
void
gimp_display_shell_scale_fit (GimpDisplayShell *shell)
gimp_display_shell_scale_fit_in (GimpDisplayShell *shell)
{
GimpImage *gimage;
gint image_width;
@ -409,7 +409,7 @@ gimp_display_shell_scale_fit (GimpDisplayShell *shell)
image_width = ROUND (image_width *
shell->monitor_xres / gimage->xresolution);
image_height = ROUND (image_height *
shell->monitor_xres / gimage->yresolution);
shell->monitor_yres / gimage->yresolution);
}
zoom_factor = MIN ((gdouble) shell->disp_width / (gdouble) image_width,
@ -418,6 +418,35 @@ gimp_display_shell_scale_fit (GimpDisplayShell *shell)
gimp_display_shell_scale (shell, GIMP_ZOOM_TO, zoom_factor);
}
void
gimp_display_shell_scale_fit_to (GimpDisplayShell *shell)
{
GimpImage *gimage;
gint image_width;
gint image_height;
gdouble zoom_factor;
g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
gimage = shell->gdisp->gimage;
image_width = gimage->width;
image_height = gimage->height;
if (! shell->dot_for_dot)
{
image_width = ROUND (image_width *
shell->monitor_xres / gimage->xresolution);
image_height = ROUND (image_height *
shell->monitor_yres / gimage->yresolution);
}
zoom_factor = MAX ((gdouble) shell->disp_width / (gdouble) image_width,
(gdouble) shell->disp_height / (gdouble) image_height);
gimp_display_shell_scale (shell, GIMP_ZOOM_TO, zoom_factor);
}
void
gimp_display_shell_scale_by_values (GimpDisplayShell *shell,
gdouble scale,

View File

@ -34,7 +34,8 @@ void gimp_display_shell_scale_set_dot_for_dot (GimpDisplayShell *gdisp,
void gimp_display_shell_scale (GimpDisplayShell *gdisp,
GimpZoomType zoom_type,
gdouble new_scale);
void gimp_display_shell_scale_fit (GimpDisplayShell *gdisp);
void gimp_display_shell_scale_fit_in (GimpDisplayShell *shell);
void gimp_display_shell_scale_fit_to (GimpDisplayShell *shell);
void gimp_display_shell_scale_by_values (GimpDisplayShell *gdisp,
gdouble scale,
gint offset_x,

View File

@ -56,51 +56,53 @@
static void gimp_navigation_view_class_init (GimpNavigationViewClass *klass);
static void gimp_navigation_view_init (GimpNavigationView *view);
static void gimp_navigation_view_docked_iface_init (GimpDockedInterface *docked_iface);
static void gimp_navigation_view_set_context (GimpDocked *docked,
GimpContext *context);
static void gimp_navigation_view_docked_iface_init (GimpDockedInterface *docked_iface);
static void gimp_navigation_view_set_context (GimpDocked *docked,
GimpContext *context);
static void gimp_navigation_view_destroy (GtkObject *object);
static void gimp_navigation_view_destroy (GtkObject *object);
static GtkWidget * gimp_navigation_view_new_private (GimpDisplayShell *shell,
GimpDisplayConfig *config,
gboolean popup);
static GtkWidget * gimp_navigation_view_new_private (GimpDisplayShell *shell,
GimpDisplayConfig *config,
gboolean popup);
static gboolean gimp_navigation_view_button_release (GtkWidget *widget,
GdkEventButton *bevent,
GimpDisplayShell *shell);
static void gimp_navigation_view_marker_changed (GimpNavigationPreview *preview,
gdouble x,
gdouble y,
GimpNavigationView *view);
static void gimp_navigation_view_zoom (GimpNavigationPreview *preview,
GimpZoomType direction,
GimpNavigationView *view);
static void gimp_navigation_view_scroll (GimpNavigationPreview *preview,
GdkScrollDirection direction,
GimpNavigationView *view);
static gboolean gimp_navigation_view_button_release (GtkWidget *widget,
GdkEventButton *bevent,
GimpDisplayShell *shell);
static void gimp_navigation_view_marker_changed (GimpNavigationPreview *preview,
gdouble x,
gdouble y,
GimpNavigationView *view);
static void gimp_navigation_view_zoom (GimpNavigationPreview *preview,
GimpZoomType direction,
GimpNavigationView *view);
static void gimp_navigation_view_scroll (GimpNavigationPreview *preview,
GdkScrollDirection direction,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_adj_changed (GtkAdjustment *adj,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_adj_changed (GtkAdjustment *adj,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_out_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_in_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_100_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_fit_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_shrink_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_out_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_in_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_100_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_fit_in_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_fit_to_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_shrink_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_shell_scaled (GimpDisplayShell *shell,
GimpNavigationView *view);
static void gimp_navigation_view_shell_scrolled (GimpDisplayShell *shell,
GimpNavigationView *view);
static void gimp_navigation_view_shell_reconnect (GimpDisplayShell *shell,
GimpNavigationView *view);
static void gimp_navigation_view_update_marker (GimpNavigationView *view);
static void gimp_navigation_view_shell_scaled (GimpDisplayShell *shell,
GimpNavigationView *view);
static void gimp_navigation_view_shell_scrolled (GimpDisplayShell *shell,
GimpNavigationView *view);
static void gimp_navigation_view_shell_reconnect (GimpDisplayShell *shell,
GimpNavigationView *view);
static void gimp_navigation_view_update_marker (GimpNavigationView *view);
static GimpEditorClass *parent_class = NULL;
@ -468,11 +470,19 @@ gimp_navigation_view_new_private (GimpDisplayShell *shell,
NULL,
view);
view->zoom_fit_button =
view->zoom_fit_in_button =
gimp_editor_add_button (GIMP_EDITOR (view),
GTK_STOCK_ZOOM_FIT, _("Zoom to fit window"),
GIMP_HELP_VIEW_ZOOM_FIT,
G_CALLBACK (gimp_navigation_view_zoom_fit_clicked),
GTK_STOCK_ZOOM_FIT, _("Fit Image in Window"),
GIMP_HELP_VIEW_ZOOM_FIT_IN,
G_CALLBACK (gimp_navigation_view_zoom_fit_in_clicked),
NULL,
view);
view->zoom_fit_to_button =
gimp_editor_add_button (GIMP_EDITOR (view),
GTK_STOCK_ZOOM_FIT, _("Fit Image to Window"),
GIMP_HELP_VIEW_ZOOM_FIT_TO,
G_CALLBACK (gimp_navigation_view_zoom_fit_to_clicked),
NULL,
view);
@ -654,11 +664,19 @@ gimp_navigation_view_zoom_100_clicked (GtkWidget *widget,
}
static void
gimp_navigation_view_zoom_fit_clicked (GtkWidget *widget,
GimpNavigationView *view)
gimp_navigation_view_zoom_fit_in_clicked (GtkWidget *widget,
GimpNavigationView *view)
{
if (view->shell)
gimp_display_shell_scale_fit (view->shell);
gimp_display_shell_scale_fit_in (view->shell);
}
static void
gimp_navigation_view_zoom_fit_to_clicked (GtkWidget *widget,
GimpNavigationView *view)
{
if (view->shell)
gimp_display_shell_scale_fit_to (view->shell);
}
static void

View File

@ -53,7 +53,8 @@ struct _GimpNavigationView
GtkWidget *zoom_out_button;
GtkWidget *zoom_in_button;
GtkWidget *zoom_100_button;
GtkWidget *zoom_fit_button;
GtkWidget *zoom_fit_in_button;
GtkWidget *zoom_fit_to_button;
GtkWidget *shrink_wrap_button;
};

View File

@ -56,51 +56,53 @@
static void gimp_navigation_view_class_init (GimpNavigationViewClass *klass);
static void gimp_navigation_view_init (GimpNavigationView *view);
static void gimp_navigation_view_docked_iface_init (GimpDockedInterface *docked_iface);
static void gimp_navigation_view_set_context (GimpDocked *docked,
GimpContext *context);
static void gimp_navigation_view_docked_iface_init (GimpDockedInterface *docked_iface);
static void gimp_navigation_view_set_context (GimpDocked *docked,
GimpContext *context);
static void gimp_navigation_view_destroy (GtkObject *object);
static void gimp_navigation_view_destroy (GtkObject *object);
static GtkWidget * gimp_navigation_view_new_private (GimpDisplayShell *shell,
GimpDisplayConfig *config,
gboolean popup);
static GtkWidget * gimp_navigation_view_new_private (GimpDisplayShell *shell,
GimpDisplayConfig *config,
gboolean popup);
static gboolean gimp_navigation_view_button_release (GtkWidget *widget,
GdkEventButton *bevent,
GimpDisplayShell *shell);
static void gimp_navigation_view_marker_changed (GimpNavigationPreview *preview,
gdouble x,
gdouble y,
GimpNavigationView *view);
static void gimp_navigation_view_zoom (GimpNavigationPreview *preview,
GimpZoomType direction,
GimpNavigationView *view);
static void gimp_navigation_view_scroll (GimpNavigationPreview *preview,
GdkScrollDirection direction,
GimpNavigationView *view);
static gboolean gimp_navigation_view_button_release (GtkWidget *widget,
GdkEventButton *bevent,
GimpDisplayShell *shell);
static void gimp_navigation_view_marker_changed (GimpNavigationPreview *preview,
gdouble x,
gdouble y,
GimpNavigationView *view);
static void gimp_navigation_view_zoom (GimpNavigationPreview *preview,
GimpZoomType direction,
GimpNavigationView *view);
static void gimp_navigation_view_scroll (GimpNavigationPreview *preview,
GdkScrollDirection direction,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_adj_changed (GtkAdjustment *adj,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_adj_changed (GtkAdjustment *adj,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_out_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_in_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_100_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_fit_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_shrink_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_out_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_in_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_100_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_fit_in_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_zoom_fit_to_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_shrink_clicked (GtkWidget *widget,
GimpNavigationView *view);
static void gimp_navigation_view_shell_scaled (GimpDisplayShell *shell,
GimpNavigationView *view);
static void gimp_navigation_view_shell_scrolled (GimpDisplayShell *shell,
GimpNavigationView *view);
static void gimp_navigation_view_shell_reconnect (GimpDisplayShell *shell,
GimpNavigationView *view);
static void gimp_navigation_view_update_marker (GimpNavigationView *view);
static void gimp_navigation_view_shell_scaled (GimpDisplayShell *shell,
GimpNavigationView *view);
static void gimp_navigation_view_shell_scrolled (GimpDisplayShell *shell,
GimpNavigationView *view);
static void gimp_navigation_view_shell_reconnect (GimpDisplayShell *shell,
GimpNavigationView *view);
static void gimp_navigation_view_update_marker (GimpNavigationView *view);
static GimpEditorClass *parent_class = NULL;
@ -468,11 +470,19 @@ gimp_navigation_view_new_private (GimpDisplayShell *shell,
NULL,
view);
view->zoom_fit_button =
view->zoom_fit_in_button =
gimp_editor_add_button (GIMP_EDITOR (view),
GTK_STOCK_ZOOM_FIT, _("Zoom to fit window"),
GIMP_HELP_VIEW_ZOOM_FIT,
G_CALLBACK (gimp_navigation_view_zoom_fit_clicked),
GTK_STOCK_ZOOM_FIT, _("Fit Image in Window"),
GIMP_HELP_VIEW_ZOOM_FIT_IN,
G_CALLBACK (gimp_navigation_view_zoom_fit_in_clicked),
NULL,
view);
view->zoom_fit_to_button =
gimp_editor_add_button (GIMP_EDITOR (view),
GTK_STOCK_ZOOM_FIT, _("Fit Image to Window"),
GIMP_HELP_VIEW_ZOOM_FIT_TO,
G_CALLBACK (gimp_navigation_view_zoom_fit_to_clicked),
NULL,
view);
@ -654,11 +664,19 @@ gimp_navigation_view_zoom_100_clicked (GtkWidget *widget,
}
static void
gimp_navigation_view_zoom_fit_clicked (GtkWidget *widget,
GimpNavigationView *view)
gimp_navigation_view_zoom_fit_in_clicked (GtkWidget *widget,
GimpNavigationView *view)
{
if (view->shell)
gimp_display_shell_scale_fit (view->shell);
gimp_display_shell_scale_fit_in (view->shell);
}
static void
gimp_navigation_view_zoom_fit_to_clicked (GtkWidget *widget,
GimpNavigationView *view)
{
if (view->shell)
gimp_display_shell_scale_fit_to (view->shell);
}
static void

View File

@ -53,7 +53,8 @@ struct _GimpNavigationView
GtkWidget *zoom_out_button;
GtkWidget *zoom_in_button;
GtkWidget *zoom_100_button;
GtkWidget *zoom_fit_button;
GtkWidget *zoom_fit_in_button;
GtkWidget *zoom_fit_to_button;
GtkWidget *shrink_wrap_button;
};

View File

@ -77,7 +77,8 @@
#define GIMP_HELP_VIEW_ZOOM_OUT "gimp-view-zoom-out"
#define GIMP_HELP_VIEW_ZOOM_IN "gimp-view-zoom-in"
#define GIMP_HELP_VIEW_ZOOM_100 "gimp-view-zoom-100"
#define GIMP_HELP_VIEW_ZOOM_FIT "gimp-view-zoom-fit"
#define GIMP_HELP_VIEW_ZOOM_FIT_IN "gimp-view-zoom-fit-in"
#define GIMP_HELP_VIEW_ZOOM_FIT_TO "gimp-view-zoom-fit-to"
#define GIMP_HELP_VIEW_ZOOM_OTHER "gimp-view-zoom-other"
#define GIMP_HELP_VIEW_SHOW_SELECTION "gimp-view-show-selection"
#define GIMP_HELP_VIEW_SHOW_LAYER_BOUNDARY "gimp-view-show-layer-boundary"

View File

@ -173,7 +173,8 @@
<menu action="view-zoom-menu" name="Zoom">
<menuitem action="view-zoom-out" />
<menuitem action="view-zoom-in" />
<menuitem action="view-zoom-fit" />
<menuitem action="view-zoom-fit-in" />
<menuitem action="view-zoom-fit-to" />
<separator />
<menuitem action="view-zoom-16-1" />
<menuitem action="view-zoom-8-1" />