#ifndef RALEIGH_W_LABEL_H #define RALEIGH_W_LABEL_H #include #include namespace raleigh { class label : public widget { public: //this pointer is used directly, and the contents of the string should not be changed afterward 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 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; const struct font_info *const fi; bool bg_transparent; const _pixel_t fg; const _pixel_t bg; }; } #endif