#include <Xm/Xm.h>
#include <Xm/Form.h>
#include <Xm/Text.h>
#include <Xm/PushB.h>
#include <Xm/Label.h>
#include <stdlib.h>
#include <string.h>


void ButtonCB(Widget w, XtPointer client_data,
       XmPushButtonCallbackStruct *cbs)
{
   printf("Don't push me!\n");
}


int main(int argc, char **argv)
{
   Widget top, form, button1, button2;
   XmString label1, label2, tmp1, tmp2;
   XtAppContext app;
   Arg args[20];
   int n;
   char mbs[256];
   wchar_t *wcs;
   int len;

   XtSetLanguageProc(NULL, NULL, NULL);

   top = XtVaAppInitialize(&app, "RendTest", NULL, 0,
           &argc, argv, NULL, NULL);

   form = XtVaCreateManagedWidget("form",
           xmFormWidgetClass, top,
           XmNmarginWidth, 2,
           XmNmarginHeight, 2,
           NULL);

   label1 = XmStringGenerate("Render 1", NULL, XmCHARSET_TEXT,
           "susan");

   tmp1 = XmStringComponentCreate(XmSTRING_COMPONENT_RENDITION_BEGIN,
           sizeof("rendition"), "fred");
   tmp2 = XmStringComponentCreate(XmSTRING_COMPONENT_RENDITION_END,
           sizeof("rendition"), "fred");

   label1 = XmStringConcat(tmp1, label1);
   label1 = XmStringConcat(label1, tmp2);
   XmStringFree(tmp1);
   XmStringFree(tmp2);

   label2 = XmStringGenerate("Render 2", NULL, XmCHARSET_TEXT,
           "rendition2");

   button1 = XtVaCreateManagedWidget("button",
           xmPushButtonWidgetClass, form,
           XmNleftAttachment, XmATTACH_FORM,
           XmNleftOffset, 10,
           XmNtopAttachment, XmATTACH_FORM,
           XmNtopOffset, 8,
           XmNbottomAttachment, XmATTACH_FORM,
           XmNbottomOffset, 8,
           XmNlabelString, label1,
           NULL);

   button2 = XtVaCreateManagedWidget("button",
           xmPushButtonWidgetClass, form,
           XmNleftAttachment, XmATTACH_WIDGET,
           XmNleftWidget, button1,
           XmNleftOffset, 10,
           XmNrightAttachment, XmATTACH_FORM,
           XmNrightOffset, 10,
           XmNtopAttachment, XmATTACH_FORM,
           XmNtopOffset, 8,
           XmNbottomAttachment, XmATTACH_FORM,
           XmNbottomOffset, 8,
           XmNlabelString, label2,
           NULL);

   XtAddCallback(button2, XmNactivateCallback,
           (XtCallbackProc)ButtonCB, (XtPointer)NULL);

   XtRealizeWidget(top);
   XtAppMainLoop(app);
}