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);
}
Ejemplo n.º 2
0
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();
	}
}
Ejemplo n.º 3
0
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);
	}
}
Ejemplo n.º 4
0
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, "");
}
Ejemplo n.º 5
0
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));
}
Ejemplo n.º 6
0
void QAppIndicator::onIconThemePathChanged(QString _path)
{
    app_indicator_set_icon_theme_path(m_appIndicator,
                                      _path.toLocal8Bit().data());
}