#pragma once #include #include #include #include #include #include namespace rack { namespace app { struct CableWidget : widget::OpaqueWidget { PortWidget* outputPort = NULL; PortWidget* inputPort = NULL; PortWidget* hoveredOutputPort = NULL; PortWidget* hoveredInputPort = NULL; /** Owned. */ engine::Cable* cable; NVGcolor color; CableWidget(); ~CableWidget(); bool isComplete(); void setOutput(PortWidget* outputPort); void setInput(PortWidget* inputPort); math::Vec getOutputPos(); math::Vec getInputPos(); json_t* toJson(); void fromJson(json_t* rootJ); void draw(const DrawArgs& args) override; void drawPlugs(const DrawArgs& args); }; } // namespace app } // namespace rack