acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
window.h
1//
2// Created by camilo on 31/01/2022 15:38 <3ThomasBorregaardSorensen!!
3//
4#pragma once
5
6
7#include "acme/user/micro/window_implementation.h"
8#include "event_listener.h"
9#include "acme/parallelization/manual_reset_happening.h"
10#include <cairo/cairo.h>
11
12
13namespace xcb
14{
15
16
17 namespace nano
18 {
19 namespace user
20 {
21 class CLASS_DECL_ACME window :
22 virtual public ::micro::window_implementation,
23 virtual public event_listener
24 {
25 public:
26
27
28 ::pointer<class display> m_pdisplay;
29 xcb_window_t m_window;
30 cairo_surface_t * m_psurface;
31 ::pointer<::nano::graphics::context> m_pnanodevice;
32 //::pointer<::nano::graphics::font> m_pfont;
33 //color32_t m_colorText;
34 //color32_t m_colorFocus;
35 //color32_t m_colorWindow;
36 //string m_strTitle;
37 //bool m_bNcActive;
38
39 manual_reset_happening m_happeningEnd;
40 //i32_rectangle m_rectangle;
41 //i32_rectangle m_rectangleX;
42
43 //pointer_array < ::micro::child > m_childa;
44 //::atom m_atomLeftButtonDown;
45 //::atom m_atomLeftButtonUp;
46 //::atom m_atomResult;
47 //::pointer<::micro::child> m_pchildFocus;
48
49
50 window();
51 ~window() override;
52
53
54 ::acme::windowing::display * get_display() override;
55
56
57 void on_initialize_particle() override;
58
59 void create() override;
60
61 void destroy() override;
62
63 void display() override;
64
65 bool _on_event(xcb_generic_event_t *pevent) override;
66
67 virtual void _update_window();
68
69 ::e_status _map_window();
70 ::e_status _unmap_window();
71
72 ::e_status _raise_window();
73
74 //void aaa_message_loop() override;
75
76 //virtual bool aaa_message_loop_step();
77
78 virtual void _draw(::nano::graphics::context * pnanodevice);
79
80 //virtual void on_draw(::nano::graphics::context * pnanodevice);
81
82 void on_char(::i32 iChar) override;
83
84 bool is_active() override;
85
86 void set_active() override;
87
89
90 void delete_drawing_objects() override;
91
92 bool get_dark_mode() override;
93
94 void create_drawing_objects() override;
95
96 void update_drawing_objects() override;
97
98 ::micro::child * hit_test(::user::mouse * pmouse, ::user::e_zorder ezorder) override;
99
100 //virtual void add_child(::micro::child * pchild);
101
102 ::atom get_result() override;
103
104 void on_mouse_move(::user::mouse * pmouse) override;
105
106 void on_left_button_down(::user::mouse * pmouse) override;
107
108 void on_left_button_up(::user::mouse * pmouse) override;
109
110 void on_right_button_down(::user::mouse * pmouse) override;
111
112 void on_right_button_up(::user::mouse * pmouse) override;
113
114 void on_click(const ::atom & atom, ::user::mouse * pmouse) override;
115
116 void on_right_click(const ::atom & atom, ::user::mouse * pmouse) override;
117
118 //virtual LRESULT window_procedure(UINT message, WPARAM wparam, LPARAM lparam);
119
120 void move_to(const ::i32_point & point) override;
121
122 void redraw() override;
123
124 void get_client_rectangle(::i32_rectangle & rectangle) override;
125
126 void get_window_rectangle(::i32_rectangle & rectangle) override;
127
128 void set_mouse_capture() override;
129
130 void release_mouse_capture() override;
131
132 virtual void _wm_nodecorations(::i32 iMap);
133
134 virtual void _get_geometry(xcb_get_geometry_reply_t * pgeometry);
135
136
137 //::i32_size get_main_screen_size() override;
138
139
140 };
141 }//namespace user
142 }//namespace nano
143
144
145} // namespace xcb
146
147
148
Definition display.h:19
Definition atom.h:237
Definition e_status.h:30
Definition aaa_manual_reset_event.h:26
Definition context.h:24
Definition event_listener.h:16
void delete_drawing_objects() override
virtual void draw_children(::nano::graphics::context * pnanodevice);
Definition window.cpp:160