INTRODUCTION Overview Download and Install Quick Start Documentation Publications NONFRAMEWORK CODE Driver Interfaces Drivers Libraries Utilities FRAMEWORK CODE Interfaces Components Libraries Utilities Full Software Listings DEVELOPER Tutorials Examples Dev Guide Dashboard PEOPLE Contributors Users Project Download Mailing lists
|
hydrolibs/hydroqgui/iguielementfactory.h00001 /* 00002 * Orca-Robotics Project: Components for robotics 00003 * http://orca-robotics.sf.net/ 00004 * Copyright (c) 2004-2009 Alex Brooks, Alexei Makarenko, Tobias Kaupp, Ben Upcroft 00005 * 00006 * This copy of Orca is licensed to you under the terms described in 00007 * the LICENSE file included in this distribution. 00008 * 00009 */ 00010 00011 #ifndef ORCAGUI_IGUIELEMENTFACTORY_H 00012 #define ORCAGUI_IGUIELEMENTFACTORY_H 00013 00014 #include <QColor> 00015 #include <vector> 00016 #include <hydroqguielementutil/ihumanmanager.h> 00017 #include <hydroqguielementutil/mouseeventmanager.h> 00018 #include <hydroqguielementutil/shortcutkeymanager.h> 00019 #include <hydroqgui/guielementset.h> 00020 #include <hydroutil/uncopyable.h> 00021 00022 class QSplitter; 00023 00024 namespace hydroqgui 00025 { 00026 00027 namespace hydroqguielementutil { 00028 class GuiElement; 00029 class GuiElementInfo; 00030 } 00031 00035 00036 // 00037 // Authors: Tobias Kaupp, Alex Brooks, Ben Upcroft 00038 // 00039 class IGuiElementFactory : public hydroutil::Uncopyable 00040 { 00041 public: 00042 00043 virtual ~IGuiElementFactory() {}; 00044 00048 std::vector<QString> supportedElementTypes() const; 00049 00051 std::vector<std::string> supportedElementTypesAsStdString() const; 00052 00056 bool isSupported( const QString &elementType ) const; 00057 00063 virtual bool lookupElementType( const QStringList &ids, QString &elementType ) const = 0; 00064 00067 virtual ::hydroqguielementutil::GuiElement* create( const ::hydroqguielementutil::GuiElementInfo &guiElementInfo ) const = 0; 00068 00069 protected: 00070 00072 void addSupportedType( const QString & elementType ); 00073 00074 00075 private: 00076 std::vector<QString> supportedElementTypes_; 00077 00078 }; 00079 00080 } // namespace 00081 00082 00083 // Function for instantiating plug-in factories. 00084 // A plug-in library must have a function like so: 00085 // extern "C" { 00086 // hydroqgui::IGuiElementFactory *createFactory(); 00087 // } 00088 typedef hydroqgui::IGuiElementFactory *FactoryMakerFunc(); 00089 00090 #endif |
Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)