tbx  0.7.6
treeviewlisteners.h
1 /*
2  * tbx RISC OS toolbox library
3  *
4  * Copyright (C) 2020 Alan Buckley All Rights Reserved.
5  *
6  * Permission is hereby granted, free of charge, to any person obtaining a
7  * copy of this software and associated documentation files (the "Software"),
8  * to deal in the Software without restriction, including without limitation
9  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10  * and/or sell copies of the Software, and to permit persons to whom the
11  * Software is furnished to do so, subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be included
14  * in all copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22  * THE SOFTWARE.
23  */
24 
25 /*
26  * treeviewlisteners.h
27  *
28  * Created on: 13-Nov-2020
29  * Author: alanb
30  */
31 
32 #ifndef TBX_TREEVIEWLISTENERS_H_
33 #define TBX_TREEVIEWLISTENERS_H_
34 
35 #include "../eventinfo.h"
36 #include "../listener.h"
37 #include "../pointerinfo.h"
38 #include "../visiblearea.h"
39 
40 namespace tbx {
41 namespace ext {
42 
43 typedef int TreeNodeId;
44 
49 {
50 public:
55  EventInfo(id_block, data) {};
56 
60  bool selected() const {return (_data.word[3] & 1)!=0;}
64  bool multiple() const {return (_data.word[3] & 2)!=0;}
65 
69  TreeNodeId node() const {return (TreeNodeId)_data.word[4];}
70 };
71 
76 public:
80  virtual void treeview_node_selected(const TreeViewNodeSelectedEvent &event) = 0;
81 };
82 
87 {
88 public:
93  EventInfo(id_block, data) {};
94 
98  bool expanded() const {return (_data.word[3] & 1)!=0;}
99 
103  TreeNodeId node() const {return (TreeNodeId)_data.word[4];}
104 };
105 
110 public:
114  virtual void treeview_node_expanded(const TreeViewNodeExpandedEvent &event) = 0;
115 };
116 
117 /* Renaming is not supported in the current treeview version
118  * Tree node has been renamed event
119  *
120 class TreeViewNodeRenamedEvent : public tbx::EventInfo
121 {
122 public:
123  **
124  * Construct the event.
125  *
126  TreeViewNodeRenamedEvent(IdBlock &id_block, PollBlock &data) :
127  EventInfo(id_block, data) {};
128 
129  **
130  * Node that was renamed
131  *
132  TreeNodeId node() const {return (TreeNodeId)_data.word[4];}
133 };
134 */
135 
136 /* Renaming is not supported in the current treeview version
137  * Listener for node renamed events
138  *
139 class TreeViewNodeRenamedListener: public tbx::Listener {
140 public:
141  // Called when a node is renamed.
142  virtual void treeview_node_renamed(const TreeViewNodeRenamedEvent &event) = 0;
143 };
144 */
145 
150 {
151 public:
156  EventInfo(id_block, data) {};
157 
161  bool outside() const {return (_data.word[3] & 1)!=0;}
165  bool multiple() const {return (_data.word[3] & 2)!=0;}
166 
170  TreeNodeId node() const {return (TreeNodeId)_data.word[4];}
171 
175  TreeNodeId destination_node() const {return (TreeNodeId)_data.word[5];}
176 
180  int mouse_buttons() const {return _data.word[6];}
181 
185  bool select() const {return (_data.word[6] == 4);}
189  bool adjust() const {return (_data.word[6] == 1);}
190 
194  const tbx::PointerInfo &destination() const {return *((const tbx::PointerInfo *)&_data.word[7]);}
195 };
196 
201 public:
205  virtual void treeview_node_dragged(const TreeViewNodeDraggedEvent &event) = 0;
206 };
207 
208 
213 {
214 public:
219  EventInfo(id_block, data) {};
220 
225 };
226 
231 public:
235  virtual void treeview_scroll(const TreeViewScrollEvent &event) = 0;
236 };
237 
238 
239 }
240 }
241 
242 #endif
243 
244 
tbx::ext::TreeViewNodeDraggedEvent::TreeViewNodeDraggedEvent
TreeViewNodeDraggedEvent(IdBlock &id_block, PollBlock &data)
Construct the event.
Definition: treeviewlisteners.h:155
tbx::ext::TreeViewNodeDraggedEvent::destination
const tbx::PointerInfo & destination() const
Destination information.
Definition: treeviewlisteners.h:194
tbx
A library for creating RISC OS toolbox applications.
Definition: abouttobeshownlistener.cc:35
tbx::ext::TreeViewNodeDraggedEvent::multiple
bool multiple() const
Check if a multiple nodes are being dragged.
Definition: treeviewlisteners.h:165
tbx::ext::TreeViewNodeExpandedEvent::TreeViewNodeExpandedEvent
TreeViewNodeExpandedEvent(IdBlock &id_block, PollBlock &data)
Construct the event.
Definition: treeviewlisteners.h:92
tbx::EventInfo::id_block
const IdBlock & id_block() const
IdBlock for the current event.
Definition: eventinfo.h:71
tbx::ext::TreeViewNodeSelectedListener::treeview_node_selected
virtual void treeview_node_selected(const TreeViewNodeSelectedEvent &event)=0
Called when a node has been selected or deselected.
tbx::EventInfo::_data
PollBlock & _data
raw data from the event
Definition: eventinfo.h:53
tbx::ext::TreeViewScrollEvent::TreeViewScrollEvent
TreeViewScrollEvent(IdBlock &id_block, PollBlock &data)
Construct the event.
Definition: treeviewlisteners.h:218
tbx::ext::TreeViewNodeSelectedListener
Listener for node selected events.
Definition: treeviewlisteners.h:75
tbx::ext::TreeViewScrollEvent
Tree has been scrolled event.
Definition: treeviewlisteners.h:213
tbx::ext::TreeViewNodeExpandedEvent::node
TreeNodeId node() const
Node that was expanded/contracted.
Definition: treeviewlisteners.h:103
tbx::PollBlock
Structure holding the raw data from a call to Wimp_Poll.
Definition: pollinfo.h:72
tbx::ext::TreeViewNodeDraggedEvent::mouse_buttons
int mouse_buttons() const
Buttons pressed.
Definition: treeviewlisteners.h:180
tbx::ext::TreeViewNodeDraggedListener::treeview_node_dragged
virtual void treeview_node_dragged(const TreeViewNodeDraggedEvent &event)=0
Called when a node is dragged.
tbx::ext::TreeViewNodeSelectedEvent::TreeViewNodeSelectedEvent
TreeViewNodeSelectedEvent(IdBlock &id_block, PollBlock &data)
Construct the event.
Definition: treeviewlisteners.h:54
tbx::VisibleArea
Class to store information for the Visible area of a window and provide work area to screen conversio...
Definition: visiblearea.h:37
tbx::ext::TreeViewNodeDraggedEvent::select
bool select() const
Was the select mouse button pressed.
Definition: treeviewlisteners.h:185
tbx::IdBlock
Information passed back by the Toolbox with each toolbox event providing information on where the eve...
Definition: pollinfo.h:42
tbx::ext::TreeViewNodeSelectedEvent::selected
bool selected() const
Check if a node was selected.
Definition: treeviewlisteners.h:60
tbx::ext::TreeViewNodeExpandedEvent::expanded
bool expanded() const
Check if a node was expanded.
Definition: treeviewlisteners.h:98
tbx::ext::TreeViewScrollEvent::info
tbx::VisibleArea info() const
Scroll information.
Definition: treeviewlisteners.h:224
tbx::ext::TreeViewNodeSelectedEvent::node
TreeNodeId node() const
Node that was selected/deselected.
Definition: treeviewlisteners.h:69
tbx::ext::TreeViewNodeSelectedEvent
Tree node has been selected event.
Definition: treeviewlisteners.h:49
tbx::ext::TreeViewNodeDraggedListener
Listener for node dragged events.
Definition: treeviewlisteners.h:200
tbx::ext::TreeViewNodeExpandedListener
Listener for node expanded events.
Definition: treeviewlisteners.h:109
tbx::ext::TreeViewNodeExpandedEvent
Tree node has been expanded event.
Definition: treeviewlisteners.h:87
tbx::ext::TreeViewNodeExpandedListener::treeview_node_expanded
virtual void treeview_node_expanded(const TreeViewNodeExpandedEvent &event)=0
Called when a node is expanded or contracted.
tbx::ext::TreeViewNodeSelectedEvent::multiple
bool multiple() const
Check if a multiple nodes are selected.
Definition: treeviewlisteners.h:64
tbx::ext::TreeViewNodeDraggedEvent::adjust
bool adjust() const
Was the adjust mouse button pressed.
Definition: treeviewlisteners.h:189
tbx::Listener
Base class for all toolbox event listeners.
Definition: listener.h:34
tbx::ext::TreeViewScrollListener::treeview_scroll
virtual void treeview_scroll(const TreeViewScrollEvent &event)=0
Called when the tree view is scrolled.
tbx::ext::TreeViewScrollListener
Listener for tree view scroll events.
Definition: treeviewlisteners.h:230
tbx::ext::TreeViewNodeDraggedEvent::node
TreeNodeId node() const
Node that was dragged.
Definition: treeviewlisteners.h:170
tbx::ext::TreeViewNodeDraggedEvent::outside
bool outside() const
Check if a node was dragged outside the treeview.
Definition: treeviewlisteners.h:161
tbx::PointerInfo
Class to store and fetch information about the WIMP mouse pointer.
Definition: pointerinfo.h:44
tbx::PollBlock::word
int word[64]
Array containing information return from Wimp_Poll.
Definition: pollinfo.h:76
tbx::ext::TreeViewNodeDraggedEvent
Tree node has been dragged event.
Definition: treeviewlisteners.h:150
tbx::ext::TreeViewNodeDraggedEvent::destination_node
TreeNodeId destination_node() const
Node it was dragged to.
Definition: treeviewlisteners.h:175
tbx::EventInfo
Class to provide information on a toolbox event.
Definition: eventinfo.h:49