Develop and Download Open Source Software

Browse CVS Repository

Diff of /gikonavigoeson/gikonavi/Giko.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.515 by h677, Sat Jun 25 13:02:29 2005 UTC revision 1.515.2.30 by genyakun, Sat Oct 1 22:56:20 2005 UTC
# Line 425  type Line 425  type
425                  ReloadAction: TAction;                  ReloadAction: TAction;
426                  GoFowardAction: TAction;                  GoFowardAction: TAction;
427                  GoBackAction: TAction;                  GoBackAction: TAction;
                 SelectComboBoxSplitter: TImage;  
428                  IndividualAbon1: TMenuItem;                  IndividualAbon1: TMenuItem;
429                  N41: TMenuItem;                  N41: TMenuItem;
430                  IndividualAbon2: TMenuItem;                  IndividualAbon2: TMenuItem;
# Line 560  type Line 559  type
559          SortNextColumnAction: TAction;          SortNextColumnAction: TAction;
560      SortPrevColumnAction: TAction;      SortPrevColumnAction: TAction;
561      BeLogInOutAction: TAction;      BeLogInOutAction: TAction;
562        UnSelectedListViewAction: TAction;
563        SelectComboBoxPanel: TPanel;
564        SelectComboBoxSplitter: TImage;
565        ToolButton1: TToolButton;
566        N74: TMenuItem;
567        WikiFAQ: TMenuItem;
568        WikiFAQWebPageAction: TAction;
569                                  procedure FormCreate(Sender: TObject);                                  procedure FormCreate(Sender: TObject);
570                  procedure FormDestroy(Sender: TObject);                  procedure FormDestroy(Sender: TObject);
571                  procedure CabinetPanelHide(Sender: TObject);                  procedure CabinetPanelHide(Sender: TObject);
# Line 639  type Line 645  type
645                  procedure SelectListReloadActionExecute(Sender: TObject);                  procedure SelectListReloadActionExecute(Sender: TObject);
646                  procedure SelectThreadReloadActionExecute(Sender: TObject);                  procedure SelectThreadReloadActionExecute(Sender: TObject);
647                  procedure SelectListReloadActionUpdate(Sender: TObject);                  procedure SelectListReloadActionUpdate(Sender: TObject);
                 procedure AllItemActionUpdate(Sender: TObject);  
                 procedure LogItemActionUpdate(Sender: TObject);  
                 procedure NewItemActionUpdate(Sender: TObject);  
                 procedure SelectItemActionUpdate(Sender: TObject);  
648                  procedure UpFolderActionUpdate(Sender: TObject);                  procedure UpFolderActionUpdate(Sender: TObject);
649                  procedure FormResize(Sender: TObject);                  procedure FormResize(Sender: TObject);
                 procedure ScrollTopActionUpdate(Sender: TObject);  
                 procedure ScrollLastActionUpdate(Sender: TObject);  
                 procedure ScrollNewActionUpdate(Sender: TObject);  
650                  procedure ScrollKokoActionUpdate(Sender: TObject);                  procedure ScrollKokoActionUpdate(Sender: TObject);
                 procedure EditorActionUpdate(Sender: TObject);  
                 procedure IEActionUpdate(Sender: TObject);  
                 procedure ShowThreadActionUpdate(Sender: TObject);  
                 procedure ShowBoardActionUpdate(Sender: TObject);  
651                  procedure SelectThreadReloadActionUpdate(Sender: TObject);                  procedure SelectThreadReloadActionUpdate(Sender: TObject);
                 procedure ItemReloadActionUpdate(Sender: TObject);  
652                  procedure LogDeleteActionExecute(Sender: TObject);                  procedure LogDeleteActionExecute(Sender: TObject);
653                  procedure KokomadeActionExecute(Sender: TObject);                  procedure KokomadeActionExecute(Sender: TObject);
654                  procedure ZenbuActionExecute(Sender: TObject);                  procedure ZenbuActionExecute(Sender: TObject);
655                  procedure KokoResActionExecute(Sender: TObject);                  procedure KokoResActionExecute(Sender: TObject);
656                  procedure ListPopupMenuPopup(Sender: TObject);                  procedure ListPopupMenuPopup(Sender: TObject);
657                  procedure SelectItemURLCopyActionExecute(Sender: TObject);                  procedure SelectItemURLCopyActionExecute(Sender: TObject);
                 procedure SelectItemURLCopyActionUpdate(Sender: TObject);  
658                  procedure AllSelectActionUpdate(Sender: TObject);                  procedure AllSelectActionUpdate(Sender: TObject);
                 procedure LogDeleteActionUpdate(Sender: TObject);  
659                  procedure BrowserTabCloseActionExecute(Sender: TObject);                  procedure BrowserTabCloseActionExecute(Sender: TObject);
660                  procedure NotSelectTabCloseActionExecute(Sender: TObject);                  procedure NotSelectTabCloseActionExecute(Sender: TObject);
661                  procedure TreeSelectBoradReloadExecute(Sender: TObject);                  procedure TreeSelectBoradReloadExecute(Sender: TObject);
# Line 697  type Line 689  type
689                  procedure ArrangeActionExecute(Sender: TObject);                  procedure ArrangeActionExecute(Sender: TObject);
690                  procedure NameURLCopyActionExecute(Sender: TObject);                  procedure NameURLCopyActionExecute(Sender: TObject);
691                  procedure SelectItemNameURLCopyActionExecute(Sender: TObject);                  procedure SelectItemNameURLCopyActionExecute(Sender: TObject);
                 procedure URLCopyActionUpdate(Sender: TObject);  
                 procedure NameURLCopyActionUpdate(Sender: TObject);  
                 procedure BrowserTabCloseActionUpdate(Sender: TObject);  
                 procedure NotSelectTabCloseActionUpdate(Sender: TObject);  
692                  procedure AllTabCloseActionUpdate(Sender: TObject);                  procedure AllTabCloseActionUpdate(Sender: TObject);
                 procedure SelectItemNameURLCopyActionUpdate(Sender: TObject);  
693                  procedure ActiveLogDeleteActionExecute(Sender: TObject);                  procedure ActiveLogDeleteActionExecute(Sender: TObject);
                 procedure ActiveLogDeleteActionUpdate(Sender: TObject);  
694                  procedure ListNameBarVisibleActionExecute(Sender: TObject);                  procedure ListNameBarVisibleActionExecute(Sender: TObject);
695                  procedure BrowserNameBarVisibleActionExecute(Sender: TObject);                  procedure BrowserNameBarVisibleActionExecute(Sender: TObject);
696                  procedure TreeSelectNameURLCopyExecute(Sender: TObject);                  procedure TreeSelectNameURLCopyExecute(Sender: TObject);
# Line 719  type Line 705  type
705                  procedure LeftTabSelectActionExecute(Sender: TObject);                  procedure LeftTabSelectActionExecute(Sender: TObject);
706                  procedure RightTabSelectActionExecute(Sender: TObject);                  procedure RightTabSelectActionExecute(Sender: TObject);
707                  procedure RightmostTabSelectActionExecute(Sender: TObject);                  procedure RightmostTabSelectActionExecute(Sender: TObject);
                 procedure LeftmostTabSelectActionUpdate(Sender: TObject);  
708                  procedure LeftTabSelectActionUpdate(Sender: TObject);                  procedure LeftTabSelectActionUpdate(Sender: TObject);
709                  procedure RightTabSelectActionUpdate(Sender: TObject);                  procedure RightTabSelectActionUpdate(Sender: TObject);
                 procedure RightmostTabSelectActionUpdate(Sender: TObject);  
710                  procedure FavoriteMenuClick(Sender: TObject);                  procedure FavoriteMenuClick(Sender: TObject);
711                  procedure FavoriteAddActionExecute(Sender: TObject);                  procedure FavoriteAddActionExecute(Sender: TObject);
                 procedure FavoriteAddActionUpdate(Sender: TObject);  
712                  procedure BoardFavoriteAddActionExecute(Sender: TObject);                  procedure BoardFavoriteAddActionExecute(Sender: TObject);
713                  procedure BoardFavoriteAddActionUpdate(Sender: TObject);                  procedure BoardFavoriteAddActionUpdate(Sender: TObject);
714                  procedure ThreadFavoriteAddActionExecute(Sender: TObject);                  procedure ThreadFavoriteAddActionExecute(Sender: TObject);
                 procedure ThreadFavoriteAddActionUpdate(Sender: TObject);  
715                  procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);                  procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);
716                  procedure FavoriteArrangeActionExecute(Sender: TObject);                  procedure FavoriteArrangeActionExecute(Sender: TObject);
717                  procedure MainCoolBarResize(Sender: TObject);                  procedure MainCoolBarResize(Sender: TObject);
# Line 769  type Line 751  type
751                          RebarChevron: PNMRebarChevron);                          RebarChevron: PNMRebarChevron);
752                  procedure ListViewColumnInfo(Sender: TObject; var Column: PLVColumnA);                  procedure ListViewColumnInfo(Sender: TObject; var Column: PLVColumnA);
753                  procedure ThreadEditorActionExecute(Sender: TObject);                  procedure ThreadEditorActionExecute(Sender: TObject);
                 procedure ThreadEditorActionUpdate(Sender: TObject);  
754                  procedure ToolBarSettingActionExecute(Sender: TObject);                  procedure ToolBarSettingActionExecute(Sender: TObject);
755                  procedure NameCopyActionExecute(Sender: TObject);                  procedure NameCopyActionExecute(Sender: TObject);
756                  procedure BoardIEActionExecute(Sender: TObject);                  procedure BoardIEActionExecute(Sender: TObject);
757                  procedure SelectItemNameCopyActionExecute(Sender: TObject);                  procedure SelectItemNameCopyActionExecute(Sender: TObject);
758                  procedure SelectItemNameCopyActionUpdate(Sender: TObject);                  procedure SelectItemNameCopyActionUpdate(Sender: TObject);
                 procedure BoardIEActionUpdate(Sender: TObject);  
759                  procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;                  procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;
760                          WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);                          WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
                 procedure NameCopyActionUpdate(Sender: TObject);  
761                  procedure SelectComboBoxChange(Sender: TObject);                  procedure SelectComboBoxChange(Sender: TObject);
762                  procedure SelectComboBoxKeyDown(Sender: TObject; var Key: Word;                  procedure SelectComboBoxKeyDown(Sender: TObject; var Key: Word;
763                          Shift: TShiftState);                          Shift: TShiftState);
764                  procedure SelectComboBoxExit(Sender: TObject);                  procedure SelectComboBoxExit(Sender: TObject);
765                  procedure SelectResActionExecute(Sender: TObject);                  procedure SelectResActionExecute(Sender: TObject);
                 procedure SelectResActionUpdate(Sender: TObject);  
766                  procedure AllResActionExecute(Sender: TObject);                  procedure AllResActionExecute(Sender: TObject);
                 procedure AllResActionUpdate(Sender: TObject);  
767                  procedure ReloadClick(Sender: TObject);                  procedure ReloadClick(Sender: TObject);
768                  procedure GoBackClick(Sender: TObject);                  procedure GoBackClick(Sender: TObject);
769                  procedure GoFowardClick(Sender: TObject);                  procedure GoFowardClick(Sender: TObject);
# Line 839  type Line 816  type
816                  procedure FavoriteTreeViewBrowseThreadActionExecute(Sender: TObject);                  procedure FavoriteTreeViewBrowseThreadActionExecute(Sender: TObject);
817                  procedure FavoriteTreeBrowseBoardPopupMenuClick(Sender: TObject);                  procedure FavoriteTreeBrowseBoardPopupMenuClick(Sender: TObject);
818                  procedure UpBoardActionExecute(Sender: TObject);                  procedure UpBoardActionExecute(Sender: TObject);
                 procedure UpBoardActionUpdate(Sender: TObject);  
