コード例 #1
0
ファイル: nihgui.cpp プロジェクト: BorisCarvajal/allegro5
Dialog::Dialog(const Theme & theme, ALLEGRO_DISPLAY *display,
      int grid_m, int grid_n):
   theme(theme),
   display(display),
   grid_m(grid_m),
   grid_n(grid_n),
   x_padding(1),
   y_padding(1),

   draw_requested(true),
   quit_requested(false),
   mouse_over_widget(NULL),
   mouse_down_widget(NULL),
   key_widget(NULL),

   event_handler(NULL)
{
   this->event_queue = al_create_event_queue();
   al_register_event_source(this->event_queue, al_get_keyboard_event_source());
   al_register_event_source(this->event_queue, al_get_mouse_event_source());
   al_register_event_source(this->event_queue, al_get_display_event_source(display));
   if (al_is_touch_input_installed()) {
      al_register_event_source(this->event_queue,
         al_get_touch_input_mouse_emulation_event_source());
   }
}
コード例 #2
0
	void SceneManager::registerEventSources()
	{
		al_register_event_source(queue, al_get_keyboard_event_source());
		al_register_event_source(queue, al_get_mouse_event_source());
		al_register_event_source(queue, al_get_timer_event_source(m_gameTimer));
		al_register_event_source(queue, al_get_display_event_source(m_devices->getDisplay()->getContext()));
#ifdef CGE_MOBILE
		al_register_event_source(queue, al_get_touch_input_event_source());
		al_register_event_source(queue, al_get_touch_input_mouse_emulation_event_source());
        //al_register_event_source(queue, al_get_joystick_event_source());
#endif
		Log::write("Scene Manager","Event sources registered");
	}
コード例 #3
0
/*
 * keyboard driver is called first, so initialize allegro here 
 */
int init_allegro(void){

    if(!al_init())
    {
#if _ANDROID_
	__android_log_print(ANDROID_LOG_INFO,"AllegroActivity","Error!, Allegro has failed to initialize.");	
#else      
        fprintf(stderr,"Error!, Allegro has failed to initialize.\n");
#endif
	return -1;
    }  else {
        //fprintf(stderr,"al_init successful\n");
    }
#if _ANDROID_    
    //al_set_new_display_flags(ALLEGRO_FULLSCREEN_WINDOW);
    al_set_new_display_flags(ALLEGRO_WINDOWED);
    //al_set_new_display_option(ALLEGRO_COLOR_SIZE,32,ALLEGRO_SUGGEST);
    //al_set_new_display_option(ALLEGRO_CAN_DRAW_INTO_BITMAP,1,ALLEGRO_REQUIRE);
#endif  
    //al_set_new_display_option(ALLEGRO_COLOR_SIZE,32,ALLEGRO_SUGGEST);
    display = al_create_display(SCREEN_WIDTH, SCREEN_HEIGHT);
    //display = al_create_display(800, 600);

    if(display == NULL)
    {
#if _ANDROID_
	__android_log_print(ANDROID_LOG_INFO,"AllegroActivity","Error!, Failed to create the display.");	
#else      
        fprintf(stderr,"Error!, Failed to create the display.");
#endif
	return -1;
    }    
    al_set_system_mouse_cursor(display,ALLEGRO_SYSTEM_MOUSE_CURSOR_DEFAULT);

    if(!al_install_keyboard())
    {
        fprintf(stderr,"Error!, Failed to install keyboard.\n");
        return -1;
    }  else {
        //fprintf(stderr,"al_install_keyboard successful\n");
    }   

    if(!al_install_mouse())
    {
        fprintf(stderr,"Error!, Failed to install mouse.");
        return -1;
    }    

    a_event_queue_k = al_create_event_queue();
    if(a_event_queue_k == NULL)
    {
       fprintf(stderr,"Error!, Failed to create the keyboard event queue.");
       return -1;
    }    
    al_register_event_source(a_event_queue_k, al_get_keyboard_event_source());

    a_event_queue_m = al_create_event_queue();
    if(a_event_queue_m == NULL)
    {
       fprintf(stderr,"Error!, Failed to create the mouse event queue.");
       return -1;
    }    
#if _ANDROID_    
//do below at touch input
#else
    al_register_event_source(a_event_queue_m, al_get_mouse_event_source());
#endif
    a_event_queue_d = al_create_event_queue();
    if(a_event_queue_d == NULL)
    {
       fprintf(stderr,"Error!, Failed to create the display event queue.");
       return -1;
    }    
    al_register_event_source(a_event_queue_d, al_get_display_event_source(display));

#if _ANDROID_
    if(!al_install_touch_input())
    {
      __android_log_print(ANDROID_LOG_INFO,"AllegroActivity","Error!, Failed to install touch_input.");	
    } else {
      __android_log_print(ANDROID_LOG_INFO,"AllegroActivity","Installed touch_input successfully.");	
      al_set_mouse_emulation_mode(ALLEGRO_MOUSE_EMULATION_5_0_x);
      
      al_register_event_source(a_event_queue_m, al_get_touch_input_mouse_emulation_event_source());
    }
#endif 

#if _ANDROID_
//allow to use al_open to read (only) files from the apk store, e.g. fonts
    al_android_set_apk_file_interface();
#endif

    return 1; //ok    
}