uses
SysUtils, Classes, Graphics, Forms, Math, IniFiles, UCryptAuto, UBase64,
- ComCtrls;
+ ComCtrls, GestureModel;
const
MAIN_COOLBAND_COUNT = 4; //\83\81\83C\83\93CoolBand\82Ì\90\94
IGNORE_FILE_NAME : String = 'Ignore.txt';
// DOLIB_LOGIN_URL = '/~tora3n2c/futen.cgi';
MAX_POPUP_RES : Integer = 10;
+ GESTURE_FILE_NAME = 'Gestures.ini';
+ SPAMFILTER_FILE_NAME = 'SpamFilter.ini';
+ LANGUAGE_FILE_NAME = 'language.ini';
+
type
TGikoTabPosition = (gtpTop, gtpBottom); // \83^\83u\88Ê\92u
TGikoTabAppend = (gtaFirst, gtpLast); // \83^\83u\92Ç\89Á\88Ê\92u
/// \83X\83\8c\83b\83h\88ê\97\97\95\\8e¦\94Í\88Í
TGikoThreadRange = (gtrAll, gtrSelect, gtrLog, gtrNew);
+ //! \83X\83p\83\80\83t\83B\83\8b\83^\81[\83A\83\8b\83S\83\8a\83Y\83\80
+ TGikoSpamFilterAlgorithm = (
+ gsfaNone, gsfaPaulGraham, gsfaGaryRobinson, gsfaGaryRobinsonFisher);
+
+
/// \83J\83e\83S\83\8a\83\8a\83X\83g\82Ì\83J\83\89\83\80 ID
type TGikoBBSColumnID = (gbbscTitle);
/// \83J\83e\83S\83\8a\83\8a\83X\83g\82Ì\83J\83\89\83\80\96¼
procedure SetItem( index : integer; value : TGikoBBSColumnID);
public
constructor Create;
- destructor Destroy;
+ destructor Destroy; override;
function Add( value : TGikoBBSColumnID ) : Integer;
property Items[index : integer]: TGikoBBSColumnID read GetItem write SetItem; default;
end;
procedure SetItem( index : integer; value : TGikoCategoryColumnID);
public
constructor Create;
- destructor Destroy;
+ destructor Destroy; override;
function Add( value : TGikoCategoryColumnID ) : Integer;
property Items[index : integer]: TGikoCategoryColumnID read GetItem write SetItem; default;
end;
/// \83X\83\8c\83\8a\83X\83g\82Ì\83J\83\89\83\80 ID
type TGikoBoardColumnID = (gbcTitle, gbcAllCount, gbcLocalCount, gbcNonAcqCount,
- gbcNewCount, gbcUnReadCount, gbcRoundName, gbcLastModified, gbcCreated );
+ gbcNewCount, gbcUnReadCount, gbcRoundName, gbcRoundDate, gbcCreated, gbcLastModified );{gbcLastModified,}
/// \83X\83\8c\83\8a\83X\83g\82Ì\83J\83\89\83\80\96¼
- const GikoBoardColumnCaption : array[0..8] of string =
+ const GikoBoardColumnCaption : array[0..9] of string =
( '\83X\83\8c\83b\83h\96¼', '\83J\83E\83\93\83g', '\8eæ\93¾', '\96¢\8eæ\93¾', '\90V\92\85',
- '\96¢\93Ç', '\8f\84\89ñ\97\\96ñ', '\8eæ\93¾\93ú\8e\9e', '\83X\83\8c\8dì\90¬\93ú\8e\9e' );
- const GikoBoardColumnAlignment : array[0..8] of TAlignment = (
+ '\96¢\93Ç', '\8f\84\89ñ\97\\96ñ', '\8eæ\93¾\93ú\8e\9e', '\83X\83\8c\8dì\90¬\93ú\8e\9e', '\8dÅ\8fI\8dX\90V\93ú\8e\9e' );
+ const GikoBoardColumnAlignment : array[0..9] of TAlignment = (
taLeftJustify, taRightJustify, taRightJustify, taRightJustify,
taRightJustify, taRightJustify, taLeftJustify, taLeftJustify,
- taLeftJustify );
+ taLeftJustify, taLeftJustify);
/// \83X\83\8c\83\8a\83X\83g\83J\83\89\83\80\94z\97ñ
type TGikoBoardColumnList = class( TList )
private
procedure SetItem( index : integer; value : TGikoBoardColumnID);
public
constructor Create;
- destructor Destroy;
+ destructor Destroy; override;
function Add( value : TGikoBoardColumnID ) : Integer;
property Items[index : integer]: TGikoBoardColumnID read GetItem write SetItem; default;
end;
FEditWindowHeight: Integer;
FEditWindowWidth: Integer;
FEditWindowMax: Boolean;
- FEditWindowStay: Boolean;
- FEditWindowTranslucent: Boolean;
+ FEditWindowStay: Boolean;
+ FEditWindowTranslucent: Boolean;
//\83\8a\83X\83g\94Ô\8d\86\95\\8e¦
FListViewNo: Boolean;
FCSSFileName: string;
// \83X\83L\83\93\95\\8e¦(\88ê\8e\9e\93I\82È\82à\82Ì\82Å ini \82É\95Û\91¶\82Í\82³\82ê\82È\82¢)
FUseSkin: Boolean;
+ //\82©\82¿\82ã\81`\82µ\82á\97p\82ÌSkin\82ð\97\98\97p\82·\82é\82©
+ FUseKatjushaType : Boolean;
//mail\97\93\95\\8e¦
FShowMail: Boolean;
/// \83\8c\83X\95\\8e¦\94Í\88Í
//\83\8d\83O\83t\83H\83\8b\83_
FLogFolder: string;
+ FLogFolderP: string; //\83p\83X\96¼\82ª\83p\83X\8bæ\90Ø\82è\8bL\8d\86\82Å\8fI\82í\82Á\82Ä\82¢\82é\81B
FNewLogFolder: string;
//\83\8a\83X\83g\83J\83\89\83\80\83w\83b\83_\81[\83T\83C\83Y
FBBSColumnWidth: array[0..0] of Integer;
FCategoryColumnWidth: array[0..2] of Integer;
- FBoardColumnWidth: array[0..8] of Integer;
+ FBoardColumnWidth: array[0..9] of Integer;
/// \83J\83e\83S\83\8a\83\8a\83X\83g\83J\83\89\83\80\8f\87\8f\98
FBBSColumnOrder : TGikoBBSColumnList;
FUserID: string;
FPassword: string;
FAutoLogin: Boolean;
- FForcedLogin: Boolean;
+ FForcedLogin: Boolean;
FDolibURL: string;
//URL\83N\83\8a\83b\83N\8e\9e\8bN\93®\83A\83v\83\8a
//\83X\83\8c\83b\83h\88ê\97\97\8dX\90V\83A\83C\83R\83\93\95\\8e¦
FListIconVisible: Boolean;
- //\8eæ\93¾\90\94\82Å\82Í\82È\82\96¢\8eæ\93¾\82ð\95\\8e¦\82·\82é
- FNonAcquiredCount: Boolean;
- //\83X\83\8c\83b\83h\88ê\97\97\82ÅLog\82Ì\82 \82é\83X\83\8c\83b\83h\82Ì\82Ý\83X\83\8c\8dì\90¬\93ú\82ð\95\\8e¦\82·\82é\82©
- FCreationTimeLogs: Boolean;
- //\83X\83\8c\83b\83h\88ê\97\97\82Ì\83X\83\8c\90¶\90¬\93ú\82Å\96¢\97\88\82Ì\83X\83\8c\82Ì\90¶\90¬\93ú\82ð\95\\8e¦\82µ\82È\82¢
+ //\83X\83\8c\83b\83h\88ê\97\97\82ÅLog\82Ì\82 \82é\83X\83\8c\83b\83h\82Ì\82Ý\83X\83\8c\8dì\90¬\93ú\82ð\95\\8e¦\82·\82é\82©
+ FCreationTimeLogs: Boolean;
+ //\83X\83\8c\83b\83h\88ê\97\97\82Ì\83X\83\8c\90¶\90¬\93ú\82Å\96¢\97\88\82Ì\83X\83\8c\82Ì\90¶\90¬\93ú\82ð\95\\8e¦\82µ\82È\82¢
FFutureThread: Boolean;
//\8f\91\82«\8d\9e\82Ý\8e\9e\83}\83V\83\93\8e\9e\8aÔ\8eg\97p\90Ý\92è
FPopUpAbon : Boolean; //\83\8c\83X\83|\83b\83v\83A\83b\83v\8e\9e\82Ì\82 \82Ú\81`\82ñ\97L\8cø
FShowNGLinesNum : Boolean; //\8aY\93\96\82µ\82½\82m\82f\83\8f\81[\83h\83t\83@\83C\83\8b\82Ì\8ds\90\94\82ð\95\\8e¦
FAddResAnchor : Boolean; //NG\83\8c\83X\82Ö\82Ì\83\8c\83X\83A\83\93\83J\81[\82ð\92Ç\89Á\82·\82é
- FDeleteSyria : Boolean; //\83V\83\8a\83A\8cê\83u\83\89\83N\83\89\91Î\8dô
+ FDeleteSyria : Boolean; //\83V\83\8a\83A\8cê\83u\83\89\83N\83\89\91Î\8dô
+ FIgnoreKana : Boolean; //\91S\94¼\8ap\82Ð\82ç\83J\83i\82Ì\88á\82¢\82ð\96³\8e\8b\82·\82é\82©
// \83X\83\8c\83b\83h\8di\8d\9e\83t\83B\81[\83\8b\83h\82Ì\95\9d
FSelectComboBoxWidth : Integer;
//\8eæ\93¾\83\8c\83X\90\94\82Æ\83X\83\8c\83b\83h\82Ì\83\8c\83X\90\94\82ª\88Ù\82È\82Á\82½\82Æ\82«\82É\92Ê\8fí\94w\8ci\90F\82Æ\88á\82Á\82½\90F\82Ì\94w\8ci\90F\82ð\8eg\97p\82·\82é\82©
FUseOddColorOddResNum: Boolean;
FOddColor: TColor;
+ //\83\8c\83X\90\94\91\9d\8c¸\8b\92²\8e\9e\82É\81A\91I\91ð\83A\83C\83e\83\80\82É\83t\83H\81[\83J\83X\82ª\96³\82¢\82Æ\82«\82É\91¾\8e\9a\82É\82·\82é\82©
+ FUnFocusedBold : Boolean;
- //Samba24\91Î\8dô\8b@\94\\82ð\8eg\82¤\82©
- FUseSamba: Boolean;
+ //Samba24\91Î\8dô\8b@\94\\82ð\8eg\82¤\82©
+ FUseSamba: Boolean;
//\83\8c\83X\83A\83\93\83J\81[\82ð\83N\83\8a\83b\83N\82µ\82Ä\83W\83\83\83\93\83v\82·\82é\82©
FResAnchorJamp: Boolean;
//Tab\8e©\93®\95Û\91¶
FTabAutoLoadSave : Boolean;
+
+ //\82É\82¿\82á\82ñ\8cê\88Ä\93à\83T\83|\81[\83g\8b@\94\
+ F2chSupport : Boolean;
+
// \83G\83f\83B\83^
FSpaceToNBSP : Boolean; ///< \94¼\8ap\83X\83y\81[\83X\81ATab \82ð \82É\92u\8a·
FAmpToCharRef : Boolean; ///< '&' \82ð & \82É\92u\8a·
//\83u\83\89\83E\83U\83^\83u\94ñ\95\\8e¦\82Ì\8e\9e\82Ì\83X\83\8c\88ê\97\97\82Å\82Ì\83J\81[\83\\83\8b\83L\81[\88Ú\93®\82Ì\96³\94½\89\9e\8e\9e\8aÔ
FSelectInterval : Integer;
-
+
+ //KuroutSettingTab \8fÚ\8d×\90Ý\92è\83^\83u\82ÌActiveTab
+ FKuroutSettingTabIndex: Integer;
+
+ //! \83}\83E\83X\83W\83F\83X\83`\83\83\81[
+ FGestures : TGestureModel;
+ //! \83}\83E\83X\83W\83F\83X\83`\83\83\81[\82ð\8eg\97p\82·\82é\82©\82Ç\82¤\82©
+ FGestureEnabled : Boolean;
+
+ //2ch\8c¾\8cê\90Ý\92è
+ //F2chLanguage : TStringList;
+
+ //\83t\83V\83A\83i\83g\83\89\83b\83v\90Ý\92è
+ FLocalTrapAtt : Boolean;
+ FRemoteTrapAtt : Boolean;
+ FReadTimeOut: Integer;
+
+ //! \8eg\97p\82·\82é\83X\83p\83\80\83t\83B\83\8b\83^\81[
+ FSpamFilterAlgorithm : TGikoSpamFilterAlgorithm;
+ //\83~\83\85\81[\83g\82µ\82Ä\82é\82©
+ FMute: Boolean;
+ //\83X\83\8c\8di\8d\9e\82Ý\82Å\96¢\8am\92è\95¶\8e\9a\82à\97L\8cø\82É\82·\82é\82©
+ FUseUndecided: Boolean;
+ //MessageList\82É\8fo\97Í\82³\82ê\82é\83\81\83b\83Z\81[\83W
+ FMessageList : array[0..13] of string;
+
+ //Be2ch
+ //\94F\8fØ\97p\83\86\81[\83UID\81E\83p\83X\83\8f\81[\83h
+ FBeUserID: String;
+ FBeCode: String;
+ FBeAutoLogin: Boolean;
+ FBeLogin: Boolean;
+ //\97\9a\97ð\82Ì\8dÅ\91å\95Û\91¶\8c\8f\90\94
+ FMaxRecordCount : Integer;
+
function GetMainCoolSet(Index: Integer): TCoolSet;
function GetBoardCoolSet(Index: Integer): TCoolSet;
function GetBrowserCoolSet(Index: Integer): TCoolSet;
function GetBoardPlugInDir: string;
function GetSambaFileName: string;
function GetIgnoreFileName: string;
+ function GetGestureFileName : string;
+ function GetSpamFilterFileName : string;
+ function GetLanguageFileName: string;
+ procedure SetMessages;
+ function GetMessage(AType :Integer): string;
+ procedure WriteLogFolder(AVal : String);
//\8eó\90M\83o\83b\83t\83@\83T\83C\83Y
property RecvBufferSize: Integer read FRecvBufferSize write FRecvBufferSize;
property ListViewNo: Boolean read FListViewNo write FListViewNo;
property UseCSS: Boolean read FUseCSS write SetUseCSS;
property CSSFileName: string read FCSSFileName write SetCSSFileName;
+ property UseKatjushaType : Boolean read FUseKatjushaType write FUseKatjushaType;
property UseSkin: Boolean read FUseSkin;
property ShowMail: Boolean read FShowMail write FShowMail;
property UnActivePopup: Boolean read FUnActivePopup write FUnActivePopup;
property ResPopupHeaderBold: Boolean read FResPopupHeaderBold write FResPopupHeaderBold;
- property LogFolder: string read FLogFolder write FLogFolder;
+ property LogFolder: string read FLogFolder write WriteLogFolder;
+ property LogFolderP: string read FLogFolderP;
property NewLogFolder: string read FNewLogFolder write FNewLogFolder;
property BBSColumnWidth[index: Integer]: Integer read GetBBSColumnWidth write SetBBSColumnWidth;
property BrowserAutoMaximize: TGikoBrowserAutoMaximize read FBrowserAutoMaximize write FBrowserAutoMaximize;
property ListIconVisible: Boolean read FListIconVisible write FListIconVisible;
- property NonAcquiredCount: Boolean read FNonAcquiredCount write FNonAcquiredCount;
property CreationTimeLogs: Boolean read FCreationTimeLogs write FCreationTimeLogs;
property FutureThread: Boolean read FFutureThread write FFutureThread;
property ShowNGLinesNum : Boolean read FShowNGLinesNum write FShowNGLinesNum;
property AddResAnchor : Boolean read FAddResAnchor write FAddResAnchor;
property DeleteSyria : Boolean read FDeleteSyria write FDeleteSyria;
+ property IgnoreKana : Boolean read FIgnoreKana write FIgnoreKana;
// \83X\83\8c\83b\83h\8di\8d\9e\83t\83B\81[\83\8b\83h\82Ì\95\9d
property SelectComboBoxWidth : Integer read FSelectComboBoxWidth write FSelectComboBoxWidth;
//\8eæ\93¾\83\8c\83X\90\94\82Æ\83X\83\8c\83b\83h\82Ì\83\8c\83X\90\94\82ª\88Ù\82È\82Á\82½\82Æ\82«\82É\92Ê\8fí\94w\8ci\90F\82Æ\88á\82Á\82½\90F\82Ì\94w\8ci\90F\82ð\8eg\97p\82·\82é\82©
property UseOddColorOddResNum: Boolean read FUseOddColorOddResNum write FUseOddColorOddResNum;
property OddColor: TColor read FOddColor write FOddColor;
+ property UnFocusedBold : Boolean read FUnFocusedBold write FUnFocusedBold;
property UseSamba: Boolean read FUseSamba write FUseSamba;
- property ResAnchorJamp: Boolean read FResAnchorJamp write FResAnchorJamp;
+ property ResAnchorJamp: Boolean read FResAnchorJamp write FResAnchorJamp;
// \83G\83f\83B\83^
property SpaceToNBSP : Boolean read FSpaceToNBSP write FSpaceToNBSP;
property AmpToCharRef : Boolean read FAmpToCharRef write FAmpToCharRef;
property SelectInterval : Integer read FSelectInterval write FSelectInterval;
- //Tab\95Û\91¶
- property TabAutoLoadSave: Boolean read FTabAutoLoadSave write FTabAutoLoadSave;
+ //Tab\95Û\91¶
+ property TabAutoLoadSave: Boolean read FTabAutoLoadSave write FTabAutoLoadSave;
+ //property Gengo: TStringList read F2chLanguage write F2chLanguage;
+ property GengoSupport : Boolean read F2chSupport write F2chSupport;
+ property KuroutSettingTabIndex: Integer read FKuroutSettingTabIndex write FKuroutSettingTabIndex;
+ //! \83}\83E\83X\83W\83F\83X\83`\83\83\81[
+ property Gestures : TGestureModel read FGestures write FGestures;
+ //! \83}\83E\83X\83W\83F\83X\83`\83\83\81[\82ð\8eg\97p\82·\82é\82©\82Ç\82¤\82©
+ property GestureEnabled : Boolean read FGestureEnabled write FGestureEnabled;
+ //\83t\83V\83A\83i\83g\83\89\83b\83v\90Ý\92è
+ property LocalTrapAtt : Boolean read FLocalTrapAtt write FLocalTrapAtt;
+ property RemoteTrapAtt : Boolean read FRemoteTrapAtt write FRemoteTrapAtt;
+ property ReadTimeOut: Integer read FReadTimeOut write FReadTimeOut;
+ //! \8eg\97p\82·\82é\83X\83p\83\80\83t\83B\83\8b\83^
+ property SpamFilterAlgorithm : TGikoSpamFilterAlgorithm
+ read FSpamFilterAlgorithm write FSpamFilterAlgorithm;
+ property Mute: Boolean read FMute write FMute;
+ property UseUndecided: Boolean read FUseUndecided write FUseUndecided;
+
+ property BeUserID: string read FBeUserID write FBeUserID;
+ property BeCode: string read FBeCode write FBeCode;
+ property BeAutoLogin: Boolean read FBeAutoLogin write FBeAutoLogin;
+ property BeLogin: Boolean read FBeLogin write FBeLogin;
+ property MaxRecordCount : Integer read FMaxRecordCount write FMaxRecordCount;
+
end;
DEFAULT_WINDOW_COLOR: string = 'clWindow';
DEFAULT_TAB_FONT_NAME: string = '\82l\82r \82o\83S\83V\83b\83N';
DEFAULT_TAB_FONT_SIZE: Integer = 9;
- DEFAULT_2CH_BOARD_URL1: string = 'http://www6.ocn.ne.jp/~mirv/2chmenu.html';
- DEFAULT_2CH_BOARD_URL2: string = 'http://www.ff.iij4u.or.jp/~ch2/bbsmenu.html';
- //http://menu.2ch.net/bbsmenu.html //\82à\82¤\82·\82®\82±\82ê\82ª\90³\8e®\82È\94Â\88ê\97\97\82É\82È\82é\82æ\82¤
- //'http://www.2ch.net/newbbsmenu.html';
+ DEFAULT_2CH_BOARD_URL1: string = 'http://menu.2ch.net/bbsmenu.html';
+ //OCN\82ð\8dí\8f\9c\82µ\82Ü\82µ\82½
+ //DEFAULT_2CH_BOARD_URL2: string = 'http://menu.2ch.net/bbsmenu.html';
+ //2005/10/1\82Éiij4u\82Ì\95û\82Í\8fÁ\96Å //'http://www.2ch.net/newbbsmenu.html';
GIKO_ENCRYPT_TEXT: string = 'gikoNaviEncryptText';
+ DEF_MESSAGES : array[0..13] of string = ( '\83\8d\83O\83A\83E\83g\82µ\82Ü\82µ\82½',
+ '\83\8d\83O\83C\83\93\82µ\82Ü\82µ\82½ - ',
+ '\8b\90§\83\8d\83O\83C\83\93\82µ\82Ü\82µ\82½ - ',
+ '[\83X\83\8c\88ê\97\97\8eæ\93¾\8a®\97¹]',
+ '(\96¼\8fÌ\95s\96¾\81j',
+ '[\83X\83\8c\8eæ\93¾\8a®\97¹]',
+ '[\83X\83\8c\8d·\95ª\8eæ\93¾\8a®\97¹]',
+ '[\96¢\8dX\90V]',
+ '[\92\86\92f]',
+ '[\83G\83\89\81[]',
+ '[\83\8c\83X\91\97\90M\8fI\97¹]',
+ '[\90V\83X\83\8c\91\97\90M\8fI\97¹]',
+ '[\83\8c\83X\91\97\90M\8e¸\94s]',
+ '[\90V\83X\83\8c\91\97\90M\8e¸\94s]');
+
var
SOUND_NAME: array[0..4] of TSoundName = (
(Name: 'New'; ViewName: '\8eæ\93¾\90¬\8c÷'; FileName: ''),
FBBSColumnOrder := TGikoBBSColumnList.Create;
FCategoryColumnOrder := TGikoCategoryColumnList.Create;
FBoardColumnOrder := TGikoBoardColumnList.Create;
+ FGestures := TGestureModel.Create;
FNameList.Duplicates := dupIgnore;
FMailList.Duplicates := dupIgnore;
FBoardURLs.Duplicates := dupIgnore;
FBoardURLs.Free;
FMailList.Free;
FNameList.Free;
+ FGestures.Free;
end;
//\8f\89\8aú\89»\83t\83@\83C\83\8b\96¼\8eæ\93¾\81i\83p\83X\81{\83t\83@\83C\83\8b\96¼\81j
const
DEFAULT_BBS_WIDTH: array[0..0] of Integer = (140);
DEFAULT_CATEGORY_WIDTH: array[0..2] of Integer = (150, 80, 130);
- DEFAULT_BOARD_WIDTH: array[0..8] of Integer = (350, 60, 60, 60, 60, 60, 80, 130, 130);
+ DEFAULT_BOARD_WIDTH: array[0..9] of Integer = (350, 60, 60, 60, 60, 60, 80, 130, 130, 130);
MAX_WIDTH: Integer = 2000;
var
ini: TMemIniFile;
FListFontItalic := ini.ReadBool('Window', 'ListFontItalic', False);
FListFontColor := StringToColor(ini.ReadString('Window', 'ListFontColor', DEFAULT_FONT_COLOR));
FListBackColor := StringToColor(ini.ReadString('Window', 'ListBackColor', DEFAULT_WINDOW_COLOR));
- FUseOddColorOddResNum := ini.ReadBool('Window','UseOddColor', False);
- FOddColor := StringToColor(ini.ReadString('Window', 'OddColor', DEFAULT_WINDOW_COLOR));
+ FUseOddColorOddResNum := ini.ReadBool('Window','UseOddColor', False);
+ FOddColor := StringToColor(ini.ReadString('Window', 'OddColor', DEFAULT_WINDOW_COLOR));
+ FUnFocusedBold := ini.ReadBool('Window','UnFocusedBold', False);
FEditorFontName := ini.ReadString('Window', 'EditorFontName', DEFAULT_FONT_NAME);
FEditorFontSize := ini.ReadInteger('Window', 'EditorFontSize', DEFAULT_FONT_SIZE);
UseCSS := ini.ReadBool('CSS', 'UseCSS', True);
//CSS\83t\83@\83C\83\8b\96¼
CSSFileName := ini.ReadString('CSS', 'FileName', 'default.css');
+ //\82©\82µ\82ã\81`\82µ\82á\82Ì\83X\83L\83\93\82ð\8eg\82¤\82©
+ FUseKatjushaType := ini.ReadBool('CSS', 'UseKatjushaType', false);
//Mail\97\93\95\\8e¦
FShowMail := ini.ReadBool('Thread', 'ShowMail', True);
//ResAnchorjamp
ResAnchorJamp := ini.ReadBool('Function', 'ResAnchoJamp', True);
//\83\8d\83O\83t\83H\83\8b\83_
- FLogFolder := ini.ReadString('Folder', 'LogFolder', ExtractFilePath(Application.ExeName) + 'Log');
+ LogFolder := ini.ReadString('Folder', 'LogFolder', ExtractFilePath(Application.ExeName) + 'Log');
NewLogFolder := '';
//\94ÂURL
//\83X\83\8c\83b\83h\88ê\97\97\8dX\90V\83A\83C\83R\83\93
FListIconVisible := ini.ReadBool('ThreadList', 'StateIconVisible', True);
- FNonAcquiredCount := ini.ReadBool('ThreadList', 'NonAcquiredCount', False);
FCreationTimeLogs := ini.ReadBool('ThreadList', 'CreationTimeLogs', True);
FFutureThread := ini.ReadBool('ThreadList', 'FutureThread', True);
FSelectInterval := ini.ReadInteger('ThreadList', 'SelectInterval', 110);
FPopUpAbon := ini.ReadBool('Abon','Popup',false);
FShowNGLinesNum := ini.ReadBool('Abon','ShowNGLines',false);
FAddResAnchor := ini.ReadBool('Abon','AddResAnchor',false);
- FDeleteSyria := ini.ReadBool('Abon','DeleteSyria',false);
+ FDeleteSyria := ini.ReadBool('Abon','DeleteSyria',false);
+ FIgnoreKana := ini.ReadBool('Abon','IgnoreKana',false);
// \83G\83f\83B\83^
- FSpaceToNBSP := ini.ReadBool( 'Editor', 'SpaceToNBSP', True );
+ FSpaceToNBSP := ini.ReadBool( 'Editor', 'SpaceToNBSP', False );
FAmpToCharRef := ini.ReadBool( 'Editor', 'AmpToCharRef', False );
- //Tab\8e©\93®\95Û\91¶\81A\93Ç\82Ý\8d\9e\82Ý
- FTabAutoLoadSave := ini.ReadBool('TabAuto', 'TabAutoLoadSave', False);
+ //Tab\8e©\93®\95Û\91¶\81A\93Ç\82Ý\8d\9e\82Ý
+ FTabAutoLoadSave := ini.ReadBool('TabAuto', 'TabAutoLoadSave', False);
+
+ FKuroutSettingTabIndex := ini.ReadInteger('OptionDialog', 'KuroutTabIndex' , 0);
+
+ // \83}\83E\83X\83W\83F\83X\83`\83\83\81[
+ FGestureEnabled := ini.ReadBool( 'Guesture', 'Enabled', False );
+
+ //2ch\8c¾\8cê\83T\83|
+ F2chSupport := ini.ReadBool('2chSupport', 'Support', False);
+ //FusianaTrap
+ FLocalTrapAtt := ini.ReadBool('Trap', 'LocalTrap', False);
+ FRemoteTrapAtt := ini.ReadBool('Trap', 'RemoteTrap', False);
+ FReadTimeOut := ini.ReadInteger('HTTP', 'ReadTimeOut', 10000);
+ // \8eg\97p\82·\82é\83X\83p\83\80\83t\83B\83\8b\83^
+ FSpamFilterAlgorithm := TGikoSpamFilterAlgorithm(
+ ini.ReadInteger( 'Abon', 'SpamFilterAlgorithm', Ord( gsfaNone ) ) );
+ FMute := ini.ReadBool('Function', 'Mute', false);
+ FUseUndecided := ini.ReadBool('ThreadList', 'UseUndecided', False);
+
+ //Be2ch
+ //\94F\8fØ\97p\83\86\81[\83UID\81E\94F\8fØ\83R\81[\83h
+ FBeUserID := ini.ReadString('Be', 'UserID', '');
+ FBeCode := Decrypt(ini.ReadString('Be', 'Code', ''));
+ FBeAutoLogin := ini.ReadBool('Be', 'AutoLogin', False);
+ //\97\9a\97ð\82Ì\8dÅ\91å\95Û\91¶\8c\8f\90\94
+ FMaxRecordCount := Max(ini.ReadInteger('Recode', 'Max', 100), 1);
+
+ ini.UpdateFile;
finally
ini.Free;
end;
ini.WriteString('Window', 'CabinetFontName', FCabinetFontName);
ini.WriteInteger('Window', 'CabinetFontSize', FCabinetFontSize);
ini.WriteString('Window', 'CabinetFontColor', ColorToString(FCabinetFontColor));
+ ini.WriteBool('Window', 'CabinetFontBold', FCabinetFontBold);
+ ini.WriteBool('Window', 'CabinetFontItalic', FCabinetFontItalic);
ini.WriteString('Window', 'CabinetBackColor', ColorToString(FCabinetBackColor));
ini.WriteString('Window', 'ListFontName', FListFontName);
ini.WriteInteger('Window', 'ListFontSize', FListFontSize);
ini.WriteString('Window', 'ListFontColor', ColorToString(FListFontColor));
ini.WriteString('Window', 'ListBackColor', ColorToString(FListBackColor));
- ini.WriteBool('Window','UseOddColor',FUseOddColorOddResNum);
- ini.WriteString('Window', 'OddColor',ColorToString(FOddColor));
+ ini.WriteBool('Window', 'ListFontBold', FListFontBold);
+ ini.WriteBool('Window', 'ListFontItalic', FListFontItalic);
+ ini.WriteBool('Window','UseOddColor',FUseOddColorOddResNum);
+ ini.WriteString('Window', 'OddColor',ColorToString(FOddColor));
+ ini.WriteBool('Window','UnFocusedBold', FUnFocusedBold);
ini.WriteString('Window', 'EditorFontName', FEditorFontName);
ini.WriteInteger('Window', 'EditorFontSize', FEditorFontSize);
i: Integer;
ini: TMemIniFile;
CoolSet: TCoolSet;
+ wkList : TStringList;
begin
ini := TMemIniFile.Create(GetFileName());
try
ini.WriteBool('Function', 'ListViewNo', FListViewNo);
//CSS\8eg\97p
ini.WriteBool('CSS', 'UseCSS', FUseCSS);
+ //\82©\82µ\82ã\81`\82µ\82á\82Ì\83X\83L\83\93\82ð\8eg\82¤\82©
+ ini.WriteBool('CSS', 'UseKatjushaType', FUseKatjushaType);
//CSS\83t\83@\83C\83\8b\96¼
ini.WriteString('CSS', 'FileName', FCSSFileName);
//Mail\97\93\95\\8e¦
//\83X\83\8c\83b\83h\88ê\97\97\8dX\90V\83A\83C\83R\83\93
ini.WriteBool('ThreadList', 'StateIconVisible', FListIconVisible);
- ini.WriteBool('ThreadList', 'NonAcquiredCount', FNonAcquiredCount);
ini.WriteBool('ThreadList', 'CreationTimeLogs',FCreationTimeLogs);
ini.WriteBool('ThreadList', 'FutureThread', FFutureThread);
ini.WriteInteger('ThreadList', 'SelectInterval', FSelectInterval);
ini.WriteInteger('BoardColumnWidth', 'ID' + IntToStr(i), FBoardColumnWidth[i]);
end;
- // \83J\83e\83S\83\8a\83\8a\83X\83g\8f\87\8f\98
- for i := 0 to FBBSColumnOrder.Count - 1 do
- ini.WriteInteger( 'BBSColumnOrder', 'ID' + IntToStr( i ), Ord( FBBSColumnOrder[ i ] ) );
+ wkList := TStringList.Create;
+ try
+ // \83J\83e\83S\83\8a\83\8a\83X\83g\8f\87\8f\98
+ ini.ReadSection( 'BBSColumnOrder', wkList );
+ for i := wkList.Count - 1 downto 0 do
+ ini.DeleteKey( 'BBSColumnOrder', wkList[ i ] );
+ for i := 0 to FBBSColumnOrder.Count - 1 do
+ ini.WriteInteger( 'BBSColumnOrder', 'ID' + IntToStr( i ), Ord( FBBSColumnOrder[ i ] ) );
- // \94Â\83\8a\83X\83g\8f\87\8f\98
- for i := 0 to FCategoryColumnOrder.Count - 1 do
- ini.WriteInteger( 'CategoryColumnOrder', 'ID' + IntToStr( i ), Ord( FCategoryColumnOrder[ i ] ) );
+ // \94Â\83\8a\83X\83g\8f\87\8f\98
+ ini.ReadSection( 'CategoryColumnOrder', wkList );
+ for i := wkList.Count - 1 downto 0 do
+ ini.DeleteKey( 'CategoryColumnOrder', wkList[ i ] );
+ for i := 0 to FCategoryColumnOrder.Count - 1 do
+ ini.WriteInteger( 'CategoryColumnOrder', 'ID' + IntToStr( i ), Ord( FCategoryColumnOrder[ i ] ) );
- // \83X\83\8c\83\8a\83X\83g\8f\87\8f\98
- for i := 0 to FBoardColumnOrder.Count - 1 do
- ini.WriteInteger( 'BoardColumnOrder', 'ID' + IntToStr( i ), Ord( FBoardColumnOrder[ i ] ) );
+ // \83X\83\8c\83\8a\83X\83g\8f\87\8f\98
+ ini.ReadSection( 'BoardColumnOrder', wkList );
+ for i := wkList.Count - 1 downto 0 do
+ ini.DeleteKey( 'BoardColumnOrder', wkList[ i ] );
+ for i := 0 to FBoardColumnOrder.Count - 1 do
+ ini.WriteInteger( 'BoardColumnOrder', 'ID' + IntToStr( i ), Ord( FBoardColumnOrder[ i ] ) );
+ finally
+ wkList.Free;
+ end;
//\83T\83E\83\93\83h
for i := 0 to GetSoundCount - 1 do begin
//\82 \82Ú\81`\82ñ
ini.WriteBool('Abon','Deleterlo',FAbonDeleterlo);
ini.WriteBool('Abon','Replaceul',FAbonReplaceul);
- ini.WriteBool('Abon','Popup',FPopUpAbon);
+ ini.WriteBool('Abon','Popup',FPopUpAbon);
ini.WriteBool('Abon','ShowNGLines',FShowNGLinesNum);
ini.WriteBool('Abon','AddResAnchor',FAddResAnchor);
- ini.WriteBool('Abon','DeleteSyria',FDeleteSyria);
+ ini.WriteBool('Abon','DeleteSyria',FDeleteSyria);
+ ini.WriteBool('Abon','IgnoreKana', FIgnoreKana);
// \83G\83f\83B\83^
ini.WriteBool( 'Editor', 'SpaceToNBSP', FSpaceToNBSP );
ini.WriteBool( 'Editor', 'AmpToCharRef', FAmpToCharRef );
- ini.WriteBool('TabAuto', 'TabAutoLoadSave', FTabAutoLoadSave);
+ //\83^\83u\8e©\93®\95Û\91¶
+ ini.WriteBool('TabAuto', 'TabAutoLoadSave', FTabAutoLoadSave);
+ //\8fÚ\8d×\90Ý\92è
+ ini.WriteInteger('OptionDialog', 'KuroutTabIndex', FKuroutSettingTabIndex);
+
+ //\82É\82¿\82á\82ñ\8cê\88Ä\93à\8b@\94\
+ ini.WriteBool('2chSupport', 'Support', F2chSupport);
+
+ // \83}\83E\83X\83W\83F\83X\83`\83\83\81[\82ð\8eg\97p\82·\82é\82©\82Ç\82¤\82©
+ ini.WriteBool( 'Guesture', 'Enabled', FGestureEnabled );
+
+ //FusianaTrap
+ ini.WriteBool('Trap', 'LocalTrap', FLocalTrapAtt);
+ ini.WriteBool('Trap', 'RemoteTrap', FRemoteTrapAtt);
+ ini.WriteInteger('HTTP', 'ReadTimeOut', FReadTimeOut);
+
+ // \8eg\97p\82·\82é\83X\83p\83\80\83t\83B\83\8b\83^
+ ini.WriteInteger( 'Abon', 'SpamFilterAlgorithm', Ord( FSpamFilterAlgorithm ) );
+ ini.WriteBool('Function', 'Mute', FMute);
+ ini.WriteBool('ThreadList', 'UseUndecided', FUseUndecided);
+
+ //\94F\8fØ\97p\83\86\81[\83UID\81E\83p\83X\83\8f\81[\83h
+ ini.WriteString('Be', 'UserID', FBeUserID);
+ ini.WriteString('Be', 'Code', Encrypt(FBeCode));
+ ini.WriteBool('Be', 'AutoLogin', FBeAutoLogin);
+
+ //\97\9a\97ð\82Ì\8dÅ\91å\95Û\91¶\8c\8f\90\94
+ ini.WriteInteger('Recode', 'Max', FMaxRecordCount);
ini.UpdateFile;
finally
ini.WriteInteger('URL','count',2);
ini.WriteInteger('URL','selected',2);
ini.WriteString('URL','1',DEFAULT_2CH_BOARD_URL1);
- ini.WriteString('URL','2',DEFAULT_2CH_BOARD_URL2);
+ //ini.WriteString('URL','2',DEFAULT_2CH_BOARD_URL2);
ini.UpdateFile;
finally
ini.Free;
Result := GetConfigDir + IGNORE_FILE_NAME;
end;
+//! \83}\83E\83X\83W\83F\83X\83`\83\83\81[\83t\83@\83C\83\8b\83p\83X
+function TSetting.GetGestureFileName: string;
+begin
+ Result := GetConfigDir + GESTURE_FILE_NAME;
+end;
+
+//! \83X\83p\83\80\83t\83B\83\8b\83^\8aw\8fK\97\9a\97ð\83t\83@\83C\83\8b\83p\83X
+function TSetting.GetSpamFilterFileName: string;
+begin
+ Result := GetConfigDir + SPAMFILTER_FILE_NAME;
+end;
+
+function TSetting.GetLanguageFileName: string;
+begin
+ Result := GetConfigDir + LANGUAGE_FILE_NAME;
+end;
+//Messagelist\82É\8fo\97Í\82³\82ê\82é\83\81\83b\83Z\81[\83W\82Ì\90Ý\92è
+procedure TSetting.SetMessages;
+var
+ i :Integer;
+ ini : TMemIniFile;
+begin
+ //2ch\8c¾\8cê\93Ç\82Ý\8fo\82µ
+ if (GengoSupport) and (FileExists(GetLanguageFileName)) then begin
+ ini := TmemIniFile.Create(GetLanguageFileName);
+ try
+ {
+ '\83\8d\83O\83A\83E\83g\82µ\82Ü\82µ\82½',
+ '\83\8d\83O\83C\83\93\82µ\82Ü\82µ\82½ - ',
+ '\8b\90§\83\8d\83O\83C\83\93\82µ\82Ü\82µ\82½ - ',
+ '[\83X\83\8c\88ê\97\97\8eæ\93¾\8a®\97¹]',
+ '(\96¼\8fÌ\95s\96¾\81j',
+ '[\83X\83\8c\8eæ\93¾\8a®\97¹]',
+ '[\83X\83\8c\8d·\95ª\8eæ\93¾\8a®\97¹]',
+ '[\96¢\8dX\90V]',
+ '[\92\86\92f]',
+ '[\83G\83\89\81[]',
+ '[\83\8c\83X\91\97\90M\8fI\97¹]',
+ '[\90V\83X\83\8c\91\97\90M\8fI\97¹]',
+ '[\83\8c\83X\91\97\90M\8e¸\94s]',
+ '[\90V\83X\83\8c\91\97\90M\8e¸\94s]'); }
+ FMessageList[0] := ini.ReadString('Language', 'Logout', DEF_MESSAGES[0]);
+ FMessageList[1] := ini.ReadString('Language', 'Login', DEF_MESSAGES[1]);
+ FMessageList[2] := ini.ReadString('Language', 'ForceLogin', DEF_MESSAGES[2]);
+ FMessageList[3] := ini.ReadString('Language', 'ThreadList', DEF_MESSAGES[3]);
+ FMessageList[4] := ini.ReadString('Language', 'UnKnown', DEF_MESSAGES[4]);
+ FMessageList[5] := ini.ReadString('Language', 'ThreadGet', DEF_MESSAGES[5]);
+ FMessageList[6] := ini.ReadString('Language', 'ThreadDiffGet', DEF_MESSAGES[6]);
+ FMessageList[7] := ini.ReadString('Language', 'NotMod', DEF_MESSAGES[7]);
+ FMessageList[8] := ini.ReadString('Language', 'Abort', DEF_MESSAGES[8]);
+ FMessageList[9] := ini.ReadString('Language', 'Error', DEF_MESSAGES[9]);
+ FMessageList[10] := ini.ReadString('Language', 'NewReply', DEF_MESSAGES[10]);
+ FMessageList[11] := ini.ReadString('Language', 'NewThread', DEF_MESSAGES[11]);
+ FMessageList[12] := ini.ReadString('Language', 'ReplyError', DEF_MESSAGES[12]);
+ FMessageList[13] := ini.ReadString('Language', 'ThreadError', DEF_MESSAGES[13]);
+ finally
+ ini.Free;
+ end;
+
+ end else begin
+ for i := 0 to 13 do begin
+ FMessageList[i] := DEF_MESSAGES[i];
+ end;
+ end;
+end;
+function TSetting.GetMessage(AType :Integer): string;
+begin
+ if (AType >= 0) and (AType <= Length(FMessageList)) then
+ Result := FMessageList[AType]
+ else
+ Result := '';
+end;
+procedure TSetting.WriteLogFolder(AVal : String);
+begin
+ FLogFolder := AVal;
+ FLogFolderP := IncludeTrailingPathDelimiter(LogFolder);
+end;
+
end.