[Goodies-commits] r2961 - ristretto/trunk/src

Stephan Arts stephan at xfce.org
Tue Aug 7 14:09:02 CEST 2007


Author: stephan
Date: 2007-08-07 12:09:02 +0000 (Tue, 07 Aug 2007)
New Revision: 2961

Modified:
   ristretto/trunk/src/thumbnail_viewer.c
Log:
cleaned up the thumbnailer code a bit

Modified: ristretto/trunk/src/thumbnail_viewer.c
===================================================================
--- ristretto/trunk/src/thumbnail_viewer.c	2007-08-07 11:19:31 UTC (rev 2960)
+++ ristretto/trunk/src/thumbnail_viewer.c	2007-08-07 12:09:02 UTC (rev 2961)
@@ -32,6 +32,7 @@
 {
     GtkOrientation  orientation;
     RsttoNavigator *navigator;
+    gint dimension;
     gint offset;
 };
 
@@ -130,10 +131,9 @@
     {
         case GTK_ORIENTATION_HORIZONTAL:
             requisition->height = 74;
-            requisition->width = 10;
             break;
         case GTK_ORIENTATION_VERTICAL:
-            requisition->width = 64;
+            requisition->width = 74;
             break;
     }
 }
@@ -145,6 +145,17 @@
 	gint border_width =  0;
     widget->allocation = *allocation;
 
+    switch(viewer->priv->orientation)
+    {
+        case GTK_ORIENTATION_HORIZONTAL:
+            viewer->priv->dimension = widget->allocation.height;
+            break;
+        case GTK_ORIENTATION_VERTICAL:
+            viewer->priv->dimension = widget->allocation.width;
+            break;
+    }
+
+
 	if (GTK_WIDGET_REALIZED (widget))
 	{
  		gdk_window_move_resize (widget->window,
@@ -153,14 +164,6 @@
 			allocation->width - border_width * 2,
 			allocation->height - border_width * 2);
 
-        switch(viewer->priv->orientation)
-        {
-            case GTK_ORIENTATION_HORIZONTAL:
-            case GTK_ORIENTATION_VERTICAL:
-                break;
-        }
-
-
 	}
 }
 
@@ -221,12 +224,7 @@
 	GdkColor color_1;
 
     RsttoNavigatorEntry *current_entry = rstto_navigator_get_file(viewer->priv->navigator);
-    PangoContext *pc = gtk_widget_get_pango_context(widget);
-    PangoLayout *pl = pango_layout_new(pc);
 
-    pango_layout_set_width(pl, (74 - 24) * PANGO_SCALE);
-    pango_layout_set_ellipsize(pl, PANGO_ELLIPSIZE_MIDDLE);
-
     color.pixel = 0xffffffff;
     color_1.pixel = 0;
 	GdkGC *gc = gdk_gc_new(GDK_DRAWABLE(widget->window));
@@ -239,20 +237,15 @@
     for(i = 0; i < rstto_navigator_get_n_files(viewer->priv->navigator); ++i)
     { 
         RsttoNavigatorEntry *entry = rstto_navigator_get_nth_file(viewer->priv->navigator, i);
-        ThunarVfsInfo *info = rstto_navigator_entry_get_info(entry);
         GdkPixbuf *pixbuf = rstto_navigator_entry_get_thumbnail(entry);
 
-
-        pango_layout_set_text(pl, info->display_name, strlen(info->display_name));
-
-
         if(viewer->priv->orientation == GTK_ORIENTATION_HORIZONTAL)
         {
 	        gdk_gc_set_foreground(gc, &color);
             gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
                   gc,
                   TRUE,
-                  20+(i*74)-viewer->priv->offset, 0, 74, 74);
+                  20+(i*viewer->priv->dimension)-viewer->priv->offset, 0, viewer->priv->dimension, viewer->priv->dimension);
 
             
             if(current_entry == entry)
@@ -261,37 +254,26 @@
                              GTK_STATE_SELECTED,
                              GTK_SHADOW_NONE,
                              NULL,NULL,NULL,
