Eneboo - Documentación para desarrolladores
|
00001 /**************************************************************************** 00002 ** $Id: qt/qscrollbar.h 3.3.8 edited Jan 11 14:38 $ 00003 ** 00004 ** Definition of QScrollBar class 00005 ** 00006 ** Created : 940427 00007 ** 00008 ** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved. 00009 ** 00010 ** This file is part of the widgets module of the Qt GUI Toolkit. 00011 ** 00012 ** This file may be distributed under the terms of the Q Public License 00013 ** as defined by Trolltech ASA of Norway and appearing in the file 00014 ** LICENSE.QPL included in the packaging of this file. 00015 ** 00016 ** This file may be distributed and/or modified under the terms of the 00017 ** GNU General Public License version 2 as published by the Free Software 00018 ** Foundation and appearing in the file LICENSE.GPL included in the 00019 ** packaging of this file. 00020 ** 00021 ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition 00022 ** licenses may use this file in accordance with the Qt Commercial License 00023 ** Agreement provided with the Software. 00024 ** 00025 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 00026 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 00027 ** 00028 ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for 00029 ** information about Qt Commercial License Agreements. 00030 ** See http://www.trolltech.com/qpl/ for QPL licensing information. 00031 ** See http://www.trolltech.com/gpl/ for GPL licensing information. 00032 ** 00033 ** Contact info@trolltech.com if any conditions of this licensing are 00034 ** not clear to you. 00035 ** 00036 **********************************************************************/ 00037 00038 #ifndef QSCROLLBAR_H 00039 #define QSCROLLBAR_H 00040 00041 class QTimer; 00042 00043 #ifndef QT_H 00044 #include "qwidget.h" 00045 #include "qrangecontrol.h" 00046 #endif // QT_H 00047 00048 #ifndef QT_NO_SCROLLBAR 00049 00050 class Q_EXPORT QScrollBar : public QWidget, public QRangeControl 00051 { 00052 Q_OBJECT 00053 Q_PROPERTY( int minValue READ minValue WRITE setMinValue ) 00054 Q_PROPERTY( int maxValue READ maxValue WRITE setMaxValue ) 00055 Q_PROPERTY( int lineStep READ lineStep WRITE setLineStep ) 00056 Q_PROPERTY( int pageStep READ pageStep WRITE setPageStep ) 00057 Q_PROPERTY( int value READ value WRITE setValue ) 00058 Q_PROPERTY( bool tracking READ tracking WRITE setTracking ) 00059 Q_PROPERTY( bool draggingSlider READ draggingSlider ) 00060 Q_PROPERTY( Orientation orientation READ orientation WRITE setOrientation ) 00061 00062 public: 00063 QScrollBar( QWidget *parent, const char* name = 0 ); 00064 QScrollBar( Orientation, QWidget *parent, const char* name = 0 ); 00065 QScrollBar( int minValue, int maxValue, int lineStep, int pageStep, 00066 int value, Orientation, QWidget *parent, const char* name = 0 ); 00067 ~QScrollBar(); 00068 00069 virtual void setOrientation( Orientation ); 00070 Orientation orientation() const; 00071 virtual void setTracking( bool enable ); 00072 bool tracking() const; 00073 bool draggingSlider() const; 00074 00075 virtual void setPalette( const QPalette & ); 00076 virtual QSize sizeHint() const; 00077 virtual void setSizePolicy( QSizePolicy sp ); 00078 void setSizePolicy( QSizePolicy::SizeType hor, QSizePolicy::SizeType ver, bool hfw = FALSE ); 00079 00080 int minValue() const; 00081 int maxValue() const; 00082 void setMinValue( int ); 00083 void setMaxValue( int ); 00084 int lineStep() const; 00085 int pageStep() const; 00086 void setLineStep( int ); 00087 void setPageStep( int ); 00088 int value() const; 00089 00090 int sliderStart() const; 00091 QRect sliderRect() const; 00092 00093 public slots: 00094 void setValue( int ); 00095 00096 signals: 00097 void valueChanged( int value ); 00098 void sliderPressed(); 00099 void sliderMoved( int value ); 00100 void sliderReleased(); 00101 void nextLine(); 00102 void prevLine(); 00103 void nextPage(); 00104 void prevPage(); 00105 00106 protected: 00107 #ifndef QT_NO_WHEELEVENT 00108 void wheelEvent( QWheelEvent * ); 00109 #endif 00110 void keyPressEvent( QKeyEvent * ); 00111 void resizeEvent( QResizeEvent * ); 00112 void paintEvent( QPaintEvent * ); 00113 00114 void mousePressEvent( QMouseEvent * ); 00115 void mouseReleaseEvent( QMouseEvent * ); 00116 void mouseMoveEvent( QMouseEvent * ); 00117 void contextMenuEvent( QContextMenuEvent * ); 00118 void hideEvent( QHideEvent* ); 00119 00120 void valueChange(); 00121 void stepChange(); 00122 void rangeChange(); 00123 00124 void styleChange( QStyle& ); 00125 00126 private slots: 00127 void doAutoRepeat(); 00128 00129 private: 00130 void init(); 00131 void positionSliderFromValue(); 00132 int calculateValueFromSlider() const; 00133 00134 void startAutoRepeat(); 00135 void stopAutoRepeat(); 00136 00137 int rangeValueToSliderPos( int val ) const; 00138 int sliderPosToRangeValue( int val ) const; 00139 00140 void action( int control ); 00141 00142 void drawControls( uint controls, uint activeControl ) const; 00143 void drawControls( uint controls, uint activeControl, 00144 QPainter *p ) const; 00145 00146 uint pressedControl; 00147 bool track; 00148 bool clickedAt; 00149 Orientation orient; 00150 00151 int slidePrevVal; 00152 QCOORD sliderPos; 00153 QCOORD clickOffset; 00154 00155 QTimer * repeater; 00156 void * d; 00157 00158 private: // Disabled copy constructor and operator= 00159 #if defined(Q_DISABLE_COPY) 00160 QScrollBar( const QScrollBar & ); 00161 QScrollBar &operator=( const QScrollBar & ); 00162 #endif 00163 }; 00164 00165 00166 inline void QScrollBar::setTracking( bool t ) 00167 { 00168 track = t; 00169 } 00170 00171 inline bool QScrollBar::tracking() const 00172 { 00173 return track; 00174 } 00175 00176 inline QScrollBar::Orientation QScrollBar::orientation() const 00177 { 00178 return orient; 00179 } 00180 00181 inline int QScrollBar::sliderStart() const 00182 { 00183 return sliderPos; 00184 } 00185 00186 inline void QScrollBar::setSizePolicy( QSizePolicy::SizeType hor, QSizePolicy::SizeType ver, bool hfw ) 00187 { 00188 QWidget::setSizePolicy( hor, ver, hfw ); 00189 } 00190 00191 00192 #endif // QT_NO_SCROLLBAR 00193 00194 #endif // QSCROLLBAR_H