📄 mainwinp.c
字号:
// CascadeButton msgPUSaveCB// PulldownMenu msgPUSavePD// PushButton msgPUSavePB// PushButton msgPUSavePatPB// PushButton msgPUSaveRecentCB// PushButton msgPUSaveQuickCB// PushButton msgPUSaveSelPB// PushButton msgPUSaveToPB// PushButton msgPUSaveToFilePB// PushButton msgPUPrintPB// PushButton msgPUPipePB// Separator msgPUSep2// CascadeButton msgPUReplyCB// PulldownMenu msgPUReplyPD// PushButton msgPUReplyPB// PushButton msgPUReplyIncPB// PushButton msgPUReplyAllPB// PushButton msgPUReplyAllIncPB// PushButton msgPUForwardPB// PushButton msgPUForward822PB// PushButton msgPUResendPB// Separator msgPUSep3// PushButton msgPUDelPB// PushButton msgPUUndelPB// CascadeButton msgPUStatCB// msgPU = XmCreatePopupMenu(msgVBox->ClipWin(), "msgPU", 0,0); msgPULabel = XmCreateLabel (msgPU, "msgPULabel", 0,0); msgPUReadPB = XmCreatePushButton (msgPU, "msgPUReadPB", 0,0); Widget msgPUSaveCB = XmCreateCascadeButton(msgPU, "msgPUSaveCB", 0,0); msgPUPrintPB = XmCreatePushButton (msgPU, "msgPUPrintPB", 0,0); msgPUPipePB = XmCreatePushButton (msgPU, "msgPUPipePB", 0,0); Widget msgPUSep1 = XmCreateSeparator (msgPU, "msgPUSep1", 0,0); Widget msgPUReplyCB = XmCreateCascadeButton(msgPU, "msgPUReplyCB", 0,0); msgPUForwardPB = XmCreatePushButton (msgPU, "msgPUForwardPB", 0,0); msgPUForward822PB = XmCreatePushButton (msgPU, "msgPUForward822PB", 0,0); msgPUResendPB = XmCreatePushButton (msgPU, "msgPUResendPB", 0,0); Widget msgPUSep2 = XmCreateSeparator (msgPU, "msgPUSep2", 0,0); msgPUDelPB = XmCreatePushButton (msgPU, "msgPUDelPB", 0,0); msgPUUndelPB = XmCreatePushButton (msgPU, "msgPUUndelPB", 0,0); Widget msgPUStatCB = XmCreateCascadeButton(msgPU, "msgPUStatCB", 0,0); wcount = 0; wlist[wcount++] = msgPULabel; wlist[wcount++] = msgPUReadPB; wlist[wcount++] = msgPUSaveCB; wlist[wcount++] = msgPUPrintPB; wlist[wcount++] = msgPUPipePB; wlist[wcount++] = msgPUSep1; wlist[wcount++] = msgPUReplyCB; wlist[wcount++] = msgPUForwardPB; wlist[wcount++] = msgPUForward822PB; wlist[wcount++] = msgPUResendPB; wlist[wcount++] = msgPUSep2; wlist[wcount++] = msgPUDelPB; wlist[wcount++] = msgPUUndelPB; wlist[wcount++] = msgPUStatCB; XtManageChildren(wlist, wcount); XtSetSensitive(msgPUUndelPB, False); Widget msgPUReplyPD = XmCreatePulldownMenu(msgPU, "msgPUReplyPD", 0,0); msgPUReplyPB = XmCreatePushButton(msgPUReplyPD, "msgPUReplyPB", 0,0); msgPUReplyIncPB = XmCreatePushButton(msgPUReplyPD, "msgPUReplyIncPB", 0,0); msgPUReplyAllPB = XmCreatePushButton(msgPUReplyPD, "msgPUReplyAllPB", 0,0); msgPUReplyAllIncPB = XmCreatePushButton(msgPUReplyPD, "msgPUReplyAllIncPB",0,0); wlist[0] = msgPUReplyPB; wlist[1] = msgPUReplyIncPB; wlist[2] = msgPUReplyAllPB; wlist[3] = msgPUReplyAllIncPB; XtManageChildren(wlist, 4); // msgPUReplyPD children Widget msgPUSavePD = XmCreatePulldownMenu(msgPU, "msgPUSavePD", 0,0); msgPUSavePB = XmCreatePushButton(msgPUSavePD, "msgPUSavePB", 0,0); msgPUSavePatPB = XmCreatePushButton(msgPUSavePD, "msgPUSavePatPB", 0,0); msgPUSaveRecentCB = XmCreateCascadeButton(msgPUSavePD, "msgPUSaveRecentCB",0,0); msgPUSaveRecentPD = XmCreatePulldownMenu(msgPUSavePD, "msgPUSaveRecentPD", 0,0);//// 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(msgPUSavePD, "quickPD", 0,0); cbData->menuTime = 0; args.Reset(); args.UserData(cbData); args.SubMenuId(cbData->menu); msgPUSaveQuickCB = XmCreateCascadeButton(msgPUSavePD, "msgPUSaveQuickCB", ARGS); msgPUSaveSelPB = XmCreatePushButton(msgPUSavePD, "msgPUSaveSelPB", 0,0); msgPUSaveToPB = XmCreatePushButton(msgPUSavePD, "msgPUSaveToPB", 0,0); msgPUSaveToFilePB = XmCreatePushButton(msgPUSavePD, "msgPUSaveToFilePB",0,0); wcount = 0; wlist[wcount++] = msgPUSavePB; wlist[wcount++] = msgPUSavePatPB; wlist[wcount++] = msgPUSaveRecentCB; wlist[wcount++] = msgPUSaveQuickCB; wlist[wcount++] = msgPUSaveSelPB; wlist[wcount++] = msgPUSaveToPB; wlist[wcount++] = msgPUSaveToFilePB; XtManageChildren(wlist, wcount); // msgPUSavePD children//// Create msgPUStatPD hierarchy//// msgPUStatPD// PushButton msgPUMarkReadPB// PushButton msgPUMarkUnreadPB// PushButton msgPUMarkNewPB// CascadeButton msgPUStatSetCB// PulldownMenu msgPUStatSetPD// PushButton msgPUSetSavedPB// PushButton msgPUSetRepliedPB// PushButton msgPUSetForwardedPB// PushButton msgPUSetResentPB// PushButton msgPUSetPrintedPB// PushButton msgPUSetFilteredPB// CascadeButton msgPUStatClearCB// PulldownMenu msgPUStatClearPD// PushButton msgPUClearAllPB// PushButton msgPUClearSavedPB// PushButton msgPUClearRepliedPB// PushButton msgPUClearForwardedPB// PushButton msgPUClearResentPB// PushButton msgPUClearPrintedPB// PushButton msgPUClearFilteredPB// Widget msgPUStatPD = XmCreatePulldownMenu(msgPU, "msgPUStatPD", 0,0), msgPUMarkReadPB = XmCreatePushButton(msgPUStatPD, "msgPUMarkReadPB", 0,0), msgPUMarkUnreadPB = XmCreatePushButton(msgPUStatPD, "msgPUMarkUnreadPB",0,0), msgPUMarkNewPB = XmCreatePushButton(msgPUStatPD, "msgPUMarkNewPB", 0,0), msgPUStatSetCB = XmCreateCascadeButton(msgPUStatPD, "msgPUStatSetCB",0,0), msgPUStatClearCB = XmCreateCascadeButton(msgPUStatPD, "msgPUStatClearCB", 0,0); wlist[0] = msgPUMarkReadPB; wlist[1] = msgPUMarkUnreadPB; wlist[2] = msgPUMarkNewPB; wlist[3] = msgPUStatSetCB; wlist[4] = msgPUStatClearCB; XtManageChildren(wlist, 5); // msgPUStatPD children Widget msgPUStatSetPD = XmCreatePulldownMenu(msgPUStatPD, "msgPUStatSetPD", 0,0), msgPUSetSavedPB = XmCreatePushButton(msgPUStatSetPD, "msgPUSetSavedPB", 0,0), msgPUSetRepliedPB = XmCreatePushButton(msgPUStatSetPD, "msgPUSetRepliedPB",0,0), msgPUSetForwardedPB = XmCreatePushButton(msgPUStatSetPD, "msgPUSetForwardedPB", 0,0), msgPUSetResentPB = XmCreatePushButton(msgPUStatSetPD, "msgPUSetResentPB", 0,0), msgPUSetPrintedPB = XmCreatePushButton(msgPUStatSetPD, "msgPUSetPrintedPB",0,0), msgPUSetFilteredPB = XmCreatePushButton(msgPUStatSetPD, "msgPUSetFilteredPB", 0,0); wlist[0] = msgPUSetSavedPB; wlist[1] = msgPUSetRepliedPB; wlist[2] = msgPUSetForwardedPB; wlist[3] = msgPUSetResentPB; wlist[4] = msgPUSetPrintedPB; wlist[5] = msgPUSetFilteredPB; XtManageChildren(wlist, 6); // msgPUStatSetPD children Widget msgPUStatClearPD = XmCreatePulldownMenu(msgPUStatPD, "msgPUStatClearPD", 0,0), msgPUClearAllPB = XmCreatePushButton(msgPUStatClearPD, "msgPUClearAllPB", 0,0), msgPUClearSavedPB = XmCreatePushButton(msgPUStatClearPD, "msgPUClearSavedPB", 0,0), msgPUClearRepliedPB = XmCreatePushButton(msgPUStatClearPD, "msgPUClearRepliedPB", 0,0), msgPUClearForwardedPB = XmCreatePushButton(msgPUStatClearPD, "msgPUClearForwardedPB", 0,0), msgPUClearResentPB = XmCreatePushButton(msgPUStatClearPD, "msgPUClearResentPB", 0,0), msgPUClearPrintedPB = XmCreatePushButton(msgPUStatClearPD, "msgPUClearPrintedPB", 0,0), msgPUClearFilteredPB = XmCreatePushButton(msgPUStatClearPD, "msgPUClearFilteredPB", 0,0); wlist[0] = msgPUClearAllPB; wlist[1] = msgPUClearSavedPB; wlist[2] = msgPUClearRepliedPB; wlist[3] = msgPUClearForwardedPB; wlist[4] = msgPUClearResentPB; wlist[5] = msgPUClearPrintedPB; wlist[6] = msgPUClearFilteredPB; XtManageChildren(wlist, 7); // msgPUStatClearPD children XtVaSetValues(msgPUSaveCB, XmNsubMenuId, msgPUSavePD, NULL); XtVaSetValues(msgPUSaveRecentCB, XmNsubMenuId, msgPUSaveRecentPD, NULL); XtVaSetValues(msgPUReplyCB, XmNsubMenuId, msgPUReplyPD, NULL); XtVaSetValues(msgPUStatCB, XmNsubMenuId, msgPUStatPD, NULL); XtVaSetValues(msgPUStatSetCB, XmNsubMenuId, msgPUStatSetPD, NULL); XtVaSetValues(msgPUStatClearCB, XmNsubMenuId, msgPUStatClearPD, NULL); //AddCascading(msgPUSaveRecentCB, PrepareRecentMenu, this); AddCascading(msgPUSaveQuickCB, PreparePUSaveQuickMenu, this); AddActivate(msgPUReadPB, DoMsgPURead, this); AddActivate(msgPUSavePB, DoMsgPUSave, this); AddActivate(msgPUSavePatPB, DoMsgPUSavePat, this); AddActivate(msgPUSaveSelPB, DoMsgPUSaveSel, this); AddActivate(msgPUSaveToPB, DoMsgPUSaveTo, this); AddActivate(msgPUSaveToFilePB, DoMsgPUSaveToFile, this); AddActivate(msgPUPrintPB, DoMsgPUPrint, this); AddActivate(msgPUPipePB, DoMsgPUPipe, this); AddActivate(msgPUReplyPB, DoMsgPUReply, this); AddActivate(msgPUReplyIncPB, DoMsgPUReplyInc, this); AddActivate(msgPUReplyAllPB, DoMsgPUReplyAll, this); AddActivate(msgPUReplyAllIncPB, DoMsgPUReplyAllInc, this); AddActivate(msgPUForwardPB, DoMsgPUForward, this); AddActivate(msgPUForward822PB, DoMsgPUForward822, this); AddActivate(msgPUResendPB, DoMsgPUResend, this); AddActivate(msgPUDelPB, DoMsgPUDel, this); AddActivate(msgPUUndelPB, DoMsgPUUndel, this); AddActivate(msgPUMarkReadPB, DoMsgPUMarkRead, this); AddActivate(msgPUMarkUnreadPB, DoMsgPUMarkUnread, this); AddActivate(msgPUMarkNewPB, DoMsgPUMarkNew, this); AddActivate(msgPUSetSavedPB, DoMsgPUSetSaved, this); AddActivate(msgPUSetRepliedPB, DoMsgPUSetReplied, this); AddActivate(msgPUSetForwardedPB, DoMsgPUSetForwarded, this); AddActivate(msgPUSetResentPB, DoMsgPUSetResent, this); AddActivate(msgPUSetPrintedPB, DoMsgPUSetPrinted, this); AddActivate(msgPUSetFilteredPB, DoMsgPUSetFiltered, this); AddActivate(msgPUClearAllPB, DoMsgPUClearAll, this); AddActivate(msgPUClearSavedPB, DoMsgPUClearSaved, this); AddActivate(msgPUClearRepliedPB, DoMsgPUClearReplied, this); AddActivate(msgPUClearForwardedPB, DoMsgPUClearForwarded, this); AddActivate(msgPUClearResentPB, DoMsgPUClearResent, this); AddActivate(msgPUClearPrintedPB, DoMsgPUClearPrinted, this); AddActivate(msgPUClearFilteredPB, DoMsgPUClearFiltered, this);} // End BuildMsgPopupMenu/*--------------------------------------------------------------- * Method to build the widgets in the folder popup menu */voidMainWinP::BuildFolderPopupMenu(){ Widget wlist[8];//// Create folderPU hierarchy//// folderPU// Label folderPULabel// Separator folderPUSep// PushButton folderPUActPB// PushButton folderPUSavePB// PushButton folderPUReadPB// PushButton folderPUClosePB// PushButton folderPUDelPB// folderPU = XmCreatePopupMenu(folderVBox->ClipWin(), "folderPU", 0,0); folderPULabel = XmCreateLabel (folderPU, "folderPULabel", 0,0); folderPUActPB = XmCreatePushButton(folderPU, "folderPUActPB", 0,0); folderPUSavePB = XmCreatePushButton(folderPU, "folderPUSavePB", 0,0); folderPUReadPB = XmCreatePushButton(folderPU, "folderPUReadPB", 0,0); folderPUClosePB = XmCreatePushButton(folderPU, "folderPUClosePB", 0,0); folderPUDelPB = XmCreatePushButton(folderPU, "folderPUDelPB", 0,0); wlist[0] = folderPULabel; wlist[1] = folderPUActPB; wlist[2] = folderPUSavePB; wlist[3] = folderPUReadPB; wlist[4] = folderPUClosePB; wlist[5] = folderPUDelPB; XtManageChildren(wlist, 6); XtSetSensitive(folderPUSavePB, False); XtSetSensitive(folderPUDelPB, False); AddActivate(folderPUActPB, DoFolderPUAct, this); AddActivate(folderPUSavePB, DoFolderPUSave, this); AddActivate(folderPUReadPB, DoFolderPURead, this); AddActivate(folderPUClosePB, DoFolderPUClose, this); AddActivate(folderPUDelPB, DoFolderPUDel, this);} // End BuildFolderPopupMenu/*------------------------------------------------------------------------ * Method to build the menus of recent folders. */voidMainWinP::BuildRecentFolderMenus(){//// Unmanage existing buttons// WidgetList wlist; Cardinal wcount; XtVaGetValues(msgSaveRecentPD, XmNnumChildren, &wcount, XmNchildren, &wlist, NULL); //if ( wcount > 0 ) XtUnmanageChildren(wlist, wcount); WidgetList pwlist; Cardinal pwcount; XtVaGetValues(msgPUSaveRecentPD, XmNnumChildren, &pwcount, XmNchildren, &pwlist, NULL); //if ( pwcount > 0 ) XtUnmanageChildren(pwlist, pwcount); WidgetList fwlist; Cardinal fwcount; XtVaGetValues(folderOpenRecentPD, XmNnumChildren, &fwcount, XmNchildren, &fwlist, NULL); //if ( fwcount > 0 ) XtUnmanageChildren(fwlist, fwcount);//// Create new buttons// WArgList args; WXmString wstr; u_int count = ishApp->appPrefs->recentFolders.size(); int i=0; for (i=0; i<count; i++) { StringC *label = ishApp->appPrefs->recentFolders[i]; wstr = (char*)*label; args.LabelString(wstr);//// Create a button in the menu bar message menu. Re-use one if possible// Widget pb; if ( i < wcount ) { pb = wlist[i]; XtSetValues(pb, ARGS); } else { pb = XmCreatePushButton(msgSaveRecentPD, "recentPB", ARGS); XtAddCallback(pb, XmNactivateCallback, (XtCallbackProc)DoMsgSaveToButton, this); } XtManageChild(pb);//// Create a button in the message popup menu. Re-use one if possible.// if ( i < pwcount ) { pb = pwlist[i]; XtSetValues(pb, ARGS); } else { pb = XmCreatePushButton(msgPUSaveRecentPD, "recentPB", ARGS); XtAddCallback(pb, XmNactivateCallback, (XtCallbackProc)DoMsgPUSaveToButton, this); } XtManageChild(pb);//// Create a button in the folder menu. Re-use one if possible.// if ( i < fwcount ) { pb = fwlist[i]; XtSetValues(pb, ARGS); } else { pb = XmCreatePushButton(folderOpenRecentPD, "recentPB", ARGS); XtAddCallback(pb, XmNactivateCallback, (XtCallbackProc)DoFolderOpenButton, this); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -