📄 helpreswinc.c
字号:
if ( data->w == w ) tmp = yes; else tmp = in; } else if ( !data->w || !XmIsPushButton(data->w) ) { tmp = na; } item->Field(HELP_FIELD, tmp);//// This is used so rarely that it isn't very useful to highlight where it is// missing// if ( tmp == no ) pm = red_xpm; if ( Modified() ) pm = yellow_xpm; item->SetPixmaps(NULL, pm);} // End UpdateItem/*----------------------------------------------------------------- * Constructor */HelpResWinC::HelpResWinC(Widget parent) : HalTopLevelC("helpResWin", parent){ win = this; WArgList args; widgetList.AllowDuplicates(FALSE); quickList.AllowDuplicates(FALSE); contList.AllowDuplicates(FALSE); helpList.AllowDuplicates(FALSE); quickList2.AllowDuplicates(FALSE); contList2.AllowDuplicates(FALSE); helpList2.AllowDuplicates(FALSE); curWidget = NULL; changed = False; selfMod = False;//// appForm//// Form shortNameForm// Form longNameForm// Separator quickSep// Form quickForm// Separator contSep// Form contForm// Separator helpSep// Form helpForm// Separator cmdSep// Frame cmdFrame// Separator widgetSep// VBoxC widgetBox// args.Reset(); args.TopAttachment(XmATTACH_FORM); args.LeftAttachment(XmATTACH_FORM); args.RightAttachment(XmATTACH_FORM); args.BottomAttachment(XmATTACH_NONE); Widget shortNameForm = XmCreateForm(appForm, "shortNameForm", ARGS); args.TopAttachment(XmATTACH_WIDGET, shortNameForm); Widget longNameForm = XmCreateForm(appForm, "longNameForm", ARGS); args.TopAttachment(XmATTACH_WIDGET, longNameForm); Widget quickSep = XmCreateSeparator(appForm, "quickSep", ARGS); args.TopAttachment(XmATTACH_WIDGET, quickSep); Widget quickForm = XmCreateForm(appForm, "quickForm", ARGS); args.TopAttachment(XmATTACH_WIDGET, quickForm); Widget contSep = XmCreateSeparator(appForm, "contSep", ARGS); args.TopAttachment(XmATTACH_WIDGET, contSep); Widget contForm = XmCreateForm(appForm, "contForm", ARGS); args.TopAttachment(XmATTACH_WIDGET, contForm); Widget helpSep = XmCreateSeparator(appForm, "helpSep", ARGS); args.TopAttachment(XmATTACH_WIDGET, helpSep); Widget helpForm = XmCreateForm(appForm, "helpForm", ARGS); args.TopAttachment(XmATTACH_WIDGET, helpForm); Widget cmdSep = XmCreateSeparator(appForm, "cmdSep", ARGS); args.TopAttachment(XmATTACH_WIDGET, cmdSep); Widget cmdFrame = XmCreateFrame(appForm, "cmdFrame", ARGS); args.TopAttachment(XmATTACH_WIDGET, cmdFrame); Widget widgetSep = XmCreateSeparator(appForm, "widgetSep", ARGS); args.TopAttachment(XmATTACH_WIDGET, widgetSep); args.BottomAttachment(XmATTACH_FORM); widgetBox = new VBoxC(appForm, "widgetBox", ARGS); args.Reset(); args.ShadowThickness(0); args.MarginWidth(0); args.MarginHeight(0); XtSetValues(cmdFrame, ARGS);//// widgetBox//// FieldViewC widgetView// widgetView = new FieldViewC(widgetBox); widgetViewType = widgetBox->AddView(*widgetView); //widgetBox->HideStatus();//// shortNameForm//// Label shortNameLabel// TextField shortNameTF// args.Reset(); args.TopAttachment(XmATTACH_FORM); args.LeftAttachment(XmATTACH_FORM); args.RightAttachment(XmATTACH_NONE); args.BottomAttachment(XmATTACH_FORM); Widget shortNameLabel = XmCreateLabel(shortNameForm, "shortNameLabel", ARGS); args.LeftAttachment(XmATTACH_WIDGET, shortNameLabel); args.RightAttachment(XmATTACH_FORM); args.Editable(False); shortNameTF = CreateTextField(shortNameForm, "shortNameTF", ARGS); XtManageChild(shortNameLabel); XtManageChild(shortNameTF);//// longNameForm//// Label longNameLabel// TextField longNameTF// ArrowButton longNameAB// args.Reset(); args.TopAttachment(XmATTACH_FORM); args.LeftAttachment(XmATTACH_FORM); args.RightAttachment(XmATTACH_NONE); args.BottomAttachment(XmATTACH_FORM); Widget longNameLabel = XmCreateLabel(longNameForm, "longNameLabel", ARGS); args.LeftAttachment(XmATTACH_NONE); args.RightAttachment(XmATTACH_FORM); Widget longNameAB = XmCreateArrowButton(longNameForm, "longNameAB", ARGS); args.LeftAttachment(XmATTACH_WIDGET, longNameLabel); args.RightAttachment(XmATTACH_WIDGET, longNameAB); args.Editable(False); longNameTF = CreateTextField(longNameForm, "longNameTF", ARGS); XtManageChild(longNameLabel); XtManageChild(longNameAB); XtManageChild(longNameTF); XtAddCallback(longNameAB, XmNactivateCallback, (XtCallbackProc)DoParentLoad, this);//// quickForm//// Form quickHelpForm// Form quickNameForm// args.Reset(); args.TopAttachment(XmATTACH_FORM); args.LeftAttachment(XmATTACH_FORM); args.RightAttachment(XmATTACH_FORM); args.BottomAttachment(XmATTACH_NONE); Widget quickHelpForm = XmCreateForm(quickForm, "quickHelpForm", ARGS); args.TopAttachment(XmATTACH_WIDGET, quickHelpForm); Widget quickNameForm = XmCreateForm(quickForm, "quickNameForm", ARGS);//// quickHelpForm//// Label quickHelpLabel// TextField quickHelpTF// args.Reset(); args.TopAttachment(XmATTACH_FORM); args.LeftAttachment(XmATTACH_FORM); args.RightAttachment(XmATTACH_NONE); args.BottomAttachment(XmATTACH_FORM); Widget quickHelpLabel = XmCreateLabel(quickHelpForm, "quickHelpLabel", ARGS); args.LeftAttachment(XmATTACH_WIDGET, quickHelpLabel); args.RightAttachment(XmATTACH_FORM); quickHelpTF = CreateTextField(quickHelpForm, "quickHelpTF", ARGS); XtManageChild(quickHelpLabel); XtManageChild(quickHelpTF);//// quickNameForm//// Label quickNameLabel// TextField quickNameTF// PushButton quickLoadPB// args.Reset(); args.TopAttachment(XmATTACH_FORM); args.LeftAttachment(XmATTACH_FORM); args.RightAttachment(XmATTACH_NONE); args.BottomAttachment(XmATTACH_FORM); Widget quickNameLabel = XmCreateLabel(quickNameForm, "quickNameLabel", ARGS); args.LeftAttachment(XmATTACH_NONE); args.RightAttachment(XmATTACH_FORM); quickLoadPB = XmCreatePushButton(quickNameForm,"quickLoadPB", ARGS); XtAddCallback(quickLoadPB, XmNactivateCallback, (XtCallbackProc)DoQuickLoad, this); args.LeftAttachment(XmATTACH_WIDGET, quickNameLabel); args.RightAttachment(XmATTACH_WIDGET, quickLoadPB); args.Editable(False); quickNameTF = CreateTextField(quickNameForm, "quickNameTF", ARGS); XtManageChild(quickNameLabel); XtManageChild(quickLoadPB); XtManageChild(quickNameTF); XtManageChild(quickHelpForm); XtManageChild(quickNameForm);//// contForm//// Form contCardForm// Form contNameForm// args.Reset(); args.TopAttachment(XmATTACH_FORM); args.LeftAttachment(XmATTACH_FORM); args.RightAttachment(XmATTACH_FORM); args.BottomAttachment(XmATTACH_NONE); Widget contCardForm = XmCreateForm(contForm, "contCardForm", ARGS); args.TopAttachment(XmATTACH_WIDGET, contCardForm); Widget contNameForm = XmCreateForm(contForm, "contNameForm", ARGS);//// contCardForm//// Label contCardLabel// TextField contCardTF// PushButton contCardPB// args.Reset(); args.TopAttachment(XmATTACH_FORM); args.LeftAttachment(XmATTACH_FORM); args.RightAttachment(XmATTACH_NONE); args.BottomAttachment(XmATTACH_FORM); Widget contCardLabel = XmCreateLabel(contCardForm, "contCardLabel", ARGS); args.LeftAttachment(XmATTACH_NONE); args.RightAttachment(XmATTACH_FORM); contCardPB = XmCreatePushButton(contCardForm, "contCardPB", ARGS); XtAddCallback(contCardPB, XmNactivateCallback, (XtCallbackProc)DoContCard, this); args.LeftAttachment(XmATTACH_WIDGET, contCardLabel); args.RightAttachment(XmATTACH_WIDGET, contCardPB); contCardTF = CreateTextField(contCardForm, "contCardTF", ARGS); XtManageChild(contCardLabel); XtManageChild(contCardPB); XtManageChild(contCardTF);//// contNameForm//// Label contNameLabel// TextField contNameTF// PushButton contLoadPB// args.Reset(); args.TopAttachment(XmATTACH_FORM); args.LeftAttachment(XmATTACH_FORM); args.RightAttachment(XmATTACH_NONE); args.BottomAttachment(XmATTACH_FORM); Widget contNameLabel = XmCreateLabel(contNameForm, "contNameLabel", ARGS); args.LeftAttachment(XmATTACH_NONE); args.RightAttachment(XmATTACH_FORM); contLoadPB = XmCreatePushButton(contNameForm,"contLoadPB", ARGS); XtAddCallback(contLoadPB, XmNactivateCallback, (XtCallbackProc)DoContLoad, this); args.LeftAttachment(XmATTACH_WIDGET, contNameLabel); args.RightAttachment(XmATTACH_WIDGET, contLoadPB); args.Editable(False); contNameTF = CreateTextField(contNameForm, "contNameTF", ARGS); XtManageChild(contNameLabel); XtManageChild(contLoadPB); XtManageChild(contNameTF); XtManageChild(contCardForm); XtManageChild(contNameForm);//// helpForm//// Form helpCardForm// Form helpNameForm// args.Reset(); args.TopAttachment(XmATTACH_FORM); args.LeftAttachment(XmATTACH_FORM); args.RightAttachment(XmATTACH_FORM); args.BottomAttachment(XmATTACH_NONE); Widget helpCardForm = XmCreateForm(helpForm, "helpCardForm", ARGS); args.TopAttachment(XmATTACH_WIDGET, helpCardForm); Widget helpNameForm = XmCreateForm(helpForm, "helpNameForm", ARGS);//// helpCardForm//// Label helpCardLabel// TextField helpCardTF// PushButton helpCardPB// args.Reset(); args.TopAttachment(XmATTACH_FORM); args.LeftAttachment(XmATTACH_FORM); args.RightAttachment(XmATTACH_NONE); args.BottomAttachment(XmATTACH_FORM); Widget helpCardLabel = XmCreateLabel(helpCardForm, "helpCardLabel", ARGS); args.LeftAttachment(XmATTACH_NONE); args.RightAttachment(XmATTACH_FORM); helpCardPB = XmCreatePushButton(helpCardForm, "helpCardPB", ARGS); XtAddCallback(helpCardPB, XmNactivateCallback, (XtCallbackProc)DoHelpCard, this); args.LeftAttachment(XmATTACH_WIDGET, helpCardLabel); args.RightAttachment(XmATTACH_WIDGET, helpCardPB); helpCardTF = CreateTextField(helpCardForm, "helpCardTF", ARGS); XtManageChild(helpCardLabel); XtManageChild(helpCardPB); XtManageChild(helpCardTF);//// helpNameForm//// Label helpNameLabel// TextField helpNameTF// PushButton helpLoadPB// args.Reset(); args.TopAttachment(XmATTACH_FORM); args.LeftAttachment(XmATTACH_FORM); args.RightAttachment(XmATTACH_NONE); args.BottomAttachment(XmATTACH_FORM); Widget helpNameLabel = XmCreateLabel(helpNameForm, "helpNameLabel", ARGS); args.LeftAttachment(XmATTACH_NONE); args.RightAttachment(XmATTACH_FORM); helpLoadPB = XmCreatePushButton(helpNameForm,"helpLoadPB", ARGS); XtAddCallback(helpLoadPB, XmNactivateCallback, (XtCallbackProc)DoHelpLoad, this); args.LeftAttachment(XmATTACH_WIDGET, helpNameLabel); args.RightAttachment(XmATTACH_WIDGET, helpLoadPB); args.Editable(False); helpNameTF = CreateTextField(helpNameForm, "helpNameTF", ARGS); XtManageChild(helpNameLabel); XtManageChild(helpLoadPB); XtManageChild(helpNameTF); XtManageChild(helpCardForm); XtManageChild(helpNameForm);//// Add change detection callbacks// XtAddCallback(quickHelpTF, XmNvalueChangedCallback, (XtCallbackProc)QuickTextChanged, this); XtAddCallback(contCardTF, XmNvalueChangedCallback, (XtCallbackProc)ContTextChanged, this); XtAddCallback(helpCardTF, XmNvalueChangedCallback, (XtCallbackProc)HelpTextChanged, this);//// Align labels// Dimension wd, max; XtVaGetValues(shortNameLabel, XmNwidth, &max, NULL); XtVaGetValues(longNameLabel, XmNwidth, &wd, NULL); if ( wd>max ) max = wd; XtVaGetValues(quickHelpLabel, XmNwidth, &wd, NULL); if ( wd>max ) max = wd; XtVaGetValues(quickNameLabel, XmNwidth, &wd, NULL); if ( wd>max ) max = wd; XtVaGetValues(contCardLabel, XmNwidth, &wd, NULL); if ( wd>max ) max = wd; XtVaGetValues(contNameLabel, XmNwidth, &wd, NULL); if ( wd>max ) max = wd; XtVaGetValues(helpCardLabel, XmNwidth, &wd, NULL); if ( wd>max ) max = wd; XtVaGetValues(helpNameLabel, XmNwidth, &wd, NULL); if ( wd>max ) max = wd; args.Reset(); args.Width(max); args.Resizable(False); XtSetValues(shortNameLabel, ARGS); XtSetValues(longNameLabel, ARGS); XtSetValues(quickHelpLabel, ARGS); XtSetValues(quickNameLabel, ARGS); XtSetValues(contCardLabel, ARGS); XtSetValues(contNameLabel, ARGS); XtSetValues(helpCardLabel, ARGS); XtSetValues(helpNameLabel, ARGS);//// Align buttons// XtVaGetValues(quickLoadPB, XmNwidth, &max, NULL); XtVaGetValues(contCardPB, XmNwidth, &wd, NULL); if (wd>max) max = wd; XtVaGetValues(contLoadPB, XmNwidth, &wd, NULL); if (wd>max) max = wd; XtVaGetValues(helpCardPB, XmNwidth, &wd, NULL); if (wd>max) max = wd; XtVaGetValues(helpLoadPB, XmNwidth, &wd, NULL); if (wd>max) max = wd; args.Reset(); args.Width(max); args.Resizable(False); XtSetValues(quickLoadPB, ARGS); XtSetValues(contCardPB, ARGS); XtSetValues(contLoadPB, ARGS); XtSetValues(helpCardPB, ARGS); XtSetValues(helpLoadPB, ARGS);//// cmdFrame//// RowColumn cmdRC// Label modLabel1// PushButton pickPB// PushButton nextPB// PushButton prevPB// PushButton resetPB// PushButton delPB// Label modLabel2// args.Reset(); args.Orientation(XmHORIZONTAL); args.ChildType(XmFRAME_TITLE_CHILD); args.ChildHorizontalAlignment(XmALIGNMENT_CENTER); args.ChildHorizontalSpacing(0); args.ChildVerticalAlignment(XmALIGNMENT_WIDGET_TOP); args.EntryAlignment(XmALIGNMENT_CENTER); Widget cmdRC = XmCreateRowColumn(cmdFrame, "cmdRC", ARGS); modLabel1 = XmCreateLabel(cmdRC, "modLabel", 0,0); XtManageChild(modLabel1); Widget pickPB = XmCreatePushButton(cmdRC, "pickPB", 0,0); XtAddCallback(pickPB, XmNactivateCallback, (XtCallbackProc)DoWidgetPick, this); XtManageChild(pickPB); Widget nextPB = XmCreatePushButton(cmdRC, "nextPB", 0,0); XtAddCallback(nextPB, XmNactivateCallback, (XtCallbackProc)DoWidgetNext, this); XtManageChild(nextPB); Widget prevPB = XmCreatePushButton(cmdRC, "prevPB", 0,0); XtAddCallback(prevPB, XmNactivateCallback, (XtCallbackProc)DoWidgetPrev, this); XtManageChild(prevPB); Widget resetPB = XmCreatePushButton(cmdRC, "resetPB", 0,0); XtAddCallback(resetPB, XmNactivateCallback, (XtCallbackProc)DoWidgetReset, this); XtManageChild(resetPB);#if 0 Widget delPB = XmCreatePushButton(cmdRC, "delPB", 0,0); XtAddCallback(delPB, XmNactivateCallback, (XtCallbackProc)DoWidgetDel, this); XtManageChild(delPB);#endif modLabel2 = XmCreateLabel(cmdRC, "modLabel", 0,0); XtManageChild(modLabel2); XtManageChild(cmdRC); XtManageChild(shortNameForm); XtManageChild(longNameForm); XtManageChild(quickSep); XtManageChild(quickForm); XtManageChild(contSep); XtManageChild(contForm); XtManageChild(helpSep); XtManageChild(helpForm); XtManageChild(cmdSep); XtManageChild(cmdFrame); XtManageChild(widgetSep); XtManageChild(*widgetBox); AddButtonBox();#if 0 Widget loadSomePB = XmCreatePushButton(buttonRC, "loadSomePB", 0,0); XtManageChild(loadSomePB); XtAddCallback(loadSomePB, XmNactivateCallback, (XtCallbackProc)DoLoadSome, this); Widget loadAllPB = XmCreatePushButton(buttonRC, "loadAllPB", 0,0); XtManageChild(loadAllPB); XtAddCallback(loadAllPB, XmNactivateCallback, (XtCallbackProc)DoLoadAll, this);#endif Widget savePB = XmCreatePushButton(buttonRC, "savePB", 0,0); XtManageChild(savePB); XtAddCallback(savePB, XmNactivateCallback, (XtCallbackProc)DoSave, this); Widget donePB = XmCreatePushButton(buttonRC, "donePB", 0,0); XtManageChild(donePB); XtAddCallback(donePB, XmNactivateCallback, (XtCallbackProc)DoDone, this); ShowInfoMsg(); HandleHelp(); pickCursor = XCreateFontCursor(halApp->display, XC_hand1); XtSetSensitive(quickLoadPB, False); XtSetSensitive(contCardPB, False); XtSetSensitive(contLoadPB, False); XtSetSensitive(helpCardPB, False); XtSetSensitive(helpLoadPB, False); PixelValue(modLabel1, "yellow", &modBg); XtVaGetValues(modLabel1, XmNbackground, ®Bg, NULL); XtAddCallback(*this, XmNpopupCallback, (XtCallbackProc)DoPopup, this);} // End constructor/*----------------------------------------------------------------- * Destructor */HelpResWinC::~HelpResWinC(){ if ( halApp->xRunning ) { Boolean needSave; QuerySave(&needSave, /*cancelOk=*/False); if ( needSave ) DoSave(NULL, this, NULL); XFreeCursor(halApp->display, pickCursor); } Clear(); u_int count = quickList.size(); int i; for (i=0; i<count; i++) { ResEntryC *ent = (ResEntryC*)quickList[i]; delete ent; } count = contList.size(); for (i=0; i<count; i++) { ResEntryC *ent = (ResEntryC*)contList[i]; delete ent; } count = helpList.size(); for (i=0; i<count; i++) { ResEntryC *ent = (ResEntryC*)helpList[i]; delete ent; } delete widgetBox; delete widgetView;} // End destructor/*----------------------------------------------------------------- * Clear all widgets and modifications */voidHelpResWinC::Clear(){ VItemListC& items = widgetBox->Items(); u_int count = items.size(); int i; for (i=0; i<count; i++) delete items[i]; count = widgetList.size(); for (i=0; i<count; i++) { WidgetRecC *rec = (WidgetRecC*)widgetList[i]; delete rec; } widgetList.removeAll();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -