X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a6162a3eaf655876b1db72228b9788e46fa6b817..99c4be680622f58a48a04dfe0835b59d2c41afea:/include/wx/propgrid/propgriddefs.h diff --git a/include/wx/propgrid/propgriddefs.h b/include/wx/propgrid/propgriddefs.h index 0cafff6934..cff40b5048 100644 --- a/include/wx/propgrid/propgriddefs.h +++ b/include/wx/propgrid/propgriddefs.h @@ -4,7 +4,7 @@ // Author: Jaakko Salli // Modified by: // Created: 2008-08-31 -// RCS-ID: $Id: +// RCS-ID: $Id$ // Copyright: (c) Jaakko Salli // Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// @@ -15,6 +15,7 @@ #if wxUSE_PROPGRID #include "wx/dynarray.h" +#include "wx/vector.h" #include "wx/hashmap.h" #include "wx/variant.h" #include "wx/longlong.h" @@ -83,7 +84,7 @@ // comment to use bitmap buttons #define wxPG_ICON_WIDTH 9 // 1 if wxRendererNative should be employed - #define wxPG_USE_RENDERER_NATIVE 0 + #define wxPG_USE_RENDERER_NATIVE 1 // 1 to use double-buffer that guarantees flicker-free painting #define wxPG_DOUBLE_BUFFER 1 @@ -119,7 +120,7 @@ #define wxPG_XBEFOREWIDGET 1 // x position adjustment for wxTextCtrl (and like) - #define wxPG_TEXTCTRLXADJUST 3 + #define wxPG_TEXTCTRLXADJUST 0 // comment to use bitmap buttons #define wxPG_ICON_WIDTH 11 @@ -228,6 +229,12 @@ // (for tree buttons) //#undef wxPG_ICON_WIDTH +#if WXWIN_COMPATIBILITY_2_6 || WXWIN_COMPATIBILITY_2_8 + #define wxPG_COMPATIBILITY_1_4 1 +#else + #define wxPG_COMPATIBILITY_1_4 0 +#endif + // Need to force disable tooltips? #if !wxUSE_TOOLTIPS #undef wxPG_SUPPORT_TOOLTIPS @@ -245,14 +252,6 @@ // ----------------------------------------------------------------------- -// wxPG_CHECK_FOO_DBG - debug check with message that does not -// interrupt program flow. -#define wxPG_CHECK_RET_DBG(A,B) \ - if ( !(A) ) { wxLogWarning(B); return; } -#define wxPG_CHECK_MSG_DBG(A,B,C) \ - if ( !(A) ) { wxLogWarning(C); return B; } - - class wxPGEditor; class wxPGProperty; class wxPropertyCategory; @@ -267,9 +266,8 @@ class wxPropertyGrid; class wxPropertyGridEvent; class wxPropertyGridManager; class wxPGOwnerDrawnComboBox; -class wxPGCustomComboControl; class wxPGEditorDialogAdapter; -struct wxPGValidationInfo; +class wxPGValidationInfo; // ----------------------------------------------------------------------- @@ -303,6 +301,29 @@ struct 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; /** @} @@ -331,7 +352,10 @@ WX_DECLARE_STRING_HASH_MAP_WITH_DECL(void*, wxPGHashMapS2P, class WXDLLIMPEXP_PROPGRID); - +WX_DECLARE_STRING_HASH_MAP_WITH_DECL(wxString, + wxPGHashMapS2S, + class WXDLLIMPEXP_PROPGRID); + WX_DECLARE_VOIDPTR_HASH_MAP_WITH_DECL(void*, wxPGHashMapP2P, class WXDLLIMPEXP_PROPGRID); @@ -363,7 +387,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 }; @@ -391,7 +420,14 @@ enum wxPG_MISC_ARG_FLAGS // Means property for which final string value is for can not really be // edited. - wxPG_UNEDITABLE_COMPOSITE_FRAGMENT = 0x00000020 + wxPG_UNEDITABLE_COMPOSITE_FRAGMENT = 0x00000020, + + // ValueToString() called from GetValueAsString() + // (guarantees that input wxVariant value is current own value) + wxPG_VALUE_IS_CURRENT = 0x00000040, + + // Value is being set programmatically (ie. not by user) + wxPG_PROGRAMMATIC_VALUE = 0x00000080 }; // ----------------------------------------------------------------------- @@ -426,7 +462,7 @@ enum wxPG_SETVALUE_FLAGS #ifndef SWIG -// Editor accessor. +// Editor accessor (for backwards compatiblity use only). #define wxPG_EDITOR(T) wxPGEditor_##T // Declare editor class, with optional part.