OSDN Git Service

リンク移動履歴の保持数を設定できるように修正
[gikonavigoeson/gikonavi.git] / Setting.pas
index bc7a477..c657607 100644 (file)
@@ -1,39 +1,18 @@
 unit Setting;
 
+
 interface
 
 uses
-       SysUtils, Classes, Graphics, Forms, Math, IniFiles, UCryptAuto, UBase64,
-       ComCtrls;
+       SysUtils, Classes, Graphics, Forms, {Math, IniFiles, UCryptAuto, UBase64,}
+       ComCtrls, GestureModel;
 
 const
        MAIN_COOLBAND_COUNT = 4;                //\83\81\83C\83\93CoolBand\82Ì\90\94
        LIST_COOLBAND_COUNT = 2;                //\94ÂCoolBand\82Ì\90\94
        BROWSER_COOLBAND_COUNT = 3;     //\83u\83\89\83E\83UCoolBand\82Ì\90\94
 
-       BOARD_FILE_NAME                                                         = 'board.2ch';
-       CUSTOMBOARD_FILE_NAME                                   = 'custom.2ch';
-       BOARD_DIR_NAME                                                          = 'Board';
-       KEY_SETTING_FILE_NAME                                   = 'key.ini';
-       EKEY_SETTING_FILE_NAME                          = 'Ekey.ini';
-       TEMP_FOLDER                                                                             = 'Temp';
-       OUTBOX_FILE_NAME                                                        = 'outbox.ini';
-       SENT_FILE_NAME                                                          = 'sent.ini';
-       CONFIG_DIR_NAME                                                         = 'config';
-       CSS_DIR_NAME                                                                    = 'css';
-       SKIN_DIR_NAME                                                                   = 'skin';
-       SKIN_HEADER_FILE_NAME                                   = 'Header.html';
-       SKIN_FOOTER_FILE_NAME                                   = 'Footer.html';
-       SKIN_NEWRES_FILE_NAME                                   = 'NewRes.html';
-       SKIN_RES_FILE_NAME                                              = 'Res.html';
-       SKIN_BOOKMARK_FILE_NAME                         = 'Bookmark.html';
-       SKIN_NEWMARK_FILE_NAME                          = 'Newmark.html';
-       NGWORDs_DIR_NAME : String               = 'NGwords';
-       BOARD_PLUGIN_DIR_NAME                                   = 'BoardPlugin';
-       SAMBATIME_FILE_NAME : String    = 'Samba.ini';
-       IGNORE_FILE_NAME : String               = 'Ignore.txt';
-//     DOLIB_LOGIN_URL     = '/~tora3n2c/futen.cgi';
-       MAX_POPUP_RES : Integer = 10;
+
 type
        TGikoTabPosition = (gtpTop, gtpBottom);                                                         // \83^\83u\88Ê\92u
        TGikoTabAppend = (gtaFirst, gtpLast);                                                                   // \83^\83u\92Ç\89Á\88Ê\92u
@@ -53,8 +32,69 @@ type
        TGikoResRange = (grrAll, grrSelect, grrKoko, grrNew);
 
        /// \83X\83\8c\83b\83h\88ê\97\97\95\\8e¦\94Í\88Í
