plugin.h

Go to the documentation of this file.
00001 
00002 
00003 //**************************************************************************/
00004 
00005 // Copyright (c) 2008 Autodesk, Inc.
00006 
00007 // All rights reserved.
00008 
00009 //
00010 
00011 // Use of this software is subject to the terms of the Autodesk license
00012 
00013 // agreement provided at the time of installation or download, or which
00014 
00015 // otherwise accompanies this software in either electronic or hard copy form.
00016 
00017 //
00018 
00019 //**************************************************************************/
00020 
00021 // DESCRIPTION:
00022 
00023 // CREATED: October 2008
00024 
00025 //**************************************************************************/
00026 
00027 
00028 
00029 namespace mudbox {
00030 
00031 
00032 
00034 
00036 
00038 
00040 
00042 
00044 
00046 
00048 
00050 
00052 
00054 
00056 
00057 struct MBDLL_DECL Plugin
00058 
00059 {
00060 
00061     typedef void initializer( void );
00062 
00063 
00064 
00066 
00067     Plugin( void ) {};
00068 
00069     
00070 
00072 
00073     Plugin( const QString &sName, const QString &sDescription, const QString &sAuthor, const QString &sURL, const QString &sCompileTime, initializer *fFunc = 0 );
00074 
00075     
00076 
00078 
00079     static void SetVersion( const QString& sName, const QString &sVersion );
00080 
00081 
00082 
00083     QString m_sName;                
00084 
00085     QString m_sDescription;         
00086 
00087     QString m_sAuthor;              
00088 
00089     QString m_sURL;                 
00090 
00091     QString m_sCompileTime;         
00092 
00093     QString m_sPluginFolder;        
00094 
00095     initializer *m_pInitializer;    
00096 
00097     QString m_sVersion;             
00098 
00099 };
00100 
00101     
00102 
00104 
00106 
00108 
00110 
00111 class MBDLL_DECL WindowPlugin : public QObject
00112 
00113 {
00114 
00115 public:
00116 
00118 
00119     virtual void Start() = 0;
00120 
00121     
00122 
00124 
00125     virtual void Stop() = 0;
00126 
00127     
00128 
00130 
00131     virtual bool IsEnabled() = 0;
00132 
00133     
00134 
00136 
00137     virtual QWidget* CreateWidget(QWidget *parent, QString name) = 0;
00138 
00139     
00140 
00142 
00143     virtual QWidget* Widget() = 0;
00144 
00145     
00146 
00148 
00149     virtual QString Name();
00150 
00151     
00152 
00154 
00155     virtual QString Title();
00156 
00157     
00158 
00160 
00161     virtual bool AddToWindowMenu();
00162 
00163     
00164 
00165 protected:
00166 
00167     QString m_name;
00168 
00169     QString m_title;
00170 
00171     bool    m_addToWindowMenu;
00172 
00173 };
00174 
00175     
00176 
00178 
00180 
00182 
00184 
00185 class MBDLL_DECL WebBrowserPlugin : public WindowPlugin
00186 
00187 {
00188 
00189 public:
00190 
00191     WebBrowserPlugin(const QString name, const QString title);
00192 
00193     
00194 
00196 
00197     typedef enum
00198 
00199     {
00200 
00201         eNavNone = 0,
00202 
00203         eNavMudLife,
00204 
00205         eNavTutorials,
00206 
00207         eNavMeshUpload,
00208 
00209         eNavStampUpload,
00210 
00211         eNavStencilUpload,
00212 
00213     } NavigationPoints;
00214 
00215     
00216 
00218 
00219     typedef enum
00220 
00221     {
00222 
00223         eFileTypeStamps,
00224 
00225         eFileTypeStencils,
00226 
00227         eFileTypeMeshes,
00228 
00229     } FileType; 
00230 
00231     
00232 
00234 
00235     virtual void Navigate(const NavigationPoints nav) = 0;
00236 
00237     
00238 
00240 
00241     virtual void Upload(const QStringList &files, const FileType fileType) = 0;
00242 
00243     
00244 
00246 
00247     virtual void GetFileList(const FileType fileType, QFileInfoList &fileList, QString filter = "") = 0;
00248 
00249 };
00250 
00251 
00252 
00253 }; // end of namespace mudbox
00254