int initialize(){ Board_init(&board); if (displayMode == GUI){ int initializationError = GUI_init(); if (initializationError){ return initializationError; } } state = SETTINGS; maxRecursionDepth = 1; player1 = WHITE; turn = player1; first = WHITE; gameMode = TWO_PLAYERS_MODE; PieceCounter_setToMax(counter); movesOfSelectedPiece = NULL; isInCheck = 0; gameEnded = 0; settingInvalidPiece = 0; kingIsMissing = 0; modifyingPiece = '_'; time_t t; srand((unsigned) time(&t)); // initializing random number generator return 0; }
void FillGUI() { Widget *gui; ViewLayer *logo, *loading, *menu; Button *but; gui = (Widget*)&g_gui; GUI_init((GUI*)gui); logo = (ViewLayer*)malloc(sizeof(ViewLayer)); loading = (ViewLayer*)malloc(sizeof(ViewLayer)); menu = (ViewLayer*)malloc(sizeof(ViewLayer)); but = (Button*)malloc(sizeof(Button)); ViewLayer_init(logo, "logo", gui); ViewLayer_init(loading, "loading", gui); ViewLayer_init(menu, "menu", gui); Button_init(but, menu, "", "", "label", "tooltip", MAINFONT8, BUST_LINEBASED, Resize_But, NULL, NULL, NULL, NULL, NULL, -1, NULL); Widget_add(gui, (Widget*)logo); Widget_add(gui, (Widget*)loading); Widget_add(gui, (Widget*)menu); Widget_add(menu, (Widget*)but); Widget_hideall(gui); Widget_show((Widget*)logo); }
int main(int args, char* argv[]) { // initialisation composant graphique (cf gui.c) GUI gui; if (GUI_init(&gui) == -1) exit(-1); // Repeinte du fond d'écran FB_background(&gui, 0, 0, 0); // Recherche de la police char path[256]; // Dossier de recherche (doit contenir le « / » final !) if (args > 1) { // Si on a un arguments, on recherche dans ce dossier memcpy(path, argv[1], 256); } else { // Dossier par defaut si lancé sans arguments : /sdcard/ memcpy(path, "/sdcard/", 256); } int size = 0; // Taille de la police if (getFont(path, &size) == -1) { // cf font.c printf("Impossible de trouver une police (dossier %s)\n", path); return -1; } printf("Font : %s, size : %i\n", path, size); // Enregistrement de la police et de la taille dans la structure gui pour utilisation lors de l'affichage gui.ip_size = size; gui.ip_font = path; // Police utilisé pour les labels de boutons, et l'affichage de la team FT_setFont(&gui, "/home/elie/FreeSans.ttf"); // Ajout du bouton, avec un label utilisant la police précédement chargé // La fonction buttonEvent avec l'arguments &gui sera appelée sur les events (cf ts.c) TS_button* button = TS_addButton(&gui, 400, 222, 80, 50, "Retour", 16, -1, -1, buttonEvent, (void*)&gui); // Simulation d'un clic sur « Retour » pour afficher la page avec l'IP buttonEvent(button, 0, &gui); // Attente du thread d'interface graphique avant de quitter // (Dans les faits, le programme s'arrête là) pthread_join(gui.pth, NULL); FB_close(&gui); return 0; }