/***************************************************************************
                            kde_KXMLGUIBuilder.h -  description
                             -------------------
    begin                : Wed Feb  6 15:12:26 2002
    copyright            : (C) 2000-2001 Lost Highway Ltd. All rights reserved.
    email                : Lost_Highway@tipitina.demon.co.uk
    generated by         : duke@tipitina on Wed Feb  6 15:12:26 2002, using kalyptus 0.9.
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This library is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU Library General Public License as       *
 *   published by the Free Software Foundation; either version 2 of the    *
 *   License, or (at your option) any later version.                       *
 *                                                                         *
 ***************************************************************************/

#ifndef KDE_KXMLGUIBUILDER
#define KDE_KXMLGUIBUILDER

#include <qtc/qtc_types.h>

#include <kdec/kde_types.h>

/**


 Abstract interface for a "GUI builder", used by the GUIFactory
 This interface is implemented by @ref MainWindow for the case where
 the toplevel widget is a KMainWindow. Other implementations may appear
 in the future (dialogs for instance)
 
 @short 

*/
kde_KXMLGUIBuilder * kde_new_KXMLGUIBuilder(qt_QWidget * widget);
void kde_del_KXMLGUIBuilder( kde_KXMLGUIBuilder* p );
kde_KXMLGUIClient* kde_KXMLGUIBuilder_builderClient(kde_KXMLGUIBuilder* instPointer);
void kde_KXMLGUIBuilder_setBuilderClient(kde_KXMLGUIBuilder* instPointer,kde_KXMLGUIClient* client);
kde_KInstance* kde_KXMLGUIBuilder_builderInstance(kde_KXMLGUIBuilder* instPointer);
void kde_KXMLGUIBuilder_setBuilderInstance(kde_KXMLGUIBuilder* instPointer,kde_KInstance* instance);
qt_QStringList* kde_KXMLGUIBuilder_containerTags(kde_KXMLGUIBuilder* instPointer);

/** 
 Creates a container (menubar/menu/toolbar/statusbar/separator/...)
 from an element in the XML file

*/
qt_QWidget * kde_KXMLGUIBuilder_createContainer(kde_KXMLGUIBuilder* instPointer,qt_QWidget * parent, int index, qt_QDomElement* element, int identifier);

/** 
 Removes the given (and previously via @ref createContainer )
 created container.

*/
void kde_KXMLGUIBuilder_removeContainer(kde_KXMLGUIBuilder* instPointer,qt_QWidget * container, qt_QWidget * parent, qt_QDomElement* element, int identifier);
qt_QStringList* kde_KXMLGUIBuilder_customTags(kde_KXMLGUIBuilder* instPointer);
int kde_KXMLGUIBuilder_createCustomElement(kde_KXMLGUIBuilder* instPointer,qt_QWidget * parent, int index, qt_QDomElement* element);
void kde_KXMLGUIBuilder_removeCustomElement(kde_KXMLGUIBuilder* instPointer,qt_QWidget * parent, int identifier);
void kde_KXMLGUIBuilder_finalizeGUI(kde_KXMLGUIBuilder* instPointer,kde_KXMLGUIClient* client);

#endif
