X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin3_src%2FWM%2Fipc.c;h=46aff215dd9287e7995fd75dff7bbe16cef66d94;hb=3ae2c079ea44ea7a8fb1a65e7b9ff5d76f3f4c24;hp=ffad8e5d87a3aded919fa40cd965a1c0b379d416;hpb=e20b7220513e6010d883ae76ca1cf2c8f0ec26af;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin3_src/WM/ipc.c b/Usermode/Applications/axwin3_src/WM/ipc.c index ffad8e5d..46aff215 100644 --- a/Usermode/Applications/axwin3_src/WM/ipc.c +++ b/Usermode/Applications/axwin3_src/WM/ipc.c @@ -331,9 +331,24 @@ int IPC_Msg_CreateWin(tIPC_Client *Client, tAxWin_IPCMessage *Msg) return 0; } +int IPC_Msg_SetWindowTitle(tIPC_Client *Client, tAxWin_IPCMessage *Msg) +{ + tWindow *win; + + if( Msg->Size < 1 ) return -1; + if( Msg->Data[ Msg->Size-1 ] != '\0' ) return -1; + + win = IPC_int_GetWindow(Client, Msg->Window); + if(!win) return 1; + + WM_SetWindowTitle(win, Msg->Data); + + return 0; +} + int IPC_Msg_ShowWindow(tIPC_Client *Client, tAxWin_IPCMessage *Msg) { - tIPCMsg_ShowWindow *info = (void*)Msg->Data; + tIPCMsg_Boolean *info = (void*)Msg->Data; tWindow *win; if( Msg->Size < sizeof(*info) ) return -1; @@ -341,8 +356,22 @@ int IPC_Msg_ShowWindow(tIPC_Client *Client, tAxWin_IPCMessage *Msg) win = IPC_int_GetWindow(Client, Msg->Window); if(!win) return 1; - WM_ShowWindow(win, !!info->bShow); + WM_ShowWindow(win, !!info->Value); + + return 0; +} + +int IPC_Msg_DecorateWindow(tIPC_Client *Client, tAxWin_IPCMessage *Msg) +{ + tIPCMsg_Boolean *info = (void*)Msg->Data; + tWindow *win; + if( Msg->Size < sizeof(*info) ) return -1; + + win = IPC_int_GetWindow(Client, Msg->Window); + if(!win) return 1; + + WM_DecorateWindow(win, !!info->Value); return 0; } @@ -474,6 +503,14 @@ void IPC_Handle(const tIPC_Type *IPCType, const void *Ident, size_t MsgLen, tAxW _SysDebug(" IPC_Handle: IPCMSG_CREATEWIN"); rv = IPC_Msg_CreateWin(client, Msg); break; + // TODO: Destroy window + + // --- Set window title + case IPCMSG_SETWINTITLE: + _SysDebug(" IPC_Handle: IPCMSG_SETWINTITLE"); + rv = IPC_Msg_SetWindowTitle(client, Msg); + break; + // --- Give a window focus case IPCMSG_FOCUSWINDOW: _SysDebug(" IPC_Handle: IPCMSG_FOCUSWINDOW"); @@ -484,6 +521,10 @@ void IPC_Handle(const tIPC_Type *IPCType, const void *Ident, size_t MsgLen, tAxW _SysDebug(" IPC_Handle: IPCMSG_SHOWWINDOW"); rv = IPC_Msg_ShowWindow(client, Msg); break; + case IPCMSG_DECORATEWINDOW: + _SysDebug(" IPC_Handle: IPCMSG_DECORATEWINDOW"); + rv = IPC_Msg_DecorateWindow(client, Msg); + break; // --- Move/Resize a window case IPCMSG_SETWINPOS: _SysDebug(" IPC_Handle: IPCMSG_SETWINPOS");