summaryrefslogtreecommitdiffstats
path: root/ui/internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'ui/internal.h')
-rw-r--r--ui/internal.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/ui/internal.h b/ui/internal.h
new file mode 100644
index 0000000..afc0a08
--- /dev/null
+++ b/ui/internal.h
@@ -0,0 +1,71 @@
+#ifndef _RCC_UI_INTERNAL_H
+#define _RCC_UI_INTERNAL_H
+
+#include "../src/librcc.h"
+#include "librccui.h"
+
+typedef unsigned int rcc_ui_id;
+typedef void *rcc_ui_internal;
+typedef void *rcc_ui_menu_internal;
+
+enum rcc_ui_menu_type_t {
+ RCC_UI_MENU_LANGUAGE = 0,
+ RCC_UI_MENU_CHARSET,
+ RCC_UI_MENU_ENGINE,
+ RCC_UI_MENU_OPTION,
+ RCC_UI_MENU_MAX
+};
+typedef enum rcc_ui_menu_type_t rcc_ui_menu_type;
+
+struct rcc_ui_menu_context_t {
+ rcc_ui_widget widget;
+ rcc_ui_box box;
+
+ rcc_ui_context uictx;
+ rcc_ui_menu_type type;
+ rcc_ui_id id;
+
+ rcc_ui_menu_internal internal;
+};
+typedef struct rcc_ui_menu_context_t rcc_ui_menu_context_s;
+typedef struct rcc_ui_menu_context_t *rcc_ui_menu_context;
+
+struct rcc_ui_context_t {
+ rcc_context rccctx;
+
+ rcc_ui_menu_context language;
+ rcc_ui_menu_context engine;
+ rcc_ui_menu_context *charsets;
+ rcc_ui_menu_context *options;
+
+ rcc_ui_internal internal;
+
+ rcc_language_name *language_names;
+ rcc_option_name *option_names;
+
+ rcc_ui_frame language_frame;
+ rcc_ui_frame charset_frame;
+ rcc_ui_frame engine_frame;
+
+ rcc_ui_page page;
+};
+typedef struct rcc_ui_context_t rcc_ui_contexts_s;
+
+
+rcc_ui_internal rccUiCreateInternal(rcc_ui_context ctx);
+void rccUiFreeInternal(rcc_ui_context ctx);
+
+rcc_ui_widget rccUiMenuCreateWidget(rcc_ui_menu_context ctx);
+void rccUiMenuDestroyWidget(rcc_ui_menu_context ctx);
+int rccUiMenuConfigureWidget(rcc_ui_menu_context ctx);
+
+rcc_ui_id rccUiMenuGet(rcc_ui_menu_context ctx);
+int rccUiMenuSet(rcc_ui_menu_context ctx, rcc_ui_id id);
+
+rcc_ui_box rccUiBoxCreate(rcc_ui_menu_context ctx, const char *title);
+rcc_ui_frame rccUiFrameCreate(rcc_ui_context ctx, const char *title);
+int rccUiFrameAdd(rcc_ui_frame frame, rcc_ui_box box);
+rcc_ui_page rccUiPageCreate(rcc_ui_context ctx, const char *title);
+int rccUiPageAdd(rcc_ui_page page, rcc_ui_frame frame);
+
+#endif /* _RCC_UI_INTERNAL_H */