static void OpenErrorWindow(void) { txt_window_t *window; window = TXT_NewWindow(NULL); TXT_AddWidget(window, TXT_NewLabel("Please configure a joystick first!")); TXT_SetWindowAction(window, TXT_HORIZ_LEFT, NULL); TXT_SetWindowAction(window, TXT_HORIZ_CENTER, TXT_NewWindowEscapeAction(window)); TXT_SetWindowAction(window, TXT_HORIZ_RIGHT, NULL); }
txt_window_t *TXT_MessageBox(char *title, char *message, ...) { txt_window_t *window; char buf[256]; va_list args; va_start(args, message); TXT_vsnprintf(buf, sizeof(buf), message, args); va_end(args); window = TXT_NewWindow(title); TXT_AddWidget(window, TXT_NewLabel(buf)); TXT_SetWindowAction(window, TXT_HORIZ_LEFT, NULL); TXT_SetWindowAction(window, TXT_HORIZ_CENTER, TXT_NewWindowEscapeAction(window)); TXT_SetWindowAction(window, TXT_HORIZ_RIGHT, NULL); return window; }
txt_window_t *TXT_NewWindow(char *title) { int i; txt_window_t *win; win = malloc(sizeof(txt_window_t)); TXT_InitTable(&win->table, 1); if (title == NULL) { win->title = NULL; } else { win->title = strdup(title); } win->x = TXT_SCREEN_W / 2; win->y = TXT_SCREEN_H / 2; win->horiz_align = TXT_HORIZ_CENTER; win->vert_align = TXT_VERT_CENTER; win->key_listener = NULL; win->mouse_listener = NULL; TXT_AddWidget(win, TXT_NewSeparator(NULL)); for (i=0; i<3; ++i) win->actions[i] = NULL; TXT_AddDesktopWindow(win); // Default actions TXT_SetWindowAction(win, TXT_HORIZ_LEFT, TXT_NewWindowEscapeAction(win)); TXT_SetWindowAction(win, TXT_HORIZ_RIGHT, TXT_NewWindowSelectAction(win)); return win; }