#include "wxsheaders.h"
#include "wxspropertiesman.h"
#include "wxspalette.h"
#include "wxsmith.h"
#include "wxseventseditor.h"
wxsPropertiesMan::wxsPropertiesMan():
CurrentWidget(NULL),
PropertiesPanel(NULL)
{
//ctor
}
wxsPropertiesMan::~wxsPropertiesMan()
{
}
void wxsPropertiesMan::SetActiveWidget(wxsWidget* Widget)
{
if ( !PropertiesPanel || !EventsPanel ) return;
/** Rebuilding properties panel */
if ( CurrentWidget == Widget ) return;
PropertiesPanel->Freeze();
if ( CurrentWidget )
{
CurrentWidget->KillProperties();
CurrentWidget = NULL;
}
PropertiesPanel->SetSizer(NULL);
PropertiesPanel->DestroyChildren();
CurrentWidget = Widget;
wxSize Size = PropertiesPanel->GetSize();
if ( CurrentWidget )
{
wxFlexGridSizer* NewSizer = new wxFlexGridSizer(1);
PropertiesPanel->SetVirtualSizeHints(1,1);
PropertiesPanel->SetSize(1,1);
NewSizer->AddGrowableCol(0);
NewSizer->AddGrowableRow(0);
wxWindow* Wnd = CurrentWidget->CreatePropertiesWindow(PropertiesPanel);
CurrentWidget->UpdateProperties();
NewSizer->Add(Wnd,1,wxGROW);
PropertiesPanel->SetSizer(NewSizer);
NewSizer->SetVirtualSizeHints(PropertiesPanel);
wxsTREE()->SelectItem(Widget->GetTreeId());
}
PropertiesPanel->SetSize(Size);
PropertiesPanel->Refresh();
PropertiesPanel->Thaw();
/** Rebuilding events panel */
EventsPanel->Freeze();
EventsPanel->SetSizer(NULL);
EventsPanel->DestroyChildren();
Size = EventsPanel->GetSize();
if ( CurrentWidget )
{
wxFlexGridSizer* NewSizer = new wxFlexGridSizer(1);
EventsPanel->SetSize(1,1);
NewSizer->AddGrowableCol(0);
NewSizer->AddGrowableRow(0);
wxWindow* Wnd = new wxsEventsEditor(EventsPanel,CurrentWidget);
NewSizer->Add(Wnd,1,wxGROW);
EventsPanel->SetSizer(NewSizer);
NewSizer->SetVirtualSizeHints(EventsPanel);
}
EventsPanel->SetSize(Size);
EventsPanel->Refresh();
EventsPanel->Thaw();
}
void wxsPropertiesMan::OnSelectWidget(wxsEvent& event)
{
SetActiveWidget(event.GetWidget());
}
void wxsPropertiesMan::OnUnselectWidget(wxsEvent& event)
{
if ( event.GetWidget() == CurrentWidget )
{
SetActiveWidget(NULL);
}
}
void wxsPropertiesMan::OnSelectRes(wxsEvent& event)
{
}
void wxsPropertiesMan::OnUnselectRes(wxsEvent& event)
{
}
BEGIN_EVENT_TABLE(wxsPropertiesMan,wxEvtHandler)
EVT_SELECT_WIDGET(wxsPropertiesMan::OnSelectWidget)
EVT_UNSELECT_WIDGET(wxsPropertiesMan::OnUnselectWidget)
EVT_SELECT_RES(wxsPropertiesMan::OnSelectRes)
EVT_UNSELECT_RES(wxsPropertiesMan::OnUnselectRes)
END_EVENT_TABLE()
/** Singleton definition */
wxsPropertiesMan wxsPropertiesMan::Singleton;
syntax highlighted by Code2HTML, v. 0.9.1