📄 complexmsgfindwinc.c
字号:
// PushButton lePB// PushButton eqPB// PushButton gePB// PushButton gtPB// PushButton nePB// Widget numPD = XmCreatePulldownMenu(*termRC, "numPD", 0,0); args.Reset(); args.UserData((XtPointer)MsgNumExpC::LT); ltPB = XmCreatePushButton(numPD, "ltPB", ARGS); args.UserData((XtPointer)MsgNumExpC::LE); lePB = XmCreatePushButton(numPD, "lePB", ARGS); args.UserData((XtPointer)MsgNumExpC::EQ); eqPB = XmCreatePushButton(numPD, "eqPB", ARGS); args.UserData((XtPointer)MsgNumExpC::GE); gePB = XmCreatePushButton(numPD, "gePB", ARGS); args.UserData((XtPointer)MsgNumExpC::GT); gtPB = XmCreatePushButton(numPD, "gtPB", ARGS); args.UserData((XtPointer)MsgNumExpC::NE); nePB = XmCreatePushButton(numPD, "nePB", ARGS); XtAddCallback(ltPB, XmNactivateCallback, (XtCallbackProc)ChangeNumOp, (XtPointer)this); XtAddCallback(lePB, XmNactivateCallback, (XtCallbackProc)ChangeNumOp, (XtPointer)this); XtAddCallback(eqPB, XmNactivateCallback, (XtCallbackProc)ChangeNumOp, (XtPointer)this); XtAddCallback(gePB, XmNactivateCallback, (XtCallbackProc)ChangeNumOp, (XtPointer)this); XtAddCallback(gtPB, XmNactivateCallback, (XtCallbackProc)ChangeNumOp, (XtPointer)this); XtAddCallback(nePB, XmNactivateCallback, (XtCallbackProc)ChangeNumOp, (XtPointer)this); XtVaSetValues(numOM, XmNsubMenuId, numPD, NULL); wlist[0] = ltPB; wlist[1] = lePB; wlist[2] = eqPB; wlist[3] = gePB; wlist[4] = gtPB; wlist[5] = nePB; XtManageChildren(wlist, 6); // numPD children//// Create linePD hierarchy//// PulldowmMenu linePD// PushButton ltPB// PushButton lePB// PushButton eqPB// PushButton gePB// PushButton gtPB// PushButton nePB// Widget linePD = XmCreatePulldownMenu(*termRC, "linePD", 0,0); args.Reset(); args.UserData((XtPointer)MsgLineExpC::LT); ltPB = XmCreatePushButton(linePD, "ltPB", ARGS); args.UserData((XtPointer)MsgLineExpC::LE); lePB = XmCreatePushButton(linePD, "lePB", ARGS); args.UserData((XtPointer)MsgLineExpC::EQ); eqPB = XmCreatePushButton(linePD, "eqPB", ARGS); args.UserData((XtPointer)MsgLineExpC::GE); gePB = XmCreatePushButton(linePD, "gePB", ARGS); args.UserData((XtPointer)MsgLineExpC::GT); gtPB = XmCreatePushButton(linePD, "gtPB", ARGS); args.UserData((XtPointer)MsgLineExpC::NE); nePB = XmCreatePushButton(linePD, "nePB", ARGS); XtAddCallback(ltPB, XmNactivateCallback, (XtCallbackProc)ChangeLineOp, (XtPointer)this); XtAddCallback(lePB, XmNactivateCallback, (XtCallbackProc)ChangeLineOp, (XtPointer)this); XtAddCallback(eqPB, XmNactivateCallback, (XtCallbackProc)ChangeLineOp, (XtPointer)this); XtAddCallback(gePB, XmNactivateCallback, (XtCallbackProc)ChangeLineOp, (XtPointer)this); XtAddCallback(gtPB, XmNactivateCallback, (XtCallbackProc)ChangeLineOp, (XtPointer)this); XtAddCallback(nePB, XmNactivateCallback, (XtCallbackProc)ChangeLineOp, (XtPointer)this); XtVaSetValues(lineOM, XmNsubMenuId, linePD, NULL); wlist[0] = ltPB; wlist[1] = lePB; wlist[2] = eqPB; wlist[3] = gePB; wlist[4] = gtPB; wlist[5] = nePB; XtManageChildren(wlist, 6); // linePD children//// Create bytePD hierarchy//// PulldowmMenu bytePD// PushButton ltPB// PushButton lePB// PushButton eqPB// PushButton gePB// PushButton gtPB// PushButton nePB// Widget bytePD = XmCreatePulldownMenu(*termRC, "bytePD", 0,0); args.Reset(); args.UserData((XtPointer)MsgByteExpC::LT); ltPB = XmCreatePushButton(bytePD, "ltPB", ARGS); args.UserData((XtPointer)MsgByteExpC::LE); lePB = XmCreatePushButton(bytePD, "lePB", ARGS); args.UserData((XtPointer)MsgByteExpC::EQ); eqPB = XmCreatePushButton(bytePD, "eqPB", ARGS); args.UserData((XtPointer)MsgByteExpC::GE); gePB = XmCreatePushButton(bytePD, "gePB", ARGS); args.UserData((XtPointer)MsgByteExpC::GT); gtPB = XmCreatePushButton(bytePD, "gtPB", ARGS); args.UserData((XtPointer)MsgByteExpC::NE); nePB = XmCreatePushButton(bytePD, "nePB", ARGS); XtAddCallback(ltPB, XmNactivateCallback, (XtCallbackProc)ChangeByteOp, (XtPointer)this); XtAddCallback(lePB, XmNactivateCallback, (XtCallbackProc)ChangeByteOp, (XtPointer)this); XtAddCallback(eqPB, XmNactivateCallback, (XtCallbackProc)ChangeByteOp, (XtPointer)this); XtAddCallback(gePB, XmNactivateCallback, (XtCallbackProc)ChangeByteOp, (XtPointer)this); XtAddCallback(gtPB, XmNactivateCallback, (XtCallbackProc)ChangeByteOp, (XtPointer)this); XtAddCallback(nePB, XmNactivateCallback, (XtCallbackProc)ChangeByteOp, (XtPointer)this); XtVaSetValues(byteOM, XmNsubMenuId, bytePD, NULL); wlist[0] = ltPB; wlist[1] = lePB; wlist[2] = eqPB; wlist[3] = gePB; wlist[4] = gtPB; wlist[5] = nePB; XtManageChildren(wlist, 6); // bytePD children int wcount = 0; wlist[wcount++] = fromPB; wlist[wcount++] = fromContLabel; wlist[wcount++] = fromTF; wlist[wcount++] = toPB; wlist[wcount++] = toContLabel; wlist[wcount++] = toTF; wlist[wcount++] = subjPB; wlist[wcount++] = subjContLabel; wlist[wcount++] = subjTF; wlist[wcount++] = headPB; wlist[wcount++] = headContLabel; wlist[wcount++] = headTF; wlist[wcount++] = bodyPB; wlist[wcount++] = bodyContLabel; wlist[wcount++] = bodyTF; wlist[wcount++] = msgPB; wlist[wcount++] = msgContLabel; wlist[wcount++] = msgTF; wlist[wcount++] = datePB; wlist[wcount++] = dateOM; wlist[wcount++] = dateTF; wlist[wcount++] = statPB; wlist[wcount++] = statIsLabel; wlist[wcount++] = statOM; wlist[wcount++] = numPB; wlist[wcount++] = numOM; wlist[wcount++] = numTF; wlist[wcount++] = linePB; wlist[wcount++] = lineOM; wlist[wcount++] = lineTF; wlist[wcount++] = bytePB; wlist[wcount++] = byteOM; wlist[wcount++] = byteTF; XtManageChildren(wlist, wcount); // termRC children XtManageChild(*termRC); // termForm children//// Tell the RowColC about it's children// wcount = 0; wlist[wcount++] = fromPB; wlist[wcount++] = fromContLabel; wlist[wcount++] = fromTF; wlist[wcount++] = toPB; wlist[wcount++] = toContLabel; wlist[wcount++] = toTF; wlist[wcount++] = subjPB; wlist[wcount++] = subjContLabel; wlist[wcount++] = subjTF; wlist[wcount++] = headPB; wlist[wcount++] = headContLabel; wlist[wcount++] = headTF; wlist[wcount++] = bodyPB; wlist[wcount++] = bodyContLabel; wlist[wcount++] = bodyTF; wlist[wcount++] = msgPB; wlist[wcount++] = msgContLabel; wlist[wcount++] = msgTF; wlist[wcount++] = datePB; wlist[wcount++] = dateOM; wlist[wcount++] = dateTF; wlist[wcount++] = statPB; wlist[wcount++] = statIsLabel; wlist[wcount++] = statOM; wlist[wcount++] = numPB; wlist[wcount++] = numOM; wlist[wcount++] = numTF; wlist[wcount++] = linePB; wlist[wcount++] = lineOM; wlist[wcount++] = lineTF; wlist[wcount++] = bytePB; wlist[wcount++] = byteOM; wlist[wcount++] = byteTF; termRC->AddChildren(wlist, wcount); termRC->Defer(False);//// Add "find prev" and "find all" buttons after the apply button// args.Reset(); args.PositionIndex(2); Widget findPrevPB = XmCreatePushButton(buttonRC, "findPrevPB", ARGS); XtAddCallback(findPrevPB, XmNactivateCallback, (XtCallbackProc)DoFindPrev, (XtPointer)this); XtManageChild(findPrevPB); args.PositionIndex(3); Widget findAllPB = XmCreatePushButton(buttonRC, "findAllPB", ARGS); XtAddCallback(findAllPB, XmNactivateCallback, (XtCallbackProc)DoFindAll, (XtPointer)this); XtManageChild(findAllPB); XtUnmanageChild(okPB); // We only use the apply button ShowInfoMsg(); // Add message line HandleHelp(); AddApplyCallback((CallbackFn *)DoFind, (void *)this);} // End constructor/*--------------------------------------------------------------- * Method to display dialog */voidComplexMsgFindWinC::Show(){ findIndex = 0; BoolExpWinC::Show();}/*--------------------------------------------------------------- * Callback routine to add terms to window */voidComplexMsgFindWinC::AddFrom(Widget, ComplexMsgFindWinC *This, XtPointer){ char *cs = XmTextFieldGetString(This->fromTF); This->AddTermExp(new MsgFromExpC(cs)); XtFree(cs);}voidComplexMsgFindWinC::AddTo(Widget, ComplexMsgFindWinC *This, XtPointer){ char *cs = XmTextFieldGetString(This->toTF); This->AddTermExp(new MsgToExpC(cs)); XtFree(cs);}voidComplexMsgFindWinC::AddSubject(Widget, ComplexMsgFindWinC *This, XtPointer){ char *cs = XmTextFieldGetString(This->subjTF); This->AddTermExp(new MsgSubjExpC(cs)); XtFree(cs);}voidComplexMsgFindWinC::AddHead(Widget, ComplexMsgFindWinC *This, XtPointer){ char *cs = XmTextFieldGetString(This->headTF); This->AddTermExp(new MsgHeadExpC(cs)); XtFree(cs);}voidComplexMsgFindWinC::AddBody(Widget, ComplexMsgFindWinC *This, XtPointer){ char *cs = XmTextFieldGetString(This->bodyTF); This->AddTermExp(new MsgBodyExpC(cs)); XtFree(cs);}voidComplexMsgFindWinC::AddMsg(Widget, ComplexMsgFindWinC *This, XtPointer){ char *cs = XmTextFieldGetString(This->msgTF); This->AddTermExp(new MsgMsgExpC(cs)); XtFree(cs);}voidComplexMsgFindWinC::AddDate(Widget, ComplexMsgFindWinC *This, XtPointer){ char *cs = XmTextFieldGetString(This->dateTF); This->AddTermExp(new MsgDateExpC(This->dateOp, cs)); XtFree(cs);}voidComplexMsgFindWinC::AddStatus(Widget, ComplexMsgFindWinC *This, XtPointer){ This->AddTermExp(new MsgStatExpC(This->stat));}voidComplexMsgFindWinC::AddNumber(Widget, ComplexMsgFindWinC *This, XtPointer){ char *cs = XmTextFieldGetString(This->numTF); This->AddTermExp(new MsgNumExpC(This->numOp, atoi(cs))); XtFree(cs);}voidComplexMsgFindWinC::AddLine(Widget, ComplexMsgFindWinC *This, XtPointer){ char *cs = XmTextFieldGetString(This->lineTF); This->AddTermExp(new MsgLineExpC(This->lineOp, atoi(cs))); XtFree(cs);}voidComplexMsgFindWinC::AddByte(Widget, ComplexMsgFindWinC *This, XtPointer){ char *cs = XmTextFieldGetString(This->byteTF); This->AddTermExp(new MsgByteExpC(This->byteOp, atoi(cs))); XtFree(cs);}/*--------------------------------------------------------------- * Callback routine to handle entry of text in a text field. The given
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -