[Goodies-commits] r2962 - ristretto/trunk/src
Stephan Arts
stephan at xfce.org
Tue Aug 7 15:08:57 CEST 2007
Author: stephan
Date: 2007-08-07 13:08:57 +0000 (Tue, 07 Aug 2007)
New Revision: 2962
Modified:
ristretto/trunk/src/main.c
ristretto/trunk/src/navigator.c
ristretto/trunk/src/thumbnail_viewer.c
Log:
fixed vertical rendering of thumbnail viewer
Modified: ristretto/trunk/src/main.c
===================================================================
--- ristretto/trunk/src/main.c 2007-08-07 12:09:02 UTC (rev 2961)
+++ ristretto/trunk/src/main.c 2007-08-07 13:08:57 UTC (rev 2962)
@@ -177,7 +177,7 @@
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);
- gtk_box_pack_start(GTK_BOX(main_vbox1), thumbnail_viewer, FALSE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(main_hbox), thumbnail_viewer, FALSE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(main_vbox), menu_bar, FALSE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(main_vbox), app_tool_bar, FALSE, TRUE, 0);
Modified: ristretto/trunk/src/navigator.c
===================================================================
--- ristretto/trunk/src/navigator.c 2007-08-07 12:09:02 UTC (rev 2961)
+++ ristretto/trunk/src/navigator.c 2007-08-07 13:08:57 UTC (rev 2962)
@@ -317,7 +317,7 @@
entry = g_new0(RsttoNavigatorEntry, 1);
entry->info = info;
- entry->pixbuf = gdk_pixbuf_new_from_file_at_size(filename, 64, 48, NULL);
+ entry->pixbuf = gdk_pixbuf_new_from_file_at_size(filename, 64, 64, NULL);
g_free(filename);
}
Modified: ristretto/trunk/src/thumbnail_viewer.c
===================================================================
--- ristretto/trunk/src/thumbnail_viewer.c 2007-08-07 12:09:02 UTC (rev 2961)
+++ ristretto/trunk/src/thumbnail_viewer.c 2007-08-07 13:08:57 UTC (rev 2962)
@@ -100,6 +100,7 @@
gtk_widget_set_events (GTK_WIDGET(viewer),
GDK_BUTTON_PRESS_MASK);
g_signal_connect(G_OBJECT(viewer), "button_press_event", G_CALLBACK(cb_rstto_thumbnailer_button_press_event), NULL);
+ viewer->priv->orientation = GTK_ORIENTATION_VERTICAL;
}
static void
@@ -221,91 +222,157 @@
{
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 = 0;
GdkGC *gc = gdk_gc_new(GDK_DRAWABLE(widget->window));
- GdkGC *gc_1 = gdk_gc_new(GDK_DRAWABLE(widget->window));
gdk_gc_set_foreground(gc, &color);
- gdk_gc_set_foreground(gc_1, &color_1);
-
+
gint i;
- 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);
+ switch (viewer->priv->orientation)
+ {
+ case GTK_ORIENTATION_HORIZONTAL:
+ 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);
- if(viewer->priv->orientation == GTK_ORIENTATION_HORIZONTAL)
- {
- gdk_gc_set_foreground(gc, &color);
- gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
- gc,
- TRUE,
- 20+(i*viewer->priv->dimension)-viewer->priv->offset, 0, viewer->priv->dimension, viewer->priv->dimension);
+ 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);
-
- if(current_entry == entry)
- gtk_paint_box(widget->style,
- widget->window,
- GTK_STATE_SELECTED,
- GTK_SHADOW_NONE,
- NULL,NULL,NULL,
- (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,
- (i*viewer->priv->dimension)+24-viewer->priv->offset, 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(widget->window),
- gc,
- pixbuf,
- 0, 0,
- 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);
+ 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);
+ }
+ gtk_paint_box(widget->style,
+ widget->window,
+ GTK_STATE_NORMAL,
+ GTK_SHADOW_NONE,
+ NULL,NULL,NULL,
+ 0, 0, 16, viewer->priv->dimension);
+ gtk_paint_arrow(widget->style,
+ widget->window,
+ viewer->priv->offset == 0?GTK_STATE_INSENSITIVE:GTK_STATE_NORMAL,
+ GTK_SHADOW_NONE,
+ NULL,NULL,NULL,
+ GTK_ARROW_LEFT,
+ TRUE,
+ 0,viewer->priv->dimension / 2 - 7,14,14);
- }
+ gtk_paint_box(widget->style,
+ widget->window,
+ GTK_STATE_NORMAL,
+ GTK_SHADOW_NONE,
+ NULL,NULL,NULL,
+ widget->allocation.width - 16, 0, 16, viewer->priv->dimension);
+ gtk_paint_arrow(widget->style,
+ widget->window,
+ GTK_STATE_NORMAL,
+ GTK_SHADOW_NONE,
+ NULL,NULL,NULL,
+ GTK_ARROW_RIGHT,
+ TRUE,
+ widget->allocation.width - 16, viewer->priv->dimension / 2 - 7,14,14);
+ gdk_window_clear_area(widget->window, 16 + viewer->priv->dimension * (i+1), 0, widget->allocation.width, viewer->priv->dimension);
+ break;
+ case GTK_ORIENTATION_VERTICAL:
+ 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);
- gtk_paint_box(widget->style,
- widget->window,
- GTK_STATE_NORMAL,
- GTK_SHADOW_NONE,
- NULL,NULL,NULL,
- 0, 0, 20, viewer->priv->dimension);
- gtk_paint_arrow(widget->style,
- widget->window,
- viewer->priv->offset == 0?GTK_STATE_INSENSITIVE:GTK_STATE_NORMAL,
- GTK_SHADOW_NONE,
- NULL,NULL,NULL,
- GTK_ARROW_LEFT,
- TRUE,
- 4,20,15,15);
+ 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);
- gtk_paint_box(widget->style,
- widget->window,
- GTK_STATE_NORMAL,
- GTK_SHADOW_NONE,
- NULL,NULL,NULL,
- widget->allocation.width - 20, 0, 20, viewer->priv->dimension);
- gtk_paint_arrow(widget->style,
- widget->window,
- GTK_STATE_NORMAL,
- GTK_SHADOW_NONE,
- NULL,NULL,NULL,
- GTK_ARROW_RIGHT,
- TRUE,
- 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);
+
+ 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);
+ }
+ gtk_paint_box(widget->style,
+ widget->window,
+ GTK_STATE_NORMAL,
+ GTK_SHADOW_NONE,
+ NULL,NULL,NULL,
+ 0, 0, viewer->priv->dimension, 16);
+ gtk_paint_arrow(widget->style,
+ widget->window,
+ viewer->priv->offset == 0?GTK_STATE_INSENSITIVE:GTK_STATE_NORMAL,
+ GTK_SHADOW_NONE,
+ NULL,NULL,NULL,
+ GTK_ARROW_UP,
+ TRUE,
+ viewer->priv->dimension / 2 - 7,0,14,14);
+
+ gtk_paint_box(widget->style,
+ widget->window,
+ GTK_STATE_NORMAL,
+ GTK_SHADOW_NONE,
+ NULL,NULL,NULL,
+ 0, widget->allocation.height - 16, viewer->priv->dimension, 16);
+ gtk_paint_arrow(widget->style,
+ widget->window,
+ GTK_STATE_NORMAL,
+ GTK_SHADOW_NONE,
+ NULL,NULL,NULL,
+ GTK_ARROW_DOWN,
+ TRUE,
+ viewer->priv->dimension / 2 - 7, widget->allocation.height - 16,14,14);
+ gdk_window_clear_area(widget->window, 0, 16 + viewer->priv->dimension * (i+1), viewer->priv->dimension, widget->allocation.height);
+ break;
}
}
@@ -361,10 +428,10 @@
case GTK_ORIENTATION_VERTICAL:
if(event->button == 1)
{
- if(event->y < 20)
+ if ((event->y < 20) || ((widget->allocation.height - event->y) < 20))
n = -1;
else
- n = (event->y - 20) / viewer->priv->dimension;
+ n = (event->y - 20 + viewer->priv->offset) / viewer->priv->dimension;
}
break;
@@ -372,7 +439,8 @@
}
if (n < 0)
{
- if (event->x < 20)
+ if (((viewer->priv->orientation == GTK_ORIENTATION_HORIZONTAL) && (event->x < 20)) ||
+ ((viewer->priv->orientation == GTK_ORIENTATION_VERTICAL) && (event->y < 20)))
{
viewer->priv->offset -= viewer->priv->dimension;
if(viewer->priv->offset < 0)
More information about the Goodies-commits
mailing list