Ember
Loading...
Searching...
No Matches
MonitorFrame.h
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4
5#include <wx/aui/aui.h>
6#include <wx/wx.h>
7
13#include "Network/TCPServer.h"
15
16namespace Ember {
17namespace Monitor {
18
19class ConnectionPanel;
20class MainPanel;
21class RightSidePanel;
23class PropertiesTab;
24
27class MonitorFrame : public wxFrame {
28 public:
30 MonitorFrame(const wxString &title, const wxPoint &pos, const wxSize &size);
33
34 private:
35 void CreateMenuBar();
36 void CreateLayout();
37 void SetupCallbacks();
38
39 void OnClose(wxCloseEvent &event);
40 void OnQuit(wxCommandEvent &event);
41 void OnAbout(wxCommandEvent &event);
42 void OnPollTimer(wxTimerEvent &event);
43 void OnFrameResize(wxSizeEvent &event);
44
45 void OnClientConnect(const std::string &address);
46 void OnClientDisconnect();
47 void OnServerMessage(const Network::MessageFrame &frame);
48
49 void HandleHandshake(const Network::MessageFrame &frame);
50 void HandleTreeInit(const Network::MessageFrame &frame);
51 void HandleTickUpdate(const Network::MessageFrame &frame);
53 void HandleTreeReset(const Network::MessageFrame &frame);
54 void HandleDisconnect(const Network::MessageFrame &frame);
55
58 void UpdateStatusBar();
59
60 bool m_inNodeSelection = false;
61
63
67 std::shared_ptr<Network::StateManager> m_stateManager;
68 std::shared_ptr<EmberCore::BehaviorTree> m_currentTree;
69
70 std::string m_currentTreeId;
72 bool m_stateChanged = false;
75
76 wxAuiManager *m_auiManager;
82 wxStatusBar *m_statusBar;
83
84 wxTimer m_pollTimer;
85
88
90};
91
92} // namespace Monitor
93} // namespace Ember
Abstract interface for tree nodes that can be visualized.
Definition ITreeNode.h:31
Tracks pane proportions and applies them on AUI manager resize.
UI panel for managing TCP server connection, showing server/client status, port input,...
Central panel containing the MonitorTreeCanvas and search bar.
Definition MainPanel.h:19
void OnClientConnect(const std::string &address)
void OnAbout(wxCommandEvent &event)
PropertiesTab * m_propertiesTab
void OnPollTimer(wxTimerEvent &event)
std::shared_ptr< Network::StateManager > m_stateManager
void OnQuit(wxCommandEvent &event)
void OnServerMessage(const Network::MessageFrame &frame)
void HandleTreeInit(const Network::MessageFrame &frame)
MonitorNavigatorTab * m_navigatorTab
Network::MessageFrame m_pendingTickUpdate
RightSidePanel * m_rightPanel
void HandleTickUpdate(const Network::MessageFrame &frame)
void HandleDisconnect(const Network::MessageFrame &frame)
void HandleHandshake(const Network::MessageFrame &frame)
std::shared_ptr< EmberCore::BehaviorTree > m_currentTree
void HandleTreeReset(const Network::MessageFrame &frame)
Network::TreeBuilder m_treeBuilder
void OnNodeSelected(EmberCore::ITreeNode *node)
void OnClose(wxCloseEvent &event)
EmberUI::ProportionalLayout m_layout
ConnectionState m_connectionState
Network::FlatBufferCodec m_codec
void HandleBlackboardUpdate(const Network::MessageFrame &frame)
~MonitorFrame()
Destroys the frame and releases resources.
void OnFrameResize(wxSizeEvent &event)
ConnectionPanel * m_connectionPanel
MonitorFrame(const wxString &title, const wxPoint &pos, const wxSize &size)
Constructs the frame with the given title, position, and size.
Monitor-specific navigator tab with tree list and status refresh.
Monitor's property inspector displaying read-only node properties and live status.
Right-side tabbed panel containing navigator and properties tabs.
Single-client TCP server for receiving behavior tree data from monitored applications.
Definition TCPServer.h:14