5#include <wx/propgrid/propgrid.h>
6#include <wx/simplebook.h>
19 wxString
GetTitle()
const override {
return "Properties"; }
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
virtual ~PropertiesTabBase()=default
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.
wxWindow * GetWidget() override
Returns the wxWidgets window used as the tab content.
wxString GetTitle() const override
Returns the display title of the tab.
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.
Interface for tab-based UI components in the application.