Revision: 1263
          http://geeqie.svn.sourceforge.net/geeqie/?rev=1263&view=rev
Author:   zas_
Date:     2008-11-22 21:11:09 +0000 (Sat, 22 Nov 2008)

Log Message:
-----------
layout_image_setup_split_*(): move common code to a new function 
layout_image_setup_split_common().

Modified Paths:
--------------
    trunk/src/layout_image.c

Modified: trunk/src/layout_image.c
===================================================================
--- trunk/src/layout_image.c    2008-11-22 16:24:23 UTC (rev 1262)
+++ trunk/src/layout_image.c    2008-11-22 21:11:09 UTC (rev 1263)
@@ -1628,44 +1628,33 @@
        return lw->split_image_widget;
 }
 
-GtkWidget *layout_image_setup_split_hv(LayoutWindow *lw, gboolean horizontal)
+static void layout_image_setup_split_common(LayoutWindow *lw, gint n)
 {
-       GtkWidget *paned;
        gint i;
-       
-       lw->split_mode = horizontal ? SPLIT_HOR : SPLIT_VERT;
 
-       if (!lw->split_images[0])
-               {
-               layout_image_new(lw, 0);
-               }
-       image_set_frame(lw->split_images[0], 1);
-       image_set_selectable(lw->split_images[0], 1);
-
-       if (!lw->split_images[1])
-               {
-               layout_image_new(lw, 1);
-               image_set_frame(lw->split_images[1], 1);
-               image_set_selectable(lw->split_images[1], 1);
-               if (lw->image)
+       for (i = 1; i < n; i++)
+               if (!lw->split_images[i])
                        {
-                       gdouble sx, sy;
-                       image_change_fd(lw->split_images[1],
+                       layout_image_new(lw, i);
+                       image_set_frame(lw->split_images[i], 1);
+                       image_set_selectable(lw->split_images[i], 1);
+                       if (lw->image)
+                               {
+                               gdouble sx, sy;
+                               image_change_fd(lw->split_images[i],
                                        image_get_fd(lw->image), 
image_zoom_get(lw->image));
-                       image_get_scroll_center(lw->image, &sx, &sy);
-                       image_set_scroll_center(lw->split_images[1], sx, sy);
+                               image_get_scroll_center(lw->image, &sx, &sy);
+                               image_set_scroll_center(lw->split_images[i], 
sx, sy);
+                               }
+                       layout_image_deactivate(lw, i);
                        }
-               layout_image_deactivate(lw, 1);
-               layout_image_activate(lw, 0);
-               }
-       else
-               {
-               image_set_frame(lw->split_images[1], 1);
-               image_set_selectable(lw->split_images[1], 1);
-               }
+               else
+                       {
+                       image_set_frame(lw->split_images[i], 1);
+                       image_set_selectable(lw->split_images[i], 1);
+                       }
 
-
-       for (i = 2; i < MAX_SPLIT_IMAGES; i++)
+       for (i = n; i < MAX_SPLIT_IMAGES; i++)
                {
                if (lw->split_images[i])
                        {
@@ -1677,12 +1666,29 @@
                        lw->split_images[i] = NULL;
                        }
                }
-
-       if (!lw->image || lw->active_split_image < 0 || lw->active_split_image 
> 1)
+       
+       if (!lw->image || lw->active_split_image < 0 || lw->active_split_image 
>= n)
                {
                layout_image_activate(lw, 0);
                }
 
+}
+
+GtkWidget *layout_image_setup_split_hv(LayoutWindow *lw, gboolean horizontal)
+{
+       GtkWidget *paned;
+       
+       lw->split_mode = horizontal ? SPLIT_HOR : SPLIT_VERT;
+
+       if (!lw->split_images[0])
+               {
+               layout_image_new(lw, 0);
+               }
+       image_set_frame(lw->split_images[0], 1);
+       image_set_selectable(lw->split_images[0], 1);
+
+       layout_image_setup_split_common(lw, 2);
+
        /* horizontal split means vpaned and vice versa */
        if (horizontal)
                paned = gtk_vpaned_new();
@@ -1723,47 +1729,9 @@
                layout_image_activate(lw, 0);
                }
 
-       for (i = 1; i < 4; i++)
-               if (!lw->split_images[i])
-                       {
-                       layout_image_new(lw, i);
-                       image_set_frame(lw->split_images[i], 1);
-                       image_set_selectable(lw->split_images[i], 1);
-                       if (lw->image)
-                               {
-                               gdouble sx, sy;
-                               image_change_fd(lw->split_images[i],
-                                       image_get_fd(lw->image), 
image_zoom_get(lw->image));
-                               image_get_scroll_center(lw->image, &sx, &sy);
-                               image_set_scroll_center(lw->split_images[i], 
sx, sy);
-                               }
-                       layout_image_deactivate(lw, i);
-                       }
-               else
-                       {
-                       image_set_frame(lw->split_images[i], 1);
-                       image_set_selectable(lw->split_images[i], 1);
-                       }
+       layout_image_setup_split_common(lw, 4);
 
-       for (i = 4; i < MAX_SPLIT_IMAGES; i++)
-               {
-               if (lw->split_images[i])
-                       {
-#if GTK_CHECK_VERSION(2,12,0)
-                       g_object_unref(lw->split_images[i]->widget);
-#else
-                       gtk_widget_unref(lw->split_images[i]->widget);
-#endif
-                       lw->split_images[i] = NULL;
-                       }
-               }
 
-
-       if (!lw->image || lw->active_split_image < 0 || lw->active_split_image 
> 3)
-               {
-               layout_image_activate(lw, 0);
-               }
-
        hpaned = gtk_hpaned_new();
        vpaned1 = gtk_vpaned_new();
        vpaned2 = gtk_vpaned_new();


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Geeqie-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geeqie-svn

Reply via email to