Merge pull request #1152 from redtide/image-layout

Centered, full-width background image and better labels readability
This commit is contained in:
redtide 2023-04-09 12:58:19 +02:00 committed by GitHub
commit 72aff04f2c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 117 additions and 101 deletions

View file

@ -7,7 +7,7 @@ widget_class mainView {open
class LogicalGroup visible
} {
Fl_Box imageContainer_ {
image {../resources/background.png} xywh {90 110 790 285}
image {../resources/background.png} xywh {0 110 800 300}
class Background
}
Fl_Group {} {
@ -80,7 +80,7 @@ widget_class mainView {open
}
Fl_Box {} {
label {Voices:}
xywh {195 78 60 25} labelsize 12 align 24
xywh {195 78 60 25} labelsize 14 align 24
class Label
}
Fl_Button {} {
@ -99,25 +99,25 @@ widget_class mainView {open
class ChevronDropDown
}
Fl_Box infoVoicesLabel_ {
xywh {260 78 40 25} labelsize 12 align 16
xywh {260 78 40 25} labelsize 14 align 16
class Label
}
Fl_Box {} {
label {Max:}
xywh {322 78 40 25} labelsize 12 align 24
xywh {322 78 40 25} labelsize 14 align 24
class Label
}
Fl_Box numVoicesLabel_ {
xywh {378 78 35 25} labelsize 12 align 16
xywh {378 78 35 25} labelsize 14 align 16
class Label
}
Fl_Box {} {
label {Memory:}
xywh {456 78 60 25} labelsize 12 align 24
xywh {456 78 60 25} labelsize 14 align 24
class Label
}
Fl_Box memoryLabel_ {
xywh {522 78 50 25} labelsize 12 align 16
xywh {522 78 50 25} labelsize 14 align 16
class Label
}
Fl_Button numVoicesSlider_ {
@ -136,19 +136,19 @@ widget_class mainView {open
}
Fl_Box {} {
label Center
xywh {582 70 60 5} labelsize 12 hide
xywh {582 70 60 5} labelsize 14 hide
class ValueLabel
}
Fl_Box volumeCCKnob_ {
label Volume
comment {tag=kTagSetCCVolume}
xywh {586 10 70 90} box BORDER_BOX labelsize 12 align 17
xywh {586 10 70 90} box BORDER_BOX labelsize 14 align 17
class KnobCCBox
}
Fl_Box panCCKnob_ {
label Pan
comment {tag=kTagSetCCPan}
xywh {663 10 70 90} box BORDER_BOX labelsize 12 align 17
xywh {663 10 70 90} box BORDER_BOX labelsize 14 align 17
class KnobCCBox
}
Fl_Box {meters_[0]} {
@ -162,11 +162,11 @@ widget_class mainView {open
}
}
Fl_Group {subPanels_[kPanelInfo]} {
xywh {5 110 790 285} hide
xywh {5 110 790 300} hide
class LogicalGroup
} {
Fl_Group {} {
xywh {5 110 790 285} box ROUNDED_BOX
xywh {5 110 790 300} box ROUNDED_BOX
class RoundedGroup
} {
Fl_Box {} {
@ -222,15 +222,15 @@ widget_class mainView {open
}
}
Fl_Group {subPanels_[kPanelControls]} {
xywh {5 110 790 285} hide
xywh {5 110 790 300} hide
class LogicalGroup
} {
Fl_Group {} {
xywh {5 110 790 285} box ROUNDED_BOX
xywh {5 110 790 300} box ROUNDED_BOX
class RoundedGroup
} {
Fl_Group controlsPanel_ {
xywh {5 110 790 285} box THIN_DOWN_FRAME labelsize 12
xywh {5 110 790 300} box THIN_DOWN_FRAME labelsize 14
class ControlsPanel
} {}
}
@ -240,78 +240,78 @@ widget_class mainView {open
class LogicalGroup
} {
Fl_Group {} {open
xywh {5 110 790 285} box ROUNDED_BOX
xywh {5 110 790 300} box ROUNDED_BOX
class RoundedGroup
} {
Fl_Spinner oversamplingSlider_ {
comment {tag=kTagSetOversampling}
xywh {175 195 70 25} labelsize 12 textsize 12
xywh {175 195 70 25} labelsize 14 textsize 14
class ValueMenu
}
Fl_Box {} {
label Oversampling
xywh {20 195 85 25} labelsize 12 align 20
xywh {20 195 85 25} labelsize 14 align 20
class Label
}
Fl_Box {} {
label {Preload size}
xywh {20 170 75 25} labelsize 12 align 20
xywh {20 170 75 25} labelsize 14 align 20
class Label
}
Fl_Spinner preloadSizeSlider_ {
comment {tag=kTagSetPreloadSize}
xywh {175 170 70 25} labelsize 12 textsize 12
xywh {175 170 70 25} labelsize 14 textsize 14
class ValueMenu
}
Fl_Spinner sampleQualitySlider_ {
comment {tag=kTagSetSampleQuality}
xywh {435 145 80 25} labelsize 12 textsize 12
xywh {435 145 80 25} labelsize 14 textsize 14
class ValueMenu
}
Fl_Box {} {
label Sample
xywh {290 145 50 25} labelsize 12 align 20
xywh {290 145 50 25} labelsize 14 align 20
class Label
}
Fl_Box {} {
label Oscillator
xywh {290 195 60 25} labelsize 12 align 20
xywh {290 195 60 25} labelsize 14 align 20
class Label
}
Fl_Spinner oscillatorQualitySlider_ {
comment {tag=kTagSetOscillatorQuality}
xywh {435 195 80 25} labelsize 12 textsize 12
xywh {435 195 80 25} labelsize 14 textsize 14
class ValueMenu
}
Fl_Spinner themeMenu_ {
comment {tag=kTagThemeMenu}
xywh {680 145 100 25} labelsize 12 textsize 12
xywh {680 145 100 25} labelsize 14 textsize 14
class OptionMenu
}
Fl_Box {} {
label Theme
xywh {555 145 45 25} labelsize 12 align 20
xywh {555 145 45 25} labelsize 14 align 20
class Label
}
Fl_Box {} {
label {User SFZ folder}
xywh {555 170 95 25} labelsize 12 align 20
xywh {555 170 95 25} labelsize 14 align 20
class Label
}
Fl_Button userFilesDirButton_ {
label DefaultPath
comment {tag=kTagChooseUserFilesDir}
xywh {680 170 100 25} labelsize 12
xywh {680 170 100 25} labelsize 14
class ValueButton
}
Fl_Box {} {
label {Root key}
xywh {555 285 60 25} labelsize 12 align 20
xywh {555 285 60 25} labelsize 14 align 20
class Label
}
Fl_Box {} {
label Frequency
xywh {555 310 70 25} labelsize 12 align 20
xywh {555 310 70 25} labelsize 14 align 20
class Label
}
Fl_Dial stretchedTuningSlider_ {
@ -321,48 +321,48 @@ widget_class mainView {open
}
Fl_Box {} {
label Stretch
xywh {555 345 50 25} labelsize 12 align 20
xywh {555 345 50 25} labelsize 14 align 20
class Label
}
Fl_Box {} {
label {Scala file}
xywh {555 260 60 25} labelsize 12 align 20
xywh {555 260 60 25} labelsize 14 align 20
class Label
}
Fl_Button scalaFileButton_ {
label DefaultScale
comment {tag=kTagLoadScalaFile}
xywh {655 260 100 25} labelsize 12
xywh {655 260 100 25} labelsize 14
class ValueButton
}
Fl_Spinner scalaRootKeySlider_ {
comment {tag=kTagSetScalaRootKey}
xywh {715 285 35 25} labelsize 12 textsize 12
xywh {715 285 35 25} labelsize 14 textsize 14
class ValueMenu
}
Fl_Spinner scalaRootOctaveSlider_ {
comment {tag=kTagSetScalaRootKey}
xywh {750 285 30 25} labelsize 12 textsize 12
xywh {750 285 30 25} labelsize 14 textsize 14
class ValueMenu
}
Fl_Button scalaResetButton_ {
comment {tag=kTagResetScalaFile}
xywh {755 260 25 25} labelsize 12
xywh {755 260 25 25} labelsize 14
class ResetSomethingButton
}
Fl_Box {} {
label {... when freewheeling}
xywh {290 170 145 25} labelsize 12 align 20
xywh {290 170 145 25} labelsize 14 align 20
class Label
}
Fl_Spinner freewheelingSampleQualitySlider_ {
comment {tag=kTagSetFreewheelingSampleQuality}
xywh {435 170 80 25} labelsize 12 textsize 12
xywh {435 170 80 25} labelsize 14 textsize 14
class ValueMenu
}
Fl_Box {} {
label {Sustain cancels release}
xywh {20 220 145 25} labelsize 12 align 20
xywh {20 220 145 25} labelsize 14 align 20
class Label
}
Fl_Check_Button sustainCancelsReleaseCheckbox_ {
@ -372,12 +372,12 @@ widget_class mainView {open
}
Fl_Box sfizzVersionLabel_ {
label SFIZZ_VERSION
xywh {20 145 225 20} labelsize 10
xywh {20 145 225 20} labelsize 14
class Label
}
Fl_Box {} {
label {Rendering quality}
xywh {290 115 110 25} labelsize 12 align 20
xywh {290 115 110 25} labelsize 14 align 20
class Label
}
Fl_Box {} {
@ -387,7 +387,7 @@ widget_class mainView {open
}
Fl_Box {} {
label {Engine options}
xywh {20 115 95 25} labelsize 12 align 20
xywh {20 115 95 25} labelsize 14 align 20
class Label
}
Fl_Box {} {
@ -397,12 +397,12 @@ widget_class mainView {open
}
Fl_Box {} {
label Other
xywh {555 115 40 25} labelsize 12 align 20
xywh {555 115 40 25} labelsize 14 align 20
class Label
}
Fl_Box {} {
label Tuning
xywh {555 230 225 25} labelsize 12 align 20
xywh {555 230 225 25} labelsize 14 align 20
class Label
}
Fl_Box {} {
@ -427,32 +427,32 @@ widget_class mainView {open
}
Fl_Text_Editor tuningFrequencyEdit_ {
comment {tag=kTagSetTuningFrequency}
xywh {695 310 60 25} labelsize 12
xywh {695 310 60 25} labelsize 14
class TextEdit
}
Fl_Box {} {
label {... when freewheeling}
xywh {290 220 145 25} labelsize 12 align 20
xywh {290 220 145 25} labelsize 14 align 20
class Label
}
Fl_Spinner freewheelingOscillatorQualitySlider_ {
comment {tag=kTagSetFreewheelingOscillatorQuality}
xywh {435 220 80 25} labelsize 12 textsize 12
xywh {435 220 80 25} labelsize 14 textsize 14
class ValueMenu
}
}
}
Fl_Box piano_ {
xywh {5 400 790 70} labelsize 12
xywh {0 410 800 70} labelsize 16
class Piano
}
Fl_Group {subPanels_[kPanelGeneral]} {
xywh {5 110 790 285} hide
xywh {5 110 790 300} hide
class LogicalGroup
} {}
Fl_Box lblHover_ {
comment {palette=invertedPalette} selected
xywh {5 105 170 25} labelsize 12 hide
xywh {5 105 170 25} labelsize 14 hide
class HoverBox
}
}

View file

@ -737,6 +737,13 @@ void Editor::Impl::createFrameContents()
return box;
};
#if 0
auto createSquaredGroup = [this, &palette](const CRect& bounds, int, const char*, CHoriTxtAlign, int) {
auto* box = new SBoxContainer(bounds);
OnThemeChanged.push_back([box, palette]() {
box->setBackgroundColor(palette->boxBackground);
});
return box;
};
auto createTitleGroup = [this, &palette](const CRect& bounds, int, const char* label, CHoriTxtAlign, int fontsize) {
auto* box = new STitleContainer(bounds, label);
box->setCornerRadius(10.0);
@ -1909,6 +1916,12 @@ void Editor::Impl::applyBackgroundForCurrentPanel()
bitmap = defaultBackgroundBitmap_;
downscaleToWidthAndHeight(bitmap, imageContainer_->getViewSize().getSize());
// Centered image
CCoord xoffset =
(imageContainer_->getViewSize().getWidth() - bitmap->getWidth()) / 2;
imageContainer_->setBackgroundOffset(CPoint(-xoffset, 0));
imageContainer_->setBackground(bitmap);
}

View file

@ -29,8 +29,9 @@ struct SPiano::Impl {
CCoord spacingY_ = 4.0;
CColor backgroundFill_ { 0xca, 0xca, 0xca, 0xff };
#if 0
float backgroundRadius_ = 5.0;
#endif
float keyUsedHue_ = 0.55;
float keySwitchHue_ = 0.0;
float whiteKeyChroma_ = 0.9;
@ -170,7 +171,9 @@ void SPiano::draw(CDrawContext* dc)
if (impl.backgroundFill_.alpha > 0) {
SharedPointer<CGraphicsPath> path;
path = owned(dc->createGraphicsPath());
#if 0
path->addRoundRect(dim.bounds, impl.backgroundRadius_);
#endif
dc->setFillColor(impl.backgroundFill_);
dc->drawGraphicsPath(path, CDrawContext::kPathFilled);
}

View file

@ -1,7 +1,7 @@
/* This file is generated by the layout maker tool. */
auto* const view__0 = createLogicalGroup(CRect(0, 0, 800, 475), -1, "", kCenterText, 14);
mainView = view__0;
auto* const view__1 = createBackground(CRect(90, 110, 880, 395), -1, "", kCenterText, 14);
auto* const view__1 = createBackground(CRect(0, 110, 800, 410), -1, "", kCenterText, 14);
imageContainer_ = view__1;
view__0->addView(view__1);
enterPalette(invertedPalette);
@ -42,7 +42,7 @@ auto* const view__15 = createInactiveLabel(CRect(10, 40, 370, 70), -1, "No key s
keyswitchInactiveLabel_ = view__15;
view__9->addView(view__15);
view__15->setVisible(false);
auto* const view__16 = createLabel(CRect(10, 73, 70, 98), -1, "Voices:", kRightText, 12);
auto* const view__16 = createLabel(CRect(10, 73, 70, 98), -1, "Voices:", kRightText, 14);
view__9->addView(view__16);
auto* const view__17 = createPreviousFileButton(CRect(303, 13, 328, 38), kTagPreviousSfzFile, "", kCenterText, 24);
view__9->addView(view__17);
@ -51,17 +51,17 @@ view__9->addView(view__18);
auto* const view__19 = createChevronDropDown(CRect(353, 13, 378, 38), kTagFileOperations, "", kCenterText, 24);
fileOperationsMenu_ = view__19;
view__9->addView(view__19);
auto* const view__20 = createLabel(CRect(75, 73, 115, 98), -1, "", kCenterText, 12);
auto* const view__20 = createLabel(CRect(75, 73, 115, 98), -1, "", kCenterText, 14);
infoVoicesLabel_ = view__20;
view__9->addView(view__20);
auto* const view__21 = createLabel(CRect(137, 73, 177, 98), -1, "Max:", kRightText, 12);
auto* const view__21 = createLabel(CRect(137, 73, 177, 98), -1, "Max:", kRightText, 14);
view__9->addView(view__21);
auto* const view__22 = createLabel(CRect(193, 73, 228, 98), -1, "", kCenterText, 12);
auto* const view__22 = createLabel(CRect(193, 73, 228, 98), -1, "", kCenterText, 14);
numVoicesLabel_ = view__22;
view__9->addView(view__22);
auto* const view__23 = createLabel(CRect(271, 73, 331, 98), -1, "Memory:", kRightText, 12);
auto* const view__23 = createLabel(CRect(271, 73, 331, 98), -1, "Memory:", kRightText, 14);
view__9->addView(view__23);
auto* const view__24 = createLabel(CRect(337, 73, 387, 98), -1, "", kCenterText, 12);
auto* const view__24 = createLabel(CRect(337, 73, 387, 98), -1, "", kCenterText, 14);
memoryLabel_ = view__24;
view__9->addView(view__24);
auto* const view__25 = createChevronValueDropDown(CRect(235, 77, 255, 97), kTagSetNumVoices, "", kCenterText, 16);
@ -72,13 +72,13 @@ view__2->addView(view__26);
auto* const view__27 = createKnob48(CRect(7, 15, 55, 63), -1, "", kCenterText, 14);
view__26->addView(view__27);
view__27->setVisible(false);
auto* const view__28 = createValueLabel(CRect(2, 65, 62, 70), -1, "Center", kCenterText, 12);
auto* const view__28 = createValueLabel(CRect(2, 65, 62, 70), -1, "Center", kCenterText, 14);
view__26->addView(view__28);
view__28->setVisible(false);
auto* const view__29 = createKnobCCBox(CRect(6, 5, 76, 95), kTagSetCCVolume, "Volume", kCenterText, 12);
auto* const view__29 = createKnobCCBox(CRect(6, 5, 76, 95), kTagSetCCVolume, "Volume", kCenterText, 14);
volumeCCKnob_ = view__29;
view__26->addView(view__29);
auto* const view__30 = createKnobCCBox(CRect(83, 5, 153, 95), kTagSetCCPan, "Pan", kCenterText, 12);
auto* const view__30 = createKnobCCBox(CRect(83, 5, 153, 95), kTagSetCCPan, "Pan", kCenterText, 14);
panCCKnob_ = view__30;
view__26->addView(view__30);
auto* const view__31 = createVMeter(CRect(159, 5, 182, 95), -1, "", kCenterText, 14);
@ -88,11 +88,11 @@ auto* const view__32 = createVMeter(CRect(183, 5, 206, 95), -1, "", kCenterText,
meters_[1] = view__32;
view__26->addView(view__32);
enterPalette(defaultPalette);
auto* const view__33 = createLogicalGroup(CRect(5, 110, 795, 395), -1, "", kCenterText, 14);
auto* const view__33 = createLogicalGroup(CRect(5, 110, 795, 410), -1, "", kCenterText, 14);
subPanels_[kPanelInfo] = view__33;
view__0->addView(view__33);
view__33->setVisible(false);
auto* const view__34 = createRoundedGroup(CRect(0, 0, 790, 285), -1, "", kCenterText, 14);
auto* const view__34 = createRoundedGroup(CRect(0, 0, 790, 300), -1, "", kCenterText, 14);
view__33->addView(view__34);
auto* const view__35 = createLabel(CRect(15, 10, 75, 35), -1, "Curves:", kLeftText, 14);
view__34->addView(view__35);
@ -119,97 +119,97 @@ view__34->addView(view__43);
auto* const view__44 = createLabel(CRect(115, 110, 155, 135), -1, "0", kCenterText, 14);
infoSamplesLabel_ = view__44;
view__34->addView(view__44);
auto* const view__45 = createLogicalGroup(CRect(5, 110, 795, 395), -1, "", kCenterText, 14);
auto* const view__45 = createLogicalGroup(CRect(5, 110, 795, 410), -1, "", kCenterText, 14);
subPanels_[kPanelControls] = view__45;
view__0->addView(view__45);
view__45->setVisible(false);
auto* const view__46 = createRoundedGroup(CRect(0, 0, 790, 285), -1, "", kCenterText, 14);
auto* const view__46 = createRoundedGroup(CRect(0, 0, 790, 300), -1, "", kCenterText, 14);
view__45->addView(view__46);
auto* const view__47 = createControlsPanel(CRect(0, 0, 790, 285), -1, "", kCenterText, 12);
auto* const view__47 = createControlsPanel(CRect(0, 0, 790, 300), -1, "", kCenterText, 14);
controlsPanel_ = view__47;
view__46->addView(view__47);
auto* const view__48 = createLogicalGroup(CRect(0, 110, 825, 470), -1, "", kCenterText, 14);
subPanels_[kPanelSettings] = view__48;
view__0->addView(view__48);
auto* const view__49 = createRoundedGroup(CRect(5, 0, 795, 285), -1, "", kCenterText, 14);
auto* const view__49 = createRoundedGroup(CRect(5, 0, 795, 300), -1, "", kCenterText, 14);
view__48->addView(view__49);
auto* const view__50 = createValueMenu(CRect(170, 85, 240, 110), kTagSetOversampling, "", kCenterText, 12);
auto* const view__50 = createValueMenu(CRect(170, 85, 240, 110), kTagSetOversampling, "", kCenterText, 14);
oversamplingSlider_ = view__50;
view__49->addView(view__50);
auto* const view__51 = createLabel(CRect(15, 85, 100, 110), -1, "Oversampling", kLeftText, 12);
auto* const view__51 = createLabel(CRect(15, 85, 100, 110), -1, "Oversampling", kLeftText, 14);
view__49->addView(view__51);
auto* const view__52 = createLabel(CRect(15, 60, 90, 85), -1, "Preload size", kLeftText, 12);
auto* const view__52 = createLabel(CRect(15, 60, 90, 85), -1, "Preload size", kLeftText, 14);
view__49->addView(view__52);
auto* const view__53 = createValueMenu(CRect(170, 60, 240, 85), kTagSetPreloadSize, "", kCenterText, 12);
auto* const view__53 = createValueMenu(CRect(170, 60, 240, 85), kTagSetPreloadSize, "", kCenterText, 14);
preloadSizeSlider_ = view__53;
view__49->addView(view__53);
auto* const view__54 = createValueMenu(CRect(430, 35, 510, 60), kTagSetSampleQuality, "", kCenterText, 12);
auto* const view__54 = createValueMenu(CRect(430, 35, 510, 60), kTagSetSampleQuality, "", kCenterText, 14);
sampleQualitySlider_ = view__54;
view__49->addView(view__54);
auto* const view__55 = createLabel(CRect(285, 35, 335, 60), -1, "Sample", kLeftText, 12);
auto* const view__55 = createLabel(CRect(285, 35, 335, 60), -1, "Sample", kLeftText, 14);
view__49->addView(view__55);
auto* const view__56 = createLabel(CRect(285, 85, 345, 110), -1, "Oscillator", kLeftText, 12);
auto* const view__56 = createLabel(CRect(285, 85, 345, 110), -1, "Oscillator", kLeftText, 14);
view__49->addView(view__56);
auto* const view__57 = createValueMenu(CRect(430, 85, 510, 110), kTagSetOscillatorQuality, "", kCenterText, 12);
auto* const view__57 = createValueMenu(CRect(430, 85, 510, 110), kTagSetOscillatorQuality, "", kCenterText, 14);
oscillatorQualitySlider_ = view__57;
view__49->addView(view__57);
auto* const view__58 = createOptionMenu(CRect(675, 35, 775, 60), kTagThemeMenu, "", kCenterText, 12);
auto* const view__58 = createOptionMenu(CRect(675, 35, 775, 60), kTagThemeMenu, "", kCenterText, 14);
themeMenu_ = view__58;
view__49->addView(view__58);
auto* const view__59 = createLabel(CRect(550, 35, 595, 60), -1, "Theme", kLeftText, 12);
auto* const view__59 = createLabel(CRect(550, 35, 595, 60), -1, "Theme", kLeftText, 14);
view__49->addView(view__59);
auto* const view__60 = createLabel(CRect(550, 60, 645, 85), -1, "User SFZ folder", kLeftText, 12);
auto* const view__60 = createLabel(CRect(550, 60, 645, 85), -1, "User SFZ folder", kLeftText, 14);
view__49->addView(view__60);
auto* const view__61 = createValueButton(CRect(675, 60, 775, 85), kTagChooseUserFilesDir, "DefaultPath", kCenterText, 12);
auto* const view__61 = createValueButton(CRect(675, 60, 775, 85), kTagChooseUserFilesDir, "DefaultPath", kCenterText, 14);
userFilesDirButton_ = view__61;
view__49->addView(view__61);
auto* const view__62 = createLabel(CRect(550, 175, 610, 200), -1, "Root key", kLeftText, 12);
auto* const view__62 = createLabel(CRect(550, 175, 610, 200), -1, "Root key", kLeftText, 14);
view__49->addView(view__62);
auto* const view__63 = createLabel(CRect(550, 200, 620, 225), -1, "Frequency", kLeftText, 12);
auto* const view__63 = createLabel(CRect(550, 200, 620, 225), -1, "Frequency", kLeftText, 14);
view__49->addView(view__63);
auto* const view__64 = createStyledKnob(CRect(715, 227, 763, 275), kTagSetStretchedTuning, "", kCenterText, 14);
stretchedTuningSlider_ = view__64;
view__49->addView(view__64);
auto* const view__65 = createLabel(CRect(550, 235, 600, 260), -1, "Stretch", kLeftText, 12);
auto* const view__65 = createLabel(CRect(550, 235, 600, 260), -1, "Stretch", kLeftText, 14);
view__49->addView(view__65);
auto* const view__66 = createLabel(CRect(550, 150, 610, 175), -1, "Scala file", kLeftText, 12);
auto* const view__66 = createLabel(CRect(550, 150, 610, 175), -1, "Scala file", kLeftText, 14);
view__49->addView(view__66);
auto* const view__67 = createValueButton(CRect(650, 150, 750, 175), kTagLoadScalaFile, "DefaultScale", kCenterText, 12);
auto* const view__67 = createValueButton(CRect(650, 150, 750, 175), kTagLoadScalaFile, "DefaultScale", kCenterText, 14);
scalaFileButton_ = view__67;
view__49->addView(view__67);
auto* const view__68 = createValueMenu(CRect(710, 175, 745, 200), kTagSetScalaRootKey, "", kCenterText, 12);
auto* const view__68 = createValueMenu(CRect(710, 175, 745, 200), kTagSetScalaRootKey, "", kCenterText, 14);
scalaRootKeySlider_ = view__68;
view__49->addView(view__68);
auto* const view__69 = createValueMenu(CRect(745, 175, 775, 200), kTagSetScalaRootKey, "", kCenterText, 12);
auto* const view__69 = createValueMenu(CRect(745, 175, 775, 200), kTagSetScalaRootKey, "", kCenterText, 14);
scalaRootOctaveSlider_ = view__69;
view__49->addView(view__69);
auto* const view__70 = createResetSomethingButton(CRect(750, 150, 775, 175), kTagResetScalaFile, "", kCenterText, 12);
auto* const view__70 = createResetSomethingButton(CRect(750, 150, 775, 175), kTagResetScalaFile, "", kCenterText, 14);
scalaResetButton_ = view__70;
view__49->addView(view__70);
auto* const view__71 = createLabel(CRect(285, 60, 430, 85), -1, "... when freewheeling", kLeftText, 12);
auto* const view__71 = createLabel(CRect(285, 60, 430, 85), -1, "... when freewheeling", kLeftText, 14);
view__49->addView(view__71);
auto* const view__72 = createValueMenu(CRect(430, 60, 510, 85), kTagSetFreewheelingSampleQuality, "", kCenterText, 12);
auto* const view__72 = createValueMenu(CRect(430, 60, 510, 85), kTagSetFreewheelingSampleQuality, "", kCenterText, 14);
freewheelingSampleQualitySlider_ = view__72;
view__49->addView(view__72);
auto* const view__73 = createLabel(CRect(15, 110, 160, 135), -1, "Sustain cancels release", kLeftText, 12);
auto* const view__73 = createLabel(CRect(15, 110, 160, 135), -1, "Sustain cancels release", kLeftText, 14);
view__49->addView(view__73);
auto* const view__74 = createCheckbox(CRect(195, 110, 220, 135), kTagSetSustainCancelsRelease, "", kCenterText, 14);
sustainCancelsReleaseCheckbox_ = view__74;
view__49->addView(view__74);
auto* const view__75 = createLabel(CRect(15, 35, 240, 55), -1, "SFIZZ_VERSION", kCenterText, 10);
auto* const view__75 = createLabel(CRect(15, 35, 240, 55), -1, "SFIZZ_VERSION", kCenterText, 14);
sfizzVersionLabel_ = view__75;
view__49->addView(view__75);
auto* const view__76 = createLabel(CRect(285, 5, 395, 30), -1, "Rendering quality", kLeftText, 12);
auto* const view__76 = createLabel(CRect(285, 5, 395, 30), -1, "Rendering quality", kLeftText, 14);
view__49->addView(view__76);
auto* const view__77 = createHLine(CRect(15, 25, 240, 30), -1, "", kCenterText, 14);
view__49->addView(view__77);
auto* const view__78 = createLabel(CRect(15, 5, 110, 30), -1, "Engine options", kLeftText, 12);
auto* const view__78 = createLabel(CRect(15, 5, 110, 30), -1, "Engine options", kLeftText, 14);
view__49->addView(view__78);
auto* const view__79 = createHLine(CRect(575, 25, 760, 30), -1, "", kCenterText, 14);
view__49->addView(view__79);
auto* const view__80 = createLabel(CRect(550, 5, 590, 30), -1, "Other", kLeftText, 12);
auto* const view__80 = createLabel(CRect(550, 5, 590, 30), -1, "Other", kLeftText, 14);
view__49->addView(view__80);
auto* const view__81 = createLabel(CRect(550, 120, 775, 145), -1, "Tuning", kLeftText, 12);
auto* const view__81 = createLabel(CRect(550, 120, 775, 145), -1, "Tuning", kLeftText, 14);
view__49->addView(view__81);
auto* const view__82 = createHLine(CRect(285, 25, 510, 30), -1, "", kCenterText, 14);
view__49->addView(view__82);
@ -220,23 +220,23 @@ view__49->addView(view__84);
auto* const view__85 = createChevronValueDropDown(CRect(750, 200, 775, 225), kTagSetTuningFrequency, "", kCenterText, 24);
tuningFrequencyDropdown_ = view__85;
view__49->addView(view__85);
auto* const view__86 = createTextEdit(CRect(690, 200, 750, 225), kTagSetTuningFrequency, "", kCenterText, 12);
auto* const view__86 = createTextEdit(CRect(690, 200, 750, 225), kTagSetTuningFrequency, "", kCenterText, 14);
tuningFrequencyEdit_ = view__86;
view__49->addView(view__86);
auto* const view__87 = createLabel(CRect(285, 110, 430, 135), -1, "... when freewheeling", kLeftText, 12);
auto* const view__87 = createLabel(CRect(285, 110, 430, 135), -1, "... when freewheeling", kLeftText, 14);
view__49->addView(view__87);
auto* const view__88 = createValueMenu(CRect(430, 110, 510, 135), kTagSetFreewheelingOscillatorQuality, "", kCenterText, 12);
auto* const view__88 = createValueMenu(CRect(430, 110, 510, 135), kTagSetFreewheelingOscillatorQuality, "", kCenterText, 14);
freewheelingOscillatorQualitySlider_ = view__88;
view__49->addView(view__88);
auto* const view__89 = createPiano(CRect(5, 400, 795, 470), -1, "", kCenterText, 12);
auto* const view__89 = createPiano(CRect(0, 410, 800, 480), -1, "", kCenterText, 16);
piano_ = view__89;
view__0->addView(view__89);
auto* const view__90 = createLogicalGroup(CRect(5, 110, 795, 395), -1, "", kCenterText, 14);
auto* const view__90 = createLogicalGroup(CRect(5, 110, 795, 410), -1, "", kCenterText, 14);
subPanels_[kPanelGeneral] = view__90;
view__0->addView(view__90);
view__90->setVisible(false);
enterPalette(invertedPalette);
auto* const view__91 = createHoverBox(CRect(5, 105, 175, 130), -1, "", kCenterText, 12);
auto* const view__91 = createHoverBox(CRect(5, 105, 175, 130), -1, "", kCenterText, 14);
lblHover_ = view__91;
view__0->addView(view__91);
view__91->setVisible(false);