2 * Copyright (C) 2005-2013 Team XBMC
5 * This Program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2, or (at your option)
10 * This Program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with XBMC; see the file COPYING. If not, write to
17 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
18 * http://www.gnu.org/copyleft/gpl.html
22 #include "WindowDialogMixin.h"
23 #include "WindowInterceptor.h"
25 #include "ApplicationMessenger.h"
26 #include "guilib/GUIWindowManager.h"
32 void WindowDialogMixin::show()
35 ThreadMessage tMsg = {TMSG_GUI_PYTHON_DIALOG, HACK_CUSTOM_ACTION_OPENING, 0u};
36 tMsg.lpVoid = w->window->get();
37 CApplicationMessenger::Get().SendMessage(tMsg, true);
40 void WindowDialogMixin::close()
44 w->PulseActionEvent();
46 ThreadMessage tMsg = {TMSG_GUI_PYTHON_DIALOG, HACK_CUSTOM_ACTION_CLOSING, 0};
47 tMsg.lpVoid = w->window->get();
48 CApplicationMessenger::Get().SendMessage(tMsg, true);
53 bool WindowDialogMixin::IsDialogRunning() const { TRACE; return w->window->isActive(); }
55 bool WindowDialogMixin::OnAction(const CAction &action)
58 switch (action.GetID())
60 case HACK_CUSTOM_ACTION_OPENING:
62 // This is from the CGUIPythonWindowXMLDialog::Show_Internal
63 g_windowManager.RouteToWindow(w->window->get());
64 // active this dialog...
65 CGUIMessage msg(GUI_MSG_WINDOW_INIT,0,0);
67 w->window->setActive(true);
68 // TODO: Figure out how to clean up the CAction
73 case HACK_CUSTOM_ACTION_CLOSING:
75 // This is from the CGUIPythonWindowXMLDialog::Show_Internal
76 w->window->get()->Close();