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