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.71 by yoffy, Mon Sep 29 14:03:59 2003 UTC revision 1.72 by yoffy, Mon Sep 29 16:57:43 2003 UTC
# Line 843  type Line 843  type
843                  FSearchDialog: TSearchDialog;                  FSearchDialog: TSearchDialog;
844    
845      FTabIsDragging: Integer;      FTabIsDragging: Integer;
846        FTabMouseDownX, FTabMouseDownY: Integer;
847      FLinkToolButtonIsDragging: Integer;      FLinkToolButtonIsDragging: Integer;
848        FLinkToolButtonMouseDownX, FLinkToolButtonMouseDownY: Integer;
849    
850                  procedure SetBoardTreeNode;                  procedure SetBoardTreeNode;
851                  function SetCategoryListItem(ABBS2ch: TBBS2ch): Integer;                  function SetCategoryListItem(ABBS2ch: TBBS2ch): Integer;
# Line 891  type Line 893  type
893                  procedure ToolBarChevronMenu(ToolBar: TToolBar);                  procedure ToolBarChevronMenu(ToolBar: TToolBar);
894                  procedure ModifySelectList;                  procedure ModifySelectList;
895      procedure FavoriteBrowseFolder( node: TTreeNode );      procedure FavoriteBrowseFolder( node: TTreeNode );
896      procedure LinkToolButtonOnDragDrop(Sender, Source: TObject; X, Y: Integer);      procedure LinkToolButtonDragDrop(Sender, Source: TObject; X, Y: Integer);
897      procedure LinkToolButtonOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);      procedure LinkToolButtonOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
898      procedure LinkToolButtonOnMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);      procedure LinkToolButtonOnMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
899      procedure LinkToolButtonOnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);      procedure LinkToolButtonOnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
900                    function TreeNodeDataFind(Node: TTreeNode; FindPointer: Pointer): TTreeNode;
901        procedure FavoriteMoveTo( SenderNode, SourceNode: TTreeNode );
902        procedure FavoriteAddTo( SenderNode: TTreeNode; Source: TObject );
903                    procedure FavoriteDragDrop( SenderNode: TTreeNode; Source: TObject );
904          protected          protected
905                  procedure CreateParams(var Params: TCreateParams); override;                  procedure CreateParams(var Params: TCreateParams); override;
906                  procedure WndProc(var Message: TMessage); override;                  procedure WndProc(var Message: TMessage); override;
# Line 6457  begin Line 6463  begin
6463                                          ToolButton.Left := 10000;                                          ToolButton.Left := 10000;
6464                                          ToolButton.Data := FavoriteTreeView.Items[i].Item[j].Data;                                          ToolButton.Data := FavoriteTreeView.Items[i].Item[j].Data;
6465                                          ToolButton.AutoSize := True;                                          ToolButton.AutoSize := True;
6466            ToolButton.OnDragDrop := LinkToolBarDragDrop;            ToolButton.OnDragDrop := LinkToolButtonDragDrop;
6467            ToolButton.OnDragOver := FavoriteDragOver;            ToolButton.OnDragOver := FavoriteDragOver;
6468            ToolButton.OnMouseDown := LinkToolButtonOnMouseDown;            ToolButton.OnMouseDown := LinkToolButtonOnMouseDown;
6469            ToolButton.OnMouseMove := LinkToolButtonOnMouseMove;            ToolButton.OnMouseMove := LinkToolButtonOnMouseMove;
# Line 6480  begin Line 6486  begin
6486          end;          end;
6487  end;  end;
6488    
 procedure TGikoForm.LinkToolButtonOnDragDrop(Sender, Source: TObject; X, Y: Integer);  
 begin  
 end;  
   
