summaryrefslogtreecommitdiff
path: root/src/user/include/cxx/raleigh/w
diff options
context:
space:
mode:
authorBenji Dial <benji6283@gmail.com>2021-03-08 14:46:19 -0500
committerBenji Dial <benji6283@gmail.com>2021-03-08 14:46:19 -0500
commit8221fd5451f094defa9866f98026b74a969f7693 (patch)
tree9f0e9595fd15bdecbe667f823deded7428547b44 /src/user/include/cxx/raleigh/w
parent1a5ece4f52ef17c7c868e95eb26e98137d5cab6f (diff)
downloadportland-os-8221fd5451f094defa9866f98026b74a969f7693.tar.gz
resizable widgets, default widget implementation for some functions, reimplementing meminfo in raleigh
Diffstat (limited to 'src/user/include/cxx/raleigh/w')
-rw-r--r--src/user/include/cxx/raleigh/w/button.h4
-rw-r--r--src/user/include/cxx/raleigh/w/label.h12
-rw-r--r--src/user/include/cxx/raleigh/w/padding.h4
-rw-r--r--src/user/include/cxx/raleigh/w/vbox.h4
4 files changed, 8 insertions, 16 deletions
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<widget &> widgets;
};