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.550 by h677, Sun Nov 27 15:02:30 2005 UTC revision 1.551 by h677, Sun Nov 27 15:51:34 2005 UTC
# Line 18  uses Line 18  uses
18          Editor, RoundData, GikoPanel, Favorite, HTMLDocumentEvent,          Editor, RoundData, GikoPanel, Favorite, HTMLDocumentEvent,
19          HintWindow, GikoCoolBar, GikoListView, Search, ExternalBoardManager,          HintWindow, GikoCoolBar, GikoListView, Search, ExternalBoardManager,
20          ExternalBoardPlugInMain, StdActns, Variants, ExtActns,IdTCPConnection,          ExternalBoardPlugInMain, StdActns, Variants, ExtActns,IdTCPConnection,
21          IdBaseComponent, IdTCPClient, AppEvnts;          IdBaseComponent, IdTCPClient, AppEvnts, BrowserRecord;
22    
23  type  type
24          TGikoTreeType = (gttNone, gtt2ch, gttHistory, gttFavorite);          TGikoTreeType = (gttNone, gtt2ch, gttHistory, gttFavorite);
# Line 26  type Line 26  type
26          TMinimizeType = (mtNone, mtMinimizing, mtMinimized);          TMinimizeType = (mtNone, mtMinimizing, mtMinimized);
27          TResizeType = (rtNone, rtResizing);          TResizeType = (rtNone, rtResizing);
28    
29          TBrowserRecord = class;  //      TBrowserRecord = class;
30    
31          TGikoForm = class(TForm)          TGikoForm = class(TForm)
32                  StatusBar: TStatusBar;                  StatusBar: TStatusBar;
# Line 530  type Line 530  type
530      procedure ListToolBarResize(Sender: TObject);      procedure ListToolBarResize(Sender: TObject);
531      procedure BrowserToolBarResize(Sender: TObject);      procedure BrowserToolBarResize(Sender: TObject);
532          procedure KokoPopupMenuPopup(Sender: TObject);          procedure KokoPopupMenuPopup(Sender: TObject);
         procedure BeLogInOutActionUpdate(Sender: TObject);  
