mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 06:19:32 +02:00
lazde tree nodes selection and focus appearance, issue #7188 (patch from Luiz Americo)
git-svn-id: trunk@10359 -
This commit is contained in:
parent
977c77be92
commit
2d42b48ed2
@ -97,8 +97,6 @@ Type
|
|||||||
Procedure ElementChange(Sender: TObject; Node: TTreeNode);
|
Procedure ElementChange(Sender: TObject; Node: TTreeNode);
|
||||||
Procedure ElementChanging(Sender: TObject; Node: TTreeNode;
|
Procedure ElementChanging(Sender: TObject; Node: TTreeNode;
|
||||||
Var AllowChange : Boolean);
|
Var AllowChange : Boolean);
|
||||||
// Till the above two get fixed, this one is used instead:
|
|
||||||
Procedure TreeClick(Sender: TObject);
|
|
||||||
Procedure MenuRenameClick(Sender : TObject);
|
Procedure MenuRenameClick(Sender : TObject);
|
||||||
Procedure MenuDeleteClick(Sender : TObject);
|
Procedure MenuDeleteClick(Sender : TObject);
|
||||||
Procedure MenuCollapseAllClick(Sender: TObject);
|
Procedure MenuCollapseAllClick(Sender: TObject);
|
||||||
@ -194,8 +192,13 @@ begin
|
|||||||
If (N.Data=Pointer(E)) then
|
If (N.Data=Pointer(E)) then
|
||||||
Result:=N
|
Result:=N
|
||||||
else
|
else
|
||||||
|
begin
|
||||||
|
//recurse
|
||||||
|
if N.HasChildren then
|
||||||
|
Result:=SubNodeWithElement(N, E);
|
||||||
N:=N.GetNextSibling;
|
N:=N.GetNextSibling;
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ ---------------------------------------------------------------------
|
{ ---------------------------------------------------------------------
|
||||||
@ -289,8 +292,6 @@ begin
|
|||||||
Images:=FImageList;
|
Images:=FImageList;
|
||||||
OnChange:=@ModuleChange;
|
OnChange:=@ModuleChange;
|
||||||
OnChanging:=@ModuleChanging;
|
OnChanging:=@ModuleChanging;
|
||||||
// Till the above two get fixed, use this
|
|
||||||
OnClick:=@TreeClick;
|
|
||||||
end;
|
end;
|
||||||
FSplitter:=TSplitter.Create(Self);
|
FSplitter:=TSplitter.Create(Self);
|
||||||
With FSplitter do
|
With FSplitter do
|
||||||
@ -320,8 +321,6 @@ begin
|
|||||||
Images:=FImageList;
|
Images:=FImageList;
|
||||||
OnChange:=@ElementChange;
|
OnChange:=@ElementChange;
|
||||||
OnChanging:=@ElementChanging;
|
OnChanging:=@ElementChanging;
|
||||||
// Till the above two get fixed, use this:
|
|
||||||
OnClick:=@TreeClick;
|
|
||||||
end;
|
end;
|
||||||
PEMenu:=TPopupMenu.Create(Self);
|
PEMenu:=TPopupMenu.Create(Self);
|
||||||
FERenameMenu:=NewMenuItem(SMenuRename,@MenuRenameClick);
|
FERenameMenu:=NewMenuItem(SMenuRename,@MenuRenameClick);
|
||||||
@ -386,15 +385,6 @@ begin
|
|||||||
AllowChange:=True;
|
AllowChange:=True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// This one must disappear as soon as OnChange/OnChanging work !!
|
|
||||||
procedure TPackageEditor.TreeClick(Sender: TObject);
|
|
||||||
begin
|
|
||||||
If Sender=FModuleTree then
|
|
||||||
ModuleChange(Sender,FModuleTree.Selected)
|
|
||||||
else
|
|
||||||
ElementChange(Sender,FElementTree.Selected);
|
|
||||||
end;
|
|
||||||
|
|
||||||
Procedure TPackageEditor.SelectElement(Sender : TDomElement);
|
Procedure TPackageEditor.SelectElement(Sender : TDomElement);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
@ -413,7 +403,6 @@ Var
|
|||||||
|
|
||||||
begin
|
begin
|
||||||
if Sender=nil then ;
|
if Sender=nil then ;
|
||||||
if Node=nil then ;
|
|
||||||
If (Node<>Nil) then
|
If (Node<>Nil) then
|
||||||
begin
|
begin
|
||||||
O:=TDomElement(Node.Data);
|
O:=TDomElement(Node.Data);
|
||||||
@ -1112,12 +1101,16 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TPackageEditor.SetCurrentElement(E : TDomElement);
|
Procedure TPackageEditor.SetCurrentElement(E : TDomElement);
|
||||||
|
var
|
||||||
|
SelNode:TTreeNode;
|
||||||
begin
|
begin
|
||||||
If (E<>FCurrentElement) and (E <> nil) then
|
If (E<>FCurrentElement) and (E <> nil) then
|
||||||
begin
|
begin
|
||||||
Inherited;
|
Inherited;
|
||||||
CurrentModule:=E.ParentNode as TDomElement;
|
CurrentModule:=E.ParentNode as TDomElement;
|
||||||
|
SelNode:=FElementTree.Selected;
|
||||||
|
//avoid selecting an already selected node (occurs in OnChange event)
|
||||||
|
if (SelNode = nil) or (SelNode.Data <> Pointer(E)) then
|
||||||
SetCurrentElementNode(FindElementNode(E,Nil));
|
SetCurrentElementNode(FindElementNode(E,Nil));
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user