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

📄 fsettings.pas

📁 siMail, siMail, siMail, siMail
💻 PAS
📖 第 1 页 / 共 3 页
字号:
(*
# (C) Copyright 2003
# Miha Vrhovnik, miha.vrhovnik@cordia.si
#
# 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.
#
# 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
#
# The Initial Developer of the Original Code is Miha Vrhovnik (Slovenia).
# Portions created by Miha Vrhovnik are Copyright (c)2003.
# All Rights Reserved.
#==============================================================================
# Contributor(s):
#==============================================================================
# History: see whats new.txt from distribution package
#==============================================================================
*)
unit fSettings;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  XPMenu, ComCtrls, StdCtrls, ExtCtrls, ImgList, VirtualTrees, GPanel,
  base64, account, OleCtrls, JvExControls, JvComponent, JvColorBox,
  JvColorButton, JclGraphUtils, Math, SHDocVw, EmbeddedWB;

type
  TfrmSettings = class(TForm)
    pc: TPageControl;
    cmdCancel: TButton;
    cmdClose: TButton;
    TabSheet5: TTabSheet;
    ilFlags: TImageList;
    Label1: TLabel;
    lstSettings: TVirtualStringTree;
    TabSheet9: TTabSheet;
    Label31: TLabel;
    lblAuthor: TLabel;
    lstLanguages: TVirtualStringTree;
    GPanel1: TGPanel;
    lblCaption: TLabel;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    GroupBox1: TGroupBox;
    FontDialog1: TFontDialog;
    lblComposeFont: TLabel;
    cmdFontChange: TButton;
    TabSheet3: TTabSheet;
    TabSheet4: TTabSheet;
    TabSheet6: TTabSheet;
    chkboxHideProfile: TCheckBox;
    Label2: TLabel;
    chkboxRawOverHtml: TCheckBox;
    chkboxCountReplies: TCheckBox;
    chkboxCountForwards: TCheckBox;
    TabSheet7: TTabSheet;
    GroupBox2: TGroupBox;
    chkboxDefaultClient: TCheckBox;
    cmdRegisterAsDefault: TButton;
    chkboxAskBeforeDeleting: TCheckBox;
    Label3: TLabel;
    cmboxShowMessagePart: TComboBox;
    chkboxShowTasksWindow: TCheckBox;
    chkboxMarkAsRead: TCheckBox;
    GroupBox3: TGroupBox;
    CheckBox1: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    CheckBox6: TCheckBox;
    CheckBox7: TCheckBox;
    CheckBox8: TCheckBox;
    Label4: TLabel;
    Label5: TLabel;
    CheckBox2: TCheckBox;
    Label6: TLabel;
    Label7: TLabel;
    cmboxDefaultAccount: TComboBox;
    TabSheet8: TTabSheet;
    Label8: TLabel;
    txtQuoteChar: TEdit;
    chkboxColorizeQuotes: TCheckBox;
    TabSheet10: TTabSheet;
    TabSheet11: TTabSheet;
    TabSheet12: TTabSheet;
    TabSheet13: TTabSheet;
    TabSheet14: TTabSheet;
    TabSheet15: TTabSheet;
    TabSheet16: TTabSheet;
    TabSheet17: TTabSheet;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    cmboxBS1: TComboBox;
    clrText1: TJvColorButton;
    clrBack1: TJvColorButton;
    txtAdditional1: TMemo;
    Label12: TLabel;
    wbPreview: TEmbeddedWB;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    clrText2: TJvColorButton;
    clrBack2: TJvColorButton;
    cmboxBS2: TComboBox;
    txtAdditional2: TMemo;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    clrText3: TJvColorButton;
    clrBack3: TJvColorButton;
    cmboxBS3: TComboBox;
    txtAdditional3: TMemo;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    clrText4: TJvColorButton;
    clrBack4: TJvColorButton;
    cmboxBS4: TComboBox;
    txtAdditional4: TMemo;
    Label25: TLabel;
    Label26: TLabel;
    Label27: TLabel;
    Label28: TLabel;
    clrText5: TJvColorButton;
    clrBack5: TJvColorButton;
    cmboxBS5: TComboBox;
    txtAdditional5: TMemo;
    Label29: TLabel;
    Label30: TLabel;
    Label32: TLabel;
    Label33: TLabel;
    clrText6: TJvColorButton;
    clrBack6: TJvColorButton;
    cmboxBS6: TComboBox;
    txtAdditional6: TMemo;
    Label34: TLabel;
    Label35: TLabel;
    Label36: TLabel;
    Label37: TLabel;
    clrText7: TJvColorButton;
    clrBack7: TJvColorButton;
    cmboxBS7: TComboBox;
    txtAdditional7: TMemo;
    Label38: TLabel;
    Label39: TLabel;
    Label40: TLabel;
    Label41: TLabel;
    clrText8: TJvColorButton;
    clrBack8: TJvColorButton;
    cmboxBS8: TComboBox;
    txtAdditional8: TMemo;
    pnlLevels: TPageControl;
    Label42: TLabel;
    clrBorder1: TJvColorButton;
    cmboxBrWidth1: TComboBox;
    Label43: TLabel;
    Label44: TLabel;
    clrBorder2: TJvColorButton;
    Label45: TLabel;
    cmboxBrWidth2: TComboBox;
    Label46: TLabel;
    clrBorder3: TJvColorButton;
    Label47: TLabel;
    cmboxBrWidth3: TComboBox;
    Label48: TLabel;
    clrBorder4: TJvColorButton;
    Label49: TLabel;
    cmboxBrWidth4: TComboBox;
    Label50: TLabel;
    clrBorder5: TJvColorButton;
    Label51: TLabel;
    cmboxBrWidth5: TComboBox;
    Label52: TLabel;
    clrBorder6: TJvColorButton;
    Label53: TLabel;
    cmboxBrWidth6: TComboBox;
    Label54: TLabel;
    clrBorder7: TJvColorButton;
    Label55: TLabel;
    cmboxBrWidth7: TComboBox;
    Label56: TLabel;
    clrBorder8: TJvColorButton;
    Label57: TLabel;
    cmboxBrWidth8: TComboBox;
    chkboxSplash: TCheckBox;
    chkboxSysTray: TCheckBox;
    GroupBox4: TGroupBox;
    lblViewWindowFont: TLabel;
    cmdViewWindowFont: TButton;
    TabSheet18: TTabSheet;
    gbTree: TGroupBox;
    lblTreeFont: TLabel;
    cmdTreeFont: TButton;
    gbList: TGroupBox;
    lblListFont: TLabel;
    cmdListFont: TButton;
    chkboxOverrideList: TCheckBox;
    chkboxOverrideTree: TCheckBox;
    procedure FormCreate(Sender: TObject);
    procedure cmdCancelClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure lstSettingsFocusChanged(Sender: TBaseVirtualTree;
      Node: PVirtualNode; Column: TColumnIndex);
    procedure lstSettingsGetText(Sender: TBaseVirtualTree;
      Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
      var CellText: WideString);
    procedure lstSettingsGetNodeDataSize(Sender: TBaseVirtualTree;
      var NodeDataSize: Integer);
    procedure FormHide(Sender: TObject);
    procedure lstLanguagesDblClick(Sender: TObject);
    procedure lstLanguagesGetNodeDataSize(Sender: TBaseVirtualTree;
      var NodeDataSize: Integer);
    procedure lstLanguagesGetImageIndex(Sender: TBaseVirtualTree;
      Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex;
      var Ghosted: Boolean; var ImageIndex: Integer);
    procedure lstLanguagesGetText(Sender: TBaseVirtualTree;
      Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
      var CellText: WideString);
    procedure lstLanguagesChange(Sender: TBaseVirtualTree;
      Node: PVirtualNode);
    procedure cmdCloseClick(Sender: TObject);
    procedure cmdFontChangeClick(Sender: TObject);
    procedure FormShortCut(var Msg: TWMKey; var Handled: Boolean);
    procedure cmdRegisterAsDefaultClick(Sender: TObject);
    procedure LevelStyleChange(Sender: TObject);
    procedure cmdViewWindowFontClick(Sender: TObject);
    procedure cmdTreeFontClick(Sender: TObject);
    procedure cmdListFontClick(Sender: TObject);
    procedure chkboxOverrideTreeClick(Sender: TObject);
    procedure chkboxOverrideListClick(Sender: TObject);
  private
    dontChangeStyle: Boolean;
    FQuotingStyleReloadNeeded: Boolean;
    procedure addProgramLanguage(const folder: String);
    procedure getProgramLanguages;
    procedure loadSettings;
    procedure saveSettings;
    function getColor: String;
    function getAdditional: String;
    function getBackColor: String;
    function getBorderColor: String;
    function getBorderStyle: String;
    function getBorderWidth: String;
    procedure changeFont(lbl: TLabel);
    procedure loadTheme;
    { Private declarations }
  public
    { Public declarations }
    property QuotingStyleReloadNeeded: Boolean read FQuotingStyleReloadNeeded write FQuotingStyleReloadNeeded;
  end;