6489  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);
6490  var  var
6491          Node: TTreeNode;          Node: TTreeNode;
# Line 6498  begin Line 6500  begin
6500            Accept := True            Accept := True
6501    else if Source = ListView then    else if Source = ListView then
6502          Accept := True          Accept := True
6503      else if Source is TLinkToolButton then
6504            Accept := True
6505          else          else
6506                  Accept := False;                  Accept := False;
6507  end;  end;
# Line 6509  begin Line 6513  begin
6513    
6514  end;  end;
6515    
6516    procedure TGikoForm.LinkToolButtonDragDrop(Sender, Source: TObject; X, Y: Integer);
6517    var
6518      SenderNode: TTreeNode;
6519      LinkToolButton: TLinkToolButton;
6520    begin
6521    
6522      LinkToolButton := TLinkToolButton( Sender );
6523      SenderNode := TreeNodeDataFind( FavoriteTreeView.TopItem, LinkToolButton.Data );
6524    
6525            FavoriteDragDrop( SenderNode, Source );
6526    
6527    end;
6528    
6529  procedure TGikoForm.LinkToolButtonOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);  procedure TGikoForm.LinkToolButtonOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
6530  begin  begin
6531    
6532          if (Button = mbLeft) and (Shift = [ssLeft]) then begin          if (Button = mbLeft) and (Shift = [ssLeft]) then begin
6533        {$IFDEF DEBUG}
6534          Writeln('LinkMouseDown: 1');
6535        {$ENDIF}
6536                  // マウス左ボタン                  // マウス左ボタン
6537                  if FLinkToolButtonIsDragging <> 3 then begin                  if FLinkToolButtonIsDragging <> 3 then begin
6538        FLinkToolButtonIsDragging := 1;        FLinkToolButtonIsDragging := 1;
6539          FLinkToolButtonMouseDownX := X;
6540          FLinkToolButtonMouseDownY := Y;
6541      end;      end;
     {$IFDEF DEBUG}  
       Writeln('LinkMouseDown: 1');  
     {$ENDIF}  
6542    end;    end;
6543    
6544  end;  end;
# Line 6528  procedure TGikoForm.LinkToolButtonOnMous Line 6547  procedure TGikoForm.LinkToolButtonOnMous
6547  begin  begin
6548    
6549          if FLinkToolButtonIsDragging = 1 then begin          if FLinkToolButtonIsDragging = 1 then begin
6550          FLinkToolButtonIsDragging := 2;          if (Abs( FlinkToolButtonMouseDownX - X ) >= Mouse.DragThreshold) or
6551          TLinkToolButton( Sender ).BeginDrag( False );         (Abs( FlinkToolButtonMouseDownY - Y ) >= Mouse.DragThreshold) then begin
6552      {$IFDEF DEBUG}        {$IFDEF DEBUG}
6553        Writeln('LinkMouseMove: 2');          Writeln('LinkMouseMove: 2');
6554      {$ENDIF}        {$ENDIF}
6555          FLinkToolButtonIsDragging := 2;
6556          TLinkToolButton( Sender ).BeginDrag( False, 0 );
6557        end;
6558    end else begin    end else begin
6559          FLinkToolButtonIsDragging := 0;          FLinkToolButtonIsDragging := 0;
6560    end;    end;
# Line 6542  end; Line 6564  end;
6564  procedure TGikoForm.LinkToolButtonOnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);  procedure TGikoForm.LinkToolButtonOnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
6565  begin  begin
6566    
6567            {
6568          if FLinkToolButtonIsDragging = 2 then          if FLinkToolButtonIsDragging = 2 then
6569          TLinkToolButton( Sender ).EndDrag( False );          TLinkToolButton( Sender ).EndDrag( False );
6570    FLinkToolButtonIsDragging := 3;          }
6571    {$IFDEF DEBUG}    {$IFDEF DEBUG}
6572      Writeln('LinkMouseUp: 3');      Writeln('LinkMouseUp: 3');
6573    {$ENDIF}    {$ENDIF}
6574      FLinkToolButtonIsDragging := 3;
6575    
6576  end;  end;
6577    
# Line 7495  begin Line 7519  begin
7519    
7520  end;  end;
7521    
7522  procedure TGikoForm.FavoriteTreeViewDragDrop(Sender, Source: TObject; X,  procedure TGikoForm.FavoriteMoveTo( SenderNode, SourceNode: TTreeNode );
7523    Y: Integer);  begin
7524    
7525      if (SenderNode = nil) or (SourceNode = nil) or (SenderNode = SourceNode) then
7526        Exit;
7527    
7528      if TObject(SenderNode.Data) is TFavoriteFolder then
7529        SourceNode.MoveTo(SenderNode, naAddChild)
7530      else if TObject(SenderNode.Data) is TFavoriteBoardItem then
7531        SourceNode.MoveTo(SenderNode, naInsert)
7532      else if TObject(SenderNode.Data) is TFavoriteThreadItem then
7533        SourceNode.MoveTo(SenderNode, naInsert);
7534    
7535    end;
7536    
7537    procedure TGikoForm.FavoriteAddTo( SenderNode: TTreeNode; Source: TObject );
7538  var  var
7539          idx: Integer;          Node: TTreeNode;
7540          ThreadItem: TThreadItem;          FavNode: TTreeNode;
   Node: TTreeNode;  
   FavNode: TTreeNode;  
         FavoThreadItem: TFavoriteThreadItem;  
   Board: TBoard;  
