anchor.diff:    Classes,
     SysUtils,
     fpg_impl,
  -  syncobjs; // TCriticalSection usage
  +  syncobjs, // TCriticalSection usage
  +  URIParser, variants, contnrs;
   
   type
     TfpgCoord       = integer;     // we might use floating point coordinates in the future...
  
positive.code:   FTagPointer   := nil;
  end;
  
  end.
  
  
negative.code:   end;
  
  
    TfpgMimeDataStruct = class(TObject)
    public
      format: TfpgString;
      data: Variant;
      constructor Create(const AFormat: TfpgString; const AData: variant); reintroduce;
    end;
  
  
    TfpgMimeDataBase = class(TObject)
    private
      { TODO: This is wrong, we must have one Data Storage object }
      FDataList: TObjectList;
      FFormats: TStrings;
      FUrlList: TList;
      FHTML: TfpgString;
      function    Geturls: TList;
      procedure   Seturls(const AValue: TList);
      function    GetText: TfpgString;
      procedure   SetText(const AValue: TfpgString);
      function    GetHTML: TfpgString;
      procedure   SetHTML(const AValue: TfpgString);
      function    GetFormatCout: integer;
    public
      constructor Create;
      destructor  Destroy; override;
      procedure   Clear;
      function    HasFormat(const AMimeType: TfpgString): boolean;
      function    Formats: TStrings;
      procedure   SetData(const AMimeType: TfpgString; const AData: Variant);
      property    urls: TList read Geturls write Seturls;
      property    Text: TfpgString read GetText write SetText;
      property    HTML: TfpgString read GetHTML write SetHTML;
      property    FormatCount: integer read GetFormatCout;
    end;
  { ********  Helper functions  ******** }
  { Keyboard }
  function  KeycodeToText(AKey: Word; AShiftState: TShiftState): string;
  