#include "../wxsheaders.h"
#include "wxsboolproperty.h"
#include <wx/checkbox.h>
#ifdef __NO_PROPGRGID
class wxsBoolPropertyWindow: public wxCheckBox
{
public:
wxsBoolPropertyWindow(wxWindow* Parent,wxsBoolProperty* Property);
virtual ~wxsBoolPropertyWindow();
private:
void OnChange(wxCommandEvent& event);
wxsBoolProperty* Prop;
DECLARE_EVENT_TABLE()
};
BEGIN_EVENT_TABLE(wxsBoolPropertyWindow,wxCheckBox)
EVT_CHECKBOX(-1,wxsBoolPropertyWindow::OnChange)
END_EVENT_TABLE()
wxsBoolPropertyWindow::wxsBoolPropertyWindow(wxWindow* Parent,wxsBoolProperty* Property):
wxCheckBox(Parent,-1,_T("")),
Prop(Property)
{
}
wxsBoolPropertyWindow::~wxsBoolPropertyWindow()
{
}
void wxsBoolPropertyWindow::OnChange(wxCommandEvent& event)
{
Prop->Value = GetValue();
Prop->ValueChanged(true);
}
#endif
wxsBoolProperty::wxsBoolProperty(wxsProperties* Properties,bool& Bool):
wxsProperty(Properties), Value(Bool),
#ifdef __NO_PROPGRGID
Window(NULL)
#else
PGId(0)
#endif
{
//ctor
}
wxsBoolProperty::~wxsBoolProperty()
{
//dtor
}
const wxString& wxsBoolProperty::GetTypeName()
{
static wxString Name(_T("bool"));
return Name;
}
#ifdef __NO_PROPGRGID
wxWindow* wxsBoolProperty::BuildEditWindow(wxWindow* Parent)
{
return Window = new wxsBoolPropertyWindow(Parent,this);
}
void wxsBoolProperty::UpdateEditWindow()
{
if ( Window ) Window->SetValue(Value);
}
#else
void wxsBoolProperty::AddToPropGrid(wxPropertyGrid* Grid,const wxString& Name)
{
PGId = Grid->Append(Name,wxPG_LABEL,Value);
Grid->SetPropertyAttribute(PGId,wxPG_BOOL_USE_CHECKBOX,(long)1,wxRECURSE);
}
bool wxsBoolProperty::PropGridChanged(wxPropertyGrid* Grid,wxPGId Id)
{
if ( Id == PGId )
{
Value = Grid->GetPropertyValue(Id).GetBool();
return ValueChanged(true);
}
return true;
}
void wxsBoolProperty::UpdatePropGrid(wxPropertyGrid* Grid)
{
Grid->SetPropertyValue(PGId,Value);
}
#endif
syntax highlighted by Code2HTML, v. 0.9.1