From 5ee10d14e413a4e5c564ccfdd5965cc60c1231fa Mon Sep 17 00:00:00 2001 From: jacob1 Date: Thu, 13 Jul 2017 23:24:35 -0400 Subject: [PATCH] reduce unnecessary #include dependency chains for example, elements no longer include Client.h or Graphics.h, and interface stuff won't include Window.h or Graphics.h unless requested --- src/Activity.h | 10 +- src/debug/DebugLines.cpp | 3 +- src/debug/DebugParts.cpp | 3 +- src/graphics/Graphics.h | 94 +------------------ src/graphics/Icons.h | 46 +++++++++ src/graphics/Pixel.h | 53 +++++++++++ src/graphics/Renderer.cpp | 2 + src/graphics/Renderer.h | 4 +- src/gui/colourpicker/ColourPickerActivity.cpp | 2 +- src/gui/console/ConsoleController.cpp | 14 ++- src/gui/console/ConsoleView.cpp | 2 +- src/gui/dialogues/ConfirmPrompt.cpp | 13 +-- src/gui/dialogues/ConfirmPrompt.h | 1 + src/gui/dialogues/ErrorMessage.cpp | 7 +- src/gui/dialogues/InformationMessage.cpp | 7 +- src/gui/dialogues/SaveIDMessage.cpp | 9 +- src/gui/dialogues/TextPrompt.cpp | 7 +- .../elementsearch/ElementSearchActivity.cpp | 2 +- src/gui/filebrowser/FileBrowserActivity.cpp | 2 +- src/gui/game/GameController.cpp | 13 +-- src/gui/game/GameModel.h | 1 + src/gui/game/GameView.cpp | 4 +- src/gui/game/PropertyTool.cpp | 13 +-- src/gui/game/SignTool.cpp | 12 +-- src/gui/game/ToolButton.cpp | 3 +- src/gui/interface/Appearance.cpp | 1 + src/gui/interface/Appearance.h | 3 +- src/gui/interface/AvatarButton.cpp | 3 +- src/gui/interface/Button.cpp | 4 +- src/gui/interface/Checkbox.cpp | 4 +- src/gui/interface/Component.cpp | 6 ++ src/gui/interface/Component.h | 5 +- src/gui/interface/ContextMenu.cpp | 12 ++- src/gui/interface/CopyTextButton.cpp | 1 + src/gui/interface/DropDown.cpp | 12 ++- src/gui/interface/Label.cpp | 4 +- src/gui/interface/Label.h | 1 - src/gui/interface/Panel.cpp | 2 +- src/gui/interface/Panel.h | 1 + src/gui/interface/ProgressBar.cpp | 3 +- src/gui/interface/RichLabel.cpp | 2 +- src/gui/interface/SaveButton.cpp | 3 +- src/gui/interface/ScrollPanel.cpp | 3 +- src/gui/interface/Slider.cpp | 3 +- src/gui/interface/Spinner.cpp | 3 +- src/gui/interface/Textbox.cpp | 5 +- src/gui/interface/Window.cpp | 22 +++++ src/gui/interface/Window.h | 8 +- .../localbrowser/LocalBrowserController.cpp | 9 +- src/gui/login/LoginController.cpp | 13 +-- src/gui/login/LoginView.cpp | 5 +- src/gui/options/OptionsController.cpp | 14 +-- src/gui/options/OptionsView.cpp | 3 +- src/gui/preview/PreviewController.cpp | 15 +-- src/gui/preview/PreviewView.cpp | 4 +- src/gui/profile/ProfileActivity.cpp | 2 +- src/gui/render/RenderController.cpp | 13 +-- src/gui/render/RenderModel.cpp | 1 + src/gui/render/RenderView.cpp | 2 +- src/gui/save/LocalSaveActivity.cpp | 2 +- src/gui/save/ServerSaveActivity.cpp | 3 +- src/gui/save/ServerSaveActivity.h | 1 + src/gui/search/SearchController.cpp | 18 ++-- src/gui/tags/TagsController.cpp | 9 +- src/gui/tags/TagsView.cpp | 3 +- src/lua/LuaScriptInterface.cpp | 4 +- src/lua/LuaWindow.cpp | 3 +- src/simulation/Gravity.cpp | 2 +- src/simulation/WallType.h | 2 +- src/simulation/elements/Element.h | 3 +- src/tasks/TaskWindow.cpp | 8 +- 71 files changed, 307 insertions(+), 270 deletions(-) create mode 100644 src/graphics/Icons.h create mode 100644 src/graphics/Pixel.h diff --git a/src/Activity.h b/src/Activity.h index 285e6dbb56..4bdc999fec 100644 --- a/src/Activity.h +++ b/src/Activity.h @@ -26,17 +26,11 @@ class WindowActivity: public ui::Window, public Activity } virtual void Show() { - if(ui::Engine::Ref().GetWindow() != this) - { - ui::Engine::Ref().ShowWindow(this); - } + MakeActiveWindow(); } virtual void Hide() { - if(ui::Engine::Ref().GetWindow() == this) - { - ui::Engine::Ref().CloseWindow(); - } + CloseActiveWindow(); } virtual ~WindowActivity() {} }; diff --git a/src/debug/DebugLines.cpp b/src/debug/DebugLines.cpp index 760c626c63..69992dc665 100644 --- a/src/debug/DebugLines.cpp +++ b/src/debug/DebugLines.cpp @@ -1,5 +1,4 @@ #include "DebugLines.h" -#include "gui/interface/Engine.h" #include "gui/game/GameView.h" #include "gui/game/GameController.h" @@ -13,7 +12,7 @@ DebugLines::DebugLines(unsigned int id, GameView * view, GameController * contro void DebugLines::Draw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = view->GetGraphics(); if (view->GetDrawingLine()) { diff --git a/src/debug/DebugParts.cpp b/src/debug/DebugParts.cpp index c94efb17f8..fd14ddd2c4 100644 --- a/src/debug/DebugParts.cpp +++ b/src/debug/DebugParts.cpp @@ -1,7 +1,8 @@ +#include +#include #include "DebugParts.h" #include "gui/interface/Engine.h" #include "simulation/Simulation.h" -#include DebugParts::DebugParts(unsigned int id, Simulation * sim): DebugInfo(id), diff --git a/src/graphics/Graphics.h b/src/graphics/Graphics.h index 6ad16a697d..42a15081ab 100644 --- a/src/graphics/Graphics.h +++ b/src/graphics/Graphics.h @@ -9,98 +9,8 @@ #include "OpenGLHeaders.h" #endif #include "Config.h" -//#include "powder.h" - -#define PIXELCHANNELS 3 -#ifdef PIX16 -#define PIXELSIZE 2 -#define PIXPACK(x) ((((x)>>8)&0xF800)|(((x)>>5)&0x07E0)|(((x)>>3)&0x001F)) //16bit RGB in 16bit int: ???? -#define PIXRGB(r,g,b) ((((r)<<8)&0xF800)|(((g)<<3)&0x07E0)|(((b)>>3)&0x001F)) -#define PIXR(x) (((x)>>8)&0xF8) -#define PIXG(x) (((x)>>3)&0xFC) -#define PIXB(x) (((x)<<3)&0xF8) -#else -#define PIXELSIZE 4 -#ifdef PIX32BGRA -#define PIXPACK(x) ((((x)>>16)&0x0000FF)|((x)&0x00FF00)|(((x)<<16)&0xFF0000)) //24bit BGR in 32bit int: 00BBGGRR -#define PIXRGB(r,g,b) (((b)<<16)|((g)<<8)|((r)))// (((b)<<16)|((g)<<8)|(r)) -#define PIXR(x) ((x)&0xFF) -#define PIXG(x) (((x)>>8)&0xFF) -#define PIXB(x) ((x)>>16) -#else -#ifdef PIX32BGRA -#define PIXPACK(x) ((((x)>>8)&0x0000FF00)|(((x)<<8)&0x00FF0000)|(((x)<<24)&0xFF000000)) //32bit BGRA in 32bit int: BBGGRRAA -#define PIXRGB(r,g,b) (((b)<<24)|((g)<<16)|((r)<<8)) -#define PIXR(x) (((x)>>8)&0xFF) -#define PIXG(x) (((x)>>16)&0xFF) -#define PIXB(x) (((x)>>24)&0xFF) -#elif defined(PIX32OGL) -#undef PIXELCHANNELS -#define PIXELCHANNELS 4 -#define PIXPACK(x) (0xFF000000|((x)&0xFFFFFF)) //32bit ARGB in 32bit int: AARRGGBB -#define PIXRGB(r,g,b) (0xFF000000|((r)<<16)|((g)<<8)|((b))) -#define PIXRGBA(r,g,b,a) (((a)<<24)|((r)<<16)|((g)<<8)|((b))) -#define PIXA(x) (((x)>>24)&0xFF) -#define PIXR(x) (((x)>>16)&0xFF) -#define PIXG(x) (((x)>>8)&0xFF) -#define PIXB(x) ((x)&0xFF) -#else -#define PIXPACK(x) (x) //24bit RGB in 32bit int: 00RRGGBB. -#define PIXRGB(r,g,b) (((r)<<16)|((g)<<8)|(b)) -#define PIXR(x) (((x)>>16)&0xFF) -#define PIXG(x) (((x)>>8)&0xFF) -#define PIXB(x) ((x)&0xFF) -#endif -#endif -#endif - -#ifdef PIX16 -typedef unsigned short pixel; -#else -typedef unsigned int pixel; -#endif - -//Icon names, see Graphics::draw_icon -enum Icon -{ - NoIcon = 0, - IconOpen, - IconReload, - IconSave, - IconVoteUp, - IconVoteDown, - IconTag, - IconNew, - IconLogin, - IconRenderSettings, - IconSimulationSettings, - IconPause, - IconVoteSort, - IconDateSort, - IconMyOwn, - IconFavourite, - IconSearch, - IconDelete, - IconAdd, - IconReport, - IconUsername, - IconPassword, - IconClose, - IconEffect, - IconFire, - IconGlow, - IconBlur, - IconBlob, - IconBasic, - IconAltAir, - IconPressure, - IconVelocity, - IconWarp, - IconPersistant, - IconHeat, - IconLife, - IconGradient -}; +#include "Pixel.h" +#include "Icons.h" //"Graphics lite" - slightly lower performance due to variable size, class VideoBuffer diff --git a/src/graphics/Icons.h b/src/graphics/Icons.h new file mode 100644 index 0000000000..8f3dc68d48 --- /dev/null +++ b/src/graphics/Icons.h @@ -0,0 +1,46 @@ +#ifndef ICONS_H +#define ICONS_H + +//Icon names, see Graphics::draw_icon +enum Icon +{ + NoIcon = 0, + IconOpen, + IconReload, + IconSave, + IconVoteUp, + IconVoteDown, + IconTag, + IconNew, + IconLogin, + IconRenderSettings, + IconSimulationSettings, + IconPause, + IconVoteSort, + IconDateSort, + IconMyOwn, + IconFavourite, + IconSearch, + IconDelete, + IconAdd, + IconReport, + IconUsername, + IconPassword, + IconClose, + IconEffect, + IconFire, + IconGlow, + IconBlur, + IconBlob, + IconBasic, + IconAltAir, + IconPressure, + IconVelocity, + IconWarp, + IconPersistant, + IconHeat, + IconLife, + IconGradient +}; + +#endif // ICONS_H diff --git a/src/graphics/Pixel.h b/src/graphics/Pixel.h new file mode 100644 index 0000000000..bcafa762ed --- /dev/null +++ b/src/graphics/Pixel.h @@ -0,0 +1,53 @@ +#ifndef PIXEL_H +#define PIXEL_H + +#define PIXELCHANNELS 3 +#ifdef PIX16 +#define PIXELSIZE 2 +#define PIXPACK(x) ((((x)>>8)&0xF800)|(((x)>>5)&0x07E0)|(((x)>>3)&0x001F)) //16bit RGB in 16bit int: ???? +#define PIXRGB(r,g,b) ((((r)<<8)&0xF800)|(((g)<<3)&0x07E0)|(((b)>>3)&0x001F)) +#define PIXR(x) (((x)>>8)&0xF8) +#define PIXG(x) (((x)>>3)&0xFC) +#define PIXB(x) (((x)<<3)&0xF8) +#else +#define PIXELSIZE 4 +#ifdef PIX32BGRA +#define PIXPACK(x) ((((x)>>16)&0x0000FF)|((x)&0x00FF00)|(((x)<<16)&0xFF0000)) //24bit BGR in 32bit int: 00BBGGRR +#define PIXRGB(r,g,b) (((b)<<16)|((g)<<8)|((r)))// (((b)<<16)|((g)<<8)|(r)) +#define PIXR(x) ((x)&0xFF) +#define PIXG(x) (((x)>>8)&0xFF) +#define PIXB(x) ((x)>>16) +#else +#ifdef PIX32BGRA +#define PIXPACK(x) ((((x)>>8)&0x0000FF00)|(((x)<<8)&0x00FF0000)|(((x)<<24)&0xFF000000)) //32bit BGRA in 32bit int: BBGGRRAA +#define PIXRGB(r,g,b) (((b)<<24)|((g)<<16)|((r)<<8)) +#define PIXR(x) (((x)>>8)&0xFF) +#define PIXG(x) (((x)>>16)&0xFF) +#define PIXB(x) (((x)>>24)&0xFF) +#elif defined(PIX32OGL) +#undef PIXELCHANNELS +#define PIXELCHANNELS 4 +#define PIXPACK(x) (0xFF000000|((x)&0xFFFFFF)) //32bit ARGB in 32bit int: AARRGGBB +#define PIXRGB(r,g,b) (0xFF000000|((r)<<16)|((g)<<8)|((b))) +#define PIXRGBA(r,g,b,a) (((a)<<24)|((r)<<16)|((g)<<8)|((b))) +#define PIXA(x) (((x)>>24)&0xFF) +#define PIXR(x) (((x)>>16)&0xFF) +#define PIXG(x) (((x)>>8)&0xFF) +#define PIXB(x) ((x)&0xFF) +#else +#define PIXPACK(x) (x) //24bit RGB in 32bit int: 00RRGGBB. +#define PIXRGB(r,g,b) (((r)<<16)|((g)<<8)|(b)) +#define PIXR(x) (((x)>>16)&0xFF) +#define PIXG(x) (((x)>>8)&0xFF) +#define PIXB(x) ((x)&0xFF) +#endif +#endif +#endif + +#ifdef PIX16 +typedef unsigned short pixel; +#else +typedef unsigned int pixel; +#endif + +#endif // PIXEL_H diff --git a/src/graphics/Renderer.cpp b/src/graphics/Renderer.cpp index deb8d0684a..7ccfa7c7d5 100644 --- a/src/graphics/Renderer.cpp +++ b/src/graphics/Renderer.cpp @@ -4,8 +4,10 @@ #include #include #include "Config.h" +#include "Misc.h" #include "Renderer.h" #include "Graphics.h" +#include "gui/game/RenderPreset.h" #include "simulation/Elements.h" #include "simulation/ElementGraphics.h" #include "simulation/Air.h" diff --git a/src/graphics/Renderer.h b/src/graphics/Renderer.h index 37d0152c4c..78a1f80c12 100644 --- a/src/graphics/Renderer.h +++ b/src/graphics/Renderer.h @@ -7,13 +7,11 @@ #endif #include "Config.h" -#include "client/Client.h" #include "Graphics.h" #include "gui/interface/Point.h" -#include "gui/game/RenderPreset.h" +class RenderPreset; class Simulation; - class Graphics; struct gcache_item diff --git a/src/gui/colourpicker/ColourPickerActivity.cpp b/src/gui/colourpicker/ColourPickerActivity.cpp index 24bc00af83..795da04ecb 100644 --- a/src/gui/colourpicker/ColourPickerActivity.cpp +++ b/src/gui/colourpicker/ColourPickerActivity.cpp @@ -258,7 +258,7 @@ void ColourPickerActivity::OnKeyPress(int key, Uint16 character, bool shift, boo void ColourPickerActivity::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); //g->clearrect(Position.X-2, Position.Y-2, Size.X+3, Size.Y+3); g->fillrect(Position.X-2, Position.Y-2, Size.X+3, Size.Y+3, 0, 0, 0, currentAlpha); g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 255, 255, 255, 255); diff --git a/src/gui/console/ConsoleController.cpp b/src/gui/console/ConsoleController.cpp index b545f40819..ed49319a13 100644 --- a/src/gui/console/ConsoleController.cpp +++ b/src/gui/console/ConsoleController.cpp @@ -28,8 +28,7 @@ void ConsoleController::EvaluateCommand(std::string command) void ConsoleController::CloseConsole() { - if(ui::Engine::Ref().GetWindow() == consoleView) - ui::Engine::Ref().CloseWindow(); + consoleView->CloseActiveWindow(); } std::string ConsoleController::FormatCommand(std::string command) @@ -53,9 +52,8 @@ void ConsoleController::PreviousCommand() void ConsoleController::Exit() { - if(ui::Engine::Ref().GetWindow() == consoleView) - ui::Engine::Ref().CloseWindow(); - if(callback) + consoleView->CloseActiveWindow(); + if (callback) callback->ControllerExit(); HasDone = true; } @@ -65,9 +63,9 @@ ConsoleView * ConsoleController::GetView() return consoleView; } -ConsoleController::~ConsoleController() { - if(ui::Engine::Ref().GetWindow() == consoleView) - ui::Engine::Ref().CloseWindow(); +ConsoleController::~ConsoleController() +{ + consoleView->CloseActiveWindow(); delete callback; delete consoleModel; delete consoleView; diff --git a/src/gui/console/ConsoleView.cpp b/src/gui/console/ConsoleView.cpp index 46986f3952..4a25dad7bd 100644 --- a/src/gui/console/ConsoleView.cpp +++ b/src/gui/console/ConsoleView.cpp @@ -91,7 +91,7 @@ void ConsoleView::NotifyCurrentCommandChanged(ConsoleModel * sender) void ConsoleView::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); g->fillrect(Position.X, Position.Y, Size.X, Size.Y, 0, 0, 0, 110); g->draw_line(Position.X, Position.Y+Size.Y-16, Position.X+Size.X, Position.Y+Size.Y-16, 255, 255, 255, 160); g->draw_line(Position.X, Position.Y+Size.Y, Position.X+Size.X, Position.Y+Size.Y, 255, 255, 255, 200); diff --git a/src/gui/dialogues/ConfirmPrompt.cpp b/src/gui/dialogues/ConfirmPrompt.cpp index 7128e5fcd5..0fa00ff1c8 100644 --- a/src/gui/dialogues/ConfirmPrompt.cpp +++ b/src/gui/dialogues/ConfirmPrompt.cpp @@ -1,7 +1,8 @@ #include "ConfirmPrompt.h" #include "gui/Style.h" -#include "gui/interface/Label.h" #include "gui/interface/Button.h" +#include "gui/interface/Engine.h" +#include "gui/interface/Label.h" #include "gui/interface/ScrollPanel.h" #include "PowderToy.h" @@ -40,7 +41,7 @@ ConfirmPrompt::ConfirmPrompt(std::string title, std::string message, ConfirmDial CloseAction(ConfirmPrompt * prompt_, DialogueResult result_) { prompt = prompt_; result = result_; } void ActionCallback(ui::Button * sender) { - ui::Engine::Ref().CloseWindow(); + prompt->CloseActiveWindow(); if(prompt->callback) prompt->callback->ConfirmCallback(result); prompt->SelfDestruct(); @@ -64,7 +65,7 @@ ConfirmPrompt::ConfirmPrompt(std::string title, std::string message, ConfirmDial AddComponent(okayButton); SetOkayButton(okayButton); - ui::Engine::Ref().ShowWindow(this); + MakeActiveWindow(); } ConfirmPrompt::ConfirmPrompt(std::string title, std::string message, std::string buttonText, ConfirmDialogueCallback * callback_): @@ -102,7 +103,7 @@ ConfirmPrompt::ConfirmPrompt(std::string title, std::string message, std::string CloseAction(ConfirmPrompt * prompt_, DialogueResult result_) { prompt = prompt_; result = result_; } void ActionCallback(ui::Button * sender) { - ui::Engine::Ref().CloseWindow(); + prompt->CloseActiveWindow(); if(prompt->callback) prompt->callback->ConfirmCallback(result); prompt->SelfDestruct(); @@ -126,7 +127,7 @@ ConfirmPrompt::ConfirmPrompt(std::string title, std::string message, std::string AddComponent(okayButton); SetOkayButton(okayButton); - ui::Engine::Ref().ShowWindow(this); + MakeActiveWindow(); } bool ConfirmPrompt::Blocking(std::string title, std::string message, std::string buttonText) @@ -152,7 +153,7 @@ bool ConfirmPrompt::Blocking(std::string title, std::string message, std::string void ConfirmPrompt::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); g->clearrect(Position.X-2, Position.Y-2, Size.X+3, Size.Y+3); g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 200, 200, 200, 255); diff --git a/src/gui/dialogues/ConfirmPrompt.h b/src/gui/dialogues/ConfirmPrompt.h index a2a3170f19..62aff7fd2c 100644 --- a/src/gui/dialogues/ConfirmPrompt.h +++ b/src/gui/dialogues/ConfirmPrompt.h @@ -1,6 +1,7 @@ #ifndef CONFIRMPROMPT_H_ #define CONFIRMPROMPT_H_ +#include #include "gui/interface/Window.h" class ConfirmDialogueCallback; diff --git a/src/gui/dialogues/ErrorMessage.cpp b/src/gui/dialogues/ErrorMessage.cpp index 573d34fdae..ad318d46da 100644 --- a/src/gui/dialogues/ErrorMessage.cpp +++ b/src/gui/dialogues/ErrorMessage.cpp @@ -1,6 +1,7 @@ #include "gui/Style.h" #include "ErrorMessage.h" #include "gui/interface/Button.h" +#include "gui/interface/Engine.h" #include "gui/interface/Label.h" #include "PowderToy.h" @@ -30,7 +31,7 @@ ErrorMessage::ErrorMessage(std::string title, std::string message, ErrorMessage DismissAction(ErrorMessage * message_) { message = message_; } void ActionCallback(ui::Button * sender) { - ui::Engine::Ref().CloseWindow(); + message->CloseActiveWindow(); if(message->callback) message->callback->DismissCallback(); message->SelfDestruct(); @@ -46,7 +47,7 @@ ErrorMessage::ErrorMessage(std::string title, std::string message, ErrorMessage SetOkayButton(okayButton); SetCancelButton(okayButton); - ui::Engine::Ref().ShowWindow(this); + MakeActiveWindow(); } void ErrorMessage::Blocking(std::string title, std::string message) @@ -65,7 +66,7 @@ void ErrorMessage::Blocking(std::string title, std::string message) void ErrorMessage::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); g->clearrect(Position.X-2, Position.Y-2, Size.X+3, Size.Y+3); g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 200, 200, 200, 255); diff --git a/src/gui/dialogues/InformationMessage.cpp b/src/gui/dialogues/InformationMessage.cpp index fd92736cd6..a85164dd07 100644 --- a/src/gui/dialogues/InformationMessage.cpp +++ b/src/gui/dialogues/InformationMessage.cpp @@ -1,6 +1,7 @@ #include "gui/Style.h" #include "InformationMessage.h" #include "gui/interface/Button.h" +#include "gui/interface/Engine.h" #include "gui/interface/Label.h" #include "gui/interface/ScrollPanel.h" @@ -58,7 +59,7 @@ InformationMessage::InformationMessage(std::string title, std::string message, b DismissAction(InformationMessage * message_) { message = message_; } void ActionCallback(ui::Button * sender) { - ui::Engine::Ref().CloseWindow(); + message->CloseActiveWindow(); message->SelfDestruct(); //TODO: Fix component disposal } }; @@ -72,12 +73,12 @@ InformationMessage::InformationMessage(std::string title, std::string message, b SetOkayButton(okayButton); SetCancelButton(okayButton); - ui::Engine::Ref().ShowWindow(this); + MakeActiveWindow(); } void InformationMessage::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); g->clearrect(Position.X-2, Position.Y-2, Size.X+3, Size.Y+3); g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 200, 200, 200, 255); diff --git a/src/gui/dialogues/SaveIDMessage.cpp b/src/gui/dialogues/SaveIDMessage.cpp index 7c24ef41d1..b36c61641b 100644 --- a/src/gui/dialogues/SaveIDMessage.cpp +++ b/src/gui/dialogues/SaveIDMessage.cpp @@ -1,5 +1,6 @@ #include "gui/Style.h" #include "SaveIDMessage.h" +#include "graphics/Graphics.h" #include "gui/interface/Button.h" #include "gui/interface/CopyTextButton.h" #include "gui/interface/Label.h" @@ -38,7 +39,7 @@ SaveIDMessage::SaveIDMessage(int id): DismissAction(SaveIDMessage * message_) { message = message_; } void ActionCallback(ui::Button * sender) { - ui::Engine::Ref().CloseWindow(); + message->CloseActiveWindow(); message->SelfDestruct(); } }; @@ -50,12 +51,12 @@ SaveIDMessage::SaveIDMessage(int id): AddComponent(okayButton); SetCancelButton(okayButton); - ui::Engine::Ref().ShowWindow(this); + MakeActiveWindow(); } void SaveIDMessage::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); g->clearrect(Position.X-2, Position.Y-2, Size.X+3, Size.Y+3); g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 200, 200, 200, 255); @@ -63,7 +64,7 @@ void SaveIDMessage::OnDraw() void SaveIDMessage::OnTryExit(ExitMethod method) { - ui::Engine::Ref().CloseWindow(); + CloseActiveWindow(); SelfDestruct(); } diff --git a/src/gui/dialogues/TextPrompt.cpp b/src/gui/dialogues/TextPrompt.cpp index 4f49960eb4..4e0b5c0665 100644 --- a/src/gui/dialogues/TextPrompt.cpp +++ b/src/gui/dialogues/TextPrompt.cpp @@ -2,6 +2,7 @@ #include "TextPrompt.h" #include "gui/interface/Label.h" #include "gui/interface/Button.h" +#include "gui/interface/Engine.h" #include "gui/Style.h" #include "PowderToy.h" @@ -13,7 +14,7 @@ class CloseAction: public ui::ButtonAction CloseAction(TextPrompt * prompt_, TextPrompt::DialogueResult result_) { prompt = prompt_; result = result_; } void ActionCallback(ui::Button * sender) { - ui::Engine::Ref().CloseWindow(); + prompt->CloseActiveWindow(); if(prompt->callback) prompt->callback->TextCallback(result, prompt->textField->GetText()); prompt->SelfDestruct(); //TODO: Fix component disposal @@ -73,7 +74,7 @@ TextPrompt::TextPrompt(std::string title, std::string message, std::string text, AddComponent(okayButton); SetOkayButton(okayButton); - ui::Engine::Ref().ShowWindow(this); + MakeActiveWindow(); } std::string TextPrompt::Blocking(std::string title, std::string message, std::string text, std::string placeholder, bool multiline) @@ -101,7 +102,7 @@ std::string TextPrompt::Blocking(std::string title, std::string message, std::st void TextPrompt::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); g->clearrect(Position.X-2, Position.Y-2, Size.X+3, Size.Y+3); g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 200, 200, 200, 255); diff --git a/src/gui/elementsearch/ElementSearchActivity.cpp b/src/gui/elementsearch/ElementSearchActivity.cpp index 4d463a638e..17b333e227 100644 --- a/src/gui/elementsearch/ElementSearchActivity.cpp +++ b/src/gui/elementsearch/ElementSearchActivity.cpp @@ -188,7 +188,7 @@ void ElementSearchActivity::SetActiveTool(int selectionState, Tool * tool) void ElementSearchActivity::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); g->clearrect(Position.X-2, Position.Y-2, Size.X+3, Size.Y+3); g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 255, 255, 255, 255); diff --git a/src/gui/filebrowser/FileBrowserActivity.cpp b/src/gui/filebrowser/FileBrowserActivity.cpp index 6b5908f29b..4371beb33d 100644 --- a/src/gui/filebrowser/FileBrowserActivity.cpp +++ b/src/gui/filebrowser/FileBrowserActivity.cpp @@ -327,7 +327,7 @@ void FileBrowserActivity::OnTick(float dt) void FileBrowserActivity::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); //Window Background+Outline g->clearrect(Position.X-2, Position.Y-2, Size.X+4, Size.Y+4); diff --git a/src/gui/game/GameController.cpp b/src/gui/game/GameController.cpp index 574be86b88..29d9205266 100644 --- a/src/gui/game/GameController.cpp +++ b/src/gui/game/GameController.cpp @@ -224,9 +224,8 @@ GameController::~GameController() delete *iter; } delete gameModel; - if (ui::Engine::Ref().GetWindow() == gameView) + if (gameView->CloseActiveWindow()) { - ui::Engine::Ref().CloseWindow(); delete gameView; } } @@ -835,8 +834,7 @@ void GameController::Tick() void GameController::Exit() { - if(ui::Engine::Ref().GetWindow() == gameView) - ui::Engine::Ref().CloseWindow(); + gameView->CloseActiveWindow(); HasDone = true; } @@ -1365,7 +1363,7 @@ void GameController::OpenOptions() void GameController::ShowConsole() { - if(!console) + if (!console) console = new ConsoleController(NULL, commandInterface); if (console->GetView() != ui::Engine::Ref().GetWindow()) ui::Engine::Ref().ShowWindow(console->GetView()); @@ -1373,10 +1371,9 @@ void GameController::ShowConsole() void GameController::HideConsole() { - if(!console) + if (!console) return; - if (console->GetView() == ui::Engine::Ref().GetWindow()) - ui::Engine::Ref().CloseWindow(); + console->GetView()->CloseActiveWindow(); } void GameController::OpenRenderOptions() diff --git a/src/gui/game/GameModel.h b/src/gui/game/GameModel.h index 3727d81721..b747bcc867 100644 --- a/src/gui/game/GameModel.h +++ b/src/gui/game/GameModel.h @@ -20,6 +20,7 @@ using namespace std; class GameView; class GameController; +class SaveFile; class Simulation; class Renderer; diff --git a/src/gui/game/GameView.cpp b/src/gui/game/GameView.cpp index e640c8ed06..c2fe1e4b44 100644 --- a/src/gui/game/GameView.cpp +++ b/src/gui/game/GameView.cpp @@ -138,7 +138,7 @@ class SplitButton : public ui::Button void Draw(const ui::Point& screenPos) { ui::Button::Draw(screenPos); - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); drawn = true; if(showSplit) @@ -2092,7 +2092,7 @@ void GameView::SetSaveButtonTooltips() void GameView::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); if (ren) { ren->clearScreen(1.0f); diff --git a/src/gui/game/PropertyTool.cpp b/src/gui/game/PropertyTool.cpp index 0a74873a95..2a71adce40 100644 --- a/src/gui/game/PropertyTool.cpp +++ b/src/gui/game/PropertyTool.cpp @@ -1,9 +1,9 @@ #include #include +#include "Tool.h" +#include "client/Client.h" #include "gui/Style.h" #include "gui/game/Brush.h" -#include "simulation/Simulation.h" -#include "Tool.h" #include "gui/interface/Window.h" #include "gui/interface/Button.h" #include "gui/interface/Label.h" @@ -11,6 +11,7 @@ #include "gui/interface/DropDown.h" #include "gui/interface/Keys.h" #include "gui/dialogues/ErrorMessage.h" +#include "simulation/Simulation.h" class PropertyWindow: public ui::Window { @@ -33,7 +34,7 @@ class PropertyWindow: public ui::Window OkayAction(PropertyWindow * prompt_) { prompt = prompt_; } void ActionCallback(ui::Button * sender) { - ui::Engine::Ref().CloseWindow(); + prompt->CloseActiveWindow(); if(prompt->textField->GetText().length()) prompt->SetProperty(); prompt->SelfDestruct(); @@ -89,7 +90,7 @@ sim(sim_) AddComponent(textField); FocusComponent(textField); - ui::Engine::Ref().ShowWindow(this); + MakeActiveWindow(); } void PropertyWindow::SetProperty() @@ -217,13 +218,13 @@ void PropertyWindow::SetProperty() void PropertyWindow::OnTryExit(ExitMethod method) { - ui::Engine::Ref().CloseWindow(); + CloseActiveWindow(); SelfDestruct(); } void PropertyWindow::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); g->clearrect(Position.X-2, Position.Y-2, Size.X+3, Size.Y+3); g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 200, 200, 200, 255); diff --git a/src/gui/game/SignTool.cpp b/src/gui/game/SignTool.cpp index 9372e5feda..85fdf34809 100644 --- a/src/gui/game/SignTool.cpp +++ b/src/gui/game/SignTool.cpp @@ -38,7 +38,7 @@ class SignWindow: public ui::Window OkayAction(SignWindow * prompt_) { prompt = prompt_; } void ActionCallback(ui::Button * sender) { - ui::Engine::Ref().CloseWindow(); + prompt->CloseActiveWindow(); if(prompt->signID==-1 && prompt->textField->GetText().length()) { prompt->sim->signs.push_back(sign(prompt->textField->GetText(), prompt->signPosition.X, prompt->signPosition.Y, (sign::Justification)prompt->justification->GetOption().second)); @@ -57,7 +57,7 @@ class SignWindow: public ui::Window DeleteAction(SignWindow * prompt_) { prompt = prompt_; } void ActionCallback(ui::Button * sender) { - ui::Engine::Ref().CloseWindow(); + prompt->CloseActiveWindow(); if(prompt->signID!=-1) { prompt->sim->signs.erase(prompt->sim->signs.begin()+prompt->signID); @@ -166,12 +166,12 @@ SignWindow::SignWindow(SignTool * tool_, Simulation * sim_, int signID_, ui::Poi AddComponent(deleteButton); } - ui::Engine::Ref().ShowWindow(this); + MakeActiveWindow(); } void SignWindow::OnTryExit(ui::Window::ExitMethod method) { - ui::Engine::Ref().CloseWindow(); + CloseActiveWindow(); SelfDestruct(); } @@ -182,7 +182,7 @@ void SignWindow::DoDraw() sign & currentSign = *iter; int x, y, w, h, dx, dy; char type = 0; - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); std::string text = currentSign.getText(sim); sign::splitsign(currentSign.text.c_str(), &type); currentSign.pos(text, x, y, w, h); @@ -251,7 +251,7 @@ void SignWindow::DoMouseDown(int x, int y, unsigned button) void SignWindow::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); g->clearrect(Position.X-2, Position.Y-2, Size.X+3, Size.Y+3); g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 200, 200, 200, 255); diff --git a/src/gui/game/ToolButton.cpp b/src/gui/game/ToolButton.cpp index fcc88300b9..3557dc717e 100644 --- a/src/gui/game/ToolButton.cpp +++ b/src/gui/game/ToolButton.cpp @@ -1,4 +1,5 @@ #include "ToolButton.h" +#include "graphics/Graphics.h" #include "gui/interface/Keys.h" #include "gui/interface/Mouse.h" #include "Favorite.h" @@ -44,7 +45,7 @@ void ToolButton::OnMouseUp(int x, int y, unsigned int button) void ToolButton::Draw(const ui::Point& screenPos) { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); int totalColour = Appearance.BackgroundInactive.Blue + (3*Appearance.BackgroundInactive.Green) + (2*Appearance.BackgroundInactive.Red); if (Appearance.GetTexture()) diff --git a/src/gui/interface/Appearance.cpp b/src/gui/interface/Appearance.cpp index c7fdfb8315..bb453d4189 100644 --- a/src/gui/interface/Appearance.cpp +++ b/src/gui/interface/Appearance.cpp @@ -1,5 +1,6 @@ #include #include "Appearance.h" +#include "graphics/Graphics.h" namespace ui { diff --git a/src/gui/interface/Appearance.h b/src/gui/interface/Appearance.h index fb433bc47d..9c6bd0e81f 100644 --- a/src/gui/interface/Appearance.h +++ b/src/gui/interface/Appearance.h @@ -3,8 +3,9 @@ #include "Border.h" #include "Colour.h" -#include "graphics/Graphics.h" +#include "graphics/Icons.h" +class VideoBuffer; namespace ui { class Appearance diff --git a/src/gui/interface/AvatarButton.cpp b/src/gui/interface/AvatarButton.cpp index 8fa15bb2cc..ebe1e572c3 100644 --- a/src/gui/interface/AvatarButton.cpp +++ b/src/gui/interface/AvatarButton.cpp @@ -3,7 +3,6 @@ #include "AvatarButton.h" #include "Format.h" -#include "Engine.h" #include "client/Client.h" #include "client/requestbroker/RequestBroker.h" #include "graphics/Graphics.h" @@ -51,7 +50,7 @@ void AvatarButton::OnResponseReady(void * imagePtr, int identifier) void AvatarButton::Draw(const Point& screenPos) { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); if(avatar) { diff --git a/src/gui/interface/Button.cpp b/src/gui/interface/Button.cpp index b5c4b96cae..72f44777fe 100644 --- a/src/gui/interface/Button.cpp +++ b/src/gui/interface/Button.cpp @@ -1,7 +1,7 @@ #include #include "gui/interface/Button.h" +#include "gui/interface/Window.h" #include "graphics/Graphics.h" -#include "Engine.h" #include "Misc.h" namespace ui { @@ -75,7 +75,7 @@ void Button::Draw(const Point& screenPos) TextPosition(ButtonText); drawn = true; } - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); Point Position = screenPos; ui::Colour bgColour(0, 0, 0); diff --git a/src/gui/interface/Checkbox.cpp b/src/gui/interface/Checkbox.cpp index b26b5dc545..8dc1737b84 100644 --- a/src/gui/interface/Checkbox.cpp +++ b/src/gui/interface/Checkbox.cpp @@ -1,4 +1,6 @@ #include "Checkbox.h" +#include "graphics/Graphics.h" +#include "gui/interface/Window.h" using namespace ui; @@ -70,7 +72,7 @@ void Checkbox::OnMouseLeave(int x, int y) void Checkbox::Draw(const Point& screenPos) { - Graphics * g = Engine::Ref().g; + Graphics * g = GetGraphics(); if(checked) { g->fillrect(screenPos.X+5, screenPos.Y+5, 6, 6, 255, 255, 255, 255); diff --git a/src/gui/interface/Component.cpp b/src/gui/interface/Component.cpp index 7d0324c9b3..dc6534c83b 100644 --- a/src/gui/interface/Component.cpp +++ b/src/gui/interface/Component.cpp @@ -1,4 +1,5 @@ #include +#include "graphics/Graphics.h" #include "gui/interface/Component.h" #include "gui/interface/Engine.h" #include "gui/interface/Point.h" @@ -167,6 +168,11 @@ Point Component::GetScreenPos() return newPos; } +Graphics * Component::GetGraphics() +{ + return parentstate_->GetGraphics(); +} + // ***** OVERRIDEABLES ***** // Kept empty. diff --git a/src/gui/interface/Component.h b/src/gui/interface/Component.h index e04e8d4735..d2ac440438 100644 --- a/src/gui/interface/Component.h +++ b/src/gui/interface/Component.h @@ -1,9 +1,11 @@ #pragma once +#include +#include "Config.h" #include "Appearance.h" #include "Point.h" -#include "Window.h" +class Graphics; namespace ui { class ContextMenu; @@ -26,6 +28,7 @@ namespace ui ui::Point textSize; ui::Point iconPosition; ui::ContextMenu * menu; + Graphics * GetGraphics(); public: Component(Window* parent_state); Component(Point position, Point size); diff --git a/src/gui/interface/ContextMenu.cpp b/src/gui/interface/ContextMenu.cpp index 7dfa207159..32faecba10 100644 --- a/src/gui/interface/ContextMenu.cpp +++ b/src/gui/interface/ContextMenu.cpp @@ -1,5 +1,6 @@ #include "ContextMenu.h" #include "common/tpt-minmax.h" +#include "graphics/Graphics.h" using namespace ui; @@ -52,20 +53,21 @@ void ContextMenu::Show(ui::Point position) currentY += 15; } - ui::Engine::Ref().ShowWindow(this); + MakeActiveWindow(); } void ContextMenu::ActionCallbackItem(ui::Button *sender, int item) { - ui::Engine::Ref().CloseWindow(); + CloseActiveWindow(); Halt(); source->OnContextMenuAction(item); } void ContextMenu::OnMouseDown(int x, int y, unsigned button) { - if(!(x > Position.X && y > Position.Y && y < Position.Y+Size.Y && x < Position.X+Size.X)) //Clicked outside window - ui::Engine::Ref().CloseWindow(); + // Clicked outside window + if (!(x > Position.X && y > Position.Y && y < Position.Y+Size.Y && x < Position.X+Size.X)) + CloseActiveWindow(); } void ContextMenu::SetItem(int id, std::string text) @@ -99,7 +101,7 @@ void ContextMenu::AddItem(ContextMenuItem item) void ContextMenu::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); g->fillrect(Position.X, Position.Y, Size.X, Size.Y, 100, 100, 100, 255); g->drawrect(Position.X, Position.Y, Size.X, Size.Y, Appearance.BackgroundInactive.Red, Appearance.BackgroundInactive.Green, Appearance.BackgroundInactive.Blue, Appearance.BackgroundInactive.Alpha); } diff --git a/src/gui/interface/CopyTextButton.cpp b/src/gui/interface/CopyTextButton.cpp index 14ffb54367..dda5f20b7e 100644 --- a/src/gui/interface/CopyTextButton.cpp +++ b/src/gui/interface/CopyTextButton.cpp @@ -1,5 +1,6 @@ #include "CopyTextButton.h" #include "Colour.h" +#include "PowderToy.h" #include "gui/Style.h" namespace ui diff --git a/src/gui/interface/DropDown.cpp b/src/gui/interface/DropDown.cpp index af5003bf2b..53612a7829 100644 --- a/src/gui/interface/DropDown.cpp +++ b/src/gui/interface/DropDown.cpp @@ -1,7 +1,9 @@ #include +#include "graphics/Graphics.h" #include "gui/Style.h" #include "Button.h" #include "DropDown.h" +#include "gui/interface/Window.h" namespace ui { @@ -21,7 +23,7 @@ class DropDownWindow: public ui::Window { ItemSelectedAction(DropDownWindow * window, std::string option): window(window), option(option) { } virtual void ActionCallback(ui::Button *sender) { - ui::Engine::Ref().CloseWindow(); + window->CloseActiveWindow(); window->setOption(option); window->SelfDestruct(); } @@ -45,7 +47,7 @@ class DropDownWindow: public ui::Window { } virtual void OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); g->clearrect(Position.X, Position.Y, Size.X, Size.Y); } void setOption(std::string option) @@ -64,7 +66,7 @@ class DropDownWindow: public ui::Window { } virtual void OnTryExit(ExitMethod method) { - ui::Engine::Ref().CloseWindow(); + CloseActiveWindow(); SelfDestruct(); } virtual ~DropDownWindow() {} @@ -81,7 +83,7 @@ DropDown::DropDown(Point position, Point size): void DropDown::OnMouseClick(int x, int y, unsigned int button) { DropDownWindow * newWindow = new DropDownWindow(this); - ui::Engine::Ref().ShowWindow(newWindow); + newWindow->MakeActiveWindow(); } void DropDown::Draw(const Point& screenPos) @@ -92,7 +94,7 @@ void DropDown::Draw(const Point& screenPos) TextPosition(options[optionIndex].first); drawn = true; } - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); Point Position = screenPos; ui::Colour textColour = Appearance.TextInactive; diff --git a/src/gui/interface/Label.cpp b/src/gui/interface/Label.cpp index 4c274513be..e80bd77bca 100644 --- a/src/gui/interface/Label.cpp +++ b/src/gui/interface/Label.cpp @@ -5,7 +5,9 @@ #include "Label.h" #include "Keys.h" #include "Mouse.h" +#include "PowderToy.h" #include "ContextMenu.h" +#include "graphics/Graphics.h" using namespace ui; @@ -380,7 +382,7 @@ void Label::Draw(const Point& screenPos) TextPosition(text); drawn = true; } - Graphics * g = Engine::Ref().g; + Graphics * g = GetGraphics(); std::string cDisplayText = displayText; diff --git a/src/gui/interface/Label.h b/src/gui/interface/Label.h index fe6e4a2280..db276426ab 100644 --- a/src/gui/interface/Label.h +++ b/src/gui/interface/Label.h @@ -4,7 +4,6 @@ #include #include "Component.h" -#include "PowderToy.h" #include "Colour.h" namespace ui diff --git a/src/gui/interface/Panel.cpp b/src/gui/interface/Panel.cpp index 02d1899b4c..407b6ed1f3 100644 --- a/src/gui/interface/Panel.cpp +++ b/src/gui/interface/Panel.cpp @@ -1,7 +1,7 @@ #include #include "gui/interface/Panel.h" - +#include "gui/interface/Engine.h" #include "gui/interface/Point.h" #include "gui/interface/Window.h" #include "gui/interface/Component.h" diff --git a/src/gui/interface/Panel.h b/src/gui/interface/Panel.h index 91c9caf3e6..db66150d8e 100644 --- a/src/gui/interface/Panel.h +++ b/src/gui/interface/Panel.h @@ -1,6 +1,7 @@ #pragma once #include +#include "graphics/Pixel.h" #include "gui/interface/Point.h" #include "gui/interface/Window.h" #include "gui/interface/Component.h" diff --git a/src/gui/interface/ProgressBar.cpp b/src/gui/interface/ProgressBar.cpp index 7b29609b23..87cc7584aa 100644 --- a/src/gui/interface/ProgressBar.cpp +++ b/src/gui/interface/ProgressBar.cpp @@ -1,5 +1,6 @@ #include "ProgressBar.h" #include "common/tpt-minmax.h" +#include "graphics/Graphics.h" #include "gui/Style.h" using namespace ui; @@ -38,7 +39,7 @@ std::string ProgressBar::GetStatus() void ProgressBar::Draw(const Point & screenPos) { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); ui::Colour progressBarColour = style::Colour::WarningTitle; diff --git a/src/gui/interface/RichLabel.cpp b/src/gui/interface/RichLabel.cpp index fa8bf9f8c7..bc6914352e 100644 --- a/src/gui/interface/RichLabel.cpp +++ b/src/gui/interface/RichLabel.cpp @@ -175,7 +175,7 @@ std::string RichLabel::GetText() void RichLabel::Draw(const Point& screenPos) { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); ui::Colour textColour = Appearance.TextInactive; g->drawtext(screenPos.X+textPosition.X, screenPos.Y+textPosition.Y, displayText, textColour.Red, textColour.Green, textColour.Blue, 255); } diff --git a/src/gui/interface/SaveButton.cpp b/src/gui/interface/SaveButton.cpp index 9b5fdf97f2..dad2608d51 100644 --- a/src/gui/interface/SaveButton.cpp +++ b/src/gui/interface/SaveButton.cpp @@ -4,7 +4,6 @@ #include "SaveButton.h" #include "client/SaveInfo.h" #include "graphics/Graphics.h" -#include "Engine.h" #include "client/requestbroker/RequestBroker.h" #include "simulation/SaveRenderer.h" #include "Format.h" @@ -165,7 +164,7 @@ void SaveButton::Tick(float dt) void SaveButton::Draw(const Point& screenPos) { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); float scaleFactor; ui::Point thumbBoxSize(0, 0); diff --git a/src/gui/interface/ScrollPanel.cpp b/src/gui/interface/ScrollPanel.cpp index 5aa8031332..b0a8284352 100644 --- a/src/gui/interface/ScrollPanel.cpp +++ b/src/gui/interface/ScrollPanel.cpp @@ -1,6 +1,7 @@ #include #include "ScrollPanel.h" #include "common/tpt-minmax.h" +#include "graphics/Graphics.h" using namespace ui; @@ -48,7 +49,7 @@ void ScrollPanel::Draw(const Point& screenPos) { Panel::Draw(screenPos); - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); //Vertical scroll bar if (maxOffset.Y>0 && InnerSize.Y>0) diff --git a/src/gui/interface/Slider.cpp b/src/gui/interface/Slider.cpp index 66dd4e8e5a..6d7c895b3f 100644 --- a/src/gui/interface/Slider.cpp +++ b/src/gui/interface/Slider.cpp @@ -1,6 +1,7 @@ #include #include "Slider.h" #include "Colour.h" +#include "graphics/Graphics.h" namespace ui { @@ -104,7 +105,7 @@ void Slider::SetSteps(int steps) void Slider::Draw(const Point& screenPos) { - Graphics * g = Engine::Ref().g; + Graphics * g = GetGraphics(); //g->drawrect(screenPos.X, screenPos.Y, Size.X, Size.Y, 255, 255, 255, 255); if(bgGradient) diff --git a/src/gui/interface/Spinner.cpp b/src/gui/interface/Spinner.cpp index fd3a61daeb..bc51717a5f 100644 --- a/src/gui/interface/Spinner.cpp +++ b/src/gui/interface/Spinner.cpp @@ -1,6 +1,7 @@ #include #include #include "Spinner.h" +#include "graphics/Graphics.h" using namespace ui; @@ -20,7 +21,7 @@ void Spinner::Tick(float dt) } void Spinner::Draw(const Point& screenPos) { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); int baseX = screenPos.X+(Size.X/2); int baseY = screenPos.Y+(Size.Y/2); int lineInner = (Size.X/2); diff --git a/src/gui/interface/Textbox.cpp b/src/gui/interface/Textbox.cpp index 41520afa37..6e586b8c1c 100644 --- a/src/gui/interface/Textbox.cpp +++ b/src/gui/interface/Textbox.cpp @@ -4,6 +4,7 @@ #include "Config.h" #include "Platform.h" #include "Format.h" +#include "graphics/Graphics.h" #include "gui/interface/Point.h" #include "gui/interface/Textbox.h" #include "gui/interface/Keys.h" @@ -532,7 +533,7 @@ void Textbox::Draw(const Point& screenPos) { Label::Draw(screenPos); - Graphics * g = Engine::Ref().g; + Graphics * g = GetGraphics(); if(IsFocused()) { if(border) g->drawrect(screenPos.X, screenPos.Y, Size.X, Size.Y, 255, 255, 255, 255); @@ -694,7 +695,7 @@ void Textbox::Draw(const Point& screenPos) TextPosition(); drawn = true; } - Graphics * g = Engine::Ref().g; + Graphics * g = GetGraphics(); if(IsFocused()) { if(border) g->drawrect(screenPos.X, screenPos.Y, Size.X, Size.Y, 255, 255, 255, 255); diff --git a/src/gui/interface/Window.cpp b/src/gui/interface/Window.cpp index b5253af4d9..76f1d5f17f 100644 --- a/src/gui/interface/Window.cpp +++ b/src/gui/interface/Window.cpp @@ -1,5 +1,6 @@ #include #include "Window.h" +#include "Engine.h" #include "Keys.h" #include "Component.h" #include "gui/interface/Point.h" @@ -118,6 +119,27 @@ void Window::FocusComponent(Component* c) this->focusedComponent_ = c; } +void Window::MakeActiveWindow() +{ + if (Engine::Ref().GetWindow() != this) + Engine::Ref().ShowWindow(this); +} + +bool Window::CloseActiveWindow() +{ + if (Engine::Ref().GetWindow() == this) + { + Engine::Ref().CloseWindow(); + return true; + } + return false; +} + +Graphics * Window::GetGraphics() +{ + return Engine::Ref().g; +} + void Window::DoExit() { OnExit(); diff --git a/src/gui/interface/Window.h b/src/gui/interface/Window.h index 2c7a80386a..1fc822c7f1 100644 --- a/src/gui/interface/Window.h +++ b/src/gui/interface/Window.h @@ -1,10 +1,12 @@ #ifndef WINDOW_H #define WINDOW_H +#include #include +#include "Config.h" #include "gui/interface/Point.h" -#include "Engine.h" +class Graphics; namespace ui { @@ -78,6 +80,10 @@ namespace ui enum OkayMethod { Enter, OkayButton }; enum ExitMethod { MouseOutside, Escape, ExitButton }; + void MakeActiveWindow(); + bool CloseActiveWindow(); + Graphics * GetGraphics(); + protected: ui::Button * okayButton; ui::Button * cancelButton; diff --git a/src/gui/localbrowser/LocalBrowserController.cpp b/src/gui/localbrowser/LocalBrowserController.cpp index fb077c0a99..eca08222df 100644 --- a/src/gui/localbrowser/LocalBrowserController.cpp +++ b/src/gui/localbrowser/LocalBrowserController.cpp @@ -166,16 +166,15 @@ void LocalBrowserController::SetMoveToFront(bool move) void LocalBrowserController::Exit() { - if(ui::Engine::Ref().GetWindow() == browserView) - ui::Engine::Ref().CloseWindow(); + browserView->CloseActiveWindow(); if(callback) callback->ControllerExit(); HasDone = true; } -LocalBrowserController::~LocalBrowserController() { - if(ui::Engine::Ref().GetWindow() == browserView) - ui::Engine::Ref().CloseWindow(); +LocalBrowserController::~LocalBrowserController() +{ + browserView->CloseActiveWindow(); delete callback; delete browserModel; delete browserView; diff --git a/src/gui/login/LoginController.cpp b/src/gui/login/LoginController.cpp index 812dada39e..5e3ae77130 100644 --- a/src/gui/login/LoginController.cpp +++ b/src/gui/login/LoginController.cpp @@ -27,21 +27,16 @@ User LoginController::GetUser() void LoginController::Exit() { - if(ui::Engine::Ref().GetWindow() == loginView) - { - ui::Engine::Ref().CloseWindow(); - } + loginView->CloseActiveWindow(); Client::Ref().SetAuthUser(loginModel->GetUser()); if(callback) callback->ControllerExit(); HasExited = true; } -LoginController::~LoginController() { - if(ui::Engine::Ref().GetWindow() == loginView) - { - ui::Engine::Ref().CloseWindow(); - } +LoginController::~LoginController() +{ + loginView->CloseActiveWindow(); delete loginModel; delete loginView; } diff --git a/src/gui/login/LoginView.cpp b/src/gui/login/LoginView.cpp index eca61dd2e6..c46ff44226 100644 --- a/src/gui/login/LoginView.cpp +++ b/src/gui/login/LoginView.cpp @@ -1,5 +1,6 @@ #include "LoginView.h" +#include "graphics/Graphics.h" #include "gui/interface/Button.h" #include "gui/interface/Label.h" #include "gui/interface/Textbox.h" @@ -87,7 +88,7 @@ void LoginView::OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, boo void LoginView::OnTryExit(ExitMethod method) { - ui::Engine::Ref().CloseWindow(); + CloseActiveWindow(); } void LoginView::NotifyStatusChanged(LoginModel * sender) @@ -134,7 +135,7 @@ void LoginView::OnTick(float dt) void LoginView::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); g->clearrect(Position.X-2, Position.Y-2, Size.X+3, Size.Y+3); g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 255, 255, 255, 255); } diff --git a/src/gui/options/OptionsController.cpp b/src/gui/options/OptionsController.cpp index 74756dea40..5824866914 100644 --- a/src/gui/options/OptionsController.cpp +++ b/src/gui/options/OptionsController.cpp @@ -1,5 +1,6 @@ #include "OptionsController.h" #include "gui/dialogues/ErrorMessage.h" +#include "gui/interface/Engine.h" OptionsController::OptionsController(GameModel * gModel_, ControllerCallback * callback_): gModel(gModel_), @@ -93,10 +94,7 @@ OptionsView * OptionsController::GetView() void OptionsController::Exit() { - if (ui::Engine::Ref().GetWindow() == view) - { - ui::Engine::Ref().CloseWindow(); - } + view->CloseActiveWindow(); // only update on close, it would be hard to edit if the changes were live ui::Engine::Ref().Set3dDepth(depth3d); if (callback) @@ -105,11 +103,9 @@ void OptionsController::Exit() } -OptionsController::~OptionsController() { - if(ui::Engine::Ref().GetWindow() == view) - { - ui::Engine::Ref().CloseWindow(); - } +OptionsController::~OptionsController() +{ + view->CloseActiveWindow(); delete model; delete view; delete callback; diff --git a/src/gui/options/OptionsView.cpp b/src/gui/options/OptionsView.cpp index 4d0fa3c2bf..63e6639a8f 100644 --- a/src/gui/options/OptionsView.cpp +++ b/src/gui/options/OptionsView.cpp @@ -13,6 +13,7 @@ #include "gui/interface/Button.h" #include "gui/interface/Label.h" #include "gui/interface/DropDown.h" +#include "gui/interface/Engine.h" #include "gui/dialogues/ErrorMessage.h" OptionsView::OptionsView(): @@ -297,7 +298,7 @@ void OptionsView::AttachController(OptionsController * c_) void OptionsView::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); g->clearrect(Position.X-2, Position.Y-2, Size.X+3, Size.Y+3); g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 255, 255, 255, 255); g->draw_line(Position.X+1, Position.Y+scale->Position.Y-4, Position.X+Size.X-1, Position.Y+scale->Position.Y-4, 255, 255, 255, 180); diff --git a/src/gui/preview/PreviewController.cpp b/src/gui/preview/PreviewController.cpp index 4bd47d848e..64582c445b 100644 --- a/src/gui/preview/PreviewController.cpp +++ b/src/gui/preview/PreviewController.cpp @@ -100,7 +100,7 @@ bool PreviewController::SubmitComment(std::string comment) void PreviewController::ShowLogin() { loginWindow = new LoginController(); - ui::Engine::Ref().ShowWindow(loginWindow->GetView()); + loginWindow->GetView()->MakeActiveWindow(); } void PreviewController::NotifyAuthUserChanged(Client * sender) @@ -181,20 +181,15 @@ bool PreviewController::PrevCommentPage() void PreviewController::Exit() { - if(ui::Engine::Ref().GetWindow() == previewView) - { - ui::Engine::Ref().CloseWindow(); - } + previewView->CloseActiveWindow(); HasExited = true; if(callback) callback->ControllerExit(); } -PreviewController::~PreviewController() { - if(ui::Engine::Ref().GetWindow() == previewView) - { - ui::Engine::Ref().CloseWindow(); - } +PreviewController::~PreviewController() +{ + previewView->CloseActiveWindow(); Client::Ref().RemoveListener(this); delete previewModel; delete previewView; diff --git a/src/gui/preview/PreviewView.cpp b/src/gui/preview/PreviewView.cpp index b9525956dc..23820681e4 100644 --- a/src/gui/preview/PreviewView.cpp +++ b/src/gui/preview/PreviewView.cpp @@ -329,7 +329,7 @@ void PreviewView::CheckComment() void PreviewView::DoDraw() { Window::DoDraw(); - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); for (size_t i = 0; i < commentTextComponents.size(); i++) { int linePos = commentTextComponents[i]->Position.Y+commentsPanel->ViewportPosition.Y+commentTextComponents[i]->Size.Y+4; @@ -353,7 +353,7 @@ void PreviewView::DoDraw() void PreviewView::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); //Window Background+Outline g->clearrect(Position.X-2, Position.Y-2, Size.X+4, Size.Y+4); diff --git a/src/gui/profile/ProfileActivity.cpp b/src/gui/profile/ProfileActivity.cpp index 793a432590..52015eb68e 100644 --- a/src/gui/profile/ProfileActivity.cpp +++ b/src/gui/profile/ProfileActivity.cpp @@ -263,7 +263,7 @@ void ProfileActivity::OnTick(float dt) void ProfileActivity::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); g->clearrect(Position.X-2, Position.Y-2, Size.X+3, Size.Y+3); g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 255, 255, 255, 255); } diff --git a/src/gui/render/RenderController.cpp b/src/gui/render/RenderController.cpp index b84aac8c54..fb6d772610 100644 --- a/src/gui/render/RenderController.cpp +++ b/src/gui/render/RenderController.cpp @@ -45,20 +45,15 @@ void RenderController::LoadRenderPreset(int presetNum) void RenderController::Exit() { - if(ui::Engine::Ref().GetWindow() == renderView) - { - ui::Engine::Ref().CloseWindow(); - } + renderView->CloseActiveWindow(); if(callback) callback->ControllerExit(); HasExited = true; } -RenderController::~RenderController() { - if(ui::Engine::Ref().GetWindow() == renderView) - { - ui::Engine::Ref().CloseWindow(); - } +RenderController::~RenderController() +{ + renderView->CloseActiveWindow(); delete callback; delete renderModel; delete renderView; diff --git a/src/gui/render/RenderModel.cpp b/src/gui/render/RenderModel.cpp index 032852b25b..25e65027d3 100644 --- a/src/gui/render/RenderModel.cpp +++ b/src/gui/render/RenderModel.cpp @@ -1,4 +1,5 @@ #include "RenderModel.h" +#include "gui/game/RenderPreset.h" RenderModel::RenderModel(): renderer(NULL) diff --git a/src/gui/render/RenderView.cpp b/src/gui/render/RenderView.cpp index fd4d649c5a..8165837c96 100644 --- a/src/gui/render/RenderView.cpp +++ b/src/gui/render/RenderView.cpp @@ -365,7 +365,7 @@ void RenderView::NotifyColourChanged(RenderModel * sender) void RenderView::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); g->clearrect(-1, -1, WINDOWW+1, WINDOWH+1); if(ren) { diff --git a/src/gui/save/LocalSaveActivity.cpp b/src/gui/save/LocalSaveActivity.cpp index 6575370511..153fa48514 100644 --- a/src/gui/save/LocalSaveActivity.cpp +++ b/src/gui/save/LocalSaveActivity.cpp @@ -132,7 +132,7 @@ void LocalSaveActivity::saveWrite(std::string finalFilename) void LocalSaveActivity::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); g->draw_rgba_image(save_to_disk_image, 0, 0, 0.7f); g->clearrect(Position.X-2, Position.Y-2, Size.X+3, Size.Y+3); g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 255, 255, 255, 255); diff --git a/src/gui/save/ServerSaveActivity.cpp b/src/gui/save/ServerSaveActivity.cpp index d25bb590e7..50a6dc8244 100644 --- a/src/gui/save/ServerSaveActivity.cpp +++ b/src/gui/save/ServerSaveActivity.cpp @@ -1,4 +1,5 @@ #include "ServerSaveActivity.h" +#include "graphics/Graphics.h" #include "gui/interface/Label.h" #include "gui/interface/Textbox.h" #include "gui/interface/Button.h" @@ -358,7 +359,7 @@ void ServerSaveActivity::OnTick(float dt) void ServerSaveActivity::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); g->draw_rgba_image(save_to_server_image, -10, 0, 0.7f); g->clearrect(Position.X-2, Position.Y-2, Size.X+3, Size.Y+3); g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 255, 255, 255, 255); diff --git a/src/gui/save/ServerSaveActivity.h b/src/gui/save/ServerSaveActivity.h index 3e5fb1c84f..6ce8ed4a9b 100644 --- a/src/gui/save/ServerSaveActivity.h +++ b/src/gui/save/ServerSaveActivity.h @@ -14,6 +14,7 @@ namespace ui class Task; class Thumbnail; +class VideoBuffer; class ServerSaveActivity: public WindowActivity, public RequestListener, public TaskListener { public: diff --git a/src/gui/search/SearchController.cpp b/src/gui/search/SearchController.cpp index f35765e9c9..7c7ba6bff5 100644 --- a/src/gui/search/SearchController.cpp +++ b/src/gui/search/SearchController.cpp @@ -89,10 +89,7 @@ void SearchController::Update() void SearchController::Exit() { InstantOpen(false); - if(ui::Engine::Ref().GetWindow() == searchView) - { - ui::Engine::Ref().CloseWindow(); - } + searchView->CloseActiveWindow(); if(callback) callback->ControllerExit(); //HasExited = true; @@ -101,10 +98,7 @@ void SearchController::Exit() SearchController::~SearchController() { delete activePreview; - if(ui::Engine::Ref().GetWindow() == searchView) - { - ui::Engine::Ref().CloseWindow(); - } + searchView->CloseActiveWindow(); delete searchModel; delete searchView; delete callback; @@ -209,19 +203,19 @@ void SearchController::InstantOpen(bool instant) void SearchController::OpenSave(int saveID) { delete activePreview; - Graphics * g = ui::Engine::Ref().g; + Graphics * g = searchView->GetGraphics(); g->fillrect(XRES/3, WINDOWH-20, XRES/3, 20, 0, 0, 0, 150); //dim the "Page X of Y" a little to make the CopyTextButton more noticeable activePreview = new PreviewController(saveID, instantOpen, new OpenCallback(this)); - ui::Engine::Ref().ShowWindow(activePreview->GetView()); + activePreview->GetView()->MakeActiveWindow(); } void SearchController::OpenSave(int saveID, int saveDate) { delete activePreview; - Graphics * g = ui::Engine::Ref().g; + Graphics * g = searchView->GetGraphics(); g->fillrect(XRES/3, WINDOWH-20, XRES/3, 20, 0, 0, 0, 150); //dim the "Page X of Y" a little to make the CopyTextButton more noticeable activePreview = new PreviewController(saveID, saveDate, instantOpen, new OpenCallback(this)); - ui::Engine::Ref().ShowWindow(activePreview->GetView()); + activePreview->GetView()->MakeActiveWindow(); } void SearchController::ClearSelection() diff --git a/src/gui/tags/TagsController.cpp b/src/gui/tags/TagsController.cpp index 99dabbafec..49715aaaee 100644 --- a/src/gui/tags/TagsController.cpp +++ b/src/gui/tags/TagsController.cpp @@ -35,16 +35,15 @@ void TagsController::AddTag(std::string tag) void TagsController::Exit() { - if(ui::Engine::Ref().GetWindow() == tagsView) - ui::Engine::Ref().CloseWindow(); + tagsView->CloseActiveWindow(); if(callback) callback->ControllerExit(); HasDone = true; } -TagsController::~TagsController() { - if(ui::Engine::Ref().GetWindow() == tagsView) - ui::Engine::Ref().CloseWindow(); +TagsController::~TagsController() +{ + tagsView->CloseActiveWindow(); delete tagsModel; delete tagsView; delete callback; diff --git a/src/gui/tags/TagsView.cpp b/src/gui/tags/TagsView.cpp index b17e893b20..5c97e4125a 100644 --- a/src/gui/tags/TagsView.cpp +++ b/src/gui/tags/TagsView.cpp @@ -1,6 +1,7 @@ #include "client/Client.h" #include "TagsView.h" +#include "graphics/Graphics.h" #include "gui/dialogues/ErrorMessage.h" #include "TagsController.h" #include "TagsModel.h" @@ -68,7 +69,7 @@ TagsView::TagsView(): void TagsView::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); g->clearrect(Position.X-2, Position.Y-2, Size.X+3, Size.Y+3); g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 255, 255, 255, 255); } diff --git a/src/lua/LuaScriptInterface.cpp b/src/lua/LuaScriptInterface.cpp index 90c5e3e591..1dcab22315 100644 --- a/src/lua/LuaScriptInterface.cpp +++ b/src/lua/LuaScriptInterface.cpp @@ -533,8 +533,8 @@ int LuaScriptInterface::interface_showWindow(lua_State * l) int LuaScriptInterface::interface_closeWindow(lua_State * l) { LuaWindow * window = Luna::check(l, 1); - if(window && ui::Engine::Ref().GetWindow()==window->GetWindow()) - ui::Engine::Ref().CloseWindow(); + if (window) + window->GetWindow()->CloseActiveWindow(); return 0; } diff --git a/src/lua/LuaWindow.cpp b/src/lua/LuaWindow.cpp index e390ffb924..4b7204b92a 100644 --- a/src/lua/LuaWindow.cpp +++ b/src/lua/LuaWindow.cpp @@ -606,8 +606,7 @@ int LuaWindow::onKeyRelease(lua_State * l) LuaWindow::~LuaWindow() { - if(ui::Engine::Ref().GetWindow() == window) - ui::Engine::Ref().CloseWindow(); + window->CloseActiveWindow(); delete window; } #endif diff --git a/src/simulation/Gravity.cpp b/src/simulation/Gravity.cpp index 2b08825edc..7e61b7607e 100755 --- a/src/simulation/Gravity.cpp +++ b/src/simulation/Gravity.cpp @@ -3,7 +3,7 @@ #include "common/tpt-thread.h" #include "Config.h" #include "Gravity.h" -//#include "powder.h" +#include "Misc.h" void Gravity::bilinear_interpolation(float *src, float *dst, int sw, int sh, int rw, int rh) { diff --git a/src/simulation/WallType.h b/src/simulation/WallType.h index 15a0085ca8..b8ec53eb2a 100644 --- a/src/simulation/WallType.h +++ b/src/simulation/WallType.h @@ -1,7 +1,7 @@ #ifndef WALLTYPE_H_ #define WALLTYPE_H_ -#include "graphics/Graphics.h" +#include "graphics/Pixel.h" class VideoBuffer; struct wall_type diff --git a/src/simulation/elements/Element.h b/src/simulation/elements/Element.h index d37c827b06..4967dc53a6 100644 --- a/src/simulation/elements/Element.h +++ b/src/simulation/elements/Element.h @@ -1,13 +1,14 @@ #ifndef ELEMENTCLASS_H #define ELEMENTCLASS_H +#include "graphics/Pixel.h" #include "simulation/Simulation.h" -#include "graphics/Renderer.h" #include "simulation/Elements.h" #include "simulation/StructProperty.h" class Simulation; class Renderer; +class VideoBuffer; struct Particle; class Element { diff --git a/src/tasks/TaskWindow.cpp b/src/tasks/TaskWindow.cpp index 91ba9e94c5..a8eacc4db0 100644 --- a/src/tasks/TaskWindow.cpp +++ b/src/tasks/TaskWindow.cpp @@ -1,6 +1,7 @@ #include #include "common/tpt-minmax.h" #include "gui/interface/Label.h" +#include "gui/interface/Engine.h" #include "TaskWindow.h" #include "gui/dialogues/ErrorMessage.h" #include "gui/Style.h" @@ -27,7 +28,7 @@ TaskWindow::TaskWindow(std::string title_, Task * task_, bool closeOnDone): statusLabel->Appearance.VerticalAlign = ui::Appearance::AlignMiddle; AddComponent(statusLabel); - ui::Engine::Ref().ShowWindow(this); + MakeActiveWindow(); task->AddTaskListener(this); task->Start(); @@ -53,9 +54,8 @@ void TaskWindow::NotifyDone(Task * task) void TaskWindow::Exit() { - if(ui::Engine::Ref().GetWindow()==this) + if (CloseActiveWindow()) { - ui::Engine::Ref().CloseWindow(); SelfDestruct(); } } @@ -87,7 +87,7 @@ void TaskWindow::OnTick(float dt) void TaskWindow::OnDraw() { - Graphics * g = ui::Engine::Ref().g; + Graphics * g = GetGraphics(); g->clearrect(Position.X-2, Position.Y-2, Size.X+3, Size.Y+3); g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 255, 255, 255, 255);