static void create_iijmio_indicator(GtkUIManager *ui) { AppIndicator *indicator; GtkWidget *indicator_menu; GtkIconTheme *theme; gchar *current_dir; gchar *theme_path; indicator = app_indicator_new("iijmio-indicator-client", INDICATOR_ICON, APP_INDICATOR_CATEGORY_APPLICATION_STATUS); indicator_menu = gtk_ui_manager_get_widget (ui, "/ui/IndicatorPopup"); current_dir = g_get_current_dir(); g_print("%s current_dir:%s\n", G_STRFUNC, current_dir); theme_path = g_build_path(G_DIR_SEPARATOR_S, current_dir, "data", NULL); g_print("%s path:%s\n", G_STRFUNC, theme_path); app_indicator_set_icon_theme_path(indicator, theme_path); g_free(current_dir); g_free(theme_path); app_indicator_set_status(indicator, APP_INDICATOR_STATUS_ACTIVE); app_indicator_set_attention_icon(indicator, INDICATOR_ATTENTION_ICON); app_indicator_set_menu(indicator, GTK_MENU(indicator_menu)); gtk_widget_show_all(indicator_menu); }
void remmina_icon_init(void) { if (!remmina_icon.icon && !remmina_pref.disable_tray_icon) { #ifdef HAVE_LIBAPPINDICATOR remmina_icon.icon = app_indicator_new ("remmina-icon", "remmina", APP_INDICATOR_CATEGORY_OTHER); app_indicator_set_icon_theme_path (remmina_icon.icon, REMMINA_DATADIR G_DIR_SEPARATOR_S "icons"); app_indicator_set_status (remmina_icon.icon, APP_INDICATOR_STATUS_ACTIVE); app_indicator_set_title (remmina_icon.icon, "Remmina"); remmina_icon_populate_menu (); #else remmina_icon.icon = gtk_status_icon_new_from_icon_name("remmina"); gtk_status_icon_set_title(remmina_icon.icon, _("Remmina Remote Desktop Client")); gtk_status_icon_set_tooltip_text(remmina_icon.icon, _("Remmina Remote Desktop Client")); g_signal_connect(G_OBJECT(remmina_icon.icon), "popup-menu", G_CALLBACK(remmina_icon_on_popup_menu), NULL); g_signal_connect(G_OBJECT(remmina_icon.icon), "activate", G_CALLBACK(remmina_icon_on_activate), NULL); #endif remmina_widget_pool_hold(TRUE); } else if (remmina_icon.icon) { #ifdef HAVE_LIBAPPINDICATOR app_indicator_set_status (remmina_icon.icon, remmina_pref.disable_tray_icon ? APP_INDICATOR_STATUS_PASSIVE : APP_INDICATOR_STATUS_ACTIVE); #else gtk_status_icon_set_visible(remmina_icon.icon, !remmina_pref.disable_tray_icon); #endif remmina_widget_pool_hold(!remmina_pref.disable_tray_icon); } if (!remmina_icon.avahi) { remmina_icon.avahi = remmina_avahi_new(); } if (remmina_icon.avahi) { if (remmina_pref.applet_enable_avahi) { if (!remmina_icon.avahi->started) remmina_avahi_start(remmina_icon.avahi); } else { remmina_avahi_stop(remmina_icon.avahi); } } if (!remmina_icon.autostart_file) { remmina_icon.autostart_file = g_strdup_printf("%s/.config/autostart/remmina-applet.desktop", g_get_home_dir()); remmina_icon_create_autostart_file(); } }
static void impl_activate(PeasActivatable *activatable) { XmrIndicatorPlugin *plugin; XmrWindow *window = NULL; XmrPlayer *player; plugin = XMR_INDICATOR_PLUGIN(activatable); g_object_get(plugin, "object", &window, NULL); if (window) { plugin->window = window; if (!plugin->indicator) { #if HAVE_APP_INDICATOR gchar *icon_path; plugin->indicator = xmr_app_indicator_new(plugin->popup_menu); icon_path = g_build_filename(xmr_app_dir(), "icons", NULL); if (g_file_test(icon_path, G_FILE_TEST_EXISTS)) app_indicator_set_icon_theme_path(APP_INDICATOR(plugin->indicator), icon_path); g_free(icon_path); #else plugin->indicator = xmr_tray_icon_new(GTK_WIDGET(window), plugin->popup_menu); #endif } g_signal_connect(window, "delete-event", G_CALLBACK(on_xmr_window_delete), plugin); g_signal_connect(window, "track-changed", G_CALLBACK(track_changed), plugin); g_object_get(window, "player", &player, NULL); if (player) { g_signal_connect(player, "state-changed", G_CALLBACK(player_state_changed), plugin); g_object_unref(player); } } plugin->hide_on_exit = g_settings_get_boolean(plugin->settings, "hide-on-exit"); g_signal_connect(plugin->settings, "changed", G_CALLBACK(on_settings_changed), plugin); if (xmr_window_playing(plugin->window)){ gtk_widget_hide(plugin->menu_item_play); } else { gtk_widget_hide(plugin->menu_item_pause); } }
static void tray_appindicator_update_icon() { if (!current_CS || current_CS->im_state == HIME_STATE_DISABLED||current_CS->im_state == HIME_STATE_ENG_FULL) { strcpy(iconfile, HIME_TRAY_PNG); } else { strcpy(iconfile, inmd[current_CS->in_method].icon); } if (current_CS && current_CS->im_state == HIME_STATE_CHINESE && !tsin_pho_mode()) { char s[64]; strcpy(s, "en-"); strcat(s, iconfile); strcpy(iconfile, s); if (!tray_appindicator_load_icon("en-tsin.png", iconfile, iconame, icondir)) return; } else { if (!tray_appindicator_load_icon(HIME_TRAY_PNG, iconfile, iconame, icondir)) return; } app_indicator_set_icon_theme_path(tray_appindicator, icondir); app_indicator_set_icon_full(tray_appindicator, iconame, ""); }
void UnityIndicator::init() { GtkWidget *menu = gtk_menu_new(); GtkWidget *options = gtk_menu_item_new_with_label(qPrintable(tr("Settings"))); GtkWidget *reload = gtk_menu_item_new_with_label(qPrintable(tr("Refresh database"))); GtkWidget *backup = gtk_menu_item_new_with_label(qPrintable(tr("Backup Manager"))); GtkWidget *separator1 = gtk_separator_menu_item_new(); GtkWidget *about = gtk_menu_item_new_with_label(qPrintable(tr("About QCMA"))); GtkWidget *about_qt = gtk_menu_item_new_with_label(qPrintable(tr("About Qt"))); GtkWidget *separator2 = gtk_separator_menu_item_new(); GtkWidget *quit = gtk_menu_item_new_with_label(qPrintable(tr("Quit"))); gtk_menu_shell_append(GTK_MENU_SHELL(menu), options); gtk_menu_shell_append(GTK_MENU_SHELL(menu), reload); gtk_menu_shell_append(GTK_MENU_SHELL(menu), backup); gtk_menu_shell_append(GTK_MENU_SHELL(menu), separator1); gtk_menu_shell_append(GTK_MENU_SHELL(menu), about); gtk_menu_shell_append(GTK_MENU_SHELL(menu), about_qt); gtk_menu_shell_append(GTK_MENU_SHELL(menu), separator2); gtk_menu_shell_append(GTK_MENU_SHELL(menu), quit); gulong handle; handle = g_signal_connect(options, "activate", G_CALLBACK(optionsIndicator), this); m_handlers.append(QPair<gpointer, gulong>(options, handle)); handle = g_signal_connect(reload, "activate", G_CALLBACK(reloadIndicator), this); m_handlers.append(QPair<gpointer, gulong>(reload, handle)); handle = g_signal_connect(backup, "activate", G_CALLBACK(backupIndicator), this); m_handlers.append(QPair<gpointer, gulong>(backup, handle)); handle = g_signal_connect(about, "activate", G_CALLBACK(aboutIndicator), this); m_handlers.append(QPair<gpointer, gulong>(about, handle)); handle = g_signal_connect(about_qt, "activate", G_CALLBACK(aboutQtIndicator), this); m_handlers.append(QPair<gpointer, gulong>(about_qt, handle)); handle = g_signal_connect(quit, "activate", G_CALLBACK(quitIndicator), this); m_handlers.append(QPair<gpointer, gulong>(quit, handle)); gtk_widget_show(options); gtk_widget_show(reload); gtk_widget_show(backup); gtk_widget_show(separator1); gtk_widget_show(about); gtk_widget_show(about_qt); gtk_widget_show(separator2); gtk_widget_show(quit); m_indicator = app_indicator_new( "qcma-appindicator", "qcma-messages", APP_INDICATOR_CATEGORY_APPLICATION_STATUS ); QString icon_path; QString icon_name = "share/icons/hicolor/64x64/actions/qcma_on.png"; if(QFile("/usr/" + icon_name).exists()) icon_path = QFileInfo("/usr/" + icon_name).absolutePath(); else if(QFile("/usr/local" + icon_name).exists()) icon_path = QFileInfo("/usr/" + icon_name).absolutePath(); if(!icon_path.isEmpty()) { qDebug() << "Using " << icon_path << " as icon theme path"; app_indicator_set_icon_theme_path(m_indicator, qPrintable(icon_path)); } else qDebug() << "Cannot find qcma icons."; app_indicator_set_status(m_indicator, APP_INDICATOR_STATUS_ACTIVE); app_indicator_set_menu(m_indicator, GTK_MENU(menu)); }
void QAppIndicator::onIconThemePathChanged(QString _path) { app_indicator_set_icon_theme_path(m_appIndicator, _path.toLocal8Bit().data()); }