Преглед на файлове

shape editor can be for filling

Unknown преди 6 години
родител
ревизия
d204709a52

+ 17 - 13
lazpaintcontrols/lcvectororiginal.pas

@@ -97,7 +97,8 @@ type
     function GetRenderBounds(ADestRect: TRect; AMatrix: TAffineMatrix; AOptions: TRenderBoundsOptions = []): TRectF; virtual; abstract;
     function SuggestGradientBox(AMatrix: TAffineMatrix): TAffineBox; virtual;
     function PointInShape(APoint: TPointF): boolean; virtual; abstract;
-    procedure ConfigureEditor(AEditor: TBGRAOriginalEditor); virtual; abstract;
+    procedure ConfigureCustomEditor(AEditor: TBGRAOriginalEditor); virtual; abstract;
+    procedure ConfigureEditor(AEditor: TBGRAOriginalEditor); virtual;
     procedure LoadFromStorage(AStorage: TBGRACustomOriginalStorage); virtual;
     procedure SaveToStorage(AStorage: TBGRACustomOriginalStorage); virtual;
     procedure MouseMove({%H-}Shift: TShiftState; {%H-}X, {%H-}Y: single; var {%H-}ACursor: TOriginalEditorCursor; var {%H-}AHandled: boolean); virtual;
@@ -1011,6 +1012,20 @@ begin
   result := TAffineBox.AffineBox(rF);
 end;
 
+procedure TVectorShape.ConfigureEditor(AEditor: TBGRAOriginalEditor);
+begin
+  if (Usermode = vsuEditBackFill) and BackFill.IsEditable then
+    BackFill.ConfigureEditor(AEditor)
+  else
+  if (Usermode = vsuEditPenFill) and PenFill.IsEditable then
+    PenFill.ConfigureEditor(AEditor)
+  else
+  if (Usermode = vsuEditOutlineFill) and OutlineFill.IsEditable then
+    OutlineFill.ConfigureEditor(AEditor)
+  else
+    ConfigureCustomEditor(AEditor);
+end;
+
 procedure TVectorShape.LoadFromStorage(AStorage: TBGRACustomOriginalStorage);
 var
   f: TVectorShapeFields;
@@ -1582,18 +1597,7 @@ begin
       DiscardFrozenShapes;
     end
     else
-    begin
-      if (FSelectedShape.Usermode = vsuEditBackFill) and FSelectedShape.BackFill.IsEditable then
-        FSelectedShape.BackFill.ConfigureEditor(AEditor)
-      else
-      if (FSelectedShape.Usermode = vsuEditPenFill) and FSelectedShape.PenFill.IsEditable then
-        FSelectedShape.PenFill.ConfigureEditor(AEditor)
-      else
-      if (FSelectedShape.Usermode = vsuEditOutlineFill) and FSelectedShape.OutlineFill.IsEditable then
-        FSelectedShape.OutlineFill.ConfigureEditor(AEditor)
-      else
-        FSelectedShape.ConfigureEditor(AEditor);
-    end;
+      FSelectedShape.ConfigureEditor(AEditor);
   end;
   //no more reference to event handlers
   FreeDeletedShapes;

+ 2 - 2
lazpaintcontrols/lcvectorpolyshapes.pas

@@ -56,7 +56,7 @@ type
     procedure QuickDefine(const APoint1,APoint2: TPointF); override;
     procedure LoadFromStorage(AStorage: TBGRACustomOriginalStorage); override;
     procedure SaveToStorage(AStorage: TBGRACustomOriginalStorage); override;
-    procedure ConfigureEditor(AEditor: TBGRAOriginalEditor); override;
+    procedure ConfigureCustomEditor(AEditor: TBGRAOriginalEditor); override;
     class function Usermodes: TVectorShapeUsermodes; override;
     property Points[AIndex:integer]: TPointF read GetPoint write SetPoint;
     property PointCount: integer read GetPointCount;
@@ -534,7 +534,7 @@ begin
   AStorage.Bool['closed'] := Closed;
 end;
 
-procedure TCustomPolypointShape.ConfigureEditor(AEditor: TBGRAOriginalEditor);
+procedure TCustomPolypointShape.ConfigureCustomEditor(AEditor: TBGRAOriginalEditor);
 var
   i, nb: Integer;
 begin

