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.99 by yoffy, Sat Nov 1 16:09:37 2003 UTC revision 1.100 by yoffy, Sat Nov 1 17:11:51 2003 UTC
# Line 473  type Line 473  type
473                  SearchBoardName: TMenuItem;                  SearchBoardName: TMenuItem;
474                  N55: TMenuItem;                  N55: TMenuItem;
475                  TreeSelectSearchBoardName: TAction;                  TreeSelectSearchBoardName: TAction;
476      CabinetFavoriteAction: TAction;                  CabinetFavoriteAction: TAction;
477      N54: TMenuItem;                  N54: TMenuItem;
478      A13: TMenuItem;                  A13: TMenuItem;
479      FavoriteTreePopupMenu: TPopupMenu;                  FavoriteTreePopupMenu: TPopupMenu;
480      FavoriteTreeViewRenameAction: TAction;                  FavoriteTreeViewRenameAction: TAction;
481      FavoriteTreeRenamePopupMenu: TMenuItem;                  FavoriteTreeRenamePopupMenu: TMenuItem;
482      FavoriteTreeViewNewFolderAction: TAction;                  FavoriteTreeViewNewFolderAction: TAction;
483      FavoriteTreeNewFolderPopupMenu: TMenuItem;                  FavoriteTreeNewFolderPopupMenu: TMenuItem;
484      N56: TMenuItem;                  N56: TMenuItem;
485      FavoriteTreeViewDeleteAction: TAction;                  FavoriteTreeViewDeleteAction: TAction;
486      FavoriteTreeDeletePopupMenu: TMenuItem;                  FavoriteTreeDeletePopupMenu: TMenuItem;
487      FavoriteToolBar: TToolBar;                  FavoriteToolBar: TToolBar;
488      ToolButton17: TToolButton;                  ToolButton17: TToolButton;
489      ToolButton19: TToolButton;                  ToolButton19: TToolButton;
490      FavoriteTreeViewBrowseFolderAction: TAction;                  FavoriteTreeViewBrowseFolderAction: TAction;
491      FavoriteTreeBrowseFolderPopupMenu: TMenuItem;                  FavoriteTreeBrowseFolderPopupMenu: TMenuItem;
492      N57: TMenuItem;                  N57: TMenuItem;
493      FavoriteTreeReloadPopupMenu: TMenuItem;                  FavoriteTreeReloadPopupMenu: TMenuItem;
494      N58: TMenuItem;                  N58: TMenuItem;
495      FavoriteTreeURLCopyPopupMenu: TMenuItem;                  FavoriteTreeURLCopyPopupMenu: TMenuItem;
496      FavoriteTreeNameCopyPopupMenu: TMenuItem;                  FavoriteTreeNameCopyPopupMenu: TMenuItem;
497      FavoriteTreeLogDeletePopupMenu: TMenuItem;                  FavoriteTreeLogDeletePopupMenu: TMenuItem;
498      N59: TMenuItem;                  N59: TMenuItem;
499      FavoriteTreeNameURLCopyPopupMenu: TMenuItem;                  FavoriteTreeNameURLCopyPopupMenu: TMenuItem;
500      FavoriteTreeViewReloadAction: TAction;                  FavoriteTreeViewReloadAction: TAction;
501      FavoriteTreeViewURLCopyAction: TAction;                  FavoriteTreeViewURLCopyAction: TAction;
502      FavoriteTreeViewNameCopyAction: TAction;                  FavoriteTreeViewNameCopyAction: TAction;
503      FavoriteTreeViewNameURLCopyAction: TAction;                  FavoriteTreeViewNameURLCopyAction: TAction;
504      FavoriteTreeViewLogDeleteAction: TAction;                  FavoriteTreeViewLogDeleteAction: TAction;
505      OnlyAHundredRes: TAction;                  OnlyAHundredRes: TAction;
506      ToolButton20: TToolButton;                  ToolButton20: TToolButton;
507      AHundredResButton: TToolButton;                  AHundredResButton: TToolButton;
508      N60: TMenuItem;                  N60: TMenuItem;
509                  procedure FormCreate(Sender: TObject);                  procedure FormCreate(Sender: TObject);
510                  procedure FormDestroy(Sender: TObject);                  procedure FormDestroy(Sender: TObject);
511                  procedure CabinetPanelHide(Sender: TObject);                  procedure CabinetPanelHide(Sender: TObject);
# Line 544  type Line 544  type
544                          Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);                          Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
545                  procedure TreeViewExpanded(Sender: TObject; Node: TTreeNode);                  procedure TreeViewExpanded(Sender: TObject; Node: TTreeNode);
546                  procedure TreeViewDblClick(Sender: TObject);                  procedure TreeViewDblClick(Sender: TObject);
547      procedure FavoriteTreeViewClick(Sender: TObject);                  procedure FavoriteTreeViewClick(Sender: TObject);
548                  procedure ListViewCustomDraw(Sender: TCustomListView;                  procedure ListViewCustomDraw(Sender: TCustomListView;
549                          const ARect: TRect; var DefaultDraw: Boolean);                          const ARect: TRect; var DefaultDraw: Boolean);
550                  procedure ListViewMouseDown(Sender: TObject; Button: TMouseButton;                  procedure ListViewMouseDown(Sender: TObject; Button: TMouseButton;
# Line 767  type Line 767  type
767                  procedure AntiIndividualAbonClick(Sender: TObject);                  procedure AntiIndividualAbonClick(Sender: TObject);
768                  procedure N51Click(Sender: TObject);                  procedure N51Click(Sender: TObject);
769                  procedure TreeSelectSearchBoardNameExecute(Sender: TObject);                  procedure TreeSelectSearchBoardNameExecute(Sender: TObject);
770      procedure CabinetFavoriteActionExecute(Sender: TObject);                  procedure CabinetFavoriteActionExecute(Sender: TObject);
771      procedure FavoriteTreeViewDragDrop(Sender, Source: TObject; X,                  procedure FavoriteTreeViewDragDrop(Sender, Source: TObject; X,
772        Y: Integer);                          Y: Integer);
773                  procedure FavoriteTreeViewDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);                  procedure FavoriteTreeViewDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
774      procedure FavoriteTreeViewEdited(Sender: TObject; Node: TTreeNode;                  procedure FavoriteTreeViewEdited(Sender: TObject; Node: TTreeNode;
775        var S: String);                          var S: String);
776      procedure FavoriteTreeViewKeyDown(Sender: TObject; var Key: Word;                  procedure FavoriteTreeViewKeyDown(Sender: TObject; var Key: Word;
777        Shift: TShiftState);                          Shift: TShiftState);
778      procedure FavoriteTreePopupMenuPopup(Sender: TObject);                  procedure FavoriteTreePopupMenuPopup(Sender: TObject);
779      procedure FavoriteTreeViewDeleteActionExecute(Sender: TObject);                  procedure FavoriteTreeViewDeleteActionExecute(Sender: TObject);
780      procedure FavoriteTreeViewRenameActionExecute(Sender: TObject);                  procedure FavoriteTreeViewRenameActionExecute(Sender: TObject);
781      procedure FavoriteTreeViewNewFolderActionExecute(Sender: TObject);                  procedure FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
782      procedure ToolButton19Click(Sender: TObject);                  procedure ToolButton19Click(Sender: TObject);
783      procedure FavoriteTreeViewBrowseFolderActionExecute(Sender: TObject);                  procedure FavoriteTreeViewBrowseFolderActionExecute(Sender: TObject);
784      procedure FavoriteTreeViewChange(Sender: TObject; Node: TTreeNode);                  procedure FavoriteTreeViewChange(Sender: TObject; Node: TTreeNode);
785      procedure FavoriteTreeViewDblClick(Sender: TObject);                  procedure FavoriteTreeViewDblClick(Sender: TObject);
786      procedure FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);                  procedure FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
787      procedure FavoriteTreeViewReloadActionExecute(Sender: TObject);                  procedure FavoriteTreeViewReloadActionExecute(Sender: TObject);
788      procedure FavoriteTreeViewURLCopyActionExecute(Sender: TObject);                  procedure FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
789      procedure FavoriteTreeViewNameCopyActionExecute(Sender: TObject);                  procedure FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
790      procedure FavoriteTreeViewNameURLCopyActionExecute(Sender: TObject);                  procedure FavoriteTreeViewNameURLCopyActionExecute(Sender: TObject);
791      procedure LinkToolBarDragDrop(Sender, Source: TObject; X, Y: Integer);                  procedure LinkToolBarDragDrop(Sender, Source: TObject; X, Y: Integer);
792      procedure BrowserTabMouseUp(Sender: TObject; Button: TMouseButton;                  procedure BrowserTabMouseUp(Sender: TObject; Button: TMouseButton;
793        Shift: TShiftState; X, Y: Integer);                          Shift: TShiftState; X, Y: Integer);
794      procedure LinkToolBarDragOver(Sender, Source: TObject; X, Y: Integer;                  procedure LinkToolBarDragOver(Sender, Source: TObject; X, Y: Integer;
795        State: TDragState; var Accept: Boolean);                          State: TDragState; var Accept: Boolean);
796      procedure OnlyAHundredResExecute(Sender: TObject);                  procedure OnlyAHundredResExecute(Sender: TObject);
797      procedure FavoriteTreeViewEndDrag(Sender, Target: TObject; X,                  procedure FavoriteTreeViewEndDrag(Sender, Target: TObject; X,
798        Y: Integer);                          Y: Integer);
799      procedure ListCoolBarContextPopup(Sender: TObject; MousePos: TPoint;                  procedure ListCoolBarContextPopup(Sender: TObject; MousePos: TPoint;
800        var Handled: Boolean);                          var Handled: Boolean);
801      procedure MainCoolBarContextPopup(Sender: TObject; MousePos: TPoint;                  procedure MainCoolBarContextPopup(Sender: TObject; MousePos: TPoint;
802        var Handled: Boolean);                          var Handled: Boolean);
803      procedure BrowserCoolBarContextPopup(Sender: TObject; MousePos: TPoint;                  procedure BrowserCoolBarContextPopup(Sender: TObject; MousePos: TPoint;
804        var Handled: Boolean);                          var Handled: Boolean);
805          private          private
806                  { Private 宣言 }                  { Private 宣言 }
807    
# Line 847  type Line 847  type
847    
848                  FSearchDialog: TSearchDialog;                  FSearchDialog: TSearchDialog;
849    
850      FDropSpaceNode: TTreeNode;                  FDropSpaceNode: TTreeNode;
851    
852    
853          FDragTime : Cardinal;   //リンクのD&D用                                  FDragTime : Cardinal;   //リンクのD&D用
854          FDragButton : TToolButton;      //リンクのD&D用にDragしてるButton保存                                  FDragButton : TToolButton;      //リンクのD&D用にDragしてるButton保存
855          FDragWFirst : Boolean;  //WebTabのD&D用                                  FDragWFirst : Boolean;  //WebTabのD&D用
856    
857                  procedure SetBoardTreeNode;                  procedure SetBoardTreeNode;
858                  function SetCategoryListItem(ABBS2ch: TBBS2ch): Integer;                  function SetCategoryListItem(ABBS2ch: TBBS2ch): Integer;
# Line 884  type Line 884  type
884                  procedure CreateFavMenu(Node: TTreeNode; MenuItem: TMenuItem);                  procedure CreateFavMenu(Node: TTreeNode; MenuItem: TMenuItem);
885                  procedure FavoriteClick(Sender: TObject; ActiveTab: Boolean); overload;                  procedure FavoriteClick(Sender: TObject; ActiveTab: Boolean); overload;
886                  procedure FavoriteClick(Sender: TObject); overload;                  procedure FavoriteClick(Sender: TObject); overload;
887      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);
888                  procedure SelectTreeNode(Item: TObject; CallEvent: Boolean);                  procedure SelectTreeNode(Item: TObject; CallEvent: Boolean);
889                  function OnDocumentContextMenu(Sender: TObject): WordBool;                  function OnDocumentContextMenu(Sender: TObject): WordBool;
890  //              function GetThreadText(sBoard: string; sThread: string; StNum, ToNum: Integer; Title, First: Boolean): string;  //              function GetThreadText(sBoard: string; sThread: string; StNum, ToNum: Integer; Title, First: Boolean): string;
# Line 899  type Line 899  type
899                  procedure LinkBarChevronMenu;                  procedure LinkBarChevronMenu;
900                  procedure ToolBarChevronMenu(ToolBar: TToolBar);                  procedure ToolBarChevronMenu(ToolBar: TToolBar);
901                  procedure ModifySelectList;                  procedure ModifySelectList;
902      procedure FavoriteBrowseFolder( node: TTreeNode );                  procedure FavoriteBrowseFolder( node: TTreeNode );
903      procedure LinkToolButtonDragDrop(Sender, Source: TObject; X, Y: Integer);                  procedure LinkToolButtonDragDrop(Sender, Source: TObject; X, Y: Integer);
904      procedure LinkToolButtonOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);                  procedure LinkToolButtonOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
905      procedure LinkToolButtonOnMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);                  procedure LinkToolButtonOnMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
906      procedure LinkToolButtonOnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);                  procedure LinkToolButtonOnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
907                  procedure LinkToolButtonStartDrag(Sender: TObject; var DragObject: TDragObject);                  procedure LinkToolButtonStartDrag(Sender: TObject; var DragObject: TDragObject);
908                  function TreeNodeDataFind(Node: TTreeNode; FindPointer: Pointer): TTreeNode;                  function TreeNodeDataFind(Node: TTreeNode; FindPointer: Pointer): TTreeNode;
909      procedure FavoriteMoveTo( SenderNode, SourceNode: TTreeNode );                  procedure FavoriteMoveTo( SenderNode, SourceNode: TTreeNode );
910      procedure FavoriteAddTo( SenderNode: TTreeNode; Source: TObject );                  procedure FavoriteAddTo( SenderNode: TTreeNode; Source: TObject );
911                  procedure FavoriteDragDrop( SenderNode: TTreeNode; Source: TObject );                  procedure FavoriteDragDrop( SenderNode: TTreeNode; Source: TObject );
912          //                                  //
913          procedure BrowserTabClick(Sender: TObject);                                  procedure BrowserTabClick(Sender: TObject);
914          protected          protected
915                  procedure CreateParams(var Params: TCreateParams); override;                  procedure CreateParams(var Params: TCreateParams); override;
916                  procedure WndProc(var Message: TMessage); override;                  procedure WndProc(var Message: TMessage); override;
# Line 962  type Line 962  type
962                  procedure SetBrowserTabState;                  procedure SetBrowserTabState;
963  //              property Favorite: TFavorite read FFavorite write FFavorite;  //              property Favorite: TFavorite read FFavorite write FFavorite;
964                  procedure SetToolBarPopup;                  procedure SetToolBarPopup;
965      procedure ShowFavoriteAddDialog( Item : TObject );                  procedure ShowFavoriteAddDialog( Item : TObject );
966          published          published
967                  property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton;                  property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton;
968          end;          end;
# Line 995  const Line 995  const
995          BLANK_HTML: string = 'about:blank';          BLANK_HTML: string = 'about:blank';
996          SELECTCOMBOBOX_NAME: string = ''; // 'スレッド絞込検索';          SELECTCOMBOBOX_NAME: string = ''; // 'スレッド絞込検索';
997          SELECTCOMBOBOX_COLOR: TColor = clWindow;          SELECTCOMBOBOX_COLOR: TColor = clWindow;
998      //D&D閾値                  //D&D閾値
999      DandD_THRESHOLD     = 5;    //D&Dの閾値(pixcel)                  DandD_THRESHOLD = 5;    //D&Dの閾値(pixcel)
1000          //ツリー・リストアイコン          //ツリー・リストアイコン
1001          ITEM_ICON_2CH1                                  = 0;            //2chアイコン          ITEM_ICON_2CH1                                  = 0;            //2chアイコン
1002          ITEM_ICON_2CH2                                  = 1;            //2chアイコン          ITEM_ICON_2CH2                                  = 1;            //2chアイコン
# Line 1022  const Line 1022  const
1022          TOOL_ICON_WIDTH_NORMAL  = 21;           //幅標準アイコン          TOOL_ICON_WIDTH_NORMAL  = 21;           //幅標準アイコン
1023    
1024          TOOL_ICON_FAV_FOLDER            = 30;           //お気に入りフォルダアイコン          TOOL_ICON_FAV_FOLDER            = 30;           //お気に入りフォルダアイコン
1025          TOOL_ICON_FAV_BOARD              = 31;          //お気に入り板アイコン          TOOL_ICON_FAV_BOARD                     = 31;           //お気に入り板アイコン
1026          TOOL_ICON_FAV_THREAD            = 32;           //お気に入りスレアイコン          TOOL_ICON_FAV_THREAD            = 32;           //お気に入りスレアイコン
1027    
1028          HTML_FILE_NAME  = 'temp_preview.html';          HTML_FILE_NAME  = 'temp_preview.html';
# Line 1119  begin Line 1119  begin
1119    
1120          //フォント・色設定          //フォント・色設定
1121          TreeView.Items.BeginUpdate;          TreeView.Items.BeginUpdate;
1122    FavoriteTreeView.Items.BeginUpdate;          FavoriteTreeView.Items.BeginUpdate;
1123          ListView.Items.BeginUpdate;          ListView.Items.BeginUpdate;
1124          try          try
1125                  TreeView.Font.Name := GikoSys.Setting.CabinetFontName;                  TreeView.Font.Name := GikoSys.Setting.CabinetFontName;
# Line 1138  begin Line 1138  begin
1138                  ListView.Color := GikoSys.Setting.ListBackColor;                  ListView.Color := GikoSys.Setting.ListBackColor;
1139          finally          finally
1140                  TreeView.Items.EndUpdate;                  TreeView.Items.EndUpdate;
1141      FavoriteTreeView.Items.EndUpdate;                  FavoriteTreeView.Items.EndUpdate;
1142                  ListView.Items.EndUpdate;                  ListView.Items.EndUpdate;
1143          end;          end;
1144          //ViewNoButton.Down := GikoSys.Setting.ListViewNo;          //ViewNoButton.Down := GikoSys.Setting.ListViewNo;
# Line 1147  begin Line 1147  begin
1147          //ブラウザタブフォント          //ブラウザタブフォント
1148          BrowserTab.Font.Name := GikoSys.Setting.BrowserTabFontName;          BrowserTab.Font.Name := GikoSys.Setting.BrowserTabFontName;
1149          BrowserTab.Font.Size := GikoSys.Setting.BrowserTabFontSize;          BrowserTab.Font.Size := GikoSys.Setting.BrowserTabFontSize;
1150      FDragWFirst := false;                  FDragWFirst := false;
1151    
1152  //      TreeView.TopItem.Expanded := True;                              //ツリートップ項目だけを開く  //      TreeView.TopItem.Expanded := True;                              //ツリートップ項目だけを開く
1153  //      TreeView.Selected := TreeView.Items[0];         //ツリーのトップ項目を選択する  //      TreeView.Selected := TreeView.Items[0];         //ツリーのトップ項目を選択する
# Line 1354  begin Line 1354  begin
1354          end;          end;
1355          ReadToolBarSetting(ActionList, BrowserToolBar);          ReadToolBarSetting(ActionList, BrowserToolBar);
1356          SetToolBarPopup;          SetToolBarPopup;
1357      OnlyAHundredRes.Checked := GikoSys.Setting.OnlyAHundredRes;                  OnlyAHundredRes.Checked := GikoSys.Setting.OnlyAHundredRes;
1358          //アドレスバー          //アドレスバー
1359          AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop;          AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop;
1360    
# Line 1378  begin Line 1378  begin
1378          //ResHint          //ResHint
1379          FHint := TResPopup.Create(Self);          FHint := TResPopup.Create(Self);
1380    
1381    // 2ちゃんねるキャビネットの状態復元(未実装)          // 2ちゃんねるキャビネットの状態復元(未実装)
1382    // およびスレ一覧ペインの状態復元(未実装、現在は初期表示用)          // およびスレ一覧ペインの状態復元(未実装、現在は初期表示用)
1383    i := GikoSys.Setting.CabinetIndex;          i := GikoSys.Setting.CabinetIndex;
1384    Cabinet2chAction.Execute;          Cabinet2chAction.Execute;
1385    GikoSys.Setting.CabinetIndex := i;          GikoSys.Setting.CabinetIndex := i;
1386    
1387    // 最後に選択されたキャビネットの復元          // 最後に選択されたキャビネットの復元
1388    Case GikoSys.Setting.CabinetIndex of          Case GikoSys.Setting.CabinetIndex of
1389    0: Cabinet2chAction.Execute;          0: Cabinet2chAction.Execute;
1390    1: CabinetHistoryAction.Execute;          1: CabinetHistoryAction.Execute;
1391    2: CabinetFavoriteAction.Execute;          2: CabinetFavoriteAction.Execute;
1392    end;          end;
1393    
1394          //オートログイン          //オートログイン
1395          if GikoSys.Setting.AutoLogin then          if GikoSys.Setting.AutoLogin then
# Line 1565  var Line 1565  var
1565          CoolSet: TCoolSet;          CoolSet: TCoolSet;
1566          wp: TWindowPlacement;          wp: TWindowPlacement;
1567  begin  begin
1568      if ( GikoSys.Setting.ShowDialogForEnd ) and                  if ( GikoSys.Setting.ShowDialogForEnd ) and
1569                  (MessageDlg('ギコナビを終了してよろしいですか?', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel ) then begin                                  (MessageDlg('ギコナビを終了してよろしいですか?', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel ) then begin
1570          CanClose := false;                          CanClose := false;
1571          Exit;                                  Exit;
1572      end else begin                  end else begin
1573          CanClose := True;                          CanClose := True;
1574      end;                  end;
1575          Application.OnDeactivate := nil;          Application.OnDeactivate := nil;
1576          Self.OnDeactivate := nil;          Self.OnDeactivate := nil;
1577    
# Line 2320  begin Line 2320  begin
2320                  end else begin                  end else begin
2321                          URL := Text;                          URL := Text;
2322    
2323        if Pos('about:blank..', URL) = 1 then                          if Pos('about:blank..', URL) = 1 then
2324          URL := StringReplace(URL, 'about:blank..', 'http://www.2ch.net', []);                                  URL := StringReplace(URL, 'about:blank..', 'http://www.2ch.net', []);
2325    
2326                          PathRec := Gikosys.Parse2chURL2(URL);                          PathRec := Gikosys.Parse2chURL2(URL);
2327    
# Line 2522  const Line 2522  const
2522  begin  begin
2523    
2524          if Pos(kMenuName, URL) <> 0 then begin          if Pos(kMenuName, URL) <> 0 then begin
2525          sNo := Copy( URL, Pos( kMenuName, URL ) + Length( kMenuName ), Length( URL ) );                  sNo := Copy( URL, Pos( kMenuName, URL ) + Length( kMenuName ), Length( URL ) );
2526                        
2527                  if not GikoSys.IsNumeric(sNo) then Exit;                  if not GikoSys.IsNumeric(sNo) then Exit;
2528    
2529                  Cancel := True;                  Cancel := True;
# Line 3034  begin Line 3034  begin
3034                          finally                          finally
3035                          end;                          end;
3036                  end else begin                  end else begin
3037              //Application.ProcessMessages;                                                  //Application.ProcessMessages;
3038                          GikoSys.CreateHTML2(Browser.Document, ThreadItem, sTitle);                          GikoSys.CreateHTML2(Browser.Document, ThreadItem, sTitle);
3039                          while (Browser.ReadyState <> READYSTATE_COMPLETE) and                          while (Browser.ReadyState <> READYSTATE_COMPLETE) and
3040                                                  (Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin                                                  (Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
# Line 3347  begin Line 3347  begin
3347          GikoSys.Setting.CabinetIndex := 0;          GikoSys.Setting.CabinetIndex := 0;
3348    
3349          FavoriteTreeView.Visible := False;          FavoriteTreeView.Visible := False;
3350    FavoriteToolBar.Hide;          FavoriteToolBar.Hide;
3351    TreeView.Visible := True;          TreeView.Visible := True;
3352    
3353    CabinetSelectToolButton.Caption := '2ちゃんねる';          CabinetSelectToolButton.Caption := '2ちゃんねる';
3354    
3355    Cabinet2chAction.Checked := True;          Cabinet2chAction.Checked := True;
3356    CabinetHistoryAction.Checked := False;          CabinetHistoryAction.Checked := False;
3357    CabinetFavoriteAction.Checked := False;          CabinetFavoriteAction.Checked := False;
3358    
3359          if FTreeType <> gtt2ch then begin          if FTreeType <> gtt2ch then begin
3360                  FTreeType := gtt2ch;                  FTreeType := gtt2ch;
# Line 3378  begin Line 3378  begin
3378          GikoSys.Setting.CabinetIndex := 1;          GikoSys.Setting.CabinetIndex := 1;
3379    
3380          FavoriteTreeView.Visible := False;          FavoriteTreeView.Visible := False;
3381    TreeView.Visible := True;          TreeView.Visible := True;
3382    
3383    Cabinet2chAction.Checked := False;          Cabinet2chAction.Checked := False;
3384    CabinetHistoryAction.Checked := True;          CabinetHistoryAction.Checked := True;
3385    CabinetFavoriteAction.Checked := False;          CabinetFavoriteAction.Checked := False;
3386              
3387          if FTreeType <> gttHistory then begin          if FTreeType <> gttHistory then begin
3388                  FTreeType := gttHistory;                  FTreeType := gttHistory;
3389                  HistoryToolBar.Show;                  HistoryToolBar.Show;
3390      FavoriteToolBar.Hide;                  FavoriteToolBar.Hide;
3391                  SetHistoryTreeNode;                  SetHistoryTreeNode;
3392                  CabinetSelectToolButton.Caption := '履歴リスト';                  CabinetSelectToolButton.Caption := '履歴リスト';
3393          end;          end;
# Line 3739  begin Line 3739  begin
3739                          chk := nil;                          chk := nil;
3740    
3741                  FSearchDialog := TSearchDialog.Create(Self, chk);                  FSearchDialog := TSearchDialog.Create(Self, chk);
3742      FSearchDialog.SearchComboBox.Items.Assign( GikoSys.Setting.SelectTextList );                  FSearchDialog.SearchComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
3743          end;          end;
3744    
3745          try          try
# Line 5012  var Line 5012  var
5012  begin  begin
5013    
5014  //      if NewTab = -1 then  //      if NewTab = -1 then
5015      if not BrowserTab.Dragging then begin                  if not BrowserTab.Dragging then begin
5016                  FTabHintIndex := -1;                  FTabHintIndex := -1;
5017                  BrowserTab.Hint := '';                  BrowserTab.Hint := '';
5018                  idx := BrowserTab.TabIndex;                  idx := BrowserTab.TabIndex;
# Line 5024  begin Line 5024  begin
5024                          if GikoSys.Setting.URLDisplay then                          if GikoSys.Setting.URLDisplay then
5025                                  AddressComboBox.Text := GikoSys.GetURL(ThreadItem.ParentBoard.BBSID, ThreadItem.FileName);                                  AddressComboBox.Text := GikoSys.GetURL(ThreadItem.ParentBoard.BBSID, ThreadItem.FileName);
5026                  end;                  end;
5027      end;                  end;
5028  end;  end;
5029  procedure TGikoForm.BrowserTabClick(Sender: TObject);  procedure TGikoForm.BrowserTabClick(Sender: TObject);
5030  var  var
# Line 5089  begin Line 5089  begin
5089                          BrowserTabPopupMenu.Popup(p2.X, p2.Y);                          BrowserTabPopupMenu.Popup(p2.X, p2.Y);
5090                  end;                  end;
5091          {end else if BUtton = mbLeft then begin          {end else if BUtton = mbLeft then begin
5092          FDragWFirst := true;                          FDragWFirst := true;
5093      }                  }
5094      end;                  end;
5095    
5096  end;  end;
5097    
# Line 5174  var Line 5174  var
5174          ThreadItem: TThreadItem;          ThreadItem: TThreadItem;
5175  begin  begin
5176    
5177      TabIdx := BrowserTab.IndexOfTabAt(x, y);                  TabIdx := BrowserTab.IndexOfTabAt(x, y);
5178    
5179          if ( ssLeft in Shift )then begin          if ( ssLeft in Shift )then begin
5180          if FDragWFirst = false then begin                                  if FDragWFirst = false then begin
5181          //      FDragWFirst := true;                                  //      FDragWFirst := true;
5182          end else begin{                                  end else begin{
5183                  BrowserTab.EndDrag(false);                                          BrowserTab.EndDrag(false);
5184              BrowserTab.BeginDrag(false, DandD_THRESHOLD);                                                  BrowserTab.BeginDrag(false, DandD_THRESHOLD);
5185              FDragWFirst := false;                                                  FDragWFirst := false;
5186          }end;                                  }end;
5187      end else begin                  end else begin
5188      {                  {
5189          BrowserTab.EndDrag(false);                          BrowserTab.EndDrag(false);
5190              FDragWFirst := false;                          FDragWFirst := false;
5191      }                  }
5192      end;                  end;
5193    
5194          if (FTabHintIndex <> TabIdx) and (TabIdx <> -1) then begin          if (FTabHintIndex <> TabIdx) and (TabIdx <> -1) then begin
5195                  Application.CancelHint;                  Application.CancelHint;
# Line 5720  end; Line 5720  end;
5720  procedure TGikoForm.ShowFavoriteAddDialog( Item : TObject );  procedure TGikoForm.ShowFavoriteAddDialog( Item : TObject );
5721  var  var
5722          Dlg: TFavoriteAddDialog;          Dlg: TFavoriteAddDialog;
5723    i, b: Integer;          i, b: Integer;
5724          ThreadItem: TThreadItem;          ThreadItem: TThreadItem;
5725    Board: TBoard;          Board: TBoard;
5726    FavThread: TFavoriteThreadItem;          FavThread: TFavoriteThreadItem;
5727    FavBoard: TFavoriteBoardItem;          FavBoard: TFavoriteBoardItem;
5728  begin  begin
5729    
5730          b := FavoriteTreeView.Items.Count - 1;          b := FavoriteTreeView.Items.Count - 1;
5731    if Item is TBoard then begin          if Item is TBoard then begin
5732      for i := 0 to b do begin                  for i := 0 to b do begin
5733        if TObject(FavoriteTreeView.Items.Item[ i ].Data) is TFavoriteBoardItem then begin                          if TObject(FavoriteTreeView.Items.Item[ i ].Data) is TFavoriteBoardItem then begin
5734          FavBoard := TFavoriteBoardItem( FavoriteTreeView.Items.Item[ i ].Data );                                  FavBoard := TFavoriteBoardItem( FavoriteTreeView.Items.Item[ i ].Data );
5735          Board := BBS2ch.FindBBSID(FavBoard.BBSID);                                  Board := BBS2ch.FindBBSID(FavBoard.BBSID);
   
         if Board = Item then begin  
           if Application.MessageBox( '既にお気に入りに登録されています。それでも追加しますか?', 'お気に入りの追加', MB_YESNO ) = IDNO then  
             Exit;  
           Break;  
         end;  
       end;  
     end;  
   
     Dlg := TFavoriteAddDialog.Create(Self);  
     try  
       Dlg.SetBoard( TBoard(Item) );  
       Dlg.ShowModal;  
     finally  
       Dlg.Free;  
     end;  
   end else if Item is TThreadItem then begin  
     for i := 0 to b do begin  
       if TObject(FavoriteTreeView.Items.Item[ i ].Data) is TFavoriteThreadItem then begin  
         FavThread := TFavoriteThreadItem( FavoriteTreeView.Items.Item[ i ].Data );  
         Board := BBS2ch.FindBBSID(FavThread.BBSID);  
         if Board <> nil then  
           if not Board.IsThreadDatRead then  
             GikoSys.ReadSubjectFile(Board);  
         ThreadItem := BBS2ch.FindThreadItem(FavThread.BBSID, FavThread.ThreadID);  
   
         if ThreadItem = Item then begin  
           if Application.MessageBox( '既にお気に入りに登録されています。それでも追加しますか?', 'お気に入りの追加', MB_YESNO ) = IDNO then  
             Exit;  
           Break;  
         end;  
       end;  
     end;  
   
     Dlg := TFavoriteAddDialog.Create(Self);  
     try  
       Dlg.SetThreadItem( TThreadItem(Item) );  
       Dlg.ShowModal;  
     finally  
       Dlg.Free;  
     end;  
   end;  
5736    
5737    SetLinkBar;                                  if Board = Item then begin
5738                                            if Application.MessageBox( '既にお気に入りに登録されています。それでも追加しますか?', 'お気に入りの追加', MB_YESNO ) = IDNO then
5739                                                    Exit;
5740                                            Break;
5741                                    end;
5742                            end;
5743                    end;
5744    
5745                    Dlg := TFavoriteAddDialog.Create(Self);
5746                    try
5747                            Dlg.SetBoard( TBoard(Item) );
5748                            Dlg.ShowModal;
5749                    finally
5750                            Dlg.Free;
5751                    end;
5752            end else if Item is TThreadItem then begin
5753                    for i := 0 to b do begin
5754                            if TObject(FavoriteTreeView.Items.Item[ i ].Data) is TFavoriteThreadItem then begin
5755                                    FavThread := TFavoriteThreadItem( FavoriteTreeView.Items.Item[ i ].Data );
5756                                    Board := BBS2ch.FindBBSID(FavThread.BBSID);
5757                                    if Board <> nil then
5758                                            if not Board.IsThreadDatRead then
5759                                                    GikoSys.ReadSubjectFile(Board);
5760                                    ThreadItem := BBS2ch.FindThreadItem(FavThread.BBSID, FavThread.ThreadID);
5761    
5762                                    if ThreadItem = Item then begin
5763                                            if Application.MessageBox( '既にお気に入りに登録されています。それでも追加しますか?', 'お気に入りの追加', MB_YESNO ) = IDNO then
5764                                                    Exit;
5765                                            Break;
5766                                    end;
5767                            end;
5768                    end;
5769    
5770                    Dlg := TFavoriteAddDialog.Create(Self);
5771                    try
5772                            Dlg.SetThreadItem( TThreadItem(Item) );
5773                            Dlg.ShowModal;
5774                    finally
5775                            Dlg.Free;
5776                    end;
5777            end;
5778    
5779            SetLinkBar;
5780    
5781  end;  end;
5782    
# Line 5804  begin Line 5804  begin
5804                  Item := TFavoriteMenuItem(Sender).Data                  Item := TFavoriteMenuItem(Sender).Data
5805          else if Sender is TLinkToolButton then          else if Sender is TLinkToolButton then
5806                  Item := TLinkToolButton(Sender).Data                  Item := TLinkToolButton(Sender).Data
5807    else if Sender is TTreeNode then          else if Sender is TTreeNode then
5808          Item := TTreeNode( Sender ).Data                  Item := TTreeNode( Sender ).Data
5809          else          else
5810                  Exit;                  Exit;
5811    
# Line 6520  begin Line 6520  begin
6520                                          ToolButton.Left := 10000;                                          ToolButton.Left := 10000;
6521                                          ToolButton.Data := FavoriteTreeView.Items[i].Item[j].Data;                                          ToolButton.Data := FavoriteTreeView.Items[i].Item[j].Data;
6522                                          ToolButton.AutoSize := True;                                          ToolButton.AutoSize := True;
6523            ToolButton.OnDragDrop := LinkToolButtonDragDrop;                                          ToolButton.OnDragDrop := LinkToolButtonDragDrop;
6524            ToolButton.OnDragOver := FavoriteDragOver;                                          ToolButton.OnDragOver := FavoriteDragOver;
6525            ToolButton.OnMouseDown := LinkToolButtonOnMouseDown;                                          ToolButton.OnMouseDown := LinkToolButtonOnMouseDown;
6526            ToolButton.OnMouseMove := LinkToolButtonOnMouseMove;                                          ToolButton.OnMouseMove := LinkToolButtonOnMouseMove;
6527            ToolButton.OnMouseUp := LinkToolButtonOnMouseUp;                                          ToolButton.OnMouseUp := LinkToolButtonOnMouseUp;
6528            ToolButton.OnStartDrag := LinkToolButtonStartDrag;                                          ToolButton.OnStartDrag := LinkToolButtonStartDrag;
6529            //ToolButton.DragMode := dmAutomatic;                                          //ToolButton.DragMode := dmAutomatic;
6530            ToolButton.DragMode := dmManual;                                          ToolButton.DragMode := dmManual;
6531            ToolButton.PopupMenu := FavoriteTreePopupMenu;                                          ToolButton.PopupMenu := FavoriteTreePopupMenu;
6532    
6533                                          LinkToolBar.InsertControl(ToolButton);                                          LinkToolBar.InsertControl(ToolButton);
6534                                  end;                                  end;
# Line 6550  end; Line 6550  end;
6550  procedure TGikoForm.FavoriteDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);  procedure TGikoForm.FavoriteDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
6551  var  var
6552          Node: TTreeNode;          Node: TTreeNode;
6553    bound: TRect;          bound: TRect;
6554    height: Integer;          height: Integer;
6555    Change: Boolean;          Change: Boolean;
6556  begin  begin
6557    
6558          if Sender = FavoriteTreeView then begin          if Sender = FavoriteTreeView then begin
6559          Node := FavoriteTreeView.GetNodeAt(X, Y);                  Node := FavoriteTreeView.GetNodeAt(X, Y);
6560    
6561                    if Node = nil then
6562                            Exit;
6563    
6564                    bound := Node.DisplayRect( False );
6565                    height := bound.Bottom - bound.Top;
6566                    if (bound.Top + height / 2) <= Y then
6567                            Node := FavoriteTreeView.GetNodeAt(X, Y + height);
6568    
6569      if Node = nil then                  if Node = nil then
6570          Exit;                          Exit;
6571    
6572      bound := Node.DisplayRect( False );                  if Node.IsFirstNode then
6573      height := bound.Bottom - bound.Top;                          Exit;
6574      if (bound.Top + height / 2) <= Y then  
6575        Node := FavoriteTreeView.GetNodeAt(X, Y + height);                  Change := True;
6576    
6577      if Node = nil then                  if FDropSpaceNode <> nil then
6578          Exit;                          if FDropSpaceNode.AbsoluteIndex = Node.AbsoluteIndex then
6579                                    Change := False;
6580      if Node.IsFirstNode then  
6581          Exit;                  if Change then begin
6582                            if FDropSpaceNode <> nil then
6583      Change := True;                                  FDropSpaceNode.Free;
6584    
6585      if FDropSpaceNode <> nil then                          FDropSpaceNode := FavoriteDM.TreeView.Items.AddChildObject(Node.Parent, '', nil );
6586          if FDropSpaceNode.AbsoluteIndex = Node.AbsoluteIndex then                          FDropSpaceNode.MoveTo( Node, naInsert );
6587          Change := False;                          FDropSpaceNode.ImageIndex := -1;
6588                            FDropSpaceNode.SelectedIndex := -1;
6589      if Change then begin                  end;
6590          if FDropSpaceNode <> nil then          end;
                 FDropSpaceNode.Free;  
   
       FDropSpaceNode := FavoriteDM.TreeView.Items.AddChildObject(Node.Parent, '', nil );  
       FDropSpaceNode.MoveTo( Node, naInsert );  
       FDropSpaceNode.ImageIndex := -1;  
       FDropSpaceNode.SelectedIndex := -1;  
     end;  
   end;  
6591    
6592          if Source = FavoriteTreeView then begin          if Source = FavoriteTreeView then begin
6593                  if FavoriteTreeView.Selected = FavoriteTreeView.Items.GetFirstNode then begin                  if FavoriteTreeView.Selected = FavoriteTreeView.Items.GetFirstNode then begin
# Line 6595  begin Line 6595  begin
6595                          Exit;                          Exit;
6596                  end;                  end;
6597                  Accept := True;                  Accept := True;
6598    end else if Source = BrowserTab then          end else if Source = BrowserTab then
6599            Accept := True                  Accept := True
6600    else if Source = ListView then          else if Source = ListView then
6601          Accept := True                  Accept := True
6602    else if Source is TLinkToolButton then          else if Source is TLinkToolButton then
6603          Accept := True                  Accept := True
6604    else if Source = TreeView then          else if Source = TreeView then
6605          Accept := True                  Accept := True
6606          else          else
6607                  Accept := False;                  Accept := False;
6608  end;  end;
# Line 6615  begin Line 6615  begin
6615  end;  end;
6616  procedure TGikoForm.LinkToolButtonStartDrag(Sender: TObject; var DragObject: TDragObject);  procedure TGikoForm.LinkToolButtonStartDrag(Sender: TObject; var DragObject: TDragObject);
6617  begin  begin
6618     //   FDragging := true;           //     FDragging := true;
6619  end;  end;
6620    
6621  procedure TGikoForm.LinkToolButtonDragDrop(Sender, Source: TObject; X, Y: Integer);  procedure TGikoForm.LinkToolButtonDragDrop(Sender, Source: TObject; X, Y: Integer);
6622  var  var
6623    SenderNode: TTreeNode;          SenderNode: TTreeNode;
6624    LinkToolButton: TLinkToolButton;          LinkToolButton: TLinkToolButton;
6625  begin  begin
6626    
6627    LinkToolButton := TLinkToolButton( Sender );          LinkToolButton := TLinkToolButton( Sender );
6628    SenderNode := TreeNodeDataFind( FavoriteTreeView.TopItem, LinkToolButton.Data );          SenderNode := TreeNodeDataFind( FavoriteTreeView.TopItem, LinkToolButton.Data );
6629    
6630          FavoriteDragDrop( SenderNode, Source );          FavoriteDragDrop( SenderNode, Source );
6631    
# Line 6639  procedure TGikoForm.LinkToolButtonOnMous Line 6639  procedure TGikoForm.LinkToolButtonOnMous
6639  var  var
6640          Now : Cardinal;          Now : Cardinal;
6641  begin  begin
6642      TToolButton( Sender ).DragMode := dmManual;                  TToolButton( Sender ).DragMode := dmManual;
6643      if ssLeft in Shift then begin                  if ssLeft in Shift then begin
6644          TToolButton( Sender ).Down := true;                                  TToolButton( Sender ).Down := true;
6645                  if FDragTime = 0 then begin                  if FDragTime = 0 then begin
6646                  FDragTime := GetTickCount();                                  FDragTime := GetTickCount();
6647          end else begin                          end else begin
6648                  Now := GetTickCount();                                          Now := GetTickCount();
6649              if (Now - FDragTime) > 500 then begin                                                  if (Now - FDragTime) > 500 then begin
6650                  if FDragButton <> TToolButton( Sender ) then begin                                                                  if FDragButton <> TToolButton( Sender ) then begin
6651                                          try                                          try
6652                                  FDragButton := TToolButton( Sender );                                                                                  FDragButton := TToolButton( Sender );
6653                          TToolButton(Sender).BeginDrag(false ,5);                                                                                          TToolButton(Sender).BeginDrag(false ,5);
6654                          FDragTime := 0;                                                                                          FDragTime := 0;
6655                          except                                                                          except
6656                          {$IF Defined(debug)}                                                                                                  {$IF Defined(debug)}
6657                                  ShowMessage('Error');                                                                                  ShowMessage('Error');
6658                          {$IFEND}                                                                                                  {$IFEND}
6659                          end;                                                                          end;
6660                  end;                                                          end;
6661              end;                                                  end;
6662          end;                                  end;
6663      end else begin                  end else begin
6664          FDragTime := 0;                          FDragTime := 0;
6665      end;                  end;
6666  end;  end;
6667    
6668  procedure TGikoForm.LinkToolButtonOnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);  procedure TGikoForm.LinkToolButtonOnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
# Line 6957  procedure TGikoForm.ToolBarSettingAction Line 6957  procedure TGikoForm.ToolBarSettingAction
6957  var  var
6958          Dlg: TToolBarSettingDialog;          Dlg: TToolBarSettingDialog;
6959          i: Integer;          i: Integer;
6960    //Component: TComponent;          //Component: TComponent;
6961  begin  begin
6962          Dlg := TToolBarSettingDialog.Create(Self, ActionList);          Dlg := TToolBarSettingDialog.Create(Self, ActionList);
6963          try          try
6964                  Dlg.AddToolBar(StdToolBar, gttStandard);                  Dlg.AddToolBar(StdToolBar, gttStandard);
6965                  Dlg.AddToolBar(ListToolBar, gttList);                  Dlg.AddToolBar(ListToolBar, gttList);
6966                  Dlg.AddToolBar(BrowserToolBar, gttBrowser);                  Dlg.AddToolBar(BrowserToolBar, gttBrowser);
6967      {                  {
6968      if ToolBarSettingAction.ActionComponent.GetParentComponent is TPopupMenu then begin                  if ToolBarSettingAction.ActionComponent.GetParentComponent is TPopupMenu then begin
6969          Component := TPopupMenu( ToolBarSettingAction.ActionComponent.GetParentComponent ).PopupComponent;                          Component := TPopupMenu( ToolBarSettingAction.ActionComponent.GetParentComponent ).PopupComponent;
6970    
6971        if Component = MainCoolBar then                          if Component = MainCoolBar then
6972          Dlg.ToolBarComboBox.ItemIndex := 0                                  Dlg.ToolBarComboBox.ItemIndex := 0
6973        else if Component = ListCoolBar then                          else if Component = ListCoolBar then
6974          Dlg.ToolBarComboBox.ItemIndex := 1                                  Dlg.ToolBarComboBox.ItemIndex := 1
6975        else if Component = BrowserCoolBar then                          else if Component = BrowserCoolBar then
6976          Dlg.ToolBarComboBox.ItemIndex := 2;                                  Dlg.ToolBarComboBox.ItemIndex := 2;
6977      end;                  end;
6978      }                  }
6979                  if Dlg.ShowModal = mrOK then begin                  if Dlg.ShowModal = mrOK then begin
6980                          SetToolBarPopup;                          SetToolBarPopup;
6981    
# Line 7061  begin Line 7061  begin
7061                   (Wnd = BrowserTab.Parent.Handle) then begin                   (Wnd = BrowserTab.Parent.Handle) then begin
7062                  BrowserTab.ScrollTabs(Delta);                  BrowserTab.ScrollTabs(Delta);
7063          end else if Wnd = ListView.Handle then begin          end else if Wnd = ListView.Handle then begin
7064          if ListView.ViewStyle = vsList then                  if ListView.ViewStyle = vsList then
7065                          ListView.Scroll( Delta * Mouse.WheelScrollLines * Abs( ListView.Font.Height ), 0 )                          ListView.Scroll( Delta * Mouse.WheelScrollLines * Abs( ListView.Font.Height ), 0 )
7066                  else                  else
7067                          ListView.Scroll( 0, Delta * Mouse.WheelScrollLines * Abs( ListView.Font.Height ) );                          ListView.Scroll( 0, Delta * Mouse.WheelScrollLines * Abs( ListView.Font.Height ) );
# Line 7584  begin Line 7584  begin
7584    
7585          // キャビネットツールバー及びキャビネットの表示切替          // キャビネットツールバー及びキャビネットの表示切替
7586          HistoryToolBar.Hide;          HistoryToolBar.Hide;
7587    FavoriteToolBar.Show;          FavoriteToolBar.Show;
7588          TreeView.Visible := False;          TreeView.Visible := False;
7589    FavoriteTreeView.Visible := True;          FavoriteTreeView.Visible := True;
7590    
7591          CabinetSelectToolButton.Caption := 'お気に入り';          CabinetSelectToolButton.Caption := 'お気に入り';
7592    
7593    // メニュー及びボタンのチェックを設定          // メニュー及びボタンのチェックを設定
7594    Cabinet2chAction.Checked := False;          Cabinet2chAction.Checked := False;
7595    CabinetHistoryAction.Checked := False;          CabinetHistoryAction.Checked := False;
7596    CabinetFavoriteAction.Checked := True;          CabinetFavoriteAction.Checked := True;
7597    
7598    // お気に入りのツリーを展開          // お気に入りのツリーを展開
7599    FavoriteTreeView.TopItem.Expanded := True;          FavoriteTreeView.TopItem.Expanded := True;
7600    
7601  end;  end;
7602    
7603  procedure TGikoForm.FavoriteMoveTo( SenderNode, SourceNode: TTreeNode );  procedure TGikoForm.FavoriteMoveTo( SenderNode, SourceNode: TTreeNode );
7604  begin  begin
7605    
7606    if (SenderNode = nil) or (SourceNode = nil) or (SenderNode = SourceNode) then          if (SenderNode = nil) or (SourceNode = nil) or (SenderNode = SourceNode) then
7607      Exit;                  Exit;
7608    
7609    if TObject(SenderNode.Data) is TFavoriteFolder then          if TObject(SenderNode.Data) is TFavoriteFolder then
7610      SourceNode.MoveTo(SenderNode, naAddChild)                  SourceNode.MoveTo(SenderNode, naAddChild)
7611    else          else
7612      SourceNode.MoveTo(SenderNode, naInsert);                  SourceNode.MoveTo(SenderNode, naInsert);
7613    
7614  end;  end;
7615    
# Line 7617  procedure TGikoForm.FavoriteAddTo( Sende Line 7617  procedure TGikoForm.FavoriteAddTo( Sende
7617  var  var
7618          Node: TTreeNode;          Node: TTreeNode;
7619          FavNode: TTreeNode;          FavNode: TTreeNode;
7620    FavoBoardItem: TFavoriteBoardItem;          FavoBoardItem: TFavoriteBoardItem;
7621    FavoThreadItem: TFavoriteThreadItem;          FavoThreadItem: TFavoriteThreadItem;
7622    Board: TBoard;          Board: TBoard;
7623    ThreadItem: TThreadItem;          ThreadItem: TThreadItem;
7624  begin  begin
7625    
7626    if (SenderNode = nil) or (Source = nil) then          if (SenderNode = nil) or (Source = nil) then
7627      Exit;                  Exit;
7628    
7629    if not (TObject(SenderNode.Data) is TFavoriteFolder) then          if not (TObject(SenderNode.Data) is TFavoriteFolder) then
7630      FavNode := SenderNode.Parent                  FavNode := SenderNode.Parent
7631    else          else
7632      FavNode := SenderNode;                  FavNode := SenderNode;
7633    
7634    if Source is TBoard then begin          if Source is TBoard then begin
7635          Board := TBoard( Source );                  Board := TBoard( Source );
7636      FavoBoardItem := TFavoriteBoardItem.Create;                  FavoBoardItem := TFavoriteBoardItem.Create;
7637      FavoBoardItem.BBSID := Board.BBSID;                  FavoBoardItem.BBSID := Board.BBSID;
7638      FavoBoardItem.BoardName := Board.Title;                  FavoBoardItem.BoardName := Board.Title;
7639      Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, Board.Title, FavoBoardItem);                  Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, Board.Title, FavoBoardItem);
7640      Node.ImageIndex := 15;                  Node.ImageIndex := 15;
7641      Node.SelectedIndex := 15;                  Node.SelectedIndex := 15;
7642    end else if Source is TFavoriteBoardItem then begin          end else if Source is TFavoriteBoardItem then begin
7643      Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, Board.Title, Source);                  Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, Board.Title, Source);
7644      Node.ImageIndex := 15;                  Node.ImageIndex := 15;
7645      Node.SelectedIndex := 15;                  Node.SelectedIndex := 15;
7646    end else if Source is TThreadItem then begin          end else if Source is TThreadItem then begin
7647          ThreadItem := TThreadItem( Source );                  ThreadItem := TThreadItem( Source );
7648      FavoThreadItem := TFavoriteThreadItem.Create;                  FavoThreadItem := TFavoriteThreadItem.Create;
7649      FavoThreadItem.BBSID := ThreadItem.ParentBoard.BBSID;                  FavoThreadItem.BBSID := ThreadItem.ParentBoard.BBSID;
7650      FavoThreadItem.ThreadID := ThreadItem.FileName;                  FavoThreadItem.ThreadID := ThreadItem.FileName;
7651      FavoThreadItem.ThreadName := ThreadItem.Title;                  FavoThreadItem.ThreadName := ThreadItem.Title;
7652      Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, ThreadItem.Title, FavoThreadItem);                  Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, ThreadItem.Title, FavoThreadItem);
7653      Node.ImageIndex := 16;                  Node.ImageIndex := 16;
7654      Node.SelectedIndex := 16;                  Node.SelectedIndex := 16;
7655    end else if Source is TFavoriteThreadItem then begin          end else if Source is TFavoriteThreadItem then begin
7656      Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, ThreadItem.Title, Source);                  Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, ThreadItem.Title, Source);
7657      Node.ImageIndex := 16;                  Node.ImageIndex := 16;
7658      Node.SelectedIndex := 16;                  Node.SelectedIndex := 16;
7659          end;          end;
7660    
7661  end;  end;
# Line 7663  end; Line 7663  end;
7663  procedure TGikoForm.FavoriteDragDrop( SenderNode: TTreeNode; Source: TObject );  procedure TGikoForm.FavoriteDragDrop( SenderNode: TTreeNode; Source: TObject );
7664  var  var
7665          idx: Integer;          idx: Integer;
7666    SourceNode: TTreeNode;          SourceNode: TTreeNode;
7667    LinkToolButton: TLinkToolButton;          LinkToolButton: TLinkToolButton;
7668  begin  begin
7669    
7670          if SenderNode = nil then          if SenderNode = nil then
7671                  Exit;                  Exit;
7672    
7673    if not (TObject( SenderNode.Data ) is TFavoriteFolder) then          if not (TObject( SenderNode.Data ) is TFavoriteFolder) then
7674      if FDropSpaceNode <> nil then                  if FDropSpaceNode <> nil then
7675        SenderNode := FDropSpaceNode;                          SenderNode := FDropSpaceNode;
7676    
7677    if Source = FavoriteTreeView then begin          if Source = FavoriteTreeView then begin
7678    
7679          SourceNode := FavoriteTreeView.Selected;                  SourceNode := FavoriteTreeView.Selected;
7680      FavoriteMoveTo( SenderNode, SourceNode );                  FavoriteMoveTo( SenderNode, SourceNode );
7681    
7682    end else if Source is TLinkToolButton then begin          end else if Source is TLinkToolButton then begin
7683    
7684          LinkToolButton := TLinkToolButton( Source );                  LinkToolButton := TLinkToolButton( Source );
7685      //ShowMessage(LinkToolButton.Text);                  //ShowMessage(LinkToolButton.Text);
7686      SourceNode := TreeNodeDataFind( FavoriteTreeView.TopItem, LinkToolButton.Data );                  SourceNode := TreeNodeDataFind( FavoriteTreeView.TopItem, LinkToolButton.Data );
7687      FavoriteMoveTo( SenderNode, SourceNode );                  FavoriteMoveTo( SenderNode, SourceNode );
7688    
7689    end else if Source = BrowserTab then begin          end else if Source = BrowserTab then begin
7690    
7691      idx := BrowserTab.TabIndex;                  idx := BrowserTab.TabIndex;
7692      FavoriteAddTo( SenderNode, BrowserTab.Tabs.Objects[idx] );                  FavoriteAddTo( SenderNode, BrowserTab.Tabs.Objects[idx] );
7693    
7694    end else if Source = ListView then begin          end else if Source = ListView then begin
7695    
7696      FavoriteAddTo( SenderNode, ListView.Selected.Data );                  FavoriteAddTo( SenderNode, ListView.Selected.Data );
7697    
7698    end else if Source = TreeView then begin          end else if Source = TreeView then begin
7699    
7700          FavoriteAddTo( SenderNode, TreeView.Selected.Data );                  FavoriteAddTo( SenderNode, TreeView.Selected.Data );
7701    
7702    end;          end;
7703    
7704    SetLinkBar;          SetLinkBar;
7705    
7706  end;  end;
7707    
7708  procedure TGikoForm.FavoriteTreeViewDragDrop(Sender, Source: TObject; X,  procedure TGikoForm.FavoriteTreeViewDragDrop(Sender, Source: TObject; X,
7709    Y: Integer);          Y: Integer);
7710  var  var
7711    SenderNode: TTreeNode;          SenderNode: TTreeNode;
7712  begin  begin
7713    
7714          SenderNode := FavoriteTreeView.GetNodeAt(X, Y);          SenderNode := FavoriteTreeView.GetNodeAt(X, Y);
7715    if SenderNode <> nil then begin          if SenderNode <> nil then begin
7716      FavoriteDragDrop( SenderNode, Source );                  FavoriteDragDrop( SenderNode, Source );
7717    end;          end;
7718    
7719  end;  end;
7720    
7721  procedure TGikoForm.FavoriteTreeViewEdited(Sender: TObject;  procedure TGikoForm.FavoriteTreeViewEdited(Sender: TObject;
7722    Node: TTreeNode; var S: String);          Node: TTreeNode; var S: String);
7723  begin  begin
7724    
7725          FavoriteTreeView.ReadOnly := True;          FavoriteTreeView.ReadOnly := True;
7726    SetLinkBar;          SetLinkBar;
7727    
7728  end;  end;
7729    
7730  procedure TGikoForm.FavoriteTreeViewKeyDown(Sender: TObject; var Key: Word;  procedure TGikoForm.FavoriteTreeViewKeyDown(Sender: TObject; var Key: Word;
7731    Shift: TShiftState);          Shift: TShiftState);
7732  begin  begin
7733    
7734          Case Key of          Case Key of
7735    VK_F2:          VK_F2:
7736          begin                  begin
7737          FClickNode := FavoriteTreeView.Selected;                          FClickNode := FavoriteTreeView.Selected;
7738                  FavoriteTreeViewRenameActionExecute( Sender );                          FavoriteTreeViewRenameActionExecute( Sender );
7739      end;                  end;
7740    VK_DELETE:          VK_DELETE:
7741          begin                  begin
7742          FClickNode := FavoriteTreeView.Selected;                          FClickNode := FavoriteTreeView.Selected;
7743                  FavoriteTreeViewDeleteActionExecute( Sender );                          FavoriteTreeViewDeleteActionExecute( Sender );
7744      end;                  end;
7745    end;          end;
7746    
7747  end;  end;
7748    
7749  procedure TGikoForm.FavoriteTreePopupMenuPopup(Sender: TObject);  procedure TGikoForm.FavoriteTreePopupMenuPopup(Sender: TObject);
7750  var  var
7751          i: Integer;          i: Integer;
7752    LinkToolButton: TLinkToolButton;          LinkToolButton: TLinkToolButton;
7753  begin  begin
7754    
7755          if FavoriteTreePopupMenu.PopupComponent = FavoriteTreeView then begin          if FavoriteTreePopupMenu.PopupComponent = FavoriteTreeView then begin
7756              
7757                  FClickNode := FavoriteTreeView.Selected;                  FClickNode := FavoriteTreeView.Selected;
7758    
7759    end else if FavoriteTreePopupMenu.PopupComponent is TLinkToolButton then begin          end else if FavoriteTreePopupMenu.PopupComponent is TLinkToolButton then begin
7760    
7761          LinkToolButton := TLinkToolButton( FavoriteTreePopupMenu.PopupComponent );                  LinkToolButton := TLinkToolButton( FavoriteTreePopupMenu.PopupComponent );
7762      for i := 0 to FavoriteTreeView.Items.Count - 1 do begin                  for i := 0 to FavoriteTreeView.Items.Count - 1 do begin
7763        if FavoriteTreeView.Items[i].Text = Favorite.FAVORITE_LINK_NAME then begin                          if FavoriteTreeView.Items[i].Text = Favorite.FAVORITE_LINK_NAME then begin
7764          FClickNode := FavoriteTreeView.Items[i];                                  FClickNode := FavoriteTreeView.Items[i];
7765          Break;                                  Break;
7766        end;                          end;
7767      end;                  end;
7768      for i := 0 to FClickNode.Count - 1 do begin                  for i := 0 to FClickNode.Count - 1 do begin
7769        if FClickNode.Item[i].Data = LinkToolButton.Data then begin                          if FClickNode.Item[i].Data = LinkToolButton.Data then begin
7770          FClickNode := FClickNode.Item[i];                                  FClickNode := FClickNode.Item[i];
7771          Break;                                  Break;
7772        end;                          end;
7773      end;                  end;
7774    
7775    end;          end;
7776    
7777          if FClickNode = nil then begin          if FClickNode = nil then begin
7778          FavoriteTreeBrowseFolderPopupMenu.Enabled := False;                  FavoriteTreeBrowseFolderPopupMenu.Enabled := False;
7779          FavoriteTreeDeletePopupMenu.Enabled := False;                  FavoriteTreeDeletePopupMenu.Enabled := False;
7780      FavoriteTreeRenamePopupMenu.Enabled := False;                  FavoriteTreeRenamePopupMenu.Enabled := False;
7781      FavoriteTreeNewFolderPopupMenu.Enabled := False;                  FavoriteTreeNewFolderPopupMenu.Enabled := False;
7782      FavoriteTreeReloadPopupMenu.Enabled := False;                  FavoriteTreeReloadPopupMenu.Enabled := False;
7783      FavoriteTreeURLCopyPopupMenu.Enabled := False;                  FavoriteTreeURLCopyPopupMenu.Enabled := False;
7784      FavoriteTreeNameCopyPopupMenu.Enabled := False;                  FavoriteTreeNameCopyPopupMenu.Enabled := False;
7785      FavoriteTreeNameURLCopyPopupMenu.Enabled := False;                  FavoriteTreeNameURLCopyPopupMenu.Enabled := False;
7786      FavoriteTreeLogDeletePopupMenu.Enabled := False;                  FavoriteTreeLogDeletePopupMenu.Enabled := False;
7787    end else if FClickNode.IsFirstNode then begin          end else if FClickNode.IsFirstNode then begin
7788          FavoriteTreeBrowseFolderPopupMenu.Enabled := True;                  FavoriteTreeBrowseFolderPopupMenu.Enabled := True;
7789          FavoriteTreeDeletePopupMenu.Enabled := False;                  FavoriteTreeDeletePopupMenu.Enabled := False;
7790      FavoriteTreeRenamePopupMenu.Enabled := False;                  FavoriteTreeRenamePopupMenu.Enabled := False;
7791      FavoriteTreeNewFolderPopupMenu.Enabled := True;                  FavoriteTreeNewFolderPopupMenu.Enabled := True;
7792      FavoriteTreeReloadPopupMenu.Enabled := False;                  FavoriteTreeReloadPopupMenu.Enabled := False;
7793      FavoriteTreeURLCopyPopupMenu.Enabled := False;                  FavoriteTreeURLCopyPopupMenu.Enabled := False;
7794      FavoriteTreeNameCopyPopupMenu.Enabled := False;                  FavoriteTreeNameCopyPopupMenu.Enabled := False;
7795      FavoriteTreeNameURLCopyPopupMenu.Enabled := False;                  FavoriteTreeNameURLCopyPopupMenu.Enabled := False;
7796      FavoriteTreeLogDeletePopupMenu.Enabled := False;                  FavoriteTreeLogDeletePopupMenu.Enabled := False;
7797    end else if FClickNode.Text = Favorite.FAVORITE_LINK_NAME then begin          end else if FClickNode.Text = Favorite.FAVORITE_LINK_NAME then begin
7798          FavoriteTreeBrowseFolderPopupMenu.Enabled := True;                  FavoriteTreeBrowseFolderPopupMenu.Enabled := True;
7799          FavoriteTreeDeletePopupMenu.Enabled := True;                  FavoriteTreeDeletePopupMenu.Enabled := True;
7800      FavoriteTreeRenamePopupMenu.Enabled := False;                  FavoriteTreeRenamePopupMenu.Enabled := False;
7801      FavoriteTreeNewFolderPopupMenu.Enabled := True;                  FavoriteTreeNewFolderPopupMenu.Enabled := True;
7802      FavoriteTreeReloadPopupMenu.Enabled := False;                  FavoriteTreeReloadPopupMenu.Enabled := False;
7803      FavoriteTreeURLCopyPopupMenu.Enabled := False;                  FavoriteTreeURLCopyPopupMenu.Enabled := False;
7804      FavoriteTreeNameCopyPopupMenu.Enabled := False;                  FavoriteTreeNameCopyPopupMenu.Enabled := False;
7805      FavoriteTreeNameURLCopyPopupMenu.Enabled := False;                  FavoriteTreeNameURLCopyPopupMenu.Enabled := False;
7806      FavoriteTreeLogDeletePopupMenu.Enabled := False;                  FavoriteTreeLogDeletePopupMenu.Enabled := False;
7807          end else if TObject(FClickNode.Data) is TFavoriteFolder then begin          end else if TObject(FClickNode.Data) is TFavoriteFolder then begin
7808          FavoriteTreeBrowseFolderPopupMenu.Enabled := True;                  FavoriteTreeBrowseFolderPopupMenu.Enabled := True;
7809          FavoriteTreeDeletePopupMenu.Enabled := True;                  FavoriteTreeDeletePopupMenu.Enabled := True;
7810      FavoriteTreeRenamePopupMenu.Enabled := True;                  FavoriteTreeRenamePopupMenu.Enabled := True;
7811      FavoriteTreeNewFolderPopupMenu.Enabled := True;                  FavoriteTreeNewFolderPopupMenu.Enabled := True;
7812      FavoriteTreeReloadPopupMenu.Enabled := False;                  FavoriteTreeReloadPopupMenu.Enabled := False;
7813      FavoriteTreeURLCopyPopupMenu.Enabled := False;                  FavoriteTreeURLCopyPopupMenu.Enabled := False;
7814      FavoriteTreeNameCopyPopupMenu.Enabled := False;                  FavoriteTreeNameCopyPopupMenu.Enabled := False;
7815      FavoriteTreeNameURLCopyPopupMenu.Enabled := False;                  FavoriteTreeNameURLCopyPopupMenu.Enabled := False;
7816      FavoriteTreeLogDeletePopupMenu.Enabled := False;                  FavoriteTreeLogDeletePopupMenu.Enabled := False;
7817          end else if TObject(FClickNode.Data) is TFavoriteThreadItem then begin          end else if TObject(FClickNode.Data) is TFavoriteThreadItem then begin
7818          FavoriteTreeBrowseFolderPopupMenu.Enabled := False;                  FavoriteTreeBrowseFolderPopupMenu.Enabled := False;
7819          FavoriteTreeDeletePopupMenu.Enabled := True;                  FavoriteTreeDeletePopupMenu.Enabled := True;
7820      FavoriteTreeRenamePopupMenu.Enabled := True;                  FavoriteTreeRenamePopupMenu.Enabled := True;
7821      FavoriteTreeNewFolderPopupMenu.Enabled := True;                  FavoriteTreeNewFolderPopupMenu.Enabled := True;
7822      FavoriteTreeReloadPopupMenu.Enabled := True;                  FavoriteTreeReloadPopupMenu.Enabled := True;
7823      FavoriteTreeURLCopyPopupMenu.Enabled := True;                  FavoriteTreeURLCopyPopupMenu.Enabled := True;
7824      FavoriteTreeNameCopyPopupMenu.Enabled := True;                  FavoriteTreeNameCopyPopupMenu.Enabled := True;
7825      FavoriteTreeNameURLCopyPopupMenu.Enabled := True;                  FavoriteTreeNameURLCopyPopupMenu.Enabled := True;
7826      FavoriteTreeLogDeletePopupMenu.Enabled := True;                  FavoriteTreeLogDeletePopupMenu.Enabled := True;
7827          end else if TObject(FClickNode.Data) is TFavoriteBoardItem then begin          end else if TObject(FClickNode.Data) is TFavoriteBoardItem then begin
7828          FavoriteTreeBrowseFolderPopupMenu.Enabled := False;                  FavoriteTreeBrowseFolderPopupMenu.Enabled := False;
7829          FavoriteTreeDeletePopupMenu.Enabled := True;                  FavoriteTreeDeletePopupMenu.Enabled := True;
7830      FavoriteTreeRenamePopupMenu.Enabled := True;                  FavoriteTreeRenamePopupMenu.Enabled := True;
7831      FavoriteTreeNewFolderPopupMenu.Enabled := True;                  FavoriteTreeNewFolderPopupMenu.Enabled := True;
7832      FavoriteTreeReloadPopupMenu.Enabled := True;                  FavoriteTreeReloadPopupMenu.Enabled := True;
7833      FavoriteTreeURLCopyPopupMenu.Enabled := True;                  FavoriteTreeURLCopyPopupMenu.Enabled := True;
7834      FavoriteTreeNameCopyPopupMenu.Enabled := True;                  FavoriteTreeNameCopyPopupMenu.Enabled := True;
7835      FavoriteTreeNameURLCopyPopupMenu.Enabled := True;                  FavoriteTreeNameURLCopyPopupMenu.Enabled := True;
7836      FavoriteTreeLogDeletePopupMenu.Enabled := False;                  FavoriteTreeLogDeletePopupMenu.Enabled := False;
7837          end else begin          end else begin
7838          FavoriteTreeBrowseFolderPopupMenu.Enabled := False;                  FavoriteTreeBrowseFolderPopupMenu.Enabled := False;
7839          FavoriteTreeDeletePopupMenu.Enabled := False;                  FavoriteTreeDeletePopupMenu.Enabled := False;
7840      FavoriteTreeRenamePopupMenu.Enabled := False;                  FavoriteTreeRenamePopupMenu.Enabled := False;
7841      FavoriteTreeNewFolderPopupMenu.Enabled := False;                  FavoriteTreeNewFolderPopupMenu.Enabled := False;
7842      FavoriteTreeReloadPopupMenu.Enabled := False;                  FavoriteTreeReloadPopupMenu.Enabled := False;
7843      FavoriteTreeURLCopyPopupMenu.Enabled := False;                  FavoriteTreeURLCopyPopupMenu.Enabled := False;
7844      FavoriteTreeNameCopyPopupMenu.Enabled := False;                  FavoriteTreeNameCopyPopupMenu.Enabled := False;
7845      FavoriteTreeNameURLCopyPopupMenu.Enabled := False;                  FavoriteTreeNameURLCopyPopupMenu.Enabled := False;
7846      FavoriteTreeLogDeletePopupMenu.Enabled := False;                  FavoriteTreeLogDeletePopupMenu.Enabled := False;
7847          end;          end;
7848    
7849  end;  end;
# Line 7865  begin Line 7865  begin
7865    
7866          FClickNode.Delete;          FClickNode.Delete;
7867    
7868    SetLinkBar;          SetLinkBar;
7869    
7870  end;  end;
7871    
7872  procedure TGikoForm.FavoriteTreeViewRenameActionExecute(Sender: TObject);  procedure TGikoForm.FavoriteTreeViewRenameActionExecute(Sender: TObject);
7873  begin  begin
7874    
7875    if FClickNode = nil then          if FClickNode = nil then
7876      Exit;                  Exit;
7877    if FClickNode.IsFirstNode then          if FClickNode.IsFirstNode then
7878      Exit;                  Exit;
7879    if FClickNode.Text = Favorite.FAVORITE_LINK_NAME then          if FClickNode.Text = Favorite.FAVORITE_LINK_NAME then
7880      Exit;                  Exit;
7881    FavoriteTreeView.ReadOnly := False;          FavoriteTreeView.ReadOnly := False;
7882    FClickNode.EditText;          FClickNode.EditText;
7883    
7884    SetLinkBar;          SetLinkBar;
7885    
7886  end;  end;
7887    
7888  procedure TGikoForm.FavoriteTreeViewNewFolderActionExecute(  procedure TGikoForm.FavoriteTreeViewNewFolderActionExecute(
7889    Sender: TObject);          Sender: TObject);
7890  var  var
7891          NewFavFolder: TFavoriteFolder;          NewFavFolder: TFavoriteFolder;
7892          Node: TTreeNode;          Node: TTreeNode;
# Line 7896  begin Line 7896  begin
7896                  Exit;                  Exit;
7897    
7898          try          try
7899      if not (TObject(FClickNode.Data) is TFavoriteFolder) then begin                  if not (TObject(FClickNode.Data) is TFavoriteFolder) then begin
7900        FavoriteTreeView.Selected := FClickNode.Parent;                          FavoriteTreeView.Selected := FClickNode.Parent;
7901        FClickNode := FClickNode.Parent;                          FClickNode := FClickNode.Parent;
7902      end;                  end;
7903    
7904      NewFavFolder := TFavoriteFolder.Create;                  NewFavFolder := TFavoriteFolder.Create;
7905      Node := FavoriteTreeView.Items.AddChildObject(FClickNode, '新しいフォルダ', NewFavFolder);                  Node := FavoriteTreeView.Items.AddChildObject(FClickNode, '新しいフォルダ', NewFavFolder);
7906      Node.ImageIndex := 14;                  Node.ImageIndex := 14;
7907      Node.SelectedIndex := 14;                  Node.SelectedIndex := 14;
7908    //                    FClickNode.Selected.Expanded := True;          //                      FClickNode.Selected.Expanded := True;
7909      FavoriteTreeView.Selected := Node;                  FavoriteTreeView.Selected := Node;
7910      FClickNode := Node;                  FClickNode := Node;
7911                  FavoriteTreeViewRenameAction.Execute;                  FavoriteTreeViewRenameAction.Execute;
7912          finally          finally
7913          end;          end;
# Line 7918  procedure TGikoForm.ToolButton19Click(Se Line 7918  procedure TGikoForm.ToolButton19Click(Se
7918  begin  begin
7919    
7920          FavoriteArrangeActionExecute( nil );          FavoriteArrangeActionExecute( nil );
7921              
7922  end;  end;
7923    
7924  procedure TGikoForm.FavoriteBrowseFolder( node: TTreeNode );  procedure TGikoForm.FavoriteBrowseFolder( node: TTreeNode );
# Line 7927  var Line 7927  var
7927  begin  begin
7928    
7929          if not (TObject(node.Data) is TFavoriteFolder) then          if not (TObject(node.Data) is TFavoriteFolder) then
7930          exit;                  exit;
7931    
7932    for i := 0 to node.Count - 1 do          for i := 0 to node.Count - 1 do
7933          begin          begin
7934      if TObject(node.Item[i].Data) is TFavoriteFolder then                  if TObject(node.Item[i].Data) is TFavoriteFolder then
7935          FavoriteBrowseFolder( node.Item[i] )                          FavoriteBrowseFolder( node.Item[i] )
7936      else if TObject(node.Item[i].Data) is TFavoriteThreadItem then                  else if TObject(node.Item[i].Data) is TFavoriteThreadItem then
7937                  FavoriteClick( node.Item[i], False );                          FavoriteClick( node.Item[i], False );
7938    end;          end;
7939    
7940  end;  end;
7941    
7942  procedure TGikoForm.FavoriteTreeViewBrowseFolderActionExecute(  procedure TGikoForm.FavoriteTreeViewBrowseFolderActionExecute(
7943    Sender: TObject);          Sender: TObject);
7944  begin  begin
7945    
7946    FavoriteBrowseFolder( FClickNode );          FavoriteBrowseFolder( FClickNode );
7947    BrowserTab.OnChange(nil);          BrowserTab.OnChange(nil);
7948    
7949  end;  end;
7950    
7951  procedure TGikoForm.FavoriteTreeViewChange(Sender: TObject;  procedure TGikoForm.FavoriteTreeViewChange(Sender: TObject;
7952    Node: TTreeNode);          Node: TTreeNode);
7953  begin  begin
7954    
7955          if not Mouse.IsDragging then          if not Mouse.IsDragging then
7956                  FavoriteClick( Node );                  FavoriteClick( Node );
7957              
7958  end;  end;
7959    
7960  procedure TGikoForm.FavoriteTreeViewDblClick(Sender: TObject);  procedure TGikoForm.FavoriteTreeViewDblClick(Sender: TObject);
7961  var  var
7962          ThreadItem: TThreadItem;          ThreadItem: TThreadItem;
7963    FavThread: TFavoriteThreadItem;          FavThread: TFavoriteThreadItem;
7964    Board: TBoard;          Board: TBoard;
7965          APoint: TPoint;          APoint: TPoint;
7966          HitTest: THitTests;          HitTest: THitTests;
7967  begin  begin
7968    
7969          FClickNode := FavoriteTreeView.Selected;          FClickNode := FavoriteTreeView.Selected;
7970    FavoriteTreeViewReloadActionExecute( Sender );          FavoriteTreeViewReloadActionExecute( Sender );
7971    
7972  end;  end;
7973    
7974  procedure TGikoForm.FavoriteTreeViewLogDeleteActionExecute(  procedure TGikoForm.FavoriteTreeViewLogDeleteActionExecute(
7975    Sender: TObject);          Sender: TObject);
7976  const  const
7977          DEL_MSG = 'ログファイルを削除します。よろしいですか?';          DEL_MSG = 'ログファイルを削除します。よろしいですか?';
7978          DEL_TITLE = '削除確認';          DEL_TITLE = '削除確認';
7979  var  var
7980          ThreadItem: TThreadItem;          ThreadItem: TThreadItem;
7981    FavThread: TFavoriteThreadItem;          FavThread: TFavoriteThreadItem;
7982    Board: TBoard;          Board: TBoard;
7983  begin  begin
7984    
7985          if FClickNode = nil then Exit;          if FClickNode = nil then Exit;
7986    if not (TObject(FClickNode.Data) is TFavoriteThreadItem) then Exit;          if not (TObject(FClickNode.Data) is TFavoriteThreadItem) then Exit;
7987    
7988    FavThread := TFavoriteThreadItem( FClickNode.Data );          FavThread := TFavoriteThreadItem( FClickNode.Data );
7989    Board := BBS2ch.FindBBSID(FavThread.BBSID);          Board := BBS2ch.FindBBSID(FavThread.BBSID);
7990    if Board <> nil then          if Board <> nil then
7991      if not Board.IsThreadDatRead then                  if not Board.IsThreadDatRead then
7992        GikoSys.ReadSubjectFile(Board);                          GikoSys.ReadSubjectFile(Board);
7993    ThreadItem := BBS2ch.FindThreadItem(FavThread.BBSID, FavThread.ThreadID);          ThreadItem := BBS2ch.FindThreadItem(FavThread.BBSID, FavThread.ThreadID);
7994    
7995          try          try
7996                  if GikoSys.Setting.DeleteMsg then begin                  if GikoSys.Setting.DeleteMsg then begin
# Line 7998  begin Line 7998  begin
7998                                  Exit;                                  Exit;
7999                  end;                  end;
8000    
8001      DeleteHistory(ThreadItem);                  DeleteHistory(ThreadItem);
8002      DeleteTab(ThreadItem);                  DeleteTab(ThreadItem);
8003      ThreadItem.DeleteLogFile;                  ThreadItem.DeleteLogFile;
8004    
8005                  ListView.Refresh;                  ListView.Refresh;
8006          finally          finally
# Line 8011  end; Line 8011  end;
8011  procedure TGikoForm.FavoriteTreeViewReloadActionExecute(Sender: TObject);  procedure TGikoForm.FavoriteTreeViewReloadActionExecute(Sender: TObject);
8012  var  var
8013          ThreadItem: TThreadItem;          ThreadItem: TThreadItem;
8014    FavThread: TFavoriteThreadItem;          FavThread: TFavoriteThreadItem;
8015    Board: TBoard;          Board: TBoard;
8016    FavBoard: TFavoriteBoardItem;          FavBoard: TFavoriteBoardItem;
8017  begin  begin
8018    
8019          if FClickNode = nil then Exit;          if FClickNode = nil then Exit;
8020    
8021    if TObject( FClickNode.Data ) is TFavoriteThreadItem then begin          if TObject( FClickNode.Data ) is TFavoriteThreadItem then begin
8022      FavThread := TFavoriteThreadItem( FClickNode.Data );                  FavThread := TFavoriteThreadItem( FClickNode.Data );
8023      Board := BBS2ch.FindBBSID(FavThread.BBSID);                  Board := BBS2ch.FindBBSID(FavThread.BBSID);
8024      if Board <> nil then                  if Board <> nil then
8025        if not Board.IsThreadDatRead then                          if not Board.IsThreadDatRead then
8026          GikoSys.ReadSubjectFile(Board);                                  GikoSys.ReadSubjectFile(Board);
8027      ThreadItem := BBS2ch.FindThreadItem(FavThread.BBSID, FavThread.ThreadID);                  ThreadItem := BBS2ch.FindThreadItem(FavThread.BBSID, FavThread.ThreadID);
8028      if ThreadItem <> nil then                  if ThreadItem <> nil then
8029        DownloadContent(ThreadItem);                          DownloadContent(ThreadItem);
8030    end else if TObject( FClickNode.Data ) is TFavoriteBoardItem then begin          end else if TObject( FClickNode.Data ) is TFavoriteBoardItem then begin
8031          FavBoard := TFavoriteBoardItem( FClickNode.Data );                  FavBoard := TFavoriteBoardItem( FClickNode.Data );
8032      Board := BBS2ch.GetBoardFromBBSID( FavBoard.BBSID );                  Board := BBS2ch.GetBoardFromBBSID( FavBoard.BBSID );
8033                  DownloadList(Board);                  DownloadList(Board);
8034    end;          end;
8035    
8036  end;  end;
8037    
8038  procedure TGikoForm.FavoriteTreeViewURLCopyActionExecute(Sender: TObject);  procedure TGikoForm.FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
8039  var  var
8040          ThreadItem: TThreadItem;          ThreadItem: TThreadItem;
8041    FavThread: TFavoriteThreadItem;          FavThread: TFavoriteThreadItem;
8042    Board: TBoard;          Board: TBoard;
8043    FavBoard: TFavoriteBoardItem;          FavBoard: TFavoriteBoardItem;
8044          s: string;          s: string;
8045  begin  begin
8046    
8047          if FClickNode = nil then Exit;          if FClickNode = nil then Exit;
8048    
8049    if (TObject(FClickNode.Data) is TFavoriteThreadItem) then begin          if (TObject(FClickNode.Data) is TFavoriteThreadItem) then begin
8050    
8051      FavThread := TFavoriteThreadItem( FClickNode.Data );                  FavThread := TFavoriteThreadItem( FClickNode.Data );
8052      Board := BBS2ch.FindBBSID(FavThread.BBSID);                  Board := BBS2ch.FindBBSID(FavThread.BBSID);
8053      if Board <> nil then                  if Board <> nil then
8054        if not Board.IsThreadDatRead then                          if not Board.IsThreadDatRead then
8055          GikoSys.ReadSubjectFile(Board);                                  GikoSys.ReadSubjectFile(Board);
8056      ThreadItem := BBS2ch.FindThreadItem(FavThread.BBSID, FavThread.ThreadID);                  ThreadItem := BBS2ch.FindThreadItem(FavThread.BBSID, FavThread.ThreadID);
8057    
8058      try                  try
8059    
8060        s := GikoSys.GetURL(ThreadItem.ParentBoard.BBSID, ThreadItem.FileName) + #13#10;                          s := GikoSys.GetURL(ThreadItem.ParentBoard.BBSID, ThreadItem.FileName) + #13#10;
8061        if s <> '' then                          if s <> '' then
8062          Clipboard.AsText := s;                                  Clipboard.AsText := s;
8063      finally                  finally
8064      end;                  end;
   
   end else if (TObject(FClickNode.Data) is TFavoriteBoardItem) then begin  
   
         FavBoard := TFavoriteBoardItem( FClickNode.Data );  
     Board := BBS2ch.FindBBSID(FavBoard.BBSID);  
     if Board <> nil then  
       if not Board.IsThreadDatRead then  
         GikoSys.ReadSubjectFile(Board);  
   
     try  
   
       s := Board.URL + #13#10;  
       if s <> '' then  
         Clipboard.AsText := s;  
     finally  
     end;  
