Updating branch refs/heads/master
         to e97c14fa68ea9121579c4aadaac034f3e9b6e575 (commit)
       from bfd7faf7c7e2d58050670c2d182b074ddf074da7 (commit)

commit e97c14fa68ea9121579c4aadaac034f3e9b6e575
Author: Mike Massonnet <[email protected]>
Date:   Sun Sep 26 09:47:48 2010 +0000

    Implement option "Draw borders around monitors"

 src/process-monitor.c  |   30 ++++++++++++++++++++++++++----
 src/process-monitor.h  |    1 +
 src/process-window.c   |   13 ++++++++++++-
 src/settings-dialog.ui |    1 -
 4 files changed, 39 insertions(+), 6 deletions(-)

diff --git a/src/process-monitor.c b/src/process-monitor.c
index 350c5d5..5ad24e2 100644
--- a/src/process-monitor.c
+++ b/src/process-monitor.c
@@ -24,6 +24,7 @@ enum
        PROP_COLOR_RED,
        PROP_COLOR_GREEN,
        PROP_COLOR_BLUE,
+       PROP_PAINT_BOX,
 };
 typedef struct _XtmProcessMonitorClass XtmProcessMonitorClass;
 struct _XtmProcessMonitorClass
@@ -39,6 +40,7 @@ struct _XtmProcessMonitor
        gfloat                  color_red;
        gfloat                  color_green;
        gfloat                  color_blue;
+       gboolean                paint_box;
 };
 G_DEFINE_TYPE (XtmProcessMonitor, xtm_process_monitor, GTK_TYPE_DRAWING_AREA)
 
