Merge branch 'master' into webview-chromium
This commit is contained in:
commit
ff59ef301b
342 changed files with 8214 additions and 4407 deletions
6
.github/workflows/ci_msw_cross.yml
vendored
6
.github/workflows/ci_msw_cross.yml
vendored
|
|
@ -68,17 +68,21 @@ jobs:
|
|||
# versions of MinGW and Wine and is simpler to test with locally than the
|
||||
# bespoke container used by GitHub Actions by default.
|
||||
runs-on: ubuntu-latest
|
||||
container: debian:testing-slim
|
||||
container: debian:${{ matrix.debian_release }}-slim
|
||||
name: ${{ matrix.name }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- name: wxMSW 64 bits
|
||||
debian_release: testing
|
||||
configure_flags: --disable-compat32
|
||||
- name: wxMSW 32 bits
|
||||
# Testing doesn't have 32 bit support any more.
|
||||
debian_release: stable
|
||||
triplet: i686-w64-mingw32
|
||||
- name: wxMSW/Univ
|
||||
debian_release: testing
|
||||
configure_flags: --enable-universal --disable-compat32 --disable-debug --disable-optimise
|
||||
minimal: true
|
||||
env:
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ math(EXPR wxSOVERSION_MAJOR "${WX_CURRENT} - ${WX_AGE}")
|
|||
set(wxSOVERSION ${wxSOVERSION_MAJOR}.${WX_AGE}.${WX_REVISION})
|
||||
|
||||
set(wxVERSION ${wxMAJOR_VERSION}.${wxMINOR_VERSION}.${wxRELEASE_NUMBER})
|
||||
set(wxCOPYRIGHT "2002-2023 wxWidgets")
|
||||
set(wxCOPYRIGHT "2002-2024 wxWidgets")
|
||||
|
||||
set(wxLANGUAGES C CXX)
|
||||
if(APPLE AND NOT CMAKE_VERSION VERSION_LESS "3.16")
|
||||
|
|
@ -97,9 +97,6 @@ endif()
|
|||
|
||||
project(wxWidgets VERSION ${wxVERSION} LANGUAGES ${wxLANGUAGES})
|
||||
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
include(build/cmake/main.cmake)
|
||||
|
||||
# Set the default startup project for Visual Studio
|
||||
|
|
|
|||
44
Makefile.in
44
Makefile.in
|
|
@ -604,6 +604,7 @@ ALL_BASE_HEADERS = \
|
|||
wx/lzmastream.h \
|
||||
wx/localedefs.h \
|
||||
wx/uilocale.h \
|
||||
wx/fs_data.h \
|
||||
$(BASE_PLATFORM_HDR) \
|
||||
wx/fs_inet.h \
|
||||
wx/protocol/file.h \
|
||||
|
|
@ -790,6 +791,7 @@ ALL_PORTS_BASE_HEADERS = \
|
|||
wx/lzmastream.h \
|
||||
wx/localedefs.h \
|
||||
wx/uilocale.h \
|
||||
wx/fs_data.h \
|
||||
wx/unix/app.h \
|
||||
wx/unix/apptbase.h \
|
||||
wx/unix/apptrait.h \
|
||||
|
|
@ -926,6 +928,7 @@ ALL_BASE_SOURCES = \
|
|||
src/common/secretstore.cpp \
|
||||
src/common/lzmastream.cpp \
|
||||
src/common/uilocale.cpp \
|
||||
src/common/fs_data.cpp \
|
||||
src/common/fdiodispatcher.cpp \
|
||||
src/common/selectdispatcher.cpp \
|
||||
src/unix/appunix.cpp \
|
||||
|
|
@ -1131,6 +1134,7 @@ MONODLL_OBJECTS = \
|
|||
monodll_common_secretstore.o \
|
||||
monodll_lzmastream.o \
|
||||
monodll_common_uilocale.o \
|
||||
monodll_fs_data.o \
|
||||
$(__BASE_PLATFORM_SRC_OBJECTS) \
|
||||
monodll_event.o \
|
||||
monodll_fs_mem.o \
|
||||
|
|
@ -1290,6 +1294,7 @@ MONOLIB_OBJECTS = \
|
|||
monolib_common_secretstore.o \
|
||||
monolib_lzmastream.o \
|
||||
monolib_common_uilocale.o \
|
||||
monolib_fs_data.o \
|
||||
$(__BASE_PLATFORM_SRC_OBJECTS_1) \
|
||||
monolib_event.o \
|
||||
monolib_fs_mem.o \
|
||||
|
|
@ -1418,6 +1423,7 @@ BASEDLL_OBJECTS = \
|
|||
basedll_common_secretstore.o \
|
||||
basedll_lzmastream.o \
|
||||
basedll_common_uilocale.o \
|
||||
basedll_fs_data.o \
|
||||
$(__BASE_PLATFORM_SRC_OBJECTS_2) \
|
||||
basedll_event.o \
|
||||
basedll_fs_mem.o \
|
||||
|
|
@ -1528,6 +1534,7 @@ BASELIB_OBJECTS = \
|
|||
baselib_common_secretstore.o \
|
||||
baselib_lzmastream.o \
|
||||
baselib_common_uilocale.o \
|
||||
baselib_fs_data.o \
|
||||
$(__BASE_PLATFORM_SRC_OBJECTS_3) \
|
||||
baselib_event.o \
|
||||
baselib_fs_mem.o \
|
||||
|
|
@ -3893,6 +3900,7 @@ COND_USE_GUI_1_ALL_GUI_HEADERS = \
|
|||
wx/bmpbndl.h \
|
||||
wx/filedlgcustomize.h \
|
||||
wx/compositebookctrl.h \
|
||||
wx/persist/combobox.h \
|
||||
$(LOWLEVEL_HDR) \
|
||||
$(GUI_CORE_HEADERS) \
|
||||
wx/mediactrl.h \
|
||||
|
|
@ -5542,7 +5550,8 @@ COND_TOOLKIT_QT___GUI_SRC_OBJECTS = \
|
|||
monodll_qt_treectrl.o \
|
||||
monodll_paletteg.o \
|
||||
monodll_qt_datectrl.o \
|
||||
monodll_qt_timectrl.o
|
||||
monodll_qt_timectrl.o \
|
||||
monodll_qt_overlay.o
|
||||
@COND_TOOLKIT_QT@__GUI_SRC_OBJECTS = $(COND_TOOLKIT_QT___GUI_SRC_OBJECTS)
|
||||
@COND_PLATFORM_UNIX_1@__QT_PLATFORM_SRC_OBJECTS = \
|
||||
@COND_PLATFORM_UNIX_1@ monodll_unix_dialup.o monodll_unix_joystick.o \
|
||||
|
|
@ -7307,7 +7316,8 @@ COND_TOOLKIT_QT___GUI_SRC_OBJECTS_1 = \
|
|||
monolib_qt_treectrl.o \
|
||||
monolib_paletteg.o \
|
||||
monolib_qt_datectrl.o \
|
||||
monolib_qt_timectrl.o
|
||||
monolib_qt_timectrl.o \
|
||||
monolib_qt_overlay.o
|
||||
@COND_TOOLKIT_QT@__GUI_SRC_OBJECTS_1 = $(COND_TOOLKIT_QT___GUI_SRC_OBJECTS_1)
|
||||
@COND_PLATFORM_UNIX_1@__QT_PLATFORM_SRC_OBJECTS_1 = \
|
||||
@COND_PLATFORM_UNIX_1@ monolib_unix_dialup.o monolib_unix_joystick.o \
|
||||
|
|
@ -9223,7 +9233,8 @@ COND_TOOLKIT_QT___GUI_SRC_OBJECTS_2 = \
|
|||
coredll_qt_treectrl.o \
|
||||
coredll_paletteg.o \
|
||||
coredll_qt_datectrl.o \
|
||||
coredll_qt_timectrl.o
|
||||
coredll_qt_timectrl.o \
|
||||
coredll_qt_overlay.o
|
||||
@COND_TOOLKIT_QT@__GUI_SRC_OBJECTS_2 = $(COND_TOOLKIT_QT___GUI_SRC_OBJECTS_2)
|
||||
@COND_PLATFORM_UNIX_1@__QT_PLATFORM_SRC_OBJECTS_2 = \
|
||||
@COND_PLATFORM_UNIX_1@ coredll_unix_dialup.o coredll_unix_joystick.o \
|
||||
|
|
@ -10714,7 +10725,8 @@ COND_TOOLKIT_QT___GUI_SRC_OBJECTS_3 = \
|
|||
corelib_qt_treectrl.o \
|
||||
corelib_paletteg.o \
|
||||
corelib_qt_datectrl.o \
|
||||
corelib_qt_timectrl.o
|
||||
corelib_qt_timectrl.o \
|
||||
corelib_qt_overlay.o
|
||||
@COND_TOOLKIT_QT@__GUI_SRC_OBJECTS_3 = $(COND_TOOLKIT_QT___GUI_SRC_OBJECTS_3)
|
||||
@COND_PLATFORM_UNIX_1@__QT_PLATFORM_SRC_OBJECTS_3 = \
|
||||
@COND_PLATFORM_UNIX_1@ corelib_unix_dialup.o corelib_unix_joystick.o \
|
||||
|
|
@ -14975,6 +14987,9 @@ monodll_lzmastream.o: $(srcdir)/src/common/lzmastream.cpp $(MONODLL_ODEP)
|
|||
monodll_common_uilocale.o: $(srcdir)/src/common/uilocale.cpp $(MONODLL_ODEP)
|
||||
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/uilocale.cpp
|
||||
|
||||
monodll_fs_data.o: $(srcdir)/src/common/fs_data.cpp $(MONODLL_ODEP)
|
||||
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/fs_data.cpp
|
||||
|
||||
monodll_unix_mimetype.o: $(srcdir)/src/unix/mimetype.cpp $(MONODLL_ODEP)
|
||||
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/mimetype.cpp
|
||||
|
||||
|
|
@ -15815,6 +15830,9 @@ monodll_qt_datectrl.o: $(srcdir)/src/qt/datectrl.cpp $(MONODLL_ODEP)
|
|||
monodll_qt_timectrl.o: $(srcdir)/src/qt/timectrl.cpp $(MONODLL_ODEP)
|
||||
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/qt/timectrl.cpp
|
||||
|
||||
monodll_qt_overlay.o: $(srcdir)/src/qt/overlay.cpp $(MONODLL_ODEP)
|
||||
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/qt/overlay.cpp
|
||||
|
||||
monodll_mdig.o: $(srcdir)/src/generic/mdig.cpp $(MONODLL_ODEP)
|
||||
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/mdig.cpp
|
||||
|
||||
|
|
@ -19724,6 +19742,9 @@ monolib_lzmastream.o: $(srcdir)/src/common/lzmastream.cpp $(MONOLIB_ODEP)
|
|||
monolib_common_uilocale.o: $(srcdir)/src/common/uilocale.cpp $(MONOLIB_ODEP)
|
||||
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/uilocale.cpp
|
||||
|
||||
monolib_fs_data.o: $(srcdir)/src/common/fs_data.cpp $(MONOLIB_ODEP)
|
||||
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/fs_data.cpp
|
||||
|
||||
monolib_unix_mimetype.o: $(srcdir)/src/unix/mimetype.cpp $(MONOLIB_ODEP)
|
||||
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/mimetype.cpp
|
||||
|
||||
|
|
@ -20564,6 +20585,9 @@ monolib_qt_datectrl.o: $(srcdir)/src/qt/datectrl.cpp $(MONOLIB_ODEP)
|
|||
monolib_qt_timectrl.o: $(srcdir)/src/qt/timectrl.cpp $(MONOLIB_ODEP)
|
||||
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/qt/timectrl.cpp
|
||||
|
||||
monolib_qt_overlay.o: $(srcdir)/src/qt/overlay.cpp $(MONOLIB_ODEP)
|
||||
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/qt/overlay.cpp
|
||||
|
||||
monolib_mdig.o: $(srcdir)/src/generic/mdig.cpp $(MONOLIB_ODEP)
|
||||
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/mdig.cpp
|
||||
|
||||
|
|
@ -24473,6 +24497,9 @@ basedll_lzmastream.o: $(srcdir)/src/common/lzmastream.cpp $(BASEDLL_ODEP)
|
|||
basedll_common_uilocale.o: $(srcdir)/src/common/uilocale.cpp $(BASEDLL_ODEP)
|
||||
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/common/uilocale.cpp
|
||||
|
||||
basedll_fs_data.o: $(srcdir)/src/common/fs_data.cpp $(BASEDLL_ODEP)
|
||||
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/common/fs_data.cpp
|
||||
|
||||
basedll_unix_mimetype.o: $(srcdir)/src/unix/mimetype.cpp $(BASEDLL_ODEP)
|
||||
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/mimetype.cpp
|
||||
|
||||
|
|
@ -24953,6 +24980,9 @@ baselib_lzmastream.o: $(srcdir)/src/common/lzmastream.cpp $(BASELIB_ODEP)
|
|||
baselib_common_uilocale.o: $(srcdir)/src/common/uilocale.cpp $(BASELIB_ODEP)
|
||||
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/common/uilocale.cpp
|
||||
|
||||
baselib_fs_data.o: $(srcdir)/src/common/fs_data.cpp $(BASELIB_ODEP)
|
||||
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/common/fs_data.cpp
|
||||
|
||||
baselib_unix_mimetype.o: $(srcdir)/src/unix/mimetype.cpp $(BASELIB_ODEP)
|
||||
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/mimetype.cpp
|
||||
|
||||
|
|
@ -25991,6 +26021,9 @@ coredll_qt_datectrl.o: $(srcdir)/src/qt/datectrl.cpp $(COREDLL_ODEP)
|
|||
coredll_qt_timectrl.o: $(srcdir)/src/qt/timectrl.cpp $(COREDLL_ODEP)
|
||||
$(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/qt/timectrl.cpp
|
||||
|
||||
coredll_qt_overlay.o: $(srcdir)/src/qt/overlay.cpp $(COREDLL_ODEP)
|
||||
$(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/qt/overlay.cpp
|
||||
|
||||
coredll_mdig.o: $(srcdir)/src/generic/mdig.cpp $(COREDLL_ODEP)
|
||||
$(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/mdig.cpp
|
||||
|
||||
|
|
@ -29708,6 +29741,9 @@ corelib_qt_datectrl.o: $(srcdir)/src/qt/datectrl.cpp $(CORELIB_ODEP)
|
|||
corelib_qt_timectrl.o: $(srcdir)/src/qt/timectrl.cpp $(CORELIB_ODEP)
|
||||
$(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/qt/timectrl.cpp
|
||||
|
||||
corelib_qt_overlay.o: $(srcdir)/src/qt/overlay.cpp $(CORELIB_ODEP)
|
||||
$(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/qt/overlay.cpp
|
||||
|
||||
corelib_mdig.o: $(srcdir)/src/generic/mdig.cpp $(CORELIB_ODEP)
|
||||
$(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/mdig.cpp
|
||||
|
||||
|
|
|
|||
|
|
@ -485,9 +485,9 @@ it if SHARED=1 unless you know what you are doing.
|
|||
<set var="EXTRALIBS_MEDIA"/>
|
||||
<set var="EXTRALIBS_GUI"/>
|
||||
<set var="EXTRALIBS_OPENGL">
|
||||
<if cond="COMPILER=='wat' and TOOLKIT=='MSW'">opengl32.lib glu32.lib</if>
|
||||
<if cond="COMPILER=='vc'">opengl32.lib glu32.lib</if>
|
||||
<if cond="COMPILER=='gcc'">-lopengl32 -lglu32</if>
|
||||
<if cond="COMPILER=='wat' and TOOLKIT=='MSW'">opengl32.lib</if>
|
||||
<if cond="COMPILER=='vc'">opengl32.lib</if>
|
||||
<if cond="COMPILER=='gcc'">-lopengl32</if>
|
||||
</set>
|
||||
<set var="EXTRALIBS_SDL"/>
|
||||
<set var="EXTRALIBS_STC">
|
||||
|
|
|
|||
|
|
@ -477,6 +477,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
|
|||
src/generic/paletteg.cpp
|
||||
src/qt/datectrl.cpp
|
||||
src/qt/timectrl.cpp
|
||||
src/qt/overlay.cpp
|
||||
</set>
|
||||
|
||||
<set var="MEDIA_QT_SRC" hints="files">
|
||||
|
|
@ -579,6 +580,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
|
|||
src/common/secretstore.cpp
|
||||
src/common/lzmastream.cpp
|
||||
src/common/uilocale.cpp
|
||||
src/common/fs_data.cpp
|
||||
</set>
|
||||
<set var="BASE_AND_GUI_CMN_SRC" hints="files">
|
||||
src/common/event.cpp
|
||||
|
|
@ -754,6 +756,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
|
|||
wx/lzmastream.h
|
||||
wx/localedefs.h
|
||||
wx/uilocale.h
|
||||
wx/fs_data.h
|
||||
</set>
|
||||
|
||||
|
||||
|
|
@ -1321,6 +1324,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
|
|||
wx/bmpbndl.h
|
||||
wx/filedlgcustomize.h
|
||||
wx/compositebookctrl.h
|
||||
wx/persist/combobox.h
|
||||
</set>
|
||||
|
||||
<!-- ====================================================================== -->
|
||||
|
|
|
|||
|
|
@ -49,10 +49,10 @@
|
|||
sed -e "s/\$(DOLLAR)$(DOLLAR){MACOSX_BUNDLE_GUI_IDENTIFIER}/org.wxwidgets.$(id)/" \
|
||||
-e "s/\$(DOLLAR)$(DOLLAR){MACOSX_BUNDLE_EXECUTABLE_NAME}/$(id)/" \
|
||||
-e "s/\$(DOLLAR)$(DOLLAR){MACOSX_BUNDLE_BUNDLE_NAME}/$(id)/" \
|
||||
-e "s/\$(DOLLAR)$(DOLLAR){MACOSX_BUNDLE_COPYRIGHT}/Copyright 2002-2023 wxWidgets/" \
|
||||
-e "s/\$(DOLLAR)$(DOLLAR){MACOSX_BUNDLE_COPYRIGHT}/Copyright 2002-2024 wxWidgets/" \
|
||||
-e "s/\$(DOLLAR)$(DOLLAR){MACOSX_BUNDLE_BUNDLE_VERSION}/$(WX_VERSION)/" \
|
||||
-e "s/\$(DOLLAR)$(DOLLAR){MACOSX_BUNDLE_INFO_STRING}/$(id) version $(WX_VERSION), (c) 2002-2023 wxWidgets/" \
|
||||
-e "s/\$(DOLLAR)$(DOLLAR){MACOSX_BUNDLE_LONG_VERSION_STRING}/$(WX_VERSION), (c) 2002-2023 wxWidgets/" \
|
||||
-e "s/\$(DOLLAR)$(DOLLAR){MACOSX_BUNDLE_INFO_STRING}/$(id) version $(WX_VERSION), (c) 2002-2024 wxWidgets/" \
|
||||
-e "s/\$(DOLLAR)$(DOLLAR){MACOSX_BUNDLE_LONG_VERSION_STRING}/$(WX_VERSION), (c) 2002-2024 wxWidgets/" \
|
||||
-e "s/\$(DOLLAR)$(DOLLAR){MACOSX_BUNDLE_SHORT_VERSION_STRING}/$(WX_RELEASE)/" \
|
||||
$(BUNDLE_PLIST) >$(BUNDLE)/Info.plist
|
||||
|
||||
|
|
|
|||
|
|
@ -390,6 +390,7 @@ set(QT_SRC
|
|||
src/generic/paletteg.cpp
|
||||
src/qt/datectrl.cpp
|
||||
src/qt/timectrl.cpp
|
||||
src/qt/overlay.cpp
|
||||
)
|
||||
|
||||
set(MEDIA_QT_SRC
|
||||
|
|
@ -491,6 +492,7 @@ set(BASE_CMN_SRC
|
|||
src/generic/fswatcherg.cpp
|
||||
src/common/lzmastream.cpp
|
||||
src/common/uilocale.cpp
|
||||
src/common/fs_data.cpp
|
||||
)
|
||||
|
||||
set(BASE_AND_GUI_CMN_SRC
|
||||
|
|
@ -668,6 +670,7 @@ set(BASE_CMN_HDR
|
|||
wx/lzmastream.h
|
||||
wx/localedefs.h
|
||||
wx/uilocale.h
|
||||
wx/fs_data.h
|
||||
)
|
||||
|
||||
set(NET_UNIX_SRC
|
||||
|
|
@ -1222,6 +1225,7 @@ set(GUI_CMN_HDR
|
|||
wx/bmpbndl.h
|
||||
wx/filedlgcustomize.h
|
||||
wx/compositebookctrl.h
|
||||
wx/persist/combobox.h
|
||||
)
|
||||
|
||||
set(UNIX_SRC
|
||||
|
|
|
|||
|
|
@ -10,6 +10,25 @@
|
|||
|
||||
if(DEFINED wxBUILD_CXX_STANDARD AND NOT wxBUILD_CXX_STANDARD STREQUAL COMPILER_DEFAULT)
|
||||
set(CMAKE_CXX_STANDARD ${wxBUILD_CXX_STANDARD})
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
else()
|
||||
# If the standard is not set explicitly, check whether we can use C++11
|
||||
# without any special options.
|
||||
include(CheckCXXSourceCompiles)
|
||||
check_cxx_source_compiles("
|
||||
#include <vector>
|
||||
int main() {
|
||||
std::vector<int> v{1,2,3};
|
||||
for (auto& n : v)
|
||||
--n;
|
||||
return v[0];
|
||||
}"
|
||||
wxHAVE_CXX11)
|
||||
if(NOT wxHAVE_CXX11)
|
||||
# If not, request it explicitly and let CMake check if it's supported.
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
|
|
@ -411,7 +430,7 @@ if(wxUSE_GUI)
|
|||
else()
|
||||
find_package(OpenGL)
|
||||
if(OPENGL_FOUND)
|
||||
foreach(gltarget OpenGL::GL OpenGL::GLU OpenGL::OpenGL)
|
||||
foreach(gltarget OpenGL::GL OpenGL::OpenGL)
|
||||
if(TARGET ${gltarget})
|
||||
set(OPENGL_LIBRARIES ${gltarget} ${OPENGL_LIBRARIES})
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -46,8 +46,6 @@ endif()
|
|||
# support setting the C++ standard, present it an option to the user
|
||||
if(DEFINED CMAKE_CXX_STANDARD)
|
||||
set(wxCXX_STANDARD_DEFAULT ${CMAKE_CXX_STANDARD})
|
||||
elseif(APPLE)
|
||||
set(wxCXX_STANDARD_DEFAULT 11)
|
||||
else()
|
||||
set(wxCXX_STANDARD_DEFAULT COMPILER_DEFAULT)
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ function(wx_check_cxx_source_compiles code res_var)
|
|||
cmake_pop_check_state()
|
||||
endfunction()
|
||||
|
||||
# wx_check_cxx_source_compiles(<code> <var> [headers...])
|
||||
# wx_check_c_source_compiles(<code> <var> [headers...])
|
||||
function(wx_check_c_source_compiles code res_var)
|
||||
set(src)
|
||||
foreach(header ${ARGN})
|
||||
|
|
|
|||
|
|
@ -379,6 +379,7 @@ QT_SRC=
|
|||
src/qt/msgdlg.cpp
|
||||
src/qt/nonownedwnd.cpp
|
||||
src/qt/notebook.cpp
|
||||
src/qt/overlay.cpp
|
||||
src/qt/pen.cpp
|
||||
src/qt/popupwin.cpp
|
||||
src/qt/printdlg.cpp
|
||||
|
|
@ -454,6 +455,7 @@ BASE_CMN_SRC =
|
|||
src/common/filtfind.cpp
|
||||
src/common/fmapbase.cpp
|
||||
src/common/fs_arc.cpp
|
||||
src/common/fs_data.cpp
|
||||
src/common/fs_filter.cpp
|
||||
src/common/hash.cpp
|
||||
src/common/hashmap.cpp
|
||||
|
|
@ -570,6 +572,7 @@ BASE_CMN_HDR =
|
|||
wx/fontenc.h
|
||||
wx/fontmap.h
|
||||
wx/fs_arc.h
|
||||
wx/fs_data.h
|
||||
wx/fs_filter.h
|
||||
wx/fs_mem.h
|
||||
wx/fs_zip.h
|
||||
|
|
@ -1149,6 +1152,7 @@ GUI_CMN_HDR =
|
|||
wx/peninfobase.h
|
||||
wx/persist.h
|
||||
wx/persist/bookctrl.h
|
||||
wx/persist/combobox.h
|
||||
wx/persist/dataview.h
|
||||
wx/persist/splitter.h
|
||||
wx/persist/toplevel.h
|
||||
|
|
|
|||
|
|
@ -500,6 +500,7 @@ MONODLL_OBJECTS = \
|
|||
$(OBJS)\monodll_common_secretstore.o \
|
||||
$(OBJS)\monodll_lzmastream.o \
|
||||
$(OBJS)\monodll_common_uilocale.o \
|
||||
$(OBJS)\monodll_fs_data.o \
|
||||
$(OBJS)\monodll_basemsw.o \
|
||||
$(OBJS)\monodll_crashrpt.o \
|
||||
$(OBJS)\monodll_debughlp.o \
|
||||
|
|
@ -661,6 +662,7 @@ MONOLIB_OBJECTS = \
|
|||
$(OBJS)\monolib_common_secretstore.o \
|
||||
$(OBJS)\monolib_lzmastream.o \
|
||||
$(OBJS)\monolib_common_uilocale.o \
|
||||
$(OBJS)\monolib_fs_data.o \
|
||||
$(OBJS)\monolib_basemsw.o \
|
||||
$(OBJS)\monolib_crashrpt.o \
|
||||
$(OBJS)\monolib_debughlp.o \
|
||||
|
|
@ -810,6 +812,7 @@ BASEDLL_OBJECTS = \
|
|||
$(OBJS)\basedll_common_secretstore.o \
|
||||
$(OBJS)\basedll_lzmastream.o \
|
||||
$(OBJS)\basedll_common_uilocale.o \
|
||||
$(OBJS)\basedll_fs_data.o \
|
||||
$(OBJS)\basedll_basemsw.o \
|
||||
$(OBJS)\basedll_crashrpt.o \
|
||||
$(OBJS)\basedll_debughlp.o \
|
||||
|
|
@ -940,6 +943,7 @@ BASELIB_OBJECTS = \
|
|||
$(OBJS)\baselib_common_secretstore.o \
|
||||
$(OBJS)\baselib_lzmastream.o \
|
||||
$(OBJS)\baselib_common_uilocale.o \
|
||||
$(OBJS)\baselib_fs_data.o \
|
||||
$(OBJS)\baselib_basemsw.o \
|
||||
$(OBJS)\baselib_crashrpt.o \
|
||||
$(OBJS)\baselib_debughlp.o \
|
||||
|
|
@ -5959,7 +5963,7 @@ ifeq ($(USE_OPENGL),1)
|
|||
$(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)u$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_gl$(WXCOMPILER)$(VENDORTAG).dll: $(GLDLL_OBJECTS) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregexu$(WXDEBUGFLAG).a $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(__wxlexilla) $(OBJS)\gldll_version_rc.o $(__basedll___depname) $(__coredll___depname) $(__monodll___depname)
|
||||
$(foreach f,$(subst \,/,$(GLDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp))
|
||||
@move /y $@.rsp.tmp $@.rsp >nul
|
||||
$(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)u$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_gl.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregexu$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lws2_32 -lwininet -loleacc -luxtheme $(__WXLIBGLDEP_CORE_p) $(__WXLIBGLDEP_BASE_p) $(__WXLIB_MONO_p) -lopengl32 -lglu32
|
||||
$(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)u$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_gl.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregexu$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lws2_32 -lwininet -loleacc -luxtheme $(__WXLIBGLDEP_CORE_p) $(__WXLIBGLDEP_BASE_p) $(__WXLIB_MONO_p) -lopengl32
|
||||
@-del $@.rsp
|
||||
endif
|
||||
endif
|
||||
|
|
@ -7243,6 +7247,9 @@ $(OBJS)\monodll_lzmastream.o: ../../src/common/lzmastream.cpp
|
|||
$(OBJS)\monodll_common_uilocale.o: ../../src/common/uilocale.cpp
|
||||
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
$(OBJS)\monodll_fs_data.o: ../../src/common/fs_data.cpp
|
||||
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
$(OBJS)\monodll_basemsw.o: ../../src/msw/basemsw.cpp
|
||||
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
|
|
@ -9837,6 +9844,9 @@ $(OBJS)\monolib_lzmastream.o: ../../src/common/lzmastream.cpp
|
|||
$(OBJS)\monolib_common_uilocale.o: ../../src/common/uilocale.cpp
|
||||
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
$(OBJS)\monolib_fs_data.o: ../../src/common/fs_data.cpp
|
||||
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
$(OBJS)\monolib_basemsw.o: ../../src/msw/basemsw.cpp
|
||||
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
|
|
@ -12431,6 +12441,9 @@ $(OBJS)\basedll_lzmastream.o: ../../src/common/lzmastream.cpp
|
|||
$(OBJS)\basedll_common_uilocale.o: ../../src/common/uilocale.cpp
|
||||
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
$(OBJS)\basedll_fs_data.o: ../../src/common/fs_data.cpp
|
||||
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
$(OBJS)\basedll_basemsw.o: ../../src/msw/basemsw.cpp
|
||||
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
|
|
@ -12773,6 +12786,9 @@ $(OBJS)\baselib_lzmastream.o: ../../src/common/lzmastream.cpp
|
|||
$(OBJS)\baselib_common_uilocale.o: ../../src/common/uilocale.cpp
|
||||
$(CXX) -c -o $@ $(BASELIB_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
$(OBJS)\baselib_fs_data.o: ../../src/common/fs_data.cpp
|
||||
$(CXX) -c -o $@ $(BASELIB_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
$(OBJS)\baselib_basemsw.o: ../../src/msw/basemsw.cpp
|
||||
$(CXX) -c -o $@ $(BASELIB_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
|
|
|
|||
|
|
@ -536,6 +536,7 @@ MONODLL_OBJECTS = \
|
|||
$(OBJS)\monodll_common_secretstore.obj \
|
||||
$(OBJS)\monodll_lzmastream.obj \
|
||||
$(OBJS)\monodll_common_uilocale.obj \
|
||||
$(OBJS)\monodll_fs_data.obj \
|
||||
$(OBJS)\monodll_basemsw.obj \
|
||||
$(OBJS)\monodll_crashrpt.obj \
|
||||
$(OBJS)\monodll_debughlp.obj \
|
||||
|
|
@ -706,6 +707,7 @@ MONOLIB_OBJECTS = \
|
|||
$(OBJS)\monolib_common_secretstore.obj \
|
||||
$(OBJS)\monolib_lzmastream.obj \
|
||||
$(OBJS)\monolib_common_uilocale.obj \
|
||||
$(OBJS)\monolib_fs_data.obj \
|
||||
$(OBJS)\monolib_basemsw.obj \
|
||||
$(OBJS)\monolib_crashrpt.obj \
|
||||
$(OBJS)\monolib_debughlp.obj \
|
||||
|
|
@ -864,6 +866,7 @@ BASEDLL_OBJECTS = \
|
|||
$(OBJS)\basedll_common_secretstore.obj \
|
||||
$(OBJS)\basedll_lzmastream.obj \
|
||||
$(OBJS)\basedll_common_uilocale.obj \
|
||||
$(OBJS)\basedll_fs_data.obj \
|
||||
$(OBJS)\basedll_basemsw.obj \
|
||||
$(OBJS)\basedll_crashrpt.obj \
|
||||
$(OBJS)\basedll_debughlp.obj \
|
||||
|
|
@ -1004,6 +1007,7 @@ BASELIB_OBJECTS = \
|
|||
$(OBJS)\baselib_common_secretstore.obj \
|
||||
$(OBJS)\baselib_lzmastream.obj \
|
||||
$(OBJS)\baselib_common_uilocale.obj \
|
||||
$(OBJS)\baselib_fs_data.obj \
|
||||
$(OBJS)\baselib_basemsw.obj \
|
||||
$(OBJS)\baselib_crashrpt.obj \
|
||||
$(OBJS)\baselib_debughlp.obj \
|
||||
|
|
@ -6436,7 +6440,7 @@ wxstc: $(____wxstc_namedll_DEP) $(____wxstc_namelib_DEP)
|
|||
!if "$(SHARED)" == "1" && "$(USE_GUI)" == "1" && "$(USE_OPENGL)" == "1"
|
||||
$(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)u$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_gl$(WXCOMPILER)$(VENDORTAG).dll: $(OBJS)\gldll_dummy.obj $(GLDLL_OBJECTS) $(LIBDIRNAME)\wxexpat$(WXDEBUGFLAG).lib $(LIBDIRNAME)\wxzlib$(WXDEBUGFLAG).lib $(LIBDIRNAME)\wxregexu$(WXDEBUGFLAG).lib $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(__wxlexilla) $(OBJS)\gldll_version.res $(__basedll___depname) $(__coredll___depname) $(__monodll___depname)
|
||||
link /DLL /NOLOGO /OUT:$@ $(__DEBUGINFO_6) /pdb:"$(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)u$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_gl$(WXCOMPILER)$(VENDORTAG).pdb" $(__DEBUGINFO_619) $(LINK_TARGET_CPU) /LIBPATH:$(LIBDIRNAME) $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) @<<
|
||||
$(GLDLL_OBJECTS) $(GLDLL_RESOURCES) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregexu$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib shlwapi.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib version.lib ws2_32.lib wininet.lib $(__WXLIBGLDEP_CORE_p) $(__WXLIBGLDEP_BASE_p) $(__WXLIB_MONO_p) opengl32.lib glu32.lib /IMPLIB:$(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)u$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_gl.lib
|
||||
$(GLDLL_OBJECTS) $(GLDLL_RESOURCES) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregexu$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib shlwapi.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib version.lib ws2_32.lib wininet.lib $(__WXLIBGLDEP_CORE_p) $(__WXLIBGLDEP_BASE_p) $(__WXLIB_MONO_p) opengl32.lib /IMPLIB:$(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)u$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_gl.lib
|
||||
<<
|
||||
!endif
|
||||
|
||||
|
|
@ -7700,6 +7704,9 @@ $(OBJS)\monodll_lzmastream.obj: ..\..\src\common\lzmastream.cpp
|
|||
$(OBJS)\monodll_common_uilocale.obj: ..\..\src\common\uilocale.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\uilocale.cpp
|
||||
|
||||
$(OBJS)\monodll_fs_data.obj: ..\..\src\common\fs_data.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\fs_data.cpp
|
||||
|
||||
$(OBJS)\monodll_basemsw.obj: ..\..\src\msw\basemsw.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\basemsw.cpp
|
||||
|
||||
|
|
@ -10294,6 +10301,9 @@ $(OBJS)\monolib_lzmastream.obj: ..\..\src\common\lzmastream.cpp
|
|||
$(OBJS)\monolib_common_uilocale.obj: ..\..\src\common\uilocale.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\uilocale.cpp
|
||||
|
||||
$(OBJS)\monolib_fs_data.obj: ..\..\src\common\fs_data.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\fs_data.cpp
|
||||
|
||||
$(OBJS)\monolib_basemsw.obj: ..\..\src\msw\basemsw.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\basemsw.cpp
|
||||
|
||||
|
|
@ -12888,6 +12898,9 @@ $(OBJS)\basedll_lzmastream.obj: ..\..\src\common\lzmastream.cpp
|
|||
$(OBJS)\basedll_common_uilocale.obj: ..\..\src\common\uilocale.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(BASEDLL_CXXFLAGS) ..\..\src\common\uilocale.cpp
|
||||
|
||||
$(OBJS)\basedll_fs_data.obj: ..\..\src\common\fs_data.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(BASEDLL_CXXFLAGS) ..\..\src\common\fs_data.cpp
|
||||
|
||||
$(OBJS)\basedll_basemsw.obj: ..\..\src\msw\basemsw.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(BASEDLL_CXXFLAGS) ..\..\src\msw\basemsw.cpp
|
||||
|
||||
|
|
@ -13230,6 +13243,9 @@ $(OBJS)\baselib_lzmastream.obj: ..\..\src\common\lzmastream.cpp
|
|||
$(OBJS)\baselib_common_uilocale.obj: ..\..\src\common\uilocale.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(BASELIB_CXXFLAGS) ..\..\src\common\uilocale.cpp
|
||||
|
||||
$(OBJS)\baselib_fs_data.obj: ..\..\src\common\fs_data.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(BASELIB_CXXFLAGS) ..\..\src\common\fs_data.cpp
|
||||
|
||||
$(OBJS)\baselib_basemsw.obj: ..\..\src\msw\basemsw.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(BASELIB_CXXFLAGS) ..\..\src\msw\basemsw.cpp
|
||||
|
||||
|
|
|
|||
|
|
@ -622,6 +622,7 @@
|
|||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)common_%(Filename).obj</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)common_%(Filename).obj</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\common\fs_data.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="..\..\src\msw\version.rc">
|
||||
|
|
@ -841,6 +842,7 @@
|
|||
<ClInclude Include="..\..\include\wx\lzmastream.h" />
|
||||
<ClInclude Include="..\..\include\wx\localedefs.h" />
|
||||
<ClInclude Include="..\..\include\wx\uilocale.h" />
|
||||
<ClInclude Include="..\..\include\wx\fs_data.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
|
|
|
|||
|
|
@ -123,6 +123,9 @@
|
|||
<ClCompile Include="..\..\src\common\fs_arc.cpp">
|
||||
<Filter>Common Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\common\fs_data.cpp">
|
||||
<Filter>Common Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\common\fs_filter.cpp">
|
||||
<Filter>Common Sources</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -535,6 +538,9 @@
|
|||
<ClInclude Include="..\..\include\wx\fs_arc.h">
|
||||
<Filter>Common Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\wx\fs_data.h">
|
||||
<Filter>Common Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\wx\fs_filter.h">
|
||||
<Filter>Common Headers</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -1518,6 +1518,7 @@
|
|||
<ClInclude Include="..\..\include\wx\filedlgcustomize.h" />
|
||||
<ClInclude Include="..\..\include\wx\compositebookctrl.h" />
|
||||
<ClInclude Include="..\..\include\wx\msw\darkmode.h" />
|
||||
<ClInclude Include="..\..\include\wx\persist\combobox.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
|
|
|
|||
|
|
@ -2056,6 +2056,9 @@
|
|||
<ClInclude Include="..\..\include\wx\persist\bookctrl.h">
|
||||
<Filter>Common Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\wx\persist\combobox.h">
|
||||
<Filter>Common Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\wx\persist\dataview.h">
|
||||
<Filter>Common Headers</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -306,7 +306,7 @@
|
|||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>wxtiff$(wxSuffixDebug).lib;wxjpeg$(wxSuffixDebug).lib;wxpng$(wxSuffixDebug).lib;wxzlib$(wxSuffixDebug).lib;wxregexu$(wxSuffixDebug).lib;wxexpat$(wxSuffixDebug).lib;$(wxToolkitLibNamePrefix)core.lib;$(wxBaseLibNamePrefix).lib;opengl32.lib;glu32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>wxtiff$(wxSuffixDebug).lib;wxjpeg$(wxSuffixDebug).lib;wxpng$(wxSuffixDebug).lib;wxzlib$(wxSuffixDebug).lib;wxregexu$(wxSuffixDebug).lib;wxexpat$(wxSuffixDebug).lib;$(wxToolkitLibNamePrefix)core.lib;$(wxBaseLibNamePrefix).lib;opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ImportLibrary>$(OutDir)$(wxToolkitLibNamePrefix)$(ProjectName).lib</ImportLibrary>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
|
|
@ -347,7 +347,7 @@
|
|||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>wxtiff$(wxSuffixDebug).lib;wxjpeg$(wxSuffixDebug).lib;wxpng$(wxSuffixDebug).lib;wxzlib$(wxSuffixDebug).lib;wxregexu$(wxSuffixDebug).lib;wxexpat$(wxSuffixDebug).lib;$(wxToolkitLibNamePrefix)core.lib;$(wxBaseLibNamePrefix).lib;opengl32.lib;glu32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>wxtiff$(wxSuffixDebug).lib;wxjpeg$(wxSuffixDebug).lib;wxpng$(wxSuffixDebug).lib;wxzlib$(wxSuffixDebug).lib;wxregexu$(wxSuffixDebug).lib;wxexpat$(wxSuffixDebug).lib;$(wxToolkitLibNamePrefix)core.lib;$(wxBaseLibNamePrefix).lib;opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ImportLibrary>$(OutDir)$(wxToolkitLibNamePrefix)$(ProjectName).lib</ImportLibrary>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
|
|
@ -388,7 +388,7 @@
|
|||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>wxtiff$(wxSuffixDebug).lib;wxjpeg$(wxSuffixDebug).lib;wxpng$(wxSuffixDebug).lib;wxzlib$(wxSuffixDebug).lib;wxregexu$(wxSuffixDebug).lib;wxexpat$(wxSuffixDebug).lib;$(wxToolkitLibNamePrefix)core.lib;$(wxBaseLibNamePrefix).lib;opengl32.lib;glu32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>wxtiff$(wxSuffixDebug).lib;wxjpeg$(wxSuffixDebug).lib;wxpng$(wxSuffixDebug).lib;wxzlib$(wxSuffixDebug).lib;wxregexu$(wxSuffixDebug).lib;wxexpat$(wxSuffixDebug).lib;$(wxToolkitLibNamePrefix)core.lib;$(wxBaseLibNamePrefix).lib;opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ImportLibrary>$(OutDir)$(wxToolkitLibNamePrefix)$(ProjectName).lib</ImportLibrary>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
|
|
@ -432,7 +432,7 @@
|
|||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>wxtiff$(wxSuffixDebug).lib;wxjpeg$(wxSuffixDebug).lib;wxpng$(wxSuffixDebug).lib;wxzlib$(wxSuffixDebug).lib;wxregexu$(wxSuffixDebug).lib;wxexpat$(wxSuffixDebug).lib;$(wxToolkitLibNamePrefix)core.lib;$(wxBaseLibNamePrefix).lib;opengl32.lib;glu32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>wxtiff$(wxSuffixDebug).lib;wxjpeg$(wxSuffixDebug).lib;wxpng$(wxSuffixDebug).lib;wxzlib$(wxSuffixDebug).lib;wxregexu$(wxSuffixDebug).lib;wxexpat$(wxSuffixDebug).lib;$(wxToolkitLibNamePrefix)core.lib;$(wxBaseLibNamePrefix).lib;opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ImportLibrary>$(OutDir)$(wxToolkitLibNamePrefix)$(ProjectName).lib</ImportLibrary>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
|
|
@ -494,4 +494,4 @@
|
|||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
<wxCompilerPrefix>vc</wxCompilerPrefix>
|
||||
<wxCfg>
|
||||
</wxCfg>
|
||||
<wxSuffix>u</wxSuffix>
|
||||
<wxVendor>custom</wxVendor>
|
||||
<wxRuntimeLibs>dynamic</wxRuntimeLibs>
|
||||
<wxReleaseRuntimeLibrary>MultiThreadedDLL</wxReleaseRuntimeLibrary>
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ case $(uname -s) in
|
|||
|
||||
extra_deps="$extra_deps \
|
||||
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
|
||||
libglu1-mesa-dev"
|
||||
"
|
||||
esac
|
||||
|
||||
# Install locales used by our tests to run all the tests instead of
|
||||
|
|
@ -128,7 +128,7 @@ case $(uname -s) in
|
|||
fi
|
||||
|
||||
if [ -f /etc/redhat-release ]; then
|
||||
dnf install -y ${WX_EXTRA_PACKAGES} expat-devel findutils g++ git-core gspell-devel gstreamer1-plugins-base-devel gtk3-devel make libcurl-devel libGLU-devel libjpeg-devel libnotify-devel libpng-devel libSM-devel libsecret-devel libtiff-devel SDL-devel webkit2gtk4.1-devel zlib-devel
|
||||
dnf install -y ${WX_EXTRA_PACKAGES} expat-devel findutils g++ git-core gspell-devel gstreamer1-plugins-base-devel gtk3-devel make libcurl-devel libjpeg-devel libnotify-devel libpng-devel libSM-devel libsecret-devel libtiff-devel SDL-devel webkit2gtk4.1-devel zlib-devel
|
||||
fi
|
||||
;;
|
||||
|
||||
|
|
|
|||
393
configure
vendored
393
configure
vendored
|
|
@ -962,8 +962,6 @@ WAYLAND_EGL_LIBS
|
|||
WAYLAND_EGL_CFLAGS
|
||||
EGL_LIBS
|
||||
EGL_CFLAGS
|
||||
GLU_LIBS
|
||||
GLU_CFLAGS
|
||||
GL_LIBS
|
||||
GL_CFLAGS
|
||||
SM_LIBS
|
||||
|
|
@ -1421,8 +1419,6 @@ SM_CFLAGS
|
|||
SM_LIBS
|
||||
GL_CFLAGS
|
||||
GL_LIBS
|
||||
GLU_CFLAGS
|
||||
GLU_LIBS
|
||||
EGL_CFLAGS
|
||||
EGL_LIBS
|
||||
WAYLAND_EGL_CFLAGS
|
||||
|
|
@ -2458,8 +2454,6 @@ Some influential environment variables:
|
|||
SM_LIBS linker flags for SM, overriding pkg-config
|
||||
GL_CFLAGS C compiler flags for GL, overriding pkg-config
|
||||
GL_LIBS linker flags for GL, overriding pkg-config
|
||||
GLU_CFLAGS C compiler flags for GLU, overriding pkg-config
|
||||
GLU_LIBS linker flags for GLU, overriding pkg-config
|
||||
EGL_CFLAGS C compiler flags for EGL, overriding pkg-config
|
||||
EGL_LIBS linker flags for EGL, overriding pkg-config
|
||||
WAYLAND_EGL_CFLAGS
|
||||
|
|
@ -22922,10 +22916,8 @@ $as_echo "$as_me: WARNING: --enable-macosx_arch is ignored when --enable-univers
|
|||
|
||||
if test "x$wxUSE_UNIVERSAL_BINARY" != xyes; then
|
||||
OSX_ARCH_OPTS=$wxUSE_UNIVERSAL_BINARY
|
||||
else OSX_ARCH_OPTS="i386"
|
||||
if test "$wxUSE_OSX_COCOA" = 1; then
|
||||
OSX_ARCH_OPTS="$OSX_ARCH_OPTS,x86_64"
|
||||
fi
|
||||
else
|
||||
OSX_ARCH_OPTS=arm64,x86_64
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for architectures to use in universal binary" >&5
|
||||
|
|
@ -30212,7 +30204,7 @@ if test "$wxUSE_OPENGL" = "yes" -o "$wxUSE_OPENGL" = "auto"; then
|
|||
if test "$wxUSE_OSX_COCOA" = 1; then
|
||||
OPENGL_LIBS="-framework OpenGL -framework AGL"
|
||||
elif test "$wxUSE_MSW" = 1; then
|
||||
OPENGL_LIBS="-lopengl32 -lglu32"
|
||||
OPENGL_LIBS="-lopengl32"
|
||||
elif test "$wxUSE_X11" = 1 -o "$wxUSE_GTK" = 1 -o "$wxUSE_QT" = 1; then
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenGL headers" >&5
|
||||
|
|
@ -30253,10 +30245,6 @@ $as_echo "not found" >&6; }
|
|||
"
|
||||
if test "x$ac_cv_header_GL_gl_h" = xyes; then :
|
||||
|
||||
ac_fn_c_check_header_compile "$LINENO" "GL/glu.h" "ac_cv_header_GL_glu_h" "
|
||||
"
|
||||
if test "x$ac_cv_header_GL_glu_h" = xyes; then :
|
||||
|
||||
found_gl=0
|
||||
|
||||
|
||||
|
|
@ -30619,369 +30607,8 @@ fi
|
|||
fi
|
||||
fi
|
||||
|
||||
|
||||
ac_find_libraries=
|
||||
|
||||
fl_pkgname=`echo "GLU" | tr [:upper:] [:lower:]`
|
||||
|
||||
|
||||
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
|
||||
if test -n "$ac_tool_prefix"; then
|
||||
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
|
||||
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||
$as_echo_n "checking for $ac_word... " >&6; }
|
||||
if ${ac_cv_path_PKG_CONFIG+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
case $PKG_CONFIG in
|
||||
[\\/]* | ?:[\\/]*)
|
||||
ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
|
||||
;;
|
||||
*)
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in $PATH
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
IFS=$as_save_IFS
|
||||
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
|
||||
if test -n "$PKG_CONFIG"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
|
||||
$as_echo "$PKG_CONFIG" >&6; }
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
|
||||
fi
|
||||
if test -z "$ac_cv_path_PKG_CONFIG"; then
|
||||
ac_pt_PKG_CONFIG=$PKG_CONFIG
|
||||
# Extract the first word of "pkg-config", so it can be a program name with args.
|
||||
set dummy pkg-config; ac_word=$2
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||
$as_echo_n "checking for $ac_word... " >&6; }
|
||||
if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
case $ac_pt_PKG_CONFIG in
|
||||
[\\/]* | ?:[\\/]*)
|
||||
ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
|
||||
;;
|
||||
*)
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in $PATH
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
IFS=$as_save_IFS
|
||||
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
|
||||
if test -n "$ac_pt_PKG_CONFIG"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
|
||||
$as_echo "$ac_pt_PKG_CONFIG" >&6; }
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
if test "x$ac_pt_PKG_CONFIG" = x; then
|
||||
PKG_CONFIG=""
|
||||
else
|
||||
case $cross_compiling:$ac_tool_warned in
|
||||
yes:)
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
|
||||
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
|
||||
ac_tool_warned=yes ;;
|
||||
esac
|
||||
PKG_CONFIG=$ac_pt_PKG_CONFIG
|
||||
fi
|
||||
else
|
||||
PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
|
||||
fi
|
||||
|
||||
fi
|
||||
if test -n "$PKG_CONFIG"; then
|
||||
_pkg_min_version=0.9.0
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
|
||||
$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
|
||||
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
PKG_CONFIG=""
|
||||
fi
|
||||
|
||||
fi 6> /dev/null
|
||||
|
||||
pkg_failed=no
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLU" >&5
|
||||
$as_echo_n "checking for GLU... " >&6; }
|
||||
|
||||
if test -n "$PKG_CONFIG"; then
|
||||
if test -n "$GLU_CFLAGS"; then
|
||||
pkg_cv_GLU_CFLAGS="$GLU_CFLAGS"
|
||||
else
|
||||
if test -n "$PKG_CONFIG" && \
|
||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$fl_pkgname\""; } >&5
|
||||
($PKG_CONFIG --exists --print-errors "$fl_pkgname") 2>&5
|
||||
ac_status=$?
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
test $ac_status = 0; }; then
|
||||
pkg_cv_GLU_CFLAGS=`$PKG_CONFIG --cflags "$fl_pkgname" 2>/dev/null`
|
||||
else
|
||||
pkg_failed=yes
|
||||
fi
|
||||
fi
|
||||
else
|
||||
pkg_failed=untried
|
||||
fi
|
||||
if test -n "$PKG_CONFIG"; then
|
||||
if test -n "$GLU_LIBS"; then
|
||||
pkg_cv_GLU_LIBS="$GLU_LIBS"
|
||||
else
|
||||
if test -n "$PKG_CONFIG" && \
|
||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$fl_pkgname\""; } >&5
|
||||
($PKG_CONFIG --exists --print-errors "$fl_pkgname") 2>&5
|
||||
ac_status=$?
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
test $ac_status = 0; }; then
|
||||
pkg_cv_GLU_LIBS=`$PKG_CONFIG --libs "$fl_pkgname" 2>/dev/null`
|
||||
else
|
||||
pkg_failed=yes
|
||||
fi
|
||||
fi
|
||||
else
|
||||
pkg_failed=untried
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if test $pkg_failed = yes; then
|
||||
|
||||
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
||||
_pkg_short_errors_supported=yes
|
||||
else
|
||||
_pkg_short_errors_supported=no
|
||||
fi
|
||||
if test $_pkg_short_errors_supported = yes; then
|
||||
GLU_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$fl_pkgname"`
|
||||
else
|
||||
GLU_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$fl_pkgname"`
|
||||
fi
|
||||
# Put the nasty error message in config.log where it belongs
|
||||
echo "$GLU_PKG_ERRORS" >&5
|
||||
|
||||
|
||||
if test "x$ac_find_libraries" = "x"; then
|
||||
if test "xgluBeginCurve" != "x"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gluBeginCurve in -lGLU" >&5
|
||||
$as_echo_n "checking for gluBeginCurve in -lGLU... " >&6; }
|
||||
if ${ac_cv_lib_GLU_gluBeginCurve+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
LIBS="-lGLU $LIBS"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
/* Override any GCC internal prototype to avoid an error.
|
||||
Use char because int might match the return type of a GCC
|
||||
builtin and then its argument prototype would still apply. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
char gluBeginCurve ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return gluBeginCurve ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
ac_cv_lib_GLU_gluBeginCurve=yes
|
||||
else
|
||||
ac_cv_lib_GLU_gluBeginCurve=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
LIBS=$ac_check_lib_save_LIBS
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_GLU_gluBeginCurve" >&5
|
||||
$as_echo "$ac_cv_lib_GLU_gluBeginCurve" >&6; }
|
||||
if test "x$ac_cv_lib_GLU_gluBeginCurve" = xyes; then :
|
||||
ac_find_libraries="std"
|
||||
fi
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$ac_find_libraries" = "x"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking elsewhere" >&5
|
||||
$as_echo_n "checking elsewhere... " >&6; }
|
||||
|
||||
ac_find_libraries=
|
||||
for ac_dir in /opt/graphics/OpenGL/lib $SEARCH_LIB
|
||||
do
|
||||
for ac_extension in a so sl dylib dll.a; do
|
||||
if test -f "$ac_dir/libGLU.$ac_extension"; then
|
||||
ac_find_libraries=$ac_dir
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
if test "x$ac_find_libraries" != "x"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
fi
|
||||
|
||||
elif test $pkg_failed = untried; then
|
||||
|
||||
if test "x$ac_find_libraries" = "x"; then
|
||||
if test "xgluBeginCurve" != "x"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gluBeginCurve in -lGLU" >&5
|
||||
$as_echo_n "checking for gluBeginCurve in -lGLU... " >&6; }
|
||||
if ${ac_cv_lib_GLU_gluBeginCurve+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
LIBS="-lGLU $LIBS"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
/* Override any GCC internal prototype to avoid an error.
|
||||
Use char because int might match the return type of a GCC
|
||||
builtin and then its argument prototype would still apply. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
char gluBeginCurve ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return gluBeginCurve ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
ac_cv_lib_GLU_gluBeginCurve=yes
|
||||
else
|
||||
ac_cv_lib_GLU_gluBeginCurve=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
LIBS=$ac_check_lib_save_LIBS
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_GLU_gluBeginCurve" >&5
|
||||
$as_echo "$ac_cv_lib_GLU_gluBeginCurve" >&6; }
|
||||
if test "x$ac_cv_lib_GLU_gluBeginCurve" = xyes; then :
|
||||
ac_find_libraries="std"
|
||||
fi
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$ac_find_libraries" = "x"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking elsewhere" >&5
|
||||
$as_echo_n "checking elsewhere... " >&6; }
|
||||
|
||||
ac_find_libraries=
|
||||
for ac_dir in /opt/graphics/OpenGL/lib $SEARCH_LIB
|
||||
do
|
||||
for ac_extension in a so sl dylib dll.a; do
|
||||
if test -f "$ac_dir/libGLU.$ac_extension"; then
|
||||
ac_find_libraries=$ac_dir
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
if test "x$ac_find_libraries" != "x"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
fi
|
||||
|
||||
else
|
||||
GLU_CFLAGS=$pkg_cv_GLU_CFLAGS
|
||||
GLU_LIBS=$pkg_cv_GLU_LIBS
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
|
||||
ac_find_libraries="std"
|
||||
|
||||
eval ac_find_cflags=\$GLU_CFLAGS
|
||||
eval fl_libs=\$GLU_LIBS
|
||||
|
||||
for fl_path in $fl_libs
|
||||
do
|
||||
if test `echo "$fl_path" | cut -c 1-2` = "-L"; then
|
||||
ac_find_libraries=`echo "$fl_path" | cut -c 3-`
|
||||
fi
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
if test "$ac_find_libraries" != "" ; then
|
||||
if test "$ac_find_libraries" != "std" ; then
|
||||
|
||||
if test "$ac_find_libraries" = "default location"; then
|
||||
ac_path_to_link=""
|
||||
else
|
||||
echo "$LDFLAGS" | grep "\-L$ac_find_libraries" > /dev/null
|
||||
result=$?
|
||||
if test $result = 0; then
|
||||
ac_path_to_link=""
|
||||
else
|
||||
ac_path_to_link=" -L$ac_find_libraries"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$ac_path_to_link" != " -L/usr/lib" -a \
|
||||
"$ac_path_to_link" != "$LDFLAGS_GL" ; then
|
||||
LDFLAGS_GL="$LDFLAGS_GL $ac_path_to_link"
|
||||
fi
|
||||
fi
|
||||
|
||||
found_gl=1
|
||||
OPENGL_LIBS="-lGL -lGLU"
|
||||
OPENGL_LIBS="-lGL"
|
||||
|
||||
if test "$WXGTK3" = 1; then
|
||||
if test "$wxUSE_GLCANVAS_EGL" != "no"; then
|
||||
|
|
@ -31148,7 +30775,6 @@ $as_echo "$as_me: wxGLCanvas will not have Wayland support" >&6;}
|
|||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$found_gl" != 1; then
|
||||
|
|
@ -31511,7 +31137,7 @@ fi
|
|||
LDFLAGS_GL="$LDFLAGS_GL $ac_path_to_link"
|
||||
fi
|
||||
fi
|
||||
OPENGL_LIBS="-lMesaGL -lMesaGLU"
|
||||
OPENGL_LIBS="-lMesaGL"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
@ -31519,10 +31145,6 @@ fi
|
|||
|
||||
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if test "x$OPENGL_LIBS" = "x"; then
|
||||
if test "$wxUSE_OPENGL" = "yes"; then
|
||||
as_fn_error $? "OpenGL libraries not available" "$LINENO" 5
|
||||
|
|
@ -43580,10 +43202,7 @@ for subdir in $SUBDIRS; do
|
|||
makefiles="samples/$subtree/Makefile.in $makefiles"
|
||||
done
|
||||
else
|
||||
disabled_var=DISABLED_`echo $subdir | tr '[a-z]' '[A-Z]'`
|
||||
eval "disabled=\$$disabled_var"
|
||||
disabled=/`echo X $disabled | sed 's@ @/|/@g'`/
|
||||
makefiles=`(cd $srcdir ; find $subdir -name Makefile.in) | $EGREP -v "$disabled"`
|
||||
makefiles=`(cd $srcdir ; find $subdir -name Makefile.in)`
|
||||
fi
|
||||
else
|
||||
if test ${subdir} = "samples"; then
|
||||
|
|
|
|||
41
configure.ac
41
configure.ac
|
|
@ -1188,10 +1188,14 @@ if test "x$wxUSE_UNIVERSAL_BINARY" != xno ; then
|
|||
|
||||
if test "x$wxUSE_UNIVERSAL_BINARY" != xyes; then
|
||||
OSX_ARCH_OPTS=$wxUSE_UNIVERSAL_BINARY
|
||||
else dnl Use all architectures supported
|
||||
OSX_ARCH_OPTS="i386"
|
||||
if test "$wxUSE_OSX_COCOA" = 1; then
|
||||
OSX_ARCH_OPTS="$OSX_ARCH_OPTS,x86_64"
|
||||
else
|
||||
dnl Use default architectures for the universal binaries: x86_64 is
|
||||
dnl currently supported everywhere...
|
||||
OSX_ARCH_OPTS=x86_64
|
||||
|
||||
dnl ... and non-ancient macOS versions also support ARM.
|
||||
if [ `sw_vers -productVersion | sed 's/\..*//'` -gt 10 ]; then
|
||||
OSX_ARCH_OPTS=arm64,$OSX_ARCH_OPTS
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
@ -3313,7 +3317,7 @@ if test "$wxUSE_OPENGL" = "yes" -o "$wxUSE_OPENGL" = "auto"; then
|
|||
if test "$wxUSE_OSX_COCOA" = 1; then
|
||||
OPENGL_LIBS="-framework OpenGL -framework AGL"
|
||||
elif test "$wxUSE_MSW" = 1; then
|
||||
OPENGL_LIBS="-lopengl32 -lglu32"
|
||||
OPENGL_LIBS="-lopengl32"
|
||||
elif test "$wxUSE_X11" = 1 -o "$wxUSE_GTK" = 1 -o "$wxUSE_QT" = 1; then
|
||||
|
||||
dnl adjust CPPFLAGS to include GL/gl.h location if necessary
|
||||
|
|
@ -3329,7 +3333,6 @@ if test "$wxUSE_OPENGL" = "yes" -o "$wxUSE_OPENGL" = "auto"; then
|
|||
fi
|
||||
|
||||
AC_CHECK_HEADER(GL/gl.h, [
|
||||
AC_CHECK_HEADER(GL/glu.h, [
|
||||
found_gl=0
|
||||
|
||||
WX_FIND_LIB(GL, glBegin, [/opt/graphics/OpenGL/lib])
|
||||
|
|
@ -3341,21 +3344,8 @@ if test "$wxUSE_OPENGL" = "yes" -o "$wxUSE_OPENGL" = "auto"; then
|
|||
fi
|
||||
fi
|
||||
|
||||
dnl don't suppose that libGL and libGLU are always in the
|
||||
dnl same directory -- this is not true for some common
|
||||
dnl distributions
|
||||
WX_FIND_LIB(GLU, gluBeginCurve, [/opt/graphics/OpenGL/lib])
|
||||
if test "$ac_find_libraries" != "" ; then
|
||||
if test "$ac_find_libraries" != "std" ; then
|
||||
WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
|
||||
if test "$ac_path_to_link" != " -L/usr/lib" -a \
|
||||
"$ac_path_to_link" != "$LDFLAGS_GL" ; then
|
||||
LDFLAGS_GL="$LDFLAGS_GL $ac_path_to_link"
|
||||
fi
|
||||
fi
|
||||
|
||||
found_gl=1
|
||||
OPENGL_LIBS="-lGL -lGLU"
|
||||
OPENGL_LIBS="-lGL"
|
||||
|
||||
if test "$WXGTK3" = 1; then
|
||||
if test "$wxUSE_GLCANVAS_EGL" != "no"; then
|
||||
|
|
@ -3382,7 +3372,6 @@ if test "$wxUSE_OPENGL" = "yes" -o "$wxUSE_OPENGL" = "auto"; then
|
|||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$found_gl" != 1; then
|
||||
|
|
@ -3394,10 +3383,9 @@ if test "$wxUSE_OPENGL" = "yes" -o "$wxUSE_OPENGL" = "auto"; then
|
|||
LDFLAGS_GL="$LDFLAGS_GL $ac_path_to_link"
|
||||
fi
|
||||
fi
|
||||
OPENGL_LIBS="-lMesaGL -lMesaGLU"
|
||||
OPENGL_LIBS="-lMesaGL"
|
||||
fi
|
||||
fi
|
||||
],, [ ])
|
||||
],
|
||||
[],
|
||||
[ ])
|
||||
|
|
@ -8186,12 +8174,7 @@ for subdir in $SUBDIRS; do
|
|||
done
|
||||
else
|
||||
dnl assume that everything compiles for utils &c
|
||||
dnl any that shouldn't be built can be added to
|
||||
dnl DISABLED_UTILS, DISABLED_DEMOS
|
||||
disabled_var=DISABLED_`echo $subdir | tr '[[a-z]]' '[[A-Z]]'`
|
||||
eval "disabled=\$$disabled_var"
|
||||
disabled=/`echo X $disabled | sed 's@ @/|/@g'`/
|
||||
makefiles=`(cd $srcdir ; find $subdir -name Makefile.in) | $EGREP -v "$disabled"`
|
||||
makefiles=`(cd $srcdir ; find $subdir -name Makefile.in)`
|
||||
fi
|
||||
else
|
||||
dnl we build wxBase only
|
||||
|
|
|
|||
|
|
@ -31,6 +31,12 @@ Changes in behaviour not resulting in compilation errors
|
|||
wxGLAttributes::Samplers(1).SampleBuffers(4) explicitly if you need to keep
|
||||
using the same attributes that were previously used by default.
|
||||
|
||||
- Default location of file used by wxFileConfig under Unix has changed to
|
||||
XDG-compliant ~/.config/appname.conf instead of ~/.appname but note that
|
||||
any existing files at the old location will still continue to be used.
|
||||
See wxCONFIG_USE_XDG and wxCONFIG_USE_HOME for how to customize this
|
||||
behaviour. You may also find wxFileConfig::MigrateLocalFile() useful.
|
||||
|
||||
- As first mentioned in 3.0 release notes, the value of wxTHREAD_WAIT_DEFAULT,
|
||||
used by wxThread::Delete() and Wait() by default, has changed from
|
||||
wxTHREAD_WAIT_YIELD to wxTHREAD_WAIT_BLOCK for safety and consistency.
|
||||
|
|
@ -113,6 +119,12 @@ Changes in behaviour which may result in build errors
|
|||
compatible with the previous wxWidgets versions, but now compare values, and
|
||||
not pointers, in their Index() member function.
|
||||
|
||||
- All operators (e.g. "==", "+", etc) on wx types are not defined in global
|
||||
scope any more, resulting in much better error messages but also preventing
|
||||
them from implicitly being used with types convertible to wx types. If you
|
||||
really need to use these operators with your own types, please use explicit
|
||||
conversions.
|
||||
|
||||
- Due to the possibility to construct wxString from std::string_view some
|
||||
previously valid code, such as "wxstr = {"Hello", 2}", is now ambiguous.
|
||||
Please use explicit class name, e.g. "wxstr = wxString{"Hello", 2}" to
|
||||
|
|
|
|||
|
|
@ -168,6 +168,10 @@ Currently the following symbols exist:
|
|||
implemented in a generic way, using a critical section.}
|
||||
@itemdef{wxHAS_BITMAPTOGGLEBUTTON, Defined in @c wx/tglbtn.h if
|
||||
wxBitmapToggleButton class is available in addition to wxToggleButton.}
|
||||
@itemdef{wxHAS_CONFIG_AS_FILECONFIG, Defined if wxConfig is defined as
|
||||
wxFileConfig. This constant is available since wxWidgets 3.3.0.}
|
||||
@itemdef{wxHAS_CONFIG_AS_REGCONFIG, Defined if wxConfig is defined as
|
||||
wxRegConfig. This constant is available since wxWidgets 3.3.0.}
|
||||
@itemdef{wxHAS_CONFIG_TEMPLATE_RW, Defined if the currently used compiler
|
||||
supports template Read() and Write() methods in wxConfig.}
|
||||
@itemdef{wxHAS_DEPRECATED_ATTR, Defined if C++14 @c [[deprecated]] attribute is
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
@section section_copyright wxWidgets Copyrights and Licenses
|
||||
|
||||
Copyright (c) 1992-2023 Julian Smart, Vadim Zeitlin, Stefan Csomor, Robert
|
||||
Copyright (c) 1992-2024 Julian Smart, Vadim Zeitlin, Stefan Csomor, Robert
|
||||
Roebling, and other members of the wxWidgets team, please see the
|
||||
acknowledgements section below.
|
||||
|
||||
|
|
|
|||
|
|
@ -73,6 +73,10 @@ The following virtual file system handlers are part of wxWidgets so far:
|
|||
A handler for archives such as zip
|
||||
and tar. Include file is wx/fs_arc.h. URLs examples:
|
||||
"archive.zip#zip:filename", "archive.tar.gz#gzip:#tar:filename".
|
||||
@li @b wxDataSchemeFSHandler:
|
||||
A handler for accessing data inlined in URI according to RFC 2397.
|
||||
URI example: "data:text/plain;base64,d3hXaWRnZXRzIGV4YW1wbGU=".
|
||||
Include file is wx/fs_data.h.
|
||||
@li @b wxFilterFSHandler:
|
||||
A handler for compression schemes such
|
||||
as gzip. Header is wx/fs_filter.h. URLs are in the form, e.g.:
|
||||
|
|
|
|||
|
|
@ -215,7 +215,7 @@ if [[ "$1" = "docset" ]]; then
|
|||
$PLIST_WRITE_CMD $DESTINATIONDIR/$DOCSETNAME/Contents/Info DocSetFeedURL $ATOMDIR/$ATOM
|
||||
$PLIST_WRITE_CMD $DESTINATIONDIR/$DOCSETNAME/Contents/Info DocSetFallbackURL https://docs.wxwidgets.org
|
||||
$PLIST_WRITE_CMD $DESTINATIONDIR/$DOCSETNAME/Contents/Info DocSetDescription "API reference and conceptual documentation for wxWidgets 3.0"
|
||||
$PLIST_WRITE_CMD $DESTINATIONDIR/$DOCSETNAME/Contents/Info NSHumanReadableCopyright "Copyright 1992-2023 wxWidgets team, Portions 1996 Artificial Intelligence Applications Institute"
|
||||
$PLIST_WRITE_CMD $DESTINATIONDIR/$DOCSETNAME/Contents/Info NSHumanReadableCopyright "Copyright 1992-2024 wxWidgets team, Portions 1996 Artificial Intelligence Applications Institute"
|
||||
$PLIST_WRITE_CMD $DESTINATIONDIR/$DOCSETNAME/Contents/Info isJavaScriptEnabled true
|
||||
$PLIST_WRITE_CMD $DESTINATIONDIR/$DOCSETNAME/Contents/Info dashIndexFilePath index.html
|
||||
$PLIST_WRITE_CMD $DESTINATIONDIR/$DOCSETNAME/Contents/Info DocSetPlatformFamily wx
|
||||
|
|
|
|||
|
|
@ -18,13 +18,38 @@ the following in wxWidgets directory:
|
|||
$ cd buildgtk
|
||||
$ ../configure --with-gtk
|
||||
$ make
|
||||
|
||||
It is recommended to use `-jN` option with the last command, where `N` is a
|
||||
number of the processors in your system (which can be checked using `nproc`
|
||||
command if you are not sure), as this will dramatically speed up the build
|
||||
on modern systems. So in practice you should use a command like this:
|
||||
|
||||
$ make -j8
|
||||
|
||||
(but don't use it unless you actually have 8 CPUs and enough memory for that
|
||||
many parallel compiler invocations).
|
||||
|
||||
You may also prefer to add `-s` option to avoid normal output from make and/or
|
||||
redirect it you to a log file for further inspection.
|
||||
|
||||
You should build at least the smallest possible wxWidgets sample to verify that
|
||||
everything is working as intended, by doing
|
||||
|
||||
$ cd samples/minimal
|
||||
$ make
|
||||
|
||||
and try running it using `./minimal` command from the same directory.
|
||||
|
||||
After confirming that it works, you may want to install wxWidgets by running
|
||||
|
||||
$ sudo make install
|
||||
$ sudo ldconfig
|
||||
|
||||
(if you get "ldconfig: command not found", try using `/sbin/ldconfig`)
|
||||
|
||||
If you don't do the `make install` part, you can still use the libraries from
|
||||
the `buildgtk` directory, but they may not be available to other users.
|
||||
but note that this part is optional and you can use the libraries from
|
||||
the `buildgtk` directory by running `.../buildgtk/wx-config` script using its
|
||||
full path instead of just using `wx-config`.
|
||||
|
||||
Note that by default, GTK 3 is used. GTK 2 can be specified
|
||||
with `--with-gtk=2` configure option.
|
||||
|
|
@ -47,8 +72,8 @@ Debian and Debian-based distribution these libraries are part of `libgtk-3-dev`
|
|||
package, while in Fedora and other RPM-based distributions the same package is
|
||||
known as `gtk3-devel`.
|
||||
|
||||
For OpenGL support, you need `libgl1-mesa-dev` and `libglu1-mesa-dev` packages
|
||||
under Debian and `mesa-libGL-devel` and `mesa-libGLU-devel` under Fedora. For
|
||||
For OpenGL support, you need `libgl1-mesa-dev` packages
|
||||
under Debian and `mesa-libGL-devel` and under Fedora. For
|
||||
EGL support, `libegl1-mesa-dev` or `mesa-libEGL-devel` is needed.
|
||||
|
||||
wxMediaCtrl implementation requires GStreamer and its plugins development
|
||||
|
|
|
|||
|
|
@ -9,11 +9,11 @@ Most OS X developers should start by downloading and installing Xcode
|
|||
from the App Store. It is a free IDE from Apple that provides
|
||||
all of the tools you need for working with wxWidgets.
|
||||
|
||||
After Xcode is installed, download wxWidgets-{version}.tar.bz2 and then
|
||||
After Xcode is installed, download `wxWidgets-{version}.tar.bz2` and then
|
||||
double-click on it to unpack it to create a wxWidgets directory.
|
||||
|
||||
Next use Terminal (under Applications, Utilities, Terminal) to access a command
|
||||
prompt. Use cd to change directories to your wxWidgets directory and execute
|
||||
prompt. Use `cd` to change directories to your wxWidgets directory and execute
|
||||
the following sets of commands from the wxWidgets directory.
|
||||
|
||||
mkdir build-cocoa-debug
|
||||
|
|
@ -21,27 +21,54 @@ the following sets of commands from the wxWidgets directory.
|
|||
../configure --enable-debug
|
||||
make
|
||||
|
||||
Build the samples and demos
|
||||
It is recommended to use `-jN` option with the last command, where `N` is a
|
||||
number of the processors in your system (which can be checked using `sysctl -n
|
||||
hw.ncpu` command if you are not sure), as this will dramatically speed up the
|
||||
build on modern systems. So in practice you should use a command like this:
|
||||
|
||||
make -j8
|
||||
|
||||
(but don't use it unless you actually have 8 CPUs and enough memory for that
|
||||
many parallel compiler invocations).
|
||||
|
||||
You may also prefer to add `-s` option to avoid normal output from make and/or
|
||||
redirect it you to a log file for further inspection.
|
||||
|
||||
You should build at least the smallest possible wxWidgets sample to verify that
|
||||
everything is working as intended, by doing
|
||||
|
||||
cd samples/minimal
|
||||
make
|
||||
|
||||
and then running `minimal.app` from this directory from Finder.
|
||||
|
||||
If you'd like to, you can also build all the other samples and demos
|
||||
|
||||
cd samples; make;cd ..
|
||||
cd demos; make;cd ..
|
||||
|
||||
After the compilation completes, use Finder to run the samples and demos
|
||||
* Go to build-cocoa-debug/samples to experiment with the Cocoa samples.
|
||||
* Go to build-cocoa-debug/demos to experiment with the Cocoa demos.
|
||||
* Double-click on the executables which have an icon showing three small squares.
|
||||
* The source code for the samples is in wxWidgets/samples
|
||||
* The source code for the demos is in wxWidgets/demos
|
||||
|
||||
More information about building on macOS is available in the wxWiki.
|
||||
Here are two useful links
|
||||
* https://wiki.wxwidgets.org/Guides_%26_Tutorials
|
||||
* https://wiki.wxwidgets.org/Development:_wxMac
|
||||
|
||||
|
||||
Advanced topics {#osx_advanced}
|
||||
===============
|
||||
|
||||
Building library for distribution
|
||||
---------------------------------
|
||||
|
||||
When building library for the distribution with your application, you shouldn't
|
||||
use `--enable-debug` option above but you may want to use `--disable-sys-libs`
|
||||
option to ensure that it has no dependencies on the other libraries available
|
||||
on the current system as they might not be present on all systems where the
|
||||
application is used.
|
||||
|
||||
It is also often desirable to build the final version of the application as
|
||||
"universal binary", i.e. a combination of binaries for several different
|
||||
architectures. In this case, you should build wxWidgets as universal binary
|
||||
too, using `--enable-universal_binary` option. By default, this option enables
|
||||
building for the usually wanted set of architectures (currently ARM and Intel)
|
||||
but you may override this by listing the architectures you want to use
|
||||
explicitly, separating them with commas.
|
||||
|
||||
|
||||
Installing library {#osx_install}
|
||||
------------------
|
||||
|
||||
|
|
|
|||
|
|
@ -1334,7 +1334,7 @@
|
|||
|
||||
// Setting wxUSE_GLCANVAS to 1 enables OpenGL support. You need to have OpenGL
|
||||
// headers and libraries to be able to compile the library with wxUSE_GLCANVAS
|
||||
// set to 1 and, under Windows, also to add opengl32.lib and glu32.lib to the
|
||||
// set to 1 and, under Windows, also to add opengl32.lib to the
|
||||
// list of libraries used to link your application when linking to wxWidgets
|
||||
// statically (although this is done implicitly for Microsoft Visual C++ users).
|
||||
//
|
||||
|
|
|
|||
|
|
@ -693,7 +693,6 @@ protected:
|
|||
bool m_gripperVisible;
|
||||
bool m_overflowVisible;
|
||||
|
||||
bool RealizeHelper(wxClientDC& dc, bool horizontal);
|
||||
static bool IsPaneValid(long style, const wxAuiPaneInfo& pane);
|
||||
bool IsPaneValid(long style) const;
|
||||
void SetArtFlags() const;
|
||||
|
|
@ -705,6 +704,8 @@ private:
|
|||
// Common part of OnLeaveWindow() and OnCaptureLost().
|
||||
void DoResetMouseState();
|
||||
|
||||
wxSize RealizeHelper(wxClientDC& dc, wxOrientation orientation);
|
||||
|
||||
wxDECLARE_EVENT_TABLE();
|
||||
wxDECLARE_CLASS(wxAuiToolBar);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -189,6 +189,9 @@ protected:
|
|||
wxRect m_rect;
|
||||
size_t m_tabOffset;
|
||||
unsigned int m_flags;
|
||||
|
||||
private:
|
||||
int GetCloseButtonState(const wxAuiNotebookPage& page) const;
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -210,6 +213,9 @@ public:
|
|||
|
||||
void SetRect(const wxRect& rect) { wxAuiTabContainer::SetRect(rect, this); }
|
||||
|
||||
// Internal helper.
|
||||
void DoShowTab(int idx);
|
||||
|
||||
protected:
|
||||
// choose the default border for this window
|
||||
virtual wxBorder GetDefaultBorder() const override { return wxBORDER_NONE; }
|
||||
|
|
|
|||
|
|
@ -51,7 +51,8 @@ enum wxAuiManagerOption
|
|||
wxAUI_MGR_DEFAULT = wxAUI_MGR_ALLOW_FLOATING |
|
||||
wxAUI_MGR_TRANSPARENT_HINT |
|
||||
wxAUI_MGR_HINT_FADE |
|
||||
wxAUI_MGR_NO_VENETIAN_BLINDS_FADE
|
||||
wxAUI_MGR_NO_VENETIAN_BLINDS_FADE |
|
||||
wxAUI_MGR_LIVE_RESIZE
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -416,7 +417,7 @@ public:
|
|||
void SetFlags(unsigned int flags);
|
||||
unsigned int GetFlags() const;
|
||||
|
||||
static bool AlwaysUsesLiveResize();
|
||||
static bool AlwaysUsesLiveResize(const wxWindow* window = nullptr);
|
||||
bool HasLiveResize() const;
|
||||
|
||||
void SetManagedWindow(wxWindow* managedWnd);
|
||||
|
|
@ -485,8 +486,6 @@ public:
|
|||
virtual void ShowHint(const wxRect& rect);
|
||||
virtual void HideHint();
|
||||
|
||||
void OnHintActivate(wxActivateEvent& event);
|
||||
|
||||
public:
|
||||
|
||||
// deprecated -- please use SetManagedWindow()
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
#include "wx/gdicmn.h" // for wxBitmapType
|
||||
#include "wx/colour.h"
|
||||
#include "wx/image.h"
|
||||
#include "wx/variant.h"
|
||||
|
||||
class WXDLLIMPEXP_FWD_CORE wxBitmap;
|
||||
class WXDLLIMPEXP_FWD_CORE wxBitmapHandler;
|
||||
|
|
@ -28,15 +29,6 @@ class WXDLLIMPEXP_FWD_CORE wxMask;
|
|||
class WXDLLIMPEXP_FWD_CORE wxPalette;
|
||||
class WXDLLIMPEXP_FWD_CORE wxPixelDataBase;
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxVariant support
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#if wxUSE_VARIANT
|
||||
#include "wx/variant.h"
|
||||
DECLARE_VARIANT_OBJECT_EXPORTED(wxBitmap,WXDLLIMPEXP_CORE)
|
||||
#endif
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxMask represents the transparent area of the bitmap
|
||||
// ----------------------------------------------------------------------------
|
||||
|
|
@ -100,6 +92,9 @@ public:
|
|||
|
||||
// Rescale the given bitmap to the requested size.
|
||||
static void Rescale(wxBitmap& bmp, const wxSize& sizeNeeded);
|
||||
|
||||
// wxVariant support
|
||||
wxDECLARE_VARIANT_OBJECT_EXPORTED(wxBitmap, WXDLLIMPEXP_CORE);
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -178,6 +173,11 @@ public:
|
|||
virtual bool Create(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH) = 0;
|
||||
virtual bool Create(const wxSize& sz, int depth = wxBITMAP_SCREEN_DEPTH) = 0;
|
||||
|
||||
// DIP size and logical size are the same thing for ports using scaling,
|
||||
// i.e. where physical and logical sizes are different (e.g. wxGTK and
|
||||
// wxOSX), but we want to have both sets of functions to use them in the
|
||||
// ports where physical and logical sizes are the same (wxMSW).
|
||||
|
||||
bool CreateWithDIPSize(const wxSize& sz,
|
||||
double scale,
|
||||
int depth = wxBITMAP_SCREEN_DEPTH)
|
||||
|
|
@ -187,6 +187,15 @@ public:
|
|||
int depth = wxBITMAP_SCREEN_DEPTH)
|
||||
{ return DoCreate(wxSize(width, height), scale, depth); }
|
||||
|
||||
bool CreateWithLogicalSize(const wxSize& sz,
|
||||
double scale,
|
||||
int depth = wxBITMAP_SCREEN_DEPTH)
|
||||
{ return DoCreate(sz, scale, depth); }
|
||||
bool CreateWithLogicalSize(int width, int height,
|
||||
double scale,
|
||||
int depth = wxBITMAP_SCREEN_DEPTH)
|
||||
{ return DoCreate(wxSize(width, height), scale, depth); }
|
||||
|
||||
virtual int GetHeight() const = 0;
|
||||
virtual int GetWidth() const = 0;
|
||||
virtual int GetDepth() const = 0;
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
class wxBitmapBundleImpl;
|
||||
class WXDLLIMPEXP_FWD_CORE wxIconBundle;
|
||||
class WXDLLIMPEXP_FWD_CORE wxImageList;
|
||||
class WXDLLIMPEXP_FWD_BASE wxVariant;
|
||||
class WXDLLIMPEXP_FWD_CORE wxWindow;
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
|
@ -155,6 +156,15 @@ public:
|
|||
return GetImpl() == other.GetImpl();
|
||||
}
|
||||
|
||||
// Allow using wxBitmapBundle with wxVariant
|
||||
#if wxUSE_VARIANT
|
||||
friend WXDLLIMPEXP_CORE
|
||||
wxBitmapBundle& operator<<(wxBitmapBundle& value, const wxVariant& variant);
|
||||
friend WXDLLIMPEXP_CORE
|
||||
wxVariant& operator<<(wxVariant& variant, const wxBitmapBundle& value);
|
||||
#endif // wxUSE_VARIANT
|
||||
|
||||
|
||||
// Implementation only from now on.
|
||||
|
||||
// Get the bitmap size preferred by the majority of the elements of the
|
||||
|
|
@ -274,19 +284,4 @@ public:
|
|||
virtual wxBitmap GetBitmap(const wxSize& size) = 0;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Allow using wxBitmapBundle in wxVariant
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#if wxUSE_VARIANT
|
||||
|
||||
class WXDLLIMPEXP_FWD_BASE wxVariant;
|
||||
|
||||
WXDLLIMPEXP_CORE
|
||||
wxBitmapBundle& operator<<(wxBitmapBundle& value, const wxVariant& variant);
|
||||
WXDLLIMPEXP_CORE
|
||||
wxVariant& operator<<(wxVariant& variant, const wxBitmapBundle& value);
|
||||
|
||||
#endif // wxUSE_VARIANT
|
||||
|
||||
#endif // _WX_BMPBNDL_H_
|
||||
|
|
|
|||
|
|
@ -102,6 +102,8 @@ extern WXDLLIMPEXP_DATA_CORE(wxBrushList*) wxTheBrushList;
|
|||
// to compile without warnings which it would otherwise provoke from some
|
||||
// compilers as it compares elements of different enums
|
||||
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
|
||||
wxDEPRECATED_MSG("use wxBRUSHSTYLE_XXX constants only")
|
||||
inline bool operator==(wxBrushStyle s, wxDeprecatedGUIConstants t)
|
||||
{
|
||||
|
|
@ -114,4 +116,6 @@ inline bool operator!=(wxBrushStyle s, wxDeprecatedGUIConstants t)
|
|||
return static_cast<int>(s) != static_cast<int>(t);
|
||||
}
|
||||
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
|
||||
#endif // _WX_BRUSH_H_BASE_
|
||||
|
|
|
|||
|
|
@ -13,6 +13,10 @@
|
|||
#include "wx/defs.h"
|
||||
#include "wx/wxcrtbase.h"
|
||||
|
||||
#if wxUSE_STD_IOSTREAM
|
||||
#include "wx/iosfwrap.h"
|
||||
#endif
|
||||
|
||||
#include <stdlib.h> // malloc() and free()
|
||||
|
||||
class WXDLLIMPEXP_FWD_BASE wxCStrData;
|
||||
|
|
@ -55,14 +59,70 @@ struct UntypedBufferData
|
|||
// NB: this is defined in string.cpp and not the (non-existent) buffer.cpp
|
||||
WXDLLIMPEXP_BASE UntypedBufferData * GetUntypedNullData();
|
||||
|
||||
// Implementation of stream insertion operators: they can't be inline because
|
||||
// we don't have full std::ostream declaration here.
|
||||
#if wxUSE_STD_IOSTREAM
|
||||
WXDLLIMPEXP_BASE std::ostream& OutputCharBuffer(std::ostream&, const char* s);
|
||||
WXDLLIMPEXP_BASE std::ostream& OutputWCharBuffer(std::ostream&, const wchar_t* ws);
|
||||
#if defined(HAVE_WOSTREAM)
|
||||
WXDLLIMPEXP_BASE std::wostream& OutputWCharBuffer(std::wostream&, const wchar_t* ws);
|
||||
#endif // defined(HAVE_WOSTREAM)
|
||||
#endif // wxUSE_STD_IOSTREAM
|
||||
|
||||
} // namespace wxPrivate
|
||||
|
||||
|
||||
// Template used as CRTP base class for wxScopedCharTypeBuffer in order to
|
||||
// define overloaded operator<<() for it.
|
||||
//
|
||||
// By default we don't define any operators, but we do define them for the
|
||||
// usual char and wchar_t specializations below.
|
||||
template <typename T, typename Buffer>
|
||||
struct wxScopedCharTypeBufferStreamSupport
|
||||
{
|
||||
};
|
||||
|
||||
// Suppress the warning about declaring a non-template friend because this is
|
||||
// exactly what we want to do here.
|
||||
wxGCC_ONLY_WARNING_SUPPRESS(non-template-friend)
|
||||
|
||||
template <typename Buffer>
|
||||
struct wxScopedCharTypeBufferStreamSupport<char, Buffer>
|
||||
{
|
||||
#if wxUSE_STD_IOSTREAM
|
||||
friend std::ostream& operator<<(std::ostream& oss, const Buffer& buf)
|
||||
{
|
||||
return wxPrivate::OutputCharBuffer(oss, buf.data());
|
||||
}
|
||||
#endif // wxUSE_STD_IOSTREAM
|
||||
};
|
||||
|
||||
template <typename Buffer>
|
||||
struct wxScopedCharTypeBufferStreamSupport<wchar_t, Buffer>
|
||||
{
|
||||
#if wxUSE_STD_IOSTREAM
|
||||
friend std::ostream& operator<<(std::ostream& oss, const Buffer& buf)
|
||||
{
|
||||
return wxPrivate::OutputWCharBuffer(oss, buf.data());
|
||||
}
|
||||
#if defined(HAVE_WOSTREAM)
|
||||
friend std::wostream& operator<<(std::wostream& woss, const Buffer& buf)
|
||||
{
|
||||
return wxPrivate::OutputWCharBuffer(woss, buf.data());
|
||||
}
|
||||
#endif // defined(HAVE_WOSTREAM)
|
||||
#endif // wxUSE_STD_IOSTREAM
|
||||
};
|
||||
|
||||
wxGCC_ONLY_WARNING_RESTORE(non-template-friend)
|
||||
|
||||
|
||||
// Reference-counted character buffer for storing string data. The buffer
|
||||
// is only valid for as long as the "parent" object that provided the data
|
||||
// is valid; see wxCharTypeBuffer<T> for persistent variant.
|
||||
template <typename T>
|
||||
class wxScopedCharTypeBuffer
|
||||
: wxScopedCharTypeBufferStreamSupport<T, wxScopedCharTypeBuffer<T>>
|
||||
{
|
||||
public:
|
||||
typedef T CharType;
|
||||
|
|
@ -368,6 +428,13 @@ public:
|
|||
wxCharBuffer(size_t len) : wxCharTypeBufferBase(len) {}
|
||||
|
||||
wxCharBuffer(const wxCStrData& cstr);
|
||||
|
||||
#if wxUSE_STD_IOSTREAM
|
||||
// Define this to disambiguate between converting to the base class or to
|
||||
// wxString when using operator<<() with the objects of this class.
|
||||
friend WXDLLIMPEXP_BASE
|
||||
std::ostream& operator<<(std::ostream& oss, const wxCharBuffer& buf);
|
||||
#endif // wxUSE_STD_IOSTREAM
|
||||
};
|
||||
|
||||
class wxWCharBuffer : public wxCharTypeBuffer<wchar_t>
|
||||
|
|
@ -385,6 +452,16 @@ public:
|
|||
wxWCharBuffer(size_t len) : wxCharTypeBufferBase(len) {}
|
||||
|
||||
wxWCharBuffer(const wxCStrData& cstr);
|
||||
|
||||
#if wxUSE_STD_IOSTREAM
|
||||
// See wxCharBuffer for why this is needed.
|
||||
friend WXDLLIMPEXP_BASE
|
||||
std::ostream& operator<<(std::ostream& oss, const wxWCharBuffer& buf);
|
||||
#if defined(HAVE_WOSTREAM)
|
||||
friend WXDLLIMPEXP_BASE
|
||||
std::wostream& operator<<(std::wostream& woss, const wxWCharBuffer& buf);
|
||||
#endif // defined(HAVE_WOSTREAM)
|
||||
#endif // wxUSE_STD_IOSTREAM
|
||||
};
|
||||
|
||||
// wxCharTypeBuffer<T> implicitly convertible to T*, for char and wchar_t,
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
|
||||
#include "wx/defs.h"
|
||||
#include "wx/gdiobj.h"
|
||||
#include "wx/variant.h"
|
||||
|
||||
class WXDLLIMPEXP_FWD_CORE wxColour;
|
||||
|
||||
|
|
@ -53,15 +54,6 @@ const unsigned char wxALPHA_OPAQUE = 0xff;
|
|||
#define wxTransparentColour wxColour(0, 0, 0, wxALPHA_TRANSPARENT)
|
||||
#define wxTransparentColor wxTransparentColour
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxVariant support
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#if wxUSE_VARIANT
|
||||
#include "wx/variant.h"
|
||||
DECLARE_VARIANT_OBJECT_EXPORTED(wxColour,WXDLLIMPEXP_CORE)
|
||||
#endif
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxColourBase: this class has no data members, just some functions to avoid
|
||||
// code redundancy in all native wxColour implementations
|
||||
|
|
@ -188,6 +180,8 @@ public:
|
|||
wxColour ChangeLightness(int ialpha) const;
|
||||
wxColour& MakeDisabled(unsigned char brightness = 255);
|
||||
|
||||
wxDECLARE_VARIANT_OBJECT_EXPORTED(wxColour, WXDLLIMPEXP_CORE);
|
||||
|
||||
protected:
|
||||
// Some ports need Init() and while we don't, provide a stub so that the
|
||||
// ports which don't need it are not forced to define it
|
||||
|
|
|
|||
|
|
@ -62,7 +62,9 @@ enum
|
|||
wxCONFIG_USE_GLOBAL_FILE = 2,
|
||||
wxCONFIG_USE_RELATIVE_PATH = 4,
|
||||
wxCONFIG_USE_NO_ESCAPE_CHARACTERS = 8,
|
||||
wxCONFIG_USE_SUBDIR = 16
|
||||
wxCONFIG_USE_SUBDIR = 16,
|
||||
wxCONFIG_USE_XDG = 32,
|
||||
wxCONFIG_USE_HOME = 64
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -23,9 +23,11 @@
|
|||
#if defined(__WINDOWS__) && wxUSE_CONFIG_NATIVE
|
||||
#include "wx/msw/regconf.h"
|
||||
#define wxConfig wxRegConfig
|
||||
#define wxHAS_CONFIG_AS_REGCONFIG
|
||||
#else // either we're under Unix or wish to always use config files
|
||||
#include "wx/fileconf.h"
|
||||
#define wxConfig wxFileConfig
|
||||
#define wxHAS_CONFIG_AS_FILECONFIG
|
||||
#endif
|
||||
|
||||
#endif // wxUSE_CONFIG
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@
|
|||
|
||||
#include <time.h>
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include <limits.h> // for INT_MIN
|
||||
|
||||
#include "wx/longlong.h"
|
||||
|
|
@ -44,7 +46,7 @@ struct _SYSTEMTIME;
|
|||
* ? 2. getdate() function like under Solaris
|
||||
* + 3. text conversion for wxDateSpan
|
||||
* + 4. pluggable modules for the workdays calculations
|
||||
* 5. wxDateTimeHolidayAuthority for Easter and other christian feasts
|
||||
* 5. wxDateTimeHolidayAuthority Christian feasts outside of US
|
||||
*/
|
||||
|
||||
/*
|
||||
|
|
@ -1276,6 +1278,8 @@ public:
|
|||
return wxTimeSpan(*this).Multiply(n);
|
||||
}
|
||||
|
||||
friend WXDLLIMPEXP_BASE wxTimeSpan operator*(int n, const wxTimeSpan& ts);
|
||||
|
||||
// return this timespan with opposite sign
|
||||
wxTimeSpan Negate() const { return wxTimeSpan(-GetValue()); }
|
||||
// negate the value of the timespan
|
||||
|
|
@ -1529,6 +1533,7 @@ public:
|
|||
{
|
||||
return wxDateSpan(*this).Multiply(n);
|
||||
}
|
||||
friend WXDLLIMPEXP_BASE wxDateSpan operator*(int n, const wxDateSpan& ds);
|
||||
|
||||
// ds1 == d2 if and only if for every wxDateTime t t + ds1 == t + ds2
|
||||
inline bool operator==(const wxDateSpan& ds) const
|
||||
|
|
@ -1599,13 +1604,7 @@ protected:
|
|||
virtual bool DoIsHoliday(const wxDateTime& dt) const = 0;
|
||||
|
||||
// this function should fill the array with all holidays between the two
|
||||
// given dates - it is implemented in the base class, but in a very
|
||||
// inefficient way (it just iterates over all days and uses IsHoliday() for
|
||||
// each of them), so it must be overridden in the derived class where the
|
||||
// base class version may be explicitly used if needed
|
||||
//
|
||||
// returns the number of holidays in the given range and fills holidays
|
||||
// array
|
||||
// given dates
|
||||
virtual size_t DoGetHolidaysInRange(const wxDateTime& dtStart,
|
||||
const wxDateTime& dtEnd,
|
||||
wxDateTimeArray& holidays) const = 0;
|
||||
|
|
@ -1625,6 +1624,85 @@ protected:
|
|||
wxDateTimeArray& holidays) const override;
|
||||
};
|
||||
|
||||
// https://marian.org/mary/feast-days
|
||||
// https://www.omvusa.org/blog/catholic-holy-days-of-obligation/
|
||||
class WXDLLIMPEXP_BASE wxDateTimeUSCatholicFeasts : public wxDateTimeHolidayAuthority
|
||||
{
|
||||
public:
|
||||
// Easter for a given year.
|
||||
// Based on https://www.geeksforgeeks.org/how-to-calculate-the-easter-date-for-a-given-year-using-gauss-algorithm/
|
||||
// Validated against 1600 to 2099, using data from:
|
||||
// https://www.assa.org.au/edm (Astronomical Society of South Australia)
|
||||
// https://www.census.gov/data/software/x13as/genhol/easter-dates.html (US Census Bureau)
|
||||
static wxDateTime GetEaster(int year);
|
||||
|
||||
// Ascension for a given year.
|
||||
// Celebrated on the 40th day of Easter/
|
||||
// the sixth Thursday after Easter Sunday.
|
||||
static wxDateTime GetThursdayAscension(int year)
|
||||
{
|
||||
const wxDateTime ascension = GetEaster(year) + wxDateSpan::Days(39);
|
||||
wxASSERT_MSG(
|
||||
ascension.GetWeekDay() == wxDateTime::WeekDay::Thu,
|
||||
"Error in Ascension calculation!");
|
||||
return ascension;
|
||||
}
|
||||
|
||||
// Ascension for a given year.
|
||||
// Same as traditional Ascension, but moved to the following Sunday.
|
||||
static wxDateTime GetSundayAscension(int year)
|
||||
{
|
||||
const wxDateTime ascension = GetEaster(year) + wxDateSpan::Weeks(6);
|
||||
wxASSERT_MSG(
|
||||
ascension.GetWeekDay() == wxDateTime::WeekDay::Sun,
|
||||
"Error in Ascension calculation!");
|
||||
return ascension;
|
||||
}
|
||||
protected:
|
||||
bool DoIsHoliday(const wxDateTime& dt) const override
|
||||
{
|
||||
if (dt.IsSameDate(GetEaster(dt.GetYear())) ||
|
||||
dt.IsSameDate(GetThursdayAscension(dt.GetYear())) )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
for (const auto& feast : m_holyDaysOfObligation)
|
||||
{
|
||||
if (feast.GetMonth() == dt.GetMonth() &&
|
||||
feast.GetDay() == dt.GetDay())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
size_t DoGetHolidaysInRange(const wxDateTime& dtStart,
|
||||
const wxDateTime& dtEnd,
|
||||
wxDateTimeArray& holidays) const override;
|
||||
private:
|
||||
static std::vector<wxDateTime> m_holyDaysOfObligation;
|
||||
};
|
||||
|
||||
// Christmas and Easter
|
||||
class WXDLLIMPEXP_BASE wxDateTimeChristianHolidays : public wxDateTimeUSCatholicFeasts
|
||||
{
|
||||
protected:
|
||||
bool DoIsHoliday(const wxDateTime& dt) const override
|
||||
{
|
||||
if (dt.IsSameDate(GetEaster(dt.GetYear())) ||
|
||||
(dt.GetMonth() == 12 && dt.GetDay() == 25))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
size_t DoGetHolidaysInRange(const wxDateTime& dtStart,
|
||||
const wxDateTime& dtEnd,
|
||||
wxDateTimeArray& holidays) const override;
|
||||
};
|
||||
|
||||
// ============================================================================
|
||||
// inline functions implementation
|
||||
// ============================================================================
|
||||
|
|
@ -2168,22 +2246,6 @@ inline wxDateSpan wxDateSpan::Subtract(const wxDateSpan& other) const
|
|||
|
||||
#undef MODIFY_AND_RETURN
|
||||
|
||||
// ============================================================================
|
||||
// binary operators
|
||||
// ============================================================================
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxTimeSpan operators
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
wxTimeSpan WXDLLIMPEXP_BASE operator*(int n, const wxTimeSpan& ts);
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxDateSpan
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
wxDateSpan WXDLLIMPEXP_BASE operator*(int n, const wxDateSpan& ds);
|
||||
|
||||
// ============================================================================
|
||||
// other helper functions
|
||||
// ============================================================================
|
||||
|
|
|
|||
|
|
@ -128,6 +128,8 @@ public:
|
|||
virtual wxDCImpl* CreatePrinterDC( wxPrinterDC *owner, const wxPrintData &data ) = 0;
|
||||
#endif
|
||||
|
||||
virtual bool CanDrawUsingClientDC(const wxWindow* window) const = 0;
|
||||
|
||||
static void Set(wxDCFactory *factory);
|
||||
static wxDCFactory *Get();
|
||||
|
||||
|
|
@ -154,6 +156,8 @@ public:
|
|||
#if wxUSE_PRINTING_ARCHITECTURE
|
||||
virtual wxDCImpl* CreatePrinterDC( wxPrinterDC *owner, const wxPrintData &data ) override;
|
||||
#endif
|
||||
|
||||
virtual bool CanDrawUsingClientDC(const wxWindow* window) const override;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -36,6 +36,8 @@ class WXDLLIMPEXP_CORE wxClientDC : public wxWindowDC
|
|||
public:
|
||||
wxClientDC(wxWindow *win);
|
||||
|
||||
static bool CanBeUsedForDrawing(const wxWindow* window);
|
||||
|
||||
protected:
|
||||
wxClientDC(wxDCImpl *impl) : wxWindowDC(impl) { }
|
||||
|
||||
|
|
|
|||
|
|
@ -782,19 +782,22 @@ typedef short int WXTYPE;
|
|||
|
||||
|
||||
#define wxDEFINE_COMPARISON(op, T1, T2, cmp) \
|
||||
inline bool operator op(T1 x, T2 y) { return cmp(x, y, op); }
|
||||
friend bool operator op(T1 x, T2 y) { return cmp(x, y, op); }
|
||||
|
||||
#define wxDEFINE_COMPARISON_REV(op, T1, T2, cmp, oprev) \
|
||||
inline bool operator op(T2 y, T1 x) { return cmp(x, y, oprev); }
|
||||
friend bool operator op(T2 y, T1 x) { return cmp(x, y, oprev); }
|
||||
|
||||
#define wxDEFINE_COMPARISON_BY_REV(op, T1, T2, oprev) \
|
||||
inline bool operator op(T1 x, T2 y) { return y oprev x; }
|
||||
friend bool operator op(T1 x, T2 y) { return y oprev x; }
|
||||
|
||||
/*
|
||||
Define all 6 comparison operators (==, !=, <, <=, >, >=) for the given
|
||||
types in the specified order. The implementation is provided by the cmp
|
||||
macro. Normally wxDEFINE_ALL_COMPARISONS should be used as comparison
|
||||
operators are usually symmetric.
|
||||
|
||||
Note that comparison operators are defined as hidden friends and so this
|
||||
macro can only be used inside the class declaration.
|
||||
*/
|
||||
#define wxDEFINE_COMPARISONS(T1, T2, cmp) \
|
||||
wxFOR_ALL_COMPARISONS_3(wxDEFINE_COMPARISON, T1, T2, cmp)
|
||||
|
|
@ -803,6 +806,9 @@ typedef short int WXTYPE;
|
|||
Define all 6 comparison operators (==, !=, <, <=, >, >=) for the given
|
||||
types in the specified order, implemented in terms of existing operators
|
||||
for the reverse order.
|
||||
|
||||
Note that comparison operators are defined as hidden friends and so this
|
||||
macro can only be used inside the class declaration.
|
||||
*/
|
||||
#define wxDEFINE_COMPARISONS_BY_REV(T1, T2) \
|
||||
wxFOR_ALL_COMPARISONS_2_REV(wxDEFINE_COMPARISON_BY_REV, T1, T2)
|
||||
|
|
|
|||
|
|
@ -51,6 +51,9 @@ public:
|
|||
wxClientDCImpl(wxDC *owner) : wxWindowDCImpl(owner) { }
|
||||
wxClientDCImpl(wxDC *owner, wxWindow *win);
|
||||
|
||||
static bool
|
||||
CanBeUsedForDrawing(const wxWindow* WXUNUSED(window)) { return true; }
|
||||
|
||||
wxDECLARE_DYNAMIC_CLASS(wxClientDCImpl);
|
||||
wxDECLARE_NO_COPY_CLASS(wxClientDCImpl);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -67,6 +67,8 @@ public:
|
|||
return !IsSameAs(other);
|
||||
}
|
||||
|
||||
wxDECLARE_VARIANT_OBJECT_EXPORTED(wxDataViewIconText, WXDLLIMPEXP_CORE);
|
||||
|
||||
private:
|
||||
wxString m_text;
|
||||
wxBitmapBundle m_bitmap;
|
||||
|
|
@ -74,8 +76,6 @@ private:
|
|||
wxDECLARE_DYNAMIC_CLASS(wxDataViewIconText);
|
||||
};
|
||||
|
||||
DECLARE_VARIANT_OBJECT_EXPORTED(wxDataViewIconText, WXDLLIMPEXP_CORE)
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxDataViewCheckIconText: value class used by wxDataViewCheckIconTextRenderer
|
||||
// ----------------------------------------------------------------------------
|
||||
|
|
@ -94,14 +94,14 @@ public:
|
|||
wxCheckBoxState GetCheckedState() const { return m_checkedState; }
|
||||
void SetCheckedState(wxCheckBoxState state) { m_checkedState = state; }
|
||||
|
||||
wxDECLARE_VARIANT_OBJECT_EXPORTED(wxDataViewCheckIconText, WXDLLIMPEXP_CORE);
|
||||
|
||||
private:
|
||||
wxCheckBoxState m_checkedState;
|
||||
|
||||
wxDECLARE_DYNAMIC_CLASS(wxDataViewCheckIconText);
|
||||
};
|
||||
|
||||
DECLARE_VARIANT_OBJECT_EXPORTED(wxDataViewCheckIconText, WXDLLIMPEXP_CORE)
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxDataViewRendererBase
|
||||
// ----------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -123,6 +123,24 @@ public:
|
|||
return GetLocalFile(szFile, style).GetFullPath();
|
||||
}
|
||||
|
||||
// Function to migrate, i.e. move, an existing local config file to another
|
||||
// location. Old and new style determine the existing and new file paths.
|
||||
struct MigrationResult
|
||||
{
|
||||
// If empty, it means the old file wasn't found and nothing was done.
|
||||
wxString oldPath;
|
||||
|
||||
// The name of the new file.
|
||||
wxString newPath;
|
||||
|
||||
// If empty, means the file was successfully migrated.
|
||||
wxString error;
|
||||
};
|
||||
static MigrationResult
|
||||
MigrateLocalFile(const wxString& name,
|
||||
int newStyle,
|
||||
int oldStyle = wxCONFIG_USE_HOME);
|
||||
|
||||
// ctor & dtor
|
||||
// New constructor: one size fits all. Specify wxCONFIG_USE_LOCAL_FILE or
|
||||
// wxCONFIG_USE_GLOBAL_FILE to say which files should be used.
|
||||
|
|
|
|||
|
|
@ -671,6 +671,8 @@ extern WXDLLIMPEXP_DATA_CORE(wxFontList*) wxTheFontList;
|
|||
// to compile without warnings which it would otherwise provoke from some
|
||||
// compilers as it compares elements of different enums
|
||||
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
|
||||
wxDEPRECATED_MSG("use wxFONTFAMILY_XXX constants") \
|
||||
inline bool operator==(wxFontFamily s, wxDeprecatedGUIConstants t)
|
||||
{ return static_cast<int>(s) == static_cast<int>(t); }
|
||||
|
|
@ -690,4 +692,6 @@ wxDEPRECATED_MSG("use wxFONTWEIGHT_XXX constants") \
|
|||
inline bool operator!=(wxFontWeight s, wxDeprecatedGUIConstants t)
|
||||
{ return static_cast<int>(s) != static_cast<int>(t); }
|
||||
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
|
||||
#endif // _WX_FONT_H_BASE_
|
||||
|
|
|
|||
31
include/wx/fs_data.h
Normal file
31
include/wx/fs_data.h
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/fs_data.h
|
||||
// Purpose: DATA scheme file system.
|
||||
// Author: Vyacheslav Lisovski
|
||||
// Copyright: (c) 2023 Vyacheslav Lisovski
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_FS_DATA_H_
|
||||
#define _WX_FS_DATA_H_
|
||||
|
||||
#include "wx/defs.h"
|
||||
|
||||
#if wxUSE_FILESYSTEM
|
||||
|
||||
#include "wx/filesys.h"
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxDataSchemeFSHandler
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class WXDLLIMPEXP_BASE wxDataSchemeFSHandler : public wxFileSystemHandler
|
||||
{
|
||||
public:
|
||||
virtual bool CanOpen(const wxString& location) override;
|
||||
virtual wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location) override;
|
||||
};
|
||||
|
||||
#endif // wxUSE_FILESYSTEM
|
||||
|
||||
#endif // _WX_FS_DATA_H_
|
||||
|
|
@ -295,6 +295,102 @@ public:
|
|||
wxSize& operator/=(double i) { x = wxRound(x/i); y = wxRound(y/i); return *this; }
|
||||
wxSize& operator*=(double i) { x = wxRound(x*i); y = wxRound(y*i); return *this; }
|
||||
|
||||
friend bool operator==(const wxSize& s1, const wxSize& s2)
|
||||
{
|
||||
return s1.x == s2.x && s1.y == s2.y;
|
||||
}
|
||||
|
||||
friend bool operator!=(const wxSize& s1, const wxSize& s2)
|
||||
{
|
||||
return s1.x != s2.x || s1.y != s2.y;
|
||||
}
|
||||
|
||||
friend wxSize operator+(const wxSize& s1, const wxSize& s2)
|
||||
{
|
||||
return wxSize(s1.x + s2.x, s1.y + s2.y);
|
||||
}
|
||||
|
||||
friend wxSize operator-(const wxSize& s1, const wxSize& s2)
|
||||
{
|
||||
return wxSize(s1.x - s2.x, s1.y - s2.y);
|
||||
}
|
||||
|
||||
friend wxSize operator/(const wxSize& s, int i)
|
||||
{
|
||||
return wxSize(s.x / i, s.y / i);
|
||||
}
|
||||
|
||||
friend wxSize operator*(const wxSize& s, int i)
|
||||
{
|
||||
return wxSize(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
friend wxSize operator*(int i, const wxSize& s)
|
||||
{
|
||||
return wxSize(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
friend wxSize operator/(const wxSize& s, unsigned int i)
|
||||
{
|
||||
return wxSize(s.x / i, s.y / i);
|
||||
}
|
||||
|
||||
friend wxSize operator*(const wxSize& s, unsigned int i)
|
||||
{
|
||||
return wxSize(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
friend wxSize operator*(unsigned int i, const wxSize& s)
|
||||
{
|
||||
return wxSize(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
friend wxSize operator/(const wxSize& s, long i)
|
||||
{
|
||||
return wxSize(s.x / i, s.y / i);
|
||||
}
|
||||
|
||||
friend wxSize operator*(const wxSize& s, long i)
|
||||
{
|
||||
return wxSize(int(s.x * i), int(s.y * i));
|
||||
}
|
||||
|
||||
friend wxSize operator*(long i, const wxSize& s)
|
||||
{
|
||||
return wxSize(int(s.x * i), int(s.y * i));
|
||||
}
|
||||
|
||||
friend wxSize operator/(const wxSize& s, unsigned long i)
|
||||
{
|
||||
return wxSize(int(s.x / i), int(s.y / i));
|
||||
}
|
||||
|
||||
friend wxSize operator*(const wxSize& s, unsigned long i)
|
||||
{
|
||||
return wxSize(int(s.x * i), int(s.y * i));
|
||||
}
|
||||
|
||||
friend wxSize operator*(unsigned long i, const wxSize& s)
|
||||
{
|
||||
return wxSize(int(s.x * i), int(s.y * i));
|
||||
}
|
||||
|
||||
friend wxSize operator/(const wxSize& s, double i)
|
||||
{
|
||||
return wxSize(wxRound(s.x / i), wxRound(s.y / i));
|
||||
}
|
||||
|
||||
friend wxSize operator*(const wxSize& s, double i)
|
||||
{
|
||||
return wxSize(wxRound(s.x * i), wxRound(s.y * i));
|
||||
}
|
||||
|
||||
friend wxSize operator*(double i, const wxSize& s)
|
||||
{
|
||||
return wxSize(wxRound(s.x * i), wxRound(s.y * i));
|
||||
}
|
||||
|
||||
|
||||
void IncTo(const wxSize& sz)
|
||||
{ if ( sz.x > x ) x = sz.x; if ( sz.y > y ) y = sz.y; }
|
||||
void DecTo(const wxSize& sz)
|
||||
|
|
@ -350,103 +446,6 @@ public:
|
|||
int GetY() const { return y; }
|
||||
};
|
||||
|
||||
inline bool operator==(const wxSize& s1, const wxSize& s2)
|
||||
{
|
||||
return s1.x == s2.x && s1.y == s2.y;
|
||||
}
|
||||
|
||||
inline bool operator!=(const wxSize& s1, const wxSize& s2)
|
||||
{
|
||||
return s1.x != s2.x || s1.y != s2.y;
|
||||
}
|
||||
|
||||
inline wxSize operator+(const wxSize& s1, const wxSize& s2)
|
||||
{
|
||||
return wxSize(s1.x + s2.x, s1.y + s2.y);
|
||||
}
|
||||
|
||||
inline wxSize operator-(const wxSize& s1, const wxSize& s2)
|
||||
{
|
||||
return wxSize(s1.x - s2.x, s1.y - s2.y);
|
||||
}
|
||||
|
||||
inline wxSize operator/(const wxSize& s, int i)
|
||||
{
|
||||
return wxSize(s.x / i, s.y / i);
|
||||
}
|
||||
|
||||
inline wxSize operator*(const wxSize& s, int i)
|
||||
{
|
||||
return wxSize(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
inline wxSize operator*(int i, const wxSize& s)
|
||||
{
|
||||
return wxSize(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
inline wxSize operator/(const wxSize& s, unsigned int i)
|
||||
{
|
||||
return wxSize(s.x / i, s.y / i);
|
||||
}
|
||||
|
||||
inline wxSize operator*(const wxSize& s, unsigned int i)
|
||||
{
|
||||
return wxSize(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
inline wxSize operator*(unsigned int i, const wxSize& s)
|
||||
{
|
||||
return wxSize(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
inline wxSize operator/(const wxSize& s, long i)
|
||||
{
|
||||
return wxSize(s.x / i, s.y / i);
|
||||
}
|
||||
|
||||
inline wxSize operator*(const wxSize& s, long i)
|
||||
{
|
||||
return wxSize(int(s.x * i), int(s.y * i));
|
||||
}
|
||||
|
||||
inline wxSize operator*(long i, const wxSize& s)
|
||||
{
|
||||
return wxSize(int(s.x * i), int(s.y * i));
|
||||
}
|
||||
|
||||
inline wxSize operator/(const wxSize& s, unsigned long i)
|
||||
{
|
||||
return wxSize(int(s.x / i), int(s.y / i));
|
||||
}
|
||||
|
||||
inline wxSize operator*(const wxSize& s, unsigned long i)
|
||||
{
|
||||
return wxSize(int(s.x * i), int(s.y * i));
|
||||
}
|
||||
|
||||
inline wxSize operator*(unsigned long i, const wxSize& s)
|
||||
{
|
||||
return wxSize(int(s.x * i), int(s.y * i));
|
||||
}
|
||||
|
||||
inline wxSize operator/(const wxSize& s, double i)
|
||||
{
|
||||
return wxSize(wxRound(s.x / i), wxRound(s.y / i));
|
||||
}
|
||||
|
||||
inline wxSize operator*(const wxSize& s, double i)
|
||||
{
|
||||
return wxSize(wxRound(s.x * i), wxRound(s.y * i));
|
||||
}
|
||||
|
||||
inline wxSize operator*(double i, const wxSize& s)
|
||||
{
|
||||
return wxSize(wxRound(s.x * i), wxRound(s.y * i));
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Point classes: with real or integer coordinates
|
||||
// ---------------------------------------------------------------------------
|
||||
|
|
@ -469,102 +468,134 @@ public:
|
|||
|
||||
wxRealPoint& operator+=(const wxSize& s) { x += s.GetWidth(); y += s.GetHeight(); return *this; }
|
||||
wxRealPoint& operator-=(const wxSize& s) { x -= s.GetWidth(); y -= s.GetHeight(); return *this; }
|
||||
|
||||
wxRealPoint& operator/=(int i) { x *= i; y *= i; return *this; }
|
||||
wxRealPoint& operator*=(int i) { x /= i; y /= i; return *this; }
|
||||
wxRealPoint& operator/=(double f) { x /= f; y /= f; return *this; }
|
||||
wxRealPoint& operator*=(double f) { x *= f; y *= f; return *this; }
|
||||
|
||||
friend bool operator==(const wxRealPoint& p1, const wxRealPoint& p2)
|
||||
{
|
||||
return wxIsSameDouble(p1.x, p2.x) && wxIsSameDouble(p1.y, p2.y);
|
||||
}
|
||||
|
||||
friend bool operator!=(const wxRealPoint& p1, const wxRealPoint& p2)
|
||||
{
|
||||
return !(p1 == p2);
|
||||
}
|
||||
|
||||
friend wxRealPoint operator+(const wxRealPoint& p1, const wxRealPoint& p2)
|
||||
{
|
||||
return wxRealPoint(p1.x + p2.x, p1.y + p2.y);
|
||||
}
|
||||
|
||||
friend wxRealPoint operator-(const wxRealPoint& p1, const wxRealPoint& p2)
|
||||
{
|
||||
return wxRealPoint(p1.x - p2.x, p1.y - p2.y);
|
||||
}
|
||||
|
||||
friend wxRealPoint operator+(const wxRealPoint& pt, const wxSize& sz)
|
||||
{
|
||||
return wxRealPoint(pt.x + sz.GetWidth(), pt.y + sz.GetHeight());
|
||||
}
|
||||
|
||||
friend wxRealPoint operator-(const wxRealPoint& pt, const wxSize& sz)
|
||||
{
|
||||
return wxRealPoint(pt.x - sz.GetWidth(), pt.y - sz.GetHeight());
|
||||
}
|
||||
|
||||
friend wxRealPoint operator+(const wxSize& sz, const wxRealPoint& pt)
|
||||
{
|
||||
return wxRealPoint(sz.GetWidth() + pt.x, sz.GetHeight() + pt.y);
|
||||
}
|
||||
|
||||
friend wxRealPoint operator-(const wxSize& sz, const wxRealPoint& pt)
|
||||
{
|
||||
return wxRealPoint(sz.GetWidth() - pt.x, sz.GetHeight() - pt.y);
|
||||
}
|
||||
|
||||
friend wxRealPoint operator-(const wxRealPoint& pt)
|
||||
{
|
||||
return wxRealPoint(-pt.x, -pt.y);
|
||||
}
|
||||
|
||||
friend wxRealPoint operator/(const wxRealPoint& p, int i)
|
||||
{
|
||||
return wxRealPoint(p.x / i, p.y / i);
|
||||
}
|
||||
|
||||
friend wxRealPoint operator*(const wxRealPoint& p, int i)
|
||||
{
|
||||
return wxRealPoint(p.x * i, p.y * i);
|
||||
}
|
||||
|
||||
friend wxRealPoint operator*(int i, const wxRealPoint& p)
|
||||
{
|
||||
return wxRealPoint(p.x * i, p.y * i);
|
||||
}
|
||||
|
||||
friend wxRealPoint operator/(const wxRealPoint& p, unsigned int i)
|
||||
{
|
||||
return wxRealPoint(p.x / i, p.y / i);
|
||||
}
|
||||
|
||||
friend wxRealPoint operator*(const wxRealPoint& p, unsigned int i)
|
||||
{
|
||||
return wxRealPoint(p.x * i, p.y * i);
|
||||
}
|
||||
|
||||
friend wxRealPoint operator*(unsigned int i, const wxRealPoint& p)
|
||||
{
|
||||
return wxRealPoint(p.x * i, p.y * i);
|
||||
}
|
||||
|
||||
friend wxRealPoint operator/(const wxRealPoint& p, long i)
|
||||
{
|
||||
return wxRealPoint(p.x / i, p.y / i);
|
||||
}
|
||||
|
||||
friend wxRealPoint operator*(const wxRealPoint& p, long i)
|
||||
{
|
||||
return wxRealPoint(p.x * i, p.y * i);
|
||||
}
|
||||
|
||||
friend wxRealPoint operator*(long i, const wxRealPoint& p)
|
||||
{
|
||||
return wxRealPoint(p.x * i, p.y * i);
|
||||
}
|
||||
|
||||
friend wxRealPoint operator/(const wxRealPoint& p, unsigned long i)
|
||||
{
|
||||
return wxRealPoint(p.x / i, p.y / i);
|
||||
}
|
||||
|
||||
friend wxRealPoint operator*(const wxRealPoint& p, unsigned long i)
|
||||
{
|
||||
return wxRealPoint(p.x * i, p.y * i);
|
||||
}
|
||||
|
||||
friend wxRealPoint operator*(unsigned long i, const wxRealPoint& p)
|
||||
{
|
||||
return wxRealPoint(p.x * i, p.y * i);
|
||||
}
|
||||
|
||||
friend wxRealPoint operator/(const wxRealPoint& p, double f)
|
||||
{
|
||||
return wxRealPoint(p.x / f, p.y / f);
|
||||
}
|
||||
|
||||
friend wxRealPoint operator*(const wxRealPoint& p, double f)
|
||||
{
|
||||
return wxRealPoint(p.x * f, p.y * f);
|
||||
}
|
||||
|
||||
friend wxRealPoint operator*(double f, const wxRealPoint& p)
|
||||
{
|
||||
return wxRealPoint(p.x * f, p.y * f);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
inline bool operator==(const wxRealPoint& p1, const wxRealPoint& p2)
|
||||
{
|
||||
return wxIsSameDouble(p1.x, p2.x) && wxIsSameDouble(p1.y, p2.y);
|
||||
}
|
||||
|
||||
inline bool operator!=(const wxRealPoint& p1, const wxRealPoint& p2)
|
||||
{
|
||||
return !(p1 == p2);
|
||||
}
|
||||
|
||||
inline wxRealPoint operator+(const wxRealPoint& p1, const wxRealPoint& p2)
|
||||
{
|
||||
return wxRealPoint(p1.x + p2.x, p1.y + p2.y);
|
||||
}
|
||||
|
||||
|
||||
inline wxRealPoint operator-(const wxRealPoint& p1, const wxRealPoint& p2)
|
||||
{
|
||||
return wxRealPoint(p1.x - p2.x, p1.y - p2.y);
|
||||
}
|
||||
|
||||
|
||||
inline wxRealPoint operator/(const wxRealPoint& s, int i)
|
||||
{
|
||||
return wxRealPoint(s.x / i, s.y / i);
|
||||
}
|
||||
|
||||
inline wxRealPoint operator*(const wxRealPoint& s, int i)
|
||||
{
|
||||
return wxRealPoint(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
inline wxRealPoint operator*(int i, const wxRealPoint& s)
|
||||
{
|
||||
return wxRealPoint(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
inline wxRealPoint operator/(const wxRealPoint& s, unsigned int i)
|
||||
{
|
||||
return wxRealPoint(s.x / i, s.y / i);
|
||||
}
|
||||
|
||||
inline wxRealPoint operator*(const wxRealPoint& s, unsigned int i)
|
||||
{
|
||||
return wxRealPoint(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
inline wxRealPoint operator*(unsigned int i, const wxRealPoint& s)
|
||||
{
|
||||
return wxRealPoint(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
inline wxRealPoint operator/(const wxRealPoint& s, long i)
|
||||
{
|
||||
return wxRealPoint(s.x / i, s.y / i);
|
||||
}
|
||||
|
||||
inline wxRealPoint operator*(const wxRealPoint& s, long i)
|
||||
{
|
||||
return wxRealPoint(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
inline wxRealPoint operator*(long i, const wxRealPoint& s)
|
||||
{
|
||||
return wxRealPoint(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
inline wxRealPoint operator/(const wxRealPoint& s, unsigned long i)
|
||||
{
|
||||
return wxRealPoint(s.x / i, s.y / i);
|
||||
}
|
||||
|
||||
inline wxRealPoint operator*(const wxRealPoint& s, unsigned long i)
|
||||
{
|
||||
return wxRealPoint(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
inline wxRealPoint operator*(unsigned long i, const wxRealPoint& s)
|
||||
{
|
||||
return wxRealPoint(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
inline wxRealPoint operator*(const wxRealPoint& s, double i)
|
||||
{
|
||||
return wxRealPoint(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
inline wxRealPoint operator*(double i, const wxRealPoint& s)
|
||||
{
|
||||
return wxRealPoint(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxPoint: 2D point with integer coordinates
|
||||
// ----------------------------------------------------------------------------
|
||||
|
|
@ -587,6 +618,134 @@ public:
|
|||
wxPoint& operator+=(const wxSize& s) { x += s.GetWidth(); y += s.GetHeight(); return *this; }
|
||||
wxPoint& operator-=(const wxSize& s) { x -= s.GetWidth(); y -= s.GetHeight(); return *this; }
|
||||
|
||||
wxPoint& operator/=(int i) { x /= i; y /= i; return *this; }
|
||||
wxPoint& operator*=(int i) { x *= i; y *= i; return *this; }
|
||||
wxPoint& operator/=(double f) { x = wxRound(x/f); y = wxRound(y/f); return *this; }
|
||||
wxPoint& operator*=(double f) { x = wxRound(x*f); y = wxRound(y*f); return *this; }
|
||||
|
||||
// comparison
|
||||
friend bool operator==(const wxPoint& p1, const wxPoint& p2)
|
||||
{
|
||||
return p1.x == p2.x && p1.y == p2.y;
|
||||
}
|
||||
|
||||
friend bool operator!=(const wxPoint& p1, const wxPoint& p2)
|
||||
{
|
||||
return !(p1 == p2);
|
||||
}
|
||||
|
||||
|
||||
// arithmetic operations (component wise)
|
||||
friend wxPoint operator+(const wxPoint& p1, const wxPoint& p2)
|
||||
{
|
||||
return wxPoint(p1.x + p2.x, p1.y + p2.y);
|
||||
}
|
||||
|
||||
friend wxPoint operator-(const wxPoint& p1, const wxPoint& p2)
|
||||
{
|
||||
return wxPoint(p1.x - p2.x, p1.y - p2.y);
|
||||
}
|
||||
|
||||
friend wxPoint operator+(const wxPoint& p, const wxSize& s)
|
||||
{
|
||||
return wxPoint(p.x + s.x, p.y + s.y);
|
||||
}
|
||||
|
||||
friend wxPoint operator-(const wxPoint& p, const wxSize& s)
|
||||
{
|
||||
return wxPoint(p.x - s.x, p.y - s.y);
|
||||
}
|
||||
|
||||
friend wxPoint operator+(const wxSize& s, const wxPoint& p)
|
||||
{
|
||||
return wxPoint(p.x + s.x, p.y + s.y);
|
||||
}
|
||||
|
||||
friend wxPoint operator-(const wxSize& s, const wxPoint& p)
|
||||
{
|
||||
return wxPoint(s.x - p.x, s.y - p.y);
|
||||
}
|
||||
|
||||
friend wxPoint operator-(const wxPoint& p)
|
||||
{
|
||||
return wxPoint(-p.x, -p.y);
|
||||
}
|
||||
|
||||
friend wxPoint operator/(const wxPoint& p, int i)
|
||||
{
|
||||
return wxPoint(p.x / i, p.y / i);
|
||||
}
|
||||
|
||||
friend wxPoint operator*(const wxPoint& p, int i)
|
||||
{
|
||||
return wxPoint(p.x * i, p.y * i);
|
||||
}
|
||||
|
||||
friend wxPoint operator*(int i, const wxPoint& p)
|
||||
{
|
||||
return wxPoint(p.x * i, p.y * i);
|
||||
}
|
||||
|
||||
friend wxPoint operator/(const wxPoint& p, unsigned int i)
|
||||
{
|
||||
return wxPoint(p.x / i, p.y / i);
|
||||
}
|
||||
|
||||
friend wxPoint operator*(const wxPoint& p, unsigned int i)
|
||||
{
|
||||
return wxPoint(p.x * i, p.y * i);
|
||||
}
|
||||
|
||||
friend wxPoint operator*(unsigned int i, const wxPoint& p)
|
||||
{
|
||||
return wxPoint(p.x * i, p.y * i);
|
||||
}
|
||||
|
||||
friend wxPoint operator/(const wxPoint& p, long i)
|
||||
{
|
||||
return wxPoint(p.x / i, p.y / i);
|
||||
}
|
||||
|
||||
friend wxPoint operator*(const wxPoint& p, long i)
|
||||
{
|
||||
return wxPoint(int(p.x * i), int(p.y * i));
|
||||
}
|
||||
|
||||
friend wxPoint operator*(long i, const wxPoint& p)
|
||||
{
|
||||
return wxPoint(int(p.x * i), int(p.y * i));
|
||||
}
|
||||
|
||||
friend wxPoint operator/(const wxPoint& p, unsigned long i)
|
||||
{
|
||||
return wxPoint(p.x / i, p.y / i);
|
||||
}
|
||||
|
||||
friend wxPoint operator*(const wxPoint& p, unsigned long i)
|
||||
{
|
||||
return wxPoint(int(p.x * i), int(p.y * i));
|
||||
}
|
||||
|
||||
friend wxPoint operator*(unsigned long i, const wxPoint& p)
|
||||
{
|
||||
return wxPoint(int(p.x * i), int(p.y * i));
|
||||
}
|
||||
|
||||
friend wxPoint operator/(const wxPoint& p, double f)
|
||||
{
|
||||
return wxPoint(wxRound(p.x / f), wxRound(p.y / f));
|
||||
}
|
||||
|
||||
friend wxPoint operator*(const wxPoint& p, double f)
|
||||
{
|
||||
return wxPoint(int(p.x * f), int(p.y * f));
|
||||
}
|
||||
|
||||
friend wxPoint operator*(double f, const wxPoint& p)
|
||||
{
|
||||
return wxPoint(int(p.x * f), int(p.y * f));
|
||||
}
|
||||
|
||||
// check if both components are set/initialized
|
||||
bool IsFullySpecified() const { return x != wxDefaultCoord && y != wxDefaultCoord; }
|
||||
|
||||
|
|
@ -601,124 +760,6 @@ public:
|
|||
};
|
||||
|
||||
|
||||
// comparison
|
||||
inline bool operator==(const wxPoint& p1, const wxPoint& p2)
|
||||
{
|
||||
return p1.x == p2.x && p1.y == p2.y;
|
||||
}
|
||||
|
||||
inline bool operator!=(const wxPoint& p1, const wxPoint& p2)
|
||||
{
|
||||
return !(p1 == p2);
|
||||
}
|
||||
|
||||
|
||||
// arithmetic operations (component wise)
|
||||
inline wxPoint operator+(const wxPoint& p1, const wxPoint& p2)
|
||||
{
|
||||
return wxPoint(p1.x + p2.x, p1.y + p2.y);
|
||||
}
|
||||
|
||||
inline wxPoint operator-(const wxPoint& p1, const wxPoint& p2)
|
||||
{
|
||||
return wxPoint(p1.x - p2.x, p1.y - p2.y);
|
||||
}
|
||||
|
||||
inline wxPoint operator+(const wxPoint& p, const wxSize& s)
|
||||
{
|
||||
return wxPoint(p.x + s.x, p.y + s.y);
|
||||
}
|
||||
|
||||
inline wxPoint operator-(const wxPoint& p, const wxSize& s)
|
||||
{
|
||||
return wxPoint(p.x - s.x, p.y - s.y);
|
||||
}
|
||||
|
||||
inline wxPoint operator+(const wxSize& s, const wxPoint& p)
|
||||
{
|
||||
return wxPoint(p.x + s.x, p.y + s.y);
|
||||
}
|
||||
|
||||
inline wxPoint operator-(const wxSize& s, const wxPoint& p)
|
||||
{
|
||||
return wxPoint(s.x - p.x, s.y - p.y);
|
||||
}
|
||||
|
||||
inline wxPoint operator-(const wxPoint& p)
|
||||
{
|
||||
return wxPoint(-p.x, -p.y);
|
||||
}
|
||||
|
||||
inline wxPoint operator/(const wxPoint& s, int i)
|
||||
{
|
||||
return wxPoint(s.x / i, s.y / i);
|
||||
}
|
||||
|
||||
inline wxPoint operator*(const wxPoint& s, int i)
|
||||
{
|
||||
return wxPoint(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
inline wxPoint operator*(int i, const wxPoint& s)
|
||||
{
|
||||
return wxPoint(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
inline wxPoint operator/(const wxPoint& s, unsigned int i)
|
||||
{
|
||||
return wxPoint(s.x / i, s.y / i);
|
||||
}
|
||||
|
||||
inline wxPoint operator*(const wxPoint& s, unsigned int i)
|
||||
{
|
||||
return wxPoint(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
inline wxPoint operator*(unsigned int i, const wxPoint& s)
|
||||
{
|
||||
return wxPoint(s.x * i, s.y * i);
|
||||
}
|
||||
|
||||
inline wxPoint operator/(const wxPoint& s, long i)
|
||||
{
|
||||
return wxPoint(s.x / i, s.y / i);
|
||||
}
|
||||
|
||||
inline wxPoint operator*(const wxPoint& s, long i)
|
||||
{
|
||||
return wxPoint(int(s.x * i), int(s.y * i));
|
||||
}
|
||||
|
||||
inline wxPoint operator*(long i, const wxPoint& s)
|
||||
{
|
||||
return wxPoint(int(s.x * i), int(s.y * i));
|
||||
}
|
||||
|
||||
inline wxPoint operator/(const wxPoint& s, unsigned long i)
|
||||
{
|
||||
return wxPoint(s.x / i, s.y / i);
|
||||
}
|
||||
|
||||
inline wxPoint operator*(const wxPoint& s, unsigned long i)
|
||||
{
|
||||
return wxPoint(int(s.x * i), int(s.y * i));
|
||||
}
|
||||
|
||||
inline wxPoint operator*(unsigned long i, const wxPoint& s)
|
||||
{
|
||||
return wxPoint(int(s.x * i), int(s.y * i));
|
||||
}
|
||||
|
||||
inline wxPoint operator*(const wxPoint& s, double i)
|
||||
{
|
||||
return wxPoint(int(s.x * i), int(s.y * i));
|
||||
}
|
||||
|
||||
inline wxPoint operator*(double i, const wxPoint& s)
|
||||
{
|
||||
return wxPoint(int(s.x * i), int(s.y * i));
|
||||
}
|
||||
|
||||
WX_DECLARE_LIST_WITH_DECL(wxPoint, wxPointList, class WXDLLIMPEXP_CORE);
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
|
@ -845,9 +886,24 @@ public:
|
|||
|
||||
// like Union() but don't ignore empty rectangles
|
||||
wxRect& operator+=(const wxRect& rect);
|
||||
friend WXDLLIMPEXP_CORE wxRect operator+(const wxRect& r1, const wxRect& r2);
|
||||
|
||||
// intersections of two rectangles not testing for empty rectangles
|
||||
wxRect& operator*=(const wxRect& rect);
|
||||
friend WXDLLIMPEXP_CORE wxRect operator*(const wxRect& r1, const wxRect& r2);
|
||||
|
||||
// compare rectangles
|
||||
friend bool operator==(const wxRect& r1, const wxRect& r2)
|
||||
{
|
||||
return (r1.x == r2.x) && (r1.y == r2.y) &&
|
||||
(r1.width == r2.width) && (r1.height == r2.height);
|
||||
}
|
||||
|
||||
friend bool operator!=(const wxRect& r1, const wxRect& r2)
|
||||
{
|
||||
return !(r1 == r2);
|
||||
}
|
||||
|
||||
|
||||
// centre this rectangle in the given (usually, but not necessarily,
|
||||
// larger) one
|
||||
|
|
@ -877,24 +933,6 @@ public:
|
|||
};
|
||||
|
||||
|
||||
// compare rectangles
|
||||
inline bool operator==(const wxRect& r1, const wxRect& r2)
|
||||
{
|
||||
return (r1.x == r2.x) && (r1.y == r2.y) &&
|
||||
(r1.width == r2.width) && (r1.height == r2.height);
|
||||
}
|
||||
|
||||
inline bool operator!=(const wxRect& r1, const wxRect& r2)
|
||||
{
|
||||
return !(r1 == r2);
|
||||
}
|
||||
|
||||
// like Union() but don't treat empty rectangles specially
|
||||
WXDLLIMPEXP_CORE wxRect operator+(const wxRect& r1, const wxRect& r2);
|
||||
|
||||
// intersections of two rectangles
|
||||
WXDLLIMPEXP_CORE wxRect operator*(const wxRect& r1, const wxRect& r2);
|
||||
|
||||
// define functions which couldn't be defined above because of declarations
|
||||
// order
|
||||
inline void wxSize::IncBy(const wxPoint& pt) { IncBy(pt.x, pt.y); }
|
||||
|
|
|
|||
|
|
@ -2284,6 +2284,8 @@ public:
|
|||
|
||||
void ClearSelection();
|
||||
|
||||
bool CopySelection();
|
||||
|
||||
bool IsInSelection( int row, int col ) const;
|
||||
|
||||
bool IsInSelection( const wxGridCellCoords& coords ) const
|
||||
|
|
|
|||
|
|
@ -51,6 +51,8 @@ public:
|
|||
// ctors, assignment operators...), but it's ok to have such function
|
||||
void CopyFromBitmap(const wxBitmap& bmp);
|
||||
|
||||
wxDECLARE_VARIANT_OBJECT_EXPORTED(wxIcon, WXDLLIMPEXP_CORE);
|
||||
|
||||
private:
|
||||
wxDECLARE_DYNAMIC_CLASS(wxIcon);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -131,6 +131,9 @@ public:
|
|||
// Is the window split?
|
||||
bool IsSplit() const { return (m_windowTwo != nullptr); }
|
||||
|
||||
// Return true if wxSP_LIVE_UPDATE is always used.
|
||||
bool AlwaysUsesLiveUpdate() const;
|
||||
|
||||
// Sets the border size
|
||||
void SetBorderSize(int WXUNUSED(width)) { }
|
||||
|
||||
|
|
|
|||
|
|
@ -243,7 +243,7 @@ protected:
|
|||
*m_key_current,
|
||||
// A hint to select a parent item after deleting a child
|
||||
*m_select_me;
|
||||
unsigned short m_indent;
|
||||
unsigned int m_indent;
|
||||
int m_lineHeight;
|
||||
wxPen m_dottedPen;
|
||||
wxBrush m_hilightBrush,
|
||||
|
|
@ -357,6 +357,8 @@ protected:
|
|||
virtual wxSize DoGetBestSize() const override;
|
||||
|
||||
private:
|
||||
void OnDPIChanged(wxDPIChangedEvent& event);
|
||||
|
||||
void OnSysColourChanged(wxSysColourChangedEvent& WXUNUSED(event))
|
||||
{
|
||||
InitVisualAttributes();
|
||||
|
|
|
|||
|
|
@ -71,6 +71,60 @@ public :
|
|||
inline bool operator==(const wxPoint2DInt& pt) const;
|
||||
inline bool operator!=(const wxPoint2DInt& pt) const;
|
||||
|
||||
friend wxPoint2DInt operator+(const wxPoint2DInt& pt1 , const wxPoint2DInt& pt2)
|
||||
{
|
||||
return wxPoint2DInt( pt1.m_x + pt2.m_x , pt1.m_y + pt2.m_y );
|
||||
}
|
||||
|
||||
friend wxPoint2DInt operator-(const wxPoint2DInt& pt1 , const wxPoint2DInt& pt2)
|
||||
{
|
||||
return wxPoint2DInt( pt1.m_x - pt2.m_x , pt1.m_y - pt2.m_y );
|
||||
}
|
||||
|
||||
|
||||
friend wxPoint2DInt operator*(const wxPoint2DInt& pt1 , const wxPoint2DInt& pt2)
|
||||
{
|
||||
return wxPoint2DInt( pt1.m_x * pt2.m_x , pt1.m_y * pt2.m_y );
|
||||
}
|
||||
|
||||
friend wxPoint2DInt operator*(wxInt32 n , const wxPoint2DInt& pt)
|
||||
{
|
||||
return wxPoint2DInt( pt.m_x * n , pt.m_y * n );
|
||||
}
|
||||
|
||||
friend wxPoint2DInt operator*(wxDouble n , const wxPoint2DInt& pt)
|
||||
{
|
||||
return wxPoint2DInt( static_cast<wxInt32>(pt.m_x * n) ,
|
||||
static_cast<wxInt32>(pt.m_y * n) );
|
||||
}
|
||||
|
||||
friend wxPoint2DInt operator*(const wxPoint2DInt& pt , wxInt32 n)
|
||||
{
|
||||
return wxPoint2DInt( pt.m_x * n , pt.m_y * n );
|
||||
}
|
||||
|
||||
friend wxPoint2DInt operator*(const wxPoint2DInt& pt , wxDouble n)
|
||||
{
|
||||
return wxPoint2DInt( static_cast<wxInt32>(pt.m_x * n) ,
|
||||
static_cast<wxInt32>(pt.m_y * n) );
|
||||
}
|
||||
|
||||
friend wxPoint2DInt operator/(const wxPoint2DInt& pt1 , const wxPoint2DInt& pt2)
|
||||
{
|
||||
return wxPoint2DInt( pt1.m_x / pt2.m_x , pt1.m_y / pt2.m_y );
|
||||
}
|
||||
|
||||
friend wxPoint2DInt operator/(const wxPoint2DInt& pt , wxInt32 n)
|
||||
{
|
||||
return wxPoint2DInt( pt.m_x / n , pt.m_y / n );
|
||||
}
|
||||
|
||||
friend wxPoint2DInt operator/(const wxPoint2DInt& pt , wxDouble n)
|
||||
{
|
||||
return wxPoint2DInt( static_cast<wxInt32>(pt.m_x / n) ,
|
||||
static_cast<wxInt32>(pt.m_y / n) );
|
||||
}
|
||||
|
||||
#if wxUSE_STREAMS
|
||||
void WriteTo( wxDataOutputStream &stream ) const;
|
||||
void ReadFrom( wxDataInputStream &stream );
|
||||
|
|
@ -80,17 +134,6 @@ public :
|
|||
wxInt32 m_y;
|
||||
};
|
||||
|
||||
inline wxPoint2DInt operator+(const wxPoint2DInt& pt1 , const wxPoint2DInt& pt2);
|
||||
inline wxPoint2DInt operator-(const wxPoint2DInt& pt1 , const wxPoint2DInt& pt2);
|
||||
inline wxPoint2DInt operator*(const wxPoint2DInt& pt1 , const wxPoint2DInt& pt2);
|
||||
inline wxPoint2DInt operator*(wxInt32 n , const wxPoint2DInt& pt);
|
||||
inline wxPoint2DInt operator*(wxDouble n , const wxPoint2DInt& pt);
|
||||
inline wxPoint2DInt operator*(const wxPoint2DInt& pt , wxInt32 n);
|
||||
inline wxPoint2DInt operator*(const wxPoint2DInt& pt , wxDouble n);
|
||||
inline wxPoint2DInt operator/(const wxPoint2DInt& pt1 , const wxPoint2DInt& pt2);
|
||||
inline wxPoint2DInt operator/(const wxPoint2DInt& pt , wxInt32 n);
|
||||
inline wxPoint2DInt operator/(const wxPoint2DInt& pt , wxDouble n);
|
||||
|
||||
inline wxPoint2DInt::wxPoint2DInt()
|
||||
{
|
||||
m_x = 0;
|
||||
|
|
@ -209,60 +252,6 @@ inline bool wxPoint2DInt::operator!=(const wxPoint2DInt& pt) const
|
|||
return m_x != pt.m_x || m_y != pt.m_y;
|
||||
}
|
||||
|
||||
inline wxPoint2DInt operator+(const wxPoint2DInt& pt1 , const wxPoint2DInt& pt2)
|
||||
{
|
||||
return wxPoint2DInt( pt1.m_x + pt2.m_x , pt1.m_y + pt2.m_y );
|
||||
}
|
||||
|
||||
inline wxPoint2DInt operator-(const wxPoint2DInt& pt1 , const wxPoint2DInt& pt2)
|
||||
{
|
||||
return wxPoint2DInt( pt1.m_x - pt2.m_x , pt1.m_y - pt2.m_y );
|
||||
}
|
||||
|
||||
|
||||
inline wxPoint2DInt operator*(const wxPoint2DInt& pt1 , const wxPoint2DInt& pt2)
|
||||
{
|
||||
return wxPoint2DInt( pt1.m_x * pt2.m_x , pt1.m_y * pt2.m_y );
|
||||
}
|
||||
|
||||
inline wxPoint2DInt operator*(wxInt32 n , const wxPoint2DInt& pt)
|
||||
{
|
||||
return wxPoint2DInt( pt.m_x * n , pt.m_y * n );
|
||||
}
|
||||
|
||||
inline wxPoint2DInt operator*(wxDouble n , const wxPoint2DInt& pt)
|
||||
{
|
||||
return wxPoint2DInt( static_cast<wxInt32>(pt.m_x * n) ,
|
||||
static_cast<wxInt32>(pt.m_y * n) );
|
||||
}
|
||||
|
||||
inline wxPoint2DInt operator*(const wxPoint2DInt& pt , wxInt32 n)
|
||||
{
|
||||
return wxPoint2DInt( pt.m_x * n , pt.m_y * n );
|
||||
}
|
||||
|
||||
inline wxPoint2DInt operator*(const wxPoint2DInt& pt , wxDouble n)
|
||||
{
|
||||
return wxPoint2DInt( static_cast<wxInt32>(pt.m_x * n) ,
|
||||
static_cast<wxInt32>(pt.m_y * n) );
|
||||
}
|
||||
|
||||
inline wxPoint2DInt operator/(const wxPoint2DInt& pt1 , const wxPoint2DInt& pt2)
|
||||
{
|
||||
return wxPoint2DInt( pt1.m_x / pt2.m_x , pt1.m_y / pt2.m_y );
|
||||
}
|
||||
|
||||
inline wxPoint2DInt operator/(const wxPoint2DInt& pt , wxInt32 n)
|
||||
{
|
||||
return wxPoint2DInt( pt.m_x / n , pt.m_y / n );
|
||||
}
|
||||
|
||||
inline wxPoint2DInt operator/(const wxPoint2DInt& pt , wxDouble n)
|
||||
{
|
||||
return wxPoint2DInt( static_cast<wxInt32>(pt.m_x / n) ,
|
||||
static_cast<wxInt32>(pt.m_y / n) );
|
||||
}
|
||||
|
||||
// wxPoint2Ds represent a point or a vector in a 2d coordinate system
|
||||
|
||||
class WXDLLIMPEXP_CORE wxPoint2DDouble
|
||||
|
|
@ -307,21 +296,61 @@ public :
|
|||
inline bool operator==(const wxPoint2DDouble& pt) const;
|
||||
inline bool operator!=(const wxPoint2DDouble& pt) const;
|
||||
|
||||
friend wxPoint2DDouble operator+(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2)
|
||||
{
|
||||
return wxPoint2DDouble( pt1.m_x + pt2.m_x , pt1.m_y + pt2.m_y );
|
||||
}
|
||||
|
||||
friend wxPoint2DDouble operator-(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2)
|
||||
{
|
||||
return wxPoint2DDouble( pt1.m_x - pt2.m_x , pt1.m_y - pt2.m_y );
|
||||
}
|
||||
|
||||
|
||||
friend wxPoint2DDouble operator*(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2)
|
||||
{
|
||||
return wxPoint2DDouble( pt1.m_x * pt2.m_x , pt1.m_y * pt2.m_y );
|
||||
}
|
||||
|
||||
friend wxPoint2DDouble operator*(wxDouble n , const wxPoint2DDouble& pt)
|
||||
{
|
||||
return wxPoint2DDouble( pt.m_x * n , pt.m_y * n );
|
||||
}
|
||||
|
||||
friend wxPoint2DDouble operator*(wxInt32 n , const wxPoint2DDouble& pt)
|
||||
{
|
||||
return wxPoint2DDouble( pt.m_x * n , pt.m_y * n );
|
||||
}
|
||||
|
||||
friend wxPoint2DDouble operator*(const wxPoint2DDouble& pt , wxDouble n)
|
||||
{
|
||||
return wxPoint2DDouble( pt.m_x * n , pt.m_y * n );
|
||||
}
|
||||
|
||||
friend wxPoint2DDouble operator*(const wxPoint2DDouble& pt , wxInt32 n)
|
||||
{
|
||||
return wxPoint2DDouble( pt.m_x * n , pt.m_y * n );
|
||||
}
|
||||
|
||||
friend wxPoint2DDouble operator/(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2)
|
||||
{
|
||||
return wxPoint2DDouble( pt1.m_x / pt2.m_x , pt1.m_y / pt2.m_y );
|
||||
}
|
||||
|
||||
friend wxPoint2DDouble operator/(const wxPoint2DDouble& pt , wxDouble n)
|
||||
{
|
||||
return wxPoint2DDouble( pt.m_x / n , pt.m_y / n );
|
||||
}
|
||||
|
||||
friend wxPoint2DDouble operator/(const wxPoint2DDouble& pt , wxInt32 n)
|
||||
{
|
||||
return wxPoint2DDouble( pt.m_x / n , pt.m_y / n );
|
||||
}
|
||||
|
||||
wxDouble m_x;
|
||||
wxDouble m_y;
|
||||
};
|
||||
|
||||
inline wxPoint2DDouble operator+(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2);
|
||||
inline wxPoint2DDouble operator-(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2);
|
||||
inline wxPoint2DDouble operator*(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2);
|
||||
inline wxPoint2DDouble operator*(wxDouble n , const wxPoint2DDouble& pt);
|
||||
inline wxPoint2DDouble operator*(wxInt32 n , const wxPoint2DDouble& pt);
|
||||
inline wxPoint2DDouble operator*(const wxPoint2DDouble& pt , wxDouble n);
|
||||
inline wxPoint2DDouble operator*(const wxPoint2DDouble& pt , wxInt32 n);
|
||||
inline wxPoint2DDouble operator/(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2);
|
||||
inline wxPoint2DDouble operator/(const wxPoint2DDouble& pt , wxDouble n);
|
||||
inline wxPoint2DDouble operator/(const wxPoint2DDouble& pt , wxInt32 n);
|
||||
|
||||
inline wxPoint2DDouble::wxPoint2DDouble()
|
||||
{
|
||||
m_x = 0.0;
|
||||
|
|
@ -426,57 +455,6 @@ inline bool wxPoint2DDouble::operator!=(const wxPoint2DDouble& pt) const
|
|||
return !(*this == pt);
|
||||
}
|
||||
|
||||
inline wxPoint2DDouble operator+(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2)
|
||||
{
|
||||
return wxPoint2DDouble( pt1.m_x + pt2.m_x , pt1.m_y + pt2.m_y );
|
||||
}
|
||||
|
||||
inline wxPoint2DDouble operator-(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2)
|
||||
{
|
||||
return wxPoint2DDouble( pt1.m_x - pt2.m_x , pt1.m_y - pt2.m_y );
|
||||
}
|
||||
|
||||
|
||||
inline wxPoint2DDouble operator*(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2)
|
||||
{
|
||||
return wxPoint2DDouble( pt1.m_x * pt2.m_x , pt1.m_y * pt2.m_y );
|
||||
}
|
||||
|
||||
inline wxPoint2DDouble operator*(wxDouble n , const wxPoint2DDouble& pt)
|
||||
{
|
||||
return wxPoint2DDouble( pt.m_x * n , pt.m_y * n );
|
||||
}
|
||||
|
||||
inline wxPoint2DDouble operator*(wxInt32 n , const wxPoint2DDouble& pt)
|
||||
{
|
||||
return wxPoint2DDouble( pt.m_x * n , pt.m_y * n );
|
||||
}
|
||||
|
||||
inline wxPoint2DDouble operator*(const wxPoint2DDouble& pt , wxDouble n)
|
||||
{
|
||||
return wxPoint2DDouble( pt.m_x * n , pt.m_y * n );
|
||||
}
|
||||
|
||||
inline wxPoint2DDouble operator*(const wxPoint2DDouble& pt , wxInt32 n)
|
||||
{
|
||||
return wxPoint2DDouble( pt.m_x * n , pt.m_y * n );
|
||||
}
|
||||
|
||||
inline wxPoint2DDouble operator/(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2)
|
||||
{
|
||||
return wxPoint2DDouble( pt1.m_x / pt2.m_x , pt1.m_y / pt2.m_y );
|
||||
}
|
||||
|
||||
inline wxPoint2DDouble operator/(const wxPoint2DDouble& pt , wxDouble n)
|
||||
{
|
||||
return wxPoint2DDouble( pt.m_x / n , pt.m_y / n );
|
||||
}
|
||||
|
||||
inline wxPoint2DDouble operator/(const wxPoint2DDouble& pt , wxInt32 n)
|
||||
{
|
||||
return wxPoint2DDouble( pt.m_x / n , pt.m_y / n );
|
||||
}
|
||||
|
||||
// wxRect2Ds are an axis-aligned rectangles, each side of the rect is parallel to the x- or m_y- axis. The rectangle is either defined by the
|
||||
// top left and bottom right corner, or by the top left corner and size. A point is contained within the rectangle if
|
||||
// left <= x < right and top <= m_y < bottom , thus it is a half open interval.
|
||||
|
|
|
|||
|
|
@ -59,6 +59,8 @@ protected:
|
|||
private:
|
||||
typedef wxCheckBoxBase base_type;
|
||||
|
||||
virtual void GTKRemoveBorder() override;
|
||||
|
||||
GtkWidget *m_widgetCheckbox;
|
||||
GtkWidget *m_widgetLabel;
|
||||
|
||||
|
|
|
|||
|
|
@ -87,6 +87,8 @@ protected:
|
|||
wxSize GTKGetEntryMargins(GtkEntry* entry) const;
|
||||
|
||||
private:
|
||||
virtual void GTKRemoveBorder() override;
|
||||
|
||||
wxDECLARE_DYNAMIC_CLASS(wxControl);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -64,6 +64,8 @@ class wxClientDCImpl: public wxGTKCairoDCImpl
|
|||
public:
|
||||
wxClientDCImpl(wxClientDC* owner, wxWindow* window);
|
||||
|
||||
static bool CanBeUsedForDrawing(const wxWindow* window);
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(wxClientDCImpl);
|
||||
};
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -150,6 +150,9 @@ public:
|
|||
|
||||
virtual void DoGetSize(int *width, int *height) const override;
|
||||
|
||||
static bool
|
||||
CanBeUsedForDrawing(const wxWindow* WXUNUSED(window)) { return true; }
|
||||
|
||||
wxDECLARE_ABSTRACT_CLASS(wxClientDCImpl);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ template<typename T> void InitMouseEvent(wxWindowGTK *win,
|
|||
// Some no-window widgets, notably GtkEntry on GTK3, have a GdkWindow
|
||||
// covering part of their area. Event coordinates from that window are
|
||||
// not relative to the widget, so do the conversion here.
|
||||
if (!gtk_widget_get_has_window(win->m_widget) &&
|
||||
if (win->m_wxwindow == nullptr && !gtk_widget_get_has_window(win->m_widget) &&
|
||||
gtk_widget_get_window(win->m_widget) == gdk_window_get_parent(gdk_event->window))
|
||||
{
|
||||
GtkAllocation a;
|
||||
|
|
|
|||
|
|
@ -1334,7 +1334,7 @@
|
|||
|
||||
// Setting wxUSE_GLCANVAS to 1 enables OpenGL support. You need to have OpenGL
|
||||
// headers and libraries to be able to compile the library with wxUSE_GLCANVAS
|
||||
// set to 1 and, under Windows, also to add opengl32.lib and glu32.lib to the
|
||||
// set to 1 and, under Windows, also to add opengl32.lib to the
|
||||
// list of libraries used to link your application when linking to wxWidgets
|
||||
// statically (although this is done implicitly for Microsoft Visual C++ users).
|
||||
//
|
||||
|
|
|
|||
|
|
@ -466,6 +466,7 @@ protected:
|
|||
|
||||
private:
|
||||
void Init();
|
||||
virtual void GTKRemoveBorder();
|
||||
|
||||
// return true if this window must have a non-null parent, false if it can
|
||||
// be created without parent (normally only top level windows but in wxGTK
|
||||
|
|
|
|||
|
|
@ -343,6 +343,9 @@ protected:
|
|||
virtual const wxHeaderColumn& GetColumn(unsigned int idx) const override;
|
||||
virtual bool UpdateColumnWidthToFit(unsigned int idx, int widthTitle) override;
|
||||
|
||||
virtual void UpdateColumnVisibility(unsigned int idx, bool show) override;
|
||||
virtual void UpdateColumnsOrder(const wxArrayInt& order) override;
|
||||
|
||||
// and define another one to be overridden in the derived classes: it
|
||||
// should return the best width for the given column contents or -1 if not
|
||||
// implemented, we use it to implement UpdateColumnWidthToFit()
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
#define _WX_ICON_H_BASE_
|
||||
|
||||
#include "wx/iconloc.h"
|
||||
|
||||
#include "wx/variant.h"
|
||||
|
||||
// a more readable way to tell
|
||||
#define wxICON_SCREEN_DEPTH (-1)
|
||||
|
|
@ -57,15 +57,5 @@
|
|||
#define wxICON_IS_BITMAP
|
||||
#endif
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxVariant support
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#if wxUSE_VARIANT
|
||||
#include "wx/variant.h"
|
||||
DECLARE_VARIANT_OBJECT_EXPORTED(wxIcon,WXDLLIMPEXP_CORE)
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
// _WX_ICON_H_BASE_
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
#include "wx/gdicmn.h"
|
||||
#include "wx/hashmap.h"
|
||||
#include "wx/arrstr.h"
|
||||
#include "wx/variant.h"
|
||||
|
||||
#if wxUSE_STREAMS
|
||||
# include "wx/stream.h"
|
||||
|
|
@ -98,15 +99,6 @@ class WXDLLIMPEXP_FWD_CORE wxImageHandler;
|
|||
class WXDLLIMPEXP_FWD_CORE wxImage;
|
||||
class WXDLLIMPEXP_FWD_CORE wxPalette;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxVariant support
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#if wxUSE_VARIANT
|
||||
#include "wx/variant.h"
|
||||
DECLARE_VARIANT_OBJECT_EXPORTED(wxImage,WXDLLIMPEXP_CORE)
|
||||
#endif
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxImageHandler
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -594,6 +586,9 @@ public:
|
|||
static HSVValue RGBtoHSV(const RGBValue& rgb);
|
||||
static RGBValue HSVtoRGB(const HSVValue& hsv);
|
||||
|
||||
// wxVariant support
|
||||
wxDECLARE_VARIANT_OBJECT_EXPORTED(wxImage, WXDLLIMPEXP_CORE);
|
||||
|
||||
protected:
|
||||
static wxList sm_handlers;
|
||||
|
||||
|
|
|
|||
|
|
@ -341,6 +341,19 @@ protected:
|
|||
#endif // WXWIN_COMPATIBILITY_3_0
|
||||
};
|
||||
|
||||
// Special kind of trivial formatter which simply uses the message unchanged.
|
||||
class wxLogFormatterNone : public wxLogFormatter
|
||||
{
|
||||
public:
|
||||
wxLogFormatterNone() = default;
|
||||
|
||||
virtual wxString Format(wxLogLevel WXUNUSED(level),
|
||||
const wxString& msg,
|
||||
const wxLogRecordInfo& WXUNUSED(info)) const override
|
||||
{
|
||||
return msg;
|
||||
}
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// derive from this class to redirect (or suppress, or ...) log messages
|
||||
|
|
@ -665,6 +678,10 @@ public:
|
|||
// get the string contents with all messages logged
|
||||
const wxString& GetBuffer() const { return m_str; }
|
||||
|
||||
// clear all the messages, this, in particular, prevents them from being
|
||||
// flushed
|
||||
void Clear() { m_str.clear(); }
|
||||
|
||||
// show the buffer contents to the user in the best possible way (this uses
|
||||
// wxMessageOutputMessageBox) and clear it
|
||||
virtual void Flush() override;
|
||||
|
|
@ -748,6 +765,41 @@ private:
|
|||
bool m_flagOld; // the previous value of the wxLog::ms_doLog
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Collect all logged messages into a (multiline) string.
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// This class is supposed to be used as a local variable and collects, without
|
||||
// showing them, all the messages logged during its lifetime.
|
||||
class wxLogCollector
|
||||
{
|
||||
public:
|
||||
wxLogCollector()
|
||||
: m_logOrig{wxLog::SetActiveTarget(&m_logBuf)}
|
||||
{
|
||||
delete m_logBuf.SetFormatter(new wxLogFormatterNone{});
|
||||
}
|
||||
|
||||
~wxLogCollector()
|
||||
{
|
||||
// Don't flush the messages in the buffer.
|
||||
m_logBuf.Clear();
|
||||
|
||||
wxLog::SetActiveTarget(m_logOrig);
|
||||
}
|
||||
|
||||
const wxString& GetMessages() const
|
||||
{
|
||||
return m_logBuf.GetBuffer();
|
||||
}
|
||||
|
||||
private:
|
||||
wxLogBuffer m_logBuf;
|
||||
wxLog* const m_logOrig;
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(wxLogCollector);
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// chaining log target: installs itself as a log target and passes all
|
||||
// messages to the real log target given to it in the ctor but also forwards
|
||||
|
|
|
|||
|
|
@ -197,6 +197,8 @@ public:
|
|||
{ return wxLongLongNative(m_ll + ll.m_ll); }
|
||||
wxLongLongNative& operator+=(const wxLongLongNative& ll)
|
||||
{ m_ll += ll.m_ll; return *this; }
|
||||
friend wxLongLongNative operator+(long l, const wxLongLongNative& ll)
|
||||
{ return ll + l; }
|
||||
|
||||
wxLongLongNative operator+(const wxLongLong_t ll) const
|
||||
{ return wxLongLongNative(m_ll + ll); }
|
||||
|
|
@ -221,6 +223,10 @@ public:
|
|||
{ return wxLongLongNative(m_ll - ll.m_ll); }
|
||||
wxLongLongNative& operator-=(const wxLongLongNative& ll)
|
||||
{ m_ll -= ll.m_ll; return *this; }
|
||||
friend wxLongLongNative operator-(long l, const wxLongLongNative& ll)
|
||||
{
|
||||
return wxLongLongNative(l) - ll;
|
||||
}
|
||||
|
||||
wxLongLongNative operator-(const wxLongLong_t ll) const
|
||||
{ return wxLongLongNative(m_ll - ll); }
|
||||
|
|
@ -314,6 +320,13 @@ public:
|
|||
bool operator>=(long l) const
|
||||
{ return m_ll >= l; }
|
||||
|
||||
friend bool operator<(long l, const wxLongLongNative& ll) { return ll > l; }
|
||||
friend bool operator>(long l, const wxLongLongNative& ll) { return ll < l; }
|
||||
friend bool operator<=(long l, const wxLongLongNative& ll) { return ll >= l; }
|
||||
friend bool operator>=(long l, const wxLongLongNative& ll) { return ll <= l; }
|
||||
friend bool operator==(long l, const wxLongLongNative& ll) { return ll == l; }
|
||||
friend bool operator!=(long l, const wxLongLongNative& ll) { return ll != l; }
|
||||
|
||||
// miscellaneous
|
||||
|
||||
// return the string representation of this number
|
||||
|
|
@ -421,6 +434,8 @@ public:
|
|||
{ return wxULongLongNative(m_ll + ll.m_ll); }
|
||||
wxULongLongNative& operator+=(const wxULongLongNative& ll)
|
||||
{ m_ll += ll.m_ll; return *this; }
|
||||
friend wxULongLongNative operator+(unsigned long l, const wxULongLongNative& ull)
|
||||
{ return ull + l; }
|
||||
|
||||
wxULongLongNative operator+(const wxULongLong_t ll) const
|
||||
{ return wxULongLongNative(m_ll + ll); }
|
||||
|
|
@ -440,6 +455,10 @@ public:
|
|||
{ return wxULongLongNative(m_ll - ll.m_ll); }
|
||||
wxULongLongNative& operator-=(const wxULongLongNative& ll)
|
||||
{ m_ll -= ll.m_ll; return *this; }
|
||||
friend wxULongLongNative operator-(unsigned long l, const wxULongLongNative& ull)
|
||||
{
|
||||
return wxULongLongNative(l - ull.m_ll);
|
||||
}
|
||||
|
||||
wxULongLongNative operator-(const wxULongLong_t ll) const
|
||||
{ return wxULongLongNative(m_ll - ll); }
|
||||
|
|
@ -533,6 +552,13 @@ public:
|
|||
bool operator>=(unsigned long l) const
|
||||
{ return m_ll >= l; }
|
||||
|
||||
friend bool operator<(unsigned long l, const wxULongLongNative& ull) { return ull > l; }
|
||||
friend bool operator>(unsigned long l, const wxULongLongNative& ull) { return ull < l; }
|
||||
friend bool operator<=(unsigned long l, const wxULongLongNative& ull) { return ull >= l; }
|
||||
friend bool operator>=(unsigned long l, const wxULongLongNative& ull) { return ull <= l; }
|
||||
friend bool operator==(unsigned long l, const wxULongLongNative& ull) { return ull == l; }
|
||||
friend bool operator!=(unsigned long l, const wxULongLongNative& ull) { return ull != l; }
|
||||
|
||||
// miscellaneous
|
||||
|
||||
// return the string representation of this number
|
||||
|
|
@ -696,6 +722,8 @@ public:
|
|||
wxLongLongWx operator+(long l) const;
|
||||
wxLongLongWx& operator+=(long l);
|
||||
|
||||
friend wxLongLongWx operator+(long l, const wxLongLongWx& ll) { return ll + l; }
|
||||
|
||||
// pre increment operator
|
||||
wxLongLongWx& operator++();
|
||||
|
||||
|
|
@ -709,6 +737,10 @@ public:
|
|||
// subtraction
|
||||
wxLongLongWx operator-(const wxLongLongWx& ll) const;
|
||||
wxLongLongWx& operator-=(const wxLongLongWx& ll);
|
||||
friend wxLongLongWx operator-(long l, const wxLongLongWx& ll)
|
||||
{
|
||||
return wxLongLongWx(l) - ll;
|
||||
}
|
||||
|
||||
// pre decrement operator
|
||||
wxLongLongWx& operator--();
|
||||
|
|
@ -761,6 +793,13 @@ public:
|
|||
bool operator<=(long l) const { return *this < l || *this == l; }
|
||||
bool operator>=(long l) const { return *this > l || *this == l; }
|
||||
|
||||
friend bool operator<(long l, const wxLongLongWx& ll) { return ll > l; }
|
||||
friend bool operator>(long l, const wxLongLongWx& ll) { return ll < l; }
|
||||
friend bool operator<=(long l, const wxLongLongWx& ll) { return ll >= l; }
|
||||
friend bool operator>=(long l, const wxLongLongWx& ll) { return ll <= l; }
|
||||
friend bool operator==(long l, const wxLongLongWx& ll) { return ll == l; }
|
||||
friend bool operator!=(long l, const wxLongLongWx& ll) { return ll != l; }
|
||||
|
||||
// multiplication
|
||||
wxLongLongWx operator*(const wxLongLongWx& ll) const;
|
||||
wxLongLongWx& operator*=(const wxLongLongWx& ll);
|
||||
|
|
@ -795,7 +834,14 @@ public:
|
|||
class wxTextOutputStream& operator<<(class wxTextOutputStream&, const wxLongLongWx&);
|
||||
friend WXDLLIMPEXP_BASE
|
||||
class wxTextInputStream& operator>>(class wxTextInputStream&, wxLongLongWx&);
|
||||
#endif
|
||||
|
||||
#if wxUSE_LONGLONG_NATIVE
|
||||
friend WXDLLIMPEXP_BASE
|
||||
class wxTextOutputStream &operator<<(class wxTextOutputStream &stream, wxLongLong_t value);
|
||||
friend WXDLLIMPEXP_BASE
|
||||
class wxTextInputStream &operator>>(class wxTextInputStream &stream, wxLongLong_t &value);
|
||||
#endif // wxUSE_LONGLONG_NATIVE
|
||||
#endif // wxUSE_STREAMS
|
||||
|
||||
private:
|
||||
// long is at least 32 bits, so represent our 64bit number as 2 longs
|
||||
|
|
@ -920,6 +966,8 @@ public:
|
|||
wxULongLongWx& operator+=(const wxULongLongWx& ll);
|
||||
wxULongLongWx operator+(unsigned long l) const;
|
||||
wxULongLongWx& operator+=(unsigned long l);
|
||||
friend wxULongLongWx operator+(unsigned long l, const wxULongLongWx& ull)
|
||||
{ return ull + l; }
|
||||
|
||||
// pre increment operator
|
||||
wxULongLongWx& operator++();
|
||||
|
|
@ -931,6 +979,13 @@ public:
|
|||
wxLongLongWx operator-(const wxULongLongWx& ll) const;
|
||||
wxULongLongWx& operator-=(const wxULongLongWx& ll);
|
||||
|
||||
friend wxLongLongWx operator-(unsigned long l, const wxULongLongWx& ull)
|
||||
{
|
||||
const wxULongLongWx ret = wxULongLongWx(l) - ull;
|
||||
return wxLongLongWx((wxInt32)ret.GetHi(),ret.GetLo());
|
||||
}
|
||||
|
||||
|
||||
// pre decrement operator
|
||||
wxULongLongWx& operator--();
|
||||
|
||||
|
|
@ -977,6 +1032,13 @@ public:
|
|||
bool operator<=(unsigned long l) const { return *this < l || *this == l; }
|
||||
bool operator>=(unsigned long l) const { return *this > l || *this == l; }
|
||||
|
||||
friend bool operator<(unsigned long l, const wxULongLongWx& ull) { return ull > l; }
|
||||
friend bool operator>(unsigned long l, const wxULongLongWx& ull) { return ull < l; }
|
||||
friend bool operator<=(unsigned long l, const wxULongLongWx& ull) { return ull >= l; }
|
||||
friend bool operator>=(unsigned long l, const wxULongLongWx& ull) { return ull <= l; }
|
||||
friend bool operator==(unsigned long l, const wxULongLongWx& ull) { return ull == l; }
|
||||
friend bool operator!=(unsigned long l, const wxULongLongWx& ull) { return ull != l; }
|
||||
|
||||
// multiplication
|
||||
wxULongLongWx operator*(const wxULongLongWx& ll) const;
|
||||
wxULongLongWx& operator*=(const wxULongLongWx& ll);
|
||||
|
|
@ -1011,7 +1073,14 @@ public:
|
|||
class wxTextOutputStream& operator<<(class wxTextOutputStream&, const wxULongLongWx&);
|
||||
friend WXDLLIMPEXP_BASE
|
||||
class wxTextInputStream& operator>>(class wxTextInputStream&, wxULongLongWx&);
|
||||
#endif
|
||||
|
||||
#if wxUSE_LONGLONG_NATIVE
|
||||
friend WXDLLIMPEXP_BASE
|
||||
class wxTextOutputStream &operator<<(class wxTextOutputStream &stream, wxULongLong_t value);
|
||||
friend WXDLLIMPEXP_BASE
|
||||
class wxTextInputStream &operator>>(class wxTextInputStream &stream, wxULongLong_t &value);
|
||||
#endif // wxUSE_LONGLONG_NATIVE
|
||||
#endif // wxUSE_STREAMS
|
||||
|
||||
private:
|
||||
// long is at least 32 bits, so represent our 64bit number as 2 longs
|
||||
|
|
@ -1031,48 +1100,6 @@ private:
|
|||
|
||||
#endif // wxUSE_LONGLONG_WX
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// binary operators
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
inline bool operator<(long l, const wxLongLong& ll) { return ll > l; }
|
||||
inline bool operator>(long l, const wxLongLong& ll) { return ll < l; }
|
||||
inline bool operator<=(long l, const wxLongLong& ll) { return ll >= l; }
|
||||
inline bool operator>=(long l, const wxLongLong& ll) { return ll <= l; }
|
||||
inline bool operator==(long l, const wxLongLong& ll) { return ll == l; }
|
||||
inline bool operator!=(long l, const wxLongLong& ll) { return ll != l; }
|
||||
|
||||
inline wxLongLong operator+(long l, const wxLongLong& ll) { return ll + l; }
|
||||
inline wxLongLong operator-(long l, const wxLongLong& ll)
|
||||
{
|
||||
return wxLongLong(l) - ll;
|
||||
}
|
||||
|
||||
inline bool operator<(unsigned long l, const wxULongLong& ull) { return ull > l; }
|
||||
inline bool operator>(unsigned long l, const wxULongLong& ull) { return ull < l; }
|
||||
inline bool operator<=(unsigned long l, const wxULongLong& ull) { return ull >= l; }
|
||||
inline bool operator>=(unsigned long l, const wxULongLong& ull) { return ull <= l; }
|
||||
inline bool operator==(unsigned long l, const wxULongLong& ull) { return ull == l; }
|
||||
inline bool operator!=(unsigned long l, const wxULongLong& ull) { return ull != l; }
|
||||
|
||||
inline wxULongLong operator+(unsigned long l, const wxULongLong& ull) { return ull + l; }
|
||||
|
||||
inline wxLongLong operator-(unsigned long l, const wxULongLong& ull)
|
||||
{
|
||||
const wxULongLong ret = wxULongLong(l) - ull;
|
||||
return wxLongLong((wxInt32)ret.GetHi(),ret.GetLo());
|
||||
}
|
||||
|
||||
#if wxUSE_LONGLONG_NATIVE && wxUSE_STREAMS
|
||||
|
||||
WXDLLIMPEXP_BASE class wxTextOutputStream &operator<<(class wxTextOutputStream &stream, wxULongLong_t value);
|
||||
WXDLLIMPEXP_BASE class wxTextOutputStream &operator<<(class wxTextOutputStream &stream, wxLongLong_t value);
|
||||
|
||||
WXDLLIMPEXP_BASE class wxTextInputStream &operator>>(class wxTextInputStream &stream, wxULongLong_t &value);
|
||||
WXDLLIMPEXP_BASE class wxTextInputStream &operator>>(class wxTextInputStream &stream, wxLongLong_t &value);
|
||||
|
||||
#endif
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Specialize numeric_limits<> for our long long wrapper classes.
|
||||
// ----------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -157,6 +157,14 @@ public:
|
|||
int depth = wxBITMAP_SCREEN_DEPTH)
|
||||
{ return CreateWithDIPSize(wxSize(width, height), scale, depth); }
|
||||
|
||||
bool CreateWithLogicalSize(const wxSize& sz,
|
||||
double scale,
|
||||
int depth = wxBITMAP_SCREEN_DEPTH);
|
||||
bool CreateWithLogicalSize(int width, int height,
|
||||
double scale,
|
||||
int depth = wxBITMAP_SCREEN_DEPTH)
|
||||
{ return CreateWithLogicalSize(wxSize(width, height), scale, depth); }
|
||||
|
||||
virtual bool LoadFile(const wxString& name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE);
|
||||
virtual bool SaveFile(const wxString& name, wxBitmapType type, const wxPalette *cmap = nullptr) const;
|
||||
|
||||
|
|
|
|||
|
|
@ -56,6 +56,9 @@ public:
|
|||
|
||||
virtual void DoGetSize(int *width, int *height) const override;
|
||||
|
||||
static bool
|
||||
CanBeUsedForDrawing(const wxWindow* WXUNUSED(window)) { return true; }
|
||||
|
||||
protected:
|
||||
void InitDC();
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ class wxFileDialogMSWData;
|
|||
class WXDLLIMPEXP_CORE wxFileDialog: public wxFileDialogBase
|
||||
{
|
||||
public:
|
||||
wxFileDialog() = default;
|
||||
wxFileDialog(wxWindow *parent,
|
||||
const wxString& message = wxASCII_STR(wxFileSelectorPromptStr),
|
||||
const wxString& defaultDir = wxEmptyString,
|
||||
|
|
@ -78,7 +79,7 @@ private:
|
|||
|
||||
// Extra data, possibly null if not needed, use MSWData() to access it if
|
||||
// it should be created on demand.
|
||||
wxFileDialogMSWData* m_data;
|
||||
wxFileDialogMSWData* m_data = nullptr;
|
||||
|
||||
|
||||
wxDECLARE_DYNAMIC_CLASS(wxFileDialog);
|
||||
|
|
|
|||
|
|
@ -77,6 +77,8 @@ public:
|
|||
// ctors, assignment operators...), but it's ok to have such function
|
||||
void CopyFromBitmap(const wxBitmap& bmp);
|
||||
|
||||
wxDECLARE_VARIANT_OBJECT_EXPORTED(wxIcon, WXDLLIMPEXP_CORE);
|
||||
|
||||
protected:
|
||||
virtual wxGDIImageRefData *CreateData() const override
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1334,7 +1334,7 @@
|
|||
|
||||
// Setting wxUSE_GLCANVAS to 1 enables OpenGL support. You need to have OpenGL
|
||||
// headers and libraries to be able to compile the library with wxUSE_GLCANVAS
|
||||
// set to 1 and, under Windows, also to add opengl32.lib and glu32.lib to the
|
||||
// set to 1 and, under Windows, also to add opengl32.lib to the
|
||||
// list of libraries used to link your application when linking to wxWidgets
|
||||
// statically (although this is done implicitly for Microsoft Visual C++ users).
|
||||
//
|
||||
|
|
|
|||
|
|
@ -221,7 +221,7 @@ public :
|
|||
virtual void controlTextDidChange();
|
||||
|
||||
virtual void AdjustClippingView(wxScrollBar* horizontal, wxScrollBar* vertical) override;
|
||||
virtual void UseClippingView(bool clip) override;
|
||||
virtual void UseClippingView() override;
|
||||
virtual WXWidget GetContainer() const override { return m_osxClipView ? m_osxClipView : m_osxView; }
|
||||
|
||||
protected:
|
||||
|
|
|
|||
|
|
@ -368,7 +368,7 @@ public :
|
|||
// scrolling views need a clip subview that acts as parent for native children
|
||||
// (except for the scollbars) which are children of the view itself
|
||||
virtual void AdjustClippingView(wxScrollBar* horizontal, wxScrollBar* vertical);
|
||||
virtual void UseClippingView(bool clip);
|
||||
virtual void UseClippingView();
|
||||
|
||||
// returns native view which acts as a parent for native children
|
||||
virtual WXWidget GetContainer() const;
|
||||
|
|
|
|||
|
|
@ -54,6 +54,9 @@ public:
|
|||
wxClientDCImpl( wxDC *owner, wxWindow *window );
|
||||
virtual ~wxClientDCImpl();
|
||||
|
||||
static bool
|
||||
CanBeUsedForDrawing(const wxWindow* WXUNUSED(window)) { return false; }
|
||||
|
||||
private:
|
||||
wxDECLARE_CLASS(wxClientDCImpl);
|
||||
wxDECLARE_NO_COPY_CLASS(wxClientDCImpl);
|
||||
|
|
|
|||
|
|
@ -1341,7 +1341,7 @@
|
|||
|
||||
// Setting wxUSE_GLCANVAS to 1 enables OpenGL support. You need to have OpenGL
|
||||
// headers and libraries to be able to compile the library with wxUSE_GLCANVAS
|
||||
// set to 1 and, under Windows, also to add opengl32.lib and glu32.lib to the
|
||||
// set to 1 and, under Windows, also to add opengl32.lib to the
|
||||
// list of libraries used to link your application when linking to wxWidgets
|
||||
// statically (although this is done implicitly for Microsoft Visual C++ users).
|
||||
//
|
||||
|
|
|
|||
|
|
@ -224,7 +224,7 @@ public:
|
|||
// returns true if children have to clipped to the content area
|
||||
// (e.g., scrolled windows)
|
||||
bool MacClipChildren() const { return m_clipChildren ; }
|
||||
void MacSetClipChildren( bool clip );
|
||||
void MacSetClipChildren();
|
||||
|
||||
// returns true if the grandchildren need to be clipped to the children's content area
|
||||
// (e.g., splitter windows)
|
||||
|
|
|
|||
|
|
@ -133,6 +133,8 @@ extern WXDLLIMPEXP_DATA_CORE(wxPenList*) wxThePenList;
|
|||
// to compile without warnings which it would otherwise provoke from some
|
||||
// compilers as it compares elements of different enums
|
||||
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
|
||||
wxDEPRECATED_MSG("use wxPENSTYLE_XXX constants")
|
||||
inline bool operator==(wxPenStyle s, wxDeprecatedGUIConstants t)
|
||||
{
|
||||
|
|
@ -145,4 +147,6 @@ inline bool operator!=(wxPenStyle s, wxDeprecatedGUIConstants t)
|
|||
return static_cast<int>(s) != static_cast<int>(t);
|
||||
}
|
||||
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
|
||||
#endif // _WX_PEN_H_BASE_
|
||||
|
|
|
|||
|
|
@ -455,6 +455,9 @@
|
|||
# ifndef MAC_OS_X_VERSION_10_16
|
||||
# define MAC_OS_X_VERSION_10_16 101600
|
||||
# endif
|
||||
/*
|
||||
Note that since macOS 11 there is no more "X" in the names.
|
||||
*/
|
||||
# ifndef MAC_OS_VERSION_11_0
|
||||
# define MAC_OS_VERSION_11_0 110000
|
||||
# endif
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@
|
|||
#elif defined(__WXGTK3__)
|
||||
#define wxHAS_NATIVE_OVERLAY 1
|
||||
#define wxHAS_GENERIC_OVERLAY 1
|
||||
#elif defined(__WXQT__)
|
||||
#define wxHAS_NATIVE_OVERLAY 1
|
||||
#else
|
||||
#define wxHAS_GENERIC_OVERLAY 1
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -113,6 +113,8 @@ public:
|
|||
Init( cpv.m_type, cpv.m_colour );
|
||||
}
|
||||
|
||||
wxDECLARE_VARIANT_OBJECT_EXPORTED(wxColourPropertyValue, WXDLLIMPEXP_PROPGRID);
|
||||
|
||||
private:
|
||||
wxDECLARE_DYNAMIC_CLASS(wxColourPropertyValue);
|
||||
};
|
||||
|
|
@ -121,8 +123,6 @@ private:
|
|||
bool WXDLLIMPEXP_PROPGRID
|
||||
operator==(const wxColourPropertyValue&, const wxColourPropertyValue&);
|
||||
|
||||
DECLARE_VARIANT_OBJECT_EXPORTED(wxColourPropertyValue, WXDLLIMPEXP_PROPGRID)
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
// Property representing wxFont.
|
||||
|
|
@ -136,7 +136,16 @@ public:
|
|||
const wxFont& value = wxFont());
|
||||
virtual ~wxFontProperty() = default;
|
||||
virtual void OnSetValue() override;
|
||||
virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString ValueToString(wxVariant& value, int flags) const override
|
||||
{
|
||||
m_oldValueToStringCalled = true;
|
||||
return ValueToString(value, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString ValueToString(wxVariant& value,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
virtual wxVariant ChildChanged( wxVariant& thisValue,
|
||||
int childIndex,
|
||||
wxVariant& childValue ) const override;
|
||||
|
|
@ -150,8 +159,8 @@ protected:
|
|||
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
// If set, then match from list is searched for a custom colour.
|
||||
wxDEPRECATED_BUT_USED_INTERNALLY_MSG("wxPG_PROP_TRANSLATE_CUSTOM is intended for internal use.")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_TRANSLATE_CUSTOM = wxPG_PROP_RESERVED_1;
|
||||
wxDEPRECATED_MSG("wxPG_PROP_TRANSLATE_CUSTOM is intended for internal use.")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_TRANSLATE_CUSTOM = wxPGPropertyFlags::Reserved_1;
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
|
||||
// Has dropdown list of wxWidgets system colours. Value used is
|
||||
|
|
@ -168,23 +177,60 @@ public:
|
|||
virtual ~wxSystemColourProperty() = default;
|
||||
|
||||
virtual void OnSetValue() override;
|
||||
virtual bool IntToValue(wxVariant& variant,
|
||||
int number,
|
||||
int argFlags = 0) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use IntToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool IntToValue(wxVariant& variant, int number,
|
||||
int flags) const override
|
||||
{
|
||||
m_oldIntToValueCalled = true;
|
||||
return IntToValue(variant, number, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool IntToValue(wxVariant& variant, int number,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
|
||||
// Override in derived class to customize how colours are printed as
|
||||
// strings.
|
||||
virtual wxString ColourToString( const wxColour& col, int index,
|
||||
int argFlags = 0 ) const;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
mutable bool m_oldColourToStringCalled = false;
|
||||
wxString ColourToStringWithCheck(const wxColour& col, int index,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const;
|
||||
wxDEPRECATED_BUT_USED_INTERNALLY_MSG("use ColourToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString ColourToString(const wxColour& col, int index,
|
||||
int flags) const
|
||||
{
|
||||
m_oldColourToStringCalled = true;
|
||||
return ColourToString(col, index, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString ColourToString(const wxColour& col, int index,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const;
|
||||
|
||||
// Returns index of entry that triggers colour picker dialog
|
||||
// (default is last).
|
||||
virtual int GetCustomColourIndex() const;
|
||||
|
||||
virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const override;
|
||||
virtual bool StringToValue( wxVariant& variant,
|
||||
const wxString& text,
|
||||
int argFlags = 0 ) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString ValueToString(wxVariant& value, int flags) const override
|
||||
{
|
||||
m_oldValueToStringCalled = true;
|
||||
return ValueToString(value, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString ValueToString(wxVariant& value,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use StringToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
int flags) const override
|
||||
{
|
||||
m_oldStringToValueCalled = true;
|
||||
return StringToValue(variant, text, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
virtual bool OnEvent( wxPropertyGrid* propgrid,
|
||||
wxWindow* primary, wxEvent& event ) override;
|
||||
virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) override;
|
||||
|
|
@ -240,7 +286,16 @@ public:
|
|||
const wxColour& value = *wxWHITE );
|
||||
virtual ~wxColourProperty() = default;
|
||||
|
||||
virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString ValueToString(wxVariant& value, int flags) const override
|
||||
{
|
||||
m_oldValueToStringCalled = true;
|
||||
return ValueToString(value, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString ValueToString(wxVariant& value,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
virtual wxColour GetColour( int index ) const override;
|
||||
|
||||
protected:
|
||||
|
|
@ -262,7 +317,16 @@ class WXDLLIMPEXP_PROPGRID wxCursorProperty : public wxEnumProperty
|
|||
int value = 0 );
|
||||
virtual ~wxCursorProperty() = default;
|
||||
|
||||
virtual wxString ValueToString(wxVariant& value, int argFlags = 0) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString ValueToString(wxVariant& value, int flags) const override
|
||||
{
|
||||
m_oldValueToStringCalled = true;
|
||||
return ValueToString(value, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString ValueToString(wxVariant& value,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
virtual wxSize OnMeasureImage( int item ) const override;
|
||||
virtual void OnCustomPaint( wxDC& dc,
|
||||
const wxRect& rect, wxPGPaintData& paintdata ) override;
|
||||
|
|
@ -332,10 +396,27 @@ public:
|
|||
virtual ~wxMultiChoiceProperty() = default;
|
||||
|
||||
virtual void OnSetValue() override;
|
||||
virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const override;
|
||||
virtual bool StringToValue(wxVariant& variant,
|
||||
const wxString& text,
|
||||
int argFlags = 0) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString ValueToString(wxVariant& value, int flags) const override
|
||||
{
|
||||
m_oldValueToStringCalled = true;
|
||||
return ValueToString(value, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString ValueToString(wxVariant& value,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use StringToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
int flags) const override
|
||||
{
|
||||
m_oldStringToValueCalled = true;
|
||||
return StringToValue(variant, text, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) override;
|
||||
|
||||
wxArrayInt GetValueAsArrayInt() const
|
||||
|
|
@ -382,10 +463,27 @@ public:
|
|||
virtual ~wxDateProperty() = default;
|
||||
|
||||
virtual void OnSetValue() override;
|
||||
virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const override;
|
||||
virtual bool StringToValue(wxVariant& variant,
|
||||
const wxString& text,
|
||||
int argFlags = 0) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString ValueToString(wxVariant& value, int flags) const override
|
||||
{
|
||||
m_oldValueToStringCalled = true;
|
||||
return ValueToString(value, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString ValueToString(wxVariant& value,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
int flags) const override
|
||||
{
|
||||
m_oldStringToValueCalled = true;
|
||||
return StringToValue(variant, text, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
|
||||
virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) override;
|
||||
|
||||
|
|
|
|||
|
|
@ -188,31 +188,29 @@ wxDECLARE_EVENT(wxEVT_PG_COLS_RESIZED, wxPropertyGridEvent);
|
|||
// Flags used only internally
|
||||
|
||||
// wxBoolProperty, wxFlagsProperty specific flags
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_USE_CHECKBOX = wxPG_PROP_RESERVED_1;
|
||||
constexpr wxPGPropertyFlags wxPGPropertyFlags_UseCheckBox = wxPGPropertyFlags::Reserved_1;
|
||||
// DCC = Double Click Cycles
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_USE_DCC = wxPG_PROP_RESERVED_2;
|
||||
constexpr wxPGPropertyFlags wxPGPropertyFlags_UseDCC = wxPGPropertyFlags::Reserved_2;
|
||||
|
||||
// wxStringProperty flag
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_PASSWORD = wxPG_PROP_RESERVED_2;
|
||||
constexpr wxPGPropertyFlags wxPGPropertyFlags_Password = wxPGPropertyFlags::Reserved_2;
|
||||
|
||||
#if !WXWIN_COMPATIBILITY_3_2
|
||||
// wxColourProperty flag - if set, then match from list is searched for a custom colour.
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_TRANSLATE_CUSTOM = wxPG_PROP_RESERVED_1;
|
||||
constexpr wxPGPropertyFlags wxPGPropertyFlags_TranslateCustom = wxPGPropertyFlags::Reserved_1;
|
||||
|
||||
// wxCursorProperty, wxSystemColourProperty - If set, then selection of choices is static
|
||||
// and should not be changed (i.e. returns nullptr in GetPropertyChoices).
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_STATIC_CHOICES = wxPG_PROP_RESERVED_1;
|
||||
constexpr wxPGPropertyFlags wxPGPropertyFlags_StaticChoices = wxPGPropertyFlags::Reserved_1;
|
||||
|
||||
// wxSystemColourProperty - wxEnumProperty based classes cannot use wxPG_PROP_RESERVED_1
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_HIDE_CUSTOM_COLOUR = wxPG_PROP_RESERVED_2;
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_COLOUR_HAS_ALPHA = wxPG_PROP_RESERVED_3;
|
||||
// wxSystemColourProperty - wxEnumProperty based classes cannot use wxPGPropertyFlags::Reserved_1
|
||||
constexpr wxPGPropertyFlags wxPGPropertyFlags_HideCustomColour = wxPGPropertyFlags::Reserved_2;
|
||||
constexpr wxPGPropertyFlags wxPGPropertyFlags_ColourHasAlpha = wxPGPropertyFlags::Reserved_3;
|
||||
|
||||
// wxFileProperty - if set, full path is shown in wxFileProperty.
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_SHOW_FULL_FILENAME = wxPG_PROP_RESERVED_1;
|
||||
constexpr wxPGPropertyFlags wxPGPropertyFlags_ShowFullFileName = wxPGPropertyFlags::Reserved_1;
|
||||
|
||||
// wxLongStringProperty - flag used to mark that edit button
|
||||
// should be enabled even in the read-only mode.
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_ACTIVE_BTN = wxPG_PROP_RESERVED_3;
|
||||
#endif // !WXWIN_COMPATIBILITY_3_2
|
||||
constexpr wxPGPropertyFlags wxPGPropertyFlags_ActiveButton = wxPGPropertyFlags::Reserved_3;
|
||||
|
||||
#endif // _WX_PROPGRID_PRIVATE_H_
|
||||
|
|
|
|||
|
|
@ -304,129 +304,229 @@ protected:
|
|||
std::unordered_map<wxString, wxVariantData*> m_map;
|
||||
};
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
enum wxPGPropertyFlags
|
||||
enum class wxPGPropertyFlags : int
|
||||
{
|
||||
// No flags.
|
||||
Null = 0,
|
||||
|
||||
// Indicates bold font.
|
||||
wxPG_PROP_MODIFIED = 0x0001,
|
||||
// Indicates bold font.
|
||||
Modified = 0x0001,
|
||||
|
||||
// Disables ('greyed' text and editor does not activate) property.
|
||||
wxPG_PROP_DISABLED = 0x0002,
|
||||
// Disables ('greyed' text and editor does not activate) property.
|
||||
Disabled = 0x0002,
|
||||
|
||||
// Hider button will hide this property.
|
||||
wxPG_PROP_HIDDEN = 0x0004,
|
||||
// Hider button will hide this property.
|
||||
Hidden = 0x0004,
|
||||
|
||||
// This property has custom paint image just in front of its value.
|
||||
// If property only draws custom images into a popup list, then this
|
||||
// flag should not be set.
|
||||
wxPG_PROP_CUSTOMIMAGE = 0x0008,
|
||||
// This property has custom paint image just in front of its value.
|
||||
// If property only draws custom images into a popup list, then this
|
||||
// flag should not be set.
|
||||
CustomImage = 0x0008,
|
||||
|
||||
// Do not create text based editor for this property (but button-triggered
|
||||
// dialog and choice are ok).
|
||||
wxPG_PROP_NOEDITOR = 0x0010,
|
||||
// Do not create text based editor for this property (but button-triggered
|
||||
// dialog and choice are ok).
|
||||
NoEditor = 0x0010,
|
||||
|
||||
// Property is collapsed, ie. its children are hidden.
|
||||
wxPG_PROP_COLLAPSED = 0x0020,
|
||||
// Property is collapsed, ie. it's children are hidden.
|
||||
Collapsed = 0x0020,
|
||||
|
||||
// If property is selected, then indicates that validation failed for pending
|
||||
// value.
|
||||
// If property is not selected, that indicates that the actual property
|
||||
// value has failed validation (NB: this behaviour is not currently supported,
|
||||
// but may be used in future).
|
||||
wxPG_PROP_INVALID_VALUE = 0x0040,
|
||||
// If property is selected, then indicates that validation failed for pending
|
||||
// value.
|
||||
// If property is not selected, that indicates that the actual property
|
||||
// value has failed validation (NB: this behaviour is not currently supported,
|
||||
// but may be used in future).
|
||||
InvalidValue = 0x0040,
|
||||
|
||||
// 0x0080,
|
||||
// 0x0080,
|
||||
|
||||
// Switched via SetWasModified(). Temporary flag - only used when
|
||||
// setting/changing property value.
|
||||
wxPG_PROP_WAS_MODIFIED = 0x0200,
|
||||
// Switched via SetWasModified(). Temporary flag - only used when
|
||||
// setting/changing property value.
|
||||
WasModified = 0x0200,
|
||||
|
||||
// If set, then child properties (if any) are private, and should be
|
||||
// "invisible" to the application.
|
||||
wxPG_PROP_AGGREGATE = 0x0400,
|
||||
// If set, then child properties (if any) are private, and should be
|
||||
// "invisible" to the application.
|
||||
Aggregate = 0x0400,
|
||||
|
||||
// If set, then child properties (if any) are copies and should not
|
||||
// be deleted in dtor.
|
||||
wxPG_PROP_CHILDREN_ARE_COPIES = 0x0800,
|
||||
// If set, then child properties (if any) are copies and should not
|
||||
// be deleted in dtor.
|
||||
ChildrenAreCopies = 0x0800,
|
||||
|
||||
// Classifies this item as a non-category.
|
||||
// Used for faster item type identification.
|
||||
wxPG_PROP_PROPERTY = 0x1000,
|
||||
// Classifies this item as a non-category.
|
||||
// Used for faster item type identification.
|
||||
Property = 0x1000,
|
||||
|
||||
// Classifies this item as a category.
|
||||
// Used for faster item type identification.
|
||||
wxPG_PROP_CATEGORY = 0x2000,
|
||||
// Classifies this item as a category.
|
||||
// Used for faster item type identification.
|
||||
Category = 0x2000,
|
||||
|
||||
// Classifies this item as a property that has children,
|
||||
//but is not aggregate (i.e. children are not private).
|
||||
wxPG_PROP_MISC_PARENT = 0x4000,
|
||||
// Classifies this item as a property that has children,
|
||||
//but is not aggregate (i.e. children are not private).
|
||||
MiscParent = 0x4000,
|
||||
|
||||
// Property is read-only. Editor is still created for wxTextCtrl-based
|
||||
// property editors. For others, editor is not usually created because
|
||||
// they do implement wxTE_READONLY style or equivalent.
|
||||
wxPG_PROP_READONLY = 0x8000,
|
||||
// Property is read-only. Editor is still created for wxTextCtrl-based
|
||||
// property editors. For others, editor is not usually created because
|
||||
// they do implement wxTE_READONLY style or equivalent.
|
||||
ReadOnly = 0x8000,
|
||||
|
||||
//
|
||||
// NB: FLAGS ABOVE 0x8000 CANNOT BE USED WITH PROPERTY ITERATORS
|
||||
//
|
||||
//
|
||||
// NB: FLAGS ABOVE 0x8000 CANNOT BE USED WITH PROPERTY ITERATORS
|
||||
//
|
||||
|
||||
// Property's value is composed from values of child properties.
|
||||
// This flag cannot be used with property iterators.
|
||||
wxPG_PROP_COMPOSED_VALUE = 0x00010000,
|
||||
// Property's value is composed from values of child properties.
|
||||
// This flag cannot be used with property iterators.
|
||||
ComposedValue = 0x00010000,
|
||||
|
||||
// Common value of property is selectable in editor.
|
||||
// This flag cannot be used with property iterators.
|
||||
wxPG_PROP_USES_COMMON_VALUE = 0x00020000,
|
||||
// Common value of property is selectable in editor.
|
||||
// This flag cannot be used with property iterators.
|
||||
UsesCommonValue = 0x00020000,
|
||||
|
||||
// Property can be set to unspecified value via editor.
|
||||
// Currently, this applies to following properties:
|
||||
// - wxIntProperty, wxUIntProperty, wxFloatProperty, wxEditEnumProperty:
|
||||
// Clear the text field
|
||||
// This flag cannot be used with property iterators.
|
||||
// See wxPGProperty::SetAutoUnspecified().
|
||||
wxPG_PROP_AUTO_UNSPECIFIED = 0x00040000,
|
||||
// Property can be set to unspecified value via editor.
|
||||
// Currently, this applxPGies to following properties:
|
||||
// - wxIntProperty, wxUIntProperty, wxFloatProperty, wxEditEnumProperty:
|
||||
// Clear the text field
|
||||
// This flag cannot be used with property iterators.
|
||||
// See wxPGProperty::SetAutoUnspecified().
|
||||
AutoUnspecified = 0x00040000,
|
||||
|
||||
// For internal use only.
|
||||
wxPG_PROP_RESERVED_1 = 0x00080000,
|
||||
// Indicates that the property is being deleted and should be ignored.
|
||||
BeingDeleted = 0x00080000,
|
||||
|
||||
// For internal use only.
|
||||
wxPG_PROP_RESERVED_2 = 0x00100000,
|
||||
// If set, full path is shown in wxFileProperty.
|
||||
ShowFullFileName = 0x00100000,
|
||||
|
||||
// Indicates that the property is being deleted and should be ignored.
|
||||
wxPG_PROP_BEING_DELETED = 0x00200000,
|
||||
// For internal use only.
|
||||
Reserved_1 = 0x10000000,
|
||||
|
||||
// For internal use only.
|
||||
wxPG_PROP_RESERVED_3 = 0x00400000
|
||||
// For internal use only.
|
||||
Reserved_2 = 0x20000000,
|
||||
|
||||
// For internal use only.
|
||||
Reserved_3 = 0x40000000,
|
||||
|
||||
// Topmost flag.
|
||||
Max = ShowFullFileName,
|
||||
|
||||
// Property with children must have one of these set, otherwise iterators
|
||||
// will not work correctly.
|
||||
// Code should automatically take care of this, however.
|
||||
ParentalFlags = Aggregate | Category | MiscParent,
|
||||
|
||||
// Combination of flags that can be stored by GetFlagsAsString
|
||||
StringStoredFlags = Disabled | Hidden | NoEditor | Collapsed
|
||||
};
|
||||
|
||||
constexpr wxPGPropertyFlags operator|(wxPGPropertyFlags a, wxPGPropertyFlags b)
|
||||
{
|
||||
return static_cast<wxPGPropertyFlags>(static_cast<int>(a) | static_cast<int>(b));
|
||||
}
|
||||
|
||||
inline wxPGPropertyFlags operator|=(wxPGPropertyFlags & a, wxPGPropertyFlags b)
|
||||
{
|
||||
return a = a | b;
|
||||
}
|
||||
|
||||
constexpr wxPGPropertyFlags operator&(wxPGPropertyFlags a, wxPGPropertyFlags b)
|
||||
{
|
||||
return static_cast<wxPGPropertyFlags>(static_cast<int>(a) & static_cast<int>(b));
|
||||
}
|
||||
|
||||
inline wxPGPropertyFlags operator&=(wxPGPropertyFlags & a, wxPGPropertyFlags b)
|
||||
{
|
||||
return a = a & b;
|
||||
}
|
||||
|
||||
constexpr wxPGPropertyFlags operator^(wxPGPropertyFlags a, wxPGPropertyFlags b)
|
||||
{
|
||||
return static_cast<wxPGPropertyFlags>(static_cast<int>(a) ^ static_cast<int>(b));
|
||||
}
|
||||
|
||||
constexpr wxPGPropertyFlags operator~(wxPGPropertyFlags a)
|
||||
{
|
||||
return static_cast<wxPGPropertyFlags>(~static_cast<int>(a));
|
||||
}
|
||||
|
||||
constexpr bool operator!(wxPGPropertyFlags a)
|
||||
{
|
||||
return static_cast<int>(a) == 0;
|
||||
}
|
||||
|
||||
// We need these operators with int arguments for interoperability
|
||||
// with wxPG_ITERATOR_FLAGS as plain enumeration).
|
||||
// =====
|
||||
constexpr int operator<<(wxPGPropertyFlags a, int n)
|
||||
{
|
||||
return static_cast<int>(a) << n;
|
||||
}
|
||||
|
||||
constexpr int operator|(wxPGPropertyFlags a, int b)
|
||||
{
|
||||
return static_cast<int>(a) | b;
|
||||
}
|
||||
|
||||
constexpr int operator|(int a, wxPGPropertyFlags b)
|
||||
{
|
||||
return a | static_cast<int>(b);
|
||||
}
|
||||
|
||||
constexpr int operator&(int a, wxPGPropertyFlags b)
|
||||
{
|
||||
return a & static_cast<int>(b);
|
||||
}
|
||||
// =====
|
||||
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::Modified instead")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_MODIFIED = wxPGPropertyFlags::Modified;
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::Disabled instead")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_DISABLED = wxPGPropertyFlags::Disabled;
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::Hidden instead")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_HIDDEN = wxPGPropertyFlags::Hidden;
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::CustomImage instead")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_CUSTOMIMAGE = wxPGPropertyFlags::CustomImage;
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::NoEditor instead")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_NOEDITOR = wxPGPropertyFlags::NoEditor;
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::Collapsed instead")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_COLLAPSED = wxPGPropertyFlags::Collapsed;
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::InvalidValue instead")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_INVALID_VALUE = wxPGPropertyFlags::InvalidValue;
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::WasModified instead")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_WAS_MODIFIED = wxPGPropertyFlags::WasModified;
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::Aggregate instead")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_AGGREGATE = wxPGPropertyFlags::Aggregate;
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::ChildrenAreCopies instead")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_CHILDREN_ARE_COPIES = wxPGPropertyFlags::ChildrenAreCopies;
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::Property instead")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_PROPERTY = wxPGPropertyFlags::Property;
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::Category instead")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_CATEGORY = wxPGPropertyFlags::Category;
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::MiscParent instead")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_MISC_PARENT = wxPGPropertyFlags::MiscParent;
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::ReadOnly instead")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_READONLY = wxPGPropertyFlags::ReadOnly;
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::ComposedValue instead")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_COMPOSED_VALUE = wxPGPropertyFlags::ComposedValue;
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::UsesCommonValue instead")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_USES_COMMON_VALUE = wxPGPropertyFlags::UsesCommonValue;
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::AutoUnspecified instead")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_AUTO_UNSPECIFIED = wxPGPropertyFlags::AutoUnspecified;
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::BeingDeleted instead")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_BEING_DELETED = wxPGPropertyFlags::BeingDeleted;
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::ParentalFlags instead")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_PARENTAL_FLAGS = wxPGPropertyFlags::ParentalFlags;
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::StringStoredFlags instead")
|
||||
constexpr wxPGPropertyFlags wxPG_STRING_STORED_FLAGS = wxPGPropertyFlags::StringStoredFlags;
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags::Max instead")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_MAX = wxPGPropertyFlags::Max;
|
||||
|
||||
// Indicates bits usable by derived properties.
|
||||
wxDEPRECATED_BUT_USED_INTERNALLY_MSG("wxPG_PROP_CLASS_SPECIFIC_1 in intended for internal use only.")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_CLASS_SPECIFIC_1 = wxPG_PROP_RESERVED_1;
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_CLASS_SPECIFIC_1 = wxPGPropertyFlags::Reserved_1;
|
||||
wxDEPRECATED_BUT_USED_INTERNALLY_MSG("wxPG_PROP_CLASS_SPECIFIC_2 in intended for internal use only.")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_CLASS_SPECIFIC_2 = wxPG_PROP_RESERVED_2;
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_CLASS_SPECIFIC_2 = wxPGPropertyFlags::Reserved_2;
|
||||
wxDEPRECATED_BUT_USED_INTERNALLY_MSG("wxPG_PROP_CLASS_SPECIFIC_3 in intended for internal use only.")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_CLASS_SPECIFIC_3 = wxPG_PROP_RESERVED_3;
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_CLASS_SPECIFIC_3 = wxPGPropertyFlags::Reserved_3;
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
|
||||
// Topmost flag.
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_MAX = wxPG_PROP_AUTO_UNSPECIFIED;
|
||||
|
||||
// Property with children must have one of these set, otherwise iterators
|
||||
// will not work correctly.
|
||||
// Code should automatically take care of this, however.
|
||||
#define wxPG_PROP_PARENTAL_FLAGS \
|
||||
((wxPGPropertyFlags)(wxPG_PROP_AGGREGATE | \
|
||||
wxPG_PROP_CATEGORY | \
|
||||
wxPG_PROP_MISC_PARENT))
|
||||
|
||||
// Combination of flags that can be stored by GetFlagsAsString
|
||||
#define wxPG_STRING_STORED_FLAGS \
|
||||
(wxPG_PROP_DISABLED|wxPG_PROP_HIDDEN|wxPG_PROP_NOEDITOR|wxPG_PROP_COLLAPSED)
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
// Helpers to mark macros as deprecated
|
||||
|
|
@ -729,10 +829,10 @@ public:
|
|||
|
||||
// Simple interface constructor.
|
||||
wxPGChoices( wxPGChoicesData* data )
|
||||
: m_data(data)
|
||||
{
|
||||
wxCHECK_RET(data, "Data pointer cannot be null");
|
||||
m_data = data;
|
||||
data->IncRef();
|
||||
m_data->IncRef();
|
||||
}
|
||||
|
||||
// Destructor.
|
||||
|
|
@ -950,7 +1050,12 @@ class WXDLLIMPEXP_PROPGRID wxPGProperty : public wxObject
|
|||
|
||||
wxDECLARE_ABSTRACT_CLASS(wxPGProperty);
|
||||
public:
|
||||
#if WXWIN_COMPATIBILITY_3_0
|
||||
typedef wxUint32 FlagType;
|
||||
#elif WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use wxPGPropertyFlags type instead")
|
||||
typedef wxUint32 FlagType;
|
||||
#endif // WXWIN_COMPATIBILITY_3_0, WXWIN_COMPATIBILITY_3_2
|
||||
|
||||
// Virtual destructor.
|
||||
// It is customary for derived properties to implement this.
|
||||
|
|
@ -983,9 +1088,9 @@ public:
|
|||
// null wxVariant in normal cases). Translated value must be assigned
|
||||
// back to it.
|
||||
// text - Text to be translated into variant.
|
||||
// argFlags - If wxPG_FULL_VALUE is set, returns complete, storable value instead
|
||||
// flags - If wxPGPropValFormatFlags::FullValue is set, returns complete, storable value instead
|
||||
// of displayable one (they may be different).
|
||||
// If wxPG_COMPOSITE_FRAGMENT is set, text is interpreted as a part of
|
||||
// If wxPGPropValFormatFlags::CompositeFragment is set, text is interpreted as a part of
|
||||
// composite property string value (as generated by ValueToString()
|
||||
// called with this same flag).
|
||||
// Returns true if resulting wxVariant value was different.
|
||||
|
|
@ -994,9 +1099,19 @@ public:
|
|||
// You might want to take into account that m_value is Null variant
|
||||
// if property value is unspecified (which is usually only case if
|
||||
// you explicitly enabled that sort behaviour).
|
||||
virtual bool StringToValue( wxVariant& variant,
|
||||
const wxString& text,
|
||||
int argFlags = 0 ) const;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
mutable bool m_oldStringToValueCalled = false;
|
||||
bool StringToValueWithCheck(wxVariant& variant, const wxString& text, wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const;
|
||||
wxDEPRECATED_BUT_USED_INTERNALLY_MSG("use StringToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool StringToValue( wxVariant& variant, const wxString& text,
|
||||
int flags ) const
|
||||
{
|
||||
m_oldStringToValueCalled = true;
|
||||
return StringToValue(variant, text, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const;
|
||||
|
||||
// Converts integer (possibly a choice selection) into wxVariant value
|
||||
// appropriate for this property.
|
||||
|
|
@ -1004,7 +1119,7 @@ public:
|
|||
// variant - On function entry this is the old value (should not be null wxVariant
|
||||
// in normal cases). Translated value must be assigned back to it.
|
||||
// number - Integer to be translated into variant.
|
||||
// argFlags - If wxPG_FULL_VALUE is set, returns complete, storable value
|
||||
// flags - If wxPGPropValFormatFlags::FullValue is set, returns complete, storable value
|
||||
// instead of displayable one.
|
||||
// Returns true if resulting wxVariant value was different.
|
||||
// Remarks
|
||||
|
|
@ -1017,36 +1132,69 @@ public:
|
|||
// - You might want to take into account that m_value is Null variant
|
||||
// if property value is unspecified (which is usually only case if
|
||||
// you explicitly enabled that sort behaviour).
|
||||
virtual bool IntToValue( wxVariant& value,
|
||||
int number,
|
||||
int argFlags = 0 ) const;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
mutable bool m_oldIntToValueCalled = false;
|
||||
bool IntToValueWithCheck(wxVariant& variant, int number, wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const;
|
||||
wxDEPRECATED_BUT_USED_INTERNALLY_MSG("use IntToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool IntToValue(wxVariant& value, int number, int flags) const
|
||||
{
|
||||
m_oldIntToValueCalled = true;
|
||||
return IntToValue(value, number, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool IntToValue(wxVariant& value, int number,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const;
|
||||
|
||||
// Converts property value into a text representation.
|
||||
// Parameters:
|
||||
// value - Value to be converted.
|
||||
// argFlags - If 0 (default value), then displayed string is returned.
|
||||
// If wxPG_FULL_VALUE is set, returns complete, storable string value
|
||||
// instead of displayable. If wxPG_EDITABLE_VALUE is set, returns
|
||||
// flags - If wxPGPropValFormatFlags::Null (default value), then displayed string is returned.
|
||||
// If wxPGPropValFormatFlags::FullValue is set, returns complete, storable string value
|
||||
// instead of displayable. If wxPGPropValFormatFlags::EditableValue is set, returns
|
||||
// string value that must be editable in textctrl. If
|
||||
// wxPG_COMPOSITE_FRAGMENT is set, returns text that is appropriate to
|
||||
// wxPGPropValFormatFlags::CompositeFragment is set, returns text that is appropriate to
|
||||
// display as a part of string property's composite text
|
||||
// representation.
|
||||
// Default implementation calls GenerateComposedValue().
|
||||
virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
mutable bool m_oldValueToStringCalled = false;
|
||||
wxString ValueToStringWithCheck(wxVariant& variant, wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const;
|
||||
wxDEPRECATED_BUT_USED_INTERNALLY_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString ValueToString(wxVariant& value, int flags) const
|
||||
{
|
||||
m_oldValueToStringCalled = true;
|
||||
return ValueToString(value, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString ValueToString(wxVariant& value, wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const;
|
||||
|
||||
// Converts string to a value, and if successful, calls SetValue() on it.
|
||||
// Default behaviour is to do nothing.
|
||||
// Returns true if value was changed.
|
||||
bool SetValueFromString( const wxString& text, int flags = wxPG_PROGRAMMATIC_VALUE );
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use SetValueFromString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
bool SetValueFromString(const wxString& text, int flags)
|
||||
{
|
||||
return SetValueFromString(text, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
bool SetValueFromString(const wxString& text, wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::ProgrammaticValue);
|
||||
|
||||
// Converts integer to a value, and if successful, calls SetValue() on it.
|
||||
// Default behaviour is to do nothing.
|
||||
// Parameters:
|
||||
// value - Int to get the value from.
|
||||
// flags - If has wxPG_FULL_VALUE, then the value given is a actual value
|
||||
// flags - If has wxPGPropValFormatFlags::FullValue, then the value given is a actual value
|
||||
// and not an index.
|
||||
// Returns true if value was changed.
|
||||
bool SetValueFromInt( long value, int flags = 0 );
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use SetValueFromInt with 'flags' argument as wxPGPropValFormatFlags")
|
||||
bool SetValueFromInt(long value, int flags)
|
||||
{
|
||||
return SetValueFromInt(value, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
bool SetValueFromInt(long value, wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null);
|
||||
|
||||
// Returns size of the custom painted image in front of property.
|
||||
// This method must be overridden to return non-default value if
|
||||
|
|
@ -1197,7 +1345,7 @@ public:
|
|||
// values of a font).
|
||||
bool AreChildrenComponents() const
|
||||
{
|
||||
return (m_flags & (wxPG_PROP_COMPOSED_VALUE|wxPG_PROP_AGGREGATE)) != 0;
|
||||
return !!(m_flags & (wxPGPropertyFlags::ComposedValue|wxPGPropertyFlags::Aggregate));
|
||||
}
|
||||
|
||||
// Deletes children of the property.
|
||||
|
|
@ -1219,7 +1367,7 @@ public:
|
|||
// Common values are disabled by the default for all properties.
|
||||
void EnableCommonValue( bool enable = true )
|
||||
{
|
||||
ChangeFlag(wxPG_PROP_USES_COMMON_VALUE, enable);
|
||||
ChangeFlag(wxPGPropertyFlags::UsesCommonValue, enable);
|
||||
}
|
||||
|
||||
// Composes text from values of child properties.
|
||||
|
|
@ -1277,18 +1425,28 @@ public:
|
|||
}
|
||||
|
||||
// Returns text representation of property's value.
|
||||
// argFlags - If 0 (default value), then displayed string is returned.
|
||||
// If wxPG_FULL_VALUE is set, returns complete, storable string value
|
||||
// instead of displayable. If wxPG_EDITABLE_VALUE is set, returns
|
||||
// flags - If wxPGPropValFormatFlags::Null (default value), then displayed string is returned.
|
||||
// If wxPGPropValFormatFlags::FullValue is set, returns complete, storable string value
|
||||
// instead of displayable. If wxPGPropValFormatFlags::EditableValue is set, returns
|
||||
// string value that must be editable in textctrl. If
|
||||
// wxPG_COMPOSITE_FRAGMENT is set, returns text that is appropriate to
|
||||
// wxPGPropValFormatFlags::CompositeFragment is set, returns text that is appropriate to
|
||||
// display as a part of string property's composite text
|
||||
// representation.
|
||||
// In older versions, this function used to be overridden to convert
|
||||
// property's value into a string representation. This function is
|
||||
// now handled by ValueToString(), and overriding this function now
|
||||
// will result in run-time assertion failure.
|
||||
virtual wxString GetValueAsString( int argFlags = 0 ) const;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
mutable bool m_oldGetValueAsString = false;
|
||||
wxString GetValueAsStringWithCheck(wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const;
|
||||
wxDEPRECATED_BUT_USED_INTERNALLY_MSG("use GetValueAsString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString GetValueAsString(int flags) const
|
||||
{
|
||||
m_oldGetValueAsString = true;
|
||||
return GetValueAsString(static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString GetValueAsString(wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const;
|
||||
|
||||
// Returns wxPGCell of given column.
|
||||
// Const version of this member function returns 'default'
|
||||
|
|
@ -1311,7 +1469,12 @@ public:
|
|||
// Returns property's displayed text.
|
||||
wxString GetDisplayedString() const
|
||||
{
|
||||
return GetValueAsString(0);
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
// Special implementation with check if user-overriden obsolete function is still in use
|
||||
return GetValueAsStringWithCheck(wxPGPropValFormatFlags::Null);
|
||||
#else
|
||||
return GetValueAsString(wxPGPropValFormatFlags::Null);
|
||||
#endif // WXWIN_COMPATIBILITY_3_2 | !WXWIN_COMPATIBILITY_3_2
|
||||
}
|
||||
|
||||
// Returns property's hint text (shown in empty value cell).
|
||||
|
|
@ -1348,25 +1511,35 @@ public:
|
|||
|
||||
#if WXWIN_COMPATIBILITY_3_0
|
||||
// Returns non-zero if property has given flag set.
|
||||
FlagType HasFlag( wxPGPropertyFlags flag ) const
|
||||
wxDEPRECATED_MSG("use HasFlag() with 'flag' argument as wxPGPropertyFlags")
|
||||
FlagType HasFlag( FlagType flag ) const
|
||||
{
|
||||
return ( m_flags & flag );
|
||||
}
|
||||
#else
|
||||
// Returns true if property has given flag set.
|
||||
bool HasFlag(wxPGPropertyFlags flag) const
|
||||
{
|
||||
return (m_flags & flag) != 0;
|
||||
return ( static_cast<FlagType>(m_flags) & flag );
|
||||
}
|
||||
#endif
|
||||
// Returns true if property has given flag set.
|
||||
bool HasFlag(FlagType flag) const
|
||||
bool HasFlag(wxPGPropertyFlags flag) const
|
||||
{
|
||||
return (m_flags & flag) != 0;
|
||||
return !!(m_flags & flag);
|
||||
}
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use HasFlag() with 'flag' argument as wxPGPropertyFlags")
|
||||
// Returns true if property has given flag set.
|
||||
bool HasFlag(int flag) const
|
||||
{
|
||||
return HasFlag(static_cast<wxPGPropertyFlags>(flag));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
|
||||
// Returns true if property has all given flags set.
|
||||
bool HasFlagsExact(FlagType flags) const
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use HasFlagExact() with 'flags' argument as wxPGPropertyFlags")
|
||||
bool HasFlagsExact(int flags) const
|
||||
{
|
||||
return HasFlagsExact(static_cast<wxPGPropertyFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
bool HasFlagsExact(wxPGPropertyFlags flags) const
|
||||
{
|
||||
return (m_flags & flags) == flags;
|
||||
}
|
||||
|
|
@ -1385,7 +1558,7 @@ public:
|
|||
wxDEPRECATED_MSG("Use HasFlag or HasFlagsExact functions instead.")
|
||||
FlagType GetFlags() const
|
||||
{
|
||||
return m_flags;
|
||||
return static_cast<FlagType>(m_flags);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
@ -1425,7 +1598,7 @@ public:
|
|||
int InsertChoice( const wxString& label, int index, int value = wxPG_INVALID_VALUE );
|
||||
|
||||
// Returns true if this property is actually a wxPropertyCategory.
|
||||
bool IsCategory() const { return (m_flags & wxPG_PROP_CATEGORY) != 0; }
|
||||
bool IsCategory() const { return !!(m_flags & wxPGPropertyFlags::Category); }
|
||||
|
||||
// Returns true if this property is actually a wxRootProperty.
|
||||
bool IsRoot() const { return (m_parent == nullptr); }
|
||||
|
|
@ -1467,7 +1640,7 @@ public:
|
|||
// Returns true if containing grid uses wxPG_EX_AUTO_UNSPECIFIED_VALUES.
|
||||
bool UsesAutoUnspecified() const
|
||||
{
|
||||
return (m_flags & wxPG_PROP_AUTO_UNSPECIFIED) != 0;
|
||||
return !!(m_flags & wxPGPropertyFlags::AutoUnspecified);
|
||||
}
|
||||
|
||||
// Returns bitmap that appears next to value text. Only returns non-null
|
||||
|
|
@ -1492,9 +1665,16 @@ public:
|
|||
unsigned int GetDepth() const { return (unsigned int)m_depth; }
|
||||
|
||||
// Gets flags as a'|' delimited string. Note that flag names are not
|
||||
// prepended with 'wxPG_PROP_'.
|
||||
// prepended with 'wxPGPropertyFlags'.
|
||||
// flagmask - String will only be made to include flags combined by this parameter.
|
||||
wxString GetFlagsAsString( FlagType flagsMask ) const;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use GetFlagsAsString() with 'flags' argument as wxPGPropertyFlags")
|
||||
wxString GetFlagsAsString( int flagsMask ) const
|
||||
{
|
||||
return GetFlagsAsString(static_cast<wxPGPropertyFlags>(flagsMask));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
wxString GetFlagsAsString(wxPGPropertyFlags flagsMask) const;
|
||||
|
||||
// Returns position in parent's array.
|
||||
unsigned int GetIndexInParent() const
|
||||
|
|
@ -1517,13 +1697,13 @@ public:
|
|||
|
||||
// Returns true if property has visible children.
|
||||
bool IsExpanded() const
|
||||
{ return (!(m_flags & wxPG_PROP_COLLAPSED) && HasAnyChild()); }
|
||||
{ return (!(m_flags & wxPGPropertyFlags::Collapsed) && HasAnyChild()); }
|
||||
|
||||
// Returns true if all parents expanded.
|
||||
bool IsVisible() const;
|
||||
|
||||
// Returns true if property is enabled.
|
||||
bool IsEnabled() const { return !(m_flags & wxPG_PROP_DISABLED); }
|
||||
bool IsEnabled() const { return !(m_flags & wxPGPropertyFlags::Disabled); }
|
||||
|
||||
// If property's editor is created this forces its recreation.
|
||||
// Useful in SetAttribute etc. Returns true if actually did anything.
|
||||
|
|
@ -1549,7 +1729,7 @@ public:
|
|||
// by default).
|
||||
void SetAutoUnspecified( bool enable = true )
|
||||
{
|
||||
ChangeFlag(wxPG_PROP_AUTO_UNSPECIFIED, enable);
|
||||
ChangeFlag(wxPGPropertyFlags::AutoUnspecified, enable);
|
||||
}
|
||||
|
||||
// Sets property's background colour.
|
||||
|
|
@ -1624,13 +1804,13 @@ public:
|
|||
}
|
||||
|
||||
// Sets flags from a '|' delimited string. Note that flag names are not
|
||||
// prepended with 'wxPG_PROP_'.
|
||||
// prepended with 'wxPGPropertyFlags'.
|
||||
void SetFlagsFromString( const wxString& str );
|
||||
|
||||
// Sets property's "is it modified?" flag. Affects children recursively.
|
||||
void SetModifiedStatus( bool modified )
|
||||
{
|
||||
SetFlagRecursively(wxPG_PROP_MODIFIED, modified);
|
||||
SetFlagRecursively(wxPGPropertyFlags::Modified, modified);
|
||||
}
|
||||
|
||||
// Call in OnEvent(), OnButtonClick() etc. to change the property value
|
||||
|
|
@ -1671,14 +1851,14 @@ public:
|
|||
|
||||
void SetExpanded( bool expanded )
|
||||
{
|
||||
ChangeFlag(wxPG_PROP_COLLAPSED, !expanded);
|
||||
ChangeFlag(wxPGPropertyFlags::Collapsed, !expanded);
|
||||
}
|
||||
|
||||
// Sets or clears given property flag. Mainly for internal use.
|
||||
// Setting a property flag never has any side-effect, and is
|
||||
// intended almost exclusively for internal use. So, for
|
||||
// example, if you want to disable a property, call
|
||||
// Enable(false) instead of setting wxPG_PROP_DISABLED flag.
|
||||
// Enable(false) instead of setting wxPGPropertyFlags::Disabled flag.
|
||||
void ChangeFlag( wxPGPropertyFlags flag, bool set )
|
||||
{
|
||||
if ( set )
|
||||
|
|
@ -1707,14 +1887,21 @@ public:
|
|||
void SetName( const wxString& newName );
|
||||
|
||||
// Changes what sort of parent this property is for its children.
|
||||
// flag - Use one of the following values: wxPG_PROP_MISC_PARENT (for
|
||||
// generic parents), wxPG_PROP_CATEGORY (for categories), or
|
||||
// wxPG_PROP_AGGREGATE (for derived property classes with private
|
||||
// flag - Use one of the following values: wxPGPropertyFlags::MiscParent (for
|
||||
// generic parents), wxPGPropertyFlags::Category (for categories), or
|
||||
// wxPGPropertyFlags::Aggregate (for derived property classes with private
|
||||
// children).
|
||||
// You generally do not need to call this function.
|
||||
void SetParentalType( int flag )
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use SetParentalType() with 'flag' argument as wxPGPropertyFlags")
|
||||
void SetParentalType(int flag)
|
||||
{
|
||||
m_flags &= ~(wxPG_PROP_PROPERTY|wxPG_PROP_PARENTAL_FLAGS);
|
||||
SetParentalType(static_cast<wxPGPropertyFlags>(flag));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
void SetParentalType(wxPGPropertyFlags flag)
|
||||
{
|
||||
m_flags &= ~(wxPGPropertyFlags::Property | wxPGPropertyFlags::ParentalFlags);
|
||||
m_flags |= flag;
|
||||
}
|
||||
|
||||
|
|
@ -1781,7 +1968,7 @@ public:
|
|||
// (i.e. cancel 'true' returned by StringToValue() or IntToValue()).
|
||||
void SetWasModified( bool set = true )
|
||||
{
|
||||
ChangeFlag(wxPG_PROP_WAS_MODIFIED, set);
|
||||
ChangeFlag(wxPGPropertyFlags::WasModified, set);
|
||||
}
|
||||
|
||||
// Returns property's help or description text.
|
||||
|
|
@ -1801,7 +1988,7 @@ public:
|
|||
// Adds a private child property. If you use this instead of
|
||||
// wxPropertyGridInterface::Insert() or
|
||||
// wxPropertyGridInterface::AppendIn(), then property's parental
|
||||
// type will automatically be set up to wxPG_PROP_AGGREGATE. In other
|
||||
// type will automatically be set up to wxPGPropertyFlags::Aggregate. In other
|
||||
// words, all properties of this property will become private.
|
||||
void AddPrivateChild( wxPGProperty* prop );
|
||||
|
||||
|
|
@ -1910,17 +2097,38 @@ protected:
|
|||
// preparedCell.
|
||||
// ignoreWithFlags - Properties with any one of these flags are skipped.
|
||||
// recursively - If true, apply this operation recursively in child properties.
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use AdaptiveSetCell() with 'ignoreWithFlags' argument as wxPGPropertyFlags")
|
||||
void AdaptiveSetCell( unsigned int firstCol,
|
||||
unsigned int lastCol,
|
||||
const wxPGCell& preparedCell,
|
||||
const wxPGCell& srcData,
|
||||
wxPGCellData* unmodCellData,
|
||||
FlagType ignoreWithFlags,
|
||||
bool recursively );
|
||||
int ignoreWithFlags,
|
||||
bool recursively )
|
||||
{
|
||||
AdaptiveSetCell(firstCol, lastCol, preparedCell, srcData, unmodCellData,
|
||||
static_cast<wxPGPropertyFlags>(ignoreWithFlags), recursively);
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
void AdaptiveSetCell(unsigned int firstCol,
|
||||
unsigned int lastCol,
|
||||
const wxPGCell& preparedCell,
|
||||
const wxPGCell& srcData,
|
||||
wxPGCellData* unmodCellData,
|
||||
wxPGPropertyFlags ignoreWithFlags,
|
||||
bool recursively);
|
||||
|
||||
// Clear cells associated with property.
|
||||
// recursively - If true, apply this operation recursively in child properties.
|
||||
void ClearCells(FlagType ignoreWithFlags, bool recursively);
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ClearCells() with 'ignoreWithFlags' argument as wxPGPropertyFlags")
|
||||
void ClearCells(int ignoreWithFlags, bool recursively)
|
||||
{
|
||||
ClearCells(static_cast<wxPGPropertyFlags>(ignoreWithFlags), recursively);
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
void ClearCells(wxPGPropertyFlags ignoreWithFlags, bool recursively);
|
||||
|
||||
// Makes sure m_cells has size of column+1 (or more).
|
||||
void EnsureCells( unsigned int column );
|
||||
|
|
@ -1937,10 +2145,20 @@ protected:
|
|||
int index = -1,
|
||||
bool correct_mode = true );
|
||||
|
||||
void DoGenerateComposedValue( wxString& text,
|
||||
int argFlags = wxPG_VALUE_IS_CURRENT,
|
||||
const wxVariantList* valueOverrides = nullptr,
|
||||
wxPGHashMapS2S* childResults = nullptr ) const;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use DoGenerateComposedValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
void DoGenerateComposedValue(wxString& text, int flags,
|
||||
const wxVariantList* valueOverrides,
|
||||
wxPGHashMapS2S* childResults) const
|
||||
{
|
||||
DoGenerateComposedValue(text, static_cast<wxPGPropValFormatFlags>(flags),
|
||||
valueOverrides, childResults);
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
void DoGenerateComposedValue(wxString& text,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::ValueIsCurrent,
|
||||
const wxVariantList* valueOverrides = nullptr,
|
||||
wxPGHashMapS2S* childResults = nullptr) const;
|
||||
|
||||
bool DoHide( bool hide, wxPGPropertyValuesFlags flags );
|
||||
|
||||
|
|
@ -1989,7 +2207,17 @@ protected:
|
|||
m_flags |= flag;
|
||||
}
|
||||
|
||||
void ClearFlag( FlagType flag ) { m_flags &= ~(flag); }
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ClearFlag() with 'flag' argument as wxPGPropertyFlags")
|
||||
void ClearFlag( int flag )
|
||||
{
|
||||
ClearFlag(static_cast<wxPGPropertyFlags>(flag));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
void ClearFlag(wxPGPropertyFlags flag)
|
||||
{
|
||||
m_flags &= ~(flag);
|
||||
}
|
||||
|
||||
// Called when the property is being removed from the grid and/or
|
||||
// page state (but *not* when it is also deleted).
|
||||
|
|
@ -2041,7 +2269,7 @@ protected:
|
|||
// If not -1, then overrides m_value
|
||||
int m_commonValue;
|
||||
|
||||
FlagType m_flags;
|
||||
wxPGPropertyFlags m_flags;
|
||||
|
||||
// Maximum length (for string properties). Could be in some sort of
|
||||
// wxBaseStringProperty, but currently, for maximum flexibility and
|
||||
|
|
@ -2106,10 +2334,17 @@ public:
|
|||
wxPGRootProperty( const wxString& name = wxS("<Root>") );
|
||||
virtual ~wxPGRootProperty() = default;
|
||||
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use StringToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool StringToValue( wxVariant&, const wxString&, int ) const override
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool StringToValue( wxVariant&, const wxString&, wxPGPropValFormatFlags ) const override
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
protected:
|
||||
};
|
||||
|
|
@ -2132,8 +2367,24 @@ public:
|
|||
|
||||
int GetTextExtent( const wxWindow* wnd, const wxFont& font ) const;
|
||||
|
||||
virtual wxString ValueToString( wxVariant& value, int argFlags ) const override;
|
||||
virtual wxString GetValueAsString( int argFlags = 0 ) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString ValueToString(wxVariant& value, int flags) const override
|
||||
{
|
||||
m_oldValueToStringCalled = true;
|
||||
return ValueToString(value, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString ValueToString(wxVariant& value, wxPGPropValFormatFlags flags) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use GetValueAsString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString GetValueAsString(int flags) const override
|
||||
{
|
||||
m_oldGetValueAsString = true;
|
||||
return GetValueAsString(static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString GetValueAsString(wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
|
||||
protected:
|
||||
void SetTextColIndex( unsigned int colInd )
|
||||
|
|
|
|||
|
|
@ -250,7 +250,7 @@ wxPG_EX_HELP_AS_TOOLTIPS = 0x00010000,
|
|||
wxPG_EX_NATIVE_DOUBLE_BUFFERING = 0x00080000,
|
||||
|
||||
// Set this style to let user have ability to set values of properties to
|
||||
// unspecified state. Same as setting wxPG_PROP_AUTO_UNSPECIFIED for
|
||||
// unspecified state. Same as setting wxPGPropertyFlags::AutoUnspecified for
|
||||
// all properties.
|
||||
wxPG_EX_AUTO_UNSPECIFIED_VALUES = 0x00200000,
|
||||
|
||||
|
|
@ -438,7 +438,7 @@ private:
|
|||
|
||||
// These are used with wxPropertyGrid::AddActionTrigger() and
|
||||
// wxPropertyGrid::ClearActionTriggers().
|
||||
enum class wxPGKeyboardActions
|
||||
enum class wxPGKeyboardAction
|
||||
{
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
Invalid = 0,
|
||||
|
|
@ -471,22 +471,25 @@ enum class wxPGKeyboardActions
|
|||
};
|
||||
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use wxPGKeyboardActions::Invalid instead")
|
||||
constexpr wxPGKeyboardActions wxPG_ACTION_INVALID { wxPGKeyboardActions::Invalid };
|
||||
wxDEPRECATED_MSG("use wxPGKeyboardActions::NextProperty instead")
|
||||
constexpr wxPGKeyboardActions wxPG_ACTION_NEXT_PROPERTY { wxPGKeyboardActions::NextProperty };
|
||||
wxDEPRECATED_MSG("use wxPGKeyboardActions::PrevProperty instead")
|
||||
constexpr wxPGKeyboardActions wxPG_ACTION_PREV_PROPERTY { wxPGKeyboardActions::PrevProperty };
|
||||
wxDEPRECATED_MSG("use wxPGKeyboardActions::ExpandProperty instead")
|
||||
constexpr wxPGKeyboardActions wxPG_ACTION_EXPAND_PROPERTY { wxPGKeyboardActions::ExpandProperty };
|
||||
wxDEPRECATED_MSG("use wxPGKeyboardActions::CollapseProperty instead")
|
||||
constexpr wxPGKeyboardActions wxPG_ACTION_COLLAPSE_PROPERTY { wxPGKeyboardActions::CollapseProperty };
|
||||
wxDEPRECATED_MSG("use wxPGKeyboardActions::CancelEdit instead")
|
||||
constexpr wxPGKeyboardActions wxPG_ACTION_CANCEL_EDIT { wxPGKeyboardActions::CancelEdit };
|
||||
wxDEPRECATED_MSG("use wxPGKeyboardActions::Edit instead")
|
||||
constexpr wxPGKeyboardActions wxPG_ACTION_EDIT { wxPGKeyboardActions::Edit };
|
||||
wxDEPRECATED_MSG("use wxPGKeyboardActions::PressButton instead")
|
||||
constexpr wxPGKeyboardActions wxPG_ACTION_PRESS_BUTTON { wxPGKeyboardActions::PressButton };
|
||||
wxDEPRECATED_MSG("use wxPGKeyboardAction type instead")
|
||||
typedef wxPGKeyboardAction wxPGKeyboardActions;
|
||||
|
||||
wxDEPRECATED_MSG("use wxPGKeyboardAction::Invalid instead")
|
||||
constexpr wxPGKeyboardAction wxPG_ACTION_INVALID { wxPGKeyboardAction::Invalid };
|
||||
wxDEPRECATED_MSG("use wxPGKeyboardAction::NextProperty instead")
|
||||
constexpr wxPGKeyboardAction wxPG_ACTION_NEXT_PROPERTY { wxPGKeyboardAction::NextProperty };
|
||||
wxDEPRECATED_MSG("use wxPGKeyboardAction::PrevProperty instead")
|
||||
constexpr wxPGKeyboardAction wxPG_ACTION_PREV_PROPERTY { wxPGKeyboardAction::PrevProperty };
|
||||
wxDEPRECATED_MSG("use wxPGKeyboardAction::ExpandProperty instead")
|
||||
constexpr wxPGKeyboardAction wxPG_ACTION_EXPAND_PROPERTY { wxPGKeyboardAction::ExpandProperty };
|
||||
wxDEPRECATED_MSG("use wxPGKeyboardAction::CollapseProperty instead")
|
||||
constexpr wxPGKeyboardAction wxPG_ACTION_COLLAPSE_PROPERTY { wxPGKeyboardAction::CollapseProperty };
|
||||
wxDEPRECATED_MSG("use wxPGKeyboardAction::CancelEdit instead")
|
||||
constexpr wxPGKeyboardAction wxPG_ACTION_CANCEL_EDIT { wxPGKeyboardAction::CancelEdit };
|
||||
wxDEPRECATED_MSG("use wxPGKeyboardAction::Edit instead")
|
||||
constexpr wxPGKeyboardAction wxPG_ACTION_EDIT { wxPGKeyboardAction::Edit };
|
||||
wxDEPRECATED_MSG("use wxPGKeyboardAction::PressButton instead")
|
||||
constexpr wxPGKeyboardAction wxPG_ACTION_PRESS_BUTTON { wxPGKeyboardAction::PressButton };
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
|
@ -585,20 +588,20 @@ public:
|
|||
// Adds given key combination to trigger given action.
|
||||
// Here is a sample code to make Enter key press move focus to
|
||||
// the next property.
|
||||
// propGrid->AddActionTrigger(wxPGKeyboardActions::NextProperty, WXK_RETURN);
|
||||
// propGrid->AddActionTrigger(wxPGKeyboardAction::NextProperty, WXK_RETURN);
|
||||
// propGrid->DedicateKey(WXK_RETURN);
|
||||
// action - Which action to trigger. See @ref propgrid_keyboard_actions.
|
||||
// keycode - Which keycode triggers the action.
|
||||
// modifiers - Which key event modifiers, in addition to keycode, are needed to
|
||||
// trigger the action.
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use AddActionTrigger with 'action' argument as wxPGKeyboardActions")
|
||||
wxDEPRECATED_MSG("use AddActionTrigger with 'action' argument as wxPGKeyboardAction")
|
||||
void AddActionTrigger(int action, int keycode, int modifiers)
|
||||
{
|
||||
AddActionTrigger(static_cast<wxPGKeyboardActions>(action), keycode, modifiers);
|
||||
AddActionTrigger(static_cast<wxPGKeyboardAction>(action), keycode, modifiers);
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
void AddActionTrigger(wxPGKeyboardActions action, int keycode, int modifiers = 0);
|
||||
void AddActionTrigger(wxPGKeyboardAction action, int keycode, int modifiers = 0);
|
||||
|
||||
// Dedicates a specific keycode to wxPropertyGrid. This means that such
|
||||
// key presses will not be redirected to editor controls.
|
||||
|
|
@ -632,13 +635,13 @@ public:
|
|||
|
||||
// Clears action triggers for given action.
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ClearActionTriggers with wxPGKeyboardActions argument")
|
||||
wxDEPRECATED_MSG("use ClearActionTriggers with wxPGKeyboardAction argument")
|
||||
void ClearActionTriggers(int action)
|
||||
{
|
||||
ClearActionTriggers(static_cast<wxPGKeyboardActions>(action));
|
||||
ClearActionTriggers(static_cast<wxPGKeyboardAction>(action));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
void ClearActionTriggers(wxPGKeyboardActions action);
|
||||
void ClearActionTriggers(wxPGKeyboardAction action);
|
||||
|
||||
// Forces updating the value of property from the editor control.
|
||||
// Note that wxEVT_PG_CHANGING and wxEVT_PG_CHANGED are dispatched using
|
||||
|
|
@ -1032,8 +1035,15 @@ public:
|
|||
|
||||
// Returns (visual) text representation of the unspecified
|
||||
// property value.
|
||||
// argFlags - For internal use only.
|
||||
wxString GetUnspecifiedValueText( int argFlags = 0 ) const;
|
||||
// flags - For internal use only.
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use GetUnspecifiedValueText with 'flags' argument as wxPGPropValFormatFlags")
|
||||
wxString GetUnspecifiedValueText(int flags) const
|
||||
{
|
||||
return GetUnspecifiedValueText(static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
wxString GetUnspecifiedValueText(wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const;
|
||||
|
||||
// Set virtual width for this particular page. Width -1 indicates that the
|
||||
// virtual width should be disabled.
|
||||
|
|
@ -1300,10 +1310,10 @@ public:
|
|||
// Called to indicate property and editor has valid value now.
|
||||
void OnValidationFailureReset( wxPGProperty* property )
|
||||
{
|
||||
if ( property && property->HasFlag(wxPG_PROP_INVALID_VALUE) )
|
||||
if ( property && property->HasFlag(wxPGPropertyFlags::InvalidValue) )
|
||||
{
|
||||
DoOnValidationFailureReset(property);
|
||||
property->ClearFlag(wxPG_PROP_INVALID_VALUE);
|
||||
property->ClearFlag(wxPGPropertyFlags::InvalidValue);
|
||||
}
|
||||
m_validationInfo.ClearFailureMessage();
|
||||
}
|
||||
|
|
@ -1337,7 +1347,7 @@ public:
|
|||
wxVariant& invalidValue );
|
||||
|
||||
// Override to customize resetting of property validation failure status.
|
||||
// Property is guaranteed to have flag wxPG_PROP_INVALID_VALUE set.
|
||||
// Property is guaranteed to have flag wxPGPropertyFlags::InvalidValue set.
|
||||
virtual void DoOnValidationFailureReset( wxPGProperty* property );
|
||||
|
||||
int GetSpacingY() const { return m_spacingy; }
|
||||
|
|
@ -1512,7 +1522,7 @@ protected:
|
|||
wxPGValidationInfo m_validationInfo;
|
||||
|
||||
// Actions and keys that trigger them.
|
||||
std::unordered_map<int, std::pair<wxPGKeyboardActions, wxPGKeyboardActions>> m_actionTriggers;
|
||||
std::unordered_map<int, std::pair<wxPGKeyboardAction, wxPGKeyboardAction>> m_actionTriggers;
|
||||
|
||||
// Appearance of currently active editor.
|
||||
wxPGCell m_editorAppearance;
|
||||
|
|
@ -1768,14 +1778,14 @@ protected:
|
|||
unsigned int bottomItemY,
|
||||
const wxRect* itemsRect = nullptr );
|
||||
|
||||
// Translate wxKeyEvent to wxPGKeyboardActions::XXX
|
||||
std::pair<wxPGKeyboardActions, wxPGKeyboardActions> KeyEventToActions(const wxKeyEvent& event) const;
|
||||
// Translate wxKeyEvent to wxPGKeyboardAction::XXX
|
||||
std::pair<wxPGKeyboardAction, wxPGKeyboardAction> KeyEventToActions(const wxKeyEvent& event) const;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use single-argument function KeyEventToActions(event)")
|
||||
wxPGKeyboardActions KeyEventToActions(wxKeyEvent &event, wxPGKeyboardActions* pSecond) const;
|
||||
wxPGKeyboardAction KeyEventToActions(wxKeyEvent &event, wxPGKeyboardAction* pSecond) const;
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
|
||||
wxPGKeyboardActions KeyEventToAction(wxKeyEvent& event) const;
|
||||
wxPGKeyboardAction KeyEventToAction(wxKeyEvent& event) const;
|
||||
|
||||
void ImprovedClientToScreen( int* px, int* py ) const;
|
||||
|
||||
|
|
@ -1869,7 +1879,7 @@ protected:
|
|||
|
||||
private:
|
||||
|
||||
bool ButtonTriggerKeyTest(wxPGKeyboardActions action, wxKeyEvent& event);
|
||||
bool ButtonTriggerKeyTest(wxPGKeyboardAction action, wxKeyEvent& event);
|
||||
|
||||
wxDECLARE_EVENT_TABLE();
|
||||
};
|
||||
|
|
|
|||
|
|
@ -212,36 +212,93 @@ constexpr bool operator!=(wxPGPropertyValuesFlags a, int b)
|
|||
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
// Misc. argument flags.
|
||||
enum wxPG_MISC_ARG_FLAGS
|
||||
// Miscellaneous property value format flags
|
||||
enum class wxPGPropValFormatFlags : int
|
||||
{
|
||||
// No flags.
|
||||
Null = 0,
|
||||
|
||||
// Get/Store full value instead of displayed value.
|
||||
wxPG_FULL_VALUE = 0x00000001,
|
||||
FullValue = 0x00000001,
|
||||
|
||||
// Perform special action in case of unsuccessful conversion.
|
||||
wxPG_REPORT_ERROR = 0x00000002,
|
||||
ReportError = 0x00000002,
|
||||
|
||||
wxPG_PROPERTY_SPECIFIC = 0x00000004,
|
||||
PropertySpecific = 0x00000004,
|
||||
|
||||
// Get/Store editable value instead of displayed one (should only be
|
||||
// different in the case of common values)
|
||||
wxPG_EDITABLE_VALUE = 0x00000008,
|
||||
EditableValue = 0x00000008,
|
||||
|
||||
// Used when dealing with fragments of composite string value
|
||||
wxPG_COMPOSITE_FRAGMENT = 0x00000010,
|
||||
CompositeFragment = 0x00000010,
|
||||
|
||||
// Means property for which final string value is for cannot really be
|
||||
// edited.
|
||||
wxPG_UNEDITABLE_COMPOSITE_FRAGMENT = 0x00000020,
|
||||
UneditableCompositeFragment = 0x00000020,
|
||||
|
||||
// ValueToString() called from GetValueAsString()
|
||||
// (guarantees that input wxVariant value is current own value)
|
||||
wxPG_VALUE_IS_CURRENT = 0x00000040,
|
||||
ValueIsCurrent = 0x00000040,
|
||||
|
||||
// Value is being set programmatically (i.e. not by user)
|
||||
wxPG_PROGRAMMATIC_VALUE = 0x00000080
|
||||
ProgrammaticValue = 0x00000080
|
||||
};
|
||||
|
||||
constexpr wxPGPropValFormatFlags operator&(wxPGPropValFormatFlags a, wxPGPropValFormatFlags b)
|
||||
{
|
||||
return static_cast<wxPGPropValFormatFlags>(static_cast<int>(a) & static_cast<int>(b));
|
||||
}
|
||||
|
||||
constexpr wxPGPropValFormatFlags operator|(wxPGPropValFormatFlags a, wxPGPropValFormatFlags b)
|
||||
{
|
||||
return static_cast<wxPGPropValFormatFlags>(static_cast<int>(a) | static_cast<int>(b));
|
||||
}
|
||||
|
||||
inline wxPGPropValFormatFlags operator|=(wxPGPropValFormatFlags& a, wxPGPropValFormatFlags b)
|
||||
{
|
||||
return a = a | b;
|
||||
}
|
||||
|
||||
constexpr bool operator!(wxPGPropValFormatFlags a)
|
||||
{
|
||||
return static_cast<int>(a) == 0;
|
||||
}
|
||||
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
constexpr int operator&(int a, wxPGPropValFormatFlags b)
|
||||
{
|
||||
return a & static_cast<int>(b);
|
||||
}
|
||||
|
||||
constexpr int operator|(int a, wxPGPropValFormatFlags b)
|
||||
{
|
||||
return a | static_cast<int>(b);
|
||||
}
|
||||
|
||||
inline int operator|=(int& a, wxPGPropValFormatFlags b)
|
||||
{
|
||||
return a = a | static_cast<int>(b);
|
||||
}
|
||||
|
||||
wxDEPRECATED_MSG("use wxPGPropValFormatFlags::FullValue instead")
|
||||
constexpr wxPGPropValFormatFlags wxPG_FULL_VALUE { wxPGPropValFormatFlags::FullValue };
|
||||
wxDEPRECATED_MSG("use wxPGPropValFormatFlags::ReportError instead")
|
||||
constexpr wxPGPropValFormatFlags wxPG_REPORT_ERROR { wxPGPropValFormatFlags::ReportError };
|
||||
wxDEPRECATED_MSG("use wxPGPropValFormatFlags::PropertySpecific instead")
|
||||
constexpr wxPGPropValFormatFlags wxPG_PROPERTY_SPECIFIC { wxPGPropValFormatFlags::PropertySpecific };
|
||||
wxDEPRECATED_MSG("use wxPGPropValFormatFlags::EditableValue instead")
|
||||
constexpr wxPGPropValFormatFlags wxPG_EDITABLE_VALUE { wxPGPropValFormatFlags::EditableValue };
|
||||
wxDEPRECATED_MSG("use wxPGPropValFormatFlags::CompositeFragment instead")
|
||||
constexpr wxPGPropValFormatFlags wxPG_COMPOSITE_FRAGMENT { wxPGPropValFormatFlags::CompositeFragment };
|
||||
wxDEPRECATED_MSG("use wxPGPropValFormatFlags::UneditableCompositeFragment instead")
|
||||
constexpr wxPGPropValFormatFlags wxPG_UNEDITABLE_COMPOSITE_FRAGMENT { wxPGPropValFormatFlags::UneditableCompositeFragment };
|
||||
wxDEPRECATED_MSG("use wxPGPropValFormatFlags::ValueIsCurrent instead")
|
||||
constexpr wxPGPropValFormatFlags wxPG_VALUE_IS_CURRENT { wxPGPropValFormatFlags::ValueIsCurrent };
|
||||
wxDEPRECATED_MSG("use wxPGPropValFormatFlags::ProgrammaticValue instead")
|
||||
constexpr wxPGPropValFormatFlags wxPG_PROGRAMMATIC_VALUE { wxPGPropValFormatFlags::ProgrammaticValue };
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
// wxPGProperty::SetValue() flags
|
||||
|
|
|
|||
|
|
@ -331,7 +331,7 @@ public:
|
|||
{
|
||||
wxPG_PROP_ARG_CALL_PROLOG_RETVAL(wxNullProperty)
|
||||
|
||||
if ( !p->HasAnyChild() || p->HasFlag(wxPG_PROP_AGGREGATE) )
|
||||
if ( !p->HasAnyChild() || p->HasFlag(wxPGPropertyFlags::Aggregate) )
|
||||
return wxNullProperty;
|
||||
|
||||
return p->Item(0);
|
||||
|
|
@ -410,12 +410,24 @@ public:
|
|||
// only properties without given flags are stored.
|
||||
// flags - Property flags to use.
|
||||
// iterFlags - Iterator flags to use. Default is everything expect private children.
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use GetPropertiesWithFlag() with 'flags' argument as wxPGPropertyFlags")
|
||||
void GetPropertiesWithFlag( wxArrayPGProperty* targetArr,
|
||||
wxPGProperty::FlagType flags,
|
||||
int flags,
|
||||
bool inverse = false,
|
||||
int iterFlags = wxPG_ITERATE_PROPERTIES |
|
||||
wxPG_ITERATE_HIDDEN |
|
||||
wxPG_ITERATE_CATEGORIES) const;
|
||||
wxPG_ITERATE_CATEGORIES) const
|
||||
{
|
||||
GetPropertiesWithFlag(targetArr, static_cast<wxPGPropertyFlags>(flags), inverse, iterFlags);
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
void GetPropertiesWithFlag(wxArrayPGProperty* targetArr,
|
||||
wxPGPropertyFlags flags,
|
||||
bool inverse = false,
|
||||
int iterFlags = wxPG_ITERATE_PROPERTIES |
|
||||
wxPG_ITERATE_HIDDEN |
|
||||
wxPG_ITERATE_CATEGORIES) const;
|
||||
|
||||
// Returns value of given attribute. If none found, returns null wxVariant.
|
||||
wxVariant GetPropertyAttribute( wxPGPropArg id,
|
||||
|
|
@ -652,7 +664,7 @@ public:
|
|||
bool IsPropertyEnabled( wxPGPropArg id ) const
|
||||
{
|
||||
wxPG_PROP_ARG_CALL_PROLOG_RETVAL(false)
|
||||
return !p->HasFlag(wxPG_PROP_DISABLED);
|
||||
return !p->HasFlag(wxPGPropertyFlags::Disabled);
|
||||
}
|
||||
|
||||
// Returns true if given property is expanded.
|
||||
|
|
@ -664,11 +676,7 @@ public:
|
|||
bool IsPropertyModified( wxPGPropArg id ) const
|
||||
{
|
||||
wxPG_PROP_ARG_CALL_PROLOG_RETVAL(false)
|
||||
#if WXWIN_COMPATIBILITY_3_0
|
||||
return p->HasFlag(wxPG_PROP_MODIFIED)?true:false;
|
||||
#else
|
||||
return p->HasFlag(wxPG_PROP_MODIFIED);
|
||||
#endif
|
||||
return p->HasFlag(wxPGPropertyFlags::Modified);
|
||||
}
|
||||
|
||||
// Returns true if property is selected.
|
||||
|
|
@ -683,7 +691,7 @@ public:
|
|||
bool IsPropertyShown( wxPGPropArg id ) const
|
||||
{
|
||||
wxPG_PROP_ARG_CALL_PROLOG_RETVAL(false)
|
||||
return !p->HasFlag(wxPG_PROP_HIDDEN);
|
||||
return !p->HasFlag(wxPGPropertyFlags::Hidden);
|
||||
}
|
||||
|
||||
// Returns true if property value is set to unspecified.
|
||||
|
|
@ -789,22 +797,22 @@ public:
|
|||
// Sets an attribute for this property.
|
||||
// name - Text identifier of attribute. See @ref propgrid_property_attributes.
|
||||
// value - Value of attribute.
|
||||
// argFlags - Optional. Use wxPGPropertyValuesFlags::Recurse to set the attribute to child
|
||||
// flags - Optional. Use wxPGPropertyValuesFlags::Recurse to set the attribute to child
|
||||
// properties recursively.
|
||||
// Setting attribute's value to null wxVariant will simply remove it
|
||||
// from property's set of attributes.
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use SetPropertyAttribute with argFlags argument as wxPGPropertyValuesFlags")
|
||||
wxDEPRECATED_MSG("use SetPropertyAttribute with 'flags' argument as wxPGPropertyValuesFlags")
|
||||
void SetPropertyAttribute(wxPGPropArg id, const wxString& attrName,
|
||||
wxVariant value, long argFlags)
|
||||
wxVariant value, long flags)
|
||||
{
|
||||
DoSetPropertyAttribute(id, attrName, value, static_cast<wxPGPropertyValuesFlags>(argFlags));
|
||||
DoSetPropertyAttribute(id, attrName, value, static_cast<wxPGPropertyValuesFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
void SetPropertyAttribute(wxPGPropArg id, const wxString& attrName, wxVariant value,
|
||||
wxPGPropertyValuesFlags argFlags = wxPGPropertyValuesFlags::DontRecurse)
|
||||
wxPGPropertyValuesFlags flags = wxPGPropertyValuesFlags::DontRecurse)
|
||||
{
|
||||
DoSetPropertyAttribute(id, attrName, value, argFlags);
|
||||
DoSetPropertyAttribute(id, attrName, value, flags);
|
||||
}
|
||||
// Sets property attribute for all applicable properties.
|
||||
// Be sure to use this method only after all properties have been
|
||||
|
|
@ -1228,7 +1236,7 @@ protected:
|
|||
// Intermediate version needed due to wxVariant copying inefficiency
|
||||
void DoSetPropertyAttribute( wxPGPropArg id,
|
||||
const wxString& name,
|
||||
wxVariant& value, wxPGPropertyValuesFlags argFlags );
|
||||
wxVariant& value, wxPGPropertyValuesFlags flags );
|
||||
|
||||
// Empty string object to return from member functions returning const
|
||||
// wxString&.
|
||||
|
|
|
|||
|
|
@ -213,54 +213,54 @@ enum wxPG_ITERATOR_FLAGS
|
|||
|
||||
// Iterate through 'normal' property items (does not include children of
|
||||
// aggregate or hidden items by default).
|
||||
wxPG_ITERATE_PROPERTIES = wxPG_PROP_PROPERTY |
|
||||
wxPG_PROP_MISC_PARENT |
|
||||
wxPG_PROP_AGGREGATE |
|
||||
wxPG_PROP_COLLAPSED |
|
||||
wxPG_IT_CHILDREN(wxPG_PROP_MISC_PARENT) |
|
||||
wxPG_IT_CHILDREN(wxPG_PROP_CATEGORY),
|
||||
wxPG_ITERATE_PROPERTIES = wxPGPropertyFlags::Property |
|
||||
wxPGPropertyFlags::MiscParent |
|
||||
wxPGPropertyFlags::Aggregate |
|
||||
wxPGPropertyFlags::Collapsed |
|
||||
wxPG_IT_CHILDREN(wxPGPropertyFlags::MiscParent) |
|
||||
wxPG_IT_CHILDREN(wxPGPropertyFlags::Category),
|
||||
|
||||
// Iterate children of collapsed parents, and individual items that are hidden.
|
||||
wxPG_ITERATE_HIDDEN = wxPG_PROP_HIDDEN |
|
||||
wxPG_IT_CHILDREN(wxPG_PROP_COLLAPSED),
|
||||
wxPG_ITERATE_HIDDEN = wxPGPropertyFlags::Hidden |
|
||||
wxPG_IT_CHILDREN(wxPGPropertyFlags::Collapsed),
|
||||
|
||||
// Iterate children of parent that is an aggregate property (ie has fixed
|
||||
// children).
|
||||
wxPG_ITERATE_FIXED_CHILDREN = wxPG_IT_CHILDREN(wxPG_PROP_AGGREGATE) |
|
||||
wxPG_ITERATE_FIXED_CHILDREN = wxPG_IT_CHILDREN(wxPGPropertyFlags::Aggregate) |
|
||||
wxPG_ITERATE_PROPERTIES,
|
||||
|
||||
// Iterate categories.
|
||||
// Note that even without this flag, children of categories are still iterated
|
||||
// through.
|
||||
wxPG_ITERATE_CATEGORIES = wxPG_PROP_CATEGORY |
|
||||
wxPG_IT_CHILDREN(wxPG_PROP_CATEGORY) |
|
||||
wxPG_PROP_COLLAPSED,
|
||||
wxPG_ITERATE_CATEGORIES = wxPGPropertyFlags::Category |
|
||||
wxPG_IT_CHILDREN(wxPGPropertyFlags::Category) |
|
||||
wxPGPropertyFlags::Collapsed,
|
||||
|
||||
wxPG_ITERATE_ALL_PARENTS = wxPG_PROP_MISC_PARENT |
|
||||
wxPG_PROP_AGGREGATE |
|
||||
wxPG_PROP_CATEGORY,
|
||||
wxPG_ITERATE_ALL_PARENTS = static_cast<int>(wxPGPropertyFlags::MiscParent |
|
||||
wxPGPropertyFlags::Aggregate |
|
||||
wxPGPropertyFlags::Category),
|
||||
|
||||
wxPG_ITERATE_ALL_PARENTS_RECURSIVELY = wxPG_ITERATE_ALL_PARENTS |
|
||||
wxPG_IT_CHILDREN(
|
||||
wxPG_ITERATE_ALL_PARENTS),
|
||||
|
||||
wxPG_ITERATOR_FLAGS_ALL = wxPG_PROP_PROPERTY |
|
||||
wxPG_PROP_MISC_PARENT |
|
||||
wxPG_PROP_AGGREGATE |
|
||||
wxPG_PROP_HIDDEN |
|
||||
wxPG_PROP_CATEGORY |
|
||||
wxPG_PROP_COLLAPSED,
|
||||
wxPG_ITERATOR_FLAGS_ALL = static_cast<int>(wxPGPropertyFlags::Property |
|
||||
wxPGPropertyFlags::MiscParent |
|
||||
wxPGPropertyFlags::Aggregate |
|
||||
wxPGPropertyFlags::Hidden |
|
||||
wxPGPropertyFlags::Category |
|
||||
wxPGPropertyFlags::Collapsed),
|
||||
|
||||
wxPG_ITERATOR_MASK_OP_ITEM = wxPG_ITERATOR_FLAGS_ALL,
|
||||
|
||||
// (wxPG_PROP_MISC_PARENT|wxPG_PROP_AGGREGATE|wxPG_PROP_CATEGORY)
|
||||
// (wxPGPropertyFlags::MiscParent|wxPGPropertyFlags::Aggregate|wxPGPropertyFlags::Category)
|
||||
wxPG_ITERATOR_MASK_OP_PARENT = wxPG_ITERATOR_FLAGS_ALL,
|
||||
|
||||
// Combines all flags needed to iterate through visible properties
|
||||
// (ie. hidden properties and children of collapsed parents are skipped).
|
||||
wxPG_ITERATE_VISIBLE = static_cast<int>(wxPG_ITERATE_PROPERTIES) |
|
||||
wxPG_PROP_CATEGORY |
|
||||
wxPG_IT_CHILDREN(wxPG_PROP_AGGREGATE),
|
||||
wxPG_ITERATE_VISIBLE = wxPG_ITERATE_PROPERTIES |
|
||||
wxPGPropertyFlags::Category |
|
||||
wxPG_IT_CHILDREN(wxPGPropertyFlags::Aggregate),
|
||||
|
||||
// Iterate all items.
|
||||
wxPG_ITERATE_ALL = wxPG_ITERATE_VISIBLE |
|
||||
|
|
@ -276,21 +276,21 @@ wxPG_ITERATE_DEFAULT = wxPG_ITERATE_NORMAL
|
|||
|
||||
};
|
||||
|
||||
inline void wxPGCreateIteratorMasks(int flags, wxPGPropertyFlags& itemExMask, wxPGPropertyFlags& parentExMask)
|
||||
{
|
||||
itemExMask = static_cast<wxPGPropertyFlags>((flags ^ wxPG_ITERATOR_MASK_OP_ITEM) &
|
||||
wxPG_ITERATOR_MASK_OP_ITEM & 0xFFFF);
|
||||
parentExMask = static_cast<wxPGPropertyFlags>(((flags >> 16) ^ wxPG_ITERATOR_MASK_OP_PARENT) &
|
||||
wxPG_ITERATOR_MASK_OP_PARENT & 0xFFFF);
|
||||
}
|
||||
|
||||
#define wxPG_ITERATOR_CREATE_MASKS(FLAGS, A, B) \
|
||||
A = (FLAGS ^ wxPG_ITERATOR_MASK_OP_ITEM) & \
|
||||
wxPG_ITERATOR_MASK_OP_ITEM & 0xFFFF; \
|
||||
B = ((FLAGS>>16) ^ wxPG_ITERATOR_MASK_OP_PARENT) & \
|
||||
wxPG_ITERATOR_MASK_OP_PARENT & 0xFFFF;
|
||||
|
||||
|
||||
// Macro to test if children of PWC should be iterated through
|
||||
#define wxPG_ITERATOR_PARENTEXMASK_TEST(PWC, PARENTMASK) \
|
||||
( \
|
||||
!PWC->HasFlag(PARENTMASK) && \
|
||||
PWC->HasAnyChild() \
|
||||
)
|
||||
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
#ifdef wxPG_MUST_DEPRECATE_MACRO_NAME
|
||||
#pragma deprecated(wxPG_ITERATOR_CREATE_MASKS)
|
||||
#endif
|
||||
#define wxPG_ITERATOR_CREATE_MASKS wxPG_DEPRECATED_MACRO_VALUE(wxPGCreateIteratorMasks,\
|
||||
"wxPG_ITERATOR_CREATE_MASKS is deprecated. Call wxPGCreateIteratorMasks instead.")
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
|
||||
// Base for wxPropertyGridIterator classes.
|
||||
class WXDLLIMPEXP_PROPGRID wxPropertyGridIteratorBase
|
||||
|
|
@ -337,8 +337,8 @@ private:
|
|||
wxPGProperty* m_baseParent;
|
||||
|
||||
// Masks are used to quickly exclude items
|
||||
wxPGProperty::FlagType m_itemExMask;
|
||||
wxPGProperty::FlagType m_parentExMask;
|
||||
wxPGPropertyFlags m_itemExMask;
|
||||
wxPGPropertyFlags m_parentExMask;
|
||||
};
|
||||
|
||||
template <typename PROPERTY, typename STATE>
|
||||
|
|
@ -640,7 +640,7 @@ protected:
|
|||
|
||||
void DoLimitPropertyEditing(wxPGProperty* p, bool limit = true)
|
||||
{
|
||||
p->SetFlagRecursively(wxPG_PROP_NOEDITOR, limit);
|
||||
p->SetFlagRecursively(wxPGPropertyFlags::NoEditor, limit);
|
||||
}
|
||||
|
||||
bool DoSelectProperty(wxPGProperty* p, wxPGSelectPropertyFlags flags = wxPGSelectPropertyFlags::Null);
|
||||
|
|
@ -813,7 +813,6 @@ protected:
|
|||
bool m_dontCenterSplitter;
|
||||
|
||||
private:
|
||||
// Only inits arrays, doesn't migrate things or such.
|
||||
void InitNonCatMode();
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -99,10 +99,28 @@ public:
|
|||
const wxString& value = wxString() );
|
||||
virtual ~wxStringProperty() = default;
|
||||
|
||||
virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const override;
|
||||
virtual bool StringToValue( wxVariant& variant,
|
||||
const wxString& text,
|
||||
int argFlags = 0 ) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString ValueToString(wxVariant& value, int flags) const override
|
||||
{
|
||||
m_oldValueToStringCalled = true;
|
||||
return ValueToString(value, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString ValueToString(wxVariant& value,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use StringToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool StringToValue( wxVariant& variant, const wxString& text,
|
||||
int flags ) const override
|
||||
{
|
||||
m_oldStringToValueCalled = true;
|
||||
return StringToValue(variant, text, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
|
||||
virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) override;
|
||||
|
||||
|
|
@ -115,18 +133,27 @@ protected:
|
|||
// -----------------------------------------------------------------------
|
||||
|
||||
// Constants used with NumericValidation<>().
|
||||
enum wxPGNumericValidationConstants
|
||||
enum class wxPGNumericValidationMode
|
||||
{
|
||||
// Instead of modifying the value, show an error message.
|
||||
wxPG_PROPERTY_VALIDATION_ERROR_MESSAGE = 0,
|
||||
ErrorMessage,
|
||||
|
||||
// Modify value, but stick with the limitations.
|
||||
wxPG_PROPERTY_VALIDATION_SATURATE = 1,
|
||||
Saturate,
|
||||
|
||||
// Modify value, wrap around on overflow.
|
||||
wxPG_PROPERTY_VALIDATION_WRAP = 2
|
||||
Wrap
|
||||
};
|
||||
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use wxPGNumericValidationMode::ErrorMessage instead")
|
||||
constexpr wxPGNumericValidationMode wxPG_PROPERTY_VALIDATION_ERROR_MESSAGE { wxPGNumericValidationMode::ErrorMessage };
|
||||
wxDEPRECATED_MSG("use wxPGNumericValidationMode::Saturate instead")
|
||||
constexpr wxPGNumericValidationMode wxPG_PROPERTY_VALIDATION_SATURATE { wxPGNumericValidationMode::Saturate };
|
||||
wxDEPRECATED_MSG("use wxPGNumericValidationMode::Wrap instead")
|
||||
constexpr wxPGNumericValidationMode wxPG_PROPERTY_VALIDATION_WRAP { wxPGNumericValidationMode::Wrap };
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
#if wxUSE_VALIDATORS
|
||||
|
|
@ -135,13 +162,22 @@ enum wxPGNumericValidationConstants
|
|||
class WXDLLIMPEXP_PROPGRID wxNumericPropertyValidator : public wxTextValidator
|
||||
{
|
||||
public:
|
||||
enum NumericType
|
||||
enum class NumericType
|
||||
{
|
||||
Signed = 0,
|
||||
Signed,
|
||||
Unsigned,
|
||||
Float
|
||||
};
|
||||
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use NumericType::Signed instead")
|
||||
static const NumericType Signed = NumericType::Signed;
|
||||
wxDEPRECATED_MSG("use NumericType::Unsigned instead")
|
||||
static const NumericType Unsigned = NumericType::Unsigned;
|
||||
wxDEPRECATED_MSG("use NumericType::Float instead")
|
||||
static const NumericType Float = NumericType::Float;
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
|
||||
wxNumericPropertyValidator( NumericType numericType, int base = 10 );
|
||||
virtual ~wxNumericPropertyValidator() = default;
|
||||
virtual bool Validate(wxWindow* parent) override;
|
||||
|
|
@ -164,9 +200,16 @@ public:
|
|||
bool UseSpinMotion() const { return m_spinMotion; }
|
||||
|
||||
// Common validation code - for internal use.
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
template<typename T>
|
||||
wxDEPRECATED_MSG("use DoNumericValidation with 'mode' argument as wxPGNumericValidationMode")
|
||||
bool DoNumericValidation(T& value, wxPGValidationInfo* pValidationInfo,
|
||||
int mode, T defMin, T defMax) const;
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
|
||||
template<typename T>
|
||||
bool DoNumericValidation(T& value, wxPGValidationInfo* pValidationInfo,
|
||||
wxPGNumericValidationMode mode, T defMin, T defMax) const;
|
||||
|
||||
protected:
|
||||
wxNumericProperty(const wxString& label, const wxString& name);
|
||||
|
|
@ -194,15 +237,39 @@ public:
|
|||
const wxString& name,
|
||||
const wxLongLong& value );
|
||||
#endif
|
||||
virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const override;
|
||||
virtual bool StringToValue( wxVariant& variant,
|
||||
const wxString& text,
|
||||
int argFlags = 0 ) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString ValueToString(wxVariant& value, int flags) const override
|
||||
{
|
||||
m_oldValueToStringCalled = true;
|
||||
return ValueToString(value, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString ValueToString(wxVariant& value,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
int flags) const override
|
||||
{
|
||||
m_oldStringToValueCalled = true;
|
||||
return StringToValue(variant, text, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
virtual bool ValidateValue( wxVariant& value,
|
||||
wxPGValidationInfo& validationInfo ) const override;
|
||||
virtual bool IntToValue( wxVariant& variant,
|
||||
int number,
|
||||
int argFlags = 0 ) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use IntToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool IntToValue(wxVariant& variant, int number, int flags) const override
|
||||
{
|
||||
m_oldIntToValueCalled = true;
|
||||
return IntToValue(variant, number, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool IntToValue(wxVariant& variant, int number,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
static wxValidator* GetClassValidator();
|
||||
virtual wxValidator* DoGetValidator() const override;
|
||||
virtual wxVariant AddSpinStepValue(long stepScale) const override;
|
||||
|
|
@ -213,22 +280,12 @@ private:
|
|||
static bool DoValidation( const wxNumericProperty* property,
|
||||
wxLongLong& value,
|
||||
wxPGValidationInfo* pValidationInfo,
|
||||
int mode =
|
||||
wxPG_PROPERTY_VALIDATION_ERROR_MESSAGE );
|
||||
|
||||
#if defined(wxLongLong_t)
|
||||
static bool DoValidation( const wxNumericProperty* property,
|
||||
wxLongLong_t& value,
|
||||
wxPGValidationInfo* pValidationInfo,
|
||||
int mode =
|
||||
wxPG_PROPERTY_VALIDATION_ERROR_MESSAGE );
|
||||
#endif // wxLongLong_t
|
||||
wxPGNumericValidationMode = wxPGNumericValidationMode::ErrorMessage);
|
||||
#endif // wxUSE_LONGLONG
|
||||
static bool DoValidation(const wxNumericProperty* property,
|
||||
long& value,
|
||||
wxPGValidationInfo* pValidationInfo,
|
||||
int mode =
|
||||
wxPG_PROPERTY_VALIDATION_ERROR_MESSAGE);
|
||||
wxPGNumericValidationMode mode = wxPGNumericValidationMode::ErrorMessage);
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
|
@ -248,17 +305,42 @@ public:
|
|||
const wxString& name,
|
||||
const wxULongLong& value );
|
||||
#endif
|
||||
virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const override;
|
||||
virtual bool StringToValue( wxVariant& variant,
|
||||
const wxString& text,
|
||||
int argFlags = 0 ) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString ValueToString(wxVariant& value, int flags) const override
|
||||
{
|
||||
m_oldValueToStringCalled = true;
|
||||
return ValueToString(value, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString ValueToString(wxVariant& value,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use StringToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
int flags) const override
|
||||
{
|
||||
m_oldStringToValueCalled = true;
|
||||
return StringToValue(variant, text, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) override;
|
||||
virtual bool ValidateValue( wxVariant& value,
|
||||
wxPGValidationInfo& validationInfo ) const override;
|
||||
virtual wxValidator* DoGetValidator () const override;
|
||||
virtual bool IntToValue( wxVariant& variant,
|
||||
int number,
|
||||
int argFlags = 0 ) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use IntToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool IntToValue(wxVariant& variant, int number,
|
||||
int flags) const override
|
||||
{
|
||||
m_oldIntToValueCalled = true;
|
||||
return IntToValue(variant, number, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool IntToValue(wxVariant& variant, int number,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
virtual wxVariant AddSpinStepValue(long stepScale) const override;
|
||||
|
||||
protected:
|
||||
|
|
@ -273,18 +355,12 @@ private:
|
|||
static bool DoValidation(const wxNumericProperty* property,
|
||||
wxULongLong& value,
|
||||
wxPGValidationInfo* pValidationInfo,
|
||||
int mode =wxPG_PROPERTY_VALIDATION_ERROR_MESSAGE);
|
||||
#if defined(wxULongLong_t)
|
||||
static bool DoValidation(const wxNumericProperty* property,
|
||||
wxULongLong_t& value,
|
||||
wxPGValidationInfo* pValidationInfo,
|
||||
int mode =wxPG_PROPERTY_VALIDATION_ERROR_MESSAGE);
|
||||
#endif // wxULongLong_t
|
||||
wxPGNumericValidationMode = wxPGNumericValidationMode::ErrorMessage);
|
||||
#endif // wxUSE_LONGLONG
|
||||
static bool DoValidation(const wxNumericProperty* property,
|
||||
long& value,
|
||||
wxPGValidationInfo* pValidationInfo,
|
||||
int mode = wxPG_PROPERTY_VALIDATION_ERROR_MESSAGE);
|
||||
wxPGNumericValidationMode mode = wxPGNumericValidationMode::ErrorMessage);
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
|
@ -299,10 +375,27 @@ public:
|
|||
double value = 0.0 );
|
||||
virtual ~wxFloatProperty() = default;
|
||||
|
||||
virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const override;
|
||||
virtual bool StringToValue( wxVariant& variant,
|
||||
const wxString& text,
|
||||
int argFlags = 0 ) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString ValueToString(wxVariant& value, int flags) const override
|
||||
{
|
||||
m_oldValueToStringCalled = true;
|
||||
return ValueToString(value, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString ValueToString(wxVariant& value,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use StringToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
int flags) const override
|
||||
{
|
||||
m_oldStringToValueCalled = true;
|
||||
return StringToValue(variant, text, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) override;
|
||||
|
||||
virtual bool ValidateValue( wxVariant& value,
|
||||
|
|
@ -320,7 +413,7 @@ private:
|
|||
static bool DoValidation(const wxNumericProperty* property,
|
||||
double& value,
|
||||
wxPGValidationInfo* pValidationInfo,
|
||||
int mode = wxPG_PROPERTY_VALIDATION_ERROR_MESSAGE);
|
||||
wxPGNumericValidationMode mode = wxPGNumericValidationMode::ErrorMessage);
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
|
@ -335,12 +428,37 @@ public:
|
|||
bool value = false );
|
||||
virtual ~wxBoolProperty() = default;
|
||||
|
||||
virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const override;
|
||||
virtual bool StringToValue( wxVariant& variant,
|
||||
const wxString& text,
|
||||
int argFlags = 0 ) const override;
|
||||
virtual bool IntToValue( wxVariant& variant,
|
||||
int number, int argFlags = 0 ) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString ValueToString(wxVariant& value, int flags) const override
|
||||
{
|
||||
m_oldValueToStringCalled = true;
|
||||
return ValueToString(value, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString ValueToString(wxVariant& value,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use StringToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
int flags) const override
|
||||
{
|
||||
m_oldStringToValueCalled = true;
|
||||
return StringToValue(variant, text, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use IntToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool IntToValue(wxVariant& variant, int number, int flags) const override
|
||||
{
|
||||
m_oldIntToValueCalled = true;
|
||||
return IntToValue(variant, number, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool IntToValue(wxVariant& variant, int number,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) override;
|
||||
};
|
||||
|
||||
|
|
@ -349,8 +467,8 @@ public:
|
|||
#if WXWIN_COMPATIBILITY_3_2
|
||||
// If set, then selection of choices is static and should not be
|
||||
// changed (i.e. returns nullptr in GetPropertyChoices).
|
||||
wxDEPRECATED_BUT_USED_INTERNALLY_MSG("wxPG_PROP_STATIC_CHOICES is intended for internal use.")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_STATIC_CHOICES = wxPG_PROP_RESERVED_1;
|
||||
wxDEPRECATED_MSG("wxPG_PROP_STATIC_CHOICES is intended for internal use.")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_STATIC_CHOICES = wxPGPropertyFlags::Reserved_1;
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
|
||||
// Represents a single selection from a list of choices
|
||||
|
|
@ -401,18 +519,41 @@ public:
|
|||
size_t GetItemCount() const { return m_choices.GetCount(); }
|
||||
|
||||
virtual void OnSetValue() override;
|
||||
virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const override;
|
||||
virtual bool StringToValue( wxVariant& variant,
|
||||
const wxString& text,
|
||||
int argFlags = 0 ) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString ValueToString(wxVariant& value, int flags) const override
|
||||
{
|
||||
m_oldValueToStringCalled = true;
|
||||
return ValueToString(value, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString ValueToString(wxVariant& value, wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use StringToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
int flags) const override
|
||||
{
|
||||
m_oldStringToValueCalled = true;
|
||||
return StringToValue(variant, text, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
virtual bool ValidateValue( wxVariant& value,
|
||||
wxPGValidationInfo& validationInfo ) const override;
|
||||
|
||||
// If wxPG_FULL_VALUE is not set in flags, then the value is interpreted
|
||||
// If wxPGPropValFormatFlags::FullValue is not set in flags, then the value is interpreted
|
||||
// as index to choices list. Otherwise, it is actual value.
|
||||
virtual bool IntToValue( wxVariant& variant,
|
||||
int number,
|
||||
int argFlags = 0 ) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use IntToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool IntToValue(wxVariant& variant, int number, int flags) const override
|
||||
{
|
||||
m_oldIntToValueCalled = true;
|
||||
return IntToValue(variant, number, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool IntToValue(wxVariant& variant, int number,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
|
||||
//
|
||||
// Additional virtuals
|
||||
|
|
@ -434,25 +575,38 @@ protected:
|
|||
wxDEPRECATED_MSG("use ValueFromString_(wxVariant&, int*, const wxString&, int) function instead")
|
||||
bool ValueFromString_( wxVariant& value,
|
||||
const wxString& text,
|
||||
int argFlags ) const
|
||||
int flags ) const
|
||||
{
|
||||
return ValueFromString_(value, nullptr, text, argFlags);
|
||||
return ValueFromString_(value, nullptr, text, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
wxDEPRECATED_MSG("use ValueFromInt_(wxVariant&, int*, int, int) function instead")
|
||||
bool ValueFromInt_( wxVariant& value, int intVal, int argFlags ) const
|
||||
bool ValueFromInt_( wxVariant& value, int intVal, int flags ) const
|
||||
{
|
||||
return ValueFromInt_(value, nullptr, intVal, argFlags);
|
||||
return ValueFromInt_(value, nullptr, intVal, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
wxDEPRECATED_MSG("don't use ResetNextIndex() function")
|
||||
static void ResetNextIndex() { }
|
||||
#endif
|
||||
// Converts text to value and returns corresponding index in the collection
|
||||
bool ValueFromString_(wxVariant& value,
|
||||
int* pIndex,
|
||||
const wxString& text,
|
||||
int argFlags) const;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueFromString_ with 'flags' argument as wxPGPropValFormatFlags")
|
||||
bool ValueFromString_(wxVariant& value, int* pIndex,
|
||||
const wxString& text, int flags) const
|
||||
{
|
||||
return ValueFromString_(value, pIndex, text, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
bool ValueFromString_(wxVariant& value, int* pIndex,
|
||||
const wxString& text, wxPGPropValFormatFlags flags) const;
|
||||
// Converts number to value and returns corresponding index in the collection
|
||||
bool ValueFromInt_(wxVariant& value, int* pIndex, int intVal, int argFlags) const;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueFromInt_ with 'flags' argument as wxPGPropValFormatFlags")
|
||||
bool ValueFromInt_(wxVariant& value, int* pIndex, int intVal, int flags) const
|
||||
{
|
||||
return ValueFromInt_(value, pIndex, intVal, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
bool ValueFromInt_(wxVariant& value, int* pIndex, int intVal, wxPGPropValFormatFlags flags) const;
|
||||
|
||||
private:
|
||||
// This is private so that classes are guaranteed to use GetIndex
|
||||
|
|
@ -496,9 +650,17 @@ public:
|
|||
virtual ~wxEditEnumProperty() = default;
|
||||
|
||||
void OnSetValue() override;
|
||||
bool StringToValue(wxVariant& variant,
|
||||
const wxString& text,
|
||||
int argFlags = 0) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use StringToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
int flags) const override
|
||||
{
|
||||
m_oldStringToValueCalled = true;
|
||||
return StringToValue(variant, text, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
bool ValidateValue(wxVariant& value,
|
||||
wxPGValidationInfo& validationInfo) const override;
|
||||
|
||||
|
|
@ -538,10 +700,27 @@ public:
|
|||
virtual ~wxFlagsProperty () = default;
|
||||
|
||||
virtual void OnSetValue() override;
|
||||
virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const override;
|
||||
virtual bool StringToValue( wxVariant& variant,
|
||||
const wxString& text,
|
||||
int flags ) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString ValueToString(wxVariant& value, int flags) const override
|
||||
{
|
||||
m_oldValueToStringCalled = true;
|
||||
return ValueToString(value, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString ValueToString(wxVariant& value,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use StringToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
int flags) const override
|
||||
{
|
||||
m_oldStringToValueCalled = true;
|
||||
return StringToValue(variant, text, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
wxPGPropValFormatFlags flags) const override;
|
||||
virtual wxVariant ChildChanged( wxVariant& thisValue,
|
||||
int childIndex,
|
||||
wxVariant& childValue ) const override;
|
||||
|
|
@ -595,8 +774,8 @@ protected:
|
|||
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
// Indicates first bit usable by derived properties.
|
||||
wxDEPRECATED_BUT_USED_INTERNALLY_MSG("wxPG_PROP_SHOW_FULL_FILENAME is intended for internal use.")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_SHOW_FULL_FILENAME = wxPG_PROP_RESERVED_1;
|
||||
wxDEPRECATED_MSG("wxPG_PROP_SHOW_FULL_FILENAME is intended for internal use.")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_SHOW_FULL_FILENAME = wxPGPropertyFlags::Reserved_1;
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
|
||||
// Like wxLongStringProperty, but the button triggers file selector instead.
|
||||
|
|
@ -611,10 +790,26 @@ public:
|
|||
virtual ~wxFileProperty() = default;
|
||||
|
||||
virtual void OnSetValue() override;
|
||||
virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const override;
|
||||
virtual bool StringToValue( wxVariant& variant,
|
||||
const wxString& text,
|
||||
int argFlags = 0 ) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString ValueToString(wxVariant& value, int flags) const override
|
||||
{
|
||||
m_oldValueToStringCalled = true;
|
||||
return ValueToString(value, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString ValueToString(wxVariant& value, wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use StringToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
int flags) const override
|
||||
{
|
||||
m_oldStringToValueCalled = true;
|
||||
return StringToValue(variant, text, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) override;
|
||||
|
||||
static wxValidator* GetClassValidator();
|
||||
|
|
@ -637,8 +832,8 @@ protected:
|
|||
#if WXWIN_COMPATIBILITY_3_2
|
||||
// Flag used in wxLongStringProperty to mark that edit button
|
||||
// should be enabled even in the read-only mode.
|
||||
wxDEPRECATED_BUT_USED_INTERNALLY_MSG("wxPG_PROP_ACTIVE_BTN is intended for internal use.")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_ACTIVE_BTN = wxPG_PROP_RESERVED_3;
|
||||
wxDEPRECATED_MSG("wxPG_PROP_ACTIVE_BTN is intended for internal use.")
|
||||
constexpr wxPGPropertyFlags wxPG_PROP_ACTIVE_BTN = wxPGPropertyFlags::Reserved_3;
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
|
||||
// Like wxStringProperty, but has a button that triggers a small text
|
||||
|
|
@ -653,10 +848,27 @@ public:
|
|||
const wxString& value = wxString() );
|
||||
virtual ~wxLongStringProperty() = default;
|
||||
|
||||
virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const override;
|
||||
virtual bool StringToValue( wxVariant& variant,
|
||||
const wxString& text,
|
||||
int argFlags = 0 ) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString ValueToString(wxVariant& value, int flags) const override
|
||||
{
|
||||
m_oldValueToStringCalled = true;
|
||||
return ValueToString(value, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString ValueToString(wxVariant& value,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use StringToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
int flags) const override
|
||||
{
|
||||
m_oldStringToValueCalled = true;
|
||||
return StringToValue(variant, text, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
|
||||
protected:
|
||||
virtual bool DisplayEditorDialog(wxPropertyGrid* pg, wxVariant& value) override;
|
||||
|
|
@ -675,9 +887,27 @@ public:
|
|||
const wxString& value = wxString() );
|
||||
virtual ~wxDirProperty() = default;
|
||||
|
||||
virtual wxString ValueToString(wxVariant& value, int argFlags = 0) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString ValueToString(wxVariant& value, int flags) const override
|
||||
{
|
||||
m_oldValueToStringCalled = true;
|
||||
return ValueToString(value, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString ValueToString(wxVariant& value,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use StringToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
int argFlags = 0) const override;
|
||||
int flags) const override
|
||||
{
|
||||
m_oldStringToValueCalled = true;
|
||||
return StringToValue(variant, text, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_0
|
||||
virtual bool DoSetAttribute(const wxString& name, wxVariant& value) override;
|
||||
#endif // WXWIN_COMPATIBILITY_3_0
|
||||
|
|
@ -700,10 +930,27 @@ public:
|
|||
virtual ~wxArrayStringProperty() = default;
|
||||
|
||||
virtual void OnSetValue() override;
|
||||
virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const override;
|
||||
virtual bool StringToValue( wxVariant& variant,
|
||||
const wxString& text,
|
||||
int argFlags = 0 ) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use ValueToString with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual wxString ValueToString(wxVariant& value, int flags) const override
|
||||
{
|
||||
m_oldValueToStringCalled = true;
|
||||
return ValueToString(value, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual wxString ValueToString(wxVariant& value,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
#if WXWIN_COMPATIBILITY_3_2
|
||||
wxDEPRECATED_MSG("use StringToValue with 'flags' argument as wxPGPropValFormatFlags")
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
int flags) const override
|
||||
{
|
||||
m_oldStringToValueCalled = true;
|
||||
return StringToValue(variant, text, static_cast<wxPGPropValFormatFlags>(flags));
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_2
|
||||
virtual bool StringToValue(wxVariant& variant, const wxString& text,
|
||||
wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const override;
|
||||
virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) override;
|
||||
|
||||
// Implement in derived class for custom array-to-string conversion.
|
||||
|
|
|
|||
|
|
@ -24,13 +24,6 @@ public:
|
|||
const wxValidator& validator = wxDefaultValidator,
|
||||
const wxString& name = wxASCII_STR(wxControlNameStr));
|
||||
|
||||
virtual wxSize DoGetBestSize() const override;
|
||||
|
||||
protected:
|
||||
bool QtCreateControl( wxWindow *parent, wxWindowID id, const wxPoint &pos,
|
||||
const wxSize &size, long style, const wxValidator &validator,
|
||||
const wxString &name );
|
||||
|
||||
private:
|
||||
wxDECLARE_DYNAMIC_CLASS(wxControl);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -23,7 +23,10 @@ public:
|
|||
~wxWindowDCImpl();
|
||||
|
||||
protected:
|
||||
wxWindow *m_window;
|
||||
std::unique_ptr<QPicture> m_pict;
|
||||
|
||||
// @true if m_qtPainter is owned by the window, @false otherwise (default).
|
||||
bool m_isWindowPainter = false;
|
||||
|
||||
private:
|
||||
wxDECLARE_CLASS(wxWindowDCImpl);
|
||||
|
|
@ -37,10 +40,10 @@ public:
|
|||
wxClientDCImpl( wxDC *owner );
|
||||
wxClientDCImpl( wxDC *owner, wxWindow *win );
|
||||
|
||||
~wxClientDCImpl();
|
||||
private:
|
||||
std::unique_ptr<QPicture> m_pict;
|
||||
static bool
|
||||
CanBeUsedForDrawing(const wxWindow* WXUNUSED(window)) { return false; }
|
||||
|
||||
private:
|
||||
wxDECLARE_CLASS(wxClientDCImpl);
|
||||
wxDECLARE_NO_COPY_CLASS(wxClientDCImpl);
|
||||
};
|
||||
|
|
@ -51,6 +54,7 @@ class WXDLLIMPEXP_CORE wxPaintDCImpl : public wxWindowDCImpl
|
|||
public:
|
||||
wxPaintDCImpl( wxDC *owner );
|
||||
wxPaintDCImpl( wxDC *owner, wxWindow *win );
|
||||
|
||||
private:
|
||||
wxDECLARE_CLASS(wxPaintDCImpl);
|
||||
wxDECLARE_NO_COPY_CLASS(wxPaintDCImpl);
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@
|
|||
#include "wx/frame.h"
|
||||
|
||||
class QMainWindow;
|
||||
class QScrollArea;
|
||||
|
||||
class WXDLLIMPEXP_CORE wxFrame : public wxFrameBase
|
||||
{
|
||||
|
|
@ -51,7 +50,6 @@ public:
|
|||
virtual void RemoveChild( wxWindowBase *child ) override;
|
||||
|
||||
QMainWindow *GetQMainWindow() const;
|
||||
virtual QScrollArea *QtGetScrollBarsContainer() const override;
|
||||
|
||||
protected:
|
||||
virtual wxPoint GetClientAreaOrigin() const override;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@
|
|||
|
||||
class QListWidget;
|
||||
class QModelIndex;
|
||||
class QScrollArea;
|
||||
|
||||
class WXDLLIMPEXP_CORE wxListBox : public wxListBoxBase
|
||||
{
|
||||
|
|
@ -87,8 +86,6 @@ protected:
|
|||
|
||||
virtual int DoListHitTest(const wxPoint& point) const override;
|
||||
|
||||
virtual QScrollArea *QtGetScrollBarsContainer() const override;
|
||||
|
||||
#if wxUSE_CHECKLISTBOX
|
||||
bool m_hasCheckBoxes;
|
||||
#endif // wxUSE_CHECKLISTBOX
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: include/wx/qt/winevent_qt.h
|
||||
// Name: include/wx/qt/private/winevent.h
|
||||
// Purpose: QWidget to wxWindow event handler
|
||||
// Author: Javier Torres, Peter Most
|
||||
// Created: 21.06.10
|
||||
|
|
@ -371,7 +371,7 @@ protected:
|
|||
virtual bool winEvent ( MSG * message, long * result ) { }
|
||||
virtual bool x11Event ( XEvent * event ) { } */
|
||||
|
||||
virtual bool event(QEvent *event)
|
||||
virtual bool event(QEvent *event) override
|
||||
{
|
||||
if (event->type() == QEvent::Gesture)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -10,15 +10,12 @@
|
|||
|
||||
#include "wx/statusbr.h"
|
||||
|
||||
class QLabel;
|
||||
class QStatusBar;
|
||||
|
||||
template < class T > class QList;
|
||||
|
||||
class WXDLLIMPEXP_CORE wxStatusBar : public wxStatusBarBase
|
||||
{
|
||||
public:
|
||||
wxStatusBar();
|
||||
wxStatusBar() = default;
|
||||
wxStatusBar(wxWindow *parent, wxWindowID winid = wxID_ANY,
|
||||
long style = wxSTB_DEFAULT_STYLE,
|
||||
const wxString& name = wxASCII_STR(wxStatusBarNameStr));
|
||||
|
|
@ -27,12 +24,11 @@ public:
|
|||
long style = wxSTB_DEFAULT_STYLE,
|
||||
const wxString& name = wxASCII_STR(wxStatusBarNameStr));
|
||||
|
||||
virtual void SetStatusWidths(int n, const int widths_field[]) override;
|
||||
virtual bool GetFieldRect(int i, wxRect& rect) const override;
|
||||
virtual void SetMinHeight(int height) override;
|
||||
virtual int GetBorderX() const override;
|
||||
virtual int GetBorderY() const override;
|
||||
virtual void Refresh( bool eraseBackground = true,
|
||||
const wxRect *rect = nullptr ) override;
|
||||
|
||||
QStatusBar *GetQStatusBar() const { return m_qtStatusBar; }
|
||||
QWidget *GetHandle() const override;
|
||||
|
|
@ -41,11 +37,10 @@ protected:
|
|||
virtual void DoUpdateStatusText(int number) override;
|
||||
|
||||
private:
|
||||
void Init();
|
||||
void UpdateFields();
|
||||
|
||||
QStatusBar *m_qtStatusBar;
|
||||
wxVector<QLabel*> m_qtPanes;
|
||||
QStatusBar *m_qtStatusBar = nullptr;
|
||||
std::vector<QWidget*> m_qtPanes;
|
||||
|
||||
wxDECLARE_DYNAMIC_CLASS(wxStatusBar);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@
|
|||
#ifndef _WX_QT_TEXTCTRL_H_
|
||||
#define _WX_QT_TEXTCTRL_H_
|
||||
|
||||
class QScrollArea;
|
||||
class wxQtEdit;
|
||||
|
||||
class WXDLLIMPEXP_CORE wxTextCtrl : public wxTextCtrlBase
|
||||
|
|
@ -93,8 +92,6 @@ protected:
|
|||
virtual bool DoLoadFile(const wxString& file, int fileType) override;
|
||||
virtual bool DoSaveFile(const wxString& file, int fileType) override;
|
||||
|
||||
virtual QScrollArea *QtGetScrollBarsContainer() const override;
|
||||
|
||||
// From wxTextEntry:
|
||||
virtual wxWindow *GetEditableWindow() override { return this; }
|
||||
|
||||
|
|
|
|||
|
|
@ -14,46 +14,37 @@
|
|||
class QShortcut;
|
||||
template < class T > class QList;
|
||||
|
||||
class QWidget;
|
||||
class QScrollArea;
|
||||
class QScrollBar;
|
||||
class QPicture;
|
||||
class QAbstractScrollArea;
|
||||
class QPainter;
|
||||
class QPicture;
|
||||
class QScrollBar;
|
||||
class QWidget;
|
||||
|
||||
class QCloseEvent;
|
||||
class QContextMenuEvent;
|
||||
class QEvent;
|
||||
class QFocusEvent;
|
||||
class QKeyEvent;
|
||||
class QPaintEvent;
|
||||
class QResizeEvent;
|
||||
class QWheelEvent;
|
||||
class QKeyEvent;
|
||||
class QMouseEvent;
|
||||
class QEvent;
|
||||
class QMoveEvent;
|
||||
class QEvent;
|
||||
class QEvent;
|
||||
class QCloseEvent;
|
||||
class QContextMenuEvent;
|
||||
class QFocusEvent;
|
||||
|
||||
class WXDLLIMPEXP_FWD_CORE wxScrollBar;
|
||||
class WXDLLIMPEXP_FWD_CORE wxQtShortcutHandler;
|
||||
|
||||
/* wxQt specific notes:
|
||||
*
|
||||
* Remember to implement the Qt object getters on all subclasses:
|
||||
* - GetHandle() returns the Qt object
|
||||
* - QtGetScrollBarsContainer() returns the widget where scrollbars are placed
|
||||
* For example, for wxFrame, GetHandle() is the QMainWindow,
|
||||
* QtGetScrollBarsContainer() is the central widget and QtGetContainer() is a widget
|
||||
* in a layout inside the central widget that also contains the scrollbars.
|
||||
* Return 0 from QtGetScrollBarsContainer() to disable SetScrollBar() and friends
|
||||
* for wxWindow subclasses.
|
||||
*
|
||||
*
|
||||
* Event handling is achieved by using the template class wxQtEventForwarder
|
||||
* found in winevent_qt.(h|cpp) to send all Qt events here to QtHandleXXXEvent()
|
||||
* methods. All these methods receive the Qt event and the handler. This is
|
||||
* done because events of the containers (the scrolled part of the window) are
|
||||
* sent to the same wxWindow instance, that must be able to differentiate them
|
||||
* as some events need different handling (paintEvent) depending on that.
|
||||
* Event handling is achieved by using the template class wxQtEventSignalHandler
|
||||
* found in winevent.h to send all Qt events here to QtHandleXXXEvent() methods.
|
||||
* All these methods receive the Qt event and the handler. This is done because
|
||||
* events of the containers (the scrolled part of the window) are sent to the
|
||||
* same wxWindow instance, that must be able to differentiate them as some events
|
||||
* need different handling (paintEvent) depending on that.
|
||||
* We pass the QWidget pointer to all event handlers for consistency.
|
||||
*/
|
||||
class WXDLLIMPEXP_CORE wxWindowQt : public wxWindowBase
|
||||
|
|
@ -75,7 +66,8 @@ public:
|
|||
long style = 0,
|
||||
const wxString& name = wxASCII_STR(wxPanelNameStr));
|
||||
|
||||
// Used by all window classes in the widget creation process.
|
||||
// Derived classes have to call PostCreation() explicitly if they don't call
|
||||
// our Create() method during widget creation process.
|
||||
void PostCreation( bool generic = true );
|
||||
|
||||
void AddChild( wxWindowBase *child ) override;
|
||||
|
|
@ -136,6 +128,9 @@ public:
|
|||
virtual bool SetBackgroundColour(const wxColour& colour) override;
|
||||
virtual bool SetForegroundColour(const wxColour& colour) override;
|
||||
|
||||
virtual void SetDoubleBuffered(bool on) override;
|
||||
virtual bool IsDoubleBuffered() const override;
|
||||
|
||||
QWidget *GetHandle() const override;
|
||||
|
||||
#if wxUSE_DRAG_AND_DROP
|
||||
|
|
@ -152,7 +147,7 @@ public:
|
|||
|
||||
// wxQt implementation internals:
|
||||
|
||||
// Caller maintains ownership of pict - window will NOT delete it
|
||||
// Takes ownership of pict - window will delete it
|
||||
void QtSetPicture( QPicture* pict );
|
||||
|
||||
QPainter *QtGetPainter();
|
||||
|
|
@ -178,8 +173,6 @@ public:
|
|||
virtual void QtHandleShortcut ( int command );
|
||||
#endif // wxUSE_ACCEL
|
||||
|
||||
virtual QScrollArea *QtGetScrollBarsContainer() const;
|
||||
|
||||
#if wxUSE_TOOLTIPS
|
||||
// applies tooltip to the widget.
|
||||
virtual void QtApplyToolTip(const wxString& text);
|
||||
|
|
@ -210,6 +203,8 @@ protected:
|
|||
virtual void DoSetClientSize(int width, int height) override;
|
||||
virtual void DoGetClientSize(int *width, int *height) const override;
|
||||
|
||||
virtual wxSize DoGetBestSize() const override;
|
||||
|
||||
virtual void DoMoveWindow(int x, int y, int width, int height) override;
|
||||
|
||||
#if wxUSE_TOOLTIPS
|
||||
|
|
@ -225,14 +220,13 @@ protected:
|
|||
// itself.
|
||||
virtual QWidget* QtGetParentWidget() const { return GetHandle(); }
|
||||
|
||||
QWidget *m_qtWindow;
|
||||
QWidget *m_qtWindow;
|
||||
QAbstractScrollArea *m_qtContainer; // either nullptr or the same as m_qtWindow pointer
|
||||
// if m_qtWindow derives from QAbstractScrollArea,
|
||||
// e.g. QListWidget and QTextEdit.
|
||||
|
||||
private:
|
||||
void Init();
|
||||
QScrollArea *m_qtContainer; // either nullptr or the same as m_qtWindow pointer
|
||||
|
||||
QScrollBar *m_horzScrollBar; // owned by m_qtWindow when allocated
|
||||
QScrollBar *m_vertScrollBar; // owned by m_qtWindow when allocated
|
||||
|
||||
// Return the viewport of m_qtContainer, if it's used, or just m_qtWindow.
|
||||
//
|
||||
|
|
@ -240,11 +234,10 @@ private:
|
|||
QWidget *QtGetClientWidget() const;
|
||||
|
||||
QScrollBar *QtGetScrollBar( int orientation ) const;
|
||||
QScrollBar *QtSetScrollBar( int orientation, QScrollBar *scrollBar=nullptr );
|
||||
|
||||
bool QtSetBackgroundStyle();
|
||||
|
||||
QPicture *m_qtPicture; // not owned
|
||||
std::unique_ptr<QPicture> m_qtPicture; // owned by this window
|
||||
std::unique_ptr<QPainter> m_qtPainter; // always allocated
|
||||
|
||||
bool m_mouseInside;
|
||||
|
|
|
|||
|
|
@ -439,7 +439,7 @@ public:
|
|||
m_targetWindow = this;
|
||||
|
||||
#ifdef __WXMAC__
|
||||
this->MacSetClipChildren(true);
|
||||
this->MacSetClipChildren();
|
||||
#endif
|
||||
|
||||
// by default, we're scrollable in both directions (but if one of the
|
||||
|
|
|
|||
|
|
@ -1330,7 +1330,7 @@
|
|||
|
||||
// Setting wxUSE_GLCANVAS to 1 enables OpenGL support. You need to have OpenGL
|
||||
// headers and libraries to be able to compile the library with wxUSE_GLCANVAS
|
||||
// set to 1 and, under Windows, also to add opengl32.lib and glu32.lib to the
|
||||
// set to 1 and, under Windows, also to add opengl32.lib to the
|
||||
// list of libraries used to link your application when linking to wxWidgets
|
||||
// statically (although this is done implicitly for Microsoft Visual C++ users).
|
||||
//
|
||||
|
|
|
|||
|
|
@ -110,6 +110,18 @@ public:
|
|||
bool unique() const { return (m_ref ? m_ref->m_count == 1 : true); }
|
||||
long use_count() const { return (m_ref ? (long)m_ref->m_count : 0); }
|
||||
|
||||
template <class U>
|
||||
friend bool operator == (wxSharedPtr<T> const &a, wxSharedPtr<U> const &b )
|
||||
{
|
||||
return a.get() == b.get();
|
||||
}
|
||||
|
||||
template <class U>
|
||||
friend bool operator != (wxSharedPtr<T> const &a, wxSharedPtr<U> const &b )
|
||||
{
|
||||
return a.get() != b.get();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
struct reftype
|
||||
|
|
@ -154,16 +166,4 @@ private:
|
|||
}
|
||||
};
|
||||
|
||||
template <class T, class U>
|
||||
bool operator == (wxSharedPtr<T> const &a, wxSharedPtr<U> const &b )
|
||||
{
|
||||
return a.get() == b.get();
|
||||
}
|
||||
|
||||
template <class T, class U>
|
||||
bool operator != (wxSharedPtr<T> const &a, wxSharedPtr<U> const &b )
|
||||
{
|
||||
return a.get() != b.get();
|
||||
}
|
||||
|
||||
#endif // _WX_SHAREDPTR_H_
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
#include "wx/control.h"
|
||||
#include "wx/list.h"
|
||||
#include "wx/dynarray.h"
|
||||
#include "wx/weakref.h"
|
||||
|
||||
extern WXDLLIMPEXP_DATA_CORE(const char) wxStatusBarNameStr[];
|
||||
|
||||
|
|
@ -84,6 +85,11 @@ public:
|
|||
// really restored anything
|
||||
bool PopText();
|
||||
|
||||
// set/get the control (child of the wxStatusBar) that will be shown in
|
||||
// this pane.
|
||||
void SetFieldControl(wxWindow* win) { m_control = win; }
|
||||
wxWindow* GetFieldControl() const { return m_control; }
|
||||
|
||||
private:
|
||||
int m_nStyle;
|
||||
int m_nWidth; // may be negative, indicating a variable-width field
|
||||
|
|
@ -97,6 +103,9 @@ private:
|
|||
|
||||
// is the currently shown value shown with ellipsis in the status bar?
|
||||
bool m_bEllipsized;
|
||||
|
||||
// remember the control that will be shown in this pane. Updated by SetFieldControl().
|
||||
wxWindowRef m_control;
|
||||
};
|
||||
|
||||
// This is preserved for compatibility, but is not supposed to be used by the
|
||||
|
|
@ -173,6 +182,14 @@ public:
|
|||
wxSize GetBorders() const
|
||||
{ return wxSize(GetBorderX(), GetBorderY()); }
|
||||
|
||||
// controls
|
||||
// --------
|
||||
|
||||
// Add a control (child of the wxStatusBar) to be shown at the specified
|
||||
// field position #n. Note that you must delete the control to remove it
|
||||
// from the status bar, as simply passing _nullptr_ will not do that.
|
||||
bool AddFieldControl(int n, wxWindow* win);
|
||||
|
||||
// miscellaneous
|
||||
// -------------
|
||||
|
||||
|
|
@ -192,6 +209,9 @@ protected:
|
|||
// display
|
||||
virtual void DoUpdateStatusText(int number) = 0;
|
||||
|
||||
// Position the added controls (added by AddFieldControl()), if any, in
|
||||
// their corresponding destination.
|
||||
void OnSize(wxSizeEvent& event);
|
||||
|
||||
// wxWindow overrides:
|
||||
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue