//returns number of item chosen int DoMenu() { int menu_choice[25]; newmenu_item m[25]; int num_options = 0; if ( Players[Player_num].callsign[0]==0 ) { RegisterPlayer(); return 0; } if ((Game_mode & GM_SERIAL) || (Game_mode & GM_MODEM)) { do_option(MENU_START_SERIAL); return 0; } create_main_menu(m, menu_choice, &num_options); do { keyd_time_when_last_pressed = timer_get_fixed_seconds(); // .. 20 seconds from now! if (main_menu_choice < 0 ) main_menu_choice = 0; Menu_draw_copyright = 1; main_menu_choice = newmenu_do2( "", NULL, num_options, m, autodemo_menu_check, main_menu_choice, Menu_pcx_name); if ( main_menu_choice > -1 ) do_option(menu_choice[main_menu_choice]); create_main_menu(m, menu_choice, &num_options); // may have to change, eg, maybe selected pilot and no save games. } while( Function_mode==FMODE_MENU ); // if (main_menu_choice != -2) // do_auto_demo = 0; // No more auto demos if ( Function_mode==FMODE_GAME ) gr_palette_fade_out( gr_palette, 32, 0 ); return main_menu_choice; }
//returns number of item chosen int DoMenu() { int menu_choice[25]; newmenu_item m[25]; int num_options = 0; if ( Players[Player_num].callsign[0]==0 ) { RegisterPlayer(); return 0; } if ((Game_mode & GM_SERIAL) || (Game_mode & GM_MODEM)) { do_option(MENU_START_SERIAL); return 0; } create_main_menu(m, menu_choice, &num_options); do { keyd_time_when_last_pressed = timer_get_fixed_seconds(); // .. 20 seconds from now! if (main_menu_choice < 0 ) main_menu_choice = 0; Menu_draw_copyright = 1; //added on 11/19/98 by Victor Rachels to add immediate join/start if(start_net_immediately == 1){ if ( gr_palette_faded_out ) {//fix black screen with -startnetgame gr_palette_fade_in( gr_palette, 32, 0 ); } do_option(MENU_START_NETGAME); start_net_immediately = 0; } else if(start_net_immediately == 2) { do_option(MENU_JOIN_NETGAME); start_net_immediately = 0; } else { //end this section addition - VR extern int Menu_Special; Menu_Special = 1; main_menu_choice = newmenu_do2(NULL, NULL, num_options, m, autodemo_menu_check, main_menu_choice, Menu_pcx_name); if ( main_menu_choice > -1 ) do_option(menu_choice[main_menu_choice]); } create_main_menu(m, menu_choice, &num_options); // may have to change, eg, maybe selected pilot and no save games. } while( Function_mode==FMODE_MENU ); // if (main_menu_choice != -2) // do_auto_demo = 0; // No more auto demos if ( Function_mode==FMODE_GAME ) gr_palette_fade_out( gr_palette, 32, 0 ); return main_menu_choice; }
static void panel_action_protocol_main_menu (GdkScreen *screen, guint32 activate_time) { PanelWidget *panel_widget; GtkWidget *menu; AppletInfo *info; info = panel_applet_get_by_type (PANEL_OBJECT_MENU_BAR, screen); if (info) { panel_menu_bar_popup_menu (PANEL_MENU_BAR (info->widget), activate_time); return; } info = panel_applet_get_by_type (PANEL_OBJECT_MENU, screen); if (info && panel_menu_button_is_main_menu (PANEL_MENU_BUTTON (info->widget))) { panel_menu_button_popup_menu (PANEL_MENU_BUTTON (info->widget), 1, activate_time); return; } panel_widget = panels->data; menu = create_main_menu (panel_widget); panel_toplevel_push_autohide_disabler (panel_widget->toplevel); gtk_menu_set_screen (GTK_MENU (menu), screen); gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 0, activate_time); }
static GtkWidget * panel_menu_button_create_menu (PanelMenuButton *button) { PanelWidget *panel_widget; if (button->priv->menu) return button->priv->menu; if (!button->priv->toplevel) return NULL; panel_widget = panel_toplevel_get_panel_widget (button->priv->toplevel); if (button->priv->use_menu_path && button->priv->path_root > FIRST_MENU && button->priv->path_root < LAST_MENU) { const char *filename; filename = panel_menu_path_root_to_filename (button->priv->path_root); button->priv->menu = create_applications_menu (filename, button->priv->menu_path, TRUE); } else button->priv->menu = create_main_menu (panel_widget); gtk_menu_attach_to_widget (GTK_MENU (button->priv->menu), GTK_WIDGET (button), (GtkMenuDetachFunc) panel_menu_button_menu_detacher); panel_menu_button_associate_panel (button); g_signal_connect_swapped (button->priv->menu, "deactivate", G_CALLBACK (panel_menu_button_menu_deactivated), button); return button->priv->menu; }
void main(int argc, char **argv) { int i=21,forcer=0; /* init variables. */ Display *p_disp; FILE *fpo; char text[]="MultiSliceRTPsession0"; /* Create the top-level shell widget and initialize the toolkit */ argcount = 0; XtSetArg(args[argcount], XmNallowShellResize, False); argcount++; XtSetArg(args[argcount], XmNtitle, APP_TITLE); argcount++; XtSetArg(args[argcount], XmNiconName, ICON_TITLE); argcount++; top_level = XtAppInitialize(&app, "Slice", NULL, 0, &argc, argv, NULL, args, argcount); theAppName = argv[0]; #include "command_slice.c" /* Create the main window widget */ argcount = 0; /* XtSetArg(args[argcount], XmNwidth , WIDTH); argcount++; XtSetArg(args[argcount], XmNheight, HEIGHT); argcount++; */ main_window = XmCreateRowColumn(top_level, "Main", args, argcount); XtManageChild(main_window); p_disp=XtDisplay(main_window); if(forcer != 1) { /* if(XFetchBytes(p_disp,&i) != NULL){ if(i==21){ fprintf(stderr,"\nOnly one copy of MultiSlice can run at one time...\nslice -forceload will forcibly load a second copy.\nSelf-Destruct Initialised...\nSecond copy destructed...OK\n"); XtCloseDisplay(XtDisplay(main_window));exit(-1);}} i=21; XStoreBytes(p_disp,text,i); */ if((fopen("slicetempyhsTN","r")) != 0){ fprintf(stderr,"\nOnly one copy of MultiSlice RTP can run at one time...\nslice -forceload will forcibly load a second copy if \n the first one was terminated incorrectly.\n"); system("cat slicetempyhsTN"); fprintf(stderr,"\nSelf-destruct initialised...\nSecond copy destructed...OK\n"); XtCloseDisplay(XtDisplay(main_window));exit(-1);}} i=0; strcpy(tempfileold,"slicetempyhsT"); strcpy(tempfilenew,"slicetempyhsT"); addcharac[1]='\0'; strcat(tempfilenew,addcharac); system("echo First copy of MultiSliceRTP started at :- >slicetempyhsTN"); system("date >>slicetempyhsTN"); for(i=0;i<11;i++){yhs_filename[i]=0;squash[i]=0;squash[i+10]=0;} i=0; fprintf(stderr,"\n\n-------------------MultiSlice RTP Status Messages-------------------\n"); fprintf(stderr,"Launching application..."); system("date"); fprintf(stderr,"Load and select file(s) to process...\n"); /* Create the main menu */ create_main_menu(main_window); /* Create the drawing area 1 */ argcount = 0; XtSetArg(args[argcount], XmNwidth , IMAGE_WIDTH); argcount++; XtSetArg(args[argcount], XmNheight, IMAGE_HEIGHT); argcount++; draw_1 = XmCreateDrawingArea(top_level, "draw_1", args, argcount); /* XtManageChild(draw_1); */ /* Create the drawing area 2 */ argcount = 0; XtSetArg(args[argcount], XmNwidth , IMAGE_WIDTH); argcount++; XtSetArg(args[argcount], XmNheight, IMAGE_HEIGHT); argcount++; draw_2 = XmCreateDrawingArea(top_level, "draw_2", args, argcount); /* XtManageChild(draw_2); */ /* Create a watch cursor */ theCursor = XCreateFontCursor(XtDisplay(main_window), XC_watch); /* Create the icon window for the application */ app_icon = XCreateBitmapFromData(XtDisplay(top_level), DefaultRootWindow(XtDisplay(top_level)), icon_bits, icon_width, icon_height); argcount = 0; XtSetArg(args[argcount], XmNiconPixmap, app_icon); argcount++; XtSetValues(top_level, args, argcount); XtAppAddTimeOut(app,2*1000,update_time,NULL); /* Realize all widgets */ XtRealizeWidget(top_level); /* Make some initializations */ setup_display (top_level); create_region_list(®ion_list); /* Event handling loop--keep processing events until done */ XtAppMainLoop(app); }
GtkWidget * reader_window_new(GtkApplication *application, CainteoirSettings *settings, CainteoirSpeechSynthesizers *synthesizers, const gchar *filename) { ReaderWindow *reader = READER_WINDOW(g_object_new(READER_TYPE_WINDOW, "application", application, nullptr)); ReaderWindowPrivate *priv = READER_WINDOW_PRIVATE(reader); priv->self = GTK_WIDGET(reader); priv->settings = CAINTEOIR_SETTINGS(g_object_ref(G_OBJECT(settings))); priv->tts = CAINTEOIR_SPEECH_SYNTHESIZERS(g_object_ref(G_OBJECT(synthesizers))); priv->application = READER_APPLICATION(application); gtk_window_set_default_size(GTK_WINDOW(reader), INDEX_PANE_WIDTH + DOCUMENT_PANE_WIDTH + 5, 300); gtk_window_set_title(GTK_WINDOW(reader), i18n("Cainteoir Text-to-Speech")); GtkWidget *layout = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_container_add(GTK_CONTAINER(reader), layout); priv->header = gtk_header_bar_new(); gtk_header_bar_set_title(GTK_HEADER_BAR(priv->header), i18n("Cainteoir Text-to-Speech")); if (cainteoir_settings_get_boolean(priv->settings, "window", "have-csd", TRUE)) { // Use client-side decorations (e.g. on Gnome Shell and Unity) ... gtk_header_bar_set_show_close_button(GTK_HEADER_BAR(priv->header), TRUE); gtk_window_set_titlebar(GTK_WINDOW(reader), priv->header); } else { // Don't use client-side decorations (e.g. on KDE) ... gtk_box_pack_start(GTK_BOX(layout), priv->header, FALSE, FALSE, 0); } priv->actions = create_action_group(priv); gtk_widget_insert_action_group(GTK_WIDGET(reader), "cainteoir", G_ACTION_GROUP(priv->actions)); priv->view = reader_document_view_new(priv->settings); gtk_box_pack_start(GTK_BOX(layout), priv->view, TRUE, TRUE, 0); reader_document_view_set_index_pane_close_action_name(READER_DOCUMENT_VIEW(priv->view), "cainteoir.side-pane"); GtkWidget *bottombar = gtk_toolbar_new(); gtk_widget_set_size_request(bottombar, -1, 45); gtk_style_context_add_class(gtk_widget_get_style_context(bottombar), "bottombar"); gtk_box_pack_start(GTK_BOX(layout), bottombar, FALSE, FALSE, 0); GtkToolItem *record = gtk_tool_button_new(gtk_image_new_from_icon_name("media-record-symbolic", GTK_ICON_SIZE_SMALL_TOOLBAR), nullptr); gtk_toolbar_insert(GTK_TOOLBAR(bottombar), record, -1); gtk_actionable_set_action_name(GTK_ACTIONABLE(record), "cainteoir.record"); priv->play_stop = gtk_tool_button_new(nullptr, nullptr); gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(priv->play_stop), "media-playback-start-symbolic"); gtk_toolbar_insert(GTK_TOOLBAR(bottombar), priv->play_stop, -1); gtk_actionable_set_action_name(GTK_ACTIONABLE(priv->play_stop), "cainteoir.play-stop"); GtkToolItem *open = gtk_tool_button_new(gtk_image_new_from_icon_name("document-open-symbolic", GTK_ICON_SIZE_SMALL_TOOLBAR), nullptr); gtk_toolbar_insert(GTK_TOOLBAR(bottombar), open, -1); gtk_actionable_set_action_name(GTK_ACTIONABLE(open), "cainteoir.open"); GtkToolItem *timebar = gtk_tool_item_new(); gtk_tool_item_set_expand(GTK_TOOL_ITEM(timebar), TRUE); gtk_toolbar_insert(GTK_TOOLBAR(bottombar), timebar, -1); priv->timebar = cainteoir_timebar_new(); gtk_style_context_add_class(gtk_widget_get_style_context(priv->timebar), "timebar"); gtk_container_add(GTK_CONTAINER(timebar), priv->timebar); priv->previous = gtk_button_new(); gtk_button_set_image(GTK_BUTTON(priv->previous), gtk_image_new_from_icon_name("go-previous-symbolic", GTK_ICON_SIZE_SMALL_TOOLBAR)); gtk_header_bar_pack_start(GTK_HEADER_BAR(priv->header), priv->previous); gtk_actionable_set_action_name(GTK_ACTIONABLE(priv->previous), "cainteoir.view-previous"); GtkWidget *menu_button = gtk_menu_button_new(); gtk_button_set_image(GTK_BUTTON(menu_button), gtk_image_new_from_icon_name(HAMBURGER_MENU_ICON, GTK_ICON_SIZE_SMALL_TOOLBAR)); gtk_menu_button_set_menu_model(GTK_MENU_BUTTON(menu_button), create_main_menu()); gtk_header_bar_pack_end(GTK_HEADER_BAR(priv->header), menu_button); g_signal_connect(reader, "window-state-event", G_CALLBACK(on_window_state_changed), priv->settings); g_signal_connect(reader, "delete_event", G_CALLBACK(on_window_delete), priv); g_signal_connect(reader, "show", G_CALLBACK(on_window_show), priv); g_signal_connect(priv->tts, "speaking", G_CALLBACK(on_speaking), priv); g_signal_connect(priv->tts, "text-range-changed", G_CALLBACK(on_text_range_changed), priv); gtk_window_resize(GTK_WINDOW(reader), cainteoir_settings_get_integer(priv->settings, "window", "width", 700), cainteoir_settings_get_integer(priv->settings, "window", "height", 445)); gtk_window_move(GTK_WINDOW(reader), cainteoir_settings_get_integer(priv->settings, "window", "left", 0), cainteoir_settings_get_integer(priv->settings, "window", "top", 0)); if (cainteoir_settings_get_boolean(priv->settings, "window", "maximized", FALSE)) gtk_window_maximize(GTK_WINDOW(reader)); if (filename) reader_window_load_document(reader, filename); else { gchar *prev_filename = cainteoir_settings_get_string(priv->settings, "document", "filename", nullptr); if (prev_filename) { reader_window_load_document(reader, prev_filename); g_free(prev_filename); } } gchar *anchor = cainteoir_settings_get_string(priv->settings, "highlight", "anchor", "none"); if (anchor) { if (!strcmp(anchor, "top")) reader_window_set_highlight_anchor(reader, GTK_ALIGN_START); else if (!strcmp(anchor, "middle")) reader_window_set_highlight_anchor(reader, GTK_ALIGN_CENTER); else if (!strcmp(anchor, "bottom")) reader_window_set_highlight_anchor(reader, GTK_ALIGN_END); g_free(anchor); } return GTK_WIDGET(reader); }
static void status_icon_popup_menu_cb(GtkStatusIcon *status_icon, guint button, guint activate_time, gpointer user_data) { gtk_menu_popup(GTK_MENU(create_main_menu()), NULL, NULL, gtk_status_icon_position_menu, status_icon, button,activate_time); }