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

📄 compprefwinc.c

📁 linux下的E_MAIL客户端源码
💻 C
📖 第 1 页 / 共 2 页
字号:
   wlist[wcount++] = encryptSignLabel;   wlist[wcount++] = encryptSignTF;   wlist[wcount++] = mimeDigSignLabel;   wlist[wcount++] = mimeDigSignTF;   wlist[wcount++] = mimeEncryptLabel;   wlist[wcount++] = mimeEncryptTF;   wlist[wcount++] = mimeEncryptSignLabel;   wlist[wcount++] = mimeEncryptSignTF;   wlist[wcount++] = autoSaveTB;   wlist[wcount++] = autoSaveForm;   fieldRC->SetChildren(wlist, wcount);   wcount = 0;   wlist[wcount++] = *sizeRC;   wlist[wcount++] = spaceTB;   wlist[wcount++] = maxFieldsForm;   wlist[wcount++] = *fieldRC;   XtManageChildren(wlist, wcount);	// appForm children   sizeRC->Defer(False);   fieldRC->Defer(False);   HandleHelp();} // End constructor/*--------------------------------------------------------------- *  Destructor */CompPrefWinC::~CompPrefWinC(){   delete fieldRC;   delete sizeRC;}/*--------------------------------------------------------------- *  Method to handle display */voidCompPrefWinC::Show(Widget parent){   CompPrefC	*prefs = ishApp->compPrefs;//// See if this widget corresponds to a particular composition window//   sendWin = NULL;   if ( parent != (Widget)*ishApp->mainWin ) {      unsigned	count = ishApp->sendWinList.size();      for (int i=0; !sendWin && i<count; i++) {	 SendWinC	*win = (SendWinC*)*ishApp->sendWinList[i];	 if ( parent == (Widget)*win ) sendWin = win;      }   }//// Initialize settings//   StringC str;   if ( sendWin ) str += sendWin->ColumnCount();   else		  str += prefs->bodyCols;   XmTextFieldSetString(bodyColTF, str);   str.Clear();   if ( sendWin ) str += sendWin->BodyRowCount();   else		  str += prefs->bodyRows;   XmTextFieldSetString(bodyRowTF, str);   str.Clear();   if ( sendWin ) str += sendWin->HeadRowCount();   else		  str += prefs->headRows;   XmTextFieldSetString(headRowTF, str);   if ( sendWin ) {      XmToggleButtonSetState(wrapTB, sendWin->Wrapping(), False);      XmToggleButtonSetState(showCcTB,       sendWin->ccVis,	False);      XmToggleButtonSetState(showBccTB,      sendWin->bccVis,	False);      XmToggleButtonSetState(showFccTB,	     sendWin->fccVis,	False);      XmToggleButtonSetState(showOtherTB,    sendWin->otherVis,	False);   }   else {      XmToggleButtonSetState(wrapTB,	     prefs->wrap,     False);      XmToggleButtonSetState(showCcTB,	     prefs->showCc,       False);      XmToggleButtonSetState(showBccTB,	     prefs->showBcc,      False);      XmToggleButtonSetState(showFccTB,	     prefs->showFcc,      False);      XmToggleButtonSetState(showOtherTB,    prefs->showOther,    False);   }   XmToggleButtonSetState(emacsTB,  prefs->emacsMode,	  False);   XmToggleButtonSetState(deleteTB, prefs->delMeansBs,	  False);   XmToggleButtonSetState(spaceTB,  prefs->spaceEndsAddr, False);   Widget	tb = maxFields1TB;   switch (prefs->maxFieldsPerLine) {      case 2:	tb = maxFields2TB;	break;      case 3:	tb = maxFields3TB;	break;      case 4:	tb = maxFields4TB;	break;      case 5:	tb = maxFields5TB;	break;   }   XmToggleButtonSetState(tb, True, True);   XmTextFieldSetString(editorTF,           prefs->editCmd);   XmTextFieldSetString(spellTF,            prefs->spellCmd);   XmTextFieldSetString(digSignTF,          prefs->digSignCmd);   XmTextFieldSetString(encryptTF,          prefs->encryptCmd);   XmTextFieldSetString(encryptSignTF,      prefs->encryptSignCmd);   XmTextFieldSetString(mimeDigSignTF,      prefs->mimeDigSignCmd);   XmTextFieldSetString(mimeEncryptTF,      prefs->mimeEncryptCmd);   XmTextFieldSetString(mimeEncryptSignTF,  prefs->mimeEncryptSignCmd);   XmToggleButtonSetState(autoSaveTB, prefs->autoSave, True);   str.Clear();   str += prefs->autoSaveRate;   TextFieldSetString(autoSaveRateTF, str);   TextFieldSetString(autoSaveDirTF,  prefs->OrigAutoSaveDir());   OptWinC::Show(parent);} // End ShowvoidCompPrefWinC::Show(){   Show(XtParent(*this));}/*--------------------------------------------------------------- *  Method to apply settings */BooleanCompPrefWinC::Apply(){   CompPrefC	*prefs = ishApp->compPrefs;//// Get number of body rows//   char	*cs = XmTextFieldGetString(bodyRowTF);   int	bodyRows = 0;   if ( strlen(cs) > 0 ) bodyRows = atoi(cs);   XtFree(cs);   if ( bodyRows <= 0 ) {      set_invalid(bodyRowTF, True, True);      PopupMessage("Number of rows must be greater than 0");      return False;   }//// Get number of body columns//   cs = XmTextFieldGetString(bodyColTF);   int	bodyCols = 0;   if ( strlen(cs) > 0 ) bodyCols = atoi(cs);   XtFree(cs);   if ( bodyCols <= 0 ) {      set_invalid(bodyColTF, True, True);      PopupMessage("Number of columns must be greater than 0");      return False;   }//// Get number of rows in header fields//   cs = XmTextFieldGetString(headRowTF);   int	headRows = 0;   if ( strlen(cs) > 0 ) headRows = atoi(cs);   XtFree(cs);   if ( headRows <= 0 ) {      set_invalid(headRowTF, True, True);      PopupMessage("Number of rows must be greater than 0");      return False;   }//// Get auto save rate and directory//   Boolean	autoSave = XmToggleButtonGetState(autoSaveTB);   cs = XmTextFieldGetString(autoSaveRateTF);   int	autoSaveRate = 0;   if ( strlen(cs) > 0 ) autoSaveRate = atoi(cs);   XtFree(cs);   if ( autoSave && autoSaveRate <= 0 ) {      set_invalid(autoSaveRateTF, True, True);      PopupMessage("The number of keystrokes must be greater than 0");      return False;   }   cs = XmTextFieldGetString(autoSaveDirTF);   StringC	autoSaveDir = cs;   XtFree(cs);   autoSaveDir.Trim();   if ( autoSave && autoSaveDir.size() == 0 ) {      set_invalid(autoSaveDirTF, True, True);      StringC	msg("Please enter the name of a directory");      msg += "\nwhere compositions can be saved";      PopupMessage(msg);      return False;   }   BusyCursor(True);   Boolean	doWrap       = XmToggleButtonGetState(wrapTB);   Boolean	showCc       = XmToggleButtonGetState(showCcTB);   Boolean	showBcc      = XmToggleButtonGetState(showBccTB);   Boolean	showFcc      = XmToggleButtonGetState(showFccTB);   Boolean	showOther    = XmToggleButtonGetState(showOtherTB);   Boolean	emacsMode    = XmToggleButtonGetState(emacsTB);   Boolean	delMeansBs   = XmToggleButtonGetState(deleteTB);   int	maxFields = 1;   if      ( XmToggleButtonGetState(maxFields2TB) ) maxFields = 2;   else if ( XmToggleButtonGetState(maxFields3TB) ) maxFields = 3;   else if ( XmToggleButtonGetState(maxFields4TB) ) maxFields = 4;   else if ( XmToggleButtonGetState(maxFields5TB) ) maxFields = 5;//// Update all composition windows//   Boolean	wrapChanged     = False;   Boolean	sizeChanged     = False;   Boolean	headSizeChanged = False;   Boolean	headVisChanged  = False;   Boolean	keysChanged     = False;   if ( sendWin ) {      wrapChanged = (doWrap != sendWin->Wrapping());      sizeChanged     = (bodyRows   != sendWin->BodyRowCount() ||			 bodyCols   != sendWin->ColumnCount());      headSizeChanged = (headRows   != sendWin->HeadRowCount() ||			 maxFields  != sendWin->maxFieldsPerLine);      headVisChanged  = (showCc     != sendWin->ccVis  ||			 showBcc    != sendWin->bccVis ||			 showFcc    != sendWin->fccVis ||			 showOther  != sendWin->otherVis);   }   else {      wrapChanged     = (doWrap     != prefs->wrap);      sizeChanged     = (bodyRows   != prefs->bodyRows ||			 bodyCols   != prefs->bodyCols);      headSizeChanged = (headRows   != prefs->headRows ||			 maxFields  != prefs->maxFieldsPerLine);      headVisChanged  = (showCc     != prefs->showCc  ||			 showBcc    != prefs->showBcc ||			 showFcc    != prefs->showFcc ||			 showOther  != prefs->showOther);   }   keysChanged = (emacsMode  != prefs->emacsMode ||		  delMeansBs != prefs->delMeansBs);   u_int	count = ishApp->sendWinList.size();   int	i;   for (i=0; i<count; i++) {      SendWinC	*sendWin = (SendWinC*)*ishApp->sendWinList[i];      if ( sizeChanged ) sendWin->SetSize(bodyRows, bodyCols);      if ( wrapChanged ) sendWin->SetWrap(doWrap);      if ( keysChanged ) sendWin->SetKeys(emacsMode, delMeansBs);   }   prefs->bodyRows         = bodyRows;   prefs->bodyCols         = bodyCols;   prefs->headRows         = headRows;   prefs->wrap             = doWrap;   prefs->showCc           = showCc;   prefs->showBcc          = showBcc;   prefs->showFcc          = showFcc;   prefs->showOther        = showOther;   prefs->emacsMode        = emacsMode;   prefs->delMeansBs       = delMeansBs;   prefs->spaceEndsAddr    = XmToggleButtonGetState(spaceTB);   prefs->maxFieldsPerLine = maxFields;//   if ( prefs->spaceEndsAddr ) prefs->stripComments = True;   if ( headVisChanged || headSizeChanged ) {      count = ishApp->sendWinList.size();      for (i=0; i<count; i++) {	 SendWinC	*sendWin = (SendWinC*)*ishApp->sendWinList[i];	 if ( headVisChanged )	    sendWin->UpdateVisibleFields();	 else	    sendWin->PlaceHeaderFields();      }   }//// Set editor command//   cs = XmTextFieldGetString(editorTF);   prefs->editCmd = cs;   XtFree(cs);//// Set spell command//   cs = XmTextFieldGetString(spellTF);   prefs->spellCmd = cs;   XtFree(cs);//// Set digital signature and encryption commands//   cs = XmTextFieldGetString(digSignTF);   prefs->digSignCmd = cs;   XtFree(cs);   cs = XmTextFieldGetString(encryptTF);   prefs->encryptCmd = cs;   XtFree(cs);   cs = XmTextFieldGetString(encryptSignTF);   prefs->encryptSignCmd = cs;   XtFree(cs);   cs = XmTextFieldGetString(mimeDigSignTF);   prefs->mimeDigSignCmd = cs;   XtFree(cs);   cs = XmTextFieldGetString(mimeEncryptTF);   prefs->mimeEncryptCmd = cs;   XtFree(cs);   cs = XmTextFieldGetString(mimeEncryptSignTF);   prefs->mimeEncryptSignCmd = cs;   XtFree(cs);//// Set auto save parameters//   prefs->autoSave     = autoSave;   prefs->autoSaveRate = autoSaveRate;   prefs->SetAutoSaveDir(autoSaveDir);   prefs->WriteDatabase();//// Write to file if necessary//   if ( applyAll ) prefs->WriteFile();   BusyCursor(False);   return True;} // End Apply

⌨️ 快捷键说明

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