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.28 by h677, Mon Aug 1 13:35:13 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                                  procedure FormCreate(Sender: TObject);                                  procedure FormCreate(Sender: TObject);
568                  procedure FormDestroy(Sender: TObject);                  procedure FormDestroy(Sender: TObject);
569                  procedure CabinetPanelHide(Sender: TObject);                  procedure CabinetPanelHide(Sender: TObject);
# Line 639  type Line 643  type
643                  procedure SelectListReloadActionExecute(Sender: TObject);                  procedure SelectListReloadActionExecute(Sender: TObject);
644                  procedure SelectThreadReloadActionExecute(Sender: TObject);                  procedure SelectThreadReloadActionExecute(Sender: TObject);
645                  procedure SelectListReloadActionUpdate(Sender: TObject);                  procedure SelectListReloadActionUpdate(Sender: TObject);
                 procedure AllItemActionUpdate(Sender: TObject);  
                 procedure LogItemActionUpdate(Sender: TObject);  
                 procedure NewItemActionUpdate(Sender: TObject);  
                 procedure SelectItemActionUpdate(Sender: TObject);  
646                  procedure UpFolderActionUpdate(Sender: TObject);                  procedure UpFolderActionUpdate(Sender: TObject);
647                  procedure FormResize(Sender: TObject);                  procedure FormResize(Sender: TObject);
                 procedure ScrollTopActionUpdate(Sender: TObject);  
                 procedure ScrollLastActionUpdate(Sender: TObject);  
                 procedure ScrollNewActionUpdate(Sender: TObject);  
648                  procedure ScrollKokoActionUpdate(Sender: TObject);                  procedure ScrollKokoActionUpdate(Sender: TObject);
                 procedure EditorActionUpdate(Sender: TObject);  
                 procedure IEActionUpdate(Sender: TObject);  
                 procedure ShowThreadActionUpdate(Sender: TObject);  
                 procedure ShowBoardActionUpdate(Sender: TObject);  
649                  procedure SelectThreadReloadActionUpdate(Sender: TObject);                  procedure SelectThreadReloadActionUpdate(Sender: TObject);
                 procedure ItemReloadActionUpdate(Sender: TObject);  
650                  procedure LogDeleteActionExecute(Sender: TObject);                  procedure LogDeleteActionExecute(Sender: TObject);
651                  procedure KokomadeActionExecute(Sender: TObject);                  procedure KokomadeActionExecute(Sender: TObject);
652                  procedure ZenbuActionExecute(Sender: TObject);                  procedure ZenbuActionExecute(Sender: TObject);
653                  procedure KokoResActionExecute(Sender: TObject);                  procedure KokoResActionExecute(Sender: TObject);
654                  procedure ListPopupMenuPopup(Sender: TObject);                  procedure ListPopupMenuPopup(Sender: TObject);
655                  procedure SelectItemURLCopyActionExecute(Sender: TObject);                  procedure SelectItemURLCopyActionExecute(Sender: TObject);
                 procedure SelectItemURLCopyActionUpdate(Sender: TObject);  
656                  procedure AllSelectActionUpdate(Sender: TObject);                  procedure AllSelectActionUpdate(Sender: TObject);
                 procedure LogDeleteActionUpdate(Sender: TObject);  
657                  procedure BrowserTabCloseActionExecute(Sender: TObject);                  procedure BrowserTabCloseActionExecute(Sender: TObject);
658                  procedure NotSelectTabCloseActionExecute(Sender: TObject);                  procedure NotSelectTabCloseActionExecute(Sender: TObject);
659                  procedure TreeSelectBoradReloadExecute(Sender: TObject);                  procedure TreeSelectBoradReloadExecute(Sender: TObject);
# Line 697  type Line 687  type
687                  procedure ArrangeActionExecute(Sender: TObject);                  procedure ArrangeActionExecute(Sender: TObject);
688                  procedure NameURLCopyActionExecute(Sender: TObject);                  procedure NameURLCopyActionExecute(Sender: TObject);
689                  procedure SelectItemNameURLCopyActionExecute(Sender: TObject);                  procedure SelectItemNameURLCopyActionExecute(Sender: TObject);
                 procedure URLCopyActionUpdate(Sender: TObject);  
                 procedure NameURLCopyActionUpdate(Sender: TObject);  
                 procedure BrowserTabCloseActionUpdate(Sender: TObject);  
                 procedure NotSelectTabCloseActionUpdate(Sender: TObject);  
690                  procedure AllTabCloseActionUpdate(Sender: TObject);                  procedure AllTabCloseActionUpdate(Sender: TObject);
                 procedure SelectItemNameURLCopyActionUpdate(Sender: TObject);  
691                  procedure ActiveLogDeleteActionExecute(Sender: TObject);                  procedure ActiveLogDeleteActionExecute(Sender: TObject);
                 procedure ActiveLogDeleteActionUpdate(Sender: TObject);  
692                  procedure ListNameBarVisibleActionExecute(Sender: TObject);                  procedure ListNameBarVisibleActionExecute(Sender: TObject);
693                  procedure BrowserNameBarVisibleActionExecute(Sender: TObject);                  procedure BrowserNameBarVisibleActionExecute(Sender: TObject);
694                  procedure TreeSelectNameURLCopyExecute(Sender: TObject);                  procedure TreeSelectNameURLCopyExecute(Sender: TObject);
# Line 719  type Line 703  type
703                  procedure LeftTabSelectActionExecute(Sender: TObject);                  procedure LeftTabSelectActionExecute(Sender: TObject);
704                  procedure RightTabSelectActionExecute(Sender: TObject);                  procedure RightTabSelectActionExecute(Sender: TObject);
705                  procedure RightmostTabSelectActionExecute(Sender: TObject);                  procedure RightmostTabSelectActionExecute(Sender: TObject);
                 procedure LeftmostTabSelectActionUpdate(Sender: TObject);  
706                  procedure LeftTabSelectActionUpdate(Sender: TObject);                  procedure LeftTabSelectActionUpdate(Sender: TObject);
707                  procedure RightTabSelectActionUpdate(Sender: TObject);                  procedure RightTabSelectActionUpdate(Sender: TObject);
                 procedure RightmostTabSelectActionUpdate(Sender: TObject);  
708                  procedure FavoriteMenuClick(Sender: TObject);                  procedure FavoriteMenuClick(Sender: TObject);
709                  procedure FavoriteAddActionExecute(Sender: TObject);                  procedure FavoriteAddActionExecute(Sender: TObject);
                 procedure FavoriteAddActionUpdate(Sender: TObject);  
710                  procedure BoardFavoriteAddActionExecute(Sender: TObject);                  procedure BoardFavoriteAddActionExecute(Sender: TObject);
711                  procedure BoardFavoriteAddActionUpdate(Sender: TObject);                  procedure BoardFavoriteAddActionUpdate(Sender: TObject);
712                  procedure ThreadFavoriteAddActionExecute(Sender: TObject);                  procedure ThreadFavoriteAddActionExecute(Sender: TObject);
                 procedure ThreadFavoriteAddActionUpdate(Sender: TObject);  
713                  procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);                  procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);
714                  procedure FavoriteArrangeActionExecute(Sender: TObject);                  procedure FavoriteArrangeActionExecute(Sender: TObject);
715                  procedure MainCoolBarResize(Sender: TObject);                  procedure MainCoolBarResize(Sender: TObject);
# Line 769  type Line 749  type
749                          RebarChevron: PNMRebarChevron);                          RebarChevron: PNMRebarChevron);
750                  procedure ListViewColumnInfo(Sender: TObject; var Column: PLVColumnA);                  procedure ListViewColumnInfo(Sender: TObject; var Column: PLVColumnA);
751                  procedure ThreadEditorActionExecute(Sender: TObject);                  procedure ThreadEditorActionExecute(Sender: TObject);
                 procedure ThreadEditorActionUpdate(Sender: TObject);  
752                  procedure ToolBarSettingActionExecute(Sender: TObject);                  procedure ToolBarSettingActionExecute(Sender: TObject);
753                  procedure NameCopyActionExecute(Sender: TObject);                  procedure NameCopyActionExecute(Sender: TObject);
754                  procedure BoardIEActionExecute(Sender: TObject);                  procedure BoardIEActionExecute(Sender: TObject);
755                  procedure SelectItemNameCopyActionExecute(Sender: TObject);                  procedure SelectItemNameCopyActionExecute(Sender: TObject);
756                  procedure SelectItemNameCopyActionUpdate(Sender: TObject);                  procedure SelectItemNameCopyActionUpdate(Sender: TObject);
                 procedure BoardIEActionUpdate(Sender: TObject);  
757                  procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;                  procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;
758                          WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);                          WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
                 procedure NameCopyActionUpdate(Sender: TObject);  
759                  procedure SelectComboBoxChange(Sender: TObject);                  procedure SelectComboBoxChange(Sender: TObject);
760                  procedure SelectComboBoxKeyDown(Sender: TObject; var Key: Word;                  procedure SelectComboBoxKeyDown(Sender: TObject; var Key: Word;
761                          Shift: TShiftState);                          Shift: TShiftState);
762                  procedure SelectComboBoxExit(Sender: TObject);                  procedure SelectComboBoxExit(Sender: TObject);
763                  procedure SelectResActionExecute(Sender: TObject);                  procedure SelectResActionExecute(Sender: TObject);
                 procedure SelectResActionUpdate(Sender: TObject);  
764                  procedure AllResActionExecute(Sender: TObject);                  procedure AllResActionExecute(Sender: TObject);
                 procedure AllResActionUpdate(Sender: TObject);  
765                  procedure ReloadClick(Sender: TObject);                  procedure ReloadClick(Sender: TObject);
766                  procedure GoBackClick(Sender: TObject);                  procedure GoBackClick(Sender: TObject);
767                  procedure GoFowardClick(Sender: TObject);                  procedure GoFowardClick(Sender: TObject);
# Line 839  type Line 814  type
814                  procedure FavoriteTreeViewBrowseThreadActionExecute(Sender: TObject);                  procedure FavoriteTreeViewBrowseThreadActionExecute(Sender: TObject);
815                  procedure FavoriteTreeBrowseBoardPopupMenuClick(Sender: TObject);                  procedure FavoriteTreeBrowseBoardPopupMenuClick(Sender: TObject);
816                  procedure UpBoardActionExecute(Sender: TObject);                  procedure UpBoardActionExecute(Sender: TObject);
                 procedure UpBoardActionUpdate(Sender: TObject);  
