Пример #1
0
int
main (int argc, char **argv)
{
	if (argc == 2) {
		fp = fopen (argv[1], "r");
		
		alexsdl_init (WIDTH, HEIGHT, SDL_HWSURFACE | SDL_DOUBLEBUF);
		
		SDL_WM_SetCaption ("RTS loadmap", NULL);

		run_inits ();
		
		while (1) {
			process_input ();
			SDL_FillRect (screen, NULL, 0x000000);
			selecting ();
			moving ();
			draw ();
			SDL_Flip (screen);
		}
	} else {
		printf ("Invalid input\n");
		return (1);
	}

	return (0);
}
Пример #2
0
/* Return the rectangle coordinates spanned by the mouse pointer and the starting point
 */
Rectangle SelectObserver::getDeviceArea() const {
	// get the mouse position relative to the starting point
	DeviceVector delta(_current - _start);

	// If the user is selecting or dragging, the SelectionBox is returned...
	if (selecting() && fabs(delta.x()) > _epsilon.x() && fabs(delta.y()) > _epsilon.y())
	{
		return Rectangle::ConstructFromArea(_start, delta);
	}
	else // ...otherwise return the null area
	{
		return Rectangle();
	}
}
Пример #3
0
int
main (int argc, char **argv)
{
	alexsdl_init (WIDTH, HEIGHT, SDL_HWSURFACE | SDL_DOUBLEBUF);

	run_inits ();

	while (1) {
		process_input ();
		SDL_FillRect (screen, NULL, 0x000000);
		selecting ();
		moving ();
		draw ();
		SDL_Flip (screen);
	}

	return (0);
}
Пример #4
0
int
main (int argc, char **argv)
{
	if (argc == 2) {
		fp = fopen (argv[1], "r");

		init_pathblock ();
	}
	alexsdl_init (WIDTH, HEIGHT, SDL_HWSURFACE | SDL_DOUBLEBUF);

	run_inits ();

	while (1) {
		process_input ();
		SDL_FillRect (screen, NULL, 0x000000);
		selecting ();
		moving ();
		draw ();
		SDL_Flip (screen);
	}

	return (0);
}
Пример #5
0
void TIGLViewerWindow::connectSignals()
{
    connect(newAction, SIGNAL(triggered()), this, SLOT(newFile()));
    connect(openAction, SIGNAL(triggered()), this, SLOT(open()));
    connect(openScriptAction, SIGNAL(triggered()), this, SLOT(openScript()));
    connect(closeAction, SIGNAL(triggered()), this, SLOT(closeConfiguration()));

    for (int i = 0; i < MaxRecentFiles; ++i) {
        recentFileActions[i] = new QAction(this);
        recentFileActions[i]->setVisible(false);
        connect(recentFileActions[i], SIGNAL(triggered()),
                this, SLOT(openRecentFile()));
    }

    connect(saveAction, SIGNAL(triggered()), this, SLOT(save()));
    connect(saveScreenshotAction, SIGNAL(triggered()), this, SLOT(makeScreenShot()));
    connect(setBackgroundAction, SIGNAL(triggered()), this, SLOT(setBackgroundImage()));
    connect(exitAction, SIGNAL(triggered()), this, SLOT(close()));
    connect(aboutAction, SIGNAL(triggered()), this, SLOT(about()));
    connect(aboutQtAction, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
    connect(aboutQtAction, SIGNAL(triggered()), this, SLOT(aboutQt()));

    // Misc drawing actions
    connect(drawPointAction, SIGNAL(triggered()), this, SLOT(drawPoint()));
    connect(drawVectorAction, SIGNAL(triggered()), this, SLOT(drawVector()));
    

    // view->actions menu
    connect(fitAction, SIGNAL(triggered()), myOCC, SLOT(fitExtents()));
    connect(fitAllAction, SIGNAL(triggered()), myOCC, SLOT(fitAll()));
    //connect(zoomAction, SIGNAL(triggered()), myOCC, SLOT(fitArea()));
    connect(zoomAction, SIGNAL(triggered()),myOCC, SLOT(zoom()));
    connect(panAction, SIGNAL(triggered()), myOCC, SLOT(pan()));
    connect(rotAction, SIGNAL(triggered()), myOCC, SLOT(rotation()));
    connect(selectAction, SIGNAL(triggered()), myOCC, SLOT(selecting()));

    // view->grid menu
    connect(gridOnAction, SIGNAL(toggled(bool)), myScene, SLOT(toggleGrid(bool)));
    connect(gridXYAction, SIGNAL(triggered()), myScene, SLOT(gridXY()));
    connect(gridXZAction, SIGNAL(triggered()), myScene, SLOT(gridXZ()));
    connect(gridYZAction, SIGNAL(triggered()), myScene, SLOT(gridYZ()));
    connect(gridRectAction, SIGNAL(triggered()), myScene, SLOT(gridRect()));
    connect(gridCircAction, SIGNAL(triggered()), myScene, SLOT(gridCirc()));

    // Standard View
    connect(viewFrontAction, SIGNAL(triggered()), myOCC, SLOT(viewFront()));
    connect(viewBackAction, SIGNAL(triggered()), myOCC, SLOT(viewBack()));
    connect(viewTopAction, SIGNAL(triggered()), myOCC, SLOT(viewTop()));
    connect(viewBottomAction, SIGNAL(triggered()), myOCC, SLOT(viewBottom()));
    connect(viewLeftAction, SIGNAL(triggered()), myOCC, SLOT(viewLeft()));
    connect(viewRightAction, SIGNAL(triggered()), myOCC, SLOT(viewRight()));
    connect(viewAxoAction, SIGNAL(triggered()), myOCC, SLOT(viewAxo()));
    connect(viewGridAction, SIGNAL(triggered()), myOCC, SLOT(viewGrid()));
    connect(viewResetAction, SIGNAL(triggered()), myOCC, SLOT(viewReset()));
    connect(viewZoomInAction, SIGNAL(triggered()), myOCC, SLOT(zoomIn()));
    connect(viewZoomOutAction, SIGNAL(triggered()), myOCC, SLOT(zoomOut()));
    connect(showConsoleAction, SIGNAL(toggled(bool)), consoleDockWidget, SLOT(setVisible(bool)));
    connect(consoleDockWidget, SIGNAL(visibilityChanged(bool)), showConsoleAction, SLOT(setChecked(bool)));
    connect(showWireframeAction, SIGNAL(toggled(bool)), myScene, SLOT(wireFrame(bool)));

    connect(openTimer, SIGNAL(timeout()), this, SLOT(reopenFile()));

    // The co-ordinates from the view
    connect( myOCC, SIGNAL(mouseMoved(V3d_Coordinate,V3d_Coordinate,V3d_Coordinate)),
             this,   SLOT(xyzPosition(V3d_Coordinate,V3d_Coordinate,V3d_Coordinate)) );

    // Add a point from the view
    connect( myOCC, SIGNAL(pointClicked(V3d_Coordinate,V3d_Coordinate,V3d_Coordinate)),
             this,   SLOT (addPoint    (V3d_Coordinate,V3d_Coordinate,V3d_Coordinate)) );

    connect( myOCC, SIGNAL(sendStatus(const QString)), this,  SLOT  (statusMessage(const QString)) );

    connect(stdoutStream, SIGNAL(sendString(QString)), console, SLOT(output(QString)));
    connect(errorStream , SIGNAL(sendString(QString)), console, SLOT(output(QString)));

    connect(logDirect.get(), SIGNAL(newMessage(QString)), console, SLOT(output(QString)));

    connect(scriptEngine, SIGNAL(scriptResult(QString)), console, SLOT(output(QString)));
    connect(scriptEngine, SIGNAL(scriptError(QString)), console, SLOT(outputError(QString)));
    connect(scriptEngine, SIGNAL(evalDone()), console, SLOT(endCommand()));
    connect(console, SIGNAL(onChange(QString)), scriptEngine, SLOT(textChanged(QString)));
    connect(console, SIGNAL(onCommand(QString)), scriptEngine, SLOT(eval(QString)));

    connect(settingsAction, SIGNAL(triggered()), this, SLOT(changeSettings()));
}
Пример #6
0
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(selecting()){
				use_first_node_locked();
			}
			unlock_ncurses();
			break;
		case KEY_END:
			lock_ncurses();
			if(selecting()){
				use_last_node_locked();
			}
			unlock_ncurses();
			break;
		case KEY_PPAGE:
			lock_ncurses();
			if(selecting()){
				use_prev_nodepage_locked();
			}
			unlock_ncurses();
			break;
		case KEY_NPAGE:
			lock_ncurses();
			if(selecting()){
				use_next_nodepage_locked();
			}
			unlock_ncurses();
			break;
		case KEY_UP: case 'k':
			lock_ncurses();
			if(!selecting()){
				use_prev_iface_locked(w,&details);
			}else{
				use_prev_node_locked();
			}
			unlock_ncurses();
			break;
		case KEY_DOWN: case 'j':
			lock_ncurses();
			if(!selecting()){
				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 9: // Tab FIXME
			lock_ncurses();
				toggle_focus();
			unlock_ncurses();
			break;
		case 12: // Ctrl-L FIXME
			lock_ncurses();{
				redraw_screen_locked();
			}unlock_ncurses();
			break;
		case '\r': case '\n': case KEY_ENTER:
			lock_ncurses();{
				select_iface_locked();
			}unlock_ncurses();
			break;
		case KEY_ESC: case KEY_BACKSPACE:
			lock_ncurses();{
				deselect_iface_locked();
			}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_subwindow_pinning();
			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);
}