wip
This commit is contained in:
parent
defb193387
commit
a0df814121
|
@ -207,17 +207,27 @@ QskMenuSkinlet::~QskMenuSkinlet() = default;
|
||||||
QRectF QskMenuSkinlet::cursorRect(
|
QRectF QskMenuSkinlet::cursorRect(
|
||||||
const QskSkinnable* skinnable, const QRectF& contentsRect, int index ) const
|
const QskSkinnable* skinnable, const QRectF& contentsRect, int index ) const
|
||||||
{
|
{
|
||||||
// TODO
|
using Q = QskMenu;
|
||||||
const auto count = sampleCount( skinnable, QskMenu::Segment );
|
|
||||||
|
|
||||||
auto rect = sampleRect( skinnable, contentsRect,
|
const auto menu = static_cast< const QskMenu* >( skinnable );
|
||||||
QskMenu::Segment, qBound( 0, index, count - 1 ) );
|
const auto actions = menu->actions();
|
||||||
|
|
||||||
|
QRectF rect;
|
||||||
|
|
||||||
if ( index < 0 )
|
if ( index < 0 )
|
||||||
|
{
|
||||||
|
rect = sampleRect( skinnable, contentsRect, Q::Segment, 0 );
|
||||||
rect.setBottom( rect.top() );
|
rect.setBottom( rect.top() );
|
||||||
|
}
|
||||||
if ( index >= count )
|
else if ( index >= actions.count() )
|
||||||
|
{
|
||||||
|
rect = sampleRect( skinnable, contentsRect, Q::Segment, actions.count() - 1 );
|
||||||
rect.setTop( rect.bottom() );
|
rect.setTop( rect.bottom() );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rect = sampleRect( skinnable, contentsRect, Q::Segment, actions[index] );
|
||||||
|
}
|
||||||
|
|
||||||
return rect;
|
return rect;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue