From 23d1e497d87ee9ba4b6aff96f65e67e91cc73705 Mon Sep 17 00:00:00 2001 From: Renato Filho Date: Tue, 7 Jun 2011 11:07:06 -0300 Subject: Implemented support to MSG type on windows. --- PySide/QtCore/CMakeLists.txt | 15 ++++++++++++++- PySide/QtCore/glue/hwnd_conversions.h | 32 +++++++++++++++++++++++++++++++ PySide/QtCore/typesystem_core.xml | 36 ++++++++++++++++++++++++++++++++++- PySide/QtCore/typesystem_core_win.xml | 35 ++++++++++++++++++++++++++++++++++ 4 files changed, 116 insertions(+), 2 deletions(-) create mode 100644 PySide/QtCore/glue/hwnd_conversions.h create mode 100644 PySide/QtCore/typesystem_core_win.xml (limited to 'PySide/QtCore') diff --git a/PySide/QtCore/CMakeLists.txt b/PySide/QtCore/CMakeLists.txt index df05bf652..86df1d172 100644 --- a/PySide/QtCore/CMakeLists.txt +++ b/PySide/QtCore/CMakeLists.txt @@ -36,6 +36,17 @@ else() ) endif() +if(ENABLE_WIN) + set(QtCore_typesystem "typesystem_core_win.xml") + set(QtCore_extra_SRC + ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/msg_wrapper.cpp + ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/point_wrapper.cpp + ) +else() + set(QtCore_typesystem "typesystem_core.xml") + set(QtCore_extra_SRC "") +endif() + set(QtCore_SRC ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qabstracteventdispatcher_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qabstractfileengine_wrapper.cpp @@ -135,6 +146,7 @@ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qxmlstreamreader_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qxmlstreamwriter_wrapper.cpp ${QtCore_46_SRC} ${QtCore_47_SRC} +${QtCore_extra_SRC} ) set(QtCore_typesystem_path "") @@ -155,4 +167,5 @@ create_pyside_module(QtCore "" QtCore_typesystem_path QtCore_SRC - QtCore_gluecode) + QtCore_gluecode + ${CMAKE_CURRENT_SOURCE_DIR}/${QtCore_typesystem}) diff --git a/PySide/QtCore/glue/hwnd_conversions.h b/PySide/QtCore/glue/hwnd_conversions.h new file mode 100644 index 000000000..bf2de4df1 --- /dev/null +++ b/PySide/QtCore/glue/hwnd_conversions.h @@ -0,0 +1,32 @@ +namespace Shiboken { +template <> +struct Converter +{ + static bool checkType(PyObject* pyObj) + { + return false; + } + + static bool isConvertible(PyObject* pyobj) + { + return PyCObject_Check(pyobj); + } + + static inline PyObject* toPython(void* cppobj) + { + // not supported + Q_ASSERT(true); + return 0; + } + + static PyObject* toPython(HWND__ cppobj) + { + return PyCObject_FromVoidPtr(&cppobj, 0); + } + + static HWND__ toCpp(PyObject* pyobj) + { + return *((HWND__*) PyCObject_AsVoidPtr(pyobj)); + } +}; +} diff --git a/PySide/QtCore/typesystem_core.xml b/PySide/QtCore/typesystem_core.xml index b78642138..6de9e4556 100644 --- a/PySide/QtCore/typesystem_core.xml +++ b/PySide/QtCore/typesystem_core.xml @@ -2477,6 +2477,29 @@ + + + + + long *%out = new long; + %out = 0; + + + + + + %RETURN_TYPE %out = false; + if (PySequence_Check(%PYARG_0) && (PySequence_Size(%PYARG_0) == 2)) { + Shiboken::AutoDecRef pyResult(PySequence_GetItem(%PYARG_0, 0)); + %out = %CONVERTTOCPP[bool](pyResult); + } + + + + %PYARG_0 = Shiboken::makeTuple(%0, *result_out); + delete result_out; + + @@ -3243,7 +3266,6 @@ - @@ -3272,4 +3294,16 @@ + + + + + + + + + + + + diff --git a/PySide/QtCore/typesystem_core_win.xml b/PySide/QtCore/typesystem_core_win.xml new file mode 100644 index 000000000..c4150cd80 --- /dev/null +++ b/PySide/QtCore/typesystem_core_win.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + -- cgit v1.2.3