64 lines
1.4 KiB
C++
64 lines
1.4 KiB
C++
/*
|
|
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;
|
|
};
|
|
}
|
|
}
|
|
#endif
|