533          procedure ListViewKeyUp(Sender: TObject; var Key: Word;          procedure ListViewKeyUp(Sender: TObject; var Key: Word;
534            Shift: TShiftState);            Shift: TShiftState);
535      procedure FavoriteTreeViewEditing(Sender: TObject; Node: TTreeNode;      procedure FavoriteTreeViewEditing(Sender: TObject; Node: TTreeNode;
# Line 654  type Line 653  type
653                  function GetTabURLs(AStringList: TStringList) : Boolean;                  function GetTabURLs(AStringList: TStringList) : Boolean;
654                  /// ListColumnPopupMenu アイテムのクリックイベント                  /// ListColumnPopupMenu アイテムのクリックイベント
655                  procedure       ListColumnPopupMenuOnClick( Sender : TObject );                  procedure       ListColumnPopupMenuOnClick( Sender : TObject );
                 // BrowserRecordについているFBrowserを外す  
                 procedure ReleaseBrowser( BRecord: TBrowserRecord);  
656                  //! 絞り込み文字列設定                  //! 絞り込み文字列設定
657                  procedure SetSelectWord( const text : string );                  procedure SetSelectWord( const text : string );
658                  //現在のカーソルを取得する                  //現在のカーソルを取得する
# Line 828  type Line 825  type
825                  property Data: Pointer read FData write FData;                  property Data: Pointer read FData write FData;
826          end;          end;
827    
         TBrowserRecord = class( TObject )  
         private  
                 FBrowser        : TWebBrowser;  
                 FEvent: THTMLDocumentEventSink; ///< ブラウザドキュメントイベント  
                 FThread         : TThreadItem;  
                 FLastSize       : Integer;  
                 FRepaint        : Boolean;  
                 FMovement       : string;                                                       ///< スクロール先アンカー  
         public  
                 destructor      Destroy; override;  
                 property        Browser : TWebBrowser   read FBrowser   write FBrowser;  
                 property        Thread  : TThreadItem   read FThread    write FThread;  
                 property        LastSize        : Integer               read FLastSize  write FLastSize;  
                 property        Repaint         : Boolean               read FRepaint   write FRepaint;  
                 property        Movement        : string                read FMovement  write FMovement;  
         end;  
   
828  var  var
829          GikoForm: TGikoForm;          GikoForm: TGikoForm;
830    
# Line 911  var Line 891  var
891          i: Integer;          i: Integer;
892          wp: TWindowPlacement;          wp: TWindowPlacement;
893          s: string;          s: string;
         ToolButton: TToolButton;  
894  begin  begin
895  {$IFDEF DEBUG}  {$IFDEF DEBUG}
896          AllocConsole;          AllocConsole;
# Line 2256  begin Line 2235  begin
2235          end;          end;
2236  end;  end;
2237    
 {procedure TGikoForm.CabinetPanelVisible(PanelVisible: Boolean);  
 begin  
         TreeSplitter.Visible := PanelVisible;  
         CabinetPanel.Visible := PanelVisible;  
         CabinetToolButton.Down := PanelVisible;  
 end;}  
   
2238  procedure TGikoForm.ListViewAllSelect;  procedure TGikoForm.ListViewAllSelect;
2239  begin  begin
2240          ListView.SetFocus;          ListView.SetFocus;
# Line 2445  begin Line 2417  begin
2417          StatusBar.Panels[1].Text := FDownloadTitle + ' - ダウンロード中 (' + IntToStr(AWorkCount) + '/' + IntToStr(FDownloadMax) + ')';          StatusBar.Panels[1].Text := FDownloadTitle + ' - ダウンロード中 (' + IntToStr(AWorkCount) + '/' + IntToStr(FDownloadMax) + ')';
2418  end;  end;
2419    
 {  
 procedure TGikoForm.SetProgressValue(Number: Integer; Value: Integer; Max: Integer = -1);  
 var  
         Component: TComponent;  
 begin  
         Component := FindComponent('ProgressBar' + IntToStr(Number + 1));  
         if Component <> nil then begin  
                 if not (Component is TProgressBar) then Exit;  
                 if Max <> -1 then  
                         TProgressBar(Component).Max := Max;  
                 TProgressBar(Component).Position := Value;  
         end;  
 end;  
 }  
   
2420  procedure TGikoForm.AddMessageList(ACaption: string; AObject: TObject; Icon: TGikoMessageIcon);  procedure TGikoForm.AddMessageList(ACaption: string; AObject: TObject; Icon: TGikoMessageIcon);
2421  var  var
2422          ListItem: TListItem;          ListItem: TListItem;
# Line 2498  begin Line 2455  begin
2455          if ThreadItem.IsLogFile then begin          if ThreadItem.IsLogFile then begin
2456                  //お気に入りの全て開くとかやると、今開いてるスレのbrowserを付け替える恐れがある                  //お気に入りの全て開くとかやると、今開いてるスレのbrowserを付け替える恐れがある
2457                  //常に4番目にActiveのブラウザが来ないように移動させる                  //常に4番目にActiveのブラウザが来ないように移動させる
2458                  if (FActiveContent <> nil) and (FActiveContent.FBrowser <> nil) and                  if (FActiveContent <> nil) and (FActiveContent.Browser <> nil) and
2459                          (FActiveContent.FBrowser <> BrowserNullTab.Browser)then begin                          (FActiveContent.Browser <> BrowserNullTab.Browser)then begin
2460                          j := FBrowsers.IndexOf(FActiveContent.FBrowser);                          j := FBrowsers.IndexOf(FActiveContent.Browser);
2461                          if j = BROWSER_COUNT - 1 then                          if j = BROWSER_COUNT - 1 then
2462                                  FBrowsers.Move(BROWSER_COUNT - 1, 0);                                  FBrowsers.Move(BROWSER_COUNT - 1, 0);
2463                  end;                  end;
# Line 2512  begin Line 2469  begin
2469                          if TObject(BrowserTab.Tabs.Objects[i]) is TBrowserRecord then begin                          if TObject(BrowserTab.Tabs.Objects[i]) is TBrowserRecord then begin
2470                                  if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread = ThreadItem then begin                                  if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread = ThreadItem then begin
2471                                          Result := TBrowserRecord( BrowserTab.Tabs.Objects[i] );                                          Result := TBrowserRecord( BrowserTab.Tabs.Objects[i] );
2472                                          if TBrowserRecord(BrowserTab.Tabs.Objects[i]).FBrowser = nil then begin                                          if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser = nil then begin
2473                                                  for j := BrowserTab.Tabs.Count - 1 downto 0 do begin                                                  for j := BrowserTab.Tabs.Count - 1 downto 0 do begin
2474                                                          if TBrowserRecord(BrowserTab.Tabs.Objects[j]).FBrowser = TWebBrowser(FBrowsers[BROWSER_COUNT - 1]) then begin                                                          if TBrowserRecord(BrowserTab.Tabs.Objects[j]).Browser = TWebBrowser(FBrowsers[BROWSER_COUNT - 1]) then begin
2475                                                                  ReleaseBrowser(TBrowserRecord(BrowserTab.Tabs.Objects[j]));                                                                  ReleaseBrowser(TBrowserRecord(BrowserTab.Tabs.Objects[j]));
2476                                                                  break;                                                                  break;
2477                                                          end;                                                          end;
2478                                                  end;                                                  end;
2479                                                  TBrowserRecord(BrowserTab.Tabs.Objects[i]).FBrowser := TWebBrowser(FBrowsers[BROWSER_COUNT - 1]);                                                  TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser := TWebBrowser(FBrowsers[BROWSER_COUNT - 1]);
2480                                                  TBrowserRecord(BrowserTab.Tabs.Objects[i]).Repaint := true;                                                  TBrowserRecord(BrowserTab.Tabs.Objects[i]).Repaint := true;
2481                                                  FBrowsers.Move(BROWSER_COUNT - 1, 0);                                                  FBrowsers.Move(BROWSER_COUNT - 1, 0);
2482                                          end;                                          end;
# Line 2536  begin Line 2493  begin
2493                  if GikoSys.Setting.BrowserTabAppend = gtaFirst then begin                  if GikoSys.Setting.BrowserTabAppend = gtaFirst then begin
2494                          newBrowser := TBrowserRecord.Create;                          newBrowser := TBrowserRecord.Create;
2495                          for j := BrowserTab.Tabs.Count - 1 downto 0 do begin                          for j := BrowserTab.Tabs.Count - 1 downto 0 do begin
2496                                  if TBrowserRecord(BrowserTab.Tabs.Objects[j]).FBrowser = TWebBrowser(FBrowsers[BROWSER_COUNT - 1]) then begin                                  if TBrowserRecord(BrowserTab.Tabs.Objects[j]).Browser = TWebBrowser(FBrowsers[BROWSER_COUNT - 1]) then begin
2497                                          ReleaseBrowser(TBrowserRecord(BrowserTab.Tabs.Objects[j]));                                          ReleaseBrowser(TBrowserRecord(BrowserTab.Tabs.Objects[j]));
2498                                          break;                                          break;
2499                                  end;                                  end;
# Line 2561  begin Line 2518  begin
2518                  end else begin                  end else begin
2519                          newBrowser := TBrowserRecord.Create;                          newBrowser := TBrowserRecord.Create;
2520                          for j := BrowserTab.Tabs.Count - 1 downto 0 do begin                          for j := BrowserTab.Tabs.Count - 1 downto 0 do begin
2521                                  if TBrowserRecord(BrowserTab.Tabs.Objects[j]).FBrowser = TWebBrowser(FBrowsers[BROWSER_COUNT - 1]) then begin                                  if TBrowserRecord(BrowserTab.Tabs.Objects[j]).Browser = TWebBrowser(FBrowsers[BROWSER_COUNT - 1]) then begin
2522                                          ReleaseBrowser(TBrowserRecord(BrowserTab.Tabs.Objects[j]));                                          ReleaseBrowser(TBrowserRecord(BrowserTab.Tabs.Objects[j]));
2523                                          break;                                          break;
2524                                  end;                                  end;
# Line 2651  begin Line 2608  begin
2608                  if FActiveContent.Browser = TWebBrowser(FBrowsers[BROWSER_COUNT - 1]) then                  if FActiveContent.Browser = TWebBrowser(FBrowsers[BROWSER_COUNT - 1]) then
2609                          FBrowsers.Move(BROWSER_COUNT - 1, 0);                          FBrowsers.Move(BROWSER_COUNT - 1, 0);
2610                  for i := BrowserTab.Tabs.Count - 1 downto 0 do begin                  for i := BrowserTab.Tabs.Count - 1 downto 0 do begin
2611                          if TBrowserRecord(BrowserTab.Tabs.Objects[i]).FBrowser = TWebBrowser(FBrowsers[BROWSER_COUNT - 1]) then begin                          if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser = TWebBrowser(FBrowsers[BROWSER_COUNT - 1]) then begin
2612                                  ReleaseBrowser(TBrowserRecord(BrowserTab.Tabs.Objects[i]));                                  ReleaseBrowser(TBrowserRecord(BrowserTab.Tabs.Objects[i]));
2613                                  break;                                  break;
2614                          end;                          end;
# Line 2681  begin Line 2638  begin
2638                          if (FActiveContent.Browser <> BrowserNullTab.Browser) then                          if (FActiveContent.Browser <> BrowserNullTab.Browser) then
2639                                  ShowWindow(FActiveContent.Browser.Handle, SW_HIDE);                                  ShowWindow(FActiveContent.Browser.Handle, SW_HIDE);
2640                  end;                  end;
2641                  ShowWindow(Thread.FBrowser.Handle, SW_SHOW);                  ShowWindow(Thread.Browser.Handle, SW_SHOW);
2642                  if (not Assigned(Thread.Browser.Document)) then begin                  if (not Assigned(Thread.Browser.Document)) then begin
2643                          Thread.Browser.Navigate('about:blank');                          Thread.Browser.Navigate('about:blank');
2644                  end;                  end;
# Line 3547  begin Line 3504  begin
3504          end;          end;
3505    
3506          // Access Violation が起きる事があるので今後要チェック          // Access Violation が起きる事があるので今後要チェック
3507          if(BrowserRecord <> nil) and (BrowserRecord.FBrowser <> nil) then begin          if(BrowserRecord <> nil) and (BrowserRecord.Browser <> nil) then begin
3508                  activeBrower := BrowserRecord.FBrowser;                  activeBrower := BrowserRecord.Browser;
3509                  try                  try
3510                          top := 0;                          top := 0;
3511                          nm := AName;                          nm := AName;
# Line 4235  begin Line 4192  begin
4192                                  end;                                  end;
4193                          end;                          end;
4194                          if BrowserRecord <> nil then begin                          if BrowserRecord <> nil then begin
4195                                  if BrowserRecord.FEvent <> nil then                                  if BrowserRecord.Event <> nil then
4196                                          BrowserRecord.FEvent.Free;                                          BrowserRecord.Event.Free;
4197                                  FDispHtmlDocument := Idispatch(OleVariant(BrowserRecord.Browser.ControlInterface).Document) as DispHTMLDocument;                                  FDispHtmlDocument := Idispatch(OleVariant(BrowserRecord.Browser.ControlInterface).Document) as DispHTMLDocument;
4198                                  BrowserRecord.FEvent := THTMLDocumentEventSink.Create(Self, FDispHtmlDocument, HTMLDocumentEvents2);                                  BrowserRecord.Event := THTMLDocumentEventSink.Create(Self, FDispHtmlDocument, HTMLDocumentEvents2);
4199                                  BrowserRecord.FEvent.OnContextMenu := OnDocumentContextMenu;                                  BrowserRecord.Event.OnContextMenu := OnDocumentContextMenu;
4200                                  BrowserRecord.FEvent.OnClick := WebBrowserClick;  //追加したOnClickイベント                                  BrowserRecord.Event.OnClick := WebBrowserClick;  //追加したOnClickイベント
4201                          end;                          end;
4202                  end else begin                  end else begin
4203                          if GetActiveContent <> nil then begin                          if GetActiveContent <> nil then begin
# Line 5076  var Line 5033  var
5033  begin  begin
5034          Result := False;          Result := False;
5035      IDAnchorPopup('');      IDAnchorPopup('');
5036          Doc := FactiveContent.FBrowser.Document as IHtmlDocument2;          Doc := FactiveContent.Browser.Document as IHtmlDocument2;
5037          if Assigned(Doc) then begin          if Assigned(Doc) then begin
5038                  Range := Doc.selection.createRange as IHTMLTxtRange;                  Range := Doc.selection.createRange as IHTMLTxtRange;
5039                  s := CustomStringReplace(Range.text, ' ', ' ');//全角空白を半角空白に                  s := CustomStringReplace(Range.text, ' ', ' ');//全角空白を半角空白に
# Line 6063  begin Line 6020  begin
6020                  Node.ImageIndex := 16;                  Node.ImageIndex := 16;
6021                  Node.SelectedIndex := 16;                  Node.SelectedIndex := 16;
6022          end else if Source is TBrowserRecord then begin          end else if Source is TBrowserRecord then begin
6023                  ThreadItem := TBrowserRecord( Source ).FThread;                  ThreadItem := TBrowserRecord( Source ).Thread;
6024                  FavoThreadItem                          := TFavoriteThreadItem.CreateWithItem( ThreadItem );                  FavoThreadItem                          := TFavoriteThreadItem.CreateWithItem( ThreadItem );
6025                  Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, ThreadItem.Title, FavoThreadItem);                  Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, ThreadItem.Title, FavoThreadItem);
6026                  Node.ImageIndex := 16;                  Node.ImageIndex := 16;
# Line 6307  procedure TGikoForm.FavoriteTreeViewDblC Line 6264  procedure TGikoForm.FavoriteTreeViewDblC
6264  begin  begin
6265          //クリック時の選択イベントと同じならダブルクリック実行          //クリック時の選択イベントと同じならダブルクリック実行
6266          if (FClickNode = FavoriteTreeView.Selected) then begin          if (FClickNode = FavoriteTreeView.Selected) then begin
 {$IFDEF DEBUG}  
                 Writeln('FVDbClick');  
 {$ENDIF}  
6267                  GikoDM.FavoriteTreeViewReloadActionExecute( Sender );                  GikoDM.FavoriteTreeViewReloadActionExecute( Sender );
6268          end;          end;
6269  end;  end;
# Line 6840  procedure TGikoForm.FavoriteTreeViewMous Line 6794  procedure TGikoForm.FavoriteTreeViewMous
6794  begin  begin
6795          if (Button = mbLeft) and not (ssDouble  in Shift) then begin          if (Button = mbLeft) and not (ssDouble  in Shift) then begin
6796                  if (FClickNode = FavoriteTreeView.Selected) then begin                  if (FClickNode = FavoriteTreeView.Selected) then begin
 {$IFDEF DEBUG}  
                 Writeln('FVMouseUp');  
 {$ENDIF}  
6797                          FavoriteClick( TObject( FClickNode ) );                          FavoriteClick( TObject( FClickNode ) );
6798                  end;                  end;
6799          end;          end;
6800  end;  end;
6801    
 destructor      TBrowserRecord.Destroy;  
 var  
         doc :OleVariant;  
 begin  
         if Self.FEvent <> nil then  
                 Self.FEvent.Free;  
         if Self.FBrowser <> nil then begin  
                 if Self.Thread <> nil then begin  
                         //タブの復元で復元されたスレは、描画されていないときがあるので  
                         //そのときのスクロール量を保存してしまうとトップに戻ってしまう。  
                         if Self.FBrowser.OleObject.Document.documentElement.innerText <> '' then begin  
                                 doc := Idispatch( olevariant(Self.FBrowser.ControlInterface).Document) as IHTMLDocument2;  
                                 Self.Thread.ScrollTop := doc.Body.ScrollTop;  
                         end;  
                 end;  
                 //TOleControl(Self.FBrowser).Visible := false;  
                 ShowWindow(Self.FBrowser.Handle, SW_HIDE);  
         end;  
   
 end;  
   
