| 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; |
| 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; |
| 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; |
| 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; |
| 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; |
| 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; |
| 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; |
| 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 |
|
|
| 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 |
|
|
| 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 |
| 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 |
| 8117 |
|
|
| 8118 |
SetLinkBar; |
SetLinkBar; |
| 8119 |
|
|
|
|
|
| 8120 |
end; |
end; |
| 8121 |
|
|
| 8122 |
procedure TGikoForm.BrowserTabMouseUp(Sender: TObject; |
procedure TGikoForm.BrowserTabMouseUp(Sender: TObject; |