/*! @file

    @id $Id$
*/
//       1         2         3         4         5         6         7         8
// 45678901234567890123456789012345678901234567890123456789012345678901234567890

#ifndef __SWISSWEBWIDGETIFC_HXX
#define __SWISSWEBWIDGETIFC_HXX

#include <qbrowserlib/log.hxx>
#include <qbrowserlib/swisswebwidget.hxx>
#include <QtDesigner>

//! @defgroup designer
//! @{

//! SwissWebWidget widget for Qt Designer
class SwissWebWidgetIfc: public QObject,
                         public QDesignerCustomWidgetInterface {
    Q_OBJECT;
    Q_INTERFACES(QDesignerCustomWidgetInterface);
  public:
    bool isContainer() const {
      TRC;
      return false;
    }
    QIcon icon() const {
      TRC;
      return QIcon(":/icons/swisswebwidget.png");
    }
    QString domXml() const {
      TRC;
      return
        QString
        ("<ui language=\"c++\" displayname=\"%2\">"
         "     <widget class=\"%1\" name=\"%3\"/>"
         "     <customwidgets>"
         "         <customwidget>"
         "             <class>%1</class>"
         "         </customwidget>"
         "     </customwidgets>"
         "</ui>")
        .arg(name())
        .arg(className())
        .arg(className().toLower());
    }
    QString group() const {
      TRC;
      return "Input Widgets";
    }
    QString includeFile() const {
      TRC;
      return "qbrowserlib/swisswebwidget.hxx";
    }
    QString namespaceName() const {
      TRC;
      return "qbrowserlib";
    }
    QString className() const {
      TRC;
      return "SwissWebWidget";
    }
    QString name() const {
      TRC;
      return QString("%1::%2").arg(namespaceName()).arg(className());
    }
    QString toolTip() const {
      TRC;
      return "";
    }
    QString whatsThis() const {
      TRC;
      return "";
    }
    QWidget *createWidget(QWidget *parent) {
      TRC;
      return new qbrowserlib::SwissWebWidget(parent);
    }
    bool isInitialized() {
      TRC;
      return true;
    }
};

//! @}
#endif
