aboutsummaryrefslogtreecommitdiff
path: root/src/gui/inc
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi.dcr@tutanota.com>2022-09-20 17:22:10 +0200
committerXavier Del Campo Romero <xavi.dcr@tutanota.com>2022-09-20 17:34:25 +0200
commit8f9737b776bf98d0686a2f11685d1e307b2ef390 (patch)
tree261c2e64e6af535d7428ef57f9ea41e591ebbb68 /src/gui/inc
parente3356fde2de41b29989b4e8884f04b2be763256f (diff)
downloadrts-8f9737b776bf98d0686a2f11685d1e307b2ef390.tar.gz
Implement GUI line edit
Diffstat (limited to 'src/gui/inc')
-rw-r--r--src/gui/inc/gui/line_edit.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/gui/inc/gui/line_edit.h b/src/gui/inc/gui/line_edit.h
new file mode 100644
index 0000000..3a0f027
--- /dev/null
+++ b/src/gui/inc/gui/line_edit.h
@@ -0,0 +1,47 @@
+#ifndef GUI_LINE_EDIT_H
+#define GUI_LINE_EDIT_H
+
+#include <gui.h>
+#include <gui/label.h>
+#include <gfx.h>
+#include <util.h>
+#include <stdbool.h>
+#include <stddef.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct gui_line_edit
+{
+ struct gui_common common;
+ struct gui_label label;
+ short w;
+ bool focus, blink;
+ unsigned blt;
+ char *text;
+ size_t i, sz;
+};
+
+void gui_line_edit_init(struct gui_line_edit *l, char *buf, size_t sz);
+
+UTIL_STATIC_ASSERT(!offsetof(struct gui_line_edit, common),
+ "unexpected offset for struct gui_line_edit");
+
+enum
+{
+ GUI_LINE_EDIT_LEFT,
+ GUI_LINE_EDIT_MID,
+ GUI_LINE_EDIT_RIGHT,
+
+ MAX_GUI_LINE_EDIT_SPRITES
+};
+
+extern struct sprite gui_line_edit_sprites[MAX_GUI_LINE_EDIT_SPRITES];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* GUI_LINE_EDIT_H */