summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNorwegian Rock Cat <qt-info@nokia.com>2009-05-08 21:56:13 +0200
committerNorwegian Rock Cat <qt-info@nokia.com>2009-05-08 21:56:13 +0200
commitb0fb74793aaeef85bad378c628c22eae10abdc44 (patch)
treeb0d1ce2b906077f24f1611312e56e30fc7bee794
parentd9be6eabe4b78751efb0e37099cf9c5044699d5a (diff)
Better drawing.
qstyleoption_cast is not working well, but it could easily be something wrong with my style option. Now for size hinting to work.
-rw-r--r--src/qtsegmentcontrol.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/qtsegmentcontrol.cpp b/src/qtsegmentcontrol.cpp
index ce04969..57716bc 100644
--- a/src/qtsegmentcontrol.cpp
+++ b/src/qtsegmentcontrol.cpp
@@ -8,7 +8,7 @@
#ifdef Q_WS_MAC
#include <Carbon/Carbon.h>
-ThemeDrawState getDrawState(QStyle::State flags)
+static ThemeDrawState getDrawState(QStyle::State flags)
{
ThemeDrawState tds = kThemeStateActive;
if (flags & QStyle::State_Sunken) {
@@ -82,8 +82,10 @@ static void drawSegmentControlSegment(const QStyleOption *option,
#ifndef Q_WS_MAC
painter->fillRect(option->rect, Qt::blue);
#else
+ // ### Change to qstyleoption_cast!
if (const QtStyleOptionSegmentControlSegment *segment
- = qstyleoption_cast<const QtStyleOptionSegmentControlSegment *>(option)) {
+ = static_cast<const QtStyleOptionSegmentControlSegment *>(option)) {
+ qDebug("Segment pos %d", segment->position);
CGContextRef cg = qt_mac_cg_context(painter->device());
HIThemeSegmentDrawInfo sgi;
sgi.version = 0;
@@ -91,10 +93,10 @@ static void drawSegmentControlSegment(const QStyleOption *option,
sgi.value = (segment->state & QStyle::State_Selected) ? kThemeButtonOn : kThemeButtonOff;
sgi.size = kHIThemeSegmentSizeNormal;
sgi.kind = kHIThemeSegmentKindNormal;
- sgi.position = sgi.position;
+ sgi.position = segment->position;
sgi.adornment = kHIThemeSegmentAdornmentNone;
HIRect hirect = CGRectMake(segment->rect.x(), segment->rect.y(),
- segment->rect.width(), segment->rect.height());
+ segment->rect.width(), segment->rect.height());
HIThemeDrawSegment(&hirect, &sgi, cg, kHIThemeOrientationNormal);
CFRelease(cg);
}
@@ -319,7 +321,8 @@ void QtSegmentControl::initStyleOption(int segment, QStyleOption *option)
if (!option || !d->indexOK(segment))
return;
option->initFrom(this);
- if (QtStyleOptionSegmentControlSegment *sgi = qstyleoption_cast<QtStyleOptionSegmentControlSegment *>(option)) {
+ // ## Change to qstyleoption_cast
+ if (QtStyleOptionSegmentControlSegment *sgi = static_cast<QtStyleOptionSegmentControlSegment *>(option)) {
sgi->iconSize = d->iconSize;
const SegmentInfo &segmentInfo = d->segments[segment];
if (d->segments.count() == 1) {