[Goodies-commits] r2977 - ristretto/trunk/src
Stephan Arts
stephan at xfce.org
Thu Aug 9 01:29:44 CEST 2007
Author: stephan
Date: 2007-08-08 23:29:44 +0000 (Wed, 08 Aug 2007)
New Revision: 2977
Modified:
ristretto/trunk/src/thumbnail_viewer.c
Log:
Remove duplicate code
Modified: ristretto/trunk/src/thumbnail_viewer.c
===================================================================
--- ristretto/trunk/src/thumbnail_viewer.c 2007-08-08 22:35:54 UTC (rev 2976)
+++ ristretto/trunk/src/thumbnail_viewer.c 2007-08-08 23:29:44 UTC (rev 2977)
@@ -214,170 +214,94 @@
{
GtkWidget *widget = GTK_WIDGET(viewer);
GdkColor color;
- GdkColor color_1;
RsttoNavigatorEntry *current_entry = rstto_navigator_get_file(viewer->priv->navigator);
color.pixel = 0xffffffff;
- color_1.pixel = 0x0;
GdkGC *gc = gdk_gc_new(GDK_DRAWABLE(widget->window));
- GdkGC *gc_1 = gdk_gc_new(GDK_DRAWABLE(widget->window));
+ GdkGC *gc_bg_normal = gdk_gc_new(GDK_DRAWABLE(widget->window));
+ GdkGC *gc_bg_selected = gdk_gc_new(GDK_DRAWABLE(widget->window));
gdk_gc_set_foreground(gc, &color);
- gdk_gc_set_foreground(gc_1, &color_1);
+ gdk_gc_set_foreground(gc_bg_selected,
+ &(widget->style->bg[GTK_STATE_SELECTED]));
+ gdk_gc_set_foreground(gc_bg_normal,
+ &(widget->style->bg[GTK_STATE_NORMAL]));
gint i;
- switch (viewer->priv->orientation)
- {
- case GTK_ORIENTATION_HORIZONTAL:
- /* FIXME: use gdk_window_clear_area instead */
- gdk_window_clear(widget->window);
- for(i = 0; i < rstto_navigator_get_n_files(viewer->priv->navigator); ++i)
- {
- RsttoNavigatorEntry *entry = rstto_navigator_get_nth_file(viewer->priv->navigator, i);
- GdkPixbuf *pixbuf = rstto_navigator_entry_get_thumbnail(entry);
+ gdk_window_clear(widget->window);
+ for(i = 0; i < rstto_navigator_get_n_files(viewer->priv->navigator); ++i)
+ {
+ RsttoNavigatorEntry *entry = rstto_navigator_get_nth_file(viewer->priv->navigator, i);
+ GdkPixbuf *pixbuf = rstto_navigator_entry_get_thumbnail(entry);
+ GdkPixmap *pixmap = gdk_pixmap_new(widget->window, viewer->priv->dimension, viewer->priv->dimension, -1);
- gdk_gc_set_foreground(gc, &color);
- gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
- gc,
- TRUE,
- 16+(i*viewer->priv->dimension)-viewer->priv->offset,
- 0,
- viewer->priv->dimension,
- viewer->priv->dimension);
+ gdk_draw_rectangle(GDK_DRAWABLE(pixmap),
+ gc,
+ TRUE,
+ 0,
+ 0,
+ viewer->priv->dimension,
+ viewer->priv->dimension);
+ if(current_entry == entry)
+ {
+ gdk_draw_rectangle(GDK_DRAWABLE(pixmap),
+ gc_bg_selected,
+ TRUE,
+ 4, 4,
+ viewer->priv->dimension - 8,
+ viewer->priv->dimension - 8);
+ }
+ else
+ {
+ gdk_draw_rectangle(GDK_DRAWABLE(pixmap),
+ gc_bg_normal,
+ TRUE,
+ 4, 4,
+ viewer->priv->dimension - 8,
+ viewer->priv->dimension - 8);
+ }
-
- if(current_entry == entry)
- {
- gtk_paint_box(widget->style,
- widget->window,
- GTK_STATE_SELECTED,
- GTK_SHADOW_NONE,
- NULL,NULL,NULL,
- (i*viewer->priv->dimension)+20-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,
- (i*viewer->priv->dimension)+20-viewer->priv->offset, 4, viewer->priv->dimension - 8, viewer->priv->dimension - 8);
+ if(pixbuf)
+ {
+ gdk_draw_pixbuf(GDK_DRAWABLE(pixmap),
+ gc,
+ pixbuf,
+ 0, 0,
+ (0.5 * (viewer->priv->dimension - gdk_pixbuf_get_width(pixbuf))),
+ (0.5 * (viewer->priv->dimension - gdk_pixbuf_get_height(pixbuf))),
+ -1, -1,
+ GDK_RGB_DITHER_NORMAL,
+ 0, 0);
+ }
+ switch (viewer->priv->orientation)
+ {
+ case GTK_ORIENTATION_HORIZONTAL:
+ gdk_draw_drawable(GDK_DRAWABLE(widget->window),
+ gc,
+ pixmap,
+ 0, 0,
+ 16+(i*viewer->priv->dimension)-viewer->priv->offset,
+ 0,
+ -1,
+ -1);
- if(pixbuf)
- gdk_draw_pixbuf(GDK_DRAWABLE(widget->window),
- gc,
- pixbuf,
- 0, 0,
- 16 + 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);
-
- if (current_entry == entry)
- {
- GdkPixbufRotation rotation = rstto_navigator_entry_get_rotation(entry);
- gint arc_1 = 5760;
- gint arc_2 = 0;
- switch (rotation)
- {
- case GDK_PIXBUF_ROTATE_NONE:
- break;
- case GDK_PIXBUF_ROTATE_CLOCKWISE:
- arc_2 = -5760;
- break;
- case GDK_PIXBUF_ROTATE_UPSIDEDOWN:
- arc_2 = -11430;
- break;
- case GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE:
- arc_2 = -17190;
- break;
- }
- if (arc_2)
- {
- gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
- gc_1,
- TRUE,
- (viewer->priv->dimension * (i+1))-8-viewer->priv->offset,
- viewer->priv->dimension-24,
- 16,
- 16);
- gdk_draw_arc(GDK_DRAWABLE(widget->window),
- gc,
- FALSE,
- (viewer->priv->dimension * (i+1))-8-viewer->priv->offset,
- viewer->priv->dimension-24,
- 15,
- 15,
- 0, 23040);
- gdk_draw_arc(GDK_DRAWABLE(widget->window),
- gc,
- TRUE,
- (viewer->priv->dimension * (i+1))-8-viewer->priv->offset,
- viewer->priv->dimension-24,
- 15,
- 15,
- arc_1, arc_2);
- }
-
-
- gboolean v_flip = rstto_navigator_entry_get_flip(entry, FALSE);
- gboolean h_flip = rstto_navigator_entry_get_flip(entry, TRUE);
-
- if (v_flip)
- {
- gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
- gc_1,
- TRUE,
- (viewer->priv->dimension * (i+1))-48-viewer->priv->offset,
- viewer->priv->dimension-24,
- 16,
- 16);
- gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
- gc,
- FALSE,
- (viewer->priv->dimension * (i+1))-48-viewer->priv->offset,
- viewer->priv->dimension-24,
- 16,
- 16);
- gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
- gc,
- TRUE,
- (viewer->priv->dimension * (i+1))-48-viewer->priv->offset,
- viewer->priv->dimension-24,
- 16,
- 8);
- }
-
- if (h_flip)
- {
- gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
- gc_1,
- TRUE,
- (viewer->priv->dimension * (i+1))-28-viewer->priv->offset,
- viewer->priv->dimension-24,
- 16,
- 16);
- gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
- gc,
- FALSE,
- (viewer->priv->dimension * (i+1))-28-viewer->priv->offset,
- viewer->priv->dimension-24,
- 16,
- 16);
- gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
- gc,
- TRUE,
- (viewer->priv->dimension * (i+1))-28-viewer->priv->offset,
- viewer->priv->dimension-24,
- 8,
- 16);
- }
- }
-
- }
-
+ break;
+ case GTK_ORIENTATION_VERTICAL:
+ gdk_draw_drawable(GDK_DRAWABLE(widget->window),
+ gc,
+ pixmap,
+ 0, 0,
+ 0,
+ 16+(i*viewer->priv->dimension)-viewer->priv->offset,
+ viewer->priv->dimension,
+ viewer->priv->dimension);
+ break;
+ }
+ }
+ switch (viewer->priv->orientation)
+ {
+ case GTK_ORIENTATION_HORIZONTAL:
gtk_paint_box(widget->style,
widget->window,
GTK_STATE_NORMAL,
@@ -407,158 +331,8 @@
GTK_ARROW_RIGHT,
TRUE,
widget->allocation.width - 16, viewer->priv->dimension / 2 - 7,14,14);
-
-
break;
case GTK_ORIENTATION_VERTICAL:
- /* FIXME: use gdk_window_clear_area instead */
- gdk_window_clear(widget->window);
- for(i = 0; i < rstto_navigator_get_n_files(viewer->priv->navigator); ++i)
- {
- RsttoNavigatorEntry *entry = rstto_navigator_get_nth_file(viewer->priv->navigator, i);
- GdkPixbuf *pixbuf = rstto_navigator_entry_get_thumbnail(entry);
-
- gdk_gc_set_foreground(gc, &color);
- gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
- gc,
- TRUE,
- 0, 16+(i*viewer->priv->dimension)-viewer->priv->offset, viewer->priv->dimension, viewer->priv->dimension);
-
-
- if(current_entry == entry)
- gtk_paint_box(widget->style,
- widget->window,
- GTK_STATE_SELECTED,
- GTK_SHADOW_NONE,
- NULL,NULL,NULL,
- 4, (i*viewer->priv->dimension)+20-viewer->priv->offset, 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,
- 4, (i*viewer->priv->dimension)+20-viewer->priv->offset, viewer->priv->dimension - 8, viewer->priv->dimension - 8);
-
- if(pixbuf)
- gdk_draw_pixbuf(GDK_DRAWABLE(widget->window),
- gc,
- pixbuf,
- 0, 0,
- (0.5 *(viewer->priv->dimension - gdk_pixbuf_get_width(pixbuf))),
- 16 + i * viewer->priv->dimension + (0.5 * (viewer->priv->dimension - gdk_pixbuf_get_height(pixbuf))) - viewer->priv->offset,
- -1, -1,
- GDK_RGB_DITHER_NORMAL,
- 0, 0);
- if (current_entry == entry)
- {
- gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
- gc_1,
- TRUE,
- 4,
- ((i+1)*viewer->priv->dimension)-8-viewer->priv->offset,
- viewer->priv->dimension - 8,
- 20);
- GdkPixbufRotation rotation = rstto_navigator_entry_get_rotation(entry);
- gint arc_1 = 5760;
- gint arc_2 = 0;
- switch (rotation)
- {
- case GDK_PIXBUF_ROTATE_NONE:
- break;
- case GDK_PIXBUF_ROTATE_CLOCKWISE:
- arc_2 = -5760;
- break;
- case GDK_PIXBUF_ROTATE_UPSIDEDOWN:
- arc_2 = -11430;
- break;
- case GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE:
- arc_2 = -17190;
- break;
- }
- if (arc_2)
- {
- gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
- gc_1,
- TRUE,
- viewer->priv->dimension-24,
- (viewer->priv->dimension * (i+1))-8,
- 16,
- 16);
- gdk_draw_arc(GDK_DRAWABLE(widget->window),
- gc,
- FALSE,
- viewer->priv->dimension-24,
- (viewer->priv->dimension * (i+1))-8,
- 15,
- 15,
- 0, 23040);
- gdk_draw_arc(GDK_DRAWABLE(widget->window),
- gc,
- TRUE,
- viewer->priv->dimension-24,
- (viewer->priv->dimension * (i+1))-8,
- 15,
- 15,
- arc_1, arc_2);
- }
-
-
- gboolean v_flip = rstto_navigator_entry_get_flip(entry, FALSE);
- gboolean h_flip = rstto_navigator_entry_get_flip(entry, TRUE);
-
- if (v_flip)
- {
- gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
- gc_1,
- TRUE,
- viewer->priv->dimension-64,
- (viewer->priv->dimension * (i+1))-8,
- 16,
- 16);
- gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
- gc,
- FALSE,
- viewer->priv->dimension-64,
- (viewer->priv->dimension * (i+1))-8,
- 16,
- 16);
- gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
- gc,
- TRUE,
- viewer->priv->dimension-64,
- (viewer->priv->dimension * (i+1))-8,
- 16,
- 8);
- }
-
- if (h_flip)
- {
- gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
- gc_1,
- TRUE,
- viewer->priv->dimension-44,
- (viewer->priv->dimension * (i+1))-8,
- 16,
- 16);
- gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
- gc,
- FALSE,
- viewer->priv->dimension-44,
- (viewer->priv->dimension * (i+1))-8,
- 16,
- 16);
- gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
- gc,
- TRUE,
- viewer->priv->dimension-44,
- (viewer->priv->dimension * (i+1))-8,
- 8,
- 16);
- }
- }
- }
-
gtk_paint_box(widget->style,
widget->window,
GTK_STATE_NORMAL,
@@ -590,7 +364,6 @@
viewer->priv->dimension / 2 - 7, widget->allocation.height - 16,14,14);
break;
}
-
}
static void
More information about the Goodies-commits
mailing list