]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/propgrid/propgriddefs.h
Add more echo trace statements to runtests.bat script.
[wxWidgets.git] / include / wx / propgrid / propgriddefs.h
index 8ed9e32b5e15bc9da0d3fe1aa9cb83fe13becdd9..f462f29e155836c2f721877f21ac56731777157f 100644 (file)
@@ -6,18 +6,21 @@
 // Created:     2008-08-31
 // RCS-ID:      $Id$
 // Copyright:   (c) Jaakko Salli
 // Created:     2008-08-31
 // RCS-ID:      $Id$
 // Copyright:   (c) Jaakko Salli
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_PROPGRID_PROPGRIDDEFS_H_
 #define _WX_PROPGRID_PROPGRIDDEFS_H_
 
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_PROPGRID_PROPGRIDDEFS_H_
 #define _WX_PROPGRID_PROPGRIDDEFS_H_
 
+#include "wx/defs.h"
+
 #if wxUSE_PROPGRID
 
 #include "wx/dynarray.h"
 #include "wx/vector.h"
 #include "wx/hashmap.h"
 #include "wx/variant.h"
 #if wxUSE_PROPGRID
 
 #include "wx/dynarray.h"
 #include "wx/vector.h"
 #include "wx/hashmap.h"
 #include "wx/variant.h"
+#include "wx/any.h"
 #include "wx/longlong.h"
 #include "wx/clntdata.h"
 
 #include "wx/longlong.h"
 #include "wx/clntdata.h"
 
@@ -40,9 +43,6 @@
     // 1 if wxRendererNative should be employed
     #define wxPG_USE_RENDERER_NATIVE    0
 
     // 1 if wxRendererNative should be employed
     #define wxPG_USE_RENDERER_NATIVE    0
 
-    // 1 to use double-buffer that guarantees flicker-free painting
-    #define wxPG_DOUBLE_BUFFER          1
-
     // Enable tooltips
     #define wxPG_SUPPORT_TOOLTIPS       1
 
     // Enable tooltips
     #define wxPG_SUPPORT_TOOLTIPS       1
 
     // 1 if splitter drag detect margin and control cannot overlap
     #define wxPG_NO_CHILD_EVT_MOTION    0
 
     // 1 if splitter drag detect margin and control cannot overlap
     #define wxPG_NO_CHILD_EVT_MOTION    0
 
-    // If 1, then setting empty tooltip actually hides it
-    #define wxPG_ALLOW_EMPTY_TOOLTIPS   1
-
     #define wxPG_NAT_BUTTON_BORDER_ANY          1
     #define wxPG_NAT_BUTTON_BORDER_X            1
     #define wxPG_NAT_BUTTON_BORDER_Y            1
 
     #define wxPG_NAT_BUTTON_BORDER_ANY          1
     #define wxPG_NAT_BUTTON_BORDER_X            1
     #define wxPG_NAT_BUTTON_BORDER_Y            1
 
-    // If 1 then controls are refreshed after selected was drawn.
-    #define wxPG_REFRESH_CONTROLS_AFTER_REPAINT 0
+    // If 1 then controls are refreshed explicitly in a few places
+    #define wxPG_REFRESH_CONTROLS 0
 
 #elif defined(__WXGTK__)
 
 
 #elif defined(__WXGTK__)
 
@@ -79,9 +76,6 @@
     // 1 if wxRendererNative should be employed
     #define wxPG_USE_RENDERER_NATIVE    1
 
     // 1 if wxRendererNative should be employed
     #define wxPG_USE_RENDERER_NATIVE    1
 
-    // 1 to use double-buffer that guarantees flicker-free painting
-    #define wxPG_DOUBLE_BUFFER          1
-
     // Enable tooltips
     #define wxPG_SUPPORT_TOOLTIPS       1
 
     // Enable tooltips
     #define wxPG_SUPPORT_TOOLTIPS       1
 
     // 1 if splitter drag detect margin and control cannot overlap
     #define wxPG_NO_CHILD_EVT_MOTION    1
 
     // 1 if splitter drag detect margin and control cannot overlap
     #define wxPG_NO_CHILD_EVT_MOTION    1
 
-    // If 1, then setting empty tooltip actually hides it
-    #define wxPG_ALLOW_EMPTY_TOOLTIPS   0
-
     #define wxPG_NAT_BUTTON_BORDER_ANY      1
     #define wxPG_NAT_BUTTON_BORDER_X        1
     #define wxPG_NAT_BUTTON_BORDER_Y        1
 
     // If 1 then controls are refreshed after selected was drawn.
     #define wxPG_NAT_BUTTON_BORDER_ANY      1
     #define wxPG_NAT_BUTTON_BORDER_X        1
     #define wxPG_NAT_BUTTON_BORDER_Y        1
 
     // If 1 then controls are refreshed after selected was drawn.
-    #define wxPG_REFRESH_CONTROLS_AFTER_REPAINT 1
+    #define wxPG_REFRESH_CONTROLS 1
 
 #elif defined(__WXMAC__)
 
 
 #elif defined(__WXMAC__)
 
     // 1 if wxRendererNative should be employed
     #define wxPG_USE_RENDERER_NATIVE    1
 
     // 1 if wxRendererNative should be employed
     #define wxPG_USE_RENDERER_NATIVE    1
 
-    // 1 to use double-buffer that guarantees flicker-free painting
-    #define wxPG_DOUBLE_BUFFER          0
-
     // Enable tooltips
     #define wxPG_SUPPORT_TOOLTIPS       1
 
     // Enable tooltips
     #define wxPG_SUPPORT_TOOLTIPS       1
 
     // 1 if splitter drag detect margin and control cannot overlap
     #define wxPG_NO_CHILD_EVT_MOTION    0
 
     // 1 if splitter drag detect margin and control cannot overlap
     #define wxPG_NO_CHILD_EVT_MOTION    0
 
