#if defined(Hiro_Canvas) struct mCanvas : mWidget { Declare(Canvas) auto alignment() const -> Alignment; auto color() const -> Color; auto data() -> uint32_t*; auto droppable() const -> bool; auto doDrop(vector names) const -> void; auto doMouseLeave() const -> void; auto doMouseMove(Position position) const -> void; auto doMousePress(Mouse::Button button) const -> void; auto doMouseRelease(Mouse::Button button) const -> void; auto gradient() const -> Gradient; auto icon() const -> image; auto onDrop(const function)>& callback = {}) -> type&; auto onMouseLeave(const function& callback = {}) -> type&; auto onMouseMove(const function& callback = {}) -> type&; auto onMousePress(const function& callback = {}) -> type&; auto onMouseRelease(const function& callback = {}) -> type&; auto setAlignment(Alignment alignment = {}) -> type&; auto setColor(Color color = {}) -> type&; auto setDroppable(bool droppable = true) -> type&; auto setGradient(Gradient gradient = {}) -> type&; auto setIcon(const image& icon = {}) -> type&; auto setSize(Size size = {}) -> type&; auto size() const -> Size; auto update() -> type&; //private: struct State { Alignment alignment; Color color; bool droppable = false; Gradient gradient; image icon; function)> onDrop; function onMouseLeave; function onMouseMove; function onMousePress; function onMouseRelease; } state; }; #endif