summaryrefslogtreecommitdiff
path: root/applications/hello/source/main.cpp
diff options
context:
space:
mode:
authorBenji Dial <benji@benjidial.net>2024-07-29 19:59:52 -0400
committerBenji Dial <benji@benjidial.net>2024-07-29 19:59:52 -0400
commite6c3a80b01ffb52079783cddd9be6d392d0f7039 (patch)
tree148276b9878f287bc81638f90249ec4d7b86eaf0 /applications/hello/source/main.cpp
parentbe691582ee12613278af24cb5a824eeb357f6324 (diff)
downloadhilbert-os-e6c3a80b01ffb52079783cddd9be6d392d0f7039.tar.gz
redesign compositor protocol, start widget library
Diffstat (limited to 'applications/hello/source/main.cpp')
-rw-r--r--applications/hello/source/main.cpp43
1 files changed, 18 insertions, 25 deletions
diff --git a/applications/hello/source/main.cpp b/applications/hello/source/main.cpp
index 3f132c6..1f45407 100644
--- a/applications/hello/source/main.cpp
+++ b/applications/hello/source/main.cpp
@@ -1,37 +1,30 @@
-#include <goldman/protocol.hpp>
+#include <pake/widgets/fixed-text.hpp>
#include <daguerre/psf.hpp>
+#include <pake/window.hpp>
-template <class color_t>
-void overlay(color_t &to, const bool &from, const color_t &param) {
- if (from)
- to = param;
-}
+daguerre::fixed_font<bool> *font;
int main(int, char **) {
- auto bg = euler::syscall::encode_color(0xaa, 0xaa, 0xaa);
- auto fg = euler::syscall::encode_color(0x00, 0x00, 0x00);
-
- daguerre::image<daguerre::hilbert_color> image(300, 200);
- image.fill(bg);
+ font = new daguerre::fixed_font<bool>(
+ daguerre::try_load_psf("/assets/terminus-bold-18x10.psf").value());
- auto font = daguerre::try_load_psf("/assets/terminus-bold-18x10.psf");
- image.render_text(*font, fg, 10, 10, "Hello, world!", &overlay);
+ pake::widgets::fixed_text *text =
+ new pake::widgets::fixed_text("Hello, world!", font,
+ euler::syscall::encode_color(0xaa, 0xaa, 0xaa),
+ euler::syscall::encode_color(0x00, 0x00, 0x00));
- euler::syscall::stream_handle s;
- euler::syscall::connect_to_socket("hilbert.compositor", s);
+ pake::window w(300, 200, "Hello");
+ w.set_root(std::unique_ptr<pake::widget>(text));
+ w.render_and_send_to_compositor();
+ w.show();
- goldman::protocol::send_open_window(s, 300, 200);
+ //TODO: call event loop
+ euler::syscall::stream_handle h1, h2;
+ euler::syscall::create_private_socket(h1, h2);
uint8_t byte;
- euler::syscall::read_from_stream(s, 1, &byte);
-
- auto w = goldman::protocol::get_window_opened_body(s);
-
- goldman::protocol::send_update_window_region(
- s, w, 0, 0, 300, 200, image.buffer, image.buffer_pitch);
-
- euler::syscall::read_from_stream(s, 1, &byte);
- __builtin_unreachable();
+ while (1)
+ euler::syscall::read_from_stream(h1, 1, &byte);
}