acme
Foundational cross-platform layer of the ca2 framework
Toggle main menu visibility
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
13
namespace
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
acme::windowing::display
Definition
display.h:19
atom
Definition
atom.h:237
e_status
Definition
e_status.h:30
manual_reset_happening
Definition
aaa_manual_reset_event.h:26
nano::graphics::context
Definition
context.h:24
xcb::event_listener
Definition
event_listener.h:16
xcb::nano::user::window::delete_drawing_objects
void delete_drawing_objects() override
virtual void draw_children(::nano::graphics::context * pnanodevice);
Definition
window.cpp:160
operating_system
xcb
nano
user
window.h
Generated by
1.17.0