-       TGikoThreadRange = (gtrAll, gtrSelect, gtrLog, gtrNew);
+       TGikoThreadRange = (gtrAll, gtrSelect, gtrLog, gtrNew, gtrLive, gtrArch);
+
+       //! \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¼
+       const   GikoBBSColumnCaption : array[0..0] of string =
+               ( '\83J\83e\83S\83\8a\96¼' );
+       /// \83J\83e\83S\83\8a\83\8a\83X\83g\83J\83\89\83\80\94z\97ñ
+       type    TGikoBBSColumnList = class( TList )
+       private
+               function GetItem( index : integer ) : TGikoBBSColumnID;
+               procedure SetItem( index : integer; value : TGikoBBSColumnID);
+       public
+               constructor Create;
+               destructor Destroy;     override;
+               function Add( value : TGikoBBSColumnID ) : Integer;
+               property Items[index : integer]: TGikoBBSColumnID read GetItem write SetItem; default;
+       end;
+       /// \94Â\83\8a\83X\83g\82Ì\83J\83\89\83\80 ID
+       type    TGikoCategoryColumnID = (gccTitle, gccRoundName, gccLastModified);
+       /// \94Â\83\8a\83X\83g\82Ì\83J\83\89\83\80\96¼
+       const GikoCategoryColumnCaption : array[0..2] of string =
+               ( '\94Â\96¼', '\8f\84\89ñ\97\\96ñ', '\8eæ\93¾\93ú\8e\9e' );
+       /// \94Â\83\8a\83X\83g\83J\83\89\83\80\94z\97ñ
+       type    TGikoCategoryColumnList = class( TList )
+       private
+               function GetItem( index : integer ) : TGikoCategoryColumnID;
+               procedure SetItem( index : integer; value : TGikoCategoryColumnID);
+       public
+               constructor Create;
+               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, gbcRoundDate, gbcCreated, gbcLastModified, gbcVigor );{gbcLastModified,}
+       /// \83X\83\8c\83\8a\83X\83g\82Ì\83J\83\89\83\80\96¼
+       const   GikoBoardColumnCaption : array[0..10] 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', '\8dÅ\8fI\8dX\90V\93ú\8e\9e', '\90¨\82¢' );
+       const GikoBoardColumnAlignment : array[0..10] of TAlignment = (
+               taLeftJustify, taRightJustify, taRightJustify, taRightJustify,
+               taRightJustify, taRightJustify, taLeftJustify, taLeftJustify,
+               taLeftJustify, taLeftJustify, taRightJustify);
+       /// \83X\83\8c\83\8a\83X\83g\83J\83\89\83\80\94z\97ñ
+       type    TGikoBoardColumnList = class( TList )
+       private
+               function GetItem( index : integer ) : TGikoBoardColumnID;
+               procedure SetItem( index : integer; value : TGikoBoardColumnID);
+       public
+               constructor Create;
+               destructor Destroy;     override;
+               function Add( value : TGikoBoardColumnID ) : Integer;
+               property Items[index : integer]: TGikoBoardColumnID read GetItem write SetItem; default;
+       end;
 
+type
        //CoolBar\90Ý\92è\83\8c\83R\81[\83h
        TCoolSet = record
                FCoolID: Integer;
@@ -185,8 +225,8 @@ type
                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;
@@ -196,6 +236,8 @@ type
                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Í
@@ -211,12 +253,20 @@ type
 
                //\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..3] of Integer;
-               FBoardColumnWidth: array[0..7] of Integer;
+               FCategoryColumnWidth: array[0..2] of Integer;
+               FBoardColumnWidth: array[0..10] of Integer;
+
+               /// \83J\83e\83S\83\8a\83\8a\83X\83g\83J\83\89\83\80\8f\87\8f\98
+               FBBSColumnOrder : TGikoBBSColumnList;
+               /// \94Â\83\8a\83X\83g\83J\83\89\83\80\8f\87\8f\98
+               FCategoryColumnOrder : TGikoCategoryColumnList;
+               /// \83X\83\8c\83\8a\83X\83g\83J\83\89\83\80\8f\87\8f\98
+               FBoardColumnOrder : TGikoBoardColumnList;
 
                //\83\\81[\83g\8f\87
                FBBSSortIndex: Integer;
@@ -242,7 +292,7 @@ type
                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
@@ -283,12 +333,10 @@ type
 
                //\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è
@@ -302,7 +350,8 @@ type
                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;
@@ -320,22 +369,72 @@ type
                //\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ð &nbsp; \82É\92u\8a·
                FAmpToCharRef   : Boolean;      ///< '&' \82ð &amp; \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;
+
+               //\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;
+
+                               //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;
+
+               //\83X\83\8c\83b\83h\88ê\97\97\82ð\83_\83E\83\93\83\8d\81[\83h\8cã\82É\83\\81[\83g\82·\82é\82©
+               FAutoSortThreadList : Boolean;
+
+               //InputAssist\83t\83H\81[\83\80\82Ì\88Ê\92u
+               FInputAssistFormLeft :Integer;
+               FInputAssistFormTop :Integer;
+               //InputAssist\83t\83H\81[\83\80\82Ì\83T\83C\83Y
+               FInputAssistFormWidth: Integer;
+               FInputAssistFormHeight: Integer;
+
+               //! Cookie\82É\95t\89Á\82·\82é\8cÅ\92è\83R\81[\83h
+               FFixedCookie: String;
+        //! \83\8a\83\93\83N\88Ú\93®\97\9a\97ð\82Ì\95Û\8e\9d\90\94
+        FMoveHistorySize : Integer;
+
                function GetMainCoolSet(Index: Integer): TCoolSet;
                function GetBoardCoolSet(Index: Integer): TCoolSet;
                function GetBrowserCoolSet(Index: Integer): TCoolSet;
