static void InitWindows(xccore_t *xccore) { gui_status_init(); gui_root_init(); gui_preedit_init(); gui_select_init(); gui_tray_init(); gui_menu_init(); gui_symbol_init(); gui_keyboard_init(); gui_xcin_init(); gui_msgbox_init(); gui_selectmenu_init(); int isok = gui_restore_window_pos(); winlist_t *win = winlist; while (win) { win->data = (void *)xccore; if (win->draw) { XftDrawDestroy(win->draw); } win->draw = XftDrawCreate(gui->display, win->window, gui->visual, gui->colormap); XSelectInput(gui->display, win->window, (ExposureMask|ButtonPressMask|ButtonReleaseMask|PointerMotionMask|EnterWindowMask|LeaveWindowMask|StructureNotifyMask|KeyPressMask)); MakeDefaultFont(win); /* 建立預設字型 */ XMoveResizeWindow(gui->display, win->window, win->pos_x, win->pos_y, win->width, win->height); win = win->next; } }
void gui_init() { /* Inicializa a biblioteca allegro */ al_init(); al_init_primitives_addon(); al_init_image_addon(); /* Cria fila de eventos */ event_queue = NULL; event_queue = al_create_event_queue(); if(!gui_keyboard_init()) fprintf(stderr, "Falha ao inicializar o teclado.\n"); }