[Goodies-commits] r3246 - in ristretto/trunk: . icons/16x16 po src

Stephan Arts stephan at xfce.org
Tue Sep 25 06:00:53 CEST 2007


Author: stephan
Date: 2007-09-25 04:00:53 +0000 (Tue, 25 Sep 2007)
New Revision: 3246

Added:
   ristretto/trunk/src/main_window.c
   ristretto/trunk/src/main_window.h
Modified:
   ristretto/trunk/configure.in.in
   ristretto/trunk/icons/16x16/ristretto.png
   ristretto/trunk/po/POTFILES.in
   ristretto/trunk/po/de.po
   ristretto/trunk/po/fi.po
   ristretto/trunk/po/fr.po
   ristretto/trunk/po/nb_NO.po
   ristretto/trunk/po/nl.po
   ristretto/trunk/po/ristretto.pot
   ristretto/trunk/src/Makefile.am
   ristretto/trunk/src/main.c
   ristretto/trunk/src/picture_viewer.c
   ristretto/trunk/src/thumbnail_viewer.c
Log:
Cleanup the main_window code



Modified: ristretto/trunk/configure.in.in
===================================================================
--- ristretto/trunk/configure.in.in	2007-09-25 01:02:44 UTC (rev 3245)
+++ ristretto/trunk/configure.in.in	2007-09-25 04:00:53 UTC (rev 3246)
@@ -107,6 +107,7 @@
 XDT_I18N([@LINGUAS@])
 
 
+XDT_CHECK_PACKAGE([LIBEXIF], [libexif], [0.6.0])
 XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.10.0])
 XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.12.0])
 XDT_CHECK_PACKAGE([GOBJECT], [gobject-2.0], [2.12.0])

Modified: ristretto/trunk/icons/16x16/ristretto.png
===================================================================
(Binary files differ)

Modified: ristretto/trunk/po/POTFILES.in
===================================================================
--- ristretto/trunk/po/POTFILES.in	2007-09-25 01:02:44 UTC (rev 3245)
+++ ristretto/trunk/po/POTFILES.in	2007-09-25 04:00:53 UTC (rev 3246)
@@ -1,4 +1,5 @@
 src/main.c
+src/main_window.c
 src/navigator.c
 src/picture_viewer.c
 src/thumbnail_viewer.c

Modified: ristretto/trunk/po/de.po
===================================================================
--- ristretto/trunk/po/de.po	2007-09-25 01:02:44 UTC (rev 3245)
+++ ristretto/trunk/po/de.po	2007-09-25 04:00:53 UTC (rev 3246)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ristretto\n"
 "Report-Msgid-Bugs-To: stephan at xfce.org\n"
-"POT-Creation-Date: 2007-09-12 19:18+0200\n"
+"POT-Creation-Date: 2007-09-25 06:00+0200\n"
 "PO-Revision-Date: 2007-07-03 00:59:21+0200\n"
 "Last-Translator: stephan arts <stephan at xfce.org>\n"
 "Language-Team: German\n"
@@ -15,89 +15,72 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../src/main.c:180
+#. Create 'File' menu
+#: ../src/main_window.c:219
 msgid "_File"
 msgstr "_Datei"
 
-#: ../src/main.c:182
+#: ../src/main_window.c:226
 msgid "O_pen Folder"
 msgstr "_Ordner öffnen"
 
-#: ../src/main.c:183
+#: ../src/main_window.c:227
 msgid "_Recently used"
 msgstr "_Zuletzt geöffnet"
 
-#: ../src/main.c:209
+#. Create 'Edit' menu
+#: ../src/main_window.c:254
 msgid "_Edit"
 msgstr "_Bearbeiten"
 
-#: ../src/main.c:210
-msgid "Rotate _Left"
-msgstr "_Links drehen"
-
-#: ../src/main.c:211
-msgid "Rotate _Right"
-msgstr "_Rechts drehen"
-
-#: ../src/main.c:212
-msgid "Flip _Vertically"
-msgstr "_Vertikal spiegeln"
-
-#: ../src/main.c:213
-msgid "Flip _Horizontally"
-msgstr "_Horizontal spiegeln"
-
-#: ../src/main.c:214
-msgid "_Open with..."
+#: ../src/main_window.c:259
+msgid "Open with..."
 msgstr "Ö_fnen mit..."
 
-#: ../src/main.c:222 ../src/main.c:571
+#: ../src/main_window.c:265
 msgid "No applications available"
 msgstr "Keine Programme verfügbar"
 
-#.
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_rotate_left);
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_rotate_right);
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_flip_v);
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_flip_h);
-#.
-#: ../src/main.c:232
+#. Create 'View' menu
+#: ../src/main_window.c:273
 msgid "_View"
 msgstr "_Ansicht"
 
-#: ../src/main.c:233
+#: ../src/main_window.c:280
 msgid "Show Toolbar"
 msgstr "_Werkzeugleiste anzeigen"
 
-#: ../src/main.c:234
+#: ../src/main_window.c:281
 msgid "Thumbnail Viewer"
 msgstr "Vor_schaubilder"
 
-#: ../src/main.c:248
+#: ../src/main_window.c:299
 msgid "Show Horizontally"
 msgstr "_Horizontal anzeigen"
 
-#: ../src/main.c:249
+#: ../src/main_window.c:303
 msgid "Show Vertically"
 msgstr "_Vertikal anzeigen"
 
-#: ../src/main.c:250
+#: ../src/main_window.c:307
 msgid "Hide"
 msgstr "Ver_bergen"
 
-#: ../src/main.c:256
+#. Create 'Go' menu
+#: ../src/main_window.c:317
 msgid "_Go"
 msgstr "_Gehe zu"
 
-#: ../src/main.c:284
+#. Create 'Help' menu
+#: ../src/main_window.c:346
 msgid "_Help"
 msgstr "_Hilfe"
 
-#: ../src/main.c:491
+#: ../src/main_window.c:673
 msgid "Developer:"
 msgstr "Entwickler:"
 
-#: ../src/main.c:501
+#: ../src/main_window.c:683
 msgid ""
 "Ristretto is a fast and lightweight picture-viewer for the Xfce desktop "
 "environment."
@@ -105,27 +88,22 @@
 "Ristretto ist ein schneller und leichter Bildbetrachter für die "
 "Arbeitsumgebung Xfce."
 
-#: ../src/main.c:509
+#: ../src/main_window.c:691
 msgid "translator-credits"
 msgstr "Christian Dywan <christian at twotoasts.de>"
 
-#: ../src/main.c:812
+#: ../src/main_window.c:711
 msgid "Open image"
 msgstr "Bild öffnen"
 
-#: ../src/main.c:848
+#: ../src/main_window.c:746
 msgid "Could not open file"
 msgstr "Datei konnte nicht geöffnet werden"
 
-#: ../src/main.c:860
+#: ../src/main_window.c:756
 msgid "Open folder"
 msgstr "_Ordner öffnen"
 
-#: ../src/main.c:1036
-msgid ""
-"Are you sure you want to clear ristretto's list of recently opened documents?"
-msgstr "Sind Sie sicher, dass Sie ristrettos Liste der zuletzt geöffneten Dokumente leeren wollen?"
-
 #: ../ristretto.desktop.in.h:1
 msgid "Image Viewer"
 msgstr "Bildbetrachter"
@@ -138,5 +116,24 @@
 msgid "Xfce Image viewer"
 msgstr "Xfce Bildbetrachter"
 
+#~ msgid "Rotate _Left"
+#~ msgstr "_Links drehen"
+
+#~ msgid "Rotate _Right"
+#~ msgstr "_Rechts drehen"
+
+#~ msgid "Flip _Vertically"
+#~ msgstr "_Vertikal spiegeln"
+
+#~ msgid "Flip _Horizontally"
+#~ msgstr "_Horizontal spiegeln"
+
+#~ msgid ""
+#~ "Are you sure you want to clear ristretto's list of recently opened "
+#~ "documents?"
+#~ msgstr ""
+#~ "Sind Sie sicher, dass Sie ristrettos Liste der zuletzt geöffneten "
+#~ "Dokumente leeren wollen?"
+
 #~ msgid "_Clear"
 #~ msgstr "_Leeren"

Modified: ristretto/trunk/po/fi.po
===================================================================
--- ristretto/trunk/po/fi.po	2007-09-25 01:02:44 UTC (rev 3245)
+++ ristretto/trunk/po/fi.po	2007-09-25 04:00:53 UTC (rev 3246)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ristretto 0.0.5\n"
 "Report-Msgid-Bugs-To: stephan at xfce.org\n"
-"POT-Creation-Date: 2007-09-14 11:03+0300\n"
+"POT-Creation-Date: 2007-09-25 06:00+0200\n"
 "PO-Revision-Date: 2007-09-14 11:19+0300\n"
 "Last-Translator: Jari Rahkonen <jari.rahkonen at pp1.inet.fi>\n"
 "Language-Team: Finnish <xfce-i18n at xfce.org>\n"
@@ -15,117 +15,93 @@
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../src/main.c:187
+#. Create 'File' menu
+#: ../src/main_window.c:219
 msgid "_File"
 msgstr "_Tiedosto"
 
-#: ../src/main.c:189
+#: ../src/main_window.c:226
 msgid "O_pen Folder"
 msgstr "Avaa _hakemisto"
 
-#: ../src/main.c:190
+#: ../src/main_window.c:227
 msgid "_Recently used"
 msgstr "_Viimeaikaiset"
 
-#: ../src/main.c:217
+#. Create 'Edit' menu
+#: ../src/main_window.c:254
 msgid "_Edit"
 msgstr "_Muokkaa"
 
-#: ../src/main.c:218
-msgid "Rotate _Left"
-msgstr "Käännä _vasempaan"
-
-#: ../src/main.c:219
-msgid "Rotate _Right"
-msgstr "Käännä _oikeaan"
-
-#: ../src/main.c:220
-msgid "Flip _Vertically"
-msgstr "Peilaa _pystysuunnassa"
-
-#: ../src/main.c:221
-msgid "Flip _Horizontally"
-msgstr "Peilaa v_aakasuunnassa"
-
-#: ../src/main.c:222
-msgid "_Open with..."
+#: ../src/main_window.c:259
+msgid "Open with..."
 msgstr "_Avaa sovelluksessa..."
 
-#: ../src/main.c:230 ../src/main.c:617 ../src/main.c:636
+#: ../src/main_window.c:265
 msgid "No applications available"
 msgstr "Sovelluksia ei saatavilla"
 
-#.
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_rotate_left);
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_rotate_right);
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_flip_v);
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_flip_h);
-#.
-#: ../src/main.c:240
+#. Create 'View' menu
+#: ../src/main_window.c:273
 msgid "_View"
 msgstr "_Näytä"
 
-#: ../src/main.c:241
+#: ../src/main_window.c:280
 msgid "Show Toolbar"
 msgstr "Näytä työkalupalkki"
 
-#: ../src/main.c:242
+#: ../src/main_window.c:281
 msgid "Thumbnail Viewer"
 msgstr "Pienoiskuvat"
 
-#: ../src/main.c:256
+#: ../src/main_window.c:299
 msgid "Show Horizontally"
 msgstr "Näytä vaakasuunnassa"
 
-#: ../src/main.c:257
+#: ../src/main_window.c:303
 msgid "Show Vertically"
 msgstr "Näytä pystysuunnassa"
 
-#: ../src/main.c:258
+#: ../src/main_window.c:307
 msgid "Hide"
 msgstr "Piilota"
 
-#: ../src/main.c:264
+#. Create 'Go' menu
+#: ../src/main_window.c:317
 msgid "_Go"
 msgstr "_Siirry"
 
-#: ../src/main.c:296
+#. Create 'Help' menu
+#: ../src/main_window.c:346
 msgid "_Help"
 msgstr "_Ohje"
 
-#: ../src/main.c:505
+#: ../src/main_window.c:673
 msgid "Developer:"
 msgstr "Kehittäjä:"
 
-#: ../src/main.c:515
+#: ../src/main_window.c:683
 msgid ""
 "Ristretto is a fast and lightweight picture-viewer for the Xfce desktop "
 "environment."
-msgstr ""
-"Ristretto on nopea ja kevyt kuvankatseluohjelma Xfce-työpöydälle."
+msgstr "Ristretto on nopea ja kevyt kuvankatseluohjelma Xfce-työpöydälle."
 
-#: ../src/main.c:523
+#: ../src/main_window.c:691
 msgid "translator-credits"
 msgstr "Jari Rahkonen <jari.rahkonen at pp1.inet.fi>"
 
-#: ../src/main.c:866
+#: ../src/main_window.c:711
 msgid "Open image"
 msgstr "Avaa kuva"
 
-#: ../src/main.c:901
+#: ../src/main_window.c:746
 msgid "Could not open file"
 msgstr "Tiedoston avaus ei onnistunut"
 
-#: ../src/main.c:913
+#: ../src/main_window.c:756
 msgid "Open folder"
 msgstr "Avaa hakemisto"
 
-#: ../src/main.c:1089
-msgid ""
-"Are you sure you want to clear ristretto's list of recently opened documents?"
-msgstr ""
-"Haluatko varmasti tyhjentää ristretton viimeaikaisten tiedostojen listan?"
-
 #: ../ristretto.desktop.in.h:1
 msgid "Image Viewer"
 msgstr "Kuvankatseluohjelma"
@@ -137,3 +113,21 @@
 #: ../ristretto.desktop.in.h:3
 msgid "Xfce Image viewer"
 msgstr "Xfce:n kuvankatseluohjelma"
+
+#~ msgid "Rotate _Left"
+#~ msgstr "Käännä _vasempaan"
+
+#~ msgid "Rotate _Right"
+#~ msgstr "Käännä _oikeaan"
+
+#~ msgid "Flip _Vertically"
+#~ msgstr "Peilaa _pystysuunnassa"
+
+#~ msgid "Flip _Horizontally"
+#~ msgstr "Peilaa v_aakasuunnassa"
+
+#~ msgid ""
+#~ "Are you sure you want to clear ristretto's list of recently opened "
+#~ "documents?"
+#~ msgstr ""
+#~ "Haluatko varmasti tyhjentää ristretton viimeaikaisten tiedostojen listan?"

Modified: ristretto/trunk/po/fr.po
===================================================================
--- ristretto/trunk/po/fr.po	2007-09-25 01:02:44 UTC (rev 3245)
+++ ristretto/trunk/po/fr.po	2007-09-25 04:00:53 UTC (rev 3246)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ristretto\n"
 "Report-Msgid-Bugs-To: stephan at xfce.org\n"
-"POT-Creation-Date: 2007-09-12 19:18+0200\n"
+"POT-Creation-Date: 2007-09-25 06:00+0200\n"
 "PO-Revision-Date: 2007-09-12 22:11+0100\n"
 "Last-Translator: Mike Massonnet <mmassonnet at gmail.com>\n"
 "Language-Team: French\n"
@@ -15,113 +15,95 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../src/main.c:180
+#. Create 'File' menu
+#: ../src/main_window.c:219
 msgid "_File"
 msgstr "_Fichier"
 
-#: ../src/main.c:182
+#: ../src/main_window.c:226
 msgid "O_pen Folder"
 msgstr "O_uvrir un répertoire"
 
-#: ../src/main.c:183
+#: ../src/main_window.c:227
 msgid "_Recently used"
 msgstr "_Récemment ouvert"
 
-#: ../src/main.c:209
+#. Create 'Edit' menu
+#: ../src/main_window.c:254
 msgid "_Edit"
 msgstr "_Editer"
 
-#: ../src/main.c:210
-msgid "Rotate _Left"
-msgstr "Tourner vers la _gauche"
-
-#: ../src/main.c:211
-msgid "Rotate _Right"
-msgstr "Tourner vers la _droite"
-
-#: ../src/main.c:212
-msgid "Flip _Vertically"
-msgstr "Retourner _verticalement"
-
-#: ../src/main.c:213
-msgid "Flip _Horizontally"
-msgstr "Retourner _horizontalement"
-
-#: ../src/main.c:214
-msgid "_Open with..."
+#: ../src/main_window.c:259
+msgid "Open with..."
 msgstr "_Ouvrir avec..."
 
-#: ../src/main.c:222
-#: ../src/main.c:571
+#: ../src/main_window.c:265
 msgid "No applications available"
 msgstr "Aucune application disponible"
 
-#.
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_rotate_left);
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_rotate_right);
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_flip_v);
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_flip_h);
-#.
-#: ../src/main.c:232
+#. Create 'View' menu
+#: ../src/main_window.c:273
 msgid "_View"
 msgstr "_Afficher"
 
-#: ../src/main.c:233
+#: ../src/main_window.c:280
 msgid "Show Toolbar"
 msgstr "Barre d'outils"
 
-#: ../src/main.c:234
+#: ../src/main_window.c:281
 msgid "Thumbnail Viewer"
 msgstr "Vue des miniatures"
 
-#: ../src/main.c:248
+#: ../src/main_window.c:299
 msgid "Show Horizontally"
 msgstr "Afficher horizontalement"
 
