static void create_toplevel(GtkVi *vi) { GtkWidget *window; GtkWidget *box, *menubar; GtkWidget *vi_window; gint nmenu_items = sizeof (menu_items) / sizeof (menu_items[0]); GtkItemFactory *factory; GtkAccelGroup *accel; window = gtk_window_new(GTK_WINDOW_TOPLEVEL); ++n_toplevel; box = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(window), box); gtk_widget_show(box); vi_window = gtk_vi_window_new(vi); accel = gtk_accel_group_new(); factory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>", accel); gtk_item_factory_create_items (factory, nmenu_items, menu_items, (gpointer)vi_window); gtk_accel_group_attach(accel, GTK_OBJECT(window)); menubar = gtk_item_factory_get_widget (factory, "<main>"); gtk_widget_show(menubar); gtk_box_pack_start(GTK_BOX(box), menubar, FALSE, FALSE, 0); gtk_accel_group_attach(accel, GTK_OBJECT(vi_window)); gtk_widget_show(vi_window); gtk_signal_connect(GTK_OBJECT(vi_window), "rename", GTK_SIGNAL_FUNC(vi_rename), window); gtk_signal_connect(GTK_OBJECT(GTK_VI_WINDOW(vi_window)->vi_screen), "destroy", GTK_SIGNAL_FUNC(vi_destroyed), window); gtk_box_pack_start(GTK_BOX(box), vi_window, TRUE, TRUE, 0); /* gtk_widget_grab_focus(GTK_WIDGET(vi->vi)); */ gtk_widget_show(window); }
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkPopupMenuPeer_setupAccelGroup (JNIEnv *env, jobject obj, jobject parent) { void *ptr1, *ptr2; GtkMenu *menu; ptr1 = NSA_GET_PTR (env, obj); ptr2 = NSA_GET_PTR (env, parent); gdk_threads_enter (); menu = GTK_MENU (GTK_MENU_ITEM (ptr1)->submenu); gtk_menu_set_accel_group (menu, gtk_accel_group_new ()); gtk_accel_group_attach (gtk_menu_get_accel_group (menu), GTK_OBJECT (gtk_widget_get_toplevel (ptr2))); gdk_threads_leave (); }
static void AttachToFrame( wxMenu *menu, wxWindow *win ) { wxWindow *top_frame = win; while (top_frame->GetParent() && !(top_frame->IsTopLevel())) top_frame = top_frame->GetParent(); // support for native hot keys ACCEL_OBJECT *obj = ACCEL_OBJ_CAST(top_frame->m_widget); if ( !g_slist_find( ACCEL_OBJECTS(menu->m_accel), obj ) ) gtk_accel_group_attach( menu->m_accel, obj ); wxMenuItemList::compatibility_iterator node = menu->GetMenuItems().GetFirst(); while (node) { wxMenuItem *menuitem = node->GetData(); if (menuitem->IsSubMenu()) AttachToFrame( menuitem->GetSubMenu(), win ); node = node->GetNext(); } }
void wxMenuBar::SetInvokingWindow( wxWindow *win ) { m_invokingWindow = win; wxWindow *top_frame = win; while (top_frame->GetParent() && !(top_frame->IsTopLevel())) top_frame = top_frame->GetParent(); // support for native key accelerators indicated by underscroes ACCEL_OBJECT *obj = ACCEL_OBJ_CAST(top_frame->m_widget); if ( !g_slist_find( ACCEL_OBJECTS(m_accel), obj ) ) gtk_accel_group_attach( m_accel, obj ); wxMenuList::compatibility_iterator node = m_menus.GetFirst(); while (node) { wxMenu *menu = node->GetData(); wxMenubarSetInvokingWindow( menu, win ); node = node->GetNext(); } }
void browser_create (void) { GtkWidget *vbox; GdkPixmap *icon_pix; GdkBitmap *icon_mask; GtkAccelGroup *accel; GtkWidget *menu; GtkWidget *toolbar; GtkWidget *hpaned; GtkWidget *vpaned; GtkWidget *iconw; GtkWidget *hbox; GtkWidget *label; browser = g_new (Browser, 1); browser->current_path = g_string_new (conf.startup_dir); browser->last_path = g_string_new (""); browser->filelist = (FileList *) file_list_init (); browser->window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (browser->window), "PornView"); gtk_widget_realize (browser->window); icon_pix = gdk_pixmap_create_from_xpm_d (G_WINDOW (browser->window), &icon_mask, NULL, pornview_xpm); gdk_window_set_icon (G_WINDOW (browser->window), NULL, icon_pix, icon_mask); gtk_signal_connect (GTK_OBJECT (browser->window), "delete_event", GTK_SIGNAL_FUNC (browser_destroy), NULL); gtk_window_set_default_size (GTK_WINDOW (browser->window), conf.window_width, conf.window_height); vbox = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox); gtk_container_add (GTK_CONTAINER (browser->window), vbox); /* * main menu */ accel = gtk_accel_group_new (); browser->menu = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<browser_menu>", accel); #ifdef ENABLE_NLS gtk_item_factory_set_translate_func (browser->menu, (GtkTranslateFunc) menu_translate, NULL, NULL); #endif gtk_item_factory_create_items (browser->menu, browser_menu_factory_count, browser_menu_factory, NULL); menu = gtk_item_factory_get_widget (browser->menu, "<browser_menu>"); gtk_box_pack_start (GTK_BOX (vbox), menu, FALSE, FALSE, 0); gtk_widget_show (menu); #ifndef USE_GTK2 gtk_accel_group_attach (accel, GTK_OBJECT (browser->window)); #endif /* * toolbar */ #ifdef USE_GTK2 toolbar = gtk_toolbar_new (); #else toolbar = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_ICONS); #endif gtk_box_pack_start (GTK_BOX (vbox), toolbar, FALSE, TRUE, 0); gtk_widget_show (toolbar); iconw = pixbuf_create_pixmap_from_xpm_data (exit_xpm); gtk_toolbar_append_item (GTK_TOOLBAR (toolbar), NULL, _("Exit"), NULL, iconw, (GtkSignalFunc) browser_destroy, NULL); #ifndef USE_GTK2 gtk_toolbar_append_space (GTK_TOOLBAR (toolbar)); #endif gtk_toolbar_append_space (GTK_TOOLBAR (toolbar)); iconw = pixbuf_create_pixmap_from_xpm_data (options_xpm); gtk_toolbar_append_item (GTK_TOOLBAR (toolbar), NULL, _("Preference"), NULL, iconw, (GtkSignalFunc) browser_prefs, NULL); hpaned = gedo_hpaned_new (); gtk_container_add (GTK_CONTAINER (vbox), hpaned); gtk_widget_show (hpaned); vpaned = gedo_vpaned_new (); gtk_widget_show (vpaned); gedo_paned_add1 (GEDO_PANED (hpaned), vpaned); /* * dirtree */ dirview_create (conf.startup_dir, browser->window); gedo_paned_add1 (GEDO_PANED (vpaned), DIRVIEW_CONTAINER); commentview = comment_view_create (); browser->notebook = commentview->notebook; /* * videoplay */ #ifdef ENABLE_MOVIE videoplay_create (); label = gtk_label_new (_(" Preview ")); gtk_notebook_prepend_page (GTK_NOTEBOOK (browser->notebook), VIDEOPLAY_CONTAINER, label); gtk_notebook_set_page (GTK_NOTEBOOK (browser->notebook), 0); #endif /* * imageview */ imageview_create (); label = gtk_label_new (_(" Preview ")); gtk_notebook_prepend_page (GTK_NOTEBOOK (browser->notebook), IMAGEVIEW_CONTAINER, label); #ifndef ENABLE_MOVIE gtk_notebook_set_page (GTK_NOTEBOOK (browser->notebook), 0); #endif gedo_paned_add2 (GEDO_PANED (hpaned), commentview->main_vbox); /* * thumbview */ thumbview_create (browser->window); gedo_paned_add2 (GEDO_PANED (vpaned), THUMBVIEW_CONTAINER); /* * statusbar */ hbox = gtk_hbox_new (FALSE, 0); gtk_widget_set_name (hbox, "StatusBarContainer"); gtk_box_pack_end (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); gtk_widget_show (hbox); browser->status_dir = gtk_statusbar_new (); gtk_widget_set_name (browser->status_dir, "StatusBar1"); gtk_container_border_width (GTK_CONTAINER (browser->status_dir), 1); gtk_widget_set_usize (browser->status_dir, 80, 15); gtk_box_pack_start (GTK_BOX (hbox), browser->status_dir, FALSE, FALSE, 0); gtk_widget_show (browser->status_dir); browser->status_name = gtk_statusbar_new (); gtk_widget_set_name (browser->status_name, "StatusBar2"); gtk_container_border_width (GTK_CONTAINER (browser->status_name), 1); gtk_widget_set_usize (browser->status_name, 150, -1); gtk_box_pack_start (GTK_BOX (hbox), browser->status_name, TRUE, TRUE, 0); gtk_widget_show (browser->status_name); browser->status_image = gtk_statusbar_new (); gtk_widget_set_name (browser->status_image, "StatusBar3"); gtk_container_border_width (GTK_CONTAINER (browser->status_image), 1); gtk_widget_set_usize (browser->status_image, 150, -1); gtk_box_pack_start (GTK_BOX (hbox), browser->status_image, TRUE, TRUE, 0); gtk_widget_show (browser->status_image); browser->progress = gtk_progress_bar_new (); gtk_widget_set_name (browser->progress, "ProgressBar"); gtk_box_pack_end (GTK_BOX (hbox), browser->progress, FALSE, FALSE, 0); gtk_widget_show (browser->progress); gtk_widget_show (browser->window); #ifdef ENABLE_MOVIE gtk_widget_hide (gtk_notebook_get_nth_page (GTK_NOTEBOOK (browser->notebook), 1)); gtk_notebook_set_page (GTK_NOTEBOOK (browser->notebook), 0); #endif dirview_scroll_center (); timer_id = gtk_timeout_add (100, cb_browser_select_dir, conf.startup_dir); }
int main(int argc, char *argv[]) { int has_rc=0; GtkWidget *mainWin; GtkWidget *table; GtkWidget *menu_bar; GtkWidget *index_page; GtkWidget *button; GtkWidget *label, *box, *sbox, *pbox; GtkWidget *vseparator; GtkWidget *post_process_button; GtkStyle *style; GtkWidget *gpixmap; GdkPixmap *pixmap; GdkBitmap *bitmap; char title[256]; char *envhome; #ifdef ENABLE_NLS bindtextdomain (PACKAGE, PACKAGE_LOCALE_DIR); textdomain (PACKAGE); #endif signal(SIGSEGV, crash); #ifdef sun __progname = argv[0]; #endif Thumbnails.next = NULL; Images.next=NULL; /* Set the priority (taken from PhotoPC photopc.c) */ #ifdef linux if (geteuid() == 0) { struct sched_param sp; int rc,minp,maxp; minp=sched_get_priority_min(SCHED_FIFO); maxp=sched_get_priority_max(SCHED_FIFO); sp.sched_priority=minp+(maxp-minp)/2; if ((rc=sched_setscheduler(0,SCHED_FIFO,&sp)) == -1) fprintf(stderr,"failed to set priority\n"); } #endif filesel_cwd = (char *)malloc(sizeof(char)*1024); getcwd(filesel_cwd, 1024); strcat(filesel_cwd, "/"); /* Make sure there's a .gphoto directory in their home ---- */ envhome = getenv("HOME"); gphotoDir = (char *)malloc(sizeof(char)*(strlen(envhome)+9)); memset(gphotoDir, 0, sizeof(char)*(strlen(envhome)+9)); sprintf(gphotoDir, "%s/.gphoto", envhome); (void)mkdir(gphotoDir, 0744); /* Command line mode anyone? ----------------------------- */ if (argc > 1) { command_line_mode = 1; has_rc = load_config(); command_line(argc, argv); } else command_line_mode = 0; /* Check for DISPLAY. If not set, exit */ if (!getenv("DISPLAY")) { printf(N_("Error: $DISPLAY variable is not set\n")); printf(N_("Please run \"gphoto -h\" for command-line options.\n")); _exit(0); } fprintf(stdout, N_("gPhoto %s (%s)\n"), VERSION, __DATE__); fprintf(stdout, N_("Copyright (C) 1998-2000 Scott Fritzinger <*****@*****.**>\n\n")); fprintf(stdout, N_("Usage: gphoto [-h] [-c] [-n] [-s # filename] [-t # filename]\n")); fprintf(stdout, N_(" [-d #] [-p filename] [-l filename]\n")); gtk_init(&argc, &argv); #if 1 /* by fujisawa */ gdk_imlib_init(); #endif gtk_widget_push_visual(gdk_imlib_get_visual()); gtk_widget_push_colormap(gdk_imlib_get_colormap()); library_name = gtk_label_new(""); has_rc = load_config(); /* set up the main window -------------------------------- */ mainWin = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_container_border_width(GTK_CONTAINER(mainWin), 0); sprintf(title, "gPhoto %s", VERSION); gtk_window_set_title(GTK_WINDOW(mainWin), title); gtk_signal_connect(GTK_OBJECT(mainWin), "delete_event", GTK_SIGNAL_FUNC(delete_event), NULL); gtk_widget_set_usize(mainWin, 730, 480); gtk_widget_realize(mainWin); /* set up the menu --------------------------------------- */ menu_bar = gtk_vbox_new(FALSE, 0); create_menu(menu_bar); gtk_widget_show_all(menu_bar); /* button bar -------------------------------------------- */ box = gtk_hbox_new(FALSE, 0); create_toolbar(box, mainWin); gtk_widget_show(box); gtk_container_border_width(GTK_CONTAINER(box), 5); /* accelerator keys--------------------------------------- */ gtk_accel_group_attach(mainag,GTK_OBJECT(mainWin)); /* Index Page notebook ----------------------------------- */ index_page = gtk_table_new(1,1,FALSE); gtk_widget_show(index_page); index_window = gtk_scrolled_window_new(NULL,NULL); index_vp=gtk_viewport_new(NULL,NULL); gtk_container_add(GTK_CONTAINER(index_window), index_vp); gtk_widget_show(index_vp); gtk_widget_show(index_window); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(index_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_table_attach_defaults(GTK_TABLE(index_page),index_window,0,1,0,1); notebook = gtk_notebook_new(); gtk_widget_show(notebook); gtk_notebook_set_scrollable(GTK_NOTEBOOK(notebook), TRUE); label = gtk_label_new(N_("Image Index")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), index_page, label); sbox = gtk_hbox_new(FALSE, 5); gtk_widget_show(sbox); status_bar = gtk_label_new(""); gtk_widget_show(status_bar); gtk_label_set_justify(GTK_LABEL(status_bar), GTK_JUSTIFY_LEFT); gtk_box_pack_start(GTK_BOX(sbox), status_bar, FALSE, FALSE, 0); update_status("Select \"Camera->Download Index->Thumbnails\" to begin."); progress = gtk_progress_bar_new(); gtk_widget_show(progress); gtk_box_pack_end(GTK_BOX(sbox), progress, FALSE, FALSE, 0); vseparator = gtk_vseparator_new(); gtk_widget_show(vseparator); gtk_box_pack_end(GTK_BOX(sbox), vseparator, FALSE, FALSE, 0); post_process = 0; post_process_button = gtk_button_new(); gtk_widget_show(post_process_button); gtk_button_set_relief(GTK_BUTTON(post_process_button),GTK_RELIEF_NONE); gtk_signal_connect (GTK_OBJECT(post_process_button), "clicked", GTK_SIGNAL_FUNC(post_process_change), mainWin); gtk_box_pack_end(GTK_BOX(sbox), post_process_button, FALSE, FALSE, 0); pbox = gtk_hbox_new(FALSE, 3); gtk_widget_show(pbox); gtk_container_add(GTK_CONTAINER(post_process_button), pbox); style = gtk_widget_get_style(mainWin); pixmap = gdk_pixmap_create_from_xpm_d(mainWin->window, &bitmap, &style->bg[GTK_STATE_NORMAL],(gchar **)post_processing_off_xpm); post_process_pixmap = gtk_pixmap_new(pixmap, bitmap); gtk_widget_show(post_process_pixmap); gtk_box_pack_start(GTK_BOX(pbox),post_process_pixmap,FALSE,FALSE,0); label = gtk_label_new("Post Process"); gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(pbox),label,FALSE,FALSE,0); vseparator = gtk_vseparator_new(); gtk_widget_show(vseparator); gtk_box_pack_end(GTK_BOX(sbox), vseparator, FALSE, FALSE, 0); gtk_widget_show(library_name); /* gtk_widget_set_usize(library_name, 200, 16);*/ gtk_label_set_justify(GTK_LABEL(library_name), GTK_JUSTIFY_LEFT); button = gtk_button_new(); gtk_widget_show(button); gtk_button_set_relief(GTK_BUTTON(button),GTK_RELIEF_NONE); gtk_signal_connect_object(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(port_dialog), NULL); gtk_container_add(GTK_CONTAINER(button), library_name); gtk_box_pack_end(GTK_BOX(sbox), button, FALSE, FALSE, 0); pixmap = gdk_pixmap_create_from_xpm_d(mainWin->window, &bitmap, &style->bg[GTK_STATE_NORMAL], (gchar **)splash_xpm); gpixmap = gtk_pixmap_new(pixmap, bitmap); gtk_widget_show(gpixmap); /* Main window layout ------------------------------------ */ table =gtk_table_new(4,1,FALSE); gtk_container_add(GTK_CONTAINER(mainWin), table); gtk_widget_show(table); gtk_table_attach(GTK_TABLE(table),menu_bar, 0, 1, 0, 1, GTK_FILL|GTK_EXPAND, GTK_FILL, 0 , 0); gtk_table_attach(GTK_TABLE(table), box, 0, 1, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL, 0, 0); gtk_table_attach_defaults(GTK_TABLE(table),notebook, 0, 1, 2, 3); gtk_table_attach(GTK_TABLE(table),sbox, 0, 1, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL, 0 , 0); index_table = gtk_hbox_new(FALSE, 0); gtk_widget_show(index_table); gtk_container_add( GTK_CONTAINER(index_vp), index_table); gtk_box_pack_start(GTK_BOX(index_table), gpixmap, TRUE, FALSE, 0); /* If not command-line mode... --------------------------- */ gtk_widget_show(mainWin); if (!has_rc) { /* put anything here to do on the first run */ developer_dialog_create(); error_dialog( "Could not load config file.\n" "Resetting to defaults.\n" "Click on \"Select Port-Camera Model\n" "in the Configure menu to set your\n" "camera model and serial port\n"); } gtk_main(); return 0; }
GtkWidget *create_main_win() { GtkWidget *main_win, *notebook, *scroll, *label, *vb, *hb, *button, *entry, *box; GtkAccelGroup *accel_group; GtkItemFactory *item_factory; gchar *titoli[] = {"host", "port", "fd", "traffic", "logged", "identd"}; main_win = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(main_win), "ASI Chat Server"); gtk_signal_connect(GTK_OBJECT(main_win), "delete_event", GTK_SIGNAL_FUNC(delete_event), NULL); box = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(main_win), box); accel_group = gtk_accel_group_new(); item_factory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<blah>", accel_group); gtk_item_factory_create_items(item_factory, nmenu_items, menu_items, NULL); gtk_accel_group_attach(accel_group, GTK_OBJECT(main_win)); gtk_box_pack_start(GTK_BOX(box), gtk_item_factory_get_widget(item_factory, "<blah>"), FALSE, FALSE, 0); notebook = gtk_notebook_new(); scroll = gtk_scrolled_window_new(NULL, NULL); label = gtk_label_new("Clients"); lista = gtk_clist_new_with_titles(6, titoli); gtk_signal_connect(GTK_OBJECT(lista), "select-row", GTK_SIGNAL_FUNC(seleziona_client), NULL); gtk_signal_connect(GTK_OBJECT(lista), "unselect-row", GTK_SIGNAL_FUNC(deseleziona_client), NULL); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scroll), lista); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), scroll, label); scroll = gtk_scrolled_window_new(NULL, NULL); label = gtk_label_new("Status"); status = gtk_text_new(NULL, NULL); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scroll), status); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), scroll, label); vb = gtk_vbox_new(FALSE, 0); scroll = gtk_scrolled_window_new(NULL, NULL); gtk_box_pack_start(GTK_BOX(vb), scroll, TRUE, TRUE, 0); label = gtk_label_new("All"); all_in_all = gtk_text_new(NULL, NULL); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scroll), all_in_all); hb = gtk_hbox_new(FALSE, 0); entry = gtk_entry_new(); gtk_box_pack_start(GTK_BOX(hb), entry, TRUE, TRUE, 0); gtk_object_set_data(GTK_OBJECT(main_win), "entry", entry); button = gtk_button_new_with_label("Send all!"); gtk_box_pack_start(GTK_BOX(hb), button, FALSE, TRUE, 0); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(send_msg_all), main_win); gtk_box_pack_start(GTK_BOX(vb), hb, FALSE, TRUE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vb, label); gtk_box_pack_start(GTK_BOX(box), notebook, TRUE, TRUE, 0); hash = g_hash_table_new(NULL, NULL); return main_win; }
static GtkWidget * create_window (int confirm_mode) { GtkWidget *w; GtkWidget *win, *box, *ebox; GtkWidget *sbox, *bbox; GtkAccelGroup *acc; /* fixme: check the grabbing code against the one we used with the old gpg-agent */ win = gtk_window_new (GTK_WINDOW_TOPLEVEL); acc = gtk_accel_group_new (); gtk_signal_connect (GTK_OBJECT (win), "delete_event", GTK_SIGNAL_FUNC (delete_event), NULL); #if 0 gtk_signal_connect (GTK_OBJECT(win), "destroy", gtk_main_quit, NULL); #endif gtk_signal_connect (GTK_OBJECT(win), "size-request", constrain_size, NULL); if (!confirm_mode) { gtk_signal_connect (GTK_OBJECT(win), pinentry->grab ? "map-event" : "focus-in-event", grab_keyboard, NULL); gtk_signal_connect (GTK_OBJECT(win), pinentry->grab ? "unmap-event" : "focus-out-event", ungrab_keyboard, NULL); } gtk_accel_group_attach(acc, GTK_OBJECT(win)); box = gtk_vbox_new (FALSE, 5); gtk_container_add (GTK_CONTAINER(win), box); gtk_container_set_border_width (GTK_CONTAINER (box), 5); if (pinentry->description) { w = create_utf8_label (pinentry->description); gtk_box_pack_start (GTK_BOX(box), w, TRUE, FALSE, 0); } if (pinentry->error && !confirm_mode) { GtkStyle *style; GdkColormap *cmap; GdkColor color[1] = {{0, 0xffff, 0, 0}}; gboolean success[1]; w = create_utf8_label (pinentry->error); gtk_box_pack_start (GTK_BOX(box), w, TRUE, FALSE, 5); /* fixme: Do we need to release something, or is there a more easy way to set a text color? */ gtk_widget_realize (win); cmap = gdk_window_get_colormap (win->window); assert (cmap); gdk_colormap_alloc_colors (cmap, color, 1, FALSE, TRUE, success); if (success[0]) { gtk_widget_ensure_style(w); style = gtk_style_copy(gtk_widget_get_style(w)); style->fg[GTK_STATE_NORMAL] = color[0]; gtk_widget_set_style(w, style); } } ebox = gtk_hbox_new (FALSE, 5); gtk_box_pack_start (GTK_BOX(box), ebox, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (ebox), 5); if (!confirm_mode) { if (pinentry->prompt) { w = create_utf8_label (pinentry->prompt); gtk_box_pack_start (GTK_BOX(ebox), w, FALSE, FALSE, 0); } entry = gtk_secure_entry_new (); gtk_signal_connect (GTK_OBJECT (entry), "activate", GTK_SIGNAL_FUNC (enter_callback), entry); gtk_box_pack_start (GTK_BOX(ebox), entry, TRUE, TRUE, 0); gtk_secure_entry_set_visibility (GTK_SECURE_ENTRY(entry), FALSE); gtk_signal_connect_after (GTK_OBJECT(entry), "button_press_event", unselect, NULL); gtk_widget_grab_focus (entry); gtk_widget_show (entry); if (pinentry->enhanced) { sbox = gtk_hbox_new(FALSE, 5); gtk_box_pack_start(GTK_BOX(box), sbox, FALSE, FALSE, 0); w = gtk_label_new ("Forget secret after"); gtk_box_pack_start(GTK_BOX(sbox), w, FALSE, FALSE, 0); gtk_widget_show(w); time_out = gtk_spin_button_new (GTK_ADJUSTMENT(gtk_adjustment_new(0, 0, HUGE_VAL, 1, 60, 60)),2,0); gtk_box_pack_start (GTK_BOX(sbox), time_out, FALSE, FALSE, 0); gtk_widget_show (time_out); w = gtk_label_new ("seconds"); gtk_box_pack_start (GTK_BOX(sbox), w, FALSE, FALSE, 0); gtk_widget_show (w); gtk_widget_show (sbox); insure = gtk_check_button_new_with_label ("ask before giving out secret"); gtk_box_pack_start (GTK_BOX(box), insure, FALSE, FALSE, 0); gtk_widget_show (insure); } } bbox = gtk_hbutton_box_new(); gtk_box_pack_start (GTK_BOX(box), bbox, TRUE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (bbox), 5); w = gtk_button_new_with_label (pinentry->ok ? pinentry->ok : "OK"); gtk_container_add (GTK_CONTAINER(bbox), w); if (!confirm_mode) { gtk_signal_connect (GTK_OBJECT(w), "clicked", button_clicked, "ok"); GTK_WIDGET_SET_FLAGS (w, GTK_CAN_DEFAULT); gtk_widget_grab_default (w); gtk_signal_connect_object (GTK_OBJECT (entry), "focus_in_event", GTK_SIGNAL_FUNC (gtk_widget_grab_default), GTK_OBJECT (w)); } else { gtk_signal_connect (GTK_OBJECT(w), "clicked", confirm_button_clicked, "ok"); GTK_WIDGET_SET_FLAGS (w, GTK_CAN_DEFAULT); } gtk_widget_show (w); if (!pinentry->one_button) { w = gtk_button_new_with_label (pinentry->cancel ? pinentry->cancel : "Cancel"); gtk_container_add (GTK_CONTAINER(bbox), w); gtk_accel_group_add (acc, GDK_Escape, 0, 0, GTK_OBJECT(w), "clicked"); gtk_signal_connect (GTK_OBJECT(w), "clicked", confirm_mode? confirm_button_clicked: button_clicked, NULL); GTK_WIDGET_SET_FLAGS (w, GTK_CAN_DEFAULT); } gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_CENTER); gtk_widget_show_all (win); return win; }
GtkWidget* create_wspec (void) { GtkWidget *wspec; GtkWidget *vbox1; GtkWidget *hbox1; GtkWidget *label1; GtkWidget *specfreqpointer; GtkWidget *label2; GtkWidget *specfreqmark; GtkWidget *label3; GtkWidget *specfreqspace; GtkWidget *frame1; GtkWidget *hbox2; GSList *hbox2_group = NULL; GtkWidget *shift170; GtkWidget *shift200; GtkWidget *shift425; GtkWidget *shift800; GtkWidget *shiftother; GtkWidget *frame4; GtkWidget *table9; GtkWidget *spec; GtkWidget *hruler1; GtkWidget *squelch_vruler; GtkAccelGroup *spec_accels; wspec = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_set_name (wspec, "wspec"); gtk_object_set_data (GTK_OBJECT (wspec), "wspec", wspec); gtk_window_set_title (GTK_WINDOW (wspec), _("Frequency Spectrum")); gtk_window_set_policy (GTK_WINDOW (wspec), FALSE, FALSE, FALSE); gtk_window_set_wmclass (GTK_WINDOW (wspec), "hfterm", "hfterm"); spec_accels = gtk_accel_group_new (); gtk_accel_group_attach(spec_accels, GTK_OBJECT(wspec)); vbox1 = gtk_vbox_new (FALSE, 0); gtk_widget_set_name (vbox1, "vbox1"); gtk_widget_ref (vbox1); gtk_object_set_data_full (GTK_OBJECT (wspec), "vbox1", vbox1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (wspec), vbox1); hbox1 = gtk_hbox_new (FALSE, 0); gtk_widget_set_name (hbox1, "hbox1"); gtk_widget_ref (hbox1); gtk_object_set_data_full (GTK_OBJECT (wspec), "hbox1", hbox1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, TRUE, 3); gtk_container_set_border_width (GTK_CONTAINER (hbox1), 1); label1 = gtk_label_new (_("Pointer")); gtk_widget_set_name (label1, "label1"); gtk_widget_ref (label1); gtk_object_set_data_full (GTK_OBJECT (wspec), "label1", label1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1); gtk_box_pack_start (GTK_BOX (hbox1), label1, FALSE, FALSE, 0); specfreqpointer = gtk_entry_new (); gtk_widget_set_name (specfreqpointer, "specfreqpointer"); gtk_widget_ref (specfreqpointer); gtk_object_set_data_full (GTK_OBJECT (wspec), "specfreqpointer", specfreqpointer, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (specfreqpointer); gtk_box_pack_start (GTK_BOX (hbox1), specfreqpointer, FALSE, TRUE, 4); gtk_widget_set_usize (specfreqpointer, 60, -2); GTK_WIDGET_UNSET_FLAGS (specfreqpointer, GTK_CAN_FOCUS); gtk_entry_set_editable (GTK_ENTRY (specfreqpointer), FALSE); label2 = gtk_label_new (_("Mark")); gtk_widget_set_name (label2, "label2"); gtk_widget_ref (label2); gtk_object_set_data_full (GTK_OBJECT (wspec), "label2", label2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label2); gtk_box_pack_start (GTK_BOX (hbox1), label2, FALSE, FALSE, 0); specfreqmark = gtk_entry_new (); gtk_widget_set_name (specfreqmark, "specfreqmark"); gtk_widget_ref (specfreqmark); gtk_object_set_data_full (GTK_OBJECT (wspec), "specfreqmark", specfreqmark, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (specfreqmark); gtk_box_pack_start (GTK_BOX (hbox1), specfreqmark, FALSE, TRUE, 4); gtk_widget_set_usize (specfreqmark, 60, -2); GTK_WIDGET_UNSET_FLAGS (specfreqmark, GTK_CAN_FOCUS); gtk_entry_set_editable (GTK_ENTRY (specfreqmark), FALSE); label3 = gtk_label_new (_("Space")); gtk_widget_set_name (label3, "label3"); gtk_widget_ref (label3); gtk_object_set_data_full (GTK_OBJECT (wspec), "label3", label3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label3); gtk_box_pack_start (GTK_BOX (hbox1), label3, FALSE, FALSE, 0); specfreqspace = gtk_entry_new (); gtk_widget_set_name (specfreqspace, "specfreqspace"); gtk_widget_ref (specfreqspace); gtk_object_set_data_full (GTK_OBJECT (wspec), "specfreqspace", specfreqspace, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (specfreqspace); gtk_box_pack_start (GTK_BOX (hbox1), specfreqspace, FALSE, TRUE, 4); gtk_widget_set_usize (specfreqspace, 60, -2); GTK_WIDGET_UNSET_FLAGS (specfreqspace, GTK_CAN_FOCUS); gtk_entry_set_editable (GTK_ENTRY (specfreqspace), FALSE); frame1 = gtk_frame_new (_("Shift")); gtk_widget_set_name (frame1, "frame1"); gtk_widget_ref (frame1); gtk_object_set_data_full (GTK_OBJECT (wspec), "frame1", frame1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (frame1); gtk_box_pack_end (GTK_BOX (hbox1), frame1, FALSE, TRUE, 0); hbox2 = gtk_hbox_new (FALSE, 0); gtk_widget_set_name (hbox2, "hbox2"); gtk_widget_ref (hbox2); gtk_object_set_data_full (GTK_OBJECT (wspec), "hbox2", hbox2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox2); gtk_container_add (GTK_CONTAINER (frame1), hbox2); shift170 = gtk_radio_button_new_with_label (hbox2_group, _("170")); hbox2_group = gtk_radio_button_group (GTK_RADIO_BUTTON (shift170)); gtk_widget_set_name (shift170, "shift170"); gtk_widget_ref (shift170); gtk_object_set_data_full (GTK_OBJECT (wspec), "shift170", shift170, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (shift170); gtk_box_pack_start (GTK_BOX (hbox2), shift170, FALSE, FALSE, 0); shift200 = gtk_radio_button_new_with_label (hbox2_group, _("200")); hbox2_group = gtk_radio_button_group (GTK_RADIO_BUTTON (shift200)); gtk_widget_set_name (shift200, "shift200"); gtk_widget_ref (shift200); gtk_object_set_data_full (GTK_OBJECT (wspec), "shift200", shift200, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (shift200); gtk_box_pack_start (GTK_BOX (hbox2), shift200, FALSE, FALSE, 0); shift425 = gtk_radio_button_new_with_label (hbox2_group, _("425")); hbox2_group = gtk_radio_button_group (GTK_RADIO_BUTTON (shift425)); gtk_widget_set_name (shift425, "shift425"); gtk_widget_ref (shift425); gtk_object_set_data_full (GTK_OBJECT (wspec), "shift425", shift425, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (shift425); gtk_box_pack_start (GTK_BOX (hbox2), shift425, FALSE, FALSE, 0); shift800 = gtk_radio_button_new_with_label (hbox2_group, _("800")); hbox2_group = gtk_radio_button_group (GTK_RADIO_BUTTON (shift800)); gtk_widget_set_name (shift800, "shift800"); gtk_widget_ref (shift800); gtk_object_set_data_full (GTK_OBJECT (wspec), "shift800", shift800, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (shift800); gtk_box_pack_start (GTK_BOX (hbox2), shift800, FALSE, FALSE, 0); shiftother = gtk_radio_button_new_with_label (hbox2_group, _("other")); hbox2_group = gtk_radio_button_group (GTK_RADIO_BUTTON (shiftother)); gtk_widget_set_name (shiftother, "shiftother"); gtk_widget_ref (shiftother); gtk_object_set_data_full (GTK_OBJECT (wspec), "shiftother", shiftother, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (shiftother); gtk_box_pack_start (GTK_BOX (hbox2), shiftother, FALSE, FALSE, 0); frame4 = gtk_frame_new (_("Spectrum")); gtk_widget_set_name (frame4, "frame4"); gtk_widget_ref (frame4); gtk_object_set_data_full (GTK_OBJECT (wspec), "frame4", frame4, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (frame4); gtk_box_pack_start (GTK_BOX (vbox1), frame4, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (frame4), 1); table9 = gtk_table_new (2, 2, FALSE); gtk_widget_set_name (table9, "table9"); gtk_widget_ref (table9); gtk_object_set_data_full (GTK_OBJECT (wspec), "table9", table9, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table9); gtk_container_add (GTK_CONTAINER (frame4), table9); spec = spectrum_new ("spec", NULL, NULL, 0, 0); gtk_widget_set_name (spec, "spec"); gtk_widget_ref (spec); gtk_object_set_data_full (GTK_OBJECT (wspec), "spec", spec, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (spec); gtk_table_attach (GTK_TABLE (table9), spec, 0, 1, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); gtk_widget_set_usize (spec, 512, 384); GTK_WIDGET_SET_FLAGS (spec, GTK_CAN_FOCUS); GTK_WIDGET_UNSET_FLAGS (spec, GTK_CAN_DEFAULT); gtk_widget_set_events (spec, GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK); hruler1 = gtk_hruler_new (); gtk_widget_set_name (hruler1, "hruler1"); gtk_widget_ref (hruler1); gtk_object_set_data_full (GTK_OBJECT (wspec), "hruler1", hruler1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hruler1); gtk_table_attach (GTK_TABLE (table9), hruler1, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); gtk_ruler_set_range (GTK_RULER (hruler1), 0, 4000, 5.91797, 10); squelch_vruler = gtk_vruler_new (); gtk_widget_set_name (squelch_vruler, "squelch_vruler"); gtk_widget_ref (squelch_vruler); gtk_object_set_data_full (GTK_OBJECT (wspec), "squelch_vruler", squelch_vruler, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (squelch_vruler); gtk_table_attach (GTK_TABLE (table9), squelch_vruler, 1, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); gtk_ruler_set_range (GTK_RULER (squelch_vruler), 0, 10, 4.24479, 10); gtk_signal_connect (GTK_OBJECT (wspec), "delete_event", GTK_SIGNAL_FUNC (on_wspec_delete_event), NULL); gtk_widget_add_accelerator(wspec, "hide", spec_accels, GDK_f, GDK_SHIFT_MASK, GTK_ACCEL_VISIBLE); gtk_widget_add_accelerator(wspec, "hide", spec_accels, GDK_Escape, 0, GTK_ACCEL_VISIBLE); gtk_signal_connect (GTK_OBJECT (spec), "button_press_event", GTK_SIGNAL_FUNC (on_spec_button_press_event), NULL); gtk_signal_connect (GTK_OBJECT (spec), "motion_notify_event", GTK_SIGNAL_FUNC (on_spec_motion_event), NULL); return wspec; }
void create_toolbox () { GtkWidget *window; GtkWidget *main_vbox; GtkWidget *vbox; GtkWidget *menubar; GtkAccelGroup *accel_group; #ifdef GNOME window = gnome_app_new ("Dia", _("Diagram Editor")); #else window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_ref (window); gtk_window_set_title (GTK_WINDOW (window), "Dia v" VERSION); gtk_window_set_wmclass (GTK_WINDOW (window), "toolbox_window", "Dia"); #endif gtk_signal_connect (GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC (toolbox_delete), NULL); gtk_signal_connect (GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC (toolbox_destroy), NULL); main_vbox = gtk_vbox_new (FALSE, 1); gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 1); #ifdef GNOME gnome_app_set_contents(GNOME_APP(window), main_vbox); #else gtk_container_add (GTK_CONTAINER (window), main_vbox); #endif gtk_widget_show (main_vbox); #ifdef GNOME gnome_toolbox_menus_create(window); #else menus_get_toolbox_menubar(&menubar, &accel_group); gtk_accel_group_attach (accel_group, GTK_OBJECT (window)); gtk_box_pack_start (GTK_BOX (main_vbox), menubar, FALSE, TRUE, 0); gtk_widget_show (menubar); #endif /* tooltips */ tool_tips = gtk_tooltips_new (); /* gtk_tooltips_set_colors (tool_tips, &colors[11], &main_vbox->style->fg[GTK_STATE_NORMAL]);*/ vbox = gtk_vbox_new (FALSE, 1); gtk_box_pack_start (GTK_BOX (main_vbox), vbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 0); gtk_widget_show (vbox); create_tools (vbox); create_sheets (vbox); create_color_area (vbox); create_lineprops_area (vbox); gtk_widget_show (window); toolbox_shell = window; }
void GTKMusicBrowser::CreateMenu(GtkWidget *topbox) { GtkItemFactoryEntry menu_items[] = { {"/_File", NULL, 0, 0, "<Branch>" }, {"/File/_New Playlist", "<control>N", (GtkItemFactoryCallback)new_plist, 0, 0 }, {"/File/_Open Playlist", "<control>O", (GtkItemFactoryCallback)open_list, 0, 0 }, {"/File/_Save Playlist", "<control>S", (GtkItemFactoryCallback)save_list, 0, 0 }, {"/File/Save Playlist _As","<control>A", (GtkItemFactoryCallback)saveas_list,0, 0 }, {"/File/sep1", NULL, 0, 0, "<Separator>" }, {"/File/_Import Tracks and Playlists","<control>I", (GtkItemFactoryCallback)import_list, 0, 0 }, {"/File/_Export Playlist", NULL, (GtkItemFactoryCallback)export_list, 0, 0 }, {"/File/sep0", NULL, 0, 0, "<Separator>" }, {"/File/Search Computer for Music", NULL, (GtkItemFactoryCallback)music_search, 0, 0 }, {"/File/sep2", NULL, 0, 0, "<Separator>" }, {"/File/_Close", "<control>Q", (GtkItemFactoryCallback)quit_menu, 0, 0 }, {"/_Edit", NULL, 0, 0, "<Branch>" }, {"/_Edit/_Add Items to Playlist", NULL, (GtkItemFactoryCallback)add_track_mb, 0, 0 }, {"/_Edit/Add _Tracks or Playlists from Disk", NULL, (GtkItemFactoryCallback)add_track, 0, 0 }, {"/_Edit/_Remove Items from My Music", NULL,(GtkItemFactoryCallback)delete_sel,0, 0 }, {"/_Edit/Add Stream to Favorites", NULL, (GtkItemFactoryCallback)add_stream, 0, 0 }, {"/_Edit/sep3", NULL, 0, 0, "<Separator>" }, {"/_Edit/Move _Up", NULL, (GtkItemFactoryCallback)move_up, 0, 0 }, {"/_Edit/Move _Down", NULL, (GtkItemFactoryCallback)move_down, 0, 0 }, {"/_Edit/sep4", NULL, 0, 0, "<Separator>" }, {"/_Edit/_Clear Playlist", NULL, (GtkItemFactoryCallback)clear_list, 0, 0 }, {"/_Edit/Edit _Info", NULL, (GtkItemFactoryCallback)infoedit, 0, 0 }, {"/_View", NULL, 0, 0, "<Branch>" }, {"/_View/View _Playlist Only",NULL, (GtkItemFactoryCallback)catalog_tog, 0, 0 }, {"/_View/_Options", NULL, (GtkItemFactoryCallback)options_show, 0, 0 }, {"/_Controls", NULL, 0, 0, "<Branch>" }, {"/_Controls/_Play", NULL, (GtkItemFactoryCallback)play_menu,0, 0 }, {"/_Controls/_Stop", NULL, (GtkItemFactoryCallback)stop_menu, 0, 0 }, {"/_Controls/sep6", NULL, 0, 0, "<Separator>" }, {"/_Controls/_Eject CD", NULL, (GtkItemFactoryCallback)eject_cd, 0, 0 }, {"/_Controls/sep65", NULL, 0, 0, "<Separator>" }, {"/_Controls/_Next Track", NULL, (GtkItemFactoryCallback)next_menu, 0, 0 }, {"/_Controls/Pre_vious Track", NULL, (GtkItemFactoryCallback)prev_menu, 0, 0 }, {"/_Controls/sep7", NULL, 0, 0, "<Separator>" }, {"/_Controls/Play Tracks in Nor_mal Order", NULL, (GtkItemFactoryCallback)sort_normal, 0, "<RadioItem>" }, {"/_Controls/Play Tracks in _Random Order", NULL, (GtkItemFactoryCallback)sort_random2, 0, "/Controls/Play Tracks in Normal Order" }, {"/_Controls/sep8", NULL, 0, 0, "<Separator>" }, {"/_Controls/Repeat N_o Tracks", NULL, (GtkItemFactoryCallback)repeat_none, 0, "<RadioItem>" }, {"/_Controls/Repeat _Current Track", NULL, (GtkItemFactoryCallback)repeat_one, 0, "/Controls/Repeat No Tracks" }, {"/_Controls/Repeat _All Tracks", NULL, (GtkItemFactoryCallback)repeat_all, 0, "/Controls/Repeat No Tracks" }, {"/_Sort Playlist", NULL, 0, 0, "<Branch>" }, {"/_Sort Playlist/by _Artist", NULL, (GtkItemFactoryCallback)sort_artist, 0, 0 }, {"/_Sort Playlist/by A_lbum", NULL, (GtkItemFactoryCallback)sort_album, 0, 0 }, {"/_Sort Playlist/by _Title", NULL, (GtkItemFactoryCallback)sort_title, 0, 0 }, {"/_Sort Playlist/by _Year", NULL, (GtkItemFactoryCallback)sort_year, 0, 0 }, {"/_Sort Playlist/by Trac_k Number", NULL, (GtkItemFactoryCallback)sort_track, 0, 0 }, {"/_Sort Playlist/by _Genre", NULL, (GtkItemFactoryCallback)sort_genre, 0, 0 }, {"/_Sort Playlist/by _Length", NULL, (GtkItemFactoryCallback)sort_time, 0, 0 }, {"/_Sort Playlist/by L_ocation", NULL, (GtkItemFactoryCallback)sort_location, 0, 0 }, {"/_Sort Playlist/by _Filename", NULL, (GtkItemFactoryCallback)sort_filename, 0, 0 }, {"/_Sort Playlist/by _Comment", NULL, (GtkItemFactoryCallback)sort_comment, 0, 0}, {"/_Sort Playlist/_Randomly", NULL, (GtkItemFactoryCallback)sort_random, 0, 0 }, {"/_Help", NULL, 0, 0, "<Branch>" }, {"/_Help/_Zinf Web Site", NULL, (GtkItemFactoryCallback)zinf_web, 0, 0 }, {"/_Help/_About", NULL, (GtkItemFactoryCallback)show_about, 0, 0 } }; int nmenu_items = sizeof(menu_items) / sizeof(menu_items[0]); GtkAccelGroup *accel_group; GtkWidget *separator; accel_group = gtk_accel_group_new(); menuFactory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<blah>", accel_group); gtk_item_factory_create_items(menuFactory, nmenu_items, menu_items, (void *)this); gtk_accel_group_attach(accel_group, GTK_OBJECT(musicBrowser)); gtk_box_pack_start(GTK_BOX(topbox), gtk_item_factory_get_widget( menuFactory, "<blah>"), FALSE, TRUE, 0); gtk_widget_show(gtk_item_factory_get_widget(menuFactory, "<blah>")); separator = gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(topbox), separator, FALSE, TRUE, 0); gtk_widget_show(separator); }