示例#1
0
void systray_rootmenu_add_submenu(menu_infos_t* mis, menu_type_t type, const char* name, const char* icon)
{
    GtkMenuShell* menu = mis->menu;
    menu_info_t* mi = &mis->menu_info[type];

    systray_menu_add_submenu(menu, mi, name, NULL, icon);
    systray_menu_add_item(mi->menu, "none", NULL, false);
}
示例#2
0
void systray_remove_menu_item(menu_info_t* mi, GtkWidget* item)
{
    gtk_container_remove(GTK_CONTAINER(mi->menu), item);

    /* insert "none" placeholder label for empty menus */
    if(!mi->parent)
        if(g_hash_table_size(mi->items) <= 1)
            systray_menu_add_item(mi->menu, "none", NULL, false);
}
示例#3
0
void systray_menu_add_application(GtkMenuShell* menu, const char* name, const char* icon, const char* command)
{
    gchar** exe = g_strsplit_set(command, " ", 2);
    gchar* c = g_find_program_in_path(exe[0]);
    g_strfreev(exe);
    GtkWidget* item = systray_menu_add_item(menu, name, icon, (c != NULL));
    g_free(c);

    g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(start_application_cb), (gpointer)command);
}
示例#4
0
void systray_add_placeholder(menu_info_t* mi)
{
    /* insert "none" placeholder label for empty menus */
    if(g_hash_table_size(mi->items) <= 1)
        systray_menu_add_item(mi->menu, "none", NULL, FALSE);
}
示例#5
0
void systray_menu_add_action(GtkMenuShell* menu, const char* name, const char* icon, GCallback cb)
{
    GtkWidget* item = systray_menu_add_item(menu, name, icon, TRUE);

    g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(cb), NULL);
}