From 0c18353adb7cd79596bfd1fa1e26af122a7f8380 Mon Sep 17 00:00:00 2001 From: Scott Talbert Date: Sun, 7 Jun 2020 16:22:59 -0400 Subject: [PATCH 1/2] Add support for longlong and ulonglong in wxVariant out helper Fixes #1299 --- src/wxpy_api.sip | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/wxpy_api.sip b/src/wxpy_api.sip index b2750a6f..0e036c33 100644 --- a/src/wxpy_api.sip +++ b/src/wxpy_api.sip @@ -379,6 +379,12 @@ PyObject* i_wxVariant_out_helper(const wxVariant& value) else if (value.IsType("long")) obj = PyLong_FromLong(value.GetLong()); + else if (value.IsType("longlong")) + obj = PyLong_FromLongLong(value.GetLongLong().GetValue()); + + else if (value.IsType("ulonglong")) + obj = PyLong_FromUnsignedLongLong(value.GetULongLong().GetValue()); + else if (value.IsType("double")) obj = PyFloat_FromDouble(value.GetDouble()); From 4c56d3b24e475e1cb909fa936fc327ea14062f14 Mon Sep 17 00:00:00 2001 From: Scott Talbert Date: Wed, 10 Jun 2020 15:51:36 -0400 Subject: [PATCH 2/2] Ignore wxLongLong and wxULongLong overloads in PG interface Fixes #1663. With these overloads in place, EnumProperty's get created as long long in the C++ side, which results in problems because wxWidgets expects them to be plain longs. Also ignore char* and wchar* overloads which are not needed and cause problems for PyObjectProperty. --- etg/propgridiface.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/etg/propgridiface.py b/etg/propgridiface.py index 202260ba..402b6ba6 100644 --- a/etg/propgridiface.py +++ b/etg/propgridiface.py @@ -123,9 +123,13 @@ def run(): spv = c.find('SetPropertyValue') spv.findOverload('int value').ignore() + spv.findOverload('wxLongLong value').ignore() spv.findOverload('wxLongLong_t value').ignore() + spv.findOverload('wxULongLong value').ignore() spv.findOverload('wxULongLong_t value').ignore() spv.findOverload('wxObject *value').ignore() + spv.findOverload('wchar_t *value').ignore() + spv.findOverload('char *value').ignore() # Reorder SetPropertyValue overloads so the one taking a long int is not # first. Mark others that could be auto-converted from int as