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=06b7785db75c00e02705977d77685972831d070e;hp=17dd16e9ec68f9e9675b1411bba3160abbc4ae1a;hpb=637cd82c20678638c93d7ee0b8ce81a597e8f8d2;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 17dd16e9..875f14b8 100644 --- a/Usermode/Applications/axwin3_src/libaxwin3.so_src/r_widget.c +++ b/Usermode/Applications/axwin3_src/libaxwin3.so_src/r_widget.c @@ -8,6 +8,7 @@ #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;