X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1621f192d95b44c5909a788b8f1fe9e9c381df72..86ac84b8ce086e6bbda58f422d41f84268606e35:/include/wx/propgrid/propgriddefs.h?ds=sidebyside diff --git a/include/wx/propgrid/propgriddefs.h b/include/wx/propgrid/propgriddefs.h index d72a787095..f2c3aab963 100644 --- a/include/wx/propgrid/propgriddefs.h +++ b/include/wx/propgrid/propgriddefs.h @@ -201,6 +201,9 @@ #define wxCC_CUSTOM_IMAGE_MARGIN1 4 // before image #define wxCC_CUSTOM_IMAGE_MARGIN2 5 // after image +#define DEFAULT_IMAGE_OFFSET_INCREMENT \ + (wxCC_CUSTOM_IMAGE_MARGIN1 + wxCC_CUSTOM_IMAGE_MARGIN2) + #define wxPG_DRAG_MARGIN 30 #if wxPG_NO_CHILD_EVT_MOTION @@ -266,7 +269,6 @@ class wxPropertyGrid; class wxPropertyGridEvent; class wxPropertyGridManager; class wxPGOwnerDrawnComboBox; -class wxPGCustomComboControl; class wxPGEditorDialogAdapter; class wxPGValidationInfo; @@ -302,6 +304,29 @@ class wxPGValidationInfo; #define wxPG_DEFAULT_IMAGE_SIZE wxSize(-1, -1) +/** This callback function is used for sorting properties. + + Call wxPropertyGrid::SetSortFunction() to set it. + + Sort function should return a value greater than 0 if position of p1 is + after p2. So, for instance, when comparing property names, you can use + following implementation: + + @code + int MyPropertySortFunction(wxPropertyGrid* propGrid, + wxPGProperty* p1, + wxPGProperty* p2) + { + return p1->GetBaseName().compare( p2->GetBaseName() ); + } + @endcode +*/ +typedef int (*wxPGSortCallback)(wxPropertyGrid* propGrid, + wxPGProperty* p1, + wxPGProperty* p2); + + + typedef wxString wxPGCachedString; /** @} @@ -365,7 +390,12 @@ wxPG_INC_ATTRIBUTES = 0x00000040, wxPG_RECURSE_STARTS = 0x00000080, /** Force value change. */ -wxPG_FORCE = 0x00000100 +wxPG_FORCE = 0x00000100, + +/** Only sort categories and their immediate children. + Sorting done by wxPG_AUTO_SORT option uses this. +*/ +wxPG_SORT_TOP_LEVEL_ONLY = 0x00000200 }; @@ -487,6 +517,12 @@ template<> inline wxVariant WXVARIANT( const wxArrayString& value ) { return wxVariant(value); } template<> inline wxVariant WXVARIANT( const wxString& value ) { return wxVariant(value); } +#if wxUSE_LONGLONG +template<> inline wxVariant WXVARIANT( const wxLongLong& value ) + { return wxVariant(value); } +template<> inline wxVariant WXVARIANT( const wxULongLong& value ) + { return wxVariant(value); } +#endif #if wxUSE_DATETIME template<> inline wxVariant WXVARIANT( const wxDateTime& value ) { return wxVariant(value); } @@ -559,14 +595,24 @@ expdecl wxVariant& operator << ( wxVariant &variant, const classname &value )\ } \ expdecl classname& classname##RefFromVariant( wxVariant& variant ) \ { \ - wxASSERT( variant.GetType() == #classname );\ - classname##VariantData *data = (classname##VariantData*) variant.GetData();\ + wxASSERT_MSG( variant.GetType() == wxS(#classname), \ + wxString::Format("Variant type should have been '%s'" \ + "instead of '%s'", \ + wxS(#classname), \ + variant.GetType().c_str())); \ + classname##VariantData *data = \ + (classname##VariantData*) variant.GetData(); \ return data->GetValue();\ } \ expdecl const classname& classname##RefFromVariant( const wxVariant& variant ) \ { \ - wxASSERT( variant.GetType() == #classname );\ - classname##VariantData *data = (classname##VariantData*) variant.GetData();\ + wxASSERT_MSG( variant.GetType() == wxS(#classname), \ + wxString::Format("Variant type should have been '%s'" \ + "instead of '%s'", \ + wxS(#classname), \ + variant.GetType().c_str())); \ + classname##VariantData *data = \ + (classname##VariantData*) variant.GetData(); \ return data->GetValue();\ } @@ -616,8 +662,6 @@ WX_PG_IMPLEMENT_VARIANT_DATA_EXPORTED_DUMMY_EQ(classname, wxEMPTY_PARAMETER_VALU WX_PG_DECLARE_VARIANT_DATA_EXPORTED(wxPoint, WXDLLIMPEXP_PROPGRID) WX_PG_DECLARE_VARIANT_DATA_EXPORTED(wxSize, WXDLLIMPEXP_PROPGRID) WX_PG_DECLARE_VARIANT_DATA_EXPORTED(wxArrayInt, WXDLLIMPEXP_PROPGRID) -WX_PG_DECLARE_VARIANT_DATA_EXPORTED(wxLongLong, WXDLLIMPEXP_PROPGRID) -WX_PG_DECLARE_VARIANT_DATA_EXPORTED(wxULongLong, WXDLLIMPEXP_PROPGRID) DECLARE_VARIANT_OBJECT_EXPORTED(wxFont, WXDLLIMPEXP_PROPGRID) template<> inline wxVariant WXVARIANT( const wxFont& value ) { @@ -633,27 +677,6 @@ template<> inline wxVariant WXVARIANT( const wxColour& value ) return variant; } -#if wxUSE_LONGLONG_NATIVE - -template<> inline wxVariant WXVARIANT( const wxLongLong_t& value ) -{ - wxVariant variant; - variant << wxLongLong(value); - return variant; -} - -template<> inline wxVariant WXVARIANT( const wxULongLong_t& value ) -{ - wxVariant variant; - variant << wxULongLong(value); - return variant; -} - -WXDLLIMPEXP_PROPGRID wxLongLong_t& operator << ( wxLongLong_t &value, const wxVariant &variant ); -WXDLLIMPEXP_PROPGRID wxULongLong_t& operator << ( wxULongLong_t &value, const wxVariant &variant ); - -#endif // wxUSE_LONGLONG_NATIVE - // Define constants for common wxVariant type strings #define wxPG_VARIANT_TYPE_STRING wxPGGlobalVars->m_strstring @@ -663,24 +686,8 @@ WXDLLIMPEXP_PROPGRID wxULongLong_t& operator << ( wxULongLong_t &value, const wx #define wxPG_VARIANT_TYPE_DOUBLE wxS("double") #define wxPG_VARIANT_TYPE_ARRSTRING wxS("arrstring") #define wxPG_VARIANT_TYPE_DATETIME wxS("datetime") - -// Safely converts a wxVariant to (long) int. Supports converting from string -// and boolean as well. -WXDLLIMPEXP_PROPGRID -long wxPGVariantToInt( const wxVariant& variant, long defVal = 1 ); - -// Safely converts a wxVariant to wxLongLong_t. Returns true on success. -WXDLLIMPEXP_PROPGRID -bool wxPGVariantToLongLong( const wxVariant& variant, wxLongLong_t* pResult ); - -// Safely converts a wxVariant to wxULongLong_t. Returns true on success. -WXDLLIMPEXP_PROPGRID -bool wxPGVariantToULongLong( const wxVariant& variant, wxULongLong_t* pResult ); - -// Safely converts a wxVariant to double. Supports converting from string and -// wxLongLong as well. -WXDLLIMPEXP_PROPGRID -bool wxPGVariantToDouble( const wxVariant& variant, double* pResult ); +#define wxPG_VARIANT_TYPE_LONGLONG wxS("longlong") +#define wxPG_VARIANT_TYPE_ULONGLONG wxS("ulonglong") #endif // !SWIG