X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=Option.pas;h=f1b0d88e608f03de473259e7d448833d4e1c33c2;hb=refs%2Fheads%2Fmaster;hp=fe0ed492c47434cdc6793fd3165839465441f5cf;hpb=07faaa5ad91d0a573fea25856dfc8689467e31f4;p=gikonavigoeson%2Fgikonavi.git diff --git a/Option.pas b/Option.pas index fe0ed49..f1b0d88 100644 --- a/Option.pas +++ b/Option.pas @@ -6,7 +6,14 @@ uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, ComCtrls, StdCtrls, ExtCtrls, Dialogs, FileCtrl, MMSystem, GikoSystem, GikoUtil, Buttons, UrlMon, Menus, ImgList, OleCtrls, - SHDocVw_TLB, BoardGroup; +{$IF Defined(DELPRO) } + SHDocVw, + MSHTML, +{$ELSE} + SHDocVw_TLB, + MSHTML_TLB, +{$IFEND} + BoardGroup, BrowserRecord; type TOptionDialog = class(TForm) @@ -15,169 +22,217 @@ type FontDialog: TFontDialog; ColorDialog: TColorDialog; OpenDialog: TOpenDialog; - Label26: TLabel; - CroutOption: TButton; - OptionTab: TPageControl; - ConnectSheet: TTabSheet; - ReadProxyGroupBox: TGroupBox; - ReadAddressLabel: TLabel; - ReadPortLabel: TLabel; - ReadUserIDLabel: TLabel; - ReadPasswordLabel: TLabel; - ReadProxyCheck: TCheckBox; - ReadProxyAddressEdit: TEdit; - ReadPortEdit: TEdit; - ReadProxyUserIDEdit: TEdit; - ReadProxyPasswordEdit: TEdit; - WriteProxyGroupBox: TGroupBox; - WriteAddressLabel: TLabel; - WritePortLabel: TLabel; - WriteUserIDLabel: TLabel; - WritePasswordLabel: TLabel; - WriteProxyCheck: TCheckBox; - WriteProxyAddressEdit: TEdit; - WritePortEdit: TEdit; - WriteProxyUserIDEdit: TEdit; - WriteProxyPasswordEdit: TEdit; - Font1Sheet: TTabSheet; - Bevel1: TBevel; - Bevel2: TBevel; - Label19: TLabel; - Bevel5: TBevel; - Label20: TLabel; - Label21: TLabel; - Label22: TLabel; - Label23: TLabel; - lblSFont: TLabel; - CabinetFontBotton: TButton; - CabinetColorBotton: TButton; - CabinetDefaultButton: TButton; - CabinetMemo: TMemo; - ListMemo: TMemo; - ListFontBotton: TButton; - ListColorBotton: TButton; - ListDefaultBotton: TButton; - HintFontButton: TButton; - HintBackButton: TButton; - HintDefaultButton: TButton; - HintMemo: TMemo; - EditorMemo: TMemo; - EditorFontBotton: TButton; - EditorColorBotton: TButton; - EditorDefaultBotton: TButton; - BrowserTabMemo: TMemo; - BruwserTabFontButton: TButton; - BrowserTabDefaultButton: TButton; - OddResNumCheckBox: TCheckBox; - OddResNumColorBox: TColorBox; - CSSTabSheet: TTabSheet; - GroupBox12: TGroupBox; - CSSListLabel: TLabel; - CSSCheckBox: TCheckBox; - CSSListView: TListView; - CSSBrowser: TWebBrowser; - CSSFontCheckBox: TCheckBox; - CSSBackColorCheckBox: TCheckBox; - CSSFontButton: TButton; - CSSBackColorButton: TButton; - TabSheet3: TTabSheet; - GroupBox9: TGroupBox; - ThreadListIconCheckBox: TCheckBox; - NonAcquiredCountCheckBox: TCheckBox; - GroupBox16: TGroupBox; - CreationTimeLogsCheckBox: TCheckBox; - FutureThreadCheckBox: TCheckBox; - GroupBox5: TGroupBox; - BrowserMaxLabel: TLabel; - BrowserMaxCombo: TComboBox; - GroupBox17: TGroupBox; - SelectIntervalLabel: TLabel; - Label4: TLabel; - Label6: TLabel; - SelectIntervalEdit: TEdit; - GroupBox18: TGroupBox; - DatOchiSortCombo: TComboBox; - ThreadSheet: TTabSheet; - GroupBox1: TGroupBox; - ShowMailCheckBox: TCheckBox; - ResRangeHoldCheckBox: TCheckBox; - ResRangeHoldComboBox: TComboBox; - GroupBox2: TGroupBox; - AppFolderLabel: TLabel; - URLAppCheckBox: TCheckBox; - AppFolderEdit: TEdit; - AppFolderButton: TButton; - OpenMailerCheckBox: TCheckBox; - GroupBox6: TGroupBox; - LogDeleteMessageCheckBox: TCheckBox; - ResAnchorGroupBox: TGroupBox; + Label26: TLabel; + CroutOption: TButton; + OptionTab: TPageControl; + ConnectSheet: TTabSheet; + ReadProxyGroupBox: TGroupBox; + ReadAddressLabel: TLabel; + ReadPortLabel: TLabel; + ReadUserIDLabel: TLabel; + ReadPasswordLabel: TLabel; + ReadProxyCheck: TCheckBox; + ReadProxyAddressEdit: TEdit; + ReadPortEdit: TEdit; + ReadProxyUserIDEdit: TEdit; + ReadProxyPasswordEdit: TEdit; + WriteProxyGroupBox: TGroupBox; + WriteAddressLabel: TLabel; + WritePortLabel: TLabel; + WriteUserIDLabel: TLabel; + WritePasswordLabel: TLabel; + WriteProxyCheck: TCheckBox; + WriteProxyAddressEdit: TEdit; + WritePortEdit: TEdit; + WriteProxyUserIDEdit: TEdit; + WriteProxyPasswordEdit: TEdit; + Font1Sheet: TTabSheet; + Bevel1: TBevel; + Bevel2: TBevel; + Label19: TLabel; + Bevel5: TBevel; + Label20: TLabel; + Label21: TLabel; + Label22: TLabel; + Label23: TLabel; + lblSFont: TLabel; + CabinetFontBotton: TButton; + CabinetColorBotton: TButton; + CabinetDefaultButton: TButton; + CabinetMemo: TMemo; + ListMemo: TMemo; + ListFontBotton: TButton; + ListColorBotton: TButton; + ListDefaultBotton: TButton; + HintFontButton: TButton; + HintBackButton: TButton; + HintDefaultButton: TButton; + HintMemo: TMemo; + EditorMemo: TMemo; + EditorFontBotton: TButton; + EditorColorBotton: TButton; + EditorDefaultBotton: TButton; + BrowserTabMemo: TMemo; + BruwserTabFontButton: TButton; + BrowserTabDefaultButton: TButton; + OddResNumCheckBox: TCheckBox; + OddResNumColorBox: TColorBox; + CSSTabSheet: TTabSheet; + GroupBox12: TGroupBox; + CSSListLabel: TLabel; + CSSCheckBox: TCheckBox; + CSSListView: TListView; + CSSBrowser: TWebBrowser; + CSSFontCheckBox: TCheckBox; + CSSBackColorCheckBox: TCheckBox; + CSSFontButton: TButton; + CSSBackColorButton: TButton; + TabSheet3: TTabSheet; + GroupBox9: TGroupBox; + ThreadListIconCheckBox: TCheckBox; + GroupBox16: TGroupBox; + CreationTimeLogsCheckBox: TCheckBox; + FutureThreadCheckBox: TCheckBox; + GroupBox5: TGroupBox; + BrowserMaxLabel: TLabel; + BrowserMaxCombo: TComboBox; + GroupBox17: TGroupBox; + SelectIntervalLabel: TLabel; + Label4: TLabel; + Label6: TLabel; + SelectIntervalEdit: TEdit; + GroupBox18: TGroupBox; + DatOchiSortCombo: TComboBox; + ThreadSheet: TTabSheet; + GroupBox1: TGroupBox; + ShowMailCheckBox: TCheckBox; + ResRangeHoldCheckBox: TCheckBox; + ResRangeHoldComboBox: TComboBox; + GroupBox2: TGroupBox; + AppFolderLabel: TLabel; + URLAppCheckBox: TCheckBox; + AppFolderEdit: TEdit; + AppFolderButton: TButton; + OpenMailerCheckBox: TCheckBox; + GroupBox6: TGroupBox; + LogDeleteMessageCheckBox: TCheckBox; + TabSheet1: TTabSheet; + TabAddRadioGroup: TRadioGroup; + GroupBox8: TGroupBox; + Label14: TLabel; + Label15: TLabel; + Label16: TLabel; + PreviewVisibleCheckBox: TCheckBox; + PreviewSizeComboBox: TComboBox; + PreviewWaitEdit: TEdit; + GroupBox10: TGroupBox; + UnActivePopupCheckBox: TCheckBox; + ResPopupBoldCheckBox: TCheckBox; + TabSheet2: TTabSheet; + GroupBox7: TGroupBox; + Label3: TLabel; + Label11: TLabel; + URLDisplayCheckBox: TCheckBox; + AddressHistoryCountEdit: TEdit; + TabStopAddressBarCheckBox: TCheckBox; + LinkAddCheckBox: TCheckBox; + GroupBox15: TGroupBox; + ShowDialogForEndCheckBox: TCheckBox; + AllTabCloseCheckBox: TCheckBox; + SambaGroupBox: TGroupBox; + UseSambaCheckBox: TCheckBox; + TabAutoSaveLoad: TGroupBox; + TabLoadSave: TCheckBox; + SoundSheet: TTabSheet; + SoundEventGroupBox: TGroupBox; + SoundListView: TListView; + SoundReferButton: TButton; + SoundFileEdit: TEdit; + SoundPlayButton: TBitBtn; + FolderSheet: TTabSheet; + FolderGroupBox: TGroupBox; + Label1: TLabel; + Label2: TLabel; + Label5: TLabel; + LogFolderEdit: TEdit; + LogFolderButton: TButton; + NGwordSheet: TTabSheet; + GroupBox14: TGroupBox; + RloCheckBox: TCheckBox; + ReplaceulCheckBox: TCheckBox; + PopUpAbonCheckBox: TCheckBox; + ShowNGLineCheckBox: TCheckBox; + AddResAnchorCheckBox: TCheckBox; + DeleteSyriaCheckBox: TCheckBox; + UserIDSheet: TTabSheet; + GroupBox3: TGroupBox; + Label9: TLabel; + Label10: TLabel; + ForcedLoginLabel: TLabel; + UserIDEdit: TEdit; + PasswordEdit: TEdit; + AutoLoginCheckBox: TCheckBox; + ForcedLoginCheckBox: TCheckBox; + GroupBox4: TGroupBox; + Label13: TLabel; + BoardURLComboBox: TComboBox; + AddURLButton: TButton; + RemoveURLButton: TButton; + OkBotton: TButton; + SpamFilterGroupBox: TGroupBox; + SpamFilterAlgorithmComboBox: TComboBox; + TabSheet4: TTabSheet; + GroupBox13: TGroupBox; + UseUndecidedCheckBox: TCheckBox; + Tora3URLLabel: TLabel; + Label12: TLabel; + GroupBox11: TGroupBox; + Label7: TLabel; + BeUserIDEdit: TEdit; + Label8: TLabel; + BeCodeEdit: TEdit; + BeAutoLoginCheckBox: TCheckBox; + GroupBox19: TGroupBox; + Label17: TLabel; + MaxRecordCountEdit: TEdit; + Label18: TLabel; + UnFocusedBoldCheckBox: TCheckBox; + IgnoreKanaCheckBox: TCheckBox; + UseKatjuTypeSkinCheckBox: TCheckBox; + GroupBox20: TGroupBox; + AutoSortCheckBox: TCheckBox; + Label24: TLabel; + GroupBox21: TGroupBox; + StoredTaskTrayCB: TCheckBox; + GroupBox22: TGroupBox; + LoopBrowserTabsCB: TCheckBox; + GroupBox23: TGroupBox; + IgnoreContextCheckBox: TCheckBox; + GroupBox24: TGroupBox; + gppRightTopRB: TRadioButton; + gppTopRB: TRadioButton; + gppLeftTopRB: TRadioButton; + gppLeftRB: TRadioButton; + gppRightRB: TRadioButton; + gppLeftBottomRB: TRadioButton; + gppBottomRB: TRadioButton; + gppRighBottomRB: TRadioButton; ResAnchorCheckBox: TCheckBox; - TabSheet1: TTabSheet; - PopupPositionRadioGroup: TRadioGroup; - TabAddRadioGroup: TRadioGroup; - GroupBox8: TGroupBox; - Label14: TLabel; - Label15: TLabel; - Label16: TLabel; - PreviewVisibleCheckBox: TCheckBox; - PreviewSizeComboBox: TComboBox; - PreviewWaitEdit: TEdit; - GroupBox10: TGroupBox; - UnActivePopupCheckBox: TCheckBox; - ResPopupBoldCheckBox: TCheckBox; - TabSheet2: TTabSheet; - GroupBox7: TGroupBox; - Label3: TLabel; - Label11: TLabel; - URLDisplayCheckBox: TCheckBox; - AddressHistoryCountEdit: TEdit; - TabStopAddressBarCheckBox: TCheckBox; - LinkAddCheckBox: TCheckBox; - GroupBox15: TGroupBox; - ShowDialogForEndCheckBox: TCheckBox; - AllTabCloseCheckBox: TCheckBox; - SambaGroupBox: TGroupBox; - UseSambaCheckBox: TCheckBox; - TabAutoSaveLoad: TGroupBox; - TabLoadSave: TCheckBox; - SoundSheet: TTabSheet; - SoundEventGroupBox: TGroupBox; - SoundListView: TListView; - SoundReferButton: TButton; - SoundFileEdit: TEdit; - SoundPlayButton: TBitBtn; - FolderSheet: TTabSheet; - FolderGroupBox: TGroupBox; - Label1: TLabel; - Label2: TLabel; - Label5: TLabel; - LogFolderEdit: TEdit; - LogFolderButton: TButton; - NGwordSheet: TTabSheet; - GroupBox14: TGroupBox; - RloCheckBox: TCheckBox; - ReplaceulCheckBox: TCheckBox; - PopUpAbonCheckBox: TCheckBox; - ShowNGLineCheckBox: TCheckBox; - AddResAnchorCheckBox: TCheckBox; - DeleteSyriaCheckBox: TCheckBox; - UserIDSheet: TTabSheet; - Tora3URLLabel: TLabel; - Label12: TLabel; - GroupBox3: TGroupBox; - Label9: TLabel; - Label10: TLabel; - ForcedLoginLabel: TLabel; - UserIDEdit: TEdit; - PasswordEdit: TEdit; - AutoLoginCheckBox: TCheckBox; - ForcedLoginCheckBox: TCheckBox; - GroupBox4: TGroupBox; - Label13: TLabel; - BoardURLComboBox: TComboBox; - AddURLButton: TButton; - RemoveURLButton: TButton; - OkBotton: TButton; + IgnoreLimitResCountCheckBox: TCheckBox; + GroupBox25: TGroupBox; + Label25: TLabel; + BoukenComboBox: TComboBox; + BoukenModButton: TButton; + BoukenDelButton: TButton; + BoukenEdit: TEdit; + GroupBox26: TGroupBox; + UseUnicodeCB: TCheckBox; + Label27: TLabel; + DispImageCheckBox: TCheckBox; + GroupBox27: TGroupBox; + ThreadTitleTrimCheckBox: TCheckBox; + GroupBox28: TGroupBox; + NGTextEditCheckBox: TCheckBox; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure ApplyButtonClick(Sender: TObject); @@ -223,8 +278,13 @@ type Change: TItemChange); procedure AddURLButtonClick(Sender: TObject); procedure RemoveURLButtonClick(Sender: TObject); - procedure OddResNumCheckBoxClick(Sender: TObject); - procedure ResRangeHoldCheckBoxClick(Sender: TObject); + procedure OddResNumCheckBoxClick(Sender: TObject); + procedure ResRangeHoldCheckBoxClick(Sender: TObject); + procedure CroutOptionClick(Sender: TObject); + procedure MaxRecordCountEditExit(Sender: TObject); + procedure BoukenDelButtonClick(Sender: TObject); + procedure BoukenComboBoxChange(Sender: TObject); + procedure BoukenModButtonClick(Sender: TObject); private { Private éŒ¾ } FClose: Boolean; @@ -236,18 +296,18 @@ type function GetMemoText(font: TFont; text: string): string; // function GetFontText(Font: TFont; Text: string): string; procedure SetValue; -// procedure SaveSetting; + procedure SaveSetting; procedure SettingApply; function CheckFolder: Boolean; procedure SetAbonpropertys; procedure CSSSetContent(Content: string); procedure CSSPreview; + //! CSSƒvƒŒƒrƒ…[—pHTMLBody¶¬ + function CreatePreviewBody(Res: array of TResRec): string; + //! CSS/SKINƒvƒŒƒrƒ…[—pStyle•¶Žš—ñŽæ“¾ + function GetPreviewUserStyle(): string; public { Public éŒ¾ } - TabAddRadio: Integer; - procedure SaveSetting; - property TabAddPro: TRadioGroup read TabAddRadioGroup write TabAddRadioGroup; - property TabAutoLoadSave: TCheckBox read TabLoadSave write TabLoadSave; end; var @@ -256,7 +316,7 @@ var implementation uses - Giko, Editor, Setting, ActnList; + Giko, Editor, Setting, ActnList, KuroutSetting, Math, HTMLCreate; const FONT_TEXT: string = '%s %d pt'; @@ -269,12 +329,24 @@ const DEFAULT_FONT_SIZE: Integer = 9; DEFAULT_TABFONT_NAME: string = '‚l‚r ‚oƒSƒVƒbƒN'; DEFAULT_TABFONT_SIZE: Integer = 9; - URL_TORA3: WideString = 'http://2ch.tora3.net/'; +// URL_TORA3: WideString = 'http://2ch.tora3.net/'; + URL_TORA3: WideString = 'http://ronin.bbspink.com/'; + DEFAULT_CSS_FILENAME = 'default.css'; {$R *.DFM} procedure TOptionDialog.FormCreate(Sender: TObject); +var + CenterForm: TCustomForm; begin + CenterForm := TCustomForm(Owner); + if Assigned(CenterForm) then begin + Left := ((CenterForm.Width - Width) div 2) + CenterForm.Left; + Top := ((CenterForm.Height - Height) div 2) + CenterForm.Top; + end else begin + Left := (Screen.Width - Width) div 2; + Top := (Screen.Height - Height) div 2; + end; CSSBrowser.Navigate('about:blank'); FClose := True; @@ -293,9 +365,9 @@ begin + 'ƒXƒŒƒbƒh•\Ž¦ƒGƒŠƒA‚̃tƒHƒ“ƒg•ÏX‚́A'#13#10 + 'uCSS ‚ƃXƒLƒ“vƒ^ƒu‚Őݒèo—ˆ‚Ü‚·'; - ForcedLoginLabel.Caption := '- ƒ`ƒFƒbƒN‚ð“ü‚ê‚é‚̂̓ZƒLƒ…ƒŠƒeƒBãD‚Ü‚µ‚­‚ ‚è‚Ü‚¹‚ñB' + #13#10 - + '@‚â‚ނ𓾂Ȃ¢Žž‚¾‚¯‚É‚µ‚Ä‚­‚¾‚³‚¢B'; - CSSCheckBoxClick(Sender); + ForcedLoginLabel.Caption := '- ƒ`ƒFƒbƒN‚ð“ü‚ê‚é‚̂̓ZƒLƒ…ƒŠƒeƒBãD‚Ü‚µ‚­‚ ‚è‚Ü‚¹‚ñB' + #13#10 + + '@‚â‚ނ𓾂Ȃ¢Žž‚¾‚¯‚É‚µ‚Ä‚­‚¾‚³‚¢B'; + CSSCheckBoxClick(Sender); BrowserMaxLabel.Caption := 'ƒuƒ‰ƒEƒU‚ªÅ¬‰»‚³‚ê‚Ä‚¢‚é‚Æ‚«‚Ɉȉº‚Ì‘€ì‚Ńuƒ‰ƒEƒU‚ðÅ‘剻‚µ‚Ü‚·B'#13#10 + '‚Ü‚½AƒzƒC[ƒ‹ƒNƒŠƒbƒN‚É‚æ‚èÅ‘剻‚ðƒLƒƒƒ“ƒZƒ‹‚·‚邱‚Æ‚ªo—ˆ‚Ü‚·B'; @@ -324,13 +396,14 @@ begin ReadPortEditExit(Sender); WritePortEditExit(Sender); AddressHistoryCountEditExit(Sender); + MaxRecordCountEditExit(Sender); PreviewWaitEditExit(Sender); if not CheckFolder then begin FClose := False; Exit; end; - SetAbonpropertys; + SetAbonpropertys; SaveSetting; SettingApply; @@ -341,13 +414,14 @@ begin ReadPortEditExit(Sender); WritePortEditExit(Sender); AddressHistoryCountEditExit(Sender); + MaxRecordCountEditExit(Sender); PreviewWaitEditExit(Sender); if not CheckFolder then begin FClose := False; Exit; end; - SetAbonpropertys; + SetAbonpropertys; SaveSetting; SettingApply; FClose := False; @@ -526,7 +600,8 @@ var Item: TListItem; // s: string; idx: Integer; - FileList: TStringList; + FileList : TStringList; + DomainList : TStringList; begin //“ǂݍž‚Ý—pƒvƒƒLƒV @@ -547,16 +622,30 @@ begin CabinetMemo.Font.Name := GikoSys.Setting.CabinetFontName; CabinetMemo.Font.Size := GikoSys.Setting.CabinetFontSize; CabinetMemo.Font.Color := GikoSys.Setting.CabinetFontColor; + CabinetMemo.Font.Style := []; + if GikoSys.Setting.CabinetFontBold then + CabinetMemo.Font.Style := [fsBold]; + if GikoSys.Setting.CabinetFontItalic then + CabinetMemo.Font.Style := CabinetMemo.Font.Style + [fsItalic]; CabinetMemo.Color := GikoSys.Setting.CabinetBackColor; + //ƒXƒŒƒbƒhƒŠƒXƒgƒtƒHƒ“ƒg ListMemo.Font.Name := GikoSys.Setting.ListFontName; ListMemo.Font.Size := GikoSys.Setting.ListFontSize; ListMemo.Font.Color := GikoSys.Setting.ListFontColor; + ListMemo.Font.Style := []; + if GikoSys.Setting.ListFontBold then + ListMemo.Font.Style := ListMemo.Font.Style + [fsBold]; + if GikoSys.Setting.ListFontItalic then + ListMemo.Font.Style := ListMemo.Font.Style + [fsItalic]; + ListMemo.Color := GikoSys.Setting.ListBackColor; //ƒŒƒX”‘Œ¸ƒXƒŒ‹­’²•\Ž¦ƒ`ƒFƒbƒNƒ{ƒbƒNƒX•ƒJƒ‰[ƒ_ƒCƒAƒƒO OddResNumCheckBox.Checked := GikoSys.Setting.UseOddColorOddResNum; OddResNumColorBox.Selected := GikoSys.Setting.OddColor; OddResNumColorBox.Enabled := OddResNumCheckBox.Checked; + UnFocusedBoldCheckBox.Checked := GikoSys.Setting.UnFocusedBold; + UnFocusedBoldCheckBox.Enabled := OddResNumCheckBox.Checked; //ƒuƒ‰ƒEƒUƒ|ƒbƒvƒAƒbƒvƒtƒHƒ“ƒg HintMemo.Font.Name := GikoSys.Setting.HintFontName; @@ -578,6 +667,8 @@ begin EditorMemo.Color := GikoSys.Setting.EditorBackColor; //CSS•\Ž¦ CSSCheckBox.Checked := GikoSys.Setting.UseCSS; + //‚©‚¿‚ãƒXƒLƒ“Žg—p + UseKatjuTypeSkinCheckBox.Checked := GikoSys.Setting.UseKatjushaType; if FCSSFont <> nil then FCSSFont.Free; FCSSFont := TFont.Create; @@ -609,15 +700,16 @@ begin //ƒXƒ^ƒCƒ‹ƒV[ƒgƒtƒ@ƒCƒ‹–¼ˆê—— FileList := TStringList.Create; try + FileList.BeginUpdate; GikoSys.GetFileList(GikoSys.GetStyleSheetDir, '*.css', FileList, True, True); - + FileList.EndUpdate; Idx := Length(GikoSys.GetStyleSheetDir); for i := 0 to FileList.Count - 1 do FileList[i] := Copy(FileList[i], Idx + 1, Length(FileList[i])); FileList.Sort; for i := 0 to FileList.Count - 1 do begin //s := ExtractFileName(FileList[i]); - if LowerCase(FileList[i]) = 'default.css' then + if LowerCase(FileList[i]) = DEFAULT_CSS_FILENAME then Item := CSSListView.Items.Insert(0) else Item := CSSListView.Items.Add; @@ -634,29 +726,18 @@ begin FCSSStrings.Clear; FCSSStrings := TStringList.Create; try - //GikoSys.GetDirectoryList(GikoSys.GetSkinDir, '*', FileList, False); GikoSys.GetDirectoryList(GikoSys.GetSkinDir, '*', FCSSStrings, False); Idx := Length(GikoSys.GetSkinDir); - //FileList.Sort; FCSSStrings.Sort; - //for i := 0 to FileList.Count - 1 do begin for i := 0 to FCSSStrings.Count - 1 do begin - //s := ExtractFileName(FileList[i]); Item := CSSListView.Items.Add; - {Item.Data := PChar( FileList[i] ); - Item.Caption := Copy( FileList[i], Idx + 1, Length(FileList[i]) ); - if LowerCase(FileList[i]) = LowerCase(GikoSys.Setting.CSSFileName) then - Item.Selected := True; - } Item.Data := PChar( FCSSStrings[i] ); Item.Caption := Copy( FCSSStrings[i], Idx + 1, Length(FCSSStrings[i]) ); if LowerCase(FCSSStrings[i]) = LowerCase(GikoSys.Setting.CSSFileName) then Item.Selected := True; end; finally - // Item.Data ‚Ƀ|ƒCƒ“ƒ^“Ë‚Áž‚ñ‚Å‚é‚©‚çŠJ•ú‚Å‚«‚È‚¢‚悧` - //FileList.Free; end; if (CSSListView.ItemIndex = -1) and (CSSListView.Items.Count > 0) then @@ -664,6 +745,8 @@ begin //Mail—“•\Ž¦ ShowMailCheckBox.Checked := GikoSys.Setting.ShowMail; + //BE2.0ƒAƒCƒRƒ“EEmoticons‚ð‰æ‘œ•\Ž¦‚·‚é + DispImageCheckBox.Checked := GikoSys.Setting.IconImageDisplay; // ‹N“®ŽžƒŒƒX•\Ž¦”͈͂̌Œè ResRangeHoldCheckBox.Checked := GikoSys.Setting.ResRangeHold; @@ -671,7 +754,7 @@ begin Ord( grrAll ): ResRangeHoldComboBox.ItemIndex := 0; Ord( grrKoko ): ResRangeHoldComboBox.ItemIndex := 2; Ord( grrNew ): ResRangeHoldComboBox.ItemIndex := 3; - 100: ResRangeHoldComboBox.ItemIndex := 1; + 10..65535: ResRangeHoldComboBox.ItemIndex := 1; end; ResRangeHoldComboBox.Enabled := GikoSys.Setting.ResRangeHold; //ƒ^ƒu’ljÁˆÊ’u @@ -714,6 +797,8 @@ begin //ƒƒOíœŽžƒƒbƒZ[ƒW LogDeleteMessageCheckBox.Checked := GikoSys.Setting.DeleteMsg; + //“¯IDƒŒƒXƒAƒ“ƒJ[•\Ž¦‚̐§ŒÀ”‰z‚¦ƒƒbƒZ[ƒW + IgnoreLimitResCountCheckBox.Checked := GikoSys.Setting.LimitResCountMessage; //I—¹ŽžŠm”Fƒ_ƒCƒAƒƒO ShowDialogForEndCheckBox.Checked := GikoSys.Setting.ShowDialogForEnd; @@ -726,15 +811,15 @@ begin BrowserMaxCombo.ItemIndex := Ord( GikoSys.Setting.BrowserAutoMaximize ); //ƒ|ƒbƒvƒAƒbƒvˆÊ’u case GikoSys.Setting.PopupPosition of - gppRightTop: PopupPositionRadioGroup.ItemIndex := 0; - gppRight: PopupPositionRadioGroup.ItemIndex := 1; - gppRightBottom: PopupPositionRadioGroup.ItemIndex := 2; - gppTop: PopupPositionRadioGroup.ItemIndex := 3; - gppCenter: PopupPositionRadioGroup.ItemIndex := 4; - gppBottom: PopupPositionRadioGroup.ItemIndex := 5; - gppLeftTop: PopupPositionRadioGroup.ItemIndex := 6; - gppLeft: PopupPositionRadioGroup.ItemIndex := 7; - gppLeftBottom: PopupPositionRadioGroup.ItemIndex := 8; + gppRightTop: gppRightTopRB.Checked := True; + gppRight: gppRightRB.Checked := True; + gppRightBottom: gppRighBottomRB.Checked := True; + gppTop: gppTopRB.Checked := True; + gppCenter: gppTopRB.Checked := True; // “ǂݍž‚Ý‚Å•ÏŠ·‚µ‚Ä‚é‚Í‚¸ + gppBottom: gppBottomRB.Checked := True; + gppLeftTop: gppLeftTopRB.Checked := True; + gppLeft: gppLeftRB.Checked := True; + gppLeftBottom: gppLeftBottomRB.Checked := True; end; //”ñƒAƒNƒeƒBƒuŽžƒ|ƒbƒvƒAƒbƒv•\Ž¦ @@ -762,43 +847,95 @@ begin //ƒXƒŒƒbƒhˆê——XVƒAƒCƒRƒ“ ThreadListIconCheckBox.Checked := GikoSys.Setting.ListIconVisible; - NonAcquiredCountCheckBox.Checked := GikoSys.Setting.NonAcquiredCount; CreationTimeLogsCheckBox.Checked := GikoSys.Setting.CreationTimeLogs; FutureThreadCheckBox.Checked := GikoSys.Setting.FutureThread; SelectIntervalEdit.Text := IntToStr(GikoSys.Setting.SelectInterval); //dat—Ž‚¿ƒXƒŒƒ\[ƒg‡ - case GikoSys.Setting.DatOchiSortIndex of - 0: + case TGikoBoardColumnID( GikoSys.Setting.DatOchiSortIndex ) of + gbcTitle: if GikoSys.Setting.DatOchiSortOrder then DatOchiSortCombo.ItemIndex := 1 else DatOchiSortCombo.ItemIndex := 2; - 6: + gbcRoundDate://gbcLastModified: if GikoSys.Setting.DatOchiSortOrder then DatOchiSortCombo.ItemIndex := 3 else DatOchiSortCombo.ItemIndex := 4; - 7: + gbcCreated: if GikoSys.Setting.DatOchiSortOrder then DatOchiSortCombo.ItemIndex := 5 else DatOchiSortCombo.ItemIndex := 6; + gbcLastModified: + if GikoSys.Setting.DatOchiSortOrder then + DatOchiSortCombo.ItemIndex := 7 + else + DatOchiSortCombo.ItemIndex := 8; else DatOchiSortCombo.ItemIndex := 0; end; - - //‚ ‚ځ`‚ñ - RloCheckBox.Checked := GikoSys.Setting.AbonDeleterlo; - ReplaceulCheckBox.Checked := GikoSys.Setting.AbonReplaceul; - PopUpAbonCheckBox.Checked := GikoSys.Setting.PopUpAbon; - ShowNGLineCheckBox.Checked := GikoSys.Setting.ShowNGLinesNum; - AddResAnchorCheckBox.Checked := GikoSys.Setting.AddResAnchor; + AutoSortCheckBox.Checked := GikoSys.Setting.AutoSortThreadList; + + //‚ ‚ځ`‚ñ + RloCheckBox.Checked := GikoSys.Setting.AbonDeleterlo; + ReplaceulCheckBox.Checked := GikoSys.Setting.AbonReplaceul; + PopUpAbonCheckBox.Checked := GikoSys.Setting.PopUpAbon; + ShowNGLineCheckBox.Checked := GikoSys.Setting.ShowNGLinesNum; + AddResAnchorCheckBox.Checked := GikoSys.Setting.AddResAnchor; DeleteSyriaCheckBox.Checked := GikoSys.Setting.DeleteSyria; - - //TabAutoLoad - TabLoadSave.Checked := Gikosys.Setting.TabAutoLoadSave; - + IgnoreKanaCheckBox.Checked := GikoSys.Setting.IgnoreKana; + //NGƒ[ƒh•ÒW + NGTextEditCheckBox.Checked := GikoSys.Setting.NGTextEditor; +{$IFDEF SPAM_FILTER_ENABLED} + // ƒXƒpƒ€ƒtƒBƒ‹ƒ^‚̐ݒè‚ð•\Ž¦‚·‚é + SpamFilterGroupBox.Visible := True; +{$ENDIF} + // Žg—p‚·‚éƒXƒpƒ€ƒtƒBƒ‹ƒ^ +{$IFDEF DEBUG} + SpamFilterAlgorithmComboBox.Clear; + SpamFilterAlgorithmComboBox.AddItem( 'Žg—p‚µ‚È‚¢', nil ); + SpamFilterAlgorithmComboBox.AddItem( 'Paul Graham –@', nil ); + SpamFilterAlgorithmComboBox.AddItem( 'Gary Robinson –@', nil ); + SpamFilterAlgorithmComboBox.AddItem( 'Gary Robinson-Fisher –@', nil ); +{$ENDIF} + SpamFilterAlgorithmComboBox.ItemIndex := + Ord( GikoSys.Setting.SpamFilterAlgorithm ); + + //TabAutoLoad + TabLoadSave.Checked := Gikosys.Setting.TabAutoLoadSave; + UseUndecidedCheckBox.Checked := GikoSys.Setting.UseUndecided; + + // ƒŒƒXƒGƒfƒBƒ^Unicode“ü—Í + UseUnicodeCB.Checked := Gikosys.Setting.UseUnicode; + // ƒXƒŒƒ^ƒC“Á’蕶Žš—ñœ‹Ž + ThreadTitleTrimCheckBox.Checked := GikoSys.Setting.ThreadTitleTrim; + + //Be2ch”FØ + BeUserIDEdit.Text := GikoSys.Setting.BeUserID; + BeCodeEdit.Text := GikoSys.Setting.BePassword; + BeAutoLoginCheckBox.Checked := GikoSys.Setting.BeAutoLogin; + //—š—ð‚̍őå•Û‘¶” + MaxRecordCountEdit.Text := IntToStr(GikoSys.Setting.MaxRecordCount); + // Å¬‰»Žž‚Ƀ^ƒXƒNƒgƒŒƒC‚ÉŠi”[‚·‚é‚© + StoredTaskTrayCB.Checked := GikoSys.Setting.StoredTaskTray; + // ƒuƒ‰ƒEƒUƒ^ƒu‚̈ړ®‚Ń‹[ƒv‚ð‹–‰Â‚·‚é‚© + LoopBrowserTabsCB.Checked := GikoSys.Setting.LoopBrowserTabs; + // + IgnoreContextCheckBox.Checked := GikoSys.Setting.GestureIgnoreContext; + + // –`Œ¯‚̏‘ƒhƒƒCƒ“ˆê——Žæ“¾ + BoukenComboBox.Text := ''; + BoukenComboBox.Items.Clear; + DomainList := TStringList.Create; + GikoSys.GetBoukenDomain(DomainList); + for i := 0 to DomainList.Count - 1 do begin + BoukenComboBox.Items.Add( DomainList[i] ) ; + end; + DomainList.Free; + BoukenComboBox.ItemIndex := 0; + BoukenComboBox.OnChange(nil); end; procedure TOptionDialog.SaveSetting; @@ -824,14 +961,20 @@ begin GikoSys.Setting.CabinetFontName := CabinetMemo.Font.Name; GikoSys.Setting.CabinetFontSize := CabinetMemo.Font.Size; GikoSys.Setting.CabinetFontColor := CabinetMemo.Font.Color; + GikoSys.Setting.CabinetFontBold := fsBold in CabinetMemo.Font.Style; + GikoSys.Setting.CabinetFontItalic:= fsItalic in CabinetMemo.Font.Style; GikoSys.Setting.CabinetBackColor := CabinetMemo.Color; - GikoSys.Setting.ListFontName := ListMemo.Font.Name; - GikoSys.Setting.ListFontSize := ListMemo.Font.Size; - GikoSys.Setting.ListFontColor := ListMemo.Font.Color; + GikoSys.Setting.ListFontName := ListMemo.Font.Name; + GikoSys.Setting.ListFontSize := ListMemo.Font.Size; + GikoSys.Setting.ListFontColor := ListMemo.Font.Color; + GikoSys.Setting.ListFontBold := fsBold in ListMemo.Font.Style; + GikoSys.Setting.ListFontItalic := fsItalic in ListMemo.Font.Style; GikoSys.Setting.ListBackColor := ListMemo.Color; GikoSys.Setting.UseOddColorOddResNum := OddResNumCheckBox.Checked; GikoSys.Setting.OddColor := OddResNumColorBox.Selected; + GikoSys.Setting.UnFocusedBold := (UnFocusedBoldCheckBox.Enabled) and + (UnFocusedBoldCheckBox.Checked); GikoSys.Setting.HintFontName := HintMemo.Font.Name; GikoSys.Setting.HintFontSize := HintMemo.Font.Size; @@ -840,7 +983,8 @@ begin GikoSys.Setting.BrowserTabFontName := BrowserTabMemo.Font.Name; GikoSys.Setting.BrowserTabFontSize := BrowserTabMemo.Font.Size; - + GikoSys.Setting.BrowserTabFontBold := fsBold in BrowserTabMemo.Font.Style; + GikoSys.Setting.BrowserTabFontItalic := fsItalic in BrowserTabMemo.Font.Style; GikoSys.Setting.EditorFontName := EditorMemo.Font.Name; GikoSys.Setting.EditorFontSize := EditorMemo.Font.Size; GikoSys.Setting.EditorFontColor := EditorMemo.Font.Color; @@ -852,9 +996,10 @@ begin //CSS•\Ž¦ if GikoSys.Setting.UseCSS <> CSSCheckBox.Checked then FRepaintThread := true; GikoSys.Setting.UseCSS := CSSCheckBox.Checked; + GikoSys.Setting.UseKatjushaType := UseKatjuTypeSkinCheckBox.Checked; //CSSƒtƒ@ƒCƒ‹–¼ tmp := GikoSys.Setting.CSSFileName; - GikoSys.Setting.CSSFileName := 'default.css'; + GikoSys.Setting.CSSFileName := DEFAULT_CSS_FILENAME; if CSSListView.Items.Count > 0 then begin try if CSSListView.Items[CSSListView.ItemIndex].Data <> nil then @@ -914,13 +1059,15 @@ begin //Mail—“•\Ž¦ if GikoSys.Setting.ShowMail <> ShowMailCheckBox.Checked then FRepaintThread := true; GikoSys.Setting.ShowMail := ShowMailCheckBox.Checked; + //BE2.0ƒAƒCƒRƒ“EEmoticons‚ð‰æ‘œ•\Ž¦‚·‚é + GikoSys.Setting.IconImageDisplay := DispImageCheckBox.Checked; // ‹N“®ŽžƒŒƒX•\Ž¦”͈͂̌Œè GikoSys.Setting.ResRangeHold := ResRangeHoldCheckBox.Checked; case ResRangeHoldComboBox.ItemIndex of - 0: GikoSys.Setting.ResRange := Ord( grrAll ); - 1: GikoSys.Setting.ResRange := 100; - 2: GikoSys.Setting.ResRange := Ord( grrKoko ); - 3: GikoSys.Setting.ResRange := Ord( grrNew ); + 0: GikoSys.Setting.ResRange := Ord( grrAll ); + 1: GikoSys.Setting.ResRange := GikoSys.Setting.ResRangeExCount; + 2: GikoSys.Setting.ResRange := Ord( grrKoko ); + 3: GikoSys.Setting.ResRange := Ord( grrNew ); end; GikoSys.Setting.BrowserTabAppend := TGikoTabAppend(TabAddRadioGroup.ItemIndex); @@ -938,28 +1085,26 @@ begin GikoSys.Setting.OpenMailer := OpenMailerCheckBox.Checked; GikoSys.Setting.DeleteMsg := LogDeleteMessageCheckBox.Checked; + GikoSys.Setting.LimitResCountMessage := IgnoreLimitResCountCheckBox.Checked; + //I—¹ŽžŠm”Fƒ_ƒCƒAƒƒO GikoSys.Setting.ShowDialogForEnd := ShowDialogForEndCheckBox.Checked; //AllTabClose GikoSys.Setting.ShowDialogForAllTabClose := AllTabCloseCheckBox.Checked; - //Samba + //Samba GikoSys.Setting.UseSamba := UseSambaCheckBox.Checked; GikoSys.Setting.ResAnchorJamp := ResAnchorCheckBox.Checked; // ƒuƒ‰ƒEƒUÅ‘剻 GikoSys.Setting.BrowserAutoMaximize := TGikoBrowserAutoMaximize( BrowserMaxCombo.ItemIndex ); //ƒ|ƒbƒvƒAƒbƒvˆÊ’u - case PopupPositionRadioGroup.ItemIndex of - 0: GikoSys.Setting.PopupPosition := gppRightTop; - 1: GikoSys.Setting.PopupPosition := gppRight; - 2: GikoSys.Setting.PopupPosition := gppRightBottom; - 3: GikoSys.Setting.PopupPosition := gppTop; - 4: GikoSys.Setting.PopupPosition := gppCenter; - 5: GikoSys.Setting.PopupPosition := gppBottom; - 6: GikoSys.Setting.PopupPosition := gppLeftTop; - 7: GikoSys.Setting.PopupPosition := gppLeft; - 8: GikoSys.Setting.PopupPosition := gppLeftBottom; - end; - + if (gppRightTopRB.Checked) then GikoSys.Setting.PopupPosition := gppRightTop; + if (gppRightRB.Checked) then GikoSys.Setting.PopupPosition := gppRight; + if (gppRighBottomRB.Checked) then GikoSys.Setting.PopupPosition := gppRightBottom; + if (gppTopRB.Checked) then GikoSys.Setting.PopupPosition := gppTop; + if (gppBottomRB.Checked) then GikoSys.Setting.PopupPosition := gppBottom; + if (gppLeftTopRB.Checked) then GikoSys.Setting.PopupPosition := gppLeftTop; + if (gppLeftRB.Checked) then GikoSys.Setting.PopupPosition := gppLeft; + if (gppLeftBottomRB.Checked) then GikoSys.Setting.PopupPosition := gppLeftBottom; //”ñƒAƒNƒeƒBƒuŽžƒ|ƒbƒvƒAƒbƒv•\Ž¦ GikoSys.Setting.UnActivePopup := UnActivePopupCheckBox.Checked; //ƒŒƒXƒ|ƒbƒvƒAƒbƒvƒ{[ƒ‹ƒh•\Ž¦ @@ -991,11 +1136,6 @@ begin //ƒXƒŒƒbƒhˆê——XVƒAƒCƒRƒ“ GikoSys.Setting.ListIconVisible := ThreadListIconCheckBox.Checked; - //Žæ“¾”A–¢Žæ“¾” - if (GikoSys.Setting.NonAcquiredCount <> NonAcquiredCountCheckBox.Checked) and (GikoForm.ActiveList Is TBoard) then - FRepaintList := true; - GikoSys.Setting.NonAcquiredCount := NonAcquiredCountCheckBox.Checked; - GikoSys.Setting.CreationTimeLogs := CreationTimeLogsCheckBox.Checked; GikoSys.Setting.FutureThread := FutureThreadCheckBox.Checked; if StrToIntDef(SelectIntervalEdit.Text, 110) > 55 then @@ -1008,29 +1148,38 @@ begin 0: GikoSys.Setting.DatOchiSortIndex := -1; //•À‚Ñ‘Ö‚¦‚µ‚È‚¢ 1: begin //ƒXƒŒ”ԍ†(¸‡) GikoSys.Setting.DatOchiSortOrder := true; - GikoSys.Setting.DatOchiSortIndex := 0; + GikoSys.Setting.DatOchiSortIndex := Ord( gbcTitle ); end; 2: begin //ƒXƒŒ”ԍ†(~‡) GikoSys.Setting.DatOchiSortOrder := false; - GikoSys.Setting.DatOchiSortIndex := 0; + GikoSys.Setting.DatOchiSortIndex := Ord( gbcTitle ); end; 3: begin //Žæ“¾“úŽž(¸‡) GikoSys.Setting.DatOchiSortOrder := true; - GikoSys.Setting.DatOchiSortIndex := 6; + GikoSys.Setting.DatOchiSortIndex := Ord( gbcRoundDate );{gbcLastModified} end; 4: begin //Žæ“¾“úŽž(~‡) GikoSys.Setting.DatOchiSortOrder := false; - GikoSys.Setting.DatOchiSortIndex := 6; + GikoSys.Setting.DatOchiSortIndex := Ord( gbcRoundDate );{gbcLastModified} end; 5: begin //ƒXƒŒì¬“úŽž(¸‡) GikoSys.Setting.DatOchiSortOrder := true; - GikoSys.Setting.DatOchiSortIndex := 7; + GikoSys.Setting.DatOchiSortIndex := Ord( gbcCreated ); end; 6: begin //ƒXƒŒì¬“úŽž(~‡) GikoSys.Setting.DatOchiSortOrder := false; - GikoSys.Setting.DatOchiSortIndex := 7; + GikoSys.Setting.DatOchiSortIndex := Ord( gbcCreated ); end; + 7: begin //ƒXƒŒÅIXV“úŽži¸‡j + GikoSys.Setting.DatOchiSortOrder := true; + GikoSys.Setting.DatOchiSortIndex := Ord( gbcLastModified );{gbcLastModified} + end; + 8: begin //ƒXƒŒÅIXV“úŽži~‡j + GikoSys.Setting.DatOchiSortOrder := false; + GikoSys.Setting.DatOchiSortIndex := Ord( gbcLastModified );{gbcLastModified} + end; end; + GikoSys.Setting.AutoSortThreadList := AutoSortCheckBox.Checked; GikoSys.Setting.WriteSystemSettingFile; GikoSys.Setting.WriteBoardURLSettingFile; @@ -1054,10 +1203,38 @@ begin GikoSys.Setting.PopUpAbon := PopUpAbonCheckBox.Checked; GikoSys.Setting.ShowNGLinesNum := ShowNGLineCheckBox.Checked; GikoSys.Setting.AddResAnchor := AddResAnchorCheckBox.Checked; - GikoSys.Setting.DeleteSyria := DeleteSyriaCheckBox.Checked; + GikoSys.Setting.DeleteSyria := DeleteSyriaCheckBox.Checked; + GikoSys.Setting.IgnoreKana := IgnoreKanaCheckBox.Checked; + GikoSys.FAbon.IgnoreKana := GikoSys.Setting.IgnoreKana; + //NGƒ[ƒh•ÒW + GikoSys.Setting.NGTextEditor := NGTextEditCheckBox.Checked; + // Žg—p‚·‚éƒXƒpƒ€ƒtƒBƒ‹ƒ^ + if GikoSys.Setting.SpamFilterAlgorithm <> TGikoSpamFilterAlgorithm( + SpamFilterAlgorithmComboBox.ItemIndex ) then begin + GikoSys.Setting.SpamFilterAlgorithm := TGikoSpamFilterAlgorithm( + SpamFilterAlgorithmComboBox.ItemIndex ); + FRepaintThread := True; + end; + + //TabŽ©“®•Û‘¶ + GikoSys.Setting.TabAutoLoadSave := TabLoadSave.Checked; + GikoSys.Setting.UseUndecided := UseUndecidedCheckBox.Checked; + //Be2ch + GikoSys.Setting.BeUserID := BeUserIDEdit.Text; + GikoSys.Setting.BePassword := BeCodeEdit.Text; + GikoSys.Setting.BeAutoLogin := BeAutoLoginCheckBox.Checked; + //—š—ð‚̍őå•Û‘¶” + GikoSys.Setting.MaxRecordCount := Max(StrToInt64Def(MaxRecordCountEdit.Text,100),1); + GikoSys.Setting.StoredTaskTray := StoredTaskTrayCB.Checked; + GikoSys.Setting.LoopBrowserTabs := LoopBrowserTabsCB.Checked; + + GikoSys.Setting.GestureIgnoreContext := IgnoreContextCheckBox.Checked; + + // ƒŒƒXƒGƒfƒBƒ^Unicode“ü—Í + Gikosys.Setting.UseUnicode := UseUnicodeCB.Checked; + // ƒXƒŒƒ^ƒC“Á’蕶Žš—ñœ‹Ž + GikoSys.Setting.ThreadTitleTrim := ThreadTitleTrimCheckBox.Checked; - //TabŽ©“®•Û‘¶ - GikoSys.Setting.TabAutoLoadSave := TabLoadSave.Checked; end; procedure TOptionDialog.SettingApply; @@ -1073,21 +1250,32 @@ begin GikoForm.TreeView.Font.Color := GikoSys.Setting.CabinetFontColor; GikoForm.TreeView.Color := GikoSys.Setting.CabinetBackColor; - GikoForm.FavoriteTreeView.Font.Name := GikoSys.Setting.CabinetFontName; - GikoForm.FavoriteTreeView.Font.Size := GikoSys.Setting.CabinetFontSize; - GikoForm.FavoriteTreeView.Font.Color := GikoSys.Setting.CabinetFontColor; + GikoForm.FavoriteTreeView.Font.Assign(GikoForm.TreeView.Font); GikoForm.FavoriteTreeView.Color := GikoSys.Setting.CabinetBackColor; GikoForm.ListView.Font.Name := GikoSys.Setting.ListFontName; GikoForm.ListView.Font.Size := GikoSys.Setting.ListFontSize; GikoForm.ListView.Font.Color := GikoSys.Setting.ListFontColor; + GikoForm.ListView.Font.Style := []; + if GikoSys.Setting.ListFontBold then + GikoForm.ListView.Font.Style := [fsbold]; + if GikoSys.Setting.ListFontItalic then + GikoForm.ListView.Font.Style := GikoForm.ListView.Font.Style + [fsitalic]; + //GikoForm.ListView.Color := GikoSys.Setting.ListBackColor; - GikoForm.ListViewBackGroundColor := GikoSys.Setting.ListBackColor; - GikoForm.UseOddResOddColor := GikoSys.Setting.UseOddColorOddResNum; - GikoForm.OddColor := GikoSys.Setting.OddColor; + GikoForm.ListViewBackGroundColor := GikoSys.Setting.ListBackColor; + GikoForm.UseOddResOddColor := GikoSys.Setting.UseOddColorOddResNum; + GikoForm.OddColor := GikoSys.Setting.OddColor; + GikoSys.Setting.UnFocusedBold := (UnFocusedBoldCheckBox.Enabled) and + (UnFocusedBoldCheckBox.Checked); GikoForm.BrowserTab.Font.Name := GikoSys.Setting.BrowserTabFontName; GikoForm.BrowserTab.Font.Size := GikoSys.Setting.BrowserTabFontSize; + GikoForm.BrowserTab.Font.Style := []; + if GikoSys.Setting.BrowserTabFontBold then + GikoForm.BrowserTab.Font.Style := [fsBold]; + if GikoSys.Setting.BrowserTabFontItalic then + GikoForm.BrowserTab.Font.Style := GikoForm.BrowserTab.Font.Style + [fsItalic]; // GikoForm.BrowserTab.Height := (GikoSys.Setting.BrowserTabFontSize * 2) + 1; // GikoForm.BrowserBottomPanel.Height := GikoForm.BrowserTab.Height; @@ -1124,6 +1312,9 @@ begin end; GikoForm.BrowserTab.OnChange(nil); end; + + // ƒ^ƒu‚̃XƒŒƒ^ƒCXV + GikoForm.UpdateThreadTitle; end; procedure TOptionDialog.ReadProxyCheckClick(Sender: TObject); @@ -1159,7 +1350,7 @@ end; function TOptionDialog.CheckFolder: Boolean; begin if Trim(LogFolderEdit.Text) = '' then - LogFolderEdit.Text := ExtractFilePath(Application.ExeName) + 'Log'; + LogFolderEdit.Text := GikoSys.GetAppDir + 'Log'; if DirectoryExists(LogFolderEdit.Text) then begin Result := True; @@ -1193,17 +1384,29 @@ begin sndPlaySound(nil, SND_ASYNC); if OpenDialog.Execute then begin SoundFileEdit.Text := OpenDialog.FileName; + // ƒAƒvƒŠ”z‰º‚̃tƒ@ƒCƒ‹‚̏ꍇ‘Š‘΃pƒX‚É•ÏŠ·‚·‚éB + if (AnsiPos(GikoSys.Setting.GetAppDir,SoundFileEdit.Text) = 1) then begin + // .\ ‚ª‚‚©‚È‚¢‚̂ŁA.\‚ð’ljÁ + SoundFileEdit.Text := '.\' + ExtractRelativePath( + GikoSys.Setting.GetAppDir, + SoundFileEdit.Text); + + end; end; end; procedure TOptionDialog.SoundPlayButtonClick(Sender: TObject); +var + s : String; begin - if not FileExists(SoundFileEdit.Text) then begin + SetCurrentDir(GikoSys.Setting.GetAppDir); + s := ExpandFileName(SoundFileEdit.Text); + if not FileExists(s) then begin MsgBox(Handle, '‘¶Ý‚µ‚È‚¢ƒtƒ@ƒCƒ‹‚Å‚·', 'ƒGƒ‰[', MB_ICONSTOP or MB_OK); SoundFileEdit.Text := ''; Exit; end; - if not sndPlaySound(PChar(SoundFileEdit.Text), SND_ASYNC or SND_NOSTOP) then begin + if not sndPlaySound(PChar(s), SND_ASYNC or SND_NOSTOP) then begin sndPlaySound(nil, SND_ASYNC); end; end; @@ -1223,7 +1426,8 @@ begin Item := SoundListView.Selected; if Item = nil then Exit; - if FileExists(SoundFileEdit.Text) then + SetCurrentDir(GikoSys.Setting.GetAppDir); + if FileExists(ExpandFileName(SoundFileEdit.Text)) then Item.SubItems[0] := SoundFileEdit.Text; if Trim(SoundFileEdit.Text) = '' then Item.SubItems[0] := ''; @@ -1311,13 +1515,13 @@ end; procedure TOptionDialog.SetAbonpropertys; begin - //‚ ‚ځ`‚ñ - GikoSys.FAbon.Deleterlo := RloCheckBox.Checked; - GikoSys.FAbon.Replaceul := ReplaceulCheckBox.Checked; - GikoSys.FAbon.AbonPopupRes := PopUpAbonCheckBox.Checked; + //‚ ‚ځ`‚ñ + GikoSys.FAbon.Deleterlo := RloCheckBox.Checked; + GikoSys.FAbon.Replaceul := ReplaceulCheckBox.Checked; + GikoSys.FAbon.AbonPopupRes := PopUpAbonCheckBox.Checked; GikoSys.FAbon.ReturnNGwordLineNum := ShowNGLineCheckBox.Checked; GikoSys.FAbon.SetNGResAnchor := AddResAnchorCheckBox.Checked; - GikoSys.FAbon.DeleteSyria := DeleteSyriaCheckBox.Checked; + GikoSys.FAbon.DeleteSyria := DeleteSyriaCheckBox.Checked; end; procedure TOptionDialog.CSSFontButtonClick(Sender: TObject); begin @@ -1364,12 +1568,12 @@ end; procedure TOptionDialog.CSSSetContent(Content: string); var - doc : Variant; + doc : OleVariant; begin if CSSBrowser.Document <> nil then begin - doc := CSSBrowser.Document; + doc := CSSBrowser.OleObject.Document; doc.open; - doc.Clear; + doc.Clear; doc.charset := 'Shift_JIS'; doc.Write(Content); doc.Close; @@ -1382,14 +1586,12 @@ var ThreadItem: TThreadItem; html: string; Res: array [0..1] of TResRec; - UserOptionalStyle: string; - i: Integer; fileName: string; begin fileName := GikoSys.Setting.CSSFileName; - GikoSys.Setting.CSSFileName := 'default.css'; + GikoSys.Setting.CSSFileName := DEFAULT_CSS_FILENAME; if CSSListView.Items.Count > 0 then begin try if CSSListView.ItemIndex >= 0 then begin @@ -1397,13 +1599,13 @@ begin GikoSys.Setting.CSSFileName := string( CSSListView.Items[CSSListView.ItemIndex].data ) else GikoSys.Setting.CSSFileName := CSSListView.Items[CSSListView.ItemIndex].Caption + '.css'; - end; + end; except end; end; Board := TBoard.Create( nil, 'about://sample/' ); - ThreadItem := TThreadItem.Create( nil, 'about://sample/test/read.cgi/sample/' ); + ThreadItem := TThreadItem.Create( nil, Board, 'about://sample/test/read.cgi/sample/' ); try Board.Title := 'ƒTƒ“ƒvƒ‹”Â'; @@ -1422,66 +1624,27 @@ begin Res[1].FDateTime := 'ID:Sample'; Res[1].FBody := 'ƒIƒ}ƒGƒ‚ƒi['; - // ƒtƒHƒ“ƒg‚âƒTƒCƒY‚̐ݒè - if CSSFontCheckBox.Checked then begin - i := ColorToRGB( FCSSFont.Color ); - i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16); - - UserOptionalStyle := UserOptionalStyle + - 'font-family:"' + FCSSFont.Name + '";' + - 'font-size:' + IntToStr( FCSSFont.Size ) + 'pt;' + - 'color:#' + IntToHex( i, 6 ) + ';'; - if fsBold in FCSSFont.Style then - UserOptionalStyle := UserOptionalStyle + 'font-weight:bold;' - else - UserOptionalStyle := UserOptionalStyle + 'font-weight:normal;'; - if fsItalic in FCSSFont.Style then - UserOptionalStyle := UserOptionalStyle + 'font-style:italic;' - else - UserOptionalStyle := UserOptionalStyle + 'font-style:normal;'; - end; - if CSSBackColorCheckBox.Checked then begin - i := ColorToRGB( FCSSBackColor ); - i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16); - - UserOptionalStyle := UserOptionalStyle + - 'background-color:#' + IntToHex( i, 6 ) + ';'; - end; if FileExists( GikoSys.GetSkinHeaderFileName ) then begin html := - GikoSys.LoadFromSkin( GikoSys.GetSkinHeaderFileName, ThreadItem, 0 ) + + HTMLCreater.LoadFromSkin( GikoSys.GetSkinHeaderFileName, ThreadItem, 0 ) + '' + - GikoSys.SkinedRes( GikoSYs.LoadFromSkin( GikoSys.GetSkinResFileName, ThreadItem, 0 ), Res[0], '1' ) + - GikoSys.SkinedRes( GikoSYs.LoadFromSkin( GikoSys.GetSkinNewResFileName, ThreadItem, 0 ), Res[1], '2' ) + + HTMLCreater.SkinedRes( HTMLCreater.LoadFromSkin( GikoSys.GetSkinResFileName, ThreadItem, 0 ), @Res[0], '1' ) + + HTMLCreater.SkinedRes( HTMLCreater.LoadFromSkin( GikoSys.GetSkinNewResFileName, ThreadItem, 0 ), @Res[1], '2' ) + '' + - GikoSys.LoadFromSkin( GikoSys.GetSkinFooterFileName, ThreadItem, 0 ); + HTMLCreater.LoadFromSkin( GikoSys.GetSkinFooterFileName, ThreadItem, 0 ); html := StringReplace( html, '', - '', [rfReplaceAll] ); + '', [rfReplaceAll] ); end else begin html := - '' + - '' + + '' + '' + ThreadItem.Title + '' + '' + - '' + - '' + - '
' + ThreadItem.Title + '
'; - - for i := 0 to High( Res ) do - begin - html := html + - '
' + IntToStr( i + 1 ) + '' + - ' –¼‘OF ' + - '' + - '' + Res[i].FName + ' [' + Res[i].FMailTo + ']' + - ' “Še“úF' + - ' ' + Res[i].FDateTime+ '
' + - '
' + Res[i].FBody + '
'; - end; - - html := html + ''; + '' + + '
' + ThreadItem.Title + '
'; + + html := html + CreatePreviewBody(Res) + ''; end; try @@ -1496,7 +1659,57 @@ begin end; end; +function TOptionDialog.CreatePreviewBody(Res: array of TResRec): string; +var + i : Integer; +begin + Result := ''; + for i := 0 to High( Res ) do + begin + Result := Result + + '
' + IntToStr( i + 1 ) + '' + + ' –¼‘OF ' + + '' + + '' + Res[i].FName + ' [' + Res[i].FMailTo + ']' + + ' “Še“úF' + + ' ' + Res[i].FDateTime+ '
' + + '
' + Res[i].FBody + '
'; + end; +end; + +function TOptionDialog.GetPreviewUserStyle(): string; +var + i : Integer; + +begin + Result := ''; + // ƒtƒHƒ“ƒg‚âƒTƒCƒY‚̐ݒè + if CSSFontCheckBox.Checked then begin + i := ColorToRGB( FCSSFont.Color ); + i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16); + Result := Result + + 'font-family:"' + FCSSFont.Name + '";' + + 'font-size:' + IntToStr( FCSSFont.Size ) + 'pt;' + + 'color:#' + IntToHex( i, 6 ) + ';'; + if fsBold in FCSSFont.Style then + Result := Result + 'font-weight:bold;' + else + Result := Result + 'font-weight:normal;'; + if fsItalic in FCSSFont.Style then + Result := Result + 'font-style:italic;' + else + Result := Result + 'font-style:normal;'; + end; + if CSSBackColorCheckBox.Checked then begin + i := ColorToRGB( FCSSBackColor ); + i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16); + + Result := Result + + 'background-color:#' + IntToHex( i, 6 ) + ';'; + end; + +end; procedure TOptionDialog.CSSListViewChange(Sender: TObject; Item: TListItem; Change: TItemChange); begin @@ -1520,6 +1733,7 @@ end; procedure TOptionDialog.OddResNumCheckBoxClick(Sender: TObject); begin OddResNumColorBox.Enabled := OddResNumCheckBox.Checked; + UnFocusedBoldCheckBox.Enabled := OddResNumCheckBox.Checked; end; procedure TOptionDialog.ResRangeHoldCheckBoxClick(Sender: TObject); @@ -1527,5 +1741,78 @@ begin ResRangeHoldComboBox.Enabled := ResRangeHoldCheckBox.Checked; end; +procedure TOptionDialog.CroutOptionClick(Sender: TObject); +var + KuroutOption: TKuroutOption; +begin + KuroutOption := TKuroutOption.Create(Self); + try + KuroutOption.ShowModal; + finally + KuroutOption.Release; + end; +end; + +procedure TOptionDialog.MaxRecordCountEditExit(Sender: TObject); +begin + if not GikoSys.IsNumeric(MaxRecordCountEdit.Text) then + MaxRecordCountEdit.Text := '100' + else if StrToIntDef(MaxRecordCountEdit.Text, 100) <= 0 then + MaxRecordCountEdit.Text := '1'; +end; + +procedure TOptionDialog.BoukenDelButtonClick(Sender: TObject); +begin + if ( BoukenComboBox.Items.IndexOf( BoukenComboBox.Text ) <> -1 ) then begin + if MsgBox(Self.Handle, BoukenComboBox.Text + ' ‚ðíœ‚µ‚Ü‚·B'#13#10 + + 'íœ‚·‚é‚Æ•œŒ³‚Å‚«‚Ü‚¹‚ñB‚æ‚낵‚¢‚Å‚·‚©H', '”E–@’Ÿ@ƒhƒƒCƒ“íœ', MB_YESNO or MB_ICONQUESTION) = IDYES then begin + GikoSys.DelBoukenCookie(BoukenComboBox.Text); + GikoSys.Setting.WriteBoukenSettingFile; + BoukenComboBox.Items.Delete(BoukenComboBox.ItemIndex); + if ( BoukenComboBox.Items.Count = 0 ) then begin + BoukenComboBox.Text := ''; + end; + BoukenComboBox.OnChange(nil); + end + end else begin + BoukenComboBox.Text := ''; + end; +end; + +procedure TOptionDialog.BoukenComboBoxChange(Sender: TObject); +begin + BoukenEdit.Text := GikoSys.GetBoukenCookie('http://*' +BoukenComboBox.Text); +end; + +procedure TOptionDialog.BoukenModButtonClick(Sender: TObject); +var + DomainList : TStringList; + i : Integer; + s : String; +begin + if ( Length(BoukenComboBox.Text) > 0 ) then begin + s := BoukenComboBox.Text; + GikoSys.SetBoukenCookie(BoukenEdit.Text, s); + GikoSys.Setting.WriteBoukenSettingFile; + // –`Œ¯‚̏‘ƒhƒƒCƒ“ˆê——Žæ“¾ + BoukenComboBox.Text := ''; + BoukenComboBox.Items.Clear; + DomainList := TStringList.Create; + GikoSys.GetBoukenDomain(DomainList); + for i := 0 to DomainList.Count - 1 do begin + BoukenComboBox.Items.Add( DomainList[i] ) ; + end; + DomainList.Free; + BoukenComboBox.ItemIndex := 0; + for i := 0 to BoukenComboBox.Items.Count - 1 do begin + if ( BoukenComboBox.Items[i] = s) then begin + BoukenComboBox.ItemIndex := i; + Break; + end; + end; + BoukenComboBox.OnChange(nil); + end; +end; + end.