-    // If 1, then setting empty tooltip actually hides it
-    #define wxPG_ALLOW_EMPTY_TOOLTIPS   1
-
     #define wxPG_NAT_BUTTON_BORDER_ANY      0
     #define wxPG_NAT_BUTTON_BORDER_X        0
     #define wxPG_NAT_BUTTON_BORDER_Y        0
 
     // If 1 then controls are refreshed after selected was drawn.
     #define wxPG_NAT_BUTTON_BORDER_ANY      0
     #define wxPG_NAT_BUTTON_BORDER_X        0
     #define wxPG_NAT_BUTTON_BORDER_Y        0
 
     // If 1 then controls are refreshed after selected was drawn.
-    #define wxPG_REFRESH_CONTROLS_AFTER_REPAINT 0
+    #define wxPG_REFRESH_CONTROLS 0
 
 #else // defaults
 
 
 #else // defaults
 
     // 1 if wxRendererNative should be employed
     #define wxPG_USE_RENDERER_NATIVE    0
 
     // 1 if wxRendererNative should be employed
     #define wxPG_USE_RENDERER_NATIVE    0
 
-    // 1 to use double-buffer that guarantees flicker-free painting
-    #define wxPG_DOUBLE_BUFFER          0
-
     // Enable tooltips
     #define wxPG_SUPPORT_TOOLTIPS       0
 
     // Enable tooltips
     #define wxPG_SUPPORT_TOOLTIPS       0
 
     // 1 if splitter drag detect margin and control cannot overlap
     #define wxPG_NO_CHILD_EVT_MOTION    1
 
     // 1 if splitter drag detect margin and control cannot overlap
     #define wxPG_NO_CHILD_EVT_MOTION    1
 
-    // If 1, then setting empty tooltip actually hides it
-    #define wxPG_ALLOW_EMPTY_TOOLTIPS   0
-
     #define wxPG_NAT_BUTTON_BORDER_ANY      0
     #define wxPG_NAT_BUTTON_BORDER_X        0
     #define wxPG_NAT_BUTTON_BORDER_Y        0
 
     // If 1 then controls are refreshed after selected was drawn.
     #define wxPG_NAT_BUTTON_BORDER_ANY      0
     #define wxPG_NAT_BUTTON_BORDER_X        0
     #define wxPG_NAT_BUTTON_BORDER_Y        0
 
     // If 1 then controls are refreshed after selected was drawn.
-    #define wxPG_REFRESH_CONTROLS_AFTER_REPAINT 1
+    #define wxPG_REFRESH_CONTROLS 0
 #endif // platform
 
 
 #endif // platform
 
 
 
 #if defined(__WXWINCE__)
     #define wxPG_SMALL_SCREEN       1
 
 #if defined(__WXWINCE__)
     #define wxPG_SMALL_SCREEN       1
-    #undef wxPG_DOUBLE_BUFFER
-    #define wxPG_DOUBLE_BUFFER      0
 #else
     #define wxPG_SMALL_SCREEN       0
 #endif
 #else
     #define wxPG_SMALL_SCREEN       0
 #endif
@@ -339,6 +316,19 @@ WX_DECLARE_HASH_MAP_WITH_DECL(wxInt32,
                               wxPGHashMapI2I,
                               class WXDLLIMPEXP_PROPGRID);
 
                               wxPGHashMapI2I,
                               class WXDLLIMPEXP_PROPGRID);
 
+// Utility to find if specific item is in a vector. Returns index to
+// the item, or wxNOT_FOUND if not present.
+template<typename CONTAINER, typename T>
+int wxPGFindInVector( CONTAINER vector, const T& item )
+{
+    for ( unsigned int i=0; i<vector.size(); i++ )
+    {
+        if ( vector[i] == item )
+            return (int) i;
+    }
+    return wxNOT_FOUND;
+}
+
 // -----------------------------------------------------------------------
 
 enum wxPG_GETPROPERTYVALUES_FLAGS
 // -----------------------------------------------------------------------
 
 enum wxPG_GETPROPERTYVALUES_FLAGS
@@ -388,7 +378,7 @@ enum wxPG_MISC_ARG_FLAGS
     // Used when dealing with fragments of composite string value
     wxPG_COMPOSITE_FRAGMENT             = 0x00000010,
 
     // Used when dealing with fragments of composite string value
     wxPG_COMPOSITE_FRAGMENT             = 0x00000010,
 
-    // Means property for which final string value is for can not really be
+    // Means property for which final string value is for cannot really be
     // edited.
     wxPG_UNEDITABLE_COMPOSITE_FRAGMENT  = 0x00000020,
 
     // edited.
     wxPG_UNEDITABLE_COMPOSITE_FRAGMENT  = 0x00000020,
 
@@ -545,10 +535,13 @@ public:\
 \
     virtual wxVariantData* Clone() const { return new classname##VariantData(m_value); } \
 \
 \
     virtual wxVariantData* Clone() const { return new classname##VariantData(m_value); } \
 \
+    DECLARE_WXANY_CONVERSION() \
 protected:\
     classname m_value; \
 };\
 \
 protected:\
     classname m_value; \
 };\
 \
+IMPLEMENT_TRIVIAL_WXANY_CONVERSION(classname, classname##VariantData) \
+\
 wxString classname##VariantData::GetType() const\
 {\
     return wxS(#classname);\
 wxString classname##VariantData::GetType() const\
 {\
     return wxS(#classname);\