add initial examples, replacing the 'Demos/Demos3'. Will make it work cross-platform, OpenGL3/OpenGL2 and add more examples to it.
This commit is contained in:
82
examples/ThirdPartyLibs/Gwen/Controls/CheckBox.h
Normal file
82
examples/ThirdPartyLibs/Gwen/Controls/CheckBox.h
Normal file
@@ -0,0 +1,82 @@
|
||||
/*
|
||||
GWEN
|
||||
Copyright (c) 2010 Facepunch Studios
|
||||
See license in Gwen.h
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#ifndef GWEN_CONTROLS_CHECKBOX_H
|
||||
#define GWEN_CONTROLS_CHECKBOX_H
|
||||
|
||||
#include "Gwen/Controls/Base.h"
|
||||
#include "Gwen/Controls/Button.h"
|
||||
#include "Gwen/Gwen.h"
|
||||
#include "Gwen/Skin.h"
|
||||
#include "Gwen/Controls/Symbol.h"
|
||||
#include "Gwen/Controls/LabelClickable.h"
|
||||
|
||||
namespace Gwen
|
||||
{
|
||||
namespace Controls
|
||||
{
|
||||
|
||||
class GWEN_EXPORT CheckBox : public Button
|
||||
{
|
||||
public:
|
||||
|
||||
GWEN_CONTROL( CheckBox, Button );
|
||||
|
||||
virtual void Render( Skin::Base* skin );
|
||||
virtual void OnPress();
|
||||
|
||||
virtual void SetChecked( bool Checked );
|
||||
virtual void Toggle() { SetChecked( !IsChecked() ); }
|
||||
virtual bool IsChecked() { return m_bChecked; }
|
||||
|
||||
Gwen::Event::Caller onChecked;
|
||||
Gwen::Event::Caller onUnChecked;
|
||||
Gwen::Event::Caller onCheckChanged;
|
||||
|
||||
private:
|
||||
|
||||
// For derived controls
|
||||
virtual bool AllowUncheck(){ return true; }
|
||||
|
||||
void OnCheckStatusChanged();
|
||||
|
||||
bool m_bChecked;
|
||||
};
|
||||
|
||||
class GWEN_EXPORT CheckBoxWithLabel : public Base
|
||||
{
|
||||
public:
|
||||
|
||||
GWEN_CONTROL_INLINE( CheckBoxWithLabel, Base )
|
||||
{
|
||||
SetSize( 200, 19 );
|
||||
|
||||
m_Checkbox = new CheckBox( this );
|
||||
m_Checkbox->Dock( Pos::Left );
|
||||
m_Checkbox->SetMargin( Margin( 0, 3, 3, 3 ) );
|
||||
m_Checkbox->SetTabable( false );
|
||||
|
||||
m_Label = new LabelClickable( this );
|
||||
m_Label->Dock( Pos::Fill );
|
||||
m_Label->onPress.Add( m_Checkbox, &CheckBox::ReceiveEventPress );
|
||||
m_Label->SetTabable( false );
|
||||
|
||||
SetTabable( false );
|
||||
}
|
||||
|
||||
virtual CheckBox* Checkbox() { return m_Checkbox; }
|
||||
virtual LabelClickable* Label() { return m_Label; }
|
||||
virtual bool OnKeySpace( bool bDown ) { if ( bDown ) m_Checkbox->SetChecked( !m_Checkbox->IsChecked() ); return true; }
|
||||
|
||||
private:
|
||||
|
||||
CheckBox* m_Checkbox;
|
||||
LabelClickable* m_Label;
|
||||
};
|
||||
}
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user