qflags.sip 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // This is the SIP interface definition for the QFlags based mapped types.
  2. //
  3. // Copyright (c) 2026 Riverbank Computing Limited <info@riverbankcomputing.com>
  4. //
  5. // This file is part of PyQt6.
  6. //
  7. // This file may be used under the terms of the GNU General Public License
  8. // version 3.0 as published by the Free Software Foundation and appearing in
  9. // the file LICENSE included in the packaging of this file. Please review the
  10. // following information to ensure the GNU General Public License version 3.0
  11. // requirements will be met: http://www.gnu.org/copyleft/gpl.html.
  12. //
  13. // If you do not wish to use this file under the terms of the GPL version 3.0
  14. // then you may purchase a commercial license. For more information contact
  15. // info@riverbankcomputing.com.
  16. //
  17. // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
  18. // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  19. template<ENUM>
  20. %MappedType QFlags<ENUM> /PyQtFlags=1, TypeHint="ENUM"/
  21. {
  22. %TypeHeaderCode
  23. #include <qglobal.h>
  24. %End
  25. %ConvertToTypeCode
  26. bool is_enm = true;
  27. unsigned enm = (unsigned)sipConvertToEnum(sipPy, sipType_ENUM);
  28. if (PyErr_Occurred())
  29. {
  30. PyErr_Clear();
  31. is_enm = false;
  32. }
  33. if (sipIsErr == NULL)
  34. return is_enm;
  35. *sipCppPtr = new QFlags<ENUM>(static_cast<ENUM>(enm));
  36. return sipGetState(sipTransferObj);
  37. %End
  38. %ConvertFromTypeCode
  39. return sipConvertFromEnum(sipCpp->operator::QFlags<ENUM>::Int(), sipType_ENUM);
  40. %End
  41. };