From c04dcc2e7d834218ef2d4194331e383402495ae1 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 10 Apr 2024 20:07:22 +0200 Subject: Adding upstream version 2:20.4+dfsg. Signed-off-by: Daniel Baumann --- xbmc/interfaces/legacy/WindowDialog.cpp | 76 +++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 xbmc/interfaces/legacy/WindowDialog.cpp (limited to 'xbmc/interfaces/legacy/WindowDialog.cpp') diff --git a/xbmc/interfaces/legacy/WindowDialog.cpp b/xbmc/interfaces/legacy/WindowDialog.cpp new file mode 100644 index 0000000..13ea4fd --- /dev/null +++ b/xbmc/interfaces/legacy/WindowDialog.cpp @@ -0,0 +1,76 @@ +/* + * 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 "WindowDialog.h" + +#include "ServiceBroker.h" +#include "WindowInterceptor.h" +#include "guilib/GUIComponent.h" +#include "guilib/GUIWindow.h" +#include "guilib/GUIWindowManager.h" + +#include + +namespace XBMCAddon +{ + namespace xbmcgui + { + WindowDialog::WindowDialog() : + Window(true), WindowDialogMixin(this) + { + std::unique_lock lock(CServiceBroker::GetWinSystem()->GetGfxContext()); + InterceptorBase* interceptor = new Interceptor("CGUIWindow", this, getNextAvailableWindowId()); + // set the render order to the dialog's default because this dialog is mapped to CGUIWindow instead of CGUIDialog + interceptor->SetRenderOrder(RENDER_ORDER_DIALOG); + setWindow(interceptor); + } + + WindowDialog::~WindowDialog() { deallocating(); } + + bool WindowDialog::OnMessage(CGUIMessage& message) + { +#ifdef ENABLE_XBMC_TRACE_API + XBMC_TRACE; + CLog::Log(LOGDEBUG, "{}NEWADDON WindowDialog::OnMessage Message {}", _tg.getSpaces(), + message.GetMessage()); +#endif + + switch(message.GetMessage()) + { + case GUI_MSG_WINDOW_INIT: + { + ref(window)->OnMessage(message); + return true; + } + break; + + case GUI_MSG_CLICKED: + { + return Window::OnMessage(message); + } + break; + } + + // we do not message CGUIPythonWindow here.. + return ref(window)->OnMessage(message); + } + + bool WindowDialog::OnAction(const CAction &action) + { + XBMC_TRACE; + return WindowDialogMixin::OnAction(action) ? true : Window::OnAction(action); + } + + void WindowDialog::OnDeinitWindow(int nextWindowID) + { + CServiceBroker::GetGUI()->GetWindowManager().RemoveDialog(iWindowId); + Window::OnDeinitWindow(nextWindowID); + } + + } +} -- cgit v1.2.3