@@ -399,7 +498,18 @@ type
                function GetBoardPlugInDir: string;
                function GetSambaFileName: string;
                function GetIgnoreFileName: string;
-
+               function GetGestureFileName : string;
+               function GetSpamFilterFileName : string;
+               function GetLanguageFileName: string;
+               function GetMainKeyFileName: String;
+               function GetEditorKeyFileName: String;
+               procedure WriteLogFolder(AVal : String);
+               function GetInputAssistFileName : String;
+        {
+        \brief  \83\8a\83\93\83N\97\9a\97ð\82Ì\95Û\8e\9d\83T\83C\83Y\82Ìsetter
+        \param  AVal    \90Ý\92è\82·\82é\83T\83C\83Y( >0) 
+        }
+        procedure SetMoveHistorySize(AVal : Integer);
                //\8eó\90M\83o\83b\83t\83@\83T\83C\83Y
                property RecvBufferSize: Integer read FRecvBufferSize write FRecvBufferSize;
                //HTTP1.1\8eg\97p
@@ -510,6 +620,7 @@ type
                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;
@@ -519,13 +630,18 @@ type
                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 CategoryColumnWidth[index: Integer]: Integer read GetCategoryColumnWidth write SetCategoryColumnWidth;
                property BoardColumnWidth[index: Integer]: Integer read GetBoardColumnWidth write SetBoardColumnWidth;
 
+               property BBSColumnOrder : TGikoBBSColumnList read FBBSColumnOrder write FBBSColumnOrder;
+               property CategoryColumnOrder : TGikoCategoryColumnList read FCategoryColumnOrder write FCategoryColumnOrder;
+               property BoardColumnOrder : TGikoBoardColumnList read FBoardColumnOrder write FBoardColumnOrder;
+
                property SoundName[index: Integer]: string read GetSoundName;
                property SoundViewName[index: Integer]: string read GetSoundViewName;
                property SoundFileName[index: Integer]: string read GetSoundFileName write SetSoundFileName;
@@ -576,7 +692,6 @@ type
                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;
 
@@ -591,6 +706,7 @@ type
                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;
 
@@ -606,22 +722,95 @@ type
                //\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;
+               //! \83X\83\8c\83b\83h\88ê\97\97\83_\83E\83\93\83\8d\81[\83h\8cã\82É\83X\83\8c\83b\83h\96¼\82Å\8f¸\8f\87\83\\81[\83g\82·\82é\82©
+               property AutoSortThreadList : Boolean read FAutoSortThreadList write FAutoSortThreadList;
+               //! InputAssist\83t\83H\81[\83\80\82Ì\88Ê\92u
+               property InputAssistFormLeft :Integer read FInputAssistFormLeft write FInputAssistFormLeft;
+               property InputAssistFormTop :Integer read FInputAssistFormTop write FInputAssistFormTop;
+               //! InputAssist\83t\83H\81[\83\80\82Ì\83T\83C\83Y
+               property InputAssistFormWidth: Integer read FInputAssistFormWidth write FInputAssistFormWidth;
+               property InputAssistFormHeight: Integer read FInputAssistFormHeight write FInputAssistFormHeight;
+               //! Cookie\82É\95t\89Á\82·\82é\8cÅ\92è\83R\81[\83h
+               property FixedCookie: String read FFixedCookie write FFixedCookie;
+        // \83\8a\83\93\83N\88Ú\93®\97\9a\97ð\82Ì\95Û\8e\9d\90\94
+        property MoveHistorySize : Integer read FMoveHistorySize write SetMoveHistorySize;
+
 end;
 
 
