Merge pull request #26126 from stephan49/fix-pipewire-unlock-error
[xbmc.git] / xbmc / guilib / GUIComponent.cpp
blobd7b025a564ee802ec7374d2484b2498107c70065
1 /*
2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
9 #include "GUIComponent.h"
11 #include "GUIAudioManager.h"
12 #include "GUIColorManager.h"
13 #include "GUIInfoManager.h"
14 #include "GUILargeTextureManager.h"
15 #include "GUITextureCallbackManager.h"
16 #include "GUIWindowManager.h"
17 #include "ServiceBroker.h"
18 #include "StereoscopicsManager.h"
19 #include "TextureManager.h"
20 #include "URL.h"
21 #include "dialogs/GUIDialogYesNo.h"
22 #include "handlers/GUIAnnouncementHandlerContainer.h"
24 #include <memory>
26 CGUIComponent::CGUIComponent()
27 : m_pWindowManager(std::make_unique<CGUIWindowManager>()),
28 m_pTextureManager(std::make_unique<CGUITextureManager>()),
29 m_pLargeTextureManager(std::make_unique<CGUILargeTextureManager>()),
30 m_pTextureCallbackManager(std::make_unique<CGUITextureCallbackManager>()),
31 m_stereoscopicsManager(std::make_unique<CStereoscopicsManager>()),
32 m_guiInfoManager(std::make_unique<CGUIInfoManager>()),
33 m_guiColorManager(std::make_unique<CGUIColorManager>()),
34 m_guiAudioManager(std::make_unique<CGUIAudioManager>()),
35 m_announcementHandlerContainer(std::make_unique<CGUIAnnouncementHandlerContainer>())
39 CGUIComponent::CGUIComponent(bool)
43 CGUIComponent::~CGUIComponent()
45 Deinit();
48 void CGUIComponent::Init()
50 m_pWindowManager->Initialize();
51 m_stereoscopicsManager->Initialize();
52 m_guiInfoManager->Initialize();
54 CServiceBroker::RegisterGUI(this);
57 void CGUIComponent::Deinit()
59 CServiceBroker::UnregisterGUI();
61 if (m_pWindowManager)
62 m_pWindowManager->DeInitialize();
65 CGUIWindowManager& CGUIComponent::GetWindowManager()
67 return *m_pWindowManager;
70 CGUITextureManager& CGUIComponent::GetTextureManager()
72 return *m_pTextureManager;
75 CGUILargeTextureManager& CGUIComponent::GetLargeTextureManager()
77 return *m_pLargeTextureManager;
80 CGUITextureCallbackManager& CGUIComponent::GetTextureCallbackManager()
82 return *m_pTextureCallbackManager;
85 CStereoscopicsManager &CGUIComponent::GetStereoscopicsManager()
87 return *m_stereoscopicsManager;
90 CGUIInfoManager &CGUIComponent::GetInfoManager()
92 return *m_guiInfoManager;
95 CGUIColorManager &CGUIComponent::GetColorManager()
97 return *m_guiColorManager;
100 CGUIAudioManager &CGUIComponent::GetAudioManager()
102 return *m_guiAudioManager;
105 bool CGUIComponent::ConfirmDelete(const std::string& path)
107 CGUIDialogYesNo* pDialog = GetWindowManager().GetWindow<CGUIDialogYesNo>(WINDOW_DIALOG_YES_NO);
108 if (pDialog)
110 pDialog->SetHeading(CVariant{122});
111 pDialog->SetLine(0, CVariant{125});
112 pDialog->SetLine(1, CVariant{CURL(path).GetWithoutUserDetails()});
113 pDialog->SetLine(2, CVariant{""});
114 pDialog->Open();
115 if (pDialog->IsConfirmed())
116 return true;
118 return false;