You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
960B

  1. #pragma once
  2. #include "app/common.hpp"
  3. #include "widget/Widget.hpp"
  4. #include "widget/TransparentWidget.hpp"
  5. #include "ui/TextField.hpp"
  6. namespace rack {
  7. namespace app {
  8. struct LedDisplay : widget::Widget {
  9. void draw(const widget::DrawContext &ctx) override;
  10. };
  11. struct LedDisplaySeparator : widget::TransparentWidget {
  12. LedDisplaySeparator();
  13. void draw(const widget::DrawContext &ctx) override;
  14. };
  15. struct LedDisplayChoice : widget::TransparentWidget {
  16. std::string text;
  17. std::shared_ptr<Font> font;
  18. math::Vec textOffset;
  19. NVGcolor color;
  20. LedDisplayChoice();
  21. void draw(const widget::DrawContext &ctx) override;
  22. void onButton(const event::Button &e) override;
  23. };
  24. struct LedDisplayTextField : ui::TextField {
  25. std::shared_ptr<Font> font;
  26. math::Vec textOffset;
  27. NVGcolor color;
  28. LedDisplayTextField();
  29. void draw(const widget::DrawContext &ctx) override;
  30. int getTextPosition(math::Vec mousePos) override;
  31. };
  32. } // namespace app
  33. } // namespace rack