* AxWin3 Interface Library
* - By John Hodge (thePowersGang)
*
- * main.c
- * - Entrypoint and setup
+ * r_widget.c
+ * - Widget window type interface
*/
#include <axwin3/axwin.h>
#include <axwin3/widget.h>
}
if( newID == info->nElements )
{
- info->nElements ++;
+ const int size_step = 4;
+ info->nElements += 4;
info->Elements = realloc(info->Elements, sizeof(*info->Elements)*info->nElements);
- newID = info->nElements - 1;
- _SysDebug("Expanded and allocated %i", newID);
+ newID = info->nElements - 4;
+ memset( &info->Elements[newID+1], 0, (size_step-1)*sizeof(info->Elements));
+ _SysDebug("Expanded to %i and allocated %i", info->nElements, newID);
}
else
_SysDebug("Allocated %i", newID);
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;
+ size_t retmsg_size;
+
+ msg->WidgetID = Widget->ID;
+
+ AxWin3_SendMessage(Widget->Window, Widget->Window, MSG_WIDGET_GETTEXT, sizeof(buf), buf);
+
+ msg = AxWin3_WaitMessage(Widget->Window, MSG_WIDGET_GETTEXT, &retmsg_size);
+ if( retmsg_size < sizeof(*msg) ) {
+ free(msg);
+ return NULL;
+ }
+
+ char *ret = strndup(msg->Text, retmsg_size - sizeof(*msg));
+ free(msg);
+ return ret;
+}
+
void AxWin3_Widget_SetColour(tAxWin3_Widget *Widget, int Index, tAxWin3_Colour Colour)
{
tWidgetMsg_SetColour msg;