Ember
Loading...
Searching...
No Matches
EmberForge::TreeWidget Class Reference

Custom widget for rendering and interacting with complete behavior trees. More...

#include <TreeWidget.h>

Inheritance diagram for EmberForge::TreeWidget:

Public Types

enum class  LayoutAlgorithm {
  Vertical , Horizontal , Radial , Compact ,
  Manual
}
 Tree layout algorithms. More...
enum class  InteractionMode {
  View , Select , Edit , Connect ,
  Debug
}
 Tree interaction modes. More...
using NodeSelectionCallback = std::function<void(const std::vector<EmberCore::Node *> &)>
using NodeEditCallback = std::function<void(EmberCore::Node *, const wxString &property, const wxString &value)>
using TreeChangeCallback = std::function<void(const wxString &change_type)>

Public Member Functions

 TreeWidget (wxWindow *parent, std::shared_ptr< EmberCore::BehaviorTree > tree=nullptr)
 Constructor.
virtual ~TreeWidget ()
 Destructor.
void SetBehaviorTree (std::shared_ptr< EmberCore::BehaviorTree > tree)
std::shared_ptr< EmberCore::BehaviorTreeGetBehaviorTree () const
bool HasTree () const
LayoutAlgorithm GetLayoutAlgorithm () const
void SetLayoutAlgorithm (LayoutAlgorithm algorithm)
void RefreshLayout ()
void AutoFitLayout ()
InteractionMode GetInteractionMode () const
void SetInteractionMode (InteractionMode mode)
EmberForge::NodeWidgetGetNodeWidget (EmberCore::Node *node) const
std::vector< EmberForge::NodeWidget * > GetAllNodeWidgets () const
std::vector< EmberForge::NodeWidget * > GetSelectedNodeWidgets () const
void SelectNode (EmberCore::Node *node, bool add_to_selection=false)
void DeselectNode (EmberCore::Node *node)
void ClearSelection ()
void SelectAll ()
EmberCore::NodeGetSelectedNode () const
std::vector< EmberCore::Node * > GetSelectedNodes () const
void ZoomIn ()
void ZoomOut ()
void ZoomToFit ()
void ZoomToSelection ()
void SetZoomLevel (double zoom)
double GetZoomLevel () const
void CenterOnNode (EmberCore::Node *node)
void CenterOnSelection ()
void CenterView ()
bool CanAddNode (EmberCore::Node *parent) const
bool AddNode (std::unique_ptr< EmberCore::Node > node, EmberCore::Node *parent)
bool RemoveSelectedNodes ()
bool DuplicateSelectedNodes ()
bool CanMoveNode (EmberCore::Node *node, EmberCore::Node *new_parent) const
bool MoveNode (EmberCore::Node *node, EmberCore::Node *new_parent)
void SetNodeRenderStyle (EmberForge::NodeWidget::RenderStyle style)
void SetConnectionStyle (int line_width, const wxColour &color)
void SetBackgroundColor (const wxColour &color)
void SetGridVisible (bool visible)
void SetConnectionsVisible (bool visible)
void AnimateToNode (EmberCore::Node *node)
void HighlightExecutionPath (const std::vector< EmberCore::Node * > &path)
void ClearHighlights ()
bool SaveLayout (const wxString &filename) const
bool LoadLayout (const wxString &filename)
wxBitmap ExportAsImage (const wxSize &size=wxDefaultSize) const
void LoadPreferences ()
void SetNodeSelectionCallback (NodeSelectionCallback callback)
void SetNodeEditCallback (NodeEditCallback callback)
void SetTreeChangeCallback (TreeChangeCallback callback)

Protected Member Functions

