string_element.cpp 971 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #include "string_element.h"
  2. #include <gui/elements.h>
  3. StringElement::StringElement() {
  4. }
  5. StringElement::~StringElement() {
  6. }
  7. void StringElement::draw(Canvas* canvas) {
  8. if(text) {
  9. string_t line;
  10. string_init(line);
  11. string_set_str(line, text);
  12. canvas_set_font(canvas, font);
  13. if(fit_width != 0) {
  14. elements_string_fit_width(canvas, line, fit_width);
  15. }
  16. elements_multiline_text_aligned(canvas, x, y, horizontal, vertical, string_get_cstr(line));
  17. string_clear(line);
  18. }
  19. }
  20. bool StringElement::input(InputEvent* event) {
  21. return false;
  22. }
  23. void StringElement::set_text(
  24. const char* _text,
  25. uint8_t _x,
  26. uint8_t _y,
  27. uint8_t _fit_w,
  28. Align _horizontal,
  29. Align _vertical,
  30. Font _font) {
  31. lock_model();
  32. text = _text;
  33. x = _x;
  34. y = _y;
  35. fit_width = _fit_w;
  36. horizontal = _horizontal;
  37. vertical = _vertical;
  38. font = _font;
  39. unlock_model(true);
  40. }