+const
+//     MAIN_COOLBAND_COUNT = 4;                //\83\81\83C\83\93CoolBand\82Ì\90\94
+//     LIST_COOLBAND_COUNT = 2;                //\94ÂCoolBand\82Ì\90\94
+//     BROWSER_COOLBAND_COUNT = 3;     //\83u\83\89\83E\83UCoolBand\82Ì\90\94
+
+       BOARD_FILE_NAME                                                         = 'board.2ch';
+       CUSTOMBOARD_FILE_NAME                                   = 'custom.2ch';
+       BOARD_DIR_NAME                                                          = 'Board';
+       KEY_SETTING_FILE_NAME                                   = 'key.ini';
+       EKEY_SETTING_FILE_NAME                          = 'Ekey.ini';
+       TEMP_FOLDER                                                                             = 'Temp';
+       OUTBOX_FILE_NAME                                                        = 'outbox.ini';
+       SENT_FILE_NAME                                                          = 'sent.ini';
+       CONFIG_DIR_NAME                                                         = 'config';
+       CSS_DIR_NAME                                                                    = 'css';
+       SKIN_DIR_NAME                                                                   = 'skin';
+       SKIN_HEADER_FILE_NAME                                   = 'Header.html';
+       SKIN_FOOTER_FILE_NAME                                   = 'Footer.html';
+       SKIN_NEWRES_FILE_NAME                                   = 'NewRes.html';
+       SKIN_RES_FILE_NAME                                              = 'Res.html';
+       SKIN_BOOKMARK_FILE_NAME                         = 'Bookmark.html';
+       SKIN_NEWMARK_FILE_NAME                          = 'Newmark.html';
+       NGWORDs_DIR_NAME : String               = 'NGwords';
+       BOARD_PLUGIN_DIR_NAME                                   = 'BoardPlugin';
+       SAMBATIME_FILE_NAME : String    = 'Samba.ini';
+       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';
+       INPUTASSIST_FILE_NAME   = 'InputAssist.ini';
+    FIXED_COOKIE =           'hana=mogera';
+
 
 implementation
 
+uses
+       Math, IniFiles, UCryptAuto, UBase64;
+
 type
        TSoundName = record
                Name: string;
@@ -638,10 +827,7 @@ const
        DEFAULT_WINDOW_COLOR: string    = 'clWindow';
        DEFAULT_TAB_FONT_NAME: string            = '\82l\82\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';
        GIKO_ENCRYPT_TEXT: string                = 'gikoNaviEncryptText';
 
 var
@@ -654,6 +840,81 @@ var
                (Name: 'ResEnd';                 ViewName: '\83\8c\83X\91\97\90M\8a®\97¹';                       FileName: ''),
                (Name: 'Error';                 ViewName: '\83G\83\89\81[';                                              FileName: ''));
 
+constructor TGikoBBSColumnList.Create;
+begin
+       inherited;
+end;
+
+destructor TGikoBBSColumnList.Destroy;
+begin
+       inherited;
+end;
+
+function TGikoBBSColumnList.GetItem( index : integer ) : TGikoBBSColumnID;
+begin
+       Result := TGikoBBSColumnID( inherited Items[ index ] );
+end;
+
+procedure TGikoBBSColumnList.SetItem( index : integer; value : TGikoBBSColumnID);
+begin
+       inherited Items[ index ] := Pointer( value );
+end;
+
+function TGikoBBSColumnList.Add( value : TGikoBBSColumnID ) : Integer;
+begin
+       Result := inherited Add( Pointer( value ) );
+end;
+
+constructor TGikoCategoryColumnList.Create;
+begin
+       inherited;
+end;
+
+destructor TGikoCategoryColumnList.Destroy;
+begin
+       inherited;
+end;
+
+function TGikoCategoryColumnList.GetItem( index : integer ) : TGikoCategoryColumnID;
+begin
+       Result := TGikoCategoryColumnID( inherited Items[ index ] );
+end;
+
+procedure TGikoCategoryColumnList.SetItem( index : integer; value : TGikoCategoryColumnID);
+begin
+       inherited Items[ index ] := Pointer( value );
+end;
+
+function TGikoCategoryColumnList.Add( value : TGikoCategoryColumnID ) : Integer;
+begin
+       Result := inherited Add( Pointer( value ) );
+end;
+
+constructor TGikoBoardColumnList.Create;
+begin
+       inherited;
+end;
+
+destructor TGikoBoardColumnList.Destroy;
+begin
+       inherited;
+end;
+
+function TGikoBoardColumnList.GetItem( index : integer ) : TGikoBoardColumnID;
+begin
+       Result := TGikoBoardColumnID( inherited Items[ index ] );
+end;
+
+procedure TGikoBoardColumnList.SetItem( index : integer; value : TGikoBoardColumnID);
+begin
+       inherited Items[ index ] := Pointer( value );
+end;
+
+function TGikoBoardColumnList.Add( value : TGikoBoardColumnID ) : Integer;
+begin
+       Result := inherited Add( Pointer( value ) );
+end;
+
 //\83R\83\93\83X\83g\83\89\83N\83^
 constructor TSetting.Create();
 begin