virtual void OnPaint (wxPaintEvent &event)
virtual void OnSize (wxSizeEvent &event)
virtual void OnEraseBackground (wxEraseEvent &event)
virtual void OnMouseDown (wxMouseEvent &event)
virtual void OnMouseUp (wxMouseEvent &event)
virtual void OnMouseMove (wxMouseEvent &event)
virtual void OnMouseWheel (wxMouseEvent &event)
virtual void OnRightClick (wxContextMenuEvent &event)
virtual void OnKeyDown (wxKeyEvent &event)
virtual void OnChar (wxKeyEvent &event)
void CalculateVerticalLayout ()
void CalculateHorizontalLayout ()
void CalculateRadialLayout ()
void CalculateCompactLayout ()
void UpdateScrollbars ()
void LayoutNodeVertical (EmberCore::Node *node, int x, int y, int level)
void DrawBackground (wxDC &dc)
void DrawGrid (wxDC &dc)
void DrawConnections (wxDC &dc)
void DrawConnection (wxDC &dc, EmberForge::NodeWidget *parent, EmberForge::NodeWidget *child)
void DrawSelectionRect (wxDC &dc)
void CreateNodeWidgets ()
void UpdateNodeWidgets ()
void DestroyNodeWidgets ()
std::unique_ptr< EmberForge::NodeWidgetCreateNodeWidget (EmberCore::Node *node)
EmberForge::NodeWidgetHitTestNode (const wxPoint &point) const
EmberCore::NodeHitTestConnection (const wxPoint &point) const
void UpdateSelectionVisuals ()
void NotifySelectionChange ()
wxSize CalculateTreeSize () const
wxPoint CalculateNodePosition (EmberCore::Node *node) const
void PositionNodeWidgets ()
wxPoint TreeToScreen (const wxPoint &tree_point) const
wxPoint ScreenToTree (const wxPoint &screen_point) const
wxRect TreeToScreen (const wxRect &tree_rect) const
wxRect ScreenToTree (const wxRect &screen_rect) const

Private Member Functions

void InitializeWidget ()
void SetupEventHandlers ()
void UpdateViewSize ()
void ShowContextMenu (const wxPoint &position)
void OnNodeClicked (EmberForge::NodeWidget *widget, EmberCore::Node *node)
void OnNodeDoubleClicked (EmberForge::NodeWidget *widget, EmberCore::Node *node)
void OnNodeDragged (EmberForge::NodeWidget *widget, const wxPoint &delta)
void OnNodeEdited (EmberForge::NodeWidget *widget, const wxString &new_name)

Private Attributes

std::shared_ptr< EmberCore::BehaviorTreebehavior_tree_
LayoutAlgorithm layout_algorithm_
InteractionMode interaction_mode_
std::unordered_map< EmberCore::Node *, std::unique_ptr< EmberForge::NodeWidget > > node_widgets_
std::vector< EmberCore::Node * > selected_nodes_
double zoom_level_
wxPoint view_offset_
wxSize tree_size_
EmberForge::NodeWidget::RenderStyle node_render_style_
double zoom_step_
double mouse_wheel_sensitivity_
double pan_sensitivity_
bool zoom_follows_cursor_
wxColour background_color_
wxColour grid_color_
wxColour connection_color_
int connection_width_
bool grid_visible_
bool connections_visible_
bool is_dragging_
bool is_selecting_
wxPoint drag_start_pos_
wxPoint selection_start_pos_
wxRect selection_rect_
int node_spacing_x_
int node_spacing_y_
int level_spacing_
wxPoint tree_root_position_
std::unordered_map< EmberCore::Node *, wxPoint > node_positions_
wxTimer * animation_timer_
std::vector< EmberCore::Node * > highlighted_path_
NodeSelectionCallback selection_callback_
NodeEditCallback edit_callback_
TreeChangeCallback tree_change_callback_

Static Private Attributes

static constexpr double MIN_ZOOM = 0.1
static constexpr double MAX_ZOOM = 5.0
static const int DEFAULT_NODE_SPACING_X = 120
static const int DEFAULT_NODE_SPACING_Y = 80
static const int DEFAULT_LEVEL_SPACING = 100
static const int GRID_SIZE = 20

Detailed Description

Custom widget for rendering and interacting with complete behavior trees.

This widget provides a visual representation of an entire behavior tree with support for navigation, editing, layout management, and tree manipulation.

Definition at line 19 of file TreeWidget.h.

Member Typedef Documentation

◆ NodeEditCallback

using EmberForge::TreeWidget::NodeEditCallback = std::function<void(EmberCore::Node *, const wxString &property, const wxString &value)>

