anchor.diff:      FFont: TfpgFont;
       FBoxLayout: TBoxLayout;
       FBoxSize: integer;
  +    FImgTextSpacing: integer;
       FIsPressed: boolean;
       function    GetBoxLayout: TBoxLayout;
       function    GetFontDesc: string;
  
positive.code:   else
      ix := (2 + (Ord(FChecked) * 2)) - Ord(FChecked);
  
    // calc the text offset and checkbox offset
    if FBoxLayout = tbLeftBox then
    begin
      tx := r.right + 8;
      inc(r.left, 2);
    end
    else
      tx := 3;  // leave space for focus rectangle
    inc(r.top, 1);
    // paint the check (in this case a X)
    img := fpgImages.GetImage('sys.checkboxes');    // Do NOT localize
    Canvas.DrawImagePart(r.Left, r.Top, img, ix*13, 0, 13, 13);
  
    ty := (Height div 2) - (Font.Height div 2);
    if ty < 0 then
      ty := 0;
    Canvas.SetTextColor(FTextColor);
    Canvas.ClearClipRect;
    cliprect.SetRect(tx, ty, Width-FBoxSize-8, cliprect.Height);
    Canvas.SetClipRect(cliprect);
    fpgStyle.DrawString(Canvas, tx, ty, FText, Enabled);
  end;
  
  procedure TfpgBaseCheckBox.HandleLMouseDown(x, y: integer; shiftstate: TShiftState);
  
negative.code: procedure TfpgBaseCheckBox.HandlePaint;
  var
    r: TfpgRect;
    ix: integer;
    img: TfpgImage;
    LFlags: TFTextFlags;
  begin
    inherited HandlePaint;
    Canvas.ClearClipRect;
    Canvas.SetColor(FBackgroundColor);
    Canvas.FillRectangle(0, 0, Width, Height);
    Canvas.SetFont(Font);
    Canvas.SetLineStyle(1, lsSolid);
  
    if FBoxLayout = tbLeftBox then
      r.SetRect(2, ((Height - FBoxSize) div 2), FBoxSize, FBoxSize)
    else
      r.SetRect(Width - FBoxSize - 2, ((Height - FBoxSize) div 2), FBoxSize, FBoxSize);
    if r.top < 0 then
      r.top := 0;
  
  