@@ -661,6 +922,10 @@ begin
        FMailList := TStringList.Create;
        FSelectTextList := TStringList.Create;
        FBoardURLs := TStringList.Create;
+       FBBSColumnOrder := TGikoBBSColumnList.Create;
+       FCategoryColumnOrder := TGikoCategoryColumnList.Create;
+       FBoardColumnOrder := TGikoBoardColumnList.Create;
+       FGestures := TGestureModel.Create;
        FNameList.Duplicates := dupIgnore;
        FMailList.Duplicates := dupIgnore;
        FBoardURLs.Duplicates := dupIgnore;
@@ -673,10 +938,14 @@ end;
 destructor TSetting.Destroy();
 begin
        inherited;
+       FBoardColumnOrder.Free;
+       FCategoryColumnOrder.Free;
+       FBBSColumnOrder.Free;
        FSelectTextList.Free;
        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
@@ -695,16 +964,17 @@ end;
 procedure TSetting.ReadSettingFile();
 const
        DEFAULT_BBS_WIDTH: array[0..0] of Integer = (140);
-       DEFAULT_CATEGORY_WIDTH: array[0..3] of Integer = (150, 80, 130, 130);
-       DEFAULT_BOARD_WIDTH: array[0..7] of Integer = (350, 60, 60, 60, 60, 80, 130, 130);
+       DEFAULT_CATEGORY_WIDTH: array[0..2] of Integer = (150, 80, 130);
+       DEFAULT_BOARD_WIDTH: array[0..10] of Integer = (350, 60, 60, 60, 60, 60, 80, 130, 130, 130, 60);
        MAX_WIDTH: Integer = 2000;
 var
        ini: TMemIniFile;
        i: Integer;
+       id, code : Integer;
        wkList: TStringList;
        wkStr: string;
        Exists: Boolean;
-       s: string;
+       s: string;                                               
 //     id: Integer;
        CoolSet: TCoolSet;
 begin
@@ -750,8 +1020,9 @@ begin
                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);
@@ -851,7 +1122,7 @@ begin
                        wkList.Free;
                end;
 
-               //\83\8a\83X\83g\83J\83\89\83\80
+               // \83\8a\83X\83g\83J\83\89\83\80\95\9d
                wkList := TStringList.Create;
                try
                        ini.ReadSection('BBSColumnWidth', wkList);
@@ -885,12 +1156,63 @@ begin
                        wkList.Free;
                end;
 
+               // \83J\83e\83S\83\8a\83\8a\83X\83g\83J\83\89\83\80\8f\87\8f\98
+               wkList := TStringList.Create;
+               try
+                       ini.ReadSection( 'BBSColumnOrder', wkList );
+                       for i := 0 to wkList.Count - 1 do begin
+                               wkStr := ini.ReadString( 'BBSColumnOrder', 'ID' + IntToStr( i ), '' );
+                               Val( wkStr, id, code );
+                               if code = 0 then
+                                       FBBSColumnOrder.Add( TGikoBBSColumnID( id ) );
+                       end;
+                       if FBBSColumnOrder.Count = 0 then begin
+                               // \90Ý\92è\82ª\96³\82¢\82Ì\82Å\8dì\90¬
+                               for i := 0 to Integer( High( TGikoBBSColumnID ) ) do
+                                       FBBSColumnOrder.Add( TGikoBBSColumnID( i ) );
+                       end;
+
+                       ini.ReadSection( 'CategoryColumnOrder', wkList );
+                       for i := 0 to wkList.Count - 1 do begin
+                               wkStr := ini.ReadString( 'CategoryColumnOrder', 'ID' + IntToStr( i ), '' );
+                               Val( wkStr, id, code );
+                               if code = 0 then
+                                       FCategoryColumnOrder.Add( TGikoCategoryColumnID( id ) );
+                       end;
+                       if FCategoryColumnOrder.Count = 0 then begin
+                               // \90Ý\92è\82ª\96³\82¢\82Ì\82Å\8dì\90¬
+                               for i := 0 to Integer( High( TGikoCategoryColumnID ) ) do
+                                       FCategoryColumnOrder.Add( TGikoCategoryColumnID( i ) );
+                       end;
+
+                       ini.ReadSection( 'BoardColumnOrder', wkList );
+                       for i := 0 to wkList.Count - 1 do begin
+                               wkStr := ini.ReadString( 'BoardColumnOrder', 'ID' + IntToStr( i ), '' );
+                               Val( wkStr, id, code );
+                               if code = 0 then
+                                       FBoardColumnOrder.Add( TGikoBoardColumnID( id ) );
+                       end;
+                       if FBoardColumnOrder.Count = 0 then begin
+                               // \90Ý\92è\82ª\96³\82¢\82Ì\82Å\8dì\90¬
+                               for i := 0 to Integer( High( TGikoBoardColumnID ) ) do begin
+                                       // \90¨\82¢\82Ì\83J\83\89\83\80\82Í\83f\83t\83H\83\8b\83g\82Å\94ñ\95\\8e¦\82É\82·\82é
+                                       if ( i <> Ord(gbcVigor) ) then begin
+                                               FBoardColumnOrder.Add( TGikoBoardColumnID( i ) );
+                                       end;
+                               end;
+                       end;
+               finally
+                       wkList.Free;
+               end;
+
                //\83\8a\83X\83g\94Ô\8d\86
                FListViewNo := ini.ReadBool('Function', 'ListViewNo', True);
                //CSS
                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);