817      procedure BrowserTabContextPopup(Sender: TObject; MousePos: TPoint;      procedure BrowserTabContextPopup(Sender: TObject; MousePos: TPoint;
818        var Handled: Boolean);        var Handled: Boolean);
819      procedure KoreCopyExecute(Sender: TObject);      procedure KoreCopyExecute(Sender: TObject);
# Line 855  type Line 829  type
829      procedure TreeSelectNameCopyExecute(Sender: TObject);      procedure TreeSelectNameCopyExecute(Sender: TObject);
830      procedure FavoriteTreeViewMouseUp(Sender: TObject;      procedure FavoriteTreeViewMouseUp(Sender: TObject;
831        Button: TMouseButton; Shift: TShiftState; X, Y: Integer);        Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
     procedure ResRangeActionUpdate(Sender: TObject);  
832                  procedure SetFocusForBrowserActionExecute(Sender: TObject);                  procedure SetFocusForBrowserActionExecute(Sender: TObject);
833                  procedure SetFocusForBrowserActionUpdate(Sender: TObject);                  procedure SetFocusForBrowserActionUpdate(Sender: TObject);
834      procedure SetFocusForThreadListActionExecute(Sender: TObject);      procedure SetFocusForThreadListActionExecute(Sender: TObject);
835      procedure SetFocusForCabinetActionExecute(Sender: TObject);      procedure SetFocusForCabinetActionExecute(Sender: TObject);
836          procedure BrowserMaxAndFocusActionExecute(Sender: TObject);          procedure BrowserMaxAndFocusActionExecute(Sender: TObject);
837      procedure BrowserMaxAndFocusActionUpdate(Sender: TObject);          procedure ThreadlistMaxAndFocusActionExecute(Sender: TObject);
     procedure ThreadlistMaxAndFocusActionExecute(Sender: TObject);  
838      procedure SetFocusForCabinetActionUpdate(Sender: TObject);      procedure SetFocusForCabinetActionUpdate(Sender: TObject);
     procedure ListViewSelectItem(Sender: TObject; Item: TListItem;  
       Selected: Boolean);  
839      procedure SelectTimerTimer(Sender: TObject);      procedure SelectTimerTimer(Sender: TObject);
840      procedure SelectItemSaveForHTMLExecute(Sender: TObject);      procedure SelectItemSaveForHTMLExecute(Sender: TObject);
841          procedure KidokuActionExecute(Sender: TObject);          procedure KidokuActionExecute(Sender: TObject);
842      procedure MidokuActionExecute(Sender: TObject);      procedure MidokuActionExecute(Sender: TObject);
843      procedure SelectItemSaveForDatExecute(Sender: TObject);      procedure SelectItemSaveForDatExecute(Sender: TObject);
844      procedure LogFolderOpenActionExecute(Sender: TObject);      procedure LogFolderOpenActionExecute(Sender: TObject);
     procedure LogFolderOpenActionUpdate(Sender: TObject);  
845                  procedure TabsSaveActionExecute(Sender: TObject);                  procedure TabsSaveActionExecute(Sender: TObject);
846                  procedure TabsOpenActionExecute(Sender: TObject);                  procedure TabsOpenActionExecute(Sender: TObject);
847      procedure OnlyAHundredResActionExecute(Sender: TObject);      procedure OnlyAHundredResActionExecute(Sender: TObject);
848      procedure OnlyKokoResActionExecute(Sender: TObject);      procedure OnlyKokoResActionExecute(Sender: TObject);
849          procedure OnlyNewResActionExecute(Sender: TObject);          procedure OnlyNewResActionExecute(Sender: TObject);
850          procedure BrowsBoradHeadActionExecute(Sender: TObject);          procedure BrowsBoradHeadActionExecute(Sender: TObject);
851      procedure BrowsBoradHeadActionUpdate(Sender: TObject);          procedure EditNGActionExecute(Sender: TObject);
     procedure EditNGActionExecute(Sender: TObject);  
     procedure ThreadRangeActionUpdate(Sender: TObject);  
852      procedure ThreadRangeActionExecute(Sender: TObject);      procedure ThreadRangeActionExecute(Sender: TObject);
853                  procedure TabAutoSaveActionExecute(Sender: TObject);                  procedure TabAutoSaveActionExecute(Sender: TObject);
854      procedure TabAutoLoadActionExecute(Sender: TObject);      procedure TabAutoLoadActionExecute(Sender: TObject);
855                  procedure ListViewColumnRightClick(Sender: TObject;                  procedure ListViewColumnRightClick(Sender: TObject;
856        Column: TListColumn; Point: TPoint);        Column: TListColumn; Point: TPoint);
857      procedure JumpToNumOfResActionExecute(Sender: TObject);      procedure JumpToNumOfResActionExecute(Sender: TObject);
     procedure JumpToNumOfResActionUpdate(Sender: TObject);  
858      procedure FavoriteTreeViewCollapseActionExecute(Sender: TObject);      procedure FavoriteTreeViewCollapseActionExecute(Sender: TObject);
859          procedure ListViewCustomDrawItem(Sender: TCustomListView;          procedure ListViewCustomDrawItem(Sender: TCustomListView;
860        Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);        Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
# Line 900  type Line 866  type
866          procedure RightTabCloseActionExecute(Sender: TObject);          procedure RightTabCloseActionExecute(Sender: TObject);
867      procedure RightTabCloseActionUpdate(Sender: TObject);      procedure RightTabCloseActionUpdate(Sender: TObject);
868      procedure LeftTabCloseActionExecute(Sender: TObject);      procedure LeftTabCloseActionExecute(Sender: TObject);
     procedure LeftTabCloseActionUpdate(Sender: TObject);  
869      procedure SameIDResAnchorActionExecute(Sender: TObject);      procedure SameIDResAnchorActionExecute(Sender: TObject);
870      procedure IndividualAbon1ActionExecute(Sender: TObject);      procedure IndividualAbon1ActionExecute(Sender: TObject);
871      procedure IndividualAbon0ActionExecute(Sender: TObject);      procedure IndividualAbon0ActionExecute(Sender: TObject);
# Line 913  type Line 878  type
878      procedure SortActiveColumnActionExecute(Sender: TObject);      procedure SortActiveColumnActionExecute(Sender: TObject);
879      procedure SortNextColumnActionExecute(Sender: TObject);      procedure SortNextColumnActionExecute(Sender: TObject);
880      procedure SortPrevColumnActionExecute(Sender: TObject);      procedure SortPrevColumnActionExecute(Sender: TObject);
881      procedure MessageListViewAdvancedCustomDrawItem(          procedure MessageListViewAdvancedCustomDrawItem(
882        Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;            Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;
883        Stage: TCustomDrawStage; var DefaultDraw: Boolean);            Stage: TCustomDrawStage; var DefaultDraw: Boolean);
884      procedure BeLogInOutActionExecute(Sender: TObject);          procedure BeLogInOutActionExecute(Sender: TObject);
885          procedure BeLogInOutActionUpdate(Sender: TObject);          procedure BeLogInOutActionUpdate(Sender: TObject);
886            procedure UnSelectedListViewActionExecute(Sender: TObject);
887            procedure ListViewKeyUp(Sender: TObject; var Key: Word;
888              Shift: TShiftState);
889        procedure FavoriteTreeViewEditing(Sender: TObject; Node: TTreeNode;
890          var AllowEdit: Boolean);
891          private          private
892                  { Private 宣言 }                  { Private 宣言 }
         //RoundList : TRoundList;  
893                  FSortIndex: Integer;                  FSortIndex: Integer;
894                  FSortOrder: Boolean;                  FSortOrder: Boolean;
895    
# Line 941  type Line 910  type
910                  FListStyle: TViewStyle;                         //リストアイコンスタイル                  FListStyle: TViewStyle;                         //リストアイコンスタイル
911                  FItemNoVisible: Boolean;                        //リスト番号表示フラグ                  FItemNoVisible: Boolean;                        //リスト番号表示フラグ
912                  FViewType: TGikoViewType;                       //リストアイテム表示タイプ                  FViewType: TGikoViewType;                       //リストアイテム表示タイプ
913                  FActiveList: TObject;                  FActiveList: TObject;
914                  FActiveContent: TBrowserRecord; //                  FActiveContent: TBrowserRecord; //
915                  FActiveBBS : TBBS;                  FActiveBBS : TBBS;
916                  FHistoryList: TList;                                    //ヒストリリスト                  FHistoryList: TList;                                    //ヒストリリスト
# Line 983  type Line 952  type
952                  FResRangeMenuSelect     : Longint;                      ///< ResRangeButton で選択されている項目 (フォーマットは ResRange 互換)                  FResRangeMenuSelect     : Longint;                      ///< ResRangeButton で選択されている項目 (フォーマットは ResRange 互換)
953                  FStartUp : Boolean;                  FStartUp : Boolean;
954                  FIsHandledWheel : Boolean;                      ///< 既に受け取った WM_MOUSEWHEEL かどうか                  FIsHandledWheel : Boolean;                      ///< 既に受け取った WM_MOUSEWHEEL かどうか
955                  DiffComp: Boolean;                      //Add by Genyakun スレが更新されたときにTrueになる                                  DiffComp: Boolean;                      //Add by Genyakun スレが更新されたときにTrueになる
956                    FOrigenCaption: String;                         //お気に入りツリーのアイテム編集時の編集前の文字列                              
957                  procedure SetBoardTreeNode( inBBS : TBBS );                  procedure SetBoardTreeNode( inBBS : TBBS );
958                  function SetCategoryListItem(ABBS2ch: TBBS): Integer;                  function SetCategoryListItem(ABBS2ch: TBBS): Integer;
959                  function SetBoardListItem(Category: TCategory): Integer;                  function SetBoardListItem(Category: TCategory): Integer;
# Line 1002  type Line 972  type
972                  procedure BrowserMovement(const AName: string); overload;                  procedure BrowserMovement(const AName: string); overload;
973                  procedure BrowserMovement(const AName: string; BrowserRecord: TBrowserRecord); overload;                  procedure BrowserMovement(const AName: string; BrowserRecord: TBrowserRecord); overload;
974                  procedure SelectListItem(List: TList);                  procedure SelectListItem(List: TList);
 //              procedure SetProgressValue(Number: Integer; Value: Integer; Max: Integer = -1);  
975                  procedure DeleteTab(ThreadItem: TThreadItem); overload;                  procedure DeleteTab(ThreadItem: TThreadItem); overload;
976                  procedure DeleteTab(BrowserRecord: TBrowserRecord); overload;                  procedure DeleteTab(BrowserRecord: TBrowserRecord); overload;
977                  function Hook(var Message: TMessage): Boolean;                  function Hook(var Message: TMessage): Boolean;
# Line 1013  type Line 982  type
982                  function GetCoolBand(CoolBar: TCoolBar; Control: TWinControl): TCoolBand;                  function GetCoolBand(CoolBar: TCoolBar; Control: TWinControl): TCoolBand;
983    
984                  procedure SetMenuFont;                  procedure SetMenuFont;
 //              procedure CreateFavMenu(Folder: TFavoriteFolder);  
985                  procedure CreateFavMenu(Node: TTreeNode; MenuItem: TMenuItem);                  procedure CreateFavMenu(Node: TTreeNode; MenuItem: TMenuItem);
986                  procedure FavoriteClick(Sender: TObject; ActiveTab: Boolean); overload;                  procedure FavoriteClick(Sender: TObject; ActiveTab: Boolean); overload;
987                  procedure FavoriteClick(Sender: TObject); overload;                  procedure FavoriteClick(Sender: TObject); overload;
988                  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);
989                  procedure SelectTreeNode(Item: TObject; CallEvent: Boolean);                  procedure SelectTreeNode(Item: TObject; CallEvent: Boolean);
990                  function OnDocumentContextMenu(Sender: TObject): WordBool;                  function OnDocumentContextMenu(Sender: TObject): WordBool;
 //              function GetThreadText(sBoard: string; sThread: string; StNum, ToNum: Integer; Title, First: Boolean): string;  
991                  procedure SetResPopupText(ThreadItem : TThreadItem; StNum, ToNum: Integer; Title, First: Boolean);                  procedure SetResPopupText(ThreadItem : TThreadItem; StNum, ToNum: Integer; Title, First: Boolean);
992                  procedure ShowTextPopup;                  procedure ShowTextPopup;
                 //procedure ShowTextPopup(HintData: THintData);  
 //              procedure SetStdToolBar;  
 //              function GetAction(ActionName: string): TContainedAction;  
993                  procedure SetLinkBar;                  procedure SetLinkBar;
994                  function GetWidthAllToolButton(ToolBar: TToolBar): Integer;                  function GetWidthAllToolButton(ToolBar: TToolBar): Integer;
995                  procedure MenuBarChevronMenu;                  procedure MenuBarChevronMenu;
# Line 1096  type Line 1060  type
1060                  //ブラウザの再描画 true:全てのタブ false:アクティブなタブのみ                  //ブラウザの再描画 true:全てのタブ false:アクティブなタブのみ
1061                  procedure RepaintAllTabsBrowser();                  procedure RepaintAllTabsBrowser();
1062          //リンクの文字列からレスポップアップ用のURLに変換する          //リンクの文字列からレスポップアップ用のURLに変換する
1063          function GetRespopupURL(AText, AThreadURL : string): string;                  function GetRespopupURL(AText, AThreadURL : string): string;
1064          protected          protected
1065                  procedure CreateParams(var Params: TCreateParams); override;                  procedure CreateParams(var Params: TCreateParams); override;
1066                  procedure WndProc(var Message: TMessage); override;                  procedure WndProc(var Message: TMessage); override;
# Line 1167  type Line 1131  type
1131                  procedure IDAnchorPopup(Abody :string);                  procedure IDAnchorPopup(Abody :string);
1132          published          published
1133                  property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton;                  property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton;
1134                    //TActionでGetActiveContentがnil以外で有効になる
1135                    procedure DependActiveCntentActionUpdate(Sender: TObject);
1136                    //TActionでGetActiveContentがnil以外かつログを持っていると有効になる
1137                    procedure DependActiveCntentLogActionUpdate(Sender: TObject);
1138                    //TActionでActiveListがTBoardで有効になる
1139                    procedure DependActiveListTBoardActionUpdate(Sender: TObject);
1140                    //例外処理されなかった例外を処理する
1141                    procedure AppException(Sender: TObject; E: Exception);
1142          end;          end;
1143    
1144          TFavoriteMenuItem = class(TMenuItem)          TFavoriteMenuItem = class(TMenuItem)
# Line 1293  var Line 1265  var
1265          wp: TWindowPlacement;          wp: TWindowPlacement;
1266          s: string;          s: string;
1267          newbrowser: TWebBrowser;          newbrowser: TWebBrowser;
1268            ToolButton: TToolButton;
1269  begin  begin
1270  {$IFDEF DEBUG}  {$IFDEF DEBUG}
1271          AllocConsole;          AllocConsole;
# Line 1310  begin Line 1283  begin
1283          Application.OnDeactivate := AppFormDeactivate;          Application.OnDeactivate := AppFormDeactivate;
1284          //Self.OnDeactivate := AppFormDeactivate;          //Self.OnDeactivate := AppFormDeactivate;
1285          Application.HookMainWindow(Hook);          Application.HookMainWindow(Hook);
1286            Application.OnException :=      AppException;   //処理されない例外を補足
1287  //      Application.OnMessage := HandleAppMessage; //なんか無くても大丈夫になった by もじゅ  //      Application.OnMessage := HandleAppMessage; //なんか無くても大丈夫になった by もじゅ
1288          FIsIgnoreResize := rtResizing;          FIsIgnoreResize := rtResizing;
1289    
# Line 1336  begin Line 1310  begin
1310          BrowserNullTab.Browser.BringToFront;          BrowserNullTab.Browser.BringToFront;
1311          ShowWindow(BrowserNullTab.Browser.Handle, SW_SHOW);          ShowWindow(BrowserNullTab.Browser.Handle, SW_SHOW);
1312    
   
1313          //メニューフォント          //メニューフォント
1314          SetMenuFont;          SetMenuFont;
1315    
# Line 1579  begin Line 1552  begin
1552          ReadToolBarSetting(ActionList, BrowserToolBar);          ReadToolBarSetting(ActionList, BrowserToolBar);
1553          SetToolBarPopup;          SetToolBarPopup;
1554    
1555            //ListToolBarにいるかもしれない絞込みComboBoxを配置
1556            SelectComboBoxPanel.Visible := False;
1557            try
1558                    for i := ListToolBar.ControlCount - 1 downto 0 do
1559                    begin
1560                            if ListToolBar.Controls[ i ].Action = SelectItemAction then
1561                            begin
1562                                    SelectComboBoxPanel.Left := ListToolBar.Controls[ i ].Left;
1563                                    SelectComboBoxPanel.Width := GikoSys.Setting.SelectComboBoxWidth;
1564                                    SelectComboBoxPanel.Parent := ListToolBar;
1565                                    SelectComboBoxPanel.Visible := True;
1566    
1567                                    SelectComboBox.Left := 0;
1568                                    SelectComboBox.Top  := 0;
1569                                    SelectComboBox.Height := SelectComboBoxPanel.ClientHeight;
1570                                    SelectComboBox.Width := SelectComboBoxPanel.Width -
1571                                                                                    SelectComboBoxSplitter.Width;
1572    
1573                                    //一つ見えないボタンを突っ込む
1574                                    ToolButton := TToolButton.Create(ListToolBar);
1575                                    ToolButton.Name := 'SelectComboBoxDummy';
1576                                    ToolButton.Style := tbsSeparator;
1577                                    ToolButton.Width := 0;
1578                                    ToolButton.Left  := ListToolBar.Controls[ i ].Left;
1579                                    ListToolBar.InsertControl(ToolButton);
1580                                    ToolButton.Visible := False;
1581    
1582                                    // スレッド絞込の隣にセパレータがある場合は隠す
1583                                    if (i + 1) < ListToolBar.ControlCount then
1584                                            if ListToolBar.Controls[ i + 1 ] is TToolButton then
1585                                                    if TToolButton( ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then
1586                                                            ListToolBar.Controls[ i + 1 ].Visible := False;
1587    
1588    
1589                                    // スレッド絞込ボタンを隠す
1590                                    ListToolBar.Controls[ i ].Visible := False;
1591    
1592                                    break;
1593                            end;
1594                    end;
1595            except
1596            end;
1597    
1598    
1599          //アドレスバー          //アドレスバー
1600          AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop;          AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop;
# Line 1834  end; Line 1850  end;
1850  //  //
1851  //  //
1852  procedure TGikoForm.FormShow(Sender: TObject);  procedure TGikoForm.FormShow(Sender: TObject);
 var  
         i       :Integer;  
1853  begin  begin
1854          if FStartUp then begin          if FStartUp then begin
1855                  ShowWindow(Application.Handle, SW_HIDE);                  ShowWindow(Application.Handle, SW_HIDE);
# Line 1886  begin Line 1900  begin
1900                  // CoolBar 復元                  // CoolBar 復元
1901                  LoadCoolBarSettings;                  LoadCoolBarSettings;
1902    
                 //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;  
1903                  //重要 これがないとツールボタンの更新がおかしくなる                  //重要 これがないとツールボタンの更新がおかしくなる
1904                  ResetBandInfo( ListCoolBar, ListToolBar );  //              ResetBandInfo( ListCoolBar, ListToolBar );
   
1905                  FIsIgnoreResize := rtNone;                  FIsIgnoreResize := rtNone;
1906    
1907                  //TabAutoLoad                  //TabAutoLoad
# Line 2114  begin Line 2098  begin
2098          // TBoard, TThreadItem のデストラクタはプラグインに破棄を伝えるので          // TBoard, TThreadItem のデストラクタはプラグインに破棄を伝えるので
2099          // BoardPluteIns の開放より先に行うこと          // BoardPluteIns の開放より先に行うこと
2100      for i := Length(BoardGroups) - 1 downto 0 do begin      for i := Length(BoardGroups) - 1 downto 0 do begin
2101          BoardGroups[i].Clear;                  //BoardGroups[i].Clear;
2102                    BoardGroups[i].Free;
2103      end;      end;
2104    
2105          try          try
# Line 2211  var Line 2196  var
2196          i                       : Integer;          i                       : Integer;
2197          tmpBool: Boolean;          tmpBool: Boolean;
2198  begin  begin
2199        LockWindowUpdate(Self.Handle);
2200    
2201          //タブクローズ          //タブクローズ
2202          tmpBool := GikoSys.Setting.ShowDialogForAllTabClose;          tmpBool := GikoSys.Setting.ShowDialogForAllTabClose;
2203          GikoSys.Setting.ShowDialogForAllTabClose := false;          GikoSys.Setting.ShowDialogForAllTabClose := false;
# Line 2233  begin Line 2220  begin
2220          end;          end;
2221    
2222          //履歴の保存と破棄          //履歴の保存と破棄
2223          SaveHistory;          try
2224          ClearHistory;                  SaveHistory;
2225                    ClearHistory;
2226            except
2227            end;
2228    
2229          //お気に入りの保存と破棄          //お気に入りの保存と破棄
2230          FavoriteDM.WriteFavorite;          try
2231          FavoriteDM.Clear;                  FavoriteDM.WriteFavorite;
2232                    FavoriteDM.Clear;
2233            except
2234            end;
2235    
2236            //板・スレ・PLUGINの破棄
2237            for i := Length(BoardGroups) - 1 downto 0 do begin
2238                    try
2239                            BoardGroups[i].Free;
2240                    except
2241                    end;
2242            end;
2243          //BBS破棄          //BBS破棄
2244          try          try
2245                  for i := Length( BBSs ) - 1 downto 0 do begin                  for i := Length( BBSs ) - 1 downto 0 do begin
# Line 2254  begin Line 2253  begin
2253          ActiveList := nil;          ActiveList := nil;
2254    
2255          FTreeType := gttNone;          FTreeType := gttNone;
2256          //GikoSys.FBoardURLList.Clear;  
2257          for i := Length(BoardGroups) - 1 downto 0 do begin          //============ここから下で、再生================================//
2258                  BoardGroups[i].Clear;  
2259          end;          // 外部板プラグインをロード(ReadBoardFile, LoadHistory より先に行うこと)
2260            InitializeBoardPlugIns;
2261    
2262          GikoSys.ListBoardFile;          //ボードファイル読込          GikoSys.ListBoardFile;          //ボードファイル読込
2263    
2264          // すべてのBBSを読み込んでおく          // すべてのBBSを読み込んでおく
# Line 2283  begin Line 2284  begin
2284          RoundList.LoadRoundBoardFile;          RoundList.LoadRoundBoardFile;
2285          RoundList.LoadRoundThreadFile;          RoundList.LoadRoundThreadFile;
2286    
2287            LockWindowUpdate(0);
2288          //          //
2289          TabsOpenAction.Execute;          TabsOpenAction.Execute;
2290  end;  end;
# Line 3343  end; Line 3345  end;
3345    
3346  procedure TGikoForm.AppFormDeactivate(Sender: TObject);  procedure TGikoForm.AppFormDeactivate(Sender: TObject);
3347  begin  begin
3348      Application.ProcessMessages;          Application.ProcessMessages;
3349          if Application.Terminated then          if not Application.Terminated then begin
3350                  Exit;                  if PreviewTimer.Enabled then
3351          if PreviewTimer.Enabled then                          PreviewTimer.Enabled := False;
3352                  PreviewTimer.Enabled := False;                  //フォーカスが他のアプリに変わったときにヒントを消去
3353          //フォーカスが他のアプリに変わったときにヒントを消去                  if FHint <> nil then begin
3354          if FHint <> nil then begin                          FHint.ReleaseHandle;
3355                  FHint.ReleaseHandle;                          FHint.ClearAllRes;
3356                  FHint.ClearAllRes;                  end;
3357            //プレビューを隠す
3358                    if FPreviewBrowser <> nil then
3359                            ShowWindow(FPreviewBrowser.Handle, SW_HIDE);
3360          end;          end;
         if FPreviewBrowser <> nil then  
                 ShowWindow(FPreviewBrowser.Handle, SW_HIDE);  
   
3361  end;  end;
3362    
3363  procedure TGikoForm.TreeViewCustomDraw(Sender: TCustomTreeView;  procedure TGikoForm.TreeViewCustomDraw(Sender: TCustomTreeView;
# Line 3847  var Line 3849  var
3849          BBSID: string;          BBSID: string;
3850          FileName: string;          FileName: string;
3851          sTitle: string;          sTitle: string;
 //      HtmlName: string;  
3852          doc:  Variant;          doc:  Variant;
3853          s: string;          s: string;
 //      OldCursor: TCursor;  
3854          i: Integer;          i: Integer;
3855          idx: Integer;          idx: Integer;
3856          ThreadItem: TThreadItem;          ThreadItem: TThreadItem;
3857          Thread: TBrowserRecord;          Thread: TBrowserRecord;
3858          ThreadTitle, ThreadPTitle: string;          ThreadTitle, ThreadPTitle: string;
         //ThreadScrollTop: Integer;  
3859          ThreadIsLog, {ThreadUnRead,} ThreadNewArraical: boolean;          ThreadIsLog, {ThreadUnRead,} ThreadNewArraical: boolean;
3860  begin  begin
 //      AddMessageList('SetContent', nil, gmiWhat);  
3861          Thread := inThread;          Thread := inThread;
3862          idx := BrowserTab.TabIndex;          idx := BrowserTab.TabIndex;
3863          if (FActiveContent <> nil) and          if (FActiveContent <> nil) and
# Line 3868  begin Line 3866  begin
3866                  try                  try
3867                  try                  try
3868                          Sleep(1);                          Sleep(1);
                         //Application.ProcessMessages;  
3869                          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;  
3870                  except                  except
3871                          on E: Exception do                          on E: Exception do
3872                                  MsgBox(Handle, E.Message, 'SetContent[<-ScrollTop]', 0);                                  MsgBox(Handle, E.Message, 'SetContent[<-ScrollTop]', 0);
# Line 3903  begin Line 3898  begin
3898                  FBrowsers.Move(BROWSER_COUNT - 1, 0);                  FBrowsers.Move(BROWSER_COUNT - 1, 0);
3899          end;          end;
3900    
         //MoveWindow(Thread.FBrowser.Handle, 0, 0, BrowserPanel.Width, BrowserPanel.Height, false);  
           
3901          ThreadTitle := Thread.Thread.Title;          ThreadTitle := Thread.Thread.Title;
3902          ThreadPTitle := Thread.Thread.ParentBoard.Title;          ThreadPTitle := Thread.Thread.ParentBoard.Title;
3903          //ThreadScrollTop := Thread.Thread.ScrollTop;          //ThreadScrollTop := Thread.Thread.ScrollTop;
# Line 3922  begin Line 3915  begin
3915    
3916    
3917          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;  
                 }  
   
3918                  if(FActiveContent <> nil) and (FActiveContent <> Thread) then begin                  if(FActiveContent <> nil) and (FActiveContent <> Thread) then begin
3919                          if (FActiveContent.Browser <> BrowserNullTab.Browser) then                          if (FActiveContent.Browser <> BrowserNullTab.Browser) then
3920                                  ShowWindow(FActiveContent.Browser.Handle, SW_HIDE);                                  ShowWindow(FActiveContent.Browser.Handle, SW_HIDE);
# Line 3938  begin Line 3923  begin
3923                  if (not Assigned(Thread.Browser.Document)) then begin                  if (not Assigned(Thread.Browser.Document)) then begin
3924                          Thread.Browser.Navigate('about:blank');                          Thread.Browser.Navigate('about:blank');
3925                  end;                  end;
3926                  FActiveContent := Thread;  
3927                  while (Thread.Browser.ReadyState <> READYSTATE_COMPLETE) and                  while (Thread.Browser.ReadyState <> READYSTATE_COMPLETE) and
3928                                  (Thread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin                                  (Thread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
3929                          Application.ProcessMessages;                          Application.ProcessMessages;
# Line 3946  begin Line 3931  begin
3931                                  Exit;                                  Exit;
3932                          end;                          end;
3933                  end;                  end;
3934    
3935                    //ActiveContent の更新
3936                    FActiveContent := Thread;
3937    
3938                  if not ThreadIsLog then begin                  if not ThreadIsLog then begin
3939                          Self.Caption := CAPTION_NAME ;                          Self.Caption := CAPTION_NAME ;
3940                          try                          try
# Line 3962  begin Line 3951  begin
3951                          //Thread.Repaintは、スキン等の設定を変更したとき、Threadをダウンロードしたとき                          //Thread.Repaintは、スキン等の設定を変更したとき、Threadをダウンロードしたとき
3952                          //新規にThreadを開いたときに真になっている。                          //新規にThreadを開いたときに真になっている。
3953                          if Thread.Repaint then begin                          if Thread.Repaint then begin
                                 //Thread.LastSize := ThreadItem.Size;  
3954                                  Thread.Repaint := false;                                  Thread.Repaint := false;
3955    
3956                                  Thread.Browser.OnStatusTextChange := nil;                                  Thread.Browser.OnStatusTextChange := nil;
# Line 3970  begin Line 3958  begin
3958    
3959                                  GikoSys.CreateHTML2(doc, ThreadItem, sTitle);                                  GikoSys.CreateHTML2(doc, ThreadItem, sTitle);
3960                                  Thread.Browser.OnStatusTextChange := BrowserStatusTextChange;                                  Thread.Browser.OnStatusTextChange := BrowserStatusTextChange;
3961                                  PostMessage( Handle, USER_DOCUMENTCOMPLETE, Integer( Thread.Browser ), 0 );                                  while (Thread.Browser.ReadyState <> READYSTATE_COMPLETE) and
3962                                                    (Thread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
3963                                            Application.ProcessMessages;
3964                                    end;
3965                                  if ThreadItem = nil then begin                                  if ThreadItem = nil then begin
3966                                          FActiveContent := nil;                                          FActiveContent := nil;
3967                                          BrowserTab.Repaint;                                          BrowserTab.Repaint;
3968                                          Exit;                                          Exit;
3969                                  end;                                  end;
3970                                    PostMessage( Handle, USER_DOCUMENTCOMPLETE, Integer( Thread.Browser ), 0 );
3971                          end;                          end;
                         ListView.Refresh;  
3972                  end;                  end;
3973                  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;  
   
3974                          BrowserBoardNameLabel.Caption := ThreadPTitle;                          BrowserBoardNameLabel.Caption := ThreadPTitle;
3975                          ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap);                          ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap);
3976                          BrowserNameLabel.Caption := ThreadTitle;                          BrowserNameLabel.Caption := ThreadTitle;
# Line 3996  begin Line 3985  begin
3985    
3986                          ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8;                          ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8;
3987                          BrowserNameLabel.Left := ItemImage.Left + 20;                          BrowserNameLabel.Left := ItemImage.Left + 20;
3988    
3989                            //Threadの板と表示している板が同じなら描画を更新する
3990                            if (FActiveList is TBoard) and (TBoard(ActiveList) = ThreadItem.ParentBoard) then
3991                                    ListView.Refresh;
3992                  end else begin                  end else begin
3993                          FActiveContent := nil;                          FActiveContent := nil;
3994                  end;                  end;
# Line 4007  end; Line 4000  end;
4000  function TGikoForm.GetActiveContent: TThreadItem;  function TGikoForm.GetActiveContent: TThreadItem;
4001  begin  begin
4002          try          try
4003                  if( Assigned(FActiveContent) ) and (Assigned(FActiveContent.Thread))                  if FActiveContent <> nil then
                         and (FActiveContent <> nil) and (FActiveContent.Thread <> nil) then  
4004                          Result := FActiveContent.Thread                          Result := FActiveContent.Thread
4005                  else begin                  else
             FActiveContent := nil;  
4006                          Result := nil;                          Result := nil;
                 end;  
4007          except          except
                 FActiveContent := nil;  
4008                  Result := nil;                  Result := nil;
4009          end;          end;
4010    
4011  end;  end;
4012    
4013  procedure TGikoForm.SetActiveList(Obj: TObject);  procedure TGikoForm.SetActiveList(Obj: TObject);
# Line 4702  begin Line 4692  begin
4692                  end;                  end;
4693          mbLeft:          mbLeft:
4694                  begin                  begin
4695              //ここでDblClick拾わないと、Clickイベントが優先して起きてしまうので                          //ここでDblClick拾わないと、Clickイベントが優先して起きてしまうので
4696                          if (ssDouble in Shift) then                          if (ssDouble in Shift) then
4697                                  ListDoubleClick(Shift)                                  ListDoubleClick(Shift)
4698                          else                          else
# Line 4716  begin Line 4706  begin
4706                          ListPopupMenu.Popup( pos.X, pos.Y );                          ListPopupMenu.Popup( pos.X, pos.Y );
4707                  end;                  end;
4708          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;  
4709    
         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;}  
4710  end;  end;
4711    
4712  procedure TGikoForm.ListClick;  procedure TGikoForm.ListClick;
# Line 4755  begin Line 4721  begin
4721    
4722          ThreadItem := TThreadItem(ListItem.Data);          ThreadItem := TThreadItem(ListItem.Data);
4723          if ThreadItem.IsLogFile then begin          if ThreadItem.IsLogFile then begin
 //              if AddHistory(ThreadItem) then  
 //              SetContent(ThreadItem);  
4724                  InsertBrowserTab(ThreadItem);                  InsertBrowserTab(ThreadItem);
4725                  ListView.UpdateItems(ListItem.Index, ListItem.Index);                  ListView.UpdateItems(ListItem.Index, ListItem.Index);
4726          end else begin          end else begin
 //              SetContent(ThreadItem);  
4727                  InsertBrowserTab(ThreadItem);                  InsertBrowserTab(ThreadItem);
4728          end;          end;
4729    
# Line 4781  procedure TGikoForm.ListDoubleClick(Shif Line 4744  procedure TGikoForm.ListDoubleClick(Shif
4744  var  var
4745          ThreadItem: TThreadItem;          ThreadItem: TThreadItem;
4746          shiftDown: Boolean;          shiftDown: Boolean;
         cNode : TTreeNode;  
         bNode : TTreeNode;  
4747  begin  begin
4748          shiftDown := (ssShift in Shift);          shiftDown := (ssShift in Shift);
4749    
# Line 4790  begin Line 4751  begin
4751    
4752          if TObject(ListView.Selected.Data) is TCategory then begin          if TObject(ListView.Selected.Data) is TCategory then begin
4753                  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);  
4754          end else if TObject(ListView.Selected.Data) is TBoard then begin          end else if TObject(ListView.Selected.Data) is TBoard then begin
4755                  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);  
4756          end else if TObject(ListView.Selected.Data) is TThreadItem then begin          end else if TObject(ListView.Selected.Data) is TThreadItem then begin
4757                  //if TObject(ListView.Selected.Data) is TThreadItem then begin                  Application.ProcessMessages;
4758                          Application.ProcessMessages;                  ThreadItem := TThreadItem(ListView.Selected.Data);
4759                          ThreadItem := TThreadItem(ListView.Selected.Data);                  DownloadContent(ThreadItem, shiftDown);
4760                          DownloadContent(ThreadItem, shiftDown);  
                 //end;  
                   
4761                  if GikoSys.Setting.BrowserAutoMaximize = gbmDoubleClick then begin                  if GikoSys.Setting.BrowserAutoMaximize = gbmDoubleClick then begin
4762                          if GikoSys.Setting.ListOrientation = gloHorizontal then begin                          if GikoSys.Setting.ListOrientation = gloHorizontal then begin
4763                                  if GikoSys.Setting.ListWidthState = glsMin then begin                                  if GikoSys.Setting.ListWidthState = glsMin then begin
 //                                      BrowserMaxAndFocusAction.Execute;  
4764                                          BrowserMaxAction.Execute;                                          BrowserMaxAction.Execute;
4765                                          SetFocusForBrowserAction.Execute;                                          SetFocusForBrowserAction.Execute;
4766                                  end;                                  end;
4767                          end else begin                          end else begin
4768                                  if GikoSys.Setting.ListHeightState = glsMin then begin                                  if GikoSys.Setting.ListHeightState = glsMin then begin
 //                                      BrowserMaxAndFocusAction.Execute;  
4769                                          BrowserMaxAction.Execute;                                          BrowserMaxAction.Execute;
4770                                          SetFocusForBrowserAction.Execute;                                          SetFocusForBrowserAction.Execute;
4771                                  end;                                  end;
# Line 4846  var Line 4780  var
4780          nm: OleVariant;          nm: OleVariant;
4781          activeBrower :TWebBrowser;          activeBrower :TWebBrowser;
4782  begin  begin
4783  //      OleVariant(Browser.Document).parentWindow.location.hash := AName;          //
   
4784          while (BrowserRecord.Browser.ReadyState <> READYSTATE_COMPLETE) and          while (BrowserRecord.Browser.ReadyState <> READYSTATE_COMPLETE) and
4785                                  (BrowserRecord.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin                                  (BrowserRecord.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
4786          Sleep(1);                  Sleep(1);
4787                  Application.ProcessMessages;                  Application.ProcessMessages;
4788          end;          end;
4789    
# Line 4879  var Line 4812  var
4812          nm: OleVariant;          nm: OleVariant;
4813          activeBrower :TWebBrowser;          activeBrower :TWebBrowser;
4814  begin  begin
 //      OleVariant(Browser.Document).parentWindow.location.hash := AName;  
         {  
         while (Browser.ReadyState <> READYSTATE_COMPLETE) and  
                                 (Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin  
                 Application.ProcessMessages;  
         end;  
         }  
4815          // Access Violation が起きる事があるので今後要チェック          // Access Violation が起きる事があるので今後要チェック
4816          if(BrowserTab.Tabs.Count > 0) and (BrowserTab.TabIndex >= 0) then begin          if(BrowserTab.Tabs.Count > 0) and (BrowserTab.TabIndex >= 0) then begin
4817                  activeBrower := FActiveContent.Browser;                  activeBrower := FActiveContent.Browser;
# Line 4923  end; Line 4849  end;
4849    
4850  procedure TGikoForm.SelectListItem(List: TList);  procedure TGikoForm.SelectListItem(List: TList);
4851  var  var
 //      TmpTreeNode: TTreeNode;  
4852          TmpListItem: TListItem;          TmpListItem: TListItem;
4853  begin  begin
4854          List.Clear;          List.Clear;
4855            List.Capacity := 0;
4856          TmpListItem := ListView.Selected;          TmpListItem := ListView.Selected;
4857          while TmpListItem <> nil do begin          while TmpListItem <> nil do begin
4858                  List.Add(TmpListItem.Data);                  List.Add(TmpListItem.Data);
4859                  TmpListItem := ListView.GetNextItem(TmpListItem, sdAll, [isSelected]);                  TmpListItem := ListView.GetNextItem(TmpListItem, sdAll, [isSelected]);
4860          end;          end;
4861        
4862  end;  end;
4863    
4864  procedure TGikoForm.ExitActionExecute(Sender: TObject);  procedure TGikoForm.ExitActionExecute(Sender: TObject);
# Line 4954  begin Line 4880  begin
4880                  Exit;                  Exit;
4881          GikoSys.Setting.StdToolBarVisible := StdToolBarVisibleAction.Checked;          GikoSys.Setting.StdToolBarVisible := StdToolBarVisibleAction.Checked;
4882          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;  
4883          StdToolBarVisiblePMenu.Checked := GikoSys.Setting.StdToolBarVisible;          StdToolBarVisiblePMenu.Checked := GikoSys.Setting.StdToolBarVisible;
4884  end;  end;
4885    
# Line 4970  begin Line 4892  begin
4892                  Exit;                  Exit;
4893          GikoSys.Setting.AddressBarVisible := AddressBarVisibleAction.Checked;          GikoSys.Setting.AddressBarVisible := AddressBarVisibleAction.Checked;
4894          CoolBand.Visible := GikoSys.Setting.AddressBarVisible;          CoolBand.Visible := GikoSys.Setting.AddressBarVisible;
         //AddressBarVisibleAction.Checked := GikoSys.Setting.AddressBarVisible;  
4895          AddressToolBarVisiblePMenu.Checked := GikoSys.Setting.AddressBarVisible;          AddressToolBarVisiblePMenu.Checked := GikoSys.Setting.AddressBarVisible;
4896  end;  end;
4897    
# Line 4983  begin Line 4904  begin
4904                  Exit;                  Exit;
4905          GikoSys.Setting.LinkBarVisible := LinkBarVisibleAction.Checked;          GikoSys.Setting.LinkBarVisible := LinkBarVisibleAction.Checked;
4906          CoolBand.Visible := GikoSys.Setting.LinkBarVisible;          CoolBand.Visible := GikoSys.Setting.LinkBarVisible;
4907                                  //LinkBarVisibleAction.Checked := GikoSys.Setting.LinkBarVisible;          LinkToolBarVisiblePMenu.Checked := GikoSys.Setting.LinkBarVisible;
                                 LinkToolBarVisiblePMenu.Checked := GikoSys.Setting.LinkBarVisible;  
4908  end;  end;
4909    
4910  procedure TGikoForm.ListToolBarVisibleActionExecute(Sender: TObject);  procedure TGikoForm.ListToolBarVisibleActionExecute(Sender: TObject);
# Line 4995  begin Line 4915  begin
4915          if CoolBand = nil then          if CoolBand = nil then
4916                  Exit;                  Exit;
4917          CoolBand.Visible := ListToolBarVisibleAction.Checked;          CoolBand.Visible := ListToolBarVisibleAction.Checked;
 //      ListToolBar.Visible := ListToolBarVisibleAction.Checked;  
 //      AnimePanel.Visible := StdToolBar.Visible or ListToolBar.Visible;  
4918          GikoSys.Setting.ListToolBarVisible := ListToolBarVisibleAction.Checked;          GikoSys.Setting.ListToolBarVisible := ListToolBarVisibleAction.Checked;
4919    
4920  end;  end;
4921    
4922  procedure TGikoForm.ListNameBarVisibleActionExecute(Sender: TObject);  procedure TGikoForm.ListNameBarVisibleActionExecute(Sender: TObject);
# Line 5019  begin Line 4938  begin
4938          if CoolBand = nil then          if CoolBand = nil then
4939                  Exit;                  Exit;
4940          CoolBand.Visible := BrowserToolBarVisibleAction.Checked;          CoolBand.Visible := BrowserToolBarVisibleAction.Checked;
 //      BrowserToolBar.Visible := BrowserToolBarVisibleAction.Checked;  
4941          GikoSys.Setting.BrowserToolBarVisible := BrowserToolBarVisibleAction.Checked;          GikoSys.Setting.BrowserToolBarVisible := BrowserToolBarVisibleAction.Checked;
4942  end;  end;
4943    
# Line 5102  begin Line 5020  begin
5020                  FSearchDialog.Show;                  FSearchDialog.Show;
5021          except          except
5022          end;          end;
5023            
5024  end;  end;
5025    
5026  procedure TGikoForm.OptionActionExecute(Sender: TObject);  procedure TGikoForm.OptionActionExecute(Sender: TObject);
# Line 5188  begin Line 5106  begin
5106                  // SelectComboBox の履歴を更新しておく                  // SelectComboBox の履歴を更新しておく
5107                  ModifySelectList;                  ModifySelectList;
5108                  // SelectComboBox の値をクリア                  // SelectComboBox の値をクリア
5109                  if SelectComboBox.Parent <> nil then begin                  if SelectComboBoxPanel.Visible then begin
5110                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;
5111                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
5112                          ListView.SetFocus;                          ListView.SetFocus;
# Line 5207  begin Line 5125  begin
5125                  // SelectComboBox の履歴を更新しておく                  // SelectComboBox の履歴を更新しておく
5126                  ModifySelectList;                  ModifySelectList;
5127                  // SelectComboBox の値をクリア                  // SelectComboBox の値をクリア
5128                  if SelectComboBox.Parent <> nil then begin                  if SelectComboBoxPanel.Visible  then begin
5129                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;
5130                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
5131                          ListView.SetFocus;                          ListView.SetFocus;
# Line 5227  begin Line 5145  begin
5145                  // SelectComboBox の履歴を更新しておく                  // SelectComboBox の履歴を更新しておく
5146                  ModifySelectList;                  ModifySelectList;
5147                  // SelectComboBox の値をクリア                  // SelectComboBox の値をクリア
5148                  if SelectComboBox.Parent <> nil then begin                  if SelectComboBoxPanel.Visible then begin
5149                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;                          SelectComboBox.Text := SELECTCOMBOBOX_NAME;
5150                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;                          SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
5151                          ListView.SetFocus;                          ListView.SetFocus;
# Line 5242  var Line 5160  var
5160          Dlg: TListSelectDialog;          Dlg: TListSelectDialog;
5161  begin  begin
5162          try          try
5163                  if SelectComboBox.Parent <> nil then begin                  if SelectComboBoxPanel.Visible then begin
5164                          if SelectComboBox.Left + SelectComboBox.Width < ListToolBar.Width then begin                          if SelectComboBoxPanel.Left + SelectComboBoxPanel.Width < ListToolBar.Width then begin
5165                                  // SelectComboBox がある場合はフォーカスを移す                                  // SelectComboBox がある場合はフォーカスを移す
5166                                  if GikoSys.Setting.ListOrientation = gloHorizontal then begin                                  if GikoSys.Setting.ListOrientation = gloHorizontal then begin
5167                                          if GikoSys.Setting.ListWidthState = glsMax then                                          if GikoSys.Setting.ListWidthState = glsMax then
# Line 5653  begin Line 5571  begin
5571                  List.Free;                  List.Free;
5572          end;          end;
5573  end;  end;
5574    //ActiveListがTCategoyでスレ一覧で1つ以上選択かActiveListがTBoardで有効な
5575    //Actionで共通
5576  procedure TGikoForm.SelectListReloadActionUpdate(Sender: TObject);  procedure TGikoForm.SelectListReloadActionUpdate(Sender: TObject);
5577  begin  begin
5578          if (GetActiveList is TCategory) and (ListView.SelCount > 0) then  {$IFDEF ACTCHK}
5579                  SelectListReloadAction.Enabled := True          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
5580          else if GetActiveList is TBoard then          if (Sender <> nil) and (Sender is TAction) then begin
5581                  SelectListReloadAction.Enabled := True  {$ENDIF}
5582          else                  if (GetActiveList is TCategory) and (ListView.SelCount > 0) then
5583                  SelectListReloadAction.Enabled := False;                          TAction(Sender).Enabled := True
5584                    else if GetActiveList is TBoard then
5585                            TAction(Sender).Enabled := True
5586                    else
5587                            TAction(Sender).Enabled := False;
5588    {$IFDEF ACTCHK}
5589            end;
5590    {$ENDIF}
5591  end;  end;
5592    //ActiveListがTBoardでスレ一覧で1つ以上選択していると有効になるActionで共通
5593  procedure TGikoForm.SelectThreadReloadActionUpdate(Sender: TObject);  procedure TGikoForm.SelectThreadReloadActionUpdate(Sender: TObject);
5594  begin  begin
5595          if (GetActiveList is TBoard) and (ListView.SelCount > 0) then  {$IFDEF ACTCHK}
5596                  SelectThreadReloadAction.Enabled := True          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
5597          else          if (Sender <> nil) and (Sender is TAction) then begin
5598                  SelectThreadReloadAction.Enabled := False;  {$ENDIF}
5599  end;                  TAction(Sender).Enabled := (GetActiveList is TBoard) and (ListView.SelCount > 0);
5600    {$IFDEF ACTCHK}
5601  procedure TGikoForm.AllItemActionUpdate(Sender: TObject);          end;
5602  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);  
5603  end;  end;
5604    
5605  procedure TGikoForm.UpFolderActionUpdate(Sender: TObject);  procedure TGikoForm.UpFolderActionUpdate(Sender: TObject);
# Line 5697  begin Line 5607  begin
5607          UpFolderAction.Enabled := not (GetActiveList is TBBS);          UpFolderAction.Enabled := not (GetActiveList is TBBS);
5608  end;  end;
5609    
 procedure TGikoForm.ThreadEditorActionUpdate(Sender: TObject);  
 begin  
         ThreadEditorAction.Enabled := (GetActiveList is TBoard);  
 end;  
   
5610  procedure TGikoForm.FormResize(Sender: TObject);  procedure TGikoForm.FormResize(Sender: TObject);
5611  begin  begin
5612    
# Line 5726  begin Line 5631  begin
5631    
5632  end;  end;
5633    
 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;  
   
5634  procedure TGikoForm.ScrollKokoActionUpdate(Sender: TObject);  procedure TGikoForm.ScrollKokoActionUpdate(Sender: TObject);
5635  begin  begin
5636          ScrollKokoAction.Enabled := (GetActiveContent <> nil)          ScrollKokoAction.Enabled := (GetActiveContent <> nil)
# Line 5749  begin Line 5639  begin
5639    
5640  end;  end;
5641    
5642  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;  
   
5643  procedure TGikoForm.AllTabCloseActionUpdate(Sender: TObject);  procedure TGikoForm.AllTabCloseActionUpdate(Sender: TObject);
5644  begin  begin
5645          AllTabCloseAction.Enabled := (BrowserTab.Tabs.Count > 0);  {$IFDEF ACTCHK}
5646  end;          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
5647            if (Sender <> nil) and (Sender is TAction) then begin
5648  procedure TGikoForm.ActiveLogDeleteActionUpdate(Sender: TObject);  {$ENDIF}
5649  begin                  TAction(Sender).Enabled := (BrowserTab.Tabs.Count > 0);
5650          ActiveLogDeleteAction.Enabled := GetActiveContent <> nil;  {$IFDEF ACTCHK}
5651            end;
5652    {$ENDIF}
5653  end;  end;
5654    
5655  procedure TGikoForm.LogDeleteActionExecute(Sender: TObject);  procedure TGikoForm.LogDeleteActionExecute(Sender: TObject);
# Line 6007  end; Line 5850  end;
5850    
5851  function TGikoForm.Hook(var Message: TMessage): Boolean;  function TGikoForm.Hook(var Message: TMessage): Boolean;
5852  begin  begin
5853            //サブフォームがメインメニューを持たないときに、メインフォームの
5854            //メニューのショートカットキーがサブメニューから入力されるのを回避
5855          Result := False;          Result := False;
5856          case Message.Msg of          case Message.Msg of
5857          CM_APPKEYDOWN:          CM_APPKEYDOWN:
5858                  Result := True;                  Result := True;         //ショートカットキー無効
5859            CM_APPSYSCOMMAND:
5860                    Result := True;  // アクセラレータを無効にする
5861          end;          end;
5862  end;  end;
5863    
# Line 6135  begin Line 5982  begin
5982          end;          end;
5983  end;  end;
5984    
5985  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;  
   
5986  procedure TGikoForm.SelectItemNameCopyActionUpdate(Sender: TObject);  procedure TGikoForm.SelectItemNameCopyActionUpdate(Sender: TObject);
5987  begin  begin
5988          if ((GetActiveList is TBoard) or (GetActiveList is TCategory))and (ListView.SelCount > 0) then  {$IFDEF ACTCHK}
5989                  SelectItemNameCopyAction.Enabled := True          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
5990          else          if (Sender <> nil) and (Sender is TAction) then begin
5991                  SelectItemNameCopyAction.Enabled := False;  {$ENDIF}
5992  end;                  if ((GetActiveList is TBoard) or (GetActiveList is TCategory))and (ListView.SelCount > 0) then
5993                            TAction(Sender).Enabled := True
5994                    else
5995                            TAction(Sender).Enabled := False;
5996    {$IFDEF ACTCHK}
5997            end;
5998    {$ENDIF}
5999    
 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;  
6000  end;  end;
6001    
6002  procedure TGikoForm.AllSelectActionUpdate(Sender: TObject);  procedure TGikoForm.AllSelectActionUpdate(Sender: TObject);
6003  begin  begin
6004          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;  
6005  end;  end;
6006    
6007  procedure TGikoForm.BrowserTabCloseActionExecute(Sender: TObject);  procedure TGikoForm.BrowserTabCloseActionExecute(Sender: TObject);
# Line 6777  begin Line 6598  begin
6598                                  FEvent.OnContextMenu := OnDocumentContextMenu;                                  FEvent.OnContextMenu := OnDocumentContextMenu;
6599                                  FEvent.OnClick := WebBrowserClick;  //追加したOnClickイベント                                  FEvent.OnClick := WebBrowserClick;  //追加したOnClickイベント
6600                          end;                          end;
6601                            
6602                  end;                  end;
6603    
6604                  if (BrowserRecord <> nil) and                  if (BrowserRecord <> nil) and
# Line 6874  procedure TGikoForm.SelectNewRoundNameEx Line 6696  procedure TGikoForm.SelectNewRoundNameEx
6696  var  var
6697          s: string;          s: string;
6698          Dlg: TRoundNameDialog;          Dlg: TRoundNameDialog;
6699          cnt: Integer;                  cnt: Integer;
6700    
6701  begin  begin
6702          //登録上限チェック          //呼び出し元が、TActionでListViewに選択がいなければ、EXITする
6703          cnt := RoundList.Count[grtBoard];          if (Sender is TAction) and (ListView.Selected = nil) then
6704          cnt := cnt + RoundList.Count[grtItem];                  Exit;
6705          if cnt > 500 then begin  
6706                  MsgBox(Handle, '巡回は500以上登録できません', 'エラー', MB_OK or MB_ICONSTOP);          //登録上限チェック
6707                  Exit;          cnt := RoundList.Count[grtBoard];
6708          end;          cnt := cnt + RoundList.Count[grtItem];
6709            if cnt > 500 then begin
6710                            MsgBox(Handle, '巡回は500以上登録できません', 'エラー', MB_OK or MB_ICONSTOP);
6711                            Exit;
6712            end;
6713    
6714          Dlg := TRoundNameDialog.Create(Self);          Dlg := TRoundNameDialog.Create(Self);
6715          try          try
6716                  Dlg.ShowModal;                  Dlg.ShowModal;
6717                  if Dlg.ModalResult <> mrCancel then begin                  if Dlg.ModalResult <> mrCancel then begin
6718                          s := Trim(Dlg.RoundNameEdit.Text);                          s := Trim(Dlg.RoundNameEdit.Text);
6719                          //RoundList.RoundNameList.Add(s);                          if (Sender is TMenuItem) then begin
6720                          SetSelectItemRound(True, s, TMenuItem(Sender).Parent.Name);                                  SetSelectItemRound(True, s, TMenuItem(Sender).Parent.Name);
6721              ListView.Refresh;                          end else if (Sender is TAction) then begin
6722                                    if (ListView.Selected <> nil) then begin
6723                                            if (TObject(ListView.Selected.Data) is TThreadItem) then begin
6724                                                    SetSelectItemRound(True, s,
6725                                                            TThreadItem(ListView.Selected.Data).Title);
6726                                            end else if (TObject(ListView.Selected.Data) is TBoard) then begin
6727                                                    SetSelectItemRound(True, s,
6728                                                            TBoard(ListView.Selected.Data).Title);
6729                                            end;
6730                                    end;
6731                            end;
6732                            ListView.Refresh;
6733                  end;                  end;
6734          finally          finally
6735                  Dlg.Free;                  Dlg.Free;
# Line 6901  end; Line 6738  end;
6738  procedure TGikoForm.SetSelectItemRound(RoundFlag: Boolean; RoundName: string; ParentName: string);  procedure TGikoForm.SetSelectItemRound(RoundFlag: Boolean; RoundName: string; ParentName: string);
6739  var  var
6740          threadItem : TThreadItem;          threadItem : TThreadItem;
6741  //      i: Integer;          i: Integer;
6742  begin  begin
6743          if ParentName <> 'dummy1' then begin          if ParentName <> 'dummy1' then begin
6744                  SetSelectItemRound(RoundFlag, RoundName);                  SetSelectItemRound(RoundFlag, RoundName);
# Line 6909  begin Line 6746  begin
6746                  threadItem := GetActiveContent;                  threadItem := GetActiveContent;
6747                  if threadItem <> nil then begin                  if threadItem <> nil then begin
6748                          threadItem.RoundName := RoundName;                          threadItem.RoundName := RoundName;
6749                          RoundList.RoundNameList.Add(RoundName);                          if RoundFlag then
6750                          //RoundList.RoundNameList.Find(RoundName, i);                                  RoundList.RoundNameList.Add(RoundName);
                         //threadItem.RoundName := PChar(RoundList.RoundNameList[i]);  
6751                          threadItem.Round := RoundFlag;                          threadItem.Round := RoundFlag;
6752                  end;                  end;
6753          end;          end;
# Line 6928  begin Line 6764  begin
6764                  for i := 0 to List.Count - 1 do begin                  for i := 0 to List.Count - 1 do begin
6765                          if TObject(List[i]) is TBoard then begin                          if TObject(List[i]) is TBoard then begin
6766                                  TBoard(List[i]).RoundName := RoundName;                                  TBoard(List[i]).RoundName := RoundName;
6767                                  RoundList.RoundNameList.Add(RoundName);                                  if RoundFlag then
6768                                  //RoundList.RoundNameList.Find(RoundName, idx);                                          RoundList.RoundNameList.Add(RoundName);
                                 //TBoard(List[i]).RoundName := PChar(RoundList.RoundNameList[idx]);  
6769                                  TBoard(List[i]).Round := RoundFlag;                                  TBoard(List[i]).Round := RoundFlag;
6770                          end else if TObject(List[i]) is TThreadItem then begin                          end else if TObject(List[i]) is TThreadItem then begin
6771                                  if TThreadItem(List[i]).IsLogFile then begin                                  if TThreadItem(List[i]).IsLogFile then begin
6772                                          TThreadItem(List[i]).RoundName := RoundName;                                          TThreadItem(List[i]).RoundName := RoundName;
6773                                          RoundList.RoundNameList.Add(RoundName);                                          if RoundFlag then
6774                                          //RoundList.RoundNameList.Find(RoundName, idx);                                                  RoundList.RoundNameList.Add(RoundName);
                                         //TThreadItem(List[i]).RoundName := PChar(RoundList.RoundNameList[idx]);  
6775                                          TThreadItem(List[i]).Round := RoundFlag;                                          TThreadItem(List[i]).Round := RoundFlag;
6776                                  end;                                  end;
6777                          end;                          end;
# Line 6948  begin Line 6782  begin
6782  end;  end;
6783    
6784  procedure TGikoForm.SelectDeleteRoundExecute(Sender: TObject);  procedure TGikoForm.SelectDeleteRoundExecute(Sender: TObject);
6785    var
6786            s : String;
6787  begin  begin
6788          SetSelectItemRound(False, '', TMenuItem(Sender).Parent.Name);          if (Sender is TMenuItem) then begin
6789                    try
6790                            SetSelectItemRound(False, '', TMenuItem(Sender).Parent.Name);
6791                    except
6792                    end;
6793            end else if (Sender is TAction) then begin
6794                    try
6795                            if ListView.Selected <> nil then begin
6796                                    if (TObject(ListView.Selected.Data) is TThreadItem) then begin
6797                                            s := TThreadItem(ListView.Selected.Data).Title;
6798                                    end else if (TObject(ListView.Selected.Data) is TBoard) then begin
6799                                            s := TBoard(ListView.Selected.Data).Title;
6800                                    end;
6801                                    SetSelectItemRound(False, '', s);
6802    
6803                            end;
6804                    except
6805                    end;
6806            end;
6807          ListView.Refresh;          ListView.Refresh;
6808  end;  end;
6809    
# Line 7325  begin Line 7179  begin
7179          end;          end;
7180  end;  end;
7181    
7182  procedure TGikoForm.LeftmostTabSelectActionUpdate(Sender: TObject);  //ブラウザタブが1つ以上で左端でないActionで共通
 begin  
         LeftmostTabSelectAction.Enabled := (BrowserTab.TabIndex <> 0) and (BrowserTab.Tabs.Count > 0);  
 end;  
   
7183  procedure TGikoForm.LeftTabSelectActionUpdate(Sender: TObject);  procedure TGikoForm.LeftTabSelectActionUpdate(Sender: TObject);
7184  begin  begin
7185          LeftTabSelectAction.Enabled := (BrowserTab.TabIndex <> 0) and (BrowserTab.Tabs.Count > 0);  {$IFDEF ACTCHK}
7186            //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
7187            if (Sender <> nil) and (Sender is TAction) then begin
7188    {$ENDIF}
7189                    TAction(Sender).Enabled := (BrowserTab.Tabs.Count > 0) and (BrowserTab.TabIndex <> 0);
7190    {$IFDEF ACTCHK}
7191            end;
7192    {$ENDIF}
7193  end;  end;
7194    //ブラウザタブが1つ以上で右端でないActionで共通
7195  procedure TGikoForm.RightTabSelectActionUpdate(Sender: TObject);  procedure TGikoForm.RightTabSelectActionUpdate(Sender: TObject);
7196  begin  begin
7197          RightTabSelectAction.Enabled := (BrowserTab.TabIndex <> BrowserTab.Tabs.Count - 1) and (BrowserTab.Tabs.Count > 0);  {$IFDEF ACTCHK}
7198  end;          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
7199            if (Sender <> nil) and (Sender is TAction) then begin
7200  procedure TGikoForm.RightmostTabSelectActionUpdate(Sender: TObject);  {$ENDIF}
7201  begin                  TAction(Sender).Enabled := (BrowserTab.Tabs.Count > 0) and (BrowserTab.TabIndex <> BrowserTab.Tabs.Count - 1);
7202          RightmostTabSelectAction.Enabled := (BrowserTab.TabIndex <> BrowserTab.Tabs.Count - 1) and (BrowserTab.Tabs.Count > 0);  {$IFDEF ACTCHK}
7203            end;
7204    {$ENDIF}
7205  end;  end;
7206    
7207  procedure TGikoForm.WMSettingChange(var Message: TWMWinIniChange);  procedure TGikoForm.WMSettingChange(var Message: TWMWinIniChange);
# Line 7531  begin Line 7390  begin
7390          end;          end;
7391  end;  end;
7392    
 procedure TGikoForm.FavoriteAddActionUpdate(Sender: TObject);  
 begin  
         FavoriteAddAction.Enabled := (GetActiveContent <> nil);  
 end;  
   
7393  procedure TGikoForm.BoardFavoriteAddActionExecute(Sender: TObject);  procedure TGikoForm.BoardFavoriteAddActionExecute(Sender: TObject);
7394  begin  begin
7395          if TObject(ListView.Selected.Data) is TBoard then          if TObject(ListView.Selected.Data) is TBoard then
# Line 7553  begin Line 7407  begin
7407                  ShowFavoriteAddDialog(TObject(ListView.Selected.Data));                  ShowFavoriteAddDialog(TObject(ListView.Selected.Data));
7408  end;  end;
7409    
 procedure TGikoForm.ThreadFavoriteAddActionUpdate(Sender: TObject);  
 begin  
         ThreadFavoriteAddAction.Enabled := (GetActiveList is TBoard) and (ListView.SelCount > 0);  
 end;  
   
7410  procedure TGikoForm.TreeSelectFavoriteAddActionExecute(Sender: TObject);  procedure TGikoForm.TreeSelectFavoriteAddActionExecute(Sender: TObject);
7411  begin  begin
7412          ShowFavoriteAddDialog(TObject(FClickNode.Data));          ShowFavoriteAddDialog(TObject(FClickNode.Data));
# Line 7900  var Line 7749  var
7749  //      KeyData: Integer;  //      KeyData: Integer;
7750  begin  begin
7751          Handled := False;          Handled := False;
7752          if AddressComboBox.Focused or SelectComboBox.Focused then begin          //アドレスもしくは絞り込みコンボボックスもしくはお気に入りが編集中は
7753            //ショートカットなどを無効にする
7754            if ((FavoriteTreeView.Visible) and (FavoriteTreeView.IsEditing)) then begin
7755                  if Msg.CharCode in [VK_BACK] then begin                  if Msg.CharCode in [VK_BACK] then begin
7756                          hComboEdit := GetFocus;                          hComboEdit := GetFocus;
7757                          if hComboEdit <> 0 then                          if hComboEdit <> 0 then
7758                                  SendMessage(hComboEdit, WM_CHAR, Msg.CharCode, Msg.KeyData);                                  SendMessage(hComboEdit, WM_CHAR, Msg.CharCode, Msg.KeyData);
7759  //                              SendMessage(hComboEdit, WM_CHAR, Msg.CharCode, $000E0001);                          Handled := True;
7760            //お気に入りはESCで脱出したいので、それも送る
7761                    end else if Msg.CharCode in [VK_INSERT, VK_DELETE, VK_HOME, VK_END, VK_PRIOR, VK_NEXT, VK_ESCAPE] then begin
7762                            hComboEdit := GetFocus;
7763                            if hComboEdit <> 0 then
7764                                    SendMessage(hComboEdit, WM_KEYDOWN, Msg.CharCode, Msg.KeyData);
7765                          Handled := True;                          Handled := True;
7766                  end;                  end;
7767                  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
7768                    if Msg.CharCode in [VK_BACK] then begin
7769                            hComboEdit := GetFocus;
7770                            if hComboEdit <> 0 then
7771                                    SendMessage(hComboEdit, WM_CHAR, Msg.CharCode, Msg.KeyData);
7772                            Handled := True;
7773                    end else if Msg.CharCode in [VK_INSERT, VK_DELETE, VK_HOME, VK_END, VK_PRIOR, VK_NEXT] then begin
7774                          hComboEdit := GetFocus;                          hComboEdit := GetFocus;
7775                          if hComboEdit <> 0 then                          if hComboEdit <> 0 then
7776                                  SendMessage(hComboEdit, WM_KEYDOWN, Msg.CharCode, Msg.KeyData);                                  SendMessage(hComboEdit, WM_KEYDOWN, Msg.CharCode, Msg.KeyData);
# Line 8235  begin Line 8097  begin
8097                          else                          else
8098                                  Header := IntToStr(Line) + ' 名前: ' + Res.FName + ' [' + res.FMailTo + '] 投稿日: ' + Res.FDateTime;                                  Header := IntToStr(Line) + ' 名前: ' + Res.FName + ' [' + res.FMailTo + '] 投稿日: ' + Res.FDateTime;
8099    
8100                          Body := CustomStringReplace(Res.FBody, '<br> ', #10,true);                                                  Body := DeleteFontTag(Res.FBody);
8101                                                    Body := CustomStringReplace(Body, '<br> ', #10,true);
8102                          Body := CustomStringReplace(Body, '<br>', #10,true);                          Body := CustomStringReplace(Body, '<br>', #10,true);
8103                          Body := CustomStringReplace(Body, '</a>', '',true);                          Body := CustomStringReplace(Body, '</a>', '',true);
8104                          Body := GikoSys.DeleteLink(Body);                          Body := GikoSys.DeleteLink(Body);
# Line 8485  begin Line 8348  begin
8348    
8349          LinkToolButton := TLinkToolButton( Sender );          LinkToolButton := TLinkToolButton( Sender );
8350          SenderNode := TreeNodeDataFind( FavoriteTreeView.Items.GetFirstNode, LinkToolButton.Data );          SenderNode := TreeNodeDataFind( FavoriteTreeView.Items.GetFirstNode, LinkToolButton.Data );
8351            SenderNode.Selected := False;
8352          FavoriteDragDrop( SenderNode, Source );          FavoriteDragDrop( SenderNode, Source );
8353    
8354            SetLinkBar;
8355    
8356  end;  end;
8357    
8358  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 8569  begin
8569          if ToolBar.Width < bw then begin          if ToolBar.Width < bw then begin
8570                  w := 0;                  w := 0;
8571                  for i := 0 to ToolBar.ButtonCount - 1 do begin                  for i := 0 to ToolBar.ButtonCount - 1 do begin
8572                          w := w + ToolBar.Buttons[i].Width;                          if ToolBar.Buttons[i].Visible then
8573                                    w := w + ToolBar.Buttons[i].Width;
8574                          if ToolBar.Width <= w then begin                          if ToolBar.Width <= w then begin
8575                                  if ToolBar.Buttons[i].Tag = 0 then begin                                  if ToolBar.Buttons[i].Tag = 0 then begin
8576                                          Item := TMenuItem.Create(Self);                                          Item := TMenuItem.Create(Self);
8577                                          if ToolBar.Buttons[i].Style = tbsSeparator then                                          if ToolBar.Buttons[i].Style = tbsSeparator then
8578                                                  Item.Caption := '-'                                                  Item.Caption := '-'
8579                                          else begin                                          else begin
8580                                                  Item.Caption := ToolBar.Buttons[i].Caption;                                                  //スレ絞込みComBoxのTPanelを排除する
8581                                                  Item.Action := ToolBar.Buttons[i].Action;                                                  if TObject(ToolBar.Buttons[i]) is TPanel then begin
8582                                                            Continue;
8583                                                    end else begin
8584                                                            Item.Caption := ToolBar.Buttons[i].Caption;
8585                                                            Item.Action := ToolBar.Buttons[i].Action;
8586                                                    end;
8587                                                  //Item.Visible := True;                                                  //Item.Visible := True;
8588                                          end;                                          end;
8589                                          ChevronPopupMenu.Items.Add(Item);                                          ChevronPopupMenu.Items.Add(Item);
# Line 8923  var Line 8794  var
8794          Dlg: TToolBarSettingDialog;          Dlg: TToolBarSettingDialog;
8795          i: Integer;          i: Integer;
8796          //Component: TComponent;          //Component: TComponent;
8797            ToolButton : TToolButton;
8798  begin  begin
8799          Dlg := TToolBarSettingDialog.Create(Self, ActionList);          Dlg := TToolBarSettingDialog.Create(Self, ActionList);
8800          try          try
# Line 8951  begin Line 8823  begin
8823                                  BrowserCoolBar.Bands[i].MinWidth := BrowserCoolBar.Bands[i].MinWidth - 1;                                  BrowserCoolBar.Bands[i].MinWidth := BrowserCoolBar.Bands[i].MinWidth - 1;
8824                          end;                          end;
8825    
                         SelectComboBox.Visible := False;  
                         SelectComboBoxSplitter.Visible := False;  
   
8826                          SaveToolBarSetting(StdToolBar);                          SaveToolBarSetting(StdToolBar);
8827                          SaveToolBarSetting(ListToolBar);                          SaveToolBarSetting(ListToolBar);
8828                          for i := ListToolBar.ControlCount - 1 downto 0 do                          //ListToolBarにいるかもしれない絞込みComboBoxを配置
8829                          begin                          SelectComboBoxPanel.Visible := False;
8830                                  if ListToolBar.Controls[ i ].Action = SelectItemAction then                          try
8831                                    for i := ListToolBar.ControlCount - 1 downto 0 do
8832                                  begin                                  begin
8833                                          // スレッド絞込の隣にセパレータがある場合は隠す                                          if ListToolBar.Controls[ i ].Action = SelectItemAction then
8834                                          if (i + 1) < ListToolBar.ControlCount then                                          begin
8835                                                  if ListToolBar.Controls[ i + 1 ] is TToolButton then                                                  SelectComboBoxPanel.Left := ListToolBar.Controls[ i ].Left;
8836                                                          if TToolButton( ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then                                                  SelectComboBoxPanel.Width := GikoSys.Setting.SelectComboBoxWidth;
8837                                                                  ListToolBar.Controls[ i + 1 ].Visible := False;                                                  SelectComboBoxPanel.Parent := ListToolBar;
8838                                                    SelectComboBoxPanel.Visible := True;
8839                                          // スレッド絞込ボタンを隠す  
8840                                          ListToolBar.Controls[ i ].Visible := False;                                                  SelectComboBox.Left := 0;
8841                                          // スレッド絞込フィールドを挿入                                                  SelectComboBox.Top  := 0;
8842                                          SelectComboBox.Left := ListToolBar.Controls[ i ].Left;                                                  SelectComboBox.Height := SelectComboBoxPanel.ClientHeight;
8843                                          SelectComboBox.Width := GikoSys.Setting.SelectComboBoxWidth;                                                  SelectComboBox.Width := SelectComboBoxPanel.Width -
8844                                          SelectComboBox.Parent := ListToolBar;                                                                                                  SelectComboBoxSplitter.Width;
8845                                          SelectComboBox.Visible := True;  
8846                                          // スレッド絞込用独自セパレータを挿入  
8847                                          SelectComboBoxSplitter.Left := SelectComboBox.Left + SelectComboBox.Width;                                                  //一つ見えないボタンを突っ込む
8848                                          SelectComboBoxSplitter.Parent := ListToolBar;                                                  ToolButton := TToolButton(ListToolBar.FindComponent('SelectComboBoxDummy'));
8849                                          SelectComboBoxSplitter.Visible := True;                                                  if ToolButton <> nil then begin
8850                                          break;                                                          ToolButton.Parent := nil;
8851                                                    end else begin
8852                                                            ToolButton := TToolButton.Create(ListToolBar);
8853                                                            ToolButton.Name := 'SelectComboBoxDummy';
8854                                                    end;
8855    
8856                                                    ToolButton.Style := tbsSeparator;
8857                                                    ToolButton.Width := 0;
8858                                                    ToolButton.Left  := ListToolBar.Controls[ i ].Left;
8859                                                    ListToolBar.InsertControl(ToolButton);
8860                                                    ToolButton.Visible := False;
8861    
8862                                                    // スレッド絞込の隣にセパレータがある場合は隠す
8863                                                    if (i + 1) < ListToolBar.ControlCount then
8864                                                            if ListToolBar.Controls[ i + 1 ] is TToolButton then
8865                                                                    if TToolButton( ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then
8866                                                                            ListToolBar.Controls[ i + 1 ].Visible := False;
8867    
8868    
8869                                                    // スレッド絞込ボタンを隠す
8870                                                    ListToolBar.Controls[ i ].Visible := False;
8871    
8872                                                    break;
8873                                            end;
8874                                  end;                                  end;
8875                            except
8876                          end;                          end;
8877                          ResetBandInfo( ListCoolBar, ListToolBar );                          ResetBandInfo( ListCoolBar, ListToolBar );
8878                          SaveToolBarSetting(BrowserToolBar);                          SaveToolBarSetting(BrowserToolBar);
# Line 9170  var Line 9064  var
9064  begin  begin
9065    
9066          try          try
9067                  if SelectComboBox.Parent = nil then                  if not SelectComboBoxPanel.Visible then
9068                          exit;                          exit;
9069    
9070                  if Length( SelectComboBox.Text ) > 0 then                  if Length( SelectComboBox.Text ) > 0 then
# Line 9225  begin Line 9119  begin
9119                                  end;                                  end;
9120    
9121                                  try                                  try
9122                                          if SelectComboBox.Parent <> nil then                                          //if SelectComboBox.Parent <> nil then
9123                                            if SelectComboBoxPanel.Visible then
9124                                                  SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );                                                  SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
9125                                  except                                  except
9126                                  end;                                  end;
# Line 9254  begin Line 9149  begin
9149    
9150  end;  end;
9151    
 procedure TGikoForm.SelectResActionUpdate(Sender: TObject);  
 begin  
         SelectResAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
9152  // 全てのレスを表示  // 全てのレスを表示
9153  procedure TGikoForm.AllResActionExecute(Sender: TObject);  procedure TGikoForm.AllResActionExecute(Sender: TObject);
9154  var  var
# Line 9288  begin Line 9178  begin
9178          end;          end;
9179  end;  end;
9180    
 procedure TGikoForm.AllResActionUpdate(Sender: TObject);  
 begin  
 //      AllResAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
9181  procedure TGikoForm.ReloadClick(Sender: TObject);  procedure TGikoForm.ReloadClick(Sender: TObject);
9182  begin  begin
9183          if GikoSys.FAbon.ReLoadFromNGwordFile =false then begin          if GikoSys.FAbon.ReLoadFromNGwordFile =false then begin
# Line 9341  var Line 9226  var
9226          pos                             : TPoint;          pos                             : TPoint;
9227          w                                       : Integer;          w                                       : Integer;
9228  begin  begin
9229          If (SelectComboBox.Parent <> nil) and (IsDraggingSelectComboBox) Then begin          If (SelectComboBoxPanel.Visible) and (IsDraggingSelectComboBox) Then begin
9230                  pos.X := X;                  pos.X := X;
9231                  pos.Y := Y;                  pos.Y := Y;
9232                  pos := SelectComboBoxSplitter.ClientToScreen( pos );                  pos := SelectComboBoxSplitter.ClientToScreen( pos );
9233                  w := SelectComboBox.Width + (pos.X - DraggingSelectComboBoxPosition.X);                  //w := SelectComboBox.Width + (pos.X - DraggingSelectComboBoxPosition.X);
9234                    w := SelectComboBoxPanel.Width + (pos.X - DraggingSelectComboBoxPosition.X);
9235    
9236                  If w <= 50 Then Begin                  If w <= 50 Then Begin
9237                          // 次の移動の基準が「過ぎてしまった位置」ではなく                          // 次の移動の基準が「過ぎてしまった位置」ではなく
# Line 9357  begin Line 9243  begin
9243                  End;                  End;
9244    
9245                  // チラつき軽減の為                  // チラつき軽減の為
9246                  If SelectComboBox.Width <> w Then Begin                  //If SelectComboBox.Width <> w Then Begin
9247                          SelectComboBox.Width := w;                  If SelectComboBoxPanel.Width <> w Then Begin
9248                            SelectComboBoxPanel.Width := w;
9249                            SelectComboBox.Width := SelectComboBoxPanel.Width - SelectComboBoxSplitter.Width;
9250                          GikoSys.Setting.SelectComboBoxWidth := w;                          GikoSys.Setting.SelectComboBoxWidth := w;
9251                          DraggingSelectComboBoxPosition := pos;                          DraggingSelectComboBoxPosition := pos;
9252    
# Line 9621  begin Line 9509  begin
9509    
9510          end;          end;
9511    
9512          SetLinkBar;  
9513    
9514  end;  end;
9515    
# Line 9631  var Line 9519  var
9519          SenderNode: TTreeNode;          SenderNode: TTreeNode;
9520  begin  begin
9521    
9522    
9523          SenderNode := FavoriteTreeView.GetNodeAt(X, Y);          SenderNode := FavoriteTreeView.GetNodeAt(X, Y);
9524          if SenderNode <> nil then begin          if SenderNode <> nil then begin
9525                  FavoriteDragDrop( SenderNode, Source );                  FavoriteDragDrop( SenderNode, Source );
9526          end;          end;
9527    
9528            //空白項目がいたら削除する
9529          if FDropSpaceNode <> nil then begin          if FDropSpaceNode <> nil then begin
9530                  FDropSpaceNode.Free;                  try
9531                  FDropSpaceNode := nil;                          FDropSpaceNode.Delete;
9532                    finally
9533                            FDropSpaceNode := nil;
9534                    end;
9535          end;          end;
9536    
9537            SetLinkBar;
9538    
9539  end;  end;
9540    
9541  procedure TGikoForm.FavoriteTreeViewEdited(Sender: TObject;  procedure TGikoForm.FavoriteTreeViewEdited(Sender: TObject;
# Line 9675  begin Line 9570  begin
9570                  VK_SPACE:                  VK_SPACE:
9571                          FavoriteTreeViewDblClick( Sender );                          FavoriteTreeViewDblClick( Sender );
9572                  end;                  end;
9573            end else begin
9574                    //編集中にESCを押したら、編集を終了して、元の文字列に戻す
9575                    if Key = VK_ESCAPE then begin
9576                            if (TTreeView(Sender).Selected <> nil) then begin
9577                                    TTreeView(Sender).Selected.Text := FOrigenCaption;
9578                            end;
9579                            TTreeView(Sender).Selected.Focused := False;
9580                    end;
9581          end;          end;
9582    
9583  end;  end;
# Line 10131  begin Line 10034  begin
10034                          Break;                          Break;
10035                  end;                  end;
10036          end;          end;
10037            SenderNode.Selected := False;
10038            
10039          FavoriteDragDrop( SenderNode, Source );          FavoriteDragDrop( SenderNode, Source );
10040    
10041            SetLinkBar;
10042  end;  end;
10043    
10044  procedure TGikoForm.BrowserTabMouseUp(Sender: TObject;  procedure TGikoForm.BrowserTabMouseUp(Sender: TObject;
# Line 10182  procedure TGikoForm.FavoriteTreeViewEndD Line 10087  procedure TGikoForm.FavoriteTreeViewEndD
10087  begin  begin
10088    
10089          if FDropSpaceNode <> nil then begin          if FDropSpaceNode <> nil then begin
10090                  FDropSpaceNode.Free;                  try
10091                  FDropSpaceNode := nil;                          FDropSpaceNode.Delete;
10092                    finally
10093                            FDropSpaceNode := nil;
10094                    end;
10095                  SetLinkBar;                  SetLinkBar;
10096          end;          end;
10097    
# Line 10314  begin Line 10222  begin
10222    
10223  end;  end;
10224    
 procedure TGikoForm.UpBoardActionUpdate(Sender: TObject);  
 begin  
   
         UpBoardAction.Enabled := GetActiveContent <> nil;  
   
 end;  
   
10225  procedure TGikoForm.BrowserTabContextPopup(Sender: TObject;  procedure TGikoForm.BrowserTabContextPopup(Sender: TObject;
10226          MousePos: TPoint; var Handled: Boolean);          MousePos: TPoint; var Handled: Boolean);
10227  var  var
# Line 10766  begin Line 10667  begin
10667    
10668  end;  end;
10669    
 procedure TGikoForm.ResRangeActionUpdate(Sender: TObject);  
 begin  
 //      ResRangeAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
10670  function TGikoForm.WebBrowserClick(Sender: TObject): WordBool;  function TGikoForm.WebBrowserClick(Sender: TObject): WordBool;
10671  var  var
10672          p : TPoint;          p : TPoint;
# Line 10838  procedure TGikoForm.SetFocusForBrowserAc Line 10734  procedure TGikoForm.SetFocusForBrowserAc
10734  begin  begin
10735          FActiveContent.FBrowser.SetFocus;          FActiveContent.FBrowser.SetFocus;
10736  end;  end;
10737    //ブラウザがあって、NULLタブ用のなければ有効になるActionで共通
10738  procedure TGikoForm.SetFocusForBrowserActionUpdate(Sender: TObject);  procedure TGikoForm.SetFocusForBrowserActionUpdate(Sender: TObject);
10739  begin  begin
10740          if( FActiveContent <> nil) and (FActiveContent.Browser <> nil) and  {$IFDEF ACTCHK}
10741                  (FActiveContent.Browser <> BrowserNullTab.Browser) then          //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
10742                  SetFocusForBrowserAction.Enabled := true          if (Sender <> nil) and (Sender is TAction) then begin
10743          else  {$ENDIF}
10744                  SetFocusForBrowserAction.Enabled := false;                  if( FActiveContent <> nil) and (FActiveContent.Browser <> nil) and
10745                            (FActiveContent.Browser <> BrowserNullTab.Browser) then
10746                            TAction(Sender).Enabled := true
10747                    else
10748                            TAction(Sender).Enabled := false;
10749    {$IFDEF ACTCHK}
10750            end;
10751    {$ENDIF}
10752  end;  end;
10753    
10754  procedure TGikoForm.SetFocusForThreadListActionExecute(Sender: TObject);  procedure TGikoForm.SetFocusForThreadListActionExecute(Sender: TObject);
 var  
         rct: TRect;  
10755  begin  begin
10756          if FActiveContent <> nil then          if FActiveContent <> nil then
10757                  WebBrowserClick(FActiveContent.Browser); //一回Browserに当てないと動かないときがある                  WebBrowserClick(FActiveContent.Browser); //一回Browserに当てないと動かないときがある
10758          ListView.SetFocus;          ListView.SetFocus;
10759    
10760          if( ListView.Items.Count > 0 ) and (ListView.ItemFocused = nil) then          if( ListView.Items.Count > 0 ) and (ListView.ItemFocused = nil) then
10761                  ListView.Items.Item[0].Selected := true //選択アイテムが無いときは先頭のを選択する                  ListView.Items.Item[0].Selected := true; //選択アイテムが無いときは先頭のを選択する
10762          else if ListView.Items.Count > 0 then begin  
10763                  ListView.Scroll(-ListView.ClientWidth, -ListView.ClientHeight);          //スクロールさせる
10764                  rct := ListView.ItemFocused.DisplayRect(drBounds);          if (ListView.ItemFocused <> nil) then begin
10765                  ListView.Scroll(0, 2 * rct.Top - rct.Bottom);                  ListView.ItemFocused.MakeVisible(False);
                 if ListView.ViewStyle <> vsReport then begin  
                         ListView.Scroll(rct.Left, 0);  
                 end;  
10766          end;          end;
10767  end;  end;
10768    
# Line 10893  begin Line 10792  begin
10792          SetFocusForBrowserAction.Execute;          SetFocusForBrowserAction.Execute;
10793  end;  end;
10794    
 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;  
10795  //スレッド一覧を最大化してフォーカスを当てる  //スレッド一覧を最大化してフォーカスを当てる
10796  procedure TGikoForm.ThreadlistMaxAndFocusActionExecute(Sender: TObject);  procedure TGikoForm.ThreadlistMaxAndFocusActionExecute(Sender: TObject);
10797  begin  begin
# Line 10908  begin Line 10799  begin
10799          SetFocusForThreadListAction.Execute;          SetFocusForThreadListAction.Execute;
10800  end;  end;
10801    
 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;  
   
10802  procedure TGikoForm.SelectTimerTimer(Sender: TObject);  procedure TGikoForm.SelectTimerTimer(Sender: TObject);
10803  begin  begin
10804            SelectTimer.Interval := 0;
10805          if not (ListView.Selected = nil) then          if not (ListView.Selected = nil) then
10806                  if( FActiveContent = nil) or                  if( FActiveContent = nil) or
10807                                  (GetActiveContent <> TThreadItem(ListView.Selected.Data) ) then begin                                  (GetActiveContent <> TThreadItem(ListView.Selected.Data) ) then begin
                         SelectTimer.Interval := 0;  
10808                          ListClick;                          ListClick;
10809                  end;                  end;
10810  end;  end;
# Line 10954  begin Line 10831  begin
10831                          for i := 0 to List.Count - 1 do begin                          for i := 0 to List.Count - 1 do begin
10832                                  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
10833                                          FileSaveAs1.Dialog.FileName := TThreadItem(List[i]).FileName;                                          FileSaveAs1.Dialog.FileName := TThreadItem(List[i]).FileName;
10834                                          if FileSaveAs1.Execute then begin                                          if FileSaveAs1.Dialog.Execute then begin
10835                                                  //なぜかキャンセルでもこっちに入ってくる                                                  CopyFile(PChar(TThreadItem(List[i]).FilePath),
10836                                                  if ExtractFilePath(FileSaveAs1.Dialog.FileName) <> '' then begin                                                  PChar(FileSaveAs1.Dialog.FileName), true);
                                                         CopyFile(PChar(TThreadItem(List[i]).FilePath),  
                                                                 PChar(FileSaveAs1.Dialog.FileName), true);  
                                                 end;  
10837                                          end;                                          end;
10838                                  end;                                  end;
10839                          end;                          end;
# Line 10995  begin Line 10869  begin
10869                          for i := 0 to List.Count - 1 do begin                          for i := 0 to List.Count - 1 do begin
10870                                  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
10871                                          FileSaveAs1.Dialog.FileName := ReplaseNoValidateChar(TThreadItem(List[i]).Title) + '.html';                                          FileSaveAs1.Dialog.FileName := ReplaseNoValidateChar(TThreadItem(List[i]).Title) + '.html';
10872                                          if FileSaveAs1.Execute then begin                                          if FileSaveAs1.Dialog.Execute then begin
10873                                                  //なぜかキャンセルでもこっちに入ってくる                                                  html := TStringList.Create;
10874                                                  if ExtractFilePath(FileSaveAs1.Dialog.FileName) <> '' then begin                                                  title := TThreadItem(List[i]).Title;
10875                                                          html := TStringList.Create;                                                  try
10876                                                          title := TThreadItem(List[i]).Title;                                                          GikoSys.CreateHTML3(html, TThreadItem(List[i]), title);
10877                                                          try                                                          html.SaveToFile(FileSaveAs1.Dialog.FileName);
10878                                                                  GikoSys.CreateHTML3(html, TThreadItem(List[i]), title);                                                          SkinorCSSFilesCopy(ExtractFilePath(FileSaveAs1.Dialog.FileName));
10879                                                                  html.SaveToFile(FileSaveAs1.Dialog.FileName);                                                  finally
10880                                                                  SkinorCSSFilesCopy(ExtractFilePath(FileSaveAs1.Dialog.FileName));                                                          html.Free;
                                                         finally  
                                                                 html.Free;  
                                                         end;  
10881                                                  end;                                                  end;
10882                                          end;                                          end;
10883                                  end;                                  end;
# Line 11151  begin Line 11022  begin
11022    
11023  end;  end;
11024    
 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;  
   
11025  function TGikoForm.GetTabURLs(AStringList: TStringList) : Boolean;  function TGikoForm.GetTabURLs(AStringList: TStringList) : Boolean;
11026  var  var
11027    rec : TBrowserRecord;    rec : TBrowserRecord;
# Line 11236  var Line 11097  var
11097          GikoTab                 : TGikoTabAppend;          GikoTab                 : TGikoTabAppend;
11098          fileName                : string;          fileName                : string;
11099  begin  begin
11100            if FStartUp then begin
11101                    //起動時にタブ自動復元を入れていると、空ページ用のBrowserの
11102                    //描画が終わっていなくて、クリックイベントの設定等に突入するので
11103                    //ここで終わらせておく
11104                    while (Browser.ReadyState <> READYSTATE_COMPLETE) and
11105                                    (Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
11106                            Application.ProcessMessages;
11107                    end;
11108            end;
11109    
11110          fileName := ExtractFilePath(Application.ExeName) + 'tab.sav';          fileName := ExtractFilePath(Application.ExeName) + 'tab.sav';
11111          URLs := TStringList.Create();          URLs := TStringList.Create();
# Line 11380  begin Line 11250  begin
11250    
11251  end;  end;
11252    
 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;  
11253  //NGワードファイルを編集するために開く  //NGワードファイルを編集するために開く
11254  procedure TGikoForm.EditNGActionExecute(Sender: TObject);  procedure TGikoForm.EditNGActionExecute(Sender: TObject);
11255  begin  begin
11256          GikoSys.FAbon.EditNGwords;          GikoSys.FAbon.EditNGwords;
11257  end;  end;
11258    
 procedure TGikoForm.ThreadRangeActionUpdate(Sender: TObject);  
 begin  
         ThreadRangeAction.Enabled := (GetActiveList is TBoard);  
 end;  
   
11259  procedure TGikoForm.ThreadRangeActionExecute(Sender: TObject);  procedure TGikoForm.ThreadRangeActionExecute(Sender: TObject);
11260  begin  begin
11261          case GikoSys.Setting.ThreadRange of          case GikoSys.Setting.ThreadRange of
# Line 11620  begin Line 11475  begin
11475          end;          end;
11476  end;  end;
11477    
 procedure TGikoForm.JumpToNumOfResActionUpdate(Sender: TObject);  
 begin  
         JumpToNumOfResAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);  
 end;  
   
11478  procedure TGikoForm.FavoriteTreeViewCollapseActionExecute(Sender: TObject);  procedure TGikoForm.FavoriteTreeViewCollapseActionExecute(Sender: TObject);
11479  var  var
11480          node    : TTreeNode;          node    : TTreeNode;
# Line 11660  var Line 11510  var
11510          s: string;          s: string;
11511          Action: TAction;          Action: TAction;
11512          ActStr: string;          ActStr: string;
         Comp : TComponent;  
11513          P : TPoint;          P : TPoint;
11514  begin  begin
11515      //マウス位置の取得      //マウス位置の取得
11516      GetCursorPos(P);          GetCursorPos(P);
11517      //コンポーネント名取得      //コンポーネント名取得
11518      //ギコナビのフォーム外、もしくは、コンテキストメニュー上だとnilが返る          s := MouseGesture.GetGestureStr;
11519      Comp := FindDragTarget(P, True);          ActStr := '';
11520      if (Comp <> nil) then begin          Action := GikoSys.Setting.Gestures.GetGestureAction(s);
11521                  s := MouseGesture.GetGestureStr;          if Action <> nil then
11522                  ActStr := '';                  ActStr := '(' + Action.Caption + ')';
11523                  Action := GikoSys.Setting.Gestures.GetGestureAction(s);          s := 'ジェスチャー: ' + s + ActStr;
11524                  if Action <> nil then          StatusBar.Panels[1].Text := s;
                         ActStr := '(' + Action.Caption + ')';  
                 s := 'ジェスチャー: ' + s + ActStr;  
                 StatusBar.Panels[1].Text := s;  
     end;  
11525  end;  end;
11526    
11527  procedure TGikoForm.OnGestureEnd(Sender: TObject);  procedure TGikoForm.OnGestureEnd(Sender: TObject);
# Line 11705  procedure TGikoForm.ListViewCustomDrawIt Line 11550  procedure TGikoForm.ListViewCustomDrawIt
11550  var  var
11551          ThreadItem: TThreadItem;          ThreadItem: TThreadItem;
11552  begin  begin
11553      DefaultDraw := true;          DefaultDraw := true;
11554          if TObject(Item.Data) is TThreadItem then begin          if TObject(Item.Data) is TThreadItem then begin
11555                  ThreadItem := TThreadItem(Item.Data);                  ThreadItem := TThreadItem(Item.Data);
11556                  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
11557                          ListView.Canvas.Brush.Color := FOddColor;                          ListView.Canvas.Brush.Color := FOddColor;
11558                            //選択されているけど、フォーカスがないと、グレイになるので、太字に変更
11559                            if (GikoSys.Setting.UnFocusedBold) and
11560                             (Item.Selected) and (not ListView.Focused) then begin
11561                                    ListView.Canvas.Font.Style := [fsBold];
11562                            end;
11563                  end else begin                  end else begin
11564                          ListView.Canvas.Brush.Color := FListViewBackGroundColor;                          ListView.Canvas.Brush.Color := FListViewBackGroundColor;
11565                  end;                  end;
11566  //              if (ThreadItem.Kokomade <> ThreadItem.Count) and (ThreadItem.IsLogFile) then  
11567                  if ThreadItem.UnRead then                  if ThreadItem.UnRead then
11568                          ListView.Canvas.Font.Style := [fsBold];                          ListView.Canvas.Font.Style := [fsBold];
11569          end;          end;
# Line 11722  end; Line 11572  end;
11572    
11573  procedure TGikoForm.FormActivate(Sender: TObject);  procedure TGikoForm.FormActivate(Sender: TObject);
11574  begin  begin
         MouseGesture.UnHook;  
11575          if GikoSys.Setting.GestureEnabled then begin          if GikoSys.Setting.GestureEnabled then begin
11576                    MouseGesture.UnHook;
11577                  MouseGesture.OnGestureStart := OnGestureStart;                  MouseGesture.OnGestureStart := OnGestureStart;
11578                  MouseGesture.OnGestureMove := OnGestureMove;                  MouseGesture.OnGestureMove := OnGestureMove;
11579                  MouseGesture.OnGestureEnd := OnGestureEnd;                  MouseGesture.OnGestureEnd := OnGestureEnd;
11580                  MouseGesture.SetHook(Handle);                  MouseGesture.SetHook(Handle);
11581          end else begin          end else begin
11582                    //MouseGesture.UnHook;
11583                  MouseGesture.OnGestureStart := nil;                  MouseGesture.OnGestureStart := nil;
11584                  MouseGesture.OnGestureMove := nil;                  MouseGesture.OnGestureMove := nil;
11585                  MouseGesture.OnGestureEnd := nil;                  MouseGesture.OnGestureEnd := nil;
# Line 11858  begin Line 11709  begin
11709          end;          end;
11710          BrowserTab.Tabs.EndUpdate;          BrowserTab.Tabs.EndUpdate;
11711  end;  end;
11712    //ブラウザタブが2つ以上あれば有効になるアクションで共通化
11713  procedure TGikoForm.RightTabCloseActionUpdate(Sender: TObject);  procedure TGikoForm.RightTabCloseActionUpdate(Sender: TObject);
11714  begin  begin
11715          RightTabCloseAction.Enabled := (BrowserTab.Tabs.Count > 1);  {$IFDEF ACTCHK}
11716            //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
11717            if (Sender <> nil) and (Sender is TAction) then begin
11718    {$ENDIF}
11719                    TAction(Sender).Enabled := (BrowserTab.Tabs.Count > 1);
11720    {$IFDEF ACTCHK}
11721            end;
11722    {$ENDIF}
11723  end;  end;
11724    
11725  procedure TGikoForm.LeftTabCloseActionExecute(Sender: TObject);  procedure TGikoForm.LeftTabCloseActionExecute(Sender: TObject);
# Line 11881  begin Line 11739  begin
11739          BrowserTab.Tabs.EndUpdate;          BrowserTab.Tabs.EndUpdate;
11740  end;  end;
11741    
 procedure TGikoForm.LeftTabCloseActionUpdate(Sender: TObject);  
 begin  
         LeftTabCloseAction.Enabled := (BrowserTab.Tabs.Count > 1);  
 end;  
   
11742  procedure TGikoForm.SameIDResAnchorActionExecute(Sender: TObject);  procedure TGikoForm.SameIDResAnchorActionExecute(Sender: TObject);
11743  var  var
11744          ThreadItem : TThreadItem;          ThreadItem : TThreadItem;
# Line 12218  procedure TGikoForm.MessageListViewAdvan Line 12071  procedure TGikoForm.MessageListViewAdvan
12071    Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;    Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;
12072    Stage: TCustomDrawStage; var DefaultDraw: Boolean);    Stage: TCustomDrawStage; var DefaultDraw: Boolean);
12073  begin  begin
12074          //if DiffComp then begin                  //if DiffComp then begin
12075                   //if Odd(Item.Index) then Sender.Canvas.Brush.Color := clBlue;                   //if Odd(Item.Index) then Sender.Canvas.Brush.Color := clBlue;
12076                  //DiffComp := False;                                  //DiffComp := False;
12077  //        end;  //        end;
12078  end;  end;
12079    
# Line 12232  end; Line 12085  end;
12085  procedure TGikoForm.BeLogInOutActionUpdate(Sender: TObject);  procedure TGikoForm.BeLogInOutActionUpdate(Sender: TObject);
12086  begin  begin
12087          if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin          if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin
12088          if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true                  if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true
12089          else BeLogInOutAction.Checked := false;                  else BeLogInOutAction.Checked := false;
12090          BeLogInOutAction.Enabled := true                  BeLogInOutAction.Enabled := true
12091      end else          end else
12092          BeLogInOutAction.Enabled := false;                  BeLogInOutAction.Enabled := false;
12093    
12094  end;  end;
12095  //リンクの文字列からレスポップアップ用のURLに変換する  //リンクの文字列からレスポップアップ用のURLに変換する
# Line 12281  begin Line 12134  begin
12134      end;      end;
12135    
12136  end;  end;
12137    //ListViewの選択状態を解除する
12138    procedure TGikoForm.UnSelectedListViewActionExecute(Sender: TObject);
12139    begin
12140            if ListView.Selected <> nil then begin
12141                    ListView.Selected.Focused := True;
12142                    ListView.Selected := nil;
12143            end;
12144    end;
12145    
12146    procedure TGikoForm.ListViewKeyUp(Sender: TObject; var Key: Word;
12147      Shift: TShiftState);
12148    begin
12149            //ブラウザタブ無しで、キー移動で読み飛ばしを可能にするための
12150            //無効時間のTimerの処理
12151            //とりあえず、タイマーを停止する。
12152            SelectTimer.Interval := 0;
12153            if not (GikoSys.Setting.BrowserTabVisible) then begin
12154                    if (GetActiveList is TBoard) then begin
12155                            //Shift Alt Ctrlが話されたときは、方向キーを離していても無視
12156                            if not ((ssShift in Shift) or (ssAlt in Shift) or (ssCtrl in Shift))  and
12157                                    (( Key = VK_LEFT) or (Key = VK_RIGHT) or
12158                                                    (Key = VK_UP) or (Key = VK_DOWN)) then
12159                                            SelectTimer.Interval := GikoSys.Setting.SelectInterval;
12160                    end;
12161            end;
12162    end;
12163    //TActionでGetActiveContentがnil以外で有効になる
12164    procedure TGikoForm.DependActiveCntentActionUpdate(Sender: TObject);
12165    begin
12166    {$IFDEF ACTCHK}
12167            //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
12168            if (Sender <> nil) and (Sender is TAction) then begin
12169    {$ENDIF}
12170                    TAction(Sender).Enabled := (GetActiveContent <> nil);
12171    {$IFDEF ACTCHK}
12172            end;
12173    {$ENDIF}
12174    end;
12175    //TActionでGetActiveContentがnil以外かつログを持っている
12176    procedure TGikoForm.DependActiveCntentLogActionUpdate(Sender: TObject);
12177    begin
12178    {$IFDEF ACTCHK}
12179            //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
12180            if (Sender <> nil) and (Sender is TAction) then begin
12181    {$ENDIF}
12182                    TAction(Sender).Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);
12183    {$IFDEF ACTCHK}
12184            end;
12185    {$ENDIF}
12186    end;
12187    //TActionでActiveListがTBoardで有効になる
12188    procedure TGikoForm.DependActiveListTBoardActionUpdate(Sender: TObject);
12189    begin
12190    {$IFDEF ACTCHK}
12191            //無くてもいいIF文 コードから無理やり呼ばないならチェックしなくても…
12192            if (Sender <> nil) and (Sender is TAction) then begin
12193    {$ENDIF}
12194                    TAction(Sender).Enabled := (GetActiveList is TBoard);
12195    {$IFDEF ACTCHK}
12196            end;
12197    {$ENDIF}
12198    end;
12199    
12200    procedure TGikoForm.FavoriteTreeViewEditing(Sender: TObject;
12201      Node: TTreeNode; var AllowEdit: Boolean);
12202    begin
12203        //編集前の文字列を一時保存する
12204            FOrigenCaption := Node.Text;
12205    end;
12206    //例外処理されなかった例外を処理する
12207    procedure TGikoForm.AppException(Sender: TObject; E: Exception);
12208    var
12209            s : String;
12210    begin
12211            if (Sender <> nil) then begin
12212                    s := ' [' + Sender.ClassName + ']' + #13#10;
12213            end else begin
12214                    s := ' [ Sender is nil ] ' + #13#10;
12215            end;
12216            s := s + E.Message;
12217            MsgBox(Handle, s, '処理されなかった例外', MB_OK or MB_ICONSTOP);
12218    end;
12219    
12220  initialization  initialization
12221                                  OleInitialize(nil);                                  OleInitialize(nil);

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

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