void _HYModelWindow::_SetMenuBar(void) { if (menu_items && !gtk_item_factory_get_item(menu_items,"<HY_WINDOW>/Model")) { gtk_item_factory_delete_item (menu_items, "<HY_WINDOW>/File/Save"); gtk_item_factory_create_items (menu_items, sizeof (hyphy_parameter_model_window_menu) / sizeof (hyphy_parameter_model_window_menu[0]), hyphy_parameter_model_window_menu, this); GtkMenu * fileMenu = GTK_MENU (gtk_item_factory_get_widget (menu_items, "<HY_WINDOW>/File")); gtk_menu_reorder_child (fileMenu, gtk_item_factory_get_item (menu_items, "<HY_WINDOW>/File/Save"), 0); for (long k=0; k<rateOptions.lLength; k++) { _String *thisItem = (_String*)rateOptions (k), chopped, type = "<CheckItem>"; GtkItemFactoryEntry aProcEntry = {NULL,NULL,(GtkItemFactoryCallback)hyphy_menu_item_callback,HY_MDL_WIN32_MENU_BASE+100+k,type.sData}; chopped = _String("/Model/Rate variation/")&*thisItem; aProcEntry.path = chopped.sData; gtk_item_factory_create_items (menu_items, 1, &aProcEntry, this); } gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_widget_by_action(menu_items,HY_MDL_WIN32_MENU_BASE+100+rateChoice)), true); gtk_widget_set_sensitive(gtk_item_factory_get_widget (menu_items,"<HY_WINDOW>/Edit/Copy"), true); gtk_widget_set_sensitive(gtk_item_factory_get_widget (menu_items,"<HY_WINDOW>/Edit/Select All"), true); } }
static gint cb_thumbview_button_press (GtkWidget * widget, GdkEventButton * event, ThumbView * tv) { if (ZALBUM (tv->album)->len == 0 || ZLIST (tv->album)->focus < 0) return FALSE; gtk_widget_grab_focus (GTK_WIDGET (tv->album)); if (event->type == GDK_BUTTON_PRESS && event->button == 3) { gint type; guint n_menu_items; GtkWidget *popup_menu, *progs_submenu, *scripts_submenu; GtkWidget *menuitem; GtkItemFactory *ifactory; /* * create popup menu */ n_menu_items = sizeof (thumbview_popupmenu_items) / sizeof (thumbview_popupmenu_items[0]) - 1; popup_menu = menu_create_items (BROWSER_WINDOW, thumbview_popupmenu_items, n_menu_items, "<ThumbnailButtonPop>", tv); ifactory = gtk_item_factory_from_widget (popup_menu); type = (gint) zalbum_get_cell_data (ZALBUM (tv->album), tv->current); thumbview_update_popupmenu (type, ifactory); menuitem = gtk_item_factory_get_item (ifactory, "/Open in External Program"); progs_submenu = create_progs_submenu (tv); menu_set_submenu (popup_menu, "/Open in External Program", progs_submenu); menuitem = gtk_item_factory_get_item (ifactory, "/Scripts"); scripts_submenu = create_scripts_submenu (tv); menu_set_submenu (popup_menu, "/Scripts", scripts_submenu); gtk_menu_popup (GTK_MENU (popup_menu), NULL, NULL, NULL, NULL, event->button, event->time); #ifdef USE_GTK2 gtk_object_ref (GTK_OBJECT (popup_menu)); gtk_object_sink (GTK_OBJECT (popup_menu)); #endif gtk_widget_unref (popup_menu); return TRUE; } tv->current = ZLIST (tv->album)->focus; return FALSE; }
static void cb_dock_clicked (GtkWidget * widget, GdkEventButton * event, gpointer data) { if (event == NULL) return; if ((event->button == 1) && (event->type == GDK_BUTTON_PRESS)) dock_toggle_callback (NULL, NULL); else if (event->type == GDK_BUTTON_PRESS && event->button == 3) { if (GTK_WIDGET_VISIBLE (GTK_WIDGET (BROWSER_WINDOW))) { gtk_widget_set_sensitive (gtk_item_factory_get_item (popup_item_factory, "/Show Main Window"), FALSE); gtk_widget_set_sensitive (gtk_item_factory_get_item (popup_item_factory, "/Hide Main Window"), TRUE); } else { gtk_widget_set_sensitive (gtk_item_factory_get_item (popup_item_factory, "/Show Main Window"), TRUE); gtk_widget_set_sensitive (gtk_item_factory_get_item (popup_item_factory, "/Hide Main Window"), FALSE); } gtk_menu_popup (GTK_MENU (popup_menu), NULL, NULL, NULL, NULL, event->button, event->time); } }
void save_config_file(void) //not called in gint main { FILE *fp; gchar *path; GtkItemFactory *ifactory; //GtkItemFactory ?? gint width, height; gchar *fontname; gboolean wordwrap, linenumbers, autoindent; gtk_window_get_size(GTK_WINDOW(pub->mw->window), &width, &height); fontname = get_font_name_from_widget(pub->mw->view); ifactory = gtk_item_factory_from_widget(pub->mw->menubar); wordwrap = gtk_check_menu_item_get_active( GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(ifactory, "/Options/Word Wrap"))); linenumbers = gtk_check_menu_item_get_active( GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(ifactory, "/Options/Line Numbers"))); autoindent = gtk_check_menu_item_get_active( GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(ifactory, "/Options/Auto Indent"))); //saves the variables for conf file #if GLIB_CHECK_VERSION(2, 6, 0) path = g_build_filename(g_get_user_config_dir(), PACKAGE, NULL); //fetches the address for conf and makes a dir for first if (!g_file_test(path, G_FILE_TEST_IS_DIR)) { //use if not present # if GLIB_CHECK_VERSION(2, 8, 0) g_mkdir_with_parents(path, 0700); # else g_mkdir(g_get_user_config_dir(), 0700); g_mkdir(path, 0700); # endif } g_free(path); path = g_build_filename(g_get_user_config_dir(), PACKAGE, PACKAGE "rc", NULL); #else path = g_build_filename(g_get_home_dir(), "." PACKAGE, NULL); #endif fp = fopen(path, "w"); if (!fp) { g_print("%s: can't save config file - %s\n", PACKAGE, path); return; } g_free(path); fprintf(fp, "%s\n", PACKAGE_VERSION); fprintf(fp, "%d\n", width); fprintf(fp, "%d\n", height); fprintf(fp, "%s\n", fontname); fprintf(fp, "%d\n", wordwrap); fprintf(fp, "%d\n", linenumbers); fprintf(fp, "%d\n", autoindent); fclose(fp); g_free(fontname); }
void _HYConsoleWindow::_SetMenuBar(void) { if (menu_items && !gtk_item_factory_get_item(menu_items,"<HY_WINDOW>/Analysis")) { gtk_item_factory_delete_item (menu_items, "<HY_WINDOW>/File/Open"); gtk_item_factory_delete_item (menu_items, "<HY_WINDOW>/File/Close"); gtk_item_factory_delete_item (menu_items, "<HY_WINDOW>/File/Switch to console"); gtk_item_factory_create_items (menu_items, sizeof (hyphy_console_window_menu_file) / sizeof (hyphy_console_window_menu_file[0]), hyphy_console_window_menu_file, this); GtkMenu * fileMenu = GTK_MENU (gtk_item_factory_get_widget (menu_items, "<HY_WINDOW>/File")); gtk_menu_reorder_child (fileMenu, gtk_item_factory_get_item (menu_items, "<HY_WINDOW>/File/New"), 0); gtk_menu_reorder_child (fileMenu, gtk_item_factory_get_item (menu_items, "<HY_WINDOW>/File/Open"), 1); gtk_menu_reorder_child (fileMenu, gtk_item_factory_get_item (menu_items, "<HY_WINDOW>/File/sep1"), 2); gtk_widget_set_sensitive(gtk_item_factory_get_widget (menu_items,"<HY_WINDOW>/Edit/Clear"), true); gtk_widget_set_sensitive(gtk_item_factory_get_widget (menu_items,"<HY_WINDOW>/Edit/Select All"), true); gtk_widget_set_sensitive(gtk_item_factory_get_widget_by_action(menu_items,21), false); gtk_widget_set_sensitive(gtk_item_factory_get_widget_by_action(menu_items,22), false); gtk_widget_set_sensitive(gtk_item_factory_get_item (menu_items,"<HY_WINDOW>/Analysis/Results"), false); gtk_widget_set_sensitive(gtk_item_factory_get_widget_by_action(menu_items,30), false); for (long counter=0; counter<availablePostProcessors.countitems(); counter++) { _String * postItem = (_String*)(*(_List*)availablePostProcessors(counter))(0); if (!postItem->Equal (&menuSeparator)) { postItem = (_String*)(*(_List*)availablePostProcessors(counter))(1); _String tryFileName (*postItem); FILE * tryFile = doFileOpen (tryFileName.getStr(), "r"); if (tryFile) { fclose(tryFile); } else { availablePostProcessors.Delete(counter); counter--; } } } if (availablePostProcessors.lLength) { long sepCount = 0; for (long counter=0; counter<availablePostProcessors.countitems(); counter++) { _String * postItem = (_String*)(*(_List*)availablePostProcessors(counter))(0), chopped = _String("/Analysis/Results/")&*postItem; if (postItem->Equal (&menuSeparator)) { GtkItemFactoryEntry aProcEntry = {NULL,NULL,NULL,0,"<Separator>"}; chopped = chopped & sepCount++; aProcEntry.path = chopped.sData; gtk_item_factory_create_items (menu_items, 1, &aProcEntry, this); } else { GtkItemFactoryEntry aProcEntry = {NULL,NULL,hyphy_menu_item_callback,1000+counter,"<Item>"}; aProcEntry.path = chopped.sData; gtk_item_factory_create_items (menu_items, 1, &aProcEntry, this); } } } } }
static void messageview_set_encoding_menu(MessageView *messageview) { GtkItemFactoryEntry *entry; GtkItemFactory *ifactory; CharSet encoding; gchar *path, *p, *q; GtkWidget *item; encoding = conv_get_charset_from_str(prefs_common.force_charset); ifactory = gtk_item_factory_from_widget(messageview->menubar); for (entry = msgview_entries; entry->callback != view_source_cb; entry++) { if (entry->callback == set_charset_cb && (CharSet)entry->callback_action == encoding) { p = q = path = g_strdup(entry->path); while (*p) { if (*p == '_') { if (p[1] == '_') { p++; *q++ = '_'; } } else *q++ = *p; p++; } *q = '\0'; item = gtk_item_factory_get_item(ifactory, path); gtk_widget_activate(item); g_free(path); break; } } }
void save_config_file(void) { FILE *fp; gchar *path; gint width, height; gchar *fontname; gboolean wordwrap, linenumbers, autoindent; gtk_window_get_size(GTK_WINDOW(pub->mw->window), &width, &height); fontname = pango_font_description_to_string(gtk_style_context_get_font(gtk_widget_get_style_context(pub->mw->view), 0)); wordwrap = gtk_check_menu_item_get_active( GTK_TOGGLE_ACTION(gtk_item_factory_get_item(pub->mw->menubar, "/M/Options/WordWrap"))); linenumbers = gtk_check_menu_item_get_active( GTK_TOGGLE_ACTION(gtk_item_factory_get_item(pub->mw->menubar, "/M/Options/LineNumbers"))); autoindent = gtk_check_menu_item_get_active( GTK_TOGGLE_ACTION(gtk_item_factory_get_item(pub->mw->menubar, "/M/Options/AutoIndent"))); path = g_build_filename(g_get_user_config_dir(), PACKAGE, NULL); if (!g_file_test(path, G_FILE_TEST_IS_DIR)) g_mkdir_with_parents(path, 0700); g_free(path); path = g_build_filename(g_get_user_config_dir(), PACKAGE, PACKAGE "rc", NULL); fp = fopen(path, "w"); if (!fp) { g_print("%s: can't save config file - %s\n", PACKAGE, path); return; } g_free(path); fprintf(fp, "%s\n", PACKAGE_VERSION); fprintf(fp, "%d\n", width); fprintf(fp, "%d\n", height); fprintf(fp, "%s\n", fontname); fprintf(fp, "%d\n", wordwrap); fprintf(fp, "%d\n", linenumbers); fprintf(fp, "%d\n", autoindent); fclose(fp); g_free(fontname); }
void menu_item_set_sensitive (GtkWidget *widget, gchar *path, gboolean sensitive) { GtkWidget *menuitem; GtkItemFactory *ifactory; ifactory = gtk_item_factory_from_widget (widget); menuitem = gtk_item_factory_get_item (ifactory, path); gtk_widget_set_sensitive (menuitem, sensitive); }
/* * menu_set_check_item: * @ Set check menu item's value (TRUE or FALSE). * * widget : Menu widget that contains check menu item. * path : Menu path to check menu item. * active : Value for set. */ void menu_check_item_set_active (GtkWidget *widget, gchar *path, gboolean active) { GtkWidget *menuitem; GtkItemFactory *ifactory; ifactory = gtk_item_factory_from_widget (widget); menuitem = gtk_item_factory_get_item (ifactory, path); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(menuitem), active); }
/* * menu_set_check_item: * @ Set check menu item's value (TRUE or FALSE). * * widget : Menu widget that contains check menu item. * path : Menu path to check menu item. * active : Value for set. */ gboolean menu_check_item_get_active (GtkWidget *widget, gchar *path) { GtkWidget *menuitem; GtkItemFactory *ifactory; ifactory = gtk_item_factory_from_widget (widget); menuitem = gtk_item_factory_get_item (ifactory, path); return GTK_CHECK_MENU_ITEM(menuitem)->active; }
/* * menu_remove_submenu: * @ Set sub menu. * * widget : Menu widget to set sub menu. * path : Menu path to check menu item. * submenu : Submenu widget. */ void menu_remove_submenu (GtkWidget *widget, const gchar *path, GtkWidget *submenu) { GtkWidget *menuitem; GtkItemFactory *ifactory; ifactory = gtk_item_factory_from_widget (widget); menuitem = gtk_item_factory_get_item (ifactory, path); gtk_menu_item_remove_submenu (GTK_MENU_ITEM (menuitem)); }
static VALUE ifact_get_item(VALUE self, VALUE path) { VALUE obj = Qnil; GtkWidget* widget = gtk_item_factory_get_item(_SELF(self), RVAL2CSTR(path)); if (widget){ obj = GOBJ2RVAL(widget); G_RELATIVE(obj, self); } return obj; }
GtkWidget * menu_get_submenu (GtkWidget *widget, const gchar *path) { GtkWidget *menuitem; GtkItemFactory *ifactory; ifactory = gtk_item_factory_from_widget (widget); menuitem = gtk_item_factory_get_item (ifactory, path); g_return_val_if_fail (menuitem, NULL); return GTK_MENU_ITEM(menuitem)->submenu; }
static void thumbview_update_popupmenu (gint file_type, GtkItemFactory * ifactory) { if (file_type == FILETYPE_VIDEO) { #ifdef ENABLE_MOVIE gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie"), TRUE); thumbview_update_popupmenu_movie (ifactory); #endif #ifdef ENABLE_EXIF gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Scan EXIF Data"), FALSE); #endif gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Zoom"), FALSE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Rotate"), FALSE); } else { ZAlbumCell *cell; cell = ZLIST_CELL_FROM_INDEX (ZLIST (thumbview->album), thumbview->current); #ifdef ENABLE_MOVIE gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie"), FALSE); #endif #ifdef ENABLE_EXIF if (file_type_is_jpeg (cell->name)) gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Scan EXIF Data"), TRUE); else gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Scan EXIF Data"), FALSE); #endif gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Rotate"), TRUE); thumbview_update_popupmenu_zoom (ifactory); } }
static void thumbview_update_popupmenu_zoom (GtkItemFactory * ifactory) { gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Zoom/Zoom In"), TRUE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Zoom/Zoom Out"), TRUE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Zoom/Fit to Window"), (imageview->zoom != IMAGEVIEW_ZOOM_FIT) ? TRUE : FALSE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Zoom/Original Size"), (imageview->zoom != IMAGEVIEW_ZOOM_100) ? TRUE : FALSE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Zoom/Auto Zoom"), (imageview->zoom != IMAGEVIEW_ZOOM_AUTO) ? TRUE : FALSE); }
/** Clear the menu * * @param void * @return void */ static void ph_menu_reset(void) { GtkWidget *menu_item = NULL; GList *menu_entries = NULL; GList *menu_entry = NULL; if(!g_ph_menu_factory) return; menu_item = gtk_item_factory_get_widget(g_ph_menu_factory, PH_MENU_TOP); menu_entries = gtk_container_get_children(GTK_CONTAINER(menu_item)); for(menu_entry = g_list_first(menu_entries); menu_entry != NULL; menu_entry = g_list_next(menu_entry)) { gtk_container_remove(GTK_CONTAINER(menu_item), menu_entry->data); } menu_item = gtk_item_factory_get_item(g_ph_menu_factory, PH_MENU_TOP); gtk_widget_set_sensitive(menu_item, FALSE); }
/****************************************************************************** * gtk_ItemFactoryGetItem( itemFactory, spath ) --> widget ******************************************************************************/ int clip_GTK_ITEMFACTORYGETITEM(ClipMachine * cm) { C_object *citem = _fetch_co_arg(cm); const gchar *path = _clip_parc(cm, 2); GtkWidget *wid ; C_widget *cwid ; CHECKARG(1, MAP_t); CHECKCOBJ(citem, GTK_IS_ITEM_FACTORY(citem->object)); CHECKARG(2, CHARACTER_t); wid = gtk_item_factory_get_item(GTK_ITEM_FACTORY(citem->object), path); if (!wid) goto err; cwid = _register_widget(cm, wid, NULL); _clip_mclone(cm,RETPTR(cm),&cwid->obj); return 0; err: return 1; }
//________________________________________________________ void ToggleAnalysisMenu (bool running) { if (hyphyConsoleWindow) //if (running) { gtk_widget_set_sensitive(gtk_item_factory_get_item_by_action(hyphyConsoleWindow->menu_items, 21), running); gtk_widget_set_sensitive(gtk_item_factory_get_item_by_action(hyphyConsoleWindow->menu_items, 22), running); //gtk_widget_set_sensitive(gtk_item_factory_get_item_by_action(hyphyConsoleWindow->menu_items, 23), false); gtk_widget_set_sensitive(gtk_item_factory_get_item_by_action(hyphyConsoleWindow->menu_items, 24), !running); gtk_widget_set_sensitive(gtk_item_factory_get_item(hyphyConsoleWindow->menu_items, "<HY_WINDOW>/Analysis/Results"), !running); gtk_widget_set_sensitive(gtk_item_factory_get_item_by_action(hyphyConsoleWindow->menu_items, 30), !running); } /*else { gtk_widget_set_sensitive(gtk_item_factory_get_item_by_action(hyphyConsoleWindow->menu_items, 21), false); gtk_widget_set_sensitive(gtk_item_factory_get_item_by_action(hyphyConsoleWindow->menu_items, 22), false); //gtk_widget_set_sensitive(gtk_item_factory_get_item_by_action(hyphyConsoleWindow->menu_items, 23), true); gtk_widget_set_sensitive(gtk_item_factory_get_item_by_action(hyphyConsoleWindow->menu_items, 24), true); gtk_widget_set_sensitive(gtk_item_factory_get_item(hyphyConsoleWindow->menu_items, "<HY_WINDOW>/Analysis/Results"), true); gtk_widget_set_sensitive(gtk_item_factory_get_item_by_action(hyphyConsoleWindow->menu_items, 30), true); //SetStatusBarValue (-1,1,0); //SetStatusLine ("Idle"); }*/ }
/***************************************************************************** * create_menubar() *****************************************************************************/ void create_menubar(GtkWidget *main_window, GtkWidget *box) { GtkAccelGroup *accel_group; GtkItemFactory *item_factory; #ifdef CUSTOM_FONTS_IN_MENUS GtkWidget *widget; #endif int mem_mode = setting_bank_mem_mode; /* create item factory with associated accel group */ accel_group = gtk_accel_group_new(); item_factory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<main>", accel_group); /* build menubar and menus with the item factory */ gtk_item_factory_create_items(item_factory, nmenu_items, menu_items, NULL); /* handle check and radio items */ /* fullscreen checkbox */ menu_item_fullscreen = GTK_CHECK_MENU_ITEM (gtk_item_factory_get_item(item_factory, "/View/FullScreen")); gtk_check_menu_item_set_active(menu_item_fullscreen, setting_fullscreen); /* window layout radio group */ menu_item_notebook = GTK_CHECK_MENU_ITEM (gtk_item_factory_get_item(item_factory, "/View/Notebook")); menu_item_one_page = GTK_CHECK_MENU_ITEM (gtk_item_factory_get_item(item_factory, "/View/One Page")); menu_item_widescreen = GTK_CHECK_MENU_ITEM (gtk_item_factory_get_item(item_factory, "/View/WideScreen")); switch (setting_window_layout) { case LAYOUT_NOTEBOOK: if (!gtk_check_menu_item_get_active(menu_item_notebook)) { gtk_check_menu_item_set_active(menu_item_notebook, TRUE); } break; case LAYOUT_ONE_PAGE: if (!gtk_check_menu_item_get_active(menu_item_one_page)) { gtk_check_menu_item_set_active(menu_item_one_page, TRUE); } break; case LAYOUT_WIDESCREEN: if (!gtk_check_menu_item_get_active(menu_item_widescreen)) { gtk_check_menu_item_set_active(menu_item_widescreen, TRUE); } break; } /* jack manual/auto radio group */ menu_item_autoconnect = GTK_CHECK_MENU_ITEM (gtk_item_factory_get_item(item_factory, "/JACK/Autoconnect")); menu_item_manualconnect = GTK_CHECK_MENU_ITEM (gtk_item_factory_get_item(item_factory, "/JACK/Manual Connect")); if (setting_jack_autoconnect) { if (!gtk_check_menu_item_get_active(menu_item_autoconnect)) { gtk_check_menu_item_set_active(menu_item_autoconnect, TRUE); } } else { if (!gtk_check_menu_item_get_active(menu_item_manualconnect)) { gtk_check_menu_item_set_active(menu_item_manualconnect, TRUE); } } /* jack stereo/multi radio group */ menu_item_stereo_out = GTK_CHECK_MENU_ITEM (gtk_item_factory_get_item(item_factory, "/JACK/Stereo Output")); menu_item_multi_out = GTK_CHECK_MENU_ITEM (gtk_item_factory_get_item(item_factory, "/JACK/Multi-Part Output")); if (setting_jack_multi_out) { if (!gtk_check_menu_item_get_active(menu_item_multi_out)) { gtk_check_menu_item_set_active(menu_item_multi_out, TRUE); } } else { if (!gtk_check_menu_item_get_active(menu_item_stereo_out)) { gtk_check_menu_item_set_active(menu_item_stereo_out, TRUE); } } /* midi channel radio group */ #if MAX_PARTS > 1 menu_item_part[0] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/1")); menu_item_part[1] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/2")); #endif #if MAX_PARTS > 2 menu_item_part[2] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/3")); #endif #if MAX_PARTS > 3 menu_item_part[3] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/4")); #endif #if MAX_PARTS > 4 menu_item_part[4] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/5")); #endif #if MAX_PARTS > 5 menu_item_part[5] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/6")); #endif #if MAX_PARTS > 6 menu_item_part[6] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/7")); #endif #if MAX_PARTS > 7 menu_item_part[7] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/8")); #endif #if MAX_PARTS > 8 menu_item_part[8] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/9")); #endif #if MAX_PARTS > 9 menu_item_part[9] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/10")); #endif #if MAX_PARTS > 10 menu_item_part[10] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/11")); #endif #if MAX_PARTS > 11 menu_item_part[11] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/12")); #endif #if MAX_PARTS > 12 menu_item_part[12] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/13")); #endif #if MAX_PARTS > 13 menu_item_part[13] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/14")); #endif #if MAX_PARTS > 14 menu_item_part[14] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/15")); #endif #if MAX_PARTS > 15 menu_item_part[15] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/16")); #endif #if MAX_PARTS > 1 if (visible_part_num <= 16) { gtk_check_menu_item_set_active(menu_item_part[visible_part_num], TRUE); } #endif /* Bank memory mode radio group */ bank_mem_menu_item[BANK_MEM_AUTOSAVE] = menu_item_autosave = GTK_CHECK_MENU_ITEM (gtk_item_factory_get_item(item_factory, "/Patch/Bank Memory Autosave")); bank_mem_menu_item[BANK_MEM_WARN] = menu_item_warn = GTK_CHECK_MENU_ITEM (gtk_item_factory_get_item(item_factory, "/Patch/Bank Memory Warn")); bank_mem_menu_item[BANK_MEM_PROTECT] = menu_item_protect = GTK_CHECK_MENU_ITEM (gtk_item_factory_get_item(item_factory, "/Patch/Bank Memory Protect")); switch (mem_mode) { case BANK_MEM_AUTOSAVE: gtk_check_menu_item_set_active(menu_item_autosave, TRUE); break; case BANK_MEM_PROTECT: gtk_check_menu_item_set_active(menu_item_protect, TRUE); break; case BANK_MEM_WARN: gtk_check_menu_item_set_active(menu_item_warn, TRUE); break; } /* ALSA Menu */ alsa_menu_item = GTK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/ALSA")); alsa_pcm_hw_menu_item = GTK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/ALSA/ALSA PCM HW")); alsa_seq_hw_menu_item = GTK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/ALSA/ALSA Seq HW")); alsa_seq_sw_menu_item = GTK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/ALSA/ALSA Seq SW")); alsa_rawmidi_menu_item = GTK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/ALSA/ALSA Raw MIDI")); widget_set_custom_font(GTK_WIDGET(alsa_menu_item), phasex_font_desc); widget_set_custom_font(GTK_WIDGET(alsa_pcm_hw_menu_item), phasex_font_desc); widget_set_custom_font(GTK_WIDGET(alsa_seq_hw_menu_item), phasex_font_desc); widget_set_custom_font(GTK_WIDGET(alsa_seq_sw_menu_item), phasex_font_desc); widget_set_custom_font(GTK_WIDGET(alsa_rawmidi_menu_item), phasex_font_desc); if ((setting_midi_driver == MIDI_DRIVER_ALSA_SEQ) || (setting_midi_driver == MIDI_DRIVER_RAW_ALSA) || (setting_audio_driver == AUDIO_DRIVER_ALSA_PCM)) { gtk_widget_set_sensitive(GTK_WIDGET(alsa_menu_item), TRUE); } else { gtk_widget_set_sensitive(GTK_WIDGET(alsa_menu_item), FALSE); } /* Connect handler to build ALSA submenus */ g_signal_connect(G_OBJECT(alsa_menu_item), "activate", GTK_SIGNAL_FUNC(on_alsa_menu_activate), (gpointer) 0); /* JACK Menu */ jack_menu_item = GTK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/JACK")); jack_midi_menu_item = GTK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/JACK/MIDI")); widget_set_custom_font(GTK_WIDGET(jack_menu_item), phasex_font_desc); widget_set_custom_font(GTK_WIDGET(jack_midi_menu_item), phasex_font_desc); if (setting_audio_driver == AUDIO_DRIVER_JACK) { gtk_widget_set_sensitive(GTK_WIDGET(jack_menu_item), TRUE); } else { gtk_widget_set_sensitive(GTK_WIDGET(jack_menu_item), FALSE); } /* Connect handler to build JACK submenus */ g_signal_connect(G_OBJECT(jack_menu_item), "activate", GTK_SIGNAL_FUNC(on_jack_menu_activate), (gpointer) 0); /* attach menubar's accel group to main window */ gtk_window_add_accel_group(GTK_WINDOW(main_window), accel_group); /* add the menubar to the box passed in to this function */ main_menubar = gtk_item_factory_get_widget(item_factory, "<main>"); widget_set_custom_font(main_menubar, phasex_font_desc); widget_set_backing_store(main_menubar); gtk_box_pack_start(GTK_BOX(box), main_menubar, FALSE, FALSE, 0); #ifdef CUSTOM_FONTS_IN_MENUS /* add custom fonts to the menus */ widget = gtk_item_factory_get_widget(item_factory, "/File"); widget_set_custom_font(widget, phasex_font_desc); widget = gtk_item_factory_get_widget(item_factory, "/View"); widget_set_custom_font(widget, phasex_font_desc); widget = gtk_item_factory_get_widget(item_factory, "/Patch"); widget_set_custom_font(widget, phasex_font_desc); widget = gtk_item_factory_get_widget(item_factory, "/MIDI"); widget_set_custom_font(widget, phasex_font_desc); widget = gtk_item_factory_get_widget(item_factory, "/Part"); widget_set_custom_font(widget, phasex_font_desc); widget = gtk_item_factory_get_widget(item_factory, "/JACK"); widget_set_custom_font(widget, phasex_font_desc); widget = gtk_item_factory_get_widget(item_factory, "/Help"); widget_set_custom_font(widget, phasex_font_desc); #endif }
/* * display the initial menu to setup global options * at startup. */ static void gtkui_setup(void) { GtkTextIter iter; GtkWidget *item, *vbox, *scroll, *vpaned, *logo; GtkItemFactory *item_factory; GClosure *closure = NULL; GdkModifierType mods; gint keyval, width, height, left, top; char *path = NULL; GtkItemFactoryEntry file_menu[] = { { "/_File", "<shift>F", NULL, 0, "<Branch>", NULL }, { "/File/_Open", "<control>O", gtkui_file_open, 0, "<StockItem>", GTK_STOCK_OPEN }, { "/File/_Save", "<control>S", gtkui_file_write, 0, "<StockItem>", GTK_STOCK_SAVE }, { "/File/sep1", NULL, NULL, 0, "<Separator>", NULL }, { "/File/E_xit", "<control>x", gtkui_exit, 0, "<StockItem>", GTK_STOCK_QUIT }, { "/_Sniff", "<shift>S", NULL, 0, "<Branch>", NULL }, { "/Sniff/Unified sniffing...", "<shift>U", gtkui_unified_sniff, 0, "<StockItem>", GTK_STOCK_DND }, { "/Sniff/Bridged sniffing...", "<shift>B", gtkui_bridged_sniff, 0, "<StockItem>", GTK_STOCK_DND_MULTIPLE }, { "/Sniff/sep2", NULL, NULL, 0, "<Separator>", NULL }, { "/Sniff/Set pcap filter...", "p", gtkui_pcap_filter, 0, "<StockItem>", GTK_STOCK_PREFERENCES }, { "/_Options", "<shift>O", NULL, 0, "<Branch>", NULL }, { "/Options/Unoffensive", NULL, toggle_unoffensive, 0, "<ToggleItem>", NULL }, { "/Options/Promisc mode", NULL, toggle_nopromisc, 0, "<ToggleItem>", NULL }, { "/Options/Set netmask", "n", gtkui_set_netmask, 0, "<Item>", NULL} #ifndef OS_WINDOWS ,{"/_?", NULL, NULL, 0, "<Branch>", NULL }, {"/?/Contents", " ", gtkui_help, 0, "<StockItem>", GTK_STOCK_HELP } #endif }; gint nmenu_items = sizeof (file_menu) / sizeof (file_menu[0]); DEBUG_MSG("gtkui_setup"); width = gtkui_conf_get("window_width"); height = gtkui_conf_get("window_height"); left = gtkui_conf_get("window_left"); top = gtkui_conf_get("window_top"); /* create menu window */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW (window), EC_PROGRAM" "EC_VERSION); gtk_window_set_default_size(GTK_WINDOW (window), width, height); if(left > 0 || top > 0) gtk_window_move(GTK_WINDOW(window), left, top); g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK (gtkui_exit), NULL); accel_group = gtk_accel_group_new (); item_factory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>", accel_group); gtk_item_factory_create_items (item_factory, nmenu_items, file_menu, NULL); /* hidden shortcut to start Unified Sniffing with default interface */ closure = g_cclosure_new(G_CALLBACK(gtkui_unified_sniff_default), NULL, NULL); gtk_accelerator_parse ("u", &keyval, &mods); gtk_accel_group_connect(accel_group, keyval, mods, 0, closure); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER (window), vbox); gtk_widget_show(vbox); main_menu = gtk_item_factory_get_widget (item_factory, "<main>"); gtk_box_pack_start(GTK_BOX(vbox), main_menu, FALSE, FALSE, 0); gtk_window_add_accel_group (GTK_WINDOW (window), accel_group); gtk_widget_show(main_menu); if(GBL_PCAP->promisc) { /* setting the menu item active will toggle this setting */ /* it will be TRUE after the menu is updated */ GBL_PCAP->promisc = 0; item = gtk_item_factory_get_item(item_factory, "/Options/Promisc mode"); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM (item), TRUE); } if(GBL_OPTIONS->unoffensive) { GBL_OPTIONS->unoffensive = 0; item = gtk_item_factory_get_item(item_factory, "/Options/Unoffensive"); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM (item), TRUE); } vpaned = gtk_vpaned_new(); /* notebook for MDI pages */ notebook_frame = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME (notebook_frame), GTK_SHADOW_IN); gtk_paned_pack1(GTK_PANED(vpaned), notebook_frame, TRUE, TRUE); gtk_widget_show(notebook_frame); path = INSTALL_DATADIR "/" EC_PROGRAM "/" LOGO_FILE; if(g_file_test(path, G_FILE_TEST_EXISTS)) logo = gtk_image_new_from_file(path); else /* if neither path is valid gtk will use a broken image icon */ logo = gtk_image_new_from_file("./share/" LOGO_FILE); gtk_misc_set_alignment (GTK_MISC (logo), 0.5, 0.5); gtk_container_add(GTK_CONTAINER (notebook_frame), logo); gtk_widget_show(logo); /* messages */ scroll = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW (scroll), GTK_SHADOW_IN); gtk_paned_pack2(GTK_PANED (vpaned), scroll, FALSE, TRUE); gtk_widget_show(scroll); textview = gtk_text_view_new(); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW (textview), GTK_WRAP_WORD_CHAR); gtk_text_view_set_editable(GTK_TEXT_VIEW (textview), FALSE); gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW (textview), FALSE); gtk_widget_set_size_request(textview, -1, 140); gtk_container_add(GTK_CONTAINER (scroll), textview); gtk_widget_show(textview); msgbuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW (textview)); gtk_text_buffer_get_end_iter(msgbuffer, &iter); endmark = gtk_text_buffer_create_mark(msgbuffer, "end", &iter, FALSE); gtk_box_pack_end(GTK_BOX(vbox), vpaned, TRUE, TRUE, 0); gtk_widget_show(vpaned); gtk_widget_show(window); DEBUG_MSG("gtk_setup: end"); }
void gtkui_create_menu(int live) { GtkAccelGroup *accel_group; GtkWidget *vbox, *item; GtkItemFactory *root_menu; int num_items = 0; DEBUG_MSG("gtk_create_menu"); /* remove old menu, it will be automatically destroyed by gtk_main */ vbox = gtk_bin_get_child(GTK_BIN (window)); gtk_container_remove(GTK_CONTAINER (vbox), main_menu); /* Prepare to generate menus from the definitions in ec_gtk.h */ accel_group = gtk_accel_group_new (); root_menu = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>", accel_group); gtk_window_add_accel_group (GTK_WINDOW (window), accel_group); /* Start Menu */ num_items = sizeof (gmenu_start) / sizeof (gmenu_start[0]); gtk_item_factory_create_items (root_menu, num_items, gmenu_start, NULL); /* Targets Menu */ num_items = sizeof (gmenu_targets) / sizeof (gmenu_targets[0]); gtk_item_factory_create_items (root_menu, num_items, gmenu_targets, NULL); /* Hosts Menu */ if (live > 0 && GBL_SNIFF->type != SM_BRIDGED) { num_items = sizeof (gmenu_hosts) / sizeof (gmenu_hosts[0]); gtk_item_factory_create_items (root_menu, num_items, gmenu_hosts, NULL); } /* View Menu */ num_items = sizeof (gmenu_view) / sizeof (gmenu_view[0]); gtk_item_factory_create_items (root_menu, num_items, gmenu_view, NULL); /* MITM Menu */ if (live > 0 && GBL_SNIFF->type != SM_BRIDGED) { num_items = sizeof (gmenu_mitm) / sizeof (gmenu_mitm[0]); gtk_item_factory_create_items (root_menu, num_items, gmenu_mitm, NULL); } /* Filters Menu */ num_items = sizeof (gmenu_filters) / sizeof (gmenu_filters[0]); gtk_item_factory_create_items (root_menu, num_items, gmenu_filters, NULL); /* Logging Menu */ num_items = sizeof (gmenu_logging) / sizeof (gmenu_logging[0]); gtk_item_factory_create_items (root_menu, num_items, gmenu_logging, NULL); #ifdef HAVE_PLUGINS /* Plugins Menu */ if(live > 0) { num_items = sizeof (gmenu_plugins) / sizeof (gmenu_plugins[0]); gtk_item_factory_create_items (root_menu, num_items, gmenu_plugins, NULL); } #endif #ifndef OS_WINDOWS /* Help Menu */ num_items = sizeof (gmenu_help) / sizeof (gmenu_help[0]); gtk_item_factory_create_items (root_menu, num_items, gmenu_help, NULL); #endif if(GBL_OPTIONS->reversed) { GBL_OPTIONS->reversed = 0; item = gtk_item_factory_get_item(root_menu, "/Targets/Reverse matching"); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM (item), TRUE); } if(GBL_OPTIONS->resolve) { GBL_OPTIONS->resolve = 0; item = gtk_item_factory_get_item(root_menu, "/View/Resolve IP addresses"); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM (item), TRUE); } if(GBL_OPTIONS->compress) { GBL_OPTIONS->compress = 0; item = gtk_item_factory_get_item(root_menu, "/Logging/Compressed file"); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM (item), TRUE); } /* get the menu widget and add it to the window */ main_menu = gtk_item_factory_get_widget (root_menu, "<main>"); gtk_box_pack_start(GTK_BOX(vbox), main_menu, FALSE, FALSE, 0); gtk_widget_show(main_menu); }
int main(int argc, char **argv) { char buf[1024], *usage = "usage: deepstripper-gtk [-d[ebug]] [-h[elp]] [-o[utput] <path>]\n" " [-dps12|-dps16 <path>] [-e[xtract] <project>]\n"; GtkWidget *vbox, *men, *paned, *note, *frame, *scroll; GtkItemFactory *fac; GtkAccelGroup *acc; int i, dps = -1; for (i=1; i<argc; i++) { if (strcmp(argv[i], "-d")==0) { g_dbg = g_dbg<<1 | 1; } else if (strncmp(argv[i], "-h", 2)==0) { g_print("%s", usage); return 0; } } gtk_init(&argc, &argv); g_main = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(g_main), 600, 400); set_title("?", GETCWD(buf, sizeof(buf)), ""); g_signal_connect(G_OBJECT(g_main), "delete_event", G_CALLBACK(quit), NULL); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(g_main), vbox); gtk_widget_show(vbox); acc = gtk_accel_group_new(); fac = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<deepstripper-main>", acc); gtk_item_factory_create_items(fac, MENU_SIZE, root_menu, 0); men = gtk_item_factory_get_widget(fac, "<deepstripper-main>"); gtk_box_pack_start(GTK_BOX(vbox), men, FALSE, FALSE, 0); gtk_window_add_accel_group(GTK_WINDOW(g_main), acc); gtk_widget_show(men); g_multi = gtk_item_factory_get_item(fac, "/Multi"); paned = gtk_hpaned_new(); gtk_container_set_border_width(GTK_CONTAINER(paned), 5); gtk_box_pack_start(GTK_BOX(vbox), paned, TRUE, TRUE, 0); gtk_widget_show(paned); note = gtk_notebook_new(); gtk_notebook_set_tab_pos(GTK_NOTEBOOK(note), GTK_POS_BOTTOM); gtk_notebook_set_show_border(GTK_NOTEBOOK(note), TRUE); gtk_notebook_set_homogeneous_tabs(GTK_NOTEBOOK(note), TRUE); gtk_widget_set_size_request(note, 150, 200); gtk_paned_pack1(GTK_PANED(paned), note, TRUE, FALSE); gtk_widget_show(note); for (i=0; i<N_TABS; i++) { GtkWidget *l = gtk_label_new(g_tabs[i].tab); gtk_widget_show(l); gtk_notebook_append_page(GTK_NOTEBOOK(note), make_list(g_tabs[i].data, i), l); } frame = gtk_frame_new("Item properties:"); gtk_widget_set_size_request(frame, 150, 200); gtk_paned_pack2(GTK_PANED(paned), frame, TRUE, FALSE); gtk_widget_show(frame); scroll = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(frame), scroll); gtk_widget_show(scroll); g_info = gtk_label_new(DEFAULT_INFO); gtk_label_set_justify(GTK_LABEL(g_info), GTK_JUSTIFY_LEFT); gtk_label_set_line_wrap(GTK_LABEL(g_info), FALSE); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scroll), g_info); gtk_widget_show(g_info); g_stat = gtk_statusbar_new(); gtk_box_pack_end(GTK_BOX(vbox), g_stat, FALSE, FALSE, 0); gtk_widget_show(g_stat); set_status("status"); // Display everything gtk_widget_show(g_main); // Process all other command line switches for (i=1; i<argc; i++) { if (strncmp(argv[i], "-o", 2)==0) { if (chdir(argv[++i])) about_box("unable to change directory"); else set_title(NULL, GETCWD(buf, sizeof(buf)), NULL); } else if (strncmp(argv[i], "-dps", 4)==0) { open_backup(argv[i], argv[i+1]); if (strcmp(argv[i], "-dps12")==0) dps = AOSP_DPS12; else dps = AOSP_DPS16; ++i; } else if (strncmp(argv[i], "-e", 2)==0) { if (dps<0) about_box("No backup specified to extract from"); else { open_project(dps, akaiosdisk_project_byname(&g_disk, argv[++i])); select_tracks(MID_SELNOE); extract_tracks(); } } else if (strncmp(argv[i], "-d", 2)==0 || strncmp(argv[i], "-h", 2)==0) { ; // Skip earlier opts } else { about_box(usage); } } // Run message pump.. gtk_main(); return 0; }
MimeView *mimeview_create(void) { MimeView *mimeview; GtkWidget *paned; GtkWidget *scrolledwin; GtkWidget *treeview; GtkTreeStore *store; GtkTreeSelection *selection; GtkTreeViewColumn *column; GtkCellRenderer *renderer; GtkWidget *mime_vbox; GtkWidget *popupmenu; GtkItemFactory *popupfactory; gint n_entries; GtkWidget *reply_separator; GtkWidget *reply_menuitem; GList *child; debug_print(_("Creating MIME view...\n")); mimeview = g_new0(MimeView, 1); scrolledwin = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolledwin), GTK_SHADOW_IN); gtk_widget_set_size_request(scrolledwin, -1, 80); store = gtk_tree_store_new(N_COLS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER); treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(G_OBJECT(store)); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), TRUE); gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE); gtk_tree_view_set_search_column(GTK_TREE_VIEW(treeview), COL_NAME); gtk_tree_view_set_reorderable(GTK_TREE_VIEW(treeview), FALSE); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); gtk_tree_selection_set_mode(selection, GTK_SELECTION_BROWSE); gtk_container_add(GTK_CONTAINER(scrolledwin), treeview); renderer = gtk_cell_renderer_text_new(); g_object_set(renderer, "ypad", 0, NULL); column = gtk_tree_view_column_new_with_attributes (_("Data type"), renderer, "text", COL_MIMETYPE, NULL); gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); renderer = gtk_cell_renderer_text_new(); g_object_set(renderer, "xalign", 1.0, "ypad", 0, NULL); column = gtk_tree_view_column_new_with_attributes (_("Size"), renderer, "text", COL_SIZE, NULL); gtk_tree_view_column_set_alignment(column, 1.0); gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); renderer = gtk_cell_renderer_text_new(); g_object_set(renderer, "ypad", 0, NULL); column = gtk_tree_view_column_new_with_attributes (_("Name"), renderer, "text", COL_NAME, NULL); gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); gtk_tree_view_enable_model_drag_source (GTK_TREE_VIEW(treeview), GDK_BUTTON1_MASK, mimeview_mime_types, 1, GDK_ACTION_COPY); g_signal_connect(G_OBJECT(selection), "changed", G_CALLBACK(mimeview_selection_changed), mimeview); g_signal_connect(G_OBJECT(treeview), "button_press_event", G_CALLBACK(mimeview_button_pressed), mimeview); g_signal_connect(G_OBJECT(treeview), "key_press_event", G_CALLBACK(mimeview_key_pressed), mimeview); g_signal_connect_after(G_OBJECT (treeview),"drag-begin", G_CALLBACK (mimeview_drag_begin), mimeview); g_signal_connect(G_OBJECT (treeview),"drag-end", G_CALLBACK (mimeview_drag_end), mimeview); g_signal_connect(G_OBJECT(treeview), "drag-data-get", G_CALLBACK(mimeview_drag_data_get), mimeview); mime_vbox = gtk_vbox_new(FALSE, 0); gtk_container_set_reallocate_redraws(GTK_CONTAINER(mime_vbox), TRUE); paned = gtk_vpaned_new(); gtk_paned_add1(GTK_PANED(paned), scrolledwin); gtk_paned_add2(GTK_PANED(paned), mime_vbox); n_entries = sizeof(mimeview_popup_entries) / sizeof(mimeview_popup_entries[0]); popupmenu = menu_create_items(mimeview_popup_entries, n_entries, "<MimeView>", &popupfactory, mimeview); reply_menuitem = gtk_item_factory_get_item(popupfactory, "/Reply"); child = g_list_find(GTK_MENU_SHELL(popupmenu)->children, reply_menuitem); reply_separator = GTK_WIDGET(child->prev->data); mimeview->paned = paned; mimeview->scrolledwin = scrolledwin; mimeview->treeview = treeview; mimeview->store = store; mimeview->selection = selection; mimeview->mime_vbox = mime_vbox; mimeview->popupmenu = popupmenu; mimeview->popupfactory = popupfactory; mimeview->reply_separator = reply_separator; mimeview->reply_menuitem = reply_menuitem; mimeview->type = -1; return mimeview; }
static void thumbview_update_popupmenu_movie (GtkItemFactory * ifactory) { switch (VIDEOPLAY_STATUS) { case VIDEOPLAY_STATUS_NULL: gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Fullscreen"), FALSE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Play"), FALSE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Pause"), FALSE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Stop"), FALSE); #if (defined ENABLE_XINE) || (defined ENABLE_XINE_OLD) gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Fast Forward"), FALSE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Slow Forward"), FALSE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Create Thumbnail"), FALSE); #endif break; case VIDEOPLAY_STATUS_PLAYING: gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Fullscreen"), TRUE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Play"), FALSE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Pause"), TRUE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Stop"), TRUE); #if (defined ENABLE_XINE) || (defined ENABLE_XINE_OLD) gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Fast Forward"), TRUE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Slow Forward"), TRUE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Create Thumbnail"), TRUE); #endif break; case VIDEOPLAY_STATUS_PAUSE: gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Fullscreen"), FALSE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Play"), TRUE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Pause"), FALSE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Stop"), TRUE); #if (defined ENABLE_XINE) || (defined ENABLE_XINE_OLD) gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Fast Forward"), FALSE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Slow Forward"), FALSE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Create Thumbnail"), TRUE); #endif break; case VIDEOPLAY_STATUS_STOP: gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Fullscreen"), FALSE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Play"), TRUE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Pause"), FALSE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Stop"), FALSE); #if (defined ENABLE_XINE) || (defined ENABLE_XINE_OLD) gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Fast Forward"), FALSE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Slow Forward"), FALSE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Create Thumbnail"), FALSE); #endif break; case VIDEOPLAY_STATUS_FORWARD: case VIDEOPLAY_STATUS_SLOW: gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Fullscreen"), TRUE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Play"), TRUE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Pause"), TRUE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Stop"), TRUE); #if (defined ENABLE_XINE) || (defined ENABLE_XINE_OLD) gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Fast Forward"), TRUE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Slow Forward"), TRUE); gtk_widget_set_sensitive (gtk_item_factory_get_item (ifactory, "/Movie/Create Thumbnail"), TRUE); #endif break; } }