anchor.diff:  uses
     Classes, SysUtils, FileUtil, ListFilterEdit, Forms, Controls, Graphics,
     ExtCtrls, Menus, ComCtrls, Buttons, lcltype, strutils, ce_widget,
  -  ce_common, ce_interfaces, ce_observer;
  +  ce_common, ce_interfaces, ce_observer, ce_writableComponent;
   
   type
  +
  +  TCEMiniExplorerOptions = class(TWritableLfmTextComponent)
  +  private
  +    fFavoriteFolders: TStringList;
  +    fSplitter1Position: integer;
  +    fSplitter2Position: integer;
  +    fLastFolder: string;
  +    procedure setFavoriteFolders(aValue: TStringList);
  +  published
  +    property splitter1Position: integer read fSplitter1Position write fSplitter1Position;
  +    property splitter2Position: integer read fSplitter2Position write fSplitter2Position;
  +    property lastFolder: string read fLastFolder write fLastFolder;
  +    property favoriteFolders: TStringList read fFavoriteFolders write setFavoriteFolders;
  +  public
  +    constructor create(aOwner: TComponent); override;
  +    destructor destroy; override;
  +    procedure assign(aValue: TPersistent); override;
  +    procedure assignTo(aValue: TPersistent); override;
  +  end;
  +
     TCEMiniExplorerWidget = class(TCEWidget)
       btnAddFav: TBitBtn;
       btnEdit: TBitBtn;
  
positive.code:     fFavorites: TStringList;
      fLastFold: string;
      procedure lstFavDblClick(Sender: TObject);
      procedure optset_LastFold(aReader: TReader);
      procedure optget_LastFold(aWriter: TWriter);
      procedure optset_Favs(aReader: TReader);
      procedure optget_Favs(aWriter: TWriter);
      procedure optset_SplitFavTree(aReader: TReader);
      procedure optget_SplitFavTree(aWriter: TWriter);
      procedure optset_SplitTreeFiles(aReader: TReader);
      procedure optget_SplitTreeFiles(aWriter: TWriter);
      procedure updateFavorites;
      procedure treeSetRoots;
      procedure lstFilesFromTree;
  
negative.code:     constructor create(aIwner: TComponent); override;
      destructor destroy; override;
      //
      procedure expandPath(const aPath: string);
    end;
  
  implementation
  {$R *.lfm}
  
  const
    OptsFname = 'miniexplorer.txt';
  
  {$REGION TCEMiniExplorerOptions ------------------------------------------------}
  constructor TCEMiniExplorerOptions.create(aOwner: TComponent);
  begin
    inherited;
    fFavoriteFolders := TStringList.Create;
  end;
  
  destructor TCEMiniExplorerOptions.destroy;
  begin
    fFavoriteFolders.Free;
    inherited;
  end;
  
  procedure TCEMiniExplorerOptions.assign(aValue: TPersistent);
  var
    widg: TCEMiniExplorerWidget;
  begin
    if aValue is TCEMiniExplorerWidget then
    begin
      widg := TCEMiniExplorerWidget(aValue);
      fFavoriteFolders.Assign(widg.fFavorites);
      fLastFolder := widg.fLastFold;
      fSplitter1Position := widg.Splitter1.GetSplitterPosition;
      fSplitter2Position := widg.Splitter2.GetSplitterPosition;
    end
    else inherited;
  end;
  
  procedure TCEMiniExplorerOptions.assignTo(aValue: TPersistent);
  var
    widg: TCEMiniExplorerWidget;
  begin
    if aValue is TCEMiniExplorerWidget then
    begin
      widg := TCEMiniExplorerWidget(aValue);
      widg.fFavorites.Assign(fFavoriteFolders);
      widg.fLastFold:=fLastFolder;
      widg.Splitter1.SetSplitterPosition(fSplitter1Position);
      widg.Splitter2.SetSplitterPosition(fSplitter2Position);
      widg.updateFavorites;
      if DirectoryExists(widg.fLastFold) then
        widg.expandPath(fLastFolder);
    end
    else inherited;
  end;
  
  procedure TCEMiniExplorerOptions.setFavoriteFolders(aValue: TStringList);
  begin
    fFavoriteFolders.Assign(aValue);
  end;
  {$ENDREGION}
  
  {$REGION Standard Comp/Obj------------------------------------------------------}
  constructor TCEMiniExplorerWidget.create(aIwner: TComponent);
  var
    png: TPortableNetworkGraphic;
    fname: string;
  begin
    inherited;
    //
  