improved drawing of image frames
authorVladimir Nadvornik <nadvornik@suse.cz>
Mon, 11 Feb 2008 12:51:28 +0000 (12:51 +0000)
committerVladimir Nadvornik <nadvornik@suse.cz>
Mon, 11 Feb 2008 12:51:28 +0000 (12:51 +0000)
src/image.c
src/image.h
src/layout_image.c

index eb3f825..1079425 100644 (file)
@@ -1684,6 +1684,24 @@ void image_select(ImageWindow *imd, gboolean select)
 }
 
 
+
+void image_set_selectable(ImageWindow *imd, gboolean selectable)
+{
+       if (imd->has_frame)
+               {
+               if (selectable) 
+                       {
+                       gtk_frame_set_shadow_type(GTK_FRAME(imd->widget), GTK_SHADOW_NONE);
+                       gtk_container_set_border_width (GTK_CONTAINER (imd->widget), 4);
+                       }
+               else
+                       {
+                       gtk_frame_set_shadow_type(GTK_FRAME(imd->widget), GTK_SHADOW_NONE);
+                       gtk_container_set_border_width (GTK_CONTAINER (imd->widget), 0);
+                       }
+               }
+}
+
 /*
  *-------------------------------------------------------------------
  * prefs sync
@@ -1760,8 +1778,8 @@ gboolean selectable_frame_expose_cb (GtkWidget *widget, GdkEventExpose *event, g
                            NULL,
                            widget,
                            NULL,
-                          widget->allocation.x, widget->allocation.y
-                          widget->allocation.width, widget->allocation.height); 
+                          widget->allocation.x + 3, widget->allocation.y + 3
+                          widget->allocation.width - 6, widget->allocation.height - 6); 
  
  
        return FALSE;
@@ -1818,9 +1836,8 @@ ImageWindow *image_new(gint frame)
        if (imd->has_frame)
                {
                imd->widget = gtk_frame_new(NULL);
-               gtk_frame_set_shadow_type(GTK_FRAME(imd->widget), GTK_SHADOW_NONE);
+               image_set_selectable(imd, 0);
                gtk_container_add(GTK_CONTAINER(imd->widget), imd->pr);
-               gtk_container_set_border_width (GTK_CONTAINER (imd->widget), 7);
                gtk_widget_show(imd->pr);
                g_signal_connect (G_OBJECT (imd->widget), "expose_event",  
                     G_CALLBACK (selectable_frame_expose_cb), NULL);
index 98ec05f..561909e 100644 (file)
@@ -42,6 +42,7 @@ void image_set_state_func(ImageWindow *imd,
                          gpointer data);
 
 void image_select(ImageWindow *imd, gboolean select);
+void image_set_selectable(ImageWindow *imd, gboolean selectable);
 
 /* path, name */
 const gchar *image_get_path(ImageWindow *imd);
index 780ce5c..fc01768 100644 (file)
@@ -1706,6 +1706,7 @@ GtkWidget *layout_image_setup_split_none(LayoutWindow *lw)
                }
 
        layout_image_activate(lw, 0);
+       image_set_selectable(lw->split_images[0], 0);
        
        lw->split_image_widget = lw->split_images[0]->widget;
                        
@@ -1750,6 +1751,9 @@ GtkWidget *layout_image_setup_split_hv(LayoutWindow *lw, gboolean horizontal)
                        }
                }
 
+       image_set_selectable(lw->split_images[0], 1);
+       image_set_selectable(lw->split_images[1], 1);
+
         if (!lw->image || lw->active_split_image < 0 || lw->active_split_image > 1)
                {
                layout_image_activate(lw, 0);
@@ -1817,6 +1821,11 @@ GtkWidget *layout_image_setup_split_quad(LayoutWindow *lw)
                        }
                }
 
+       image_set_selectable(lw->split_images[0], 1);
+       image_set_selectable(lw->split_images[1], 1);
+       image_set_selectable(lw->split_images[2], 1);
+       image_set_selectable(lw->split_images[3], 1);
+
         if (!lw->image || lw->active_split_image < 0 || lw->active_split_image > 3)
                {
                layout_image_activate(lw, 0);