69 lines
1.4 KiB
C
69 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.h"
|
||
|
#include "gwen_base.h"
|
||
|
#include "gwen_label.h"
|
||
|
#include "gwen_button.h"
|
||
|
#include "gwen_dragger.h"
|
||
|
#include "gwen_label.h"
|
||
|
#include "gwen_resizablecontrol.h"
|
||
|
#include "gwen_modal.h"
|
||
|
#include "gwen_windowbuttons.h"
|
||
|
#include "../gwen_skin.h"
|
||
|
|
||
|
|
||
|
namespace Gwen
|
||
|
{
|
||
|
namespace Controls
|
||
|
{
|
||
|
class CloseButton;
|
||
|
|
||
|
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::String title );
|
||
|
virtual void SetClosable(bool closeable);
|
||
|
|
||
|
virtual void Touch();
|
||
|
bool IsOnTop();
|
||
|
|
||
|
virtual void SetHidden(bool hidden);
|
||
|
|
||
|
void CloseButtonPressed();
|
||
|
void RenderFocus( Gwen::Skin::Base* skin );
|
||
|
void SetDeleteOnClose( bool b ){ m_bDeleteOnClose = b; }
|
||
|
|
||
|
void MakeModal( bool bDrawBackground = true );
|
||
|
void DestroyModal();
|
||
|
|
||
|
Gwen::Event::Caller onWindowClosed;
|
||
|
|
||
|
protected:
|
||
|
|
||
|
Gwen::ControlsInternal::Dragger* m_TitleBar;
|
||
|
Gwen::Controls::Label* m_Title;
|
||
|
Gwen::Controls::WindowCloseButton* m_CloseButton;
|
||
|
|
||
|
bool m_bDeleteOnClose;
|
||
|
|
||
|
ControlsInternal::Modal* m_Modal;
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
#endif
|