summaryrefslogtreecommitdiff
path: root/library
diff options
context:
space:
mode:
Diffstat (limited to 'library')
-rw-r--r--library/base_components.c21
-rw-r--r--library/meson.build7
-rw-r--r--library/renderer.c19
-rw-r--r--library/tree.c16
-rw-r--r--library/ui.c3
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;