⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mailprefwinc.c

📁 linux下的E_MAIL客户端源码
💻 C
📖 第 1 页 / 共 2 页
字号:
/* *  $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 + -