Definition at line 125 of file TreeWidget.h.

◆ NodeSelectionCallback

using EmberForge::TreeWidget::NodeSelectionCallback = std::function<void(const std::vector<EmberCore::Node *> &)>

Definition at line 124 of file TreeWidget.h.

◆ TreeChangeCallback

using EmberForge::TreeWidget::TreeChangeCallback = std::function<void(const wxString &change_type)>

Definition at line 126 of file TreeWidget.h.

Member Enumeration Documentation

◆ InteractionMode

Tree interaction modes.

Enumerator
View 
Select 
Edit 
Connect 
Debug 

Definition at line 35 of file TreeWidget.h.

◆ LayoutAlgorithm

Tree layout algorithms.

Enumerator
Vertical 
Horizontal 
Radial 
Compact 
Manual 

Definition at line 24 of file TreeWidget.h.

Constructor & Destructor Documentation

◆ TreeWidget()

EmberForge::TreeWidget::TreeWidget ( wxWindow * parent,
std::shared_ptr< EmberCore::BehaviorTree > tree = nullptr )

Constructor.

Parameters
parentParent window
treeThe behavior tree to display

◆ ~TreeWidget()

EmberForge::TreeWidget::~TreeWidget ( )
virtual

Destructor.

Definition at line 40 of file TreeWidget.cpp.

Member Function Documentation

◆ AddNode()

bool EmberForge::TreeWidget::AddNode ( std::unique_ptr< EmberCore::Node > node,
EmberCore::Node * parent )

Definition at line 323 of file TreeWidget.cpp.

◆ AnimateToNode()

void EmberForge::TreeWidget::AnimateToNode ( EmberCore::Node * node)

Definition at line 434 of file TreeWidget.cpp.

◆ AutoFitLayout()

void EmberForge::TreeWidget::AutoFitLayout ( )

Definition at line 97 of file TreeWidget.cpp.

◆ CalculateCompactLayout()

void EmberForge::TreeWidget::CalculateCompactLayout ( )
protected

Definition at line 662 of file TreeWidget.cpp.

◆ CalculateHorizontalLayout()

void EmberForge::TreeWidget::CalculateHorizontalLayout ( )
protected

Definition at line 652 of file TreeWidget.cpp.

◆ CalculateNodePosition()

wxPoint EmberForge::TreeWidget::CalculateNodePosition ( EmberCore::Node * node) const
protected

Definition at line 841 of file TreeWidget.cpp.

◆ CalculateRadialLayout()

void EmberForge::TreeWidget::CalculateRadialLayout ( )
protected

Definition at line 657 of file TreeWidget.cpp.

◆ CalculateTreeSize()

wxSize EmberForge::TreeWidget::CalculateTreeSize ( ) const
protected

Definition at line 839 of file TreeWidget.cpp.

◆ CalculateVerticalLayout()

void EmberForge::TreeWidget::CalculateVerticalLayout ( )
protected

Definition at line 641 of file TreeWidget.cpp.

◆ CanAddNode()

bool EmberForge::TreeWidget::CanAddNode ( EmberCore::Node * parent) const

Definition at line 319 of file TreeWidget.cpp.

◆ CanMoveNode()

bool EmberForge::TreeWidget::CanMoveNode ( EmberCore::Node * node,
EmberCore::Node * new_parent ) const

Definition at line 379 of file TreeWidget.cpp.

◆ CenterOnNode()

void EmberForge::TreeWidget::CenterOnNode ( EmberCore::Node * node)

Definition at line 292 of file TreeWidget.cpp.

◆ CenterOnSelection()

void EmberForge::TreeWidget::CenterOnSelection ( )

Definition at line 304 of file TreeWidget.cpp.

◆ CenterView()

void EmberForge::TreeWidget::CenterView ( )

Definition at line 310 of file TreeWidget.cpp.

◆ ClearHighlights()

void EmberForge::TreeWidget::ClearHighlights ( )

Definition at line 451 of file TreeWidget.cpp.

◆ ClearSelection()

void EmberForge::TreeWidget::ClearSelection ( )

Definition at line 198 of file TreeWidget.cpp.