-#: ../src/main.c:249
+#: ../src/main_window.c:303
 msgid "Show Vertically"
 msgstr "Afficher verticalement"
 
-#: ../src/main.c:250
+#: ../src/main_window.c:307
 msgid "Hide"
 msgstr "Cacher"
 
-#: ../src/main.c:256
+#. Create 'Go' menu
+#: ../src/main_window.c:317
 msgid "_Go"
 msgstr "A_ller"
 
-#: ../src/main.c:284
+#. Create 'Help' menu
+#: ../src/main_window.c:346
 msgid "_Help"
 msgstr "A_ide"
 
-#: ../src/main.c:491
+#: ../src/main_window.c:673
 msgid "Developer:"
 msgstr "Développeur :"
 
-#: ../src/main.c:501
-msgid "Ristretto is a fast and lightweight picture-viewer for the Xfce desktop environment."
-msgstr "Ristretto est un visualiseur d'images léger et rapide pour l'environnement de bureau Xfce."
+#: ../src/main_window.c:683
+msgid ""
+"Ristretto is a fast and lightweight picture-viewer for the Xfce desktop "
+"environment."
+msgstr ""
+"Ristretto est un visualiseur d'images léger et rapide pour l'environnement "
+"de bureau Xfce."
 
-#: ../src/main.c:509
+#: ../src/main_window.c:691
 msgid "translator-credits"
 msgstr "Mike Massonnet <mmassonnet at xfce.org>"
 
-#: ../src/main.c:812
+#: ../src/main_window.c:711
 msgid "Open image"
 msgstr "Ouvrir une image"
 
-#: ../src/main.c:848
+#: ../src/main_window.c:746
 msgid "Could not open file"
 msgstr "Impossible d'ouvrir le fichier"
 
-#: ../src/main.c:860
+#: ../src/main_window.c:756
 msgid "Open folder"
 msgstr "Ouvrir un répertoire"
 
-#: ../src/main.c:1036
-msgid "Are you sure you want to clear ristretto's list of recently opened documents?"
-msgstr "Êtes-vous certain de vouloir supprimer la liste des documents récemment ouverts de Ristretto ?"
-
 #: ../ristretto.desktop.in.h:1
 msgid "Image Viewer"
 msgstr "Visualiseur d'Images"
@@ -134,3 +116,21 @@
 msgid "Xfce Image viewer"
 msgstr "Visualiseur d'Images pour Xfce"
 
+#~ msgid "Rotate _Left"
+#~ msgstr "Tourner vers la _gauche"
+
+#~ msgid "Rotate _Right"
+#~ msgstr "Tourner vers la _droite"
+
+#~ msgid "Flip _Vertically"
+#~ msgstr "Retourner _verticalement"
+
+#~ msgid "Flip _Horizontally"
+#~ msgstr "Retourner _horizontalement"
+
+#~ msgid ""
+#~ "Are you sure you want to clear ristretto's list of recently opened "
+#~ "documents?"
+#~ msgstr ""
+#~ "Êtes-vous certain de vouloir supprimer la liste des documents récemment "
+#~ "ouverts de Ristretto ?"

Modified: ristretto/trunk/po/nb_NO.po
===================================================================
--- ristretto/trunk/po/nb_NO.po	2007-09-25 01:02:44 UTC (rev 3245)
+++ ristretto/trunk/po/nb_NO.po	2007-09-25 04:00:53 UTC (rev 3246)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ristretto\n"
 "Report-Msgid-Bugs-To: stephan at xfce.org\n"
-"POT-Creation-Date: 2007-09-12 19:18+0200\n"
+"POT-Creation-Date: 2007-09-25 06:00+0200\n"
 "PO-Revision-Date: 2007-08-29 21:12+0200\n"
 "Last-Translator: Terje Uriansrud <ter at operamail.com>\n"
 "Language-Team: Norwegian Bokmal\n"
@@ -16,115 +16,93 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/main.c:180
+#. Create 'File' menu
+#: ../src/main_window.c:219
 msgid "_File"
 msgstr "_Fil"
 
-#: ../src/main.c:182
+#: ../src/main_window.c:226
 msgid "O_pen Folder"
 msgstr "Åp_ne mappe"
 
-#: ../src/main.c:183
+#: ../src/main_window.c:227
 msgid "_Recently used"
 msgstr "Nylig _brukt"
 
-#: ../src/main.c:209
+#. Create 'Edit' menu
+#: ../src/main_window.c:254
 msgid "_Edit"
 msgstr "_Rediger"
 
-#: ../src/main.c:210
-msgid "Rotate _Left"
-msgstr "Roter _venstre"
-
-#: ../src/main.c:211
-msgid "Rotate _Right"
-msgstr "Roter _høyre"
-
-#: ../src/main.c:212
-msgid "Flip _Vertically"
-msgstr "Vend _loddrett"
-
-#: ../src/main.c:213
-msgid "Flip _Horizontally"
-msgstr "Vend v_annrett"
-
-#: ../src/main.c:214
-msgid "_Open with..."
+#: ../src/main_window.c:259
+msgid "Open with..."
 msgstr ""
 
-#: ../src/main.c:222 ../src/main.c:571
+#: ../src/main_window.c:265
 msgid "No applications available"
 msgstr ""
 
-#.
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_rotate_left);
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_rotate_right);
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_flip_v);
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_flip_h);
-#.
-#: ../src/main.c:232
+#. Create 'View' menu
+#: ../src/main_window.c:273
 msgid "_View"
 msgstr "_Vis"
 
-#: ../src/main.c:233
+#: ../src/main_window.c:280
 msgid "Show Toolbar"
 msgstr ""
 
-#: ../src/main.c:234
+#: ../src/main_window.c:281
 msgid "Thumbnail Viewer"
 msgstr "Miniatyrvisning"
 
-#: ../src/main.c:248
+#: ../src/main_window.c:299
 msgid "Show Horizontally"
 msgstr "Vis vannrett"
 
-#: ../src/main.c:249
+#: ../src/main_window.c:303
 msgid "Show Vertically"
 msgstr "Vis loddrett"
 
-#: ../src/main.c:250
+#: ../src/main_window.c:307
 msgid "Hide"
 msgstr "Skjul"
 
-#: ../src/main.c:256
+#. Create 'Go' menu
+#: ../src/main_window.c:317
 msgid "_Go"
 msgstr "_Gå"
 
-#: ../src/main.c:284
+#. Create 'Help' menu
+#: ../src/main_window.c:346
 msgid "_Help"
 msgstr "_Hjelp"
 
-#: ../src/main.c:491
+#: ../src/main_window.c:673
 msgid "Developer:"
 msgstr "Utvikler:"
 
-#: ../src/main.c:501
+#: ../src/main_window.c:683
 msgid ""
 "Ristretto is a fast and lightweight picture-viewer for the Xfce desktop "
 "environment."
 msgstr "Ristretto er en rask og lettvekts bildefremviser for Xfce skrivebordet"
 
-#: ../src/main.c:509
+#: ../src/main_window.c:691
 msgid "translator-credits"
 msgstr "Oversettelser"
 
-#: ../src/main.c:812
+#: ../src/main_window.c:711
 msgid "Open image"
 msgstr "Åpne bilde"
 
-#: ../src/main.c:848
+#: ../src/main_window.c:746
 msgid "Could not open file"
 msgstr ""
 
-#: ../src/main.c:860
+#: ../src/main_window.c:756
 msgid "Open folder"
 msgstr "Åpne mappe"
 
-#: ../src/main.c:1036
-msgid ""
-"Are you sure you want to clear ristretto's list of recently opened documents?"
-msgstr ""
-
 #: ../ristretto.desktop.in.h:1
 msgid "Image Viewer"
 msgstr "Bildefremviser"
@@ -136,3 +114,15 @@
 #: ../ristretto.desktop.in.h:3
 msgid "Xfce Image viewer"
 msgstr "Xfce  Bildefremviser"
+
+#~ msgid "Rotate _Left"
+#~ msgstr "Roter _venstre"
+
+#~ msgid "Rotate _Right"
+#~ msgstr "Roter _høyre"
+
+#~ msgid "Flip _Vertically"
+#~ msgstr "Vend _loddrett"
+
+#~ msgid "Flip _Horizontally"
+#~ msgstr "Vend v_annrett"

Modified: ristretto/trunk/po/nl.po
===================================================================
--- ristretto/trunk/po/nl.po	2007-09-25 01:02:44 UTC (rev 3245)
+++ ristretto/trunk/po/nl.po	2007-09-25 04:00:53 UTC (rev 3246)
@@ -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-09-12 19:18+0200\n"
+"POT-Creation-Date: 2007-09-25 06:00+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,89 +16,72 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/main.c:180
+#. Create 'File' menu
+#: ../src/main_window.c:219
 msgid "_File"
 msgstr "_Bestand"
 
-#: ../src/main.c:182
+#: ../src/main_window.c:226
 msgid "O_pen Folder"
 msgstr "Map o_penen"
 
-#: ../src/main.c:183
+#: ../src/main_window.c:227
 msgid "_Recently used"
 msgstr "_Recent geopend"
 
-#: ../src/main.c:209
+#. Create 'Edit' menu
+#: ../src/main_window.c:254
 msgid "_Edit"
 msgstr "B_ewerken"
 
-#: ../src/main.c:210
-msgid "Rotate _Left"
-msgstr "_Linksom draaien"
-
-#: ../src/main.c:211
-msgid "Rotate _Right"
-msgstr "_Rechtsom draaien"
-
-#: ../src/main.c:212
-msgid "Flip _Vertically"
-msgstr "_Verticaal spiegelen"
-
-#: ../src/main.c:213
-msgid "Flip _Horizontally"
-msgstr "_Horizontaal spiegelen"
-
-#: ../src/main.c:214
-msgid "_Open with..."
+#: ../src/main_window.c:259
+msgid "Open with..."
 msgstr "_Openen met..."
 
-#: ../src/main.c:222 ../src/main.c:571
+#: ../src/main_window.c:265
 msgid "No applications available"
 msgstr "Geen programma's beschikbaar"
 
-#.
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_rotate_left);
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_rotate_right);
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_flip_v);
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_flip_h);
-#.
-#: ../src/main.c:232
+#. Create 'View' menu
+#: ../src/main_window.c:273
 msgid "_View"
 msgstr "Beel_d"
 
-#: ../src/main.c:233
+#: ../src/main_window.c:280
 msgid "Show Toolbar"
 msgstr "Toon Werkbalk"
 
-#: ../src/main.c:234
+#: ../src/main_window.c:281
 msgid "Thumbnail Viewer"
 msgstr "Miniatuur Weergave"
 
-#: ../src/main.c:248
+#: ../src/main_window.c:299
 msgid "Show Horizontally"
 msgstr "Horizontaal tonen"
 
-#: ../src/main.c:249
+#: ../src/main_window.c:303
 msgid "Show Vertically"
 msgstr "Verticaal tonen"
 
-#: ../src/main.c:250
+#: ../src/main_window.c:307
 msgid "Hide"
 msgstr "Verbergen"
 
-#: ../src/main.c:256
+#. Create 'Go' menu
+#: ../src/main_window.c:317
 msgid "_Go"
 msgstr "_Ga"
 
-#: ../src/main.c:284
+#. Create 'Help' menu
+#: ../src/main_window.c:346
 msgid "_Help"
 msgstr "_Help"
 
-#: ../src/main.c:491
+#: ../src/main_window.c:673
 msgid "Developer:"
 msgstr "Ontwikkelaar:"
 
-#: ../src/main.c:501
+#: ../src/main_window.c:683
 msgid ""
 "Ristretto is a fast and lightweight picture-viewer for the Xfce desktop "
 "environment."
@@ -106,29 +89,22 @@
 "Ristretto is een snel en lichtgewicht afbeeldingsweergave-programma voor de "
 "Xfce-desktop omgeving"
 
-#: ../src/main.c:509
+#: ../src/main_window.c:691
 msgid "translator-credits"
 msgstr "Stephan Arts <stephan at xfce.org>"
 
-#: ../src/main.c:812
+#: ../src/main_window.c:711
 msgid "Open image"
 msgstr "Afbeelding openen"
 
-#: ../src/main.c:848
+#: ../src/main_window.c:746
 msgid "Could not open file"
 msgstr "Kan bestand niet openen"
 
-#: ../src/main.c:860
+#: ../src/main_window.c:756
 msgid "Open folder"
 msgstr "Map openen"
 
-#: ../src/main.c:1036
-msgid ""
-"Are you sure you want to clear ristretto's list of recently opened documents?"
-msgstr ""
-"Weet U zeker dat u de lijst met recent door ristretto geopende bestanden "
-"wilt wissen?"
-
 #: ../ristretto.desktop.in.h:1
 msgid "Image Viewer"
 msgstr "Afbeeldingsweergave"
@@ -141,6 +117,25 @@
 msgid "Xfce Image viewer"
 msgstr "Xfce Afbeeldings weergave"
 
+#~ msgid "Rotate _Left"
+#~ msgstr "_Linksom draaien"
+
+#~ msgid "Rotate _Right"
+#~ msgstr "_Rechtsom draaien"
+
+#~ msgid "Flip _Vertically"
+#~ msgstr "_Verticaal spiegelen"
+
+#~ msgid "Flip _Horizontally"
+#~ msgstr "_Horizontaal spiegelen"
+
+#~ msgid ""
+#~ "Are you sure you want to clear ristretto's list of recently opened "
+#~ "documents?"
+#~ msgstr ""
+#~ "Weet U zeker dat u de lijst met recent door ristretto geopende bestanden "
+#~ "wilt wissen?"
+
 #~ msgid "_Clear"
 #~ msgstr "_Opruimen"
 

Modified: ristretto/trunk/po/ristretto.pot
===================================================================
--- ristretto/trunk/po/ristretto.pot	2007-09-25 01:02:44 UTC (rev 3245)
+++ ristretto/trunk/po/ristretto.pot	2007-09-25 04:00:53 UTC (rev 3246)
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: stephan at xfce.org\n"
-"POT-Creation-Date: 2007-09-12 19:18+0200\n"
+"POT-Creation-Date: 2007-09-25 06:00+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,115 +16,93 @@
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../src/main.c:180
+#. Create 'File' menu
+#: ../src/main_window.c:219
 msgid "_File"
 msgstr ""
 
-#: ../src/main.c:182
+#: ../src/main_window.c:226
 msgid "O_pen Folder"
 msgstr ""
 
-#: ../src/main.c:183
+#: ../src/main_window.c:227
 msgid "_Recently used"
 msgstr ""
 
-#: ../src/main.c:209
+#. Create 'Edit' menu
+#: ../src/main_window.c:254
 msgid "_Edit"
 msgstr ""
 
-#: ../src/main.c:210
-msgid "Rotate _Left"
+#: ../src/main_window.c:259
+msgid "Open with..."
 msgstr ""
 
-#: ../src/main.c:211
-msgid "Rotate _Right"
-msgstr ""
-
-#: ../src/main.c:212
-msgid "Flip _Vertically"
-msgstr ""
-
-#: ../src/main.c:213
-msgid "Flip _Horizontally"
-msgstr ""
-
-#: ../src/main.c:214
-msgid "_Open with..."
-msgstr ""
-
-#: ../src/main.c:222 ../src/main.c:571
+#: ../src/main_window.c:265
 msgid "No applications available"
 msgstr ""
 
-#.
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_rotate_left);
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_rotate_right);
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_flip_v);
-#. gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_flip_h);
-#.
-#: ../src/main.c:232
+#. Create 'View' menu
+#: ../src/main_window.c:273
 msgid "_View"
 msgstr ""
 
-#: ../src/main.c:233
+#: ../src/main_window.c:280
 msgid "Show Toolbar"
 msgstr ""
 
-#: ../src/main.c:234
+#: ../src/main_window.c:281
 msgid "Thumbnail Viewer"
 msgstr ""
 
-#: ../src/main.c:248
+#: ../src/main_window.c:299
 msgid "Show Horizontally"
 msgstr ""
 
-#: ../src/main.c:249
+#: ../src/main_window.c:303
 msgid "Show Vertically"
 msgstr ""
 
-#: ../src/main.c:250
+#: ../src/main_window.c:307
 msgid "Hide"
 msgstr ""
 
-#: ../src/main.c:256
+#. Create 'Go' menu
+#: ../src/main_window.c:317
 msgid "_Go"
 msgstr ""
 
-#: ../src/main.c:284
+#. Create 'Help' menu
+#: ../src/main_window.c:346
 msgid "_Help"
 msgstr ""
 
-#: ../src/main.c:491
+#: ../src/main_window.c:673
 msgid "Developer:"
 msgstr ""
 
-#: ../src/main.c:501
+#: ../src/main_window.c:683
 msgid ""
 "Ristretto is a fast and lightweight picture-viewer for the Xfce desktop "
 "environment."
 msgstr ""
 
