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()); } }
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"); }
/* * 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 }