システムトレイをいじってみる 2/3
左クリックでアイコンの点滅をon/off、
右クリックでアプリ終了、
という機能を追加してみます。
シグナル "activate"が アイコン上での左クリック
シグナル "popup-menu"が アイコン上での右クリック
に対応しているようです。
tray.c#include
static gboolean isBlinking = TRUE;
void on_statusIcon_activate(GtkStatusIcon *status_icon, gpointer user_data)
{
gtk_status_icon_set_blinking(status_icon, isBlinking);
isBlinking = !isBlinking;
}void on_statusIcon_popup_menu(GtkStatusIcon *status_icon, gpointer user_data)
{
gtk_main_quit();
}int main(int argc, char *argv[])
{
gtk_init(&argc, &argv);GtkStatusIcon *icon;
icon = gtk_status_icon_new();
gtk_status_icon_set_from_file(icon, "icon.png");
gtk_status_icon_set_tooltip(icon, "StatusIcon Aplication");g_signal_connect(G_OBJECT(icon), "activate",
G_CALLBACK(on_statusIcon_activate), NULL);
g_signal_connect(G_OBJECT(icon), "popup-menu",
G_CALLBACK(on_statusIcon_popup_menu), NULL);gtk_main();
return 0;
}
参考資料