8065    
8066    end;          end else if (TObject(FClickNode.Data) is TFavoriteBoardItem) then begin
8067    
8068                    FavBoard := TFavoriteBoardItem( FClickNode.Data );
8069                    Board := BBS2ch.FindBBSID(FavBoard.BBSID);
8070                    if Board <> nil then
8071                            if not Board.IsThreadDatRead then
8072                                    GikoSys.ReadSubjectFile(Board);
8073    
8074                    try
8075    
8076                            s := Board.URL + #13#10;
8077                            if s <> '' then
8078                                    Clipboard.AsText := s;
8079                    finally
8080                    end;
8081    
8082            end;
8083    
8084  end;  end;
8085    
8086  procedure TGikoForm.FavoriteTreeViewNameCopyActionExecute(Sender: TObject);  procedure TGikoForm.FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
8087  var  var
8088          ThreadItem: TThreadItem;          ThreadItem: TThreadItem;
8089    FavThread: TFavoriteThreadItem;          FavThread: TFavoriteThreadItem;
8090    Board: TBoard;          Board: TBoard;
8091    FavBoard: TFavoriteBoardItem;          FavBoard: TFavoriteBoardItem;
8092          s: string;          s: string;
8093  begin  begin
8094    
8095          if FClickNode = nil then Exit;          if FClickNode = nil then Exit;
8096    
8097    if (TObject(FClickNode.Data) is TFavoriteThreadItem) then begin          if (TObject(FClickNode.Data) is TFavoriteThreadItem) then begin
8098    
8099                    FavThread := TFavoriteThreadItem( FClickNode.Data );
8100                    Board := BBS2ch.FindBBSID(FavThread.BBSID);
8101                    if Board <> nil then
8102                            if not Board.IsThreadDatRead then
8103                                    GikoSys.ReadSubjectFile(Board);
8104                    ThreadItem := BBS2ch.FindThreadItem(FavThread.BBSID, FavThread.ThreadID);
8105    
8106                    try
8107                            s := ThreadItem.Title + #13#10;
8108                            if s <> '' then
8109                                    Clipboard.AsText := s;
8110                    finally
8111                    end;
8112    
8113            end else if (TObject(FClickNode.Data) is TFavoriteBoardItem) then begin
8114    
8115                    FavBoard := TFavoriteBoardItem( FClickNode.Data );
8116                    Board := BBS2ch.FindBBSID(FavBoard.BBSID);
8117                    if Board <> nil then
8118                            if not Board.IsThreadDatRead then
8119                                    GikoSys.ReadSubjectFile(Board);
8120    
8121                    try
8122    
8123      FavThread := TFavoriteThreadItem( FClickNode.Data );                          s := Board.Title + #13#10;
8124      Board := BBS2ch.FindBBSID(FavThread.BBSID);                          if s <> '' then
8125      if Board <> nil then                                  Clipboard.AsText := s;
8126        if not Board.IsThreadDatRead then                  finally
8127          GikoSys.ReadSubjectFile(Board);                  end;
     ThreadItem := BBS2ch.FindThreadItem(FavThread.BBSID, FavThread.ThreadID);  
   
     try  
       s := ThreadItem.Title + #13#10;  
       if s <> '' then  
         Clipboard.AsText := s;  
     finally  
     end;  
   
   end else if (TObject(FClickNode.Data) is TFavoriteBoardItem) then begin  
   
         FavBoard := TFavoriteBoardItem( FClickNode.Data );  
     Board := BBS2ch.FindBBSID(FavBoard.BBSID);  
     if Board <> nil then  
       if not Board.IsThreadDatRead then  
         GikoSys.ReadSubjectFile(Board);  
   
     try  
   
       s := Board.Title + #13#10;  
       if s <> '' then  
         Clipboard.AsText := s;  
     finally  
     end;  
