From 7a89ddd94ed7900143e2d62e1f15bf590c7a7347 Mon Sep 17 00:00:00 2001 From: Modnark <66146584+Modnark@users.noreply.github.com> Date: Thu, 6 Oct 2022 18:08:58 -0400 Subject: [PATCH] hide gui with thumbnail generation --- .gitignore | 2 ++ ThumbnailGeneratorInstance.cpp | 12 ++++++++++-- src/include/DataModelV2/GuiRootInstance.h | 2 ++ src/source/DataModelV2/GuiRootInstance.cpp | 6 ++++++ src/source/Listener/MenuButtonListener.cpp | 10 +++++++++- 5 files changed, 29 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 0fd87dc..1ecebc4 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,5 @@ desktop.ini #Redist !Installer/Redist/* UpgradeLog.htm +click_output.JPEG +click_output.PNG diff --git a/ThumbnailGeneratorInstance.cpp b/ThumbnailGeneratorInstance.cpp index cdf1164..e4607b8 100644 --- a/ThumbnailGeneratorInstance.cpp +++ b/ThumbnailGeneratorInstance.cpp @@ -15,10 +15,15 @@ ThumbnailGeneratorInstance::~ThumbnailGeneratorInstance(void) {} std::string ThumbnailGeneratorInstance::click(std::string fileType, int cx, int cy, bool hideSky) { - const G3D::GImage::Format format = G3D::GImage::stringToFormat(fileType); - + // Important things we need RenderDevice* rd = g_usableApp->getRenderDevice(); + GuiRootInstance* guiRoot = g_dataModel->getGuiRoot(); + + const G3D::GImage::Format format = G3D::GImage::stringToFormat(fileType); + // Hide the GUI + guiRoot->hideGui(true); + // Disable the sky if(hideSky) g_usableApp->toggleSky(); @@ -38,6 +43,9 @@ std::string ThumbnailGeneratorInstance::click(std::string fileType, int cx, int std::ofstream out(fileSave.c_str(), std::ios::out | std::ios::binary); out.write(reinterpret_cast(binOut.getCArray()), binOut.length()); + // Unhide GUI + guiRoot->hideGui(false); + return "boop!"; } diff --git a/src/include/DataModelV2/GuiRootInstance.h b/src/include/DataModelV2/GuiRootInstance.h index 5f916d0..7c5c812 100644 --- a/src/include/DataModelV2/GuiRootInstance.h +++ b/src/include/DataModelV2/GuiRootInstance.h @@ -18,7 +18,9 @@ public: void update(); bool mouseInGUI(G3D::RenderDevice* renderDevice,int x,int y); void onMouseLeftUp(G3D::RenderDevice* renderDevice, int x,int y); + void hideGui(bool doHide); private: std::string _message; G3D::RealTime _messageTime; + bool _hideGui; }; \ No newline at end of file diff --git a/src/source/DataModelV2/GuiRootInstance.cpp b/src/source/DataModelV2/GuiRootInstance.cpp index 45c1762..fa83d96 100644 --- a/src/source/DataModelV2/GuiRootInstance.cpp +++ b/src/source/DataModelV2/GuiRootInstance.cpp @@ -43,6 +43,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0) { g_fntdominant = GFont::fromFile(GetFileInPath("/content/font/dominant.fnt")); g_fntlighttrek = GFont::fromFile(GetFileInPath("/content/font/lighttrek.fnt")); + _hideGui = false; //Bottom Left TextButtonInstance* button = makeTextButton(); @@ -434,6 +435,7 @@ void GuiRootInstance::setDebugMessage(std::string msg, G3D::RealTime msgTime) void GuiRootInstance::renderGUI(G3D::RenderDevice* rd, double fps) { + if(_hideGui) return; //TODO--Move these to their own instance std::stringstream stream; @@ -539,3 +541,7 @@ void GuiRootInstance::onMouseLeftUp(G3D::RenderDevice* renderDevice, int x,int y } } } + +void GuiRootInstance::hideGui(bool doHide) { + _hideGui = doHide; +} \ No newline at end of file diff --git a/src/source/Listener/MenuButtonListener.cpp b/src/source/Listener/MenuButtonListener.cpp index afd3bb4..96add33 100644 --- a/src/source/Listener/MenuButtonListener.cpp +++ b/src/source/Listener/MenuButtonListener.cpp @@ -15,8 +15,12 @@ void MenuButtonListener::onButton1MouseClick(BaseButtonInstance* button) AppendMenu(mainmenu, MF_STRING, 100, "New"); AppendMenu(mainmenu, MF_STRING, 101, "Open..."); AppendMenu(mainmenu, MF_STRING, 102, "Close"); - AppendMenu(mainmenu, MF_STRING, 103, "ThumbnailGenerator::click"); AppendMenu(mainmenu, MF_SEPARATOR, 0, NULL); + + // Temporary + AppendMenu(mainmenu, MF_STRING, 103, "ThumbnailGenerator::click hideSky = true"); + AppendMenu(mainmenu, MF_STRING, 104, "ThumbnailGenerator::click hideSky = false"); + POINT p; GetCursorPos(&p); int menuClick = TrackPopupMenu(mainmenu, TPM_LEFTBUTTON | TPM_RETURNCMD, p.x, p.y, 0, Globals::mainHwnd, 0); @@ -34,6 +38,10 @@ void MenuButtonListener::onButton1MouseClick(BaseButtonInstance* button) break; case 103: g_dataModel->getThumbnailGenerator()->click("PNG", 256, 256, true); + break; + case 104: + g_dataModel->getThumbnailGenerator()->click("JPEG", 256, 256, false); + break; } } } \ No newline at end of file