void Transform::SetRotation(float x, float y, float z)
{
    m_Rotation.x = x;
    m_Rotation.y = y;
    m_Rotation.z = z;
    RebuildMatrix();
}
void Transform::SetRotation(const Vector3& rot)
{
    m_Rotation.x = rot.x;
    m_Rotation.y = rot.y;
    m_Rotation.z = rot.z;
    RebuildMatrix();
}
void Transform::SetPosition(const Vector3& pos)
{
    m_Position.x = pos.x;
    m_Position.y = pos.y;
    m_Position.z = pos.z;
    RebuildMatrix();
}
void pawsShortcutWindow::OnResize()
{
    size_t newMatrixWidth, newMatrixHeight;

    if (matrix.GetSize() == 0)
    {
        return;
    }        
    
    // If the matrix size that is appropriate for current window size differs from actual matrix size,
    // we will adjust the matrix to it
    CalcMatrixSize(newMatrixWidth, newMatrixHeight);
    if (matrix.GetSize() != newMatrixWidth   ||   matrix[0].GetSize() != newMatrixHeight)
    {
        RebuildMatrix();
    }                    
}
bool pawsShortcutWindow::PostSetup()
{
    // Create the scroll bar
    //scrollBar = new pawsScrollBar;
    //AddChild( scrollBar );
    //scrollBar->SetHorizontal(false);
    //int attach = ATTACH_BOTTOM | ATTACH_RIGHT | ATTACH_TOP;
    //scrollBar->SetAttachFlags( attach );
    //scrollBar->SetRelativeFrame( defaultFrame.Width()-SCROLLBAR_SIZE, 0, SCROLLBAR_SIZE, defaultFrame.Height()-8);
    //scrollBar->PostSetup();
    //scrollBar->Resize();

    scrollBar = dynamic_cast<pawsScrollBar *>(FindWidget("scrollbar"));
    //scrollBar->SetTickValue( 1.0 );

    RebuildMatrix();

    return true;
}