You've already forked lazarus-ccr
SpkToolbar: Prepare for RTL
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8953 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -385,6 +385,9 @@ type
|
||||
{ Setter for visibility of Menu Button }
|
||||
procedure SetShowMenuButton(Value: Boolean);
|
||||
|
||||
{ Setter for BiDiMode (left-to-right or right-to-left writing direction) }
|
||||
procedure SetBiDiMode(Value: TBiDiMode); override;
|
||||
|
||||
{ Calculates the height of the entire toolbar }
|
||||
function CalcToolbarHeight: Integer;
|
||||
|
||||
@ -2683,4 +2686,14 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TSpkToolbar.SetBiDiMode(Value: TBiDiMode);
|
||||
begin
|
||||
if BiDiMode = Value then exit;
|
||||
inherited SetBiDiMode(Value);
|
||||
FTabs.IsRightToLeft := IsRightToLeft;
|
||||
SetMetricsInvalid;
|
||||
if not (FInternalUpdating or FUpdating) then
|
||||
Repaint;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@ -126,6 +126,7 @@ type
|
||||
{%H-}X, {%H-}Y: Integer); override;
|
||||
|
||||
function GetRootComponent: TComponent;
|
||||
function IsRightToLeft: Boolean;
|
||||
|
||||
property ActionLink: TSpkButtonActionLink read FActionLink;
|
||||
property Checked: Boolean read GetChecked write SetChecked default false;
|
||||
@ -522,6 +523,11 @@ begin
|
||||
result := tab.Collection.RootComponent;
|
||||
end;
|
||||
|
||||
function TSpkBaseButton.IsRightToLeft: Boolean;
|
||||
begin
|
||||
Result := (GetRootComponent as TControl).IsRightToLeft;
|
||||
end;
|
||||
|
||||
procedure TSpkBaseButton.MouseDown(Button: TMouseButton; Shift: TShiftState;
|
||||
X, Y: Integer);
|
||||
begin
|
||||
|
@ -31,6 +31,7 @@ type
|
||||
FDisabledLargeImages: TImageList;
|
||||
FImagesWidth: Integer;
|
||||
FLargeImagesWidth: Integer;
|
||||
FIsRightToLeft: Boolean;
|
||||
|
||||
// *** Getters and setters ***
|
||||
procedure SetToolbarDispatch(const Value: TSpkBaseToolbarDispatch);
|
||||
@ -42,6 +43,7 @@ type
|
||||
procedure SetDisabledLargeImages(const Value: TImageList);
|
||||
procedure SetImagesWidth(const Value: Integer);
|
||||
procedure SetLargeImagesWidth(const Value: Integer);
|
||||
procedure SetIsRightToLeft(const Value: Boolean);
|
||||
|
||||
public
|
||||
function AddLargeButton: TSpkLargeButton;
|
||||
@ -62,6 +64,7 @@ type
|
||||
property DisabledLargeImages: TImageList read FDisabledLargeImages write SetDisabledLargeImages;
|
||||
property ImagesWidth: Integer read FImagesWidth write SetImagesWidth;
|
||||
property LargeImagesWidth: Integer read FLargeImagesWidth write SetLargeImagesWidth;
|
||||
property IsRightToLeft: Boolean read FIsRightToLeft write SetIsRightToLeft;
|
||||
end;
|
||||
|
||||
implementation
|
||||
@ -181,6 +184,12 @@ begin
|
||||
Items[i].ImagesWidth := Value;
|
||||
end;
|
||||
|
||||
procedure TSpkItems.SetIsRightToLeft(const Value: Boolean);
|
||||
begin
|
||||
if FIsRightToLeft = Value then exit;
|
||||
FIsRightToLeft := Value;
|
||||
end;
|
||||
|
||||
procedure TSpkItems.SetLargeImages(const Value: TImageList);
|
||||
var
|
||||
i: Integer;
|
||||
|
@ -144,6 +144,7 @@ type
|
||||
|
||||
TSpkPanes = class(TSpkCollection)
|
||||
private
|
||||
FIsRightToLeft: Boolean;
|
||||
protected
|
||||
FToolbarDispatch: TSpkBaseToolbarDispatch;
|
||||
FAppearance: TSpkToolbarAppearance;
|
||||
@ -164,6 +165,7 @@ type
|
||||
procedure SetDisabledLargeImages(const Value: TImageList);
|
||||
procedure SetImagesWidth(const Value: Integer);
|
||||
procedure SetLargeImagesWidth(const Value: Integer);
|
||||
procedure SetIsRightToLeft(const Value: Boolean);
|
||||
|
||||
public
|
||||
// *** Adding and inserting elements ***
|
||||
@ -182,6 +184,7 @@ type
|
||||
property LargeImages: TImageList read FLargeImages write SetLargeImages;
|
||||
property DisabledLargeImages: TImageList read FDisabledLargeImages write SetDisabledLargeImages;
|
||||
property ImagesWidth: Integer read FImagesWidth write SetImagesWidth;
|
||||
property IsRightToLeft: Boolean read FIsRightToLeft write SetIsRightToLeft;
|
||||
property LargeImagesWidth: Integer read FLargeImagesWidth write SetLargeImagesWidth;
|
||||
end;
|
||||
|
||||
@ -1299,6 +1302,16 @@ begin
|
||||
Items[i].ImagesWidth := Value;
|
||||
end;
|
||||
|
||||
procedure TSpkPanes.SetIsRightToLeft(const Value: Boolean);
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
if FIsRightToLeft = Value then exit;
|
||||
FIsRightToLeft := Value;
|
||||
for i := 0 to Count-1 do
|
||||
Items[i].Items.IsRightToLeft := Value;
|
||||
end;
|
||||
|
||||
procedure TSpkPanes.SetLargeImages(const Value: TImageList);
|
||||
var
|
||||
I: Integer;
|
||||
|
@ -148,6 +148,7 @@ type
|
||||
FDisabledLargeImages: TImageList;
|
||||
FImagesWidth: Integer;
|
||||
FLargeImagesWidth: Integer;
|
||||
FIsRightToLeft: Boolean;
|
||||
procedure SetToolbarDispatch(const Value: TSpkBaseToolbarDispatch);
|
||||
function GetItems(AIndex: integer): TSpkTab; reintroduce;
|
||||
procedure SetAppearance(const Value: TSpkToolbarAppearance);
|
||||
@ -156,6 +157,7 @@ type
|
||||
procedure SetLargeImages(const Value: TImageList);
|
||||
procedure SetDisabledLargeImages(const Value: TImageList);
|
||||
procedure SetImagesWidth(const Value: Integer);
|
||||
procedure SetIsRightToLeft(const Value: Boolean);
|
||||
procedure SetLargeImagesWidth(const Value: Integer);
|
||||
public
|
||||
function Add: TSpkTab;
|
||||
@ -172,6 +174,7 @@ type
|
||||
property DisabledLargeImages: TImageList read FDisabledLargeImages write SetDisabledLargeImages;
|
||||
property ImagesWidth: Integer read FImagesWidth write SetImagesWidth;
|
||||
property LargeImagesWidth: Integer read FLargeImagesWidth write SetLargeImagesWidth;
|
||||
property IsRightToLeft: boolean read FIsRightToLeft write SetIsRightToLeft;
|
||||
end;
|
||||
|
||||
|
||||
@ -736,6 +739,16 @@ begin
|
||||
Items[i].ImagesWidth := Value;
|
||||
end;
|
||||
|
||||
procedure TSpkTabs.SetIsRightToLeft(const Value: Boolean);
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
if FIsRightToLeft = Value then exit;
|
||||
FIsRightToLeft := Value;
|
||||
for i := 0 to Count-1 do
|
||||
Items[i].Panes.IsRightToLeft := Value;
|
||||
end;
|
||||
|
||||
procedure TSpkTabs.SetLargeImages(const Value: TImageList);
|
||||
var
|
||||
i: Integer;
|
||||
|
Reference in New Issue
Block a user