@@ -55,6 +55,9 @@ struct Menu : OpaqueWidget { | |||||
}; | }; | ||||
struct MenuEntry : OpaqueWidget { | struct MenuEntry : OpaqueWidget { | ||||
MenuEntry() { | |||||
box.size = Vec(0, BND_WIDGET_HEIGHT); | |||||
} | |||||
template <typename T = MenuEntry> | template <typename T = MenuEntry> | ||||
static T *create() { | static T *create() { | ||||
T *o = Widget::create<T>(Vec()); | T *o = Widget::create<T>(Vec()); | ||||
@@ -64,9 +67,6 @@ struct MenuEntry : OpaqueWidget { | |||||
struct MenuLabel : MenuEntry { | struct MenuLabel : MenuEntry { | ||||
std::string text; | std::string text; | ||||
MenuLabel() { | |||||
box.size = Vec(0, BND_WIDGET_HEIGHT); | |||||
} | |||||
void draw(NVGcontext *vg) override; | void draw(NVGcontext *vg) override; | ||||
void step() override; | void step() override; | ||||
@@ -81,9 +81,6 @@ struct MenuLabel : MenuEntry { | |||||
struct MenuItem : MenuEntry { | struct MenuItem : MenuEntry { | ||||
std::string text; | std::string text; | ||||
std::string rightText; | std::string rightText; | ||||
MenuItem() { | |||||
box.size = Vec(0, BND_WIDGET_HEIGHT); | |||||
} | |||||
void draw(NVGcontext *vg) override; | void draw(NVGcontext *vg) override; | ||||
void step() override; | void step() override; | ||||
virtual Menu *createChildMenu() {return NULL;} | virtual Menu *createChildMenu() {return NULL;} | ||||
@@ -70,6 +70,8 @@ void ScrollWidget::draw(NVGcontext *vg) { | |||||
} | } | ||||
void ScrollWidget::step() { | void ScrollWidget::step() { | ||||
Widget::step(); | |||||
// Clamp scroll offset | // Clamp scroll offset | ||||
Vec containerCorner = container->getChildrenBoundingBox().getBottomRight(); | Vec containerCorner = container->getChildrenBoundingBox().getBottomRight(); | ||||
Rect containerBox = Rect(Vec(0, 0), containerCorner.minus(box.size)); | Rect containerBox = Rect(Vec(0, 0), containerCorner.minus(box.size)); | ||||
@@ -101,8 +103,6 @@ void ScrollWidget::step() { | |||||
verticalScrollBar->box.pos.x = inner.x; | verticalScrollBar->box.pos.x = inner.x; | ||||
horizontalScrollBar->box.size.x = verticalScrollBar->visible ? inner.x : box.size.x; | horizontalScrollBar->box.size.x = verticalScrollBar->visible ? inner.x : box.size.x; | ||||
verticalScrollBar->box.size.y = horizontalScrollBar->visible ? inner.y : box.size.y; | verticalScrollBar->box.size.y = horizontalScrollBar->visible ? inner.y : box.size.y; | ||||
Widget::step(); | |||||
} | } | ||||
void ScrollWidget::onMouseMove(EventMouseMove &e) { | void ScrollWidget::onMouseMove(EventMouseMove &e) { | ||||