From 8221fd5451f094defa9866f98026b74a969f7693 Mon Sep 17 00:00:00 2001 From: Benji Dial Date: Mon, 8 Mar 2021 14:46:19 -0500 Subject: resizable widgets, default widget implementation for some functions, reimplementing meminfo in raleigh --- src/user/include/cxx/raleigh/w/button.h | 4 +--- src/user/include/cxx/raleigh/w/label.h | 12 +++++------- src/user/include/cxx/raleigh/w/padding.h | 4 +--- src/user/include/cxx/raleigh/w/vbox.h | 4 +--- 4 files changed, 8 insertions(+), 16 deletions(-) (limited to 'src/user/include/cxx/raleigh/w') diff --git a/src/user/include/cxx/raleigh/w/button.h b/src/user/include/cxx/raleigh/w/button.h index 03e17ab..71ccae2 100644 --- a/src/user/include/cxx/raleigh/w/button.h +++ b/src/user/include/cxx/raleigh/w/button.h @@ -12,10 +12,8 @@ namespace raleigh { void notify_window_change() override; void paint(_pixel_t *pixbuf, uint32_t pitch) override; void handle_click(coord window_coords, enum mouse_packet::mouse_button click_type, bool up) override; + void notify_child_size_change(widget &child, coord old_size) override; void notify_has_opaque_parent(widget *parent) override; - void handle_key(struct key_packet kp) override; - void on_focus() override; - void on_unfocus() override; private: widget &inner; void (*on_click)(button &); diff --git a/src/user/include/cxx/raleigh/w/label.h b/src/user/include/cxx/raleigh/w/label.h index 4b1dae2..a78ce46 100644 --- a/src/user/include/cxx/raleigh/w/label.h +++ b/src/user/include/cxx/raleigh/w/label.h @@ -7,19 +7,17 @@ namespace raleigh { class label : public widget { public: - //this pointer is used directly, and the contents of the string should not be changed afterward + //value's data is copied label(const char *value, const char *font="fixed-10", bool bg_transparent=true, _pixel_t fg=RGB(00, 00, 00), _pixel_t bg=RGB(bf, bf, bf)); - void notify_window_change() override; + void change_value(const char *new_value); + void paint(_pixel_t *pixbuf, uint32_t pitch) override; - void handle_click(coord window_coords, enum mouse_packet::mouse_button click_type, bool up) override; void notify_has_opaque_parent(widget *parent) override; - void handle_key(struct key_packet kp) override; - void on_focus() override; - void on_unfocus() override; private: - const char *const value; + char *value; + uint32_t v_size; const struct font_info *const fi; bool bg_transparent; const _pixel_t fg; diff --git a/src/user/include/cxx/raleigh/w/padding.h b/src/user/include/cxx/raleigh/w/padding.h index 792e204..1bdb9ee 100644 --- a/src/user/include/cxx/raleigh/w/padding.h +++ b/src/user/include/cxx/raleigh/w/padding.h @@ -12,9 +12,7 @@ namespace raleigh { void paint(_pixel_t *pixbuf, uint32_t pitch) override; void handle_click(coord window_coords, enum mouse_packet::mouse_button click_type, bool up) override; void notify_has_opaque_parent(widget *parent) override; - void handle_key(struct key_packet kp) override; - void on_focus() override; - void on_unfocus() override; + void notify_child_size_change(widget &child, coord old_size) override; private: widget &inner; uint32_t pad_by; diff --git a/src/user/include/cxx/raleigh/w/vbox.h b/src/user/include/cxx/raleigh/w/vbox.h index 02bffd3..f715f95 100644 --- a/src/user/include/cxx/raleigh/w/vbox.h +++ b/src/user/include/cxx/raleigh/w/vbox.h @@ -14,9 +14,7 @@ namespace raleigh { void paint(_pixel_t *pixbuf, uint32_t pitch) override; void handle_click(coord window_coords, enum mouse_packet::mouse_button click_type, bool up) override; void notify_has_opaque_parent(widget *parent) override; - void handle_key(struct key_packet kp) override; - void on_focus() override; - void on_unfocus() override; + void notify_child_size_change(widget &from, coord old_size) override; private: dllist widgets; }; -- cgit v1.2.3