17 class CLASS_DECL_ACME tree_base :
18 virtual public ::data::data,
27 index_array m_iaLevelNext;
33 ~tree_base()
override;
36 virtual ::pointer<::data::tree_item_base> _create_tree_item() = 0;
38 void destroy()
override;
40 virtual void _insert_tree(tree_base * ptree);
42 virtual ::i64 increment_reference_count()
override
44 return ::matter::increment_reference_count();
47 virtual ::i64 decrement_reference_count()
override
49 return ::matter::decrement_reference_count();
53 virtual void erase_all();
55 virtual void update_tree();
57 virtual ::collection::count _tree_count() = 0;
58 virtual tree_base * _tree_at(::collection::index iIndex) = 0;
60 virtual void predicate_each_tree(const ::function <
void(tree_base *) > & callback);
62 virtual tree_item_base * _find(const ::item * pitem, ::collection::index * piIndex =
nullptr);
63 virtual bool _contains(const ::item * pitem);
65 bool _contains(
const tree_item_base * pitem)
override;
67 virtual void _001OnTreeDataChange();
69 virtual void _001OnItemExpand(tree_item_base * pitem, const ::action_context &
action_context);
70 virtual void _001OnItemCollapse(tree_item_base * pitem, const ::action_context &
action_context);
71 virtual void _001OnOpenItem(tree_item_base * pitem, const ::action_context &
action_context);
72 virtual void _001OnItemContextMenu(tree_item_base * pitem, const ::action_context &
action_context, ::user::element * ptree, const ::i32_point & point);
75 void _erase(tree_item_base * pitem);
76 void _erase(
::item * pitem, ::collection::index i = 0);
90 virtual tree_item_base * __get_proper_item(::collection::index iIndex, ::collection::index * piLevel, ::collection::index * piCount =
nullptr);
91 virtual tree_item_base * _get_proper_item(::collection::index iIndex, ::collection::index * piLevel)
override;
92 virtual ::collection::index _get_proper_item_index(tree_item_base * pitemParam, ::collection::index * piLevel, ::collection::index * piCount =
nullptr);
95 virtual void _update_levels();
97 virtual tree_item_base * _get_base_item();
99 virtual const tree_item_base * _get_base_item()
const;
101 virtual tree_item_base * _insert_item(
::item * pitemdataNew, enum_relative erelativeNewItem = e_relative_last_child, tree_item_base * pitemRelative =
nullptr,
bool bVoidTreeDataChangeEvent =
false);
102 virtual bool _insert_item(tree_item_base * pitemNew, enum_relative erelativeNewItem = e_relative_last_child, tree_item_base * pitemRelative =
nullptr,
bool bVoidTreeDataChangeEvent =
false);
104 virtual ::image::image_list * get_tree_image_list();
106 virtual void _001ExpandItem(tree_item_base * pitem, const ::action_context &
action_context,
bool bExpand =
true,
bool bRedraw =
true,
bool bLayout =
true);
107 virtual void _001EnsureVisible(tree_item_base * pitem);
108 virtual void _001SelectItem(tree_item_base * pitem);
111 virtual bool _is_selected(
const tree_item_base * pitem)
const;
112 virtual bool _is_selected(const ::item * pitem)
const;
115 virtual bool _selection_set(tree_item_base * pitem,
bool bIfNotInSelection =
false,
bool bIfParentInSelection =
false);
116 virtual bool _selection_set(
::item * pitem,
bool bIfNotInSelection =
false,
bool bIfParentInSelection =
false);
117 virtual bool _selection_set(::collection::index iIndex,
::item * pitem,
bool bIfNotInSelection =
false,
bool bIfParentInSelection =
false);
121 void handle(
::topic * ptopic, ::handler_context * phandlercontext)
override;
124 virtual void on_fill_children()
override;
127 virtual void on_tree_layout();
129 virtual void fill_children();
Definition action_context.h:9