7541    FavoBoardItem: TFavoriteBoardItem;    FavoBoardItem: TFavoriteBoardItem;
7542      FavoThreadItem: TFavoriteThreadItem;
7543      Board: TBoard;
7544      ThreadItem: TThreadItem;
7545  begin  begin
7546    
7547          Node := FavoriteTreeView.GetNodeAt(X, Y);    if (SenderNode = nil) or (Source = nil) then
7548        Exit;
7549    
7550          if Node = nil then    if not (TObject(SenderNode.Data) is TFavoriteFolder) then
7551                  Exit;      FavNode := SenderNode.Parent
7552      else
7553        FavNode := SenderNode;
7554    
7555      if Source is TBoard then begin
7556            Board := TBoard( Source );
7557        FavoBoardItem := TFavoriteBoardItem.Create;
7558        FavoBoardItem.BBSID := Board.BBSID;
7559        FavoBoardItem.BoardName := Board.Title;
7560        Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, Board.Title, FavoBoardItem);
7561        Node.ImageIndex := 15;
7562        Node.SelectedIndex := 15;
7563      end else if Source is TFavoriteBoardItem then begin
7564        Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, Board.Title, Source);
7565        Node.ImageIndex := 15;
7566        Node.SelectedIndex := 15;
7567      end else if Source is TThreadItem then begin
7568            ThreadItem := TThreadItem( Source );
7569        FavoThreadItem := TFavoriteThreadItem.Create;
7570        FavoThreadItem.BBSID := ThreadItem.ParentBoard.BBSID;
7571        FavoThreadItem.ThreadID := ThreadItem.FileName;
7572        FavoThreadItem.ThreadName := ThreadItem.Title;
7573        Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, ThreadItem.Title, FavoThreadItem);
7574        Node.ImageIndex := 16;
7575        Node.SelectedIndex := 16;
7576      end else if Source is TFavoriteThreadItem then begin
7577        Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, ThreadItem.Title, Source);
7578        Node.ImageIndex := 16;
7579        Node.SelectedIndex := 16;
7580            end;
7581    
7582    if Source = BrowserTab then begin  end;
7583    
7584      idx := BrowserTab.TabIndex;  procedure TGikoForm.FavoriteDragDrop( SenderNode: TTreeNode; Source: TObject );
7585      if BrowserTab.Tabs.Objects[idx] is TThreadItem then begin  var
7586        ThreadItem := TThreadItem(BrowserTab.Tabs.Objects[idx]);          idx: Integer;
7587        if not (TObject(Node.Data) is TFavoriteFolder) then    SourceNode: TTreeNode;
7588          FavNode := Node.Parent    LinkToolButton: TLinkToolButton;
7589        else  begin
         FavNode := Node;  
7590    
7591                          FavoThreadItem := TFavoriteThreadItem.Create;          if SenderNode = nil then
7592                          FavoThreadItem.BBSID := ThreadItem.ParentBoard.BBSID;                  Exit;
                         FavoThreadItem.ThreadID := ThreadItem.FileName;  
                         FavoThreadItem.ThreadName := ThreadItem.Title;  
       Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, ThreadItem.Title, FavoThreadItem);  
       Node.ImageIndex := 16;  
       Node.SelectedIndex := 16;  
     end;  
7593    
7594    end else if Source = ListView then begin    if Source = FavoriteTreeView then begin
7595    
7596          if ListView.Selected = nil then          SourceNode := FavoriteTreeView.Selected;
7597          Exit;      FavoriteMoveTo( SenderNode, SourceNode );
7598    
7599      if TObject( ListView.Selected.Data ) is TThreadItem then begin    end else if Source is TLinkToolButton then begin
       ThreadItem := TThreadItem( ListView.Selected.Data );  
       if not (TObject(Node.Data) is TFavoriteFolder) then  
         FavNode := Node.Parent  
       else  
         FavNode := Node;  
