diff options
| author | Jonny Lamb <jonny.lamb@collabora.co.uk> | 2014-04-02 21:00:52 +0200 |
|---|---|---|
| committer | Jonny Lamb <jonny.lamb@collabora.co.uk> | 2014-04-02 21:00:52 +0200 |
| commit | dea55fa3e757dd8e99594c4b19745af33bef73d6 (patch) | |
| tree | 56501d335f5e0dbf716388b21cb08df398f0943d /shell/maynard.c | |
| parent | e41c9cacbd620d5cd94381a38b7e034c89055a6c (diff) | |
| download | graynard-dea55fa3e757dd8e99594c4b19745af33bef73d6.tar.gz graynard-dea55fa3e757dd8e99594c4b19745af33bef73d6.zip | |
clock: make system icon clickable and show not implemented message
Diffstat (limited to 'shell/maynard.c')
| -rw-r--r-- | shell/maynard.c | 55 |
1 files changed, 47 insertions, 8 deletions
diff --git a/shell/maynard.c b/shell/maynard.c index e5d60ea..81b1d37 100644 --- a/shell/maynard.c +++ b/shell/maynard.c @@ -68,6 +68,7 @@ struct desktop { guint hide_panel_idle_id; gboolean grid_visible; + gboolean system_visible; gboolean volume_visible; }; @@ -255,15 +256,47 @@ clock_create (struct desktop *desktop) } static void -volume_toggled_cb (GtkWidget *widget, +button_toggled_cb (struct desktop *desktop, + gboolean *visible, + gboolean *not_visible) +{ + *visible = !*visible; + *not_visible = FALSE; + + if (desktop->system_visible) { + maynard_clock_show_section (MAYNARD_CLOCK (desktop->clock->window), + MAYNARD_CLOCK_SECTION_SYSTEM); + maynard_panel_show_previous (MAYNARD_PANEL (desktop->panel->window), + MAYNARD_PANEL_BUTTON_SYSTEM); + } else if (desktop->volume_visible) { + maynard_clock_show_section (MAYNARD_CLOCK (desktop->clock->window), + MAYNARD_CLOCK_SECTION_VOLUME); + maynard_panel_show_previous (MAYNARD_PANEL (desktop->panel->window), + MAYNARD_PANEL_BUTTON_VOLUME); + } else { + maynard_clock_show_section (MAYNARD_CLOCK (desktop->clock->window), + MAYNARD_CLOCK_SECTION_CLOCK); + maynard_panel_show_previous (MAYNARD_PANEL (desktop->panel->window), + MAYNARD_PANEL_BUTTON_NONE); + } +} + +static void +system_toggled_cb (GtkWidget *widget, struct desktop *desktop) { - desktop->volume_visible = !desktop->volume_visible; + button_toggled_cb (desktop, + &desktop->system_visible, + &desktop->volume_visible); +} - maynard_clock_show_volume (MAYNARD_CLOCK (desktop->clock->window), - desktop->volume_visible); - maynard_panel_show_volume_previous (MAYNARD_PANEL (desktop->panel->window), - desktop->volume_visible); +static void +volume_toggled_cb (GtkWidget *widget, + struct desktop *desktop) +{ + button_toggled_cb (desktop, + &desktop->volume_visible, + &desktop->system_visible); } static gboolean @@ -314,8 +347,11 @@ leave_panel_idle_cb (gpointer data) maynard_panel_set_expand(MAYNARD_PANEL(desktop->panel->window), FALSE); - maynard_clock_show_volume (MAYNARD_CLOCK (desktop->clock->window), FALSE); - maynard_panel_show_volume_previous (MAYNARD_PANEL (desktop->panel->window), FALSE); + maynard_clock_show_section (MAYNARD_CLOCK (desktop->clock->window), + MAYNARD_CLOCK_SECTION_CLOCK); + maynard_panel_show_previous (MAYNARD_PANEL (desktop->panel->window), + MAYNARD_PANEL_BUTTON_NONE); + desktop->system_visible = FALSE; desktop->volume_visible = FALSE; return G_SOURCE_REMOVE; @@ -365,6 +401,8 @@ panel_create(struct desktop *desktop) g_signal_connect(panel->window, "app-menu-toggled", G_CALLBACK(launcher_grid_toggle), desktop); + g_signal_connect(panel->window, "system-toggled", + G_CALLBACK(system_toggled_cb), desktop); g_signal_connect(panel->window, "volume-toggled", G_CALLBACK(volume_toggled_cb), desktop); @@ -573,6 +611,7 @@ main(int argc, char *argv[]) wl_display_roundtrip (desktop->display); desktop->grid_visible = FALSE; + desktop->system_visible = FALSE; desktop->volume_visible = FALSE; css_setup(desktop); |
