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.573 by h677, Thu Dec 22 15:41:45 2005 UTC revision 1.574 by h677, Fri Dec 23 16:39:22 2005 UTC
# Line 423  type Line 423  type
423                  procedure TreeViewCustomDrawItem(Sender: TCustomTreeView;                  procedure TreeViewCustomDrawItem(Sender: TCustomTreeView;
424                          Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);                          Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
425                  procedure TreeViewExpanded(Sender: TObject; Node: TTreeNode);                  procedure TreeViewExpanded(Sender: TObject; Node: TTreeNode);
                 procedure TreeViewDblClick(Sender: TObject);  
426                  procedure ListViewCustomDraw(Sender: TCustomListView;                  procedure ListViewCustomDraw(Sender: TCustomListView;
427                          const ARect: TRect; var DefaultDraw: Boolean);                          const ARect: TRect; var DefaultDraw: Boolean);
428                  procedure ListViewMouseDown(Sender: TObject; Button: TMouseButton;                  procedure ListViewMouseDown(Sender: TObject; Button: TMouseButton;
# Line 495  type Line 494  type
494                  procedure FavoriteTreeViewKeyDown(Sender: TObject; var Key: Word;                  procedure FavoriteTreeViewKeyDown(Sender: TObject; var Key: Word;
495                          Shift: TShiftState);                          Shift: TShiftState);
496                  procedure FavoriteTreePopupMenuPopup(Sender: TObject);                  procedure FavoriteTreePopupMenuPopup(Sender: TObject);
                 procedure FavoriteTreeViewDblClick(Sender: TObject);  
497                  procedure LinkToolBarDragDrop(Sender, Source: TObject; X, Y: Integer);                  procedure LinkToolBarDragDrop(Sender, Source: TObject; X, Y: Integer);
498                  procedure BrowserTabMouseUp(Sender: TObject; Button: TMouseButton;                  procedure BrowserTabMouseUp(Sender: TObject; Button: TMouseButton;
499                          Shift: TShiftState; X, Y: Integer);                          Shift: TShiftState; X, Y: Integer);
# Line 514  type Line 512  type
512        var Handled: Boolean);        var Handled: Boolean);
513      procedure BrowserTabPopupMenuPopup(Sender: TObject);      procedure BrowserTabPopupMenuPopup(Sender: TObject);
514      procedure BrowserTabResize(Sender: TObject);      procedure BrowserTabResize(Sender: TObject);
         procedure TreeViewClick(Sender: TObject);  
515      procedure TreeViewKeyDown(Sender: TObject; var Key: Word;      procedure TreeViewKeyDown(Sender: TObject; var Key: Word;
516        Shift: TShiftState);        Shift: TShiftState);
517      procedure FavoriteTreeViewMouseDown(Sender: TObject;      procedure FavoriteTreeViewMouseDown(Sender: TObject;
# Line 542  type Line 539  type
539            var Handled: Boolean);            var Handled: Boolean);
540      procedure GikoApplicationEventsDeactivate(Sender: TObject);      procedure GikoApplicationEventsDeactivate(Sender: TObject);
541      procedure GikoApplicationEventsException(Sender: TObject; E: Exception);      procedure GikoApplicationEventsException(Sender: TObject; E: Exception);
542          procedure TreeViewCollapsing(Sender: TObject; Node: TTreeNode;      procedure TreeViewMouseDown(Sender: TObject; Button: TMouseButton;
       var AllowCollapse: Boolean);  
     procedure TreeViewExpanding(Sender: TObject; Node: TTreeNode;  
       var AllowExpansion: Boolean);  
     procedure TreeViewMouseUp(Sender: TObject; Button: TMouseButton;  
543        Shift: TShiftState; X, Y: Integer);        Shift: TShiftState; X, Y: Integer);
     procedure FavoriteTreeViewStartDrag(Sender: TObject;  
       var DragObject: TDragObject);  
     procedure FavoriteTreeViewMouseMove(Sender: TObject;  
       Shift: TShiftState; X, Y: Integer);  
     procedure FavoriteTreeViewExit(Sender: TObject);  
544          private          private
545                  { Private 宣言 }                  { Private 宣言 }
546                  FEnabledCloseButton: Boolean;                  FEnabledCloseButton: Boolean;
# Line 2224  begin Line 2212  begin
2212          ListView.SetFocus;          ListView.SetFocus;
2213          ListView.SelectAll;          ListView.SelectAll;
2214  end;  end;
 // *************************************************************************  
 //! ツリービューのダブルクリックイベント  
 // *************************************************************************  
 procedure TGikoForm.TreeViewDblClick(Sender: TObject);  
 var  
         pos : TPoint;  
         rect: TRect;  
 begin  
         pos := FMouseDownPos;  
         if (FClickNode <> nil) and (FClickNode = TreeView.GetNodeAt(pos.X, pos.Y)) then begin  
                 //マウスがnodeの上にいるか  
                 rect := FClickNode.DisplayRect(true);  
                 if ((rect.Left <= pos.X) and (rect.Right >= pos.X)) and  
                         ((rect.Bottom >= pos.Y) and (rect.Top <= pos.Y)) then begin  
                         TreeDoubleClick( FClickNode );  
                         FClickNode := nil;  
                 end;  
         end;  
 end;  
   
2215  procedure TGikoForm.DownloadMsg(Sender: TObject; Item: TDownloadItem; Msg: string; Icon: TGikoMessageIcon);  procedure TGikoForm.DownloadMsg(Sender: TObject; Item: TDownloadItem; Msg: string; Icon: TGikoMessageIcon);
2216  begin  begin
2217          AddMessageList(Msg, nil, Icon);          AddMessageList(Msg, nil, Icon);
2218  end;  end;
2219    // *************************************************************************
2220    //! ダウンロードが完了したときに発生するイベント
2221    // *************************************************************************
2222  procedure TGikoForm.DownloadEnd(Sender: TObject; Item: TDownloadItem);  procedure TGikoForm.DownloadEnd(Sender: TObject; Item: TDownloadItem);
2223  var  var
2224          ATitle: string;          ATitle: string;
# Line 4447  end; Line 4417  end;
4417    
4418  procedure TGikoForm.FavoriteClick(Sender: TObject);  procedure TGikoForm.FavoriteClick(Sender: TObject);
4419  begin  begin
   
4420          FavoriteClick( Sender, True );          FavoriteClick( Sender, True );
   
4421  end;  end;
4422    
4423  procedure TGikoForm.FavoriteClick(Sender: TObject; ActiveTab: Boolean);  procedure TGikoForm.FavoriteClick(Sender: TObject; ActiveTab: Boolean);
# Line 6110  begin Line 6078  begin
6078                          FavoriteTreeView.Selected.Expanded := not FavoriteTreeView.Selected.Expanded;                          FavoriteTreeView.Selected.Expanded := not FavoriteTreeView.Selected.Expanded;
6079                          end;                          end;
6080                  VK_SPACE:                  VK_SPACE:
6081                          FavoriteTreeViewDblClick( Sender );                          GikoDM.FavoriteTreeViewReloadActionExecute(
6082                                                            TObject(FavoriteTreeView.Selected));
6083                  end;                  end;
6084          end else begin          end else begin
6085                  //編集中にESCを押したら、編集を終了して、元の文字列に戻す                  //編集中にESCを押したら、編集を終了して、元の文字列に戻す
# Line 6243  begin Line 6212  begin
6212          end;          end;
6213    
6214  end;  end;
 // *************************************************************************  
 //! お気に入りツリーのダブルクリックイベント  
 // *************************************************************************  
 procedure TGikoForm.FavoriteTreeViewDblClick(Sender: TObject);  
 var  
         pos : TPoint;  
         rect: TRect;  
 begin  
         pos := FMouseDownPos;  
         if (FClickNode <> nil) and (FClickNode = FavoriteTreeView.GetNodeAt(pos.X, pos.Y)) then begin  
                 //マウスがnodeの上にいるか  
                 rect := FClickNode.DisplayRect(true);  
                 if ((rect.Left <= pos.X) and (rect.Right >= pos.X)) and  
                         ((rect.Bottom >= pos.Y) and (rect.Top <= pos.Y)) then begin  
                         GikoDM.FavoriteTreeViewReloadActionExecute( Sender );  
                         FClickNode := nil;  
                 end;  
         end;  
 end;  
   
6215  function TGikoForm.TreeNodeDataFind(Node: TTreeNode; FindPointer: Pointer): TTreeNode;  function TGikoForm.TreeNodeDataFind(Node: TTreeNode; FindPointer: Pointer): TTreeNode;
6216  var  var
6217          Found: TTreeNode;          Found: TTreeNode;
# Line 6693  begin Line 6642  begin
6642    
6643  end;  end;
6644  // *************************************************************************  // *************************************************************************
6645  //! ツリービューのクリックイベント  //! ツリービューのKeyDownイベント
6646  // *************************************************************************  // *************************************************************************
 procedure TGikoForm.TreeViewClick(Sender: TObject);  
 begin  
         FClickNode := TreeView.Selected;  
         FMouseDownPos := TreeView.ScreenToClient(Mouse.CursorPos);  
 end;  
6647  procedure TGikoForm.TreeViewKeyDown(Sender: TObject; var Key: Word;  procedure TGikoForm.TreeViewKeyDown(Sender: TObject; var Key: Word;
6648          Shift: TShiftState);          Shift: TShiftState);
6649  begin  begin
# Line 6718  procedure TGikoForm.FavoriteTreeViewMous Line 6662  procedure TGikoForm.FavoriteTreeViewMous
6662  var  var
6663          favItem                         : TTreeNode;          favItem                         : TTreeNode;
6664          favThreadItem   : TFavoriteThreadItem;          favThreadItem   : TFavoriteThreadItem;
6665            rect: TRect;
6666  begin  begin
6667          case Button of          case Button of
6668          mbLeft:          mbLeft:
6669                  begin                  begin
6670                          //現在選択されているアイテムを保存                          if not (ssAlt in Shift) and (FavoriteTreeView.Selected <> nil) and
6671                          FClickNode := FavoriteTreeView.Selected;                                  (FavoriteTreeView.Selected = FavoriteTreeView.GetNodeAt(X, Y)) then begin
6672                          FMouseDownPos := FavoriteTreeView.ScreenToClient(Mouse.CursorPos);                                  //マウスがnodeの上にいるか
6673                                    rect := FavoriteTreeView.Selected.DisplayRect(true);
6674                                    if ((rect.Left <= X) and (rect.Right >= X)) and
6675                                            ((rect.Bottom >= Y) and (rect.Top <= Y)) then begin
6676                                            if ssDouble in Shift then begin
6677                                                    GikoDM.FavoriteTreeViewReloadActionExecute(
6678                                                            TObject(FavoriteTreeView.Selected));
6679    
6680                                            end else begin
6681                                                    FavoriteClick(
6682                                                            TObject(FavoriteTreeView.Selected));
6683                                            end;
6684                                    end;
6685                            end;
6686                  end;                  end;
6687          mbMiddle:          mbMiddle:
6688                  begin                  begin
# Line 7661  begin Line 7619  begin
7619          end;          end;
7620  end;  end;
7621  // *************************************************************************  // *************************************************************************
 //! ツリービューのアイテムの縮小時イベント  
 // *************************************************************************  
 procedure TGikoForm.TreeViewCollapsing(Sender: TObject; Node: TTreeNode;  
   var AllowCollapse: Boolean);  
 begin  
         FClickNode := nil;  
 end;  
 // *************************************************************************  
 //! ツリービューのアイテムの展開時イベント  
 // *************************************************************************  
 procedure TGikoForm.TreeViewExpanding(Sender: TObject; Node: TTreeNode;  
   var AllowExpansion: Boolean);  
 begin  
         FClickNode := nil;  
 end;  
 // *************************************************************************  
 //! ツリービューのマウスアップイベント  
 // *************************************************************************  
 procedure TGikoForm.TreeViewMouseUp(Sender: TObject; Button: TMouseButton;  
   Shift: TShiftState; X, Y: Integer);  
 begin  
         if (Button = mbLeft) and not (ssDouble in Shift) then begin  
                 if (FClickNode <> nil) and (FClickNode = TreeView.GetNodeAt(X, Y)) then begin  
                         TreeClick(FClickNode);  
                 end;  
         end;  
 end;  
 // *************************************************************************  
7622  //! ダウンロードコントロールスレッドの生成  //! ダウンロードコントロールスレッドの生成
7623  // *************************************************************************  // *************************************************************************
7624  procedure TGikoForm.CreateControlThread();  procedure TGikoForm.CreateControlThread();
# Line 7796  begin Line 7726  begin
7726          except          except
7727          end;          end;
7728  end;  end;
7729  //! ドラッグスタートイベント  //! キャビネットのマウスダウンイベント
7730  procedure TGikoForm.FavoriteTreeViewStartDrag(Sender: TObject;  procedure TGikoForm.TreeViewMouseDown(Sender: TObject;
7731    var DragObject: TDragObject);    Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
 begin  
         FClickNode := nil;  
 end;  
 //MouseMoveでクリックイベントを起こすという気持悪い実装...  
 procedure TGikoForm.FavoriteTreeViewMouseMove(Sender: TObject;  
   Shift: TShiftState; X, Y: Integer);  
7732  var  var
7733          pos : TPoint;          rect : TRect;
         rect: TRect;  
7734  begin  begin
7735          if (FClickNode <> nil) then begin          case Button of
7736                  //クリック時の選択イベントと同じならダブルクリック実行          mbLeft:
7737                  pos := FMouseDownPos;                  begin
7738                  if (FClickNode = FavoriteTreeView.GetNodeAt(pos.X, pos.Y)) then begin                          if (TreeView.Selected <> nil) and
7739                          //マウスがnodeの上にいるか                                  (TreeView.Selected = TreeView.GetNodeAt(X, Y)) then begin
7740                          rect := FClickNode.DisplayRect(true);                                  //マウスがnodeの上にいるか
7741                          if ((rect.Left <= pos.X) and (rect.Right >= pos.X)) and                                  rect := TreeView.Selected.DisplayRect(true);
7742                                  ((rect.Bottom >= pos.Y) and (rect.Top <= pos.Y)) then begin                                  if ((rect.Left <= X) and (rect.Right >= X)) and
7743                                  FavoriteClick( TObject( FClickNode ) );                                          ((rect.Bottom >= Y) and (rect.Top <= Y)) then begin
7744                                  //DBClickが続くかもしれないのでFClickNodはクリアしない                      // クリックとダブルクリックをココで判定
7745                          end else begin                                          if ssDouble in Shift then begin
7746                                  FClickNode := nil;                                                  TreeDoubleClick( TreeView.Selected );
7747                                            end else begin
7748                                                    TreeClick(TreeView.Selected);
7749                                            end;
7750                                    end;
7751                          end;                          end;
                 end else begin  
                         FClickNode := nil;  
7752                  end;                  end;
7753          end;          end;
7754  end;  end;
 //! クリックしたアイテムが残っているのを消す  
 procedure TGikoForm.FavoriteTreeViewExit(Sender: TObject);  
 begin  
         FClickNode := nil;  
 end;  
7755    
7756  initialization  initialization
7757                                  OleInitialize(nil);                                  OleInitialize(nil);

Legend:
Removed from v.1.573  
changed lines
  Added in v.1.574

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