[Goodies-commits] r2946 - in ristretto/trunk: po src

Stephan Arts stephan at xfce.org
Fri Aug 3 10:32:30 CEST 2007


Author: stephan
Date: 2007-08-03 08:32:29 +0000 (Fri, 03 Aug 2007)
New Revision: 2946

Added:
   ristretto/trunk/src/thumbnail_viewer.c
   ristretto/trunk/src/thumbnail_viewer.h
Modified:
   ristretto/trunk/po/nl.po
   ristretto/trunk/po/ristretto.pot
   ristretto/trunk/src/Makefile.am
   ristretto/trunk/src/main.c
   ristretto/trunk/src/navigator.c
   ristretto/trunk/src/navigator.h
Log:
Added initial code for the thumbnailer widget.



Modified: ristretto/trunk/po/nl.po
===================================================================
--- ristretto/trunk/po/nl.po	2007-08-02 23:53:37 UTC (rev 2945)
+++ ristretto/trunk/po/nl.po	2007-08-03 08:32:29 UTC (rev 2946)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ristretto 0.0.1-svn-r02537\n"
 "Report-Msgid-Bugs-To: stephan at xfce.org\n"
-"POT-Creation-Date: 2007-07-31 01:46+0200\n"
+"POT-Creation-Date: 2007-08-02 19:14+0200\n"
 "PO-Revision-Date: 2007-07-13 00:48+0200\n"
 "Last-Translator: Stephan Arts <stephan at xfce.org>\n"
 "Language-Team: Dutch\n"
@@ -16,48 +16,47 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/main.c:94
+#: ../src/main.c:114
 msgid "_File"
 msgstr "_Bestand"
 
-#: ../src/main.c:96
+#: ../src/main.c:116
 msgid "O_pen Folder"
 msgstr "Map o_penen"
 
-#: ../src/main.c:107
+#: ../src/main.c:127
 msgid "_Edit"
 msgstr "B_ewerken"
 
-#: ../src/main.c:112
+#: ../src/main.c:132
 msgid "_View"
 msgstr "_Beeld"
 
-#: ../src/main.c:113
-msgid "View Zoom toolbar"
-msgstr "Zoom werkbalk tonen"
-
-#: ../src/main.c:119
+#: ../src/main.c:139
 msgid "_Help"
 msgstr "_Help"
 
-#: ../src/main.c:229
+#: ../src/main.c:251
 msgid "Open image"
 msgstr "Afbeelding openen"
 
-#: ../src/main.c:257
+#: ../src/main.c:279
 msgid "Open folder"
 msgstr "Map openen"
 
-#: ../src/main.c:284
+#: ../src/main.c:306
 msgid "Developer:"
 msgstr "Ontwikkelaar:"
 
-#: ../src/main.c:293
+#: ../src/main.c:315
 msgid ""
 "Ristretto is a fast and lightweight picture-viewer for the Xfce desktop "
 "environment."
 msgstr ""
 
-#: ../src/main.c:300
+#: ../src/main.c:322
 msgid "translator-credits"
 msgstr "Stephan Arts <stephan at xfce.org>"
+
+#~ msgid "View Zoom toolbar"
+#~ msgstr "Zoom werkbalk tonen"

Modified: ristretto/trunk/po/ristretto.pot
===================================================================
--- ristretto/trunk/po/ristretto.pot	2007-08-02 23:53:37 UTC (rev 2945)
+++ ristretto/trunk/po/ristretto.pot	2007-08-03 08:32:29 UTC (rev 2946)
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: stephan at xfce.org\n"
-"POT-Creation-Date: 2007-07-31 01:46+0200\n"
+"POT-Creation-Date: 2007-08-02 19:14+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -16,48 +16,44 @@
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../src/main.c:94
+#: ../src/main.c:114
 msgid "_File"
 msgstr ""
 
-#: ../src/main.c:96
+#: ../src/main.c:116
 msgid "O_pen Folder"
 msgstr ""
 
-#: ../src/main.c:107
+#: ../src/main.c:127
 msgid "_Edit"
 msgstr ""
 
-#: ../src/main.c:112
+#: ../src/main.c:132
 msgid "_View"
 msgstr ""
 
-#: ../src/main.c:113
-msgid "View Zoom toolbar"
-msgstr ""
-
-#: ../src/main.c:119
+#: ../src/main.c:139
 msgid "_Help"
 msgstr ""
 
-#: ../src/main.c:229
+#: ../src/main.c:251
 msgid "Open image"
 msgstr ""
 
-#: ../src/main.c:257
+#: ../src/main.c:279
 msgid "Open folder"
 msgstr ""
 
-#: ../src/main.c:284
+#: ../src/main.c:306
 msgid "Developer:"
 msgstr ""
 
-#: ../src/main.c:293
+#: ../src/main.c:315
 msgid ""
 "Ristretto is a fast and lightweight picture-viewer for the Xfce desktop "
 "environment."
 msgstr ""
 
-#: ../src/main.c:300
+#: ../src/main.c:322
 msgid "translator-credits"
 msgstr ""

Modified: ristretto/trunk/src/Makefile.am
===================================================================
--- ristretto/trunk/src/Makefile.am	2007-08-02 23:53:37 UTC (rev 2945)
+++ ristretto/trunk/src/Makefile.am	2007-08-03 08:32:29 UTC (rev 2946)
@@ -3,6 +3,7 @@
 ristretto_SOURCES = \
 	main.c \
 	picture_viewer.c picture_viewer.h \
+	thumbnail_viewer.c thumbnail_viewer.h \
 	navigator.c navigator.h
 
 ristretto_CFLAGS = \

Modified: ristretto/trunk/src/main.c
===================================================================
--- ristretto/trunk/src/main.c	2007-08-02 23:53:37 UTC (rev 2945)
+++ ristretto/trunk/src/main.c	2007-08-03 08:32:29 UTC (rev 2946)
@@ -22,6 +22,7 @@
 #include <thunar-vfs/thunar-vfs.h>
 
 #include "picture_viewer.h"
+#include "thumbnail_viewer.h"
 #include "navigator.h"
 
 static ThunarVfsMimeDatabase *mime_dbase = NULL;
@@ -103,9 +104,13 @@
 	g_signal_connect(G_OBJECT(navigator), "file-changed", G_CALLBACK(cb_rstto_nav_file_changed), window);
 
 	GtkWidget *s_window = gtk_scrolled_window_new(NULL,NULL);
+	GtkWidget *s_window1 = gtk_scrolled_window_new(NULL,NULL);
 	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(s_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(s_window1), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
 	GtkWidget *main_vbox = gtk_vbox_new(0, FALSE);
 	GtkWidget *main_hbox = gtk_hbox_new(0, FALSE);
+    GtkWidget *main_paned = gtk_vpaned_new();
+    GtkWidget *thumbnail_viewer = rstto_thumbnail_viewer_new();
     menu_bar = gtk_menu_bar_new();
 	image_tool_bar = gtk_toolbar_new();
 	app_tool_bar = gtk_toolbar_new();
@@ -163,16 +168,20 @@
 	gtk_tool_item_set_expand(spacer, TRUE);
 	gtk_tool_item_set_homogeneous(spacer, FALSE);
 
-	gtk_widget_set_size_request(window, 300, 200);
+	gtk_widget_set_size_request(window, 400, 300);
 
-    rstto_navigator_set_path(navigator, path);
+    rstto_navigator_set_path(navigator, path, TRUE);
 
 
 	gtk_container_add(GTK_CONTAINER(s_window), viewer);
+	gtk_container_add(GTK_CONTAINER(s_window1), thumbnail_viewer);
     gtk_toolbar_set_orientation(GTK_TOOLBAR(image_tool_bar), GTK_ORIENTATION_VERTICAL);
 	gtk_box_pack_start(GTK_BOX(main_hbox), image_tool_bar, FALSE, TRUE, 0);
-	gtk_box_pack_start(GTK_BOX(main_hbox), s_window, TRUE, TRUE, 0);
+	gtk_box_pack_start(GTK_BOX(main_hbox), main_paned, TRUE, TRUE, 0);
 
+    gtk_paned_pack1(GTK_PANED(main_paned), s_window, TRUE, TRUE);
+    gtk_paned_pack2(GTK_PANED(main_paned), s_window1, FALSE, TRUE);
+
 	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);
 	gtk_box_pack_start(GTK_BOX(main_vbox), main_hbox, TRUE, TRUE, 0);
@@ -262,7 +271,7 @@
 
 		ThunarVfsPath *path = thunar_vfs_path_new(filename, NULL);
 
-        rstto_navigator_set_path(navigator, path);
+        rstto_navigator_set_path(navigator, path, FALSE);
 
         thunar_vfs_path_unref(path);
 
@@ -290,7 +299,7 @@
 
 		ThunarVfsPath *path = thunar_vfs_path_new(filename, NULL);
 
-        rstto_navigator_set_path(navigator, path);
+        rstto_navigator_set_path(navigator, path, TRUE);
 
         thunar_vfs_path_unref(path);
 

Modified: ristretto/trunk/src/navigator.c
===================================================================
--- ristretto/trunk/src/navigator.c	2007-08-02 23:53:37 UTC (rev 2945)
+++ ristretto/trunk/src/navigator.c	2007-08-03 08:32:29 UTC (rev 2946)
@@ -120,7 +120,7 @@
 }
 
 void
-rstto_navigator_set_path(RsttoNavigator *navigator, ThunarVfsPath *path)
+rstto_navigator_set_path(RsttoNavigator *navigator, ThunarVfsPath *path, gboolean index_path)
 {
     if(navigator->path)
     {
@@ -168,12 +168,15 @@
             gchar *file_media = thunar_vfs_mime_info_get_media(file_info->mime_info);
             if(!strcmp(file_media, "image"))
             {
-                navigator->file_list = g_list_prepend(navigator->file_list, file_info);
 
                 if(thunar_vfs_path_equal(path, file_path))
                 {
+                    navigator->file_list = g_list_prepend(navigator->file_list, file_info);
                     navigator->file_iter = navigator->file_list;
                 }
+                else
+                    if(index_path)
+                        navigator->file_list = g_list_prepend(navigator->file_list, file_info);
             }
             else
             {

Modified: ristretto/trunk/src/navigator.h
===================================================================
--- ristretto/trunk/src/navigator.h	2007-08-02 23:53:37 UTC (rev 2945)
+++ ristretto/trunk/src/navigator.h	2007-08-03 08:32:29 UTC (rev 2946)
@@ -63,7 +63,8 @@
 rstto_navigator_new (RsttoPictureViewer *viewer);
 
 void       rstto_navigator_set_path (RsttoNavigator *navigator,
-                                     ThunarVfsPath *path);
+                                     ThunarVfsPath *path,
+                                     gboolean index_path);
 void       rstto_navigator_forward (RsttoNavigator *navigator);
 void       rstto_navigator_back (RsttoNavigator *navigator);
 

Added: ristretto/trunk/src/thumbnail_viewer.c
===================================================================
--- ristretto/trunk/src/thumbnail_viewer.c	                        (rev 0)
+++ ristretto/trunk/src/thumbnail_viewer.c	2007-08-03 08:32:29 UTC (rev 2946)
@@ -0,0 +1,318 @@
+/*
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <config.h>
+#include <gtk/gtk.h>
+#include <gtk/gtkmarshal.h>
+#include <string.h>
+
+#include <pango/pango.h>
+#include <pango/pangoxft.h>
+
+#include "thumbnail_viewer.h"
+
+static void
+rstto_thumbnail_viewer_init(RsttoThumbnailViewer *);
+static void
+rstto_thumbnail_viewer_class_init(RsttoThumbnailViewerClass *);
+static void
+rstto_thumbnail_viewer_destroy(GtkObject *object);
+
+static void
+rstto_thumbnail_viewer_size_request(GtkWidget *, GtkRequisition *);
+static void
+rstto_thumbnail_viewer_size_allocate(GtkWidget *, GtkAllocation *);
+static void
+rstto_thumbnail_viewer_realize(GtkWidget *);
+static void
+rstto_thumbnail_viewer_unrealize(GtkWidget *);
+static gboolean 
+rstto_thumbnail_viewer_expose(GtkWidget *, GdkEventExpose *);
+
+static void
+rstto_thumbnail_viewer_set_scroll_adjustments(RsttoThumbnailViewer *, GtkAdjustment *, GtkAdjustment *);
+
+static void
+cb_rstto_thumbnail_viewer_value_changed(GtkAdjustment *adjustment, RsttoThumbnailViewer *viewer);
+
+
+static GtkWidgetClass *parent_class = NULL;
+
+GType
+rstto_thumbnail_viewer_get_type ()
+{
+	static GType rstto_thumbnail_viewer_type = 0;
+
+	if (!rstto_thumbnail_viewer_type)
+	{
+		static const GTypeInfo rstto_thumbnail_viewer_info = 
+		{
+			sizeof (RsttoThumbnailViewerClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) rstto_thumbnail_viewer_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL,
+			sizeof (RsttoThumbnailViewer),
+			0,
+			(GInstanceInitFunc) rstto_thumbnail_viewer_init,
+			NULL
+		};
+
+		rstto_thumbnail_viewer_type = g_type_register_static (GTK_TYPE_WIDGET, "RsttoThumbnailViewer", &rstto_thumbnail_viewer_info, 0);
+	}
+	return rstto_thumbnail_viewer_type;
+}
+
+
+static void
+rstto_thumbnail_viewer_init(RsttoThumbnailViewer *viewer)
+{
+    viewer->cb_value_changed = cb_rstto_thumbnail_viewer_value_changed;
+
+    gtk_widget_set_redraw_on_allocate(GTK_WIDGET(viewer), TRUE);
+}
+
+static void
+rstto_thumbnail_viewer_class_init(RsttoThumbnailViewerClass *viewer_class)
+{
+	GtkWidgetClass *widget_class;
+	GtkObjectClass *object_class;
+
+	widget_class = (GtkWidgetClass*)viewer_class;
+	object_class = (GtkObjectClass*)viewer_class;
+
+	parent_class = g_type_class_peek_parent(viewer_class);
+
+	viewer_class->set_scroll_adjustments = rstto_thumbnail_viewer_set_scroll_adjustments;
+
+	widget_class->realize = rstto_thumbnail_viewer_realize;
+	widget_class->unrealize = rstto_thumbnail_viewer_unrealize;
+	widget_class->expose_event = rstto_thumbnail_viewer_expose;
+
+	widget_class->size_request = rstto_thumbnail_viewer_size_request;
+	widget_class->size_allocate = rstto_thumbnail_viewer_size_allocate;
+
+	object_class->destroy = rstto_thumbnail_viewer_destroy;
+
+
+	widget_class->set_scroll_adjustments_signal =
+	              g_signal_new ("set_scroll_adjustments",
+	                            G_TYPE_FROM_CLASS (object_class),
+	                            G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+	                            G_STRUCT_OFFSET (RsttoThumbnailViewerClass, set_scroll_adjustments),
+	                            NULL, NULL,
+	                            gtk_marshal_VOID__POINTER_POINTER,
+	                            G_TYPE_NONE, 2,
+	                            GTK_TYPE_ADJUSTMENT,
+	                            GTK_TYPE_ADJUSTMENT);
+
+}
+
+static void
+rstto_thumbnail_viewer_size_request(GtkWidget *widget, GtkRequisition *requisition)
+{
+    RsttoThumbnailViewer *viewer = RSTTO_THUMBNAIL_VIEWER(widget);
+    switch(viewer->orientation)
+    {
+        case GTK_ORIENTATION_HORIZONTAL:
+            requisition->height = 96;
+            requisition->width = 10;
+            break;
+        case GTK_ORIENTATION_VERTICAL:
+            requisition->width = 120;
+            break;
+    }
+}
+
+static void
+rstto_thumbnail_viewer_size_allocate(GtkWidget *widget, GtkAllocation *allocation)
+{
+    RsttoThumbnailViewer *viewer = RSTTO_THUMBNAIL_VIEWER(widget);
+	gint border_width =  0;
+    widget->allocation = *allocation;
+
+	if (GTK_WIDGET_REALIZED (widget))
+	{
+ 		gdk_window_move_resize (widget->window,
+			allocation->x + border_width,
+			allocation->y + border_width,
+			allocation->width - border_width * 2,
+			allocation->height - border_width * 2);
+
+        if(viewer->hadjustment)
+        {
+	    	viewer->hadjustment->page_size = widget->allocation.width;
+	    	viewer->hadjustment->upper = 128*10;
+	    	viewer->hadjustment->lower = 0;
+            viewer->hadjustment->step_increment = 1;
+            viewer->hadjustment->page_increment = 100;
+
+			if((viewer->hadjustment->value + viewer->hadjustment->page_size) > viewer->hadjustment->upper)
+			{
+				viewer->hadjustment->value = viewer->hadjustment->upper - viewer->hadjustment->page_size;
+				gtk_adjustment_value_changed(viewer->hadjustment);
+			}
+
+			gtk_adjustment_changed(viewer->hadjustment);
+        }
+	}
+}
+
+static void
+rstto_thumbnail_viewer_realize(GtkWidget *widget)
+{
+	g_return_if_fail (widget != NULL);
+	g_return_if_fail (RSTTO_IS_THUMBNAIL_VIEWER(widget));
+
+	GdkWindowAttr attributes;
+	gint attributes_mask;
+
+	GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED);
+
+	attributes.x = widget->allocation.x;
+	attributes.y = widget->allocation.y;
+	attributes.width = widget->allocation.width;
+	attributes.height = widget->allocation.height;
+	attributes.wclass = GDK_INPUT_OUTPUT;
+	attributes.window_type = GDK_WINDOW_CHILD;
+	attributes.event_mask = gtk_widget_get_events (widget) | 
+	GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK;
+	attributes.visual = gtk_widget_get_visual (widget);
+	attributes.colormap = gtk_widget_get_colormap (widget);
+
+	attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
+	widget->window = gdk_window_new (gtk_widget_get_parent_window(widget), &attributes, attributes_mask);
+
+    widget->style = gtk_style_attach (widget->style, widget->window);
+	gdk_window_set_user_data (widget->window, widget);
+
+	gtk_style_set_background (widget->style, widget->window, GTK_STATE_ACTIVE);
+}
+
+static void
+rstto_thumbnail_viewer_unrealize(GtkWidget *widget)
+{
+}
+
+static gboolean
+rstto_thumbnail_viewer_expose(GtkWidget *widget, GdkEventExpose *event)
+{
+	GdkColor color;
+	GdkColor color_1;
+
+    PangoContext *pc = gtk_widget_get_pango_context(widget);
+    PangoLayout *pl = pango_layout_new(pc);
+
+    pango_layout_set_text(pl, "Ristretto Image Viewer", 22);
+    pango_layout_set_width(pl, 96 * PANGO_SCALE);
+    pango_layout_set_ellipsize(pl, PANGO_ELLIPSIZE_MIDDLE);
+
+    color.pixel = 0xffffffff;
+    color_1.pixel = 0;
+    RsttoThumbnailViewer *viewer = RSTTO_THUMBNAIL_VIEWER(widget);
+	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);
+    if(viewer->hadjustment)
+    {
+        viewer->hadjustment->page_size = widget->allocation.width;
+        viewer->hadjustment->upper = 72*5;
+        viewer->hadjustment->lower = 0;
+        viewer->hadjustment->step_increment = 1;
+        viewer->hadjustment->page_increment = 100;
+
+        if((viewer->hadjustment->value + viewer->hadjustment->page_size) > viewer->hadjustment->upper)
+        {
+            viewer->hadjustment->value = viewer->hadjustment->upper - viewer->hadjustment->page_size;
+            gtk_adjustment_value_changed(viewer->hadjustment);
+        }
+
+//        gtk_adjustment_changed(viewer->hadjustment);
+    }
+    gint i;
+    for(i = 0; i < 10; ++i)
+    {
+        gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
+                  gc,
+                  TRUE,
+                  (i*128), 0, 128, 128);
+        gdk_draw_rectangle(GDK_DRAWABLE(widget->window),
+                  gc_1,
+                  TRUE,
+                  (i*128)+12, 12, 96, 72);
+        gdk_draw_layout(GDK_DRAWABLE(widget->window),
+                  gc_1,
+                  (i*128)+12, 96,
+                  pl);
+    }
+
+	return FALSE;
+}
+
+static void
+rstto_thumbnail_viewer_destroy(GtkObject *object)
+{
+
+}
+
+static void
+rstto_thumbnail_viewer_set_scroll_adjustments(RsttoThumbnailViewer *viewer, GtkAdjustment *hadjustment, GtkAdjustment *vadjustment)
+{
+	if(viewer->hadjustment)
+	{
+		g_signal_handlers_disconnect_by_func(viewer->hadjustment, viewer->cb_value_changed, viewer);
+		g_object_unref(viewer->hadjustment);
+	}
+	if(viewer->vadjustment)
+	{
+		g_signal_handlers_disconnect_by_func(viewer->vadjustment, viewer->cb_value_changed, viewer);
+		g_object_unref(viewer->vadjustment);
+	}
+
+	viewer->hadjustment = hadjustment;
+	viewer->vadjustment = vadjustment;
+
+	if(viewer->hadjustment)
+	{
+		g_signal_connect(G_OBJECT(viewer->hadjustment), "value-changed", (GCallback)viewer->cb_value_changed, viewer);
+		g_object_ref(viewer->hadjustment);
+	}
+	if(viewer->vadjustment)
+	{
+		g_signal_connect(G_OBJECT(viewer->vadjustment), "value-changed", (GCallback)viewer->cb_value_changed, viewer);
+		g_object_ref(viewer->vadjustment);
+	}
+
+}
+
+static void
+cb_rstto_thumbnail_viewer_value_changed(GtkAdjustment *adjustment, RsttoThumbnailViewer *viewer)
+{
+
+}
+
+GtkWidget *
+rstto_thumbnail_viewer_new()
+{
+	GtkWidget *widget;
+
+	widget = g_object_new(RSTTO_TYPE_THUMBNAIL_VIEWER, NULL);
+
+	return widget;
+}

Added: ristretto/trunk/src/thumbnail_viewer.h
===================================================================
--- ristretto/trunk/src/thumbnail_viewer.h	                        (rev 0)
+++ ristretto/trunk/src/thumbnail_viewer.h	2007-08-03 08:32:29 UTC (rev 2946)
@@ -0,0 +1,71 @@
+/*
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __RISTRETTO_THUMBNAIL_VIEWER_H__
+#define __RISTRETTO_THUMBNAIL_VIEWER_H__
+
+G_BEGIN_DECLS
+
+#define RSTTO_TYPE_THUMBNAIL_VIEWER rstto_thumbnail_viewer_get_type()
+
+#define RSTTO_THUMBNAIL_VIEWER(obj)( \
+        G_TYPE_CHECK_INSTANCE_CAST ((obj), \
+				RSTTO_TYPE_THUMBNAIL_VIEWER, \
+				RsttoThumbnailViewer))
+
+#define RSTTO_IS_THUMBNAIL_VIEWER(obj)( \
+        G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
+				RSTTO_TYPE_THUMBNAIL_VIEWER))
+
+#define RSTTO_THUMBNAIL_VIEWER_CLASS(klass)( \
+        G_TYPE_CHECK_CLASS_CAST ((klass), \
+				RSTTO_TYPE_THUMBNAIL_VIEWER, \
+				RsttoThumbnailViewerClass))
+
+#define RSTTO_IS_THUMBNAIL_VIEWER_CLASS(klass)( \
+        G_TYPE_CHECK_CLASS_TYPE ((klass), \
+				RSTTO_TYPE_THUMBNAIL_VIEWER()))
+
+typedef struct _RsttoThumbnailViewer RsttoThumbnailViewer;
+
+struct _RsttoThumbnailViewer
+{
+	GtkWidget         parent;
+
+    GtkOrientation    orientation;
+	GtkAdjustment    *vadjustment;
+	GtkAdjustment    *hadjustment;
+	void             (*cb_value_changed)(GtkAdjustment *, RsttoThumbnailViewer *);
+};
+
+typedef struct _RsttoThumbnailViewerClass RsttoThumbnailViewerClass;
+
+struct _RsttoThumbnailViewerClass
+{
+	GtkWidgetClass  parent_class;
+
+    void (* set_scroll_adjustments) (RsttoThumbnailViewer *viewer,
+	      GtkAdjustment     *hadjustment,
+	      GtkAdjustment     *vadjustment);
+};
+
+GType      rstto_thumbnail_viewer_get_type();
+
+GtkWidget *rstto_thumbnail_viewer_new();
+
+G_END_DECLS
+
+#endif /* __RISTRETTO_THUMBNAIL_VIEWER_H__ */




More information about the Goodies-commits mailing list