8#include <wx/aui/framemanager.h>
9#include <wx/checkbox.h>
10#include <wx/listbox.h>
11#include <wx/notebook.h>
12#include <wx/scrolwin.h>
13#include <wx/spinctrl.h>
14#include <wx/splitter.h>
15#include <wx/srchctrl.h>
16#include <wx/treectrl.h>
23class SimplePositioningFrame;
76 MainFrame(
const wxString &title,
const wxPoint &pos,
const wxSize &size,
long style = wxDEFAULT_FRAME_STYLE);
114 void LoadXMLFile(
const wxString &filePath,
bool confirmOverride =
false);
151 void OnExit(wxCommandEvent &event);
152 void OnAbout(wxCommandEvent &event);
186 void OnPaint(wxPaintEvent &event);
187 void OnIdle(wxIdleEvent &event);
198 void DoSaveXML(
const wxString &filePath);
Scene implementation for behavior tree visualization.
Bottom dockable panel for logs and output.
Represents a BehaviorTree project containing multiple XML resources.
Represents a complete behavior tree data structure.
Represents a blackboard containing multiple entries.
Abstract interface for tree nodes that can be visualized.
Represents a node in a behavior tree structure.
Tracks pane proportions and applies them on AUI manager resize.
Left sidebar panel specialized for left-side functionality.
std::string m_currentTreeId
void SyncSelection(EmberCore::ITreeNode *selectedNode)
virtual ~MainFrame()
Destructor - cleans up AUI manager and panels.
int CountTabGlobally(const wxString &tabName) const
void LogMessage(const wxString &message)
void UpdateTreeSelector()
bool m_isUpdatingFromHierarchy
void OnSaveProject(wxCommandEvent &event)
void OnPreferences(wxCommandEvent &event)
void OnToggleLeftPanel(wxCommandEvent &event)
bool IsActiveSceneBehaviorTree() const
void UpdatePropertiesTabReference(PropertiesTab *propertiesTab)
void OnPaint(wxPaintEvent &event)
void OnParserConfig(wxCommandEvent &event)
void NavigateToBlackboard(const std::string &bbId)
void OnCloseProject(wxCommandEvent &event)
std::shared_ptr< EmberCore::BehaviorTreeProject > GetActiveProject() const
void OnPreviousScene(wxCommandEvent &event)
MainFrame(const wxString &title, const wxPoint &pos, const wxSize &size, long style=wxDEFAULT_FRAME_STYLE)
Construct the main frame.
void OnNewProject(wxCommandEvent &event)
void OnToggleMaximize(wxCommandEvent &event)
void RefreshPreferences()
BlackboardScene * m_blackboardScene
void OpenTreeInNewScene(const std::string &treeId)
void CreateProjectOverviewScene()
void UpdateNavigatorTabReference(ForgeNavigatorTab *navigatorTab)
bool m_isUpdatingFromScene
void OnSaveAsXML(wxCommandEvent &event)
void OnMonitorTool(wxCommandEvent &event)
void OnIdle(wxIdleEvent &event)
void RefreshHierarchyTree()
void OnToggleRightPanel(wxCommandEvent &event)
LeftSidePanel * m_leftPanel
void CreateMenuAndStatusBar()
void OnHierarchySelectionChanged(EmberCore::ITreeNode *selectedNode)
wxAuiManager * GetAuiManager()
void CenterOnNode(EmberCore::ITreeNode *node)
void ShowProjectSettings()
void OnOpenProject(wxCommandEvent &event)
RightSidePanel * m_rightPanel
void OnFrameResize(wxSizeEvent &event)
void DoSaveXML(const wxString &filePath)
void OnPropertiesTabClosed()
void OnLogReplayTool(wxCommandEvent &event)
void OnResetZoom(wxCommandEvent &event)
void OnToggleBottomPanel(wxCommandEvent &event)
void LoadTreeIntoScene(const std::string &treeId)
void LoadXMLFile(const wxString &filePath, bool confirmOverride=false)
std::shared_ptr< EmberCore::BehaviorTreeProject > m_activeProject
void OnNextScene(wxCommandEvent &event)
void OnAbout(wxCommandEvent &event)
wxToolBar * m_panelToggleToolbar
void OnNavigatorTabClosed()
void OnSaveXML(wxCommandEvent &event)
BottomPanel * m_bottomPanel
ForgeNavigatorTab * m_navigatorTab
std::string m_mainTreeName
void OnLoadXML(wxCommandEvent &event)
void OnSceneSelectionChanged(EmberCore::ITreeNode *selectedNode)
std::map< std::string, std::shared_ptr< EmberCore::BehaviorTree > > m_projectTrees
bool HasActiveProject() const
void OnEditorTool(wxCommandEvent &event)
const std::string & GetCurrentTreeId() const
wxString m_currentFilePath
void OnResetUI(wxCommandEvent &event)
PropertiesTab * m_propertiesTab
void OnProjectSettings(wxCommandEvent &event)
void InitializeConfigurationMenu()
void UpdatePanelToggleButtons()
std::map< std::string, std::vector< std::string > > m_blackboardIncludesMap
void InvalidateCanvasLayout()
std::map< std::string, std::shared_ptr< EmberCore::Blackboard > > m_projectBlackboards
void RefreshMenuHotkeys()
std::shared_ptr< EmberCore::Node > GetSharedBehaviorTree() const
void RefreshCanvasVisualization()
void LoadXMLFileInNewScene(const wxString &filePath)
void OnExit(wxCommandEvent &event)
void CreatePanelToggleToolbar()
EmberUI::ProportionalLayout m_layout
wxAuiManager * m_auiManager
Central panel for managing and displaying behavior tree scenes.
Right sidebar panel specialized for right-side functionality.
Main types header for EmberCore.