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:
paul 2008-04-16 05:51:23 +00:00
parent 371075ffd8
commit c2db5ffa0f
4 changed files with 9 additions and 9 deletions

View File

@ -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;

View File

@ -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 }

View File

@ -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;