acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
aaa_user.h
1//
2// os_windowing.h
3// acme
4//
5// Created by Camilo Sasuke Thomas Borregaard Soerensen on 10/12/17.
6//
7#pragma once
8
9
10#ifndef WINDOWS
11
12
13/*
14* ::user::e_message_size message wParam values
15*/
16#define SIZE_RESTORED 0
17#define SIZE_MINIMIZED 1
18#define SIZE_MAXIMIZED 2
19#define SIZE_MAXSHOW 3
20#define SIZE_MAXHIDE 4
21
22
23/*
24* Identifiers for the ::user::e_message_show_window message
25*/
26#define SW_PARENTCLOSING 1
27#define SW_OTHERZOOM 2
28#define SW_PARENTOPENING 3
29
30
31#define GWL_STYLE (-16)
32#define GWL_EXSTYLE (-20)
33
34
35#define MK_LBUTTON 0x0001
36#define MK_RBUTTON 0x0002
37#define MK_SHIFT 0x0004
38#define MK_CONTROL 0x0008
39#define MK_MBUTTON 0x0010
40
41#define MK_XBUTTON1 0x0020
42#define MK_XBUTTON2 0x0040
43
44
45#define WS_CHILD 0x40000000L
46#define WS_VISIBLE 0x10000000L
47#define WS_EX_LAYERED 0x00080000
48
49
50#define WHEEL_DELTA 120
51
52
53/*
54* set_window_position Flags
55*/
56#define SWP_NOSIZE 0x0001
57#define SWP_NOMOVE 0x0002
58#define SWP_NOZORDER 0x0004
59#define SWP_NOREDRAW 0x0008
60#define SWP_NOACTIVATE 0x0010
61#define SWP_FRAMECHANGED 0x0020 /* The frame changed: send ::user::e_message_non_client_calcsize */
62#define SWP_SHOWWINDOW 0x0040
63#define SWP_HIDEWINDOW 0x0080
64#define SWP_NOCOPYBITS 0x0100
65#define SWP_NOOWNERZORDER 0x0200 /* Don't do owner Z ordering */
66#define SWP_NOSENDCHANGING 0x0400 /* Don't send ::user::e_message_window_position_changing */
67
68#define SWP_DRAWFRAME SWP_FRAMECHANGED
69#define SWP_NOREPOSITION SWP_NOOWNERZORDER
70
71//#if(WINVER >= 0x0400)
72#define SWP_DEFERERASE 0x2000
73#define SWP_ASYNCWINDOWPOS 0x4000
74//#endif /* WINVER >= 0x0400 */
75
76
77
78
79
80/*
81* set_window_position Flags
82*/
83#define SWP_NOSIZE 0x0001
84#define SWP_NOMOVE 0x0002
85#define SWP_NOZORDER 0x0004
86#define SWP_NOREDRAW 0x0008
87#define SWP_NOACTIVATE 0x0010
88#define SWP_FRAMECHANGED 0x0020 /* The frame changed: send ::user::e_message_non_client_calcsize */
89#define SWP_SHOWWINDOW 0x0040
90#define SWP_HIDEWINDOW 0x0080
91#define SWP_NOCOPYBITS 0x0100
92#define SWP_NOOWNERZORDER 0x0200 /* Don't do owner Z ordering */
93#define SWP_NOSENDCHANGING 0x0400 /* Don't send ::user::e_message_window_position_changing */
94
95#define SWP_DRAWFRAME SWP_FRAMECHANGED
96#define SWP_NOREPOSITION SWP_NOOWNERZORDER
97#define SWP_DEFERERASE 0x2000
98#define SWP_ASYNCWINDOWPOS 0x4000
99
100
101#endif
102
103
105{
106
107 ::i32_rectangle rectangle; // parent client rectangle (trim as appropriate)
108 ::i32_size sizeTotal; // total size on each side as on_layout proceeds
109 bool bStretch; // should stretch to fill all space
110
111};
112
113
114//CLASS_DECL_ACME ::i64 oswindow_id(oswindow w);
115
116
117//CLASS_DECL_ACME i32_bool is_window(::acme::windowing::window * pacmewindowingwindow);
118//CLASS_DECL_ACME oswindow get_focus();
119//CLASS_DECL_ACME oswindow set_focus(::acme::windowing::window * pacmewindowingwindow);
120//CLASS_DECL_ACME oswindow get_active_window();
121//CLASS_DECL_ACME oswindow set_active_window(::acme::windowing::window * pacmewindowingwindow);
122//CLASS_DECL_ACME oswindow get_capture();
123//CLASS_DECL_ACME oswindow set_capture(::acme::windowing::window * pacmewindowingwindow);
124//CLASS_DECL_ACME i32_bool release_capture();
125//CLASS_DECL_ACME i32_bool destroy_window(::acme::windowing::window * pacmewindowingwindow);
126//CLASS_DECL_ACME oswindow get_window(::acme::windowing::window * pacmewindowingwindow, ::i32 iWindow);
127//CLASS_DECL_ACME oswindow get_desktop_window();
128//CLASS_DECL_ACME i32_bool show_window(::acme::windowing::window * pacmewindowingwindow, ::i32 iShow);
129//CLASS_DECL_ACME i32_bool set_foreground_window(::acme::windowing::window * pacmewindowingwindow);
130//
131//
132//#ifdef WINDOWS_DESKTOP
133//CLASS_DECL_ACME bool get_gui_thread_info(PGUITHREADINFO pinfo);
134//#endif
135//
136//
137//
Definition aaa_user.h:105