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         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 QDict<QString> getMouseData ( const QString& ) = 0;
00140         virtual QDict<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         QDict<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         QDict<QString> getMouseData ( const QString& );
00232         QDict<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 QDict<QString> getTabletData ( const QString& ) = 0;
00261         virtual QDict<QString> getTabletData ( const QString&,const QString& ) = 0;
00262         virtual QDict<QString> getPenData ( const QString& ) = 0;
00263         virtual QDict<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 QDict<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 isPad        ( void ) = 0;
00290 
00291         public:
00292         virtual ~SaXManipulateTabletsIF ( void ) { }
00293 
00294         protected:
00295         SaXManipulateTabletsIF (
00296                 SaXImport*in,int id
00297         ): SaXManipulatePointers (in,id) { }
00298 };
00299 //====================================
00300 // Class SaXManipulateTablets...
00301 //------------------------------------
00367 class SaXManipulateTablets : public SaXManipulateTabletsIF {
00368         private:
00369         SaXProcess*    mCDBTablets;
00370         SaXProcess*    mCDBTabletModules;
00371         QList<QString> mCDBTabletList;
00372         QDict<QString> mCDBTabletData;
00373         SaXProcess*    mCDBPens;
00374         SaXProcess*    mCDBPads;
00375         QList<QString> mCDBPenList;
00376         QList<QString> mCDBTabletDrivers;
00377         QDict<QString> mCDBTabletOptions;
00378 
00379         private:
00380         SaXManipulateDevices* mManipInputDevices;
00381 
00382         public:
00383         QDict<QString> getTabletData ( const QString& );
00384         QDict<QString> getTabletData ( const QString&,const QString& );
00385         QDict<QString> getPenData ( const QString& );
00386         QDict<QString> getPenData ( const QString&,const QString& );
00387         QList<QString> getTabletVendorList ( void );
00388         QList<QString> getTabletModelList  ( const QString& ); 
00389         QList<QString> getTabletList ( void );
00390         QList<QString> getPenList    ( void );
00391         QList<QString> getTabletDrivers ( void );
00392         QDict<QString> getTabletOptions ( const QString& );
00393         void setTablet ( const QString&,const QString& );
00394         void setTablet ( const QString& );
00395         void setType   ( const QString& );
00396         void setMode   ( const QString& );
00397         int  addPen    ( const QString& );
00398         int  addPen    ( const QString&,const QString& );
00399         int  addPad    ( const QString& );
00400         int  addPad    ( const QString&,const QString& );
00401         int  removePen ( int );
00402         int  removePad ( int );
00403 
00404         public:
00405         QString getName   ( void );
00406         QString getVendor ( void );
00407         QString getType   ( void );
00408         QString getMode   ( void );
00409         bool isTablet     ( void );
00410         bool isPen        ( void );
00411         bool isEraser     ( void );
00412         bool isPad        ( void );
00413 
00414         public:
00415         SaXManipulateTablets ( SaXImport*, SaXImport* , int = 1 );
00416 };
00417 
00418 //====================================
00419 // Interface class for dlopen ability
00420 //------------------------------------
00428 class SaXManipulateTouchscreensIF : public SaXManipulatePointers {
00429         public:
00430         virtual QList<QString> getPanelList ( void ) = 0;
00431         virtual QList<QString> getPanelVendorList ( void ) = 0;
00432         virtual QList<QString> getPanelModelList  ( const QString& ) = 0;
00433         virtual QDict<QString> getPanelData ( const QString& ) = 0;
00434         virtual QDict<QString> getPanelData ( const QString&,const QString& ) = 0;
00435         virtual void setTouchPanel ( const QString&,const QString& ) = 0;
00436         virtual void setTouchPanel ( const QString& ) = 0;
00437 
00438         public:
00439         virtual bool isTouchpanel ( void ) = 0;
00440         virtual QString getName   ( void ) = 0;
00441         virtual QString getVendor ( void ) = 0;
00442         virtual QString getType   ( void ) = 0;
00443 
00444         public:
00445         virtual ~SaXManipulateTouchscreensIF ( void ) { }
00446 
00447         protected:
00448         SaXManipulateTouchscreensIF (
00449                 SaXImport*in,int id
00450         ): SaXManipulatePointers (in,id) { }
00451 };
00452 //====================================
00453 // Class SaXManipulateTouchscreens...
00454 //------------------------------------
00513 class SaXManipulateTouchscreens : public SaXManipulateTouchscreensIF {
00514         private:
00515         SaXProcess*    mCDBPanels;
00516         QList<QString> mCDBPanelList;
00517         QDict<QString> mCDBPanelData;
00518 
00519         public:
00520         QList<QString> getPanelList ( void );
00521         QList<QString> getPanelVendorList ( void );
00522         QList<QString> getPanelModelList  ( const QString& );
00523         QDict<QString> getPanelData ( const QString& );
00524         QDict<QString> getPanelData ( const QString&,const QString& );
00525         void setTouchPanel ( const QString&,const QString& );
00526         void setTouchPanel ( const QString& );
00527 
00528         public:
00529         bool isTouchpanel ( void );
00530         QString getName   ( void );
00531         QString getVendor ( void );
00532         QString getType   ( void );
00533 
00534         public:
00535         SaXManipulateTouchscreens ( SaXImport*, int = 1 );
00536 };
00537 } // end namespace
00538 #endif

Generated on Tue Sep 25 20:18:16 2007 for libsax by  doxygen 1.5.3