void RGISToolsConvertToPointCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { char *nText, *xText, *yText, *selection; int allowOk; static int convert; DBDataset *dataset = UIDataset (); DBObjData *dbData = dataset->Data (); DBObjTable *itemTable; static Widget tableSelect = (Widget) NULL; static Widget dShell = (Widget) NULL, mainForm; static Widget nameTextF, xCoordTextF, yCoordTextF; XmString string; if (tableSelect == (Widget) NULL) tableSelect = UISelectionCreate ((char *) "Table Selection"); selection = UISelectObject (tableSelect,(DBObjectLIST<DBObject> *) dbData->Tables ()); if (selection == (char *) NULL) return; if ((itemTable = dbData->Table (selection)) == (DBObjTable *) NULL) { CMmsgPrint (CMmsgAppError, "Invalid Table in: %s %d",__FILE__,__LINE__); return; } _RGISToolsConvertToPointFields = itemTable->Fields (); if (dShell == (Widget) NULL) { Widget button; dShell = UIDialogForm ((char *) "Convert Table To Point",false); mainForm = UIDialogFormGetMainForm (dShell); string = XmStringCreate ((char *) "Select",UICharSetBold); button = XtVaCreateManagedWidget ("RGISToolsConvertToPointNameButton",xmPushButtonWidgetClass,mainForm, XmNtopAttachment, XmATTACH_FORM, XmNtopOffset, 10, XmNrightAttachment, XmATTACH_FORM, XmNrightOffset, 10, XmNmarginHeight, 5, XmNtraversalOn, False, XmNlabelString, string, XmNuserData, DBTableFieldIsString, NULL); XmStringFree (string); nameTextF = XtVaCreateManagedWidget ("RGISToolsConvertToPointNameTextF",xmTextFieldWidgetClass,mainForm, XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET, XmNtopWidget, button, XmNrightAttachment, XmATTACH_WIDGET, XmNrightWidget, button, XmNrightOffset, 10, XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET, XmNbottomWidget, button, XmNmaxLength, DBStringLength, XmNcolumns, DBStringLength / 2, NULL); XtAddCallback (button,XmNactivateCallback,(XtCallbackProc) _RGISToolsConvertToPointSelectCBK,nameTextF); string = XmStringCreate ((char *) "Name Field:",UICharSetBold); XtVaCreateManagedWidget ("RGISToolsConvertToPointNameLabel",xmLabelWidgetClass,mainForm, XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET, XmNtopWidget, button, XmNleftAttachment, XmATTACH_FORM, XmNleftOffset, 10, XmNrightAttachment, XmATTACH_WIDGET, XmNrightWidget, nameTextF, XmNrightOffset, 10, XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET, XmNbottomWidget, button, XmNlabelString, string, NULL); XmStringFree (string); string = XmStringCreate ((char *) "Select",UICharSetBold); button = XtVaCreateManagedWidget ("RGISToolsConvertToPointXCoordButton",xmPushButtonWidgetClass,mainForm, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, button, XmNtopOffset, 10, XmNrightAttachment, XmATTACH_FORM, XmNrightOffset, 10, XmNmarginHeight, 5, XmNtraversalOn, False, XmNlabelString, string, XmNuserData, DBTableFieldIsNumeric, NULL); XmStringFree (string); xCoordTextF = XtVaCreateManagedWidget ("RGISToolsConvertToPointXCoordTextF",xmTextFieldWidgetClass,mainForm, XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET, XmNtopWidget, button, XmNrightAttachment, XmATTACH_WIDGET, XmNrightWidget, button, XmNrightOffset, 10, XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET, XmNbottomWidget, button, XmNmaxLength, DBStringLength, XmNcolumns, DBStringLength / 2, NULL); XtAddCallback (button,XmNactivateCallback,(XtCallbackProc) _RGISToolsConvertToPointSelectCBK,xCoordTextF); string = XmStringCreate ((char *) "X Coordinate:",UICharSetBold); XtVaCreateManagedWidget ("RGISToolsConvertToPointXCoordLabel",xmLabelWidgetClass,mainForm, XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET, XmNtopWidget, button, XmNleftAttachment, XmATTACH_FORM, XmNleftOffset, 10, XmNrightAttachment, XmATTACH_WIDGET, XmNrightWidget, nameTextF, XmNrightOffset, 10, XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET, XmNbottomWidget, button, XmNlabelString, string, NULL); XmStringFree (string); string = XmStringCreate ((char *) "Select",UICharSetBold); button = XtVaCreateManagedWidget ("RGISToolsConvertToPointYCoordButton",xmPushButtonWidgetClass,mainForm, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, button, XmNtopOffset, 10, XmNrightAttachment, XmATTACH_FORM, XmNrightOffset, 10, XmNbottomAttachment, XmATTACH_FORM, XmNbottomOffset, 10, XmNmarginHeight, 5, XmNtraversalOn, False, XmNlabelString, string, XmNuserData, DBTableFieldIsNumeric, NULL); XmStringFree (string); yCoordTextF = XtVaCreateManagedWidget ("RGISToolsConvertToPointYCoordTextF",xmTextFieldWidgetClass,mainForm, XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET, XmNtopWidget, button, XmNrightAttachment, XmATTACH_WIDGET, XmNrightWidget, button, XmNrightOffset, 10, XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET, XmNbottomWidget, button, XmNmaxLength, DBStringLength, XmNcolumns, DBStringLength / 2, NULL); XtAddCallback (button,XmNactivateCallback,(XtCallbackProc) _RGISToolsConvertToPointSelectCBK,yCoordTextF); string = XmStringCreate ((char *) "Y Coordinate:",UICharSetBold); XtVaCreateManagedWidget ("RGISToolsConvertToPointYCoordLabel",xmLabelWidgetClass,mainForm, XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET, XmNtopWidget, button, XmNleftAttachment, XmATTACH_FORM, XmNleftOffset, 10, XmNrightAttachment, XmATTACH_WIDGET, XmNrightWidget, nameTextF, XmNrightOffset, 10, XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET, XmNbottomWidget, button, XmNlabelString, string, NULL); XmStringFree (string); XtAddCallback (UIDialogFormGetOkButton (dShell),XmNactivateCallback,(XtCallbackProc) UIAuxSetBooleanTrueCBK,&convert); } convert = false; UIDialogFormPopup (dShell); while (UILoop ()) { xText = XmTextFieldGetString (xCoordTextF); yText = XmTextFieldGetString (yCoordTextF); allowOk = (strlen (xText) > 0) && (strlen (yText) > 0); XtFree (xText); XtFree (yText); XtSetSensitive (UIDialogFormGetOkButton (dShell),allowOk); } UIDialogFormPopdown (dShell); if (convert) { DBObjData *pntData = new DBObjData ("",DBTypeVectorPoint); pntData->Name (dbData->Name ()); pntData->Document (DBDocSubject,dbData->Document (DBDocSubject)); pntData->Document (DBDocGeoDomain,dbData->Document (DBDocGeoDomain)); if (UIDataHeaderForm (pntData)) { DBCoordinate coord; DBObjTableField *nField, *xField, *yField, *tblFLD, *pntFLD; DBObjRecord *tblRec, *pntRec, *symRec; DBObjTable *pntTable = pntData->Table (DBrNItems); DBObjTable *symbols = pntData->Table (DBrNSymbols); DBObjTableField *symbolIDFLD = symbols->Field (DBrNSymbolID); DBObjTableField *fgFLD = symbols->Field (DBrNForeground); DBObjTableField *bgFLD = symbols->Field (DBrNBackground); DBObjTableField *stFLD = symbols->Field (DBrNStyle); DBObjTableField *coordFLD = pntTable->Field (DBrNCoord); DBObjTableField *symbolFLD = pntTable->Field (DBrNSymbol); DBRegion extent; symRec = symbols->Add ("Default Symbol"); symbolIDFLD->Int (symRec,0); fgFLD->Int (symRec,1); bgFLD->Int (symRec,2); stFLD->Int (symRec,0); nText = XmTextFieldGetString (nameTextF); xText = XmTextFieldGetString (xCoordTextF); yText = XmTextFieldGetString (yCoordTextF); nField = _RGISToolsConvertToPointFields->Item (nText); xField = _RGISToolsConvertToPointFields->Item (xText); yField = _RGISToolsConvertToPointFields->Item (yText); XtFree (nText); XtFree (xText); XtFree (yText); for (tblRec = itemTable->First ();tblRec != (DBObjRecord *) NULL;tblRec = itemTable->Next ()) { if (CMmathEqualValues (coord.X = xField->Float (tblRec),xField->FloatNoData ())) continue; if (CMmathEqualValues (coord.Y = yField->Float (tblRec),yField->FloatNoData ())) continue; if (nField == (DBObjTableField *) NULL) pntRec = pntTable->Add (tblRec->Name ()); else pntRec = pntTable->Add (nField->String (tblRec)); coordFLD->Coordinate (pntRec,coord); symbolFLD->Record (pntRec,symRec); extent.Expand (coord); } pntData->Extent (extent); pntData->Projection (DBMathGuessProjection (extent)); pntData->Precision (DBMathGuessPrecision (extent)); for (tblFLD = _RGISToolsConvertToPointFields->First ();tblFLD != (DBObjTableField *) NULL;tblFLD = _RGISToolsConvertToPointFields->Next ()) if ((tblFLD != nField) && (tblFLD != xField) && (tblFLD != yField) && DBTableFieldIsVisible (tblFLD)) { pntTable->AddField (pntFLD = new DBObjTableField (*tblFLD)); pntFLD->Required (false); pntRec = pntTable->First (); for (tblRec = itemTable->First ();tblRec != (DBObjRecord *) NULL;tblRec = itemTable->Next ()) { if (CMmathEqualValues (coord.X = xField->Float (tblRec),xField->FloatNoData ())) continue; if (CMmathEqualValues (coord.Y = yField->Float (tblRec),yField->FloatNoData ())) continue; switch (tblFLD->Type ()) { case DBTableFieldString: pntFLD->String (pntRec,tblFLD->String (tblRec)); break; case DBTableFieldInt: pntFLD->Int (pntRec,tblFLD->Int (tblRec)); break; case DBTableFieldFloat: pntFLD->Float (pntRec,tblFLD->Float (tblRec)); break; case DBTableFieldDate: pntFLD->Date (pntRec,tblFLD->Date (tblRec)); break; default: CMmsgPrint (CMmsgAppError, "Invalid Field Type in: %s %d",__FILE__,__LINE__); break; } pntRec = pntTable->Next (); } } workspace->CurrentData (pntData); } else delete pntData; } }
int main(int argc, char **argv) { Widget shell, panedw, rc, rc2, sb1, sb2; Widget label, label2; Arg args[20]; int argcount; int i; XmString months[12]; char *monthstr[12]; char buf[10]; char *str; shell = XtVaAppInitialize(&context, APP_CLASS, NULL, 0, &argc, argv, fallback_resources, NULL); time(&timer); thetime = localtime(&timer); dy = thetime -> tm_mday; yr = thetime -> tm_year + 1900; mn = thetime -> tm_mon; hr = thetime -> tm_hour; mi = thetime -> tm_min; panedw = XmCreatePanedWindow(shell, "BBoard", NULL, 0); XtManageChild(panedw); /* argcount = 0; XtSetArg(args[argcount], XmNlabelType, XmSTRING), argcount++; XtSetArg(args[argcount], XmNlabelString, XmStringCreate("Set Current Date and Time", XmSTRING_DEFAULT_CHARSET)), argcount++; label = XmCreateLabel(panedw, "label1", args, argcount); XtManageChild(label); */ str = XGetDefault(XtDisplay(panedw), APP_CLASS, "dateCommand"); if (str == NULL) str = XGetDefault(XtDisplay(panedw), argv[0], "dateCommand"); if (str == NULL) dateCommand = "echo Default command, the date is: %s"; else dateCommand = str; rc = XmCreateRowColumn(panedw, "SpinBoxs", NULL, 0); XtManageChild(rc); label = XmCreateLabel(rc, "label2", NULL, 0); XtManageChild(label); sb1 = XmCreateSpinBox(rc, "DateSB", NULL, 0); XtAddCallback(sb1, XmNvalueChangedCallback, ValueChanged, NULL); XtManageChild(sb1); argcount = 0; XtSetArg(args[argcount], XmNpositionType, XmPOSITION_INDEX), argcount++; XtSetArg(args[argcount], XmNspinBoxChildType, XmNUMERIC), argcount++; XtSetArg(args[argcount], XmNmaximumValue, 31), argcount++; XtSetArg(args[argcount], XmNminimumValue, 1), argcount++; XtSetArg(args[argcount], XmNposition, dy - 1), argcount++; XtSetArg(args[argcount], XmNcolumns, 3), argcount++; day = XmCreateTextField(sb1, "Day", args, argcount); XtManageChild(day); #ifndef CSRG_BASED months[0] = XmStringCreate(nl_langinfo(MON_1), XmSTRING_DEFAULT_CHARSET); months[1] = XmStringCreate(nl_langinfo(MON_2), XmSTRING_DEFAULT_CHARSET); months[2] = XmStringCreate(nl_langinfo(MON_3), XmSTRING_DEFAULT_CHARSET); months[3] = XmStringCreate(nl_langinfo(MON_4), XmSTRING_DEFAULT_CHARSET); months[4] = XmStringCreate(nl_langinfo(MON_5), XmSTRING_DEFAULT_CHARSET); months[5] = XmStringCreate(nl_langinfo(MON_6), XmSTRING_DEFAULT_CHARSET); months[6] = XmStringCreate(nl_langinfo(MON_7), XmSTRING_DEFAULT_CHARSET); months[7] = XmStringCreate(nl_langinfo(MON_8), XmSTRING_DEFAULT_CHARSET); months[8] = XmStringCreate(nl_langinfo(MON_9), XmSTRING_DEFAULT_CHARSET); months[9] = XmStringCreate(nl_langinfo(MON_10), XmSTRING_DEFAULT_CHARSET); months[10] = XmStringCreate(nl_langinfo(MON_11), XmSTRING_DEFAULT_CHARSET); months[11] = XmStringCreate(nl_langinfo(MON_12), XmSTRING_DEFAULT_CHARSET); #else months[0] = XmStringCreate("January", XmSTRING_DEFAULT_CHARSET); months[1] = XmStringCreate("February", XmSTRING_DEFAULT_CHARSET); months[2] = XmStringCreate("March", XmSTRING_DEFAULT_CHARSET); months[3] = XmStringCreate("April", XmSTRING_DEFAULT_CHARSET); months[4] = XmStringCreate("May", XmSTRING_DEFAULT_CHARSET); months[5] = XmStringCreate("June", XmSTRING_DEFAULT_CHARSET); months[6] = XmStringCreate("July", XmSTRING_DEFAULT_CHARSET); months[7] = XmStringCreate("August", XmSTRING_DEFAULT_CHARSET); months[8] = XmStringCreate("September", XmSTRING_DEFAULT_CHARSET); months[9] = XmStringCreate("October", XmSTRING_DEFAULT_CHARSET); months[10] = XmStringCreate("November", XmSTRING_DEFAULT_CHARSET); months[11] = XmStringCreate("December", XmSTRING_DEFAULT_CHARSET); #endif argcount = 0; XtSetArg(args[argcount], XmNpositionType, XmPOSITION_INDEX), argcount++; XtSetArg(args[argcount], XmNvalues, months), argcount++; XtSetArg(args[argcount], XmNnumValues, 12), argcount++; XtSetArg(args[argcount], XmNposition, mn), argcount++; XtSetArg(args[argcount], XmNcolumns, 12), argcount++; month = XmCreateTextField(sb1, "MonthSB", args, argcount); XtManageChild(month); argcount = 0; XtSetArg(args[argcount], XmNpositionType, XmPOSITION_INDEX), argcount++; XtSetArg(args[argcount], XmNspinBoxChildType, XmNUMERIC), argcount++; XtSetArg(args[argcount], XmNmaximumValue, 2020), argcount++; XtSetArg(args[argcount], XmNminimumValue, 1992), argcount++; XtSetArg(args[argcount], XmNposition, yr-1992), argcount++; XtSetArg(args[argcount], XmNcolumns, 5), argcount++; year = XmCreateTextField(sb1, "YearSB", args, argcount); XtManageChild(year); argcount = 0; label = XmCreateLabel(rc, "label3", args, argcount); XtManageChild(label); argcount = 0; XtSetArg(args[argcount], XmNy, 50), argcount++; sb2 = XmCreateSpinBox(rc, "TimeSB", args, argcount); XtAddCallback(sb2, XmNvalueChangedCallback, ValueChanged, NULL); XtManageChild(sb2); argcount = 0; XtSetArg(args[argcount], XmNpositionType, XmPOSITION_INDEX), argcount++; XtSetArg(args[argcount], XmNspinBoxChildType, XmNUMERIC), argcount++; XtSetArg(args[argcount], XmNmaximumValue, 23), argcount++; XtSetArg(args[argcount], XmNminimumValue, 0), argcount++; XtSetArg(args[argcount], XmNposition, hr), argcount++; XtSetArg(args[argcount], XmNcolumns, 3), argcount++; hour = XmCreateTextField(sb2, "Hour", args, argcount); XtManageChild(hour); argcount = 0; XtSetArg(args[argcount], XmNpositionType, XmPOSITION_INDEX), argcount++; XtSetArg(args[argcount], XmNlabelType, XmSTRING), argcount++; XtSetArg(args[argcount], XmNlabelString, XmStringCreate(":", XmSTRING_DEFAULT_CHARSET)), argcount++; label = XmCreateLabel(sb2, "label4", args, argcount); XtManageChild(label); argcount = 0; XtSetArg(args[argcount], XmNpositionType, XmPOSITION_INDEX), argcount++; XtSetArg(args[argcount], XmNspinBoxChildType, XmNUMERIC), argcount++; XtSetArg(args[argcount], XmNmaximumValue, 59), argcount++; XtSetArg(args[argcount], XmNminimumValue, 0), argcount++; XtSetArg(args[argcount], XmNposition, mi), argcount++; XtSetArg(args[argcount], XmNcolumns, 3), argcount++; minute = XmCreateTextField(sb2, "Minute", args, argcount); XtManageChild(minute); argcount = 0; XtSetArg(args[argcount], XmNorientation, XmHORIZONTAL), argcount++; XtSetArg(args[argcount], XmNpacking, XmPACK_TIGHT), argcount++; rc2 = XmCreateRowColumn(panedw, "SpinBoxs2", args, argcount); XtManageChild(rc2); argcount = 0; action = XmCreatePushButton(rc2, "SetDate", args, argcount); XtManageChild(action); XtAddCallback(action, XmNactivateCallback, Doit, "OK"); argcount = 0; exitpb = XmCreatePushButton(rc2, "Quit", args, argcount); XtManageChild(exitpb); XtAddCallback(exitpb, XmNactivateCallback, QuitAppl, "OK"); XtRealizeWidget(shell); XtAppMainLoop(context); return 0; /* make compiler happy */ }
void main (int argc, char **argv) { Widget Parent; Widget ComboBox; int n,i; Arg args[MAX_ARGS]; XmString TempLabelString, ItemList[NITEMS]; static char *CharItems[] = { "Item1", "btest1", "btest1b", "btest2", "btest3", "decor00", "decor01", "decor02", "decor03", "decor04", "decor05", "decor06", "decor07", "decor08", "decor09", "func00", "func01", "func02", "func03", "func04", "func05", "func06", "func07", "func08", "func09", "func10", "func11", "func12", "func13", "func14", "iplac00", "iplac01", "iplac02", "iplac05", "menu00", "menu04", "mtest1", "parse00", "prop00", "rstest1" }; CommonTestInit(argc, argv); /* Create a ComboBox */ if (UserData == NULL) { printf ("Usage: ComboBox4 -u <comboBoxType>\n"); exit(0); } n=0; Parent = XmCreateFrame (Shell1, "Parent",args,n); XtManageChild (Parent); /* Set the comboBoxType of ComboBox based on the flag passed by the user. */ n=0; if (strcmp (UserData, "COMBO_BOX") == 0) { XtSetArg(args[n], XmNcomboBoxType, XmCOMBO_BOX); n++; } else if (strcmp (UserData, "DROP_DOWN_COMBO_BOX") == 0) { XtSetArg(args[n], XmNcomboBoxType, XmDROP_DOWN_COMBO_BOX); n++; } if (strcmp (UserData, "DROP_DOWN_LIST") == 0) { XtSetArg(args[n], XmNcomboBoxType, XmDROP_DOWN_LIST); n++; } ComboBox = XmCreateComboBox (Parent, "ComboBox", args, n); XtManageChild (ComboBox); XtRealizeWidget (Shell1); /* Create the list */ for (i=0; i<NITEMS; i++) { TempLabelString = XmStringCreate(CharItems[i], XmSTRING_DEFAULT_CHARSET); ItemList[i] = TempLabelString; } /* Set values on the List Component of the ComboBox. */ n = 0; XtSetArg(args[n], XmNlistSpacing, 5); n++; XtSetArg(args[n], XmNlistMarginWidth, 2); n++; XtSetArg(args[n], XmNlistMarginHeight, 2); n++; XtSetArg(args[n], XmNitems, ItemList); n++; XtSetArg(args[n], XmNitemCount, NITEMS); n++; XtSetArg(args[n], XmNvisibleItemCount, VITEMS); n++; if (XtNameToWidget (ComboBox,"*List") != NULL) XtSetValues (XtNameToWidget(ComboBox,"*List"),args,n); CommonPause(); n = 0; XtSetArg(args[n], XmNautoShowCursorPosition, True); n++; XtSetArg(args[n], XmNcursorPosition, 5); n++; XtSetArg(args[n], XmNeditMode, XmSINGLE_LINE_EDIT); n++; XtSetArg(args[n], XmNmarginHeight, 20); n++; XtSetArg(args[n], XmNmarginWidth, 20); n++; XtSetArg (args[n], XmNresizeWidth, True); n++; XtSetValues (XtNameToWidget(ComboBox,"Text"),args,n); CommonPause(); /* Add an Item */ TempLabelString = XmStringCreate ("ExtraItem", XmSTRING_DEFAULT_CHARSET); XmListAddItem (XtNameToWidget(ComboBox,"*List"), TempLabelString, NITEMS+1); XmStringFree (TempLabelString); CommonPause(); /* Test for XmComboBoxUpdate */ TempLabelString = XmStringCreate ("Item1", XmSTRING_DEFAULT_CHARSET); XmListSelectItem (XtNameToWidget(ComboBox,"*List"), TempLabelString,False); XmComboBoxUpdate (ComboBox); XmStringFree (TempLabelString); CommonPause(); CommonPause(); XtAppMainLoop(app_context); }