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.
9 #include "GUIDialogPlayEject.h"
11 #include "ServiceBroker.h"
12 #include "guilib/GUIComponent.h"
13 #include "guilib/GUIWindowManager.h"
14 #include "storage/MediaManager.h"
15 #include "utils/Variant.h"
19 #define ID_BUTTON_PLAY 11
20 #define ID_BUTTON_EJECT 10
22 CGUIDialogPlayEject::CGUIDialogPlayEject()
23 : CGUIDialogYesNo(WINDOW_DIALOG_PLAY_EJECT
)
27 CGUIDialogPlayEject::~CGUIDialogPlayEject() = default;
29 bool CGUIDialogPlayEject::OnMessage(CGUIMessage
& message
)
31 if (message
.GetMessage() == GUI_MSG_CLICKED
)
33 int iControl
= message
.GetSenderId();
34 if (iControl
== ID_BUTTON_PLAY
)
36 if (CServiceBroker::GetMediaManager().IsDiscInDrive())
44 if (iControl
== ID_BUTTON_EJECT
)
46 CServiceBroker::GetMediaManager().ToggleTray();
51 return CGUIDialogYesNo::OnMessage(message
);
54 void CGUIDialogPlayEject::FrameMove()
56 CONTROL_ENABLE_ON_CONDITION(ID_BUTTON_PLAY
, CServiceBroker::GetMediaManager().IsDiscInDrive());
58 CGUIDialogYesNo::FrameMove();
61 void CGUIDialogPlayEject::OnInitWindow()
63 if (CServiceBroker::GetMediaManager().IsDiscInDrive())
65 m_defaultControl
= ID_BUTTON_PLAY
;
69 CONTROL_DISABLE(ID_BUTTON_PLAY
);
70 m_defaultControl
= ID_BUTTON_EJECT
;
73 CGUIDialogYesNo::OnInitWindow();
76 bool CGUIDialogPlayEject::ShowAndGetInput(const std::string
& strLine1
,
77 const std::string
& strLine2
,
78 unsigned int uiAutoCloseTime
/* = 0 */)
82 CGUIDialogPlayEject
* pDialog
= (CGUIDialogPlayEject
*)CServiceBroker::GetGUI()->GetWindowManager().
83 GetWindow(WINDOW_DIALOG_PLAY_EJECT
);
87 // Setup dialog parameters
88 pDialog
->SetHeading(CVariant
{219});
89 pDialog
->SetLine(0, CVariant
{429});
90 pDialog
->SetLine(1, CVariant
{strLine1
});
91 pDialog
->SetLine(2, CVariant
{strLine2
});
92 pDialog
->SetChoice(ID_BUTTON_PLAY
- 10, 208);
93 pDialog
->SetChoice(ID_BUTTON_EJECT
- 10, 13391);
95 pDialog
->SetAutoClose(uiAutoCloseTime
);
100 return pDialog
->IsConfirmed();