6802  function TGikoForm.WebBrowserClick(Sender: TObject): WordBool;  function TGikoForm.WebBrowserClick(Sender: TObject): WordBool;
6803  var  var
6804          p : TPoint;          p : TPoint;
# Line 7221  begin Line 7151  begin
7151          SetActiveList( FActiveList );          SetActiveList( FActiveList );
7152    
7153  end;  end;
 //指定した番号のレスにjumpするAction  
 procedure TGikoForm.ReleaseBrowser( BRecord: TBrowserRecord);  
 begin  
         if BRecord <> nil then begin  
                 BRecord.Browser := nil;  
                 if BRecord.FEvent <> nil then begin  
                         BRecord.FEvent.Free;  
                         BRecord.FEvent := nil;  
                 end;  
                 BRecord.Repaint := true;  
         end;  
 end;  
7154    
7155  procedure TGikoForm.OnGestureStart(Sender: TObject);  procedure TGikoForm.OnGestureStart(Sender: TObject);
7156  begin  begin
# Line 7564  begin Line 7482  begin
7482    
7483  end;  end;
7484    
 procedure TGikoForm.BeLogInOutActionUpdate(Sender: TObject);  
 begin  
 end;  
7485  //ListViewの選択状態を解除する  //ListViewの選択状態を解除する
7486  procedure TGikoForm.ListViewKeyUp(Sender: TObject; var Key: Word;  procedure TGikoForm.ListViewKeyUp(Sender: TObject; var Key: Word;
7487    Shift: TShiftState);    Shift: TShiftState);
# Line 7585  begin Line 7500  begin
7500                  end;                  end;
7501          end;          end;
7502  end;  end;
7503    // *************************************************************************
7504    //! お気に入りの編集開始イベント
7505    // *************************************************************************
7506  procedure TGikoForm.FavoriteTreeViewEditing(Sender: TObject;  procedure TGikoForm.FavoriteTreeViewEditing(Sender: TObject;
7507    Node: TTreeNode; var AllowEdit: Boolean);    Node: TTreeNode; var AllowEdit: Boolean);
7508  begin  begin
# Line 7797  end; Line 7714  end;
7714  // *************************************************************************  // *************************************************************************
7715  procedure TGikoForm.FavoriteTreeViewClick(Sender: TObject);  procedure TGikoForm.FavoriteTreeViewClick(Sender: TObject);
7716  begin  begin
 {$IFDEF DEBUG}  
                 Writeln('FVClick');  
 {$ENDIF}  
7717          //現在選択されているアイテムを保存          //現在選択されているアイテムを保存
7718          FClickNode := FavoriteTreeView.Selected;          FClickNode := FavoriteTreeView.Selected;
7719  end;  end;

Legend:
Removed from v.1.550  
changed lines
  Added in v.1.551

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