diff options
Diffstat (limited to 'library')
-rw-r--r-- | library/base_components.c | 21 | ||||
-rw-r--r-- | library/meson.build | 7 | ||||
-rw-r--r-- | library/renderer.c | 19 | ||||
-rw-r--r-- | library/tree.c | 16 | ||||
-rw-r--r-- | library/ui.c | 3 |
5 files changed, 66 insertions, 0 deletions
diff --git a/library/base_components.c b/library/base_components.c new file mode 100644 index 0000000..fb49d2b --- /dev/null +++ b/library/base_components.c @@ -0,0 +1,21 @@ +#include <utils.h> + +typedef struct { + String label; +} Button; + +typedef struct { + String value; +} Text; + +typedef struct { + String value; +} TextInput; + +typedef struct { + Node *children +} ListBox; + +typedef struct { + Node *children +} Stack; diff --git a/library/meson.build b/library/meson.build new file mode 100644 index 0000000..deae140 --- /dev/null +++ b/library/meson.build @@ -0,0 +1,7 @@ +uil_include = include_directories('include') + +sources = files( + 'layout.c', +) + +uil = library('ui', sources) diff --git a/library/renderer.c b/library/renderer.c new file mode 100644 index 0000000..55bedb7 --- /dev/null +++ b/library/renderer.c @@ -0,0 +1,19 @@ +#include <utils.h> + +// TODO(roberto): support more pixel formats, for now we're assuming BGRA +typedef struct { + u16 width; + u16 height; + u16 stride; + u16 bpp; + u8 *bytes; +} PixelBuffer; + +typedef enum { + SOFTWARE, +} RendererType; + +typedef struct { + RenderType type; + void *renderer; +} Renderer; diff --git a/library/tree.c b/library/tree.c new file mode 100644 index 0000000..0519767 --- /dev/null +++ b/library/tree.c @@ -0,0 +1,16 @@ +#include <utils.h> + +typedef struct { + Node *parent; + u64 nodeType; + void *value; +} Node; + +typedef struct { + void *page; +} TreeAllocator; + +typedef struct { + TreeAllocator allocactor; + Node *root; +} Tree; diff --git a/library/ui.c b/library/ui.c new file mode 100644 index 0000000..213fb57 --- /dev/null +++ b/library/ui.c @@ -0,0 +1,3 @@ +typedef struct { + Tree tree; +} UIContext; |