Ref<Syntax> const CreateSyntax(Optional<Ref<Syntax>>const left, SourcePart const&part, Optional<Ref<Syntax>>const right)const override final { Ref<SyntaxContainer> result = new SyntaxContainer(part); result->Add(left); result->Add(right); return(*result); };
bool Init() override { m_commonGUIStyle = g_commonGUIStyle; m_canvas = Utility::MakeRef(new Canvas()); // Load textures for song select m_style = SongSelectStyle::Get(g_application); // Split between statistics and selection wheel (in percentage) const float screenSplit = 0.4f; // Statistics window m_statisticsWindow = Ref<SongStatistics>(new SongStatistics(m_style)); Canvas::Slot* statisticsSlot = m_canvas->Add(m_statisticsWindow.As<GUIElementBase>()); statisticsSlot->anchor = Anchor(0, 0, screenSplit, 1.0f); statisticsSlot->SetZOrder(2); // Background Panel* background = new Panel(); background->imageFillMode = FillMode::Fill; background->texture = g_application->LoadTexture("bg.png"); background->color = Color(0.5f); Canvas::Slot* bgSlot = m_canvas->Add(background->MakeShared()); bgSlot->anchor = Anchors::Full; bgSlot->SetZOrder(-2); LayoutBox* box = new LayoutBox(); Canvas::Slot* boxSlot = m_canvas->Add(box->MakeShared()); boxSlot->anchor = Anchor(screenSplit, 0, 1.0f, 1.0f); box->layoutDirection = LayoutBox::Vertical; { m_searchField = Ref<TextInputField>(new TextInputField(m_commonGUIStyle)); LayoutBox::Slot* searchFieldSlot = box->Add(m_searchField.As<GUIElementBase>()); searchFieldSlot->fillX = true; m_searchField->OnTextUpdated.Add(this, &SongSelect_Impl::OnSearchTermChanged); m_selectionWheel = Ref<SelectionWheel>(new SelectionWheel(m_style)); LayoutBox::Slot* selectionSlot = box->Add(m_selectionWheel.As<GUIElementBase>()); selectionSlot->fillY = true; m_selectionWheel->OnMapSelected.Add(this, &SongSelect_Impl::OnMapSelected); m_selectionWheel->OnDifficultySelected.Add(this, &SongSelect_Impl::OnDifficultySelected); } // Select interface sound m_selectSound = g_audio->CreateSample("audio/menu_click.wav"); // Setup the map database m_mapDatabase.AddSearchPath(g_gameConfig.GetString(GameConfigKeys::SongFolder)); m_mapDatabase.OnMapsAdded.Add(m_selectionWheel.GetData(), &SelectionWheel::OnMapsAdded); m_mapDatabase.OnMapsUpdated.Add(m_selectionWheel.GetData(), &SelectionWheel::OnMapsUpdated); m_mapDatabase.OnMapsRemoved.Add(m_selectionWheel.GetData(), &SelectionWheel::OnMapsRemoved); m_mapDatabase.OnMapsCleared.Add(m_selectionWheel.GetData(), &SelectionWheel::OnMapsCleared); m_mapDatabase.StartSearching(); m_selectionWheel->SelectRandom(); return true; }
Ref<Syntax> const Create(Ref<Syntax>const left, SourcePart const&part, Ref<Syntax>const right)const override final{ Ref<SyntaxContainer> result = new SyntaxContainer(part); result->Add(left, right); return *result; }