◆ CreateNodeWidget()

std::unique_ptr< EmberForge::NodeWidget > EmberForge::TreeWidget::CreateNodeWidget ( EmberCore::Node * node)
protected

Definition at line 789 of file TreeWidget.cpp.

◆ CreateNodeWidgets()

void EmberForge::TreeWidget::CreateNodeWidgets ( )
protected

Definition at line 768 of file TreeWidget.cpp.

◆ DeselectNode()

void EmberForge::TreeWidget::DeselectNode ( EmberCore::Node * node)

Definition at line 189 of file TreeWidget.cpp.

◆ DestroyNodeWidgets()

void EmberForge::TreeWidget::DestroyNodeWidgets ( )
protected

Definition at line 787 of file TreeWidget.cpp.

◆ DrawBackground()

void EmberForge::TreeWidget::DrawBackground ( wxDC & dc)
protected

Definition at line 690 of file TreeWidget.cpp.

◆ DrawConnection()

void EmberForge::TreeWidget::DrawConnection ( wxDC & dc,
EmberForge::NodeWidget * parent,
EmberForge::NodeWidget * child )
protected

Definition at line 746 of file TreeWidget.cpp.

◆ DrawConnections()

void EmberForge::TreeWidget::DrawConnections ( wxDC & dc)
protected

Definition at line 726 of file TreeWidget.cpp.

◆ DrawGrid()

void EmberForge::TreeWidget::DrawGrid ( wxDC & dc)
protected

Definition at line 697 of file TreeWidget.cpp.

◆ DrawSelectionRect()

void EmberForge::TreeWidget::DrawSelectionRect ( wxDC & dc)
protected

Definition at line 759 of file TreeWidget.cpp.

◆ DuplicateSelectedNodes()

bool EmberForge::TreeWidget::DuplicateSelectedNodes ( )

Definition at line 374 of file TreeWidget.cpp.

◆ ExportAsImage()

wxBitmap EmberForge::TreeWidget::ExportAsImage ( const wxSize & size = wxDefaultSize) const

Definition at line 471 of file TreeWidget.cpp.

◆ GetAllNodeWidgets()

std::vector< NodeWidget * > EmberForge::TreeWidget::GetAllNodeWidgets ( ) const

Definition at line 154 of file TreeWidget.cpp.

◆ GetBehaviorTree()

std::shared_ptr< EmberCore::BehaviorTree > EmberForge::TreeWidget::GetBehaviorTree ( ) const
inline

Definition at line 57 of file TreeWidget.h.

◆ GetInteractionMode()

InteractionMode EmberForge::TreeWidget::GetInteractionMode ( ) const
inline

Definition at line 67 of file TreeWidget.h.

◆ GetLayoutAlgorithm()

LayoutAlgorithm EmberForge::TreeWidget::GetLayoutAlgorithm ( ) const
inline

Definition at line 61 of file TreeWidget.h.

◆ GetNodeWidget()

EmberForge::NodeWidget * EmberForge::TreeWidget::GetNodeWidget ( EmberCore::Node * node) const

Definition at line 146 of file TreeWidget.cpp.

◆ GetSelectedNode()

EmberCore::Node * EmberForge::TreeWidget::GetSelectedNode ( ) const

Definition at line 219 of file TreeWidget.cpp.

◆ GetSelectedNodes()

std::vector< EmberCore::Node * > EmberForge::TreeWidget::GetSelectedNodes ( ) const

Definition at line 221 of file TreeWidget.cpp.

◆ GetSelectedNodeWidgets()

std::vector< EmberForge::NodeWidget * > EmberForge::TreeWidget::GetSelectedNodeWidgets ( ) const

Definition at line 162 of file TreeWidget.cpp.

◆ GetZoomLevel()

double EmberForge::TreeWidget::GetZoomLevel ( ) const
inline

Definition at line 89 of file TreeWidget.h.

◆ HasTree()

bool EmberForge::TreeWidget::HasTree ( ) const
inline

Definition at line 58 of file TreeWidget.h.

◆ HighlightExecutionPath()

void EmberForge::TreeWidget::HighlightExecutionPath ( const std::vector< EmberCore::Node * > & path)

