📄 complexmsgfindwinc.c
字号:
/* * $Id: ComplexMsgFindWinC.C,v 1.4 2000/08/07 11:05:16 evgeny Exp $ * * Copyright (c) 1993 HAL Computer Systems International, Ltd. * * HAL COMPUTER SYSTEMS INTERNATIONAL, LTD. * 1315 Dell Avenue * Campbell, CA 95008 * * Author: Greg Hilton * Contributors: Tom Lang, Frank Bieser, and others * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * http://www.gnu.org/copyleft/gpl.html * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */#include <config.h>#include "ComplexMsgFindWinC.h"#include "IshAppC.h"#include "MainWinC.h"#include "MsgItemC.h"#include "AppPrefC.h"#include "ReadWinC.h"#include <hgl/WArgList.h>#include <hgl/rsrc.h>#include <hgl/RowColC.h>#include <hgl/FieldViewC.h>#include <hgl/VBoxC.h>#include <hgl/HalAppC.h>#include <hgl/TextMisc.h>#include <Xm/PushB.h>#include <Xm/TextF.h>#include <Xm/RowColumn.h>#include <Xm/ToggleB.h>#include <Xm/Label.h>/*--------------------------------------------------------------- * Constructor */ComplexMsgFindWinC::ComplexMsgFindWinC(Widget parent) : BoolExpWinC(parent){ WArgList args; Widget wlist[33]; findIndex = 0; numOp = MsgNumExpC::LT; dateOp = MsgDateExpC::LT; lineOp = MsgLineExpC::LT; byteOp = MsgByteExpC::LT; stat = MSG_NEW;//// Create termForm hierarchy//// RowColC termRC// args.Reset(); args.TopAttachment(XmATTACH_FORM); args.LeftAttachment(XmATTACH_FORM); args.RightAttachment(XmATTACH_FORM); args.BottomAttachment(XmATTACH_FORM); RowColC *termRC = new RowColC(termForm, "termRC", ARGS); termRC->Defer(True);//// Set up 3 columns// termRC->SetOrientation(RcROW_MAJOR); termRC->SetColCount(3); termRC->SetColAlignment(XmALIGNMENT_CENTER); termRC->SetColWidthAdjust(RcADJUST_EQUAL); termRC->SetColWidthAdjust(2, RcADJUST_ATTACH); termRC->SetColResize(False); termRC->SetColResize(2, True);//// Create termRC children//// PushButton fromPB// Label fromContLabel// TextField fromTF// PushButton toPB// Label toContLabel// TextField toTF// PushButton subjPB// Label subjContLabel// TextField subjTF// PushButton headPB// Label headContLabel// TextField headTF// PushButton bodyPB// Label bodyContLabel// TextField bodyTF// PushButton msgPB// Label msgContLabel// TextField msgTF// PushButton datePB// OptionMenu dateOM// TextField dateTF// PushButton statPB// Label statIsLabel// OptionMenu statOM// PushButton numPB// OptionMenu numOM// TextField numTF// PushButton linePB// OptionMenu lineOM// TextField lineTF// PushButton bytePB// OptionMenu byteOM// TextField byteTF// Widget fromPB = XmCreatePushButton(*termRC, "fromPB", 0,0); Widget fromContLabel = XmCreateLabel(*termRC, "fromContLabel", 0,0); fromTF = CreateTextField (*termRC, "fromTF", 0,0); Widget toPB = XmCreatePushButton(*termRC, "toPB", 0,0); Widget toContLabel = XmCreateLabel(*termRC, "toContLabel", 0,0); toTF = CreateTextField (*termRC, "toTF", 0,0); Widget subjPB = XmCreatePushButton(*termRC, "subjPB", 0,0); Widget subjContLabel = XmCreateLabel(*termRC, "subjContLabel", 0,0); subjTF = CreateTextField (*termRC, "subjTF", 0,0); Widget headPB = XmCreatePushButton(*termRC, "headPB", 0,0); Widget headContLabel = XmCreateLabel(*termRC, "headContLabel", 0,0); headTF = CreateTextField (*termRC, "headTF", 0,0); Widget bodyPB = XmCreatePushButton(*termRC, "bodyPB", 0,0); Widget bodyContLabel = XmCreateLabel(*termRC, "bodyContLabel", 0,0); bodyTF = CreateTextField (*termRC, "bodyTF", 0,0); Widget msgPB = XmCreatePushButton(*termRC, "msgPB", 0,0); Widget msgContLabel = XmCreateLabel(*termRC, "msgContLabel", 0,0); msgTF = CreateTextField (*termRC, "msgTF", 0,0); Widget datePB = XmCreatePushButton(*termRC, "datePB", 0,0); Widget dateOM = XmCreateOptionMenu(*termRC, "dateOM", 0,0); dateTF = CreateTextField (*termRC, "dateTF", 0,0); Widget statPB = XmCreatePushButton(*termRC, "statPB", 0,0); Widget statIsLabel = XmCreateLabel(*termRC, "statIsLabel", 0,0); Widget statOM = XmCreateOptionMenu(*termRC, "statOM", 0,0); Widget numPB = XmCreatePushButton(*termRC, "numPB", 0,0); Widget numOM = XmCreateOptionMenu(*termRC, "numOM", 0,0); numTF = CreateTextField (*termRC, "numTF", 0,0); Widget linePB = XmCreatePushButton(*termRC, "linePB", 0,0); Widget lineOM = XmCreateOptionMenu(*termRC, "lineOM", 0,0); lineTF = CreateTextField (*termRC, "lineTF", 0,0); Widget bytePB = XmCreatePushButton(*termRC, "bytePB", 0,0); Widget byteOM = XmCreateOptionMenu(*termRC, "byteOM", 0,0); byteTF = CreateTextField (*termRC, "byteTF", 0,0); XtAddCallback(fromPB, XmNactivateCallback, (XtCallbackProc)AddFrom, (XtPointer)this); XtAddCallback(toPB, XmNactivateCallback, (XtCallbackProc)AddTo, (XtPointer)this); XtAddCallback(subjPB, XmNactivateCallback, (XtCallbackProc)AddSubject, (XtPointer)this); XtAddCallback(headPB, XmNactivateCallback, (XtCallbackProc)AddHead, (XtPointer)this); XtAddCallback(bodyPB, XmNactivateCallback, (XtCallbackProc)AddBody, (XtPointer)this); XtAddCallback(msgPB, XmNactivateCallback, (XtCallbackProc)AddMsg, (XtPointer)this); XtAddCallback(datePB, XmNactivateCallback, (XtCallbackProc)AddDate, (XtPointer)this); XtAddCallback(statPB, XmNactivateCallback, (XtCallbackProc)AddStatus, (XtPointer)this); XtAddCallback(numPB, XmNactivateCallback, (XtCallbackProc)AddNumber, (XtPointer)this); XtAddCallback(linePB, XmNactivateCallback, (XtCallbackProc)AddLine, (XtPointer)this); XtAddCallback(bytePB, XmNactivateCallback, (XtCallbackProc)AddByte, (XtPointer)this); XtAddCallback(fromTF, XmNvalueChangedCallback, (XtCallbackProc)EnablePB, (XtPointer)fromPB); XtAddCallback(toTF, XmNvalueChangedCallback, (XtCallbackProc)EnablePB, (XtPointer)toPB); XtAddCallback(subjTF, XmNvalueChangedCallback, (XtCallbackProc)EnablePB, (XtPointer)subjPB); XtAddCallback(headTF, XmNvalueChangedCallback, (XtCallbackProc)EnablePB, (XtPointer)headPB); XtAddCallback(bodyTF, XmNvalueChangedCallback, (XtCallbackProc)EnablePB, (XtPointer)bodyPB); XtAddCallback(msgTF, XmNvalueChangedCallback, (XtCallbackProc)EnablePB, (XtPointer)msgPB); XtAddCallback(dateTF, XmNvalueChangedCallback, (XtCallbackProc)EnablePB, (XtPointer)datePB); XtAddCallback(numTF, XmNvalueChangedCallback, (XtCallbackProc)EnablePB, (XtPointer)numPB); XtAddCallback(lineTF, XmNvalueChangedCallback, (XtCallbackProc)EnablePB, (XtPointer)linePB); XtAddCallback(byteTF, XmNvalueChangedCallback, (XtCallbackProc)EnablePB, (XtPointer)bytePB);//// Set the initial state of the push buttons// EnablePB(fromTF, fromPB, NULL); EnablePB(toTF, toPB, NULL); EnablePB(subjTF, subjPB, NULL); EnablePB(headTF, headPB, NULL); EnablePB(bodyTF, bodyPB, NULL); EnablePB(msgTF, msgPB, NULL); EnablePB(dateTF, datePB, NULL); EnablePB(numTF, numPB, NULL); EnablePB(lineTF, linePB, NULL); EnablePB(byteTF, bytePB, NULL);//// Create datePD hierarchy//// PulldowmMenu datePD// PushButton ltPB// PushButton lePB// PushButton eqPB// PushButton gePB// PushButton gtPB// PushButton nePB// Widget datePD = XmCreatePulldownMenu(*termRC, "datePD", 0,0); args.Reset(); args.UserData((XtPointer)MsgDateExpC::LT); Widget ltPB = XmCreatePushButton(datePD, "ltPB", ARGS); args.UserData((XtPointer)MsgDateExpC::LE); Widget lePB = XmCreatePushButton(datePD, "lePB", ARGS); args.UserData((XtPointer)MsgDateExpC::EQ); Widget eqPB = XmCreatePushButton(datePD, "eqPB", ARGS); args.UserData((XtPointer)MsgDateExpC::GE); Widget gePB = XmCreatePushButton(datePD, "gePB", ARGS); args.UserData((XtPointer)MsgDateExpC::GT); Widget gtPB = XmCreatePushButton(datePD, "gtPB", ARGS); args.UserData((XtPointer)MsgDateExpC::NE); Widget nePB = XmCreatePushButton(datePD, "nePB", ARGS); XtAddCallback(ltPB, XmNactivateCallback, (XtCallbackProc)ChangeDateOp, (XtPointer)this); XtAddCallback(lePB, XmNactivateCallback, (XtCallbackProc)ChangeDateOp, (XtPointer)this); XtAddCallback(eqPB, XmNactivateCallback, (XtCallbackProc)ChangeDateOp, (XtPointer)this); XtAddCallback(gePB, XmNactivateCallback, (XtCallbackProc)ChangeDateOp, (XtPointer)this); XtAddCallback(gtPB, XmNactivateCallback, (XtCallbackProc)ChangeDateOp, (XtPointer)this); XtAddCallback(nePB, XmNactivateCallback, (XtCallbackProc)ChangeDateOp, (XtPointer)this); XtVaSetValues(dateOM, XmNsubMenuId, datePD, NULL); wlist[0] = ltPB; wlist[1] = lePB; wlist[2] = eqPB; wlist[3] = gePB; wlist[4] = gtPB; wlist[5] = nePB; XtManageChildren(wlist, 6); // datePD children//// Create statPD hierarchy//// PulldowmMenu statPD// PushButton newPB// PushButton readPB// PushButton deletedPB// PushButton savedPB// PushButton repliedPB// PushButton forwardedPB// PushButton resentPB// PushButton printedPB// PushButton filteredPB// PushButton mimePB// Widget statPD = XmCreatePulldownMenu(*termRC, "statPD", 0,0); args.Reset(); args.UserData((XtPointer)MSG_NEW); Widget newPB = XmCreatePushButton(statPD, "newPB", ARGS); args.UserData((XtPointer)MSG_READ); Widget readPB = XmCreatePushButton(statPD, "readPB", ARGS); args.UserData((XtPointer)MSG_DELETED); Widget deletedPB = XmCreatePushButton(statPD, "deletedPB", ARGS); args.UserData((XtPointer)MSG_SAVED); Widget savedPB = XmCreatePushButton(statPD, "savedPB", ARGS); args.UserData((XtPointer)MSG_REPLIED); Widget repliedPB = XmCreatePushButton(statPD, "repliedPB", ARGS); args.UserData((XtPointer)MSG_FORWARDED); Widget forwardedPB = XmCreatePushButton(statPD, "forwardedPB", ARGS); args.UserData((XtPointer)MSG_RESENT); Widget resentPB = XmCreatePushButton(statPD, "resentPB", ARGS); args.UserData((XtPointer)MSG_PRINTED); Widget printedPB = XmCreatePushButton(statPD, "printedPB", ARGS); args.UserData((XtPointer)MSG_FILTERED); Widget filteredPB = XmCreatePushButton(statPD, "filteredPB", ARGS); args.UserData((XtPointer)MSG_MIME); Widget mimePB = XmCreatePushButton(statPD, "mimePB", ARGS); AddActivate(newPB, ChangeStatus, this); AddActivate(readPB, ChangeStatus, this); AddActivate(deletedPB, ChangeStatus, this); AddActivate(savedPB, ChangeStatus, this); AddActivate(repliedPB, ChangeStatus, this); AddActivate(forwardedPB, ChangeStatus, this); AddActivate(resentPB, ChangeStatus, this); AddActivate(printedPB, ChangeStatus, this); AddActivate(filteredPB, ChangeStatus, this); AddActivate(mimePB, ChangeStatus, this); XtVaSetValues(statOM, XmNsubMenuId, statPD, NULL); wlist[0] = newPB; wlist[1] = readPB; wlist[2] = savedPB; wlist[3] = deletedPB; wlist[4] = repliedPB; wlist[5] = forwardedPB; wlist[6] = resentPB; wlist[7] = printedPB; wlist[8] = filteredPB; wlist[9] = mimePB; XtManageChildren(wlist, 10); // statPD children//// Create numPD hierarchy//// PulldowmMenu numPD// PushButton ltPB
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -