X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin3_src%2Flibaxwin3.so_src%2Fr_richtext.c;h=9fed54494b1b2d29750905155dc60a527cdff6d1;hb=e5a96c076b5e20b649a804ad4249ac1137b0e28a;hp=b1620dd2d8db189fcce2babb08c29bf647adf8e9;hpb=1b9e758fbf856934974e847c3d5b348d237a0001;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin3_src/libaxwin3.so_src/r_richtext.c b/Usermode/Applications/axwin3_src/libaxwin3.so_src/r_richtext.c index b1620dd2..9fed5449 100644 --- a/Usermode/Applications/axwin3_src/libaxwin3.so_src/r_richtext.c +++ b/Usermode/Applications/axwin3_src/libaxwin3.so_src/r_richtext.c @@ -10,6 +10,7 @@ #include "include/internal.h" #include #include +#include //#include // === TYPES === @@ -23,15 +24,25 @@ typedef struct sRichText_Window // === CODE === int AxWin3_RichText_MessageHandler(tHWND Window, int MessageID, int Size, void *Data) { + tRichText_Window *info = AxWin3_int_GetDataPtr(Window); + struct sWndMsg_KeyAction *keyaction = Data; + _SysDebug("MessageID = %i", MessageID); + switch(MessageID) + { + case WNDMSG_KEYFIRE: + if(Size < sizeof(*keyaction)) return -1; + info->KeyCallback(Window, 2, keyaction->KeySym, keyaction->UCS32); + return 1; + } return 0; } static void _SendAttrib(tHWND Window, int Attr, uint32_t Value) { - struct sRichTextMsg_SetAttr msg; + struct sRichTextIPC_SetAttr msg; msg.Attr = Attr; msg.Value = Value; - AxWin3_SendMessage(Window, Window, MSG_RICHTEXT_SETATTR, sizeof(msg), &msg); + AxWin3_SendIPC(Window, IPC_RICHTEXT_SETATTR, sizeof(msg), &msg); } tHWND AxWin3_RichText_CreateWindow(tHWND Parent, int Flags) @@ -95,12 +106,12 @@ void AxWin3_RichText_SetCursorPos(tHWND Window, int Row, int Column) void AxWin3_RichText_SendLine(tHWND Window, int Line, const char *Text) { // TODO: Local sanity check on `Line`? - struct sRichTextMsg_SendLine *msg; + struct sRichTextIPC_WriteLine *msg; size_t len = sizeof(*msg) + strlen(Text) + 1; char buffer[len]; msg = (void*)buffer; msg->Line = Line; strcpy(msg->LineData, Text); - AxWin3_SendMessage(Window, Window, MSG_RICHTEXT_SENDLINE, len, msg); + AxWin3_SendIPC(Window, IPC_RICHTEXT_WRITELINE, len, msg); }