BSWin32PlatformData.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include "BsPlatform.h"
  2. #include "Win32/BsWin32Defs.h"
  3. #include "Win32/BsWin32DropTarget.h"
  4. namespace BansheeEngine
  5. {
  6. /** @cond INTERNAL */
  7. /** @addtogroup Platform
  8. * @{
  9. */
  10. /** Encapsulate native cursor data so we can avoid including windows.h as it pollutes the global namespace. */
  11. struct BS_CORE_EXPORT NativeCursorData
  12. {
  13. HCURSOR cursor;
  14. };
  15. /** Encapsulate drop target data so we can avoid including windows.h as it pollutes the global namespace. */
  16. struct BS_CORE_EXPORT NativeDropTargetData
  17. {
  18. Map<const RenderWindow*, Win32DropTarget*> dropTargetsPerWindow;
  19. Vector<Win32DropTarget*> dropTargetsToInitialize;
  20. Vector<Win32DropTarget*> dropTargetsToDestroy;
  21. };
  22. struct Platform::Pimpl
  23. {
  24. bool mIsCursorHidden = false;
  25. NativeCursorData mCursor;
  26. bool mUsingCustomCursor = false;
  27. Map<const RenderWindowCore*, WindowNonClientAreaData> mNonClientAreas;
  28. bool mIsTrackingMouse = false;
  29. Vector<RenderWindowCore*> mModalWindowStack;
  30. NativeDropTargetData mDropTargets;
  31. bool mRequiresStartUp = false;
  32. bool mRequiresShutDown = false;
  33. BS_MUTEX(mSync);
  34. };
  35. /** @} */
  36. /** @endcond */
  37. }