Definition at line 439 of file TreeWidget.cpp.

◆ HitTestConnection()

EmberCore::Node * EmberForge::TreeWidget::HitTestConnection ( const wxPoint & point) const
protected

Definition at line 818 of file TreeWidget.cpp.

◆ HitTestNode()

NodeWidget * EmberForge::TreeWidget::HitTestNode ( const wxPoint & point) const
protected

Definition at line 809 of file TreeWidget.cpp.

◆ InitializeWidget()

void EmberForge::TreeWidget::InitializeWidget ( )
private

Definition at line 906 of file TreeWidget.cpp.

◆ LayoutNodeVertical()

void EmberForge::TreeWidget::LayoutNodeVertical ( EmberCore::Node * node,
int x,
int y,
int level )
protected

Definition at line 668 of file TreeWidget.cpp.

◆ LoadLayout()

bool EmberForge::TreeWidget::LoadLayout ( const wxString & filename)

Definition at line 466 of file TreeWidget.cpp.

◆ LoadPreferences()

void EmberForge::TreeWidget::LoadPreferences ( )

Definition at line 962 of file TreeWidget.cpp.

◆ MoveNode()

bool EmberForge::TreeWidget::MoveNode ( EmberCore::Node * node,
EmberCore::Node * new_parent )

Definition at line 383 of file TreeWidget.cpp.

◆ NotifySelectionChange()

void EmberForge::TreeWidget::NotifySelectionChange ( )
protected

Definition at line 832 of file TreeWidget.cpp.

◆ OnChar()

void EmberForge::TreeWidget::OnChar ( wxKeyEvent & event)
protectedvirtual

Definition at line 638 of file TreeWidget.cpp.

◆ OnEraseBackground()

void EmberForge::TreeWidget::OnEraseBackground ( wxEraseEvent & event)
protectedvirtual

Definition at line 513 of file TreeWidget.cpp.

◆ OnKeyDown()

void EmberForge::TreeWidget::OnKeyDown ( wxKeyEvent & event)
protectedvirtual

Definition at line 621 of file TreeWidget.cpp.

◆ OnMouseDown()

void EmberForge::TreeWidget::OnMouseDown ( wxMouseEvent & event)
protectedvirtual

Definition at line 518 of file TreeWidget.cpp.

◆ OnMouseMove()

void EmberForge::TreeWidget::OnMouseMove ( wxMouseEvent & event)
protectedvirtual

Definition at line 575 of file TreeWidget.cpp.

◆ OnMouseUp()

void EmberForge::TreeWidget::OnMouseUp ( wxMouseEvent & event)
protectedvirtual

Definition at line 549 of file TreeWidget.cpp.

◆ OnMouseWheel()

void EmberForge::TreeWidget::OnMouseWheel ( wxMouseEvent & event)
protectedvirtual

Definition at line 584 of file TreeWidget.cpp.

◆ OnNodeClicked()

void EmberForge::TreeWidget::OnNodeClicked ( EmberForge::NodeWidget * widget,
EmberCore::Node * node )
private

Definition at line 937 of file TreeWidget.cpp.

◆ OnNodeDoubleClicked()

void EmberForge::TreeWidget::OnNodeDoubleClicked ( EmberForge::NodeWidget * widget,
EmberCore::Node * node )
private

Definition at line 941 of file TreeWidget.cpp.

◆ OnNodeDragged()

void EmberForge::TreeWidget::OnNodeDragged ( EmberForge::NodeWidget * widget,
const wxPoint & delta )
private

Definition at line 947 of file TreeWidget.cpp.

◆ OnNodeEdited()

void EmberForge::TreeWidget::OnNodeEdited ( EmberForge::NodeWidget * widget,
const wxString & new_name )
private

Definition at line 955 of file TreeWidget.cpp.

◆ OnPaint()

void EmberForge::TreeWidget::OnPaint ( wxPaintEvent & event)
protectedvirtual

Definition at line 486 of file TreeWidget.cpp.

◆ OnRightClick()

void EmberForge::TreeWidget::OnRightClick ( wxContextMenuEvent & event)
protectedvirtual

