#include <dynamicSlider.h>
Inheritance diagram for SliderToolTip:
Definition at line 71 of file dynamicSlider.h.
Public Member Functions | |
SliderToolTip (QWidget *parent, DynamicSlider *slider) | |
Private Slots | |
void | showTooltip () |
void | update () |
void | hideTooltip () |
Private Attributes | |
DynamicSlider * | slider |
SliderToolTip::SliderToolTip | ( | QWidget * | parent, | |
DynamicSlider * | slider | |||
) |
Definition at line 121 of file dynamicSlider.cpp.
References hideTooltip(), showTooltip(), slider, and update().
00122 : QLabel( parent, "toolTipTip", 00123 WStyle_StaysOnTop | WStyle_Customize | 00124 WStyle_NoBorder | WStyle_Tool | WX11BypassWM ) 00125 { 00126 //store slider handle 00127 this->slider = slider; 00128 00129 //setup lable to use standard black writing on a light yellow background so it 00130 //looks like a normal tooltip 00131 setPaletteForegroundColor( QColor("Black") ); 00132 setPaletteBackgroundColor( QColor("LightYellow") ); 00133 00134 //use default system tooltip font 00135 setFont( QToolTip::font() ); 00136 00137 //setup the otherparmslike a frame etc so it looks like a normal tooltip 00138 setMargin(1); 00139 setAutoMask( FALSE ); 00140 setFrameStyle( QFrame::Plain | QFrame::Box ); 00141 setLineWidth( 1 ); 00142 setAlignment( AlignAuto | AlignTop ); 00143 setIndent(0); 00144 polish(); 00145 adjustSize(); 00146 00147 //show the tooltip when the user presses the slider 00148 connect( slider, SIGNAL( sliderPressed() ), this, SLOT( showTooltip() ) ); 00149 00150 //move tooltip to follow the slider handle 00151 setMouseTracking(true); 00152 connect( slider, SIGNAL( mouseHasMoved() ), this, SLOT( update() ) ); 00153 00154 //hide tooltip when users releases the slider 00155 connect( slider, SIGNAL( sliderReleased() ), this, SLOT( hideTooltip() ) ); 00156 }
void SliderToolTip::hideTooltip | ( | ) | [private, slot] |
void SliderToolTip::showTooltip | ( | ) | [private, slot] |
Definition at line 158 of file dynamicSlider.cpp.
References update().
Referenced by SliderToolTip().
00159 { 00160 //make sure label is up-to-date 00161 update(); 00162 show(); 00163 }
void SliderToolTip::update | ( | ) | [private, slot] |
Definition at line 167 of file dynamicSlider.cpp.
References DynamicSlider::getMousePos(), height, slider, and width.
Referenced by showTooltip(), and SliderToolTip().
00168 { 00169 //margin well provide betweent the slider and the tooltip 00170 const int TOOLTIP_MARGIN = 4; 00171 00172 //fetch slider handle rect 00173 QRect sliderRect = slider->sliderRect(); 00174 00175 //determine location tooltip will be shown 00176 QPoint tooltipTopLeft; 00177 if( slider->orientation() == Qt::Horizontal ) 00178 { 00179 tooltipTopLeft = QPoint( sliderRect.right() + TOOLTIP_MARGIN, 00180 slider->getMousePos().y() >= sliderRect.top() ? 00181 sliderRect.top() - TOOLTIP_MARGIN - height() : 00182 sliderRect.bottom() + TOOLTIP_MARGIN ); 00183 } 00184 else 00185 { 00186 tooltipTopLeft = QPoint( slider->getMousePos().x() >= sliderRect.right() ? 00187 sliderRect.left() - TOOLTIP_MARGIN - width() : 00188 sliderRect.right() + TOOLTIP_MARGIN, 00189 (sliderRect.top() + sliderRect.bottom())/2 - height()/2 ); 00190 } 00191 00192 //map tooltip position from slider widget to screen coordinates 00193 tooltipTopLeft = slider->mapToGlobal( tooltipTopLeft ); 00194 00195 //position tooltip 00196 move( tooltipTopLeft ); 00197 if( isShown() ) qApp->processEvents(); 00198 }
DynamicSlider* SliderToolTip::slider [private] |