anchor.diff:      procedure MoveTab(AFrom, ATo: integer; AActivateThen: boolean);
       procedure DoScrollLeft;
       procedure DoScrollRight;
  +    procedure DoScrollAnimation(APosTo: integer);
   
     protected
       procedure Paint; override;
  
positive.code:       ATabCloseBorder, ATabCloseXMark: TColor);
      procedure DoPaintDropMark(C: TCanvas);
      procedure DoPaintScrollMark(C: TCanvas);
      procedure DoScrollAnimation(APosTo: integer);
      function GetIndexOfButton(AData: TATTabButtons; ABtn: TATTabButton): integer;
      function GetInitialVerticalIndent: integer;
      function IsScrollMarkNeeded: boolean;
      function GetMaxEdgePos: integer;
      function GetMaxScrollPos: integer;
  
negative.code:   TabIndex:= FTabIndexLoaded;
  end;
  
  function TATTabs.GetButtonsEmpty: boolean;
  begin
    Result:=
      (FButtonsLeft[0]=atbNone) and
      (FButtonsRight[0]=atbNone);
  end;
  
  function TATTabs.GetInitialVerticalIndent: integer;
  begin
    if GetButtonsEmpty then
      Result:= FOptSpaceInitial
    else
      Result:= FOptTabHeight;
  