fix tricky regression noticed by Vyacheslav Tokarev on Google Reader.
[kdelibs.git] / kdeui / xmlgui / kxmlguibuilder.h
blobd145cab51cfb7c93d9aa2dc0d461be7fb4aaf013
1 /* This file is part of the KDE project
2 Copyright (C) 2000 Simon Hausmann <hausmann@kde.org>
3 David Faure <faure@kde.org>
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
10 This library 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 GNU
13 Library General Public License for more details.
15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
20 #ifndef kxmlguibuilder_h
21 #define kxmlguibuilder_h
23 #include <kdeui_export.h>
25 class KComponentData;
26 class KXMLGUIBuilderPrivate;
27 class KXMLGUIClient;
29 class QAction;
30 class QDomElement;
31 class QStringList;
32 class QWidget;
34 /**
35 * Implements the creation of the GUI (menubar, menus and toolbars)
36 * as requested by the GUI factory.
38 * The virtual methods are mostly for historical reasons, there isn't really
39 * a need to derive from KXMLGUIBuilder anymore.
41 class KDEUI_EXPORT KXMLGUIBuilder
43 public:
45 explicit KXMLGUIBuilder( QWidget *widget );
46 virtual ~KXMLGUIBuilder();
48 /* @internal */
49 KXMLGUIClient *builderClient() const;
50 /* @internal */
51 void setBuilderClient( KXMLGUIClient *client );
52 /* @internal */
53 KComponentData builderComponentData() const;
54 /* @internal */
55 void setBuilderComponentData(const KComponentData &componentData);
56 /* @internal */
57 QWidget *widget();
59 virtual QStringList containerTags() const;
61 /**
62 * Creates a container (menubar/menu/toolbar/statusbar/separator/...)
63 * from an element in the XML file
65 * @param parent The parent for the container
66 * @param index The index where the container should be inserted
67 * into the parent container/widget
68 * @param element The element from the DOM tree describing the
69 * container (use it to access container specified
70 * attributes or child elements)
71 * @param action The action created for this container; used for e.g. passing to removeContainer.
73 virtual QWidget *createContainer( QWidget *parent, int index,
74 const QDomElement &element, QAction* &containerAction );
76 /**
77 * Removes the given (and previously via createContainer )
78 * created container.
81 virtual void removeContainer( QWidget *container, QWidget *parent,
82 QDomElement &element, QAction* containerAction );
84 virtual QStringList customTags() const;
86 virtual QAction* createCustomElement( QWidget *parent, int index, const QDomElement &element );
88 virtual void removeCustomElement( QWidget *parent, QAction* action );
90 virtual void finalizeGUI( KXMLGUIClient *client );
92 protected:
93 virtual void virtual_hook( int id, void* data );
94 private:
95 KXMLGUIBuilderPrivate * const d;
98 #endif