SliderToolTip Class Reference

private class used by the DynamicSlider to show tooltips. do not use! More...

#include <dynamicSlider.h>

Inheritance diagram for SliderToolTip:
[legend]
Collaboration diagram for SliderToolTip:
[legend]

List of all members.

Public Member Functions

 SliderToolTip (QWidget *parent, DynamicSlider *slider)

Private Slots

void showTooltip ()
void update ()
void hideTooltip ()

Private Attributes

DynamicSliderslider

Detailed Description

private class used by the DynamicSlider to show tooltips. do not use!

Definition at line 71 of file dynamicSlider.h.


Constructor & Destructor Documentation

SliderToolTip::SliderToolTip ( QWidget parent,
DynamicSlider slider 
)

Definition at line 121 of file dynamicSlider.cpp.

References hideTooltip(), showTooltip(), 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 }


Member Function Documentation

void SliderToolTip::hideTooltip (  )  [private, slot]

Definition at line 165 of file dynamicSlider.cpp.

Referenced by SliderToolTip().

00165 { hide(); }

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 }


Member Data Documentation

Definition at line 79 of file dynamicSlider.h.

Referenced by update().


The documentation for this class was generated from the following files:

Generated by  doxygen 1.6.2