Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members

desktop.h

00001 /**************
00002 FILE          : desktop.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_DESKTOP_H
00022 #define SAX_DESKTOP_H 1
00023 
00024 //====================================
00025 // Includes...
00026 //------------------------------------
00027 #include "import.h"
00028 #include "card.h"
00029 #include "path.h"
00030 #include "file.h"
00031 
00032 namespace SaX {
00033 //====================================
00034 // Defines...
00035 //------------------------------------
00036 #define XSLOAD            "/usr/X11R6/bin/xsload"
00037 #define XMODE             "/usr/sbin/xmode"
00038 #define SAX_PROFILE_CHECK "/var/lib/sax/createCHK.sh"
00039 #define PROFILE_DIR       "/usr/share/sax/profile/"
00040 #define MAP_DIR           "/usr/share/sax/sysp/maps/"
00041 #define SYSP_VENDOR       "/usr/share/sax/sysp/script/vendor.pl"
00042 
00043 //====================================
00044 // Interface class for dlopen ability
00045 //------------------------------------
00053 class SaXManipulateDesktopIF : public SaXException {
00054         public:
00055         virtual void calculateModelines ( bool ) = 0;
00056         virtual void setExtraModeline ( int,int,int,int ) = 0;
00057         virtual void addExtraModeline ( int,int,int,int ) = 0;
00058         virtual void removeExtraModeline ( int,int ) = 0;
00059         virtual void setResolution ( int,int,int ) = 0;
00060         virtual void addResolution ( int,int,int ) = 0;
00061         virtual void removeResolution ( int,int,int ) = 0;
00062         virtual void setVirtualResolution ( int,int,int ) = 0;
00063         virtual void removeVirtualResolution ( int ) = 0;
00064         virtual void setColorDepth ( int ) = 0;
00065         virtual bool enable3D  ( void ) = 0;
00066         virtual bool disable3D ( void ) = 0;
00067         virtual void setDisplaySize ( int,int ) = 0;
00068         virtual void setHsyncRange ( double,double ) = 0;
00069         virtual void setVsyncRange ( double,double ) = 0;
00070         virtual void enableDPMS  ( void ) = 0;
00071         virtual void disableDPMS ( void ) = 0;
00072         virtual void setMonitorVendor ( const QString& ) = 0;
00073         virtual void setMonitorName   ( const QString& ) = 0;
00074         virtual void setCDBMonitor ( const QString& ) = 0;
00075         virtual QList<QString> getCDBMonitorVendorList ( void ) = 0;
00076         virtual QList<QString> getCDBMonitorModelList  ( const QString& ) = 0;
00077         virtual QDict<QString> getCDBMonitorData (
00078                 const QString&,const QString&
00079         ) = 0;
00080         virtual void setCDBMonitorData (
00081                 const QString&, const QString&,
00082                 const QString&, const QString&
00083         ) = 0;
00084 
00085         public:
00086         virtual QList<QString> getResolutions ( int  ) = 0;
00087         virtual QList<QString> getDisplaySize ( void ) = 0;
00088         virtual QList<QString> getHsyncRange  ( void ) = 0;
00089         virtual QList<QString> getVsyncRange  ( void ) = 0;
00090         virtual bool is3DEnabled    ( void ) = 0;
00091         virtual bool is3DCard       ( void ) = 0;
00092         virtual bool isDualHeadCard ( void ) = 0;
00093         virtual bool DPMSEnabled    ( void ) = 0;
00094         virtual QString getMonitorVendor ( void ) = 0;
00095         virtual QString getMonitorName   ( void ) = 0;
00096         virtual QString getColorDepth    ( void ) = 0;
00097         virtual QString getVirtualResolution ( int  ) = 0;
00098         virtual QString getDualHeadProfile   ( void ) = 0;
00099         virtual QString getModelineAlgorithm ( void ) = 0;
00100         virtual bool willCalculateModelines  ( void ) = 0;
00101 
00102         public:
00103         virtual bool selectDesktop (int) = 0;
00104 
00105         public:
00106         virtual ~SaXManipulateDesktopIF ( void ) { }
00107 };
00108 //====================================
00109 // Class SaXManipulateDesktop...
00110 //------------------------------------
00165 class SaXManipulateDesktop : public SaXManipulateDesktopIF {
00166         private:
00167         SaXImport*     mDesktop;
00168         SaXImport*     mCard;
00169         SaXImport*     mPath;
00170         SaXProcess*    mCDBMonitors;
00171         QList<QString> mCDBMonitorList;
00172         QDict<QString> mCDBMonitorData;
00173         int            mDesktopID;
00174 
00175         private:
00176         QString getVendorForDriver ( const QString& );
00177         QString calculateModeline  ( int,int,int,int );
00178 
00179         public:
00180         void calculateModelines ( bool );
00181         void setExtraModeline ( int,int,int,int );
00182     void addExtraModeline ( int,int,int,int );
00183     void removeExtraModeline ( int,int );
00184         void setResolution ( int,int,int );
00185         void addResolution ( int,int,int );
00186         void removeResolution ( int,int,int );
00187         void setVirtualResolution ( int,int,int );
00188         void removeVirtualResolution ( int );
00189         void setColorDepth ( int );
00190         bool enable3D  ( void );
00191         bool disable3D ( void );
00192         void setDisplaySize ( int,int );
00193         void setHsyncRange ( double,double );
00194         void setVsyncRange ( double,double );
00195         void enableDPMS  ( void );
00196         void disableDPMS ( void );
00197         void setMonitorVendor ( const QString& );
00198         void setMonitorName   ( const QString& );
00199         void setCDBMonitor ( const QString& );
00200         QList<QString> getCDBMonitorVendorList ( void );
00201         QList<QString> getCDBMonitorModelList  ( const QString& );
00202         QDict<QString> getCDBMonitorData ( const QString&, const QString& );
00203         void setCDBMonitorData (
00204                 const QString&, const QString&,
00205                 const QString&, const QString&
00206         );
00207 
00208         public:
00209         QList<QString> getResolutions ( int  );
00210         QList<QString> getDisplaySize ( void );
00211         QList<QString> getHsyncRange  ( void );
00212         QList<QString> getVsyncRange  ( void );
00213         bool is3DEnabled    ( void );
00214         bool is3DCard       ( void );
00215         bool isDualHeadCard ( void );
00216         bool DPMSEnabled    ( void );
00217         QString getMonitorVendor ( void );
00218         QString getMonitorName   ( void );
00219         QString getColorDepth    ( void );
00220         QString getVirtualResolution ( int  );
00221         QString getDualHeadProfile   ( void );
00222         QString getModelineAlgorithm ( void );
00223         bool willCalculateModelines  ( void );
00224 
00225         public:
00226         bool selectDesktop (int);
00227 
00228         public:
00229         SaXManipulateDesktop (
00230                 SaXImport*, SaXImport*, SaXImport*, int = 0
00231         );
00232 };
00233 } // end namespace
00234 #endif

Generated on Wed Sep 14 10:27:01 2005 for libsax by  doxygen 1.4.4