-#: ../src/main.c:509
+#: ../src/main_window.c:691
 msgid "translator-credits"
 msgstr ""
 
-#: ../src/main.c:812
+#: ../src/main_window.c:711
 msgid "Open image"
 msgstr ""
 
-#: ../src/main.c:848
+#: ../src/main_window.c:746
 msgid "Could not open file"
 msgstr ""
 
-#: ../src/main.c:860
+#: ../src/main_window.c:756
 msgid "Open folder"
 msgstr ""
 
-#: ../src/main.c:1036
-msgid ""
-"Are you sure you want to clear ristretto's list of recently opened documents?"
-msgstr ""
-
 #: ../ristretto.desktop.in.h:1
 msgid "Image Viewer"
 msgstr ""

Modified: ristretto/trunk/src/Makefile.am
===================================================================
--- ristretto/trunk/src/Makefile.am	2007-09-25 01:02:44 UTC (rev 3245)
+++ ristretto/trunk/src/Makefile.am	2007-09-25 04:00:53 UTC (rev 3246)
@@ -2,6 +2,7 @@
 
 ristretto_SOURCES = \
 	main.c \
+    main_window.c main_window.h \
 	picture_viewer.c picture_viewer.h \
 	thumbnail_viewer.c thumbnail_viewer.h \
 	navigator.c navigator.h
@@ -9,6 +10,7 @@
 ristretto_CFLAGS = \
 	$(GTK_CFLAGS) \
 	$(GLIB_CFLAGS) \
+	$(LIBEXIF_CFLAGS) \
 	$(LIBXFCE4UTIL_CFLAGS) \
 	$(THUNAR_VFS_CFLAGS) \
 	-DDATADIR=\"$(datadir)\" \
@@ -18,6 +20,7 @@
 ristretto_LDADD = \
 	$(GTK_LIBS) \
 	$(GLIB_LIBS) \
+	$(LIBEXIF_LIBS) \
 	$(LIBXFCE4UTIL_LIBS) \
 	$(THUNAR_VFS_LIBS)
 

Modified: ristretto/trunk/src/main.c
===================================================================
--- ristretto/trunk/src/main.c	2007-09-25 01:02:44 UTC (rev 3245)
+++ ristretto/trunk/src/main.c	2007-09-25 04:00:53 UTC (rev 3246)
@@ -24,113 +24,16 @@
 #include "navigator.h"
 #include "picture_viewer.h"
 #include "thumbnail_viewer.h"
+#include "main_window.h"
 
 static ThunarVfsMimeDatabase *mime_dbase = NULL;
 static GtkIconTheme *icon_theme = NULL;
 
-static void
-cb_rstto_zoom_fit(GtkToolItem *item, RsttoPictureViewer *viewer);
-static void
-cb_rstto_zoom_100(GtkToolItem *item, RsttoPictureViewer *viewer);
-static void
-cb_rstto_zoom_in(GtkToolItem *item, RsttoPictureViewer *viewer);
-static void
-cb_rstto_zoom_out(GtkToolItem *item, RsttoPictureViewer *viewer);
-
-static void
-cb_rstto_fullscreen(GtkWidget *, GdkEventWindowState *event, RsttoPictureViewer *viewer);
-static gboolean
-cb_rstto_main_window_configure_event (GtkWidget *widget, GdkEventConfigure *event);
-static void
-cb_rstto_toggle_play(GtkImageMenuItem *item, RsttoNavigator *navigator);
-
-static void
-cb_rstto_previous(GtkToolItem *item, RsttoNavigator *);
-static void
-cb_rstto_forward(GtkToolItem *item, RsttoNavigator *);
-static void
-cb_rstto_first(GtkToolItem *item, RsttoNavigator *);
-static void
-cb_rstto_last(GtkToolItem *item, RsttoNavigator *);
-
-static void
-cb_rstto_open(GtkToolItem *item, RsttoNavigator *);
-static void
-cb_rstto_open_dir(GtkToolItem *item, RsttoNavigator *);
-static void
-cb_rstto_open_recent(GtkRecentChooser *chooser, RsttoNavigator *);
-static void
-cb_rstto_clear_recent(GtkWidget *widget, GtkRecentManager *manager);
-static gboolean
-rstto_clear_recent(GtkRecentManager *manager);
-static void
-cb_rstto_close_current(GtkWidget *item, RsttoNavigator *navigator);
-
-static void
-cb_rstto_help_about(GtkToolItem *item, GtkWindow *);
-static void
-cb_rstto_toggle_fullscreen(GtkToolItem *item, GtkWindow *window);
-
-static void
-cb_rstto_show_tv_v(GtkWidget *widget, RsttoThumbnailViewer *viewer);
-static void
-cb_rstto_show_tv_h(GtkWidget *widget, RsttoThumbnailViewer *viewer);
-static void
-cb_rstto_hide_tv(GtkWidget *widget, RsttoThumbnailViewer *viewer);
-
-static void
-cb_rstto_toggle_toolbar(GtkWidget *widget, RsttoThumbnailViewer *viewer);
-
-static void
-cb_rstto_rotate_cw(GtkWidget *widget, RsttoNavigator *navigator);
-static void
-cb_rstto_rotate_ccw(GtkWidget *widget, RsttoNavigator *navigator);
-static void
-cb_rstto_flip_h(GtkWidget *widget, RsttoNavigator *navigator);
-static void
-cb_rstto_flip_v(GtkWidget *widget, RsttoNavigator *navigator);
-
-static gboolean
-cb_rstto_key_press_event(GtkWidget *widget, GdkEventKey *event, RsttoNavigator *navigator);
-static void
-cb_rstto_nav_file_changed(RsttoNavigator *navigator, gint nr, RsttoNavigatorEntry *entry, GtkWindow *window);
-static void
-cb_rstto_spawn_app(GtkWidget *widget, ThunarVfsMimeApplication *app);
-
-static gboolean window_fullscreen = FALSE;
-static GtkWidget *menu_bar;
-static GtkWidget *app_tool_bar;
-static GtkWidget *status_bar;
-static gboolean playing = FALSE;
-static GtkWidget *menu_item_play;
-static GtkWidget *menu_item_pause;
-static GtkWidget *menu_item_htv;
-static GtkWidget *menu_item_vtv;
-static GtkWidget *menu_item_ntv;
-static GtkWidget *menu_edit;
-static GtkWidget *menu_apps;
-static GList     *menu_apps_list;
-
-static GtkWidget *main_hbox;
-static GtkWidget *main_vbox1;
-static GtkWidget *thumbnail_viewer;
 static GtkRecentManager *recent_manager;
 static XfceRc *xfce_rc;
-static const gchar *thumbnail_viewer_orientation;
-static gint window_save_geometry_timer_id = 0;
-static GtkWidget *menu_item_close;
-static GtkWidget *menu_item_first;
-static GtkWidget *menu_item_last;
-static GtkWidget *menu_item_forward;
-static GtkWidget *menu_item_back;
-static GtkToolItem *tool_item_forward;
-static GtkToolItem *tool_item_previous;
 
 int main(int argc, char **argv)
 {
-    ThunarVfsPath *path = NULL;
-    GtkWidget *viewer = NULL;
-    gint n = 1;
 
 
     #ifdef ENABLE_NLS
@@ -150,990 +53,17 @@
     recent_manager = gtk_recent_manager_get_default();
     xfce_rc = xfce_rc_config_open(XFCE_RESOURCE_CONFIG, "ristretto/ristrettorc", FALSE);
     
-    thumbnail_viewer_orientation = xfce_rc_read_entry(xfce_rc, "ThumbnailViewerOrientation", "horizontal");
-    gboolean toolbar_open_dir = xfce_rc_read_bool_entry(xfce_rc, "ToolbarOpenDir", FALSE);
-    gboolean show_toolbar = xfce_rc_read_bool_entry(xfce_rc, "ShowToolBar", TRUE);
-    gint window_width = xfce_rc_read_int_entry(xfce_rc, "LastWindowWidth", 400);
-    gint window_height = xfce_rc_read_int_entry(xfce_rc, "LastWindowHeight", 300);
-    gint slideshow_timeout = xfce_rc_read_int_entry(xfce_rc, "SlideShowTimeout", 5000);
+    GtkWidget *window = rstto_main_window_new();
 
-    GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-    GtkAccelGroup *accel_group = gtk_accel_group_new();
 
-    gtk_window_set_title(GTK_WINDOW(window), PACKAGE_STRING);
-    gtk_window_add_accel_group(GTK_WINDOW(window), accel_group);
-
-
     g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
 
-    RsttoNavigator *navigator = rstto_navigator_new();
-    rstto_navigator_set_timeout(navigator, slideshow_timeout);
-    thumbnail_viewer = rstto_thumbnail_viewer_new(navigator);
-    viewer = rstto_picture_viewer_new(navigator);
 
-    g_signal_connect(window , "key-press-event", G_CALLBACK(cb_rstto_key_press_event) , navigator);
-    g_signal_connect(G_OBJECT(navigator), "iter-changed", G_CALLBACK(cb_rstto_nav_file_changed), window);
-
-
-    GtkWidget *s_window = gtk_scrolled_window_new(NULL,NULL);
-    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(s_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-    GtkWidget *main_vbox = gtk_vbox_new(0, FALSE);
-    main_hbox = gtk_hbox_new(0, FALSE);
-    main_vbox1 = gtk_vbox_new(0, FALSE);
-    menu_bar = gtk_menu_bar_new();
-    app_tool_bar = gtk_toolbar_new();
-    status_bar = gtk_statusbar_new();
-
-    GtkWidget *menu_item_file = gtk_menu_item_new_with_mnemonic(_("_File"));
-    GtkWidget *menu_item_open = gtk_image_menu_item_new_from_stock(GTK_STOCK_OPEN, accel_group);
-    GtkWidget *menu_item_open_dir = gtk_menu_item_new_with_mnemonic(_("O_pen Folder"));
-    GtkWidget *menu_item_recently = gtk_menu_item_new_with_mnemonic(_("_Recently used"));
-    GtkWidget *menu_item_separator = gtk_separator_menu_item_new();
-    menu_item_close = gtk_image_menu_item_new_from_stock(GTK_STOCK_CLOSE, accel_group);
-    GtkWidget *menu_item_quit = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, accel_group);
-
-    GtkWidget *menu_file = gtk_menu_new();
-    gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item_file), menu_file);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_file), menu_item_open);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_file), menu_item_open_dir);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_file), menu_item_recently);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_file), menu_item_separator);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_file), menu_item_close);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_file), menu_item_quit);
-    gtk_widget_set_sensitive(menu_item_close, FALSE);
-    
-    GtkWidget *recent_chooser_menu = gtk_recent_chooser_menu_new_for_manager(GTK_RECENT_MANAGER(recent_manager));
-    GtkRecentFilter *filter = gtk_recent_filter_new();
-    gtk_recent_filter_add_application(filter, "ristretto");
-    gtk_recent_chooser_add_filter(GTK_RECENT_CHOOSER(recent_chooser_menu), filter);
-    
-    GtkWidget *menu_item_clear_recent = gtk_image_menu_item_new_from_stock(GTK_STOCK_CLEAR, accel_group);
-    menu_item_separator = gtk_separator_menu_item_new();
-    gtk_menu_shell_append(GTK_MENU_SHELL(recent_chooser_menu), menu_item_separator);
-    gtk_menu_shell_append(GTK_MENU_SHELL(recent_chooser_menu), menu_item_clear_recent);
-    
-    gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item_recently), recent_chooser_menu);
-
-    GtkWidget *menu_item_edit = gtk_menu_item_new_with_mnemonic(_("_Edit"));
-    GtkWidget *menu_item_rotate_left = gtk_menu_item_new_with_mnemonic(_("Rotate _Left"));
-    GtkWidget *menu_item_rotate_right = gtk_menu_item_new_with_mnemonic(_("Rotate _Right"));
-    GtkWidget *menu_item_flip_v = gtk_menu_item_new_with_mnemonic(_("Flip _Vertically"));
-    GtkWidget *menu_item_flip_h = gtk_menu_item_new_with_mnemonic(_("Flip _Horizontally"));
-    GtkWidget *menu_item_apps = gtk_menu_item_new_with_mnemonic(_("_Open with..."));
-
-    menu_edit = gtk_menu_new();
-    gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item_edit), menu_edit);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_apps);
-
-    menu_apps = gtk_menu_new();
-    gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item_apps), menu_apps);
-    GtkWidget *bottom_menu_item = gtk_menu_item_new_with_mnemonic(_("No applications available"));
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_apps), bottom_menu_item);
-    gtk_widget_set_sensitive(bottom_menu_item, FALSE);
-    /* 
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_rotate_left);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_rotate_right);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_flip_v);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_flip_h);
-    */
-
-    GtkWidget *menu_item_view = gtk_menu_item_new_with_mnemonic(_("_View"));
-    GtkWidget *menu_item_toggle_toolbar = gtk_check_menu_item_new_with_mnemonic(_("Show Toolbar"));
-    GtkWidget *menu_item_tv = gtk_menu_item_new_with_mnemonic(_("Thumbnail Viewer"));
-    GtkWidget *menu_item_view_fs = gtk_image_menu_item_new_from_stock(GTK_STOCK_FULLSCREEN, NULL);
-    gtk_widget_add_accelerator(menu_item_view_fs, "activate", accel_group, GDK_F11, 0,GTK_ACCEL_VISIBLE);
-
-    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu_item_toggle_toolbar), show_toolbar);
-
-    GtkWidget *menu_view = gtk_menu_new();
-    gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item_view), menu_view);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_view), menu_item_toggle_toolbar);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_view), menu_item_tv);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_view), menu_item_view_fs);
-
-    GtkWidget *menu_tv = gtk_menu_new();
-    gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item_tv), menu_tv);
-    menu_item_htv = gtk_radio_menu_item_new_with_mnemonic(NULL, _("Show Horizontally"));
-    menu_item_vtv = gtk_radio_menu_item_new_with_mnemonic_from_widget(GTK_RADIO_MENU_ITEM(menu_item_htv), _("Show Vertically"));
-    menu_item_ntv = gtk_radio_menu_item_new_with_mnemonic_from_widget(GTK_RADIO_MENU_ITEM(menu_item_htv), _("Hide"));
-
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_tv), menu_item_htv);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_tv), menu_item_vtv);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_tv), menu_item_ntv);
-
-    GtkWidget *menu_item_go = gtk_menu_item_new_with_mnemonic(_("_Go"));
-
-    menu_item_first = gtk_image_menu_item_new_from_stock(GTK_STOCK_GOTO_FIRST, NULL);
-    menu_item_last = gtk_image_menu_item_new_from_stock(GTK_STOCK_GOTO_LAST, NULL);
-    menu_item_forward = gtk_image_menu_item_new_from_stock(GTK_STOCK_GO_FORWARD, NULL);
-    menu_item_back = gtk_image_menu_item_new_from_stock(GTK_STOCK_GO_BACK, NULL);
-    gtk_widget_add_accelerator(menu_item_first, "activate", accel_group, GDK_Home, 0,GTK_ACCEL_VISIBLE);
-    gtk_widget_add_accelerator(menu_item_last, "activate", accel_group, GDK_End, 0,GTK_ACCEL_VISIBLE);
-    gtk_widget_add_accelerator(menu_item_forward, "activate", accel_group, GDK_Page_Down, 0,GTK_ACCEL_VISIBLE);
-    gtk_widget_add_accelerator(menu_item_back, "activate", accel_group, GDK_Page_Up, 0,GTK_ACCEL_VISIBLE);
-    gtk_widget_set_sensitive(menu_item_first, FALSE);
-    gtk_widget_set_sensitive(menu_item_last, FALSE);
-    gtk_widget_set_sensitive(menu_item_back, FALSE);
-    gtk_widget_set_sensitive(menu_item_forward, FALSE);
-
-    menu_item_play = gtk_image_menu_item_new_from_stock(GTK_STOCK_MEDIA_PLAY, accel_group);
-    menu_item_pause = gtk_image_menu_item_new_from_stock(GTK_STOCK_MEDIA_PAUSE, accel_group);
-    gtk_widget_add_accelerator(menu_item_play, "activate", accel_group, GDK_F5, 0,GTK_ACCEL_VISIBLE);
-    gtk_widget_add_accelerator(menu_item_pause, "activate", accel_group, GDK_F5, 0,GTK_ACCEL_VISIBLE);
-
-    menu_item_separator = gtk_separator_menu_item_new();
-
-    GtkWidget *menu_go = gtk_menu_new();
-    gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item_go), menu_go);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_go), menu_item_first);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_go), menu_item_last);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_go), menu_item_forward);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_go), menu_item_back);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_go), menu_item_separator);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_go), menu_item_play);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_go), menu_item_pause);
-
-    GtkWidget *menu_item_help = gtk_menu_item_new_with_mnemonic(_("_Help"));
-    GtkWidget *menu_item_help_about = gtk_image_menu_item_new_from_stock(GTK_STOCK_ABOUT, accel_group);
-
-    GtkWidget *menu_help = gtk_menu_new();
-    gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item_help), menu_help);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_help), menu_item_help_about);
-
-
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), menu_item_file);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), menu_item_edit);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), menu_item_view);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), menu_item_go);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), menu_item_help);
-
-    GtkToolItem *zoom_fit= gtk_tool_button_new_from_stock(GTK_STOCK_ZOOM_FIT);
-    GtkToolItem *zoom_100= gtk_tool_button_new_from_stock(GTK_STOCK_ZOOM_100);
-    GtkToolItem *zoom_out= gtk_tool_button_new_from_stock(GTK_STOCK_ZOOM_OUT);
-    GtkToolItem *zoom_in = gtk_tool_button_new_from_stock(GTK_STOCK_ZOOM_IN);
-    tool_item_forward = gtk_tool_button_new_from_stock(GTK_STOCK_GO_FORWARD);
-    tool_item_previous = gtk_tool_button_new_from_stock(GTK_STOCK_GO_BACK);
-    GtkToolItem *open = gtk_tool_button_new_from_stock(GTK_STOCK_OPEN);
-    GtkToolItem *spacer = gtk_tool_item_new();
-    GtkToolItem *separator = gtk_separator_tool_item_new();
-
-    gtk_tool_item_set_is_important(tool_item_previous, TRUE);
-    gtk_tool_item_set_is_important(tool_item_forward, TRUE);
-    gtk_widget_set_sensitive(GTK_WIDGET(tool_item_forward), FALSE);
-    gtk_widget_set_sensitive(GTK_WIDGET(tool_item_previous), FALSE);
-
-    gtk_tool_item_set_expand(spacer, TRUE);
-    gtk_tool_item_set_homogeneous(spacer, FALSE);
-
-    gtk_window_set_default_size(GTK_WINDOW(window), window_width, window_height);
-
-    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);
-    if(!strcmp(thumbnail_viewer_orientation, "horizontal"))
-    {
-        gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(menu_item_htv), TRUE);
-        gtk_box_pack_start(GTK_BOX(main_vbox1), thumbnail_viewer, FALSE, TRUE, 0);
-        rstto_thumbnail_viewer_set_orientation(RSTTO_THUMBNAIL_VIEWER(thumbnail_viewer), GTK_ORIENTATION_HORIZONTAL);
-    }
-    else
-    {
-        gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(menu_item_vtv), TRUE);
-        gtk_box_pack_start(GTK_BOX(main_hbox), thumbnail_viewer, FALSE, TRUE, 0);
-        rstto_thumbnail_viewer_set_orientation(RSTTO_THUMBNAIL_VIEWER(thumbnail_viewer), GTK_ORIENTATION_VERTICAL);
-    }
-
-
-    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);
-    gtk_box_pack_start(GTK_BOX(main_vbox), status_bar, FALSE, TRUE, 0);
-
-
-    gtk_toolbar_insert(GTK_TOOLBAR(app_tool_bar), zoom_fit, 0);
-    gtk_toolbar_insert(GTK_TOOLBAR(app_tool_bar), zoom_100, 0);
-    gtk_toolbar_insert(GTK_TOOLBAR(app_tool_bar), zoom_out, 0);
-    gtk_toolbar_insert(GTK_TOOLBAR(app_tool_bar), zoom_in, 0);
-    gtk_toolbar_insert(GTK_TOOLBAR(app_tool_bar), spacer, 0);
-    gtk_toolbar_insert(GTK_TOOLBAR(app_tool_bar), tool_item_forward, 0);
-    gtk_toolbar_insert(GTK_TOOLBAR(app_tool_bar), tool_item_previous, 0);
-    gtk_toolbar_insert(GTK_TOOLBAR(app_tool_bar), separator, 0);
-    gtk_toolbar_insert(GTK_TOOLBAR(app_tool_bar), open, 0);
-
-    g_signal_connect(G_OBJECT(zoom_fit), "clicked", G_CALLBACK(cb_rstto_zoom_fit), viewer);
-    g_signal_connect(G_OBJECT(zoom_100), "clicked", G_CALLBACK(cb_rstto_zoom_100), viewer);
-    g_signal_connect(G_OBJECT(zoom_in), "clicked", G_CALLBACK(cb_rstto_zoom_in), viewer);
-    g_signal_connect(G_OBJECT(zoom_out), "clicked", G_CALLBACK(cb_rstto_zoom_out), viewer);
-    g_signal_connect(G_OBJECT(tool_item_forward), "clicked", G_CALLBACK(cb_rstto_forward), navigator);
-    g_signal_connect(G_OBJECT(tool_item_previous), "clicked", G_CALLBACK(cb_rstto_previous), navigator);
-    if(toolbar_open_dir == TRUE)
-        g_signal_connect(G_OBJECT(open), "clicked", G_CALLBACK(cb_rstto_open_dir), navigator);
-    else
-        g_signal_connect(G_OBJECT(open), "clicked", G_CALLBACK(cb_rstto_open), navigator);
-
-    g_signal_connect(G_OBJECT(menu_item_clear_recent), "activate", G_CALLBACK(cb_rstto_clear_recent), recent_manager);
-
-    g_signal_connect(G_OBJECT(menu_item_quit), "activate", G_CALLBACK(gtk_main_quit), NULL);
-    g_signal_connect(G_OBJECT(menu_item_open), "activate", G_CALLBACK(cb_rstto_open), navigator);
-    g_signal_connect(G_OBJECT(menu_item_open_dir), "activate", G_CALLBACK(cb_rstto_open_dir), navigator);
-    g_signal_connect(G_OBJECT(menu_item_help_about), "activate", G_CALLBACK(cb_rstto_help_about), window);
-    g_signal_connect(G_OBJECT(menu_item_close), "activate", G_CALLBACK(cb_rstto_close_current), navigator);
-
-    g_signal_connect(G_OBJECT(recent_chooser_menu), "item-activated", G_CALLBACK(cb_rstto_open_recent), navigator);
-
-    g_signal_connect(G_OBJECT(menu_item_forward), "activate", G_CALLBACK(cb_rstto_forward), navigator);
-    g_signal_connect(G_OBJECT(menu_item_back), "activate", G_CALLBACK(cb_rstto_previous), navigator);
-    g_signal_connect(G_OBJECT(menu_item_first), "activate", G_CALLBACK(cb_rstto_first), navigator);
-    g_signal_connect(G_OBJECT(menu_item_last), "activate", G_CALLBACK(cb_rstto_last), navigator);
-
-    g_signal_connect(G_OBJECT(menu_item_rotate_left), "activate", G_CALLBACK(cb_rstto_rotate_ccw), navigator);
-    g_signal_connect(G_OBJECT(menu_item_rotate_right), "activate", G_CALLBACK(cb_rstto_rotate_cw), navigator);
-    g_signal_connect(G_OBJECT(menu_item_flip_v), "activate", G_CALLBACK(cb_rstto_flip_v), navigator);
-    g_signal_connect(G_OBJECT(menu_item_flip_h), "activate", G_CALLBACK(cb_rstto_flip_h), navigator);
-
-    g_signal_connect(G_OBJECT(menu_item_toggle_toolbar), "activate", G_CALLBACK(cb_rstto_toggle_toolbar), thumbnail_viewer);
-
-    g_signal_connect(G_OBJECT(menu_item_vtv), "activate", G_CALLBACK(cb_rstto_show_tv_v), thumbnail_viewer);
-    g_signal_connect(G_OBJECT(menu_item_htv), "activate", G_CALLBACK(cb_rstto_show_tv_h), thumbnail_viewer);
-    g_signal_connect(G_OBJECT(menu_item_ntv), "activate", G_CALLBACK(cb_rstto_hide_tv), thumbnail_viewer);
-
-    g_signal_connect(G_OBJECT(menu_item_play), "activate", G_CALLBACK(cb_rstto_toggle_play), navigator);
-    g_signal_connect(G_OBJECT(menu_item_pause), "activate", G_CALLBACK(cb_rstto_toggle_play), navigator);
-    g_signal_connect(G_OBJECT(menu_item_view_fs), "activate", G_CALLBACK(cb_rstto_toggle_fullscreen), window);
-
-    g_signal_connect(G_OBJECT(window), "window-state-event", G_CALLBACK(cb_rstto_fullscreen), viewer);
-    g_signal_connect(G_OBJECT(window), "configure-event", G_CALLBACK(cb_rstto_main_window_configure_event), NULL);
-
-    gtk_container_add(GTK_CONTAINER(window), main_vbox);
-
-    for (n = 1; n < argc; ++n)
-    {
-        path = thunar_vfs_path_new(argv[n], NULL);
-
-        ThunarVfsInfo *info = thunar_vfs_info_new_for_path(path, NULL);
-        if(info)
-        {
-            if(strcmp(thunar_vfs_mime_info_get_name(info->mime_info), "inode/directory"))
-            {
-                RsttoNavigatorEntry *entry = rstto_navigator_entry_new(info);
-                rstto_navigator_add (navigator, entry);
-            }
-            else
-            {
-                GDir *dir = g_dir_open(argv[n], 0, NULL);
-                const gchar *filename = g_dir_read_name(dir);
-                while (filename)
-                {
-                    gchar *path_name = g_strconcat(argv[n],  "/", filename, NULL);
-                    ThunarVfsPath *file_path = thunar_vfs_path_new(path_name, NULL);
-                    if (file_path)
-                    {
-                        ThunarVfsInfo *file_info = thunar_vfs_info_new_for_path(file_path, NULL);
-                        gchar *file_media = thunar_vfs_mime_info_get_media(file_info->mime_info);
-                        if(!strcmp(file_media, "image"))
-                        {
-                            RsttoNavigatorEntry *entry = rstto_navigator_entry_new(file_info);
-                            rstto_navigator_add (navigator, entry);
-                        }
-                        g_free(file_media);
-                        thunar_vfs_path_unref(file_path);
-                    }
-                    g_free(path_name);
-                    filename = g_dir_read_name(dir);
-                }
-                rstto_navigator_jump_first(navigator);
-            }
-            gchar *uri = thunar_vfs_path_dup_uri(info->path);
-            gtk_recent_manager_add_item(recent_manager, uri);
-            g_free(uri);
-        }
-        thunar_vfs_path_unref(path);
-    }
-
     gtk_widget_show_all(window);
