00001 #ifndef OPIE_META_FACTORY_H
00002 #define OPIE_META_FACTORY_H
00003
00009 #include <qwidget.h>
00010 #include <qmap.h>
00011
00012 #include <qpe/config.h>
00013
00014 #include "io_layer.h"
00015 #include "file_layer.h"
00016 #include "receive_layer.h"
00017 #include "profile.h"
00018 #include "profiledialogwidget.h"
00019
00020 class WidgetLayer;
00021 class MetaFactory {
00022 public:
00023 typedef ProfileDialogWidget* (*configWidget)(const QString&, QWidget* parent);
00024 typedef IOLayer* (*iolayer)(const Profile& );
00025 typedef FileTransferLayer* (*filelayer)(IOLayer*);
00026 typedef ReceiveLayer* (*receivelayer)(IOLayer*);
00027
00028 MetaFactory();
00029 ~MetaFactory();
00030
00035 void addConnectionWidgetFactory( const QCString& internalName,
00036 const QString& uiString,
00037 configWidget );
00038 void addTerminalWidgetFactory ( const QCString& internalName,
00039 const QString& name,
00040 configWidget );
00041 void addKeyboardWidgetFactory ( const QCString& internalName,
00042 const QString& name,
00043 configWidget );
00044
00048 void addIOLayerFactory( const QCString&,
00049 const QString&,
00050 iolayer );
00051
00055 void addFileTransferLayer( const QCString& name,
00056 const QString&,
00057 filelayer );
00058 void addReceiveLayer( const QCString& name,
00059 const QString&,
00060 receivelayer);
00061
00062
00063
00064 QStringList ioLayers()const;
00065 QStringList connectionWidgets()const;
00066
00070 QStringList terminalWidgets()const;
00071 QStringList fileTransferLayers()const;
00072 QStringList receiveLayers()const;
00073
00077 IOLayer* newIOLayer( const QString&,const Profile& );
00078 ProfileDialogWidget *newConnectionPlugin ( const QString&, QWidget* );
00079 ProfileDialogWidget* newTerminalPlugin( const QString&, QWidget* );
00080 ProfileDialogWidget* newKeyboardPlugin( const QString&, QWidget* );
00081 FileTransferLayer* newFileTransfer(const QString&, IOLayer* );
00082 ReceiveLayer* newReceive(const QString&, IOLayer* );
00083
00084
00085
00086
00087
00088
00089 QCString internal( const QString& )const;
00090
00091
00092
00093
00094
00095 QString external( const QCString& )const;
00096
00097
00098 private:
00099 QMap<QString, QCString> m_strings;
00100 QMap<QString, configWidget> m_conFact;
00101 QMap<QString, configWidget> m_termFact;
00102 QMap<QString, configWidget> m_keyFact;
00103 QMap<QString, iolayer> m_layerFact;
00104 QMap<QString, filelayer> m_fileFact;
00105 QMap<QString, receivelayer> m_receiveFact;
00106 };
00107
00108
00109 #endif