On Tue, 19 Mar 2013 03:22:51 -0300
Flávio Etrusco <[email protected]> wrote:
Nice idea. This is the important part:
+ { TEditButtonSpacing }
+
+ TEditButtonSpacing = class(TControlBorderSpacing)
+ public
+ constructor Create(OwnerControl: TCustomEditButton);
+ procedure GetSpaceAround(out SpaceAround: TRect); override;
+ function GetSideSpace(Kind: TAnchorKind): Integer; override;
+ end;
+
+function
TCustomEditButton.CreateControlBorderSpacing:TControlBorderSpacing;
+begin
+ Result := TEditButtonSpacing.Create(Self);
+end;
+
+{ TEditButtonSpacing }
+
+constructor TEditButtonSpacing.Create(OwnerControl: TCustomEditButton);
+begin
+ inherited Create(OwnerControl);
+end;
+
+procedure TEditButtonSpacing.GetSpaceAround(out SpaceAround: TRect);
+begin
+ inherited GetSpaceAround(SpaceAround);
+ if BiDiMode = bdLeftToRight then
+ Inc(SpaceAround.Right, TCustomEditButton(Control).ButtonWidth)
+ else
+ Inc(SpaceAround.Left, TCustomEditButton(Control).ButtonWidth)
+end;
+
+function TEditButtonSpacing.GetSideSpace(Kind: TAnchorKind): Integer;
+begin
+ Result := inherited GetSideSpace(Kind);
+ if Kind = akRight and then
+ begin
+ if BiDiMode = bdLeftToRight then
+ Inc(Result, TCustomEditButton(Control).ButtonWidth);
+ end
+ else if Kind = akLeft and BiDiMode <> bdLeftToRight then
+ Inc(Result, TCustomEditButton(Control).ButtonWidth);
+end;
Mattias
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus