added wxUINTn_MAX constants; document them together with the existing wxINTn_MIN/MAX ones

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60874 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2009-06-02 13:43:32 +00:00
parent 23790a2a29
commit febd3dcaf8
3 changed files with 37 additions and 11 deletions

View File

@ -916,16 +916,20 @@ typedef wxUint16 wxWord;
/* also define C99-like sized MIN/MAX constants */
#define wxINT8_MIN CHAR_MIN
#define wxINT8_MAX CHAR_MAX
#define wxUINT8_MAX UCHAR_MAX
#define wxINT16_MIN SHRT_MIN
#define wxINT16_MAX SHRT_MAX
#define wxUINT16_MAX USHRT_MAX
#if SIZEOF_INT == 4
#define wxINT32_MIN INT_MIN
#define wxINT32_MAX INT_MAX
#define wxUINT32_MAX UINT_MAX
#elif SIZEOF_LONG == 4
#define wxINT32_MIN LONG_MIN
#define wxINT32_MAX LONG_MAX
#define wxUINT32_MAX ULONG_MAX
#else
#error "Unknown 32 bit type"
#endif
@ -933,11 +937,13 @@ typedef wxUint16 wxWord;
typedef wxUint32 wxDword;
#ifdef LLONG_MAX
#define wxINT64_MAX LLONG_MAX
#define wxINT64_MIN LLONG_MIN
#define wxINT64_MAX LLONG_MAX
#define wxUINT64_MAX ULLONG_MAX
#else
#define wxINT64_MAX wxLL(9223372036854775807)
#define wxINT64_MIN (wxLL(-9223372036854775807)-1)
#define wxINT64_MAX wxLL(9223372036854775807)
#define wxUINT64_MAX wxULL(0xFFFFFFFFFFFFFFFF)
#endif
/* 64 bit */

View File

@ -776,6 +776,34 @@ enum wxUpdateUI
};
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
/**
C99-like sized MIN/MAX constants for all integer types.
For each @c n in the set 8, 16, 32, 64 we define @c wxINTn_MIN, @c
wxINTn_MAX and @c wxUINTc_MAX (@c wxUINTc_MIN is always 0 and so is not
defined).
*/
//@{
#define wxINT8_MIN CHAR_MIN
#define wxINT8_MAX CHAR_MAX
#define wxUINT8_MAX UCHAR_MAX
#define wxINT16_MIN SHRT_MIN
#define wxINT16_MAX SHRT_MAX
#define wxUINT16_MAX USHRT_MAX
#define wxINT32_MIN INT_MIN-or-LONG_MIN
#define wxINT32_MAX INT_MAX-or-LONG_MAX
#define wxUINT32_MAX UINT_MAX-or-LONG_MAX
#define wxINT64_MIN LLONG_MIN
#define wxINT64_MAX LLONG_MAX
#define wxUINT64_MAX ULLONG_MAX
//@}
// ----------------------------------------------------------------------------
// types

View File

@ -478,21 +478,13 @@ bool wxUIntProperty::IntToValue( wxVariant& variant, int number, int WXUNUSED(ar
return false;
}
#ifdef ULLONG_MAX
#define wxUINT64_MAX ULLONG_MAX
#define wxUINT64_MIN wxULL(0)
#else
#define wxUINT64_MAX wxULL(0xFFFFFFFFFFFFFFFF)
#define wxUINT64_MIN wxULL(0)
#endif
bool wxUIntProperty::ValidateValue( wxVariant& value, wxPGValidationInfo& validationInfo ) const
{
// Check for min/max
wxULongLong_t ll;
if ( wxPGVariantToULongLong(value, &ll) )
{
wxULongLong_t min = wxUINT64_MIN;
wxULongLong_t min = 0;
wxULongLong_t max = wxUINT64_MAX;
wxVariant variant;