static void multi_pages_button_clicked (GtkWidget *button, SoliPrintPreview *preview) { GtkWidget *menu; GtkWidget *item; menu = gtk_menu_new (); gtk_widget_show (menu); g_signal_connect (menu, "selection-done", G_CALLBACK (gtk_widget_destroy), NULL); item = gtk_menu_item_new_with_label ("1x1"); gtk_widget_show (item); gtk_menu_attach (GTK_MENU (menu), item, 0, 1, 0, 1); g_signal_connect (item, "activate", G_CALLBACK (on_1x1_clicked), preview); item = gtk_menu_item_new_with_label ("1x2"); gtk_widget_show (item); gtk_menu_attach (GTK_MENU (menu), item, 1, 2, 0, 1); g_signal_connect (item, "activate", G_CALLBACK (on_1x2_clicked), preview); gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, preview, 0, GDK_CURRENT_TIME); }
//GtkWidget* create_op_menu(GtkContainer* parent) { GtkWidget* create_op_menu(void) { GtkWidget* menu; GtkWidget* child; int i; op_id_t id; const char* name; menu = gtk_menu_new(); for(i=0; i<NUM_USER_OP_TYPES; i++) { id = userOpTypes[i]; name = op_registry[id].name; child = gtk_menu_item_new_with_label(name); gtk_menu_attach(GTK_MENU(menu), child, 0, 1, i+1, i+2); ////////////////// // huh, have to do this here. gtk_widget_show(child); ////////////////// g_signal_connect( child, "activate", G_CALLBACK(op_menu_select), (gpointer)&(userOpTypes[i]) ); } return menu; }
uint8_t UI_updateRecentMenu( void ) { const char **names; uint32_t nb_item=0; GtkWidget *button,*menu,*item[4]; static Action recent[4]={ACT_RECENT0,ACT_RECENT1,ACT_RECENT2,ACT_RECENT3}; names=prefs->get_lastfiles(); // count for( nb_item=0;nb_item<4;nb_item++) { if(!names[nb_item]) break; } button=lookup_widget(guiRootWindow,"menutoolbuttonOpen"); if(!nb_item) { gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON(button),NULL); return 1; } menu=gtk_menu_new(); for(int i=0;i<nb_item;i++) { item[i]=gtk_menu_item_new_with_label(names[i]); gtk_menu_attach(GTK_MENU(menu),item[i],0,1,i,i+1); gtk_signal_connect (GTK_OBJECT (item[i]), "activate", GTK_SIGNAL_FUNC (guiCallback), (gpointer) recent[i]); gtk_widget_show (item[i]); } gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON(button),menu); return 1; }
static void popup_menu (MuMsgBodyView *self, guint button, guint32 activate_time) { GtkWidget *menu; int i; struct { const char* title; const char* action; ViewMode mode; } actions[] = { { "View source...", "view-source", VIEW_MODE_MSG }, { "View message...", "view-message", VIEW_MODE_SOURCE }, }; menu = gtk_menu_new (); for (i = 0; i != G_N_ELEMENTS(actions); ++i) { GtkWidget *item; if (self->_priv->_view_mode != actions[i].mode) continue; item = gtk_menu_item_new_with_label(actions[i].title); g_object_set_data (G_OBJECT(item), "action", (gpointer)actions[i].action); g_signal_connect (item, "activate", G_CALLBACK(on_menu_item_activate), self); gtk_menu_attach (GTK_MENU(menu), item, 0, 1, i, i+1); gtk_widget_show (item); } gtk_menu_popup (GTK_MENU(menu), NULL, NULL, NULL, NULL, 0, 0); }
int clip_GTK_MENUATTACH(ClipMachine * ClipMachineMemory) { C_widget *cmnu = _fetch_cw_arg(ClipMachineMemory); C_widget *cwid = _fetch_cwidget(ClipMachineMemory, _clip_spar(ClipMachineMemory, 2)); guint left_attach = _clip_parni(ClipMachineMemory, 3); guint right_attach = _clip_parni(ClipMachineMemory, 4); guint top_attach = _clip_parni(ClipMachineMemory, 5); guint bottom_attach = _clip_parni(ClipMachineMemory, 6); CHECKCWID(cmnu, GTK_IS_MENU); CHECKCWID(cwid, GTK_IS_WIDGET); CHECKARG(3, NUMERIC_type_of_ClipVarType); CHECKARG(4, NUMERIC_type_of_ClipVarType); CHECKARG(5, NUMERIC_type_of_ClipVarType); CHECKARG(6, NUMERIC_type_of_ClipVarType); gtk_menu_attach(GTK_MENU(cmnu->widget), GTK_WIDGET(cwid->widget), left_attach, right_attach, top_attach, bottom_attach); return 0; err: return 1; }
static VALUE rg_attach(VALUE self, VALUE child, VALUE left_attach, VALUE right_attach, VALUE top_attach, VALUE bottom_attach) { gtk_menu_attach(_SELF(self), GTK_WIDGET(RVAL2GOBJ(child)), NUM2UINT(left_attach), NUM2UINT(right_attach), NUM2UINT(top_attach), NUM2UINT(bottom_attach)); return self; }
GtkWidget * empathy_smiley_menu_new (EmpathySmileyManager *manager, EmpathySmileyMenuFunc func, gpointer user_data) { EmpathySmileyManagerPriv *priv = GET_PRIV (manager); GSList *l; GtkWidget *menu; gint x = 0; gint y = 0; g_return_val_if_fail (EMPATHY_IS_SMILEY_MANAGER (manager), NULL); g_return_val_if_fail (func != NULL, NULL); menu = gtk_menu_new (); for (l = priv->smileys; l; l = l->next) { EmpathySmiley *smiley; GtkWidget *item; GtkWidget *image; ActivateData *data; smiley = l->data; image = gtk_image_new_from_pixbuf (smiley->pixbuf); item = gtk_image_menu_item_new_with_label (""); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); gtk_menu_attach (GTK_MENU (menu), item, x, x + 1, y, y + 1); gtk_widget_set_tooltip_text (item, smiley->str); data = g_slice_new (ActivateData); data->manager = g_object_ref (manager); data->smiley = smiley; data->func = func; data->user_data = user_data; g_signal_connect_data (item, "activate", G_CALLBACK (smiley_menu_activate_cb), data, smiley_menu_data_free, 0); if (x > 3) { y++; x = 0; } else { x++; } } gtk_widget_show_all (menu); return menu; }
static void show_menu(GdkEventButton* event){ GtkWidget* menu, *item; menu = gtk_menu_new(); item = gtk_image_menu_item_new_from_stock(GTK_STOCK_PREFERENCES, NULL); g_signal_connect_swapped(item, "activate", G_CALLBACK(prefs_window), NULL); gtk_menu_attach(GTK_MENU(menu), item, 0, 1, 0, 1); gtk_widget_show(item); item = gtk_image_menu_item_new_from_stock(GTK_STOCK_DIALOG_INFO, NULL); g_signal_connect_swapped(item, "activate", G_CALLBACK(about_window), NULL); gtk_widget_show(item); gtk_menu_attach(GTK_MENU(menu), item, 0, 1, 1, 2); item = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, NULL); g_signal_connect_swapped(item, "activate", G_CALLBACK(gtk_main_quit), NULL); gtk_menu_attach(GTK_MENU(menu), item, 0, 1, 2, 3); gtk_widget_show(item); gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, event->button, event->time); }
PocketvoxIndicator* pocketvox_indicator_new() { PocketvoxIndicator *indicator = (PocketvoxIndicator *)g_object_new(TYPE_POCKETVOX_INDICATOR, NULL); indicator->priv = G_TYPE_INSTANCE_GET_PRIVATE (indicator, TYPE_POCKETVOX_INDICATOR, PocketvoxIndicatorPrivate); PocketvoxIndicatorPrivate *priv = indicator->priv; app_indicator_set_status(priv->applet, APP_INDICATOR_STATUS_ACTIVE); GtkWidget* stateItem = gtk_menu_item_new_with_label(_("Stop")); priv->modulesItem = gtk_menu_item_new_with_label(_("Modules")); GtkWidget* separatorItem0 = gtk_separator_menu_item_new(); GtkWidget* separatorItem1 = gtk_separator_menu_item_new(); GtkWidget* quitItem = gtk_menu_item_new_with_label(_("Quit")); priv->appsItem = gtk_menu_item_new_with_label(_("Apps")); gtk_menu_item_set_submenu((GtkMenuItem *)priv->modulesItem, priv->modulesMenu); gtk_menu_item_set_submenu((GtkMenuItem *)priv->appsItem, priv->appsMenu); gtk_menu_attach((GtkMenu *)priv->menu, stateItem, 0, 1, 0, 1); gtk_menu_attach((GtkMenu *)priv->menu, separatorItem0, 0, 1, 1, 2); gtk_menu_attach((GtkMenu *)priv->menu, priv->modulesItem, 0, 1, 2, 3); gtk_menu_attach((GtkMenu *)priv->menu, priv->appsItem, 0, 1, 3, 4); gtk_menu_attach((GtkMenu *)priv->menu, separatorItem1, 0, 1, 4, 5); gtk_menu_attach((GtkMenu *)priv->menu, quitItem, 0, 1, 5, 6); gtk_widget_show_all(priv->menu); gtk_widget_hide(priv->appsItem); gtk_widget_hide(priv->modulesItem); g_signal_connect(stateItem, "activate", G_CALLBACK(pocketvox_indicator_state_changed), indicator); g_signal_connect(quitItem, "activate", G_CALLBACK(pocketvox_indicator_quit), indicator); app_indicator_set_menu(priv->applet, (GtkMenu *)priv->menu); return indicator; }
int main (int argc, char **argv) { GtkWidget *window; GtkWidget *button; GtkWidget *grid; GtkWidget *entry; GtkWidget *menu_widget; GtkAccelGroup *accel_group; guint i; GMenu *menu; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_resize (GTK_WINDOW (window), 400, 300); grid = gtk_grid_new (); gtk_container_add (GTK_CONTAINER (window), grid); accel_group = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (window), accel_group); /* Button next to entry */ entry = gtk_entry_new (); gtk_grid_attach (GTK_GRID (grid), entry, 0, 0, 1, 1); button = gtk_menu_button_new (); gtk_grid_attach (GTK_GRID (grid), button, 1, 0, 1, 1); /* Button with GtkMenu */ menu_widget = gtk_menu_new (); for (i = 5; i > 0; i--) { GtkWidget *item; if (i == 3) { item = gtk_menu_item_new_with_mnemonic ("_Copy"); } else { char *label; label = g_strdup_printf ("Item _%d", i); item = gtk_menu_item_new_with_mnemonic (label); g_free (label); } gtk_menu_item_set_use_underline (GTK_MENU_ITEM (item), TRUE); gtk_menu_attach (GTK_MENU (menu_widget), item, 0, 1, i - 1, i); } gtk_widget_show_all (menu_widget); button = gtk_menu_button_new (); gtk_menu_button_set_popup (GTK_MENU_BUTTON (button), menu_widget); gtk_grid_attach (GTK_GRID (grid), button, 1, 1, 1, 1); gtk_widget_show (create_prop_editor (G_OBJECT (button), 0)); /* Button with GMenuModel */ menu = g_menu_new (); for (i = 5; i > 0; i--) { char *label; GMenuItem *item; label = g_strdup_printf ("Item _%d", i); item = g_menu_item_new (label, NULL); if (i == 3) g_menu_item_set_attribute (item, "icon", "s", "preferences-desktop-locale-symbolic"); g_menu_insert_item (menu, i - 1, item); g_object_unref (item); g_free (label); } button = gtk_menu_button_new (); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button), G_MENU_MODEL (menu)); gtk_grid_attach (GTK_GRID (grid), button, 1, 2, 1, 1); gtk_widget_show_all (window); gtk_main (); return 0; }
static void setup_photo_popup (UmPhotoDialog *um) { GtkWidget *menu, *menuitem, *image; guint x, y; const gchar * const * dirs; guint i; GDir *dir; const char *face; gboolean none_item_shown; gboolean added_faces; menu = gtk_menu_new (); x = 0; y = 0; none_item_shown = added_faces = FALSE; dirs = g_get_system_data_dirs (); for (i = 0; dirs[i] != NULL; i++) { char *path; path = g_build_filename (dirs[i], "pixmaps", "faces", NULL); dir = g_dir_open (path, 0, NULL); if (dir == NULL) { g_free (path); continue; } while ((face = g_dir_read_name (dir)) != NULL) { char *filename; added_faces = TRUE; filename = g_build_filename (path, face, NULL); menuitem = menu_item_for_filename (um, filename); g_free (filename); if (menuitem == NULL) continue; gtk_menu_attach (GTK_MENU (menu), GTK_WIDGET (menuitem), x, x + 1, y, y + 1); gtk_widget_show (menuitem); x++; if (x >= ROW_SPAN - 1) { y++; x = 0; } } g_dir_close (dir); g_free (path); if (added_faces) break; } if (!added_faces) goto skip_faces; image = gtk_image_new_from_icon_name ("avatar-default", GTK_ICON_SIZE_DIALOG); menuitem = gtk_menu_item_new (); gtk_container_add (GTK_CONTAINER (menuitem), image); gtk_widget_show_all (menuitem); gtk_menu_attach (GTK_MENU (menu), GTK_WIDGET (menuitem), x, x + 1, y, y + 1); g_signal_connect (G_OBJECT (menuitem), "activate", G_CALLBACK (none_icon_selected), um); gtk_widget_show (menuitem); none_item_shown = TRUE; y++; skip_faces: if (!none_item_shown) { menuitem = gtk_menu_item_new_with_label (_("Disable image")); gtk_menu_attach (GTK_MENU (menu), GTK_WIDGET (menuitem), 0, ROW_SPAN - 1, y, y + 1); g_signal_connect (G_OBJECT (menuitem), "activate", G_CALLBACK (none_icon_selected), um); gtk_widget_show (menuitem); y++; } /* Separator */ menuitem = gtk_separator_menu_item_new (); gtk_menu_attach (GTK_MENU (menu), GTK_WIDGET (menuitem), 0, ROW_SPAN - 1, y, y + 1); gtk_widget_show (menuitem); y++; #ifdef HAVE_CHEESE um->take_photo_menuitem = gtk_menu_item_new_with_label (_("Take a photo...")); gtk_menu_attach (GTK_MENU (menu), GTK_WIDGET (um->take_photo_menuitem), 0, ROW_SPAN - 1, y, y + 1); g_signal_connect (G_OBJECT (um->take_photo_menuitem), "activate", G_CALLBACK (webcam_icon_selected), um); gtk_widget_set_sensitive (um->take_photo_menuitem, FALSE); gtk_widget_show (um->take_photo_menuitem); um->monitor = cheese_camera_device_monitor_new (); g_signal_connect (G_OBJECT (um->monitor), "added", G_CALLBACK (device_added), um); g_signal_connect (G_OBJECT (um->monitor), "removed", G_CALLBACK (device_removed), um); cheese_camera_device_monitor_coldplug (um->monitor); y++; #endif /* HAVE_CHEESE */ menuitem = gtk_menu_item_new_with_label (_("Browse for more pictures...")); gtk_menu_attach (GTK_MENU (menu), GTK_WIDGET (menuitem), 0, ROW_SPAN - 1, y, y + 1); g_signal_connect (G_OBJECT (menuitem), "activate", G_CALLBACK (file_icon_selected), um); gtk_widget_show (menuitem); um->photo_popup = menu; }
/** * go_color_palette_make_menu: * @no_color_label: color label * @default_color: #GOColor * @cg: #GOColorGroup * @custom_dialog_title: optional string * @current_color: #GOColor * * Returns: (transfer full): a submenu with a palette of colours. Caller is responsible for * creating an item to point to the submenu. **/ GtkWidget * go_color_palette_make_menu (char const *no_color_label, GOColor default_color, GOColorGroup *cg, char const *custom_dialog_title, GOColor current_color) { int cols = 8; int rows = 6; int col, row, pos, table_row = 0; GONamedColor const *color_names = default_color_set; GtkWidget *w, *submenu; submenu = g_object_new (go_menu_color_get_type (), NULL); if (no_color_label != NULL) { w = make_colored_menu_item (no_color_label, default_color); gtk_menu_attach (GTK_MENU (submenu), w, 0, cols, 0, 1); g_signal_connect (G_OBJECT (w), "activate", G_CALLBACK (cb_menu_default_activate), submenu); table_row++; } for (row = 0; row < rows; row++, table_row++) { for (col = 0; col < cols; col++) { pos = row * cols + col; if (color_names [pos].name == NULL) goto custom_colors; w = make_colored_menu_item (" ", color_names [pos].color); gtk_widget_set_tooltip_text (w, _(color_names[pos].name)); gtk_menu_attach (GTK_MENU (submenu), w, col, col+1, table_row, table_row+1); g_signal_connect (G_OBJECT (w), "activate", G_CALLBACK (cb_menu_color_activate), submenu); } } custom_colors : if (col > 0) row++; for (col = 0; col < cols && col < GO_COLOR_GROUP_HISTORY_SIZE; col++) { w = make_colored_menu_item (" ", cg->history[col]); gtk_menu_attach (GTK_MENU (submenu), w, col, col+1, table_row, table_row+1); g_signal_connect (G_OBJECT (w), "activate", G_CALLBACK (cb_menu_color_activate), submenu); } w = gtk_image_menu_item_new_with_label (_("Custom color...")); /* Workaround for bug http://bugzilla.gnome.org/show_bug.cgi?id=585421 */ /* We can't have an image in one of the gtk_menu_item, it would lead to an ugly item spacing. */ /* gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (w),*/ /* gtk_image_new_from_stock (GTK_STOCK_SELECT_COLOR, GTK_ICON_SIZE_MENU));*/ gtk_widget_show_all (w); gtk_menu_attach (GTK_MENU (submenu), w, 0, cols, row + 2, row + 3); g_signal_connect (G_OBJECT (w), "activate", G_CALLBACK (cb_menu_custom_activate), submenu); ((GOMenuColor *)submenu)->selection = current_color; ((GOMenuColor *)submenu)->default_color = default_color; g_object_set_data_full (G_OBJECT (submenu), "title", g_strdup (custom_dialog_title), g_free); gtk_widget_show (submenu); return submenu; }
static GtkMenu * create_menu (StatusNotifierItem *sn, GMainLoop *loop) { GtkMenu *menu; GtkMenu *submenu; GtkWidget *item; guint i; StatusNotifierStatus status; GSList *group = NULL; menu = (GtkMenu *) gtk_menu_new (); submenu = (GtkMenu *) gtk_menu_new (); g_object_get (sn, "status", &status, NULL); i = 0; item = gtk_radio_menu_item_new_with_label (group, "Passive"); group = gtk_radio_menu_item_get_group ((GtkRadioMenuItem *) item); if (status == STATUS_NOTIFIER_STATUS_PASSIVE) gtk_check_menu_item_set_active ((GtkCheckMenuItem *) item, TRUE); g_object_set_data ((GObject *) item, "sn-status", GUINT_TO_POINTER (STATUS_NOTIFIER_STATUS_PASSIVE)); gtk_widget_show (item); gtk_menu_attach (submenu, item, 0, 1, i, i + 1); ++i; item = gtk_radio_menu_item_new_with_label (group, "Active"); group = gtk_radio_menu_item_get_group ((GtkRadioMenuItem *) item); if (status == STATUS_NOTIFIER_STATUS_ACTIVE) gtk_check_menu_item_set_active ((GtkCheckMenuItem *) item, TRUE); g_object_set_data ((GObject *) item, "sn-status", GUINT_TO_POINTER (STATUS_NOTIFIER_STATUS_ACTIVE)); gtk_widget_show (item); gtk_menu_attach (submenu, item, 0, 1, i, i + 1); ++i; item = gtk_radio_menu_item_new_with_label (group, "Needs attention"); group = gtk_radio_menu_item_get_group ((GtkRadioMenuItem *) item); if (status == STATUS_NOTIFIER_STATUS_NEEDS_ATTENTION) gtk_check_menu_item_set_active ((GtkCheckMenuItem *) item, TRUE); g_object_set_data ((GObject *) item, "sn-status", GUINT_TO_POINTER (STATUS_NOTIFIER_STATUS_NEEDS_ATTENTION)); gtk_widget_show (item); gtk_menu_attach (submenu, item, 0, 1, i, i + 1); ++i; g_slist_foreach (group, &set_status_activation_trigger, sn); i = 0; item = gtk_menu_item_new_with_label ("Status"); gtk_menu_item_set_submenu ((GtkMenuItem *) item, (GtkWidget *) submenu); gtk_widget_show (item); gtk_menu_attach (menu, item, 0, 1, i, i + 1); ++i; item = gtk_menu_item_new_with_label ("Exit"); g_signal_connect_swapped (item, "activate", (GCallback) g_main_loop_quit, loop); gtk_widget_show (item); gtk_menu_attach (menu, item, 0, 1, i, i + 1); ++i; return menu; }
int main(int argc, char **argv) { GtkWidget *menubar,*submenu, *application, *about, *license, *department_list, *semester_list, *base, *list, *label_group, *list_group, *go, *align; Department dep; Semester sem; GtkWidget *active[2]; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "GPA Calculator for Anna University"); gtk_window_set_resizable(GTK_WINDOW(window),FALSE); gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER); g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); gtk_widget_show_all(window); menubar = gtk_menu_bar_new(); application = gtk_menu_item_new_with_label("Application"); submenu = gtk_menu_new(); gtk_menu_item_set_submenu(GTK_MENU_ITEM(application),(submenu)); about = gtk_menu_item_new_with_label("About"); g_signal_connect(about, "activate", G_CALLBACK(about_dialog),NULL); license = gtk_menu_item_new_with_label("License"); g_signal_connect(license, "activate", G_CALLBACK(license_dialog),NULL); gtk_menu_attach( GTK_MENU(gtk_menu_item_get_submenu(GTK_MENU_ITEM(application))),about,0,1,0,1); gtk_menu_attach( GTK_MENU(gtk_menu_item_get_submenu(GTK_MENU_ITEM(application))),license,0,1,1,2); gtk_container_add(GTK_CONTAINER(menubar),application); department_list = gtk_combo_box_text_new(); for(dep = CSE; dep<=EI; dep++) gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(department_list), departments[dep]); //make sure its const char* :) gtk_combo_box_set_active(GTK_COMBO_BOX(department_list),0); base = gtk_vbox_new(FALSE,10); semester_list = gtk_hbox_new(FALSE,10); list = gtk_combo_box_text_new(); for (sem = one; sem <=eight; sem++) gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(list), g_strdup_printf("%d",sem+1) ); gtk_combo_box_set_active(GTK_COMBO_BOX(list),0); label_group = gtk_vbox_new(FALSE,0); list_group = gtk_vbox_new(FALSE,0); gtk_box_pack_start(GTK_BOX(label_group), gtk_label_new("Department : "), TRUE, TRUE, 0 ); gtk_box_pack_start(GTK_BOX(label_group), gtk_label_new("Semester : "), TRUE, TRUE, 0 ); gtk_box_pack_start(GTK_BOX(list_group),department_list, TRUE, TRUE, 0 ); gtk_box_pack_start(GTK_BOX(list_group),list, TRUE, TRUE, 0 ); active[0] = department_list; active[1] = list; go = gtk_button_new_with_label("Go"); g_signal_connect(go,"clicked", G_CALLBACK(show_subjects),active ); align = gtk_alignment_new(1,1,0,0); gtk_alignment_set_padding(GTK_ALIGNMENT(align),0,10,0,10); gtk_container_add(GTK_CONTAINER(align), go); gtk_box_pack_start(GTK_BOX(semester_list), gtk_vseparator_new(), FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(semester_list), label_group, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(semester_list), gtk_vseparator_new(), FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(semester_list), list_group, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(semester_list), gtk_vseparator_new(), FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(base), menubar, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(base), gtk_image_new_from_file("logo.png"), FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(base), gtk_hseparator_new(), FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(base), semester_list, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(base), gtk_hseparator_new(), FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(base), align, FALSE, FALSE, 0); gtk_widget_show_all(base); gtk_container_add(GTK_CONTAINER(window), base); gtk_main(); return 0; }
static void setup_photo_popup (UmPhotoDialog *um) { GtkWidget *menu, *menuitem, *image; guint x, y; GDir *dir; const char *face; GError *error; gboolean none_item_shown; menu = gtk_menu_new (); x = 0; y = 0; none_item_shown = FALSE; error = NULL; dir = g_dir_open (DATADIR "/mate-accountsdialog/faces", 0, &error); if (dir == NULL) { g_warning ("Failed to load faces: %s", error->message); g_error_free (error); goto skip_faces; } while ((face = g_dir_read_name (dir)) != NULL) { char *filename; filename = g_build_filename (DATADIR "/mate-accountsdialog/faces", face, NULL); menuitem = menu_item_for_filename (um, filename); g_free (filename); if (menuitem == NULL) continue; gtk_menu_attach (GTK_MENU (menu), GTK_WIDGET (menuitem), x, x + 1, y, y + 1); gtk_widget_show (menuitem); x++; if (x >= ROW_SPAN - 1) { y++; x = 0; } } g_dir_close (dir); image = gtk_image_new_from_icon_name ("avatar-default", GTK_ICON_SIZE_DIALOG); menuitem = gtk_menu_item_new (); gtk_container_add (GTK_CONTAINER (menuitem), image); gtk_widget_show_all (menuitem); gtk_menu_attach (GTK_MENU (menu), GTK_WIDGET (menuitem), x, x + 1, y, y + 1); g_signal_connect (G_OBJECT (menuitem), "activate", G_CALLBACK (none_icon_selected), um); gtk_widget_show (menuitem); none_item_shown = TRUE; y++; skip_faces: if (!none_item_shown) { menuitem = gtk_menu_item_new_with_label (_("Disable image")); gtk_menu_attach (GTK_MENU (menu), GTK_WIDGET (menuitem), 0, ROW_SPAN - 1, y, y + 1); g_signal_connect (G_OBJECT (menuitem), "activate", G_CALLBACK (none_icon_selected), um); gtk_widget_show (menuitem); y++; } /* Separator */ menuitem = gtk_separator_menu_item_new (); gtk_menu_attach (GTK_MENU (menu), GTK_WIDGET (menuitem), 0, ROW_SPAN - 1, y, y + 1); gtk_widget_show (menuitem); y++; #ifdef HAVE_CHEESE um->take_photo_menuitem = gtk_menu_item_new_with_label (_("Take a photo...")); gtk_menu_attach (GTK_MENU (menu), GTK_WIDGET (um->take_photo_menuitem), 0, ROW_SPAN - 1, y, y + 1); g_signal_connect (G_OBJECT (um->take_photo_menuitem), "activate", G_CALLBACK (webcam_icon_selected), um); gtk_widget_set_sensitive (um->take_photo_menuitem, FALSE); gtk_widget_show (um->take_photo_menuitem); um->monitor = cheese_camera_device_monitor_new (); g_signal_connect (G_OBJECT (um->monitor), "added", G_CALLBACK (device_added), um); g_signal_connect (G_OBJECT (um->monitor), "removed", G_CALLBACK (device_removed), um); cheese_camera_device_monitor_coldplug (um->monitor); y++; #endif /* HAVE_CHEESE */ menuitem = gtk_menu_item_new_with_label (_("Browse for more pictures...")); gtk_menu_attach (GTK_MENU (menu), GTK_WIDGET (menuitem), 0, ROW_SPAN - 1, y, y + 1); g_signal_connect (G_OBJECT (menuitem), "activate", G_CALLBACK (file_icon_selected), um); gtk_widget_show (menuitem); um->photo_popup = menu; }