819      procedure BrowserTabContextPopup(Sender: TObject; MousePos: TPoint;      procedure BrowserTabContextPopup(Sender: TObject; MousePos: TPoint;
820        var Handled: Boolean);        var Handled: Boolean);
821      procedure KoreCopyExecute(Sender: TObject);      procedure KoreCopyExecute(Sender: TObject);
# Line 855  type Line 831  type
831      procedure TreeSelectNameCopyExecute(Sender: TObject);      procedure TreeSelectNameCopyExecute(Sender: TObject);
832      procedure FavoriteTreeViewMouseUp(Sender: TObject;      procedure FavoriteTreeViewMouseUp(Sender: TObject;
833        Button: TMouseButton; Shift: TShiftState; X, Y: Integer);        Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
     procedure ResRangeActionUpdate(Sender: TObject);  
834                  procedure SetFocusForBrowserActionExecute(Sender: TObject);                  procedure SetFocusForBrowserActionExecute(Sender: TObject);
835                  procedure SetFocusForBrowserActionUpdate(Sender: TObject);                  procedure SetFocusForBrowserActionUpdate(Sender: TObject);
836      procedure SetFocusForThreadListActionExecute(Sender: TObject);      procedure SetFocusForThreadListActionExecute(Sender: TObject);
837      procedure SetFocusForCabinetActionExecute(Sender: TObject);      procedure SetFocusForCabinetActionExecute(Sender: TObject);
838          procedure BrowserMaxAndFocusActionExecute(Sender: TObject);          procedure BrowserMaxAndFocusActionExecute(Sender: TObject);
839      procedure BrowserMaxAndFocusActionUpdate(Sender: TObject);          procedure ThreadlistMaxAndFocusActionExecute(Sender: TObject);
     procedure ThreadlistMaxAndFocusActionExecute(Sender: TObject);  
840      procedure SetFocusForCabinetActionUpdate(Sender: TObject);      procedure SetFocusForCabinetActionUpdate(Sender: TObject);
     procedure ListViewSelectItem(Sender: TObject; Item: TListItem;  
       Selected: Boolean);  
841      procedure SelectTimerTimer(Sender: TObject);      procedure SelectTimerTimer(Sender: TObject);
842      procedure SelectItemSaveForHTMLExecute(Sender: TObject);      procedure SelectItemSaveForHTMLExecute(Sender: TObject);
843          procedure KidokuActionExecute(Sender: TObject);          procedure KidokuActionExecute(Sender: TObject);
844      procedure MidokuActionExecute(Sender: TObject);      procedure MidokuActionExecute(Sender: TObject);
845      procedure SelectItemSaveForDatExecute(Sender: TObject);      procedure SelectItemSaveForDatExecute(Sender: TObject);
846      procedure LogFolderOpenActionExecute(Sender: TObject);      procedure LogFolderOpenActionExecute(Sender: TObject);
     procedure LogFolderOpenActionUpdate(Sender: TObject);  
847                  procedure TabsSaveActionExecute(Sender: TObject);                  procedure TabsSaveActionExecute(Sender: TObject);
848                  procedure TabsOpenActionExecute(Sender: TObject);                  procedure TabsOpenActionExecute(Sender: TObject);
849      procedure OnlyAHundredResActionExecute(Sender: TObject);      procedure OnlyAHundredResActionExecute(Sender: TObject);
850      procedure OnlyKokoResActionExecute(Sender: TObject);      procedure OnlyKokoResActionExecute(Sender: TObject);
851          procedure OnlyNewResActionExecute(Sender: TObject);          procedure OnlyNewResActionExecute(Sender: TObject);
852          procedure BrowsBoradHeadActionExecute(Sender: TObject);          procedure BrowsBoradHeadActionExecute(Sender: TObject);
853      procedure BrowsBoradHeadActionUpdate(Sender: TObject);          procedure EditNGActionExecute(Sender: TObject);
     procedure EditNGActionExecute(Sender: TObject);  
     procedure ThreadRangeActionUpdate(Sender: TObject);  
854      procedure ThreadRangeActionExecute(Sender: TObject);      procedure ThreadRangeActionExecute(Sender: TObject);
855                  procedure TabAutoSaveActionExecute(Sender: TObject);                  procedure TabAutoSaveActionExecute(Sender: TObject);
856      procedure TabAutoLoadActionExecute(Sender: TObject);      procedure TabAutoLoadActionExecute(Sender: TObject);
857                  procedure ListViewColumnRightClick(Sender: TObject;                  procedure ListViewColumnRightClick(Sender: TObject;
858        Column: TListColumn; Point: TPoint);        Column: TListColumn; Point: TPoint);
859      procedure JumpToNumOfResActionExecute(Sender: TObject);      procedure JumpToNumOfResActionExecute(Sender: TObject);
     procedure JumpToNumOfResActionUpdate(Sender: TObject);  
860      procedure FavoriteTreeViewCollapseActionExecute(Sender: TObject);      procedure FavoriteTreeViewCollapseActionExecute(Sender: TObject);
861          procedure ListViewCustomDrawItem(Sender: TCustomListView;          procedure ListViewCustomDrawItem(Sender: TCustomListView;
862        Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);        Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
# Line 900  type Line 868  type
868          procedure RightTabCloseActionExecute(Sender: TObject);          procedure RightTabCloseActionExecute(Sender: TObject);
869      procedure RightTabCloseActionUpdate(Sender: TObject);      procedure RightTabCloseActionUpdate(Sender: TObject);
870      procedure LeftTabCloseActionExecute(Sender: TObject);      procedure LeftTabCloseActionExecute(Sender: TObject);
     procedure LeftTabCloseActionUpdate(Sender: TObject);  
871      procedure SameIDResAnchorActionExecute(Sender: TObject);      procedure SameIDResAnchorActionExecute(Sender: TObject);
872      procedure IndividualAbon1ActionExecute(Sender: TObject);      procedure IndividualAbon1ActionExecute(Sender: TObject);
873      procedure IndividualAbon0ActionExecute(Sender: TObject);      procedure IndividualAbon0ActionExecute(Sender: TObject);
# Line 913  type Line 880  type
880      procedure SortActiveColumnActionExecute(Sender: TObject);      procedure SortActiveColumnActionExecute(Sender: TObject);
881      procedure SortNextColumnActionExecute(Sender: TObject);      procedure SortNextColumnActionExecute(Sender: TObject);
882      procedure SortPrevColumnActionExecute(Sender: TObject);      procedure SortPrevColumnActionExecute(Sender: TObject);
883      procedure MessageListViewAdvancedCustomDrawItem(          procedure MessageListViewAdvancedCustomDrawItem(
884        Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;            Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;
885        Stage: TCustomDrawStage; var DefaultDraw: Boolean);            Stage: TCustomDrawStage; var DefaultDraw: Boolean);
886      procedure BeLogInOutActionExecute(Sender: TObject);          procedure BeLogInOutActionExecute(Sender: TObject);
887          procedure BeLogInOutActionUpdate(Sender: TObject);          procedure BeLogInOutActionUpdate(Sender: TObject);
888            procedure UnSelectedListViewActionExecute(Sender: TObject);
889            procedure ListViewKeyUp(Sender: TObject; var Key: Word;
890              Shift: TShiftState);
891        procedure FavoriteTreeViewEditing(Sender: TObject; Node: TTreeNode;
892          var AllowEdit: Boolean);
893        procedure WikiFAQWebPageActionExecute(Sender: TObject);
894          private          private
895                  { Private 宣言 }                  { Private 宣言 }
         //RoundList : TRoundList;  
896                  FSortIndex: Integer;                  FSortIndex: Integer;
897                  FSortOrder: Boolean;                  FSortOrder: Boolean;
898    
# Line 941  type Line 913  type
913                  FListStyle: TViewStyle;                         //リストアイコンスタイル                  FListStyle: TViewStyle;                         //リストアイコンスタイル
914                  FItemNoVisible: Boolean;                        //リスト番号表示フラグ                  FItemNoVisible: Boolean;                        //リスト番号表示フラグ
915                  FViewType: TGikoViewType;                       //リストアイテム表示タイプ                  FViewType: TGikoViewType;                       //リストアイテム表示タイプ
916                  FActiveList: TObject;                  FActiveList: TObject;
917                  FActiveContent: TBrowserRecord; //                  FActiveContent: TBrowserRecord; //
918                  FActiveBBS : TBBS;                  FActiveBBS : TBBS;
919                  FHistoryList: TList;                                    //ヒストリリスト                  FHistoryList: TList;                                    //ヒストリリスト
# Line 983  type Line 955  type
955                  FResRangeMenuSelect     : Longint;                      ///< ResRangeButton で選択されている項目 (フォーマットは ResRange 互換)                  FResRangeMenuSelect     : Longint;                      ///< ResRangeButton で選択されている項目 (フォーマットは ResRange 互換)
956                  FStartUp : Boolean;                  FStartUp : Boolean;
957                  FIsHandledWheel : Boolean;                      ///< 既に受け取った WM_MOUSEWHEEL かどうか                  FIsHandledWheel : Boolean;                      ///< 既に受け取った WM_MOUSEWHEEL かどうか
958                  DiffComp: Boolean;                      //Add by Genyakun スレが更新されたときにTrueになる                                  DiffComp: Boolean;                      //Add by Genyakun スレが更新されたときにTrueになる
959                    FOrigenCaption: String;                         //お気に入りツリーのアイテム編集時の編集前の文字列                              
960                  procedure SetBoardTreeNode( inBBS : TBBS );                  procedure SetBoardTreeNode( inBBS : TBBS );
961                  function SetCategoryListItem(ABBS2ch: TBBS): Integer;                  function SetCategoryListItem(ABBS2ch: TBBS): Integer;
962                  function SetBoardListItem(Category: TCategory): Integer;                  function SetBoardListItem(Category: TCategory): Integer;
# Line 1002  type Line 975  type
975                  procedure BrowserMovement(const AName: string); overload;                  procedure BrowserMovement(const AName: string); overload;
976                  procedure BrowserMovement(const AName: string; BrowserRecord: TBrowserRecord); overload;                  procedure BrowserMovement(const AName: string; BrowserRecord: TBrowserRecord); overload;
977                  procedure SelectListItem(List: TList);                  procedure SelectListItem(List: TList);
 //              procedure SetProgressValue(Number: Integer; Value: Integer; Max: Integer = -1);  
978                  procedure DeleteTab(ThreadItem: TThreadItem); overload;                  procedure DeleteTab(ThreadItem: TThreadItem); overload;
979                  procedure DeleteTab(BrowserRecord: TBrowserRecord); overload;                  procedure DeleteTab(BrowserRecord: TBrowserRecord); overload;
980                  function Hook(var Message: TMessage): Boolean;                  function Hook(var Message: TMessage): Boolean;
# Line 1013  type Line 985  type
985                  function GetCoolBand(CoolBar: TCoolBar; Control: TWinControl): TCoolBand;                  function GetCoolBand(CoolBar: TCoolBar; Control: TWinControl): TCoolBand;
986    
987                  procedure SetMenuFont;                  procedure SetMenuFont;
 //              procedure CreateFavMenu(Folder: TFavoriteFolder);  
988                  procedure CreateFavMenu(Node: TTreeNode; MenuItem: TMenuItem);                  procedure CreateFavMenu(Node: TTreeNode; MenuItem: TMenuItem);
989                  procedure FavoriteClick(Sender: TObject; ActiveTab: Boolean); overload;                  procedure FavoriteClick(Sender: TObject; ActiveTab: Boolean); overload;
990                  procedure FavoriteClick(Sender: TObject); overload;                  procedure FavoriteClick(Sender: TObject); overload;
991                  procedure FavoriteDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);                  procedure FavoriteDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
992                  procedure SelectTreeNode(Item: TObject; CallEvent: Boolean);                  procedure SelectTreeNode(Item: TObject; CallEvent: Boolean);
993                  function OnDocumentContextMenu(Sender: TObject): WordBool;                  function OnDocumentContextMenu(Sender: TObject): WordBool;
 //              function GetThreadText(sBoard: string; sThread: string; StNum, ToNum: Integer; Title, First: Boolean): string;  
994                  procedure SetResPopupText(ThreadItem : TThreadItem; StNum, ToNum: Integer; Title, First: Boolean);                  procedure SetResPopupText(ThreadItem : TThreadItem; StNum, ToNum: Integer; Title, First: Boolean);
995                  procedure ShowTextPopup;                  procedure ShowTextPopup;
                 //procedure ShowTextPopup(HintData: THintData);  
 //              procedure SetStdToolBar;  
 //              function GetAction(ActionName: string): TContainedAction;  
996                  procedure SetLinkBar;                  procedure SetLinkBar;
997                  function GetWidthAllToolButton(ToolBar: TToolBar): Integer;                  function GetWidthAllToolButton(ToolBar: TToolBar): Integer;
998                  procedure MenuBarChevronMenu;                  procedure MenuBarChevronMenu;
# Line 1096  type Line 1063  type
1063                  //ブラウザの再描画 true:全てのタブ false:アクティブなタブのみ                  //ブラウザの再描画 true:全てのタブ false:アクティブなタブのみ
1064                  procedure RepaintAllTabsBrowser();                  procedure RepaintAllTabsBrowser();
1065          //リンクの文字列からレスポップアップ用のURLに変換する          //リンクの文字列からレスポップアップ用のURLに変換する
1066          function GetRespopupURL(AText, AThreadURL : string): string;                  function GetRespopupURL(AText, AThreadURL : string): string;
1067          protected          protected
1068                  procedure CreateParams(var Params: TCreateParams); override;                  procedure CreateParams(var Params: TCreateParams); override;
1069                  procedure WndProc(var Message: TMessage); override;                  procedure WndProc(var Message: TMessage); override;
# Line 1167  type Line 1134  type
1134                  procedure IDAnchorPopup(Abody :string);                  procedure IDAnchorPopup(Abody :string);
1135          published          published
1136                  property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton;                  property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton;
1137                    //TActionでGetActiveContentがnil以外で有効になる
1138                    procedure DependActiveCntentActionUpdate(Sender: TObject);
1139                    //TActionでGetActiveContentがnil以外かつログを持っていると有効になる
1140                    procedure DependActiveCntentLogActionUpdate(Sender: TObject);
1141                    //TActionでActiveListがTBoardで有効になる
1142                    procedure DependActiveListTBoardActionUpdate(Sender: TObject);
1143                    //例外処理されなかった例外を処理する
1144                    procedure AppException(Sender: TObject; E: Exception);
1145          end;          end;
1146    
1147          TFavoriteMenuItem = class(TMenuItem)          TFavoriteMenuItem = class(TMenuItem)
# Line 1293  var Line 1268  var
1268          wp: TWindowPlacement;          wp: TWindowPlacement;
1269          s: string;          s: string;
1270          newbrowser: TWebBrowser;          newbrowser: TWebBrowser;
1271            ToolButton: TToolButton;
1272  begin  begin
1273  {$IFDEF DEBUG}  {$IFDEF DEBUG}
1274          AllocConsole;          AllocConsole;
# Line 1310  begin Line 1286  begin
1286          Application.OnDeactivate := AppFormDeactivate;          Application.OnDeactivate := AppFormDeactivate;
1287          //Self.OnDeactivate := AppFormDeactivate;          //Self.OnDeactivate := AppFormDeactivate;
1288          Application.HookMainWindow(Hook);          Application.HookMainWindow(Hook);
1289            Application.OnException :=      AppException;   //処理されない例外を補足
1290  //      Application.OnMessage := HandleAppMessage; //なんか無くても大丈夫になった by もじゅ  //      Application.OnMessage := HandleAppMessage; //なんか無くても大丈夫になった by もじゅ
1291          FIsIgnoreResize := rtResizing;          FIsIgnoreResize := rtResizing;
1292    
# Line 1336  begin Line 1313  begin
1313          BrowserNullTab.Browser.BringToFront;          BrowserNullTab.Browser.BringToFront;
1314          ShowWindow(BrowserNullTab.Browser.Handle, SW_SHOW);          ShowWindow(BrowserNullTab.Browser.Handle, SW_SHOW);
1315    
   
1316          //メニューフォント          //メニューフォント
1317          SetMenuFont;          SetMenuFont;
1318    
# Line 1579  begin Line 1555  begin
1555          ReadToolBarSetting(ActionList, BrowserToolBar);          ReadToolBarSetting(ActionList, BrowserToolBar);
1556          SetToolBarPopup;          SetToolBarPopup;
1557    
1558            //ListToolBarにいるかもしれない絞込みComboBoxを配置
1559            SelectComboBoxPanel.Visible := False;
1560            try
1561                    for i := ListToolBar.ControlCount - 1 downto 0 do
1562                    begin
1563                            if ListToolBar.Controls[ i ].Action = SelectItemAction then
1564                            begin
1565                                    SelectComboBoxPanel.Left := ListToolBar.Controls[ i ].Left;
1566                                    SelectComboBoxPanel.Width := GikoSys.Setting.SelectComboBoxWidth;
1567                                    SelectComboBoxPanel.Parent := ListToolBar;
1568                                    SelectComboBoxPanel.Visible := True;
1569    
1570                                    SelectComboBox.Left := 0;
1571                                    SelectComboBox.Top  := 0;
1572                                    SelectComboBox.Height := SelectComboBoxPanel.ClientHeight;
1573                                    SelectComboBox.Width := SelectComboBoxPanel.Width -
1574                                                                                    SelectComboBoxSplitter.Width;
1575    
1576                                    //一つ見えないボタンを突っ込む
1577                                    ToolButton := TToolButton.Create(ListToolBar);
1578                                    ToolButton.Name := 'SelectComboBoxDummy';
1579                                    ToolButton.Style := tbsSeparator;
1580                                    ToolButton.Width := 0;
1581                                    ToolButton.Left  := ListToolBar.Controls[ i ].Left;
1582                                    ListToolBar.InsertControl(ToolButton);
1583                                    ToolButton.Visible := False;
1584    
1585                                    // スレッド絞込の隣にセパレータがある場合は隠す
1586                                    if (i + 1) < ListToolBar.ControlCount then
1587                                            if ListToolBar.Controls[ i + 1 ] is TToolButton then
1588                                                    if TToolButton( ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then
1589                                                            ListToolBar.Controls[ i + 1 ].Visible := False;
1590    
1591    
1592                                    // スレッド絞込ボタンを隠す
1593                                    ListToolBar.Controls[ i ].Visible := False;
1594    
1595                                    break;
1596                            end;
1597                    end;
1598            except
1599            end;
1600    
1601    
1602          //アドレスバー          //アドレスバー
1603          AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop;          AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop;
# Line 1834  end; Line 1853  end;
1853  //  //
1854  //  //
1855  procedure TGikoForm.FormShow(Sender: TObject);  procedure TGikoForm.FormShow(Sender: TObject);
 var  
         i       :Integer;  
1856  begin  begin
1857          if FStartUp then begin          if FStartUp then begin
1858                  ShowWindow(Application.Handle, SW_HIDE);                  ShowWindow(Application.Handle, SW_HIDE);
# Line 1886  begin Line 1903  begin
1903                  // CoolBar 復元                  // CoolBar 復元
1904                  LoadCoolBarSettings;                  LoadCoolBarSettings;
1905    
                 //ListToolBarにいるかもしれない絞込みComboBoxを配置  
                 try  
                         for i := ListToolBar.ControlCount - 1 downto 0 do  
                         begin  
                                 if ListToolBar.Controls[ i ].Action = SelectItemAction then  
                                 begin  
                                         // スレッド絞込の隣にセパレータがある場合は隠す  
                                         if (i + 1) < ListToolBar.ControlCount then  
                                                 if ListToolBar.Controls[ i + 1 ] is TToolButton then  
                                                         if TToolButton( ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then  
                                                                 ListToolBar.Controls[ i + 1 ].Visible := False;  
   
   
                                         // スレッド絞込ボタンを隠す  
                                         ListToolBar.Controls[ i ].Visible := False;  
                                         // スレッド絞込フィールドを挿入  
                                         SelectComboBox.Left :=  ListToolBar.Controls[ i ].Left;  
                                         SelectComboBox.Width := GikoSys.Setting.SelectComboBoxWidth;  
                                         SelectComboBox.Parent := ListToolBar;  
                                         SelectComboBox.Visible := True;  
                                         // スレッド絞込用独自セパレータを挿入  
                                         SelectComboBoxSplitter.Left := SelectComboBox.Left + SelectComboBox.Width;  
                                         SelectComboBoxSplitter.Visible := True;  
                                         SelectComboBoxSplitter.Parent := ListToolBar;  
                                         break;  
                                 end;  
                         end;  
                 except  
                 end;  
1906                  //重要 これがないとツールボタンの更新がおかしくなる                  //重要 これがないとツールボタンの更新がおかしくなる
1907                  ResetBandInfo( ListCoolBar, ListToolBar );  //              ResetBandInfo( ListCoolBar, ListToolBar );
   
1908                  FIsIgnoreResize := rtNone;                  FIsIgnoreResize := rtNone;
1909    
1910                  //TabAutoLoad                  //TabAutoLoad
# Line 2114  begin Line 2101  begin
2101          // TBoard, TThreadItem のデストラクタはプラグインに破棄を伝えるので          // TBoard, TThreadItem のデストラクタはプラグインに破棄を伝えるので
2102          // BoardPluteIns の開放より先に行うこと          // BoardPluteIns の開放より先に行うこと
2103      for i := Length(BoardGroups) - 1 downto 0 do begin      for i := Length(BoardGroups) - 1 downto 0 do begin
2104          BoardGroups[i].Clear;                  //BoardGroups[i].Clear;
2105                    BoardGroups[i].Free;
2106      end;      end;
2107    
2108          try          try
# Line 2211  var Line 2199  var
2199          i                       : Integer;          i                       : Integer;
2200          tmpBool: Boolean;          tmpBool: Boolean;
2201  begin  begin
2202        LockWindowUpdate(Self.Handle);
2203    
2204          //タブクローズ          //タブクローズ
2205          tmpBool := GikoSys.Setting.ShowDialogForAllTabClose;          tmpBool := GikoSys.Setting.ShowDialogForAllTabClose;
2206          GikoSys.Setting.ShowDialogForAllTabClose := false;          GikoSys.Setting.ShowDialogForAllTabClose := false;
# Line 2233  begin Line 2223  begin
2223          end;          end;
2224    
2225          //履歴の保存と破棄          //履歴の保存と破棄
2226          SaveHistory;          try
2227          ClearHistory;                  SaveHistory;
2228                    ClearHistory;
2229            except
2230            end;
2231    
2232          //お気に入りの保存と破棄          //お気に入りの保存と破棄
2233          FavoriteDM.WriteFavorite;          try
2234          FavoriteDM.Clear;                  FavoriteDM.WriteFavorite;
2235                    FavoriteDM.Clear;
2236            except
2237            end;
2238    
2239            //板・スレ・PLUGINの破棄
2240            for i := Length(BoardGroups) - 1 downto 0 do begin
2241                    try
2242                            BoardGroups[i].Free;
2243                    except
2244                    end;
2245            end;
2246          //BBS破棄          //BBS破棄
2247          try          try
2248                  for i := Length( BBSs ) - 1 downto 0 do begin                  for i := Length( BBSs ) - 1 downto 0 do begin
# Line 2254  begin Line 2256  begin
2256          ActiveList := nil;          ActiveList := nil;
2257    
2258          FTreeType := gttNone;          FTreeType := gttNone;
2259          //GikoSys.FBoardURLList.Clear;  
2260          for i := Length(BoardGroups) - 1 downto 0 do begin          //============ここから下で、再生================================//
2261                  BoardGroups[i].Clear;  
2262          end;          // 外部板プラグインをロード(ReadBoardFile, LoadHistory より先に行うこと)
2263            InitializeBoardPlugIns;
2264    
2265          GikoSys.ListBoardFile;          //ボードファイル読込          GikoSys.ListBoardFile;          //ボードファイル読込
2266    
2267          // すべてのBBSを読み込んでおく          // すべてのBBSを読み込んでおく
# Line 2283  begin Line 2287  begin
2287          RoundList.LoadRoundBoardFile;          RoundList.LoadRoundBoardFile;
2288          RoundList.LoadRoundThreadFile;          RoundList.LoadRoundThreadFile;
2289    
2290            LockWindowUpdate(0);
2291          //          //
2292          TabsOpenAction.Execute;          TabsOpenAction.Execute;
2293  end;  end;
# Line 3343  end; Line 3348  end;
3348    
3349  procedure TGikoForm.AppFormDeactivate(Sender: TObject);  procedure TGikoForm.AppFormDeactivate(Sender: TObject);
3350  begin  begin
3351      Application.ProcessMessages;          Application.ProcessMessages;
3352          if Application.Terminated then          if not Application.Terminated then begin
3353                  Exit;                  if PreviewTimer.Enabled then
3354          if PreviewTimer.Enabled then                          PreviewTimer.Enabled := False;
3355                  PreviewTimer.Enabled := False;                  //フォーカスが他のアプリに変わったときにヒントを消去
3356          //フォーカスが他のアプリに変わったときにヒントを消去                  if FHint <> nil then begin
3357          if FHint <> nil then begin                          FHint.ReleaseHandle;
3358                  FHint.ReleaseHandle;                          FHint.ClearAllRes;
3359                  FHint.ClearAllRes;                  end;
3360            //プレビューを隠す
3361                    if FPreviewBrowser <> nil then
3362                            ShowWindow(FPreviewBrowser.Handle, SW_HIDE);
3363          end;          end;
         if FPreviewBrowser <> nil then  
                 ShowWindow(FPreviewBrowser.Handle, SW_HIDE);  
   
3364  end;  end;
3365    
3366  procedure TGikoForm.TreeViewCustomDraw(Sender: TCustomTreeView;  procedure TGikoForm.TreeViewCustomDraw(Sender: TCustomTreeView;
# Line 3847  var Line 3852  var
3852          BBSID: string;          BBSID: string;
3853          FileName: string;          FileName: string;
3854          sTitle: string;          sTitle: string;
 //      HtmlName: string;  
3855          doc:  Variant;          doc:  Variant;
3856          s: string;          s: string;
 //      OldCursor: TCursor;  
3857          i: Integer;          i: Integer;
3858          idx: Integer;          idx: Integer;
3859          ThreadItem: TThreadItem;          ThreadItem: TThreadItem;
3860          Thread: TBrowserRecord;          Thread: TBrowserRecord;
3861          ThreadTitle, ThreadPTitle: string;          ThreadTitle, ThreadPTitle: string;
         //ThreadScrollTop: Integer;  
3862          ThreadIsLog, {ThreadUnRead,} ThreadNewArraical: boolean;          ThreadIsLog, {ThreadUnRead,} ThreadNewArraical: boolean;
3863  begin  begin
 //      AddMessageList('SetContent', nil, gmiWhat);  
3864          Thread := inThread;          Thread := inThread;
3865          idx := BrowserTab.TabIndex;          idx := BrowserTab.TabIndex;
3866          if (FActiveContent <> nil) and          if (FActiveContent <> nil) and
# Line 3868  begin Line 3869  begin
3869                  try                  try
3870                  try                  try
3871                          Sleep(1);                          Sleep(1);
                         //Application.ProcessMessages;  
3872                          FActiveContent.Thread.ScrollTop := OleVariant(IHTMLDocument2(FActiveContent.Browser.Document).Body).ScrollTop;                          FActiveContent.Thread.ScrollTop := OleVariant(IHTMLDocument2(FActiveContent.Browser.Document).Body).ScrollTop;
                         //if FActiveContent.Browser <> BrowserNullTab.Browser then  
                         //      TOleControl(FActiveContent.Browser).Visible := false;  
3873                  except                  except
3874                          on E: Exception do                          on E: Exception do
3875                                  MsgBox(Handle, E.Message, 'SetContent[<-ScrollTop]', 0);                                  MsgBox(Handle, E.Message, 'SetContent[<-ScrollTop]', 0);
# Line 3903  begin Line 3901  begin
3901                  FBrowsers.Move(BROWSER_COUNT - 1, 0);                  FBrowsers.Move(BROWSER_COUNT - 1, 0);
3902          end;          end;
3903    
         //MoveWindow(Thread.FBrowser.Handle, 0, 0, BrowserPanel.Width, BrowserPanel.Height, false);  
           
3904          ThreadTitle := Thread.Thread.Title;          ThreadTitle := Thread.Thread.Title;
3905          ThreadPTitle := Thread.Thread.ParentBoard.Title;          ThreadPTitle := Thread.Thread.ParentBoard.Title;
3906          //ThreadScrollTop := Thread.Thread.ScrollTop;          //ThreadScrollTop := Thread.Thread.ScrollTop;
# Line 3922  begin Line 3918  begin
3918    
3919    
3920          try          try
                 {  
                 if ThreadItem.UnRead then begin  
                         ThreadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1;  
                         if ThreadItem.ParentBoard.UnRead < 0 then ThreadItem.ParentBoard.UnRead := 0;  
                         TreeView.Refresh;  
                 end;  
                 }  
   
3921                  if(FActiveContent <> nil) and (FActiveContent <> Thread) then begin                  if(FActiveContent <> nil) and (FActiveContent <> Thread) then begin
3922                          if (FActiveContent.Browser <> BrowserNullTab.Browser) then                          if (FActiveContent.Browser <> BrowserNullTab.Browser) then
3923                                  ShowWindow(FActiveContent.Browser.Handle, SW_HIDE);                                  ShowWindow(FActiveContent.Browser.Handle, SW_HIDE);
# Line 3938  begin Line 3926  begin
3926                  if (not Assigned(Thread.Browser.Document)) then begin                  if (not Assigned(Thread.Browser.Document)) then begin
3927                          Thread.Browser.Navigate('about:blank');                          Thread.Browser.Navigate('about:blank');
3928                  end;                  end;
3929                  FActiveContent := Thread;  
3930                  while (Thread.Browser.ReadyState <> READYSTATE_COMPLETE) and                  while (Thread.Browser.ReadyState <> READYSTATE_COMPLETE) and
3931                                  (Thread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin                                  (Thread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
3932                          Application.ProcessMessages;                          Application.ProcessMessages;
# Line 3946  begin Line 3934  begin
3934                                  Exit;                                  Exit;
3935                          end;                          end;
3936                  end;                  end;
3937    
3938                    //ActiveContent の更新
3939                    FActiveContent := Thread;
3940    
3941                  if not ThreadIsLog then begin                  if not ThreadIsLog then begin
3942                          Self.Caption := CAPTION_NAME ;                          Self.Caption := CAPTION_NAME ;
3943                          try                          try
# Line 3962  begin Line 3954  begin
3954                          //Thread.Repaintは、スキン等の設定を変更したとき、Threadをダウンロードしたとき                          //Thread.Repaintは、スキン等の設定を変更したとき、Threadをダウンロードしたとき
3955                          //新規にThreadを開いたときに真になっている。                          //新規にThreadを開いたときに真になっている。
3956                          if Thread.Repaint then begin                          if Thread.Repaint then begin
                                 //Thread.LastSize := ThreadItem.Size;  
3957                                  Thread.Repaint := false;                                  Thread.Repaint := false;
3958    
3959                                  Thread.Browser.OnStatusTextChange := nil;                                  Thread.Browser.OnStatusTextChange := nil;
# Line 3970  begin Line 3961  begin
3961    
3962                                  GikoSys.CreateHTML2(doc, ThreadItem, sTitle);                                  GikoSys.CreateHTML2(doc, ThreadItem, sTitle);
3963                                  Thread.Browser.OnStatusTextChange := BrowserStatusTextChange;                                  Thread.Browser.OnStatusTextChange := BrowserStatusTextChange;
3964                                  PostMessage( Handle, USER_DOCUMENTCOMPLETE, Integer( Thread.Browser ), 0 );                                  while (Thread.Browser.ReadyState <> READYSTATE_COMPLETE) and
3965                                                    (Thread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
3966                                            Application.ProcessMessages;
3967                                    end;
3968                                  if ThreadItem = nil then begin                                  if ThreadItem = nil then begin
3969                                          FActiveContent := nil;                                          FActiveContent := nil;
3970                                          BrowserTab.Repaint;                                          BrowserTab.Repaint;
3971                                          Exit;                                          Exit;
3972                                  end;                                  end;
3973                                    PostMessage( Handle, USER_DOCUMENTCOMPLETE, Integer( Thread.Browser ), 0 );
3974                          end;                          end;
                         ListView.Refresh;  
3975                  end;                  end;
3976                  if (Assigned(Thread)) and (Assigned(Thread.Thread)) and (Thread <> nil) and (ThreadItem <>nil) then begin                  if (Thread <> nil) and (ThreadItem <>nil) then begin
                         //FActiveContent := Thread;  
   
3977                          BrowserBoardNameLabel.Caption := ThreadPTitle;                          BrowserBoardNameLabel.Caption := ThreadPTitle;
3978                          ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap);                          ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap);
3979                          BrowserNameLabel.Caption := ThreadTitle;                          BrowserNameLabel.Caption := ThreadTitle;
# Line 3996  begin Line 3988  begin
3988    
3989                          ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8;                          ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8;
3990                          BrowserNameLabel.Left := ItemImage.Left + 20;                          BrowserNameLabel.Left := ItemImage.Left + 20;
3991    
3992                            //Threadの板と表示している板が同じなら描画を更新する
3993                            if (FActiveList is TBoard) and (TBoard(ActiveList) = ThreadItem.ParentBoard) then
3994                                    ListView.Refresh;
3995                  end else begin                  end else begin
3996                          FActiveContent := nil;                          FActiveContent := nil;
3997                  end;                  end;
# Line 4007  end; Line 4003  end;
4003  function TGikoForm.GetActiveContent: TThreadItem;  function TGikoForm.GetActiveContent: TThreadItem;
4004  begin  begin
4005          try          try
4006                  if( Assigned(FActiveContent) ) and (Assigned(FActiveContent.Thread))                  if FActiveContent <> nil then
                         and (FActiveContent <> nil) and (FActiveContent.Thread <> nil) then  
4007                          Result := FActiveContent.Thread                          Result := FActiveContent.Thread
4008                  else begin                  else
             FActiveContent := nil;  
4009                          Result := nil;                          Result := nil;
                 end;  
4010          except          except
                 FActiveContent := nil;  
4011                  Result := nil;                  Result := nil;
4012          end;          end;
4013    
4014  end;  end;
4015    
4016  procedure TGikoForm.SetActiveList(Obj: TObject);  procedure TGikoForm.SetActiveList(Obj: TObject);
# Line 4702  begin Line 4695  begin
4695                  end;                  end;
4696          mbLeft:          mbLeft:
4697                  begin                  begin
4698              //ここでDblClick拾わないと、Clickイベントが優先して起きてしまうので                          //ここでDblClick拾わないと、Clickイベントが優先して起きてしまうので
4699                          if (ssDouble in Shift) then                          if (ssDouble in Shift) then
4700                                  ListDoubleClick(Shift)                                  ListDoubleClick(Shift)
4701                          else                          else
# Line 4716  begin Line 4709  begin
4709                          ListPopupMenu.Popup( pos.X, pos.Y );                          ListPopupMenu.Popup( pos.X, pos.Y );
4710                  end;                  end;
4711          end;          end;
 {       if ssDouble in Shift then begin  
                 DoubleClickOccurred[Button] := True;  
         end else begin  
                 DoubleClickOccurred[Button] := False;  
                 t := GetTickCount+GetDoubleClickTime;  
                 while GetTickCount < t do begin  
                         Application.ProcessMessages;  
                         if DoubleClickOccurred[Button] then  
                                 Exit;  
                 end;  
         end;  
4712    
         if ssDouble in Shift then begin  
                 case Button of  
                         mbLeft: ListDoubleClick;  
 //                      mbMiddle: ;  
 //                      mbRight:        ;  
                 end;  
         end else begin  
                 case Button of  
                         mbLeft: ListClick;  
 //                      mbMiddle: ;  
 //                      mbRight:        ;  
                 end;  
         end;}  
4713  end;  end;
4714    
4715  procedure TGikoForm.ListClick;  procedure TGikoForm.ListClick;
# Line 4755  begin Line 4724  begin
4724    
4725          ThreadItem := TThreadItem(ListItem.Data);          ThreadItem := TThreadItem(ListItem.Data);
4726          if ThreadItem.IsLogFile then begin          if ThreadItem.IsLogFile then begin
 //              if AddHistory(ThreadItem) then  
 //              SetContent(ThreadItem);  
4727                  InsertBrowserTab(ThreadItem);                  InsertBrowserTab(ThreadItem);
4728                  ListView.UpdateItems(ListItem.Index, ListItem.Index);                  ListView.UpdateItems(ListItem.Index, ListItem.Index);
4729          end else begin          end else begin
 //              SetContent(ThreadItem);  
4730                  InsertBrowserTab(ThreadItem);                  InsertBrowserTab(ThreadItem);
4731          end;          end;
4732    
# Line 4781  procedure TGikoForm.ListDoubleClick(Shif Line 4747  procedure TGikoForm.ListDoubleClick(Shif
4747  var  var
4748          ThreadItem: TThreadItem;          ThreadItem: TThreadItem;
4749          shiftDown: Boolean;          shiftDown: Boolean;
         cNode : TTreeNode;  
         bNode : TTreeNode;  
4750  begin  begin
4751          shiftDown := (ssShift in Shift);          shiftDown := (ssShift in Shift);
4752    
# Line 4790  begin Line 4754  begin
4754    
4755          if TObject(ListView.Selected.Data) is TCategory then begin          if TObject(ListView.Selected.Data) is TCategory then begin
4756                  SelectTreeNode(ListView.Selected.Data, True);                  SelectTreeNode(ListView.Selected.Data, True);
 //              TreeView.Selected.Expanded := True;  
 //              TreeView.Selected.Item[ListView.Selected.Index].Selected := True;  
                 //TreeViewChange(nil, TreeView.Selected);  
4757          end else if TObject(ListView.Selected.Data) is TBoard then begin          end else if TObject(ListView.Selected.Data) is TBoard then begin
4758                  if TBoard(ListView.Selected.Data).Multiplicity = 0 then                  SelectTreeNode(ListView.Selected.Data, True)
                         SelectTreeNode(ListView.Selected.Data, True)  
                 else begin  
                         cNode := TreeView.Selected;  
                         if TObject(cNode.Data) is TCategory then begin  
                                 bNode := cNode.getFirstChild;  
                                 while bNode <> nil do begin  
                                         if TObject(bNode.Data) is TBoard then begin  
                                                 if TBoard(bNode.Data) = TBoard(ListView.Selected.Data) then begin  
                                                         bNode.Selected := true;  
                                                         TreeClick(bNode);  
                                                         break;  
                                                 end;  
                                         end;  
                                         bNode := bNode.getNextSibling;  
                                 end;  
                         end;  
                 end;  
 //              TreeView.Selected.Expanded := True;  
 //              TreeView.Selected.Item[ListView.Selected.Index].Selected := True;  
                 //TreeViewChange(nil, TreeView.Selected);  
4759          end else if TObject(ListView.Selected.Data) is TThreadItem then begin          end else if TObject(ListView.Selected.Data) is TThreadItem then begin
4760                  //if TObject(ListView.Selected.Data) is TThreadItem then begin                  Application.ProcessMessages;
4761                          Application.ProcessMessages;                  ThreadItem := TThreadItem(ListView.Selected.Data);
4762                          ThreadItem := TThreadItem(ListView.Selected.Data);                  DownloadContent(ThreadItem, shiftDown);
4763                          DownloadContent(ThreadItem, shiftDown);  
                 //end;  
                   
4764                  if GikoSys.Setting.BrowserAutoMaximize = gbmDoubleClick then begin                  if GikoSys.Setting.BrowserAutoMaximize = gbmDoubleClick then begin
4765                          if GikoSys.Setting.ListOrientation = gloHorizontal then begin                          if GikoSys.Setting.ListOrientation = gloHorizontal then begin
4766                                  if GikoSys.Setting.ListWidthState = glsMin then begin                                  if GikoSys.Setting.ListWidthState = glsMin then begin
 //                                      BrowserMaxAndFocusAction.Execute;  
4767                                          BrowserMaxAction.Execute;                                          BrowserMaxAction.Execute;
4768                                          SetFocusForBrowserAction.Execute;                                          SetFocusForBrowserAction.Execute;
4769                                  end;                                  end;
4770                          end else begin                          end else begin
4771                                  if GikoSys.Setting.ListHeightState = glsMin then begin                                  if GikoSys.Setting.ListHeightState = glsMin then begin
 //                                      BrowserMaxAndFocusAction.Execute;  
4772                                          BrowserMaxAction.Execute;                                          BrowserMaxAction.Execute;
4773                                          SetFocusForBrowserAction.Execute;                                          SetFocusForBrowserAction.Execute;
4774                                  end;                                  end;
# Line 4846  var Line 4783  var
4783          nm: OleVariant;          nm: OleVariant;
4784          activeBrower :TWebBrowser;          activeBrower :TWebBrowser;
4785  begin  begin
4786  //      OleVariant(Browser.Document).parentWindow.location.hash := AName;          //
   
4787          while (BrowserRecord.Browser.ReadyState <> READYSTATE_COMPLETE) and          while (BrowserRecord.Browser.ReadyState <> READYSTATE_COMPLETE) and
4788                                  (BrowserRecord.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin                                  (BrowserRecord.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
4789          Sleep(1);                  Sleep(1);
4790                  Application.ProcessMessages;                  Application.ProcessMessages;
4791          end;          end;
4792    
# Line 4879  var Line 4815  var
4815          nm: OleVariant;          nm: OleVariant;
4816          activeBrower :TWebBrowser;          activeBrower :TWebBrowser;
4817  begin  begin
 //      OleVariant(Browser.Document).parentWindow.location.hash := AName;  
         {  
         while (Browser.ReadyState <> READYSTATE_COMPLETE) and  
                                 (Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin  
                 Application.ProcessMessages;  
         end;  
         }  
4818          // Access Violation が起きる事があるので今後要チェック          // Access Violation が起きる事があるので今後要チェック
4819          if(BrowserTab.Tabs.Count > 0) and (BrowserTab.TabIndex >= 0) then begin          if(BrowserTab.Tabs.Count > 0) and (BrowserTab.TabIndex >= 0) then begin
4820                  activeBrower := FActiveContent.Browser;                  activeBrower := FActiveContent.Browser;
# Line 4923  end; Line 4852  end;
4852    
4853  procedure TGikoForm.SelectListItem(List: TList);  procedure TGikoForm.SelectListItem(List: TList);
4854  var  var
 //      TmpTreeNode: TTreeNode;  
4855          TmpListItem: TListItem;          TmpListItem: TListItem;
4856  begin  begin
4857          List.Clear;          List.Clear;
4858            List.Capacity := 0;
4859          TmpListItem := ListView.Selected;          TmpListItem := ListView.Selected;
4860          while TmpListItem <> nil do begin          while TmpListItem <> nil do begin
4861                  List.Add(TmpListItem.Data);                  List.Add(TmpListItem.Data);
4862                  TmpListItem := ListView.GetNextItem(TmpListItem, sdAll, [isSelected]);                  TmpListItem := ListView.GetNextItem(TmpListItem, sdAll, [isSelected]);
4863          end;          end;
4864        
4865  end;  end;
4866    
4867  procedure TGikoForm.ExitActionExecute(Sender: TObject);  procedure TGikoForm.ExitActionExecute(Sender: TObject);
# Line 4954  begin Line 4883  begin
4883                  Exit;                  Exit;
4884          GikoSys.Setting.StdToolBarVisible := StdToolBarVisibleAction.Checked;          GikoSys.Setting.StdToolBarVisible := StdToolBarVisibleAction.Checked;
4885          CoolBand.Visible := GikoSys.Setting.StdToolBarVisible;          CoolBand.Visible := GikoSys.Setting.StdToolBarVisible;
 //      StdToolBar.Visible := StdToolBarVisibleAction.Checked;  
 //      AnimePanel.Visible := StdToolBar.Visible or ListToolBar.Visible;  
   
         //StdToolBarVisibleAction.Checked := GikoSys.Setting.StdToolBarVisible;  
4886          StdToolBarVisiblePMenu.Checked := GikoSys.Setting.StdToolBarVisible;          StdToolBarVisiblePMenu.Checked := GikoSys.Setting.StdToolBarVisible;
4887  end;  end;
4888    
# Line 4970  begin Line 4895  begin
4895                  Exit;                  Exit;
4896          GikoSys.Setting.AddressBarVisible := AddressBarVisibleAction.Checked;          GikoSys.Setting.AddressBarVisible := AddressBarVisibleAction.Checked;
4897          CoolBand.Visible := GikoSys.Setting.AddressBarVisible;          CoolBand.Visible := GikoSys.Setting.AddressBarVisible;
         //AddressBarVisibleAction.Checked := GikoSys.Setting.AddressBarVisible;  
4898          AddressToolBarVisiblePMenu.Checked := GikoSys.Setting.AddressBarVisible;          AddressToolBarVisiblePMenu.Checked := GikoSys.Setting.AddressBarVisible;
4899  end;  end;
4900    
# Line 4983  begin Line 4907  begin
4907                  Exit;                  Exit;
4908          GikoSys.Setting.LinkBarVisible := LinkBarVisibleAction.Checked;          GikoSys.Setting.LinkBarVisible := LinkBarVisibleAction.Checked;
4909          CoolBand.Visible := GikoSys.Setting.LinkBarVisible;          CoolBand.Visible := GikoSys.Setting.LinkBarVisible;
4910                                  //LinkBarVisibleAction.Checked := GikoSys.Setting.LinkBarVisible;          LinkToolBarVisiblePMenu.Checked := GikoSys.Setting.LinkBarVisible;
                                 LinkToolBarVisiblePMenu.Checked := GikoSys.Setting.LinkBarVisible;  
4911  end;  end;
4912    
4913  procedure TGikoForm.ListToolBarVisibleActionExecute(Sender: TObject);  procedure TGikoForm.ListToolBarVisibleActionExecute(Sender: TObject);
# Line 4995  begin Line 4918  begin
4918          if CoolBand = nil then          if CoolBand = nil then
4919                  Exit;                  Exit;
4920          CoolBand.Visible := ListToolBarVisibleAction.Checked;          CoolBand.Visible := ListToolBarVisibleAction.Checked;
 //      ListToolBar.Visible := ListToolBarVisibleAction.Checked;  
 //      AnimePanel.Visible := StdToolBar.Visible or ListToolBar.Visible;  
4921          GikoSys.Setting.ListToolBarVisible := ListToolBarVisibleAction.Checked;          GikoSys.Setting.ListToolBarVisible := ListToolBarVisibleAction.Checked;
4922    
4923  end;  end;
4924    
4925  procedure TGikoForm.ListNameBarVisibleActionExecute(Sender: TObject);  procedure TGikoForm.ListNameBarVisibleActionExecute(Sender: TObject);
# Line 5019  begin Line 4941  begin
4941          if CoolBand = nil then          if CoolBand = nil then
4942                  Exit;                  Exit;
4943          CoolBand.Visible := BrowserToolBarVisibleAction.Checked;          CoolBand.Visible := BrowserToolBarVisibleAction.Checked;
 //      BrowserToolBar.Visible := BrowserToolBarVisibleAction.Checked;  
4944          GikoSys.Setting.BrowserToolBarVisible := BrowserToolBarVisibleAction.Checked;          GikoSys.Setting.BrowserToolBarVisible := BrowserToolBarVisibleAction.Checked;
4945  end;  end;
4946    
# Line 5102  begin Line 5023  begin
5023                  FSearchDialog.Show;                  FSearchDialog.Show;
5024          except          except
5025          end;          end;
5026            
5027  end;  end;
5028    
5029  procedure TGikoForm.OptionActionExecute(Sender: TObject);  procedure TGikoForm.OptionActionExecute(Sender: TObject);
# Line 5188  begin Line 5109  begin
5109                  // SelectComboBox の履歴を更新しておく                  // SelectComboBox の履歴を更新しておく
5110                  ModifySelectList;                  ModifySelectList;
5111                  // SelectComboBox の値をクリア                  // SelectComboBox の値をクリア
5112                  if SelectComboBox.Parent <> nil then begin                  if SelectComboBoxPanel.Visible then begin
5113                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;
5114                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
5115                          ListView.SetFocus;                          ListView.SetFocus;
# Line 5207  begin Line 5128  begin
5128                  // SelectComboBox の履歴を更新しておく                  // SelectComboBox の履歴を更新しておく
5129                  ModifySelectList;                  ModifySelectList;
5130                  // SelectComboBox の値をクリア                  // SelectComboBox の値をクリア
5131                  if SelectComboBox.Parent <> nil then begin                  if SelectComboBoxPanel.Visible  then begin
5132                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;
5133                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
5134                          ListView.SetFocus;                          ListView.SetFocus;
# Line 5227  begin Line 5148  begin
5148                  // SelectComboBox の履歴を更新しておく                  // SelectComboBox の履歴を更新しておく
5149                  ModifySelectList;                  ModifySelectList;
5150                  // SelectComboBox の値をクリア                  // SelectComboBox の値をクリア
5151                  if SelectComboBox.Parent <> nil then begin                  if SelectComboBoxPanel.Visible then begin
5152                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;
5153                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
5154                          ListView.SetFocus;                          ListView.SetFocus;
# Line 5242  var Line 5163  var
5163          Dlg: TListSelectDialog;          Dlg: TListSelectDialog;
5164  begin  begin
5165          try          try
5166                  if SelectComboBox.Parent <> nil then begin                  if SelectComboBoxPanel.Visible then begin
5167                          if SelectComboBox.Left + SelectComboBox.Width < ListToolBar.Width then begin                          if SelectComboBoxPanel.Left + SelectComboBoxPanel.Width < ListToolBar.Width then begin
5168                                  // SelectComboBox がある場合はフォーカスを移す                                  // SelectComboBox がある場合はフォーカスを移す
5169                                  if GikoSys.Setting.ListOrientation = gloHorizontal then begin                                  if GikoSys.Setting.ListOrientation = gloHorizontal then begin
5170                                          if GikoSys.Setting.ListWidthState = glsMax then                                          if GikoSys.Setting.ListWidthState = glsMax then
# Line 5653  begin Line 5574  begin
5574                  List.Free;                  List.Free;
5575          end;          end;
5576  end;  end;
5577    //ActiveListがTCategoyでスレ一覧で1つ以上選択かActiveListがTBoardで有効な
5578    //Actionで共通
5579  procedure TGikoForm.SelectListReloadActionUpdate(Sender: TObject);  procedure TGikoForm.SelectListReloadActionUpdate(Sender: TObject);
5580  begin  begin
5581          if (GetActiveList is TCategory) and (ListView.SelCount > 0) then  {$IFDEF ACTCHK}
5582                  SelectListReloadAction.Enabled := True          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
5583          else if GetActiveList is TBoard then          if (Sender <> nil) and (Sender is TAction) then begin
5584                  SelectListReloadAction.Enabled := True  {$ENDIF}
5585          else                  if (GetActiveList is TCategory) and (ListView.SelCount > 0) then
5586                  SelectListReloadAction.Enabled := False;                          TAction(Sender).Enabled := True
5587                    else if GetActiveList is TBoard then
5588                            TAction(Sender).Enabled := True
5589                    else
5590                            TAction(Sender).Enabled := False;
5591    {$IFDEF ACTCHK}
5592            end;
5593    {$ENDIF}
5594  end;  end;
5595    //ActiveListがTBoardでスレ一覧で1つ以上選択していると有効になるActionで共通
5596  procedure TGikoForm.SelectThreadReloadActionUpdate(Sender: TObject);  procedure TGikoForm.SelectThreadReloadActionUpdate(Sender: TObject);
5597  begin  begin
5598          if (GetActiveList is TBoard) and (ListView.SelCount > 0) then  {$IFDEF ACTCHK}
5599                  SelectThreadReloadAction.Enabled := True          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
5600          else          if (Sender <> nil) and (Sender is TAction) then begin
5601                  SelectThreadReloadAction.Enabled := False;  {$ENDIF}
5602  end;                  TAction(Sender).Enabled := (GetActiveList is TBoard) and (ListView.SelCount > 0);
5603    {$IFDEF ACTCHK}
5604  procedure TGikoForm.AllItemActionUpdate(Sender: TObject);          end;
5605  begin  {$ENDIF}
         AllItemAction.Enabled := (GetActiveList is TBoard);  
 end;  
   
 procedure TGikoForm.LogItemActionUpdate(Sender: TObject);  
 begin  
         LogItemAction.Enabled := (GetActiveList is TBoard);  
 end;  
   
 procedure TGikoForm.NewItemActionUpdate(Sender: TObject);  
 begin  
         NewItemAction.Enabled := (GetActiveList is TBoard);  
 end;  
   
 procedure TGikoForm.SelectItemActionUpdate(Sender: TObject);  
 begin  
         SelectItemAction.Enabled := (GetActiveList is TBoard);  
5606  end;  end;
5607    
5608  procedure TGikoForm.UpFolderActionUpdate(Sender: TObject);  procedure TGikoForm.UpFolderActionUpdate(Sender: TObject);
# Line 5697  begin Line 5610  begin
5610          UpFolderAction.Enabled := not (GetActiveList is TBBS);          UpFolderAction.Enabled := not (GetActiveList is TBBS);
5611  end;  end;
5612    
 procedure TGikoForm.ThreadEditorActionUpdate(Sender: TObject);  
 begin  
         ThreadEditorAction.Enabled := (GetActiveList is TBoard);  
 end;  
   
5613  procedure TGikoForm.FormResize(Sender: TObject);  procedure TGikoForm.FormResize(Sender: TObject);
5614  begin  begin
5615    
# Line 5726  begin Line 5634  begin
5634    
5635  end;  end;
5636    
 procedure TGikoForm.ScrollTopActionUpdate(Sender: TObject);  
 begin  
         ScrollTopAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
 procedure TGikoForm.ScrollLastActionUpdate(Sender: TObject);  
 begin  
         ScrollLastAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
 procedure TGikoForm.ScrollNewActionUpdate(Sender: TObject);  
 begin  
         ScrollNewAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
5637  procedure TGikoForm.ScrollKokoActionUpdate(Sender: TObject);  procedure TGikoForm.ScrollKokoActionUpdate(Sender: TObject);
5638  begin  begin
5639          ScrollKokoAction.Enabled := (GetActiveContent <> nil)          ScrollKokoAction.Enabled := (GetActiveContent <> nil)
# Line 5749  begin Line 5642  begin
5642    
5643  end;  end;
5644    
5645  procedure TGikoForm.EditorActionUpdate(Sender: TObject);  //ブラウザタブが1つ以上で有効になるActionで共通化
 begin  
         EditorAction.Enabled := GetActiveContent <> nil;  
 end;  
   
 procedure TGikoForm.IEActionUpdate(Sender: TObject);  
 begin  
         IEAction.Enabled := GetActiveContent <> nil;  
 end;  
   
 procedure TGikoForm.ShowThreadActionUpdate(Sender: TObject);  
 begin  
         ShowThreadAction.Enabled := GetActiveContent <> nil;  
 end;  
   
 procedure TGikoForm.ShowBoardActionUpdate(Sender: TObject);  
 begin  
         ShowBoardAction.Enabled := GetActiveContent <> nil;  
 end;  
   
 procedure TGikoForm.ItemReloadActionUpdate(Sender: TObject);  
 begin  
         ItemReloadAction.Enabled := GetActiveContent <> nil;  
 end;  
   
 procedure TGikoForm.URLCopyActionUpdate(Sender: TObject);  
 begin  
         URLCopyAction.Enabled := GetActiveContent <> nil;  
 end;  
   
 procedure TGikoForm.NameCopyActionUpdate(Sender: TObject);  
 begin  
         NameCopyAction.Enabled := GetActiveContent <> nil;  
 end;  
   
 procedure TGikoForm.NameURLCopyActionUpdate(Sender: TObject);  
 begin  
         NameURLCopyAction.Enabled := GetActiveContent <> nil;  
 end;  
   
 procedure TGikoForm.BrowserTabCloseActionUpdate(Sender: TObject);  
 begin  
         BrowserTabCloseAction.Enabled := (BrowserTab.Tabs.Count > 0);  
 end;  
   
 procedure TGikoForm.NotSelectTabCloseActionUpdate(Sender: TObject);  
 begin  
         NotSelectTabCloseAction.Enabled := (BrowserTab.Tabs.Count > 1);  
 end;  
   
5646  procedure TGikoForm.AllTabCloseActionUpdate(Sender: TObject);  procedure TGikoForm.AllTabCloseActionUpdate(Sender: TObject);
5647  begin  begin
5648          AllTabCloseAction.Enabled := (BrowserTab.Tabs.Count > 0);  {$IFDEF ACTCHK}
5649  end;          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
5650            if (Sender <> nil) and (Sender is TAction) then begin
5651  procedure TGikoForm.ActiveLogDeleteActionUpdate(Sender: TObject);  {$ENDIF}
5652  begin                  TAction(Sender).Enabled := (BrowserTab.Tabs.Count > 0);
5653          ActiveLogDeleteAction.Enabled := GetActiveContent <> nil;  {$IFDEF ACTCHK}
5654            end;
5655    {$ENDIF}
5656  end;  end;
5657    
5658  procedure TGikoForm.LogDeleteActionExecute(Sender: TObject);  procedure TGikoForm.LogDeleteActionExecute(Sender: TObject);
# Line 6007  end; Line 5853  end;
5853    
5854  function TGikoForm.Hook(var Message: TMessage): Boolean;  function TGikoForm.Hook(var Message: TMessage): Boolean;
5855  begin  begin
5856            //サブフォームがメインメニューを持たないときに、メインフォームの
5857            //メニューのショートカットキーがサブメニューから入力されるのを回避
5858          Result := False;          Result := False;
5859          case Message.Msg of          case Message.Msg of
5860          CM_APPKEYDOWN:          CM_APPKEYDOWN:
5861                  Result := True;                  Result := True;         //ショートカットキー無効
5862            CM_APPSYSCOMMAND:
5863                    Result := True;  // アクセラレータを無効にする
5864          end;          end;
5865  end;  end;
5866    
# Line 6135  begin Line 5985  begin
5985          end;          end;
5986  end;  end;
5987    
5988  procedure TGikoForm.BoardIEActionUpdate(Sender: TObject);  //ActiveListがTBoardかTCategoryでスレ一覧で1つ以上選択していると有効になるActionde共通
 begin  
         if GetActiveList is TBoard then  
                 BoardIEAction.Enabled := True  
         else  
                 BoardIEAction.Enabled := False;  
 end;  
   
 procedure TGikoForm.SelectItemURLCopyActionUpdate(Sender: TObject);  
 begin  
         if ((GetActiveList is TBoard) or (GetActiveList is TCategory))and (ListView.SelCount > 0) then  
                 SelectItemURLCopyAction.Enabled := True  
         else  
                 SelectItemURLCopyAction.Enabled := False;  
 end;  
   
5989  procedure TGikoForm.SelectItemNameCopyActionUpdate(Sender: TObject);  procedure TGikoForm.SelectItemNameCopyActionUpdate(Sender: TObject);
5990  begin  begin
5991          if ((GetActiveList is TBoard) or (GetActiveList is TCategory))and (ListView.SelCount > 0) then  {$IFDEF ACTCHK}
5992                  SelectItemNameCopyAction.Enabled := True          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
5993          else          if (Sender <> nil) and (Sender is TAction) then begin
5994                  SelectItemNameCopyAction.Enabled := False;  {$ENDIF}
5995  end;                  if ((GetActiveList is TBoard) or (GetActiveList is TCategory))and (ListView.SelCount > 0) then
5996                            TAction(Sender).Enabled := True
5997                    else
5998                            TAction(Sender).Enabled := False;
5999    {$IFDEF ACTCHK}
6000            end;
6001    {$ENDIF}
6002    
 procedure TGikoForm.SelectItemNameURLCopyActionUpdate(Sender: TObject);  
 begin  
         if ((GetActiveList is TBoard) or (GetActiveList is TCategory))and (ListView.SelCount > 0) then  
                 SelectItemNameURLCopyAction.Enabled := True  
         else  
                 SelectItemNameURLCopyAction.Enabled := False;  
6003  end;  end;
6004    
6005  procedure TGikoForm.AllSelectActionUpdate(Sender: TObject);  procedure TGikoForm.AllSelectActionUpdate(Sender: TObject);
6006  begin  begin
6007          if ListView.SelCount > 0 then          AllSelectAction.Enabled := ListView.SelCount > 0;
                 AllSelectAction.Enabled := True  
         else  
                 AllSelectAction.Enabled := False;  
 end;  
   
 procedure TGikoForm.LogDeleteActionUpdate(Sender: TObject);  
 begin  
         if (GetActiveList is TBoard) and (ListView.SelCount > 0) then  
                 LogDeleteAction.Enabled := True  
         else  
                 LogDeleteAction.Enabled := False;  
6008  end;  end;
6009    
6010  procedure TGikoForm.BrowserTabCloseActionExecute(Sender: TObject);  procedure TGikoForm.BrowserTabCloseActionExecute(Sender: TObject);
# Line 6777  begin Line 6601  begin
6601                                  FEvent.OnContextMenu := OnDocumentContextMenu;                                  FEvent.OnContextMenu := OnDocumentContextMenu;
6602                                  FEvent.OnClick := WebBrowserClick;  //追加したOnClickイベント                                  FEvent.OnClick := WebBrowserClick;  //追加したOnClickイベント
6603                          end;                          end;
6604                            
6605                  end;                  end;
6606    
6607                  if (BrowserRecord <> nil) and                  if (BrowserRecord <> nil) and
# Line 6874  procedure TGikoForm.SelectNewRoundNameEx Line 6699  procedure TGikoForm.SelectNewRoundNameEx
6699  var  var
6700          s: string;          s: string;
6701          Dlg: TRoundNameDialog;          Dlg: TRoundNameDialog;
6702          cnt: Integer;                  cnt: Integer;
6703    
6704  begin  begin
6705          //登録上限チェック          //呼び出し元が、TActionでListViewに選択がいなければ、EXITする
6706          cnt := RoundList.Count[grtBoard];          if (Sender is TAction) and (ListView.Selected = nil) then
6707          cnt := cnt + RoundList.Count[grtItem];                  Exit;
6708          if cnt > 500 then begin  
6709                  MsgBox(Handle, '巡回は500以上登録できません', 'エラー', MB_OK or MB_ICONSTOP);          //登録上限チェック
6710                  Exit;          cnt := RoundList.Count[grtBoard];
6711          end;          cnt := cnt + RoundList.Count[grtItem];
6712            if cnt > 500 then begin
6713                            MsgBox(Handle, '巡回は500以上登録できません', 'エラー', MB_OK or MB_ICONSTOP);
6714                            Exit;
6715            end;
6716    
6717          Dlg := TRoundNameDialog.Create(Self);          Dlg := TRoundNameDialog.Create(Self);
6718          try          try
6719                  Dlg.ShowModal;                  Dlg.ShowModal;
6720                  if Dlg.ModalResult <> mrCancel then begin                  if Dlg.ModalResult <> mrCancel then begin
6721                          s := Trim(Dlg.RoundNameEdit.Text);                          s := Trim(Dlg.RoundNameEdit.Text);
6722                          //RoundList.RoundNameList.Add(s);                          if (Sender is TMenuItem) then begin
6723                          SetSelectItemRound(True, s, TMenuItem(Sender).Parent.Name);                                  SetSelectItemRound(True, s, TMenuItem(Sender).Parent.Name);
6724              ListView.Refresh;                          end else if (Sender is TAction) then begin
6725                                    if (ListView.Selected <> nil) then begin
6726                                            if (TObject(ListView.Selected.Data) is TThreadItem) then begin
6727                                                    SetSelectItemRound(True, s,
6728                                                            TThreadItem(ListView.Selected.Data).Title);
6729                                            end else if (TObject(ListView.Selected.Data) is TBoard) then begin
6730                                                    SetSelectItemRound(True, s,
6731                                                            TBoard(ListView.Selected.Data).Title);
6732                                            end;
6733                                    end;
6734                            end;
6735                            ListView.Refresh;
6736                  end;                  end;
6737          finally          finally
6738                  Dlg.Free;                  Dlg.Free;
# Line 6901  end; Line 6741  end;
6741  procedure TGikoForm.SetSelectItemRound(RoundFlag: Boolean; RoundName: string; ParentName: string);  procedure TGikoForm.SetSelectItemRound(RoundFlag: Boolean; RoundName: string; ParentName: string);
6742  var  var
6743          threadItem : TThreadItem;          threadItem : TThreadItem;
6744  //      i: Integer;          i: Integer;
6745  begin  begin
6746          if ParentName <> 'dummy1' then begin          if ParentName <> 'dummy1' then begin
6747                  SetSelectItemRound(RoundFlag, RoundName);                  SetSelectItemRound(RoundFlag, RoundName);
# Line 6909  begin Line 6749  begin
6749                  threadItem := GetActiveContent;                  threadItem := GetActiveContent;
6750                  if threadItem <> nil then begin                  if threadItem <> nil then begin
6751                          threadItem.RoundName := RoundName;                          threadItem.RoundName := RoundName;
6752                          RoundList.RoundNameList.Add(RoundName);                          if RoundFlag then
6753                          //RoundList.RoundNameList.Find(RoundName, i);                                  RoundList.RoundNameList.Add(RoundName);
                         //threadItem.RoundName := PChar(RoundList.RoundNameList[i]);  
6754                          threadItem.Round := RoundFlag;                          threadItem.Round := RoundFlag;
6755                  end;                  end;
6756          end;          end;
# Line 6928  begin Line 6767  begin
6767                  for i := 0 to List.Count - 1 do begin                  for i := 0 to List.Count - 1 do begin
6768                          if TObject(List[i]) is TBoard then begin                          if TObject(List[i]) is TBoard then begin
6769                                  TBoard(List[i]).RoundName := RoundName;                                  TBoard(List[i]).RoundName := RoundName;
6770                                  RoundList.RoundNameList.Add(RoundName);                                  if RoundFlag then
6771                                  //RoundList.RoundNameList.Find(RoundName, idx);                                          RoundList.RoundNameList.Add(RoundName);
                                 //TBoard(List[i]).RoundName := PChar(RoundList.RoundNameList[idx]);  
6772                                  TBoard(List[i]).Round := RoundFlag;                                  TBoard(List[i]).Round := RoundFlag;
6773                          end else if TObject(List[i]) is TThreadItem then begin                          end else if TObject(List[i]) is TThreadItem then begin
6774                                  if TThreadItem(List[i]).IsLogFile then begin                                  if TThreadItem(List[i]).IsLogFile then begin
6775                                          TThreadItem(List[i]).RoundName := RoundName;                                          TThreadItem(List[i]).RoundName := RoundName;
6776                                          RoundList.RoundNameList.Add(RoundName);                                          if RoundFlag then
6777                                          //RoundList.RoundNameList.Find(RoundName, idx);                                                  RoundList.RoundNameList.Add(RoundName);
                                         //TThreadItem(List[i]).RoundName := PChar(RoundList.RoundNameList[idx]);  
6778                                          TThreadItem(List[i]).Round := RoundFlag;                                          TThreadItem(List[i]).Round := RoundFlag;
6779                                  end;                                  end;
6780                          end;                          end;
# Line 6948  begin Line 6785  begin
6785  end;  end;
6786    
6787  procedure TGikoForm.SelectDeleteRoundExecute(Sender: TObject);  procedure TGikoForm.SelectDeleteRoundExecute(Sender: TObject);
6788    var
6789            s : String;
6790  begin  begin
6791          SetSelectItemRound(False, '', TMenuItem(Sender).Parent.Name);          if (Sender is TMenuItem) then begin
6792                    try
6793                            SetSelectItemRound(False, '', TMenuItem(Sender).Parent.Name);
6794                    except
6795                    end;
6796            end else if (Sender is TAction) then begin
6797                    try
6798                            if ListView.Selected <> nil then begin
6799                                    if (TObject(ListView.Selected.Data) is TThreadItem) then begin
6800                                            s := TThreadItem(ListView.Selected.Data).Title;
6801                                    end else if (TObject(ListView.Selected.Data) is TBoard) then begin
6802                                            s := TBoard(ListView.Selected.Data).Title;
6803                                    end;
6804                                    SetSelectItemRound(False, '', s);
6805    
6806                            end;
6807                    except
6808                    end;
6809            end;
6810          ListView.Refresh;          ListView.Refresh;
6811  end;  end;
6812    
# Line 7080  begin Line 6937  begin
6937          try          try
6938                  if Dlg.ShowModal = mrOk then begin                  if Dlg.ShowModal = mrOk then begin
6939                          GikoSys.SaveKeySetting(ActionList);                          GikoSys.SaveKeySetting(ActionList);
6940                GikoSys.SaveEditorKeySetting(Dlg.EditorForm.ActionList);
6941                          GikoSys.Setting.Gestures.SaveGesture( GikoSys.Setting.GetGestureFileName );                          GikoSys.Setting.Gestures.SaveGesture( GikoSys.Setting.GetGestureFileName );
6942                  end;                  end;
6943                  GikoSys.SaveEditorKeySetting(Dlg.EditorForm.ActionList);  
6944          finally          finally
6945                  Dlg.Release;                  Dlg.Release;
6946                  MouseGesture.UnHook;                  MouseGesture.UnHook;
6947                  MouseGesture.OnGestureStart := OnGestureStart;                  MouseGesture.OnGestureStart := OnGestureStart;
6948                  MouseGesture.OnGestureMove := OnGestureMove;                  MouseGesture.OnGestureMove := OnGestureMove;
6949                  MouseGesture.OnGestureEnd := OnGestureEnd;                  MouseGesture.OnGestureEnd := OnGestureEnd;
6950                  if GikoSys.Setting.GestureEnabled then                  if GikoSys.Setting.GestureEnabled then begin
6951                            GikoSys.Setting.Gestures.ClearGesture;
6952                            GikoSys.Setting.Gestures.LoadGesture(
6953                                    GikoSys.Setting.GetGestureFileName, ActionList );
6954                          MouseGesture.SetHook( Handle );                          MouseGesture.SetHook( Handle );
6955                    end;
6956          end;          end;
6957  end;  end;
6958    
# Line 7237  end; Line 7099  end;
7099    
7100  procedure TGikoForm.SelectTextClearActionExecute(Sender: TObject);  procedure TGikoForm.SelectTextClearActionExecute(Sender: TObject);
7101  const  const
7102          DEL_MSG = '絞込み履歴を削除します。よろしいですか?';          DEL_MSG = '絞込み全履歴を削除します。よろしいですか?';
7103          DEL_TITLE = '削除確認';          DEL_TITLE = '削除確認';
7104  begin  begin
7105          if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then          if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
# Line 7253  procedure TGikoForm.NameTextClearActionE Line 7115  procedure TGikoForm.NameTextClearActionE
7115  var  var
7116          i: Integer;          i: Integer;
7117  const  const
7118          DEL_MSG = 'レスエディタ名前履歴を削除します。よろしいですか?';          DEL_MSG = 'レスエディタ名前全履歴を削除します。よろしいですか?';
7119          DEL_TITLE = '削除確認';          DEL_TITLE = '削除確認';
7120  begin  begin
7121          if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then          if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
# Line 7270  procedure TGikoForm.MailTextClearActionE Line 7132  procedure TGikoForm.MailTextClearActionE
7132  var  var
7133          i: Integer;          i: Integer;
7134  const  const
7135          DEL_MSG = 'レスエディタメール履歴を削除します。よろしいですか?';          DEL_MSG = 'レスエディタメール全履歴を削除します。よろしいですか?';
7136          DEL_TITLE = '削除確認';          DEL_TITLE = '削除確認';
7137  begin  begin
7138          if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then          if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
# Line 7325  begin Line 7187  begin
7187          end;          end;
7188  end;  end;
7189    
7190  procedure TGikoForm.LeftmostTabSelectActionUpdate(Sender: TObject);  //ブラウザタブが1つ以上で左端でないActionで共通
 begin  
         LeftmostTabSelectAction.Enabled := (BrowserTab.TabIndex <> 0) and (BrowserTab.Tabs.Count > 0);  
 end;  
   
7191  procedure TGikoForm.LeftTabSelectActionUpdate(Sender: TObject);  procedure TGikoForm.LeftTabSelectActionUpdate(Sender: TObject);
7192  begin  begin
7193          LeftTabSelectAction.Enabled := (BrowserTab.TabIndex <> 0) and (BrowserTab.Tabs.Count > 0);  {$IFDEF ACTCHK}
7194            //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
7195            if (Sender <> nil) and (Sender is TAction) then begin
7196    {$ENDIF}
7197                    TAction(Sender).Enabled := (BrowserTab.Tabs.Count > 0) and (BrowserTab.TabIndex <> 0);
7198    {$IFDEF ACTCHK}
7199            end;
7200    {$ENDIF}
7201  end;  end;
7202    //ブラウザタブが1つ以上で右端でないActionで共通
7203  procedure TGikoForm.RightTabSelectActionUpdate(Sender: TObject);  procedure TGikoForm.RightTabSelectActionUpdate(Sender: TObject);
7204  begin  begin
7205          RightTabSelectAction.Enabled := (BrowserTab.TabIndex <> BrowserTab.Tabs.Count - 1) and (BrowserTab.Tabs.Count > 0);  {$IFDEF ACTCHK}
7206  end;          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
7207            if (Sender <> nil) and (Sender is TAction) then begin
7208  procedure TGikoForm.RightmostTabSelectActionUpdate(Sender: TObject);  {$ENDIF}
7209  begin                  TAction(Sender).Enabled := (BrowserTab.Tabs.Count > 0) and (BrowserTab.TabIndex <> BrowserTab.Tabs.Count - 1);
7210          RightmostTabSelectAction.Enabled := (BrowserTab.TabIndex <> BrowserTab.Tabs.Count - 1) and (BrowserTab.Tabs.Count > 0);  {$IFDEF ACTCHK}
7211            end;
7212    {$ENDIF}
7213  end;  end;
7214    
7215  procedure TGikoForm.WMSettingChange(var Message: TWMWinIniChange);  procedure TGikoForm.WMSettingChange(var Message: TWMWinIniChange);
# Line 7531  begin Line 7398  begin
7398          end;          end;
7399  end;  end;
7400    
 procedure TGikoForm.FavoriteAddActionUpdate(Sender: TObject);  
 begin  
         FavoriteAddAction.Enabled := (GetActiveContent <> nil);  
 end;  
   
7401  procedure TGikoForm.BoardFavoriteAddActionExecute(Sender: TObject);  procedure TGikoForm.BoardFavoriteAddActionExecute(Sender: TObject);
7402  begin  begin
7403          if TObject(ListView.Selected.Data) is TBoard then          if TObject(ListView.Selected.Data) is TBoard then
# Line 7553  begin Line 7415  begin
7415                  ShowFavoriteAddDialog(TObject(ListView.Selected.Data));                  ShowFavoriteAddDialog(TObject(ListView.Selected.Data));
7416  end;  end;
7417    
 procedure TGikoForm.ThreadFavoriteAddActionUpdate(Sender: TObject);  
 begin  
         ThreadFavoriteAddAction.Enabled := (GetActiveList is TBoard) and (ListView.SelCount > 0);  
 end;  
   
7418  procedure TGikoForm.TreeSelectFavoriteAddActionExecute(Sender: TObject);  procedure TGikoForm.TreeSelectFavoriteAddActionExecute(Sender: TObject);
7419  begin  begin
7420          ShowFavoriteAddDialog(TObject(FClickNode.Data));          ShowFavoriteAddDialog(TObject(FClickNode.Data));
# Line 7900  var Line 7757  var
7757  //      KeyData: Integer;  //      KeyData: Integer;
7758  begin  begin
7759          Handled := False;          Handled := False;
7760          if AddressComboBox.Focused or SelectComboBox.Focused then begin          //アドレスもしくは絞り込みコンボボックスもしくはお気に入りが編集中は
7761            //ショートカットなどを無効にする
7762            if ((FavoriteTreeView.Visible) and (FavoriteTreeView.IsEditing)) then begin
7763                  if Msg.CharCode in [VK_BACK] then begin                  if Msg.CharCode in [VK_BACK] then begin
7764                          hComboEdit := GetFocus;                          hComboEdit := GetFocus;
7765                          if hComboEdit <> 0 then                          if hComboEdit <> 0 then
7766                                  SendMessage(hComboEdit, WM_CHAR, Msg.CharCode, Msg.KeyData);                                  SendMessage(hComboEdit, WM_CHAR, Msg.CharCode, Msg.KeyData);
7767  //                              SendMessage(hComboEdit, WM_CHAR, Msg.CharCode, $000E0001);                          Handled := True;
7768            //お気に入りはESCで脱出したいので、それも送る
7769                    end else if Msg.CharCode in [VK_INSERT, VK_DELETE, VK_HOME, VK_END, VK_PRIOR, VK_NEXT, VK_ESCAPE] then begin
7770                            hComboEdit := GetFocus;
7771                            if hComboEdit <> 0 then
7772                                    SendMessage(hComboEdit, WM_KEYDOWN, Msg.CharCode, Msg.KeyData);
7773                          Handled := True;                          Handled := True;
7774                  end;                  end;
7775                  if Msg.CharCode in [VK_INSERT, VK_DELETE, VK_HOME, VK_END, VK_PRIOR, VK_NEXT] then begin          end     else if (AddressComboBox.Focused) or (SelectComboBox.Focused) then begin
7776                    if Msg.CharCode in [VK_BACK] then begin
7777                            hComboEdit := GetFocus;
7778                            if hComboEdit <> 0 then
7779                                    SendMessage(hComboEdit, WM_CHAR, Msg.CharCode, Msg.KeyData);
7780                            Handled := True;
7781                    end else if Msg.CharCode in [VK_INSERT, VK_DELETE, VK_HOME, VK_END, VK_PRIOR, VK_NEXT] then begin
7782                          hComboEdit := GetFocus;                          hComboEdit := GetFocus;
7783                          if hComboEdit <> 0 then                          if hComboEdit <> 0 then
7784                                  SendMessage(hComboEdit, WM_KEYDOWN, Msg.CharCode, Msg.KeyData);                                  SendMessage(hComboEdit, WM_KEYDOWN, Msg.CharCode, Msg.KeyData);
# Line 8235  begin Line 8105  begin
8105                          else                          else
8106                                  Header := IntToStr(Line) + ' 名前: ' + Res.FName + ' [' + res.FMailTo + '] 投稿日: ' + Res.FDateTime;                                  Header := IntToStr(Line) + ' 名前: ' + Res.FName + ' [' + res.FMailTo + '] 投稿日: ' + Res.FDateTime;
8107    
8108                          Body := CustomStringReplace(Res.FBody, '<br> ', #10,true);                                                  Body := DeleteFontTag(Res.FBody);
8109                                                    Body := CustomStringReplace(Body, '<br> ', #10,true);
8110                          Body := CustomStringReplace(Body, '<br>', #10,true);                          Body := CustomStringReplace(Body, '<br>', #10,true);
8111                          Body := CustomStringReplace(Body, '</a>', '',true);                          Body := CustomStringReplace(Body, '</a>', '',true);
8112                          Body := GikoSys.DeleteLink(Body);                          Body := GikoSys.DeleteLink(Body);
# Line 8314  end; Line 8185  end;
8185    
8186  procedure TGikoForm.ToolButton18Click(Sender: TObject);  procedure TGikoForm.ToolButton18Click(Sender: TObject);
8187  const  const
8188          DEL_MSG = '履歴を削除します。よろしいですか?';          DEL_MSG = '全履歴を削除します。よろしいですか?';
8189          DEL_TITLE = '削除確認';          DEL_TITLE = '削除確認';
8190  begin  begin
8191          if FTreeType = gttHistory then begin          if FTreeType = gttHistory then begin
# Line 8485  begin Line 8356  begin
8356    
8357          LinkToolButton := TLinkToolButton( Sender );          LinkToolButton := TLinkToolButton( Sender );
8358          SenderNode := TreeNodeDataFind( FavoriteTreeView.Items.GetFirstNode, LinkToolButton.Data );          SenderNode := TreeNodeDataFind( FavoriteTreeView.Items.GetFirstNode, LinkToolButton.Data );
8359            SenderNode.Selected := False;
8360          FavoriteDragDrop( SenderNode, Source );          FavoriteDragDrop( SenderNode, Source );
8361    
8362            SetLinkBar;
8363    
8364  end;  end;
8365    
8366  procedure TGikoForm.LinkToolButtonOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);  procedure TGikoForm.LinkToolButtonOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
# Line 8704  begin Line 8577  begin
8577          if ToolBar.Width < bw then begin          if ToolBar.Width < bw then begin
8578                  w := 0;                  w := 0;
8579                  for i := 0 to ToolBar.ButtonCount - 1 do begin                  for i := 0 to ToolBar.ButtonCount - 1 do begin
8580                          w := w + ToolBar.Buttons[i].Width;                          if ToolBar.Buttons[i].Visible then
8581                                    w := w + ToolBar.Buttons[i].Width;
8582                          if ToolBar.Width <= w then begin                          if ToolBar.Width <= w then begin
8583                                  if ToolBar.Buttons[i].Tag = 0 then begin                                  if ToolBar.Buttons[i].Tag = 0 then begin
8584                                          Item := TMenuItem.Create(Self);                                          Item := TMenuItem.Create(Self);
8585                                          if ToolBar.Buttons[i].Style = tbsSeparator then                                          if ToolBar.Buttons[i].Style = tbsSeparator then
8586                                                  Item.Caption := '-'                                                  Item.Caption := '-'
8587                                          else begin                                          else begin
8588                                                  Item.Caption := ToolBar.Buttons[i].Caption;                                                  //スレ絞込みComBoxのTPanelを排除する
8589                                                  Item.Action := ToolBar.Buttons[i].Action;                                                  if TObject(ToolBar.Buttons[i]) is TPanel then begin
8590                                                            Continue;
8591                                                    end else begin
8592                                                            Item.Caption := ToolBar.Buttons[i].Caption;
8593                                                            Item.Action := ToolBar.Buttons[i].Action;
8594                                                    end;
8595                                                  //Item.Visible := True;                                                  //Item.Visible := True;
8596                                          end;                                          end;
8597                                          ChevronPopupMenu.Items.Add(Item);                                          ChevronPopupMenu.Items.Add(Item);
# Line 8923  var Line 8802  var
8802          Dlg: TToolBarSettingDialog;          Dlg: TToolBarSettingDialog;
8803          i: Integer;          i: Integer;
8804          //Component: TComponent;          //Component: TComponent;
8805            ToolButton : TToolButton;
8806  begin  begin
8807          Dlg := TToolBarSettingDialog.Create(Self, ActionList);          Dlg := TToolBarSettingDialog.Create(Self, ActionList);
8808          try          try
# Line 8951  begin Line 8831  begin
8831                                  BrowserCoolBar.Bands[i].MinWidth := BrowserCoolBar.Bands[i].MinWidth - 1;                                  BrowserCoolBar.Bands[i].MinWidth := BrowserCoolBar.Bands[i].MinWidth - 1;
8832                          end;                          end;
8833    
                         SelectComboBox.Visible := False;  
                         SelectComboBoxSplitter.Visible := False;  
   
8834                          SaveToolBarSetting(StdToolBar);                          SaveToolBarSetting(StdToolBar);
8835                          SaveToolBarSetting(ListToolBar);                          SaveToolBarSetting(ListToolBar);
8836                          for i := ListToolBar.ControlCount - 1 downto 0 do                          //ListToolBarにいるかもしれない絞込みComboBoxを配置
8837                          begin                          SelectComboBoxPanel.Visible := False;
8838                                  if ListToolBar.Controls[ i ].Action = SelectItemAction then                          try
8839                                    for i := ListToolBar.ControlCount - 1 downto 0 do
8840                                  begin                                  begin
8841                                          // スレッド絞込の隣にセパレータがある場合は隠す                                          if ListToolBar.Controls[ i ].Action = SelectItemAction then
8842                                          if (i + 1) < ListToolBar.ControlCount then                                          begin
8843                                                  if ListToolBar.Controls[ i + 1 ] is TToolButton then                                                  SelectComboBoxPanel.Left := ListToolBar.Controls[ i ].Left;
8844                                                          if TToolButton( ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then                                                  SelectComboBoxPanel.Width := GikoSys.Setting.SelectComboBoxWidth;
8845                                                                  ListToolBar.Controls[ i + 1 ].Visible := False;                                                  SelectComboBoxPanel.Parent := ListToolBar;
8846                                                    SelectComboBoxPanel.Visible := True;
8847                                          // スレッド絞込ボタンを隠す  
8848                                          ListToolBar.Controls[ i ].Visible := False;                                                  SelectComboBox.Left := 0;
8849                                          // スレッド絞込フィールドを挿入                                                  SelectComboBox.Top  := 0;
8850                                          SelectComboBox.Left := ListToolBar.Controls[ i ].Left;                                                  SelectComboBox.Height := SelectComboBoxPanel.ClientHeight;
8851                                          SelectComboBox.Width := GikoSys.Setting.SelectComboBoxWidth;                                                  SelectComboBox.Width := SelectComboBoxPanel.Width -
8852                                          SelectComboBox.Parent := ListToolBar;                                                                                                  SelectComboBoxSplitter.Width;
8853                                          SelectComboBox.Visible := True;  
8854                                          // スレッド絞込用独自セパレータを挿入  
8855                                          SelectComboBoxSplitter.Left := SelectComboBox.Left + SelectComboBox.Width;                                                  //一つ見えないボタンを突っ込む
8856                                          SelectComboBoxSplitter.Parent := ListToolBar;                                                  ToolButton := TToolButton(ListToolBar.FindComponent('SelectComboBoxDummy'));
8857                                          SelectComboBoxSplitter.Visible := True;                                                  if ToolButton <> nil then begin
8858                                          break;                                                          ToolButton.Parent := nil;
8859                                                    end else begin
8860                                                            ToolButton := TToolButton.Create(ListToolBar);
8861                                                            ToolButton.Name := 'SelectComboBoxDummy';
8862                                                    end;
8863    
8864                                                    ToolButton.Style := tbsSeparator;
8865                                                    ToolButton.Width := 0;
8866                                                    ToolButton.Left  := ListToolBar.Controls[ i ].Left;
8867                                                    ListToolBar.InsertControl(ToolButton);
8868                                                    ToolButton.Visible := False;
8869    
8870                                                    // スレッド絞込の隣にセパレータがある場合は隠す
8871                                                    if (i + 1) < ListToolBar.ControlCount then
8872                                                            if ListToolBar.Controls[ i + 1 ] is TToolButton then
8873                                                                    if TToolButton( ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then
8874                                                                            ListToolBar.Controls[ i + 1 ].Visible := False;
8875    
8876    
8877                                                    // スレッド絞込ボタンを隠す
8878                                                    ListToolBar.Controls[ i ].Visible := False;
8879    
8880                                                    break;
8881                                            end;
8882                                  end;                                  end;
8883                            except
8884                          end;                          end;
8885                          ResetBandInfo( ListCoolBar, ListToolBar );                          ResetBandInfo( ListCoolBar, ListToolBar );
8886                          SaveToolBarSetting(BrowserToolBar);                          SaveToolBarSetting(BrowserToolBar);
# Line 9170  var Line 9072  var
9072  begin  begin
9073    
9074          try          try
9075                  if SelectComboBox.Parent = nil then                  if not SelectComboBoxPanel.Visible then
9076                          exit;                          exit;
9077    
9078                  if Length( SelectComboBox.Text ) > 0 then                  if Length( SelectComboBox.Text ) > 0 then
# Line 9225  begin Line 9127  begin
9127                                  end;                                  end;
9128    
9129                                  try                                  try
9130                                          if SelectComboBox.Parent <> nil then                                          //if SelectComboBox.Parent <> nil then
9131                                            if SelectComboBoxPanel.Visible then
9132                                                  SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );                                                  SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
9133                                  except                                  except
9134                                  end;                                  end;
# Line 9254  begin Line 9157  begin
9157    
9158  end;  end;
9159    
 procedure TGikoForm.SelectResActionUpdate(Sender: TObject);  
 begin  
         SelectResAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
9160  // 全てのレスを表示  // 全てのレスを表示
9161  procedure TGikoForm.AllResActionExecute(Sender: TObject);  procedure TGikoForm.AllResActionExecute(Sender: TObject);
9162  var  var
# Line 9288  begin Line 9186  begin
9186          end;          end;
9187  end;  end;
9188    
 procedure TGikoForm.AllResActionUpdate(Sender: TObject);  
 begin  
 //      AllResAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
9189  procedure TGikoForm.ReloadClick(Sender: TObject);  procedure TGikoForm.ReloadClick(Sender: TObject);
9190  begin  begin
9191          if GikoSys.FAbon.ReLoadFromNGwordFile =false then begin          if GikoSys.FAbon.ReLoadFromNGwordFile =false then begin
# Line 9341  var Line 9234  var
9234          pos                             : TPoint;          pos                             : TPoint;
9235          w                                       : Integer;          w                                       : Integer;
9236  begin  begin
9237          If (SelectComboBox.Parent <> nil) and (IsDraggingSelectComboBox) Then begin          If (SelectComboBoxPanel.Visible) and (IsDraggingSelectComboBox) Then begin
9238                  pos.X := X;                  pos.X := X;
9239                  pos.Y := Y;                  pos.Y := Y;
9240                  pos := SelectComboBoxSplitter.ClientToScreen( pos );                  pos := SelectComboBoxSplitter.ClientToScreen( pos );
9241                  w := SelectComboBox.Width + (pos.X - DraggingSelectComboBoxPosition.X);                  //w := SelectComboBox.Width + (pos.X - DraggingSelectComboBoxPosition.X);
9242                    w := SelectComboBoxPanel.Width + (pos.X - DraggingSelectComboBoxPosition.X);
9243    
9244                  If w <= 50 Then Begin                  If w <= 50 Then Begin
9245                          // 次の移動の基準が「過ぎてしまった位置」ではなく                          // 次の移動の基準が「過ぎてしまった位置」ではなく
# Line 9357  begin Line 9251  begin
9251                  End;                  End;
9252    
9253                  // チラつき軽減の為                  // チラつき軽減の為
9254                  If SelectComboBox.Width <> w Then Begin                  //If SelectComboBox.Width <> w Then Begin
9255                          SelectComboBox.Width := w;                  If SelectComboBoxPanel.Width <> w Then Begin
9256                            SelectComboBoxPanel.Width := w;
9257                            SelectComboBox.Width := SelectComboBoxPanel.Width - SelectComboBoxSplitter.Width;
9258                          GikoSys.Setting.SelectComboBoxWidth := w;                          GikoSys.Setting.SelectComboBoxWidth := w;
9259                          DraggingSelectComboBoxPosition := pos;                          DraggingSelectComboBoxPosition := pos;
9260    
# Line 9621  begin Line 9517  begin
9517    
9518          end;          end;
9519    
9520          SetLinkBar;  
9521    
9522  end;  end;
9523    
# Line 9631  var Line 9527  var
9527          SenderNode: TTreeNode;          SenderNode: TTreeNode;
9528  begin  begin
9529    
9530    
9531          SenderNode := FavoriteTreeView.GetNodeAt(X, Y);          SenderNode := FavoriteTreeView.GetNodeAt(X, Y);
9532          if SenderNode <> nil then begin          if SenderNode <> nil then begin
9533                  FavoriteDragDrop( SenderNode, Source );                  FavoriteDragDrop( SenderNode, Source );
9534          end;          end;
9535    
9536            //空白項目がいたら削除する
9537          if FDropSpaceNode <> nil then begin          if FDropSpaceNode <> nil then begin
9538                  FDropSpaceNode.Free;                  try
9539                  FDropSpaceNode := nil;                          FDropSpaceNode.Delete;
9540                    finally
9541                            FDropSpaceNode := nil;
9542                    end;
9543          end;          end;
9544    
9545            SetLinkBar;
9546    
9547  end;  end;
9548    
9549  procedure TGikoForm.FavoriteTreeViewEdited(Sender: TObject;  procedure TGikoForm.FavoriteTreeViewEdited(Sender: TObject;
# Line 9675  begin Line 9578  begin
9578                  VK_SPACE:                  VK_SPACE:
9579                          FavoriteTreeViewDblClick( Sender );                          FavoriteTreeViewDblClick( Sender );
9580                  end;                  end;
9581            end else begin
9582                    //編集中にESCを押したら、編集を終了して、元の文字列に戻す
9583                    if Key = VK_ESCAPE then begin
9584                            if (TTreeView(Sender).Selected <> nil) then begin
9585                                    TTreeView(Sender).Selected.Text := FOrigenCaption;
9586                            end;
9587                            TTreeView(Sender).Selected.Focused := False;
9588                    end;
9589          end;          end;
9590    
9591  end;  end;
# Line 10131  begin Line 10042  begin
10042                          Break;                          Break;
10043                  end;                  end;
10044          end;          end;
10045            SenderNode.Selected := False;
10046            
10047          FavoriteDragDrop( SenderNode, Source );          FavoriteDragDrop( SenderNode, Source );
10048    
10049            SetLinkBar;
10050  end;  end;
10051    
10052  procedure TGikoForm.BrowserTabMouseUp(Sender: TObject;  procedure TGikoForm.BrowserTabMouseUp(Sender: TObject;
# Line 10182  procedure TGikoForm.FavoriteTreeViewEndD Line 10095  procedure TGikoForm.FavoriteTreeViewEndD
10095  begin  begin
10096    
10097          if FDropSpaceNode <> nil then begin          if FDropSpaceNode <> nil then begin
10098                  FDropSpaceNode.Free;                  try
10099                  FDropSpaceNode := nil;                          FDropSpaceNode.Delete;
10100                    finally
10101                            FDropSpaceNode := nil;
10102                    end;
10103                  SetLinkBar;                  SetLinkBar;
10104          end;          end;
10105    
# Line 10314  begin Line 10230  begin
10230    
10231  end;  end;
10232    
 procedure TGikoForm.UpBoardActionUpdate(Sender: TObject);  
 begin  
   
         UpBoardAction.Enabled := GetActiveContent <> nil;  
   
 end;  
   
10233  procedure TGikoForm.BrowserTabContextPopup(Sender: TObject;  procedure TGikoForm.BrowserTabContextPopup(Sender: TObject;
10234          MousePos: TPoint; var Handled: Boolean);          MousePos: TPoint; var Handled: Boolean);
10235  var  var
# Line 10766  begin Line 10675  begin
10675    
10676  end;  end;
10677    
 procedure TGikoForm.ResRangeActionUpdate(Sender: TObject);  
 begin  
 //      ResRangeAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
10678  function TGikoForm.WebBrowserClick(Sender: TObject): WordBool;  function TGikoForm.WebBrowserClick(Sender: TObject): WordBool;
10679  var  var
10680          p : TPoint;          p : TPoint;
# Line 10838  procedure TGikoForm.SetFocusForBrowserAc Line 10742  procedure TGikoForm.SetFocusForBrowserAc
10742  begin  begin
10743          FActiveContent.FBrowser.SetFocus;          FActiveContent.FBrowser.SetFocus;
10744  end;  end;
10745    //ブラウザがあって、NULLタブ用のなければ有効になるActionで共通
10746  procedure TGikoForm.SetFocusForBrowserActionUpdate(Sender: TObject);  procedure TGikoForm.SetFocusForBrowserActionUpdate(Sender: TObject);
10747  begin  begin
10748          if( FActiveContent <> nil) and (FActiveContent.Browser <> nil) and  {$IFDEF ACTCHK}
10749                  (FActiveContent.Browser <> BrowserNullTab.Browser) then          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
10750                  SetFocusForBrowserAction.Enabled := true          if (Sender <> nil) and (Sender is TAction) then begin
10751          else  {$ENDIF}
10752                  SetFocusForBrowserAction.Enabled := false;                  if( FActiveContent <> nil) and (FActiveContent.Browser <> nil) and
10753                            (FActiveContent.Browser <> BrowserNullTab.Browser) then
10754                            TAction(Sender).Enabled := true
10755                    else
10756                            TAction(Sender).Enabled := false;
10757    {$IFDEF ACTCHK}
10758            end;
10759    {$ENDIF}
10760  end;  end;
10761    
10762  procedure TGikoForm.SetFocusForThreadListActionExecute(Sender: TObject);  procedure TGikoForm.SetFocusForThreadListActionExecute(Sender: TObject);
 var  
         rct: TRect;  
10763  begin  begin
10764          if FActiveContent <> nil then          if FActiveContent <> nil then
10765                  WebBrowserClick(FActiveContent.Browser); //一回Browserに当てないと動かないときがある                  WebBrowserClick(FActiveContent.Browser); //一回Browserに当てないと動かないときがある
10766          ListView.SetFocus;          ListView.SetFocus;
10767    
10768          if( ListView.Items.Count > 0 ) and (ListView.ItemFocused = nil) then          if( ListView.Items.Count > 0 ) and (ListView.ItemFocused = nil) then
10769                  ListView.Items.Item[0].Selected := true //選択アイテムが無いときは先頭のを選択する                  ListView.Items.Item[0].Selected := true; //選択アイテムが無いときは先頭のを選択する
10770          else if ListView.Items.Count > 0 then begin  
10771                  ListView.Scroll(-ListView.ClientWidth, -ListView.ClientHeight);          //スクロールさせる
10772                  rct := ListView.ItemFocused.DisplayRect(drBounds);          if (ListView.ItemFocused <> nil) then begin
10773                  ListView.Scroll(0, 2 * rct.Top - rct.Bottom);                  ListView.ItemFocused.MakeVisible(False);
                 if ListView.ViewStyle <> vsReport then begin  
                         ListView.Scroll(rct.Left, 0);  
                 end;  
10774          end;          end;
10775  end;  end;
10776    
# Line 10893  begin Line 10800  begin
10800          SetFocusForBrowserAction.Execute;          SetFocusForBrowserAction.Execute;
10801  end;  end;
10802    
 procedure TGikoForm.BrowserMaxAndFocusActionUpdate(Sender: TObject);  
 begin  
         if( FActiveContent <> nil) and (FActiveContent.Browser <> nil) and  
                 (FActiveContent.Browser <> BrowserNullTab.Browser) then  
                 BrowserMaxAndFocusAction.Enabled := true  
         else  
                 BrowserMaxAndFocusAction.Enabled := false;  
 end;  
10803  //スレッド一覧を最大化してフォーカスを当てる  //スレッド一覧を最大化してフォーカスを当てる
10804  procedure TGikoForm.ThreadlistMaxAndFocusActionExecute(Sender: TObject);  procedure TGikoForm.ThreadlistMaxAndFocusActionExecute(Sender: TObject);
10805  begin  begin
# Line 10908  begin Line 10807  begin
10807          SetFocusForThreadListAction.Execute;          SetFocusForThreadListAction.Execute;
10808  end;  end;
10809    
 procedure TGikoForm.ListViewSelectItem(Sender: TObject; Item: TListItem;  
   Selected: Boolean);  
 begin  
   
         if not (GikoSys.Setting.BrowserTabVisible) and (Item <> nil) then  
                         if (TObject( Item.Data ) is TThreadItem) then begin  
                                 SelectTimer.Interval := GikoSys.Setting.SelectInterval;  
                         end else  
                                 SelectTimer.Interval := 0  
         else  
                 SelectTimer.Interval := 0;  
   
 end;  
   
10810  procedure TGikoForm.SelectTimerTimer(Sender: TObject);  procedure TGikoForm.SelectTimerTimer(Sender: TObject);
10811  begin  begin
10812            SelectTimer.Interval := 0;
10813          if not (ListView.Selected = nil) then          if not (ListView.Selected = nil) then
10814                  if( FActiveContent = nil) or                  if( FActiveContent = nil) or
10815                                  (GetActiveContent <> TThreadItem(ListView.Selected.Data) ) then begin                                  (GetActiveContent <> TThreadItem(ListView.Selected.Data) ) then begin
                         SelectTimer.Interval := 0;  
10816                          ListClick;                          ListClick;
10817                  end;                  end;
10818  end;  end;
# Line 10954  begin Line 10839  begin
10839                          for i := 0 to List.Count - 1 do begin                          for i := 0 to List.Count - 1 do begin
10840                                  if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin                                  if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
10841                                          FileSaveAs1.Dialog.FileName := TThreadItem(List[i]).FileName;                                          FileSaveAs1.Dialog.FileName := TThreadItem(List[i]).FileName;
10842                                          if FileSaveAs1.Execute then begin                                          if FileSaveAs1.Dialog.Execute then begin
10843                                                  //なぜかキャンセルでもこっちに入ってくる                                                  CopyFile(PChar(TThreadItem(List[i]).FilePath),
10844                                                  if ExtractFilePath(FileSaveAs1.Dialog.FileName) <> '' then begin                                                  PChar(FileSaveAs1.Dialog.FileName), true);
                                                         CopyFile(PChar(TThreadItem(List[i]).FilePath),  
                                                                 PChar(FileSaveAs1.Dialog.FileName), true);  
                                                 end;  
10845                                          end;                                          end;
10846                                  end;                                  end;
10847                          end;                          end;
# Line 10995  begin Line 10877  begin
10877                          for i := 0 to List.Count - 1 do begin                          for i := 0 to List.Count - 1 do begin
10878                                  if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin                                  if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
10879                                          FileSaveAs1.Dialog.FileName := ReplaseNoValidateChar(TThreadItem(List[i]).Title) + '.html';                                          FileSaveAs1.Dialog.FileName := ReplaseNoValidateChar(TThreadItem(List[i]).Title) + '.html';
10880                                          if FileSaveAs1.Execute then begin                                          if FileSaveAs1.Dialog.Execute then begin
10881                                                  //なぜかキャンセルでもこっちに入ってくる                                                  html := TStringList.Create;
10882                                                  if ExtractFilePath(FileSaveAs1.Dialog.FileName) <> '' then begin                                                  title := TThreadItem(List[i]).Title;
10883                                                          html := TStringList.Create;                                                  try
10884                                                          title := TThreadItem(List[i]).Title;                                                          GikoSys.CreateHTML3(html, TThreadItem(List[i]), title);
10885                                                          try                                                          html.SaveToFile(FileSaveAs1.Dialog.FileName);
10886                                                                  GikoSys.CreateHTML3(html, TThreadItem(List[i]), title);                                                          SkinorCSSFilesCopy(ExtractFilePath(FileSaveAs1.Dialog.FileName));
10887                                                                  html.SaveToFile(FileSaveAs1.Dialog.FileName);                                                  finally
10888                                                                  SkinorCSSFilesCopy(ExtractFilePath(FileSaveAs1.Dialog.FileName));                                                          html.Free;
                                                         finally  
                                                                 html.Free;  
                                                         end;  
10889                                                  end;                                                  end;
10890                                          end;                                          end;
10891                                  end;                                  end;
# Line 11151  begin Line 11030  begin
11030    
11031  end;  end;
11032    
 procedure TGikoForm.LogFolderOpenActionUpdate(Sender: TObject);  
 begin  
         if (GetActiveList is TCategory) and (ListView.SelCount > 0) then  
                 LogFolderOpenAction.Enabled := True  
         else if GetActiveList is TBoard then  
                 LogFolderOpenAction.Enabled := True  
         else  
                 LogFolderOpenAction.Enabled := False;  
 end;  
   
11033  function TGikoForm.GetTabURLs(AStringList: TStringList) : Boolean;  function TGikoForm.GetTabURLs(AStringList: TStringList) : Boolean;
11034  var  var
11035    rec : TBrowserRecord;    rec : TBrowserRecord;
# Line 11236  var Line 11105  var
11105          GikoTab                 : TGikoTabAppend;          GikoTab                 : TGikoTabAppend;
11106          fileName                : string;          fileName                : string;
11107  begin  begin
11108            if FStartUp then begin
11109                    //起動時にタブ自動復元を入れていると、空ページ用のBrowserの
11110                    //描画が終わっていなくて、クリックイベントの設定等に突入するので
11111                    //ここで終わらせておく
11112                    while (Browser.ReadyState <> READYSTATE_COMPLETE) and
11113                                    (Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
11114                            Application.ProcessMessages;
11115                    end;
11116            end;
11117    
11118          fileName := ExtractFilePath(Application.ExeName) + 'tab.sav';          fileName := ExtractFilePath(Application.ExeName) + 'tab.sav';
11119          URLs := TStringList.Create();          URLs := TStringList.Create();
# Line 11380  begin Line 11258  begin
11258    
11259  end;  end;
11260    
 procedure TGikoForm.BrowsBoradHeadActionUpdate(Sender: TObject);  
 begin  
         if (GetActiveList is TCategory) and (ListView.SelCount > 0) then  
                 BrowsBoradHeadAction.Enabled := True  
         else if GetActiveList is TBoard then  
                 BrowsBoradHeadAction.Enabled := True  
         else  
                 BrowsBoradHeadAction.Enabled := False;  
   
 end;  
11261  //NGワードファイルを編集するために開く  //NGワードファイルを編集するために開く
11262  procedure TGikoForm.EditNGActionExecute(Sender: TObject);  procedure TGikoForm.EditNGActionExecute(Sender: TObject);
11263  begin  begin
11264          GikoSys.FAbon.EditNGwords;          GikoSys.FAbon.EditNGwords;
11265  end;  end;
11266    
 procedure TGikoForm.ThreadRangeActionUpdate(Sender: TObject);  
 begin  
         ThreadRangeAction.Enabled := (GetActiveList is TBoard);  
 end;  
   
11267  procedure TGikoForm.ThreadRangeActionExecute(Sender: TObject);  procedure TGikoForm.ThreadRangeActionExecute(Sender: TObject);
11268  begin  begin
11269          case GikoSys.Setting.ThreadRange of          case GikoSys.Setting.ThreadRange of
# Line 11620  begin Line 11483  begin
11483          end;          end;
11484  end;  end;
11485    
 procedure TGikoForm.JumpToNumOfResActionUpdate(Sender: TObject);  
 begin  
         JumpToNumOfResAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
11486  procedure TGikoForm.FavoriteTreeViewCollapseActionExecute(Sender: TObject);  procedure TGikoForm.FavoriteTreeViewCollapseActionExecute(Sender: TObject);
11487  var  var
11488          node    : TTreeNode;          node    : TTreeNode;
# Line 11660  var Line 11518  var
11518          s: string;          s: string;
11519          Action: TAction;          Action: TAction;
11520          ActStr: string;          ActStr: string;
         Comp : TComponent;  
11521          P : TPoint;          P : TPoint;
11522  begin  begin
11523      //マウス位置の取得      //マウス位置の取得
11524      GetCursorPos(P);          GetCursorPos(P);
11525      //コンポーネント名取得      //コンポーネント名取得
11526      //ギコナビのフォーム外、もしくは、コンテキストメニュー上だとnilが返る          s := MouseGesture.GetGestureStr;
11527      Comp := FindDragTarget(P, True);          ActStr := '';
11528      if (Comp <> nil) then begin          Action := GikoSys.Setting.Gestures.GetGestureAction(s);
11529                  s := MouseGesture.GetGestureStr;          if Action <> nil then
11530                  ActStr := '';                  ActStr := '(' + Action.Caption + ')';
11531                  Action := GikoSys.Setting.Gestures.GetGestureAction(s);          s := 'ジェスチャー: ' + s + ActStr;
11532                  if Action <> nil then          StatusBar.Panels[1].Text := s;
                         ActStr := '(' + Action.Caption + ')';  
                 s := 'ジェスチャー: ' + s + ActStr;  
                 StatusBar.Panels[1].Text := s;  
     end;  
11533  end;  end;
11534    
11535  procedure TGikoForm.OnGestureEnd(Sender: TObject);  procedure TGikoForm.OnGestureEnd(Sender: TObject);
# Line 11705  procedure TGikoForm.ListViewCustomDrawIt Line 11558  procedure TGikoForm.ListViewCustomDrawIt
11558  var  var
11559          ThreadItem: TThreadItem;          ThreadItem: TThreadItem;
11560  begin  begin
11561      DefaultDraw := true;          DefaultDraw := true;
11562          if TObject(Item.Data) is TThreadItem then begin          if TObject(Item.Data) is TThreadItem then begin
11563                  ThreadItem := TThreadItem(Item.Data);                  ThreadItem := TThreadItem(Item.Data);
11564                  if ( FUseOddResOddColor ) and ( ThreadItem.Count <> 0 ) and ( ThreadItem.AllResCount <> ThreadItem.Count) then begin                  if ( FUseOddResOddColor ) and ( ThreadItem.Count <> 0 ) and ( ThreadItem.AllResCount <> ThreadItem.Count) then begin
11565                          ListView.Canvas.Brush.Color := FOddColor;                          ListView.Canvas.Brush.Color := FOddColor;
11566                            //選択されているけど、フォーカスがないと、グレイになるので、太字に変更
11567                            if (GikoSys.Setting.UnFocusedBold) and
11568                             (Item.Selected) and (not ListView.Focused) then begin
11569                                    ListView.Canvas.Font.Style := [fsBold];
11570                            end;
11571                  end else begin                  end else begin
11572                          ListView.Canvas.Brush.Color := FListViewBackGroundColor;                          ListView.Canvas.Brush.Color := FListViewBackGroundColor;
11573                  end;                  end;
11574  //              if (ThreadItem.Kokomade <> ThreadItem.Count) and (ThreadItem.IsLogFile) then  
11575                  if ThreadItem.UnRead then                  if ThreadItem.UnRead then
11576                          ListView.Canvas.Font.Style := [fsBold];                          ListView.Canvas.Font.Style := [fsBold];
11577          end;          end;
# Line 11722  end; Line 11580  end;
11580    
11581  procedure TGikoForm.FormActivate(Sender: TObject);  procedure TGikoForm.FormActivate(Sender: TObject);
11582  begin  begin
         MouseGesture.UnHook;  
11583          if GikoSys.Setting.GestureEnabled then begin          if GikoSys.Setting.GestureEnabled then begin
11584                    GikoSys.Setting.Gestures.ClearGesture;
11585                    GikoSys.Setting.Gestures.LoadGesture(
11586                            GikoSys.Setting.GetGestureFileName, ActionList );
11587                    MouseGesture.UnHook;
11588                  MouseGesture.OnGestureStart := OnGestureStart;                  MouseGesture.OnGestureStart := OnGestureStart;
11589                  MouseGesture.OnGestureMove := OnGestureMove;                  MouseGesture.OnGestureMove := OnGestureMove;
11590                  MouseGesture.OnGestureEnd := OnGestureEnd;                  MouseGesture.OnGestureEnd := OnGestureEnd;
11591                  MouseGesture.SetHook(Handle);                  MouseGesture.SetHook(Handle);
11592          end else begin          end else begin
11593                    //MouseGesture.UnHook;
11594                  MouseGesture.OnGestureStart := nil;                  MouseGesture.OnGestureStart := nil;
11595                  MouseGesture.OnGestureMove := nil;                  MouseGesture.OnGestureMove := nil;
11596                  MouseGesture.OnGestureEnd := nil;                  MouseGesture.OnGestureEnd := nil;
# Line 11858  begin Line 11720  begin
11720          end;          end;
11721          BrowserTab.Tabs.EndUpdate;          BrowserTab.Tabs.EndUpdate;
11722  end;  end;
11723    //ブラウザタブが2つ以上あれば有効になるアクションで共通化
11724  procedure TGikoForm.RightTabCloseActionUpdate(Sender: TObject);  procedure TGikoForm.RightTabCloseActionUpdate(Sender: TObject);
11725  begin  begin
11726          RightTabCloseAction.Enabled := (BrowserTab.Tabs.Count > 1);  {$IFDEF ACTCHK}
11727            //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
11728            if (Sender <> nil) and (Sender is TAction) then begin
11729    {$ENDIF}
11730                    TAction(Sender).Enabled := (BrowserTab.Tabs.Count > 1);
11731    {$IFDEF ACTCHK}
11732            end;
11733    {$ENDIF}
11734  end;  end;
11735    
11736  procedure TGikoForm.LeftTabCloseActionExecute(Sender: TObject);  procedure TGikoForm.LeftTabCloseActionExecute(Sender: TObject);
# Line 11881  begin Line 11750  begin
11750          BrowserTab.Tabs.EndUpdate;          BrowserTab.Tabs.EndUpdate;
11751  end;  end;
11752    
 procedure TGikoForm.LeftTabCloseActionUpdate(Sender: TObject);  
 begin  
         LeftTabCloseAction.Enabled := (BrowserTab.Tabs.Count > 1);  
 end;  
   
11753  procedure TGikoForm.SameIDResAnchorActionExecute(Sender: TObject);  procedure TGikoForm.SameIDResAnchorActionExecute(Sender: TObject);
11754  var  var
11755          ThreadItem : TThreadItem;          ThreadItem : TThreadItem;
# Line 12218  procedure TGikoForm.MessageListViewAdvan Line 12082  procedure TGikoForm.MessageListViewAdvan
12082    Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;    Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;
12083    Stage: TCustomDrawStage; var DefaultDraw: Boolean);    Stage: TCustomDrawStage; var DefaultDraw: Boolean);
12084  begin  begin
12085          //if DiffComp then begin                  //if DiffComp then begin
12086                   //if Odd(Item.Index) then Sender.Canvas.Brush.Color := clBlue;                   //if Odd(Item.Index) then Sender.Canvas.Brush.Color := clBlue;
12087                  //DiffComp := False;                                  //DiffComp := False;
12088  //        end;  //        end;
12089  end;  end;
12090    
# Line 12232  end; Line 12096  end;
12096  procedure TGikoForm.BeLogInOutActionUpdate(Sender: TObject);  procedure TGikoForm.BeLogInOutActionUpdate(Sender: TObject);
12097  begin  begin
12098          if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin          if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin
12099          if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true                  if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true
12100          else BeLogInOutAction.Checked := false;                  else BeLogInOutAction.Checked := false;
12101          BeLogInOutAction.Enabled := true                  BeLogInOutAction.Enabled := true
12102      end else          end else
12103          BeLogInOutAction.Enabled := false;                  BeLogInOutAction.Enabled := false;
12104    
12105  end;  end;
12106  //リンクの文字列からレスポップアップ用のURLに変換する  //リンクの文字列からレスポップアップ用のURLに変換する
# Line 12281  begin Line 12145  begin
12145      end;      end;
12146    
12147  end;  end;
12148    //ListViewの選択状態を解除する
12149    procedure TGikoForm.UnSelectedListViewActionExecute(Sender: TObject);
12150    begin
12151            if ListView.Selected <> nil then begin
12152                    ListView.Selected.Focused := True;
12153                    ListView.Selected := nil;
12154            end;
12155    end;
12156    
12157    procedure TGikoForm.ListViewKeyUp(Sender: TObject; var Key: Word;
12158      Shift: TShiftState);
12159    begin
12160            //ブラウザタブ無しで、キー移動で読み飛ばしを可能にするための
12161            //無効時間のTimerの処理
12162            //とりあえず、タイマーを停止する。
12163            SelectTimer.Interval := 0;
12164            if not (GikoSys.Setting.BrowserTabVisible) then begin
12165                    if (GetActiveList is TBoard) then begin
12166                            //Shift Alt Ctrlが話されたときは、方向キーを離していても無視
12167                            if not ((ssShift in Shift) or (ssAlt in Shift) or (ssCtrl in Shift))  and
12168                                    (( Key = VK_LEFT) or (Key = VK_RIGHT) or
12169                                                    (Key = VK_UP) or (Key = VK_DOWN)) then
12170                                            SelectTimer.Interval := GikoSys.Setting.SelectInterval;
12171                    end;
12172            end;
12173    end;
12174    //TActionでGetActiveContentがnil以外で有効になる
12175    procedure TGikoForm.DependActiveCntentActionUpdate(Sender: TObject);
12176    begin
12177    {$IFDEF ACTCHK}
12178            //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
12179            if (Sender <> nil) and (Sender is TAction) then begin
12180    {$ENDIF}
12181                    TAction(Sender).Enabled := (GetActiveContent <> nil);
12182    {$IFDEF ACTCHK}
12183            end;
12184    {$ENDIF}
12185    end;
12186    //TActionでGetActiveContentがnil以外かつログを持っている
12187    procedure TGikoForm.DependActiveCntentLogActionUpdate(Sender: TObject);
12188    begin
12189    {$IFDEF ACTCHK}
12190            //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
12191            if (Sender <> nil) and (Sender is TAction) then begin
12192    {$ENDIF}
12193                    TAction(Sender).Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);
12194    {$IFDEF ACTCHK}
12195            end;
12196    {$ENDIF}
12197    end;
12198    //TActionでActiveListがTBoardで有効になる
12199    procedure TGikoForm.DependActiveListTBoardActionUpdate(Sender: TObject);
12200    begin
12201    {$IFDEF ACTCHK}
12202            //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
12203            if (Sender <> nil) and (Sender is TAction) then begin
12204    {$ENDIF}
12205                    TAction(Sender).Enabled := (GetActiveList is TBoard);
12206    {$IFDEF ACTCHK}
12207            end;
12208    {$ENDIF}
12209    end;
12210    
12211    procedure TGikoForm.FavoriteTreeViewEditing(Sender: TObject;
12212      Node: TTreeNode; var AllowEdit: Boolean);
12213    begin
12214        //編集前の文字列を一時保存する
12215            FOrigenCaption := Node.Text;
12216    end;
12217    //例外処理されなかった例外を処理する
12218    procedure TGikoForm.AppException(Sender: TObject; E: Exception);
12219    var
12220            s : String;
12221    begin
12222            if (Sender <> nil) then begin
12223                    s := ' [' + Sender.ClassName + ']' + #13#10;
12224            end else begin
12225                    s := ' [ Sender is nil ] ' + #13#10;
12226            end;
12227            s := s + E.Message;
12228            MsgBox(Handle, s, '処理されなかった例外', MB_OK or MB_ICONSTOP);
12229    end;
12230    
12231    procedure TGikoForm.WikiFAQWebPageActionExecute(Sender: TObject);
12232    const
12233            URL_Wiki: string = 'http://gikowiki.dyndns.info/index.php?FAQ';
12234    begin
12235            GikoSys.OpenBrowser(URL_Wiki, gbtAuto);
12236    end;
12237    
12238  initialization  initialization
12239                                  OleInitialize(nil);                                  OleInitialize(nil);

Legend:
Removed from v.1.515  
changed lines
  Added in v.1.515.2.30

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26