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

📄 mainwinp.c

📁 linux下的E_MAIL客户端源码
💻 C
📖 第 1 页 / 共 5 页
字号:
/* *  $Id: MainWinP.C,v 1.14 2001/07/28 18:26:03 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 "MainWinP.h"#include "MainWinC.h"#include "IshAppC.h"#include "QuickMenu.h"#include "AppPrefC.h"#include "AliasPrefC.h"#include "SumPrefC.h"#include "FolderPrefC.h"#include "MsgItemC.h"#include "MsgC.h"#include "IconPrefC.h"#include "FolderC.h"#include "Fork.h"#include "AlertPrefC.h"#include "SaveMgrC.h"#include "ConfPrefC.h"#include "AutoFilePrefC.h"#include "FileChooserWinC.h"#include "MsgFindWinC.h"#include "ReadWinC.h"#include "PrintWinC.h"#include "PipeWinC.h"#include "MsgListC.h"#include "ReadPrefC.h"#include <hgl/WArgList.h>#include <hgl/TBoxC.h>#include <hgl/VBoxC.h>#include <hgl/FieldViewC.h>#include <hgl/PixmapC.h>#include <hgl/rsrc.h>#include <hgl/WXmString.h>#include <hgl/RegexC.h>#include <hgl/RangeC.h>#include <hgl/SysErr.h>#include <hgl/VItemC.h>#include <hgl/System.h>#include <hgl/WidgetListC.h>#include <Xm/PushB.h>#include <Xm/Separator.h>#include <Xm/CascadeB.h>#include <Xm/RowColumn.h>#include <Xm/PanedW.h>#include <Xm/Form.h>#include <Xm/Label.h>#include <Xm/MessageB.h>#include <Xm/Protocols.h>#include <Xm/AtomMgr.h>#include <unistd.h>#include <sys/wait.h>/*--------------------------------------------------------------- *  Constructor */MainWinP::MainWinP(MainWinC *mw){   pub      = mw;   iconDict = new PixmapNameDictC;   iconDict->AllowDuplicates(FALSE);   delFolderList = new FolderListC;   lastDelList   = new VItemListC;   recentMenuTime  = 0;   deferRecentMenu = False;   saveQueryWin	   = NULL;   newFolderWin	   = NULL;   openSelectWin   = NULL;   folderVBox	   = NULL;   msgTBox	   = NULL;   fieldView	   = NULL;   msgFindWin	   = NULL;   printWin        = NULL;   pipeWin         = NULL;} // End constructor/*--------------------------------------------------------------- *  Destructor */MainWinP::~MainWinP(){   //delete commentWin;	Don't do this since it is part of ishApp->sendWinList   delete printWin;   delete pipeWin;   delete newFolderWin;   delete openSelectWin;   delete msgFindWin;   delete folderVBox;   delete fieldView;   delete msgTBox;//// Delete pixmaps//   u_int	count = iconDict->size();   int i=0; for (i=0; i<count; i++) {      PixmapC   *pm = (*iconDict)[i]->val;      delete pm;   }   delete iconDict;   delete noMailPM;   delete newMailPM;   delete readMailPM;   delete unreadMailPM;   delete delFolderList;   delete lastDelList;} // End destructor/*--------------------------------------------------------------- *  Method to build menu hierarchy */voidMainWinP::BuildMenus(){   BuildFileMenu();   BuildFolderMenu();   BuildMsgMenu();   BuildOptMenu();   BuildHelpMenu();//// Set the font on the fileCB since it is created before the user's font//    resources are set.//   XmFontList	fontList;   XtVaGetValues(pub->helpCB, XmNfontList, &fontList, NULL);   XtVaSetValues(pub->fileCB, XmNfontList,  fontList, NULL);} // End BuildMenus/*--------------------------------------------------------------- *  Method to build file menu hierarchy */voidMainWinP::BuildFileMenu(){   Widget	wlist[5];//// filePD//    PushButton	filePrintPB//    Separator		fileSep1//    PushButton	fileSleepPB//    PushButton	fileQuitPB//    PushButton	fileExitPB//   filePrintPB          = XmCreatePushButton(pub->filePD, "filePrintPB",   0,0);   Widget fileSep1      = XmCreateSeparator (pub->filePD, "fileSep1",      0,0);   Widget fileSleepPB   = XmCreatePushButton(pub->filePD, "fileSleepPB",   0,0);   Widget fileQuitPB    = XmCreatePushButton(pub->filePD, "fileQuitPB",    0,0);   Widget fileExitPB    = XmCreatePushButton(pub->filePD, "fileExitPB",    0,0);   wlist[0] = filePrintPB;   wlist[1] = fileSep1;   wlist[2] = fileSleepPB;   wlist[3] = fileQuitPB;   wlist[4] = fileExitPB;   XtManageChildren(wlist, 5);   AddActivate(filePrintPB,   DoMsgPrint,    this);   AddActivate(fileSleepPB,   DoFileSleep,   this);   AddActivate(fileQuitPB,    DoFileQuit,    this);   AddActivate(fileExitPB,    DoFileExit,    this);   halApp->AddExitCallback((CallbackFn *)Exit, (void *)this);} // End BuildFileMenu/*--------------------------------------------------------------- *  Method to build folder menu hierarchy */voidMainWinP::BuildFolderMenu(){   WArgList	args;   Cardinal	wcount;   Widget	wlist[16];//// Create cascade button and pulldown menu//   Widget	folderCB = XmCreateCascadeButton(pub->menuBar, "folderCB", 0,0);   Widget	folderPD = XmCreatePulldownMenu (pub->menuBar, "folderPD", 0,0);   XtVaSetValues(folderCB, XmNsubMenuId, folderPD, NULL);   XtManageChild(folderCB);//// Create folderPD hierarchy//// folderPD//    PushButton	folderNewPB//    PushButton	folderOpenPB//    CascadeButton	folderOpenRecentCB//    PulldownMenu	folderOpenRecentPD//    CascadeButton	folderOpenQuickCB//    PulldownMenu	folderOpenQuickPD//    CascadeButton	folderActCB//    PulldownMenu	folderActPD//       PushButton	   folderActSysPB//       PushButton	   folderActSelPB//    Separator		folderSep1//    CascadeButton	folderSaveCB//    PulldownMenu	folderSavePD//       PushButton	   folderSaveCurPB//       PushButton	   folderSaveSelPB//       PushButton	   folderSaveAllPB//    CascadeButton	folderReadCB//    PulldownMenu	folderReadPD//       PushButton	   folderReadCurPB//       PushButton	   folderReadSelPB//       PushButton	   folderReadAllPB//    CascadeButton	folderCloseCB//    PulldownMenu	folderClosePD//       PushButton	   folderCloseCurPB//       PushButton	   folderCloseSelPB//       PushButton	   folderCloseAllPB//    CascadeButton	folderDelCB//    PulldownMenu	folderDelPD//       PushButton	   folderDelCurPB//       PushButton	   folderDelSelPB//       PushButton	   folderDelAllPB//    Separator		folderSep2//    PushButton	folderSelPB//    PushButton	folderDeselPB//   Widget folderNewPB  = XmCreatePushButton(folderPD, "folderNewPB",   0,0);   Widget folderOpenPB = XmCreatePushButton(folderPD, "folderOpenPB",  0,0);   folderOpenRecentCB =      XmCreateCascadeButton(folderPD, "folderOpenRecentCB", 0,0);   folderOpenRecentPD =      XmCreatePulldownMenu (folderPD, "folderOpenRecentPD", 0,0);   XtVaSetValues(folderOpenRecentCB, XmNsubMenuId, folderOpenRecentPD, NULL);//// Add a data structure and a pulldown menu for the quick function//   QuickInfoT	*cbData = new QuickInfoT;   if ( (!ishApp->appPrefs->usingImap) ||	(!ishApp->folderPrefs->UsingLocal()) )       cbData->dir = ishApp->appPrefs->FolderDir();   else       cbData->dir = "";   cbData->menu = XmCreatePulldownMenu(folderPD, "quickPD", 0,0);   cbData->menuTime = 0;   args.Reset();   args.UserData(cbData);   args.SubMenuId(cbData->menu);   folderOpenQuickCB = XmCreateCascadeButton(folderPD,"folderOpenQuickCB",ARGS);   Widget folderActCB   = XmCreateCascadeButton(folderPD, "folderActCB",   0,0);   Widget folderSep1    = XmCreateSeparator    (folderPD, "folderSep1",    0,0);   Widget folderSaveCB  = XmCreateCascadeButton(folderPD, "folderSaveCB",  0,0);   Widget folderReadCB  = XmCreateCascadeButton(folderPD, "folderReadCB",  0,0);   Widget folderCloseCB = XmCreateCascadeButton(folderPD, "folderCloseCB", 0,0);   Widget folderDelCB   = XmCreateCascadeButton(folderPD, "folderDelCB",   0,0);   Widget folderSep2    = XmCreateSeparator    (folderPD, "folderSep2",    0,0);          folderSelPB   = XmCreatePushButton   (folderPD, "folderSelPB",   0,0);          folderDeselPB = XmCreatePushButton   (folderPD, "folderDeselPB", 0,0);   Widget folderActPD   = XmCreatePulldownMenu(folderPD, "folderActPD", 0,0);   Widget folderSavePD  = XmCreatePulldownMenu(folderPD, "folderSavePD", 0,0);   Widget folderReadPD  = XmCreatePulldownMenu(folderPD, "folderReadPD", 0,0);   Widget folderClosePD = XmCreatePulldownMenu(folderPD, "folderClosePD", 0,0);   Widget folderDelPD   = XmCreatePulldownMenu(folderPD, "folderDelPD", 0,0);   XtVaSetValues(folderActCB,   XmNsubMenuId, folderActPD,   NULL);   XtVaSetValues(folderSaveCB,  XmNsubMenuId, folderSavePD,  NULL);   XtVaSetValues(folderReadCB,  XmNsubMenuId, folderReadPD,  NULL);   XtVaSetValues(folderCloseCB, XmNsubMenuId, folderClosePD, NULL);   XtVaSetValues(folderDelCB,   XmNsubMenuId, folderDelPD,   NULL);   wcount = 0;   wlist[wcount++] = folderNewPB;   wlist[wcount++] = folderOpenPB;   wlist[wcount++] = folderOpenRecentCB;   wlist[wcount++] = folderOpenQuickCB;   wlist[wcount++] = folderActCB;   wlist[wcount++] = folderSep1;   wlist[wcount++] = folderSaveCB;   wlist[wcount++] = folderReadCB;   wlist[wcount++] = folderCloseCB;   wlist[wcount++] = folderDelCB;   wlist[wcount++] = folderSep2;   wlist[wcount++] = folderSelPB;   wlist[wcount++] = folderDeselPB;   XtManageChildren(wlist, wcount);	// folderPD children//// Build folderActPD//// PushButton	folderActSysPB// PushButton	folderActSelPB//   folderActSysPB = XmCreatePushButton(folderActPD, "folderActSysPB", 0,0);   folderActSelPB = XmCreatePushButton(folderActPD, "folderActSelPB", 0,0);   wlist[0] = folderActSysPB;   wlist[1] = folderActSelPB;   XtManageChildren(wlist, 2);	// folderActPD children//// Build folderSavePD//// PushButton	folderSaveCurPB// PushButton	folderSaveSelPB// PushButton	folderSaveAllPB//   folderSaveCurPB = XmCreatePushButton(folderSavePD, "folderSavePB",    0,0);   folderSaveSelPB = XmCreatePushButton(folderSavePD, "folderSaveSelPB", 0,0);   folderSaveAllPB = XmCreatePushButton(folderSavePD, "folderSaveAllPB", 0,0);   wlist[0] = folderSaveCurPB;   wlist[1] = folderSaveSelPB;   wlist[2] = folderSaveAllPB;   XtManageChildren(wlist, 3);	// folderSavePD children//// Build folderReadPD//// PushButton	folderReadCurPB// PushButton	folderReadSelPB// PushButton	folderReadAllPB//   folderReadCurPB = XmCreatePushButton(folderReadPD, "folderReadCurPB", 0,0);   folderReadSelPB = XmCreatePushButton(folderReadPD, "folderReadSelPB", 0,0);   folderReadAllPB = XmCreatePushButton(folderReadPD, "folderReadAllPB", 0,0);   wlist[0] = folderReadCurPB;   wlist[1] = folderReadSelPB;   wlist[2] = folderReadAllPB;   XtManageChildren(wlist, 3);	// folderReadPD children//// Build folderClosePD//// PushButton	folderCloseCurPB// PushButton	folderCloseSelPB// PushButton	folderCloseAllPB//   folderCloseCurPB= XmCreatePushButton(folderClosePD, "folderCloseCurPB", 0,0);   folderCloseSelPB= XmCreatePushButton(folderClosePD, "folderCloseSelPB", 0,0);   folderCloseAllPB= XmCreatePushButton(folderClosePD, "folderCloseAllPB", 0,0);

⌨️ 快捷键说明

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