| @@ -50,42 +50,50 @@ static std::vector<TipInfo> tipInfos = { | |||
| struct TipWindow : widget::OpaqueWidget { | |||
| ui::SequentialLayout* layout; | |||
| ui::SequentialLayout* buttonLayout; | |||
| ui::Label* label; | |||
| UrlButton* linkButton; | |||
| TipWindow() { | |||
| float margin = 10; | |||
| float buttonWidth = 90; | |||
| box.size.x = buttonWidth*5 + margin*6; | |||
| box.size = math::Vec(500, 200); | |||
| const float margin = 10; | |||
| const float buttonWidth = 90; | |||
| layout = new ui::SequentialLayout; | |||
| layout->box.pos = math::Vec(0, 10); | |||
| layout->box.size = box.size; | |||
| layout->orientation = ui::SequentialLayout::VERTICAL_ORIENTATION; | |||
| layout->margin = math::Vec(margin, margin); | |||
| layout->spacing = math::Vec(margin, margin); | |||
| layout->wrap = false; | |||
| addChild(layout); | |||
| ui::Label* header = new ui::Label; | |||
| header->box.pos.x = margin; | |||
| header->box.pos.y = 20; | |||
| // header->box.size.x = box.size.x - margin*2; | |||
| header->box.size.x = box.size.x - 2*margin; | |||
| header->box.size.y = 20; | |||
| header->fontSize = 20; | |||
| header->text = "Welcome to VCV Rack " + APP_VERSION; | |||
| addChild(header); | |||
| layout->addChild(header); | |||
| label = new ui::Label; | |||
| label->box.pos.x = margin; | |||
| label->box.pos.y = header->box.getBottom() + margin; | |||
| label->box.size.y = 80; | |||
| label->box.size.x = box.size.x - margin*2; | |||
| addChild(label); | |||
| label->box.size.x = box.size.x - 2*margin; | |||
| layout->addChild(label); | |||
| // Container for link button so hiding it won't shift layout | |||
| widget::Widget* linkPlaceholder = new widget::Widget; | |||
| layout->addChild(linkPlaceholder); | |||
| linkButton = new UrlButton; | |||
| linkButton->box.pos.x = margin; | |||
| linkButton->box.pos.y = label->box.getBottom() + margin; | |||
| linkButton->box.size.x = box.size.x - margin*2; | |||
| addChild(linkButton); | |||
| ui::SequentialLayout* buttonLayout = new ui::SequentialLayout; | |||
| buttonLayout->box.pos.x = margin; | |||
| buttonLayout->box.pos.y = linkButton->box.getBottom() + margin; | |||
| buttonLayout->box.size.x = box.size.x - margin*2; | |||
| linkButton->box.size.x = box.size.x - 2*margin; | |||
| linkPlaceholder->box.size = linkButton->box.size; | |||
| linkPlaceholder->addChild(linkButton); | |||
| buttonLayout = new ui::SequentialLayout; | |||
| buttonLayout->box.size.x = box.size.x - 2*margin; | |||
| buttonLayout->spacing = math::Vec(margin, margin); | |||
| addChild(buttonLayout); | |||
| layout->addChild(buttonLayout); | |||
| struct ShowQuantity : Quantity { | |||
| void setValue(float value) override { | |||
| @@ -98,9 +106,9 @@ struct TipWindow : widget::OpaqueWidget { | |||
| static ShowQuantity showQuantity; | |||
| ui::OptionButton* showButton = new ui::OptionButton; | |||
| showButton->box.size.x = 180; | |||
| showButton->text = "Show tips at startup"; | |||
| showButton->quantity = &showQuantity; | |||
| showButton->box.size.x = buttonWidth * 2 + margin; | |||
| buttonLayout->addChild(showButton); | |||
| struct PreviousButton : ui::Button { | |||
| @@ -140,7 +148,6 @@ struct TipWindow : widget::OpaqueWidget { | |||
| buttonLayout->addChild(closeButton); | |||
| buttonLayout->box.size.y = closeButton->box.size.y; | |||
| box.size.y = buttonLayout->box.getBottom() + margin; | |||
| // When the TipWindow is created, choose the next tip | |||
| advanceTip(); | |||
| @@ -158,8 +165,9 @@ struct TipWindow : widget::OpaqueWidget { | |||
| } | |||
| void step() override { | |||
| box.pos = parent->box.size.minus(box.size).div(2).round(); | |||
| OpaqueWidget::step(); | |||
| box.pos = parent->box.size.minus(box.size).div(2).round(); | |||
| } | |||
| void draw(const DrawArgs& args) override { | |||