-                             20+(i*74)+4-viewer->priv->offset, 4, 66, 50);
+                             (i*viewer->priv->dimension)+24-viewer->priv->offset, 4, viewer->priv->dimension - 8, viewer->priv->dimension - 8);
             else
                 gtk_paint_box(widget->style,
                              widget->window,
                              GTK_STATE_NORMAL,
                              GTK_SHADOW_NONE,
                              NULL,NULL,NULL,
-                             20+(i*74)+4-viewer->priv->offset, 4, 66, 50);
-            /*
-            gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
-                  gc_1,
-                  TRUE,
-                  (i*74)+4, 4, 66 , 50);
-            */
+                             (i*viewer->priv->dimension)+24-viewer->priv->offset, 4, viewer->priv->dimension - 8, viewer->priv->dimension - 8);
 
             if(pixbuf)
                 gdk_draw_pixbuf(GDK_DRAWABLE(widget->window),
                             gc,
                             pixbuf,
                             0, 0,
-                            20 + i * 74 + 5 + (0.5 * (64 - gdk_pixbuf_get_width(pixbuf))) - viewer->priv->offset,
-                            5 + (0.5 *(48 - gdk_pixbuf_get_height(pixbuf))),
+                            20 + i * viewer->priv->dimension + (0.5 * (viewer->priv->dimension - gdk_pixbuf_get_width(pixbuf))) - viewer->priv->offset,
+                            (0.5 *(viewer->priv->dimension  - gdk_pixbuf_get_height(pixbuf))),
                             -1, -1,
                             GDK_RGB_DITHER_NORMAL,
                             0, 0);
 
-            gdk_draw_layout(GDK_DRAWABLE(widget->window),
-                  gc_1,
-                  20+(i*74)+5-viewer->priv->offset, 56,
-                  pl);
-
         }
 
         gtk_paint_box(widget->style,
@@ -299,7 +281,7 @@
                         GTK_STATE_NORMAL,
                         GTK_SHADOW_NONE,
                         NULL,NULL,NULL,
-                        0, 0, 20, 74);
+                        0, 0, 20, viewer->priv->dimension);
         gtk_paint_arrow(widget->style,
                         widget->window,
                         viewer->priv->offset == 0?GTK_STATE_INSENSITIVE:GTK_STATE_NORMAL,
@@ -314,7 +296,7 @@
                         GTK_STATE_NORMAL,
                         GTK_SHADOW_NONE,
                         NULL,NULL,NULL,
-                        widget->allocation.width - 20, 0, 20, 74);
+                        widget->allocation.width - 20, 0, 20, viewer->priv->dimension);
         gtk_paint_arrow(widget->style,
                         widget->window,
                         GTK_STATE_NORMAL,
@@ -322,8 +304,8 @@
                         NULL,NULL,NULL,
                         GTK_ARROW_RIGHT,
                         TRUE,
-                        widget->allocation.width - 19, 20,15,15);
-        gdk_window_clear_area(widget->window, 20 + 74 * (i+1), 0, widget->allocation.width, 74);
+                        widget->allocation.width - 20, 20,15,15);
+        gdk_window_clear_area(widget->window, 20 + viewer->priv->dimension * (i+1), 0, widget->allocation.width, viewer->priv->dimension);
     }
 
 }
@@ -373,7 +355,7 @@
                 if ((event->x < 20) || ((widget->allocation.width - event->x) < 20))
                     n = -1;
                 else
-                    n = (event->x - 20 + viewer->priv->offset) / 74;
+                    n = (event->x - 20 + viewer->priv->offset) / viewer->priv->dimension;
             }
             break;
         case GTK_ORIENTATION_VERTICAL:
@@ -382,7 +364,7 @@
                 if(event->y < 20)
                     n = -1;
                 else
-                    n = (event->y - 20) / 74;
+                    n = (event->y - 20) / viewer->priv->dimension;
 
             }
             break;
@@ -392,7 +374,7 @@
     {
         if (event->x < 20)
         {
-            viewer->priv->offset -= 37;
+            viewer->priv->offset -= viewer->priv->dimension;
             if(viewer->priv->offset < 0)
             {
                 viewer->priv->offset = 0;
@@ -400,10 +382,10 @@
         }
         else
         {
-            viewer->priv->offset += 37;
-            if((rstto_navigator_get_n_files(viewer->priv->navigator) * 74 - viewer->priv->offset) < 74)
+            viewer->priv->offset += viewer->priv->dimension;
+            if((rstto_navigator_get_n_files(viewer->priv->navigator) * viewer->priv->dimension - viewer->priv->offset) < viewer->priv->dimension)
             {
-                viewer->priv->offset = (rstto_navigator_get_n_files(viewer->priv->navigator) - 1) * 74;
+                viewer->priv->offset = (rstto_navigator_get_n_files(viewer->priv->navigator) - 1) * viewer->priv->dimension;
             }
         }
         if(old_offset != viewer->priv->offset)




More information about the Goodies-commits mailing list