static void tray_init (void) { flash_tag = 0; tray_status = TS_NONE; custom_icon1 = NULL; custom_icon2 = NULL; sticon = gtk_status_icon_new_from_pixbuf (ICON_NORMAL); if (!sticon) return; g_signal_connect (G_OBJECT (sticon), "popup-menu", G_CALLBACK (tray_menu_cb), sticon); g_signal_connect (G_OBJECT (sticon), "activate", G_CALLBACK (tray_menu_restore_cb), NULL); }
static GdkPixbuf* notification_trayicon_create(void) { GdkPixbuf *trayicon_nomail; GtkActionGroup *action_group; trayicon_nomail = notification_pixbuf_get(NOTIFICATION_TRAYICON_NOMAIL); notification_trayicon_destroy(); trayicon = gtk_status_icon_new_from_pixbuf(trayicon_nomail); g_signal_connect(G_OBJECT(trayicon), "activate", G_CALLBACK(notification_trayicon_on_activate), NULL); g_signal_connect(G_OBJECT(trayicon), "popup-menu", G_CALLBACK(notification_trayicon_on_popup_menu), NULL); g_signal_connect(G_OBJECT(trayicon), "size-changed", G_CALLBACK(notification_trayicon_on_size_changed), NULL); /* Popup-Menu */ action_group = cm_menu_create_action_group("SysTrayiconPopup", trayicon_popup_menu_entries, G_N_ELEMENTS(trayicon_popup_menu_entries), NULL); gtk_action_group_add_toggle_actions(action_group, trayicon_popup_toggle_menu_entries, G_N_ELEMENTS(trayicon_popup_toggle_menu_entries), NULL); MENUITEM_ADDUI("/Menus", "SysTrayiconPopup", "SysTrayiconPopup", GTK_UI_MANAGER_MENU) MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "GetMail", "SysTrayiconPopup/GetMail", GTK_UI_MANAGER_MENUITEM) MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "GetMailAcc", "SysTrayiconPopup/GetMailAcc", GTK_UI_MANAGER_MENU) MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "Separator1", "SysTrayiconPopup/---", GTK_UI_MANAGER_SEPARATOR) MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "Email", "SysTrayiconPopup/Email", GTK_UI_MANAGER_MENUITEM) MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "EmailAcc", "SysTrayiconPopup/EmailAcc", GTK_UI_MANAGER_MENU) MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "Separator2", "SysTrayiconPopup/---", GTK_UI_MANAGER_SEPARATOR) MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "OpenAB", "SysTrayiconPopup/OpenAB", GTK_UI_MANAGER_MENUITEM) MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "Separator3", "SysTrayiconPopup/---", GTK_UI_MANAGER_SEPARATOR) MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "ToggleOffline", "SysTrayiconPopup/ToggleOffline", GTK_UI_MANAGER_MENUITEM) #ifdef HAVE_LIBNOTIFY MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "ShowBubbles", "SysTrayiconPopup/ShowBubbles", GTK_UI_MANAGER_MENUITEM) #endif MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "Separator4", "SysTrayiconPopup/---", GTK_UI_MANAGER_SEPARATOR) MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "Exit", "SysTrayiconPopup/Exit", GTK_UI_MANAGER_MENUITEM) traymenu_popup = gtk_menu_item_get_submenu(GTK_MENU_ITEM( gtk_ui_manager_get_widget(gtkut_ui_manager(), "/Menus/SysTrayiconPopup"))); return trayicon_nomail; }
static GtkStatusIcon *create_tray_icon() { GtkStatusIcon *tray_icon; pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, PIX_W, PIX_H); tray_icon = gtk_status_icon_new_from_pixbuf(pixbuf); #if 0 g_signal_connect(G_OBJECT(tray_icon), "activate", G_CALLBACK(tray_icon_on_click), NULL); g_signal_connect(G_OBJECT(tray_icon), "popup-menu", G_CALLBACK(tray_icon_on_menu), NULL); #endif gtk_status_icon_set_visible(tray_icon, TRUE); return tray_icon; }
void create_tray_icon(GtkWidget *app) { GtkIconTheme *icontheme; GdkPixbuf *pixbuf; icontheme = gtk_icon_theme_get_default (); pixbuf = gtk_icon_theme_load_icon (icontheme, "gnomeradio", 16, 0, NULL); g_return_if_fail(pixbuf); tray_icon = gtk_status_icon_new_from_pixbuf (pixbuf); g_object_unref (pixbuf); g_signal_connect (tray_icon, "activate", G_CALLBACK (tray_activate_cb), (gpointer) app); g_signal_connect (tray_icon, "popup-menu", G_CALLBACK (tray_popup_menu), (gpointer) app); }
GtkWidget *fd_systray_create() { GtkStatusIcon *status_icon = NULL; GdkPixbuf *pixbuf; pixbuf = create_pixbuf ("pixmaps/freedict.png"); if (pixbuf) { status_icon = gtk_status_icon_new_from_pixbuf(pixbuf); gdk_pixbuf_unref(pixbuf); } g_signal_connect((gpointer)status_icon, "activate", G_CALLBACK (status_icon_activate_cb), NULL); g_signal_connect((gpointer)status_icon, "popup-menu", G_CALLBACK(status_icon_popup_menu_cb), NULL); gtk_status_icon_set_tooltip(status_icon, "Freedict"); GLADE_HOOKUP_OBJECT_NO_REF(status_icon, status_icon, "status_icon"); return (GtkWidget *)status_icon; }
int CUIHandler::CreateMainWnd() { GtkWidget* menubar; GtkWidget* filemenu, *helpmenu; GtkWidget* file, *quit; GtkWidget* help, *about; GtkWidget* vbox, *hbox; GtkWidget* align; GtkToolItem* toolitem; GtkWidget* frame; GtkWidget* status_menu; GtkWidget* status_menu_item; GtkWidget *hseparator; GtkWidget *statusbarHBox; GtkWidget *statusbarFrameConnection; GtkWidget *statusbarAlignmentConnection; GtkWidget *statusbarHBoxConnection; GtkWidget *statusbarFrameFps; GtkWidget *statusbarAlignmentFps; GtkWidget *statusbarFrameResolution; GtkWidget *statusbarAlignmentResolution; // set up tray icon trayIcon = gtk_status_icon_new_from_pixbuf(disconnectedTrayIcon); gtk_status_icon_set_tooltip(trayIcon, TRAY_TOOLTIP_DISCONNECTED); gtk_status_icon_set_visible(trayIcon, TRUE); g_signal_connect(G_OBJECT(trayIcon), "popup-menu", G_CALLBACK(status_popup), NULL); g_signal_connect(G_OBJECT(trayIcon), "activate", G_CALLBACK(status_activate), NULL); // set up main mainWindow mainWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL); g_signal_connect(G_OBJECT(mainWindow), "delete_event", G_CALLBACK(delete_event), NULL); g_signal_connect(G_OBJECT(mainWindow), "destroy", G_CALLBACK(destroy), NULL); g_signal_connect(G_OBJECT(mainWindow), "window_state_event", G_CALLBACK(track_minimize), NULL); gtk_window_set_title(GTK_WINDOW(mainWindow), SMARTCAM_WND_TITLE); gtk_container_set_border_width(GTK_CONTAINER(mainWindow), 1); gtk_window_set_resizable(GTK_WINDOW(mainWindow), FALSE); gtk_widget_set_size_request(mainWindow, MAIN_WND_WIDTH, MAIN_WND_HEIGHT); gtk_window_set_position(GTK_WINDOW(mainWindow), GTK_WIN_POS_NONE); gtk_window_set_gravity(GTK_WINDOW (mainWindow), GDK_GRAVITY_CENTER); gtk_window_set_default_icon(connectedTrayIcon); GdkPixbuf* icon; GList* icon_list = NULL; icon = gdk_pixbuf_new_from_file(DATADIR "/icons/hicolor/16x16/apps/smartcam.png", NULL); icon_list = g_list_append(icon_list, icon); icon = gdk_pixbuf_new_from_file(DATADIR "/icons/hicolor/22x22/apps/smartcam.png", NULL); icon_list = g_list_append(icon_list, icon); icon = gdk_pixbuf_new_from_file(DATADIR "/icons/hicolor/24x24/apps/smartcam.png", NULL); icon_list = g_list_append(icon_list, icon); icon = gdk_pixbuf_new_from_file(DATADIR "/icons/hicolor/32x32/apps/smartcam.png", NULL); icon_list = g_list_append(icon_list, icon); icon = gdk_pixbuf_new_from_file(DATADIR "/icons/hicolor/48x48/apps/smartcam.png", NULL); icon_list = g_list_append(icon_list, icon); gtk_window_set_default_icon_list(icon_list); g_list_foreach(icon_list, (GFunc)g_object_unref, NULL ); g_list_free(icon_list); // create menubar menubar = gtk_menu_bar_new(); filemenu = gtk_menu_new(); file = gtk_menu_item_new_with_mnemonic("_File"); miSettings = gtk_image_menu_item_new_with_label("Settings"); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(miSettings), gtk_image_new_from_stock(GTK_STOCK_PREFERENCES, GTK_ICON_SIZE_MENU)); g_signal_connect(G_OBJECT(miSettings), "activate", G_CALLBACK(OnSettingsClicked), (gpointer) NULL); quit = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, NULL); g_signal_connect(G_OBJECT(quit), "activate", G_CALLBACK(destroy), NULL); gtk_menu_shell_append(GTK_MENU_SHELL(menubar), file); gtk_menu_item_set_submenu(GTK_MENU_ITEM(file), filemenu); gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), miSettings); gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), quit); helpmenu = gtk_menu_new(); help = gtk_menu_item_new_with_mnemonic("_Help"); about = gtk_image_menu_item_new_from_stock(GTK_STOCK_ABOUT, NULL); g_signal_connect(about, "activate", G_CALLBACK(show_about_dialog), NULL); gtk_menu_shell_append(GTK_MENU_SHELL(menubar), help); gtk_menu_item_set_submenu(GTK_MENU_ITEM(help), helpmenu); gtk_menu_shell_append(GTK_MENU_SHELL(helpmenu), about); // create toolbar toolbar = gtk_toolbar_new(); gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_ICONS); gtk_toolbar_set_icon_size(GTK_TOOLBAR(toolbar), GTK_ICON_SIZE_MENU); g_object_set(G_OBJECT(toolbar), "can-focus", FALSE, NULL); tbSettings = gtk_tool_button_new_from_stock(GTK_STOCK_PREFERENCES); g_signal_connect(G_OBJECT(tbSettings), "clicked", G_CALLBACK(OnSettingsClicked), NULL); g_object_set(G_OBJECT(tbSettings), "tooltip-text", "Settings", NULL); g_object_set(G_OBJECT(tbSettings), "can-focus", FALSE, NULL); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), tbSettings, 0); tbDisconnect = gtk_tool_button_new_from_stock(GTK_STOCK_DISCONNECT); g_signal_connect(G_OBJECT(tbDisconnect), "clicked", G_CALLBACK(OnDisconnectClicked), NULL); g_object_set(G_OBJECT(tbDisconnect), "tooltip-text", "Disconnect", NULL); g_object_set(G_OBJECT(tbDisconnect), "can-focus", FALSE, NULL); g_object_set(G_OBJECT(tbDisconnect), "sensitive", FALSE, NULL); // disable disconnect gtk_toolbar_insert(GTK_TOOLBAR(toolbar), tbDisconnect, 1); // create preview frame vbox = gtk_vbox_new(FALSE, 1); gtk_container_set_border_width(GTK_CONTAINER(vbox), 1); gtk_container_add(GTK_CONTAINER(mainWindow), vbox); align = gtk_alignment_new(0.5, 0.5, 0, 0); frame = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_OUT); image = gtk_image_new_from_pixbuf(logoIcon); gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), align, TRUE, TRUE, 0); gtk_container_add(GTK_CONTAINER(align), frame); gtk_container_add(GTK_CONTAINER(frame), image); // set up status bar hseparator = gtk_hseparator_new (); gtk_box_pack_start (GTK_BOX (vbox), hseparator, FALSE, FALSE, 0); statusbarHBox = gtk_hbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), statusbarHBox, FALSE, FALSE, 0); statusbarFrameConnection = gtk_frame_new (NULL); gtk_box_pack_start (GTK_BOX (statusbarHBox), statusbarFrameConnection, TRUE, TRUE, 0); gtk_widget_set_size_request (statusbarFrameConnection, 55, 25); gtk_frame_set_label_align (GTK_FRAME (statusbarFrameConnection), 0, 0); gtk_frame_set_shadow_type (GTK_FRAME (statusbarFrameConnection), GTK_SHADOW_IN); statusbarAlignmentConnection = gtk_alignment_new (0, 0.5, 1, 1); gtk_container_add (GTK_CONTAINER (statusbarFrameConnection), statusbarAlignmentConnection); gtk_alignment_set_padding (GTK_ALIGNMENT (statusbarAlignmentConnection), 0, 0, 3, 0); statusbarHBoxConnection = gtk_hbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (statusbarAlignmentConnection), statusbarHBoxConnection); if(pSmartEngine->GetSettings().connectionType == CONN_BLUETOOTH) { statusbarImageConnection = gtk_image_new_from_pixbuf(btStatusIcon); } else { statusbarImageConnection = gtk_image_new_from_pixbuf(inetStatusIcon); } gtk_box_pack_start (GTK_BOX (statusbarHBoxConnection), statusbarImageConnection, FALSE, FALSE, 0); gtk_misc_set_alignment (GTK_MISC (statusbarImageConnection), 0, 0.5); statusbarLabelConnection = gtk_label_new ("Disconnected"); gtk_box_pack_start (GTK_BOX (statusbarHBoxConnection), statusbarLabelConnection, TRUE, TRUE, 0); gtk_misc_set_alignment (GTK_MISC (statusbarLabelConnection), 0, 0.5); statusbarFrameFps = gtk_frame_new (NULL); gtk_box_pack_start (GTK_BOX (statusbarHBox), statusbarFrameFps, TRUE, TRUE, 0); gtk_widget_set_size_request (statusbarFrameFps, 17, 25); gtk_frame_set_shadow_type (GTK_FRAME (statusbarFrameFps), GTK_SHADOW_IN); statusbarAlignmentFps = gtk_alignment_new (0, 0.5, 1, 1); gtk_container_add (GTK_CONTAINER (statusbarFrameFps), statusbarAlignmentFps); gtk_alignment_set_padding (GTK_ALIGNMENT (statusbarAlignmentFps), 0, 0, 3, 0); statusbarLabelFps = gtk_label_new (CUIHandler::STATUS_LABEL_FPS); gtk_container_add (GTK_CONTAINER (statusbarAlignmentFps), statusbarLabelFps); gtk_misc_set_alignment (GTK_MISC (statusbarLabelFps), 0, 0.5); statusbarFrameResolution = gtk_frame_new (NULL); gtk_box_pack_start (GTK_BOX (statusbarHBox), statusbarFrameResolution, TRUE, TRUE, 0); gtk_widget_set_size_request (statusbarFrameResolution, 92, 25); gtk_frame_set_shadow_type (GTK_FRAME (statusbarFrameResolution), GTK_SHADOW_IN); statusbarAlignmentResolution = gtk_alignment_new (0, 0.5, 1, 1); gtk_container_add (GTK_CONTAINER (statusbarFrameResolution), statusbarAlignmentResolution); gtk_alignment_set_padding (GTK_ALIGNMENT (statusbarAlignmentResolution), 0, 0, 3, 0); statusbarLabelResolution = gtk_label_new (CUIHandler::STATUS_LABEL_RESOLUTION); gtk_container_add (GTK_CONTAINER (statusbarAlignmentResolution), statusbarLabelResolution); gtk_misc_set_alignment (GTK_MISC (statusbarLabelResolution), 0, 0.5); gtk_widget_show_all(mainWindow); return 0; }
void wxTaskBarIcon::Private::SetIcon() { #if GTK_CHECK_VERSION(2,10,0) if (GTK_CHECK_VERSION(3,0,0) || gtk_check_version(2,10,0) == NULL) { if (m_statusIcon) gtk_status_icon_set_from_pixbuf(m_statusIcon, m_bitmap.GetPixbuf()); else { m_statusIcon = gtk_status_icon_new_from_pixbuf(m_bitmap.GetPixbuf()); g_signal_connect(m_statusIcon, "activate", G_CALLBACK(icon_activate), m_taskBarIcon); g_signal_connect(m_statusIcon, "popup_menu", G_CALLBACK(status_icon_popup_menu), m_taskBarIcon); } } else #endif { #ifndef __WXGTK3__ m_size = 0; if (m_eggTrayIcon) { GtkWidget* image = gtk_bin_get_child(GTK_BIN(m_eggTrayIcon)); gtk_image_set_from_pixbuf(GTK_IMAGE(image), m_bitmap.GetPixbuf()); } else { m_eggTrayIcon = GTK_WIDGET(egg_tray_icon_new("wxTaskBarIcon")); gtk_widget_add_events(m_eggTrayIcon, GDK_BUTTON_PRESS_MASK); g_signal_connect(m_eggTrayIcon, "size_allocate", G_CALLBACK(icon_size_allocate), this); g_signal_connect(m_eggTrayIcon, "destroy", G_CALLBACK(icon_destroy), this); g_signal_connect(m_eggTrayIcon, "button_press_event", G_CALLBACK(icon_button_press_event), m_taskBarIcon); g_signal_connect(m_eggTrayIcon, "popup_menu", G_CALLBACK(icon_popup_menu), m_taskBarIcon); GtkWidget* image = gtk_image_new_from_pixbuf(m_bitmap.GetPixbuf()); gtk_container_add(GTK_CONTAINER(m_eggTrayIcon), image); gtk_widget_show_all(m_eggTrayIcon); } #endif } #if wxUSE_TOOLTIPS const char *tip_text = NULL; if (!m_tipText.empty()) tip_text = m_tipText.utf8_str(); #if GTK_CHECK_VERSION(2,10,0) if (m_statusIcon) { #if GTK_CHECK_VERSION(2,16,0) if (GTK_CHECK_VERSION(3,0,0) || gtk_check_version(2,16,0) == NULL) gtk_status_icon_set_tooltip_text(m_statusIcon, tip_text); else #endif { #ifndef __WXGTK3__ gtk_status_icon_set_tooltip(m_statusIcon, tip_text); #endif } } else #endif // GTK_CHECK_VERSION(2,10,0) { #ifndef __WXGTK3__ if (tip_text && m_tooltips == NULL) { m_tooltips = gtk_tooltips_new(); g_object_ref(m_tooltips); gtk_object_sink(GTK_OBJECT(m_tooltips)); } if (m_tooltips) gtk_tooltips_set_tip(m_tooltips, m_eggTrayIcon, tip_text, ""); #endif } #endif // wxUSE_TOOLTIPS }