procedure FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
procedure FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
procedure FavoriteTreeViewNameURLCopyActionExecute(Sender: TObject);
+ procedure LinkToolBarDragDrop(Sender, Source: TObject; X, Y: Integer);
+ procedure LinkToolBarDragOver(Sender, Source: TObject; X, Y: Integer;
+ State: TDragState; var Accept: Boolean);
private
{ Private \90é\8c¾ }
procedure TGikoForm.FavoriteTreeViewDragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
+var
+ Node: TTreeNode;
begin
if Source = FavoriteTreeView then begin
if FavoriteTreeView.Selected = FavoriteTreeView.Items.GetFirstNode then begin
Exit;
end;
Accept := True;
- end else
+ end else if Source = BrowserTab then
+ Accept := True
+ else
Accept := False;
end;
procedure TGikoForm.FavoriteTreeViewDragDrop(Sender, Source: TObject; X,
Y: Integer);
+var
+ idx: Integer;
+ ThreadItem: TThreadItem;
+ Node: TTreeNode;
+ FavNode: TTreeNode;
+ FavoThreadItem: TFavoriteThreadItem;
begin
- if FavoriteTreeView.GetNodeAt(X, Y) = nil then
- Exit;
- if Source <> FavoriteTreeView then
- Exit;
- if FavoriteTreeView.Selected = FavoriteTreeView.GetNodeAt(X, Y) then
+ Node := FavoriteTreeView.GetNodeAt(X, Y);
+
+ if Node = nil then
Exit;
+ if Source <> BrowserTab then begin
+ if Source <> FavoriteTreeView then
+ Exit;
+ if FavoriteTreeView.Selected = Node then
+ Exit;
+ end;
+
+ if Source = BrowserTab then begin
+
+ idx := BrowserTab.TabIndex;
+ if BrowserTab.Tabs.Objects[idx] is TThreadItem then begin
+ ThreadItem := TThreadItem(BrowserTab.Tabs.Objects[idx]);
+ if not (TObject(Node.Data) is TFavoriteFolder) then
+ FavNode := Node.Parent
+ else
+ FavNode := Node;
+
+ FavoThreadItem := TFavoriteThreadItem.Create;
+ FavoThreadItem.BBSID := ThreadItem.ParentBoard.BBSID;
+ FavoThreadItem.ThreadID := ThreadItem.FileName;
+ FavoThreadItem.ThreadName := ThreadItem.Title;
+ Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, ThreadItem.Title, FavoThreadItem);
+ Node.ImageIndex := 16;
+ Node.SelectedIndex := 16;
+ end;
+
+ end else begin
- if TObject(FavoriteTreeView.GetNodeAt(X, Y).Data) is TFavoriteFolder then
- FavoriteTreeView.Selected.MoveTo(FavoriteTreeView.GetNodeAt(X, Y), naAddChild)
- else if TObject(FavoriteTreeView.GetNodeAt(X, Y).Data) is TFavoriteBoardItem then
- FavoriteTreeView.Selected.MoveTo(FavoriteTreeView.GetNodeAt(X, Y), naInsert)
- else if TObject(FavoriteTreeView.GetNodeAt(X, Y).Data) is TFavoriteThreadItem then
- FavoriteTreeView.Selected.MoveTo(FavoriteTreeView.GetNodeAt(X, Y), naInsert);
+ if TObject(Node.Data) is TFavoriteFolder then
+ 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);
+
+ end;
SetLinkBar;
end;
+procedure TGikoForm.LinkToolBarDragDrop(Sender, Source: TObject; X,
+ Y: Integer);
+var
+ i, idx: Integer;
+ ThreadItem: TThreadItem;
+ Node: TTreeNode;
+ FavNode: TTreeNode;
+ FavoThreadItem: TFavoriteThreadItem;
+begin
+
+ for i := 0 to FavoriteTreeView.Items.Count - 1 do begin
+ if FavoriteTreeView.Items[i].Text = Favorite.FAVORITE_LINK_NAME then begin
+ Node := FavoriteTreeView.Items[i];
+ Break;
+ end;
+ end;
+
+ if Node = nil then
+ Exit;
+ if Source <> BrowserTab then begin
+ if Source <> FavoriteTreeView then
+ Exit;
+ if FavoriteTreeView.Selected = Node then
+ Exit;
+ end;
+
+ if Source = BrowserTab then begin
+
+ idx := BrowserTab.TabIndex;
+ if BrowserTab.Tabs.Objects[idx] is TThreadItem then begin
+ ThreadItem := TThreadItem(BrowserTab.Tabs.Objects[idx]);
+ if not (TObject(Node.Data) is TFavoriteFolder) then
+ FavNode := Node.Parent
+ else
+ FavNode := Node;
+
+ FavoThreadItem := TFavoriteThreadItem.Create;
+ FavoThreadItem.BBSID := ThreadItem.ParentBoard.BBSID;
+ FavoThreadItem.ThreadID := ThreadItem.FileName;
+ FavoThreadItem.ThreadName := ThreadItem.Title;
+ Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, ThreadItem.Title, FavoThreadItem);
+ Node.ImageIndex := 16;
+ Node.SelectedIndex := 16;
+ end;
+
+ end;
+
+ SetLinkBar;
+
+
+end;
+
+procedure TGikoForm.LinkToolBarDragOver(Sender, Source: TObject; X,
+ Y: Integer; State: TDragState; var Accept: Boolean);
+var
+ Node: TTreeNode;
+begin
+
+ if Source = FavoriteTreeView then begin
+ if FavoriteTreeView.Selected = FavoriteTreeView.Items.GetFirstNode then begin
+ Accept := False;
+ Exit;
+ end;
+ Accept := True;
+ end else if Source = BrowserTab then
+ Accept := True
+ else
+ Accept := False;
+
+end;
+
initialization
OleInitialize(nil);
finalization