marble
Go to the documentation of this file.
14 #include <QMouseEvent>
15 #include <QPixmapCache>
21 const int handleImageHeight = 32;
26 m_handleImagePath(
"marble/navigation/navigational_slider_handle" )
28 setMouseTracking(
true );
33 QPixmapCache::remove(
"marble/navigation/navigational_slider_groove" );
34 QPixmapCache::remove(
"marble/navigation/navigational_slider_handle" );
35 QPixmapCache::remove(
"marble/navigation/navigational_slider_handle_hover" );
36 QPixmapCache::remove(
"marble/navigation/navigational_slider_handle_press" );
42 if ( !QPixmapCache::find(
id, result ) ) {
43 result = QPixmap( QString(
":/%1.png" ).arg(
id ) );
44 QPixmapCache::insert(
id, result );
51 setSliderDown(
false );
52 if ( m_handleImagePath !=
"marble/navigation/navigational_slider_handle_hover" ) {
53 m_handleImagePath =
"marble/navigation/navigational_slider_handle_hover";
60 if ( !isSliderDown() && mouseEvent->buttons() & Qt::LeftButton ) {
61 setSliderDown(
true );
63 if ( isSliderDown() ) {
64 qreal
const fraction = ( mouseEvent->pos().y() - handleImageHeight/2 ) / qreal ( height() - handleImageHeight );
65 int v = ( int ) minimum() + ( ( maximum() - minimum() ) ) * ( 1 - fraction );
73 setSliderDown(
true );
74 if ( m_handleImagePath !=
"marble/navigation/navigational_slider_handle_press" ) {
75 m_handleImagePath =
"marble/navigation/navigational_slider_handle_press";
82 setSliderDown(
false );
83 if ( m_handleImagePath !=
"marble/navigation/navigational_slider_handle_hover" ) {
84 m_handleImagePath =
"marble/navigation/navigational_slider_handle_hover";
91 setSliderDown(
false );
92 if ( m_handleImagePath !=
"marble/navigation/navigational_slider_handle" ) {
93 m_handleImagePath =
"marble/navigation/navigational_slider_handle";
106 for (
int y = 0; y <= 160; y+=10 ) {
107 painter.drawPixmap( 0, y,
pixmap(
"marble/navigation/navigational_slider_groove" ) );
110 qreal
const fraction = ( value() - minimum() ) / qreal( maximum() - minimum() );
111 int const y = ( height() - handleImageHeight ) * ( 1 - fraction );
112 painter.drawPixmap( 0, y,
pixmap( m_handleImagePath ) );
118 #include "NavigationSlider.moc"
void mousePressEvent(QMouseEvent *)
void mouseReleaseEvent(QMouseEvent *)
QPixmap pixmap(const QString &id)
void paintEvent(QPaintEvent *)
void mouseMoveEvent(QMouseEvent *mouseEvent)
void enterEvent(QEvent *)
void leaveEvent(QEvent *)
NavigationSlider(QWidget *parent=0)
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:38:51 by
doxygen 1.8.7 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.