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,
{ bsSingle } QFrameStyledPanel
);
TBidiModeToDirectionMap: array[TBiDiMode] of QtLayoutDirection =
TLayoutDirectionMap: array[Boolean] of QtLayoutDirection =
(
{ bdLeftToRight } QtLeftToRight,
{ bdRightToLeft } QtRightToLeft,
{ bdRightToLeftNoAlign } QtRightToLeft, // ?
{ bdRightToLeftReadingOnly } QtRightToLeft // ?
{ False } QtLeftToRight,
{ True } QtRightToLeft
);
implementation
@ -324,7 +322,7 @@ class procedure TQtWSWinControl.SetBiDiMode(const AWinControl: TWinControl;
begin
if not WSCheckHandleAllocated(AWinControl, 'SetBiDiMode') then
Exit;
TQtWidget(AWinControl.Handle).setLayoutDirection(TBidiModeToDirectionMap[ABiDiMode]);
TQtWidget(AWinControl.Handle).setLayoutDirection(TLayoutDirectionMap[AWinControl.UseRightToLeftReading]);
end;
class procedure TQtWSWinControl.GetPreferredSize(const AWinControl: TWinControl;

View File

@ -390,7 +390,7 @@ end;
class procedure TQtWSMenu.SetBiDiMode(const AMenu: TMenu;
const ABiDiMode: TBiDiMode);
begin
TQtWidget(AMenu.Handle).setLayoutDirection(TBidiModeToDirectionMap[ABidiMode]);
TQtWidget(AMenu.Handle).setLayoutDirection(TLayoutDirectionMap[AMenu.IsRightToLeft]);
end;
{ TQtWSPopupMenu }

View File

@ -296,7 +296,9 @@ begin
FlagsEx := FlagsEx and not(WS_EX_RTLREADING or WS_EX_RIGHT or WS_EX_LEFTSCROLLBAR);
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
FlagsEx := FlagsEx or WS_EX_RTLREADING;
end;

View File

@ -207,7 +207,7 @@ class procedure TWSWinControl.SetBiDiMode(const AWinControl: TWinControl;
const ABiDiMode: TBiDiMode);
begin
end;
class procedure TWSWinControl.GetPreferredSize(const AWinControl: TWinControl;
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean);
begin