Definition at line 619 of file TreeWidget.cpp.

◆ OnSize()

void EmberForge::TreeWidget::OnSize ( wxSizeEvent & event)
protectedvirtual

Definition at line 508 of file TreeWidget.cpp.

◆ PositionNodeWidgets()

void EmberForge::TreeWidget::PositionNodeWidgets ( )
protected

Definition at line 849 of file TreeWidget.cpp.

◆ RefreshLayout()

void EmberForge::TreeWidget::RefreshLayout ( )

Definition at line 69 of file TreeWidget.cpp.

◆ RemoveSelectedNodes()

bool EmberForge::TreeWidget::RemoveSelectedNodes ( )

Definition at line 348 of file TreeWidget.cpp.

◆ SaveLayout()

bool EmberForge::TreeWidget::SaveLayout ( const wxString & filename) const

Definition at line 461 of file TreeWidget.cpp.

◆ ScreenToTree() [1/2]

wxPoint EmberForge::TreeWidget::ScreenToTree ( const wxPoint & screen_point) const
protected

Definition at line 886 of file TreeWidget.cpp.

◆ ScreenToTree() [2/2]

wxRect EmberForge::TreeWidget::ScreenToTree ( const wxRect & screen_rect) const
protected

Definition at line 899 of file TreeWidget.cpp.

◆ SelectAll()

void EmberForge::TreeWidget::SelectAll ( )

Definition at line 206 of file TreeWidget.cpp.

◆ SelectNode()

void EmberForge::TreeWidget::SelectNode ( EmberCore::Node * node,
bool add_to_selection = false )

Definition at line 173 of file TreeWidget.cpp.

◆ SetBackgroundColor()

void EmberForge::TreeWidget::SetBackgroundColor ( const wxColour & color)

Definition at line 419 of file TreeWidget.cpp.

◆ SetBehaviorTree()

void EmberForge::TreeWidget::SetBehaviorTree ( std::shared_ptr< EmberCore::BehaviorTree > tree)

Definition at line 48 of file TreeWidget.cpp.

◆ SetConnectionStyle()

void EmberForge::TreeWidget::SetConnectionStyle ( int line_width,
const wxColour & color )

Definition at line 413 of file TreeWidget.cpp.

◆ SetConnectionsVisible()

void EmberForge::TreeWidget::SetConnectionsVisible ( bool visible)

Definition at line 429 of file TreeWidget.cpp.

◆ SetGridVisible()

void EmberForge::TreeWidget::SetGridVisible ( bool visible)

Definition at line 424 of file TreeWidget.cpp.

◆ SetInteractionMode()

void EmberForge::TreeWidget::SetInteractionMode ( InteractionMode mode)

Definition at line 129 of file TreeWidget.cpp.

◆ SetLayoutAlgorithm()

void EmberForge::TreeWidget::SetLayoutAlgorithm ( LayoutAlgorithm algorithm)

Definition at line 62 of file TreeWidget.cpp.

◆ SetNodeEditCallback()

void EmberForge::TreeWidget::SetNodeEditCallback ( NodeEditCallback callback)
inline

Definition at line 129 of file TreeWidget.h.

◆ SetNodeRenderStyle()

void EmberForge::TreeWidget::SetNodeRenderStyle ( EmberForge::NodeWidget::RenderStyle style)

Definition at line 401 of file TreeWidget.cpp.

◆ SetNodeSelectionCallback()

void EmberForge::TreeWidget::SetNodeSelectionCallback ( NodeSelectionCallback callback)
inline

Definition at line 128 of file TreeWidget.h.

◆ SetTreeChangeCallback()

void EmberForge::TreeWidget::SetTreeChangeCallback ( TreeChangeCallback callback)
inline

Definition at line 130 of file TreeWidget.h.

◆ SetupEventHandlers()

void EmberForge::TreeWidget::SetupEventHandlers ( )
private

Definition at line 913 of file TreeWidget.cpp.

◆ SetZoomLevel()

void EmberForge::TreeWidget::SetZoomLevel ( double zoom)

Definition at line 283 of file TreeWidget.cpp.

◆ ShowContextMenu()

void EmberForge::TreeWidget::ShowContextMenu ( const wxPoint & position)
private

Definition at line 919 of file TreeWidget.cpp.

◆ TreeToScreen() [1/2]

wxPoint EmberForge::TreeWidget::TreeToScreen ( const wxPoint & tree_point) const
protected

Definition at line 879 of file TreeWidget.cpp.

◆ TreeToScreen() [2/2]

wxRect EmberForge::TreeWidget::TreeToScreen ( const wxRect & tree_rect) const
protected

Definition at line 893 of file TreeWidget.cpp.

◆ UpdateNodeWidgets()

void EmberForge::TreeWidget::UpdateNodeWidgets ( )
protected

Definition at line 781 of file TreeWidget.cpp.

◆ UpdateScrollbars()

void EmberForge::TreeWidget::UpdateScrollbars ( )
protected

Definition at line 868 of file TreeWidget.cpp.

◆ UpdateSelectionVisuals()

void EmberForge::TreeWidget::UpdateSelectionVisuals ( )
protected

Definition at line 824 of file TreeWidget.cpp.

◆ UpdateViewSize()

void EmberForge::TreeWidget::UpdateViewSize ( )
private

Definition at line 917 of file TreeWidget.cpp.

◆ ZoomIn()

void EmberForge::TreeWidget::ZoomIn ( )

Definition at line 223 of file TreeWidget.cpp.

◆ ZoomOut()

void EmberForge::TreeWidget::ZoomOut ( )

Definition at line 225 of file TreeWidget.cpp.

◆ ZoomToFit()

void EmberForge::TreeWidget::ZoomToFit ( )

Definition at line 227 of file TreeWidget.cpp.

◆ ZoomToSelection()

void EmberForge::TreeWidget::ZoomToSelection ( )

Definition at line 246 of file TreeWidget.cpp.

Member Data Documentation

◆ animation_timer_

wxTimer* EmberForge::TreeWidget::animation_timer_
private

Definition at line 234 of file TreeWidget.h.

◆ background_color_

wxColour EmberForge::TreeWidget::background_color_
private

Definition at line 212 of file TreeWidget.h.

◆ behavior_tree_

std::shared_ptr<EmberCore::BehaviorTree> EmberForge::TreeWidget::behavior_tree_
private

Definition at line 191 of file TreeWidget.h.

◆ connection_color_

wxColour EmberForge::TreeWidget::connection_color_
private

Definition at line 214 of file TreeWidget.h.

◆ connection_width_

int EmberForge::TreeWidget::connection_width_
private

Definition at line 215 of file TreeWidget.h.

◆ connections_visible_

bool EmberForge::TreeWidget::connections_visible_
private

Definition at line 217 of file TreeWidget.h.

◆ DEFAULT_LEVEL_SPACING

const int EmberForge::TreeWidget::DEFAULT_LEVEL_SPACING = 100
staticprivate

Definition at line 259 of file TreeWidget.h.

◆ DEFAULT_NODE_SPACING_X

const int EmberForge::TreeWidget::DEFAULT_NODE_SPACING_X = 120
staticprivate

Definition at line 257 of file TreeWidget.h.

◆ DEFAULT_NODE_SPACING_Y

const int EmberForge::TreeWidget::DEFAULT_NODE_SPACING_Y = 80
staticprivate

Definition at line 258 of file TreeWidget.h.

◆ drag_start_pos_

wxPoint EmberForge::TreeWidget::drag_start_pos_
private

Definition at line 222 of file TreeWidget.h.

◆ edit_callback_

NodeEditCallback EmberForge::TreeWidget::edit_callback_
private

Definition at line 239 of file TreeWidget.h.

◆ grid_color_

wxColour EmberForge::TreeWidget::grid_color_
private

Definition at line 213 of file TreeWidget.h.

◆ GRID_SIZE

const int EmberForge::TreeWidget::GRID_SIZE = 20
staticprivate

Definition at line 260 of file TreeWidget.h.

◆ grid_visible_

bool EmberForge::TreeWidget::grid_visible_
private

Definition at line 216 of file TreeWidget.h.

◆ highlighted_path_

std::vector<EmberCore::Node *> EmberForge::TreeWidget::highlighted_path_
private

Definition at line 235 of file TreeWidget.h.

◆ interaction_mode_

InteractionMode EmberForge::TreeWidget::interaction_mode_
private

Definition at line 193 of file TreeWidget.h.

◆ is_dragging_

bool EmberForge::TreeWidget::is_dragging_
private

Definition at line 220 of file TreeWidget.h.

◆ is_selecting_

bool EmberForge::TreeWidget::is_selecting_
private

Definition at line 221 of file TreeWidget.h.

◆ layout_algorithm_

LayoutAlgorithm EmberForge::TreeWidget::layout_algorithm_
private

Definition at line 192 of file TreeWidget.h.

◆ level_spacing_

int EmberForge::TreeWidget::level_spacing_
private

Definition at line 229 of file TreeWidget.h.

◆ MAX_ZOOM

double EmberForge::TreeWidget::MAX_ZOOM = 5.0
staticconstexprprivate

Definition at line 256 of file TreeWidget.h.

◆ MIN_ZOOM

double EmberForge::TreeWidget::MIN_ZOOM = 0.1
staticconstexprprivate

Definition at line 255 of file TreeWidget.h.

◆ mouse_wheel_sensitivity_

double EmberForge::TreeWidget::mouse_wheel_sensitivity_
private

Definition at line 207 of file TreeWidget.h.

◆ node_positions_

std::unordered_map<EmberCore::Node *, wxPoint> EmberForge::TreeWidget::node_positions_
private

Definition at line 231 of file TreeWidget.h.

◆ node_render_style_

EmberForge::NodeWidget::RenderStyle EmberForge::TreeWidget::node_render_style_
private

Definition at line 203 of file TreeWidget.h.

◆ node_spacing_x_

int EmberForge::TreeWidget::node_spacing_x_
private

Definition at line 227 of file TreeWidget.h.

◆ node_spacing_y_

int EmberForge::TreeWidget::node_spacing_y_
private

Definition at line 228 of file TreeWidget.h.

◆ node_widgets_

std::unordered_map<EmberCore::Node *, std::unique_ptr<EmberForge::NodeWidget> > EmberForge::TreeWidget::node_widgets_
private

Definition at line 196 of file TreeWidget.h.

◆ pan_sensitivity_

double EmberForge::TreeWidget::pan_sensitivity_
private

Definition at line 208 of file TreeWidget.h.

◆ selected_nodes_

std::vector<EmberCore::Node *> EmberForge::TreeWidget::selected_nodes_
private

Definition at line 197 of file TreeWidget.h.

◆ selection_callback_

NodeSelectionCallback EmberForge::TreeWidget::selection_callback_
private

Definition at line 238 of file TreeWidget.h.

◆ selection_rect_

wxRect EmberForge::TreeWidget::selection_rect_
private

Definition at line 224 of file TreeWidget.h.

◆ selection_start_pos_

wxPoint EmberForge::TreeWidget::selection_start_pos_
private

Definition at line 223 of file TreeWidget.h.

◆ tree_change_callback_

TreeChangeCallback EmberForge::TreeWidget::tree_change_callback_
private

Definition at line 240 of file TreeWidget.h.

◆ tree_root_position_

wxPoint EmberForge::TreeWidget::tree_root_position_
private

Definition at line 230 of file TreeWidget.h.

◆ tree_size_

wxSize EmberForge::TreeWidget::tree_size_
private

Definition at line 202 of file TreeWidget.h.

◆ view_offset_

wxPoint EmberForge::TreeWidget::view_offset_
private

Definition at line 201 of file TreeWidget.h.

◆ zoom_follows_cursor_

bool EmberForge::TreeWidget::zoom_follows_cursor_
private

Definition at line 209 of file TreeWidget.h.

◆ zoom_level_

double EmberForge::TreeWidget::zoom_level_
private

Definition at line 200 of file TreeWidget.h.

◆ zoom_step_

double EmberForge::TreeWidget::zoom_step_
private

Definition at line 206 of file TreeWidget.h.


The documentation for this class was generated from the following files: