GOGUIPanel* GOGUICrescendoPanel::CreateCrescendoPanel(GOrgueConfigReader& cfg) { GOGUIButton* button; GOGUIPanel* panel = new GOGUIPanel(m_organfile); GOGUIDisplayMetrics* metrics = new GOGUISetterDisplayMetrics(cfg, m_organfile, GOGUI_SETTER_CRESCENDO); panel->Init(cfg, metrics, _("Crescendo Pedal"), wxT("SetterCrescendoPanel")); GOGUIHW1Background* back = new GOGUIHW1Background(panel); back->Init(cfg, wxT("SetterCrescendo")); panel->AddControl(back); GOGUIEnclosure* enclosure = new GOGUIEnclosure(panel, m_organfile->GetEnclosure(wxT("Swell"))); enclosure->Init(cfg, wxT("SetterSwell")); panel->AddControl(enclosure); GOGUILabel* PosDisplay=new GOGUILabel(panel, m_organfile->GetLabel(wxT("CrescendoLabel"))); PosDisplay->Init(cfg, wxT("SetterCrescendoPosition"), 350, 10); panel->AddControl(PosDisplay); button = new GOGUIButton(panel, m_organfile->GetButton(wxT("Set")), false); button->Init(cfg, wxT("SetterCrescendoSet"), 1, 100); panel->AddControl(button); button = new GOGUIButton(panel, m_organfile->GetButton(wxT("Regular")), false); button->Init(cfg, wxT("SetterCrescendoRegular"), 3, 100); panel->AddControl(button); button = new GOGUIButton(panel, m_organfile->GetButton(wxT("Scope")), false); button->Init(cfg, wxT("SetterCrescendoScope"), 4, 100); panel->AddControl(button); button = new GOGUIButton(panel, m_organfile->GetButton(wxT("Scoped")), false); button->Init(cfg, wxT("SetterCrescendoScoped"), 5, 100); panel->AddControl(button); button = new GOGUIButton(panel, m_organfile->GetButton(wxT("Full")), false); button->Init(cfg, wxT("SetterCrescendoFull"), 7, 100); panel->AddControl(button); button = new GOGUIButton(panel, m_organfile->GetButton(wxT("CrescendoA")), false); button->Init(cfg, wxT("SetterCrescendoA"), 1, 101); panel->AddControl(button); button = new GOGUIButton(panel, m_organfile->GetButton(wxT("CrescendoB")), false); button->Init(cfg, wxT("SetterCrescendoB"), 2, 101); panel->AddControl(button); button = new GOGUIButton(panel, m_organfile->GetButton(wxT("CrescendoC")), false); button->Init(cfg, wxT("SetterCrescendoC"), 3, 101); panel->AddControl(button); button = new GOGUIButton(panel, m_organfile->GetButton(wxT("CrescendoD")), false); button->Init(cfg, wxT("SetterCrescendoD"), 4, 101); panel->AddControl(button); button = new GOGUIButton(panel, m_organfile->GetButton(wxT("CrescendoPrev")), false); button->Init(cfg, wxT("SetterCrescendoPrev"), 6, 101); panel->AddControl(button); button = new GOGUIButton(panel, m_organfile->GetButton(wxT("CrescendoCurrent")), false); button->Init(cfg, wxT("SetterCrescendoCurrent"), 7, 101); panel->AddControl(button); button = new GOGUIButton(panel, m_organfile->GetButton(wxT("CrescendoNext")), false); button->Init(cfg, wxT("SetterCrescendoNext"), 8, 101); panel->AddControl(button); return panel; }
GOGUIPanel* GOGUIFloatingPanel::CreateFloatingPanel(GOrgueConfigReader& cfg) { GOGUIPanel* panel = new GOGUIPanel(m_organfile); GOGUIDisplayMetrics* metrics = new GOGUISetterDisplayMetrics(cfg, m_organfile, GOGUI_SETTER_FLOATING); panel->Init(cfg, metrics, _("Coupler manuals and volume"), wxT("SetterFloating"), wxT("")); GOGUIHW1Background* back = new GOGUIHW1Background(panel); back->Init(cfg, wxT("SetterFloating")); panel->AddControl(back); for (unsigned i = m_organfile->GetODFManualCount(); i <= m_organfile->GetManualAndPedalCount(); i++) { wxString group; group.Printf(wxT("SetterFloating%03d"), i - m_organfile->GetODFManualCount() + 1); GOGUIManualBackground* manual_back = new GOGUIManualBackground(panel, i - m_organfile->GetODFManualCount()); manual_back->Init(cfg, group); panel->AddControl(manual_back); GOGUIManual* manual = new GOGUIManual(panel, m_organfile->GetManual(i), i - m_organfile->GetODFManualCount()); manual->Init(cfg, group); panel->AddControl(manual); for(unsigned j = 0; j < 10; j++) { GOrgueDivisional* divisional = new GOrgueDivisional(m_organfile, m_organfile->GetManual(i)->GetDivisionalTemplate(), true); divisional->Init(cfg, wxString::Format(wxT("Setter%03dDivisional%03d"), i, j + 100), i, 100 + j, wxString::Format(wxT("%d"), j + 1)); m_organfile->GetManual(i)->AddDivisional(divisional); GOGUIButton* button = new GOGUIButton(panel, divisional, true); button->Init(cfg, wxString::Format(wxT("Setter%03dDivisional%03d"), i, j + 100), j + 1, i - m_organfile->GetODFManualCount()); panel->AddControl(button); } } GOrgueEnclosure* master_enc = new GOrgueEnclosure(m_organfile); master_enc->Init(cfg, wxT("SetterMasterVolume"), _("Master"), 127); m_organfile->AddEnclosure(master_enc); master_enc->SetElementID(m_organfile->GetRecorderElementID(wxString::Format(wxT("SM")))); GOGUIEnclosure* enclosure = new GOGUIEnclosure(panel, master_enc); enclosure->Init(cfg, wxT("SetterMasterVolume")); panel->AddControl(enclosure); for(unsigned i = 0; i < m_organfile->GetWindchestGroupCount(); i++) { GOrgueWindchest* windchest = m_organfile->GetWindchest(i); windchest->AddEnclosure(master_enc); GOrgueEnclosure* enc = new GOrgueEnclosure(m_organfile); enc->Init(cfg, wxString::Format(wxT("SetterMaster%03d"), i + 1), windchest->GetName(), 127); m_organfile->AddEnclosure(enc); enc->SetElementID(m_organfile->GetRecorderElementID(wxString::Format(wxT("SM%d"), i))); windchest->AddEnclosure(enc); enclosure = new GOGUIEnclosure(panel, enc); enclosure->Init(cfg, wxString::Format(wxT("SetterMaster%03d"), i + 1)); panel->AddControl(enclosure); } return panel; }