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
918B

  1. #include <tuple>
  2. #include <limits>
  3. #include "rack.hpp"
  4. #include "../../include/BaseWidget.hpp"
  5. using namespace rack;
  6. namespace rack_plugin_rcm {
  7. namespace SongRoll {
  8. struct ModuleDragType;
  9. struct SongRollModule;
  10. struct SongRollWidget : BaseWidget {
  11. SongRollModule* module;
  12. SongRollWidget(SongRollModule *module);
  13. Rect getRollArea();
  14. void drawBackgroundColour(NVGcontext* ctx);
  15. void drawPatternEditors(NVGcontext* ctx);
  16. // Event Handlers
  17. void appendContextMenu(Menu* menu) override;
  18. void draw(NVGcontext* ctx) override;
  19. void onMouseDown(EventMouseDown& e) override;
  20. void onDragStart(EventDragStart& e) override;
  21. void baseDragMove(EventDragMove& e);
  22. void onDragMove(EventDragMove& e) override;
  23. void onDragEnd(EventDragEnd& e) override;
  24. json_t *toJson() override;
  25. void fromJson(json_t *rootJ) override;
  26. };
  27. }
  28. } // namespace rack_plugin_rcm