7600    
7601        FavoThreadItem := TFavoriteThreadItem.Create;          LinkToolButton := TLinkToolButton( Source );
7602        FavoThreadItem.BBSID := ThreadItem.ParentBoard.BBSID;      SourceNode := TreeNodeDataFind( FavoriteTreeView.TopItem, LinkToolButton.Data );
7603        FavoThreadItem.ThreadID := ThreadItem.FileName;      FavoriteMoveTo( SenderNode, SourceNode );
       FavoThreadItem.ThreadName := ThreadItem.Title;  
       Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, ThreadItem.Title, FavoThreadItem);  
       Node.ImageIndex := 16;  
       Node.SelectedIndex := 16;  
     end else if TObject( ListView.Selected.Data ) is TBoard then begin  
       Board := TBoard( ListView.Selected.Data );  
       if not (TObject(Node.Data) is TFavoriteFolder) then  
         FavNode := Node.Parent  
       else  
         FavNode := Node;  
7604    
7605        FavoBoardItem := TFavoriteBoardItem.Create;    end else if Source = BrowserTab then begin
       FavoBoardItem.BBSID := Board.BBSID;  
       FavoBoardItem.BoardName := Board.Title;  
       Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, Board.Title, FavoBoardItem);  
       Node.ImageIndex := 15;  
       Node.SelectedIndex := 15;  
     end;  
7606    
7607    end else if Source = FavoriteTreeView then begin      idx := BrowserTab.TabIndex;
7608        FavoriteAddTo( SenderNode, BrowserTab.Tabs.Objects[idx] );
7609    
7610      if FavoriteTreeView.Selected = Node then    end else if Source = ListView then begin
       Exit;  
7611    
7612      if TObject(Node.Data) is TFavoriteFolder then      FavoriteAddTo( SenderNode, ListView.Selected.Data );
       FavoriteTreeView.Selected.MoveTo(Node, naAddChild)  
     else if TObject(Node.Data) is TFavoriteBoardItem then  
       FavoriteTreeView.Selected.MoveTo(Node, naInsert)  
     else if TObject(Node.Data) is TFavoriteThreadItem then  
       FavoriteTreeView.Selected.MoveTo(Node, naInsert);  
7613    
7614    end;    end;
7615    
# Line 7583  begin Line 7617  begin
7617    
7618  end;  end;
7619    
7620    procedure TGikoForm.FavoriteTreeViewDragDrop(Sender, Source: TObject; X,
7621      Y: Integer);
7622    var
7623      SenderNode: TTreeNode;
7624    begin
7625    
7626            SenderNode := FavoriteTreeView.GetNodeAt(X, Y);
7627            FavoriteDragDrop( SenderNode, Source );
7628    
7629    end;
7630    
7631  procedure TGikoForm.FavoriteTreeViewEdited(Sender: TObject;  procedure TGikoForm.FavoriteTreeViewEdited(Sender: TObject;
7632    Node: TTreeNode; var S: String);    Node: TTreeNode; var S: String);
7633  begin  begin
# Line 7958  begin Line 8003  begin
8003    
8004  end;  end;
8005    
8006    function TGikoForm.TreeNodeDataFind(Node: TTreeNode; FindPointer: Pointer): TTreeNode;
8007    var
8008            Found: TTreeNode;
8009            i: Integer;
8010    begin
8011    
8012            for i := 0 to Node.Count - 1 do begin
8013            if Node.Item[i].Data = FindPointer then begin
8014            Result := Node.Item[i];
8015          Exit;
8016        end else if Node.Item[i].Count > 0 then begin
8017            Found := TreeNodeDataFind( Node.Item[i], FindPointer );
8018          if Found <> nil then begin
8019            Result := Found;
8020            Exit;
8021          end;
8022        end;
8023      end;
8024    
8025      Result := nil;
8026    
8027    end;
8028    
8029  procedure TGikoForm.LinkToolBarDragDrop(Sender, Source: TObject; X,  procedure TGikoForm.LinkToolBarDragDrop(Sender, Source: TObject; X,
8030    Y: Integer);    Y: Integer);
8031  var  var
# Line 8049  begin Line 8117  begin
8117    
8118    SetLinkBar;    SetLinkBar;
8119    
   
8120  end;  end;
8121    
8122  procedure TGikoForm.BrowserTabMouseUp(Sender: TObject;  procedure TGikoForm.BrowserTabMouseUp(Sender: TObject;

Legend:
Removed from v.1.71  
changed lines
  Added in v.1.72

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