Usermode/libaxwin4 - Implementation and debug
[tpg/acess2.git] / Usermode / Libraries / libaxwin4.so_src / wm.cpp
1 /*
2  * AxWin4 Interface Library
3  * - By John Hodge (thePowersGang)
4  *
5  * wm.cpp
6  * - Window Management
7  */
8 #include <axwin4/axwin.h>
9 #include "include/common.hpp"
10 #include <ipc_proto.hpp>
11
12 namespace AxWin {
13
14 extern "C" tAxWin4_Window *AxWin4_CreateWindow(const char *Name)
15 {
16         // Allocate a window ID
17         // Create window structure locally
18         // Request creation of window
19         CSerialiser     message;
20         message.WriteU8(IPCMSG_CREATEWIN);
21         message.WriteU16(0);
22         message.WriteString(Name);
23         ::AxWin::SendMessage(message);
24 }
25
26 extern "C" void AxWin4_ShowWindow(tAxWin4_Window *Window)
27 {
28         CSerialiser     message;
29         message.WriteU8(IPCMSG_SETWINATTR);
30         message.WriteU16(Window->m_id);
31         message.WriteU16(IPC_WINATTR_SHOW);
32         message.WriteU8(1);
33         ::AxWin::SendMessage(message);
34 }
35
36 extern "C" void AxWin4_MoveWindow(tAxWin4_Window *Window, int X, int Y)
37 {
38         CSerialiser     message;
39         message.WriteU8(IPCMSG_SETWINATTR);
40         message.WriteU16(Window->m_id);
41         message.WriteU16(IPC_WINATTR_POSITION);
42         message.WriteS16(X);
43         message.WriteS16(Y);
44         ::AxWin::SendMessage(message);
45 }
46 extern "C" void AxWin4_ResizeWindow(tAxWin4_Window *Window, unsigned int W, unsigned int H)
47 {
48         CSerialiser     message;
49         message.WriteU8(IPCMSG_SETWINATTR);
50         message.WriteU16(Window->m_id);
51         message.WriteU16(IPC_WINATTR_POSITION);
52         message.WriteU16(W);
53         message.WriteU16(H);
54         ::AxWin::SendMessage(message);
55 }
56
57 extern "C" void AxWin4_SetTitle(tAxWin4_Window *Window, const char *Title)
58 {
59         CSerialiser     message;
60         message.WriteU8(IPCMSG_SETWINATTR);
61         message.WriteU16(Window->m_id);
62         message.WriteU16(IPC_WINATTR_TITLE);
63         message.WriteString(Title);
64         ::AxWin::SendMessage(message);
65 }
66
67 extern "C" void *AxWin4_GetWindowBuffer(tAxWin4_Window *Window)
68 {
69         //if( !Window->m_buffer )
70         //{
71         //      // TODO: Support non-blocking operations        
72         //}
73         return NULL;
74 }
75
76 };      // namespace AxWin
77

UCC git Repository :: git.ucc.asn.au