acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
solaris_simple_ui.h
1#pragma once
2
3
4#include "acme/operating_system/solaris/solaris_window_xlib.h"
5
6
7namespace os
8{
9
10
11 class CLASS_DECL_ACME simple_ui :
12 virtual public ::user::interaction
13 {
14 public:
15
16 HINSTANCE m_hinstance;
17 string m_strTitle;
18 string m_strWindowClass;
19
20 ::i32 m_w;
21 ::i32 m_h;
22/* ::image::image_pointer m_pimage;
23 ::i32_size m_size;
24 ::i32_point m_point;
25 window_xlib m_xlib;
26
27
28 oswindow m_window;
29 bool m_bShiftKey;
30 ::i32_rectangle m_rectangleDesktop;
31
32 XWindowAttributes m_attr;
33 ::i32 m_iDepth;
34 XVisualInfo m_visualinfo;
35 ::i32 m_iScreen;
36
37
38 window_graphics * m_pgraphics;
39
40
41 bool m_bComposite;
42
43 ::pointer< ::mutex > m_pmutexGraphics;
44 ::pointer< ::mutex > m_pmutexDisplay;
45
46 bool m_bRunLoop;
47
48 ::i32_rectangle m_rectangleWindow;
49
50 bool m_bNoDecorations;
51
52
53 simple_ui(::pointer<base_application>papp);
54
55 virtual ~simple_ui();
56
57 virtual bool create_window(const ::i32_rectangle * lprect);
58
59 virtual bool prepare_window(const ::i32_rectangle * lprect);
60
61
62 using ::user::interaction::client_to_screen;
63 virtual void client_to_screen(::i32_point * ppt);
64
65 using ::user::interaction::screen_to_client;
66 virtual void screen_to_client(::i32_point * ppt);
67
68 virtual void window_rectangle(::i32_rectangle * prectangle);
69 virtual void this->rectangle(::i32_rectangle * prectangle);
70
71
72 virtual bool show_window(bool bShow = true);
73
74 virtual bool destroy_window();
75
76
77 virtual bool on_key_down(::u32 uiKey);
78 virtual bool on_key_up(::u32 uiKey);
79
80
81 virtual bool on_move(::i32 x, ::i32 y);
82 virtual bool on_size(::i32 cx, ::i32 cy);
83
84
85 virtual void run_loop();
86
87
88 virtual void on_draw_framebuffer();
89
90 virtual void set_mouse_capture();
91 virtual void release_mouse_capture();
92
93 virtual bool move_window(::i32 x, ::i32 y);
94 virtual bool set_window_position(::i32 x, ::i32 y, ::i32 cx, ::i32 cy, bool bShow);
95
96 };
97
98
99
100
101} // namespace os
102
103
104
105CLASS_DECL_ACME void wm_nodecorations(oswindow w, ::i32 map_base);
106
107
108
109/* MWM decorations values */
110#define MWM_DECOR_NONE 0
111#define MWM_DECOR_ALL (1L << 0)
112#define MWM_DECOR_BORDER (1L << 1)
113#define MWM_DECOR_RESIZEH (1L << 2)
114#define MWM_DECOR_TITLE (1L << 3)
115#define MWM_DECOR_MENU (1L << 4)
116#define MWM_DECOR_MINIMIZE (1L << 5)
117#define MWM_DECOR_MAXIMIZE (1L << 6)
118
119/* KDE decoration values */
120enum
121{
122 KDE_noDecoration = 0,
123 KDE_normalDecoration = 1,
124 KDE_tinyDecoration = 2,
125 KDE_noFocus = 256,
126 KDE_standaloneMenuBar = 512,
127 KDE_desktopIcon = 1024,
128 KDE_staysOnTop = 2048
129};
Definition aaa_simple_ui.h:10