int ImagesDisplay::create_menus(void) { main_menubar = new QMenuBar(this); window_menu = main_menubar->addMenu(tr("&Window")); toggle_control_panel = new QAction(tr("Toggle Control panel"), this); window_menu->addAction(toggle_control_panel); connect(toggle_control_panel, SIGNAL(triggered()), this, SLOT(toggle_panel())); toggle_explorer_panel = new QAction(tr("Toggle Explorer panel"), this); window_menu->addAction(toggle_explorer_panel); connect(toggle_explorer_panel, SIGNAL(triggered()), this, SLOT(toggle_explorer())); //toggle_full_screen = new QAction(tr("Show full screen"), this); //window_menu->addAction(toggle_full_screen); //connect(toggle_full_screen, SIGNAL(triggered()), this, SLOT(toggle_fullscreen())); main_menubar->show(); return (0); }
ImagesDisplay::ImagesDisplay(QWidget *parent,QApplication *App) : QGLWidget(parent = 0) { main_app = App; panel = new controlPanel(0,&ima_info); visible_control_panel = true; full_screen_on = false; threshold_val = 0.5; //reload_file_action = new QAction(tr("display load new file"), this); connect(panel, SIGNAL(display_new_file()), this, SLOT(load_new_file())); connect(panel->hor_slider, SIGNAL(valueChanged(int)), this, SLOT(change_threshold_val(int))); connect(panel, SIGNAL(closing_panel()), this, SLOT(toggle_panel())); explorer = new scannerFileDialog(0, &ima_info); connect(explorer, SIGNAL(load_new_project(int,int,QString*)), this, SLOT(load_new_project(int,int,QString*))); visible_explorer_panel = true; connect(explorer, SIGNAL(closing_panel()), this, SLOT(toggle_explorer())); create_menus(); ima_info.update_screen = 1; }
static void * ncurses_input_thread(void *unsafe_marsh){ struct ncurses_input_marshal *nim = unsafe_marsh; WINDOW *w = nim->w; int ch; active = NULL; // No subpanels initially while((ch = getch()) != 'q' && ch != 'Q'){ switch(ch){ case KEY_HOME: lock_ncurses(); if(selection_active){ use_first_node_locked(); } unlock_ncurses(); break; case KEY_END: lock_ncurses(); if(selection_active){ use_last_node_locked(); } unlock_ncurses(); break; case KEY_PPAGE: lock_ncurses(); if(selection_active){ use_prev_nodepage_locked(); } unlock_ncurses(); break; case KEY_NPAGE: lock_ncurses(); if(selection_active){ use_next_nodepage_locked(); } unlock_ncurses(); break; case KEY_UP: case 'k': lock_ncurses(); if(!selection_active){ use_prev_iface_locked(w,&details); }else{ use_prev_node_locked(); } unlock_ncurses(); break; case KEY_DOWN: case 'j': lock_ncurses(); if(!selection_active){ use_next_iface_locked(w,&details); }else{ use_next_node_locked(); } unlock_ncurses(); break; case KEY_RESIZE: lock_ncurses();{ resize_screen_locked(w); }unlock_ncurses(); break; case 12: // Ctrl-L FIXME lock_ncurses();{ redraw_screen_locked(); }unlock_ncurses(); break; case 13: // Enter FIXME lock_ncurses();{ if(select_iface_locked() == 0){ selection_active = 1; } }unlock_ncurses(); break; case KEY_BACKSPACE: lock_ncurses();{ deselect_iface_locked(); selection_active = 0; }unlock_ncurses(); break; case 'l': lock_ncurses(); toggle_panel(w,&diags,display_diags_locked); unlock_ncurses(); break; case 'D': lock_ncurses(); resolve_selection(w); unlock_ncurses(); break; case 'r': lock_ncurses(); reset_current_interface_stats(w); unlock_ncurses(); break; case 'p': lock_ncurses(); toggle_promisc_locked(w); unlock_ncurses(); break; case 'd': lock_ncurses(); down_interface_locked(w); unlock_ncurses(); break; case 's': lock_ncurses(); sniff_interface_locked(w); unlock_ncurses(); break; case '+': case KEY_RIGHT: lock_ncurses(); expand_iface_locked(); unlock_ncurses(); break; case '-': case KEY_LEFT: lock_ncurses(); collapse_iface_locked(); unlock_ncurses(); break; case 'v':{ lock_ncurses(); toggle_panel(w,&details,display_details_locked); unlock_ncurses(); break; }case 'n':{ lock_ncurses(); toggle_panel(w,&network,display_network_locked); unlock_ncurses(); break; }case 'e':{ lock_ncurses(); toggle_panel(w,&environment,display_env_locked); unlock_ncurses(); break; }case 'w':{ lock_ncurses(); toggle_panel(w,&channels,display_channels_locked); unlock_ncurses(); break; }case 'b':{ lock_ncurses(); toggle_panel(w,&bridging,display_bridging_locked); unlock_ncurses(); break; }case 'h':{ lock_ncurses(); toggle_panel(w,&help,display_help_locked); unlock_ncurses(); break; }default:{ const char *hstr = !help.p ? " ('h' for help)" : ""; // wstatus() locks/unlocks, and calls screen_update() if(isprint(ch)){ wstatus(w,"unknown command '%c'%s",ch,hstr); }else{ wstatus(w,"unknown scancode %d%s",ch,hstr); } break; } } } wstatus(w,"%s","shutting down"); // we can't use raise() here, as that sends the signal only // to ourselves, and we have it masked. pthread_kill(nim->maintid,SIGINT); pthread_exit(NULL); }