mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-07 12:18:03 +02:00
LCL: TTrackbar: introduced TWSTrackBar.SetOrientation(), default implementation is RecreateWnd(), but should be implemented for ws which supports changing trackbar orientation. fixes #19387
git-svn-id: trunk@30846 -
This commit is contained in:
parent
fa52e18965
commit
5306a46d58
@ -132,9 +132,8 @@ begin
|
||||
OldWidth:=Width;
|
||||
OldHeight:=Height;
|
||||
SetBounds(Left,Top,OldHeight,OldWidth);
|
||||
// TODO: Remove RecreateWnd
|
||||
if HandleAllocated then
|
||||
RecreateWnd(Self);
|
||||
TWSTrackBarClass(WidgetSetClass).SetOrientation(Self, FOrientation);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
@ -205,6 +205,7 @@ type
|
||||
class procedure ApplyChanges(const ATrackBar: TCustomTrackBar); override;
|
||||
class function GetPosition(const ATrackBar: TCustomTrackBar): integer; override;
|
||||
class procedure SetPosition(const ATrackBar: TCustomTrackBar; const NewPosition: integer); override;
|
||||
class procedure SetOrientation(const ATrackBar: TCustomTrackBar; const AOrientation: TTrackBarOrientation); override;
|
||||
end;
|
||||
|
||||
{ TQtWSCustomTreeView }
|
||||
@ -279,20 +280,20 @@ begin
|
||||
Result := TLCLIntfHandle(QtTrackBar);
|
||||
end;
|
||||
|
||||
function TrackBarReversed(const ATrackBar: TCustomTrackBar;
|
||||
const AQtTrackBar: TQtTrackBar): Boolean;
|
||||
begin
|
||||
Result :=
|
||||
((ATrackBar.Orientation = trHorizontal) and
|
||||
(AQtTrackbar.getInvertedAppereance <> ATrackBar.Reversed))
|
||||
or
|
||||
((ATrackBar.Orientation = trVertical) and
|
||||
(AQtTrackbar.getInvertedAppereance <> not ATrackBar.Reversed))
|
||||
end;
|
||||
|
||||
class procedure TQtWSTrackBar.ApplyChanges(const ATrackBar: TCustomTrackBar);
|
||||
var
|
||||
QtTrackBar: TQtTrackBar;
|
||||
|
||||
function TrackBarReversed: Boolean;
|
||||
begin
|
||||
Result :=
|
||||
((ATrackBar.Orientation = trHorizontal) and
|
||||
(QtTrackbar.getInvertedAppereance <> ATrackBar.Reversed))
|
||||
or
|
||||
((ATrackBar.Orientation = trVertical) and
|
||||
(QtTrackbar.getInvertedAppereance <> not ATrackBar.Reversed))
|
||||
|
||||
end;
|
||||
begin
|
||||
|
||||
if not WSCheckHandleAllocated(ATrackBar, 'ApplyChanges') then
|
||||
@ -318,7 +319,7 @@ begin
|
||||
|
||||
if (QtTrackBar.getOrientation <>
|
||||
TrackBarOrientationToQtOrientationMap[ATrackBar.Orientation])
|
||||
or TrackBarReversed then
|
||||
or TrackBarReversed(ATrackBar, QtTrackBar) then
|
||||
begin
|
||||
QtTrackBar.Hide;
|
||||
QtTrackBar.setOrientation(TrackBarOrientationToQtOrientationMap[ATrackBar.Orientation]);
|
||||
@ -361,6 +362,35 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
class procedure TQtWSTrackBar.SetOrientation(const ATrackBar: TCustomTrackBar;
|
||||
const AOrientation: TTrackBarOrientation);
|
||||
var
|
||||
QtTrackBar: TQtTrackBar;
|
||||
begin
|
||||
if not WSCheckHandleAllocated(ATrackBar, 'SetOrientation') then
|
||||
Exit;
|
||||
QtTrackBar := TQtTrackBar(ATrackBar.Handle);
|
||||
QtTrackBar.BeginUpdate;
|
||||
try
|
||||
if (QtTrackBar.getOrientation <>
|
||||
TrackBarOrientationToQtOrientationMap[ATrackBar.Orientation])
|
||||
or TrackBarReversed(ATrackBar, QtTrackBar) then
|
||||
begin
|
||||
QtTrackBar.Hide;
|
||||
QtTrackBar.setOrientation(TrackBarOrientationToQtOrientationMap[ATrackBar.Orientation]);
|
||||
if ATrackBar.Orientation = trHorizontal then
|
||||
QtTrackBar.setInvertedAppereance(ATrackBar.Reversed)
|
||||
else
|
||||
{make it delphi and msdn compatibile when vertical then 0 = top}
|
||||
QtTrackBar.setInvertedAppereance(not ATrackBar.Reversed);
|
||||
QtTrackBar.setInvertedControls(False);
|
||||
QtTrackBar.Show;
|
||||
end;
|
||||
finally
|
||||
QtTrackBar.EndUpdate;
|
||||
end;
|
||||
end;
|
||||
|
||||
{ TQtWSProgressBar }
|
||||
|
||||
class procedure TQtWSProgressBar.SetRangeStyle(AProgressBar: TQtProgressBar;
|
||||
|
@ -195,6 +195,7 @@ type
|
||||
published
|
||||
class procedure ApplyChanges(const ATrackBar: TCustomTrackBar); virtual;
|
||||
class function GetPosition(const ATrackBar: TCustomTrackBar): integer; virtual;
|
||||
class procedure SetOrientation(const ATrackBar: TCustomTrackBar; const AOrientation: TTrackBarOrientation); virtual;
|
||||
class procedure SetPosition(const ATrackBar: TCustomTrackBar; const NewPosition: integer); virtual;
|
||||
class procedure SetTick(const ATrackBar: TCustomTrackBar; const ATick: integer); virtual;
|
||||
end;
|
||||
@ -569,6 +570,12 @@ begin
|
||||
Result := 0;
|
||||
end;
|
||||
|
||||
class procedure TWSTrackBar.SetOrientation(const ATrackBar: TCustomTrackBar;
|
||||
const AOrientation: TTrackBarOrientation);
|
||||
begin
|
||||
RecreateWnd(ATrackBar);
|
||||
end;
|
||||
|
||||
class procedure TWSTrackBar.SetPosition(const ATrackBar: TCustomTrackBar; const NewPosition: integer);
|
||||
begin
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user