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

📄 sortprefwinc.c

📁 linux下的E_MAIL客户端源码
💻 C
📖 第 1 页 / 共 2 页
字号:
/* *  $Id: SortPrefWinC.C,v 1.3 2001/03/07 10:41:36 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 "SortPrefWinC.h"#include "SortMgrC.h"#include "SortPrefC.h"#include "FolderC.h"#include "FolderPrefC.h"#include "IshAppC.h"#include "MainWinC.h"#include <hgl/WArgList.h>#include <hgl/WXmString.h>#include <hgl/RowColC.h>#include <hgl/VBoxC.h>#include <hgl/CharC.h>#include <Xm/Form.h>#include <Xm/Frame.h>#include <Xm/RowColumn.h>#include <Xm/ToggleB.h>#include <Xm/Label.h>/*--------------------------------------------------------------- *  Constructor */SortPrefWinC::SortPrefWinC(Widget parent) : OptWinC(parent, "sortWin"){   WArgList	args;   Widget	wlist[30];   thread.name  = "THREAD";   number.name  = "NUMBER";   status.name  = "STATUS";   sender.name  = "SENDER";   to.name      = "TO";   subject.name = "SUBJECT";   date.name    = "DATE";   lines.name   = "LINES";   bytes.name   = "BYTES";//// Create appForm hierarchy////    RowColC	keyRC//    Frame	threadFrame//    Frame	folderFrame//   args.Reset();   args.TopAttachment(XmATTACH_FORM);   args.LeftAttachment(XmATTACH_FORM);   args.RightAttachment(XmATTACH_FORM);   args.BottomAttachment(XmATTACH_NONE);   keyRC = new RowColC(appForm, "keyRC", ARGS);   args.TopAttachment(XmATTACH_WIDGET, *keyRC);   Widget	threadFrame = XmCreateFrame(appForm, "threadFrame", ARGS);   args.TopAttachment(XmATTACH_WIDGET, threadFrame);   Widget	folderFrame = XmCreateFrame(appForm, "folderFrame", ARGS);//// Set up 3 Columns//   keyRC->Defer(True);   keyRC->SetOrientation(RcROW_MAJOR);   keyRC->SetColCount(3);   keyRC->SetColAlignment(XmALIGNMENT_BEGINNING);   keyRC->SetColWidthAdjust(RcADJUST_EQUAL);   keyRC->SetColResize(False);   keyRC->SetColResize(0, True);   keyRC->SetColAlignment(0, XmALIGNMENT_CENTER);//// Create keyRC hierarchy//// keyRC//      Label		ordTitle//      Label		keyTitle//      Label		dirTitle//      Label		numberLabel//      ToggleButton	numberTB//      Frame		numberFrame//      Label		statusLabel//      ToggleButton	statusTB//      Frame		statusFrame//      Label		senderLabel//      ToggleButton	senderTB//      Frame		senderFrame//      Label		toLabel//      ToggleButton	toTB//      Frame		toFrame//      Label		subjectLabel//      ToggleButton	subjectTB//      Frame		subjectFrame//      Label		dateLabel//      ToggleButton	dateTB//      Frame		dateFrame//      Label		linesLabel//      ToggleButton	linesTB//      Frame		linesFrame//      Label		bytesLabel//      ToggleButton	bytesTB//      Frame		bytesFrame//   Widget	ordTitle     = XmCreateLabel(*keyRC,  "orderTitle",     0,0);   Widget	keyTitle     = XmCreateLabel(*keyRC,  "keyTitle",       0,0);   Widget	dirTitle     = XmCreateLabel(*keyRC,  "directionTitle", 0,0);   Widget	numberFrame  = XmCreateFrame(*keyRC,  "numberFrame",    0,0);   Widget	statusFrame  = XmCreateFrame(*keyRC,  "statusFrame",    0,0);   Widget	senderFrame  = XmCreateFrame(*keyRC,  "senderFrame",    0,0);   Widget	toFrame      = XmCreateFrame(*keyRC,      "toFrame",    0,0);   Widget	subjectFrame = XmCreateFrame(*keyRC, "subjectFrame",    0,0);   Widget	dateFrame    = XmCreateFrame(*keyRC,    "dateFrame",    0,0);   Widget	linesFrame   = XmCreateFrame(*keyRC,   "linesFrame",    0,0);   Widget	bytesFrame   = XmCreateFrame(*keyRC,   "bytesFrame",    0,0);   args.Reset();   args.Alignment(XmALIGNMENT_CENTER);   args.RecomputeSize(False);   number.label  = XmCreateLabel(*keyRC,  "numberLabel",  ARGS);   status.label  = XmCreateLabel(*keyRC,  "statusLabel",  ARGS);   sender.label  = XmCreateLabel(*keyRC,  "senderLabel",  ARGS);   to.label      = XmCreateLabel(*keyRC,  "toLabel",      ARGS);   subject.label = XmCreateLabel(*keyRC,  "subjectLabel", ARGS);   date.label    = XmCreateLabel(*keyRC,  "dateLabel",    ARGS);   lines.label   = XmCreateLabel(*keyRC,  "linesLabel",   ARGS);   bytes.label   = XmCreateLabel(*keyRC,  "bytesLabel",   ARGS);   args.Reset();   args.Alignment(XmALIGNMENT_BEGINNING);   number.tb     = XmCreateToggleButton(*keyRC,  "numberTB",     ARGS);   status.tb     = XmCreateToggleButton(*keyRC,  "statusTB",     ARGS);   sender.tb     = XmCreateToggleButton(*keyRC,  "senderTB",     ARGS);   to.tb         = XmCreateToggleButton(*keyRC,  "toTB",         ARGS);   subject.tb    = XmCreateToggleButton(*keyRC,  "subjectTB",    ARGS);   date.tb       = XmCreateToggleButton(*keyRC,  "dateTB",       ARGS);   lines.tb      = XmCreateToggleButton(*keyRC,  "linesTB",      ARGS);   bytes.tb      = XmCreateToggleButton(*keyRC,  "bytesTB",      ARGS);   XtAddCallback(number.tb, XmNvalueChangedCallback,		 (XtCallbackProc)ToggleKey, (XtPointer)this);   XtAddCallback(status.tb, XmNvalueChangedCallback,		 (XtCallbackProc)ToggleKey, (XtPointer)this);   XtAddCallback(subject.tb, XmNvalueChangedCallback,		 (XtCallbackProc)ToggleKey, (XtPointer)this);   XtAddCallback(sender.tb, XmNvalueChangedCallback,		 (XtCallbackProc)ToggleKey, (XtPointer)this);   XtAddCallback(to.tb, XmNvalueChangedCallback,		 (XtCallbackProc)ToggleKey, (XtPointer)this);   XtAddCallback(date.tb, XmNvalueChangedCallback,		 (XtCallbackProc)ToggleKey, (XtPointer)this);   XtAddCallback(lines.tb, XmNvalueChangedCallback,		 (XtCallbackProc)ToggleKey, (XtPointer)this);   XtAddCallback(bytes.tb, XmNvalueChangedCallback,		 (XtCallbackProc)ToggleKey, (XtPointer)this);//// Fill frames////   numberFrame//      RadioBox	numberRadio//   statusFrame//      RadioBox	statusRadio//   senderFrame//      RadioBox	senderRadio//   toFrame//      RadioBox	toRadio//   subjectFrame//      RadioBox	subjectRadio//   dateFrame//      RadioBox	dateRadio//   linesFrame//      RadioBox	linesRadio//   bytesFrame//      RadioBox	bytesRadio//   args.Reset();   args.Orientation(XmHORIZONTAL);   args.Packing(XmPACK_TIGHT);   Widget numberRadio  = XmCreateRadioBox(numberFrame,  "numberRadio",  ARGS);   Widget statusRadio  = XmCreateRadioBox(statusFrame,  "statusRadio",  ARGS);   Widget senderRadio  = XmCreateRadioBox(senderFrame,  "senderRadio",  ARGS);   Widget toRadio      = XmCreateRadioBox(toFrame,      "toRadio",      ARGS);   Widget subjectRadio = XmCreateRadioBox(subjectFrame, "subjectRadio", ARGS);   Widget dateRadio    = XmCreateRadioBox(dateFrame,    "dateRadio",    ARGS);   Widget linesRadio   = XmCreateRadioBox(linesFrame,   "linesRadio",   ARGS);   Widget bytesRadio   = XmCreateRadioBox(bytesFrame,   "bytesRadio",   ARGS);//// Create numberRadio hierarchy////    numberRadio//       ToggleButton	   numberATB//       ToggleButton	   numberDTB//   number.atb = XmCreateToggleButton(numberRadio, "ascendTB",  0,0);   number.dtb = XmCreateToggleButton(numberRadio, "descendTB", 0,0);   wlist[0] = number.atb;   wlist[1] = number.dtb;   XtManageChildren(wlist, 2);   XtManageChild(numberRadio);	// numberFrame children   XtAddCallback(number.atb, XmNvalueChangedCallback, (XtCallbackProc)ToggleDir,		 (XtPointer)this);   XtAddCallback(number.dtb, XmNvalueChangedCallback, (XtCallbackProc)ToggleDir,		 (XtPointer)this);//// Create statusRadio hierarchy////    statusRadio//       ToggleButton	   statusATB//       ToggleButton	   statusDTB//   status.atb = XmCreateToggleButton(statusRadio, "ascendTB",  0,0);   status.dtb = XmCreateToggleButton(statusRadio, "descendTB", 0,0);   wlist[0] = status.atb;   wlist[1] = status.dtb;   XtManageChildren(wlist, 2);   XtManageChild(statusRadio);	// statusFrame children   XtAddCallback(status.atb, XmNvalueChangedCallback, (XtCallbackProc)ToggleDir,		 (XtPointer)this);   XtAddCallback(status.dtb, XmNvalueChangedCallback, (XtCallbackProc)ToggleDir,		 (XtPointer)this);//// Create senderRadio hierarchy////    senderRadio//       ToggleButton	   senderATB//       ToggleButton	   senderDTB//   sender.atb = XmCreateToggleButton(senderRadio, "ascendTB",  0,0);   sender.dtb = XmCreateToggleButton(senderRadio, "descendTB", 0,0);   wlist[0] = sender.atb;   wlist[1] = sender.dtb;   XtManageChildren(wlist, 2);   XtManageChild(senderRadio);	// senderFrame children   XtAddCallback(sender.atb, XmNvalueChangedCallback, (XtCallbackProc)ToggleDir,		 (XtPointer)this);   XtAddCallback(sender.dtb, XmNvalueChangedCallback, (XtCallbackProc)ToggleDir,		 (XtPointer)this);//// Create toRadio hierarchy////    toRadio//       ToggleButton	   toATB//       ToggleButton	   toDTB//   to.atb = XmCreateToggleButton(toRadio, "ascendTB",  0,0);   to.dtb = XmCreateToggleButton(toRadio, "descendTB", 0,0);   wlist[0] = to.atb;   wlist[1] = to.dtb;   XtManageChildren(wlist, 2);   XtManageChild(toRadio);	// toFrame children   XtAddCallback(to.atb, XmNvalueChangedCallback, (XtCallbackProc)ToggleDir,		 (XtPointer)this);   XtAddCallback(to.dtb, XmNvalueChangedCallback, (XtCallbackProc)ToggleDir,		 (XtPointer)this);//// Create subjectRadio hierarchy////    subjectRadio//       ToggleButton	   subjectATB//       ToggleButton	   subjectDTB//   subject.atb = XmCreateToggleButton(subjectRadio, "ascendTB",  0,0);   subject.dtb = XmCreateToggleButton(subjectRadio, "descendTB", 0,0);   wlist[0] = subject.atb;   wlist[1] = subject.dtb;   XtManageChildren(wlist, 2);   XtManageChild(subjectRadio);	// subjectFrame children   XtAddCallback(subject.atb, XmNvalueChangedCallback,(XtCallbackProc)ToggleDir,   		 (XtPointer)this);   XtAddCallback(subject.dtb, XmNvalueChangedCallback,(XtCallbackProc)ToggleDir,   		 (XtPointer)this);//// Create dateRadio hierarchy////    dateRadio//       ToggleButton	   dateATB//       ToggleButton	   dateDTB//   date.atb = XmCreateToggleButton(dateRadio, "ascendTB",  0,0);   date.dtb = XmCreateToggleButton(dateRadio, "descendTB", 0,0);   wlist[0] = date.atb;   wlist[1] = date.dtb;   XtManageChildren(wlist, 2);   XtManageChild(dateRadio);	// dateFrame children   XtAddCallback(date.atb, XmNvalueChangedCallback, (XtCallbackProc)ToggleDir,		 (XtPointer)this);   XtAddCallback(date.dtb, XmNvalueChangedCallback, (XtCallbackProc)ToggleDir,		 (XtPointer)this);//// Create linesRadio hierarchy////    linesRadio//       ToggleButton	   linesATB//       ToggleButton	   linesDTB//   lines.atb = XmCreateToggleButton(linesRadio, "ascendTB",  0,0);   lines.dtb = XmCreateToggleButton(linesRadio, "descendTB", 0,0);   wlist[0] = lines.atb;   wlist[1] = lines.dtb;   XtManageChildren(wlist, 2);   XtManageChild(linesRadio);	// linesFrame children   XtAddCallback(lines.atb, XmNvalueChangedCallback, (XtCallbackProc)ToggleDir,		 (XtPointer)this);   XtAddCallback(lines.dtb, XmNvalueChangedCallback, (XtCallbackProc)ToggleDir,		 (XtPointer)this);//// Create bytesRadio hierarchy////    bytesRadio//       ToggleButton	   bytesATB//       ToggleButton	   bytesDTB//   bytes.atb = XmCreateToggleButton(bytesRadio, "ascendTB",  0,0);   bytes.dtb = XmCreateToggleButton(bytesRadio, "descendTB", 0,0);   wlist[0] = bytes.atb;   wlist[1] = bytes.dtb;   XtManageChildren(wlist, 2);   XtManageChild(bytesRadio);	// bytesFrame children   XtAddCallback(bytes.atb, XmNvalueChangedCallback, (XtCallbackProc)ToggleDir,		 (XtPointer)this);   XtAddCallback(bytes.dtb, XmNvalueChangedCallback, (XtCallbackProc)ToggleDir,		 (XtPointer)this);//// Set initial state of buttons//   XmToggleButtonSetState(number.tb,   False, False);   XmToggleButtonSetState(number.atb,  True,  False);   XmToggleButtonSetState(number.dtb,  False, False);   XmToggleButtonSetState(status.tb,   False, False);   XmToggleButtonSetState(status.atb,  True,  False);   XmToggleButtonSetState(status.dtb,  False, False);   XmToggleButtonSetState(sender.tb,   False, False);   XmToggleButtonSetState(sender.atb,  True,  False);   XmToggleButtonSetState(sender.dtb,  False, False);   XmToggleButtonSetState(to.tb,       False, False);   XmToggleButtonSetState(to.atb,      True,  False);   XmToggleButtonSetState(to.dtb,      False, False);   XmToggleButtonSetState(subject.tb,  False, False);   XmToggleButtonSetState(subject.atb, True,  False);   XmToggleButtonSetState(subject.dtb, False, False);   XmToggleButtonSetState(date.tb,     False, False);   XmToggleButtonSetState(date.atb,    True,  False);   XmToggleButtonSetState(date.dtb,    False, False);   XmToggleButtonSetState(lines.tb,    False, False);   XmToggleButtonSetState(lines.atb,   True,  False);   XmToggleButtonSetState(lines.dtb,   False, False);   XmToggleButtonSetState(bytes.tb,    False, False);   XmToggleButtonSetState(bytes.atb,   True,  False);   XmToggleButtonSetState(bytes.dtb,   False, False);//// Add widgets to keyRC//   int	wcount = 0;   wlist[wcount++] = ordTitle;   wlist[wcount++] = keyTitle;   wlist[wcount++] = dirTitle;   wlist[wcount++] = number.label;   wlist[wcount++] = number.tb;   wlist[wcount++] = numberFrame;   wlist[wcount++] = status.label;   wlist[wcount++] = status.tb;   wlist[wcount++] = statusFrame;   wlist[wcount++] = subject.label;   wlist[wcount++] = subject.tb;   wlist[wcount++] = subjectFrame;   wlist[wcount++] = sender.label;   wlist[wcount++] = sender.tb;   wlist[wcount++] = senderFrame;   wlist[wcount++] = to.label;   wlist[wcount++] = to.tb;   wlist[wcount++] = toFrame;   wlist[wcount++] = date.label;   wlist[wcount++] = date.tb;   wlist[wcount++] = dateFrame;   wlist[wcount++] = lines.label;   wlist[wcount++] = lines.tb;   wlist[wcount++] = linesFrame;   wlist[wcount++] = bytes.label;   wlist[wcount++] = bytes.tb;   wlist[wcount++] = bytesFrame;   keyRC->SetChildren(wlist, wcount);   keyRC->Defer(False);//// Add buttons for specifying threading parameters////  threadFrame//     Form		threadForm//        ToggleButton	   threadTB//        Frame		   threadSortFrame//           RadioBox	      threadRadio//              ToggleButton	 threadOldTB//              ToggleButton	 threadNewTB//   Widget	threadForm = XmCreateForm(threadFrame, "threadForm", 0,0);   args.Reset();   args.TopAttachment(XmATTACH_FORM);   args.LeftAttachment(XmATTACH_FORM);   args.RightAttachment(XmATTACH_NONE);   args.BottomAttachment(XmATTACH_NONE);   thread.tb = XmCreateToggleButton(threadForm, "threadTB", ARGS);   XtAddCallback(thread.tb, XmNvalueChangedCallback,		 (XtCallbackProc)ToggleKey, (XtPointer)this);   args.TopAttachment(XmATTACH_WIDGET, thread.tb);   args.BottomAttachment(XmATTACH_FORM);   Widget threadSortFrame = XmCreateFrame(threadForm, "threadSortFrame", ARGS);   args.Reset();   args.Orientation(XmVERTICAL);   args.Packing(XmPACK_TIGHT);   Widget threadRadio  = XmCreateRadioBox(threadSortFrame, "threadRadio", ARGS);   thread.atb = XmCreateToggleButton(threadRadio, "threadOldTB", 0,0);   thread.dtb = XmCreateToggleButton(threadRadio, "threadNewTB", 0,0);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -