acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
item_container.h
1// From acme/user/user/container.h by camilo on 2023-07-21 12:05 <3ThomasBorregaardSorensen!!
2// Created by camilo on 2023-07-18 13:46 <3ThomasBorregaardSorensen!!
3#pragma once
4
5
6#include "acme/handler/item.h"
7
8
9class CLASS_DECL_ACME item_container :
10 virtual public ::item
11{
12public:
13
14
15 ::item_pointer m_pitemCurrent;
16 ::pointer < ::item_array > m_pitema;
17
18
19 item_container();
20 ~item_container() override;
21
22
23 bool _is_set() const override;
24
25
26 virtual ::collection::count item_count() const;
27
28 virtual void clear_items();
29
30 //virtual ::item * item_at(::collection::index iIndex);
31
32 virtual void indexed_set_item_at(::collection::index iIndex, ::item * pitem);
33
34 virtual void indexed_add_item(::item * pitem);
35
36 virtual ::collection::index add_item(::item * pitem);
37
38 virtual ::item_pointer add_item(const ::e_element & eelement, ::collection::index iItem = -1);
39
40 //virtual ::user::item * user_item_at(::collection::index iIndex);
41
42 virtual ::collection::index item_index(const ::item * pitem);
43
44
45 inline ::item * item_at(::collection::index iIndex)
46 {
47 if (!m_pitema) return nullptr;
48 return m_pitema->element_at(iIndex);
49 }
50
51
52 inline const ::item * item_at(::collection::index iIndex) const
53 {
54 if (!m_pitema) return nullptr;
55 return m_pitema->element_at(iIndex);
56 }
57
58
59 //virtual ::collection::index content_item_index(const ::item * pitem);
60
61 //virtual ::user::item * user_item(const ::item * pitem);
62
63 //virtual ::user::item * user_item(const ::atom & atom);
64
65 virtual ::item * item(const ::atom & atom);
66
67 virtual const ::item * item(const ::atom & atom) const;
68
69 virtual bool contains_item(const ::atom & atom) const;
70
71 virtual ::item * find_item(const ::e_element & eelement, ::collection::index iItem = -1);
72
73 virtual ::item * defer_item(const ::e_element & eelement, ::collection::index iItem = -1);
74
75 virtual ::collection::index item_index() const;
76
77 virtual ::collection::index item_index(const ::atom & atom) const;
78
79 //virtual bool is_item_pressed_by_index(::collection::index iIndex) const;
80
81 //virtual bool is_item_hover_by_index(::collection::index iIndex) const;
82
83
84 virtual bool is_item_selected(::item * pitem);
85 virtual ::item * selected_item();
86
87 virtual bool is_item_hover(::item * pitem);
88 virtual ::item * hover_item();
89
90
91 virtual void on_item_selected(::item * pitem);
92 virtual void on_item_hover(::item * pitem);
93
94 virtual ::item * get_child_as_item(::collection::index iIndex);
95 virtual ::collection::count get_child_as_item_count();
96
97
98};
99
100
Definition atom.h:237