-    gtk_widget_hide(menu_item_pause);
-    gtk_widget_show(viewer);
+    rstto_main_window_set_thumbnail_viewer_visibility(RSTTO_MAIN_WINDOW(window), TRUE);
 
-    if(!strcmp(thumbnail_viewer_orientation, "hide"))
-    {
-        gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(menu_item_ntv), TRUE);
-        gtk_widget_hide(GTK_WIDGET(thumbnail_viewer));   
-    }
-    if (show_toolbar == FALSE)
-    {
-        gtk_widget_hide(GTK_WIDGET(app_tool_bar));   
-    }
-
     gtk_main();
     xfce_rc_flush(xfce_rc);
     xfce_rc_close(xfce_rc);
     return 0;
 }
-
-static void
-cb_rstto_zoom_fit(GtkToolItem *item, RsttoPictureViewer *viewer)
-{
-    rstto_picture_viewer_fit_scale(viewer);
-}
-
-static void
-cb_rstto_zoom_100(GtkToolItem *item, RsttoPictureViewer *viewer)
-{
-    rstto_picture_viewer_set_scale(viewer, 1);
-}
-
-static void
-cb_rstto_zoom_in(GtkToolItem *item, RsttoPictureViewer *viewer)
-{
-    gdouble scale = rstto_picture_viewer_get_scale(viewer);
-    rstto_picture_viewer_set_scale(viewer, scale*1.2);
-}
-
-static void
-cb_rstto_zoom_out(GtkToolItem *item, RsttoPictureViewer *viewer)
-{
-    gdouble scale = rstto_picture_viewer_get_scale(viewer);
-    rstto_picture_viewer_set_scale(viewer, scale/1.2);
-}
-
-
-static void
-cb_rstto_help_about(GtkToolItem *item, GtkWindow *window)
-{
-    const gchar *authors[] = {
-      _("Developer:"),
-        "Stephan Arts <stephan at xfce.org>",
-        NULL};
-
-    GtkWidget *about_dialog = gtk_about_dialog_new();
-
-    gtk_about_dialog_set_name((GtkAboutDialog *)about_dialog, PACKAGE_NAME);
-    gtk_about_dialog_set_version((GtkAboutDialog *)about_dialog, PACKAGE_VERSION);
-
-    gtk_about_dialog_set_comments((GtkAboutDialog *)about_dialog,
-        _("Ristretto is a fast and lightweight picture-viewer for the Xfce desktop environment."));
-    gtk_about_dialog_set_website((GtkAboutDialog *)about_dialog,
-        "http://goodies.xfce.org/projects/applications/ristretto");
-    gtk_about_dialog_set_logo_icon_name((GtkAboutDialog *)about_dialog,
-        "ristretto");
-    gtk_about_dialog_set_authors((GtkAboutDialog *)about_dialog,
-        authors);
-    gtk_about_dialog_set_translator_credits((GtkAboutDialog *)about_dialog,
-        _("translator-credits"));
-    gtk_about_dialog_set_license((GtkAboutDialog *)about_dialog,
-        xfce_get_license_text(XFCE_LICENSE_TEXT_GPL));
-    gtk_about_dialog_set_copyright((GtkAboutDialog *)about_dialog,
-        "Copyright \302\251 2006-2007 Stephan Arts");
-
-    gtk_dialog_run(GTK_DIALOG(about_dialog));
-
-    gtk_widget_destroy(about_dialog);
-}
-
-static void
-cb_rstto_first(GtkToolItem *item, RsttoNavigator *navigator)
-{
-    rstto_navigator_jump_first(navigator);
-}
-
-static void
-cb_rstto_last(GtkToolItem *item, RsttoNavigator *navigator)
-{
-    rstto_navigator_jump_last(navigator);
-}
-
-static void
-cb_rstto_forward(GtkToolItem *item, RsttoNavigator *navigator)
-{
-    rstto_navigator_jump_forward(navigator);
-}
-
-static void
-cb_rstto_previous(GtkToolItem *item, RsttoNavigator *navigator)
-{
-    rstto_navigator_jump_back(navigator);
-}
-
-static void
-cb_rstto_nav_file_changed(RsttoNavigator *navigator, gint nr, RsttoNavigatorEntry *entry, GtkWindow *window)
-{
-    ThunarVfsInfo *info = NULL;
-    const gchar *filename = NULL;
-    gchar *title;
-
-    if(entry)
-    {
-        info = rstto_navigator_entry_get_info(entry);
-        filename = info->display_name;
-        gtk_widget_set_sensitive(menu_item_close, TRUE);
-        gtk_widget_set_sensitive(menu_item_first, TRUE);
-        gtk_widget_set_sensitive(menu_item_last, TRUE);
-        gtk_widget_set_sensitive(menu_item_back, TRUE);
-        gtk_widget_set_sensitive(menu_item_forward, TRUE);
-
-        gtk_widget_set_sensitive(GTK_WIDGET(tool_item_forward), TRUE);
-        gtk_widget_set_sensitive(GTK_WIDGET(tool_item_previous), TRUE);
-    }
-    else
-    {
-        gtk_widget_set_sensitive(menu_item_close, FALSE);
-        if (rstto_navigator_get_n_files(navigator) == 0)
-        {
-            gtk_widget_set_sensitive(menu_item_first, FALSE);
-            gtk_widget_set_sensitive(menu_item_last, FALSE);
-            gtk_widget_set_sensitive(menu_item_back, FALSE);
-            gtk_widget_set_sensitive(menu_item_forward, FALSE);
-
-            gtk_widget_set_sensitive(GTK_WIDGET(tool_item_forward), FALSE);
-            gtk_widget_set_sensitive(GTK_WIDGET(tool_item_previous), FALSE);
-        }
-    }
-
-    if(filename)
-    {
-        title = g_strconcat(PACKAGE_NAME, " - ", filename, NULL);
-        gtk_window_set_title(window, title);
-        g_free(title);
-    }
-    else
-        gtk_window_set_title(window, PACKAGE_STRING);
-
-    if (menu_apps)
-    {
-        gtk_container_foreach(GTK_CONTAINER(menu_apps), (GtkCallback)gtk_widget_destroy, NULL);
-        if(menu_apps_list)
-        {
-            g_list_foreach(menu_apps_list, (GFunc)g_object_unref, NULL);
-            g_list_free(menu_apps_list);
-            menu_apps_list = NULL;
-        }
-        if(info)
-        {
-            menu_apps_list = thunar_vfs_mime_database_get_applications(mime_dbase, info->mime_info);
-            GList *iter = menu_apps_list;
-            if (iter == NULL)
-            {
-                GtkWidget *bottom_menu_item = gtk_menu_item_new_with_mnemonic(_("No applications available"));
-                gtk_menu_shell_append(GTK_MENU_SHELL(menu_apps), bottom_menu_item);
-                gtk_widget_set_sensitive(bottom_menu_item, FALSE);
-                gtk_widget_show(bottom_menu_item);
-            }
-            while(iter)
-            {
-                GtkWidget *menu_item = gtk_image_menu_item_new_with_label(thunar_vfs_mime_application_get_name(iter->data));
-                GtkWidget *image = gtk_image_new_from_icon_name(thunar_vfs_mime_handler_lookup_icon_name(iter->data, icon_theme), GTK_ICON_SIZE_MENU);
-                gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), image);
-                gtk_menu_shell_append(GTK_MENU_SHELL(menu_apps), menu_item);
-                g_object_set_data(iter->data, "entry", entry);
-                g_signal_connect(menu_item, "activate", G_CALLBACK(cb_rstto_spawn_app), iter->data);
-                gtk_widget_show(menu_item);
-                iter = g_list_next(iter);
-            }
-        }
-        else
-        {
-            GtkWidget *bottom_menu_item = gtk_menu_item_new_with_mnemonic(_("No applications available"));
-            gtk_menu_shell_append(GTK_MENU_SHELL(menu_apps), bottom_menu_item);
-            gtk_widget_set_sensitive(bottom_menu_item, FALSE);
-            gtk_widget_show(bottom_menu_item);
-        }
-    }
-}
-
-static void
-cb_rstto_fullscreen(GtkWidget *widget, GdkEventWindowState *event, RsttoPictureViewer *viewer)
-{
-    if(event->changed_mask & GDK_WINDOW_STATE_FULLSCREEN)
-    {
-        if(event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN)
-        {
-            window_fullscreen = TRUE;
-            gtk_widget_hide(menu_bar);
-            gtk_widget_hide(app_tool_bar);
-            gtk_widget_hide(status_bar);
-        }
-        else
-        {
-            window_fullscreen = FALSE;
-            gtk_widget_show(menu_bar);
-            gtk_widget_show(app_tool_bar);
-            gtk_widget_show(status_bar);
-        }
-    }
-}
-
-static void
-cb_rstto_toggle_play(GtkImageMenuItem *item, RsttoNavigator *navigator)
-{
-    if(playing == TRUE)
-    {
-        gtk_widget_show(menu_item_play);
-        gtk_widget_hide(menu_item_pause);
-        playing = FALSE;
-    }
-    else
-    {
-        gtk_widget_hide(menu_item_play);
-        gtk_widget_show(menu_item_pause);
-        playing = TRUE;
-    }
-    rstto_navigator_set_running(navigator, playing);
-}
-
-static void
-cb_rstto_toggle_fullscreen(GtkToolItem *item, GtkWindow *window)
-{
-    if(window_fullscreen)
-        gtk_window_unfullscreen(window);
-    else
-        gtk_window_fullscreen(window);
-}
-
-static void
-cb_rstto_show_tv_v(GtkWidget *widget, RsttoThumbnailViewer *viewer)
-{
-    GtkWidget *parent = gtk_widget_get_parent(GTK_WIDGET(viewer));
-    gtk_widget_ref(GTK_WIDGET(viewer));
-    gtk_container_remove(GTK_CONTAINER(parent), GTK_WIDGET(viewer));
-    rstto_thumbnail_viewer_set_orientation(viewer, GTK_ORIENTATION_VERTICAL);
-    gtk_box_pack_start(GTK_BOX(main_hbox), thumbnail_viewer, FALSE, TRUE, 0);
-    gtk_widget_show(GTK_WIDGET(viewer));
-    xfce_rc_write_entry(xfce_rc, "ThumbnailViewerOrientation", "vertical");
-}
-
-static void
-cb_rstto_show_tv_h(GtkWidget *widget, RsttoThumbnailViewer *viewer)
-{
-    GtkWidget *parent = gtk_widget_get_parent(GTK_WIDGET(viewer));
-    gtk_widget_ref(GTK_WIDGET(viewer));
-    gtk_container_remove(GTK_CONTAINER(parent), GTK_WIDGET(viewer));
-    rstto_thumbnail_viewer_set_orientation(viewer, GTK_ORIENTATION_HORIZONTAL);
-    gtk_box_pack_start(GTK_BOX(main_vbox1), thumbnail_viewer, FALSE, TRUE, 0);
-    gtk_widget_show(GTK_WIDGET(viewer));
-    xfce_rc_write_entry(xfce_rc, "ThumbnailViewerOrientation", "horizontal");
-}
-
-static void
-cb_rstto_hide_tv(GtkWidget *widget, RsttoThumbnailViewer *viewer)
-{
-    gtk_widget_hide(GTK_WIDGET(viewer));
-    xfce_rc_write_entry(xfce_rc, "ThumbnailViewerOrientation", "hide");
-}
-
-static void
-cb_rstto_flip_h(GtkWidget *widget, RsttoNavigator *navigator)
-{
-    RsttoNavigatorEntry *entry = rstto_navigator_get_file(navigator);
-    rstto_navigator_flip_entry(navigator, entry, TRUE);
-}
-
-static void
-cb_rstto_flip_v(GtkWidget *widget, RsttoNavigator *navigator)
-{
-    RsttoNavigatorEntry *entry = rstto_navigator_get_file(navigator);
-    rstto_navigator_flip_entry(navigator, entry, FALSE);
-}
-
-static void
-cb_rstto_rotate_cw(GtkWidget *widget, RsttoNavigator *navigator)
-{
-    RsttoNavigatorEntry *entry = rstto_navigator_get_file(navigator);
-    GdkPixbufRotation rotation = rstto_navigator_entry_get_rotation(entry);
-    switch (rotation)
-    {
-        case GDK_PIXBUF_ROTATE_NONE:
-            rotation = GDK_PIXBUF_ROTATE_CLOCKWISE;
-            break;
-        case GDK_PIXBUF_ROTATE_CLOCKWISE:
-            rotation = GDK_PIXBUF_ROTATE_UPSIDEDOWN;
-            break;
-        case GDK_PIXBUF_ROTATE_UPSIDEDOWN:
-            rotation = GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE;
-            break;
-        case GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE:
-            rotation = GDK_PIXBUF_ROTATE_NONE;
-            break;
-    }
-
-    //rstto_navigator_set_entry_rotation(navigator, entry, rotation);
-}
-
-static void
-cb_rstto_rotate_ccw(GtkWidget *widget, RsttoNavigator *navigator)
-{
-    RsttoNavigatorEntry *entry = rstto_navigator_get_file(navigator);
-    GdkPixbufRotation rotation = rstto_navigator_entry_get_rotation(entry);
-    switch (rotation)
-    {
-        case GDK_PIXBUF_ROTATE_NONE:
-            rotation = GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE;
-            break;
-        case GDK_PIXBUF_ROTATE_CLOCKWISE:
-            rotation = GDK_PIXBUF_ROTATE_NONE;
-            break;
-        case GDK_PIXBUF_ROTATE_UPSIDEDOWN:
-            rotation = GDK_PIXBUF_ROTATE_CLOCKWISE;
-            break;
-        case GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE:
-            rotation = GDK_PIXBUF_ROTATE_UPSIDEDOWN;
-            break;
-    }
-
-    //rstto_navigator_set_entry_rotation(navigator, entry, rotation);
-}
-
-static gboolean
-cb_rstto_key_press_event(GtkWidget *widget, GdkEventKey *event, RsttoNavigator *navigator)
-{
-    GtkWindow *window = GTK_WINDOW(widget);
-    if(gtk_window_activate_key(window, event) == FALSE)
-    {
-        switch(event->keyval)
-        {
-            case GDK_F5:
-                if(playing == TRUE)
-                {
-                    gtk_widget_show(menu_item_play);
-                    gtk_widget_hide(menu_item_pause);
-                    playing = FALSE;
-                }
-                else
-                {
-                    gtk_widget_hide(menu_item_play);
-                    gtk_widget_show(menu_item_pause);
-                    playing = TRUE;
-                }
-                rstto_navigator_set_running(navigator, playing);
-                break;
-            case GDK_F11:
-                if(window_fullscreen)
-                    gtk_window_unfullscreen(window);
-                else
-                    gtk_window_fullscreen(window);
-                break;
-            case GDK_Home:
-                rstto_navigator_jump_first(navigator);
-                break;
-            case GDK_End:
-                rstto_navigator_jump_last(navigator);
-                break;
-            case GDK_Page_Down:
-            case GDK_space:
-                rstto_navigator_jump_forward(navigator);
-                break;
-            case GDK_Page_Up:
-            case GDK_BackSpace:
-                rstto_navigator_jump_back(navigator);
-                break;
-            case GDK_t:
-                if (event->state & GDK_CONTROL_MASK)
-                {
-                    if(strcmp(xfce_rc_read_entry(xfce_rc, "ThumbnailViewerOrientation", "hide"), "hide"))
-                    {
-                        gtk_widget_hide(GTK_WIDGET(thumbnail_viewer));
-                        xfce_rc_write_entry(xfce_rc, "ThumbnailViewerOrientation", "hide");
-                        gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(menu_item_ntv), TRUE);
-                    }
-                    else
-                    {
-                        gtk_widget_show(GTK_WIDGET(thumbnail_viewer));
-                        switch (rstto_thumbnail_viewer_get_orientation(RSTTO_THUMBNAIL_VIEWER(thumbnail_viewer)))
-                        {
-                            case GTK_ORIENTATION_HORIZONTAL:
-                                xfce_rc_write_entry(xfce_rc, "ThumbnailViewerOrientation", "horizontal");
-                                gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(menu_item_htv), TRUE);
-                                break;
-                            case GTK_ORIENTATION_VERTICAL:
-                                xfce_rc_write_entry(xfce_rc, "ThumbnailViewerOrientation", "vertical");
-                                gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(menu_item_vtv), TRUE);
-                                break;
-                        }
-
-                    }
-                }
-                break;
-        }
-    }
-    return TRUE;
-}
-
-static void
-cb_rstto_open(GtkToolItem *item, RsttoNavigator *navigator)
-{
-    GtkWidget *window = gtk_widget_get_toplevel(GTK_WIDGET(item));
-
-    GtkWidget *dialog = gtk_file_chooser_dialog_new(_("Open image"),
-                                                    GTK_WINDOW(window),
-                                                    GTK_FILE_CHOOSER_ACTION_OPEN,
-                                                    GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-                                                    GTK_STOCK_OPEN, GTK_RESPONSE_OK,
-                                                    NULL);
-
-    gint response = gtk_dialog_run(GTK_DIALOG(dialog));
-    if(response == GTK_RESPONSE_OK)
-    {
-        const gchar *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
-
-        ThunarVfsPath *path = thunar_vfs_path_new(filename, NULL);
-        if (path)
-        {
-            ThunarVfsInfo *info = thunar_vfs_info_new_for_path(path, NULL);
-            gchar *file_media = thunar_vfs_mime_info_get_media(info->mime_info);
-            if(!strcmp(file_media, "image"))
-            {
-                RsttoNavigatorEntry *entry = rstto_navigator_entry_new(info);
-                rstto_navigator_add (navigator, entry);
-                gchar *uri = thunar_vfs_path_dup_uri(info->path);
-                gtk_recent_manager_add_item(recent_manager, uri);
-                g_free(uri);
-            }
-            g_free(file_media);
-            thunar_vfs_path_unref(path);
-        }
-        else
-        {
-            gtk_widget_destroy(dialog);
-            dialog = gtk_message_dialog_new(GTK_WINDOW(window),
-                                            GTK_DIALOG_MODAL,
-                                            GTK_MESSAGE_ERROR,
-                                            GTK_BUTTONS_OK,
-                                            _("Could not open file"));
-            gtk_dialog_run(GTK_DIALOG(dialog));
-        }
-    }
-    gtk_widget_destroy(dialog);
-}
-
-static void
-cb_rstto_open_dir(GtkToolItem *item, RsttoNavigator *navigator)
-{
-    GtkWidget *window = gtk_widget_get_toplevel(GTK_WIDGET(item));
-
-    GtkWidget *dialog = gtk_file_chooser_dialog_new(_("Open folder"),
-                                                    GTK_WINDOW(window),
-                                                    GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
-                                                    GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-                                                    GTK_STOCK_OPEN, GTK_RESPONSE_OK,
-                                                    NULL);
-
-    gint response = gtk_dialog_run(GTK_DIALOG(dialog));
-    if(response == GTK_RESPONSE_OK)
-    {
-        rstto_navigator_clear(navigator);
-        const gchar *dir_name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
-        GDir *dir = g_dir_open(dir_name, 0, NULL);
-        if (dir)
-        {
-            const gchar *filename = g_dir_read_name(dir);
-            while (filename)
-            {
-                gchar *path_name = g_strconcat(dir_name,  "/", filename, NULL);
-                ThunarVfsPath *path = thunar_vfs_path_new(path_name, NULL);
-                if (path)
-                {
-                    ThunarVfsInfo *info = thunar_vfs_info_new_for_path(path, NULL);
-                    gchar *file_media = thunar_vfs_mime_info_get_media(info->mime_info);
-                    if(!strcmp(file_media, "image"))
-                    {
-                        RsttoNavigatorEntry *entry = rstto_navigator_entry_new(info);
-                        rstto_navigator_add (navigator, entry);
-                    }
-                    g_free(file_media);
-                    thunar_vfs_path_unref(path);
-                }
-                g_free(path_name);
-                filename = g_dir_read_name(dir);
-            }
-            rstto_navigator_jump_first(navigator);
-            gchar *uri = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER(dialog));
-            gtk_recent_manager_add_item(recent_manager, uri);
-            g_free(uri);
-
-        }
-
-    }
-    gtk_widget_destroy(dialog);
-}
-
-static void
-cb_rstto_open_recent(GtkRecentChooser *chooser, RsttoNavigator *navigator)
-{
-    gchar *uri = gtk_recent_chooser_get_current_uri(chooser);
-    ThunarVfsPath *path = thunar_vfs_path_new(uri, NULL);
-    if (path)
-    {
-        ThunarVfsInfo *info = thunar_vfs_info_new_for_path(path, NULL);
-        if(info)
-        {
-            if(strcmp(thunar_vfs_mime_info_get_name(info->mime_info), "inode/directory"))
-            {
-                RsttoNavigatorEntry *entry = rstto_navigator_entry_new(info);
-                rstto_navigator_add (navigator, entry);
-            }
-            else
-            {
-                rstto_navigator_clear(navigator);
-                gchar *dir_path = thunar_vfs_path_dup_string(info->path);
-                GDir *dir = g_dir_open(dir_path, 0, NULL);
-                const gchar *filename = g_dir_read_name(dir);
-                while (filename)
-                {
-                    gchar *path_name = g_strconcat(dir_path,  "/", filename, NULL);
-                    ThunarVfsPath *file_path = thunar_vfs_path_new(path_name, NULL);
-                    if (file_path)
-                    {
-                        ThunarVfsInfo *file_info = thunar_vfs_info_new_for_path(file_path, NULL);
-                        gchar *file_media = thunar_vfs_mime_info_get_media(file_info->mime_info);
-                        if(!strcmp(file_media, "image"))
-                        {
-                            RsttoNavigatorEntry *entry = rstto_navigator_entry_new(file_info);
-                            rstto_navigator_add (navigator, entry);
-                        }
-                        g_free(file_media);
-                        thunar_vfs_path_unref(file_path);
-                    }
-                    g_free(path_name);
-                    filename = g_dir_read_name(dir);
-                }
-                rstto_navigator_jump_first(navigator);
-                g_free(dir_path);
-            }
-            gchar *uri = thunar_vfs_path_dup_uri(info->path);
-            gtk_recent_manager_add_item(recent_manager, uri);
-            g_free(uri);
-        }
-        thunar_vfs_path_unref(path);
-    }
-}
-
-static void
-cb_rstto_toggle_toolbar(GtkWidget *widget, RsttoThumbnailViewer *viewer)
-{
-    gboolean active = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM(widget));
-    if (active == TRUE)
-    {
-        gtk_widget_show(app_tool_bar);
-        xfce_rc_write_bool_entry(xfce_rc, "ShowToolBar", TRUE);
-    }
-    else
-    {
-        gtk_widget_hide(app_tool_bar);
-        xfce_rc_write_bool_entry(xfce_rc, "ShowToolBar", FALSE);
-    }
-}
-
-static gboolean
-rstto_window_save_geometry_timer (gpointer user_data)
-{
-    GtkWindow *window = GTK_WINDOW(user_data);
-    gint width = 0;
-    gint height = 0;
-    /* check if the window is still visible */
-    if (GTK_WIDGET_VISIBLE (window))
-    {
-        /* determine the current state of the window */
-        gint state = gdk_window_get_state (GTK_WIDGET (window)->window);
-
-        /* don't save geometry for maximized or fullscreen windows */
-        if ((state & (GDK_WINDOW_STATE_MAXIMIZED | GDK_WINDOW_STATE_FULLSCREEN)) == 0)
-        {
-            /* determine the current width/height of the window... */
-            gtk_window_get_size (GTK_WINDOW (window), &width, &height);
-
-            /* ...and remember them as default for new windows */
-            xfce_rc_write_int_entry (xfce_rc, "LastWindowWidth", width);
-            xfce_rc_write_int_entry (xfce_rc, "LastWindowHeight", height);
-        }
-    }
-    return FALSE;
-}
-
-static void
-rstto_window_save_geometry_timer_destroy(gpointer user_data)
-{
-    window_save_geometry_timer_id = 0;
-}
-
-static gboolean
-cb_rstto_main_window_configure_event (GtkWidget *widget, GdkEventConfigure *event)
-{
-    /* shamelessly copied from thunar, written by benny */
-    /* check if we have a new dimension here */
-    if (widget->allocation.width != event->width || widget->allocation.height != event->height)
-    {
-        /* drop any previous timer source */
-        if (window_save_geometry_timer_id > 0)
-            g_source_remove (window_save_geometry_timer_id);
-
-        /* check if we should schedule another save timer */
-        if (GTK_WIDGET_VISIBLE (widget))
-        {
-            /* save the geometry one second after the last configure event */
-            window_save_geometry_timer_id = g_timeout_add_full (G_PRIORITY_LOW, 1000, rstto_window_save_geometry_timer,
-                widget, rstto_window_save_geometry_timer_destroy);
-        }
-    }
-
-    /* let Gtk+ handle the configure event */
-    return FALSE;
-}
-
-static void
-cb_rstto_clear_recent(GtkWidget *widget, GtkRecentManager *manager)
-{
-    GtkWidget *dialog = gtk_message_dialog_new(NULL,
-                                    GTK_DIALOG_MODAL,
-                                    GTK_MESSAGE_ERROR,
-                                    GTK_BUTTONS_OK_CANCEL,
-                                    _("Are you sure you want to clear ristretto's list of recently opened documents?"));
-    gint result = gtk_dialog_run(GTK_DIALOG(dialog));
-    if (result == GTK_RESPONSE_OK)
-    {
-        g_timeout_add(150, (GSourceFunc)rstto_clear_recent, manager);
-    }
-    gtk_widget_destroy(dialog);
-}
-
-static gboolean
-rstto_clear_recent(GtkRecentManager *manager)
-{
-    GList *items = gtk_recent_manager_get_items(manager);
-    GList *iter = items;
-    while(iter)
-    {
-        if(gtk_recent_info_has_application(iter->data, "ristretto"))
-        {
-            gtk_recent_manager_remove_item(manager, gtk_recent_info_get_uri(iter->data), NULL);
-        }
-        iter = g_list_next(iter);
-    }
-    return FALSE;
-}
-
-static void
-cb_rstto_spawn_app(GtkWidget *widget, ThunarVfsMimeApplication *app)
-{
-    ThunarVfsInfo *info = rstto_navigator_entry_get_info(g_object_get_data(G_OBJECT(app), "entry"));
-    GList *list = g_list_prepend(NULL, info->path);
-    thunar_vfs_mime_handler_exec(THUNAR_VFS_MIME_HANDLER(app), NULL, list, NULL);
-}
-
-static void
-cb_rstto_close_current(GtkWidget *item, RsttoNavigator *navigator)
-{
-    RsttoNavigatorEntry *entry = rstto_navigator_get_file(navigator);
-    if (entry)
-    {
-        rstto_navigator_remove(navigator, entry);    
-        rstto_navigator_entry_free(entry);
-        if (rstto_navigator_get_n_files(navigator) == 0)
-        {
-            gtk_widget_set_sensitive(item, FALSE);
-        }
-    }
-    else
-    {
-        gtk_widget_set_sensitive(item, FALSE);
-    }
-}

Added: ristretto/trunk/src/main_window.c
===================================================================
--- ristretto/trunk/src/main_window.c	                        (rev 0)
+++ ristretto/trunk/src/main_window.c	2007-09-25 04:00:53 UTC (rev 3246)
@@ -0,0 +1,901 @@
+/*
+ *  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 <gdk/gdkkeysyms.h>
+#include <string.h>
+#include <thunar-vfs/thunar-vfs.h>
+
+#include "navigator.h"
+#include "thumbnail_viewer.h"
+#include "picture_viewer.h"
+#include "main_window.h"
+
+
+struct _RsttoMainWindowPriv
+{
+    RsttoNavigator *navigator;
+    GtkWidget *thumbnail_viewer;
+    GtkWidget *picture_viewer;
+    GtkWidget *statusbar;
+    GtkRecentManager *manager;
+
+    struct {
+        GtkWidget *main_vbox;
+        GtkWidget *s_window;
+        GtkWidget *paned;
+    } containers;
+
+    struct {
+        GtkOrientation thumbnail_viewer_orientation;
+        gboolean       thumbnail_viewer_visibility;
+        gboolean       toolbar_visibility;
+    } settings;
+
+    struct {
+        GtkWidget *menu;
+        GtkWidget *menu_item_file;
+        struct {
+            GtkWidget *menu;
+            GtkWidget *menu_item_open_file;
+            GtkWidget *menu_item_open_folder;
+            GtkWidget *menu_item_open_recently;
+            struct {
+                GtkWidget *menu;
+                GtkWidget *menu_item_separator_1;
+                GtkWidget *menu_item_clear;
+            } recently;
+            GtkWidget *menu_item_separator_1;
+            GtkWidget *menu_item_close;
+            GtkWidget *menu_item_quit;
+        } file;
+
+        GtkWidget *menu_item_edit;
+        struct {
+            GtkWidget *menu;
+            GtkWidget *menu_item_open_with;
+            struct {
+                GtkWidget *menu;
+                GtkWidget *menu_item_empty;
+            } open_with;
+        } edit;
+
+        GtkWidget *menu_item_view;
+        struct {
+            GtkWidget *menu;
+            GtkWidget *menu_item_show_toolbar;
+            GtkWidget *menu_item_show_thumbnail_viewer;
+            struct {
+                GtkWidget *menu;
+                GtkWidget *menu_item_thumbnail_viewer_horizontal;
+                GtkWidget *menu_item_thumbnail_viewer_vertical;
+                GtkWidget *menu_item_thumbnail_viewer_hide;
+            } show_thumbnail_viewer;
+
+            GtkWidget *menu_item_fullscreen;
+        } view;
+
+        GtkWidget *menu_item_go;
+        struct {
+            GtkWidget *menu;
+            GtkWidget *menu_item_next;
+            GtkWidget *menu_item_previous;
+            GtkWidget *menu_item_first;
+            GtkWidget *menu_item_last;
+            GtkWidget *menu_item_separator_1;
+            GtkWidget *menu_item_play;
+            GtkWidget *menu_item_pause;
+        } go;
+
+        GtkWidget *menu_item_help;
+        struct {
+            GtkWidget *menu;
+            GtkWidget *menu_item_about;
+        } help;
+    } menus;
+
+    struct {
+        GtkWidget *bar;
+
+        GtkToolItem *tool_item_open;
+        GtkToolItem *tool_item_separator_1;
+        GtkToolItem *tool_item_next;
+        GtkToolItem *tool_item_previous;
+        GtkToolItem *tool_item_spacer_1;
+
+        GtkToolItem *tool_item_zoom_fit;
+        GtkToolItem *tool_item_zoom_100;
+        GtkToolItem *tool_item_zoom_out;
+        GtkToolItem *tool_item_zoom_in;
+    } toolbar;
+};
+
+static void
+cb_rstto_main_window_thumbnail_viewer_horizontal(GtkWidget *widget, RsttoMainWindow *window);
+static void
+cb_rstto_main_window_thumbnail_viewer_vertical(GtkWidget *widget, RsttoMainWindow *window);
+static void
+cb_rstto_main_window_thumbnail_viewer_hide(GtkWidget *widget, RsttoMainWindow *window);
+static void
+cb_rstto_main_window_toggle_toolbar(GtkWidget *widget, RsttoMainWindow *window);
+static void
+cb_rstto_main_window_toggle_fullscreen(GtkWidget *widget, RsttoMainWindow *window);
+static gboolean
+cb_rstto_main_window_key_press_event(GtkWidget *widget, GdkEventKey *event, gpointer user_data);
+static void
+cb_rstto_main_window_state_event(GtkWidget *widget, GdkEventWindowState *event, gpointer user_data);
+static void
+cb_rstto_main_window_play(GtkWidget *widget, RsttoMainWindow *window);
+static void
+cb_rstto_main_window_pause(GtkWidget *widget, RsttoMainWindow *window);
+
+static void
+cb_rstto_main_window_open_file(GtkWidget *widget, RsttoMainWindow *window);
+static void
+cb_rstto_main_window_open_folder(GtkWidget *widget, RsttoMainWindow *window);
+static void
+cb_rstto_main_window_open_recent(GtkRecentChooser *chooser, RsttoMainWindow *window);
+static void
+cb_rstto_main_window_close(GtkWidget *widget, RsttoMainWindow *window);
+static void
+cb_rstto_main_window_quit(GtkWidget *widget, RsttoMainWindow *window);
+static void
+cb_rstto_main_window_about(GtkWidget *widget, RsttoMainWindow *window);
+
+static void
+cb_rstto_main_window_nav_iter_changed(RsttoNavigator *navigator, gint nr, RsttoNavigatorEntry *entry, RsttoMainWindow *window);
+
+static void
+rstto_main_window_init(RsttoMainWindow *);
+static void
+rstto_main_window_class_init(RsttoMainWindowClass *);
+
+static GtkWidgetClass *parent_class = NULL;
+
+GType
+rstto_main_window_get_type ()
+{
+    static GType rstto_main_window_type = 0;
+
+    if (!rstto_main_window_type)
+    {
+        static const GTypeInfo rstto_main_window_info = 
+        {
+            sizeof (RsttoMainWindowClass),
+            (GBaseInitFunc) NULL,
+            (GBaseFinalizeFunc) NULL,
+            (GClassInitFunc) rstto_main_window_class_init,
+            (GClassFinalizeFunc) NULL,
+            NULL,
+            sizeof (RsttoMainWindow),
+            0,
+            (GInstanceInitFunc) rstto_main_window_init,
+            NULL
+        };
+
+        rstto_main_window_type = g_type_register_static (GTK_TYPE_WINDOW, "RsttoMainWindow", &rstto_main_window_info, 0);
+    }
+    return rstto_main_window_type;
+}
+
+static void
+rstto_main_window_init(RsttoMainWindow *window)
+{
+    window->priv = g_new0(RsttoMainWindowPriv, 1);
+
+    GtkAccelGroup *accel_group = gtk_accel_group_new();
+
+    gtk_window_set_title(GTK_WINDOW(window), PACKAGE_STRING);
+    gtk_window_add_accel_group(GTK_WINDOW(window), accel_group);
+
+    window->priv->navigator = rstto_navigator_new();
+    window->priv->thumbnail_viewer = rstto_thumbnail_viewer_new(window->priv->navigator);
+    window->priv->picture_viewer = rstto_picture_viewer_new(window->priv->navigator);
+
+    window->priv->manager = gtk_recent_manager_get_default();
+
+/* Set up default settings */
+    window->priv->settings.thumbnail_viewer_orientation = GTK_ORIENTATION_HORIZONTAL; 
+    window->priv->settings.thumbnail_viewer_visibility = TRUE;
+
+/* Create menu bar */
+    window->priv->menus.menu = gtk_menu_bar_new();
+    
+/* Create 'File' menu */
+    window->priv->menus.menu_item_file = gtk_menu_item_new_with_mnemonic(_("_File"));
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.menu), window->priv->menus.menu_item_file);
+
+    window->priv->menus.file.menu = gtk_menu_new();
+    gtk_menu_set_accel_group(GTK_MENU(window->priv->menus.file.menu), accel_group);
+
+    window->priv->menus.file.menu_item_open_file = gtk_image_menu_item_new_from_stock(GTK_STOCK_OPEN, accel_group);
+    window->priv->menus.file.menu_item_open_folder = gtk_menu_item_new_with_mnemonic(_("O_pen Folder"));
+    window->priv->menus.file.menu_item_open_recently = gtk_menu_item_new_with_mnemonic(_("_Recently used"));
+    window->priv->menus.file.menu_item_separator_1 = gtk_separator_menu_item_new();
+    window->priv->menus.file.menu_item_close = gtk_image_menu_item_new_from_stock(GTK_STOCK_CLOSE, accel_group);
+    window->priv->menus.file.menu_item_quit = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, accel_group);
+
+    gtk_menu_item_set_submenu(GTK_MENU_ITEM(window->priv->menus.menu_item_file), window->priv->menus.file.menu);
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.file.menu), window->priv->menus.file.menu_item_open_file);
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.file.menu), window->priv->menus.file.menu_item_open_folder);
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.file.menu), window->priv->menus.file.menu_item_open_recently);
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.file.menu), window->priv->menus.file.menu_item_separator_1);
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.file.menu), window->priv->menus.file.menu_item_close);
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.file.menu), window->priv->menus.file.menu_item_quit);
+
+    gtk_widget_set_sensitive(window->priv->menus.file.menu_item_close, FALSE);
+
+    window->priv->menus.file.recently.menu = gtk_recent_chooser_menu_new_for_manager(GTK_RECENT_MANAGER(window->priv->manager));
+    window->priv->menus.file.recently.menu_item_clear = gtk_image_menu_item_new_from_stock(GTK_STOCK_CLEAR, accel_group);
+    window->priv->menus.file.recently.menu_item_separator_1 = gtk_separator_menu_item_new();
+
+    GtkRecentFilter *filter = gtk_recent_filter_new();
+    gtk_recent_filter_add_application(filter, "ristretto");
+    gtk_recent_chooser_add_filter(GTK_RECENT_CHOOSER(window->priv->menus.file.recently.menu), filter);
+    gtk_menu_item_set_submenu(GTK_MENU_ITEM(window->priv->menus.file.menu_item_open_recently), window->priv->menus.file.recently.menu);
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.file.recently.menu), window->priv->menus.file.recently.menu_item_separator_1);
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.file.recently.menu), window->priv->menus.file.recently.menu_item_clear);
+
+/* Create 'Edit' menu */
+    window->priv->menus.menu_item_edit = gtk_menu_item_new_with_mnemonic(_("_Edit"));
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.menu), window->priv->menus.menu_item_edit);
+
+    window->priv->menus.edit.menu = gtk_menu_new();
+    gtk_menu_set_accel_group(GTK_MENU(window->priv->menus.edit.menu), accel_group);
+    window->priv->menus.edit.menu_item_open_with = gtk_menu_item_new_with_mnemonic(_("Open with..."));
+
+    gtk_menu_item_set_submenu(GTK_MENU_ITEM(window->priv->menus.menu_item_edit), window->priv->menus.edit.menu);
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.edit.menu), window->priv->menus.edit.menu_item_open_with);
+    
+    window->priv->menus.edit.open_with.menu = gtk_menu_new();
+    window->priv->menus.edit.open_with.menu_item_empty = gtk_menu_item_new_with_label(_("No applications available"));
+
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.edit.open_with.menu), window->priv->menus.edit.open_with.menu_item_empty);
+    gtk_widget_set_sensitive(window->priv->menus.edit.open_with.menu_item_empty, FALSE);
+
+    gtk_menu_item_set_submenu(GTK_MENU_ITEM(window->priv->menus.edit.menu_item_open_with), window->priv->menus.edit.open_with.menu);
+
+/* Create 'View' menu */
+    window->priv->menus.menu_item_view = gtk_menu_item_new_with_mnemonic(_("_View"));
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.menu), window->priv->menus.menu_item_view);
+
+    window->priv->menus.view.menu = gtk_menu_new();
+    gtk_menu_set_accel_group(GTK_MENU(window->priv->menus.view.menu), accel_group);
+    gtk_menu_item_set_submenu(GTK_MENU_ITEM(window->priv->menus.menu_item_view), window->priv->menus.view.menu);
+
+    window->priv->menus.view.menu_item_show_toolbar = gtk_check_menu_item_new_with_mnemonic(_("Show Toolbar"));
+    window->priv->menus.view.menu_item_show_thumbnail_viewer = gtk_menu_item_new_with_mnemonic(_("Thumbnail Viewer"));
+    window->priv->menus.view.menu_item_fullscreen = gtk_image_menu_item_new_from_stock(GTK_STOCK_FULLSCREEN, NULL);
+
+    gtk_widget_add_accelerator(window->priv->menus.view.menu_item_fullscreen, "activate", accel_group, GDK_F11, 0,GTK_ACCEL_VISIBLE);
+    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(window->priv->menus.view.menu_item_show_toolbar), TRUE);
+
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.view.menu), window->priv->menus.view.menu_item_show_toolbar);
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.view.menu), window->priv->menus.view.menu_item_show_thumbnail_viewer);
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.view.menu), window->priv->menus.view.menu_item_fullscreen);
+
+    window->priv->menus.view.show_thumbnail_viewer.menu = gtk_menu_new();
+    gtk_menu_set_accel_group(GTK_MENU(window->priv->menus.view.show_thumbnail_viewer.menu), accel_group);
+
+    gtk_menu_item_set_submenu(GTK_MENU_ITEM(window->priv->menus.view.menu_item_show_thumbnail_viewer),
+            window->priv->menus.view.show_thumbnail_viewer.menu);
+    window->priv->menus.view.show_thumbnail_viewer.
+            menu_item_thumbnail_viewer_horizontal = gtk_radio_menu_item_new_with_mnemonic(
+                    NULL, 
+                    _("Show Horizontally"));
+    window->priv->menus.view.show_thumbnail_viewer.
+            menu_item_thumbnail_viewer_vertical = gtk_radio_menu_item_new_with_mnemonic_from_widget(
+                    GTK_RADIO_MENU_ITEM(window->priv->menus.view.show_thumbnail_viewer.menu_item_thumbnail_viewer_horizontal),
+                    _("Show Vertically"));
+    window->priv->menus.view.show_thumbnail_viewer.
+            menu_item_thumbnail_viewer_hide = gtk_radio_menu_item_new_with_mnemonic_from_widget(
+                    GTK_RADIO_MENU_ITEM(window->priv->menus.view.show_thumbnail_viewer.menu_item_thumbnail_viewer_horizontal),
+                    _("Hide"));
+
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.view.show_thumbnail_viewer.menu),
+            window->priv->menus.view.show_thumbnail_viewer.menu_item_thumbnail_viewer_horizontal);
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.view.show_thumbnail_viewer.menu),
+            window->priv->menus.view.show_thumbnail_viewer.menu_item_thumbnail_viewer_vertical);
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.view.show_thumbnail_viewer.menu),
+            window->priv->menus.view.show_thumbnail_viewer.menu_item_thumbnail_viewer_hide);
+
+/* Create 'Go' menu */
+    window->priv->menus.menu_item_go= gtk_menu_item_new_with_mnemonic(_("_Go"));
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.menu), window->priv->menus.menu_item_go);
+
+    window->priv->menus.go.menu = gtk_menu_new();
+    gtk_menu_set_accel_group(GTK_MENU(window->priv->menus.go.menu), accel_group);
+    gtk_menu_item_set_submenu(GTK_MENU_ITEM(window->priv->menus.menu_item_go), window->priv->menus.go.menu);
+
+    window->priv->menus.go.menu_item_first = gtk_image_menu_item_new_from_stock(GTK_STOCK_GOTO_FIRST, NULL);
+    window->priv->menus.go.menu_item_last = gtk_image_menu_item_new_from_stock(GTK_STOCK_GOTO_LAST, NULL);
+    window->priv->menus.go.menu_item_next = gtk_image_menu_item_new_from_stock(GTK_STOCK_GO_FORWARD, NULL);
+    window->priv->menus.go.menu_item_previous = gtk_image_menu_item_new_from_stock(GTK_STOCK_GO_BACK, NULL);
+    window->priv->menus.go.menu_item_separator_1 = gtk_separator_menu_item_new();
+    window->priv->menus.go.menu_item_play = gtk_image_menu_item_new_from_stock(GTK_STOCK_MEDIA_PLAY, accel_group);
+    window->priv->menus.go.menu_item_pause = gtk_image_menu_item_new_from_stock(GTK_STOCK_MEDIA_PAUSE, accel_group);
+
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.go.menu), window->priv->menus.go.menu_item_next);
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.go.menu), window->priv->menus.go.menu_item_previous);
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.go.menu), window->priv->menus.go.menu_item_first);
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.go.menu), window->priv->menus.go.menu_item_last);
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.go.menu), window->priv->menus.go.menu_item_separator_1);
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.go.menu), window->priv->menus.go.menu_item_play);
+
+    gtk_widget_set_sensitive(window->priv->menus.go.menu_item_first, FALSE);
+    gtk_widget_set_sensitive(window->priv->menus.go.menu_item_last, FALSE);
+    gtk_widget_set_sensitive(window->priv->menus.go.menu_item_next, FALSE);
+    gtk_widget_set_sensitive(window->priv->menus.go.menu_item_previous, FALSE);
+    gtk_widget_set_sensitive(window->priv->menus.go.menu_item_play, FALSE);
+
+/* Create 'Help' menu */
+    window->priv->menus.menu_item_help = gtk_menu_item_new_with_mnemonic(_("_Help"));
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.menu), window->priv->menus.menu_item_help);
+
+    window->priv->menus.help.menu = gtk_menu_new();
+    gtk_menu_set_accel_group(GTK_MENU(window->priv->menus.help.menu), accel_group);
+
+    window->priv->menus.help.menu_item_about = gtk_image_menu_item_new_from_stock(GTK_STOCK_ABOUT, accel_group);
+    gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.help.menu), window->priv->menus.help.menu_item_about);
+
+    gtk_menu_item_set_submenu(GTK_MENU_ITEM(window->priv->menus.menu_item_help), window->priv->menus.help.menu);
+
+/* Create toolbar */
+    window->priv->toolbar.bar = gtk_toolbar_new();
+    window->priv->toolbar.tool_item_open = gtk_tool_button_new_from_stock(GTK_STOCK_OPEN);
+    window->priv->toolbar.tool_item_separator_1 = gtk_separator_tool_item_new();
+    window->priv->toolbar.tool_item_next = gtk_tool_button_new_from_stock(GTK_STOCK_GO_FORWARD);
+    window->priv->toolbar.tool_item_previous = gtk_tool_button_new_from_stock(GTK_STOCK_GO_BACK);
+    window->priv->toolbar.tool_item_spacer_1= gtk_tool_item_new();
+
+    gtk_tool_item_set_is_important(window->priv->toolbar.tool_item_previous, TRUE);
+    gtk_tool_item_set_is_important(window->priv->toolbar.tool_item_next, TRUE);
+
+    gtk_tool_item_set_expand(window->priv->toolbar.tool_item_spacer_1, TRUE);
+    gtk_tool_item_set_homogeneous(window->priv->toolbar.tool_item_spacer_1, FALSE);
+
+    window->priv->toolbar.tool_item_zoom_fit = gtk_tool_button_new_from_stock(GTK_STOCK_ZOOM_FIT);
+    window->priv->toolbar.tool_item_zoom_100 = gtk_tool_button_new_from_stock(GTK_STOCK_ZOOM_100);
+    window->priv->toolbar.tool_item_zoom_in  = gtk_tool_button_new_from_stock(GTK_STOCK_ZOOM_IN);
+    window->priv->toolbar.tool_item_zoom_out = gtk_tool_button_new_from_stock(GTK_STOCK_ZOOM_OUT);
+
+    gtk_toolbar_insert(GTK_TOOLBAR(window->priv->toolbar.bar), window->priv->toolbar.tool_item_open, 0);
+    gtk_toolbar_insert(GTK_TOOLBAR(window->priv->toolbar.bar), window->priv->toolbar.tool_item_separator_1, 1);
+    gtk_toolbar_insert(GTK_TOOLBAR(window->priv->toolbar.bar), window->priv->toolbar.tool_item_previous, 2);
+    gtk_toolbar_insert(GTK_TOOLBAR(window->priv->toolbar.bar), window->priv->toolbar.tool_item_next, 3);
+    gtk_toolbar_insert(GTK_TOOLBAR(window->priv->toolbar.bar), window->priv->toolbar.tool_item_spacer_1, 4);
+    gtk_toolbar_insert(GTK_TOOLBAR(window->priv->toolbar.bar), window->priv->toolbar.tool_item_zoom_in, 5);
+    gtk_toolbar_insert(GTK_TOOLBAR(window->priv->toolbar.bar), window->priv->toolbar.tool_item_zoom_out, 6);
+    gtk_toolbar_insert(GTK_TOOLBAR(window->priv->toolbar.bar), window->priv->toolbar.tool_item_zoom_fit, 7);
+    gtk_toolbar_insert(GTK_TOOLBAR(window->priv->toolbar.bar), window->priv->toolbar.tool_item_zoom_100, 8);
+
+/* Create statusbar */
+    window->priv->statusbar = gtk_statusbar_new();
+
+/* Create containers */
+    window->priv->containers.main_vbox = gtk_vbox_new(FALSE, 0);
+    window->priv->containers.s_window = gtk_scrolled_window_new(NULL, NULL);
+    window->priv->containers.paned = gtk_vbox_new(FALSE, 0);
+
+    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(window->priv->containers.s_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+
+    gtk_container_add(GTK_CONTAINER(window), window->priv->containers.main_vbox);
+    gtk_box_pack_start(GTK_BOX(window->priv->containers.main_vbox), window->priv->menus.menu, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(window->priv->containers.main_vbox), window->priv->toolbar.bar, FALSE, FALSE, 0);
+
+    gtk_container_add(GTK_CONTAINER(window->priv->containers.s_window), window->priv->picture_viewer);
+
+    gtk_box_pack_start(GTK_BOX(window->priv->containers.paned), window->priv->containers.s_window, TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(window->priv->containers.paned), window->priv->thumbnail_viewer, FALSE, FALSE, 0);
+
+    gtk_box_pack_start(GTK_BOX(window->priv->containers.main_vbox), window->priv->containers.paned, TRUE, TRUE, 0);
+
+    gtk_box_pack_end(GTK_BOX(window->priv->containers.main_vbox), window->priv->statusbar, FALSE, FALSE, 0);
+
+/* Connect signals */
+    
+    /* Thumbnail-viewer */
+    g_signal_connect(window->priv->menus.view.show_thumbnail_viewer.menu_item_thumbnail_viewer_horizontal,
+            "activate",
+            G_CALLBACK(cb_rstto_main_window_thumbnail_viewer_horizontal), window);
+    g_signal_connect(window->priv->menus.view.show_thumbnail_viewer.menu_item_thumbnail_viewer_vertical,
+            "activate",
+            G_CALLBACK(cb_rstto_main_window_thumbnail_viewer_vertical), window);
+    g_signal_connect(window->priv->menus.view.show_thumbnail_viewer.menu_item_thumbnail_viewer_hide,
+            "activate",
+            G_CALLBACK(cb_rstto_main_window_thumbnail_viewer_hide), window);
+
+    /* Toolbar show/hide */
+    g_signal_connect(window->priv->menus.view.menu_item_show_toolbar, 
+            "activate",
+            G_CALLBACK(cb_rstto_main_window_toggle_toolbar), window);
+
+    /* Fullscreen */
+    g_signal_connect(window->priv->menus.view.menu_item_fullscreen, 
+            "activate",
+            G_CALLBACK(cb_rstto_main_window_toggle_fullscreen), window);
+
+    /* Play / Pause */
+    g_signal_connect(window->priv->menus.go.menu_item_play, 
+            "activate",
+            G_CALLBACK(cb_rstto_main_window_play), window);
+    g_signal_connect(window->priv->menus.go.menu_item_pause, 
+            "activate",
+            G_CALLBACK(cb_rstto_main_window_pause), window);
+
+    /* Window evets */
+    g_signal_connect(G_OBJECT(window),
+            "window-state-event",
+            G_CALLBACK(cb_rstto_main_window_state_event), NULL);
+    g_signal_connect(G_OBJECT(window),
+            "key-press-event",
+            G_CALLBACK(cb_rstto_main_window_key_press_event), NULL);
+
+    /* Generic */
+    g_signal_connect(window->priv->menus.file.menu_item_open_file, 
+            "activate",
+            G_CALLBACK(cb_rstto_main_window_open_file), window);
+    g_signal_connect(window->priv->menus.file.menu_item_open_folder, 
+            "activate",
+            G_CALLBACK(cb_rstto_main_window_open_folder), window);
+    g_signal_connect(window->priv->menus.file.menu_item_close, 
+            "activate",
+            G_CALLBACK(cb_rstto_main_window_close), window);
+    g_signal_connect(G_OBJECT(window->priv->menus.file.recently.menu),
+            "item-activated", G_CALLBACK(cb_rstto_main_window_open_recent), window);
+    g_signal_connect(window->priv->menus.file.menu_item_quit, 
+            "activate",
+            G_CALLBACK(cb_rstto_main_window_quit), window);
+    g_signal_connect(window->priv->menus.help.menu_item_about, 
+            "activate",
+            G_CALLBACK(cb_rstto_main_window_about), window);
+
+    g_signal_connect(G_OBJECT(window->priv->navigator),
+            "iter-changed",
+            G_CALLBACK(cb_rstto_main_window_nav_iter_changed), window);
+}
+
+static void
+rstto_main_window_class_init(RsttoMainWindowClass *window_class)
+{
+    parent_class = g_type_class_peek_parent(window_class);
+}
+
+GtkWidget *
+rstto_main_window_new()
+{
+    GtkWidget *widget;
+
+    widget = g_object_new(RSTTO_TYPE_MAIN_WINDOW, NULL);
+
+    return widget;
+}
+
+void
+rstto_main_window_set_thumbnail_viewer_orientation(RsttoMainWindow *window, GtkOrientation orientation)
+{
+    window->priv->settings.thumbnail_viewer_orientation = orientation;
+
+    gtk_widget_ref(window->priv->thumbnail_viewer);
+    gtk_widget_ref(window->priv->containers.s_window);
+    gtk_container_remove(GTK_CONTAINER(window->priv->containers.paned), window->priv->thumbnail_viewer);
+    gtk_container_remove(GTK_CONTAINER(window->priv->containers.paned), window->priv->containers.s_window);
+    gtk_widget_destroy(window->priv->containers.paned);
+
+    rstto_thumbnail_viewer_set_orientation(RSTTO_THUMBNAIL_VIEWER(window->priv->thumbnail_viewer), orientation);
+
+    switch (orientation)
+    {
+        case GTK_ORIENTATION_HORIZONTAL:
+            window->priv->containers.paned = gtk_vbox_new(FALSE, 0);
+            break;
+        case GTK_ORIENTATION_VERTICAL:
+            window->priv->containers.paned = gtk_hbox_new(FALSE, 0);
+            break;
+    }
+    
+    gtk_box_pack_start(GTK_BOX(window->priv->containers.paned), window->priv->containers.s_window, TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(window->priv->containers.paned), window->priv->thumbnail_viewer, FALSE, FALSE, 0);
+
+    gtk_box_pack_start(GTK_BOX(window->priv->containers.main_vbox), window->priv->containers.paned, TRUE, TRUE, 0);
+    gtk_box_reorder_child(GTK_BOX(window->priv->containers.main_vbox), window->priv->containers.paned, -2);
+    gtk_widget_show(window->priv->containers.paned);
+
+}
+
+void
+rstto_main_window_set_thumbnail_viewer_visibility (RsttoMainWindow *window, gboolean visibility)
+{
+    window->priv->settings.thumbnail_viewer_visibility = visibility;
+    if (visibility == TRUE)
+    {
+        gtk_widget_show(window->priv->thumbnail_viewer);
+    }
+    else
+    {
+        gtk_widget_hide(window->priv->thumbnail_viewer);
+    }
+}
+
+/* CALLBACK FUNCTIONS */
+
+static void
+cb_rstto_main_window_thumbnail_viewer_horizontal(GtkWidget *widget, RsttoMainWindow *window)
+{
+    rstto_main_window_set_thumbnail_viewer_visibility(window, TRUE);
+    rstto_main_window_set_thumbnail_viewer_orientation(window, GTK_ORIENTATION_HORIZONTAL);
+}
+
+static void
+cb_rstto_main_window_thumbnail_viewer_vertical(GtkWidget *widget, RsttoMainWindow *window)
+{
+    rstto_main_window_set_thumbnail_viewer_visibility(window, TRUE);
+    rstto_main_window_set_thumbnail_viewer_orientation(window, GTK_ORIENTATION_VERTICAL);
+}
+
+static void
+cb_rstto_main_window_thumbnail_viewer_hide(GtkWidget *widget, RsttoMainWindow *window)
+{
+    rstto_main_window_set_thumbnail_viewer_visibility(window, FALSE);
+}
+
+static void
+cb_rstto_main_window_toggle_fullscreen(GtkWidget *widget, RsttoMainWindow *window)
+{
+    if(gdk_window_get_state(GTK_WIDGET(window)->window) & GDK_WINDOW_STATE_FULLSCREEN)
+    {
+        gtk_window_unfullscreen(GTK_WINDOW(window));
+    }
+    else
+    {
+        gtk_window_fullscreen(GTK_WINDOW(window));
+    }
+}
+
+static void
+cb_rstto_main_window_toggle_toolbar(GtkWidget *widget, RsttoMainWindow *window)
+{
+    gboolean active = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM(widget));
+
+    window->priv->settings.toolbar_visibility = active;
+
+    if (active == TRUE)
+    {
+        gtk_widget_show(window->priv->toolbar.bar);
+    }
+    else
+    {
+        gtk_widget_hide(window->priv->toolbar.bar);
+    }
+}
+
+static gboolean
+cb_rstto_main_window_key_press_event(GtkWidget *widget, GdkEventKey *event, gpointer user_data)
+{
+    GtkWindow *window = GTK_WINDOW(widget);
+    RsttoMainWindow *rstto_window = RSTTO_MAIN_WINDOW(widget);
+    if(gtk_window_activate_key(window, event) == FALSE)
+    {
+        switch(event->keyval)
+        {
+            case GDK_F5:
+                break;
+            case GDK_F11:
+                if(gdk_window_get_state(widget->window) & GDK_WINDOW_STATE_FULLSCREEN)
+                {
+                    gtk_window_unfullscreen(window);
+                }
+                else
+                {
+                    gtk_window_fullscreen(window);
+                }
+                break;
+            case GDK_Home:
+                rstto_navigator_jump_first(rstto_window->priv->navigator);
+                break;
+            case GDK_End:
+                rstto_navigator_jump_last(rstto_window->priv->navigator);
+                break;
+            case GDK_Page_Down:
+            case GDK_space:
+                rstto_navigator_jump_forward(rstto_window->priv->navigator);
+                break;
+            case GDK_Page_Up:
+            case GDK_BackSpace:
+                rstto_navigator_jump_back(rstto_window->priv->navigator);
+                break;
+            case GDK_t:
+                rstto_main_window_set_thumbnail_viewer_visibility(RSTTO_MAIN_WINDOW(window),
+                        !(RSTTO_MAIN_WINDOW(window)->priv->settings.thumbnail_viewer_visibility));
+                break;
+        }
+    }
+    return TRUE;
+}
+
+static void
+cb_rstto_main_window_state_event(GtkWidget *widget, GdkEventWindowState *event, gpointer user_data)
+{
+    RsttoMainWindow *window = RSTTO_MAIN_WINDOW(widget);
+    if(event->changed_mask & GDK_WINDOW_STATE_FULLSCREEN)
+    {
+        if(event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN)
+        {
+            gtk_widget_hide(window->priv->menus.menu);
+            gtk_widget_hide(window->priv->toolbar.bar);
+            gtk_widget_hide(window->priv->statusbar);
+        }
+        else
+        {
+            gtk_widget_show(window->priv->menus.menu);
+            gtk_widget_show(window->priv->toolbar.bar);
+            gtk_widget_show(window->priv->statusbar);
+        }
+    }
+}
+
+static void
+cb_rstto_main_window_play(GtkWidget *widget, RsttoMainWindow *window)
+{
+    gtk_widget_ref(widget);
+    gtk_container_remove(GTK_CONTAINER(window->priv->menus.go.menu), widget);
+    gtk_menu_shell_insert(GTK_MENU_SHELL(window->priv->menus.go.menu), window->priv->menus.go.menu_item_pause, 5);
+    gtk_widget_show_all(window->priv->menus.go.menu_item_pause);
+}
+
+static void
+cb_rstto_main_window_pause(GtkWidget *widget, RsttoMainWindow *window)
+{
+    gtk_widget_ref(widget);
+    gtk_container_remove(GTK_CONTAINER(window->priv->menus.go.menu), widget);
+    gtk_menu_shell_insert(GTK_MENU_SHELL(window->priv->menus.go.menu), window->priv->menus.go.menu_item_play, 5);
+    gtk_widget_show_all(window->priv->menus.go.menu_item_play);
+}
+
+static void
+cb_rstto_main_window_about(GtkWidget *widget, RsttoMainWindow *window)
+{
+    const gchar *authors[] = {
+      _("Developer:"),
+        "Stephan Arts <stephan at xfce.org>",
+        NULL};
+
+    GtkWidget *about_dialog = gtk_about_dialog_new();
+
+    gtk_about_dialog_set_name((GtkAboutDialog *)about_dialog, PACKAGE_NAME);
+    gtk_about_dialog_set_version((GtkAboutDialog *)about_dialog, PACKAGE_VERSION);
+
+    gtk_about_dialog_set_comments((GtkAboutDialog *)about_dialog,
+        _("Ristretto is a fast and lightweight picture-viewer for the Xfce desktop environment."));
+    gtk_about_dialog_set_website((GtkAboutDialog *)about_dialog,
+        "http://goodies.xfce.org/projects/applications/ristretto");
+    gtk_about_dialog_set_logo_icon_name((GtkAboutDialog *)about_dialog,
+        "ristretto");
+    gtk_about_dialog_set_authors((GtkAboutDialog *)about_dialog,
+        authors);
+    gtk_about_dialog_set_translator_credits((GtkAboutDialog *)about_dialog,
+        _("translator-credits"));
+    gtk_about_dialog_set_license((GtkAboutDialog *)about_dialog,
+        xfce_get_license_text(XFCE_LICENSE_TEXT_GPL));
+    gtk_about_dialog_set_copyright((GtkAboutDialog *)about_dialog,
+        "Copyright \302\251 2006-2007 Stephan Arts");
+
+    gtk_dialog_run(GTK_DIALOG(about_dialog));
+
+    gtk_widget_destroy(about_dialog);
+}
+
+static void
+cb_rstto_main_window_quit(GtkWidget *widget, RsttoMainWindow *window)
+{
+    gtk_widget_destroy(GTK_WIDGET(window));
+}
+
+static void
+cb_rstto_main_window_open_file(GtkWidget *widget, RsttoMainWindow *window)
+{
+    GtkWidget *dialog = gtk_file_chooser_dialog_new(_("Open image"),
+                                                    GTK_WINDOW(window),
+                                                    GTK_FILE_CHOOSER_ACTION_OPEN,
+                                                    GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+                                                    GTK_STOCK_OPEN, GTK_RESPONSE_OK,
+                                                    NULL);
+
+    gint response = gtk_dialog_run(GTK_DIALOG(dialog));
+    if(response == GTK_RESPONSE_OK)
+    {
+        const gchar *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
+
+        ThunarVfsPath *path = thunar_vfs_path_new(filename, NULL);
+        if (path)
+        {
+            ThunarVfsInfo *info = thunar_vfs_info_new_for_path(path, NULL);
+            gchar *file_media = thunar_vfs_mime_info_get_media(info->mime_info);
+            if(!strcmp(file_media, "image"))
+            {
+                RsttoNavigatorEntry *entry = rstto_navigator_entry_new(info);
+                rstto_navigator_add (window->priv->navigator, entry);
+                gchar *uri = thunar_vfs_path_dup_uri(info->path);
+                gtk_recent_manager_add_item(window->priv->manager, uri);
+                g_free(uri);
+            }
+            g_free(file_media);
+            thunar_vfs_path_unref(path);
+        }
+        else
+        {
+            gtk_widget_destroy(dialog);
+            dialog = gtk_message_dialog_new(GTK_WINDOW(window),
+                                            GTK_DIALOG_MODAL,
+                                            GTK_MESSAGE_ERROR,
+                                            GTK_BUTTONS_OK,
+                                            _("Could not open file"));
+            gtk_dialog_run(GTK_DIALOG(dialog));
+        }
+    }
+    gtk_widget_destroy(dialog);
+}
+
+static void
+cb_rstto_main_window_open_folder(GtkWidget *widget, RsttoMainWindow *window)
+{
+    GtkWidget *dialog = gtk_file_chooser_dialog_new(_("Open folder"),
+                                                    GTK_WINDOW(window),
+                                                    GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
+                                                    GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+                                                    GTK_STOCK_OPEN, GTK_RESPONSE_OK,
+                                                    NULL);
+
+    gint response = gtk_dialog_run(GTK_DIALOG(dialog));
+    if(response == GTK_RESPONSE_OK)
+    {
+        rstto_navigator_clear(window->priv->navigator);
+        const gchar *dir_name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
+        GDir *dir = g_dir_open(dir_name, 0, NULL);
+        if (dir)
+        {
+            const gchar *filename = g_dir_read_name(dir);
+            while (filename)
+            {
+                gchar *path_name = g_strconcat(dir_name,  "/", filename, NULL);
+                ThunarVfsPath *path = thunar_vfs_path_new(path_name, NULL);
+                if (path)
+                {
+                    ThunarVfsInfo *info = thunar_vfs_info_new_for_path(path, NULL);
+                    gchar *file_media = thunar_vfs_mime_info_get_media(info->mime_info);
+                    if(!strcmp(file_media, "image"))
+                    {
+                        RsttoNavigatorEntry *entry = rstto_navigator_entry_new(info);
+                        rstto_navigator_add (window->priv->navigator, entry);
+                    }
+                    g_free(file_media);
+                    thunar_vfs_path_unref(path);
+                }
+                g_free(path_name);
+                filename = g_dir_read_name(dir);
+            }
+            rstto_navigator_jump_first(window->priv->navigator);
+            gchar *uri = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER(dialog));
+            gtk_recent_manager_add_item(window->priv->manager, uri);
+            g_free(uri);
+
+        }
+
+    }
+    gtk_widget_destroy(dialog);
+}
+
+static void
+cb_rstto_main_window_open_recent(GtkRecentChooser *chooser, RsttoMainWindow *window)
+{
+    gchar *uri = gtk_recent_chooser_get_current_uri(chooser);
+    ThunarVfsPath *path = thunar_vfs_path_new(uri, NULL);
+    if (path)
+    {
+        ThunarVfsInfo *info = thunar_vfs_info_new_for_path(path, NULL);
+        if(info)
+        {
+            if(strcmp(thunar_vfs_mime_info_get_name(info->mime_info), "inode/directory"))
+            {
+                RsttoNavigatorEntry *entry = rstto_navigator_entry_new(info);
+                rstto_navigator_add (window->priv->navigator, entry);
+            }
+            else
+            {
+                rstto_navigator_clear(window->priv->navigator);
+                gchar *dir_path = thunar_vfs_path_dup_string(info->path);
+                GDir *dir = g_dir_open(dir_path, 0, NULL);
+                const gchar *filename = g_dir_read_name(dir);
+                while (filename)
+                {
+                    gchar *path_name = g_strconcat(dir_path,  "/", filename, NULL);
+                    ThunarVfsPath *file_path = thunar_vfs_path_new(path_name, NULL);
+                    if (file_path)
+                    {
+                        ThunarVfsInfo *file_info = thunar_vfs_info_new_for_path(file_path, NULL);
+                        gchar *file_media = thunar_vfs_mime_info_get_media(file_info->mime_info);
+                        if(!strcmp(file_media, "image"))
+                        {
+                            RsttoNavigatorEntry *entry = rstto_navigator_entry_new(file_info);
+                            rstto_navigator_add (window->priv->navigator, entry);
+                        }
+                        g_free(file_media);
+                        thunar_vfs_path_unref(file_path);
+                    }
+                    g_free(path_name);
+                    filename = g_dir_read_name(dir);
+                }
+                rstto_navigator_jump_first(window->priv->navigator);
+                g_free(dir_path);
+            }
+            gchar *uri = thunar_vfs_path_dup_uri(info->path);
+            gtk_recent_manager_add_item(window->priv->manager, uri);
+            g_free(uri);
+        }
+        thunar_vfs_path_unref(path);
+    }
+
+}
+
+static void
+cb_rstto_main_window_close(GtkWidget *widget, RsttoMainWindow *window)
+{
+    RsttoNavigatorEntry *entry = rstto_navigator_get_file(window->priv->navigator);
+    if (entry)
+    {
+        rstto_navigator_remove(window->priv->navigator, entry);    
+        rstto_navigator_entry_free(entry);
+        if (rstto_navigator_get_n_files(window->priv->navigator) == 0)
+        {
+            gtk_widget_set_sensitive(widget, FALSE);
+        }
+    }
+    else
+    {
+        gtk_widget_set_sensitive(widget, FALSE);
+    }
+}
+
+static void
+cb_rstto_main_window_nav_iter_changed(RsttoNavigator *navigator, gint nr, RsttoNavigatorEntry *entry, RsttoMainWindow *window)
+{
+    ThunarVfsInfo *info = NULL;
+    const gchar *filename = NULL;
+
+    if(entry)
+    {
+        info = rstto_navigator_entry_get_info(entry);
+        filename = info->display_name;
+        gtk_widget_set_sensitive(window->priv->menus.file.menu_item_close, TRUE);
+        gtk_widget_set_sensitive(window->priv->menus.go.menu_item_first, TRUE);
+        gtk_widget_set_sensitive(window->priv->menus.go.menu_item_last, TRUE);
+        gtk_widget_set_sensitive(window->priv->menus.go.menu_item_previous, TRUE);
+        gtk_widget_set_sensitive(window->priv->menus.go.menu_item_next, TRUE);
+    }
+    else
+    {
+        gtk_widget_set_sensitive(window->priv->menus.file.menu_item_close, FALSE);
+        if (rstto_navigator_get_n_files(window->priv->navigator) == 0)
+        {
+            gtk_widget_set_sensitive(window->priv->menus.go.menu_item_first, FALSE);
+            gtk_widget_set_sensitive(window->priv->menus.go.menu_item_last, FALSE);
+            gtk_widget_set_sensitive(window->priv->menus.go.menu_item_previous, FALSE);
+            gtk_widget_set_sensitive(window->priv->menus.go.menu_item_next, FALSE);
+        }
+    }
+
+}

