#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
#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;
/** @}
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
};
} \
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();\
}