CXFA_Node* CXFA_FFWidgetHandler::CreateWidgetFormItem(
    XFA_WIDGETTYPE eType,
    CXFA_Node* pParent,
    CXFA_Node* pBefore) const {
  switch (eType) {
    case XFA_WIDGETTYPE_Barcode:
      return NULL;
    case XFA_WIDGETTYPE_PushButton:
      return CreatePushButton(pParent, pBefore);
    case XFA_WIDGETTYPE_CheckButton:
      return CreateCheckButton(pParent, pBefore);
    case XFA_WIDGETTYPE_ExcludeGroup:
      return CreateExclGroup(pParent, pBefore);
    case XFA_WIDGETTYPE_RadioButton:
      return CreateRadioButton(pParent, pBefore);
    case XFA_WIDGETTYPE_Arc:
      return CreateArc(pParent, pBefore);
    case XFA_WIDGETTYPE_Rectangle:
      return CreateRectangle(pParent, pBefore);
    case XFA_WIDGETTYPE_Image:
      return CreateImage(pParent, pBefore);
    case XFA_WIDGETTYPE_Line:
      return CreateLine(pParent, pBefore);
    case XFA_WIDGETTYPE_Text:
      return CreateText(pParent, pBefore);
    case XFA_WIDGETTYPE_DatetimeEdit:
      return CreateDatetimeEdit(pParent, pBefore);
    case XFA_WIDGETTYPE_DecimalField:
      return CreateDecimalField(pParent, pBefore);
    case XFA_WIDGETTYPE_NumericField:
      return CreateNumericField(pParent, pBefore);
    case XFA_WIDGETTYPE_Signature:
      return CreateSignature(pParent, pBefore);
    case XFA_WIDGETTYPE_TextEdit:
      return CreateTextEdit(pParent, pBefore);
    case XFA_WIDGETTYPE_DropdownList:
      return CreateDropdownList(pParent, pBefore);
    case XFA_WIDGETTYPE_ListBox:
      return CreateListBox(pParent, pBefore);
    case XFA_WIDGETTYPE_ImageField:
      return CreateImageField(pParent, pBefore);
    case XFA_WIDGETTYPE_PasswordEdit:
      return CreatePasswordEdit(pParent, pBefore);
    case XFA_WIDGETTYPE_Subform:
      return CreateSubform(pParent, pBefore);
    default:
      break;
  }
  return NULL;
}
Example #2
0
void ActCB(Widget w, XtPointer closure, XtPointer call_data)
{
    register int n;
    Arg args[MAX_ARGS];

    if (PullDown7 == NULL)
    {
        printf("Activate Callback, add a menu\n");
        n = 0;
        PullDown7 = XmCreatePulldownMenu (MenuBar1, "pulldown7", args, n);
        Label7 = CreateLabel("Menu7", PullDown7);
        Separator7    = CreateSeparator(PullDown7, "Separator7");
        PushBtn7      = CreatePushButton("pushbutton7", 'p', PullDown7);

        n = 0;
        XtSetArg(args[n], XmNsubMenuId, PullDown7);
        n++;
        XtSetValues(w, args, n);
        XtManageChild(PullDown7);
    }
}
Example #3
0
void CascadeCB(Widget w, XtPointer closure, XtPointer call_data)
{
    register int n;
    Arg args[MAX_ARGS];

    if (PullDown6 == NULL)
    {
        printf("Cascading Callback, add a menu\n");
        n = 0;
        PullDown6 = XmCreatePulldownMenu (MenuBar1, "pulldown6", args, n);
        Label6 = CreateLabel("Menu6", PullDown6);
        Separator6    = CreateSeparator(PullDown6, "Separator6");
        PushBtn6      = CreatePushButton("pushbutton6", 'p', PullDown6);

        n = 0;
        XtSetArg(args[n], XmNsubMenuId, PullDown6);
        n++;
        XtSetValues(w, args, n);
        XtManageChild(PullDown6);
    }
}
Example #4
0
LRESULT
CALLBACK
WndProc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
    int i;
	switch ( msg )
	{
	case WM_CREATE:
		g_hwnd = hwnd;

        /* ---- Initial page ---- */

        for (i = 0 ; i < 14 ; i++)
            Buttons[i] = CreateCheckButton(StyleNames[i],150,500+i);

        xButPos += 160;
        yButPos = 10;

        for (; i < 19 ; i++)
            Buttons[i] = CreateCheckButton(StyleNames[i],140,500+i);

        Buttons[i++] = CreatePushButton("Width +",70,100,WS_VISIBLE);
        Buttons[i++] = CreatePushButton("Width -",70,101,WS_VISIBLE);

        Buttons[i++] = CreatePushButton("Heigth +",70,102,WS_VISIBLE);
        Buttons[i++] = CreatePushButton("Heigth -",70,103,WS_VISIBLE);

        Buttons[i++] = CreatePushButton("CreateWindowA",140,CREATEWINDOW,WS_VISIBLE);
        Buttons[i++] = CreatePushButton("CreateWindowExA",140,CREATEWINDOWEX,WS_VISIBLE);
        Buttons[i++] = CreatePushButton("CreateWindowExW",140,CREATEWINDOWW,WS_VISIBLE);


        /* ---- The 1st page of buttons ---- */

        xButPos = 0;
        yButPos = 10;

        for (i = 0 ; i < 14 ; i++)
            MessageButtons[i] = CreatePushButton(Msg[i].Text,170,600+i,0);

        xButPos += 180;
        yButPos = 10;

        for (; i < 26 ; i++)
            MessageButtons[i] = CreatePushButton(Msg[i].Text,170,600+i,0);

        Back1But = CreatePushButton("Back - destroys edit",170,400,0);
        NextBut = CreatePushButton("Next",170,401,0);

        /* ---- The 2nd page of buttons ------*/

        xButPos = 0;
        yButPos = 10;

        for (; i<40; i++)
            MessageButtons[i] = CreatePushButton(Msg[i].Text,170,600+i,0);

        xButPos += 180;
        yButPos = 10;

        for (; i < MAXMESSAGEBUTTONS ; i++)
            MessageButtons[i] = CreatePushButton(Msg[i].Text,170,600+i,0);

        Back2But = CreatePushButton("Back",170,402,0);

		break;

	case WM_COMMAND:
        if (LOWORD(wParam) >= 600)
            {
            Msg[LOWORD(wParam)-600].Handler(hwndEdit,
                        Msg[LOWORD(wParam)-600].MsgCode,
                        Msg[LOWORD(wParam)-600].wParam,
                        Msg[LOWORD(wParam)-600].lParam);
            break;
            }

        switch(LOWORD(wParam)){

        case 100:
            EditWidth += 10;
            break;

        case 101:
            EditWidth -= 10;
            break;

        case 102:
            EditHeight += 10;
            break;

        case 103:
            EditHeight -= 10;
            break;

        case 400:
            BackToInitialPage();
            break;

        case 401:
            ForwardToSecondPage();
            break;

        case 402:
            BackToFirstPage();
            break;

        case CREATEWINDOW:
                  UnicodeUsed = FALSE;
                  ReadNHide();
                  hwndEdit = CreateWindow("EDIT",
                               TestStr,
                               EditStyle | WS_CHILD | WS_VISIBLE,
                               350,
                               10,
                               EditWidth,
                               EditHeight,
                               g_hwnd,
                               NULL,
                               g_hInst,
                               NULL);
                  break;

        case CREATEWINDOWEX:
                  UnicodeUsed = FALSE;
                  ReadNHide();
                  hwndEdit = CreateWindowEx(WS_EX_CLIENTEDGE,
                               "EDIT",
                               TestStr,
                               EditStyle | WS_CHILD | WS_VISIBLE ,
                               350,
                               10,
                               EditWidth,
                               EditHeight,
                               g_hwnd,
                               NULL,
                               g_hInst,
                               NULL);
                  break;

        case CREATEWINDOWW:
                  UnicodeUsed = TRUE;
                  ReadNHide();
                  hwndEdit = CreateWindowExW(WS_EX_CLIENTEDGE,
                               L"EDIT",
                               TestStrW,
                               EditStyle | WS_CHILD | WS_VISIBLE ,
                               350,
                               10,
                               EditWidth,
                               EditHeight,
                               g_hwnd,
                               NULL,
                               g_hInst,
                               NULL);
                  break;
            }

	if (lParam == (LPARAM)hwndEdit)
		switch(HIWORD(wParam))
		{
		case EN_CHANGE:
                PrintTextXY("EN_CHANGE notification",NOTIFYX,NOTIFYY,22);
		break;

                case EN_ERRSPACE:
		PrintTextXY("EN_ERRSPACE notification",NOTIFYX,NOTIFYY,24);
		break;

		/* --- FIXME not defined in w32api-2.3 headers
		case H_SCROLL:
		PrintTextXY("H_SCROLL notification",NOTIFYX,NOTIFYY,21);
		break; */

		/* --- FIXME not defined in w32api-2.3 headers
		case KILL_FOCUS:
		PrintTextXY("KILL_FOCUS notification",NOTIFYX,NOTIFYY,23);
		break; */

		/* --- FIXME not defined in w32api-2.3 headers
		case EN_MAXTEST:
		PrintTextXY("EN_MAXTEXT notification",NOTIFYX,NOTIFYY,23);
		break; */

		case EN_SETFOCUS:
		PrintTextXY("EN_SETFOCUS notification",NOTIFYX,NOTIFYY,24);
		break;

		case EN_UPDATE:
		PrintTextXY("EN_UPDATE notification",NOTIFYX,NOTIFYY + 20,22);
		break;

		case EN_VSCROLL:
		PrintTextXY("EN_VSCROLL notification",NOTIFYX,NOTIFYY,23);
		break;

		}

	break;

    case WM_SIZE :
        return 0;

    case WM_CLOSE:
	DestroyWindow (g_hwnd);
	return 0;

    case WM_QUERYENDSESSION:
	return 0;

    case WM_DESTROY:
	PostQuitMessage(0);
	return 0;
     }
     return DefWindowProc ( hwnd, msg, wParam, lParam );
}
Example #5
0
LRESULT
CALLBACK
WndProc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
    {
    int i;
    switch ( msg )
        {
        case WM_CREATE:
            g_hwnd = hwnd;

            /* ---- Initial page ---- */

            for (i = 0 ; i < 14 ; i++)
                Buttons[i] = CreateCheckButton(Styles[i].Name,CHECKBUTWIDTH,500+i);

            xButPos += CHECKBUTWIDTH + 10;
            yButPos = 10;

            for (; i < NUMBERCHECKS ; i++)
                Buttons[i] = CreateCheckButton(Styles[i].Name,CHECKBUTWIDTH,500+i);

            Buttons[i++] = CreatePushButton("Width +",70,100,WS_VISIBLE);
            Buttons[i++] = CreatePushButton("Width -",70,101,WS_VISIBLE);

            Buttons[i++] = CreatePushButton("Heigth +",70,102,WS_VISIBLE);
            Buttons[i++] = CreatePushButton("Heigth -",70,103,WS_VISIBLE);

            Buttons[i++] = CreatePushButton("CreateWindowA",CHECKBUTWIDTH,CREATEWINDOW_ID,WS_VISIBLE);
            Buttons[i++] = CreatePushButton("CreateWindowExA",CHECKBUTWIDTH,CREATEWINDOWEX_ID,WS_VISIBLE);
            Buttons[i++] = CreatePushButton("CreateWindowExW",CHECKBUTWIDTH,CREATEWINDOWW_ID,WS_VISIBLE);


            /* ---- The 1st page of buttons ---- */

            xButPos = 0;
            yButPos = 10;

            for (i = 0 ; i < 14 ; i++)
                MessageButtons[i] = CreatePushButton(Msg[i].Text,CHECKBUTWIDTH,600+i,0);

            xButPos += CHECKBUTWIDTH + 10;
            yButPos = 10;

            for (; i < 26 ; i++)
                MessageButtons[i] = CreatePushButton(Msg[i].Text,CHECKBUTWIDTH,600+i,0);

            Back1But = CreatePushButton("Back - destroys ComboBox",CHECKBUTWIDTH,INITPAGE_ID,0);
            NextBut = CreatePushButton("Next",CHECKBUTWIDTH,SECONDPAGE_ID,0);

            /* ---- The 2nd page of buttons ------*/

            xButPos = 0;
            yButPos = 10;

            for (; i<40; i++)
                MessageButtons[i] = CreatePushButton(Msg[i].Text,CHECKBUTWIDTH,600+i,0);

            xButPos += CHECKBUTWIDTH + 10;
            yButPos = 10;

            for (; i < MAXMESSAGEBUTTONS ; i++)
                MessageButtons[i] = CreatePushButton(Msg[i].Text,CHECKBUTWIDTH,600+i,0);

            Back2But = CreatePushButton("Back",CHECKBUTWIDTH,BACKFIRSTPAGE_ID,0);

            break;

        case WM_COMMAND:
            if (LOWORD(wParam) >= 600)
                {
                Msg[LOWORD(wParam)-600].Handler(hwndEdit,
                    Msg[LOWORD(wParam)-600].MsgCode,
                    Msg[LOWORD(wParam)-600].wParam,
                    Msg[LOWORD(wParam)-600].lParam);
                break;
                }

            switch(LOWORD(wParam)){

        case 100:
            ControlWidth += 10;
            break;

        case 101:
            ControlWidth -= 10;
            break;

        case 102:
            ControlHeight += 10;
            break;

        case 103:
            ControlHeight -= 10;
            break;

        case INITPAGE_ID:
            BackToInitialPage();
            break;

        case SECONDPAGE_ID:
            ForwardToSecondPage();
            break;

        case BACKFIRSTPAGE_ID:
            BackToFirstPage();
            break;

        case CREATEWINDOW_ID:
            ReadNHide();
            srect.top = CONTROLPOSY + ControlHeight;
            hwndEdit = CreateWindow(CONTROLCLASS,
                NULL,
                ComboStyle | WS_CHILD | WS_VISIBLE,
                CONTROLPOSX,
                CONTROLPOSY,
                ControlWidth,
                ControlHeight,
                g_hwnd,
                NULL,
                g_hInst,
                NULL);
            break;

        case CREATEWINDOWEX_ID:
            ReadNHide();
            srect.top = CONTROLPOSY + ControlHeight;
            hwndEdit = CreateWindowEx(WS_EX_CLIENTEDGE,
                CONTROLCLASS,
                NULL,
                ComboStyle | WS_CHILD | WS_VISIBLE ,
                CONTROLPOSX,
                CONTROLPOSY,
                ControlWidth,
                ControlHeight,
                g_hwnd,
                NULL,
                g_hInst,
                NULL);
            break;

        case CREATEWINDOWW_ID:
            ReadNHide();
            srect.top = CONTROLPOSY + ControlHeight;
            hwndEdit = CreateWindowExW(WS_EX_CLIENTEDGE,
                CONTROLCLASSW,
                NULL,
                ComboStyle | WS_CHILD | WS_VISIBLE ,
                CONTROLPOSX,
                CONTROLPOSY,
                ControlWidth,
                ControlHeight,
                g_hwnd,
                NULL,
                g_hInst,
                NULL);
            break;
                }

        if (lParam == (LPARAM)hwndEdit)
            switch(HIWORD(wParam))
            {
                case CBN_DROPDOWN:
                    ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
                    PrintTextXY("CBN_DROPDOWN notification",NOTIFYX,NOTIFYY,25,srect);
                    break;

                case CBN_CLOSEUP:
                    ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
                    PrintTextXY("CBN_CLOSEUP notification",NOTIFYX,NOTIFYY,24,srect);
                    break;

                case CBN_DBLCLK:
                    ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
                    PrintTextXY("CBN_DBLCLK notification",NOTIFYX,NOTIFYY,23,srect);
                    break;

                case CBN_EDITCHANGE:
                    ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
                    PrintTextXY("CBN_EDITCHANGE notification",NOTIFYX,NOTIFYY,27,srect);
                    break;

                case (WORD)CBN_ERRSPACE:
                    ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
                    PrintTextXY("CBN_ERRSPACE notification",NOTIFYX,NOTIFYY,25,srect);
                    break;

                case CBN_KILLFOCUS:
                    ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
                    PrintTextXY("CBN_KILLFOCUS notification",NOTIFYX,NOTIFYY,26,srect);
                    break;

                case CBN_EDITUPDATE:
                    ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
                    PrintTextXY("CBN_EDITUPDATE notification",NOTIFYX,NOTIFYY,27,srect);
                    break;

                case CBN_SELCHANGE:
                    ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
                    PrintTextXY("CBN_SELCHANGE notification",NOTIFYX,NOTIFYY,26,srect);
                    break;

                case CBN_SELENDCANCEL:
                    ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
                    PrintTextXY("CBN_SELENDCANCEL notification",NOTIFYX,NOTIFYY,29,srect);
                    break;

                case CBN_SETFOCUS:
                    ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
                    PrintTextXY("CBN_SETFOCUS notification",NOTIFYX,NOTIFYY,25,srect);
                    break;

                case CBN_SELENDOK:
                    ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
                    PrintTextXY("CBN_SELENDOK notification",NOTIFYX,NOTIFYY,25,srect);
                    break;
            }

        return DefWindowProc ( hwnd, msg, wParam, lParam );

        case WM_MEASUREITEM:
            ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
            PrintTextXY("WM_MEASUREITEM called",NOTIFYX,NOTIFYY,21,srect);
            break;

        case WM_COMPAREITEM:
            ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
            PrintTextXY("WM_COMPAREITEM called",NOTIFYX,NOTIFYY,21,srect);
            break;

        case WM_DRAWITEM:
            ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
            PrintTextXY("WM_DRAWITEM called",NOTIFYX,NOTIFYY,18,srect);
            break;

        case WM_SIZE :
            return 0;

        case WM_CLOSE:
            DestroyWindow (g_hwnd);
            return 0;

        case WM_QUERYENDSESSION:
            return 0;

        case WM_DESTROY:
            PostQuitMessage(0);
            return 0;
        }
    return DefWindowProc ( hwnd, msg, wParam, lParam );
    }
