1 #include "raptorscrollhandler.h"
3 #include "raptorscrollhandler.moc"
5 class RaptorScrollHandler::Private
16 ElementHash elementsNames
;
20 Qt::Orientations orientation
;
25 RaptorScrollHandler::RaptorScrollHandler(QGraphicsItem
* parent
)
26 : QGraphicsItem(parent
)
30 setAcceptsHoverEvents(true);
34 d
->m_theme
= new Plasma::Svg("menu/raptorslide",this);
35 d
->m_theme
->resize(d
->height
, d
->width
);
37 setExpandingDirections(Qt::Vertical
);
39 d
->size
= d
->m_theme
->size();
40 //d->size = QSize(d->size.width()/10,d->size.height()/10);
41 d
->elementSize
= d
->m_theme
->elementSize("arrowUp");
43 d
->orientation
= Qt::Vertical
;
46 void RaptorScrollHandler::setArrowState(RaptorScrollHandler::ArrowState state
)
49 d
->elementsNames
[REGULAR
] = "arrowUp";
50 d
->elementsNames
[Hovered
] = "arrowUp";
51 d
->elementsNames
[PRESSED
] = "arrowUp";
52 } else if (state
== DOWN
) {
53 d
->elementsNames
[REGULAR
] = "arrowDown";
54 d
->elementsNames
[Hovered
] = "arrowDown";
55 d
->elementsNames
[PRESSED
] = "arrowDown";
56 } else if (state
== LEFT
) {
57 d
->elementsNames
[REGULAR
] = "arrowLeft";
58 d
->elementsNames
[Hovered
] = "arrowLeft";
59 d
->elementsNames
[PRESSED
] = "arrowLeft";
60 d
->elementSize
= d
->m_theme
->elementSize("arrowLeft");
61 } else if (state
== RIGHT
) {
62 d
->elementsNames
[REGULAR
] = "arrowRight";
63 d
->elementsNames
[Hovered
] = "arrowRight";
64 d
->elementsNames
[PRESSED
] = "arrowRight";
65 d
->elementSize
= d
->m_theme
->elementSize("arrowRight");
72 RaptorScrollHandler::~RaptorScrollHandler()
78 void RaptorScrollHandler::setExpandingDirections(Qt::Orientations ori
)
83 if (d->orientation == Qt::Vertical) {
84 d->elementsNames[REGULAR] = "arrowUp";
85 d->elementsNames[Hovered] = "arrowUp";
86 d->elementsNames[PRESSED] = "arrowUp";
88 d->elementsNames[REGULAR] = "arrowBot";
89 d->elementsNames[Hovered] = "arrowBot";
90 d->elementsNames[PRESSED] = "arrowDown";
96 void RaptorScrollHandler::paint(QPainter
*painter
, const QStyleOptionGraphicsItem
*option
, QWidget
*widget
)
98 d
->m_theme
->resize(d
->height
, d
->width
);
99 painter
->setRenderHint(QPainter::SmoothPixmapTransform
);
100 QRectF source
= boundingRect();//(x(), y(), d->width , d->height );
101 d
->m_theme
->paint(painter
, x(), y(), d
->elementsNames
[d
->state
]);
102 //painter->drawRect(boundingRect());
107 QString
RaptorScrollHandler::getElementNameForState(OwnState state
)
109 return d
->elementsNames
[state
];
112 QSize
RaptorScrollHandler::sizeHint() const
114 return QSize(d
->width
, d
->height
);
117 QRectF
RaptorScrollHandler::boundingRect() const
119 //kDebug() << QRectF (x(),y(),d->elementSize.width(),d->elementSize.height());
120 return QRectF (x(), y(), d
->elementSize
.width(), d
->elementSize
.height());
123 void RaptorScrollHandler::setGeometry(const QRect
&geometry
)
125 d
->geometry
= geometry
;
128 QRect
RaptorScrollHandler::geometry() const
135 QRect RaptorScrollHandler::geometry () const
137 return QRect (x(),y(),d->width,d->height);
144 void RaptorScrollHandler::hoverEnterEvent(QGraphicsSceneHoverEvent
*event
)
151 void RaptorScrollHandler::hoverMoveEvent(QGraphicsSceneHoverEvent
*event
)
153 d
->m_theme
->resize(d
->width
, d
->height
);
158 void RaptorScrollHandler::hoverLeaveEvent(QGraphicsSceneHoverEvent
*event
)
165 void RaptorScrollHandler::mousePressEvent(QGraphicsSceneMouseEvent
*event
)