libsax 7.2

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 Q3Dict<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         Q3Dict<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         virtual void enableLeftHandMapping  ( void ) = 0;
00133         virtual void disableLeftHandMapping ( void ) = 0;
00134 
00135         public:
00136         virtual QList<QString> getMouseList       ( void ) = 0;
00137         virtual QList<QString> getMouseVendorList ( void ) = 0;
00138         virtual QList<QString> getMouseModelList  ( const QString& ) = 0;
00139         virtual Q3Dict<QString> getMouseData ( const QString& ) = 0;
00140         virtual Q3Dict<QString> getMouseData ( const QString&,const QString& ) = 0;
00141         virtual int getWheelEmulatedButton  ( void ) = 0;
00142 
00143         public:
00144         virtual bool isWheelEnabled    ( void ) = 0;
00145         virtual bool isWheelEmulated   ( void ) = 0;
00146         virtual bool isButtonEmulated  ( void ) = 0;
00147         virtual bool isXAxisInverted   ( void ) = 0;
00148         virtual bool isYAxisInverted   ( void ) = 0;
00149         virtual bool isLeftHandEnabled ( void ) = 0;
00150         virtual bool isMouse ( void ) = 0;
00151 
00152         public:
00153         virtual ~SaXManipulateMiceIF ( void ) { }
00154 
00155         protected:
00156         SaXManipulateMiceIF (SaXImport*in,int id): SaXManipulatePointers (in,id) { }
00157 };
00158 //====================================
00159 // Class SaXManipulateMice...
00160 //------------------------------------
00204 class SaXManipulateMice : public SaXManipulateMiceIF {
00205         private:
00206         SaXProcess*    mCDBMice;
00207         QList<QString> mCDBMouseList;
00208         Q3Dict<QString> mCDBMouseData;
00209 
00210         public:
00211         void setMouse ( const QString& );
00212         void setMouse ( const QString&,const QString& );
00213         void enableWheelEmulation    ( int  );
00214         void disableWheelEmulation   ( void );
00215         void enable3ButtonEmulation  ( void );
00216         void disable3ButtonEmulation ( void );
00217         void enableWheel   ( void );
00218         void enableWheelOn ( int,int );
00219         void disableWheel  ( void );
00220         void enableXAxisInvertation  ( void );
00221         void enableYAxisInvertation  ( void );
00222         void disableXAxisInvertation ( void );
00223         void disableYAxisInvertation ( void );
00224         void enableLeftHandMapping  ( void );
00225         void disableLeftHandMapping ( void );
00226 
00227         public:
00228         QList<QString> getMouseList       ( void );
00229         QList<QString> getMouseVendorList ( void );
00230         QList<QString> getMouseModelList  ( const QString& );
00231         Q3Dict<QString> getMouseData ( const QString& );
00232         Q3Dict<QString> getMouseData ( const QString&,const QString& );
00233         int getWheelEmulatedButton  ( void );
00234 
00235         public:
00236         bool isWheelEnabled    ( void );
00237         bool isWheelEmulated   ( void );
00238         bool isButtonEmulated  ( void );
00239         bool isXAxisInverted   ( void );
00240         bool isYAxisInverted   ( void );
00241         bool isLeftHandEnabled ( void );
00242         bool isMouse ( void );
00243 
00244         public:
00245         SaXManipulateMice ( SaXImport*, int = 1 );
00246 };
00247 
00248 //====================================
00249 // Interface class for dlopen ability
00250 //------------------------------------
00258 class SaXManipulateTabletsIF : public SaXManipulatePointers {
00259         public:
00260         virtual Q3Dict<QString> getTabletData ( const QString& ) = 0;
00261         virtual Q3Dict<QString> getTabletData ( const QString&,const QString& ) = 0;
00262         virtual Q3Dict<QString> getPenData ( const QString& ) = 0;
00263         virtual Q3Dict<QString> getPenData ( const QString&,const QString& ) = 0;
00264         virtual QList<QString> getTabletVendorList ( void ) = 0;
00265         virtual QList<QString> getTabletModelList  ( const QString& ) = 0;
00266         virtual QList<QString> getTabletList ( void ) = 0;
00267         virtual QList<QString> getPenList    ( void ) = 0;
00268         virtual QList<QString> getTabletDrivers ( void ) = 0;
00269         virtual Q3Dict<QString> getTabletOptions ( const QString& ) = 0;
00270         virtual void setTablet ( const QString&,const QString& ) = 0;
00271         virtual void setTablet ( const QString& ) = 0;
00272         virtual void setType   ( const QString& ) = 0;
00273         virtual void setMode   ( const QString& ) = 0;
00274         virtual int  addPen    ( const QString& ) = 0;
00275         virtual int  addPen    ( const QString&,const QString& ) = 0;
00276         virtual int  addPad    ( const QString& ) = 0;
00277         virtual int  addPad    ( const QString&,const QString& ) = 0;
00278         virtual int  removePen ( int ) = 0;
00279         virtual int  removePad ( int ) = 0;
00280 
00281         public:
00282         virtual QString getName   ( void ) = 0;
00283         virtual QString getVendor ( void ) = 0;
00284         virtual QString getType   ( void ) = 0;
00285         virtual QString getMode   ( void ) = 0;
00286         virtual bool isTablet     ( void ) = 0;
00287         virtual bool isPen        ( void ) = 0;
00288         virtual bool isEraser     ( void ) = 0;
00289         virtual bool isTouch      ( void ) = 0;
00290         virtual bool isPad        ( void ) = 0;
00291 
00292         public:
00293         virtual ~SaXManipulateTabletsIF ( void ) { }
00294 
00295         protected:
00296         SaXManipulateTabletsIF (
00297                 SaXImport*in,int id
00298         ): SaXManipulatePointers (in,id) { }
00299 };
00300 //====================================
00301 // Class SaXManipulateTablets...
00302 //------------------------------------
00368 class SaXManipulateTablets : public SaXManipulateTabletsIF {
00369         private:
00370         SaXProcess*    mCDBTablets;
00371         SaXProcess*    mCDBTabletModules;
00372         QList<QString> mCDBTabletList;
00373         Q3Dict<QString> mCDBTabletData;
00374         SaXProcess*    mCDBPens;
00375         SaXProcess*    mCDBPads;
00376         QList<QString> mCDBPenList;
00377         QList<QString> mCDBTabletDrivers;
00378         Q3Dict<QString> mCDBTabletOptions;
00379 
00380         private:
00381         SaXManipulateDevices* mManipInputDevices;
00382 
00383         public:
00384         Q3Dict<QString> getTabletData ( const QString& );
00385         Q3Dict<QString> getTabletData ( const QString&,const QString& );
00386         Q3Dict<QString> getPenData ( const QString& );
00387         Q3Dict<QString> getPenData ( const QString&,const QString& );
00388         QList<QString> getTabletVendorList ( void );
00389         QList<QString> getTabletModelList  ( const QString& ); 
00390         QList<QString> getTabletList ( void );
00391         QList<QString> getPenList    ( void );
00392         QList<QString> getTabletDrivers ( void );
00393         Q3Dict<QString> getTabletOptions ( const QString& );
00394         void setTablet ( const QString&,const QString& );
00395         void setTablet ( const QString& );
00396         void setType   ( const QString& );
00397         void setMode   ( const QString& );
00398         int  addPen    ( const QString& );
00399         int  addPen    ( const QString&,const QString& );
00400         int  addPad    ( const QString& );
00401         int  addPad    ( const QString&,const QString& );
00402         int  removePen   ( int );
00403         int  removeTouch ( int );
00404         int  removePad   ( int );
00405 
00406         public:
00407         QString getName   ( void );
00408         QString getVendor ( void );
00409         QString getType   ( void );
00410         QString getMode   ( void );
00411         bool isTablet     ( void );
00412         bool isPen        ( void );
00413         bool isEraser     ( void );
00414         bool isTouch      ( void );
00415         bool isPad        ( void );
00416 
00417         public:
00418         SaXManipulateTablets ( SaXImport*, SaXImport* , int = 1 );
00419 };
00420 
00421 //====================================
00422 // Interface class for dlopen ability
00423 //------------------------------------
00431 class SaXManipulateTouchscreensIF : public SaXManipulatePointers {
00432         public:
00433         virtual QList<QString> getPanelList ( void ) = 0;
00434         virtual QList<QString> getPanelVendorList ( void ) = 0;
00435         virtual QList<QString> getPanelModelList  ( const QString& ) = 0;
00436         virtual Q3Dict<QString> getPanelData ( const QString& ) = 0;
00437         virtual Q3Dict<QString> getPanelData ( const QString&,const QString& ) = 0;
00438         virtual void setTouchPanel ( const QString&,const QString& ) = 0;
00439         virtual void setTouchPanel ( const QString& ) = 0;
00440 
00441         public:
00442         virtual bool isTouchpanel ( void ) = 0;
00443         virtual QString getName   ( void ) = 0;
00444         virtual QString getVendor ( void ) = 0;
00445         virtual QString getType   ( void ) = 0;
00446 
00447         public:
00448         virtual ~SaXManipulateTouchscreensIF ( void ) { }
00449 
00450         protected:
00451         SaXManipulateTouchscreensIF (
00452                 SaXImport*in,int id
00453         ): SaXManipulatePointers (in,id) { }
00454 };
00455 //====================================
00456 // Class SaXManipulateTouchscreens...
00457 //------------------------------------
00516 class SaXManipulateTouchscreens : public SaXManipulateTouchscreensIF {
00517         private:
00518         SaXProcess*    mCDBPanels;
00519         QList<QString> mCDBPanelList;
00520         Q3Dict<QString> mCDBPanelData;
00521 
00522         public:
00523         QList<QString> getPanelList ( void );
00524         QList<QString> getPanelVendorList ( void );
00525         QList<QString> getPanelModelList  ( const QString& );
00526         Q3Dict<QString> getPanelData ( const QString& );
00527         Q3Dict<QString> getPanelData ( const QString&,const QString& );
00528         void setTouchPanel ( const QString&,const QString& );
00529         void setTouchPanel ( const QString& );
00530 
00531         public:
00532         bool isTouchpanel ( void );
00533         QString getName   ( void );
00534         QString getVendor ( void );
00535         QString getType   ( void );
00536 
00537         public:
00538         SaXManipulateTouchscreens ( SaXImport*, int = 1 );
00539 };
00540 } // end namespace
00541 #endif