/xbmc/dialogs/GUIDialogOK.cpp
http://github.com/xbmc/xbmc · C++ · 96 lines · 75 code · 12 blank · 9 comment · 12 complexity · 9350039493a1a79c79de14f0210a95f7 MD5 · raw file
- /*
- * Copyright (C) 2005-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 "GUIDialogOK.h"
- #include "ServiceBroker.h"
- #include "guilib/GUIComponent.h"
- #include "guilib/GUIMessage.h"
- #include "guilib/GUIWindowManager.h"
- #include "utils/Variant.h"
- CGUIDialogOK::CGUIDialogOK(void)
- : CGUIDialogBoxBase(WINDOW_DIALOG_OK, "DialogConfirm.xml")
- {
- }
- CGUIDialogOK::~CGUIDialogOK(void) = default;
- bool CGUIDialogOK::OnMessage(CGUIMessage& message)
- {
- if (message.GetMessage() == GUI_MSG_CLICKED)
- {
- int iControl = message.GetSenderId();
- if (iControl == CONTROL_YES_BUTTON)
- {
- m_bConfirmed = true;
- Close();
- return true;
- }
- }
- return CGUIDialogBoxBase::OnMessage(message);
- }
- // \brief Show CGUIDialogOK dialog, then wait for user to dismiss it.
- bool CGUIDialogOK::ShowAndGetInput(CVariant heading, CVariant text)
- {
- CGUIDialogOK *dialog = CServiceBroker::GetGUI()->GetWindowManager().GetWindow<CGUIDialogOK>(WINDOW_DIALOG_OK);
- if (!dialog)
- return false;
- dialog->SetHeading(heading);
- dialog->SetText(text);
- dialog->Open();
- return dialog->IsConfirmed();
- }
- // \brief Show CGUIDialogOK dialog, then wait for user to dismiss it.
- bool CGUIDialogOK::ShowAndGetInput(CVariant heading, CVariant line0, CVariant line1, CVariant line2)
- {
- CGUIDialogOK *dialog = CServiceBroker::GetGUI()->GetWindowManager().GetWindow<CGUIDialogOK>(WINDOW_DIALOG_OK);
- if (!dialog)
- return false;
- dialog->SetHeading(heading);
- dialog->SetLine(0, line0);
- dialog->SetLine(1, line1);
- dialog->SetLine(2, line2);
- dialog->Open();
- return dialog->IsConfirmed();
- }
- bool CGUIDialogOK::ShowAndGetInput(const HELPERS::DialogOKMessage & options)
- {
- if (!options.heading.isNull())
- SetHeading(options.heading);
- if (!options.text.isNull())
- SetText(options.text);
- for (size_t i = 0; i < 3; ++i)
- {
- if (!options.lines[i].isNull())
- SetLine(i, options.lines[i]);
- }
- Open();
- return IsConfirmed();
- }
- void CGUIDialogOK::OnInitWindow()
- {
- SET_CONTROL_HIDDEN(CONTROL_NO_BUTTON);
- SET_CONTROL_HIDDEN(CONTROL_CUSTOM_BUTTON);
- SET_CONTROL_HIDDEN(CONTROL_PROGRESS_BAR);
- SET_CONTROL_FOCUS(CONTROL_YES_BUTTON, 0);
- CGUIDialogBoxBase::OnInitWindow();
- }
- int CGUIDialogOK::GetDefaultLabelID(int controlId) const
- {
- if (controlId == CONTROL_YES_BUTTON)
- return 186;
- return CGUIDialogBoxBase::GetDefaultLabelID(controlId);
- }