diff options
Diffstat (limited to 'xbmc/input/joysticks/dialogs')
-rw-r--r-- | xbmc/input/joysticks/dialogs/CMakeLists.txt | 5 | ||||
-rw-r--r-- | xbmc/input/joysticks/dialogs/GUIDialogNewJoystick.cpp | 59 | ||||
-rw-r--r-- | xbmc/input/joysticks/dialogs/GUIDialogNewJoystick.h | 30 |
3 files changed, 94 insertions, 0 deletions
diff --git a/xbmc/input/joysticks/dialogs/CMakeLists.txt b/xbmc/input/joysticks/dialogs/CMakeLists.txt new file mode 100644 index 0000000..73adcec --- /dev/null +++ b/xbmc/input/joysticks/dialogs/CMakeLists.txt @@ -0,0 +1,5 @@ +set(SOURCES GUIDialogNewJoystick.cpp) + +set(HEADERS GUIDialogNewJoystick.h) + +core_add_library(input_joystick_dialogs) diff --git a/xbmc/input/joysticks/dialogs/GUIDialogNewJoystick.cpp b/xbmc/input/joysticks/dialogs/GUIDialogNewJoystick.cpp new file mode 100644 index 0000000..b66ce89 --- /dev/null +++ b/xbmc/input/joysticks/dialogs/GUIDialogNewJoystick.cpp @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2016-2018 Team Kodi + * This file is part of Kodi - https://kodi.tv + * + * SPDX-License-Identifier: GPL-2.0-or-later + * See LICENSES/README.md for more information. + */ + +#include "GUIDialogNewJoystick.h" + +#include "ServiceBroker.h" +#include "guilib/GUIComponent.h" +#include "guilib/GUIWindowManager.h" +#include "guilib/WindowIDs.h" +#include "messaging/helpers/DialogHelper.h" +#include "settings/Settings.h" +#include "settings/SettingsComponent.h" + +using namespace KODI; +using namespace JOYSTICK; + +CGUIDialogNewJoystick::CGUIDialogNewJoystick() : CThread("NewJoystickDlg") +{ +} + +void CGUIDialogNewJoystick::ShowAsync() +{ + bool bShow = true; + + if (IsRunning()) + bShow = false; + else if (!CServiceBroker::GetSettingsComponent()->GetSettings()->GetBool( + CSettings::SETTING_INPUT_ASKNEWCONTROLLERS)) + bShow = false; + else if (CServiceBroker::GetGUI()->GetWindowManager().IsWindowActive( + WINDOW_DIALOG_GAME_CONTROLLERS, false)) + bShow = false; + + if (bShow) + Create(); +} + +void CGUIDialogNewJoystick::Process() +{ + using namespace MESSAGING::HELPERS; + + // "New controller detected" + // "A new controller has been detected. Configuration can be done at any time in "Settings -> + // System Settings -> Input". Would you like to configure it now?" + if (ShowYesNoDialogText(CVariant{35011}, CVariant{35012}) == DialogResponse::CHOICE_YES) + { + CServiceBroker::GetGUI()->GetWindowManager().ActivateWindow(WINDOW_DIALOG_GAME_CONTROLLERS); + } + else + { + CServiceBroker::GetSettingsComponent()->GetSettings()->SetBool( + CSettings::SETTING_INPUT_ASKNEWCONTROLLERS, false); + } +} diff --git a/xbmc/input/joysticks/dialogs/GUIDialogNewJoystick.h b/xbmc/input/joysticks/dialogs/GUIDialogNewJoystick.h new file mode 100644 index 0000000..334191f --- /dev/null +++ b/xbmc/input/joysticks/dialogs/GUIDialogNewJoystick.h @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2016-2018 Team Kodi + * This file is part of Kodi - https://kodi.tv + * + * SPDX-License-Identifier: GPL-2.0-or-later + * See LICENSES/README.md for more information. + */ + +#pragma once + +#include "threads/Thread.h" + +namespace KODI +{ +namespace JOYSTICK +{ +class CGUIDialogNewJoystick : protected CThread +{ +public: + CGUIDialogNewJoystick(); + ~CGUIDialogNewJoystick() override = default; + + void ShowAsync(); + +protected: + // implementation of CThread + void Process() override; +}; +} // namespace JOYSTICK +} // namespace KODI |