acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
drag_client.h
1// Created by camilo on 2021-01-22 06:11 AM <3ThomasBorregaardSorensen
2#pragma once
3
4
5#include "acme/user/user/container.h"
6#include "acme/constant/element.h"
8
9
10namespace user
11{
12
13
14 class CLASS_DECL_ACME drag_client :
15 virtual public ::user::acme_container
16 {
17 public:
18
19
20 ø < map_base<::item_t, ::pointer<::user::drag> > > m_mapDrag;
21 ::pointer<::user::drag> m_pdragCurrent;
22
23
24 drag_client();
25 ~drag_client() override;
26
27
28 void destroy() override;
29
30
31 virtual void enable_drag(::item * pitem, ::user::e_zorder ezorder);
32 virtual ::user::drag * drag(::item * pitem) const;
33 virtual bool has_drag(::item * pitem) const;
34
35
36 virtual bool drag_on_button_down(::item * pitem);
37 virtual bool drag_on_button_down(::item * pitem, ::user::mouse * pmouse);
38 virtual bool drag_on_mouse_move(::user::mouse * pmouse);
39 virtual bool drag_on_mouse_hover(::item * pitem, ::user::mouse * pmouse);
40 virtual bool drag_on_button_up(::user::mouse * pmouse);
41
42
43 virtual void drag_set_capture() = 0;
44 virtual bool on_drag_start(::i32_point & point, ::user::mouse * pmouse, ::item * pitem) = 0;
45 virtual ::i32_point drag_mouse_cursor_position(::item * pitem, const ::i32_point & point) = 0;
46 virtual bool drag_shift(::item * pitem, ::user::mouse * pmouse) = 0;
47 virtual bool drag_hover(::item * pitem) = 0;
48 virtual void drag_release_capture() = 0;
49 virtual void drag_set_cursor(::item * pitem, ::user::mouse * pmouse) = 0;
50
51 virtual ::i32_point drag_point(::item * pitem, ::user::mouse * pmouse);
52
53
54 //virtual ::user::item & user_item(const ::item * pitem) = 0;
55
56
57 };
58
59
60} // namespace user
61
62
63
Definition aaa_item.h:13
Created by camilo on 2026-05-28 12:34 <3ThomasBorregaardSørensen!! Mummi!! Bilbo!!
Definition _.h:67