mirror of
https://github.com/zhongyang219/MusicPlayer2.git
synced 2026-10-22 00:46:20 +08:00
修正通过点击切换stackElement的行为
This commit is contained in:
+11
-4
@@ -84,7 +84,8 @@ bool CUserUi::LButtonUp(CPoint point)
|
||||
{
|
||||
if (!CPlayerUIBase::LButtonUp(point))
|
||||
{
|
||||
for (const auto& element : m_stack_elements)
|
||||
const auto& stack_elements{ GetStackElements() };
|
||||
for (const auto& element : stack_elements)
|
||||
{
|
||||
UiElement::StackElement* stack_element = dynamic_cast<UiElement::StackElement*>(element.get());
|
||||
if (stack_element != nullptr && stack_element->ckick_to_switch && stack_element->GetRect().PtInRect(point))
|
||||
@@ -329,7 +330,7 @@ std::shared_ptr<UiElement::Element> CUserUi::BuildUiElementFromXmlNode(tinyxml2:
|
||||
}
|
||||
else if (item_name == "stackElement")
|
||||
{
|
||||
m_stack_elements.push_back(ui_element);
|
||||
GetStackElements().push_back(ui_element);
|
||||
UiElement::StackElement* stack_element = dynamic_cast<UiElement::StackElement*>(ui_element.get());
|
||||
if (stack_element != nullptr)
|
||||
{
|
||||
@@ -350,6 +351,11 @@ std::shared_ptr<UiElement::Element> CUserUi::BuildUiElementFromXmlNode(tinyxml2:
|
||||
return ui_element;
|
||||
}
|
||||
|
||||
std::vector<std::shared_ptr<UiElement::Element>>& CUserUi::GetStackElements()
|
||||
{
|
||||
return m_stack_elements[GetUiSize()];
|
||||
}
|
||||
|
||||
void CUserUi::LoadUi()
|
||||
{
|
||||
m_stack_elements.clear();
|
||||
@@ -381,9 +387,10 @@ void CUserUi::LoadUi()
|
||||
void CUserUi::SwitchStackElement()
|
||||
{
|
||||
m_draw_data.lyric_rect.SetRectEmpty();
|
||||
if (!m_stack_elements.empty())
|
||||
auto& stack_elements{ GetStackElements() };
|
||||
if (!stack_elements.empty())
|
||||
{
|
||||
UiElement::StackElement* stack_element = dynamic_cast<UiElement::StackElement*>(m_stack_elements.front().get());
|
||||
UiElement::StackElement* stack_element = dynamic_cast<UiElement::StackElement*>(stack_elements.front().get());
|
||||
if (stack_element != nullptr)
|
||||
stack_element->SwitchDisplay();
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ private:
|
||||
std::shared_ptr<UiElement::Element> m_root_ui_narrow;
|
||||
std::shared_ptr<UiElement::Element> m_root_ui_small;
|
||||
std::wstring m_ui_name;
|
||||
std::vector<std::shared_ptr<UiElement::Element>> m_stack_elements;
|
||||
std::map<CPlayerUIBase::UiSize, std::vector<std::shared_ptr<UiElement::Element>>> m_stack_elements;
|
||||
|
||||
public:
|
||||
virtual int GetUiIndex() override;
|
||||
@@ -39,6 +39,8 @@ private:
|
||||
static int GetMaxUiIndex(const std::vector<std::shared_ptr<CUserUi>>& ui_list);
|
||||
std::shared_ptr<UiElement::Element> BuildUiElementFromXmlNode(tinyxml2::XMLElement* xml_node); //从一个xml节点创建UiElement::Element元素及其所有子元素的对象
|
||||
|
||||
std::vector<std::shared_ptr<UiElement::Element>>& GetStackElements();
|
||||
|
||||
protected:
|
||||
void LoadUi(); //从xml文件载入界面
|
||||
virtual void SwitchStackElement() override;
|
||||
|
||||
Reference in New Issue
Block a user