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

SourceForge.net Logo
Project
Download
Mailing lists

 

         

hydrolibs/hydroqgui/iguielementfactory.h

00001 /*
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)


Generated for Orca Robotics by  doxygen 1.4.5