1 | /* This file is part of the KDE libraries |
2 | Copyright (C) 1997, 1998, 1999, 2000 Sven Radej (radej@kde.org) |
3 | Copyright (C) 1997, 1998, 1999, 2000 Matthias Ettrich (ettrich@kde.org) |
4 | Copyright (C) 1999, 2000 Daniel "Mosfet" Duley (mosfet@kde.org) |
5 | |
6 | This library is free software; you can redistribute it and/or |
7 | modify it under the terms of the GNU Library General Public |
8 | License as published by the Free Software Foundation; either |
9 | version 2 of the License, or (at your option) any later version. |
10 | |
11 | This library is distributed in the hope that it will be useful, |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
14 | Library General Public License for more details. |
15 | |
16 | You should have received a copy of the GNU Library General Public License |
17 | along with this library; see the file COPYING.LIB. If not, write to |
18 | the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
19 | Boston, MA 02110-1301, USA. |
20 | */ |
21 | |
22 | #ifndef KMENUBAR_H |
23 | #define KMENUBAR_H |
24 | |
25 | #include <kdeui_export.h> |
26 | |
27 | #include <QtGui/QMenuBar> |
28 | |
29 | /** |
30 | * %KDE Style-able menubar. |
31 | * |
32 | * This is required since QMenuBar is currently not handled by |
33 | * QStyle. |
34 | * |
35 | * @author Daniel "Mosfet" Duley. |
36 | */ |
37 | |
38 | class KDEUI_EXPORT : public QMenuBar |
39 | { |
40 | Q_OBJECT |
41 | Q_PROPERTY( bool topLevelMenu READ isTopLevelMenu WRITE setTopLevelMenu ) |
42 | |
43 | public: |
44 | |
45 | explicit (QWidget *parent=0); |
46 | (); |
47 | |
48 | /** |
49 | * This controls whether or not this menubar will be a top-level |
50 | * bar similar to the way Macintosh handles menubars. This |
51 | * overrides any global config settings. |
52 | * |
53 | * Keep in mind that it is probably a really bad idea to use this |
54 | * unless you really know what you're doing. A feature like a |
55 | * top-level menubar is one that should really be shared by all |
56 | * applications. If your app is the only one with a top-level |
57 | * bar, then things might look very... odd. |
58 | * |
59 | * This is included only for those people that @p do know that |
60 | * they need to use it. |
61 | * |
62 | * @param top_level If set to true, then this menubar will be a |
63 | * top-level menu |
64 | */ |
65 | void (bool top_level = true); |
66 | |
67 | /** |
68 | * Is our menubar a top-level (Macintosh style) menubar? |
69 | * |
70 | * @return True if it is top-level. |
71 | */ |
72 | bool () const; |
73 | |
74 | // TT are overloading virtuals :( |
75 | virtual void ( const QRect &r ); |
76 | virtual void ( int x, int y, int w, int h ); |
77 | virtual void ( int w, int h ); |
78 | void ( const QSize& s ); |
79 | |
80 | virtual void ( int ); |
81 | virtual void ( int ); |
82 | virtual void ( int ); |
83 | virtual QSize () const; |
84 | protected Q_SLOTS: |
85 | void (); |
86 | protected: |
87 | virtual void ( QResizeEvent* ); |
88 | virtual bool (QObject *, QEvent *); |
89 | #ifdef Q_WS_X11 |
90 | virtual bool ( XEvent* ); |
91 | #endif |
92 | virtual void ( QCloseEvent* ); |
93 | virtual void ( QPaintEvent* ); |
94 | private Q_SLOTS: |
95 | void (); |
96 | void (); |
97 | private: |
98 | void (bool top_level); |
99 | void (); |
100 | void ( int& w, int& h ); |
101 | private: |
102 | class ; |
103 | KMenuBarPrivate * const ; |
104 | }; |
105 | |
106 | #endif |
107 | |