Add info tab

This commit is contained in:
alexmitchell 2021-05-23 11:37:21 +09:30
parent c1d492ad03
commit abfaf94128
3 changed files with 214 additions and 194 deletions

View file

@ -6,16 +6,16 @@ widget_class mainView {open
xywh {439 94 800 475} type Double xywh {439 94 800 475} type Double
class LogicalGroup visible class LogicalGroup visible
} { } {
Fl_Box imageContainer_ { Fl_Box imageContainer_ {selected
image {../resources/background.png} xywh {190 110 600 280} image {../resources/background.png} xywh {5 110 790 285}
class Background class Background
} }
Fl_Group {} { Fl_Group {} {
comment {palette=invertedPalette} open selected comment {palette=invertedPalette} open
xywh {0 0 800 110} xywh {0 0 800 110}
class LogicalGroup class LogicalGroup
} { } {
Fl_Group {} {open Fl_Group {} {
xywh {5 4 175 101} box ROUNDED_BOX align 0 xywh {5 4 175 101} box ROUNDED_BOX align 0
class RoundedGroup class RoundedGroup
} { } {
@ -24,23 +24,28 @@ widget_class mainView {open
image {../resources/logo_text_shaded.png} xywh {32 9 120 60} image {../resources/logo_text_shaded.png} xywh {32 9 120 60}
class AboutButton class AboutButton
} }
Fl_Button {panelButtons_[kPanelGeneral]} { Fl_Button {panelButtons_[kPanelInfo]} {
comment {tag=kTagFirstChangePanel+kPanelGeneral} comment {tag=kTagFirstChangePanel+kPanelInfo}
xywh {36 73 32 32} labelsize 30 xywh {56 73 32 32} labelsize 30
class HomeButton class InfoButton
} }
Fl_Button {panelButtons_[kPanelControls]} { Fl_Button {panelButtons_[kPanelControls]} {
comment {tag=kTagFirstChangePanel+kPanelControls} comment {tag=kTagFirstChangePanel+kPanelControls}
xywh {76 73 32 32} labelsize 30 xywh {97 73 32 32} labelsize 30
class CCButton class CCButton
} }
Fl_Button {panelButtons_[kPanelSettings]} { Fl_Button {panelButtons_[kPanelSettings]} {
comment {tag=kTagFirstChangePanel+kPanelSettings} comment {tag=kTagFirstChangePanel+kPanelSettings}
xywh {116 73 32 32} labelsize 30 xywh {137 73 32 32} labelsize 30
class SettingsButton class SettingsButton
} }
Fl_Button {panelButtons_[kPanelGeneral]} {
comment {tag=kTagFirstChangePanel+kPanelGeneral}
xywh {16 73 32 32} labelsize 30
class HomeButton
}
} }
Fl_Group {} {open Fl_Group {} {
xywh {185 5 418 100} box ROUNDED_BOX xywh {185 5 418 100} box ROUNDED_BOX
class RoundedGroup class RoundedGroup
} { } {
@ -121,7 +126,7 @@ widget_class mainView {open
class ChevronValueDropDown class ChevronValueDropDown
} }
} }
Fl_Group {} {open Fl_Group {} {
xywh {608 5 187 100} box ROUNDED_BOX xywh {608 5 187 100} box ROUNDED_BOX
class RoundedGroup class RoundedGroup
} { } {
@ -156,12 +161,12 @@ widget_class mainView {open
} }
} }
} }
Fl_Group {subPanels_[kPanelGeneral]} { Fl_Group {subPanels_[kPanelInfo]} {open
xywh {5 110 791 285} hide xywh {5 110 791 285} hide
class LogicalGroup class LogicalGroup
} { } {
Fl_Group {} {open Fl_Group {} {open
xywh {5 110 175 280} box ROUNDED_BOX xywh {5 110 790 280} box ROUNDED_BOX
class RoundedGroup class RoundedGroup
} { } {
Fl_Box {} { Fl_Box {} {
@ -216,7 +221,7 @@ widget_class mainView {open
} }
} }
} }
Fl_Group {subPanels_[kPanelControls]} {open Fl_Group {subPanels_[kPanelControls]} {
xywh {5 110 790 285} hide xywh {5 110 790 285} hide
class LogicalGroup class LogicalGroup
} { } {
@ -230,7 +235,7 @@ widget_class mainView {open
} {} } {}
} }
} }
Fl_Group {subPanels_[kPanelSettings]} {open Fl_Group {subPanels_[kPanelSettings]} {
xywh {5 109 790 316} xywh {5 109 790 316}
class LogicalGroup class LogicalGroup
} { } {
@ -381,4 +386,8 @@ widget_class mainView {open
xywh {5 400 790 70} labelsize 12 xywh {5 400 790 70} labelsize 12
class Piano class Piano
} }
Fl_Group {subPanels_[kPanelGeneral]} {open
xywh {25 130 791 285} hide
class LogicalGroup
} {}
} }

View file

@ -66,6 +66,7 @@ struct Editor::Impl : EditorController::Receiver,
enum { enum {
kPanelGeneral, kPanelGeneral,
kPanelInfo,
kPanelControls, kPanelControls,
kPanelSettings, kPanelSettings,
kNumPanels, kNumPanels,
@ -817,6 +818,9 @@ void Editor::Impl::createFrameContents()
auto createHomeButton = [&createGlyphButton](const CRect& bounds, int tag, const char*, CHoriTxtAlign, int fontsize) { auto createHomeButton = [&createGlyphButton](const CRect& bounds, int tag, const char*, CHoriTxtAlign, int fontsize) {
return createGlyphButton(u8"\ue1d6", bounds, tag, fontsize); return createGlyphButton(u8"\ue1d6", bounds, tag, fontsize);
}; };
auto createInfoButton = [&createGlyphButton](const CRect& bounds, int tag, const char*, CHoriTxtAlign, int fontsize) {
return createGlyphButton(u8"\ue1e7", bounds, tag, fontsize);
};
auto createCCButton = [&createGlyphButton](const CRect& bounds, int tag, const char*, CHoriTxtAlign, int fontsize) { auto createCCButton = [&createGlyphButton](const CRect& bounds, int tag, const char*, CHoriTxtAlign, int fontsize) {
// return createGlyphButton(u8"\ue240", bounds, tag, fontsize); // return createGlyphButton(u8"\ue240", bounds, tag, fontsize);
return createGlyphButton(u8"\ue253", bounds, tag, fontsize); return createGlyphButton(u8"\ue253", bounds, tag, fontsize);

View file

@ -1,7 +1,7 @@
/* This file is generated by the layout maker tool. */ /* This file is generated by the layout maker tool. */
auto* const view__0 = createLogicalGroup(CRect(0, 0, 800, 475), -1, "", kCenterText, 14); auto* const view__0 = createLogicalGroup(CRect(0, 0, 800, 475), -1, "", kCenterText, 14);
mainView = view__0; mainView = view__0;
auto* const view__1 = createBackground(CRect(190, 110, 790, 390), -1, "", kCenterText, 14); auto* const view__1 = createBackground(CRect(5, 110, 795, 395), -1, "", kCenterText, 14);
imageContainer_ = view__1; imageContainer_ = view__1;
view__0->addView(view__1); view__0->addView(view__1);
enterPalette(invertedPalette); enterPalette(invertedPalette);
@ -11,190 +11,197 @@ auto* const view__3 = createRoundedGroup(CRect(5, 4, 180, 105), -1, "", kCenterT
view__2->addView(view__3); view__2->addView(view__3);
auto* const view__4 = createAboutButton(CRect(27, 5, 147, 65), kTagAbout, "", kCenterText, 14); auto* const view__4 = createAboutButton(CRect(27, 5, 147, 65), kTagAbout, "", kCenterText, 14);
view__3->addView(view__4); view__3->addView(view__4);
auto* const view__5 = createHomeButton(CRect(31, 69, 63, 101), kTagFirstChangePanel+kPanelGeneral, "", kCenterText, 30); auto* const view__5 = createInfoButton(CRect(51, 69, 83, 101), kTagFirstChangePanel+kPanelInfo, "", kCenterText, 30);
panelButtons_[kPanelGeneral] = view__5; panelButtons_[kPanelInfo] = view__5;
view__3->addView(view__5); view__3->addView(view__5);
auto* const view__6 = createCCButton(CRect(71, 69, 103, 101), kTagFirstChangePanel+kPanelControls, "", kCenterText, 30); auto* const view__6 = createCCButton(CRect(92, 69, 124, 101), kTagFirstChangePanel+kPanelControls, "", kCenterText, 30);
panelButtons_[kPanelControls] = view__6; panelButtons_[kPanelControls] = view__6;
view__3->addView(view__6); view__3->addView(view__6);
auto* const view__7 = createSettingsButton(CRect(111, 69, 143, 101), kTagFirstChangePanel+kPanelSettings, "", kCenterText, 30); auto* const view__7 = createSettingsButton(CRect(132, 69, 164, 101), kTagFirstChangePanel+kPanelSettings, "", kCenterText, 30);
panelButtons_[kPanelSettings] = view__7; panelButtons_[kPanelSettings] = view__7;
view__3->addView(view__7); view__3->addView(view__7);
auto* const view__8 = createRoundedGroup(CRect(185, 5, 603, 105), -1, "", kCenterText, 14); auto* const view__8 = createHomeButton(CRect(11, 69, 43, 101), kTagFirstChangePanel+kPanelGeneral, "", kCenterText, 30);
view__2->addView(view__8); panelButtons_[kPanelGeneral] = view__8;
auto* const view__9 = createHLine(CRect(10, 36, 405, 41), -1, "", kCenterText, 14); view__3->addView(view__8);
view__8->addView(view__9); auto* const view__9 = createRoundedGroup(CRect(185, 5, 603, 105), -1, "", kCenterText, 14);
auto* const view__10 = createHLine(CRect(10, 68, 405, 73), -1, "", kCenterText, 14); view__2->addView(view__9);
view__8->addView(view__10); auto* const view__10 = createHLine(CRect(10, 36, 405, 41), -1, "", kCenterText, 14);
auto* const view__11 = createClickableLabel(CRect(10, 8, 330, 38), kTagLoadSfzFile, "DefaultInstrument.sfz", kLeftText, 20); view__9->addView(view__10);
sfzFileLabel_ = view__11; auto* const view__11 = createHLine(CRect(10, 68, 405, 73), -1, "", kCenterText, 14);
view__8->addView(view__11); view__9->addView(view__11);
auto* const view__12 = createLabel(CRect(80, 40, 405, 75), -1, "", kLeftText, 20); auto* const view__12 = createClickableLabel(CRect(10, 8, 330, 38), kTagLoadSfzFile, "DefaultInstrument.sfz", kLeftText, 20);
keyswitchLabel_ = view__12; sfzFileLabel_ = view__12;
view__8->addView(view__12); view__9->addView(view__12);
auto* const view__13 = createBadge(CRect(10, 42, 70, 68), -1, "", kCenterText, 20); auto* const view__13 = createLabel(CRect(80, 40, 405, 75), -1, "", kLeftText, 20);
keyswitchBadge_ = view__13; keyswitchLabel_ = view__13;
view__8->addView(view__13); view__9->addView(view__13);
auto* const view__14 = createInactiveLabel(CRect(10, 40, 370, 70), -1, "No key switch", kLeftText, 20); auto* const view__14 = createBadge(CRect(10, 42, 70, 68), -1, "", kCenterText, 20);
keyswitchInactiveLabel_ = view__14; keyswitchBadge_ = view__14;
view__8->addView(view__14); view__9->addView(view__14);
view__14->setVisible(false); auto* const view__15 = createInactiveLabel(CRect(10, 40, 370, 70), -1, "No key switch", kLeftText, 20);
auto* const view__15 = createLabel(CRect(10, 73, 70, 98), -1, "Voices:", kRightText, 12); keyswitchInactiveLabel_ = view__15;
view__8->addView(view__15); view__9->addView(view__15);
auto* const view__16 = createPreviousFileButton(CRect(330, 13, 355, 38), kTagPreviousSfzFile, "", kCenterText, 24); view__15->setVisible(false);
view__8->addView(view__16); auto* const view__16 = createLabel(CRect(10, 73, 70, 98), -1, "Voices:", kRightText, 12);
auto* const view__17 = createNextFileButton(CRect(355, 13, 380, 38), kTagNextSfzFile, "", kCenterText, 24); view__9->addView(view__16);
view__8->addView(view__17); auto* const view__17 = createPreviousFileButton(CRect(330, 13, 355, 38), kTagPreviousSfzFile, "", kCenterText, 24);
auto* const view__18 = createChevronDropDown(CRect(380, 13, 405, 38), kTagFileOperations, "", kCenterText, 24); view__9->addView(view__17);
fileOperationsMenu_ = view__18; auto* const view__18 = createNextFileButton(CRect(355, 13, 380, 38), kTagNextSfzFile, "", kCenterText, 24);
view__8->addView(view__18); view__9->addView(view__18);
auto* const view__19 = createLabel(CRect(75, 73, 115, 98), -1, "", kCenterText, 12); auto* const view__19 = createChevronDropDown(CRect(380, 13, 405, 38), kTagFileOperations, "", kCenterText, 24);
infoVoicesLabel_ = view__19; fileOperationsMenu_ = view__19;
view__8->addView(view__19); view__9->addView(view__19);
auto* const view__20 = createLabel(CRect(147, 73, 187, 98), -1, "Max:", kRightText, 12); auto* const view__20 = createLabel(CRect(75, 73, 115, 98), -1, "", kCenterText, 12);
view__8->addView(view__20); infoVoicesLabel_ = view__20;
auto* const view__21 = createLabel(CRect(193, 73, 228, 98), -1, "", kCenterText, 12); view__9->addView(view__20);
numVoicesLabel_ = view__21; auto* const view__21 = createLabel(CRect(147, 73, 187, 98), -1, "Max:", kRightText, 12);
view__8->addView(view__21); view__9->addView(view__21);
auto* const view__22 = createLabel(CRect(274, 73, 334, 98), -1, "Memory:", kRightText, 12); auto* const view__22 = createLabel(CRect(193, 73, 228, 98), -1, "", kCenterText, 12);
view__8->addView(view__22); numVoicesLabel_ = view__22;
auto* const view__23 = createLabel(CRect(340, 73, 400, 98), -1, "", kCenterText, 12); view__9->addView(view__22);
memoryLabel_ = view__23; auto* const view__23 = createLabel(CRect(274, 73, 334, 98), -1, "Memory:", kRightText, 12);
view__8->addView(view__23); view__9->addView(view__23);
auto* const view__24 = createChevronValueDropDown(CRect(235, 77, 255, 97), kTagSetNumVoices, "", kCenterText, 16); auto* const view__24 = createLabel(CRect(340, 73, 400, 98), -1, "", kCenterText, 12);
numVoicesSlider_ = view__24; memoryLabel_ = view__24;
view__8->addView(view__24); view__9->addView(view__24);
auto* const view__25 = createRoundedGroup(CRect(608, 5, 795, 105), -1, "", kCenterText, 14); auto* const view__25 = createChevronValueDropDown(CRect(235, 77, 255, 97), kTagSetNumVoices, "", kCenterText, 16);
view__2->addView(view__25); numVoicesSlider_ = view__25;
auto* const view__26 = createKnob48(CRect(7, 15, 55, 63), -1, "", kCenterText, 14); view__9->addView(view__25);
view__25->addView(view__26); auto* const view__26 = createRoundedGroup(CRect(608, 5, 795, 105), -1, "", kCenterText, 14);
view__26->setVisible(false); view__2->addView(view__26);
auto* const view__27 = createValueLabel(CRect(2, 65, 62, 70), -1, "Center", kCenterText, 12); auto* const view__27 = createKnob48(CRect(7, 15, 55, 63), -1, "", kCenterText, 14);
view__25->addView(view__27); view__26->addView(view__27);
view__27->setVisible(false); view__27->setVisible(false);
auto* const view__28 = createKnobCCBox(CRect(6, 5, 76, 95), kTagSetCCVolume, "Volume", kCenterText, 12); auto* const view__28 = createValueLabel(CRect(2, 65, 62, 70), -1, "Center", kCenterText, 12);
volumeCCKnob_ = view__28; view__26->addView(view__28);
view__25->addView(view__28); view__28->setVisible(false);
auto* const view__29 = createKnobCCBox(CRect(83, 5, 153, 95), kTagSetCCPan, "Pan", kCenterText, 12); auto* const view__29 = createKnobCCBox(CRect(6, 5, 76, 95), kTagSetCCVolume, "Volume", kCenterText, 12);
panCCKnob_ = view__29; volumeCCKnob_ = view__29;
view__25->addView(view__29); view__26->addView(view__29);
auto* const view__30 = createVMeter(CRect(159, 5, 168, 95), -1, "", kCenterText, 14); auto* const view__30 = createKnobCCBox(CRect(83, 5, 153, 95), kTagSetCCPan, "Pan", kCenterText, 12);
leftMeter_ = view__30; panCCKnob_ = view__30;
view__25->addView(view__30); view__26->addView(view__30);
auto* const view__31 = createVMeter(CRect(171, 5, 180, 95), -1, "", kCenterText, 14); auto* const view__31 = createVMeter(CRect(159, 5, 168, 95), -1, "", kCenterText, 14);
rightMeter_ = view__31; leftMeter_ = view__31;
view__25->addView(view__31); view__26->addView(view__31);
auto* const view__32 = createVMeter(CRect(171, 5, 180, 95), -1, "", kCenterText, 14);
rightMeter_ = view__32;
view__26->addView(view__32);
enterPalette(defaultPalette); enterPalette(defaultPalette);
auto* const view__32 = createLogicalGroup(CRect(5, 110, 796, 395), -1, "", kCenterText, 14); auto* const view__33 = createLogicalGroup(CRect(5, 110, 796, 395), -1, "", kCenterText, 14);
subPanels_[kPanelGeneral] = view__32; subPanels_[kPanelInfo] = view__33;
view__0->addView(view__32); view__0->addView(view__33);
view__32->setVisible(false); view__33->setVisible(false);
auto* const view__33 = createRoundedGroup(CRect(0, 0, 175, 280), -1, "", kCenterText, 14); auto* const view__34 = createRoundedGroup(CRect(0, 0, 790, 280), -1, "", kCenterText, 14);
view__32->addView(view__33);
auto* const view__34 = createLabel(CRect(15, 10, 75, 35), -1, "Curves:", kLeftText, 14);
view__33->addView(view__34); view__33->addView(view__34);
auto* const view__35 = createLabel(CRect(15, 35, 75, 60), -1, "Masters:", kLeftText, 14); auto* const view__35 = createLabel(CRect(15, 10, 75, 35), -1, "Curves:", kLeftText, 14);
view__33->addView(view__35); view__34->addView(view__35);
auto* const view__36 = createLabel(CRect(15, 60, 75, 85), -1, "Groups:", kLeftText, 14); auto* const view__36 = createLabel(CRect(15, 35, 75, 60), -1, "Masters:", kLeftText, 14);
view__33->addView(view__36); view__34->addView(view__36);
auto* const view__37 = createLabel(CRect(15, 85, 75, 110), -1, "Regions:", kLeftText, 14); auto* const view__37 = createLabel(CRect(15, 60, 75, 85), -1, "Groups:", kLeftText, 14);
view__33->addView(view__37); view__34->addView(view__37);
auto* const view__38 = createLabel(CRect(15, 110, 75, 135), -1, "Samples:", kLeftText, 14); auto* const view__38 = createLabel(CRect(15, 85, 75, 110), -1, "Regions:", kLeftText, 14);
view__33->addView(view__38); view__34->addView(view__38);
auto* const view__39 = createLabel(CRect(115, 10, 155, 35), -1, "0", kCenterText, 14); auto* const view__39 = createLabel(CRect(15, 110, 75, 135), -1, "Samples:", kLeftText, 14);
infoCurvesLabel_ = view__39; view__34->addView(view__39);
view__33->addView(view__39); auto* const view__40 = createLabel(CRect(115, 10, 155, 35), -1, "0", kCenterText, 14);
auto* const view__40 = createLabel(CRect(115, 35, 155, 60), -1, "0", kCenterText, 14); infoCurvesLabel_ = view__40;
infoMastersLabel_ = view__40; view__34->addView(view__40);
view__33->addView(view__40); auto* const view__41 = createLabel(CRect(115, 35, 155, 60), -1, "0", kCenterText, 14);
auto* const view__41 = createLabel(CRect(115, 60, 155, 85), -1, "0", kCenterText, 14); infoMastersLabel_ = view__41;
infoGroupsLabel_ = view__41; view__34->addView(view__41);
view__33->addView(view__41); auto* const view__42 = createLabel(CRect(115, 60, 155, 85), -1, "0", kCenterText, 14);
auto* const view__42 = createLabel(CRect(115, 85, 155, 110), -1, "0", kCenterText, 14); infoGroupsLabel_ = view__42;
infoRegionsLabel_ = view__42; view__34->addView(view__42);
view__33->addView(view__42); auto* const view__43 = createLabel(CRect(115, 85, 155, 110), -1, "0", kCenterText, 14);
auto* const view__43 = createLabel(CRect(115, 110, 155, 135), -1, "0", kCenterText, 14); infoRegionsLabel_ = view__43;
infoSamplesLabel_ = view__43; view__34->addView(view__43);
view__33->addView(view__43); auto* const view__44 = createLabel(CRect(115, 110, 155, 135), -1, "0", kCenterText, 14);
auto* const view__44 = createLogicalGroup(CRect(5, 110, 795, 395), -1, "", kCenterText, 14); infoSamplesLabel_ = view__44;
subPanels_[kPanelControls] = view__44; view__34->addView(view__44);
view__0->addView(view__44); auto* const view__45 = createLogicalGroup(CRect(5, 110, 795, 395), -1, "", kCenterText, 14);
view__44->setVisible(false); subPanels_[kPanelControls] = view__45;
auto* const view__45 = createRoundedGroup(CRect(0, 0, 790, 285), -1, "", kCenterText, 14); view__0->addView(view__45);
view__44->addView(view__45); view__45->setVisible(false);
auto* const view__46 = createControlsPanel(CRect(0, 0, 790, 285), -1, "", kCenterText, 12); auto* const view__46 = createRoundedGroup(CRect(0, 0, 790, 285), -1, "", kCenterText, 14);
controlsPanel_ = view__46;
view__45->addView(view__46); view__45->addView(view__46);
auto* const view__47 = createLogicalGroup(CRect(5, 109, 795, 425), -1, "", kCenterText, 14); auto* const view__47 = createControlsPanel(CRect(0, 0, 790, 285), -1, "", kCenterText, 12);
subPanels_[kPanelSettings] = view__47; controlsPanel_ = view__47;
view__0->addView(view__47); view__46->addView(view__47);
auto* const view__48 = createTitleGroup(CRect(300, 26, 495, 126), -1, "Engine", kCenterText, 12); auto* const view__48 = createLogicalGroup(CRect(5, 109, 795, 425), -1, "", kCenterText, 14);
view__47->addView(view__48); subPanels_[kPanelSettings] = view__48;
auto* const view__49 = createValueMenu(CRect(25, 60, 85, 85), kTagSetOversampling, "", kCenterText, 12); view__0->addView(view__48);
oversamplingSlider_ = view__49; auto* const view__49 = createTitleGroup(CRect(300, 26, 495, 126), -1, "Engine", kCenterText, 12);
view__48->addView(view__49); view__48->addView(view__49);
auto* const view__50 = createValueLabel(CRect(15, 20, 95, 45), -1, "Oversampling", kCenterText, 12); auto* const view__50 = createValueMenu(CRect(25, 60, 85, 85), kTagSetOversampling, "", kCenterText, 12);
view__48->addView(view__50); oversamplingSlider_ = view__50;
auto* const view__51 = createValueLabel(CRect(100, 20, 180, 45), -1, "Preload size", kCenterText, 12); view__49->addView(view__50);
view__48->addView(view__51); auto* const view__51 = createValueLabel(CRect(15, 20, 95, 45), -1, "Oversampling", kCenterText, 12);
auto* const view__52 = createValueMenu(CRect(110, 60, 170, 85), kTagSetPreloadSize, "", kCenterText, 12); view__49->addView(view__51);
preloadSizeSlider_ = view__52; auto* const view__52 = createValueLabel(CRect(100, 20, 180, 45), -1, "Preload size", kCenterText, 12);
view__48->addView(view__52); view__49->addView(view__52);
auto* const view__53 = createTitleGroup(CRect(170, 161, 585, 261), -1, "Tuning", kCenterText, 12); auto* const view__53 = createValueMenu(CRect(110, 60, 170, 85), kTagSetPreloadSize, "", kCenterText, 12);
view__47->addView(view__53); preloadSizeSlider_ = view__53;
auto* const view__54 = createValueLabel(CRect(155, 20, 235, 45), -1, "Root key", kCenterText, 12); view__49->addView(view__53);
view__53->addView(view__54); auto* const view__54 = createTitleGroup(CRect(170, 161, 585, 261), -1, "Tuning", kCenterText, 12);
auto* const view__55 = createValueMenu(CRect(250, 60, 310, 85), kTagSetTuningFrequency, "", kCenterText, 12); view__48->addView(view__54);
tuningFrequencySlider_ = view__55; auto* const view__55 = createValueLabel(CRect(155, 20, 235, 45), -1, "Root key", kCenterText, 12);
view__53->addView(view__55); view__54->addView(view__55);
auto* const view__56 = createValueLabel(CRect(240, 20, 320, 45), -1, "Frequency", kCenterText, 12); auto* const view__56 = createValueMenu(CRect(250, 60, 310, 85), kTagSetTuningFrequency, "", kCenterText, 12);
view__53->addView(view__56); tuningFrequencySlider_ = view__56;
auto* const view__57 = createStyledKnob(CRect(340, 45, 388, 93), kTagSetStretchedTuning, "", kCenterText, 14); view__54->addView(view__56);
stretchedTuningSlider_ = view__57; auto* const view__57 = createValueLabel(CRect(240, 20, 320, 45), -1, "Frequency", kCenterText, 12);
view__53->addView(view__57); view__54->addView(view__57);
auto* const view__58 = createValueLabel(CRect(325, 20, 405, 45), -1, "Stretch", kCenterText, 12); auto* const view__58 = createStyledKnob(CRect(340, 45, 388, 93), kTagSetStretchedTuning, "", kCenterText, 14);
view__53->addView(view__58); stretchedTuningSlider_ = view__58;
auto* const view__59 = createValueLabel(CRect(20, 20, 120, 45), -1, "Scala file", kCenterText, 12); view__54->addView(view__58);
view__53->addView(view__59); auto* const view__59 = createValueLabel(CRect(325, 20, 405, 45), -1, "Stretch", kCenterText, 12);
auto* const view__60 = createValueButton(CRect(20, 60, 120, 85), kTagLoadScalaFile, "DefaultScale", kCenterText, 12); view__54->addView(view__59);
scalaFileButton_ = view__60; auto* const view__60 = createValueLabel(CRect(20, 20, 120, 45), -1, "Scala file", kCenterText, 12);
view__53->addView(view__60); view__54->addView(view__60);
auto* const view__61 = createValueMenu(CRect(165, 60, 200, 85), kTagSetScalaRootKey, "", kCenterText, 12); auto* const view__61 = createValueButton(CRect(20, 60, 120, 85), kTagLoadScalaFile, "DefaultScale", kCenterText, 12);
scalaRootKeySlider_ = view__61; scalaFileButton_ = view__61;
view__53->addView(view__61); view__54->addView(view__61);
auto* const view__62 = createValueMenu(CRect(200, 60, 230, 85), kTagSetScalaRootKey, "", kCenterText, 12); auto* const view__62 = createValueMenu(CRect(165, 60, 200, 85), kTagSetScalaRootKey, "", kCenterText, 12);
scalaRootOctaveSlider_ = view__62; scalaRootKeySlider_ = view__62;
view__53->addView(view__62); view__54->addView(view__62);
auto* const view__63 = createResetSomethingButton(CRect(120, 60, 145, 85), kTagResetScalaFile, "", kCenterText, 12); auto* const view__63 = createValueMenu(CRect(200, 60, 230, 85), kTagSetScalaRootKey, "", kCenterText, 12);
scalaResetButton_ = view__63; scalaRootOctaveSlider_ = view__63;
view__53->addView(view__63); view__54->addView(view__63);
auto* const view__64 = createTitleGroup(CRect(615, 161, 754, 261), -1, "Files", kCenterText, 12); auto* const view__64 = createResetSomethingButton(CRect(120, 60, 145, 85), kTagResetScalaFile, "", kCenterText, 12);
userFilesGroup_ = view__64; scalaResetButton_ = view__64;
view__47->addView(view__64); view__54->addView(view__64);
auto* const view__65 = createValueLabel(CRect(20, 20, 120, 45), -1, "User SFZ folder", kCenterText, 12); auto* const view__65 = createTitleGroup(CRect(615, 161, 754, 261), -1, "Files", kCenterText, 12);
view__64->addView(view__65); userFilesGroup_ = view__65;
auto* const view__66 = createValueButton(CRect(20, 60, 120, 85), kTagChooseUserFilesDir, "DefaultPath", kCenterText, 12); view__48->addView(view__65);
userFilesDirButton_ = view__66; auto* const view__66 = createValueLabel(CRect(20, 20, 120, 45), -1, "User SFZ folder", kCenterText, 12);
view__64->addView(view__66); view__65->addView(view__66);
auto* const view__67 = createTitleGroup(CRect(525, 26, 720, 126), -1, "Quality", kCenterText, 12); auto* const view__67 = createValueButton(CRect(20, 60, 120, 85), kTagChooseUserFilesDir, "DefaultPath", kCenterText, 12);
view__47->addView(view__67); userFilesDirButton_ = view__67;
auto* const view__68 = createValueMenu(CRect(15, 60, 95, 85), kTagSetSampleQuality, "", kCenterText, 12); view__65->addView(view__67);
sampleQualitySlider_ = view__68; auto* const view__68 = createTitleGroup(CRect(525, 26, 720, 126), -1, "Quality", kCenterText, 12);
view__67->addView(view__68); view__48->addView(view__68);
auto* const view__69 = createValueLabel(CRect(15, 20, 95, 45), -1, "Sample", kCenterText, 12); auto* const view__69 = createValueMenu(CRect(15, 60, 95, 85), kTagSetSampleQuality, "", kCenterText, 12);
view__67->addView(view__69); sampleQualitySlider_ = view__69;
auto* const view__70 = createValueLabel(CRect(100, 20, 180, 45), -1, "Oscillator", kCenterText, 12); view__68->addView(view__69);
view__67->addView(view__70); auto* const view__70 = createValueLabel(CRect(15, 20, 95, 45), -1, "Sample", kCenterText, 12);
auto* const view__71 = createValueMenu(CRect(100, 60, 180, 85), kTagSetOscillatorQuality, "", kCenterText, 12); view__68->addView(view__70);
oscillatorQualitySlider_ = view__71; auto* const view__71 = createValueLabel(CRect(100, 20, 180, 45), -1, "Oscillator", kCenterText, 12);
view__67->addView(view__71); view__68->addView(view__71);
auto* const view__72 = createTitleGroup(CRect(35, 161, 140, 261), -1, "Appearance", kCenterText, 12); auto* const view__72 = createValueMenu(CRect(100, 60, 180, 85), kTagSetOscillatorQuality, "", kCenterText, 12);
view__47->addView(view__72); oscillatorQualitySlider_ = view__72;
auto* const view__73 = createOptionMenu(CRect(20, 60, 85, 85), kTagThemeMenu, "", kCenterText, 12); view__68->addView(view__72);
themeMenu_ = view__73; auto* const view__73 = createTitleGroup(CRect(35, 161, 140, 261), -1, "Appearance", kCenterText, 12);
view__72->addView(view__73); view__48->addView(view__73);
auto* const view__74 = createValueLabel(CRect(10, 25, 90, 50), -1, "Theme", kCenterText, 12); auto* const view__74 = createOptionMenu(CRect(20, 60, 85, 85), kTagThemeMenu, "", kCenterText, 12);
view__72->addView(view__74); themeMenu_ = view__74;
auto* const view__75 = createPiano(CRect(5, 400, 795, 470), -1, "", kCenterText, 12); view__73->addView(view__74);
piano_ = view__75; auto* const view__75 = createValueLabel(CRect(10, 25, 90, 50), -1, "Theme", kCenterText, 12);
view__0->addView(view__75); view__73->addView(view__75);
auto* const view__76 = createPiano(CRect(5, 400, 795, 470), -1, "", kCenterText, 12);
piano_ = view__76;
view__0->addView(view__76);
auto* const view__77 = createLogicalGroup(CRect(25, 130, 816, 415), -1, "", kCenterText, 14);
subPanels_[kPanelGeneral] = view__77;
view__0->addView(view__77);
view__77->setVisible(false);