Example #6
0
int main(int argc, char **argv)
{
    register int  n;
    Arg args[MAX_ARGS];
    XmString tcs;
    void PostPopup();
    void ButtonCB();

    CommonTestInit(argc, argv);
    
    n = 0;
    XtSetArg(args[n], XmNwidth,  200);  n++;
    XtSetArg(args[n], XmNheight, 40);   n++;
    XtSetValues(Shell1, args, n);

    XtRealizeWidget(Shell1);

    Label = CreateLabel("Press MB3 to dismiss PopupMenu", Shell1);

    /*
    **  PopupMenu1
    */

    n = 0;
    XtSetArg(args[n], XmNx,  100);  n++;
    XtSetArg(args[n], XmNy, 100);   n++;
    XtSetArg(args[n], XmNmenuAccelerator, NULL); n++;
    PopupMenu1 = XmCreatePopupMenu(Label, "popupMenu", args, n);

    /*
    **  Menu1
    */

    Label1 = CreateLabel("Menu1", PopupMenu1);
    Separator1 = CreateSeparator(PopupMenu1, "Separator1");
    PushBtn1 = CreatePushButton("PushButton1", PopupMenu1);
    ToggleBtn1 = CreateToggle("Toggle1", PopupMenu1);
    XtManageChild(PopupMenu1);

    CommonPause();
    XtDestroyWidget(PopupMenu1);
    
    n =0;
    XtSetArg(args[n], XmNrowColumnType, XmMENU_POPUP); n++;
    PopupMenu2 = XmCreateRowColumn(Shell1, "popupMenu2", args, n);

    /*
    **  Menu2
    */

    Label2 = CreateLabel("Menu2", PopupMenu2);
    Separator2 = CreateSeparator(PopupMenu2, "Separator2");
    PushBtn2 = CreatePushButton("PushButton2", PopupMenu2);
    ToggleBtn2 = CreateToggle("Toggle2", PopupMenu2);
    XtManageChild(PopupMenu2);

    CommonPause();

    XtDestroyWidget(Label);
    XtDestroyWidget(PopupMenu2);

    /*
     *  Test 3 for PIR 2669
     */

    n = 0;
    testingArea = XmCreateBulletinBoard(Shell1, "PushButtonHere", args, n);

    n = 0;
    XtSetArg(args[n], XmNx, 10); n++;
    XtSetArg(args[n], XmNy, 30); n++;
    MainButton = XmCreatePushButton(testingArea, "button0", args, n);
    XtAddCallback(MainButton, XmNactivateCallback, ButtonCB, (XtPointer) 0); 
    XtManageChild(MainButton);

    popup = XmCreatePopupMenu(testingArea, "Popups", NULL, 0);
    XtAddEventHandler(testingArea, ButtonPressMask, FALSE, PostPopup, popup);
    
    XmAddToPostFromList(popup, MainButton);
    
    push = XmCreatePushButton(popup, "button1", NULL, 0);
    XtAddCallback(push, XmNactivateCallback, ButtonCB, (XtPointer) 1);
    XtManageChild(push);

    push = XmCreatePushButton(popup, "button2", NULL, 0);
    XtAddCallback(push, XmNactivateCallback, ButtonCB, (XtPointer) 2);
    XtManageChild(push);

    push = XmCreatePushButton(popup, "button3", NULL, 0);
    XtAddCallback(push, XmNactivateCallback, ButtonCB, (XtPointer) 3);
    XtManageChild(push);
    
    XtManageChild(testingArea);
    
    CommonPause();

    XtDestroyWidget(testingArea);

    CommonPause();

    XtAppMainLoop(app_context);
}