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;
}
Exemple #2
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();
}
Exemple #3
0
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;
}