Exemplo n.º 1
0
void ScrollBar::updateLayout(void)
{
    UInt16 MajorAxis, MinorAxis;
    if(getOrientation() == ScrollBar::VERTICAL_ORIENTATION)
    {
        MajorAxis = 1;
    }
    else
    {
        MajorAxis = 0;
    }
    MinorAxis = (MajorAxis+1)%2;

    Pnt2f TopLeft, BottomRight;
    getInsideInsetsBounds(TopLeft, BottomRight);

    Pnt2f Position;
    Vec2f Size;

    //Min Button
    if(editMinButton() != NULL)
    {
        Size[MajorAxis] = editMinButton()->getPreferredSize()[MajorAxis];
        Size[MinorAxis] = BottomRight[MinorAxis] - TopLeft[MinorAxis];

        Position = TopLeft;

        editMinButton()->setPosition(Position);
        editMinButton()->setSize(Size);
    }

    //Max Button
    if(editMaxButton() != NULL)
    {
        Size[MajorAxis] = editMaxButton()->getPreferredSize()[MajorAxis];
        Size[MinorAxis] = BottomRight[MinorAxis] - TopLeft[MinorAxis];

        Position = BottomRight - Size;

        editMaxButton()->setPosition(Position);
        editMaxButton()->setSize(Size);
    }

    //Scroll Field
    if(editScrollField() != NULL)
    {
        Size[MajorAxis] = (BottomRight[MajorAxis] - TopLeft[MajorAxis]) - editMinButton()->getSize()[MajorAxis] - editMaxButton()->getSize()[MajorAxis];
        Size[MinorAxis] = BottomRight[MinorAxis] - TopLeft[MinorAxis];

        Position[MajorAxis] = editMinButton()->getPosition()[MajorAxis] + editMinButton()->getSize()[MajorAxis];
        Position[MinorAxis] = editMinButton()->getPosition()[MinorAxis];

        editScrollField()->setPosition(Position);
        editScrollField()->setSize(Size);
    }

    //ScrollBar
    updateScrollBarLayout();
}
Exemplo n.º 2
0
void ScrollBar::handleRangeModelStateChanged(ChangeEventDetails* const e)
{
    updateScrollBarLayout();
}