📄 mailprefwinc.c
字号:
/* * $Id: MailPrefWinC.C,v 1.5 2000/06/19 13:32:18 evgeny Exp $ * * Copyright (c) 1994 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 "MailPrefWinC.h"#include "MailPrefC.h"#include "IshAppC.h"#include "FileMisc.h"#include "Misc.h"#include "SendWinC.h"#include "MainWinC.h"#include <hgl/WArgList.h>#include <hgl/rsrc.h>#include <hgl/RowColC.h>#include <hgl/TextMisc.h>#include <Xm/Form.h>#include <Xm/Label.h>#include <Xm/Text.h>#include <Xm/TextF.h>#include <Xm/ToggleB.h>#include <Xm/Frame.h>#include <Xm/PushB.h>#include <Xm/RowColumn.h>#include <Xm/CascadeB.h>#include <signal.h>#include <errno.h>#include <unistd.h>/*--------------------------------------------------------------- * Main window constructor */MailPrefWinC::MailPrefWinC(Widget par) : OptWinC(par, "mailPrefWin"){ WArgList args; Widget wlist[24];//// Create appForm hierarchy//// appForm// RowColC fieldRC// Form splitForm// RowColC checkRC// args.Reset(); args.LeftAttachment(XmATTACH_FORM); args.RightAttachment(XmATTACH_FORM); args.TopAttachment(XmATTACH_FORM); args.BottomAttachment(XmATTACH_NONE); fieldRC = new RowColC(appForm, "fieldRC", ARGS); args.TopAttachment(XmATTACH_WIDGET, *fieldRC); Widget splitForm = XmCreateForm(appForm, "splitForm", ARGS); args.TopAttachment(XmATTACH_WIDGET, splitForm); args.BottomAttachment(XmATTACH_FORM); checkRC = new RowColC(appForm, "checkRC", ARGS);//// Set up 2 columns in checkRC// checkRC->Defer(True); checkRC->SetOrientation(RcROW_MAJOR); checkRC->SetColCount(2); checkRC->SetColAlignment(XmALIGNMENT_BEGINNING); checkRC->SetColWidthAdjust(RcADJUST_NONE); checkRC->SetColResize(False);//// Set up 2 columns in fieldRC// fieldRC->Defer(True); fieldRC->SetOrientation(RcROW_MAJOR); fieldRC->SetColCount(2); fieldRC->SetColAlignment(XmALIGNMENT_CENTER); fieldRC->SetColWidthAdjust(0, RcADJUST_EQUAL); fieldRC->SetColWidthAdjust(1, RcADJUST_ATTACH); fieldRC->SetColResize(0, False); fieldRC->SetColResize(1, True); fieldRC->SetUniformRows(False);//// Create checkRC hierarchy//// checkRC// ToggleButton checkAddrTB// checkAddrTB = XmCreateToggleButton(*checkRC, "checkAddrTB", 0,0); wlist[0] = checkAddrTB; checkRC->SetChildren(wlist, 1);//// Create splitForm hierarchy//// splitForm// ToggleButton splitTB// TextField splitTF// Label splitLabel// args.Reset(); args.LeftAttachment(XmATTACH_FORM); args.RightAttachment(XmATTACH_NONE); args.TopAttachment(XmATTACH_FORM); args.BottomAttachment(XmATTACH_FORM); splitTB = XmCreateToggleButton(splitForm, "splitTB", ARGS); args.LeftAttachment(XmATTACH_WIDGET, splitTB); splitTF = CreateTextField(splitForm, "splitTF", ARGS); args.LeftAttachment(XmATTACH_WIDGET, splitTF); Widget splitLabel = XmCreateLabel(splitForm, "splitLabel", ARGS); wlist[0] = splitTB; wlist[1] = splitTF; wlist[2] = splitLabel; XtManageChildren(wlist, 3); // splitForm children//// Create fieldRC hierarchy//// fieldRC// Label fromHeadLabel// TextField fromHeadTF// Label mailTypeLabel// Frame mailTypeFrame// Label textTypeLabel// Frame textTypeFrame// Label charLabel// Form charForm// Label bodyEncLabel// Frame bodyEncFrame// Label headEncLabel// Frame headEncFrame// Label fccLabel// Frame fccFrame// ToggleButton confirmAddrTB// Text confirmAddrText// Label otherHeadLabel// Text otherHeadText// Label sendmailLabel// TextField sendmailTF// ToggleButton deadTB// TextField deadTF// Widget fromHeadLabel = XmCreateLabel (*fieldRC, "fromHeadLabel", 0,0); fromHeadTF = CreateTextField (*fieldRC, "fromHeadTF", 0,0); Widget mailTypeLabel = XmCreateLabel (*fieldRC, "mailTypeLabel", 0,0); Widget mailTypeFrame = XmCreateFrame (*fieldRC, "mailTypeFrame", 0,0); Widget textTypeLabel = XmCreateLabel (*fieldRC, "textTypeLabel", 0,0); Widget textTypeFrame = XmCreateFrame (*fieldRC, "textTypeFrame", 0,0); Widget charLabel = XmCreateLabel (*fieldRC, "charLabel", 0,0); Widget charForm = XmCreateForm (*fieldRC, "charForm", 0,0); Widget bodyEncLabel = XmCreateLabel (*fieldRC, "bodyEncLabel", 0,0); Widget bodyEncFrame = XmCreateFrame (*fieldRC, "bodyEncFrame", 0,0); Widget headEncLabel = XmCreateLabel (*fieldRC, "headEncLabel", 0,0); Widget headEncFrame = XmCreateFrame (*fieldRC, "headEncFrame", 0,0); Widget fccLabel = XmCreateLabel (*fieldRC, "fccLabel", 0,0); Widget fccFrame = XmCreateFrame (*fieldRC, "fccFrame", 0,0); confirmAddrTB = XmCreateToggleButton(*fieldRC, "confirmAddrTB", 0,0); args.Reset(); args.EditMode(XmMULTI_LINE_EDIT); confirmAddrText = CreateText(*fieldRC, "confirmAddrText", ARGS); Widget otherHeadLabel = XmCreateLabel (*fieldRC, "otherHeadLabel", 0,0); args.Reset(); args.EditMode(XmMULTI_LINE_EDIT); otherHeadText = CreateText(*fieldRC, "otherHeadText", ARGS); Widget sendmailLabel = XmCreateLabel (*fieldRC, "sendmailLabel", 0,0); sendmailTF = CreateTextField(*fieldRC, "sendmailTF", 0,0); deadTB = XmCreateToggleButton(*fieldRC, "deadTB", 0,0); deadTF = CreateTextField (*fieldRC, "deadTF", 0,0);//// Create mailTypeFrame hierarchy//// mailTypeFrame// RadioBox mailTypeRadio// ToggleButton mailPlainTB// ToggleButton mailMimeTB// ToggleButton mailAltTB// args.Reset(); args.Packing(XmPACK_TIGHT); args.Orientation(XmHORIZONTAL); Widget mailTypeRadio = XmCreateRadioBox(mailTypeFrame, "mailTypeRadio",ARGS); mailPlainTB = XmCreateToggleButton(mailTypeRadio, "mailPlainTB", 0,0); mailMimeTB = XmCreateToggleButton(mailTypeRadio, "mailMimeTB", 0,0); mailAltTB = XmCreateToggleButton(mailTypeRadio, "mailAltTB", 0,0); wlist[0] = mailPlainTB; wlist[1] = mailMimeTB; wlist[2] = mailAltTB; XtManageChildren(wlist, 3); // mailTypeRadio children XtManageChild(mailTypeRadio); // mailTypeFrame children//// Create textTypeFrame hierarchy//// textTypeFrame// RadioBox textTypeRadio// ToggleButton textPlainTB// ToggleButton textRichTB// args.Reset(); args.Packing(XmPACK_TIGHT); args.Orientation(XmHORIZONTAL); Widget textTypeRadio = XmCreateRadioBox(textTypeFrame, "textTypeRadio",ARGS); textPlainTB = XmCreateToggleButton(textTypeRadio, "textPlainTB", 0,0); textRichTB = XmCreateToggleButton(textTypeRadio, "textRichTB", 0,0); wlist[0] = textPlainTB; wlist[1] = textRichTB; XtManageChildren(wlist, 2); // textTypeRadio children XtManageChild(textTypeRadio); // textTypeFrame children//// Create charForm hierarchy//// charForm// TextField charTF// MenuBar charMB// CascadeButton charCB// PulldownMenu charPD// PushButton charAsciiPB// PushButton charIso1PB// PushButton charIso2PB// PushButton charIso3PB// PushButton charIso4PB// PushButton charIso5PB// PushButton charIso6PB// PushButton charIso7PB// PushButton charIso8PB// PushButton charIso9PB// PushButton charIso13PB// args.Reset(); args.TopAttachment(XmATTACH_FORM); args.LeftAttachment(XmATTACH_NONE); args.RightAttachment(XmATTACH_FORM); args.BottomAttachment(XmATTACH_FORM); Widget charMB = XmCreateMenuBar(charForm, "charMB", ARGS); args.LeftAttachment(XmATTACH_FORM); args.RightAttachment(XmATTACH_WIDGET, charMB); args.Value("us-ascii"); charTF = CreateTextField(charForm, "charTF", ARGS); Widget charPD = XmCreatePulldownMenu(charMB, "charPD", 0,0); charAsciiPB = XmCreatePushButton(charPD, "us-ascii", 0,0); charIso1PB = XmCreatePushButton(charPD, "iso-8859-1", 0,0); charIso2PB = XmCreatePushButton(charPD, "iso-8859-2", 0,0); charIso3PB = XmCreatePushButton(charPD, "iso-8859-3", 0,0); charIso4PB = XmCreatePushButton(charPD, "iso-8859-4", 0,0); charIso5PB = XmCreatePushButton(charPD, "iso-8859-5", 0,0); charIso6PB = XmCreatePushButton(charPD, "iso-8859-6", 0,0); charIso7PB = XmCreatePushButton(charPD, "iso-8859-7", 0,0); charIso8PB = XmCreatePushButton(charPD, "iso-8859-8", 0,0); charIso9PB = XmCreatePushButton(charPD, "iso-8859-9", 0,0); charIso13PB = XmCreatePushButton(charPD, "iso-8859-13", 0,0); XtAddCallback(charAsciiPB, XmNactivateCallback, (XtCallbackProc)DoCharset, this); XtAddCallback(charIso1PB, XmNactivateCallback, (XtCallbackProc)DoCharset, this); XtAddCallback(charIso2PB, XmNactivateCallback, (XtCallbackProc)DoCharset, this); XtAddCallback(charIso3PB, XmNactivateCallback, (XtCallbackProc)DoCharset, this); XtAddCallback(charIso4PB, XmNactivateCallback, (XtCallbackProc)DoCharset, this); XtAddCallback(charIso5PB, XmNactivateCallback, (XtCallbackProc)DoCharset, this); XtAddCallback(charIso6PB, XmNactivateCallback, (XtCallbackProc)DoCharset, this); XtAddCallback(charIso7PB, XmNactivateCallback, (XtCallbackProc)DoCharset, this); XtAddCallback(charIso8PB, XmNactivateCallback, (XtCallbackProc)DoCharset, this); XtAddCallback(charIso9PB, XmNactivateCallback, (XtCallbackProc)DoCharset, this); XtAddCallback(charIso13PB, XmNactivateCallback, (XtCallbackProc)DoCharset, this); wlist[0] = charAsciiPB; wlist[1] = charIso1PB; wlist[2] = charIso2PB; wlist[3] = charIso3PB; wlist[4] = charIso4PB; wlist[5] = charIso5PB; wlist[6] = charIso6PB; wlist[7] = charIso7PB; wlist[8] = charIso8PB; wlist[9] = charIso9PB; wlist[10] = charIso13PB; XtManageChildren(wlist, 11); // charPD children args.Reset(); args.SubMenuId(charPD); Widget charCB = XmCreateCascadeButton(charMB, "charCB", ARGS); XtManageChild(charCB); wlist[0] = charMB; wlist[1] = charTF; XtManageChildren(wlist, 2); // charForm children//// Create fccFrame hierarchy//// fccFrame// RowColumn fccRC// ToggleButton noFccTB// Form fccFolderForm// Form fccPatternForm// args.Reset(); args.Orientation(XmVERTICAL); args.Packing(XmPACK_TIGHT); Widget fccRC = XmCreateRowColumn(fccFrame, "fccRC", ARGS); args.Reset(); args.IndicatorType(XmONE_OF_MANY); noFccTB = XmCreateToggleButton(fccRC, "noFccTB", ARGS); XtManageChild(noFccTB); XtAddCallback(noFccTB, XmNvalueChangedCallback, (XtCallbackProc)FccChanged, this); Widget fccFolderForm = XmCreateForm(fccRC, "fccFolderForm", 0,0); Widget fccPatternForm = XmCreateForm(fccRC, "fccPatternForm", 0,0);//// Create fccFolderForm hierarchy//// fccFolderForm// ToggleButton fccFolderTB// TextField fccFolderTF// args.Reset(); args.TopAttachment(XmATTACH_FORM); args.LeftAttachment(XmATTACH_FORM); args.RightAttachment(XmATTACH_NONE); args.BottomAttachment(XmATTACH_FORM); args.IndicatorType(XmONE_OF_MANY); fccFolderTB = XmCreateToggleButton(fccFolderForm, "fccFolderTB", ARGS); XtManageChild(fccFolderTB); XtAddCallback(fccFolderTB, XmNvalueChangedCallback, (XtCallbackProc)FccChanged, this); args.LeftAttachment(XmATTACH_WIDGET, fccFolderTB); args.RightAttachment(XmATTACH_FORM); fccFolderTF = CreateTextField(fccFolderForm, "fccFolderTF", ARGS); XtManageChild(fccFolderTF); XtManageChild(fccFolderForm); XtAddCallback(fccFolderTF, XmNvalueChangedCallback, (XtCallbackProc)AutoSelectFolder, this);//// Create fccPatternForm hierarchy//// fccPatternForm// ToggleButton fccPatternTB// OptionMenu fccPatternOM// PulldownMenu fccPatternPD// Label fccPatternLabel// TextField fccPatternTF// args.Reset(); args.TopAttachment(XmATTACH_FORM); args.LeftAttachment(XmATTACH_FORM); args.RightAttachment(XmATTACH_NONE); args.BottomAttachment(XmATTACH_FORM); args.IndicatorType(XmONE_OF_MANY); fccPatternTB = XmCreateToggleButton(fccPatternForm, "fccPatternTB", ARGS); XtManageChild(fccPatternTB); XtAddCallback(fccPatternTB, XmNvalueChangedCallback, (XtCallbackProc)FccChanged, this); Widget fccPatternPD = XmCreatePulldownMenu(fccPatternForm, "fccPatternPD", 0,0); args.LeftAttachment(XmATTACH_WIDGET, fccPatternTB); args.SubMenuId(fccPatternPD); fccPatternOM = XmCreateOptionMenu(fccPatternForm, "fccPatternOM", ARGS); XtManageChild(fccPatternOM); args.LeftAttachment(XmATTACH_WIDGET, fccPatternOM); Widget fccPatternLabel = XmCreateLabel(fccPatternForm, "fccPatternLabel", ARGS); XtManageChild(fccPatternLabel); args.LeftAttachment(XmATTACH_WIDGET, fccPatternLabel); args.RightAttachment(XmATTACH_FORM); fccPatternTF = CreateTextField(fccPatternForm, "fccPatternTF", ARGS); XtManageChild(fccPatternTF); XtManageChild(fccPatternForm); XtAddCallback(fccPatternTF, XmNvalueChangedCallback, (XtCallbackProc)AutoSelectPattern, this);//// Create fccPatternPD hierarchy//// fccPatternPD// PushButton fccUserPB// PushButton fccAddrPB// PushButton fccYearPB// PushButton fccMonthPB// PushButton fccWeekPB// PushButton fccDayPB// fccUserPB = XmCreatePushButton(fccPatternPD, "fccUserPB", 0,0); fccAddrPB = XmCreatePushButton(fccPatternPD, "fccAddrPB", 0,0); fccYearPB = XmCreatePushButton(fccPatternPD, "fccYearPB", 0,0); fccMonthPB = XmCreatePushButton(fccPatternPD, "fccMonthPB", 0,0); fccWeekPB = XmCreatePushButton(fccPatternPD, "fccWeekPB", 0,0); fccDayPB = XmCreatePushButton(fccPatternPD, "fccDayPB", 0,0); XtAddCallback(fccUserPB, XmNactivateCallback, (XtCallbackProc)AutoSelectPattern, this); XtAddCallback(fccAddrPB, XmNactivateCallback, (XtCallbackProc)AutoSelectPattern, this); XtAddCallback(fccYearPB, XmNactivateCallback, (XtCallbackProc)AutoSelectPattern, this); XtAddCallback(fccMonthPB, XmNactivateCallback, (XtCallbackProc)AutoSelectPattern, this); XtAddCallback(fccWeekPB, XmNactivateCallback, (XtCallbackProc)AutoSelectPattern, this); XtAddCallback(fccDayPB, XmNactivateCallback, (XtCallbackProc)AutoSelectPattern, this); wlist[0] = fccUserPB; wlist[1] = fccAddrPB; wlist[2] = fccYearPB; wlist[3] = fccMonthPB; wlist[4] = fccWeekPB; wlist[5] = fccDayPB; XtManageChildren(wlist, 6); XtManageChild(fccRC);//// Create bodyEncFrame hierarchy//// bodyEncFrame// RadioBox bodyEncRadio// ToggleButton bodyEnc8bitTB// ToggleButton bodyEncQpTB// args.Reset(); args.Orientation(XmHORIZONTAL); args.Packing(XmPACK_TIGHT); Widget bodyEncRadio = XmCreateRadioBox(bodyEncFrame, "bodyEncRadio",ARGS); bodyEnc8bitTB = XmCreateToggleButton(bodyEncRadio, "bodyEnc8bitTB", 0,0); bodyEncQpTB = XmCreateToggleButton(bodyEncRadio, "bodyEncQpTB", 0,0); wlist[0] = bodyEnc8bitTB; wlist[1] = bodyEncQpTB; XtManageChildren(wlist, 2); // bodyEncRadio children XtManageChild(bodyEncRadio); // bodyEncFrame children//// Create headEncFrame hierarchy//// headEncFrame// RadioBox headEncRadio// ToggleButton headEncNoneTB// ToggleButton headEncQTB// ToggleButton headEncBTB// args.Reset(); args.Orientation(XmHORIZONTAL); args.Packing(XmPACK_TIGHT); Widget headEncRadio = XmCreateRadioBox(headEncFrame, "headEncRadio",ARGS); headEncNoneTB = XmCreateToggleButton(headEncRadio, "headEncNoneTB", 0,0); headEncQTB = XmCreateToggleButton(headEncRadio, "headEncQTB", 0,0); headEncBTB = XmCreateToggleButton(headEncRadio, "headEncBTB", 0,0); wlist[0] = headEncNoneTB; wlist[1] = headEncQTB; wlist[2] = headEncBTB; XtManageChildren(wlist, 3); // headEncRadio children XtManageChild(headEncRadio); // headEncFrame children checkRC->Defer(False); wlist[0] = *fieldRC; wlist[1] = splitForm;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -