From 2f3d8ebc9b5e10e56bed5da316f5ef098dda0997 Mon Sep 17 00:00:00 2001 From: Adam NAILI Date: Wed, 3 Jan 2018 19:40:51 +0100 Subject: Updating documentation, cleaning includes, updating report --- src/gui/gui.c | 97 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 47 insertions(+), 50 deletions(-) (limited to 'src/gui/gui.c') diff --git a/src/gui/gui.c b/src/gui/gui.c index 3982f68..ced2661 100644 --- a/src/gui/gui.c +++ b/src/gui/gui.c @@ -1,22 +1,18 @@ -#include -#include -#include -#include -#include +#include "gui/window.h" +#include "gui/gui.h" +#include "common/mem.h" +#include "MLV/MLV_all.h" -GUI *gui_init(const char *fpath1, const char *fpath2) { +GUI *gui_create(const char *fpath1, const char *fpath2) { GUI *gui = malloc_or_die(sizeof(GUI)); - - gui->window = malloc_or_die(sizeof(Window)); - window_init(gui->window, 500, 500, "Morphing"); - window_create(gui->window); + gui->window = window_create(500, 500, "Morphing"); gui->canvasSrc = canvas_create_from_image(fpath1); gui->canvasTrg = canvas_create_from_image(fpath2); if (gui->canvasSrc->mlv == NULL || gui->canvasTrg->mlv == NULL) { canvas_destroy(gui->canvasSrc); canvas_destroy(gui->canvasTrg); - /*window_free(gui->window);*/ + window_destroy(gui->window); fprintf(stderr, "Impossible to create an image from the path given. Verify the two paths.\n"); exit(-4); } @@ -31,7 +27,7 @@ GUI *gui_init(const char *fpath1, const char *fpath2) { if (canvasSrcWidth != canvasTrgWidth || canvasSrcHeight != canvasTrgHeight) { canvas_destroy(gui->canvasSrc); canvas_destroy(gui->canvasTrg); - window_free(gui->window); + window_destroy(gui->window); fprintf(stderr, "The two pictures do not have the same size\n"); exit(-5); } @@ -41,14 +37,6 @@ GUI *gui_init(const char *fpath1, const char *fpath2) { MLV_change_window_size((unsigned int) gui->window->width, (unsigned int) gui->window->height); - gui->button1 = malloc_or_die(sizeof(Button)); - gui->button2 = malloc_or_die(sizeof(Button)); - gui->button3 = malloc_or_die(sizeof(Button)); - gui->button4 = malloc_or_die(sizeof(Button)); - gui->button5 = malloc_or_die(sizeof(Button)); - gui->button6 = malloc_or_die(sizeof(Button)); - gui->button7 = malloc_or_die(sizeof(Button)); - gui->pictureFrame1 = malloc_or_die(sizeof(PictureFrame)); gui->pictureFrame2 = malloc_or_die(sizeof(PictureFrame)); @@ -56,20 +44,22 @@ GUI *gui_init(const char *fpath1, const char *fpath2) { sprintf(labelFrame, "%03d frames", frame); - button_init(gui->button1, "Add constraint point", 10, 0, 0, button_click_add_constraint); - button_init(gui->button2, "Show/Hide", 10, 0, 0, button_click_show_hide); - button_init(gui->button3, "Start rendering", 10, 0, 0, button_click_rendering); - button_init(gui->button4, "<<<", 10, 0, 0, button_click_less_frame); - button_init(gui->button5, labelFrame, 10, 0, 0, button_click_none); - button_init(gui->button6, ">>>", 10, 0, 0, button_click_more_frame); - button_init(gui->button7, "Exit", 10, 0, 0, button_click_exit); - - pictureframe_init(gui->pictureFrame1, canvasSrcWidth, canvasSrcHeight, 0, 0, pictureframe_origin_split, gui->morphing, - gui->canvasSrc, - pictureframe_click_handler_origin); - pictureframe_init(gui->pictureFrame2, canvasSrcWidth, canvasSrcHeight, 0, 0, pictureframe_target_split, gui->morphing, - gui->canvasTrg, - pictureframe_click_handler_target); + gui->button1 = button_create("Add constraint point", 10, 0, 0, button_click_add_constraint); + gui->button2 = button_create("Show/Hide", 10, 0, 0, button_click_show_hide); + gui->button3 = button_create("Start rendering", 10, 0, 0, button_click_rendering); + gui->button4 = button_create("<<<", 10, 0, 0, button_click_less_frame); + gui->button5 = button_create(labelFrame, 10, 0, 0, button_click_none); + gui->button6 = button_create(">>>", 10, 0, 0, button_click_more_frame); + gui->button7 = button_create("Exit", 10, 0, 0, button_click_exit); + + gui->pictureFrame1 = pictureframe_create(canvasSrcWidth, canvasSrcHeight, 0, 0, pictureframe_origin_split, + gui->morphing, + gui->canvasSrc, + pictureframe_click_handler_origin); + gui->pictureFrame2 = pictureframe_create(canvasSrcWidth, canvasSrcHeight, 0, 0, pictureframe_target_split, + gui->morphing, + gui->canvasTrg, + pictureframe_click_handler_target); window_add_pictureframe(gui->window, gui->pictureFrame1); window_add_pictureframe(gui->window, gui->pictureFrame2); @@ -89,8 +79,13 @@ GUI *gui_init(const char *fpath1, const char *fpath2) { } void gui_handle_event(GUI *gui) { - window_click_keyboard_handler(gui->window, &gui->keyboardButton, &gui->keyboardModifier, &gui->unicode, &gui->mouse_x, - &gui->mouse_y); + MLV_Keyboard_button keyboardButton; + MLV_Keyboard_modifier keyboardModifier; + int unicode; + int mouse_x; + int mouse_y; + window_click_keyboard_handler(gui->window, &keyboardButton, &keyboardModifier, &unicode, &mouse_x, + &mouse_y); switch (mode) { case PRINTING: window_print_pictureframes(gui->window); @@ -103,8 +98,9 @@ void gui_handle_event(GUI *gui) { window_print_pictureframes(gui->window); break; case PRINTING_BUTTONS: - button_init(gui->button5, labelFrame, 10, gui->button5->component.x_pos, gui->button5->component.y_pos, - button_click_none); + free(gui->button5->label); + gui->button5->label = malloc_or_die(sizeof(char) * (strlen(labelFrame) + 1)); + strcpy(gui->button5->label, labelFrame); window_print_buttons(gui->window); mode = WAITING_BUTTON_SHOW; break; @@ -112,7 +108,7 @@ void gui_handle_event(GUI *gui) { window_rendering(gui->window, gui->pictureFrame1, gui->canvasSrc, gui->canvasTrg, gui->morphing); break; case INSERT_TARGET: - if (gui->keyboardButton == MLV_KEYBOARD_ESCAPE) { + if (keyboardButton == MLV_KEYBOARD_ESCAPE) { window_print_pictureframes(gui->window); mode = WAITING_BUTTON_SHOW; } @@ -122,19 +118,20 @@ void gui_handle_event(GUI *gui) { } } -void gui_free(GUI *gui) { - window_free(gui->window); +void gui_destroy(GUI *gui) { + window_destroy(gui->window); canvas_destroy(gui->canvasSrc); canvas_destroy(gui->canvasTrg); morphing_destroy(gui->morphing); - free(gui->button1); - free(gui->button2); - free(gui->button3); - free(gui->button4); - free(gui->button5); - free(gui->button6); - free(gui->button7); - free(gui->pictureFrame1); - free(gui->pictureFrame2); + button_destroy(gui->button1); + button_destroy(gui->button2); + button_destroy(gui->button3); + button_destroy(gui->button4); + button_destroy(gui->button5); + button_destroy(gui->button6); + button_destroy(gui->button7); + + pictureframe_destroy(gui->pictureFrame1); + pictureframe_destroy(gui->pictureFrame2); } \ No newline at end of file -- cgit v1.2.3