@@ -898,7 +1220,7 @@ begin
                if ini.ReadBool('Thread', 'OnlyAHundredRes',false) then
                        FResRange := 100        // \8cÃ\82¢\90Ý\92è\82Ì\8cÝ\8a·\97p
                else
-                       FResRange := ini.ReadInteger( 'Thread', 'ResRange', 100 );
+                       FResRange := ini.ReadInteger( 'Thread', 'ResRange', Ord( grrAll ) );
                FResRangeHold := ini.ReadBool( 'Thread', 'ResRangeHold', False );
                // \83X\83\8c\83b\83h\88ê\97\97\95\\8e¦\94Í\88Í
                FThreadRange := TGikoThreadRange( ini.ReadInteger('ThreadList', 'ThreadRange', Ord( gtrAll )) );
@@ -917,7 +1239,7 @@ begin
                //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
@@ -958,17 +1280,18 @@ begin
 
                //\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);
                //\83\\81[\83g\8f\87
                FBBSSortIndex := ini.ReadInteger('ThreadList', 'BBSSortIndex', 0);
-               FBBSSortOrder := ini.ReadBool('ThreadList', 'BBSSortOrder', False);
+               FBBSSortOrder := ini.ReadBool('ThreadList', 'BBSSortOrder', True);
                FCategorySortIndex := ini.ReadInteger('ThreadList', 'CategorySortIndex', 0);
-               FCategorySortOrder := ini.ReadBool('ThreadList', 'CategorySortOrder', False);
+               FCategorySortOrder := ini.ReadBool('ThreadList', 'CategorySortOrder', True);
                FBoardSortIndex := ini.ReadInteger('ThreadList', 'BoardSortIndex', 0);
-               FBoardSortOrder := ini.ReadBool('ThreadList', 'BoardSortOrder', False);
+               FBoardSortOrder := ini.ReadBool('ThreadList', 'BoardSortOrder', True);
+               // DL\8cã\82Ì\8e©\93®\83\\81[\83g
+               FAutoSortThreadList := ini.ReadBool('ThreadList', 'AutoSort', False);
                //Dat\97\8e\82¿\83X\83\8c\83\\81[\83g\8f\87
                FDatOchiSortIndex := ini.ReadInteger('ThreadList', 'DatOchiSortIndex', -1);
                FDatOchiSortOrder := ini.ReadBool('ThreadList', 'DatOchiSortOrder', False);
@@ -1021,16 +1344,56 @@ begin
                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);
 
+               // \93ü\97Í\83A\83V\83X\83g
+               FInputAssistFormTop := ini.ReadInteger('IAtWindowsSize', 'Top', 0);
+               FInputAssistFormLeft := ini.ReadInteger('IAtWindowsSize', 'Left', 0);
+               FInputAssistFormWidth := ini.ReadInteger('IAtWindowsSize', 'Width', 400);
+               FInputAssistFormHeight := ini.ReadInteger('IAtWindowsSize', 'Height', 460);
+
+               // Cookie\82É\95t\89Á\82·\82é\8cÅ\92è\83R\81[\83h
+               FFixedCookie := ini.ReadString('Cookie', 'fixedString', FIXED_COOKIE);
+
+        // \83\8a\83\93\83N\88Ú\93®\97\9a\97ð\82Ì\8dÅ\91å\95Û\8e\9d\90\94
+        FMoveHistorySize := ini.ReadInteger('MoveHisotry', 'Max', 20);
+
+               ini.UpdateFile;
        finally
                ini.Free;
        end;
