Frapper  1.0a
WindowManager.h
Go to the documentation of this file.
1 /*
2 -----------------------------------------------------------------------------
3 This source file is part of FRAPPER
4 research.animationsinstitut.de
5 sourceforge.net/projects/frapper
6 
7 Copyright (c) 2008-2009 Filmakademie Baden-Wuerttemberg, Institute of Animation
8 
9 This program is free software; you can redistribute it and/or modify it under
10 the terms of the GNU Lesser General Public License as published by the Free Software
11 Foundation; version 2.1 of the License.
12 
13 This program is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
16 
17 You should have received a copy of the GNU Lesser General Public License along with
18 this program; if not, write to the Free Software Foundation, Inc., 59 Temple
19 Place - Suite 330, Boston, MA 02111-1307, USA, or go to
20 http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
21 -----------------------------------------------------------------------------
22 */
23 
33 
34 #ifndef WINDOWMANAGER_H
35 #define WINDOWMANAGER_H
36 
37 #include "FrapperPrerequisites.h"
38 #include "Window.h"
39 #include <QtCore/QList>
40 #include <QtGui/QStandardItemModel>
41 #include <QtGui/QMenu>
42 
43 
44 namespace Frapper {
45 
49 class FRAPPER_GUI_EXPORT WindowManager
50 {
51 
52 public: // static functions
53 
60  static QStandardItemModel * getItemModel ();
61 
69  static void registerWindowMenu ( QMenu *windowMenu );
70 
76  static void registerWindow ( Window *window );
77 
83  static void unregisterWindow ( Window *window );
84 
92  static Window * getDocumentationWindow ();
93 
100  static void highlightWindowAction ( Window *window );
101 
109  static void updateWindowActionTitle ( Window *window );
110 
117  static bool hasAdditionalWindows ();
118 
122  static void closeAdditionalWindows ();
123 
124 private: // static data
125 
129  static QStandardItemModel s_windowItemModel;
130 
134  static QStandardItem *s_rootItem;
135 
140  static QMenu *s_windowMenu;
141 
142 };
143 
144 } // end namespace Frapper
145 
146 #endif