Viewer.h

Go to the documentation of this file.
00001 
00009 #ifndef VIEWER_H
00010 #define VIEWER_H
00011 
00012 #if _MSC_VER > 1000
00013 #pragma once
00014 #endif // _MSC_VER > 1000
00015 
00016 #include <string>
00017 
00018 #include <boost/shared_ptr.hpp>
00019 #include <boost/scoped_ptr.hpp>
00020 
00021 
00022 #ifndef EEML_DEFINED
00023 struct _eui_BasePart;
00024 typedef struct _eui_BasePart Eui_BasePart;
00025 typedef Eui_BasePart * Eeml_Part;
00026 #endif
00027 
00028 
00029 #ifndef __EVUE_H 
00030 struct _Evue_Connection;
00031 typedef struct _Evue_Connection Evue_Connection;
00032 typedef void * Evue_DisplayHandle;
00033 typedef void * Evue_LayerHandle;
00034 #endif
00035 
00036 #ifndef ESTR_DEFINED
00037 struct _estr_StringList;
00038 typedef _estr_StringList Estr_StringList;
00039 #endif
00040 
00041 
00042 
00043 
00044 namespace Imagine
00045 {
00046 
00047     class ViewWindow;
00048     class ViewLayer;
00049 
00061     class Viewer  
00062     {
00063     public:
00064 
00065         Viewer();
00066 
00067         virtual ~Viewer();
00068 
00069 
00082         virtual boost::shared_ptr<Evue_Connection> openConnection() = 0;
00083 
00084 
00085 
00096         boost::shared_ptr<Evue_Connection> connection();
00097 
00098 
00103         void closeConnection();
00104 
00105 
00106 
00115         virtual void setVirtualRoam( bool ) = 0;
00116 
00117 
00118 
00122         virtual void setStatusBar( bool ) = 0;
00123 
00124 
00126 
00130         class Imp;
00131 
00132 
00133     protected:
00135         Viewer( Imp * );
00136 
00138 
00139         Imp const * imp() const { return imp_.get(); }
00140         Imp       * imp()       { return imp_.get(); }
00142 
00143     private:
00144 
00149         boost::scoped_ptr<Imp> imp_;
00150 
00151     }; // class Viewer
00152 
00153 
00154 
00155 
00156 
00157 
00162     class ClientViewer : public Viewer
00163     {
00164     public:
00165 
00166         ClientViewer();
00167 
00168         virtual ~ClientViewer()
00169         {}
00170 
00171     
00184         boost::shared_ptr<Evue_Connection> openConnection();
00185 
00186 
00187 
00196         void setVirtualRoam( bool );
00197 
00198 
00199 
00203         void setStatusBar( bool );
00204 
00205 
00206 
00211         Evue_DisplayHandle selectExistingViewer();
00212 
00213 
00218         Evue_DisplayHandle createViewer();
00219 
00220 
00223         Evue_DisplayHandle displayHandle();
00224 
00225 
00229         Evue_LayerHandle topLayer();
00230 
00231 
00237         Estr_StringList * openGenericLayer( std::string const & data_filename );
00238 
00239     private:
00240 
00241         class ClientImp;
00242 
00243     }; // class ClientViewer
00244 
00245 
00246 
00253     class EmbeddedViewer : public Viewer
00254     {
00255     public:
00256 
00257         EmbeddedViewer();
00258 
00259         virtual ~EmbeddedViewer()
00260         {}
00261 
00276         boost::shared_ptr<Evue_Connection> openConnection();
00277 
00278 
00279 
00294         ViewWindow & createViewerOnPart( Eeml_Part viewer_part, Eeml_Part frame_part  );
00295 
00296 
00299         ViewWindow & viewWindow();
00300 
00301 
00302 
00311         void setVirtualRoam( bool );
00312 
00313 
00314 
00318         void setStatusBar( bool );
00319 
00320 
00326         ViewLayer & openImageLayer( std::string const & data_filename );
00327 
00328 
00334         ViewLayer & openVectorLayer( std::string const & data_filename );
00335 
00336 
00337     private:
00338 
00339         class EmbeddedImp;
00340 
00341     }; // class EmbeddedViewer
00342 
00343 
00344 } // namespace Imagine
00345 
00346 #endif 

Generated on Wed Mar 7 16:49:31 2007 for ImagineObjects by  doxygen 1.4.6