#include <axwin3/richtext.h>
#include "include/internal.h"
#include <richtext_messages.h>
+#include <string.h>
+//#include <alloca.h>
// === TYPES ===
typedef struct sRichText_Window
{
tAxWin3_RichText_KeyHandler KeyCallback;
tAxWin3_RichText_MouseHandler MouseCallback;
-// tAxWin3_RichText_LineHandler LineHandler;
+ tAxWin3_RichText_LineHandler LineHandler;
} tRichText_Window;
// === CODE ===
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)
return ;
_SendAttrib(Window, _ATTR_CURSORPOS, ((Row & 0xFFFFF) << 12) | (Column & 0xFFF));
}
+
+void AxWin3_RichText_SendLine(tHWND Window, int Line, const char *Text)
+{
+ // TODO: Local sanity check on `Line`?
+ 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_SendIPC(Window, IPC_RICHTEXT_WRITELINE, len, msg);
+}
+