@@ -1093,14 +1456,19 @@ begin
                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);
@@ -1117,9 +1485,6 @@ begin
                ini.WriteString('Window', 'HintFontColor', ColorToString(FHintFontColor));
                ini.WriteString('Window', 'HintBackColor', ColorToString(FHintBackColor));
 
-                //\8e©\93®\95Û\91¶¥\95\9c\8c³
-                ini.WriteBool('TabAuto', 'TabAutoLoadSave', FTabAutoLoadSave);
-
                ini.UpdateFile;
        finally
                ini.Free;
@@ -1132,6 +1497,7 @@ var
        i: Integer;
        ini: TMemIniFile;
        CoolSet: TCoolSet;
+       wkList  : TStringList;
 begin
        ini := TMemIniFile.Create(GetFileName());
        try
@@ -1153,6 +1519,12 @@ begin
 
                ini.WriteInteger('OptionDialog', 'TabIndex', FOptionDialogTabIndex);
 
+               // \93ü\97Í\83A\83V\83X\83g
+               ini.WriteInteger('IAtWindowsSize', 'Top', FInputAssistFormTop);
+               ini.WriteInteger('IAtWindowsSize', 'Left', FInputAssistFormLeft);
+               ini.WriteInteger('IAtWindowsSize', 'Width', FInputAssistFormWidth);
+               ini.WriteInteger('IAtWindowsSize', 'Height', FInputAssistFormHeight);
+
                //\83c\81[\83\8b\83o\81[
                ini.WriteBool('ToolBar', 'StdVisible', FStdToolBarVisible);
                ini.WriteBool('ToolBar', 'AddressVisible', FAddressBarVisible);
@@ -1199,11 +1571,14 @@ begin
                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¦
                ini.WriteBool('Thread', 'ShowMail', FShowMail);
                // \83\8c\83X\95\\8e¦\94Í\88Í
+               ini.DeleteKey( 'Thread', 'OnlyAHundredRes' );   // \8cÃ\82¢\90Ý\92è\82Ì\8dí\8f\9c
                ini.WriteInteger('Thread', 'ResRange', FResRange);
                ini.WriteBool('Thread', 'ResRangeHold', FResRangeHold);
                // \83X\83\8c\83b\83h\88ê\97\97\95\\8e¦\94Í\88Í
@@ -1252,11 +1627,11 @@ begin
                ini.WriteBool('Browser', 'PreviewVisible', FPreviewVisible);
                ini.WriteInteger('Browser', 'PreviewSize', Ord(FPreviewSize));
                ini.WriteInteger('Browser', 'PreviewWait', FPreviewWait);
-               ini.WriteInteger('Browser', 'AutoMaximize', Ord( FBrowserAutoMaximize ) );
+
+               ini.WriteInteger('Window', 'BrowserAutoMaximize', Ord( BrowserAutoMaximize ) );
 
                //\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);
@@ -1269,13 +1644,15 @@ begin
                ini.WriteBool('ThreadList', 'BoardSortOrder', FBoardSortOrder);
                ini.WriteInteger('ThreadList', 'DatOchiSortIndex', FDatOchiSortIndex);
                ini.WriteBool('ThreadList', 'DatOchiSortOrder', FDatOchiSortOrder);
+               // DL\8cã\82Ì\8e©\93®\83\\81[\83g
+               ini.WriteBool('ThreadList', 'AutoSort', FAutoSortThreadList);
 
                //\8f\91\82«\8d\9e\82Ý\8e\9e\83}\83V\83\93\8e\9e\8d\8f\8eg\97p\90Ý\92è
                ini.WriteBool('PostTime', 'UseMachineTime', FUseMachineTime);
                ini.WriteInteger('PostTime', 'TimeAdjustSec', FTimeAdjustSec);
                ini.WriteBool('PostTime', 'TimeAdjust', FTimeAdjust);
 
-               //\83\8a\83X\83g\83J\83\89\83\80
+               // \83\8a\83X\83g\83J\83\89\83\80\95\9d
                for i := 0 to Length(FBBSColumnWidth) - 1 do begin
                        ini.WriteInteger('BBSColumnWidth', 'ID' + IntToStr(i), FBBSColumnWidth[i]);
                end;
