Usermode/libaxwin4 - Fix bad message ID for resize, bad return in window create
[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         
18         // Create window structure locally
19         tAxWin4_Window *ret = new tAxWin4_Window();
20         ret->m_id = 0;
21         // Request creation of window
22         CSerialiser     message;
23         message.WriteU8(IPCMSG_CREATEWIN);
24         message.WriteU16(ret->m_id);
25         message.WriteString(Name);
26         ::AxWin::SendMessage(message);
27         return ret;
28 }
29
30 extern "C" void AxWin4_ShowWindow(tAxWin4_Window *Window)
31 {
32         CSerialiser     message;
33         message.WriteU8(IPCMSG_SETWINATTR);
34         message.WriteU16(Window->m_id);
35         message.WriteU16(IPC_WINATTR_SHOW);
36         message.WriteU8(1);
37         ::AxWin::SendMessage(message);
38 }
39
40 extern "C" void AxWin4_MoveWindow(tAxWin4_Window *Window, int X, int Y)
41 {
42         CSerialiser     message;
43         message.WriteU8(IPCMSG_SETWINATTR);
44         message.WriteU16(Window->m_id);
45         message.WriteU16(IPC_WINATTR_POSITION);
46         message.WriteS16(X);
47         message.WriteS16(Y);
48         ::AxWin::SendMessage(message);
49 }
50 extern "C" void AxWin4_ResizeWindow(tAxWin4_Window *Window, unsigned int W, unsigned int H)
51 {
52         CSerialiser     message;
53         message.WriteU8(IPCMSG_SETWINATTR);
54         message.WriteU16(Window->m_id);
55         message.WriteU16(IPC_WINATTR_DIMENSIONS);
56         message.WriteU16(W);
57         message.WriteU16(H);
58         ::AxWin::SendMessage(message);
59 }
60
61 extern "C" void AxWin4_SetTitle(tAxWin4_Window *Window, const char *Title)
62 {
63         CSerialiser     message;
64         message.WriteU8(IPCMSG_SETWINATTR);
65         message.WriteU16(Window->m_id);
66         message.WriteU16(IPC_WINATTR_TITLE);
67         message.WriteString(Title);
68         ::AxWin::SendMessage(message);
69 }
70
71 extern "C" void *AxWin4_GetWindowBuffer(tAxWin4_Window *Window)
72 {
73         //if( !Window->m_buffer )
74         //{
75         //      // TODO: Support non-blocking operations        
76         //}
77         return NULL;
78 }
79
80 };      // namespace AxWin
81

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