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>
26 class KXMLGUIBuilderPrivate
;
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
45 explicit KXMLGUIBuilder( QWidget
*widget
);
46 virtual ~KXMLGUIBuilder();
49 KXMLGUIClient
*builderClient() const;
51 void setBuilderClient( KXMLGUIClient
*client
);
53 KComponentData
builderComponentData() const;
55 void setBuilderComponentData(const KComponentData
&componentData
);
59 virtual QStringList
containerTags() const;
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
);
77 * Removes the given (and previously via createContainer )
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
);
93 virtual void virtual_hook( int id
, void* data
);
95 KXMLGUIBuilderPrivate
* const d
;