SliderToolTip Class Reference

#include <dynamicSlider.h>

Inheritance diagram for SliderToolTip:

[legend]
Collaboration diagram for SliderToolTip:
[legend]
List of all members.

Detailed Description

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

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

DynamicSliderslider


Constructor & Destructor Documentation

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 }


Member Function Documentation

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 }

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

Definition at line 165 of file dynamicSlider.cpp.

Referenced by SliderToolTip().

00165 { hide(); }


Member Data Documentation

DynamicSlider* SliderToolTip::slider [private]

Definition at line 79 of file dynamicSlider.h.

Referenced by SliderToolTip(), and update().


The documentation for this class was generated from the following files:
Generated on Wed Jan 24 05:38:33 2007 for AlbumShaper by  doxygen 1.5.1