aboutsummaryrefslogtreecommitdiff
path: root/example/simple-client.c
diff options
context:
space:
mode:
Diffstat (limited to 'example/simple-client.c')
-rw-r--r--example/simple-client.c201
1 files changed, 0 insertions, 201 deletions
diff --git a/example/simple-client.c b/example/simple-client.c
deleted file mode 100644
index f2fac6f..0000000
--- a/example/simple-client.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
-A small piece of sample code demonstrating a very simple application
-with an indicator.
-
-Copyright 2009 Canonical Ltd.
-
-Authors:
- Ted Gould <ted@canonical.com>
-
-This program is free software: you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 3, as published
-by the Free Software Foundation.
-
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranties of
-MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
-PURPOSE. See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along
-with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "app-indicator.h"
-#include "libdbusmenu-glib/server.h"
-#include "libdbusmenu-glib/menuitem.h"
-
-GMainLoop * mainloop = NULL;
-static gboolean active = TRUE;
-static gboolean can_haz_label = TRUE;
-
-static void
-label_toggle_cb (GtkWidget * widget, gpointer data)
-{
- can_haz_label = !can_haz_label;
-
- if (can_haz_label) {
- gtk_menu_item_set_label(GTK_MENU_ITEM(widget), "Hide label");
- } else {
- gtk_menu_item_set_label(GTK_MENU_ITEM(widget), "Show label");
- }
-
- return;
-}
-
-static void
-activate_clicked_cb (GtkWidget *widget, gpointer data)
-{
- AppIndicator * ci = APP_INDICATOR(data);
-
- if (active) {
- app_indicator_set_status (ci, APP_INDICATOR_STATUS_ATTENTION);
- gtk_menu_item_set_label(GTK_MENU_ITEM(widget), "I'm okay now");
- active = FALSE;
- } else {
- app_indicator_set_status (ci, APP_INDICATOR_STATUS_ACTIVE);
- gtk_menu_item_set_label(GTK_MENU_ITEM(widget), "Get Attention");
- active = TRUE;
- }
-
-}
-
-static void
-item_clicked_cb (GtkWidget *widget, gpointer data)
-{
- const gchar *text = (const gchar *)data;
-
- g_print ("%s clicked!\n", text);
-}
-
-static void
-toggle_sensitivity_cb (GtkWidget *widget, gpointer data)
-{
- GtkWidget *target = (GtkWidget *)data;
-
- gtk_widget_set_sensitive (target, !GTK_WIDGET_IS_SENSITIVE (target));
-}
-
-static void
-image_clicked_cb (GtkWidget *widget, gpointer data)
-{
- gtk_image_set_from_stock (GTK_IMAGE (GTK_IMAGE_MENU_ITEM (widget)->image),
- GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU);
-}
-
-static void
-append_submenu (GtkWidget *item)
-{
- GtkWidget *menu;
- GtkWidget *mi;
- GtkWidget *prev_mi;
-
- menu = gtk_menu_new ();
-
- mi = gtk_menu_item_new_with_label ("Sub 1");
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
- g_signal_connect (mi, "activate",
- G_CALLBACK (item_clicked_cb), "Sub 1");
-
- prev_mi = mi;
- mi = gtk_menu_item_new_with_label ("Sub 2");
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
- g_signal_connect (mi, "activate",
- G_CALLBACK (toggle_sensitivity_cb), prev_mi);
-
- mi = gtk_menu_item_new_with_label ("Sub 3");
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
- g_signal_connect (mi, "activate",
- G_CALLBACK (item_clicked_cb), "Sub 3");
-
- gtk_widget_show_all (menu);
-
- gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), menu);
-}
-
-guint percentage = 0;
-
-static gboolean
-percent_change (gpointer user_data)
-{
- percentage = (percentage + 1) % 100;
- if (can_haz_label) {
- gchar * percentstr = g_strdup_printf("%d%%", percentage + 1);
- app_indicator_set_label (APP_INDICATOR(user_data), percentstr, "100%");
- g_free(percentstr);
- } else {
- app_indicator_set_label (APP_INDICATOR(user_data), NULL, NULL);
- }
- return TRUE;
-}
-
-int
-main (int argc, char ** argv)
-{
- GtkWidget *menu = NULL;
- AppIndicator *ci = NULL;
-
- gtk_init (&argc, &argv);
-
- ci = app_indicator_new ("example-simple-client",
- "indicator-messages",
- APP_INDICATOR_CATEGORY_APPLICATION_STATUS);
-
- g_assert (IS_APP_INDICATOR (ci));
- g_assert (G_IS_OBJECT (ci));
-
- app_indicator_set_status (ci, APP_INDICATOR_STATUS_ACTIVE);
- app_indicator_set_attention_icon(ci, "indicator-messages-new");
- app_indicator_set_label (ci, "1%", "100%");
-
- g_timeout_add_seconds(1, percent_change, ci);
-
- menu = gtk_menu_new ();
- GtkWidget *item = gtk_check_menu_item_new_with_label ("1");
- g_signal_connect (item, "activate",
- G_CALLBACK (item_clicked_cb), "1");
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
- gtk_widget_show (item);
-
- item = gtk_radio_menu_item_new_with_label (NULL, "2");
- g_signal_connect (item, "activate",
- G_CALLBACK (item_clicked_cb), "2");
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
- gtk_widget_show (item);
-
- item = gtk_menu_item_new_with_label ("3");
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
- append_submenu (item);
- gtk_widget_show (item);
-
- GtkWidget *toggle_item = gtk_menu_item_new_with_label ("Toggle 3");
- g_signal_connect (toggle_item, "activate",
- G_CALLBACK (toggle_sensitivity_cb), item);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), toggle_item);
- gtk_widget_show(toggle_item);
-
- item = gtk_image_menu_item_new_from_stock (GTK_STOCK_NEW, NULL);
- g_signal_connect (item, "activate",
- G_CALLBACK (image_clicked_cb), NULL);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
- gtk_widget_show(item);
-
- item = gtk_menu_item_new_with_label ("Get Attention");
- g_signal_connect (item, "activate",
- G_CALLBACK (activate_clicked_cb), ci);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
- gtk_widget_show(item);
-
- item = gtk_menu_item_new_with_label ("Show label");
- label_toggle_cb(item, ci);
- g_signal_connect (item, "activate",
- G_CALLBACK (label_toggle_cb), ci);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
- gtk_widget_show(item);
-
- app_indicator_set_menu (ci, GTK_MENU (menu));
-
- mainloop = g_main_loop_new(NULL, FALSE);
- g_main_loop_run(mainloop);
-
- return 0;
-}