static assertion added

This commit is contained in:
Uwe Rathmann 2019-04-02 17:50:08 +02:00
parent 250cce0d76
commit 9a3b175798
7 changed files with 26 additions and 15 deletions

View File

@ -540,9 +540,17 @@ QSK_EXPORT void qskDebugAspect( QDebug, const QMetaObject*, QskAspect::Aspect );
QskAspect::nextSubcontrol( &type::staticMetaObject, #type "::" #name );
#define QSK_STATE( type, name, value ) \
static_assert( \
( value >= QskAspect::FirstUserState ) && ( value <= QskAspect::LastUserState ), \
"Invalid state" \
); \
const QskAspect::State type::name = \
QskAspect::registerState( &type::staticMetaObject, value, #type "::" #name );
#define QSK_SYSTEM_STATE( type, name, value ) \
const QskAspect::State type::name = \
QskAspect::registerState( &type::staticMetaObject, value, #type "::" #name );
#if !defined( _MSC_VER )
#define QSK_SUBCONTROLS( ... ) static const QskAspect::Subcontrol __VA_ARGS__;

View File

@ -10,10 +10,13 @@
#include <qbasictimer.h>
QSK_STATE( QskAbstractButton, Flat, QskAspect::FirstSystemState << 1 )
QSK_STATE( QskAbstractButton, Checked, QskAspect::LastSystemState >> 4 )
QSK_STATE( QskAbstractButton, Pressed, QskAspect::LastSystemState >> 3 )
QSK_STATE( QskAbstractButton, Checkable, QskAspect::LastSystemState >> 2 )
QSK_SYSTEM_STATE( QskAbstractButton, Flat, QskAspect::FirstSystemState << 1 )
#if 1
// Wrong: we are overlapping with the user states, TODO ...
QSK_SYSTEM_STATE( QskAbstractButton, Checked, QskAspect::LastSystemState >> 4 )
#endif
QSK_SYSTEM_STATE( QskAbstractButton, Pressed, QskAspect::LastSystemState >> 3 )
QSK_SYSTEM_STATE( QskAbstractButton, Checkable, QskAspect::LastSystemState >> 2 )
static QskAbstractButton* qskCheckedSibling( const QskAbstractButton* button )
{

View File

@ -26,9 +26,9 @@ QSK_QT_PRIVATE_END
#include <limits>
#include <unordered_set>
QSK_STATE( QskControl, Disabled, QskAspect::FirstSystemState )
QSK_STATE( QskControl, Hovered, QskAspect::LastSystemState >> 1 )
QSK_STATE( QskControl, Focused, QskAspect::LastSystemState )
QSK_SYSTEM_STATE( QskControl, Disabled, QskAspect::FirstSystemState )
QSK_SYSTEM_STATE( QskControl, Hovered, QskAspect::LastSystemState >> 1 )
QSK_SYSTEM_STATE( QskControl, Focused, QskAspect::LastSystemState )
// QGridLayoutEngine internally uses FLT_MAX
static constexpr qreal qskSizeHintMax = std::numeric_limits< float >::max();

View File

@ -16,7 +16,7 @@ QSK_QT_PRIVATE_BEGIN
QSK_QT_PRIVATE_END
QSK_SUBCONTROL( QskPopup, Overlay )
QSK_STATE( QskPopup, Closed, QskAspect::FirstSystemState << 1 )
QSK_SYSTEM_STATE( QskPopup, Closed, QskAspect::FirstSystemState << 1 )
static void qskSetFocus( QQuickItem* item, bool on )
{

View File

@ -19,8 +19,8 @@ QSK_SUBCONTROL( QskScrollView, HorizontalScrollHandle )
QSK_SUBCONTROL( QskScrollView, VerticalScrollBar )
QSK_SUBCONTROL( QskScrollView, VerticalScrollHandle )
QSK_STATE( QskScrollView, VerticalHandlePressed, QskAspect::FirstSystemState << 1 )
QSK_STATE( QskScrollView, HorizontalHandlePressed, QskAspect::FirstSystemState << 2 )
QSK_SYSTEM_STATE( QskScrollView, VerticalHandlePressed, QskAspect::FirstSystemState << 1 )
QSK_SYSTEM_STATE( QskScrollView, HorizontalHandlePressed, QskAspect::FirstSystemState << 2 )
namespace
{

View File

@ -13,9 +13,9 @@ QSK_SUBCONTROL( QskSlider, Fill )
QSK_SUBCONTROL( QskSlider, Scale )
QSK_SUBCONTROL( QskSlider, Handle )
QSK_STATE( QskSlider, Pressed, QskAspect::FirstSystemState << 1 )
QSK_STATE( QskSlider, Minimum, QskAspect::FirstSystemState << 2 )
QSK_STATE( QskSlider, Maximum, QskAspect::FirstSystemState << 3 )
QSK_SYSTEM_STATE( QskSlider, Pressed, QskAspect::FirstSystemState << 1 )
QSK_SYSTEM_STATE( QskSlider, Minimum, QskAspect::FirstSystemState << 2 )
QSK_SYSTEM_STATE( QskSlider, Maximum, QskAspect::FirstSystemState << 3 )
class QskSlider::PrivateData
{

View File

@ -16,8 +16,8 @@ QSK_SUBCONTROL( QskTextInput, Text )
QSK_SUBCONTROL( QskTextInput, PanelSelected )
QSK_SUBCONTROL( QskTextInput, TextSelected )
QSK_STATE( QskTextInput, ReadOnly, QskAspect::FirstSystemState << 1 )
QSK_STATE( QskTextInput, Editing, QskAspect::FirstSystemState << 2 )
QSK_SYSTEM_STATE( QskTextInput, ReadOnly, QskAspect::FirstSystemState << 1 )
QSK_SYSTEM_STATE( QskTextInput, Editing, QskAspect::FirstSystemState << 2 )
static inline void qskBindSignals(
const QQuickTextInput* wrappedInput, QskTextInput* input )