Browse Source

--- Merging r23297 into '.':
U packages/fcl-image/src/fpcanvas.pp
U packages/fcl-image/src/fppen.inc

# revisions: 23297
r23297 | sekelsenmat | 2013-01-02 15:28:09 +0100 (Wed, 02 Jan 2013) | 1 line
Changed paths:
M /trunk/packages/fcl-image/src/fpcanvas.pp
M /trunk/packages/fcl-image/src/fppen.inc

Adds support to join style and endcap in TFPCustomPen in fcl-image

git-svn-id: branches/fixes_2_6@23654 -

marco 12 years ago
parent
commit
36cd770c64
2 changed files with 30 additions and 0 deletions
  1. 18 0
      packages/fcl-image/src/fpcanvas.pp
  2. 12 0
      packages/fcl-image/src/fppen.inc

+ 18 - 0
packages/fcl-image/src/fpcanvas.pp

@@ -115,6 +115,18 @@ type
                 pmMergePenNot, pmMaskPenNot, pmMergeNotPen, pmMaskNotPen, pmMerge,
                 pmMergePenNot, pmMaskPenNot, pmMergeNotPen, pmMaskNotPen, pmMerge,
                 pmNotMerge, pmMask, pmNotMask, pmXor, pmNotXor);
                 pmNotMerge, pmMask, pmNotMask, pmXor, pmNotXor);
   TPenPattern = Longword;
   TPenPattern = Longword;
+  TFPPenEndCap = (
+    pecRound,
+    pecSquare,
+    pecFlat
+  );
+  TFPPenJoinStyle = (
+    pjsRound,
+    pjsBevel,
+    pjsMiter
+  );
+
+  { TFPCustomPen }
 
 
   TFPCustomPen = class (TFPCanvasHelper)
   TFPCustomPen = class (TFPCanvasHelper)
   private
   private
@@ -122,12 +134,16 @@ type
     FWidth : Integer;
     FWidth : Integer;
     FMode : TFPPenMode;
     FMode : TFPPenMode;
     FPattern : longword;
     FPattern : longword;
+    FEndCap: TFPPenEndCap;
+    FJoinStyle: TFPPenJoinStyle;
   protected
   protected
     procedure DoCopyProps (From:TFPCanvasHelper); override;
     procedure DoCopyProps (From:TFPCanvasHelper); override;
     procedure SetMode (AValue : TFPPenMode); virtual;
     procedure SetMode (AValue : TFPPenMode); virtual;
     procedure SetWidth (AValue : Integer); virtual;
     procedure SetWidth (AValue : Integer); virtual;
     procedure SetStyle (AValue : TFPPenStyle); virtual;
     procedure SetStyle (AValue : TFPPenStyle); virtual;
     procedure SetPattern (AValue : longword); virtual;
     procedure SetPattern (AValue : longword); virtual;
+    procedure SetEndCap(AValue: TFPPenEndCap); virtual;
+    procedure SetJoinStyle(AValue: TFPPenJoinStyle); virtual;
   public
   public
     function CopyPen : TFPCustomPen;
     function CopyPen : TFPCustomPen;
     // Creates a copy of the pen with all properties the same, but not allocated
     // Creates a copy of the pen with all properties the same, but not allocated
@@ -135,6 +151,8 @@ type
     property Width : Integer read FWidth write SetWidth;
     property Width : Integer read FWidth write SetWidth;
     property Mode : TFPPenMode read FMode write SetMode;
     property Mode : TFPPenMode read FMode write SetMode;
     property Pattern : longword read FPattern write SetPattern;
     property Pattern : longword read FPattern write SetPattern;
+    property EndCap : TFPPenEndCap read FEndCap write SetEndCap;
+    property JoinStyle : TFPPenJoinStyle read FJoinStyle write SetJoinStyle;
   end;
   end;
   TFPCustomPenClass = class of TFPCustomPen;
   TFPCustomPenClass = class of TFPCustomPen;
   
   

+ 12 - 0
packages/fcl-image/src/fppen.inc

@@ -37,6 +37,18 @@ begin
   FPattern := AValue;
   FPattern := AValue;
 end;
 end;
 
 
+procedure TFPCustomPen.SetEndCap(AValue: TFPPenEndCap);
+begin
+  if FEndCap=AValue then Exit;
+  FEndCap:=AValue;
+end;
+
+procedure TFPCustomPen.SetJoinStyle(AValue: TFPPenJoinStyle);
+begin
+  if FJoinStyle=AValue then Exit;
+  FJoinStyle:=AValue;
+end;
+
 procedure TFPCustomPen.DoCopyProps (From:TFPCanvasHelper);
 procedure TFPCustomPen.DoCopyProps (From:TFPCanvasHelper);
 begin
 begin
   with From as TFPCustomPen do
   with From as TFPCustomPen do