Skip to content

Instantly share code, notes, and snippets.

@codebrainz
Created June 20, 2011 23:53
Show Gist options
  • Select an option

  • Save codebrainz/1036910 to your computer and use it in GitHub Desktop.

Select an option

Save codebrainz/1036910 to your computer and use it in GitHub Desktop.
Why no "query-tooltip" signal with AppIndicator?
#include <gtk/gtk.h>
#include <libappindicator/app-indicator.h>
static void on_status_icon_activate(GtkStatusIcon *status_icon, GtkMenu *menu)
{
gtk_menu_popup(menu, NULL, NULL, gtk_status_icon_position_menu, status_icon,
0, gtk_get_current_event_time());
}
static gboolean on_menu_item_query_tooltip(GtkWidget *widget, gint x, gint y,
gboolean keyboard_mode, GtkTooltip *tooltip, gpointer user_data)
{
g_print("Received query-tooltip from widget '%s' @ %d x %d\n",
gtk_widget_get_name(widget), x, y);
return TRUE;
}
static GtkWidget *create_menu(void)
{
GtkWidget *menu, *item;
menu = gtk_menu_new();
item = gtk_menu_item_new_with_label("Test Item");
gtk_widget_set_name(item, "aiTestItem");
gtk_widget_set_has_tooltip(item, TRUE);
g_signal_connect(item, "query-tooltip", G_CALLBACK(on_menu_item_query_tooltip), NULL);
gtk_menu_append(GTK_MENU(menu), item);
item = gtk_menu_item_new_with_label("Quit");
g_signal_connect(item, "activate", G_CALLBACK(gtk_main_quit), NULL);
gtk_menu_append(GTK_MENU(menu), item);
gtk_widget_show_all(menu);
return menu;
}
static void create_appindic_icon(void)
{
GtkWidget *menu;
AppIndicator *indic;
indic = app_indicator_new("aitest", "camera-video", APP_INDICATOR_CATEGORY_HARDWARE);
menu = create_menu();
app_indicator_set_menu(indic, GTK_MENU(menu));
app_indicator_set_status(indic, APP_INDICATOR_STATUS_ACTIVE);
}
static void create_status_icon(void)
{
GtkWidget *menu;
GtkStatusIcon *stat;
stat = gtk_status_icon_new_from_icon_name("camera-video");
menu = create_menu();
g_signal_connect(stat, "activate", G_CALLBACK(on_status_icon_activate), menu);
}
int main(int argc, char *argv[])
{
gtk_init(&argc, &argv);
create_appindic_icon();
create_status_icon();
gtk_main();
return 0;
}
@codebrainz
Copy link
Copy Markdown
Author

Makefile:

ai-test: ai-test.c
    gcc -g -Wall `pkg-config --cflags --libs gtk+-2.0 appindicator-0.1` -o $@ $^

clean:
    rm -f ai-test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment