/* This function shows a menu for the user to select which item to launch. */ void show_menu(pqi inst) { menu_iter iter; int i = 0, orient = mate_panel_applet_get_orient(inst->applet); GtkMenu* menu = GTK_MENU(gtk_menu_new()); gboolean reverse; if (inst->clicked && inst->items) { reverse = (orient == MATE_PANEL_APPLET_ORIENT_UP); for (reverse? menu_iterate_rbegin(inst,&iter,inst->show_primary):menu_iterate_begin(inst,&iter,inst->show_primary); iter.valid; menu_iter_next(&iter)) { GtkWidget *mi = gtk_image_menu_item_new(), *lbl = gtk_label_new(iter.text), *icon = gtk_image_new_from_gicon(iter.icon, GTK_ICON_SIZE_DND); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), icon); gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(mi), TRUE); gtk_label_set_justify(GTK_LABEL(lbl),GTK_JUSTIFY_LEFT); gtk_misc_set_alignment(GTK_MISC(lbl),0,0.5); gtk_container_add(GTK_CONTAINER(mi),lbl); gtk_widget_show_all(mi); gtk_menu_insert(menu,mi,i++); g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(menu_launch), iter.si); } gtk_menu_attach_to_widget(menu,inst->box,NULL); gtk_menu_popup(menu,NULL,NULL,set_to_corner, inst, 1, 0); } inst->clicked = FALSE; }
static void right_click_popup(GtkTextView *text_view, GtkMenu *menu, PidginConversation *gtkconv) { GtkWidget *menu_entry = gtk_menu_item_new_with_label("Paste & Send"); gtk_widget_set_tooltip_text(menu_entry, "Pastes the current clipboard text and presses \"send\"."); gtk_menu_insert(GTK_MENU(menu), menu_entry, 1); g_signal_connect(G_OBJECT(menu_entry), "activate", G_CALLBACK(paste_and_send), gtkconv); gtk_widget_show(menu_entry); }
void EvalCcRqINSERTSEPARATOR (CrossCallInfo *pcci) /* hmenu, pos no result. */ { GtkWidget *menu, *menu_item; printf("EvalCcRqINSERTSEPARATOR\n"); menu = GTK_WIDGET(pcci->p1); menu_item = gtk_menu_item_new(); gtk_menu_insert(GTK_MENU(menu), menu_item, (gint) pcci->p2); gtk_widget_show_all(menu_item); MakeReturn1Cci (pcci, (int64_t) menu_item); }
/* Insert a menu into the menu bar. */ void EvalCcRqINSERTMENU (CrossCallInfo *pcci) { gint i; gchar *title; GtkWidget *parent_menu, *root_menu, *sub_menu; GtkAccelGroup *accel_group; printf("EvalCcRqINSERTMENU\n"); title = createMnemonicString((gchar *) pcci->p3); parent_menu = GTK_WIDGET(pcci->p2); sub_menu = GTK_WIDGET(pcci->p4); if (GTK_IS_MENU_BAR(parent_menu)) { printf("Adding to a menu bar.\n"); GtkWidget *frame = gtk_widget_get_parent(gtk_widget_get_parent(parent_menu)); if (!G_IS_OBJECT(frame)) frame = gtk_widget_get_parent(parent_menu); accel_group = ((GtkAccelGroup*)gtk_accel_groups_from_object (G_OBJECT(frame))->data); } else { printf("We're not adding to a menu bar!?!\n"); accel_group = gtk_menu_get_accel_group (GTK_MENU(parent_menu)); } gtk_menu_set_accel_group (GTK_MENU(sub_menu), accel_group); root_menu = gtk_menu_item_new_with_mnemonic(title); gtk_widget_set_sensitive(root_menu, (gboolean) pcci->p1); gtk_widget_show (root_menu); gtk_menu_item_set_submenu (GTK_MENU_ITEM (root_menu), sub_menu); if (GTK_IS_MENU_BAR(parent_menu)) { gtk_menu_shell_insert(GTK_MENU_SHELL(parent_menu), root_menu, (gint) pcci->p5); } else { gtk_menu_insert(GTK_MENU(parent_menu), root_menu, (gint) pcci->p5); } rfree(title); MakeReturn1Cci (pcci, (int64_t) sub_menu); }
int clip_GTK_MENUINSERT(ClipMachine * ClipMachineMemory) { C_widget *cmnu = _fetch_cw_arg(ClipMachineMemory); C_widget *cwid = _fetch_cwidget(ClipMachineMemory, _clip_spar(ClipMachineMemory, 2)); int position = _clip_parni(ClipMachineMemory, 3); CHECKCWID(cmnu, GTK_IS_MENU); CHECKARG2(2, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType); CHECKCWID(cwid, GTK_IS_WIDGET); CHECKOPT(3, NUMERIC_type_of_ClipVarType); gtk_menu_insert(GTK_MENU(cmnu->widget), cwid->widget, position); return 0; err: return 1; }
int wxChoice::GtkAddHelper(GtkWidget *menu, unsigned int pos, const wxString& item) { wxCHECK_MSG(pos<=m_clientList.GetCount(), -1, wxT("invalid index")); GtkWidget *menu_item = gtk_menu_item_new_with_label( wxGTK_CONV( item ) ); size_t index; if ( m_strings ) { // sorted control, need to insert at the correct index index = m_strings->Add(item); gtk_menu_insert( GTK_MENU(menu), menu_item, index ); if ( index ) { m_clientList.Insert( m_clientList.Item(index - 1), NULL ); } else { m_clientList.Insert( NULL ); } } else { // don't call wxChoice::GetCount() from here because it doesn't work // if we're called from ctor (and GtkMenuShell is still NULL) // normal control, just append if (pos == m_clientList.GetCount()) { gtk_menu_append( GTK_MENU(menu), menu_item ); m_clientList.Append( NULL ); index = m_clientList.GetCount() - 1; } else { gtk_menu_insert( GTK_MENU(menu), menu_item, pos ); m_clientList.Insert( pos, NULL ); index = pos; } } if (GTK_WIDGET_REALIZED(m_widget)) { gtk_widget_realize( menu_item ); gtk_widget_realize( GTK_BIN(menu_item)->child ); ApplyWidgetStyle(); } // The best size of a wxChoice should probably // be changed everytime the control has been // changed, but at least after adding an item // it has to change. Adapted from Matt Ownby. InvalidateBestSize(); gtk_signal_connect_after( GTK_OBJECT( menu_item ), "activate", GTK_SIGNAL_FUNC(gtk_choice_clicked_callback), (gpointer*)this ); gtk_widget_show( menu_item ); // return the index of the item in the control return index; }
void plugin_init(GeanyData * data) { GKeyFile *kf = g_key_file_new(); GError *err = NULL; gchar *glob_file; gchar *user_file; gchar *old_config_dir; main_locale_init(LOCALEDIR, GETTEXT_PACKAGE); gdbui_setup.main_window = geany->main_widgets->window; gdbio_setup.temp_dir = g_build_filename(geany->app->configdir, "plugins", UNIX_NAME, NULL); old_config_dir = g_build_filename(geany->app->configdir, "plugins", UNIX_NAME_OLD, NULL); if (g_file_test(old_config_dir, G_FILE_TEST_IS_DIR) && !g_file_test(gdbio_setup.temp_dir, G_FILE_TEST_EXISTS)) g_rename(old_config_dir, gdbio_setup.temp_dir); /* * the tty helper binary is either in the user's config dir or globally * installed in $LIBDIR/geany/ */ glob_file = g_build_filename(TTYHELPERDIR, "ttyhelper", NULL); user_file = g_build_filename(geany->app->configdir, "plugins", UNIX_NAME, "ttyhelper", NULL); gdbio_setup.tty_helper = NULL; if (utils_mkdir(gdbio_setup.temp_dir, TRUE) != 0) { dialogs_show_msgbox(GTK_MESSAGE_ERROR, _("Plugin configuration directory (%s) could not be created."), gdbio_setup.temp_dir); } /* the global ttyhelper has higher priority */ if (!g_file_test(glob_file, G_FILE_TEST_IS_REGULAR)) { if (g_file_test(user_file, G_FILE_TEST_IS_REGULAR) && g_file_test(user_file, G_FILE_TEST_IS_EXECUTABLE)) { gdbio_setup.tty_helper = g_strdup(user_file); } } else if (g_file_test(glob_file, G_FILE_TEST_IS_EXECUTABLE)) gdbio_setup.tty_helper = g_strdup(glob_file); if (NULL == gdbio_setup.tty_helper) dialogs_show_msgbox(GTK_MESSAGE_ERROR, _("geanygdb: ttyhelper program not found.")); config_file = g_build_filename(gdbio_setup.temp_dir,"debugger.cfg", NULL); gdbui_opts_init(); if (g_key_file_load_from_file(kf, config_file, G_KEY_FILE_NONE, NULL)) { GET_KEY_STR(mono_font); GET_KEY_STR(term_cmd); GET_KEY_BOOL(show_tooltips); GET_KEY_BOOL(show_icons); } g_key_file_free(kf); gdbui_setup.warn_func = warn_message_cb; gdbui_setup.info_func = info_message_cb; gdbui_setup.opts_func = update_settings_cb; gdbui_setup.location_query = location_query_cb; gdbui_setup.line_func = goto_file_line_cb; g_free(old_config_dir); g_free(glob_file); g_free(user_file); msgbook = GTK_NOTEBOOK(ui_lookup_widget(geany->main_widgets->window, "notebook_info")); compwin = gtk_widget_get_parent(ui_lookup_widget(geany->main_widgets->window, "treeview5")); frame = gtk_frame_new(NULL); gtk_notebook_append_page(GTK_NOTEBOOK(geany->main_widgets->sidebar_notebook), frame, gtk_label_new("Debug")); menudbg = gtk_menu_item_new_with_mnemonic (_("Debu_g")); gtk_widget_show (menudbg); gtk_menu_insert ( GTK_CONTAINER ( ui_lookup_widget(geany->main_widgets->window, "menubar1")) , menudbg, 7); btmframe = gtk_frame_new(NULL); gtk_widget_show_all(btmframe); gtk_notebook_append_page( GTK_NOTEBOOK(ui_lookup_widget(geany->main_widgets->window, "notebook_info")), btmframe, gtk_label_new(_("Debug"))); gdbui_create_menu(menudbg); gdbui_create_widgets(frame); gtk_widget_show_all(frame); }