|
libsax 7.2
|
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
1.7.3