• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • tderandr
 

tderandr

randr.h
00001 /*
00002  * Copyright (c) 2002,2003 Hamish Rodda <rodda@kde.org>
00003  *
00004  *  This program is free software; you can redistribute it and/or modify
00005  *  it under the terms of the GNU General Public License as published by
00006  *  the Free Software Foundation; either version 2 of the License, or
00007  *  (at your option) any later version.
00008  *
00009  *  This program is distributed in the hope that it will be useful,
00010  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012  *  GNU General Public License for more details.
00013  *
00014  *  You should have received a copy of the GNU General Public License
00015  *  along with this program; if not, write to the Free Software
00016  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
00017  */
00018 
00019 #ifndef __RANDR_H__
00020 #define __RANDR_H__
00021 
00022 #include <tqobject.h>
00023 #include <tqstringlist.h>
00024 #include <tqptrlist.h>
00025 
00026 #include <tdecmodule.h>
00027 #include <tdeconfig.h>
00028 
00029 class KTimerDialog;
00030 class RandRScreenPrivate;
00031 
00032 class TDERANDR_EXPORT HotPlugRule {
00033     public:
00034         enum states {
00035             AnyState        = 0,
00036             Connected       = 1,
00037             Disconnected        = 2
00038         };
00039 
00040     public:
00041         HotPlugRule();
00042         virtual ~HotPlugRule();
00043 
00044     public:
00045         TQStringList outputs;
00046         TQValueList< int > states;
00047         TQString profileName;
00048 };
00049 
00050 typedef TQValueList< HotPlugRule > HotPlugRulesList;
00051 
00052 class TDERANDR_EXPORT SingleScreenData {
00053     public:
00054         SingleScreenData();
00055         virtual ~SingleScreenData();
00056     
00057     public:
00058         TQString screenUniqueName;
00059         TQString screenFriendlyName;
00060         bool generic_screen_detected;
00061         bool screen_connected;
00062     
00063         TQStringList resolutions;
00064         TQStringList refresh_rates;
00065         TQStringList color_depths;
00066         TQStringList rotations;
00067     
00068         int current_resolution_index;
00069         int current_refresh_rate_index;
00070         int current_color_depth_index;
00071     
00072         float gamma_red;
00073         float gamma_green;
00074         float gamma_blue;
00075     
00076         int current_rotation_index;
00077         int current_orientation_mask;
00078         bool has_x_flip;
00079         bool has_y_flip;
00080         bool supports_transformations;
00081     
00082         bool is_primary;
00083         bool is_extended;
00084         int absolute_x_position;
00085         int absolute_y_position;
00086         int current_x_pixel_count;
00087         int current_y_pixel_count;
00088     
00089         bool has_dpms;
00090         bool enable_dpms;
00091         unsigned int dpms_standby_delay;
00092         unsigned int dpms_suspend_delay;
00093         unsigned int dpms_off_delay;
00094 };
00095 
00096 class RandRScreen : public TQObject
00097 {
00098     Q_OBJECT
00099 
00100 public:
00101     enum orientations {
00102         Rotate0         = 0x1,
00103         Rotate90        = 0x2,
00104         Rotate180       = 0x4,
00105         Rotate270       = 0x8,
00106         RotateMask      = 15,
00107         RotationCount   = 4,
00108         ReflectX        = 0x10,
00109         ReflectY        = 0x20,
00110         ReflectMask     = 48,
00111         OrientationMask = 63,
00112         OrientationCount = 6
00113     };
00114 
00115     RandRScreen(int screenIndex);
00116     ~RandRScreen();
00117 
00118     void        loadSettings();
00119     void        setOriginal();
00120 
00121     bool        applyProposed();
00122 
00126     bool        applyProposedAndConfirm();
00127 
00128 public slots:
00129     bool        confirm();
00130     bool        showTestConfigurationDialog();
00131 
00132 public:
00133     TQString        changedMessage() const;
00134 
00135     bool        changedFromOriginal() const;
00136     void        proposeOriginal();
00137 
00138     bool        proposedChanged() const;
00139 
00140     static TQString rotationName(int rotation, bool pastTense = false, bool capitalised = true);
00141     TQPixmap            rotationIcon(int rotation) const;
00142     TQString            currentRotationDescription() const;
00143 
00144     int             rotationIndexToDegree(int rotation) const;
00145     int             rotationDegreeToIndex(int degree) const;
00146 
00150     TQStringList refreshRates(int size) const;
00151 
00152     TQString        refreshRateDirectDescription(int rate) const;
00153     TQString        refreshRateIndirectDescription(int size, int index) const;
00154     TQString        refreshRateDescription(int size, int index) const;
00155 
00156     int         currentRefreshRate() const;
00157     TQString        currentRefreshRateDescription() const;
00158 
00159     // Refresh rate hz <==> index conversion
00160     int         refreshRateHzToIndex(int size, int hz) const;
00161     int         refreshRateIndexToHz(int size, int index) const;
00162 
00166     int             numSizes() const;
00167     const TQSize&   pixelSize(int index) const;
00168     const TQSize&   mmSize(int index) const;
00169     int             pixelCount(int index) const;
00170 
00177     int             sizeIndex(TQSize pixelSize) const;
00178 
00179     int         rotations() const;
00180 
00184     int         currentPixelWidth() const;
00185     int         currentPixelHeight() const;
00186     int         currentMMWidth() const;
00187     int         currentMMHeight() const;
00188 
00189     int         currentRotation() const;
00190     int         currentSize() const;
00191 
00195     int         proposedSize() const;
00196     bool        proposeSize(int newSize);
00197 
00198     int         proposedRotation() const;
00199     void        proposeRotation(int newRotation);
00200 
00201     int         proposedRefreshRate() const;
00209     bool        proposeRefreshRate(int index);
00210 
00214     void        load(TDEConfig& config);
00215     void        save(TDEConfig& config) const;
00216 
00217 private:
00218     RandRScreenPrivate* d;
00219 
00220     int         m_screen;
00221 
00222     TQValueList<TQSize> m_pixelSizes;
00223     TQValueList<TQSize> m_mmSizes;
00224     int                 m_rotations;
00225 
00226     int         m_originalRotation;
00227     int         m_originalSize;
00228     int         m_originalRefreshRate;
00229 
00230     int         m_currentRotation;
00231     int         m_currentSize;
00232     int         m_currentRefreshRate;
00233 
00234     int         m_proposedRotation;
00235     int         m_proposedSize;
00236     int         m_proposedRefreshRate;
00237 
00238     KTimerDialog*   m_shownDialog;
00239 
00240 private slots:
00241     void        desktopResized();
00242     void        shownDialogDestroyed();
00243 };
00244 
00245 typedef TQPtrList<RandRScreen> ScreenList;
00246 
00247 class RandRDisplay
00248 {
00249 public:
00250     RandRDisplay();
00251 
00252     bool            isValid() const;
00253     const TQString& errorCode() const;
00254     const TQString& version() const;
00255 
00256     int     eventBase() const;
00257     int     screenChangeNotifyEvent() const;
00258     int     errorBase() const;
00259 
00260     int     screenIndexOfWidget(TQWidget* widget);
00261 
00262     int             numScreens() const;
00263     RandRScreen*    screen(int index);
00264 
00265     void            setCurrentScreen(int index);
00266     int             currentScreenIndex() const;
00267     RandRScreen*    currentScreen();
00268 
00269     void    refresh();
00270 
00278     bool    loadDisplay(TDEConfig& config, bool loadScreens = true);
00279     void    saveDisplay(TDEConfig& config, bool applyOnStartup, bool syncTrayApp);
00280 
00281     static bool     applyOnStartup(TDEConfig& config);
00282     static bool     syncTrayApp(TDEConfig& config);
00283 
00284     void    applyProposed(bool confirm = true);
00285 
00286     bool showTestConfigurationDialog();
00287 
00288 private:
00289     int             m_numScreens;
00290     int             m_currentScreenIndex;
00291     RandRScreen*    m_currentScreen;
00292     ScreenList      m_screens;
00293 
00294     bool            m_valid;
00295     QString         m_errorCode;
00296     QString         m_version;
00297 
00298     int             m_eventBase;
00299     int             m_errorBase;
00300 };
00301 
00302 #endif

tderandr

Skip menu "tderandr"
  • Main Page
  • Alphabetical List
  • Class List
  • File List
  • Class Members
  • Related Pages

tderandr

Skip menu "tderandr"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tderandr by doxygen 1.7.6.1
This website is maintained by Timothy Pearson.