not quite so much needs to be delayed to the init() function
[personal-kdebase.git] / workspace / systemsettings / menuitem.h
blob35f3b3f074be5cd55703d3e6b0b60f9c5528fedb
1 /* This file is part of the KDE project
2 Copyright 2007 Will Stephenson <wstephenson@kde.org>
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public License as
6 published by the Free Software Foundation; either version 2 of
7 the License or (at your option) version 3 or any later version
8 accepted by the membership of KDE e.V. (or its successor approved
9 by the membership of KDE e.V.), which shall act as a proxy
10 defined in Section 14 of version 3 of the license.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>.
20 #ifndef KCMENUITEM_H
21 #define KCMENUITEM_H
23 #include <QList>
24 #include <QString>
25 #include <KCModuleInfo>
26 #include <KService> // for KService::Ptr
28 /**
29 * A menu consists of menu items. An item is either another menu or a module.
31 class MenuItem {
32 public:
33 MenuItem( bool isMenu, MenuItem * parent );
34 ~MenuItem();
35 void sortChildrenByWeight();
37 MenuItem * grandChildAt( int index );
38 MenuItem * parent;
39 QList< MenuItem * > children;
40 bool menu;
41 QString name;
42 QString caption;
43 KService::Ptr service;
44 KCModuleInfo item;
47 #endif