[Goodies-commits] r3105 - ristretto/trunk/src
Stephan Arts
stephan at xfce.org
Thu Aug 30 17:05:08 CEST 2007
Author: stephan
Date: 2007-08-30 15:05:08 +0000 (Thu, 30 Aug 2007)
New Revision: 3105
Modified:
ristretto/trunk/src/main.c
ristretto/trunk/src/picture_viewer.c
ristretto/trunk/src/picture_viewer.h
Log:
modified some stuff to make it work with gtk 2.11 (which it doesn't)
Modified: ristretto/trunk/src/main.c
===================================================================
--- ristretto/trunk/src/main.c 2007-08-29 23:01:11 UTC (rev 3104)
+++ ristretto/trunk/src/main.c 2007-08-30 15:05:08 UTC (rev 3105)
@@ -308,8 +308,6 @@
gtk_widget_set_size_request(window, 400, 300);
-
- gtk_container_add(GTK_CONTAINER(s_window), viewer);
gtk_box_pack_start(GTK_BOX(main_hbox), main_vbox1, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(main_vbox1), s_window, TRUE, TRUE, 0);
@@ -386,6 +384,7 @@
gtk_widget_show_all(window);
gtk_widget_hide(menu_item_pause);
+ gtk_container_add(GTK_CONTAINER(s_window), viewer);
gtk_widget_show(viewer);
if(!strcmp(thumbnail_viewer_orientation, "hide"))
Modified: ristretto/trunk/src/picture_viewer.c
===================================================================
--- ristretto/trunk/src/picture_viewer.c 2007-08-29 23:01:11 UTC (rev 3104)
+++ ristretto/trunk/src/picture_viewer.c 2007-08-30 15:05:08 UTC (rev 3105)
@@ -53,7 +53,7 @@
static gboolean
rstto_picture_viewer_refresh(RsttoPictureViewer *viewer);
-static void
+static gboolean
rstto_picture_viewer_set_scroll_adjustments(RsttoPictureViewer *, GtkAdjustment *, GtkAdjustment *);
static void
@@ -324,7 +324,7 @@
}
-static void
+static gboolean
rstto_picture_viewer_set_scroll_adjustments(RsttoPictureViewer *viewer, GtkAdjustment *hadjustment, GtkAdjustment *vadjustment)
{
if(viewer->hadjustment)
@@ -346,11 +346,20 @@
g_signal_connect(G_OBJECT(viewer->hadjustment), "value-changed", (GCallback)viewer->priv->cb_value_changed, viewer);
g_object_ref(viewer->hadjustment);
}
+ else
+ {
+ g_warning("no hadjustment set");
+ }
if(viewer->vadjustment)
{
g_signal_connect(G_OBJECT(viewer->vadjustment), "value-changed", (GCallback)viewer->priv->cb_value_changed, viewer);
g_object_ref(viewer->vadjustment);
}
+ else
+ {
+ g_warning("no vadjustment set");
+ }
+ return TRUE;
}
static void
@@ -644,24 +653,61 @@
static void
cb_rstto_picture_viewer_scroll_event (RsttoPictureViewer *viewer, GdkEventScroll *event)
{
+ GtkWidget *widget = GTK_WIDGET(viewer);
RsttoNavigatorEntry *entry = rstto_navigator_get_file(viewer->priv->navigator);
gdouble scale = rstto_navigator_entry_get_scale(entry);
+ gdouble x = (viewer->hadjustment->value + event->x);
+ gdouble y = (viewer->vadjustment->value + event->y);
+ gint width = gdk_pixbuf_get_width(viewer->priv->src_pixbuf);
+ gint height = gdk_pixbuf_get_height(viewer->priv->src_pixbuf);
switch(event->direction)
{
case GDK_SCROLL_UP:
case GDK_SCROLL_LEFT:
+ x = x / 1.2 - event->x;
+ y = y / 1.2 - event->y;
rstto_navigator_entry_set_scale(entry, scale / 1.2);
rstto_navigator_entry_set_fit_to_screen (entry, FALSE);
break;
case GDK_SCROLL_DOWN:
case GDK_SCROLL_RIGHT:
+ x = x * 1.2 - event->x;
+ y = y * 1.2 - event->y;
rstto_navigator_entry_set_scale(entry, scale * 1.2);
rstto_navigator_entry_set_fit_to_screen (entry, FALSE);
break;
}
- if(rstto_picture_viewer_refresh(viewer))
+ if(viewer->hadjustment)
{
- rstto_picture_viewer_paint(GTK_WIDGET(viewer));
+ viewer->hadjustment->page_size = widget->allocation.width;
+ viewer->hadjustment->upper = width * scale;
+ viewer->hadjustment->lower = 0;
+ viewer->hadjustment->step_increment = 1;
+ viewer->hadjustment->page_increment = 100;
+ viewer->hadjustment->value = x ;
+ if((viewer->hadjustment->value + viewer->hadjustment->page_size) > viewer->hadjustment->upper)
+ {
+ viewer->hadjustment->value = viewer->hadjustment->upper - viewer->hadjustment->page_size;
+ }
+ gtk_adjustment_changed(viewer->hadjustment);
}
-
+ if(viewer->vadjustment)
+ {
+ viewer->vadjustment->page_size = widget->allocation.height;
+ viewer->vadjustment->upper = height * scale;
+ viewer->vadjustment->lower = 0;
+ viewer->vadjustment->step_increment = 1;
+ viewer->vadjustment->page_increment = 100;
+ viewer->vadjustment->value = y ;
+ if((viewer->vadjustment->value + viewer->vadjustment->page_size) > viewer->vadjustment->upper)
+ {
+ viewer->vadjustment->value = viewer->vadjustment->upper - viewer->vadjustment->page_size;
+ }
+ gtk_adjustment_changed(viewer->vadjustment);
+ }
+
+ if (viewer->vadjustment)
+ {
+ gtk_adjustment_value_changed(viewer->vadjustment);
+ }
}
Modified: ristretto/trunk/src/picture_viewer.h
===================================================================
--- ristretto/trunk/src/picture_viewer.h 2007-08-29 23:01:11 UTC (rev 3104)
+++ ristretto/trunk/src/picture_viewer.h 2007-08-30 15:05:08 UTC (rev 3105)
@@ -58,7 +58,7 @@
{
GtkWidgetClass parent_class;
- void (* set_scroll_adjustments) (RsttoPictureViewer *viewer,
+ gboolean (* set_scroll_adjustments) (RsttoPictureViewer *viewer,
GtkAdjustment *hadjustment,
GtkAdjustment *vadjustment);
};
More information about the Goodies-commits
mailing list