anchor.diff:  end;
   {$ENDREGION}
   
  -{$REGION TCESessionOptionsSubject------------------------------------------------------}
  +{$REGION TCESessionOptionsSubject-----------------------------------------------}
   function TCESessionOptionsSubject.acceptObserver(aObject: TObject): boolean;
   begin
     exit(aObject is ICESessionOptionsObserver);
  
positive.code:   protected
      function acceptObserver(aObject: TObject): boolean; override;
    end;
  
    (**
     * An implementer is informed about the current project(s).
  
negative.code:     // the implementer can update the actions used in the menu declared previously.
      procedure menuActionsUpdate;
    end;
    (**
     * An implementer agregates its observers menus.
     *)
    TCEMainMenuSubject = class(TCECustomSubject)
    protected
      function acceptObserver(aObject: TObject): boolean; override;
    end;
  
  
  
    (**
     * An implementer can expose some customizable shortcuts
     *)
    ICEEditableShortCut = interface
    ['ICEEditableShortCut']
      // a TCEEditableShortCutSubject queries the editable shortcuts count.
      procedure scGetCount(out aValue: Integer);
      // a TCEEditableShortCutSubject queries the shortcut category name.
      procedure scGetCategory(out aValue: string);
      // a TCEEditableShortCutSubject queries the state of the index-th shortcut.
      procedure scGetItem(index: Integer; out aName: string; out aShortcut: Word);
      // a TCEEditableShortCutSubject sends the possibly modified assignation of the index-th shortcut.
      procedure scSetItem(index: Integer; const aCategory, aName: string; aShortcut: Word);
    end;
    (**
     * An implementer manages its observers shortcuts.
     *)
    TCEEditableShortCutSubject = class(TCECustomSubject)
    protected
      function acceptObserver(aObject: TObject): boolean; override;
    end;
  
  
  {
  