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']
|
||||
// item must contain the full items tree to be added
|
||||
procedure menuDeclare(out item: TMenuItem);
|
||||
// the implementer can update the actions used in the menu declared previously.
|
||||
procedure menuActionsUpdate;
|
||||
// item is a new mainMenu entry. item must be filled with the sub-items to be added.
|
||||
procedure menuDeclare(item: TMenuItem);
|
||||
// item is the mainMenu entry declared previously. the sub items can be updated, deleted.
|
||||
procedure menuUpdate(item: TMenuItem);
|
||||
end;
|
||||
(**
|
||||
* An implementer agregates its observers menus.
|
||||
|
|
|
@ -52,6 +52,8 @@ type
|
|||
fObservers: TObjectList;
|
||||
// test for a specific interface when adding an observer.
|
||||
function acceptObserver(aObject: TObject): boolean; virtual;
|
||||
function getObserversCount: Integer;
|
||||
function getObserver(index: Integer): TObject;
|
||||
public
|
||||
constructor create; virtual;
|
||||
destructor destroy; override;
|
||||
|
@ -59,6 +61,9 @@ type
|
|||
procedure addObserver(anObserver: TObject);
|
||||
procedure removeObserver(anObserver: TObject);
|
||||
procedure updateObservers; virtual;
|
||||
//
|
||||
property observersCount: Integer read getObserversCount;
|
||||
property observers[index: Integer]: TObject read getObserver;
|
||||
end;
|
||||
|
||||
var
|
||||
|
@ -164,6 +169,16 @@ begin
|
|||
exit(false);
|
||||
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);
|
||||
begin
|
||||
if not acceptObserver(anObserver) then
|
||||
|
|
Loading…
Reference in New Issue