Added: ristretto/trunk/src/main_window.h
===================================================================
--- ristretto/trunk/src/main_window.h	                        (rev 0)
+++ ristretto/trunk/src/main_window.h	2007-09-25 04:00:53 UTC (rev 3246)
@@ -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_MAIN_WINDOW_H__
+#define __RISTRETTO_MAIN_WINDOW_H__
+
+G_BEGIN_DECLS
+
+#define RSTTO_TYPE_MAIN_WINDOW rstto_main_window_get_type()
+
+#define RSTTO_MAIN_WINDOW(obj)( \
+        G_TYPE_CHECK_INSTANCE_CAST ((obj), \
+                RSTTO_TYPE_MAIN_WINDOW, \
+                RsttoMainWindow))
+
+#define RSTTO_IS_MAIN_WINDOW(obj)( \
+        G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
+                RSTTO_TYPE_MAIN_WINDOW))
+
+#define RSTTO_MAIN_WINDOW_CLASS(klass)( \
+        G_TYPE_CHECK_CLASS_CAST ((klass), \
+                RSTTO_TYPE_MAIN_WINDOW, \
+                RsttoMainWindowClass))
+
+#define RSTTO_IS_MAIN_WINDOW_CLASS(klass)( \
+        G_TYPE_CHECK_CLASS_TYPE ((klass), \
+                RSTTO_TYPE_MAIN_WINDOW()))
+
+typedef struct _RsttoMainWindowPriv RsttoMainWindowPriv;
+
+typedef struct _RsttoMainWindow RsttoMainWindow;
+
+struct _RsttoMainWindow
+{
+    GtkWindow         parent;
+    RsttoMainWindowPriv *priv;
+};
+
+typedef struct _RsttoMainWindowClass RsttoMainWindowClass;
+
+struct _RsttoMainWindowClass
+{
+    GtkWindowClass  parent_class;
+};
+
+GType      rstto_main_window_get_type();
+
+GtkWidget *rstto_main_window_new();
+
+void
+rstto_main_window_set_thumbnail_viewer_orientation(RsttoMainWindow *window, GtkOrientation orientation);
+void
+rstto_main_window_set_thumbnail_viewer_visibility (RsttoMainWindow *window, gboolean visibility);
+
+G_END_DECLS
+
+#endif /* __RISTRETTO_MAIN_WINDOW_H__ */
+

Modified: ristretto/trunk/src/picture_viewer.c
===================================================================
--- ristretto/trunk/src/picture_viewer.c	2007-09-25 01:02:44 UTC (rev 3245)
+++ ristretto/trunk/src/picture_viewer.c	2007-09-25 04:00:53 UTC (rev 3246)
@@ -665,7 +665,7 @@
         }
         g_timer_start(viewer->priv->timer);
         if (viewer->priv->timeout_id == 0)
-            viewer->priv->timeout_id = g_timeout_add(300, (GSourceFunc)cb_rstto_picture_viewer_update_image, viewer);
+            viewer->priv->timeout_id = g_timeout_add(200, (GSourceFunc)cb_rstto_picture_viewer_update_image, viewer);
     }
     else
     {

Modified: ristretto/trunk/src/thumbnail_viewer.c
===================================================================
--- ristretto/trunk/src/thumbnail_viewer.c	2007-09-25 01:02:44 UTC (rev 3245)
+++ ristretto/trunk/src/thumbnail_viewer.c	2007-09-25 04:00:53 UTC (rev 3246)
@@ -145,16 +145,8 @@
 static void
 rstto_thumbnail_viewer_size_request(GtkWidget *widget, GtkRequisition *requisition)
 {
-    RsttoThumbnailViewer *viewer = RSTTO_THUMBNAIL_VIEWER(widget);
-    switch(viewer->priv->orientation)
-    {
-        case GTK_ORIENTATION_HORIZONTAL:
-            requisition->height = 74;
-            break;
-        case GTK_ORIENTATION_VERTICAL:
-            requisition->width = 74;
-            break;
-    }
+    requisition->height = 60;
+    requisition->width = 60;
 }
 
 static void




More information about the Goodies-commits mailing list