18 wxBoxSizer *mainSizer =
new wxBoxSizer(wxVERTICAL);
20 m_stack =
new wxSimplebook(
this, wxID_ANY);
26 wxBoxSizer *placeholderSizer =
new wxBoxSizer(wxVERTICAL);
28 statusText->SetForegroundColour(wxColour(150, 150, 150));
29 placeholderSizer->AddStretchSpacer();
30 placeholderSizer->Add(statusText, 0, wxALIGN_CENTER_HORIZONTAL);
31 placeholderSizer->AddStretchSpacer();
41 mainSizer->Add(
m_stack, 1, wxEXPAND | wxALL, 5);
48 m_propertyGrid =
new wxPropertyGrid(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize,
49 wxPG_SPLITTER_AUTO_CENTER | wxPG_DEFAULT_STYLE);
71 new wxUIntProperty(
"Children",
"base_children",
static_cast<unsigned int>(
m_selectedNode->GetChildCount())));
Abstract interface for tree nodes that can be visualized.
void InitLayout()
Initializes the tab layout (stack, placeholder, content panels).
static const wxColour kLineColor
PropertiesTabBase(wxWindow *parent)
virtual void PopulateProperties()=0
Pure virtual: subclasses populate the property grid from m_selectedNode.
static const wxColour kCellBgColor
void SetSelectedNode(EmberCore::ITreeNode *node)
Sets the node whose properties are displayed.
static const wxColour kBgColor
void SetupPropertyGrid(wxPanel *parent)
Creates and configures the property grid in the given parent.
static const wxColour kTextColor
virtual void CreateContentLayout(wxPanel *contentPanel)=0
Pure virtual: subclasses create their content layout in contentPanel.
EmberCore::ITreeNode * m_selectedNode
wxPropertyGrid * m_propertyGrid
void ClearSelection()
Clears the current selection.
wxPanel * m_placeholderPanel
void SetSelectionHighlightColor(const wxColour &color)
Sets the highlight color for the selected node.
virtual wxString GetPlaceholderText() const
Returns placeholder text when no node is selected.
static const wxColour kCaptionBgColor
void AddBasicNodeInfo()
Adds basic node info (name, type) to the property grid.
wxColour m_selectionHighlight
virtual void OnNodeCleared()
Called when selection is cleared; subclasses may override.
Standard layout constants for consistent UI spacing and sizing.