var
  frmSettings: TfrmSettings;

implementation

uses
  fMain, mailBox, maillist, fMailView, gnugettext, defFldrs, OmniXMLConf,
  uThemes;

{$R *.DFM}

type TTreeSettings = record
    Caption: String;
    TabNo: Integer;
end;
type PTreeSettings = ^TTreeSettings;

type TTreeLang = record
    Col: array [0..2] of WideString;
    ImageIdx: Integer;
end;
type PTreeLang = ^TTreeLang;

procedure TfrmSettings.FormCreate(Sender: TObject);
begin
  pc.Top := 0;
  pc.Style := tsFlatButtons;
  dontChangeStyle := True;

  //form: Settings, control: Always show:
  cmboxShowMessagePart.Items.Text := _('Remember last used' + #13#10 +
                              'RAW' + #13#10 +
                              'text/plain' + #13#10 +
                              'text/html');

  //non translatable
  cmboxBS1.Items.Text := 'dashed' + #13#10 +
                      'solid' + #13#10 +
                      'double' + #13#10 +
                      'groove' + #13#10 +
                      'ridge' + #13#10 +
                      'inset' + #13#10 +
                      'outset' + #13#10 +
                      'dotted' + #13#10 +
                      'none';
  cmboxBS2.Items.Text := cmboxBS1.Items.Text;
  cmboxBS3.Items.Text := cmboxBS1.Items.Text;
  cmboxBS4.Items.Text := cmboxBS1.Items.Text;
  cmboxBS5.Items.Text := cmboxBS1.Items.Text;
  cmboxBS6.Items.Text := cmboxBS1.Items.Text;
  cmboxBS7.Items.Text := cmboxBS1.Items.Text;
  cmboxBS8.Items.Text := cmboxBS1.Items.Text;

  cmboxBrWidth1.Items.Text := '0px' + #13#10 +
                      '1px' + #13#10 +
                      '2px' + #13#10 +
                      '3px' + #13#10 +
                      '4px';
  cmboxBrWidth1.Items.Text := cmboxBrWidth1.Items.Text;
  cmboxBrWidth2.Items.Text := cmboxBrWidth1.Items.Text;
  cmboxBrWidth3.Items.Text := cmboxBrWidth1.Items.Text;
  cmboxBrWidth4.Items.Text := cmboxBrWidth1.Items.Text;
  cmboxBrWidth5.Items.Text := cmboxBrWidth1.Items.Text;
  cmboxBrWidth6.Items.Text := cmboxBrWidth1.Items.Text;
  cmboxBrWidth7.Items.Text := cmboxBrWidth1.Items.Text;
  cmboxBrWidth8.Items.Text := cmboxBrWidth1.Items.Text;

  txtAdditional1.Lines.Text := 'margin: 5px;' + #13#10 +
                      'padding: 5px';
  txtAdditional2.Lines.Text := txtAdditional1.Lines.Text;
  txtAdditional3.Lines.Text := txtAdditional1.Lines.Text;
  txtAdditional4.Lines.Text := txtAdditional1.Lines.Text;
  txtAdditional5.Lines.Text := txtAdditional1.Lines.Text;
  txtAdditional6.Lines.Text := txtAdditional1.Lines.Text;
  txtAdditional7.Lines.Text := txtAdditional1.Lines.Text;
  txtAdditional8.Lines.Text := txtAdditional1.Lines.Text;
end;

procedure TfrmSettings.cmdCancelClick(Sender: TObject);
begin
  Self.Close;
end;

procedure TfrmSettings.FormShow(Sender: TObject);
var nodeMessage: PVirtualNode;
var nodeMain: PVirtualNode;
var nodeInet: PVirtualNode;
var i: Integer;
begin
  //translate me
  TranslateComponent(Self);

  dontChangeStyle := True;

  lblCaption.Caption := '';
  lstSettings.Clear;
  lstLanguages.Clear;
  pc.ActivePageIndex := 0;

  with PTreeSettings(lstSettings.GetNodeData(lstSettings.AddChild(nil)))^ do begin
    Caption := _('Language');
    TabNo := 1;

⌨️ 快捷键说明

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