From 71bd292c2eb9d224806b471cb21db00a0a7e2306 Mon Sep 17 00:00:00 2001 From: yoffy Date: Sun, 28 Sep 2003 11:00:53 +0000 Subject: [PATCH] =?utf8?q?=E3=83=BB=E3=82=BF=E3=83=96=E3=82=92=E3=83=AA?= =?utf8?q?=E3=83=B3=E3=82=AF=E3=83=90=E3=83=BC=E3=82=84=E3=81=8A=E6=B0=97?= =?utf8?q?=E3=81=AB=E5=85=A5=E3=82=8A=E3=82=AD=E3=83=A3=E3=83=93=E3=83=8D?= =?utf8?q?=E3=83=83=E3=83=88=E3=81=AB=E3=83=89=E3=83=AD=E3=83=83=E3=83=97?= =?utf8?q?=E3=81=99=E3=82=8B=E3=81=A0=E3=81=91=E3=81=A7=E3=81=8A=E6=B0=97?= =?utf8?q?=E3=81=AB=E5=85=A5=E3=82=8A=E7=99=BB=E9=8C=B2=E3=81=8C=E5=8F=AF?= =?utf8?q?=E8=83=BD=E3=81=AB=E3=81=AA=E3=81=A3=E3=81=9F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- Giko.dfm | 3 ++ Giko.pas | 135 +++++++++++++++++++++++++++++++++++++++++++++++++----- gikoNavi.res | Bin 4288 -> 4288 bytes readme/readme.txt | 1 + 4 files changed, 127 insertions(+), 12 deletions(-) diff --git a/Giko.dfm b/Giko.dfm index e7d36d8..815faa2 100644 --- a/Giko.dfm +++ b/Giko.dfm @@ -795,6 +795,7 @@ object GikoForm: TGikoForm Width = 625 Height = 18 Align = alClient + DragMode = dmAutomatic Font.Charset = SHIFTJIS_CHARSET Font.Color = clWindowText Font.Height = -11 @@ -1112,6 +1113,8 @@ object GikoForm: TGikoForm TabOrder = 3 Transparent = True Wrapable = False + OnDragDrop = LinkToolBarDragDrop + OnDragOver = LinkToolBarDragOver end end end diff --git a/Giko.pas b/Giko.pas index 106b560..508b6b4 100644 --- a/Giko.pas +++ b/Giko.pas @@ -791,6 +791,9 @@ type 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 éŒ¾ } @@ -7388,6 +7391,8 @@ end; 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 @@ -7395,27 +7400,62 @@ 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; @@ -7780,6 +7820,77 @@ begin 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 diff --git a/gikoNavi.res b/gikoNavi.res index ba0df62ea91d01c3a4b86131b492927111e8be4f..e8ac7c6a777b97228cb99fd96ceddef12681e90c 100644 GIT binary patch delta 28 jcmX@0ctCN(8(z-kj0`})$gq6!SKi-@#+yI#oo569j#UZ^ delta 28 jcmX@0ctCN(8(z+3j0`})$gphkSKi-@Mw>tKoo569jxP!b diff --git a/readme/readme.txt b/readme/readme.txt index 7c11a6f..b1e2cf4 100644 --- a/readme/readme.txt +++ b/readme/readme.txt @@ -90,6 +90,7 @@ Windows Server 2003 Enterprise Edition IE6 ------------------------------ 2003/09/28 Version ÊÞÀ42 + ƒ^ƒu‚ðƒŠƒ“ƒNƒo[‚₨‹C‚É“ü‚èƒLƒƒƒrƒlƒbƒg‚Ƀhƒƒbƒv‚·‚邾‚¯‚Å‚¨‹C‚É“ü‚è“o˜^‚ª‰Â”\‚É‚È‚Á‚½B ƒXƒLƒ“‘Ήžƒ^ƒO‚É BBSNAME, BOARDNAME, BOARDURL, THREADURL ‚ð’ljÁB ƒIƒvƒVƒ‡ƒ“ƒ_ƒCƒAƒƒO‚É‚æ‚éƒXƒ^ƒCƒ‹ƒV[ƒg‚âƒXƒLƒ“‚̕ύX‚ªAŒ»Ý•\Ž¦’†‚̃XƒŒƒbƒh‚É”½‰f‚³‚ê‚é‚悤‚É‚È‚Á‚½B ƒIƒvƒVƒ‡ƒ“ƒ_ƒCƒAƒƒO‚̃^ƒuA‚¨‚æ‚эŌã‚É•\Ž¦‚µ‚½ƒLƒƒƒrƒlƒbƒg‚ðŠo‚¦‚é‚悤‚É‚È‚Á‚½B -- 2.11.0