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

📄 appprefwinc.c

📁 linux下的E_MAIL客户端源码
💻 C
📖 第 1 页 / 共 2 页
字号:
   		 (XtCallbackProc)AutoSelectPattern, this);   XtAddCallback(saveAddrPB, XmNactivateCallback,   		 (XtCallbackProc)AutoSelectPattern, this);   XtAddCallback(savePatternPB, XmNactivateCallback,   		 (XtCallbackProc)AutoSelectPattern, this);   XtAddCallback(savePatUserPB, XmNactivateCallback,   		 (XtCallbackProc)AutoSelectPattern, this);   XtAddCallback(savePatAddrPB, XmNactivateCallback,   		 (XtCallbackProc)AutoSelectPattern, this);   wlist[0] = saveUserPB;   wlist[1] = saveAddrPB;   wlist[2] = savePatternPB;   wlist[3] = savePatUserPB;   wlist[4] = savePatAddrPB;   XtManageChildren(wlist, 5);   XtManageChild(savePatternTB);   XtManageChild(savePatternOM);   XtManageChild(savePatternTF);   XtManageChild(savePatternForm);   XtManageChild(saveFolderForm);   XtManageChild(saveRC);   int	count = 0;   wlist[count++] = imapTB;   wlist[count++] = imapTF;   wlist[count++] = popTB;   wlist[count++] = popTF;   wlist[count++] = popCmdLabel;   wlist[count++] = popCmdTF;   wlist[count++] = folderLabel;   wlist[count++] = folderTF;   wlist[count++] = saveLabel;   wlist[count++] = saveFrame;   wlist[count++] = autoLabel;   wlist[count++] = autoTF;   wlist[count++] = printLabel;   wlist[count++] = printTF;   wlist[count++] = bellLabel;   wlist[count++] = bellScale;   XtManageChildren(wlist, count);	// fieldRC children   fieldRC->SetChildren(wlist, count);   wlist[0] = *checkRC;   wlist[1] = archiveForm;   wlist[2] = *fieldRC;   XtManageChildren(wlist, 3);	// appForm children   checkRC->Defer(False);   fieldRC->Defer(False);   HandleHelp();} // End constructor/*--------------------------------------------------------------- *  Main window destructor */AppPrefWinC::~AppPrefWinC(){   delete checkRC;   delete fieldRC;}/*--------------------------------------------------------------- *  Callback to handle initial display */voidAppPrefWinC::Show(){   AppPrefC	*prefs = ishApp->appPrefs;//// Initialize settings//   XmTextFieldSetString(inBoxTF,   prefs->inBox);   StringC	tmpStr; tmpStr += prefs->checkInterval;   XmTextFieldSetString(checkTF,   tmpStr);   tmpStr.Clear();      tmpStr += prefs->recentFolderCount;   XmTextFieldSetString(recentTF,  tmpStr);   XmTextFieldSetString(archiveTF,   prefs->OrigArchiveFolder());   XmTextFieldSetString(imapTF,      prefs->imapServer);   XmTextFieldSetString(popTF,       prefs->popServer);   XmTextFieldSetString(popCmdTF,    prefs->popclientCmd);   XmTextFieldSetString(folderTF,    prefs->OrigFolderDir());   XmTextFieldSetString(printTF,     prefs->printCmd);   XmToggleButtonSetState(alertTB,       ishApp->alertPrefs->alertOn,	False);   XmToggleButtonSetState(showNewTB,     prefs->scrollToNew,		True);   XmToggleButtonSetState(delSaveTB,     prefs->deleteSaved,		False);   XmToggleButtonSetState(hideDelTB,     prefs->hideDeleted,		False);   XmToggleButtonSetState(quickHelpTB,   halApp->quickHelpEnabled,	False);   XmToggleButtonSetState(windowPosTB,   prefs->rememberWindows,	False);   XmToggleButtonSetState(newUnreadTB,   prefs->markNewAsUnread,	False);   XmToggleButtonSetState(archiveTB,     prefs->archiveOnSave,		False);   XmToggleButtonSetState(imapTB,        prefs->usingImap,		False);   XmToggleButtonSetState(popTB,         prefs->usingPop,		False);   if ( prefs->OrigSaveFile().size() )      XmTextFieldSetString(saveFolderTF, prefs->OrigSaveFile());   if ( prefs->OrigSaveDir().size() )      XmTextFieldSetString(savePatternTF, prefs->OrigSaveDir());   switch ( prefs->saveType ) {      case (SAVE_TO_FOLDER):         XmToggleButtonSetState(saveFolderTB, True, True);	 break;      case (SAVE_BY_USER):         XmToggleButtonSetState(savePatternTB, True, True);	 XtVaSetValues(savePatternOM, XmNmenuHistory, saveUserPB,    NULL);	 break;      case (SAVE_BY_ADDRESS):         XmToggleButtonSetState(savePatternTB, True, True);	 XtVaSetValues(savePatternOM, XmNmenuHistory, saveAddrPB,    NULL);	 break;      case (SAVE_BY_PATTERN):         XmToggleButtonSetState(savePatternTB, True, True);	 XtVaSetValues(savePatternOM, XmNmenuHistory, savePatternPB, NULL);	 break;      case (SAVE_BY_PATTERN_OR_USER):         XmToggleButtonSetState(savePatternTB, True, True);	 XtVaSetValues(savePatternOM, XmNmenuHistory, savePatUserPB, NULL);	 break;      case (SAVE_BY_PATTERN_OR_ADDRESS):         XmToggleButtonSetState(savePatternTB, True, True);	 XtVaSetValues(savePatternOM, XmNmenuHistory, savePatAddrPB, NULL);	 break;   }   if ( prefs->OrigAutomountRoot().size() )      XmTextFieldSetString(autoTF, prefs->OrigAutomountRoot());//// Display the bell volume.  It is stored in the range (-100, 100) and//    display in the range (0, 10)//   XmScaleSetValue(bellScale, (prefs->bellVolume + 100) / 20);   OptWinC::Show();} // End Show/*--------------------------------------------------------------- *  Method to apply settings */BooleanAppPrefWinC::Apply(){//// Check filenames//   char *cs = XmTextFieldGetString(inBoxTF);   StringC	inBoxStr(cs);   inBoxStr.Trim();   XtFree(cs);   if ( inBoxStr.size() <= 0 ) {      set_invalid(inBoxTF, True, True);      PopupMessage("Please enter an In-box folder name.");      return False;   }   cs = XmTextFieldGetString(saveFolderTF);   StringC	saveStr(cs);   saveStr.Trim();   XtFree(cs);   if ( XmToggleButtonGetState(saveFolderTB) && saveStr.size() <= 0 ) {      set_invalid(saveFolderTF, True, True);      PopupMessage("Please enter a folder name for saved messages.");      return False;   }   cs = XmTextFieldGetString(imapTF);   StringC	imapStr(cs);   imapStr.Trim();   XtFree(cs);   if ( XmToggleButtonGetState(imapTB) && imapStr.size() <= 0 ) {      set_invalid(imapTF, True, True);      PopupMessage("Please enter the name of your IMAP server.");      return False;   }   else if ( imapStr.Contains('{') || imapStr.Contains('}') ||      	     imapStr.Contains('/') ) {      set_invalid(imapTF, True, True);      PopupMessage("Please enter the server name only.");      return False;   }   cs = XmTextFieldGetString(popTF);   StringC	popStr(cs);   popStr.Trim();   XtFree(cs);   cs = XmTextFieldGetString(popCmdTF);   StringC	popCmdStr(cs);   popCmdStr.Trim();   XtFree(cs);   if ( XmToggleButtonGetState(popTB) ) {      if ( popStr.size() <= 0 ) {	 set_invalid(popTF, True, True);	 PopupMessage("Please enter the name of your POP server.");	 return False;      }      else if ( popCmdStr.size() <= 0 ) {	 set_invalid(popCmdTF, True, True);	 PopupMessage("Please enter the path to your popclient command.");	 return False;      }   }   cs = XmTextFieldGetString(savePatternTF);   StringC	saveDirStr(cs);   saveDirStr.Trim();   XtFree(cs);   if ( XmToggleButtonGetState(savePatternTB) && saveDirStr.size() <= 0 ) {      set_invalid(savePatternTF, True, True);      PopupMessage("Please enter a directory name for saved messages.");      return False;   }   cs = XmTextFieldGetString(archiveTF);   StringC	archiveStr(cs);   archiveStr.Trim();   XtFree(cs);   if ( XmToggleButtonGetState(archiveTB) && archiveStr.size() <= 0 ) {      set_invalid(archiveTF, True, True);      PopupMessage("Please enter a folder name for archived messages.");      return False;   }   BusyCursor(True);   AppPrefC	*prefs = ishApp->appPrefs;   if (inBoxStr.compare(prefs->inBox)) {      PopupMessage("New In-box setting will take effect only after restart.",         XmDIALOG_INFORMATION);   }   prefs->inBox = inBoxStr;   prefs->usingImap  = XmToggleButtonGetState(imapTB);   prefs->imapServer = imapStr;   prefs->usingPop     = XmToggleButtonGetState(popTB);   prefs->popServer    = popStr;   prefs->popclientCmd = popCmdStr;//// Set folder directory//   cs = XmTextFieldGetString(folderTF);   if ( strlen(cs) > 0 ) prefs->SetFolderDir(cs);   else {      if ( prefs->usingImap )          prefs->SetFolderDir(cs);		// OK to have null dir for IMAP      else	 prefs->SetFolderDir(ishApp->home);	// else set sensible default   }   XtFree(cs);//// Set default save file and directory//   prefs->SetSaveFile(saveStr);   prefs->SetSaveDir(saveDirStr);//// Set save type//   if ( XmToggleButtonGetState(saveFolderTB) ) prefs->saveType = SAVE_TO_FOLDER;   else {      Widget	pb;      XtVaGetValues(savePatternOM, XmNmenuHistory, &pb, NULL);      if      ( pb == saveUserPB    ) prefs->saveType = SAVE_BY_USER;      else if ( pb == saveAddrPB    ) prefs->saveType = SAVE_BY_ADDRESS;      else if ( pb == savePatternPB ) prefs->saveType = SAVE_BY_PATTERN;      else if ( pb == savePatUserPB ) prefs->saveType = SAVE_BY_PATTERN_OR_USER;      else if ( pb == savePatAddrPB )	 prefs->saveType = SAVE_BY_PATTERN_OR_ADDRESS;   }//// Set automounter root prefix//   cs = XmTextFieldGetString(autoTF);   prefs->SetAutomountRoot(cs);   XtFree(cs);//// Read check interval//   cs = XmTextFieldGetString(checkTF);   int	ci = atoi(cs);   if ( ci != prefs->checkInterval ) {      prefs->checkInterval = ci;      if ( ci > 0 ) ishApp->CheckForNewMail();	// Start check again   }   XtFree(cs);   ishApp->alertPrefs->alertOn = XmToggleButtonGetState(alertTB);   prefs->deleteSaved          = XmToggleButtonGetState(delSaveTB);   prefs->scrollToNew          = XmToggleButtonGetState(showNewTB);   prefs->rememberWindows      = XmToggleButtonGetState(windowPosTB);   prefs->markNewAsUnread      = XmToggleButtonGetState(newUnreadTB);   prefs->archiveOnSave        = XmToggleButtonGetState(archiveTB);   prefs->SetArchiveFolder(archiveStr);   halApp->QuickHelp(XmToggleButtonGetState(quickHelpTB));//// Read recent folder count//   cs = XmTextFieldGetString(recentTF);   ci = atoi(cs);   if ( ci < 1 ) {      ci = 10;      StringC	ciStr;      ciStr += ci;      XmTextFieldSetString(recentTF, ciStr);   }   prefs->recentFolderCount = ci;   XtFree(cs);//// Read print command//   cs = XmTextFieldGetString(printTF);   prefs->printCmd = cs;   XtFree(cs);//// Read bell volume.  Displayed in range 0-10, stored in range -100 to 100//   int	val;   XmScaleGetValue(bellScale, &val);   prefs->bellVolume = (val - 5) * 20;//// Set main window attributes//   Boolean	hideDel = XmToggleButtonGetState(hideDelTB);   if ( hideDel != prefs->hideDeleted ) {      prefs->hideDeleted = hideDel;      ishApp->mainWin->HideDeletedChanged();   }   prefs->WriteDatabase();//// Write to file if necessary//   if ( applyAll ) prefs->WriteFile();   BusyCursor(False);   return True;} // End Apply/*--------------------------------------------------------------- *  Callback to implement radio button behavior in saveFrame */voidAppPrefWinC::SaveChanged(Widget tb, AppPrefWinC* This,		      XmToggleButtonCallbackStruct *data){//// Don't allow buttons to be turned off by the user//   if ( !data->set ) {      XmToggleButtonSetState(tb, True, False);      return;   }   if ( tb == This->saveFolderTB )      XmToggleButtonSetState(This->savePatternTB, False, False);   else      XmToggleButtonSetState(This->saveFolderTB,  False, False);} // End SaveChanged/*--------------------------------------------------------------- *  Callbacks to automatically select toggle buttons when field is *     changed or type is selected */voidAppPrefWinC::AutoSelectFolder(Widget, AppPrefWinC* This, XtPointer){   XmToggleButtonSetState(This->saveFolderTB, True, True);}voidAppPrefWinC::AutoSelectPattern(Widget, AppPrefWinC* This, XtPointer){   XmToggleButtonSetState(This->savePatternTB, True, True);}

⌨️ 快捷键说明

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