@@ -66,6 +68,8 @@ xtm_process_monitor_class_init (XtmProcessMonitorClass *klass)
                g_param_spec_float ("color-green", "ColorGreen", "Color green", 
0, 1, 0, G_PARAM_READWRITE));
        g_object_class_install_property (class, PROP_COLOR_BLUE,
                g_param_spec_float ("color-blue", "ColorBlue", "Color blue", 0, 
1, 0, G_PARAM_READWRITE));
+       g_object_class_install_property (class, PROP_PAINT_BOX,
+               g_param_spec_boolean ("paint-box", "PaintBox", "Paint box 
around monitor", TRUE, G_PARAM_CONSTRUCT|G_PARAM_READWRITE));
 }
 
 static void
@@ -106,6 +110,10 @@ xtm_process_monitor_get_property (GObject *object, guint 
property_id, GValue *va
                g_value_set_float (value, monitor->color_blue);
                break;
 
+               case PROP_PAINT_BOX:
+               g_value_set_boolean (value, monitor->paint_box);
+               break;
+
                default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
                break;
@@ -134,6 +142,10 @@ xtm_process_monitor_set_property (GObject *object, guint 
property_id, const GVal
                monitor->color_blue = g_value_get_float (value);
                break;
 
+               case PROP_PAINT_BOX:
+               monitor->paint_box = g_value_get_boolean (value);
+               break;
+
                default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
                break;
@@ -235,8 +247,9 @@ xtm_process_monitor_paint (XtmProcessMonitor *monitor)
        height = GTK_WIDGET (monitor)->allocation.height;
 
        /* Paint a box */
-       gtk_paint_box (GTK_WIDGET (monitor)->style, GTK_WIDGET 
(monitor)->window, GTK_STATE_PRELIGHT, GTK_SHADOW_IN,
-                       NULL, GTK_WIDGET (monitor), "trough", 0, 0, width, 
height);
+       if (monitor->paint_box)
+               gtk_paint_box (GTK_WIDGET (monitor)->style, GTK_WIDGET 
(monitor)->window, GTK_STATE_PRELIGHT, GTK_SHADOW_IN,
+                               NULL, GTK_WIDGET (monitor), "trough", 0, 0, 
width, height);
 
        /* Paint the graph */
        graph_surface = xtm_process_monitor_graph_surface_create (monitor);
@@ -272,8 +285,9 @@ xtm_process_monitor_paint (XtmProcessMonitor *monitor)
        cairo_stroke (cr);
 
        /* Repaint a shadow on top of everything to clear corners */
-       gtk_paint_shadow (GTK_WIDGET (monitor)->style, GTK_WIDGET 
(monitor)->window, GTK_STATE_PRELIGHT, GTK_SHADOW_IN,
-                       NULL, GTK_WIDGET (monitor), "trough", 0, 0, width, 
height);
+       if (monitor->paint_box)
+               gtk_paint_shadow (GTK_WIDGET (monitor)->style, GTK_WIDGET 
(monitor)->window, GTK_STATE_PRELIGHT, GTK_SHADOW_IN,
+                               NULL, GTK_WIDGET (monitor), "trough", 0, 0, 
width, height);
 
        cairo_destroy (cr);
 }
@@ -326,3 +340,11 @@ xtm_process_monitor_set_source_color (XtmProcessMonitor 
*monitor, gdouble red, g
                gdk_window_invalidate_rect (GTK_WIDGET (monitor)->window, NULL, 
FALSE);
 }
 
+void
+xtm_process_monitor_set_paint_box (XtmProcessMonitor *monitor, gboolean 
paint_box)
+{
+       g_return_if_fail (XTM_IS_PROCESS_MONITOR (monitor));
+       g_object_set (monitor, "paint-box", paint_box, NULL);
+       if (GDK_IS_WINDOW (GTK_WIDGET (monitor)->window))
+               gdk_window_invalidate_rect (GTK_WIDGET (monitor)->window, NULL, 
FALSE);
+}
diff --git a/src/process-monitor.h b/src/process-monitor.h
index e4ead80..aa90f98 100644
--- a/src/process-monitor.h
+++ b/src/process-monitor.h
@@ -31,5 +31,6 @@ void          xtm_process_monitor_add_peak                    
(XtmProcessMonitor *monitor, gfloat peak);
 void           xtm_process_monitor_set_step_size               
(XtmProcessMonitor *monitor, gfloat step_size);
 void           xtm_process_monitor_clear                       
(XtmProcessMonitor *monitor);
 void           xtm_process_monitor_set_source_color            
(XtmProcessMonitor *monitor, gdouble red, gdouble green, gdouble blue);
+void           xtm_process_monitor_set_paint_box               
(XtmProcessMonitor *monitor, gboolean paint_box);
 
 #endif /* !PROCESS_MONITOR_H */
diff --git a/src/process-window.c b/src/process-window.c
index a8fc1b2..0a48abe 100644
--- a/src/process-window.c
+++ b/src/process-window.c
@@ -64,6 +64,7 @@ static void   xtm_process_window_hide                         
(GtkWidget *widget);
 static void    emit_destroy_signal                             
(XtmProcessWindow *window);
 static gboolean        emit_delete_event_signal                        
(XtmProcessWindow *window, GdkEvent *event);
 static void    monitor_update_step_size                        
(XtmProcessWindow *window);
+static void    monitor_update_paint_box                        
(XtmProcessWindow *window);
 static void    show_about_dialog                               
(XtmProcessWindow *window);
 
 
@@ -121,6 +122,8 @@ xtm_process_window_init (XtmProcessWindow *window)
                gtk_widget_show (window->priv->mem_monitor);
                gtk_container_add (GTK_CONTAINER (toolitem), 
window->priv->mem_monitor);
 
+               monitor_update_paint_box (window);
+               g_signal_connect_swapped (window->priv->settings, 
"notify::monitor-paint-box", G_CALLBACK (monitor_update_paint_box), window);
                g_signal_connect_swapped (window->priv->settings, 
"notify::refresh-rate", G_CALLBACK (monitor_update_step_size), window);
        }
 
@@ -207,6 +210,15 @@ emit_delete_event_signal (XtmProcessWindow *window, 
GdkEvent *event)
 }
 
 static void
+monitor_update_paint_box (XtmProcessWindow *window)
+{
+       gboolean paint_box;
+       g_object_get (window->priv->settings, "monitor-paint-box", &paint_box, 
NULL);
+       xtm_process_monitor_set_paint_box (XTM_PROCESS_MONITOR 
(window->priv->cpu_monitor), paint_box);
+       xtm_process_monitor_set_paint_box (XTM_PROCESS_MONITOR 
(window->priv->mem_monitor), paint_box);
+}
+
+static void
 monitor_update_step_size (XtmProcessWindow *window)
 {
        guint refresh_rate;
@@ -348,4 +360,3 @@ xtm_process_window_show_swap_usage (XtmProcessWindow 
*window, gboolean show_swap
        g_return_if_fail (GTK_IS_STATUSBAR (window->priv->statusbar));
        g_object_set (window->priv->statusbar, "show-swap", show_swap_usage, 
NULL);
 }
-
diff --git a/src/settings-dialog.ui b/src/settings-dialog.ui
index dc37e24..1b8ee35 100644
--- a/src/settings-dialog.ui
+++ b/src/settings-dialog.ui
@@ -77,7 +77,6 @@
                                   <object class="GtkCheckButton" 
id="button-monitor-paint-box">
                                     <property name="label" 
translatable="yes">Draw borders around monitors</property>
                                     <property name="visible">True</property>
-                                    <property name="sensitive">False</property>
                                     <property name="can_focus">True</property>
                                     <property 
name="receives_default">False</property>
                                     <property 
name="xalign">0.49000000953674316</property>
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to