int main(int ac, char **av) { WINDOW *my_wins[3]; PANEL *my_panels[3]; setlocale(LC_ALL, ""); Explorer exp((ac < 2) ? "/" : av[1]); exp.sort(); MenuLeft menu_left(&exp); MenuRight menu_right(&exp); initCurses(); initColor(); init_wins(my_wins, 3); menu_left.setup(my_wins[0]); menu_right.setup(my_wins[1]); traceExplorateur(); refresh(); setUpPanel(my_panels, my_wins); eventManager(&menu_left, &menu_right, my_wins[2], my_panels); endwin(); std::cout << exp << std::endl; return 0; }
void menu_control(uint8_t c) { if(c == '0') menu_goto(menu_left(menu_current())); else if(c=='8') menu_goto(menu_right(menu_current())); else if(c=='*') { menu_goto(menu_up(menu_current())); if(menu_current() == 0) menu_goto(menu_down(menu_current())); } else if(c=='#') { if(menu_is_leaf(menu_current())) menu_action(); else menu_goto(menu_down(menu_current())); } menu_print(); }
int main( int argc, char *argv[] ) { #ifdef __APPLE__ char lofasz[1024]; getwd(lofasz); printf("%s\n", lofasz); chdir(query_resource_directory()); getwd(lofasz); printf("%s\n", lofasz); #elif defined __HAIKU__ chdir(dirname(argv[0])); #endif #ifdef __PSP__ psp_init( ); #endif if( init() ) { BOOL done, needrender, jletgoh, jletgov; paused = FALSE; jletgoh = FALSE; jletgov = FALSE; SDL_AddTimer( FPSTIME, timing, 0 ); done = FALSE; needrender = FALSE; while( !done ) { SDL_Event event; SDL_WaitEvent( &event ); do { switch( event.type ) { case SDL_JOYAXISMOTION: switch( what_are_we_doing ) { case WAWD_GAME: switch( event.jaxis.axis ) { case 0: if( event.jaxis.value < -3200 ) { jleft = TRUE; jright = FALSE; } else if( event.jaxis.value > 3200 ) { jleft = FALSE; jright = TRUE; } else { jleft = FALSE; jright = FALSE; } break; } gleft = pleft || jleft; gright = pright || jright; break; case WAWD_MENU: switch( event.jaxis.axis ) { case 0: if( event.jaxis.value < -3200 ) { if( !jletgoh ) menu_left(); jletgoh = TRUE; } else if( event.jaxis.value > 3200 ) { if( !jletgoh ) menu_right(); jletgoh = TRUE; } else { jletgoh = FALSE; } break; case 1: if( event.jaxis.value < -3200 ) { if( !jletgov ) menu_up(); jletgov = TRUE; } else if( event.jaxis.value > 3200 ) { if( !jletgov ) menu_down(); jletgov = TRUE; } else { jletgov = FALSE; } break; } break; } break; case SDL_JOYBUTTONDOWN: switch( what_are_we_doing ) { case WAWD_GAME: switch( event.jbutton.button ) { case 0: jjump = TRUE; gjump = TRUE; break; } break; } break; case SDL_JOYBUTTONUP: switch( what_are_we_doing ) { case WAWD_GAME: switch( event.jbutton.button ) { case 0: jjump = FALSE; gjump = pjump; break; case 1: spacehit = TRUE; break; case 2: enterhit = TRUE; break; } break; case WAWD_TITLES: go_menus(); break; case WAWD_MENU: done |= menu_do(); break; case WAWD_ENDING: if( endingstate < 9 ) endingstate = 11; break; } break; case SDL_MOUSEMOTION: mousx = event.motion.x/2; mousy = event.motion.y/2; break; case SDL_KEYDOWN: switch( what_are_we_doing ) { case WAWD_TITLES: break; case WAWD_MENU: break; case WAWD_GAME: if( ( event.key.keysym.sym == keyleft ) || ( event.key.keysym.sym == keyleft2 ) ) { pleft = TRUE; gleft = TRUE; break; } if( ( event.key.keysym.sym == keyright ) || ( event.key.keysym.sym == keyright2 ) ) { pright = TRUE; gright = TRUE; break; } if( ( event.key.keysym.sym == keyjump ) || ( event.key.keysym.sym == keyjump2 ) ) { pjump = TRUE; gjump = TRUE; break; } if( ( event.key.keysym.sym == keyuse ) || ( event.key.keysym.sym == keyuse2 ) ) { spacehit = TRUE; break; } if( ( event.key.keysym.sym == keyhint ) || ( event.key.keysym.sym == keyhint2 ) ) { enterhit = TRUE; break; } switch( event.key.keysym.sym ) { /* case 's': case 'S': { FILE *f; f = fopen( "deleteme.tmp", "wb" ); if( !f ) break; fprintf( f, "%d %d", gid.x, gid.y ); fclose( f ); } break; case 'l': case 'L': { FILE *f; int x, y; f = fopen( "deleteme.tmp", "rb" ); if( !f ) break; if( fscanf( f, "%d %d", &x, &y ) == 2 ) { gid.x = x; gid.px = x>>8; gid.y = y; gid.py = y>>8; } fclose( f ); fgx = gid.px-160; fgy = gid.py-140; } break; */ case SDLK_F11: case SDLK_DELETE: // Amiga keyboards have no F11, so also use DEL if( musicon ) { musicon = FALSE; if( moozak ) Mix_FadeOutMusic( 500 ); } else { musicon = TRUE; if( moozak ) Mix_FadeInMusic( moozak, -1, 500 ); } break; case SDLK_F12: case SDLK_HELP: // Amiga keyboards have no F12, so also use HELP paused = !paused; if( paused ) giddy_say( "Paused" ); break; default: break; } break; } break; case SDL_KEYUP: switch( what_are_we_doing ) { case WAWD_ENDING: if( endingstate < 9 ) endingstate = 11; break; case WAWD_TITLES: go_menus(); break; case WAWD_DEFINE_A_KEY: define_a_key( event.key.keysym.sym ); break; case WAWD_MENU: switch( event.key.keysym.sym ) { case SDLK_UP: menu_up(); break; case SDLK_DOWN: menu_down(); break; case SDLK_LEFT: menu_left(); break; case SDLK_RIGHT: menu_right(); break; case SDLK_RETURN: case SDLK_SPACE: done |= menu_do(); break; case SDLK_ESCAPE: done = TRUE; break; default: if( ( event.key.keysym.sym == keyjump ) || ( event.key.keysym.sym == keyjump2 ) || ( event.key.keysym.sym == keyhint ) || ( event.key.keysym.sym == keyhint2 ) || ( event.key.keysym.sym == keyuse ) || ( event.key.keysym.sym == keyuse2 ) ) { done |= menu_do(); break; } break; } break; case WAWD_GAME: if( ( event.key.keysym.sym == keyleft ) || ( event.key.keysym.sym == keyleft2 ) ) { pleft = FALSE; gleft = jleft; break; } if( ( event.key.keysym.sym == keyright ) || ( event.key.keysym.sym == keyright2 ) ) { pright = FALSE; gright = jright; break; } if( ( event.key.keysym.sym == keyjump ) || ( event.key.keysym.sym == keyjump2 ) ) { pjump = FALSE; gjump = jjump; break; } switch( event.key.keysym.sym ) { case SDLK_ESCAPE: titlestate = 0; what_are_we_doing = WAWD_TITLES; break; default: break; } break; } break; case SDL_QUIT: done = TRUE; break; case SDL_USEREVENT: needrender = TRUE; break; } } while( SDL_PollEvent( &event ) ); if( needrender ) { needrender = FALSE; switch( what_are_we_doing ) { case WAWD_TITLES: case WAWD_MENU: case WAWD_DEFINE_A_KEY: done |= render_titles(); break; case WAWD_GAME: done |= render(); break; case WAWD_ENDING: done |= render_ending(); break; } } } } shut(); return 0; }