void init_clock_panel(void *p) { Panel *panel = (Panel *)p; Clock *clock = &panel->clock; if (!clock->area.bg) clock->area.bg = &g_array_index(backgrounds, Background, 0); clock_init_fonts(); clock->area.parent = p; clock->area.panel = p; snprintf(clock->area.name, sizeof(clock->area.name), "Clock"); clock->area._is_under_mouse = full_width_area_is_under_mouse; clock->area.has_mouse_press_effect = clock->area.has_mouse_over_effect = panel_config.mouse_effects && (clock_lclick_command || clock_mclick_command || clock_rclick_command || clock_uwheel_command || clock_dwheel_command); clock->area._draw_foreground = draw_clock; clock->area.size_mode = LAYOUT_FIXED; clock->area._resize = resize_clock; clock->area._compute_desired_size = clock_compute_desired_size; clock->area._dump_geometry = clock_dump_geometry; // check consistency if (!time1_format) return; clock->area.resize_needed = 1; clock->area.on_screen = TRUE; instantiate_area_gradients(&clock->area); if (time_tooltip_format) { clock->area._get_tooltip_text = clock_get_tooltip; strftime(buf_tooltip, sizeof(buf_tooltip), time_tooltip_format, clock_gettime_for_tz(time_tooltip_timezone)); } }
void clock_default_font_changed() { if (!clock_enabled) return; if (time1_has_font && time2_has_font) return; if (!time1_has_font) { pango_font_description_free(time1_font_desc); time1_font_desc = NULL; } if (!time2_has_font) { pango_font_description_free(time2_font_desc); time2_font_desc = NULL; } clock_init_fonts(); for (int i = 0; i < num_panels; i++) { panels[i].clock.area.resize_needed = TRUE; schedule_redraw(&panels[i].clock.area); } schedule_panel_redraw(); }