summaryrefslogtreecommitdiff
path: root/project-base/examples
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2024-11-23 22:33:43 +0100
committerAldrik Ramaekers <aldrikboy@gmail.com>2024-11-23 22:33:43 +0100
commitb1e857cf1471d1871a9396696b22fa531da98249 (patch)
tree3923008a8653057698cb339faf6dcfa92e18364b /project-base/examples
parent106bb7fcadf637cec883648916cc8d19529d6199 (diff)
add projbase to repo
Diffstat (limited to 'project-base/examples')
-rw-r--r--project-base/examples/en.mobin0 -> 153 bytes
-rw-r--r--project-base/examples/example_im_ui.c119
-rw-r--r--project-base/examples/example_window.c71
-rw-r--r--project-base/examples/logo_64.bmpbin0 -> 16522 bytes
-rw-r--r--project-base/examples/logo_64.pngbin0 -> 1294 bytes
-rw-r--r--project-base/examples/mono.ttfbin0 -> 313408 bytes
6 files changed, 190 insertions, 0 deletions
diff --git a/project-base/examples/en.mo b/project-base/examples/en.mo
new file mode 100644
index 0000000..06d4bdc
--- /dev/null
+++ b/project-base/examples/en.mo
Binary files differ
diff --git a/project-base/examples/example_im_ui.c b/project-base/examples/example_im_ui.c
new file mode 100644
index 0000000..24ab47f
--- /dev/null
+++ b/project-base/examples/example_im_ui.c
@@ -0,0 +1,119 @@
+#include <projectbase/project_base.h>
+
+#define CONFIG_DIRECTORY "example_program_1"
+
+extern unsigned char _binary_examples_en_mo_start[];
+extern unsigned char _binary_examples_en_mo_end[];
+
+extern unsigned char _binary_examples_logo_64_bmp_start[];
+extern unsigned char _binary_examples_logo_64_bmp_end[];
+
+extern unsigned char _binary_examples_logo_64_png_start[];
+extern unsigned char _binary_examples_logo_64_png_end[];
+
+extern unsigned char _binary_examples_mono_ttf_start[];
+extern unsigned char _binary_examples_mono_ttf_end[];
+
+void update_render_sub(platform_window* window)
+{
+ ui_begin(window);
+ {
+ ui_begin_menu_bar();
+ {
+ if (ui_push_menu("File"))
+ {
+ if (ui_push_menu_item("Poop", "Ctrl + O"))
+ {
+ push_notification("Poop!");
+
+ char buffer[4000];
+ platform_open_file_dialog(SAVE_FILE, buffer, 0, 0, "jpg");
+ }
+ }
+ if (ui_push_menu("Menu"))
+ {
+ if (ui_push_menu_item("New Window", "Ctrl + O"))
+ {
+
+ }
+ }
+ }
+ }
+ ui_end();
+}
+
+image* img;
+image* img2;
+image* img3;
+image* img4;
+
+font* font_big;
+font* font_very_big;
+
+void update_render_main(platform_window* window)
+{
+ ui_begin(window);
+ {
+ ui_begin_menu_bar();
+ {
+ if (ui_push_menu("File"))
+ {
+ if (ui_push_menu_item("Poop", "Ctrl + O"))
+ {
+ push_notification("Poop!");
+
+ char buffer[4000];
+ platform_open_file_dialog(SAVE_FILE, buffer, 0, 0, "jpg");
+ }
+ }
+ if (ui_push_menu("Menu"))
+ {
+ if (ui_push_menu_item("New Window", "Ctrl + O"))
+ {
+ platform_window *s = platform_open_window(localize("window_title_sub"), 500, 500, 800, 600, 500, 500, update_render_sub, 0);
+ }
+ }
+ }
+ }
+ ui_end();
+
+ renderer->render_image(img, 0, 0, 50, 50);
+ renderer->render_image(img2, 0, 50, 50, 50);
+ renderer->render_image(img3, 0, 100, 50, 50);
+ renderer->render_image(img3, 0, 150, 50, 50);
+
+ renderer->render_text(font_big, 120, 150, "BAZINGA!", rgb(255,100,100));
+ renderer->render_text(font_very_big, 120, 180, "BIG BAZINGA!", rgb(100,255,100));
+
+}
+
+int main(int argc, char **argv)
+{
+ platform_init(argc, argv, CONFIG_DIRECTORY);
+
+ localization_load(_binary_examples_en_mo_start,
+ _binary_examples_en_mo_end,
+ 0,0, "en", "English");
+
+ localization_set_locale("en");
+
+ img = assets_load_bitmap(_binary_examples_logo_64_bmp_start, _binary_examples_logo_64_bmp_end);
+ img2 = assets_load_image(_binary_examples_logo_64_png_start, _binary_examples_logo_64_png_end);
+ img3 = assets_load_bitmap_from_file("logo_64.bmp");
+ img4 = assets_load_image_from_file("logo_64.png");
+
+ font_big = assets_load_font(_binary_examples_mono_ttf_start, _binary_examples_mono_ttf_end, 36);
+ font_very_big = assets_load_font_from_file("mono.ttf", 48);
+
+ platform_window *window = platform_open_window(localize("window_title_main"),
+ 500, 500, 800, 600, 500, 500, update_render_main, 0);
+
+ while(platform_keep_running(window)) {
+ platform_handle_events();
+ }
+
+ settings_write_to_file();
+ platform_destroy();
+
+ return 0;
+} \ No newline at end of file
diff --git a/project-base/examples/example_window.c b/project-base/examples/example_window.c
new file mode 100644
index 0000000..b372d8f
--- /dev/null
+++ b/project-base/examples/example_window.c
@@ -0,0 +1,71 @@
+#include <projectbase/project_base.h>
+
+#define CONFIG_DIRECTORY "example_program_2"
+
+platform_window *window;
+qui_widget* ui;
+
+void update_render_ui2(platform_window* window)
+{
+ qui_update(window, ui);
+ qui_render(window, ui);
+}
+
+void create_ui() {
+ ui = qui_setup();
+
+ qui_widget* layout = qui_create_vertical_layout(ui);
+ {
+ qui_widget* toolbar = qui_create_toolbar(layout);
+ {
+ qui_widget* toolbar_file = qui_create_toolbar_item(toolbar, "File");
+ {
+ qui_widget* sub1 = qui_create_toolbar_item_option(toolbar_file, "Open File");
+ {
+ qui_create_toolbar_item_option(toolbar_file, "Create File");
+ qui_create_toolbar_item_option(toolbar_file, "Find File");
+ qui_create_toolbar_item_option(toolbar_file, "A Very Very Very Long Option");
+
+ qui_widget* sub2 = qui_create_toolbar_item_option(sub1, "Sub menu");
+ {
+ qui_create_toolbar_item_option(sub2, "Sub menu 2");
+ qui_create_toolbar_item_option(sub2, "Sub menu 3");
+ }
+ }
+ }
+
+ qui_create_toolbar_item(toolbar, "Help");
+ }
+ toolbar = qui_create_toolbar(layout);
+ {
+
+ }
+
+ qui_create_button(layout, "Hello!");
+
+ qui_create_fixed_container(layout, 100);
+ qui_create_flex_container(layout, 1);
+ qui_create_flex_container(layout, 2);
+ qui_create_size_container(layout, TOP, 100);
+ }
+}
+
+int main(int argc, char **argv)
+{
+ platform_init(argc, argv, CONFIG_DIRECTORY);
+
+ window = platform_open_window("Hello!",
+ 700, 700, 1200, 900, 500, 500, update_render_ui2, 0);
+
+ create_ui();
+
+ while(platform_keep_running(window)) {
+ window->do_draw = true;
+ platform_handle_events();
+ }
+
+ settings_write_to_file();
+ platform_destroy();
+
+ return 0;
+} \ No newline at end of file
diff --git a/project-base/examples/logo_64.bmp b/project-base/examples/logo_64.bmp
new file mode 100644
index 0000000..4cc3488
--- /dev/null
+++ b/project-base/examples/logo_64.bmp
Binary files differ
diff --git a/project-base/examples/logo_64.png b/project-base/examples/logo_64.png
new file mode 100644
index 0000000..da886f9
--- /dev/null
+++ b/project-base/examples/logo_64.png
Binary files differ
diff --git a/project-base/examples/mono.ttf b/project-base/examples/mono.ttf
new file mode 100644
index 0000000..1a39bc7
--- /dev/null
+++ b/project-base/examples/mono.ttf
Binary files differ