* Further development.

git-svn-id: trunk@3678 -
This commit is contained in:
daniel 2006-05-26 10:13:14 +00:00
parent ea5aad0abb
commit 67e7f2cb1f

View File

@ -28,9 +28,11 @@ type Pnode=^Tnode;
function firstthat(test:pointer):pointer; function firstthat(test:pointer):pointer;
procedure focused(i:sw_integer);virtual; procedure focused(i:sw_integer);virtual;
procedure foreach(node:pointer); procedure foreach(node:pointer);
function getgraph(level:integer;lines:longint;flags:word):string;
function getnumchildren(node:pointer):sw_integer;virtual;
function getchild(node:pointer;i:sw_integer):pointer;virtual; function getchild(node:pointer;i:sw_integer):pointer;virtual;
function getgraph(level:integer;lines:longint;flags:word):string;
function getnode(i:sw_integer):pointer;virtual;
function getnumchildren(node:pointer):sw_integer;virtual;
function getroot:pointer;virtual;
function gettext(node:pointer):string;virtual; function gettext(node:pointer):string;virtual;
function haschildren(node:pointer):boolean;virtual; function haschildren(node:pointer):boolean;virtual;
function isexpanded(node:pointer):boolean;virtual; function isexpanded(node:pointer):boolean;virtual;
@ -43,12 +45,15 @@ type Pnode=^Tnode;
AHscrollbar,AVscrollbar:Pscrollbar; AHscrollbar,AVscrollbar:Pscrollbar;
Aroot:Pnode); Aroot:Pnode);
procedure adjust(node:pointer;expand:boolean);virtual; procedure adjust(node:pointer;expand:boolean);virtual;
function getnumchildren(node:pointer):sw_integer;virtual;
function getchild(node:pointer;i:sw_integer):pointer;virtual; function getchild(node:pointer;i:sw_integer):pointer;virtual;
function getnumchildren(node:pointer):sw_integer;virtual;
function getroot:pointer;virtual;
function gettext(node:pointer):string;virtual; function gettext(node:pointer):string;virtual;
function haschildren(node:pointer):boolean;virtual; function haschildren(node:pointer):boolean;virtual;
function isexpanded(node:pointer):boolean;virtual; function isexpanded(node:pointer):boolean;virtual;
destructor done;virtual; function isselected(node:pointer):boolean;virtual;
procedure selected(i:sw_integer);virtual;
procedure setstate(Astate:word;enable:boolean);virtual;
end; end;
function newnode(const Atext:string;Achildren,Anext:Pnode):Pnode; function newnode(const Atext:string;Achildren,Anext:Pnode):Pnode;
@ -59,6 +64,11 @@ procedure disposenode(node:Pnode);
implementation implementation
{***************************************************************************} {***************************************************************************}
type TMyFunc = function(_EBP: Pointer; Cur: Pointer;
Level, Position: sw_integer; Lines: LongInt;
Flags: Word): Boolean;
function newnode(const Atext:string;Achildren,Anext:Pnode):Pnode; function newnode(const Atext:string;Achildren,Anext:Pnode):Pnode;
begin begin
@ -81,6 +91,7 @@ begin
disposenode(childlist); disposenode(childlist);
if next<>nil then if next<>nil then
disposenode(next) disposenode(next)
disposestr(text);
end; end;
dispose(node); dispose(node);
end; end;
@ -219,19 +230,30 @@ procedure Toutlineviewer.foreach(action:pointer);
begin begin
end; end;
function Toutlineviewer.getchild(node:pointer;i:sw_integer):pointer;
begin
abstract;
end;
function Toutlineviewer.getgraph(level:integer;lines:longint; function Toutlineviewer.getgraph(level:integer;lines:longint;
flags:word):string; flags:word):string;
begin begin
end; end;
function Toutlineviewer.getnode(i:sw_integer):pointer;
begin
end;
function Toutlineviewer.getnumchildren(node:pointer):sw_integer; function Toutlineviewer.getnumchildren(node:pointer):sw_integer;
begin begin
abstract; abstract;
end; end;
function Toutlineviewer.getchild(node:pointer;i:sw_integer):pointer; function Toutlineviewer.getroot:pointer;
begin begin
abstract; abstract;
@ -252,13 +274,30 @@ end;
function Toutlineviewer.isexpanded(node:pointer):boolean; function Toutlineviewer.isexpanded(node:pointer):boolean;
begin begin
abstract;
end; end;
destructor Toutlineviewer.done;virtual; function Toutlineviewer.isexpanded(i:sw_integer):boolean;
begin begin
isexpanded:=foc=i;
end; end;
procedure Toutlineviewer.selected(i:sw_integer);
begin
{Does nothing by default.}
end;
procedure Toutlineviewer.setstate(Astate:word;enable:boolean);
begin
if Astate and sffocused<>0 then
drawview;
inherited setstate(Astate);
end;
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++} {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
{ Toutline object methods } { Toutline object methods }
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++} {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
@ -310,6 +349,12 @@ begin
end; end;
end; end;
function Toutlineviewer.getroot:pointer;
begin
getroot:=root;
end;
function Toutline.gettext(node:pointer):string; function Toutline.gettext(node:pointer):string;
begin begin