/* GWEN Copyright (c) 2010 Facepunch Studios See license in Gwen.h */ #pragma once #ifndef GWEN_CONTROLS_WINDOWCONTROL_H #define GWEN_CONTROLS_WINDOWCONTROL_H #include "Gwen/Gwen.h" #include "Gwen/Controls/Base.h" #include "Gwen/Controls/Label.h" #include "Gwen/Controls/Button.h" #include "Gwen/Controls/Dragger.h" #include "Gwen/Controls/Label.h" #include "Gwen/Controls/ResizableControl.h" #include "Gwen/Controls/Modal.h" #include "Gwen/Skin.h" namespace Gwen { namespace Controls { class GWEN_EXPORT WindowControl : public ResizableControl { public: GWEN_CONTROL(WindowControl, ResizableControl); virtual ~WindowControl(); virtual void Render(Skin::Base* skin); virtual void RenderUnder(Skin::Base* skin); virtual void SetTitle(Gwen::UnicodeString title); virtual void SetTitle(Gwen::String title) { SetTitle(Gwen::Utility::StringToUnicode(title)); } virtual void SetClosable(bool closeable); virtual void Touch(); bool IsOnTop(); virtual void SetHidden(bool hidden); void CloseButtonPressed(Gwen::Controls::Base* pFromPanel); void RenderFocus(Gwen::Skin::Base* skin); void SetDeleteOnClose(bool b) { m_bDeleteOnClose = b; } void MakeModal(bool invisible = false); protected: ControlsInternal::Dragger* m_TitleBar; Label* m_Title; Button* m_CloseButton; bool m_bInFocus; bool m_bDeleteOnClose; ControlsInternal::Modal* m_Modal; }; } // namespace Controls } // namespace Gwen #endif