mirror of https://gitlab.com/basile.b/dexed.git
updated interfaces and observers
This commit is contained in:
parent
e0c3d9495f
commit
f6b2c02031
|
@ -100,10 +100,10 @@ type
|
||||||
*)
|
*)
|
||||||
ICEMainMenuProvider = interface
|
ICEMainMenuProvider = interface
|
||||||
['ICEMainMenuProvider']
|
['ICEMainMenuProvider']
|
||||||
// item must contain the full items tree to be added
|
// item is a new mainMenu entry. item must be filled with the sub-items to be added.
|
||||||
procedure menuDeclare(out item: TMenuItem);
|
procedure menuDeclare(item: TMenuItem);
|
||||||
// the implementer can update the actions used in the menu declared previously.
|
// item is the mainMenu entry declared previously. the sub items can be updated, deleted.
|
||||||
procedure menuActionsUpdate;
|
procedure menuUpdate(item: TMenuItem);
|
||||||
end;
|
end;
|
||||||
(**
|
(**
|
||||||
* An implementer agregates its observers menus.
|
* An implementer agregates its observers menus.
|
||||||
|
|
|
@ -52,6 +52,8 @@ type
|
||||||
fObservers: TObjectList;
|
fObservers: TObjectList;
|
||||||
// test for a specific interface when adding an observer.
|
// test for a specific interface when adding an observer.
|
||||||
function acceptObserver(aObject: TObject): boolean; virtual;
|
function acceptObserver(aObject: TObject): boolean; virtual;
|
||||||
|
function getObserversCount: Integer;
|
||||||
|
function getObserver(index: Integer): TObject;
|
||||||
public
|
public
|
||||||
constructor create; virtual;
|
constructor create; virtual;
|
||||||
destructor destroy; override;
|
destructor destroy; override;
|
||||||
|
@ -59,6 +61,9 @@ type
|
||||||
procedure addObserver(anObserver: TObject);
|
procedure addObserver(anObserver: TObject);
|
||||||
procedure removeObserver(anObserver: TObject);
|
procedure removeObserver(anObserver: TObject);
|
||||||
procedure updateObservers; virtual;
|
procedure updateObservers; virtual;
|
||||||
|
//
|
||||||
|
property observersCount: Integer read getObserversCount;
|
||||||
|
property observers[index: Integer]: TObject read getObserver;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
|
@ -164,6 +169,16 @@ begin
|
||||||
exit(false);
|
exit(false);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TCECustomSubject.getObserversCount: Integer;
|
||||||
|
begin
|
||||||
|
exit(fObservers.Count);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TCECustomSubject.getObserver(index: Integer): TObject;
|
||||||
|
begin
|
||||||
|
exit(fObservers.Items[index]);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCECustomSubject.addObserver(anObserver: TObject);
|
procedure TCECustomSubject.addObserver(anObserver: TObject);
|
||||||
begin
|
begin
|
||||||
if not acceptObserver(anObserver) then
|
if not acceptObserver(anObserver) then
|
||||||
|
|
Loading…
Reference in New Issue