summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam NAILI2017-12-12 13:13:24 +0100
committerAdam NAILI2017-12-12 13:17:06 +0100
commit26bb3df365ed43dd415be8ac870da8ac8991b425 (patch)
tree4220642c299f1d9758a4b1acb74cf9b9ebf3cccf
parent45800d79fb2fd74542daeda29e2cb2467f46399a (diff)
downloadmorpher-26bb3df365ed43dd415be8ac870da8ac8991b425.tar.gz
Adding beta version of print function, working on implementation of the linked list (add + free)
-rw-r--r--src/gui/group.c37
1 files changed, 36 insertions, 1 deletions
diff --git a/src/gui/group.c b/src/gui/group.c
index dc48c50..ac2c440 100644
--- a/src/gui/group.c
+++ b/src/gui/group.c
@@ -1,11 +1,31 @@
1#include <stdlib.h> 1#include <stdlib.h>
2#include <gui/group.h> 2#include <gui/group.h>
3#include <common/mem.h>
4#include <assert.h>
5#include "MLV/MLV_shape.h"
6#include "MLV/MLV_window.h"
7
8void group_print(void *parameter) {
9 Group *group = (Group *) parameter;
10 /*DEBUG*/
11 MLV_draw_filled_rectangle(group->component.x_pos, group->component.y_pos, group->component.width,
12 group->component.height, MLV_COLOR_AQUAMARINE);
13 /**/
14 MLV_actualise_window();
15}
3 16
4void group_init(Group *group, int width, int height, int x_pos, int y_pos, int padding) { 17void group_init(Group *group, int width, int height, int x_pos, int y_pos, int padding) {
18 assert(group != NULL);
19 assert(width>0);
20 assert(height>0);
21 assert(x_pos>=0);
22 assert(y_pos>=0);
23 assert(padding>=0);
5 group->component.width = width; 24 group->component.width = width;
6 group->component.height = height; 25 group->component.height = height;
7 group->component.x_pos = x_pos; 26 group->component.x_pos = x_pos;
8 group->component.y_pos = y_pos; 27 group->component.y_pos = y_pos;
28 group->component.print_method = group_print;
9 group->padding = padding; 29 group->padding = padding;
10} 30}
11 31
@@ -22,5 +42,20 @@ void group_free(Group *group) {
22} 42}
23 43
24void group_add_component(Group *group, Component *component) { 44void group_add_component(Group *group, Component *component) {
25 45 if (group->group_head != NULL) {
46 /*Initialize the new node*/
47 GroupElement *tmp = malloc_or_die(sizeof(GroupElement));
48 tmp->sub_component = component;
49 tmp->next = NULL;
50 GroupElement *p = group->group_head;
51 /*Browsing*/
52 while (p->next != NULL) {
53 p = p->next;
54 }
55 p->next = tmp;
56 } else {
57 group->group_head = malloc_or_die(sizeof(GroupElement));
58 group->group_head->sub_component = component;
59 group->group_head->next = NULL;
60 }
26} \ No newline at end of file 61} \ No newline at end of file