mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-24 13:19:18 +02:00
Patch from zeljko. Implements TQtAbstractSlider, TQtScrollBar, TQtTrackBar, TQtPen (
CreatePenIndirect) and TQtRegion ( CreateRectRgn ). git-svn-id: trunk@10172 -
This commit is contained in:
parent
0c337fd4f3
commit
4969cee64b
@ -118,6 +118,37 @@ type
|
||||
procedure setStyle(style: QtBrushStyle);
|
||||
end;
|
||||
|
||||
{ TQtPen }
|
||||
|
||||
TQtPen = class(TObject)
|
||||
private
|
||||
public
|
||||
Widget: QPenH;
|
||||
public
|
||||
constructor Create(CreateHandle: Boolean); virtual;
|
||||
destructor Destroy; override;
|
||||
function Width: Integer;
|
||||
function Style: QtPenStyle;
|
||||
procedure setStyle(style: QtPenStyle);
|
||||
procedure setBrush(brush: QBrushH);
|
||||
procedure setWidth(p1: Integer);
|
||||
procedure setColor(p1: TQColor);
|
||||
end;
|
||||
|
||||
|
||||
{ TQtRegion }
|
||||
|
||||
TQtRegion = class(TObject)
|
||||
private
|
||||
public
|
||||
Widget: QRegionH;
|
||||
public
|
||||
constructor Create(CreateHandle: Boolean); virtual; overload;
|
||||
constructor Create(CreateHandle: Boolean; X1,Y1,X2,Y2: Integer); virtual; overload;
|
||||
destructor Destroy; override;
|
||||
end;
|
||||
|
||||
|
||||
{ TQtDeviceContext }
|
||||
|
||||
TQtDeviceContext = class(TObject)
|
||||
@ -129,10 +160,13 @@ type
|
||||
vBrush: TQtBrush;
|
||||
vFont: TQtFont;
|
||||
vImage: QImageH;
|
||||
vPen: TQtPen;
|
||||
vRegion: TQtRegion;
|
||||
public
|
||||
constructor Create(WidgetHandle: THandle); virtual;
|
||||
destructor Destroy; override;
|
||||
public
|
||||
procedure drawPoint(x1: Integer; y1: Integer);
|
||||
procedure drawRect(x1: Integer; y1: Integer; w: Integer; h: Integer);
|
||||
procedure drawText(x: Integer; y: Integer; s: PWideString);
|
||||
procedure drawLine(x1: Integer; y1: Integer; x2: Integer; y2: Integer);
|
||||
@ -143,6 +177,10 @@ type
|
||||
procedure setFont(f: TQtFont);
|
||||
function brush: TQtBrush;
|
||||
procedure setBrush(brush: TQtBrush);
|
||||
function pen: TQtPen;
|
||||
procedure setPen(pen: TQtPen);
|
||||
function region: TQtRegion;
|
||||
procedure setRegion(region: TQtRegion);
|
||||
procedure drawImage(targetRect: PRect; image: QImageH; sourceRect: PRect; flags: QtImageConversionFlags = QtAutoColor);
|
||||
end;
|
||||
|
||||
@ -447,6 +485,158 @@ begin
|
||||
QBrush_setStyle(Widget, style);
|
||||
end;
|
||||
|
||||
{ TQtPen }
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtPen.Create
|
||||
Params: None
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
constructor TQtPen.Create(CreateHandle: Boolean);
|
||||
var
|
||||
MyColor: TQColor;
|
||||
begin
|
||||
|
||||
{$ifdef VerboseQt}
|
||||
WriteLn('TQtPen.Create CreateHandle: ', dbgs(CreateHandle));
|
||||
{$endif}
|
||||
|
||||
if CreateHandle then Widget := QPen_create;
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtPen.Destroy
|
||||
Params: None
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
destructor TQtPen.Destroy;
|
||||
begin
|
||||
{$ifdef VerboseQt}
|
||||
WriteLn('TQtPen.Destroy');
|
||||
{$endif}
|
||||
|
||||
QPen_destroy(Widget);
|
||||
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtPen.setBrush
|
||||
Params: None
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
|
||||
procedure TQtPen.setBrush(brush: QBrushH);
|
||||
begin
|
||||
QPen_setBrush(Widget, brush);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtPen.setStyle
|
||||
Params: None
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TQtPen.setStyle(style: QtPenStyle);
|
||||
begin
|
||||
QPen_setStyle(Widget, style);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtPen.setWidth
|
||||
Params: None
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TQtPen.setWidth(p1: Integer);
|
||||
begin
|
||||
QPen_setWidth(Widget, p1);
|
||||
end;
|
||||
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtPen.Style
|
||||
Params: None
|
||||
Returns: QPenStyle
|
||||
------------------------------------------------------------------------------}
|
||||
function TQtPen.Style: QtPenStyle;
|
||||
begin
|
||||
Result := QPen_Style(Widget);
|
||||
end;
|
||||
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtPen.Width
|
||||
Params: None
|
||||
Returns: integer , width of current pen
|
||||
|
||||
------------------------------------------------------------------------------}
|
||||
function TQtPen.Width: Integer;
|
||||
begin
|
||||
Result := QPen_Width(Widget);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtPen.setColor
|
||||
Params: p1: TQColor
|
||||
Returns: Nothing
|
||||
Setting pen color.
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TQtPen.setColor(p1: TQColor);
|
||||
var
|
||||
p2: TQColor;
|
||||
begin
|
||||
QColor_fromRGB(@p2,p1.r,p1.g,p1.b,p1.Alpha);
|
||||
QPen_setColor(Widget, @p2);
|
||||
end;
|
||||
|
||||
|
||||
{ TQtRegion }
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtRegion.Create
|
||||
Params: CreateHandle: Boolean
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
constructor TQtRegion.Create(CreateHandle: Boolean);
|
||||
begin
|
||||
// Creates the widget
|
||||
{$ifdef VerboseQt}
|
||||
WriteLn('TQtRegion.Create CreateHandle: ', dbgs(CreateHandle));
|
||||
{$endif}
|
||||
|
||||
if CreateHandle then Widget := QRegion_create;
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtRegion.Create (CreateRectRgn)
|
||||
Params: CreateHandle: Boolean; X1,Y1,X2,Y2:Integer
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
constructor TQtRegion.Create(CreateHandle: Boolean; X1,Y1,X2,Y2:Integer);
|
||||
begin
|
||||
// Creates the widget
|
||||
{$ifdef VerboseQt}
|
||||
WriteLn('TQtRegion.Create CreateHandle: ', dbgs(CreateHandle));
|
||||
{$endif}
|
||||
|
||||
if CreateHandle then Widget := QRegion_create(X1,Y1,X2,Y2);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtRegion.Destroy
|
||||
Params: None
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
destructor TQtRegion.Destroy;
|
||||
begin
|
||||
{$ifdef VerboseQt}
|
||||
WriteLn('TQtRegion.Destroy');
|
||||
{$endif}
|
||||
|
||||
QRegion_destroy(Widget);
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
|
||||
{ TQtDeviceContext }
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
@ -473,6 +663,8 @@ begin
|
||||
|
||||
vBrush := TQtBrush.Create(False);
|
||||
vFont := TQtFont.Create(False);
|
||||
vPen := TQtPen.Create(False);
|
||||
vRegion := TQtRegion.Create(False);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
@ -490,6 +682,10 @@ begin
|
||||
vBrush.Free;
|
||||
vFont.Widget := nil;
|
||||
vFont.Free;
|
||||
vPen.Widget := nil;
|
||||
vPen.Free;
|
||||
vRegion.Widget := nil;
|
||||
vRegion.Free;
|
||||
|
||||
if vImage <> nil then QImage_destroy(vImage);
|
||||
|
||||
@ -567,6 +763,18 @@ begin
|
||||
QPainter_drawEllipse(Widget, x, y, w, h);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtDeviceContext.drawPoint
|
||||
Params: x1,y1 : Integer
|
||||
Returns: Nothing
|
||||
|
||||
Draws a point. Helper function of winapi. DrawFocusRect
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TQtDeviceContext.drawPoint(x1: Integer; y1: Integer);
|
||||
begin
|
||||
QPainter_drawPoint(Widget, x1, y1);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtDeviceContext.setBrushOrigin
|
||||
Params: None
|
||||
@ -632,6 +840,48 @@ begin
|
||||
if (brush.Widget <> nil) and (Widget <> nil) then QPainter_setBrush(Widget, brush.Widget);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtDeviceContext.pen
|
||||
Params: None
|
||||
Returns: The current pen object of the DC
|
||||
------------------------------------------------------------------------------}
|
||||
function TQtDeviceContext.pen: TQtPen;
|
||||
begin
|
||||
vPen.Widget := QPainter_pen(Widget);
|
||||
Result := vPen;
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtDeviceContext.setPen
|
||||
Params: None
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TQtDeviceContext.setPen(pen: TQtPen);
|
||||
begin
|
||||
if (pen.Widget <> nil) and (Widget <> nil) then QPainter_setPen(Widget, pen.Widget);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtDeviceContext.region
|
||||
Params: None
|
||||
Returns: The current clip region
|
||||
------------------------------------------------------------------------------}
|
||||
function TQtDeviceContext.region: TQtRegion;
|
||||
begin
|
||||
QPainter_clipRegion(Widget, vRegion.Widget);
|
||||
Result := vRegion;
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtDeviceContext.setRegion
|
||||
Params: None
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TQtDeviceContext.setRegion(region: TQtRegion);
|
||||
begin
|
||||
if (region.Widget <> nil) and (Widget <> nil) then QPainter_setClipRegion(Widget, Region.Widget);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtDeviceContext.drawImage
|
||||
Params: None
|
||||
|
@ -73,6 +73,8 @@ type
|
||||
procedure setParent(parent: QWidgetH);
|
||||
procedure setWindowFlags(_type: QtWindowFlags);
|
||||
function windowFlags: QtWindowFlags;
|
||||
procedure setWidth(p1: Integer);
|
||||
procedure setHeight(p1: Integer);
|
||||
end;
|
||||
|
||||
{ TQtAbstractButton }
|
||||
@ -181,6 +183,46 @@ type
|
||||
procedure setFrameShadow(p1: QFrameShadow);
|
||||
end;
|
||||
|
||||
{ TQtAbstractSlider , inherited by TQtScrollBar, TQtTrackBar}
|
||||
|
||||
TQtAbstractSlider = class(TQtWidget)
|
||||
private
|
||||
public
|
||||
constructor Create(const AWinControl: TWinControl; const AParams: TCreateParams); override;
|
||||
destructor Destroy; override;
|
||||
|
||||
procedure setInvertedAppereance(p1: Boolean); virtual;
|
||||
procedure setInvertedControls(p1: Boolean); virtual;
|
||||
|
||||
procedure setMaximum(p1: Integer); virtual;
|
||||
procedure setMinimum(p1: Integer); virtual;
|
||||
|
||||
procedure setOrientation(p1: QtOrientation); virtual;
|
||||
procedure setPageStep(p1: Integer); virtual;
|
||||
procedure setRange(minimum: Integer; maximum: Integer); virtual;
|
||||
procedure setSingleStep(p1: Integer); virtual;
|
||||
procedure setSliderDown(p1: Boolean); virtual;
|
||||
procedure setSliderPosition(p1: Integer); virtual;
|
||||
procedure setTracking(p1: Boolean); virtual;
|
||||
procedure setValue(p1: Integer); virtual;
|
||||
end;
|
||||
|
||||
{ TQtScrollBar }
|
||||
TQtScrollBar = class(TQtAbstractSlider)
|
||||
private
|
||||
public
|
||||
constructor Create(const AWinControl: TWinControl; const AParams: TCreateParams); override;
|
||||
end;
|
||||
|
||||
{ TQtTrackBar }
|
||||
TQtTrackBar = class(TQtAbstractSlider)
|
||||
private
|
||||
public
|
||||
constructor Create(const AWinControl: TWinControl; const AParams: TCreateParams); override;
|
||||
procedure SetTickPosition(Value: QSliderTickPosition);
|
||||
procedure SetTickInterval(Value: Integer);
|
||||
end;
|
||||
|
||||
{ TQtLineEdit }
|
||||
|
||||
TQtLineEdit = class(TQtWidget)
|
||||
@ -819,6 +861,24 @@ begin
|
||||
Result := QWidget_windowFlags(Widget);
|
||||
end;
|
||||
|
||||
procedure TQtWidget.setWidth(p1: Integer);
|
||||
var
|
||||
R: TRect;
|
||||
begin
|
||||
QWidget_geometry(Widget, @R);
|
||||
R.Right := p1;
|
||||
QWidget_setGeometry(Widget,@R);
|
||||
end;
|
||||
|
||||
procedure TQtWidget.setHeight(p1: Integer);
|
||||
var
|
||||
R: TRect;
|
||||
begin
|
||||
QWidget_geometry(Widget, @R);
|
||||
R.Bottom := p1;
|
||||
QWidget_setGeometry(Widget, @R);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtWidget.QtKeyToLCLKey
|
||||
Params: None
|
||||
@ -1757,6 +1817,243 @@ begin
|
||||
QFrame_setFrameShadow(QFrameH(Widget), p1);
|
||||
end;
|
||||
|
||||
{ TQtAbstractSlider }
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtAbstractSlider.Create
|
||||
Params: None
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
constructor TQtAbstractSlider.Create(const AWinControl: TWinControl;
|
||||
const AParams: TCreateParams);
|
||||
var
|
||||
Parent: QWidgetH;
|
||||
begin
|
||||
// Initializes the properties
|
||||
LCLObject := AWinControl;
|
||||
|
||||
// Creates the widget
|
||||
{$ifdef VerboseQt}
|
||||
WriteLn('TQtAbstractSlider.Create');
|
||||
{$endif}
|
||||
Parent := TQtWidget(AWinControl.Parent.Handle).Widget;
|
||||
Widget := QAbstractSlider_create(Parent);
|
||||
|
||||
// Sets it´ s initial properties
|
||||
QWidget_setGeometry(Widget, AWinControl.Left, AWinControl.Top,
|
||||
AWinControl.Width, AWinControl.Height);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtAbstractSlider.Destroy
|
||||
Params: None
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
destructor TQtAbstractSlider.Destroy;
|
||||
begin
|
||||
{$ifdef VerboseQt}
|
||||
WriteLn('TQtAbstractSlider.Destroy');
|
||||
{$endif}
|
||||
QAbstractSlider_destroy(QAbstractSliderH(Widget));
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtAbstractSlider.setInvertedAppereance
|
||||
Params: p1: Boolean
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TQtAbstractSlider.setInvertedAppereance(p1: Boolean);
|
||||
begin
|
||||
QAbstractSlider_setInvertedAppearance(QAbstractSliderH(Widget), p1);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtAbstractSlider.setInvertedControls
|
||||
Params: p1: Boolean
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TQtAbstractSlider.setInvertedControls(p1: Boolean);
|
||||
begin
|
||||
QAbstractSlider_setInvertedControls(QAbstractSliderH(Widget), p1);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtAbstractSlider.setMaximum
|
||||
Params: p1: Integer
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TQtAbstractSlider.setMaximum(p1: Integer);
|
||||
begin
|
||||
QAbstractSlider_setMaximum(QAbstractSliderH(Widget), p1);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtAbstractSlider.setMinimum
|
||||
Params: p1: Integer
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TQtAbstractSlider.setMinimum(p1: Integer);
|
||||
begin
|
||||
QAbstractSlider_setMinimum(QAbstractSliderH(Widget), p1);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtAbstractSlider.setOrientation
|
||||
Params: p1: QtOrientation (QtHorizontal or QtVertical)
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TQtAbstractSlider.setOrientation(p1: QtOrientation);
|
||||
begin
|
||||
QAbstractSlider_setOrientation(QAbstractSliderH(Widget), p1);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtAbstractSlider.setPageStep
|
||||
Params: p1: Integer
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TQtAbstractSlider.setPageStep(p1: Integer);
|
||||
begin
|
||||
QAbstractSlider_setPageStep(QAbstractSliderH(Widget), p1);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtAbstractSlider.setRange
|
||||
Params: minimum,maximum: Integer
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TQtAbstractSlider.setRange(minimum: Integer; maximum: Integer);
|
||||
begin
|
||||
QAbstractSlider_setRange(QAbstractSliderH(Widget), minimum, maximum);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtAbstractSlider.setSingleStep
|
||||
Params: p1: Integer
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TQtAbstractSlider.setSingleStep(p1: Integer);
|
||||
begin
|
||||
QAbstractSlider_setSingleStep(QAbstractSliderH(Widget), p1);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtAbstractSlider.setSliderDown
|
||||
Params: p1: Boolean
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TQtAbstractSlider.setSliderDown(p1: Boolean);
|
||||
begin
|
||||
QAbstractSlider_setSliderDown(QAbstractSliderH(Widget), p1);
|
||||
end;
|
||||
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtAbstractSlider.setSliderPosition
|
||||
Params: p1: Integer
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TQtAbstractSlider.setSliderPosition(p1: Integer);
|
||||
begin
|
||||
QAbstractSlider_setSliderPosition(QAbstractSliderH(Widget), p1);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtAbstractSlider.setTracking
|
||||
Params: p1: Boolean
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TQtAbstractSlider.setTracking(p1: Boolean);
|
||||
begin
|
||||
QAbstractSlider_setTracking(QAbstractSliderH(Widget), p1);
|
||||
end;
|
||||
|
||||
{-----------------------------------------------------------------------------
|
||||
Function: TQtAbstractSlider.setValue
|
||||
Params: p1: Integer
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TQtAbstractSlider.setValue(p1: Integer);
|
||||
begin
|
||||
QAbstractSlider_setValue(QAbstractSliderH(Widget), p1);
|
||||
end;
|
||||
|
||||
{ TQtScrollBar }
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtScrollBar.Create
|
||||
Params: None
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
constructor TQtScrollBar.Create(const AWinControl: TWinControl;
|
||||
const AParams: TCreateParams);
|
||||
var
|
||||
Parent: QWidgetH;
|
||||
begin
|
||||
// Initializes the properties
|
||||
LCLObject := AWinControl;
|
||||
|
||||
// Creates the widget
|
||||
{$ifdef VerboseQt}
|
||||
WriteLn('TQtScrollBar.Create');
|
||||
{$endif}
|
||||
Parent := TQtWidget(AWinControl.Parent.Handle).Widget;
|
||||
Widget := QScrollBar_create(Parent);
|
||||
|
||||
// Sets it´ s initial properties
|
||||
QWidget_setGeometry(Widget, AWinControl.Left, AWinControl.Top,
|
||||
AWinControl.Width, AWinControl.Height);
|
||||
end;
|
||||
|
||||
|
||||
{ TQtTrackBar }
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtTrackBar.Create
|
||||
Params: None
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------ }
|
||||
constructor TQtTrackBar.Create(const AWinControl: TWinControl;
|
||||
const AParams: TCreateParams);
|
||||
var
|
||||
Parent: QWidgetH;
|
||||
begin
|
||||
// Initializes the properties
|
||||
LCLObject := AWinControl;
|
||||
|
||||
// Creates the widget
|
||||
{$ifdef VerboseQt}
|
||||
WriteLn('TQtTrackBar.Create');
|
||||
{$endif}
|
||||
Parent := TQtWidget(AWinControl.Parent.Handle).Widget;
|
||||
Widget := QSlider_create(Parent);
|
||||
|
||||
// Sets it´ s initial properties
|
||||
QWidget_setGeometry(Widget, AWinControl.Left, AWinControl.Top,
|
||||
AWinControl.Width, AWinControl.Height);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtTrackBar.setTickPosition
|
||||
Params: Value: QSliderTickPosition
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------ }
|
||||
procedure TQtTrackBar.setTickPosition(Value: QSliderTickPosition);
|
||||
begin
|
||||
QSlider_setTickPosition(QSliderH(Widget), Value);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: TQtTrackBar.setTickInterval
|
||||
Params: Value: Integer
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------ }
|
||||
procedure TQtTrackBar.SetTickInterval(Value: Integer);
|
||||
begin
|
||||
QSlider_setTickInterval(QSliderH(Widget), Value);
|
||||
end;
|
||||
|
||||
|
||||
{ TQtLineEdit }
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
|
@ -307,16 +307,63 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: CreatePenIndirect
|
||||
Params: none
|
||||
Returns: HPEN
|
||||
------------------------------------------------------------------------------}
|
||||
|
||||
function TQtWidgetSet.CreatePenIndirect(const LogPen: TLogPen): HPEN;
|
||||
var
|
||||
QtPen: TQtPen;
|
||||
color: TQColor;
|
||||
begin
|
||||
// Assert(False, 'trace:[TQtWidgetSet.CreatePenIndirect]');
|
||||
// writeln('CreatePenIndirect->');
|
||||
Result := 0;
|
||||
QtPen := TQtPen.Create(True);
|
||||
|
||||
with LogPen do
|
||||
begin
|
||||
case lopnStyle of
|
||||
PS_SOLID: QtPen.setStyle(QtSolidLine);
|
||||
PS_DASH: QtPen.setStyle(QtDashLine);
|
||||
PS_DOT: QtPen.setStyle(QtDotLine);
|
||||
PS_DASHDOT:QtPen.setStyle(QtDashDotLine);
|
||||
PS_DASHDOTDOT:QtPen.setStyle(QtDashDotDotLine);
|
||||
PS_USERSTYLE: QtPen.setStyle(QtCustomDashLine);
|
||||
PS_NULL:QtPen.setStyle(QtNoPen);
|
||||
else
|
||||
QtPen.setStyle(QtSolidLine);
|
||||
end;
|
||||
|
||||
QtPen.setWidth(lopnWidth.X);
|
||||
{TODO: FIX Color issues }
|
||||
color.Alpha := TColorToFPColor(lopnColor).Alpha;
|
||||
color.r := TColorToFPColor(lopnColor).Red;
|
||||
color.g := TColorToFPColor(lopnColor).Green;
|
||||
color.b := TColorToFPColor(lopnColor).Blue;
|
||||
|
||||
QtPen.setColor(Color);
|
||||
|
||||
end;
|
||||
|
||||
Result := HPEN(QtPen);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: CreateRectRgn
|
||||
Params: none
|
||||
Returns: Nothing
|
||||
Returns: HRGN
|
||||
|
||||
|
||||
------------------------------------------------------------------------------}
|
||||
function TQtWidgetSet.CreateRectRgn(X1,Y1,X2,Y2 : Integer): HRGN;
|
||||
var
|
||||
QtRegion: TQtRegion;
|
||||
begin
|
||||
Result := 0;
|
||||
QtRegion := TQtRegion.Create(True, X1,Y1,X2,Y2);
|
||||
Result := HRGN(QtRegion);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
|
@ -35,6 +35,7 @@ function CreateBrushIndirect(const LogBrush: TLogBrush): HBRUSH; override;
|
||||
function CreateCompatibleDC(DC: HDC): HDC; override;
|
||||
function CreateFontIndirect(const LogFont: TLogFont): HFONT; override;
|
||||
function CreateFontIndirectEx(const LogFont: TLogFont; const LongFontName: string): HFONT; override;
|
||||
function CreatePenIndirect(const LogPen: TLogPen): HBRUSH; override;
|
||||
function CreateRectRgn(X1, Y1, X2, Y2: Integer): HRGN; override;
|
||||
|
||||
function DeleteObject(GDIObject: HGDIOBJ): Boolean; override;
|
||||
|
@ -133,6 +133,10 @@ type
|
||||
private
|
||||
protected
|
||||
public
|
||||
class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): HWND; override;
|
||||
class procedure DestroyHandle(const AWinControl: TWinControl); override;
|
||||
class procedure ApplyChanges(const ATrackBar: TCustomTrackBar); override;
|
||||
class procedure SetPosition(const ATrackBar: TCustomTrackBar; const NewPosition: integer); override;
|
||||
end;
|
||||
|
||||
{ TQtWSCustomTreeView }
|
||||
@ -154,6 +158,86 @@ type
|
||||
|
||||
implementation
|
||||
|
||||
{ TQtWSTrackBar }
|
||||
|
||||
class function TQtWSTrackBar.CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): HWND;
|
||||
var
|
||||
QtTrackBar: TQtTrackBar;
|
||||
{ Method: TMethod;
|
||||
Hook : QObject_hookH;}
|
||||
begin
|
||||
QtTrackBar := TQtTrackBar.Create(AWinControl, AParams);
|
||||
|
||||
with AParams do
|
||||
begin
|
||||
if TCustomTrackBar(AWinControl).Orientation = trVertical then
|
||||
begin
|
||||
QtTrackBar.setInvertedAppereance(True);
|
||||
QtTrackBar.setInvertedControls(True);
|
||||
end else
|
||||
begin
|
||||
QtTrackBar.setInvertedAppereance(False);
|
||||
QtTrackBar.setInvertedControls(False);
|
||||
end;
|
||||
end;
|
||||
|
||||
{ Hook := QObject_hook_create(QtWidget.Widget);
|
||||
|
||||
TEventFilterMethod(Method) := QtWidget.EventFilter;
|
||||
|
||||
QObject_hook_hook_events(Hook, Method);}
|
||||
|
||||
Result := THandle(QtTrackBar);
|
||||
end;
|
||||
|
||||
class procedure TQtWSTrackBar.DestroyHandle(const AWinControl: TWinControl);
|
||||
begin
|
||||
AWinControl.Handle := 0;
|
||||
end;
|
||||
|
||||
class procedure TQtWSTrackBar.ApplyChanges(const ATrackBar: TCustomTrackBar);
|
||||
var
|
||||
QtTrackBar: TQtTrackBar;
|
||||
begin
|
||||
QtTrackBar := TQtTrackBar(ATrackBar.Handle);
|
||||
|
||||
QtTrackBar.setRange(ATrackBar.Min, ATrackBar.Max);
|
||||
|
||||
case ATrackBar.TickMarks of
|
||||
tmBoth:QtTrackBar.SetTickPosition(QSliderTicksBothSides);
|
||||
tmTopLeft:QtTrackBar.SetTickPosition(QSliderTicksAbove);
|
||||
tmBottomRight:QtTrackBar.SetTickPosition(QSliderTicksBelow);
|
||||
end;
|
||||
|
||||
QtTrackBar.setPageStep(ATrackBar.PageSize);
|
||||
QtTrackBar.setTickInterval(ATrackBar.Frequency);
|
||||
QtTrackBar.setSliderPosition(ATrackBar.Position);
|
||||
|
||||
case ATrackBar.Orientation of
|
||||
trVertical:
|
||||
begin
|
||||
QtTrackBar.setOrientation(QtVertical);
|
||||
QtTrackBar.setInvertedAppereance(True);
|
||||
QtTrackBar.setInvertedControls(True);
|
||||
end;
|
||||
else
|
||||
begin
|
||||
QtTrackBar.setOrientation(QtHorizontal);
|
||||
QtTrackBar.setInvertedAppereance(False);
|
||||
QtTrackBar.setInvertedControls(False);
|
||||
end;
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
class procedure TQtWSTrackBar.SetPosition(const ATrackBar: TCustomTrackBar; const NewPosition: integer);
|
||||
var
|
||||
QtTrackBar: TQtTrackBar;
|
||||
begin
|
||||
QtTrackBar := TQtTrackBar(ATrackBar.Handle);
|
||||
QtTrackBar.setValue(NewPosition);
|
||||
end;
|
||||
|
||||
{ TQtWSProgressBar }
|
||||
|
||||
class function TQtWSProgressBar.CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): HWND;
|
||||
@ -309,7 +393,7 @@ initialization
|
||||
// RegisterWSComponent(TCustomToolBar, TQtWSToolBar);
|
||||
// RegisterWSComponent(TCustomToolButton, TQtWSToolButton);
|
||||
// RegisterWSComponent(TCustomToolBar, TQtWSToolBar);
|
||||
// RegisterWSComponent(TCustomTrackBar, TQtWSTrackBar);
|
||||
RegisterWSComponent(TCustomTrackBar, TQtWSTrackBar);
|
||||
// RegisterWSComponent(TCustomTreeView, TQtWSCustomTreeView);
|
||||
// RegisterWSComponent(TCustomTreeView, TQtWSTreeView);
|
||||
////////////////////////////////////////////////////
|
||||
|
@ -42,6 +42,10 @@ type
|
||||
private
|
||||
protected
|
||||
public
|
||||
class function CreateHandle(const AWinControl: TWinControl;
|
||||
const AParams: TCreateParams): TLCLIntfHandle; override;
|
||||
class procedure DestroyHandle(const AWinControl: TWinControl); override;
|
||||
class procedure SetParams(const AScrollBar: TCustomScrollBar); override;
|
||||
end;
|
||||
|
||||
{ TQtWSCustomGroupBox }
|
||||
@ -299,6 +303,96 @@ implementation
|
||||
|
||||
uses LMessages;
|
||||
|
||||
{ TQtWSScrollBar }
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Method: TQtWSCustomScrollBar.CreateHandle
|
||||
Params: None
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
class function TQtWSScrollBar.CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): HWND;
|
||||
var
|
||||
QtScrollBar: TQtScrollBar;
|
||||
Method: TMethod;
|
||||
Hook : QScrollBar_hookH;
|
||||
begin
|
||||
QtScrollBar := TQtScrollBar.Create(AWinControl, AParams);
|
||||
|
||||
case TScrollBar(AWinControl).Kind of
|
||||
sbHorizontal:
|
||||
begin
|
||||
QtScrollBar.SetOrientation(QtHorizontal);
|
||||
QtScrollBar.setInvertedAppereance(False);
|
||||
QTScrollBar.setInvertedControls(False);
|
||||
end;
|
||||
sbVertical:
|
||||
begin
|
||||
QtScrollBar.SetOrientation(QtVertical);
|
||||
QtScrollBar.setInvertedAppereance(False);
|
||||
QTScrollBar.setInvertedControls(False);
|
||||
end;
|
||||
end;
|
||||
|
||||
QtScrollbar.setWidth(TScrollBar(AWinControl).Width);
|
||||
QtScrollbar.setHeight(TScrollBar(AWinControl).Height);
|
||||
QtScrollbar.setValue(TScrollBar(AWinControl).Position);
|
||||
QtScrollBar.setPageStep(TScrollBar(AWinControl).PageSize);
|
||||
|
||||
// Various Events
|
||||
// Hook := QScrollBar_hook_create(QtScrollBar.Widget);
|
||||
// TEventFilterMethod(Method) := QtScrollBar.EventFilter;
|
||||
|
||||
Result := THandle(QtScrollbar);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Method: TQtWSCustomScrollBar.DestroyHandle
|
||||
Params: None
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
class procedure TQtWSScrollBar.DestroyHandle(const AWinControl: TWinControl);
|
||||
begin
|
||||
TQtScrollBar(AWinControl.Handle).Free;
|
||||
end;
|
||||
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Method: TQtWSCustomScrollBar.SetParams
|
||||
Params: None
|
||||
Returns: Nothing
|
||||
------------------------------------------------------------------------------}
|
||||
class procedure TQtWSScrollBar.SetParams(const AScrollBar: TCustomScrollBar);
|
||||
var
|
||||
QtScrollBar: TQtScrollBar;
|
||||
begin
|
||||
QtScrollBar := TQtScrollBar(AScrollBar.Handle);
|
||||
// TODO: Check HeightForWidth() set here or we have lazarus bug ?
|
||||
// AScrollBar.Width;
|
||||
|
||||
QtScrollBar.setValue(AScrollBar.Position);
|
||||
QtScrollBar.setPageStep(AScrollBar.PageSize);
|
||||
QtScrollBar.setRange(AScrollBar.Min, AScrollBar.Max);
|
||||
|
||||
QtScrollbar.setWidth(AscrollBar.Width);
|
||||
QtScrollbar.setHeight(AscrollBar.Height);
|
||||
|
||||
case AScrollBar.Kind of
|
||||
sbHorizontal:
|
||||
begin
|
||||
QTScrollBar.SetOrientation(QtHorizontal);
|
||||
QTScrollBar.setInvertedAppereance(False);
|
||||
QTScrollBar.setInvertedControls(False);
|
||||
end;
|
||||
sbVertical:
|
||||
begin
|
||||
QTScrollBar.SetOrientation(QtVertical);
|
||||
QTScrollBar.setInvertedAppereance(False);
|
||||
QTScrollBar.setInvertedControls(False);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
{ TQtWSCustomListBox }
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
@ -1074,7 +1168,7 @@ initialization
|
||||
// To improve speed, register only classes
|
||||
// which actually implement something
|
||||
////////////////////////////////////////////////////
|
||||
// RegisterWSComponent(TScrollBar, TQtWSScrollBar);
|
||||
RegisterWSComponent(TScrollBar, TQtWSScrollBar);
|
||||
RegisterWSComponent(TCustomGroupBox, TQtWSCustomGroupBox);
|
||||
// RegisterWSComponent(TGroupBox, TQtWSGroupBox);
|
||||
RegisterWSComponent(TCustomComboBox, TQtWSCustomComboBox);
|
||||
|
Loading…
Reference in New Issue
Block a user