first commit
This commit is contained in:
87
include/engine/ui/ui_window.h
Normal file
87
include/engine/ui/ui_window.h
Normal file
@ -0,0 +1,87 @@
|
||||
/* -----------------------------------------------------------------------------
|
||||
GSFramework
|
||||
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
|
||||
----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
#ifndef __NWINDOW__
|
||||
#define __NWINDOW__
|
||||
|
||||
|
||||
#include "ui/widget.h"
|
||||
#include "ui/ui_sprite.h"
|
||||
#include "ui/ui_window_skin.h"
|
||||
|
||||
|
||||
namespace GS {
|
||||
struct RenderResourceFactory;
|
||||
|
||||
namespace S2D {
|
||||
|
||||
/*!
|
||||
@short Window class.
|
||||
@author Emmanuel Julien (ejulien@nworks.fr)
|
||||
*/
|
||||
class Window : public Sprite
|
||||
{
|
||||
public:
|
||||
|
||||
enum
|
||||
{
|
||||
FlagNoDecoration = (1 << 0),
|
||||
FlagNoTitleBar = (1 << 1),
|
||||
|
||||
// Non-serializable
|
||||
FlagCacheDirty = (1 << 2),
|
||||
FlagRenderDirty = (1 << 3)
|
||||
};
|
||||
|
||||
protected:
|
||||
|
||||
sWindowSkin skin;
|
||||
sPicture cache;
|
||||
|
||||
sWidget title_widget;
|
||||
sWidget base_widget;
|
||||
|
||||
BitField window_flags;
|
||||
|
||||
public:
|
||||
|
||||
Picture *GetCache() const { return cache; }
|
||||
|
||||
void Invalidate();
|
||||
|
||||
void SetSkin(WindowSkin *);
|
||||
void ComposeSkin();
|
||||
void Compose();
|
||||
|
||||
void SetSize(float w, float h);
|
||||
|
||||
sPicture background_picture;
|
||||
Color background_color;
|
||||
|
||||
Widget *GetWidget(uint id);
|
||||
|
||||
Widget *GetTitleWidget() const;
|
||||
void SetTitleWidget(Widget *);
|
||||
Widget *GetBaseWidget() const;
|
||||
void SetBaseWidget(Widget *);
|
||||
|
||||
iRect GetRect() const;
|
||||
iRect GetClientRect() const;
|
||||
|
||||
virtual void RenderSetup(Core::ResourceFactories * = 0);
|
||||
virtual void Render(Renderer &, GPU::TriangleBatch * = 0);
|
||||
|
||||
virtual bool FromMetaTag(NML::Tag &);
|
||||
virtual NML::Tag *AsMetaTag() const;
|
||||
|
||||
Window();
|
||||
};
|
||||
|
||||
} // S2D
|
||||
} // GS
|
||||
|
||||
|
||||
#endif // __NWINDOW__
|
||||
Reference in New Issue
Block a user