@@ -1286,6 +1663,32 @@ begin
                        ini.WriteInteger('BoardColumnWidth', 'ID' + IntToStr(i), FBoardColumnWidth[i]);
                end;
 
+               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
+                       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
+                       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
                        if not FileExists(SoundFileName[i]) then
@@ -1320,16 +1723,49 @@ 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', 'TabAutoSaveLoad', 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);
+               // \8cÅ\92è\82ÌCookie\95\8e\9a\97ñ
+        ini.WriteString('Cookie', 'fixedString', FFixedCookie);
+
+        // \83\8a\83\93\83N\88Ú\93®\97\9a\97ð\82Ì\8dÅ\91å\95Û\8e\9d\90\94
+        ini.WriteInteger('MoveHisotry', 'Max', FMoveHistorySize);
 
                ini.UpdateFile;
        finally
@@ -1599,10 +2035,13 @@ var
 begin
        ini := TMemIniFile.Create(GetBoardURLFileName());
        try
-               ini.WriteInteger('URL','count',2);
-               ini.WriteInteger('URL','selected',2);
+               //\8dX\90VURL\82Ì\90\94
+               ini.WriteInteger('URL','count',1);
+               //\83f\83t\83H\83\8b\83g\82Å\8eg\97p\82·\82é\82t\82q\82k\82Ì\83C\83\93\83f\83b\83N\83X
+               ini.WriteInteger('URL','selected',1);
+               //\88È\89º\95K\97v\82È\90\94\82¾\82¯\81A\8dX\90V\82t\82q\82k\82ð\92Ç\89Á
                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;
@@ -1736,10 +2175,11 @@ procedure TSetting.SetUseCSS( value: Boolean );
 begin
 
        FUseCSS := value;
-
+       // Windows\93I\82É\83t\83@\83C\83\8b\83p\83X\82Ì\91å\95\8e\9a\8f¬\95\8e\9a\82Ì\88á\82¢\82Í\96³\8e\8b\82³\82ê\82é\82Ì\82Å\81A
+       // \83R\83R\82Å\82Ì\94»\92è\82Å\82à\91å\95\8e\9a\8f¬\95\8e\9a\82Ì\88á\82¢\82Í\96³\8e\8b\82·\82é\81B
        FUseSkin :=
                UseCSS and
-               (Pos( GetSkinDir, CSSFileName ) > 0) and
+               (Pos( AnsiLowerCase(GetSkinDir), AnsiLowerCase(CSSFileName) ) > 0) and
                FileExists( GetSkinHeaderFileName );
 
 end;
@@ -1748,10 +2188,11 @@ procedure TSetting.SetCSSFileName( fileName: string );
 begin
 
        FCSSFileName := fileName;
-
+       // Windows\93I\82É\83t\83@\83C\83\8b\83p\83X\82Ì\91å\95\8e\9a\8f¬\95\8e\9a\82Ì\88á\82¢\82Í\96³\8e\8b\82³\82ê\82é\82Ì\82Å\81A
+       // \83R\83R\82Å\82Ì\94»\92è\82Å\82à\91å\95\8e\9a\8f¬\95\8e\9a\82Ì\88á\82¢\82Í\96³\8e\8b\82·\82é\81B
        FUseSkin :=
                UseCSS and
-               (Pos( GetSkinDir, CSSFileName ) > 0) and
+               (Pos( AnsiLowerCase(GetSkinDir), AnsiLowerCase(CSSFileName) ) > 0) and
                FileExists( GetSkinHeaderFileName );
 
 end;
@@ -1766,6 +2207,45 @@ begin
        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;
+procedure TSetting.WriteLogFolder(AVal : String);
+begin
+       FLogFolder := AVal;
+       FLogFolderP := IncludeTrailingPathDelimiter(LogFolder);
+end;
+function TSetting.GetMainKeyFileName: String;
+begin
+       Result := GetConfigDir + KEY_SETTING_FILE_NAME;
+end;
+function TSetting.GetEditorKeyFileName: String;
+begin
+       Result := GetConfigDir + EKEY_SETTING_FILE_NAME;
+end;
+function TSetting.GetInputAssistFileName : String;
+begin
+       Result := GetConfigDir + INPUTASSIST_FILE_NAME;
+end;
+procedure TSetting.SetMoveHistorySize(AVal : Integer);
+begin
+    if (AVal > 0) then begin
+        FMoveHistorySize := AVal;
+    end;
+end;
 end.