23 #include <qstyleoption.h>
27 double dist = qAbs( a2 - a1 );
34 static inline bool qwtIsOnArc(
double angle,
double min,
double max )
38 return ( angle >= min ) && ( angle <= max );
42 return ( angle >= min ) || ( angle <= max );
129 setFocusPolicy( Qt::TabFocus );
131 QPalette p = palette();
132 for (
int i = 0; i < QPalette::NColorGroups; i++ )
134 const QPalette::ColorGroup colorGroup =
135 static_cast< QPalette::ColorGroup
>( i );
140 p.setColor( colorGroup, QPalette::WindowText,
141 p.color( colorGroup, QPalette::Base ) );
236 const QRect cr = contentsRect();
238 const int dim = qMin( cr.width(), cr.height() );
240 QRect inner( 0, 0, dim, dim );
241 inner.moveCenter( cr.center() );
260 rect.adjust( scaleDist, scaleDist, -scaleDist, -scaleDist );
312 QPainter painter(
this );
313 painter.setClipRegion( event->region() );
317 style()->drawPrimitive(QStyle::PE_Widget, &opt, &painter,
this);
322 painter.setRenderHint( QPainter::Antialiasing,
true );
329 const QRect r = contentsRect();
336 p.setRenderHint( QPainter::Antialiasing,
true );
337 p.translate( -r.topLeft() );
393 if ( testAttribute( Qt::WA_NoSystemBackground ) ||
394 palette().brush( QPalette::Base ) !=
395 palette().brush( QPalette::Window ) )
400 painter->setPen( Qt::NoPen );
401 painter->setBrush( palette().brush( QPalette::Base ) );
402 painter->drawEllipse( br );
407 if ( palette().brush( QPalette::WindowText ) !=
408 palette().brush( QPalette::Base ) )
411 painter->setPen( Qt::NoPen );
412 painter->setBrush( palette().brush( QPalette::WindowText ) );
413 painter->drawEllipse( insideScaleRect );
417 const QPointF center = insideScaleRect.center();
418 const double radius = 0.5 * insideScaleRect.width();
439 double radius,
double direction, QPalette::ColorGroup colorGroup )
const
443 direction = 360.0 - direction;
453 QPalette::ColorGroup colorGroup;
455 colorGroup = hasFocus() ? QPalette::Active : QPalette::Inactive;
457 colorGroup = QPalette::Disabled;
462 painter->setRenderHint( QPainter::Antialiasing,
true );
463 drawNeedle( painter, sr.center(), 0.5 * sr.width(),
476 const QPointF& center,
double radius )
const
485 QPalette pal = palette();
487 const QColor textColor = pal.color( QPalette::Text );
488 pal.setColor( QPalette::WindowText, textColor );
490 painter->setFont( font() );
491 painter->setPen( QPen( textColor, sd->
penWidthF() ) );
493 painter->setBrush( Qt::red );
494 sd->
draw( painter, pal );
507 const QPointF& center,
double radius )
const
590 if ( minArc != 360.0 && minArc != -360.0 )
591 minArc = std::fmod( minArc, 360.0 );
592 if ( maxArc != 360.0 && maxArc != -360.0 )
593 maxArc = std::fmod( maxArc, 360.0 );
710 return QSize(
d,
d );
723 const QRegion region(
innerRect(), QRegion::Ellipse );
724 if ( region.contains( pos ) && ( pos !=
innerRect().center() ) )
726 double angle = QLineF( rect().center(), pos ).angle();
728 angle = 360.0 - angle;
753 double angle = QLineF( rect().center(), pos ).angle();
757 angle = 360.0 - angle;
770 double boundedAngle = angle;
773 if ( qAbs( arc ) > 180.0 )
775 boundedAngle = ( arc > 0 )
781 angle = boundedAngle;
786 const double boundedAngle =
792 angle = boundedAngle;
806 switch( event->type() )
808 case QEvent::EnabledChange:
809 case QEvent::FontChange:
810 case QEvent::StyleChange:
811 case QEvent::PaletteChange:
812 case QEvent::LanguageChange:
813 case QEvent::LocaleChange:
831 #if QT_VERSION < 0x050e00
832 const QPoint wheelPos =
event->pos();
834 const QPoint wheelPos =
event->position().toPoint();
837 const QRegion region(
innerRect(), QRegion::Ellipse );
838 if ( region.contains( wheelPos ) )
847 sd->setAngleRange( angle, angle + span );
877 #include "moc_qwt_dial.cpp"