[Xfce4-commits] <xfce4-netload-plugin:master> Bug 8917: Reorganize code in monitor_new, setup_monitor and monitor_set_orientation
Mike Massonnet
noreply at xfce.org
Tue May 29 23:10:01 CEST 2012
Updating branch refs/heads/master
to e098eaa220e76ad5ee68fb82591abc78b5614baf (commit)
from b6efbf1286eee3ae0c7ba4cfcedf66b7f4160b90 (commit)
commit e098eaa220e76ad5ee68fb82591abc78b5614baf
Author: Mike Massonnet <mmassonnet at xfce.org>
Date: Tue May 29 23:07:46 2012 +0200
Bug 8917: Reorganize code in monitor_new, setup_monitor and monitor_set_orientation
The current state is a bit messy. Widget creation is spread over
various functions. With this change, only monitor_new creates the widgets,
while setup_monitor controls which widgets will be shown, and
monitor_set_orientation will deal with the orientation of the
widgets.
panel-plugin/netload.c | 227 +++++++++++++++++++++---------------------------
1 files changed, 99 insertions(+), 128 deletions(-)
diff --git a/panel-plugin/netload.c b/panel-plugin/netload.c
index 035f549..f712a95 100644
--- a/panel-plugin/netload.c
+++ b/panel-plugin/netload.c
@@ -294,113 +294,29 @@ static void monitor_set_orientation (XfcePanelPlugin *plugin, GtkOrientation ori
g_source_remove(global->timeout_id);
}
- gtk_widget_hide(GTK_WIDGET(global->ebox));
- if (global->box)
- {
- gtk_container_remove(GTK_CONTAINER(global->ebox), GTK_WIDGET(global->box));
- }
- if (orientation == GTK_ORIENTATION_HORIZONTAL)
- {
- global->box = gtk_hbox_new(FALSE, 0);
- }
- else
- {
- global->box = gtk_vbox_new(FALSE, 0);
- }
- gtk_widget_show(global->box);
-
- global->monitor->label = gtk_label_new(global->monitor->options.label_text);
- gtk_widget_show(global->monitor->label);
-
- global->monitor->rcv_label = gtk_label_new("");
- gtk_label_set_width_chars(GTK_LABEL(global->monitor->rcv_label), 7);
- gtk_misc_set_alignment(GTK_MISC(global->monitor->rcv_label), 1.0f, 0.5f);
- if (global->monitor->options.show_values)
- {
- gtk_widget_show(global->monitor->rcv_label);
- }
-
- for (i = 0; i < SUM; i++)
- {
- global->monitor->status[i] = GTK_WIDGET(gtk_progress_bar_new());
- }
-
- global->monitor->sent_label = gtk_label_new("");
- gtk_label_set_width_chars(GTK_LABEL(global->monitor->sent_label), 7);
- if (global->monitor->options.show_values)
- {
- gtk_widget_show(global->monitor->sent_label);
- }
-
+ xfce_hvbox_set_orientation(XFCE_HVBOX(global->box), orientation);
+ xfce_hvbox_set_orientation(XFCE_HVBOX(global->monitor->box), orientation);
if (orientation == GTK_ORIENTATION_HORIZONTAL)
{
- global->monitor->box = GTK_WIDGET(gtk_hbox_new(FALSE, 0));
+ gtk_misc_set_alignment(GTK_MISC(global->monitor->rcv_label), 1.0f, 0.5f);
+ gtk_misc_set_alignment(GTK_MISC(global->monitor->sent_label), 0.0f, 0.5f);
for (i = 0; i < SUM; i++)
{
gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(global->monitor->status[i]),
GTK_PROGRESS_BOTTOM_TO_TOP);
}
- gtk_misc_set_alignment(GTK_MISC(global->monitor->sent_label), 0.0f, 0.5f);
}
else
{
- global->monitor->box = GTK_WIDGET(gtk_vbox_new(FALSE, 0));
+ gtk_misc_set_alignment(GTK_MISC(global->monitor->rcv_label), 1.0f, 0.0f);
+ gtk_misc_set_alignment(GTK_MISC(global->monitor->sent_label), 1.0f, 1.0f);
for (i = 0; i < SUM; i++)
{
gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(global->monitor->status[i]),
GTK_PROGRESS_LEFT_TO_RIGHT);
}
- gtk_misc_set_alignment(GTK_MISC(global->monitor->sent_label), 1.0f, 0.5f);
}
- if (global->monitor->options.show_values)
- {
- gtk_widget_modify_fg(global->monitor->rcv_label, GTK_STATE_NORMAL,
- (global->monitor->options.colorize_values ? &global->monitor->options.color[IN] : NULL));
- gtk_widget_modify_fg(global->monitor->sent_label, GTK_STATE_NORMAL,
- (global->monitor->options.colorize_values ? &global->monitor->options.color[OUT] : NULL));
- }
-
- gtk_box_pack_start(GTK_BOX(global->monitor->box),
- GTK_WIDGET(global->monitor->label),
- TRUE, FALSE, BORDER / 2);
-
- gtk_box_pack_start(GTK_BOX(global->monitor->box),
- GTK_WIDGET(global->monitor->rcv_label),
- TRUE, FALSE, BORDER / 2);
-
- gtk_container_set_border_width(GTK_CONTAINER(global->monitor->box), BORDER / 2);
- gtk_widget_show(GTK_WIDGET(global->monitor->box));
-
- for (i = 0; i < SUM; i++)
- {
- gtk_widget_modify_bg(GTK_WIDGET(global->monitor->status[i]),
- GTK_STATE_PRELIGHT,
- &global->monitor->options.color[i]);
- gtk_widget_modify_bg(GTK_WIDGET(global->monitor->status[i]),
- GTK_STATE_SELECTED,
- &global->monitor->options.color[i]);
- gtk_widget_modify_base(GTK_WIDGET(global->monitor->status[i]),
- GTK_STATE_SELECTED,
- &global->monitor->options.color[i]);
-
- gtk_widget_show(GTK_WIDGET(global->monitor->status[i]));
-
- gtk_box_pack_start(GTK_BOX(global->monitor->box),
- GTK_WIDGET(global->monitor->status[i]), FALSE, FALSE, 0);
- }
-
- gtk_box_pack_start(GTK_BOX(global->monitor->box),
- GTK_WIDGET(global->monitor->sent_label),
- TRUE, FALSE, BORDER / 2);
-
- gtk_box_pack_start(GTK_BOX(global->box),
- GTK_WIDGET(global->monitor->box), FALSE, FALSE, 0);
-
-
- gtk_container_add(GTK_CONTAINER(global->ebox), GTK_WIDGET(global->box));
- gtk_widget_show(GTK_WIDGET(global->ebox));
-
run_update( global );
}
@@ -441,6 +357,8 @@ static t_global_monitor * monitor_new(XfcePanelPlugin *plugin)
global = g_new(t_global_monitor, 1);
global->timeout_id = 0;
global->ebox = gtk_event_box_new();
+ gtk_event_box_set_visible_window(global->ebox, FALSE);
+ gtk_event_box_set_above_child(global->ebox, TRUE);
gtk_widget_set_has_tooltip(global->ebox, TRUE);
g_signal_connect(global->ebox, "query-tooltip", G_CALLBACK(tooltip_cb), global);
gtk_widget_show(global->ebox);
@@ -470,37 +388,40 @@ static t_global_monitor * monitor_new(XfcePanelPlugin *plugin)
global->monitor->history[i][1] = 0;
global->monitor->history[i][2] = 0;
global->monitor->history[i][3] = 0;
+
global->monitor->net_max[i] = INIT_MAX;
global->monitor->options.max[i] = INIT_MAX;
}
- monitor_set_orientation (plugin, xfce_panel_plugin_get_orientation (plugin), global);
-
- return global;
-}
+ /* Create widget containers */
+ global->box = xfce_hvbox_new(GTK_ORIENTATION_HORIZONTAL, FALSE, 0);
+ gtk_widget_show(GTK_WIDGET(global->box));
+ global->monitor->box = xfce_hvbox_new(GTK_ORIENTATION_HORIZONTAL, FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(global->monitor->box), BORDER / 2);
+ gtk_widget_show(GTK_WIDGET(global->monitor->box));
+ /* Create the title label */
+ global->monitor->label = gtk_label_new(global->monitor->options.label_text);
+ gtk_box_pack_start(GTK_BOX(global->monitor->box),
+ GTK_WIDGET(global->monitor->label),
+ TRUE, FALSE, BORDER / 2);
-/* ---------------------------------------------------------------------------------------------- */
-static void setup_monitor(t_global_monitor *global, gboolean supress_warnings)
-{
- gint i;
+ /* Create sent and received labels */
+ global->monitor->rcv_label = gtk_label_new("-");
+ gtk_label_set_width_chars(GTK_LABEL(global->monitor->rcv_label), 7);
+ global->monitor->sent_label = gtk_label_new("-");
+ gtk_label_set_width_chars(GTK_LABEL(global->monitor->sent_label), 7);
+ gtk_box_pack_start(GTK_BOX(global->monitor->box),
+ GTK_WIDGET(global->monitor->rcv_label),
+ TRUE, FALSE, BORDER / 2);
+ gtk_misc_set_alignment(GTK_MISC(global->monitor->rcv_label), 1.0f, 0.5f);
+ gtk_misc_set_alignment(GTK_MISC(global->monitor->sent_label), 0.0f, 0.5f);
- gtk_widget_hide(GTK_WIDGET(global->monitor->box));
- gtk_widget_hide(global->monitor->label);
- gtk_label_set_text(GTK_LABEL(global->monitor->label),
- global->monitor->options.label_text);
- gtk_widget_hide(global->monitor->rcv_label);
+ /* Create the progress bars */
for (i = 0; i < SUM; i++)
- gtk_widget_hide(global->monitor->status[i]);
- gtk_widget_hide(global->monitor->sent_label);
-
- if (global->monitor->options.show_bars)
{
- for (i = 0; i < SUM; i++)
- {
- gtk_widget_show(global->monitor->status[i]);
-
+ global->monitor->status[i] = GTK_WIDGET(gtk_progress_bar_new());
gtk_widget_modify_bg(GTK_WIDGET(global->monitor->status[i]),
GTK_STATE_PRELIGHT,
&global->monitor->options.color[i]);
@@ -510,35 +431,86 @@ static void setup_monitor(t_global_monitor *global, gboolean supress_warnings)
gtk_widget_modify_base(GTK_WIDGET(global->monitor->status[i]),
GTK_STATE_SELECTED,
&global->monitor->options.color[i]);
-
- /* Maximum */
- if( global->monitor->options.auto_max )
- {
- global->monitor->net_max[i] = INIT_MAX;
- }
- else
- {
- global->monitor->net_max[i] = global->monitor->options.max[i];
- }
- }
+ gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(global->monitor->status[i]),
+ GTK_PROGRESS_BOTTOM_TO_TOP);
+ gtk_box_pack_start(GTK_BOX(global->monitor->box),
+ GTK_WIDGET(global->monitor->status[i]), FALSE, FALSE, 0);
}
- gtk_widget_show(GTK_WIDGET(global->monitor->box));
+ /* Add the progress bar container */
+ gtk_box_pack_start(GTK_BOX(global->box),
+ GTK_WIDGET(global->monitor->box), FALSE, FALSE, 0);
+
+ /* Append sent label after the progress bars */
+ gtk_box_pack_start(GTK_BOX(global->monitor->box),
+ GTK_WIDGET(global->monitor->sent_label),
+ TRUE, FALSE, BORDER / 2);
+
+ gtk_container_add(GTK_CONTAINER(global->ebox), GTK_WIDGET(global->box));
+ return global;
+}
+
+
+/* ---------------------------------------------------------------------------------------------- */
+static void setup_monitor(t_global_monitor *global, gboolean supress_warnings)
+{
+ gint i;
+
+ if (global->timeout_id)
+ g_source_remove(global->timeout_id);
+
+ /* Show title label? */
if (global->monitor->options.use_label)
{
+ gtk_label_set_text(global->monitor->label, global->monitor->options.label_text);
gtk_widget_show(global->monitor->label);
}
+ else
+ gtk_widget_hide(global->monitor->label);
+ /* Show values? */
if (global->monitor->options.show_values)
{
- gtk_widget_modify_fg(global->monitor->rcv_label, GTK_STATE_NORMAL,
- (global->monitor->options.colorize_values ? &global->monitor->options.color[IN] : NULL));
- gtk_widget_modify_fg(global->monitor->sent_label, GTK_STATE_NORMAL,
- (global->monitor->options.colorize_values ? &global->monitor->options.color[OUT] : NULL));
gtk_widget_show(global->monitor->rcv_label);
gtk_widget_show(global->monitor->sent_label);
}
+ else
+ {
+ gtk_widget_hide(global->monitor->rcv_label);
+ gtk_widget_hide(global->monitor->sent_label);
+ }
+
+ if (global->monitor->options.colorize_values)
+ {
+ gtk_widget_modify_fg(global->monitor->rcv_label, GTK_STATE_NORMAL,
+ &global->monitor->options.color[IN]);
+ gtk_widget_modify_fg(global->monitor->sent_label, GTK_STATE_NORMAL,
+ &global->monitor->options.color[OUT]);
+ }
+ else
+ {
+ gtk_widget_modify_fg(global->monitor->rcv_label, GTK_STATE_NORMAL, NULL);
+ gtk_widget_modify_fg(global->monitor->sent_label, GTK_STATE_NORMAL, NULL);
+ }
+
+ /* Create the progress bars */
+ for (i = 0; i < SUM; i++)
+ {
+ if (global->monitor->options.show_bars)
+ {
+ /* Automatic or fixed maximum */
+ if (global->monitor->options.auto_max)
+ global->monitor->net_max[i] = INIT_MAX;
+ else
+ global->monitor->net_max[i] = global->monitor->options.max[i];
+ gtk_widget_show(global->monitor->status[i]);
+ }
+ else
+ {
+ gtk_widget_hide(global->monitor->status[i]);
+ }
+ }
if (!init_netload( &(global->monitor->data), global->monitor->options.network_device)
&& !supress_warnings)
@@ -559,7 +531,6 @@ static void setup_monitor(t_global_monitor *global, gboolean supress_warnings)
global->monitor->options.old_network_device = g_strdup(global->monitor->options.network_device);
run_update( global );
-
}
More information about the Xfce4-commits
mailing list