[Xfce4-commits] <xfce4-taskmanager:master> Implement option "Draw borders around monitors"
Mike Massonnet
noreply at xfce.org
Wed Sep 29 16:52:03 CEST 2010
Updating branch refs/heads/master
to e97c14fa68ea9121579c4aadaac034f3e9b6e575 (commit)
from bfd7faf7c7e2d58050670c2d182b074ddf074da7 (commit)
commit e97c14fa68ea9121579c4aadaac034f3e9b6e575
Author: Mike Massonnet <mmassonnet at xfce.org>
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>
More information about the Xfce4-commits
mailing list