This repository has been archived on 2023-07-11. You can view files and clone it, but cannot push or open issues or pull requests.
MyGameFramework/lib/gwen/controls/gwen_properties.h
Gered c5cdddbeaa initial commit
current versions of all of my basic framework sources, build configurations/scripts, and supporting assets
2013-01-31 12:53:05 -05:00

85 lines
1.8 KiB
C++

/*
GWEN
Copyright (c) 2010 Facepunch Studios
See license in Gwen.h
*/
#pragma once
#ifndef GWEN_CONTROLS_PROPERTIES_H
#define GWEN_CONTROLS_PROPERTIES_H
#include "gwen_base.h"
#include "gwen_label.h"
#include "property/gwen_baseproperty.h"
#include "property/gwen_text.h"
#include "gwen_splitterbar.h"
#include "../gwen.h"
#include "../gwen_skin.h"
namespace Gwen
{
namespace Controls
{
class PropertyRow;
class GWEN_EXPORT Properties : public Base
{
public:
GWEN_CONTROL( Properties, Base );
virtual void PostLayout( Gwen::Skin::Base* skin );
PropertyRow* Add( const TextObject& text, const TextObject& value = "" );
PropertyRow* Add( const TextObject& text, Property::Base* pProp, const TextObject& value = "" );
PropertyRow* Find( const TextObject& text );
virtual int GetSplitWidth();
virtual void Clear();
protected:
virtual void OnSplitterMoved( Controls::Base * control );
Controls::SplitterBar* m_SplitterBar;
};
class GWEN_EXPORT PropertyRow : public Base
{
public:
GWEN_CONTROL( PropertyRow, Base );
virtual Label* GetLabel(){ return m_Label; }
virtual void SetProperty( Property::Base* prop );
virtual Property::Base* GetProperty(){ return m_Property; }
virtual void Layout( Gwen::Skin::Base* skin );
virtual void Render( Gwen::Skin::Base* skin );
virtual bool IsEditing(){ return m_Property && m_Property->IsEditing(); }
virtual bool IsHovered(){ return BaseClass::IsHovered() || (m_Property && m_Property->IsHovered()); }
virtual void OnEditingChanged();
virtual void OnHoverChanged();
Event::Caller onChange;
protected:
void OnPropertyValueChanged( Gwen::Controls::Base* control );
Label* m_Label;
Property::Base* m_Property;
bool m_bLastEditing;
bool m_bLastHover;
};
}
}
#endif