+ 5 - 5
lazpaintcontrols/lcvectorrectshapes.pas

@@ -48,7 +48,7 @@ type
     procedure LoadFromStorage(AStorage: TBGRACustomOriginalStorage); override;
     procedure SaveToStorage(AStorage: TBGRACustomOriginalStorage); override;
     function GetRenderBounds({%H-}ADestRect: TRect; AMatrix: TAffineMatrix; {%H-}AOptions: TRenderBoundsOptions = []): TRectF; override;
-    procedure ConfigureEditor(AEditor: TBGRAOriginalEditor); override;
+    procedure ConfigureCustomEditor(AEditor: TBGRAOriginalEditor); override;
     function GetAffineBox(AMatrix: TAffineMatrix; APixelCentered: boolean): TAffineBox;
     property Origin: TPointF read FOrigin write SetOrigin;
     property XAxis: TPointF read FXAxis;
@@ -122,7 +122,7 @@ type
     function GetCornerPositition: single; override;
     class function Fields: TVectorShapeFields; override;
     class function PreferPixelCentered: boolean; override;
-    procedure ConfigureEditor(AEditor: TBGRAOriginalEditor); override;
+    procedure ConfigureCustomEditor(AEditor: TBGRAOriginalEditor); override;
     procedure MouseDown(RightButton: boolean; Shift: TShiftState; X, Y: single; var ACursor: TOriginalEditorCursor; var AHandled: boolean); override;
     procedure LoadFromStorage(AStorage: TBGRACustomOriginalStorage); override;
     procedure SaveToStorage(AStorage: TBGRACustomOriginalStorage); override;
@@ -516,7 +516,7 @@ begin
   result := GetAffineBox(AMatrix, false).RectBoundsF;
 end;
 
-procedure TCustomRectShape.ConfigureEditor(AEditor: TBGRAOriginalEditor);
+procedure TCustomRectShape.ConfigureCustomEditor(AEditor: TBGRAOriginalEditor);
 var
   d: Single;
   u, v: TPointF;
@@ -1041,11 +1041,11 @@ begin
   Result:= false;
 end;
 
-procedure TPhongShape.ConfigureEditor(AEditor: TBGRAOriginalEditor);
+procedure TPhongShape.ConfigureCustomEditor(AEditor: TBGRAOriginalEditor);
 var
   idxLight: Integer;
 begin
-  inherited ConfigureEditor(AEditor);
+  inherited ConfigureCustomEditor(AEditor);
   idxLight := AEditor.AddPoint(FLightPosition, @OnMoveLightPos, true);
   if AEditor is TVectorOriginalEditor then
     TVectorOriginalEditor(AEditor).AddLabel(idxLight, LightPositionCaption, taCenter, tlTop);

+ 3 - 3
lazpaintcontrols/lcvectortextshapes.pas

@@ -79,7 +79,7 @@ type
     class function CreateEmpty: boolean; override;
     class function StorageClassName: RawByteString; override;
     class function Usermodes: TVectorShapeUsermodes; override;
-    procedure ConfigureEditor(AEditor: TBGRAOriginalEditor); override;
+    procedure ConfigureCustomEditor(AEditor: TBGRAOriginalEditor); override;
     procedure Render(ADest: TBGRABitmap; ARenderOffset: TPoint; AMatrix: TAffineMatrix; ADraft: boolean); override;
     function GetRenderBounds({%H-}ADestRect: TRect; AMatrix: TAffineMatrix; AOptions: TRenderBoundsOptions = []): TRectF; override;
     function PointInShape(APoint: TPointF): boolean; override;
@@ -776,7 +776,7 @@ begin
   Result:= true;
 end;
 
-procedure TTextShape.ConfigureEditor(AEditor: TBGRAOriginalEditor);
+procedure TTextShape.ConfigureCustomEditor(AEditor: TBGRAOriginalEditor);
 var
   caret: TBidiCaretPos;
   orientation: TPointF;
@@ -787,7 +787,7 @@ var
   c: TBGRAPixel;
   zoom: Single;
 begin
-  inherited ConfigureEditor(AEditor);
+  inherited ConfigureCustomEditor(AEditor);
   AEditor.AddPolyline(GetAffineBox(AffineMatrixIdentity,true).AsPolygon, true, opsDashWithShadow);
   if AEditor.Focused and (Usermode = vsuEditText) then
   begin