SdlBFApp.h 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #pragma once
  2. #include "BFApp.h"
  3. #include "BFWindow.h"
  4. #include <map>
  5. struct SDL_Window;
  6. NS_BF_BEGIN;
  7. class RenderDevice;
  8. typedef std::map<String, uint32> StringToUIntMap;
  9. class SdlBFWindow : public BFWindow
  10. {
  11. public:
  12. SDL_Window* mSDLWindow;
  13. bool mIsMouseInside;
  14. int mModalCount;
  15. public:
  16. SdlBFWindow(BFWindow* parent, const StringImpl& title, int x, int y, int width, int height, int windowFlags);
  17. ~SdlBFWindow();
  18. virtual bool TryClose() override;
  19. virtual void GetPosition(int* x, int* y, int* width, int* height, int* clientX, int* clientY, int* clientWidth, int* clientHeight) override;
  20. virtual void SetClientPosition(int x, int y) override;
  21. virtual void SetAlpha(float alpha, uint32 destAlphaSrcMask, bool isMouseVisible) override;
  22. virtual BFMenu* AddMenuItem(BFMenu* parent, const wchar_t* text, const wchar_t* hotKey, BFSysBitmap* sysBitmap, bool enabled, int checkState, bool radioCheck);
  23. virtual void RemoveMenuItem(BFMenu* item) override;
  24. virtual void ModalsRemoved() override;
  25. };
  26. typedef std::map<uint32, SdlBFWindow*> SdlWindowMap;
  27. class SdlBFApp : public BFApp
  28. {
  29. public:
  30. bool mInMsgProc;
  31. StringToUIntMap mClipboardFormatMap;
  32. SdlWindowMap mSdlWindowMap;
  33. protected:
  34. virtual void Draw() override;
  35. virtual void PhysSetCursor() override;
  36. uint32 GetClipboardFormat(const StringImpl& format);
  37. SdlBFWindow* GetSdlWindowFromId(uint32 id);
  38. public:
  39. SdlBFApp();
  40. virtual ~SdlBFApp();
  41. virtual void Init() override;
  42. virtual void Run() override;
  43. virtual BFWindow* CreateNewWindow(BFWindow* parent, const StringImpl& title, int x, int y, int width, int height, int windowFlags) override;
  44. virtual DrawLayer* CreateDrawLayer(BFWindow* window) override;
  45. virtual void* GetClipboardData(const StringImpl& format, int* size) override;
  46. virtual void ReleaseClipboardData(void* ptr) override;
  47. virtual void SetClipboardData(const StringImpl& format, const void* ptr, int size, bool resetClipboard) override;
  48. virtual BFSysBitmap* LoadSysBitmap(const wchar_t* fileName) override;
  49. virtual void GetDesktopResolution(int& width, int& height) override;
  50. virtual void GetWorkspaceRect(int& x, int& y, int& width, int& height) override;
  51. };
  52. NS_BF_END;