Browse Source

Refactor TipWindow layout.

tags/v2.0.0
Andrew Belt 3 years ago
parent
commit
fcd18c940c
1 changed files with 32 additions and 24 deletions
  1. +32
    -24
      src/app/TipWindow.cpp

+ 32
- 24
src/app/TipWindow.cpp View File

@@ -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 {


Loading…
Cancel
Save