[PVR][Estuary] Timer settings dialog: Show client name in timer type selection dialog...
[xbmc.git] / xbmc / video / dialogs / GUIDialogVideoOSD.cpp
blob3b8009d1f657a9fdbff2ffeda6fd1577c2969cc6
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 "GUIDialogVideoOSD.h"
11 #include "GUIUserMessages.h"
12 #include "ServiceBroker.h"
13 #include "application/Application.h"
14 #include "guilib/GUIComponent.h"
15 #include "guilib/GUIWindowManager.h"
16 #include "guilib/WindowIDs.h"
17 #include "input/InputManager.h"
18 #include "input/actions/ActionIDs.h"
19 #include "settings/Settings.h"
20 #include "settings/SettingsComponent.h"
22 using namespace PVR;
24 CGUIDialogVideoOSD::CGUIDialogVideoOSD(void)
25 : CGUIDialog(WINDOW_DIALOG_VIDEO_OSD, "VideoOSD.xml")
27 m_loadType = KEEP_IN_MEMORY;
30 CGUIDialogVideoOSD::~CGUIDialogVideoOSD(void) = default;
32 void CGUIDialogVideoOSD::FrameMove()
34 if (m_autoClosing)
36 // check for movement of mouse or a submenu open
37 if (CServiceBroker::GetInputManager().IsMouseActive()
38 || CServiceBroker::GetGUI()->GetWindowManager().IsWindowActive(WINDOW_DIALOG_AUDIO_OSD_SETTINGS)
39 || CServiceBroker::GetGUI()->GetWindowManager().IsWindowActive(WINDOW_DIALOG_SUBTITLE_OSD_SETTINGS)
40 || CServiceBroker::GetGUI()->GetWindowManager().IsWindowActive(WINDOW_DIALOG_VIDEO_OSD_SETTINGS)
41 || CServiceBroker::GetGUI()->GetWindowManager().IsWindowActive(WINDOW_DIALOG_CMS_OSD_SETTINGS)
42 || CServiceBroker::GetGUI()->GetWindowManager().IsWindowActive(WINDOW_DIALOG_VIDEO_BOOKMARKS)
43 || CServiceBroker::GetGUI()->GetWindowManager().IsWindowActive(WINDOW_DIALOG_PVR_OSD_CHANNELS)
44 || CServiceBroker::GetGUI()->GetWindowManager().IsWindowActive(WINDOW_DIALOG_PVR_CHANNEL_GUIDE)
45 || CServiceBroker::GetGUI()->GetWindowManager().IsWindowActive(WINDOW_DIALOG_OSD_TELETEXT))
46 // extend show time by original value
47 SetAutoClose(m_showDuration);
49 CGUIDialog::FrameMove();
52 bool CGUIDialogVideoOSD::OnAction(const CAction &action)
54 if (action.GetID() == ACTION_SHOW_OSD)
56 Close();
57 return true;
60 return CGUIDialog::OnAction(action);
63 EVENT_RESULT CGUIDialogVideoOSD::OnMouseEvent(const CPoint &point, const CMouseEvent &event)
65 if (event.m_id == ACTION_MOUSE_WHEEL_UP)
67 return g_application.OnAction(CAction(ACTION_ANALOG_SEEK_FORWARD, 0.5f)) ? EVENT_RESULT_HANDLED : EVENT_RESULT_UNHANDLED;
69 if (event.m_id == ACTION_MOUSE_WHEEL_DOWN)
71 return g_application.OnAction(CAction(ACTION_ANALOG_SEEK_BACK, 0.5f)) ? EVENT_RESULT_HANDLED : EVENT_RESULT_UNHANDLED;
74 return CGUIDialog::OnMouseEvent(point, event);
77 bool CGUIDialogVideoOSD::OnMessage(CGUIMessage& message)
79 switch ( message.GetMessage() )
81 case GUI_MSG_VIDEO_MENU_STARTED:
83 // We have gone to the DVD menu, so close the OSD.
84 Close();
86 break;
87 case GUI_MSG_WINDOW_DEINIT: // fired when OSD is hidden
89 // Remove our subdialogs if visible
90 CGUIDialog *pDialog = CServiceBroker::GetGUI()->GetWindowManager().GetDialog(WINDOW_DIALOG_AUDIO_OSD_SETTINGS);
91 if (pDialog && pDialog->IsDialogRunning())
92 pDialog->Close(true);
93 pDialog = CServiceBroker::GetGUI()->GetWindowManager().GetDialog(WINDOW_DIALOG_SUBTITLE_OSD_SETTINGS);
94 if (pDialog && pDialog->IsDialogRunning())
95 pDialog->Close(true);
97 break;
99 return CGUIDialog::OnMessage(message);