/* Callback when the configuration dialog has recorded a configuration change. */ static void dclock_apply_configuration(Plugin * p) { DClockPlugin * dc = PRIV(p); gtk_widget_show(dc->label_box); /* Rerun the experiment to determine update interval and update the display. */ g_free(dc->prev_clock_value); g_free(dc->prev_tooltip_value); dc->expiration_interval = AWAITING_FIRST_CHANGE; dc->experiment_count = 0; dc->prev_clock_value = NULL; dc->prev_tooltip_value = NULL; /* Remove the timer before calling dclock_update_display(), as dclock_timer_set() overwrites dc->timer without removing old one. */ if (dc->timer != 0) g_source_remove(dc->timer); dclock_update_display(dc); /* Hide the calendar. */ if (dc->calendar_window != NULL) { gtk_widget_destroy(dc->calendar_window); dc->calendar_window = NULL; } }
/* Callback when the configuration dialog has recorded a configuration change. */ static void dclock_apply_configuration(Plugin * p) { DClockPlugin * dc = (DClockPlugin *) p->priv; /* Set up the icon or the label as the displayable widget. */ if (dc->icon_only) { if(panel_image_set_icon_theme(p->panel, dc->clock_icon, "clock") != FALSE) { panel_image_set_from_file(p->panel, dc->clock_icon, PACKAGE_DATA_DIR "/lxpanel/images/clock.png"); } gtk_widget_show(dc->clock_icon); gtk_widget_hide(dc->clock_label); } else { gtk_widget_show(dc->clock_label); gtk_widget_hide(dc->clock_icon); } if (dc->center_text) { gtk_label_set_justify(GTK_LABEL(dc->clock_label), GTK_JUSTIFY_CENTER); } else { gtk_label_set_justify(GTK_LABEL(dc->clock_label), GTK_JUSTIFY_LEFT); } /* Rerun the experiment to determine update interval and update the display. */ g_free(dc->prev_clock_value); g_free(dc->prev_tooltip_value); dc->expiration_interval = AWAITING_FIRST_CHANGE; dc->experiment_count = 0; dc->prev_clock_value = NULL; dc->prev_tooltip_value = NULL; dclock_update_display(dc); /* Hide the calendar. */ if (dc->calendar_window != NULL) { gtk_widget_destroy(dc->calendar_window); dc->calendar_window = NULL; } }