[Xfce4-commits] <ristretto:master> Fix image-rotation buttons on main-window
Stephan Arts
noreply at xfce.org
Mon Aug 8 15:04:32 CEST 2011
Updating branch refs/heads/master
to c846c7b1f8defe410efe8b09c3055ed7465b746f (commit)
from ccf4b3abcdf2abe22a9bf096ef5ffdc20abd1f5e (commit)
commit c846c7b1f8defe410efe8b09c3055ed7465b746f
Author: Stephan Arts <stephan at xfce.org>
Date: Sun Aug 7 09:15:02 2011 +0200
Fix image-rotation buttons on main-window
src/image_viewer.c | 48 ++++++++++++++++++-------------
src/image_viewer.h | 39 +++++++++++++++++++------
src/main_window.c | 78 +++++++++++++++++++++------------------------------
3 files changed, 89 insertions(+), 76 deletions(-)
diff --git a/src/image_viewer.c b/src/image_viewer.c
index 84dc85c..d41d465 100644
--- a/src/image_viewer.c
+++ b/src/image_viewer.c
@@ -960,27 +960,11 @@ void
rstto_image_viewer_set_scale (RsttoImageViewer *viewer, gdouble scale)
{
gdouble tmp_x, tmp_y;
- GtkAdjustment *vadjustment, *hadjustment;
gint pixbuf_width = 0;
gint pixbuf_height = 0;
gint pixbuf_x_offset = 0;
gint pixbuf_y_offset = 0;
- switch (viewer->priv->orientation)
- {
- case RSTTO_IMAGE_VIEWER_ORIENT_NONE:
- case RSTTO_IMAGE_VIEWER_ORIENT_180:
- hadjustment = viewer->hadjustment;
- vadjustment = viewer->vadjustment;
- break;
- case RSTTO_IMAGE_VIEWER_ORIENT_270:
- case RSTTO_IMAGE_VIEWER_ORIENT_90:
- hadjustment = viewer->vadjustment;
- vadjustment = viewer->hadjustment;
- break;
- }
-
-
if (scale == 0)
{
viewer->priv->auto_scale = TRUE;
@@ -1077,12 +1061,14 @@ rstto_image_viewer_set_scale (RsttoImageViewer *viewer, gdouble scale)
* When zooming in or out,
* try keeping the center of the viewport in the center.
*/
- tmp_y = (gtk_adjustment_get_value(vadjustment) + (gtk_adjustment_get_page_size (vadjustment) / 2) - pixbuf_y_offset) / viewer->priv->scale;
- gtk_adjustment_set_value (vadjustment, (tmp_y*scale - (gtk_adjustment_get_page_size(vadjustment)/2)));
+ tmp_y = (gtk_adjustment_get_value(viewer->vadjustment) +
+ (gtk_adjustment_get_page_size (viewer->vadjustment) / 2) - pixbuf_y_offset) / viewer->priv->scale;
+ gtk_adjustment_set_value (viewer->vadjustment, (tmp_y*scale - (gtk_adjustment_get_page_size(viewer->vadjustment)/2)));
- tmp_x = (gtk_adjustment_get_value(hadjustment) + (gtk_adjustment_get_page_size (hadjustment) / 2) - pixbuf_x_offset) / viewer->priv->scale;
- gtk_adjustment_set_value (hadjustment, (tmp_x*scale - (gtk_adjustment_get_page_size(hadjustment)/2)));
+ tmp_x = (gtk_adjustment_get_value(viewer->hadjustment) +
+ (gtk_adjustment_get_page_size (viewer->hadjustment) / 2) - pixbuf_x_offset) / viewer->priv->scale;
+ gtk_adjustment_set_value (viewer->hadjustment, (tmp_x*scale - (gtk_adjustment_get_page_size(viewer->hadjustment)/2)));
}
@@ -1111,6 +1097,28 @@ rstto_image_viewer_get_motion_state (RsttoImageViewer *viewer)
return viewer->priv->motion.state;
}
+/*
+ * rstto_image_viewer_set_orientation:
+ * @viewer:
+ * @orientation:
+ *
+ * Set orientation for the image shown here.
+ */
+void
+rstto_image_viewer_set_orientation (
+ RsttoImageViewer *viewer,
+ RsttoImageViewerOrientation orientation)
+{
+ viewer->priv->orientation = orientation;
+ rstto_image_viewer_queued_repaint (viewer, TRUE);
+}
+
+RsttoImageViewerOrientation
+rstto_image_viewer_get_orientation (RsttoImageViewer *viewer)
+{
+ return viewer->priv->orientation;
+}
+
/************************/
/** CALLBACK FUNCTIONS **/
diff --git a/src/image_viewer.h b/src/image_viewer.h
index 533d9e2..a7298b6 100644
--- a/src/image_viewer.h
+++ b/src/image_viewer.h
@@ -73,16 +73,35 @@ struct _RsttoImageViewerClass
GtkAdjustment *vadjustment);
};
-GType rstto_image_viewer_get_type();
-
-GtkWidget *rstto_image_viewer_new ();
-void rstto_image_viewer_set_file (RsttoImageViewer *viewer,
- GFile *file,
- gdouble scale,
- RsttoImageViewerOrientation orientation);
-
-void rstto_image_viewer_set_scale (RsttoImageViewer *viewer, gdouble scale);
-gdouble rstto_image_viewer_get_scale (RsttoImageViewer *viewer);
+GType
+rstto_image_viewer_get_type();
+
+GtkWidget *
+rstto_image_viewer_new ();
+
+void
+rstto_image_viewer_set_file (
+ RsttoImageViewer *viewer,
+ GFile *file,
+ gdouble scale,
+ RsttoImageViewerOrientation orientation);
+
+void
+rstto_image_viewer_set_scale (
+ RsttoImageViewer *viewer,
+ gdouble scale);
+
+gdouble
+rstto_image_viewer_get_scale (
+ RsttoImageViewer *viewer);
+
+void
+rstto_image_viewer_set_orientation (
+ RsttoImageViewer *viewer,
+ RsttoImageViewerOrientation orientation);
+
+RsttoImageViewerOrientation
+rstto_image_viewer_get_orientation (RsttoImageViewer *viewer);
G_END_DECLS
diff --git a/src/main_window.c b/src/main_window.c
index 2f32fd0..6481081 100644
--- a/src/main_window.c
+++ b/src/main_window.c
@@ -824,7 +824,7 @@ rstto_main_window_image_list_iter_changed (RsttoMainWindow *window)
file_info = g_file_query_info (file, "standard::content-type", 0, NULL, NULL);
content_type = g_file_info_get_content_type (file_info);
- rstto_image_viewer_set_file (RSTTO_IMAGE_VIEWER(window->priv->image_viewer), file, -1, RSTTO_IMAGE_VIEWER_ORIENT_270);
+ rstto_image_viewer_set_file (RSTTO_IMAGE_VIEWER(window->priv->image_viewer), file, -1, RSTTO_IMAGE_VIEWER_ORIENT_NONE);
app_list = g_app_info_get_all_for_type (content_type);
@@ -865,7 +865,7 @@ rstto_main_window_image_list_iter_changed (RsttoMainWindow *window)
gtk_menu_shell_append (GTK_MENU_SHELL (open_with_menu), menu_item);
gtk_widget_set_sensitive (menu_item, FALSE);
- rstto_image_viewer_set_file (RSTTO_IMAGE_VIEWER(window->priv->image_viewer), NULL, -1, RSTTO_IMAGE_VIEWER_ORIENT_270);
+ rstto_image_viewer_set_file (RSTTO_IMAGE_VIEWER(window->priv->image_viewer), NULL, -1, RSTTO_IMAGE_VIEWER_ORIENT_NONE);
menu_item = gtk_image_menu_item_new_with_label (_("Empty"));
@@ -1840,29 +1840,22 @@ cb_rstto_main_window_zoom_out (GtkWidget *widget, RsttoMainWindow *window)
static void
cb_rstto_main_window_rotate_cw (GtkWidget *widget, RsttoMainWindow *window)
{
- RsttoImage *image = NULL;
-
- if (window->priv->iter)
- image = rstto_image_list_iter_get_image (window->priv->iter);
-
- if (image)
+ RsttoImageViewer *viewer = RSTTO_IMAGE_VIEWER(window->priv->image_viewer);
+ switch (rstto_image_viewer_get_orientation (viewer))
{
- switch (rstto_image_get_orientation (image))
- {
- default:
- case RSTTO_IMAGE_ORIENT_NONE:
- rstto_image_set_orientation (image, RSTTO_IMAGE_ORIENT_90);
- break;
- case RSTTO_IMAGE_ORIENT_90:
- rstto_image_set_orientation (image, RSTTO_IMAGE_ORIENT_180);
- break;
- case RSTTO_IMAGE_ORIENT_180:
- rstto_image_set_orientation (image, RSTTO_IMAGE_ORIENT_270);
- break;
- case RSTTO_IMAGE_ORIENT_270:
- rstto_image_set_orientation (image, RSTTO_IMAGE_ORIENT_NONE);
- break;
- }
+ default:
+ case RSTTO_IMAGE_VIEWER_ORIENT_NONE:
+ rstto_image_viewer_set_orientation (viewer, RSTTO_IMAGE_VIEWER_ORIENT_90);
+ break;
+ case RSTTO_IMAGE_VIEWER_ORIENT_90:
+ rstto_image_viewer_set_orientation (viewer, RSTTO_IMAGE_VIEWER_ORIENT_180);
+ break;
+ case RSTTO_IMAGE_VIEWER_ORIENT_180:
+ rstto_image_viewer_set_orientation (viewer, RSTTO_IMAGE_VIEWER_ORIENT_270);
+ break;
+ case RSTTO_IMAGE_VIEWER_ORIENT_270:
+ rstto_image_viewer_set_orientation (viewer, RSTTO_IMAGE_VIEWER_ORIENT_NONE);
+ break;
}
}
@@ -1876,29 +1869,22 @@ cb_rstto_main_window_rotate_cw (GtkWidget *widget, RsttoMainWindow *window)
static void
cb_rstto_main_window_rotate_ccw (GtkWidget *widget, RsttoMainWindow *window)
{
- RsttoImage *image = NULL;
-
- if (window->priv->iter)
- image = rstto_image_list_iter_get_image (window->priv->iter);
-
- if (image)
+ RsttoImageViewer *viewer = RSTTO_IMAGE_VIEWER(window->priv->image_viewer);
+ switch (rstto_image_viewer_get_orientation (viewer))
{
- switch (rstto_image_get_orientation (image))
- {
- default:
- case RSTTO_IMAGE_ORIENT_NONE:
- rstto_image_set_orientation (image, RSTTO_IMAGE_ORIENT_270);
- break;
- case RSTTO_IMAGE_ORIENT_90:
- rstto_image_set_orientation (image, RSTTO_IMAGE_ORIENT_NONE);
- break;
- case RSTTO_IMAGE_ORIENT_180:
- rstto_image_set_orientation (image, RSTTO_IMAGE_ORIENT_90);
- break;
- case RSTTO_IMAGE_ORIENT_270:
- rstto_image_set_orientation (image, RSTTO_IMAGE_ORIENT_180);
- break;
- }
+ default:
+ case RSTTO_IMAGE_VIEWER_ORIENT_NONE:
+ rstto_image_viewer_set_orientation (viewer, RSTTO_IMAGE_VIEWER_ORIENT_270);
+ break;
+ case RSTTO_IMAGE_VIEWER_ORIENT_90:
+ rstto_image_viewer_set_orientation (viewer, RSTTO_IMAGE_VIEWER_ORIENT_NONE);
+ break;
+ case RSTTO_IMAGE_VIEWER_ORIENT_180:
+ rstto_image_viewer_set_orientation (viewer, RSTTO_IMAGE_VIEWER_ORIENT_90);
+ break;
+ case RSTTO_IMAGE_VIEWER_ORIENT_270:
+ rstto_image_viewer_set_orientation (viewer, RSTTO_IMAGE_VIEWER_ORIENT_180);
+ break;
}
}
More information about the Xfce4-commits
mailing list