diff --git a/build/cmake/setup.h.in b/build/cmake/setup.h.in index d8dae8ada1..2b5c6a29a1 100644 --- a/build/cmake/setup.h.in +++ b/build/cmake/setup.h.in @@ -411,6 +411,8 @@ #cmakedefine01 wxUSE_TREECTRL #cmakedefine01 wxUSE_TREELISTCTRL +#cmakedefine01 wxUSE_NATIVE_DATAVIEWCTRL + #cmakedefine01 wxUSE_STATUSBAR #cmakedefine01 wxUSE_NATIVE_STATUSBAR diff --git a/configure b/configure index 79dc46e7a7..5ef2fc76ab 100755 --- a/configure +++ b/configure @@ -1249,6 +1249,7 @@ enable_combobox enable_comboctrl enable_commandlinkbutton enable_dataviewctrl +enable_nativedvc enable_datepick enable_detect_sm enable_dirpicker @@ -2203,6 +2204,7 @@ Optional Features: --enable-comboctrl use wxComboCtrl class --enable-commandlinkbutton use wxCommmandLinkButton class --enable-dataviewctrl use wxDataViewCtrl class + --disable-nativedvc disable use of native wxDataViewCtrl even if available --enable-datepick use wxDatePickerCtrl class --enable-detect_sm use code to detect X11 session manager --enable-dirpicker use wxDirPickerCtrl class @@ -9719,6 +9721,35 @@ fi eval "$wx_cv_use_dataviewctrl" + enablestring=disable + defaultval= + if test -z "$defaultval"; then + if test x"$enablestring" = xdisable; then + defaultval=yes + else + defaultval=no + fi + fi + + # Check whether --enable-nativedvc was given. +if test "${enable_nativedvc+set}" = set; then : + enableval=$enable_nativedvc; + if test "$enableval" = yes; then + wx_cv_use_nativedvc='wxUSE_NATIVE_DATAVIEWCTRL=yes' + else + wx_cv_use_nativedvc='wxUSE_NATIVE_DATAVIEWCTRL=no' + fi + +else + + wx_cv_use_nativedvc='wxUSE_NATIVE_DATAVIEWCTRL=${'DEFAULT_wxUSE_NATIVE_DATAVIEWCTRL":-$defaultval}" + +fi + + + eval "$wx_cv_use_nativedvc" + + enablestring= defaultval=$wxUSE_ALL_FEATURES if test -z "$defaultval"; then @@ -35900,6 +35931,11 @@ if test "$wxUSE_DATAVIEWCTRL" = "yes"; then USES_CONTROLS=1 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dataview" + + if test "$wxUSE_NATIVE_DATAVIEWCTRL" = "yes"; then + $as_echo "#define wxUSE_NATIVE_DATAVIEWCTRL 1" >>confdefs.h + + fi fi if test "$wxUSE_IMAGLIST" = "yes"; then diff --git a/configure.in b/configure.in index f0ffb613f5..d9579458db 100644 --- a/configure.in +++ b/configure.in @@ -922,6 +922,7 @@ WX_ARG_FEATURE(combobox, [ --enable-combobox use wxComboBox class], wx WX_ARG_FEATURE(comboctrl, [ --enable-comboctrl use wxComboCtrl class], wxUSE_COMBOCTRL) WX_ARG_FEATURE(commandlinkbutton, [ --enable-commandlinkbutton use wxCommmandLinkButton class], wxUSE_COMMANDLINKBUTTON) WX_ARG_FEATURE(dataviewctrl,[ --enable-dataviewctrl use wxDataViewCtrl class], wxUSE_DATAVIEWCTRL) +WX_ARG_DISABLE(nativedvc, [ --disable-nativedvc disable use of native wxDataViewCtrl even if available], wxUSE_NATIVE_DATAVIEWCTRL) WX_ARG_FEATURE(datepick, [ --enable-datepick use wxDatePickerCtrl class], wxUSE_DATEPICKCTRL) WX_ARG_FEATURE(detect_sm, [ --enable-detect_sm use code to detect X11 session manager], wxUSE_DETECT_SM) WX_ARG_FEATURE(dirpicker, [ --enable-dirpicker use wxDirPickerCtrl class], wxUSE_DIRPICKERCTRL) @@ -6834,6 +6835,10 @@ if test "$wxUSE_DATAVIEWCTRL" = "yes"; then AC_DEFINE(wxUSE_DATAVIEWCTRL) USES_CONTROLS=1 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dataview" + + if test "$wxUSE_NATIVE_DATAVIEWCTRL" = "yes"; then + AC_DEFINE(wxUSE_NATIVE_DATAVIEWCTRL) + fi fi if test "$wxUSE_IMAGLIST" = "yes"; then diff --git a/docs/doxygen/mainpages/const_cpp.h b/docs/doxygen/mainpages/const_cpp.h index 2da7c6989f..ce7a5f1f8e 100644 --- a/docs/doxygen/mainpages/const_cpp.h +++ b/docs/doxygen/mainpages/const_cpp.h @@ -185,6 +185,7 @@ Currently the following symbols exist: decide whether some function should be overloaded for both long and long long types.} @itemdef{wxHAS_MULTIPLE_FILEDLG_FILTERS, Defined if wxFileDialog supports multiple ('|'-separated) filters.} +@itemdef{wxHAS_NATIVE_DATAVIEWCTRL, Defined if native wxDataViewCtrl class is being used (this symbol only exists in wxWidgets 3.1.4 and later).} @itemdef{wxHAS_NATIVE_WINDOW, Defined if wxNativeWindow class is available.} @itemdef{wxHAS_IMAGES_IN_RESOURCES, Defined if Windows resource files or OS/2 resource files are available on the current platform.} diff --git a/docs/doxygen/mainpages/const_wxusedef.h b/docs/doxygen/mainpages/const_wxusedef.h index 6de2a97be9..8124f108c7 100644 --- a/docs/doxygen/mainpages/const_wxusedef.h +++ b/docs/doxygen/mainpages/const_wxusedef.h @@ -175,6 +175,7 @@ library: @itemdef{wxUSE_MINIFRAME, Use wxMiniFrame class.} @itemdef{wxUSE_MOUSEWHEEL, Support mouse wheel events.} @itemdef{wxUSE_MSGDLG, Use wxMessageDialog class and wxMessageBox function.} +@itemdef{wxUSE_NATIVE_DATAVIEWCTRL, Use native wxDataViewCtrl class (this option is new since wxWidgets 3.1.4).} @itemdef{wxUSE_NATIVE_STATUSBAR, Use native wxStatusBar class.} @itemdef{wxUSE_NOTEBOOK, Use wxNotebook and related classes.} @itemdef{wxUSE_NUMBERDLG, Use wxNumberEntryDialog class.} diff --git a/include/wx/android/setup.h b/include/wx/android/setup.h index a1a344adae..f6265dd2ec 100644 --- a/include/wx/android/setup.h +++ b/include/wx/android/setup.h @@ -907,6 +907,14 @@ #define wxUSE_TREECTRL 1 // wxTreeCtrl #define wxUSE_TREELISTCTRL 1 // wxTreeListCtrl +// Use generic version of wxDataViewCtrl even if a native one is available? +// +// Default is 0. +// +// Recommended setting: 0, but can be set to 1 if your program is affected by +// the native control limitations. +#define wxUSE_NATIVE_DATAVIEWCTRL 1 + // Use a status bar class? Depending on the value of wxUSE_NATIVE_STATUSBAR // below either wxStatusBar95 or a generic wxStatusBar will be used. // diff --git a/include/wx/chkconf.h b/include/wx/chkconf.h index f6f71e20ba..47c9f9c489 100644 --- a/include/wx/chkconf.h +++ b/include/wx/chkconf.h @@ -649,6 +649,14 @@ # endif #endif /* !defined(wxUSE_DATAVIEWCTRL) */ +#ifndef wxUSE_NATIVE_DATAVIEWCTRL +# ifdef wxABORT_ON_CONFIG_ERROR +# error "wxUSE_NATIVE_DATAVIEWCTRL must be defined, please read comment near the top of this file." +# else +# define wxUSE_NATIVE_DATAVIEWCTRL 1 +# endif +#endif /* !defined(wxUSE_NATIVE_DATAVIEWCTRL) */ + #ifndef wxUSE_DATEPICKCTRL # ifdef wxABORT_ON_CONFIG_ERROR # error "wxUSE_DATEPICKCTRL must be defined, please read comment near the top of this file." diff --git a/include/wx/dataview.h b/include/wx/dataview.h index f6bc5a4a93..6558cd05c2 100644 --- a/include/wx/dataview.h +++ b/include/wx/dataview.h @@ -33,8 +33,13 @@ class WXDLLIMPEXP_FWD_CORE wxImageList; class wxItemAttr; class WXDLLIMPEXP_FWD_CORE wxHeaderCtrl; -#if !(defined(__WXGTK20__) || defined(__WXOSX__) ) || defined(__WXUNIVERSAL__) -// #if !(defined(__WXOSX__)) || defined(__WXUNIVERSAL__) +#if wxUSE_NATIVE_DATAVIEWCTRL && !defined(__WXUNIVERSAL__) + #if defined(__WXGTK20__) || defined(__WXOSX__) + #define wxHAS_NATIVE_DATAVIEWCTRL + #endif +#endif + +#ifndef wxHAS_NATIVE_DATAVIEWCTRL #define wxHAS_GENERIC_DATAVIEWCTRL #endif diff --git a/include/wx/gtk/setup0.h b/include/wx/gtk/setup0.h index 5045f30ea8..510fe7a81c 100644 --- a/include/wx/gtk/setup0.h +++ b/include/wx/gtk/setup0.h @@ -908,6 +908,14 @@ #define wxUSE_TREECTRL 1 // wxTreeCtrl #define wxUSE_TREELISTCTRL 1 // wxTreeListCtrl +// Use generic version of wxDataViewCtrl even if a native one is available? +// +// Default is 0. +// +// Recommended setting: 0, but can be set to 1 if your program is affected by +// the native control limitations. +#define wxUSE_NATIVE_DATAVIEWCTRL 1 + // Use a status bar class? Depending on the value of wxUSE_NATIVE_STATUSBAR // below either wxStatusBar95 or a generic wxStatusBar will be used. // diff --git a/include/wx/motif/setup0.h b/include/wx/motif/setup0.h index 5644bfd481..6253a84db7 100644 --- a/include/wx/motif/setup0.h +++ b/include/wx/motif/setup0.h @@ -908,6 +908,14 @@ #define wxUSE_TREECTRL 1 // wxTreeCtrl #define wxUSE_TREELISTCTRL 1 // wxTreeListCtrl +// Use generic version of wxDataViewCtrl even if a native one is available? +// +// Default is 0. +// +// Recommended setting: 0, but can be set to 1 if your program is affected by +// the native control limitations. +#define wxUSE_NATIVE_DATAVIEWCTRL 1 + // Use a status bar class? Depending on the value of wxUSE_NATIVE_STATUSBAR // below either wxStatusBar95 or a generic wxStatusBar will be used. // diff --git a/include/wx/msw/setup0.h b/include/wx/msw/setup0.h index 4f03064738..2b8ec97ce6 100644 --- a/include/wx/msw/setup0.h +++ b/include/wx/msw/setup0.h @@ -908,6 +908,14 @@ #define wxUSE_TREECTRL 1 // wxTreeCtrl #define wxUSE_TREELISTCTRL 1 // wxTreeListCtrl +// Use generic version of wxDataViewCtrl even if a native one is available? +// +// Default is 0. +// +// Recommended setting: 0, but can be set to 1 if your program is affected by +// the native control limitations. +#define wxUSE_NATIVE_DATAVIEWCTRL 1 + // Use a status bar class? Depending on the value of wxUSE_NATIVE_STATUSBAR // below either wxStatusBar95 or a generic wxStatusBar will be used. // diff --git a/include/wx/osx/setup0.h b/include/wx/osx/setup0.h index 8daa03e568..f209882d88 100644 --- a/include/wx/osx/setup0.h +++ b/include/wx/osx/setup0.h @@ -914,6 +914,14 @@ #define wxUSE_TREECTRL 1 // wxTreeCtrl #define wxUSE_TREELISTCTRL 1 // wxTreeListCtrl +// Use generic version of wxDataViewCtrl even if a native one is available? +// +// Default is 0. +// +// Recommended setting: 0, but can be set to 1 if your program is affected by +// the native control limitations. +#define wxUSE_NATIVE_DATAVIEWCTRL 1 + // Use a status bar class? Depending on the value of wxUSE_NATIVE_STATUSBAR // below either wxStatusBar95 or a generic wxStatusBar will be used. // diff --git a/include/wx/setup_inc.h b/include/wx/setup_inc.h index 6932a2c0db..964e68fe17 100644 --- a/include/wx/setup_inc.h +++ b/include/wx/setup_inc.h @@ -904,6 +904,14 @@ #define wxUSE_TREECTRL 1 // wxTreeCtrl #define wxUSE_TREELISTCTRL 1 // wxTreeListCtrl +// Use generic version of wxDataViewCtrl even if a native one is available? +// +// Default is 0. +// +// Recommended setting: 0, but can be set to 1 if your program is affected by +// the native control limitations. +#define wxUSE_NATIVE_DATAVIEWCTRL 1 + // Use a status bar class? Depending on the value of wxUSE_NATIVE_STATUSBAR // below either wxStatusBar95 or a generic wxStatusBar will be used. // diff --git a/include/wx/univ/setup0.h b/include/wx/univ/setup0.h index 7e7ff0e8a9..4f8397a674 100644 --- a/include/wx/univ/setup0.h +++ b/include/wx/univ/setup0.h @@ -907,6 +907,14 @@ #define wxUSE_TREECTRL 1 // wxTreeCtrl #define wxUSE_TREELISTCTRL 1 // wxTreeListCtrl +// Use generic version of wxDataViewCtrl even if a native one is available? +// +// Default is 0. +// +// Recommended setting: 0, but can be set to 1 if your program is affected by +// the native control limitations. +#define wxUSE_NATIVE_DATAVIEWCTRL 1 + // Use a status bar class? Depending on the value of wxUSE_NATIVE_STATUSBAR // below either wxStatusBar95 or a generic wxStatusBar will be used. // diff --git a/setup.h.in b/setup.h.in index 62fd583f36..b2491c00df 100644 --- a/setup.h.in +++ b/setup.h.in @@ -411,6 +411,8 @@ #define wxUSE_TREECTRL 0 #define wxUSE_TREELISTCTRL 0 +#define wxUSE_NATIVE_DATAVIEWCTRL 0 + #define wxUSE_STATUSBAR 0 #define wxUSE_NATIVE_STATUSBAR 0