QskLayoutHint added
This commit is contained in:
parent
7ad6072d67
commit
ba823301b9
|
@ -0,0 +1,77 @@
|
||||||
|
#include "QskLayoutHint.h"
|
||||||
|
#include "QskLayoutConstraint.h"
|
||||||
|
#include <qnamespace.h>
|
||||||
|
|
||||||
|
QskLayoutHint::QskLayoutHint()
|
||||||
|
: QskLayoutHint( 0.0, 0.0, QskLayoutConstraint::unlimited )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
QskLayoutHint::QskLayoutHint( qreal minimum, qreal preferred, qreal maximum )
|
||||||
|
: m_minimum( minimum )
|
||||||
|
, m_preferred( preferred )
|
||||||
|
, m_maximum( maximum )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
qreal QskLayoutHint::size( int which ) const
|
||||||
|
{
|
||||||
|
switch( which )
|
||||||
|
{
|
||||||
|
case Qt::MinimumSize:
|
||||||
|
return m_minimum;
|
||||||
|
|
||||||
|
case Qt::PreferredSize:
|
||||||
|
return m_preferred;
|
||||||
|
|
||||||
|
case Qt::MaximumSize:
|
||||||
|
return m_maximum;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void QskLayoutHint::setSize( int which, qreal size )
|
||||||
|
{
|
||||||
|
switch (which)
|
||||||
|
{
|
||||||
|
case Qt::MinimumSize:
|
||||||
|
m_minimum = size;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Qt::PreferredSize:
|
||||||
|
m_preferred = size;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Qt::MaximumSize:
|
||||||
|
m_maximum = size;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void QskLayoutHint::intersect( const QskLayoutHint& other )
|
||||||
|
{
|
||||||
|
m_minimum = qMax( m_minimum, other.m_minimum );
|
||||||
|
m_preferred = qMax( m_preferred, other.m_preferred );
|
||||||
|
|
||||||
|
if ( other.m_maximum != QskLayoutConstraint::unlimited )
|
||||||
|
{
|
||||||
|
if ( m_maximum == QskLayoutConstraint::unlimited )
|
||||||
|
m_maximum = other.m_maximum;
|
||||||
|
else
|
||||||
|
m_maximum = qMax( m_maximum, other.m_maximum );
|
||||||
|
}
|
||||||
|
|
||||||
|
normalize();
|
||||||
|
}
|
||||||
|
|
||||||
|
void QskLayoutHint::normalize()
|
||||||
|
{
|
||||||
|
m_minimum = qMax( m_minimum, qreal( 0.0 ) );
|
||||||
|
m_maximum = qMax( m_minimum, m_maximum );
|
||||||
|
m_preferred = qBound( m_minimum, m_preferred, m_maximum );
|
||||||
|
}
|
|
@ -0,0 +1,81 @@
|
||||||
|
#ifndef QSK_LAYOUT_HINT_H
|
||||||
|
#define QSK_LAYOUT_HINT_H
|
||||||
|
|
||||||
|
#include "QskGlobal.h"
|
||||||
|
#include <qglobal.h>
|
||||||
|
|
||||||
|
class QSK_EXPORT QskLayoutHint
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
QskLayoutHint();
|
||||||
|
QskLayoutHint( qreal minimum, qreal preferred, qreal maximum );
|
||||||
|
|
||||||
|
void intersect( const QskLayoutHint& );
|
||||||
|
void normalize();
|
||||||
|
|
||||||
|
qreal size( int which ) const;
|
||||||
|
void setSize( int which, qreal size );
|
||||||
|
|
||||||
|
bool operator==( const QskLayoutHint& ) const;
|
||||||
|
bool operator!=( const QskLayoutHint& ) const;
|
||||||
|
|
||||||
|
void setMinimum( qreal value );
|
||||||
|
qreal minimum() const;
|
||||||
|
|
||||||
|
void setPreferred( qreal value );
|
||||||
|
qreal preferred() const;
|
||||||
|
|
||||||
|
void setMaximum( qreal value );
|
||||||
|
qreal maximum() const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
qreal m_minimum;
|
||||||
|
qreal m_preferred;
|
||||||
|
qreal m_maximum;
|
||||||
|
};
|
||||||
|
|
||||||
|
inline qreal QskLayoutHint::minimum() const
|
||||||
|
{
|
||||||
|
return m_minimum;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void QskLayoutHint::setMinimum( qreal value )
|
||||||
|
{
|
||||||
|
m_minimum = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline qreal QskLayoutHint::preferred() const
|
||||||
|
{
|
||||||
|
return m_preferred;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void QskLayoutHint::setPreferred( qreal value )
|
||||||
|
{
|
||||||
|
m_preferred = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline qreal QskLayoutHint::maximum() const
|
||||||
|
{
|
||||||
|
return m_maximum;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void QskLayoutHint::setMaximum( qreal value )
|
||||||
|
{
|
||||||
|
m_maximum = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline bool QskLayoutHint::operator==( const QskLayoutHint& other ) const
|
||||||
|
{
|
||||||
|
return ( m_preferred == other.m_preferred )
|
||||||
|
&& ( m_minimum == other.m_minimum )
|
||||||
|
&& ( m_maximum == other.m_maximum );
|
||||||
|
}
|
||||||
|
|
||||||
|
inline bool QskLayoutHint::operator!=( const QskLayoutHint& other ) const
|
||||||
|
{
|
||||||
|
return !( *this == other );
|
||||||
|
}
|
||||||
|
|
||||||
|
Q_DECLARE_TYPEINFO( QskLayoutHint, Q_MOVABLE_TYPE );
|
||||||
|
|
||||||
|
#endif
|
|
@ -237,6 +237,7 @@ HEADERS += \
|
||||||
layouts/QskLayoutEngine.h \
|
layouts/QskLayoutEngine.h \
|
||||||
layouts/QskLayoutBox.h \
|
layouts/QskLayoutBox.h \
|
||||||
layouts/QskLayoutConstraint.h \
|
layouts/QskLayoutConstraint.h \
|
||||||
|
layouts/QskLayoutHint.h \
|
||||||
layouts/QskLayoutItem.h \
|
layouts/QskLayoutItem.h \
|
||||||
layouts/QskLinearBox.h \
|
layouts/QskLinearBox.h \
|
||||||
layouts/QskStackBoxAnimator.h \
|
layouts/QskStackBoxAnimator.h \
|
||||||
|
@ -247,6 +248,7 @@ SOURCES += \
|
||||||
layouts/QskIndexedLayoutBox.cpp \
|
layouts/QskIndexedLayoutBox.cpp \
|
||||||
layouts/QskLayoutBox.cpp \
|
layouts/QskLayoutBox.cpp \
|
||||||
layouts/QskLayoutConstraint.cpp \
|
layouts/QskLayoutConstraint.cpp \
|
||||||
|
layouts/QskLayoutHint.cpp \
|
||||||
layouts/QskLayoutEngine.cpp \
|
layouts/QskLayoutEngine.cpp \
|
||||||
layouts/QskLayoutItem.cpp \
|
layouts/QskLayoutItem.cpp \
|
||||||
layouts/QskLinearBox.cpp \
|
layouts/QskLinearBox.cpp \
|
||||||
|
|
Loading…
Reference in New Issue