8128    
8129    end;          end;
8130    
8131  end;  end;
8132    
8133  procedure TGikoForm.FavoriteTreeViewNameURLCopyActionExecute(  procedure TGikoForm.FavoriteTreeViewNameURLCopyActionExecute(
8134    Sender: TObject);          Sender: TObject);
8135  var  var
8136          ThreadItem: TThreadItem;          ThreadItem: TThreadItem;
8137    FavThread: TFavoriteThreadItem;          FavThread: TFavoriteThreadItem;
8138    Board: TBoard;          Board: TBoard;
8139    FavBoard: TFavoriteBoardItem;          FavBoard: TFavoriteBoardItem;
8140          s: string;          s: string;
8141  begin  begin
8142    
8143          if FClickNode = nil then Exit;          if FClickNode = nil then Exit;
8144    
8145    if (TObject(FClickNode.Data) is TFavoriteThreadItem) then begin          if (TObject(FClickNode.Data) is TFavoriteThreadItem) then begin
8146    
8147      FavThread := TFavoriteThreadItem( FClickNode.Data );                  FavThread := TFavoriteThreadItem( FClickNode.Data );
8148      Board := BBS2ch.FindBBSID(FavThread.BBSID);                  Board := BBS2ch.FindBBSID(FavThread.BBSID);
8149      if Board <> nil then                  if Board <> nil then
8150        if not Board.IsThreadDatRead then                          if not Board.IsThreadDatRead then
8151          GikoSys.ReadSubjectFile(Board);                                  GikoSys.ReadSubjectFile(Board);
8152      ThreadItem := BBS2ch.FindThreadItem(FavThread.BBSID, FavThread.ThreadID);                  ThreadItem := BBS2ch.FindThreadItem(FavThread.BBSID, FavThread.ThreadID);
   
     try  
       s := GikoSys.GetURL(ThreadItem.ParentBoard.BBSID, ThreadItem.FileName) + #13#10 + ThreadItem.Title + #13#10;  
       if s <> '' then  
         Clipboard.AsText := s;  
     finally  
     end;  
   
   end else if (TObject(FClickNode.Data) is TFavoriteBoardItem) then begin  
   
         FavBoard := TFavoriteBoardItem( FClickNode.Data );  
     Board := BBS2ch.FindBBSID(FavBoard.BBSID);  
     if Board <> nil then  
       if not Board.IsThreadDatRead then  
         GikoSys.ReadSubjectFile(Board);  
   
     try  
   
       s := Board.URL + #13#10 + Board.Title + #13#10;  
       if s <> '' then  
         Clipboard.AsText := s;  
     finally  
     end;  
8153    
8154    end;                  try
8155                            s := GikoSys.GetURL(ThreadItem.ParentBoard.BBSID, ThreadItem.FileName) + #13#10 + ThreadItem.Title + #13#10;
8156                            if s <> '' then
8157                                    Clipboard.AsText := s;
8158                    finally
8159                    end;
8160    
8161            end else if (TObject(FClickNode.Data) is TFavoriteBoardItem) then begin
8162    
8163                    FavBoard := TFavoriteBoardItem( FClickNode.Data );
8164                    Board := BBS2ch.FindBBSID(FavBoard.BBSID);
8165                    if Board <> nil then
8166                            if not Board.IsThreadDatRead then
8167                                    GikoSys.ReadSubjectFile(Board);
8168    
8169                    try
8170    
8171                            s := Board.URL + #13#10 + Board.Title + #13#10;
8172                            if s <> '' then
8173                                    Clipboard.AsText := s;
8174                    finally
8175                    end;
8176    
8177            end;
8178    
8179  end;  end;
8180    
# Line 8185  var Line 8185  var
8185  begin  begin
8186    
8187          for i := 0 to Node.Count - 1 do begin          for i := 0 to Node.Count - 1 do begin
8188          if Node.Item[i].Data = FindPointer then begin                  if Node.Item[i].Data = FindPointer then begin
8189          Result := Node.Item[i];                          Result := Node.Item[i];
8190        Exit;                          Exit;
8191      end else if Node.Item[i].Count > 0 then begin                  end else if Node.Item[i].Count > 0 then begin
8192          Found := TreeNodeDataFind( Node.Item[i], FindPointer );                          Found := TreeNodeDataFind( Node.Item[i], FindPointer );
8193        if Found <> nil then begin                          if Found <> nil then begin
8194          Result := Found;                                  Result := Found;
8195          Exit;                                  Exit;
8196        end;                          end;
8197      end;                  end;
8198    end;          end;
8199    
8200    Result := nil;          Result := nil;
8201    
8202  end;  end;
8203    
8204  procedure TGikoForm.LinkToolBarDragDrop(Sender, Source: TObject; X,  procedure TGikoForm.LinkToolBarDragDrop(Sender, Source: TObject; X,
8205    Y: Integer);          Y: Integer);
8206  var  var
8207          i: Integer;          i: Integer;
8208    SenderNode: TTreeNode;          SenderNode: TTreeNode;
8209  begin  begin
8210    
8211    for i := 0 to FavoriteTreeView.Items.Count - 1 do begin          for i := 0 to FavoriteTreeView.Items.Count - 1 do begin
8212      if FavoriteTreeView.Items[i].Text = Favorite.FAVORITE_LINK_NAME then begin                  if FavoriteTreeView.Items[i].Text = Favorite.FAVORITE_LINK_NAME then begin
8213          SenderNode := FavoriteTreeView.Items[i];                          SenderNode := FavoriteTreeView.Items[i];
8214                          Break;                          Break;
8215      end;                  end;
8216    end;          end;
8217    
8218    FavoriteDragDrop( SenderNode, Source );          FavoriteDragDrop( SenderNode, Source );
8219    
8220  end;  end;
8221    
8222  procedure TGikoForm.BrowserTabMouseUp(Sender: TObject;  procedure TGikoForm.BrowserTabMouseUp(Sender: TObject;
8223    Button: TMouseButton; Shift: TShiftState; X, Y: Integer);          Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
8224  begin  begin
8225      if FDragWFirst <> true then begin                  if FDragWFirst <> true then begin
8226          FDragWFirst := false;                                  FDragWFirst := false;
8227      end;                  end;
8228  end;  end;
8229    
8230  procedure TGikoForm.LinkToolBarDragOver(Sender, Source: TObject; X,  procedure TGikoForm.LinkToolBarDragOver(Sender, Source: TObject; X,
8231    Y: Integer; State: TDragState; var Accept: Boolean);          Y: Integer; State: TDragState; var Accept: Boolean);
8232  begin  begin
8233    
8234          FavoriteDragOver( Sender, Source, X, Y, State, Accept );          FavoriteDragOver( Sender, Source, X, Y, State, Accept );
# Line 8246  begin Line 8246  begin
8246  end;  end;
8247    
8248  procedure TGikoForm.FavoriteTreeViewEndDrag(Sender, Target: TObject; X,  procedure TGikoForm.FavoriteTreeViewEndDrag(Sender, Target: TObject; X,
8249    Y: Integer);          Y: Integer);
8250  begin  begin
8251    
8252    if FDropSpaceNode <> nil then begin          if FDropSpaceNode <> nil then begin
8253      FDropSpaceNode.Free;                  FDropSpaceNode.Free;
8254      FDropSpaceNode := nil;                  FDropSpaceNode := nil;
8255      SetLinkBar;                  SetLinkBar;
8256          end;          end;
8257    
8258  end;  end;
8259    
8260  procedure TGikoForm.ListCoolBarContextPopup(Sender: TObject;  procedure TGikoForm.ListCoolBarContextPopup(Sender: TObject;
8261    MousePos: TPoint; var Handled: Boolean);          MousePos: TPoint; var Handled: Boolean);
8262  begin  begin
8263    
8264          MousePos := ListCoolBar.ClientToScreen( MousePos );          MousePos := ListCoolBar.ClientToScreen( MousePos );
# Line 8267  begin Line 8267  begin
8267  end;  end;
8268    
8269  procedure TGikoForm.MainCoolBarContextPopup(Sender: TObject;  procedure TGikoForm.MainCoolBarContextPopup(Sender: TObject;
8270    MousePos: TPoint; var Handled: Boolean);          MousePos: TPoint; var Handled: Boolean);
8271  begin  begin
8272    
8273          MousePos := MainCoolBar.ClientToScreen( MousePos );          MousePos := MainCoolBar.ClientToScreen( MousePos );
# Line 8276  begin Line 8276  begin
8276  end;  end;
8277    
8278  procedure TGikoForm.BrowserCoolBarContextPopup(Sender: TObject;  procedure TGikoForm.BrowserCoolBarContextPopup(Sender: TObject;
8279    MousePos: TPoint; var Handled: Boolean);          MousePos: TPoint; var Handled: Boolean);
8280  begin  begin
8281    
8282          MousePos := BrowserCoolBar.ClientToScreen( MousePos );          MousePos := BrowserCoolBar.ClientToScreen( MousePos );

Legend:
Removed from v.1.99  
changed lines
  Added in v.1.100

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