pointers.h

00001 /**************
00002 FILE          : pointers.h
00003 ***************
00004 PROJECT       : SaX2 - library interface [header]
00005               :
00006 AUTHOR        : Marcus Schäfer <ms@suse.de>
00007               :
00008 BELONGS TO    : SaX2 - SuSE advanced X11 configuration 
00009               : 
00010               :
00011 DESCRIPTION   : native C++ class library to access SaX2
00012               : functionality. Easy to use interface for
00013               : //.../
00014               : - importing/exporting X11 configurations
00015               : - modifying/creating X11 configurations 
00016               : ---
00017               :
00018               :
00019 STATUS        : Status: Development
00020 **************/
00021 #ifndef SAX_POINTERS_H
00022 #define SAX_POINTERS_H 1
00023 
00024 //====================================
00025 // Includes...
00026 //------------------------------------
00027 #include "import.h"
00028 #include "device.h"
00029 
00030 namespace SaX {
00031 //====================================
00032 // Defines...
00033 //------------------------------------
00034 #define SAX_CORE_POINTER     1
00035 #define SAX_NEXT_POINTER(x)  ((x)+2)
00036 
00037 //====================================
00038 // Interface class for dlopen ability
00039 //------------------------------------
00047 class SaXManipulatePointersIF : public SaXException {
00048         public:
00049         virtual void setDriver    ( const QString& ) = 0;
00050         virtual void setDevice    ( const QString& ) = 0;
00051         virtual void setProtocol  ( const QString& ) = 0;
00052         virtual void setNamePair  ( const QString& , const QString& ) = 0;
00053         virtual void setOption    ( const QString& , const QString& = 0 ) = 0;
00054         virtual void addOption    ( const QString& , const QString& = 0 ) = 0;
00055         virtual void removeOption ( const QString& ) = 0;
00056 
00057         public:
00058         virtual QString getDevice ( void ) = 0;
00059         virtual QString getDriver ( void ) = 0;
00060         virtual QString getProtocol ( void ) = 0;
00061         virtual QDict<QString> getOptions ( void ) = 0;
00062         
00063         public:
00064         virtual bool selectPointer ( int ) = 0;
00065 
00066         public:
00067         virtual ~SaXManipulatePointersIF ( void ) { }
00068 };
00069 //====================================
00070 // Class SaXManipulatePointers...
00071 //------------------------------------
00080 class SaXManipulatePointers : public SaXManipulatePointersIF {
00081         protected:
00082         SaXImport* mImport;
00083         int mPointer;
00084 
00085         public:
00086         void setDriver    ( const QString& );
00087         void setDevice    ( const QString& );
00088         void setProtocol  ( const QString& );
00089         void setNamePair  ( const QString& , const QString& );
00090         void setOption    ( const QString& , const QString& = 0 );
00091         void addOption    ( const QString& , const QString& = 0 );
00092         void removeOption ( const QString& );
00093 
00094         public:
00095         QString getDevice ( void );
00096         QString getDriver ( void );
00097         QString getProtocol ( void );
00098         QDict<QString> getOptions ( void );
00099         
00100         public:
00101         bool selectPointer ( int );
00102 
00103         protected:
00104         SaXManipulatePointers ( SaXImport*, int = 1 );
00105 };
00106 
00107 //====================================
00108 // Interface class for dlopen ability
00109 //------------------------------------
00117 class SaXManipulateMiceIF : public SaXManipulatePointers {
00118         public:
00119         virtual void setMouse ( const QString& ) = 0;
00120         virtual void setMouse ( const QString&,const QString& ) = 0;
00121         virtual void enableWheelEmulation    ( int  ) = 0;
00122         virtual void disableWheelEmulation   ( void ) = 0;
00123         virtual void enable3ButtonEmulation  ( void ) = 0;
00124         virtual void disable3ButtonEmulation ( void ) = 0;
00125         virtual void enableWheel  ( void ) = 0;
00126         virtual void disableWheel ( void ) = 0;
00127         virtual void enableXAxisInvertation  ( void ) = 0;
00128         virtual void enableYAxisInvertation  ( void ) = 0;
00129         virtual void disableXAxisInvertation ( void ) = 0;
00130         virtual void disableYAxisInvertation ( void ) = 0;
00131 
00132         public:
00133         virtual QList<QString> getMouseList       ( void ) = 0;
00134         virtual QList<QString> getMouseVendorList ( void ) = 0;
00135         virtual QList<QString> getMouseModelList  ( const QString& ) = 0;
00136         virtual QDict<QString> getMouseData ( const QString& ) = 0;
00137         virtual QDict<QString> getMouseData ( const QString&,const QString& ) = 0;
00138         virtual int getWheelEmulatedButton  ( void ) = 0;
00139 
00140         public:
00141         virtual bool isWheelEnabled   ( void ) = 0;
00142         virtual bool isWheelEmulated  ( void ) = 0;
00143         virtual bool isButtonEmulated ( void ) = 0;
00144         virtual bool isXAxisInverted  ( void ) = 0;
00145         virtual bool isYAxisInverted  ( void ) = 0;
00146         virtual bool isMouse ( void ) = 0;
00147 
00148         public:
00149         virtual ~SaXManipulateMiceIF ( void ) { }
00150 
00151         protected:
00152         SaXManipulateMiceIF (SaXImport*in,int id): SaXManipulatePointers (in,id) { }
00153 };
00154 //====================================
00155 // Class SaXManipulateMice...
00156 //------------------------------------
00200 class SaXManipulateMice : public SaXManipulateMiceIF {
00201         private:
00202         SaXProcess*    mCDBMice;
00203         QList<QString> mCDBMouseList;
00204         QDict<QString> mCDBMouseData;
00205 
00206         public:
00207         void setMouse ( const QString& );
00208         void setMouse ( const QString&,const QString& );
00209         void enableWheelEmulation    ( int  );
00210         void disableWheelEmulation   ( void );
00211         void enable3ButtonEmulation  ( void );
00212         void disable3ButtonEmulation ( void );
00213         void enableWheel  ( void );
00214         void disableWheel ( void );
00215         void enableXAxisInvertation  ( void );
00216         void enableYAxisInvertation  ( void );
00217         void disableXAxisInvertation ( void );
00218         void disableYAxisInvertation ( void );
00219 
00220         public:
00221         QList<QString> getMouseList       ( void );
00222         QList<QString> getMouseVendorList ( void );
00223         QList<QString> getMouseModelList  ( const QString& );
00224         QDict<QString> getMouseData ( const QString& );
00225         QDict<QString> getMouseData ( const QString&,const QString& );
00226         int getWheelEmulatedButton  ( void );
00227 
00228         public:
00229         bool isWheelEnabled   ( void );
00230         bool isWheelEmulated  ( void );
00231         bool isButtonEmulated ( void );
00232         bool isXAxisInverted  ( void );
00233         bool isYAxisInverted  ( void );
00234         bool isMouse ( void );
00235 
00236         public:
00237         SaXManipulateMice ( SaXImport*, int = 1 );
00238 };
00239 
00240 //====================================
00241 // Interface class for dlopen ability
00242 //------------------------------------
00250 class SaXManipulateTabletsIF : public SaXManipulatePointers {
00251         public:
00252         virtual QDict<QString> getTabletData ( const QString& ) = 0;
00253         virtual QDict<QString> getTabletData ( const QString&,const QString& ) = 0;
00254         virtual QDict<QString> getPenData ( const QString& ) = 0;
00255         virtual QDict<QString> getPenData ( const QString&,const QString& ) = 0;
00256         virtual QList<QString> getTabletVendorList ( void ) = 0;
00257         virtual QList<QString> getTabletModelList  ( const QString& ) = 0;
00258         virtual QList<QString> getTabletList ( void ) = 0;
00259         virtual QList<QString> getPenList    ( void ) = 0;
00260         virtual QList<QString> getTabletDrivers ( void ) = 0;
00261         virtual QDict<QString> getTabletOptions ( const QString& ) = 0;
00262         virtual void setTablet ( const QString&,const QString& ) = 0;
00263         virtual void setTablet ( const QString& ) = 0;
00264         virtual void setType   ( const QString& ) = 0;
00265         virtual void setMode   ( const QString& ) = 0;
00266         virtual int  addPen    ( const QString& ) = 0;
00267         virtual int  addPen    ( const QString&,const QString& ) = 0;
00268         virtual int  removePen ( int ) = 0;
00269 
00270         public:
00271         virtual QString getName   ( void ) = 0;
00272         virtual QString getVendor ( void ) = 0;
00273         virtual QString getType   ( void ) = 0;
00274         virtual QString getMode   ( void ) = 0;
00275         virtual bool isTablet     ( void ) = 0;
00276         virtual bool isPen        ( void ) = 0;
00277         virtual bool isEraser     ( void ) = 0;
00278 
00279         public:
00280         virtual ~SaXManipulateTabletsIF ( void ) { }
00281 
00282         protected:
00283         SaXManipulateTabletsIF (
00284                 SaXImport*in,int id
00285         ): SaXManipulatePointers (in,id) { }
00286 };
00287 //====================================
00288 // Class SaXManipulateTablets...
00289 //------------------------------------
00355 class SaXManipulateTablets : public SaXManipulateTabletsIF {
00356         private:
00357         SaXProcess*    mCDBTablets;
00358         SaXProcess*    mCDBTabletModules;
00359         QList<QString> mCDBTabletList;
00360         QDict<QString> mCDBTabletData;
00361         SaXProcess*    mCDBPens;
00362         QList<QString> mCDBPenList;
00363         QList<QString> mCDBTabletDrivers;
00364         QDict<QString> mCDBTabletOptions;
00365 
00366         private:
00367         SaXManipulateDevices* mManipInputDevices;
00368 
00369         public:
00370         QDict<QString> getTabletData ( const QString& );
00371         QDict<QString> getTabletData ( const QString&,const QString& );
00372         QDict<QString> getPenData ( const QString& );
00373         QDict<QString> getPenData ( const QString&,const QString& );
00374         QList<QString> getTabletVendorList ( void );
00375         QList<QString> getTabletModelList  ( const QString& ); 
00376         QList<QString> getTabletList ( void );
00377         QList<QString> getPenList    ( void );
00378         QList<QString> getTabletDrivers ( void );
00379         QDict<QString> getTabletOptions ( const QString& );
00380         void setTablet ( const QString&,const QString& );
00381         void setTablet ( const QString& );
00382         void setType   ( const QString& );
00383         void setMode   ( const QString& );
00384         int  addPen    ( const QString& );
00385         int  addPen    ( const QString&,const QString& );
00386         int  removePen ( int );
00387 
00388         public:
00389         QString getName   ( void );
00390         QString getVendor ( void );
00391         QString getType   ( void );
00392         QString getMode   ( void );
00393         bool isTablet     ( void );
00394         bool isPen        ( void );
00395         bool isEraser     ( void );
00396 
00397         public:
00398         SaXManipulateTablets ( SaXImport*, SaXImport* , int = 1 );
00399 };
00400 
00401 //====================================
00402 // Interface class for dlopen ability
00403 //------------------------------------
00411 class SaXManipulateTouchscreensIF : public SaXManipulatePointers {
00412         public:
00413         virtual QList<QString> getPanelList ( void ) = 0;
00414         virtual QList<QString> getPanelVendorList ( void ) = 0;
00415         virtual QList<QString> getPanelModelList  ( const QString& ) = 0;
00416         virtual QDict<QString> getPanelData ( const QString& ) = 0;
00417         virtual QDict<QString> getPanelData ( const QString&,const QString& ) = 0;
00418         virtual void setTouchPanel ( const QString&,const QString& ) = 0;
00419         virtual void setTouchPanel ( const QString& ) = 0;
00420 
00421         public:
00422         virtual bool isTouchpanel ( void ) = 0;
00423         virtual QString getName   ( void ) = 0;
00424         virtual QString getVendor ( void ) = 0;
00425         virtual QString getType   ( void ) = 0;
00426 
00427         public:
00428         virtual ~SaXManipulateTouchscreensIF ( void ) { }
00429 
00430         protected:
00431         SaXManipulateTouchscreensIF (
00432                 SaXImport*in,int id
00433         ): SaXManipulatePointers (in,id) { }
00434 };
00435 //====================================
00436 // Class SaXManipulateTouchscreens...
00437 //------------------------------------
00496 class SaXManipulateTouchscreens : public SaXManipulateTouchscreensIF {
00497         private:
00498         SaXProcess*    mCDBPanels;
00499         QList<QString> mCDBPanelList;
00500         QDict<QString> mCDBPanelData;
00501 
00502         public:
00503         QList<QString> getPanelList ( void );
00504         QList<QString> getPanelVendorList ( void );
00505         QList<QString> getPanelModelList  ( const QString& );
00506         QDict<QString> getPanelData ( const QString& );
00507         QDict<QString> getPanelData ( const QString&,const QString& );
00508         void setTouchPanel ( const QString&,const QString& );
00509         void setTouchPanel ( const QString& );
00510 
00511         public:
00512         bool isTouchpanel ( void );
00513         QString getName   ( void );
00514         QString getVendor ( void );
00515         QString getType   ( void );
00516 
00517         public:
00518         SaXManipulateTouchscreens ( SaXImport*, int = 1 );
00519 };
00520 } // end namespace
00521 #endif

Generated on Mon Jun 19 12:42:49 2006 for libsax by  doxygen 1.4.6