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 enableWheelOn ( int,int ) = 0;
00127         virtual void disableWheel  ( void ) = 0;
00128         virtual void enableXAxisInvertation  ( void ) = 0;
00129         virtual void enableYAxisInvertation  ( void ) = 0;
00130         virtual void disableXAxisInvertation ( void ) = 0;
00131         virtual void disableYAxisInvertation ( void ) = 0;
00132 
00133         public:
00134         virtual QList<QString> getMouseList       ( void ) = 0;
00135         virtual QList<QString> getMouseVendorList ( void ) = 0;
00136         virtual QList<QString> getMouseModelList  ( const QString& ) = 0;
00137         virtual QDict<QString> getMouseData ( const QString& ) = 0;
00138         virtual QDict<QString> getMouseData ( const QString&,const QString& ) = 0;
00139         virtual int getWheelEmulatedButton  ( void ) = 0;
00140 
00141         public:
00142         virtual bool isWheelEnabled   ( void ) = 0;
00143         virtual bool isWheelEmulated  ( void ) = 0;
00144         virtual bool isButtonEmulated ( void ) = 0;
00145         virtual bool isXAxisInverted  ( void ) = 0;
00146         virtual bool isYAxisInverted  ( void ) = 0;
00147         virtual bool isMouse ( void ) = 0;
00148 
00149         public:
00150         virtual ~SaXManipulateMiceIF ( void ) { }
00151 
00152         protected:
00153         SaXManipulateMiceIF (SaXImport*in,int id): SaXManipulatePointers (in,id) { }
00154 };
00155 //====================================
00156 // Class SaXManipulateMice...
00157 //------------------------------------
00201 class SaXManipulateMice : public SaXManipulateMiceIF {
00202         private:
00203         SaXProcess*    mCDBMice;
00204         QList<QString> mCDBMouseList;
00205         QDict<QString> mCDBMouseData;
00206 
00207         public:
00208         void setMouse ( const QString& );
00209         void setMouse ( const QString&,const QString& );
00210         void enableWheelEmulation    ( int  );
00211         void disableWheelEmulation   ( void );
00212         void enable3ButtonEmulation  ( void );
00213         void disable3ButtonEmulation ( void );
00214         void enableWheel   ( void );
00215         void enableWheelOn ( int,int );
00216         void disableWheel  ( void );
00217         void enableXAxisInvertation  ( void );
00218         void enableYAxisInvertation  ( void );
00219         void disableXAxisInvertation ( void );
00220         void disableYAxisInvertation ( void );
00221 
00222         public:
00223         QList<QString> getMouseList       ( void );
00224         QList<QString> getMouseVendorList ( void );
00225         QList<QString> getMouseModelList  ( const QString& );
00226         QDict<QString> getMouseData ( const QString& );
00227         QDict<QString> getMouseData ( const QString&,const QString& );
00228         int getWheelEmulatedButton  ( void );
00229 
00230         public:
00231         bool isWheelEnabled   ( void );
00232         bool isWheelEmulated  ( void );
00233         bool isButtonEmulated ( void );
00234         bool isXAxisInverted  ( void );
00235         bool isYAxisInverted  ( void );
00236         bool isMouse ( void );
00237 
00238         public:
00239         SaXManipulateMice ( SaXImport*, int = 1 );
00240 };
00241 
00242 //====================================
00243 // Interface class for dlopen ability
00244 //------------------------------------
00252 class SaXManipulateTabletsIF : public SaXManipulatePointers {
00253         public:
00254         virtual QDict<QString> getTabletData ( const QString& ) = 0;
00255         virtual QDict<QString> getTabletData ( const QString&,const QString& ) = 0;
00256         virtual QDict<QString> getPenData ( const QString& ) = 0;
00257         virtual QDict<QString> getPenData ( const QString&,const QString& ) = 0;
00258         virtual QList<QString> getTabletVendorList ( void ) = 0;
00259         virtual QList<QString> getTabletModelList  ( const QString& ) = 0;
00260         virtual QList<QString> getTabletList ( void ) = 0;
00261         virtual QList<QString> getPenList    ( void ) = 0;
00262         virtual QList<QString> getTabletDrivers ( void ) = 0;
00263         virtual QDict<QString> getTabletOptions ( const QString& ) = 0;
00264         virtual void setTablet ( const QString&,const QString& ) = 0;
00265         virtual void setTablet ( const QString& ) = 0;
00266         virtual void setType   ( const QString& ) = 0;
00267         virtual void setMode   ( const QString& ) = 0;
00268         virtual int  addPen    ( const QString& ) = 0;
00269         virtual int  addPen    ( const QString&,const QString& ) = 0;
00270         virtual int  removePen ( int ) = 0;
00271 
00272         public:
00273         virtual QString getName   ( void ) = 0;
00274         virtual QString getVendor ( void ) = 0;
00275         virtual QString getType   ( void ) = 0;
00276         virtual QString getMode   ( void ) = 0;
00277         virtual bool isTablet     ( void ) = 0;
00278         virtual bool isPen        ( void ) = 0;
00279         virtual bool isEraser     ( void ) = 0;
00280 
00281         public:
00282         virtual ~SaXManipulateTabletsIF ( void ) { }
00283 
00284         protected:
00285         SaXManipulateTabletsIF (
00286                 SaXImport*in,int id
00287         ): SaXManipulatePointers (in,id) { }
00288 };
00289 //====================================
00290 // Class SaXManipulateTablets...
00291 //------------------------------------
00357 class SaXManipulateTablets : public SaXManipulateTabletsIF {
00358         private:
00359         SaXProcess*    mCDBTablets;
00360         SaXProcess*    mCDBTabletModules;
00361         QList<QString> mCDBTabletList;
00362         QDict<QString> mCDBTabletData;
00363         SaXProcess*    mCDBPens;
00364         QList<QString> mCDBPenList;
00365         QList<QString> mCDBTabletDrivers;
00366         QDict<QString> mCDBTabletOptions;
00367 
00368         private:
00369         SaXManipulateDevices* mManipInputDevices;
00370 
00371         public:
00372         QDict<QString> getTabletData ( const QString& );
00373         QDict<QString> getTabletData ( const QString&,const QString& );
00374         QDict<QString> getPenData ( const QString& );
00375         QDict<QString> getPenData ( const QString&,const QString& );
00376         QList<QString> getTabletVendorList ( void );
00377         QList<QString> getTabletModelList  ( const QString& ); 
00378         QList<QString> getTabletList ( void );
00379         QList<QString> getPenList    ( void );
00380         QList<QString> getTabletDrivers ( void );
00381         QDict<QString> getTabletOptions ( const QString& );
00382         void setTablet ( const QString&,const QString& );
00383         void setTablet ( const QString& );
00384         void setType   ( const QString& );
00385         void setMode   ( const QString& );
00386         int  addPen    ( const QString& );
00387         int  addPen    ( const QString&,const QString& );
00388         int  removePen ( int );
00389 
00390         public:
00391         QString getName   ( void );
00392         QString getVendor ( void );
00393         QString getType   ( void );
00394         QString getMode   ( void );
00395         bool isTablet     ( void );
00396         bool isPen        ( void );
00397         bool isEraser     ( void );
00398 
00399         public:
00400         SaXManipulateTablets ( SaXImport*, SaXImport* , int = 1 );
00401 };
00402 
00403 //====================================
00404 // Interface class for dlopen ability
00405 //------------------------------------
00413 class SaXManipulateTouchscreensIF : public SaXManipulatePointers {
00414         public:
00415         virtual QList<QString> getPanelList ( void ) = 0;
00416         virtual QList<QString> getPanelVendorList ( void ) = 0;
00417         virtual QList<QString> getPanelModelList  ( const QString& ) = 0;
00418         virtual QDict<QString> getPanelData ( const QString& ) = 0;
00419         virtual QDict<QString> getPanelData ( const QString&,const QString& ) = 0;
00420         virtual void setTouchPanel ( const QString&,const QString& ) = 0;
00421         virtual void setTouchPanel ( const QString& ) = 0;
00422 
00423         public:
00424         virtual bool isTouchpanel ( void ) = 0;
00425         virtual QString getName   ( void ) = 0;
00426         virtual QString getVendor ( void ) = 0;
00427         virtual QString getType   ( void ) = 0;
00428 
00429         public:
00430         virtual ~SaXManipulateTouchscreensIF ( void ) { }
00431 
00432         protected:
00433         SaXManipulateTouchscreensIF (
00434                 SaXImport*in,int id
00435         ): SaXManipulatePointers (in,id) { }
00436 };
00437 //====================================
00438 // Class SaXManipulateTouchscreens...
00439 //------------------------------------
00498 class SaXManipulateTouchscreens : public SaXManipulateTouchscreensIF {
00499         private:
00500         SaXProcess*    mCDBPanels;
00501         QList<QString> mCDBPanelList;
00502         QDict<QString> mCDBPanelData;
00503 
00504         public:
00505         QList<QString> getPanelList ( void );
00506         QList<QString> getPanelVendorList ( void );
00507         QList<QString> getPanelModelList  ( const QString& );
00508         QDict<QString> getPanelData ( const QString& );
00509         QDict<QString> getPanelData ( const QString&,const QString& );
00510         void setTouchPanel ( const QString&,const QString& );
00511         void setTouchPanel ( const QString& );
00512 
00513         public:
00514         bool isTouchpanel ( void );
00515         QString getName   ( void );
00516         QString getVendor ( void );
00517         QString getType   ( void );
00518 
00519         public:
00520         SaXManipulateTouchscreens ( SaXImport*, int = 1 );
00521 };
00522 } // end namespace
00523 #endif

Generated on Tue Nov 28 19:09:12 2006 for libsax by  doxygen 1.5.0