X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin3_src%2Flibaxwin3.so_src%2Fr_widget.c;h=875f14b87c9985bc18f4ab02e9aa4be9cfe7d337;hb=45444b9d268e6fbc9d5cf813e0b421536d86d508;hp=43eef70dacdc1585dea37b01a81486a2b95c3af5;hpb=d2e9501431148e85345cefe6315f0eace0dfd777;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin3_src/libaxwin3.so_src/r_widget.c b/Usermode/Applications/axwin3_src/libaxwin3.so_src/r_widget.c index 43eef70d..875f14b8 100644 --- a/Usermode/Applications/axwin3_src/libaxwin3.so_src/r_widget.c +++ b/Usermode/Applications/axwin3_src/libaxwin3.so_src/r_widget.c @@ -2,12 +2,13 @@ * AxWin3 Interface Library * - By John Hodge (thePowersGang) * - * main.c - * - Entrypoint and setup + * r_widget.c + * - Widget window type interface */ #include #include #include "include/internal.h" +#include "include/ipc.h" #include #include #include @@ -227,6 +228,30 @@ void AxWin3_Widget_SetText(tAxWin3_Widget *Widget, const char *Text) AxWin3_SendMessage(Widget->Window, Widget->Window, MSG_WIDGET_SETTEXT, sizeof(buf), buf); } +char *AxWin3_Widget_GetText(tAxWin3_Widget *Widget) +{ + char buf[sizeof(tWidgetMsg_SetText)]; + tWidgetMsg_SetText *msg = (void*)buf; + tAxWin_IPCMessage *retmsg; + char *ret; + + msg->WidgetID = Widget->ID; + + AxWin3_SendMessage(Widget->Window, Widget->Window, MSG_WIDGET_GETTEXT, sizeof(buf), buf); + + retmsg = AxWin3_int_WaitIPCMessage(MSG_WIDGET_GETTEXT); + msg = (void*)retmsg->Data; + + if( retmsg->Size < sizeof(*msg) ) { + free(retmsg); + return NULL; + } + + ret = strndup(msg->Text, retmsg->Size - sizeof(*msg)); + free(retmsg); + return ret; +} + void AxWin3_Widget_SetColour(tAxWin3_Widget *Widget, int Index, tAxWin3_Colour Colour) { tWidgetMsg_SetColour msg;