diff --git a/rainbow/VirtualGui/Nil.cpp b/rainbow/VirtualGui/Nil.cpp new file mode 100644 index 000000000..9fae86ba9 --- /dev/null +++ b/rainbow/VirtualGui/Nil.cpp @@ -0,0 +1,28 @@ +#include "VirtualGui.h" + +namespace Upp { + +dword NilGUI::GetOptions() { return 0; } +Size NilGUI::GetSize() { return Size(1000, 1000); } +dword NilGUI::GetMouseButtons() { return 0; } +dword NilGUI::GetModKeys() { return 0; } +bool NilGUI::IsMouseIn() { return false; } +bool NilGUI::ProcessEvent(bool *quit) { return true; } +void NilGUI::WaitEvent(int ms) { Sleep(1); } +bool NilGUI::IsWaitingEvent() { return false; } +void NilGUI::WakeUpGuiThread() {} +void NilGUI::SetMouseCursor(const Image& image) {} + +SystemDraw& NilGUI::BeginDraw() +{ + sysdraw.SetTarget(&nildraw); + return sysdraw; +} + +void NilGUI::CommitDraw() +{ +} + +void NilGUI::Quit() {} + +}; diff --git a/rainbow/VirtualGui/VirtualGui.h b/rainbow/VirtualGui/VirtualGui.h index 5a6ce2cfe..4ba702022 100644 --- a/rainbow/VirtualGui/VirtualGui.h +++ b/rainbow/VirtualGui/VirtualGui.h @@ -124,6 +124,25 @@ public: ~PrinterJob() {} }; +struct NilGUI : VirtualGui { + virtual dword GetOptions(); + virtual Size GetSize(); + virtual dword GetMouseButtons(); + virtual dword GetModKeys(); + virtual bool IsMouseIn(); + virtual bool ProcessEvent(bool *quit); + virtual void WaitEvent(int ms); + virtual bool IsWaitingEvent(); + virtual void WakeUpGuiThread(); + virtual void SetMouseCursor(const Image& image); + virtual SystemDraw& BeginDraw(); + virtual void CommitDraw(); + virtual void Quit(); + + NilDraw nildraw; + SystemDraw sysdraw; +}; + } #define GUIPLATFORM_INCLUDE_AFTER diff --git a/rainbow/VirtualGui/VirtualGui.upp b/rainbow/VirtualGui/VirtualGui.upp index 3e06b761e..6a6fc349c 100644 --- a/rainbow/VirtualGui/VirtualGui.upp +++ b/rainbow/VirtualGui/VirtualGui.upp @@ -11,8 +11,8 @@ library(POSIX) "SDL2 SDL2main GL"; library(WIN32) "SDL2.lib SDL2main.lib OpenGL32.lib"; file - Local.h, VirtualGui.h, + Local.h, Keys.h, After.h, Image.cpp, @@ -27,5 +27,6 @@ file Top.cpp, Clip.cpp, DnD.cpp, - ChSysInit.cpp; + ChSysInit.cpp, + Nil.cpp;