diff --git a/panel-plugin/netload.c b/panel-plugin/netload.c index d64e7bc..7f883d8 100644 --- a/panel-plugin/netload.c +++ b/panel-plugin/netload.c @@ -35,6 +35,7 @@ #define BORDER 8 +#define DEFAULT_MARGIN 2 /* Defaults */ #define DEFAULT_TEXT "Net" @@ -67,6 +68,7 @@ static char *errormessages[] = { typedef struct { gboolean use_label; + gboolean show_margin; gboolean show_bars; gboolean show_values; gboolean colorize_values; @@ -122,6 +124,7 @@ typedef struct GtkWidget *opt_button[SUM]; GtkWidget *opt_da[SUM]; GtkWidget *opt_colorize_values; + GtkWidget *opt_show_margin; } t_monitor; @@ -374,6 +377,7 @@ static t_global_monitor * monitor_new(XfcePanelPlugin *plugin) global->monitor->options.old_network_device = g_strdup(""); global->monitor->options.use_label = TRUE; global->monitor->options.show_values = FALSE; + global->monitor->options.show_margin = TRUE; global->monitor->options.show_bars = TRUE; global->monitor->options.auto_max = TRUE; global->monitor->options.update_interval = UPDATE_TIMEOUT; @@ -394,7 +398,9 @@ static t_global_monitor * monitor_new(XfcePanelPlugin *plugin) /* Create widget containers */ global->box = xfce_hvbox_new(GTK_ORIENTATION_HORIZONTAL, FALSE, 0); - gtk_container_set_border_width(GTK_CONTAINER(global->box), 2); + gtk_container_set_border_width(GTK_CONTAINER(global->box), + global->monitor->options.show_margin ? + DEFAULT_MARGIN : 0); gtk_widget_show(GTK_WIDGET(global->box)); /* Create the title label */ @@ -418,15 +424,6 @@ static t_global_monitor * monitor_new(XfcePanelPlugin *plugin) for (i = 0; i < SUM; 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]); - 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_progress_bar_set_orientation(GTK_PROGRESS_BAR(global->monitor->status[i]), GTK_PROGRESS_BOTTOM_TO_TOP); gtk_box_pack_start(GTK_BOX(global->box), @@ -496,6 +493,20 @@ static void setup_monitor(t_global_monitor *global, gboolean supress_warnings) global->monitor->net_max[i] = INIT_MAX; else global->monitor->net_max[i] = global->monitor->options.max[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_container_set_border_width(GTK_CONTAINER(global->box), + global->monitor->options.show_margin ? + DEFAULT_MARGIN : 0); + gtk_widget_show(global->monitor->status[i]); } else @@ -544,6 +555,7 @@ static void monitor_read_config(XfcePanelPlugin *plugin, t_global_monitor *globa global->monitor->options.use_label = xfce_rc_read_bool_entry (rc, "Use_Label", TRUE); global->monitor->options.show_values = xfce_rc_read_bool_entry (rc, "Show_Values", FALSE); + global->monitor->options.show_margin = xfce_rc_read_bool_entry (rc, "Show_Margin", TRUE); global->monitor->options.show_bars = xfce_rc_read_bool_entry (rc, "Show_Bars", TRUE); global->monitor->options.colorize_values = xfce_rc_read_bool_entry (rc, "Colorize_Values", FALSE); if (!global->monitor->options.show_bars && !global->monitor->options.show_values) @@ -611,6 +623,7 @@ static void monitor_write_config(XfcePanelPlugin *plugin, t_global_monitor *glob xfce_rc_write_bool_entry (rc, "Use_Label", global->monitor->options.use_label); xfce_rc_write_bool_entry (rc, "Show_Values", global->monitor->options.show_values); + xfce_rc_write_bool_entry (rc, "Show_Margin", global->monitor->options.show_margin); xfce_rc_write_bool_entry (rc, "Show_Bars", global->monitor->options.show_bars); xfce_rc_write_bool_entry (rc, "Colorize_Values", global->monitor->options.colorize_values); @@ -778,6 +791,9 @@ static void present_data_combobox_changed(GtkWidget *combobox, t_global_monitor gtk_widget_set_sensitive(GTK_WIDGET(global->monitor->opt_colorize_values), global->monitor->options.show_values); + + gtk_widget_set_sensitive(GTK_WIDGET(global->monitor->opt_show_margin), + global->monitor->options.show_bars); setup_monitor(global, FALSE); PRINT_DBG("present_data_combobox_changed"); @@ -819,6 +835,17 @@ static void colorize_values_toggled(GtkWidget *check_button, t_global_monitor *g /* ---------------------------------------------------------------------------------------------- */ +static void show_margin_toggled(GtkWidget *check_button, t_global_monitor *global) +{ + global->monitor->options.show_margin = !global->monitor->options.show_margin; + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(global->monitor->opt_show_margin), + global->monitor->options.show_margin); + setup_monitor(global, FALSE); + PRINT_DBG("show_margin_toggled"); +} + + +/* ---------------------------------------------------------------------------------------------- */ static gboolean expose_event_cb(GtkWidget *widget, GdkEventExpose *event) { if (widget->window) @@ -1164,6 +1191,17 @@ static void monitor_create_options(XfcePanelPlugin *plugin, t_global_monitor *gl gtk_widget_set_sensitive(GTK_WIDGET(global->monitor->opt_colorize_values), global->monitor->options.show_values); + /* Show margin */ + global->monitor->opt_show_margin = + gtk_check_button_new_with_mnemonic(_("Show _margin")); + gtk_widget_show(global->monitor->opt_show_margin); + gtk_box_pack_start(GTK_BOX(global->monitor->opt_vbox), + GTK_WIDGET(global->monitor->opt_show_margin), FALSE, FALSE, 0); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(global->monitor->opt_show_margin), + global->monitor->options.show_margin); + gtk_widget_set_sensitive(GTK_WIDGET(global->monitor->opt_show_margin), + global->monitor->options.show_bars); + gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(global->monitor->opt_vbox), FALSE, FALSE, 0); @@ -1179,6 +1217,8 @@ static void monitor_create_options(XfcePanelPlugin *plugin, t_global_monitor *gl G_CALLBACK(max_label_toggled), global); g_signal_connect(GTK_WIDGET(global->monitor->opt_colorize_values), "toggled", G_CALLBACK(colorize_values_toggled), global); + g_signal_connect(GTK_WIDGET(global->monitor->opt_show_margin), "toggled", + G_CALLBACK(show_margin_toggled), global); g_signal_connect(GTK_WIDGET(global->monitor->opt_da[0]), "expose_event", G_CALLBACK(expose_event_cb), NULL); g_signal_connect(GTK_WIDGET(global->monitor->opt_da[1]), "expose_event",