mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 13:39:11 +02:00
qt: bidimode depends on TControl.UseRightToLeftAlignment, TControl.UseRightToLeftReading,
TContorl.UseRightToLeftScrollBar more than on BidiMode property since that methods are virtual git-svn-id: trunk@14847 -
This commit is contained in:
parent
371075ffd8
commit
c2db5ffa0f
@ -137,12 +137,10 @@ const
|
|||||||
{ bsNone } QFrameNoFrame,
|
{ bsNone } QFrameNoFrame,
|
||||||
{ bsSingle } QFrameStyledPanel
|
{ bsSingle } QFrameStyledPanel
|
||||||
);
|
);
|
||||||
TBidiModeToDirectionMap: array[TBiDiMode] of QtLayoutDirection =
|
TLayoutDirectionMap: array[Boolean] of QtLayoutDirection =
|
||||||
(
|
(
|
||||||
{ bdLeftToRight } QtLeftToRight,
|
{ False } QtLeftToRight,
|
||||||
{ bdRightToLeft } QtRightToLeft,
|
{ True } QtRightToLeft
|
||||||
{ bdRightToLeftNoAlign } QtRightToLeft, // ?
|
|
||||||
{ bdRightToLeftReadingOnly } QtRightToLeft // ?
|
|
||||||
);
|
);
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
@ -324,7 +322,7 @@ class procedure TQtWSWinControl.SetBiDiMode(const AWinControl: TWinControl;
|
|||||||
begin
|
begin
|
||||||
if not WSCheckHandleAllocated(AWinControl, 'SetBiDiMode') then
|
if not WSCheckHandleAllocated(AWinControl, 'SetBiDiMode') then
|
||||||
Exit;
|
Exit;
|
||||||
TQtWidget(AWinControl.Handle).setLayoutDirection(TBidiModeToDirectionMap[ABiDiMode]);
|
TQtWidget(AWinControl.Handle).setLayoutDirection(TLayoutDirectionMap[AWinControl.UseRightToLeftReading]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
class procedure TQtWSWinControl.GetPreferredSize(const AWinControl: TWinControl;
|
class procedure TQtWSWinControl.GetPreferredSize(const AWinControl: TWinControl;
|
||||||
|
@ -390,7 +390,7 @@ end;
|
|||||||
class procedure TQtWSMenu.SetBiDiMode(const AMenu: TMenu;
|
class procedure TQtWSMenu.SetBiDiMode(const AMenu: TMenu;
|
||||||
const ABiDiMode: TBiDiMode);
|
const ABiDiMode: TBiDiMode);
|
||||||
begin
|
begin
|
||||||
TQtWidget(AMenu.Handle).setLayoutDirection(TBidiModeToDirectionMap[ABidiMode]);
|
TQtWidget(AMenu.Handle).setLayoutDirection(TLayoutDirectionMap[AMenu.IsRightToLeft]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TQtWSPopupMenu }
|
{ TQtWSPopupMenu }
|
||||||
|
@ -296,7 +296,9 @@ begin
|
|||||||
FlagsEx := FlagsEx and not(WS_EX_RTLREADING or WS_EX_RIGHT or WS_EX_LEFTSCROLLBAR);
|
FlagsEx := FlagsEx and not(WS_EX_RTLREADING or WS_EX_RIGHT or WS_EX_LEFTSCROLLBAR);
|
||||||
|
|
||||||
if AWinControl.UseRightToLeftAlignment then
|
if AWinControl.UseRightToLeftAlignment then
|
||||||
FlagsEx := FlagsEx or WS_EX_LEFTSCROLLBAR or WS_EX_RIGHT;
|
FlagsEx := FlagsEx or WS_EX_RIGHT;
|
||||||
|
if AWinControl.UseRightToLeftScrollBar then
|
||||||
|
FlagsEx := FlagsEx or WS_EX_LEFTSCROLLBAR;
|
||||||
if AWinControl.UseRightToLeftReading then
|
if AWinControl.UseRightToLeftReading then
|
||||||
FlagsEx := FlagsEx or WS_EX_RTLREADING;
|
FlagsEx := FlagsEx or WS_EX_RTLREADING;
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user