mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 18:59:21 +02:00
+Implemented more winapi routines.
+Added define VerboseQtWinAPI_MISSING_IMPLEMENTATION, to see verbose qtwinapi messages during runtime, about unimplemented routines. git-svn-id: trunk@11622 -
This commit is contained in:
parent
2e324f401a
commit
08aa90ec95
@ -178,6 +178,7 @@ type
|
|||||||
constructor Create(CreateHandle: Boolean; Poly: QPolygonH;
|
constructor Create(CreateHandle: Boolean; Poly: QPolygonH;
|
||||||
Const Fill: QtFillRule = QtWindingFill); virtual; overload;
|
Const Fill: QtFillRule = QtWindingFill); virtual; overload;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
|
function GetRegionType: integer;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// NOTE: PQtDCData was a pointer to a structure with QPainter information
|
// NOTE: PQtDCData was a pointer to a structure with QPainter information
|
||||||
@ -245,6 +246,7 @@ type
|
|||||||
procedure setPen(pen: TQtPen);
|
procedure setPen(pen: TQtPen);
|
||||||
function SetBkColor(Color: TcolorRef): TColorRef;
|
function SetBkColor(Color: TcolorRef): TColorRef;
|
||||||
function SetBkMode(BkMode: Integer): Integer;
|
function SetBkMode(BkMode: Integer): Integer;
|
||||||
|
function getRegionType(ARegion: QRegionH): integer;
|
||||||
function region: TQtRegion;
|
function region: TQtRegion;
|
||||||
procedure setRegion(region: TQtRegion);
|
procedure setRegion(region: TQtRegion);
|
||||||
procedure drawImage(targetRect: PRect; image: QImageH; sourceRect: PRect; flags: QtImageConversionFlags = QtAutoColor);
|
procedure drawImage(targetRect: PRect; image: QImageH; sourceRect: PRect; flags: QtImageConversionFlags = QtAutoColor);
|
||||||
@ -465,7 +467,7 @@ begin
|
|||||||
WriteLn('TQtImage.Destroy Handle:', dbgs(Handle));
|
WriteLn('TQtImage.Destroy Handle:', dbgs(Handle));
|
||||||
{$endif}
|
{$endif}
|
||||||
|
|
||||||
if Handle <> nil then
|
if Handle <> nil then
|
||||||
QImage_destroy(Handle);
|
QImage_destroy(Handle);
|
||||||
if (FDataOwner) and (FData <> nil) then
|
if (FDataOwner) and (FData <> nil) then
|
||||||
FreeMem(FData);
|
FreeMem(FData);
|
||||||
@ -893,6 +895,26 @@ begin
|
|||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TQtRegion.GetRegionType: integer;
|
||||||
|
var
|
||||||
|
R: TRect;
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
if QRegion_isEmpty(Widget) then
|
||||||
|
Result := NULLREGION
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
QRegion_boundingRect(Widget, @R);
|
||||||
|
if QRegion_contains(Widget, PRect(@R)) then
|
||||||
|
Result := SIMPLEREGION
|
||||||
|
else
|
||||||
|
Result := COMPLEXREGION;
|
||||||
|
end;
|
||||||
|
except
|
||||||
|
Result := ERROR;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TQtDeviceContext }
|
{ TQtDeviceContext }
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
@ -1456,6 +1478,31 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Function: TQtDeviceContext.getRegionType
|
||||||
|
Params: QRegionH
|
||||||
|
Returns: Region type
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
function TQtDeviceContext.getRegionType(ARegion: QRegionH): integer;
|
||||||
|
var
|
||||||
|
R: TRect;
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
if QRegion_isEmpty(ARegion) then
|
||||||
|
Result := NULLREGION
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
QRegion_boundingRect(ARegion, @R);
|
||||||
|
if QRegion_contains(ARegion, PRect(@R)) then
|
||||||
|
Result := SIMPLEREGION
|
||||||
|
else
|
||||||
|
Result := COMPLEXREGION;
|
||||||
|
end;
|
||||||
|
except
|
||||||
|
Result := ERROR;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Function: TQtDeviceContext.region
|
Function: TQtDeviceContext.region
|
||||||
Params: None
|
Params: None
|
||||||
|
@ -116,6 +116,30 @@ begin
|
|||||||
{$endif}
|
{$endif}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.BitBlt(DestDC: HDC; X, Y, Width, Height: Integer; SrcDC: HDC; XSrc, YSrc: Integer; Rop: DWORD): Boolean;
|
||||||
|
begin
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.BitBlt] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
Result := False;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.CallNextHookEx(hHk: HHOOK; ncode : Integer; wParam: WParam; lParam : LParam) : Integer;
|
||||||
|
begin
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.CallNextHookEx] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
Result := 0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.CallWindowProc(lpPrevWndFunc : TFarProc; Handle : HWND; Msg : UINT; wParam: WParam; lParam : lParam) : Integer;
|
||||||
|
begin
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.CallWindowProc] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
Result := 0;
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Method: ClientToScreen
|
Method: ClientToScreen
|
||||||
Params: Handle -
|
Params: Handle -
|
||||||
@ -216,6 +240,49 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Method: TQtWidgetSet.ComboBoxDropDown
|
||||||
|
Params: Handle: HWND; DropDown: boolean
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
Shows or hides combobox dropdown list via DropDown parameter.
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
function TQtWidgetSet.ComboBoxDropDown(Handle: HWND; DropDown: boolean): boolean;
|
||||||
|
var
|
||||||
|
ComboList: QAbstractItemViewH;
|
||||||
|
ComboBox: QComboBoxH;
|
||||||
|
begin
|
||||||
|
{$ifdef VerboseQtWinAPI}
|
||||||
|
WriteLn('[WinAPI TQtWidgetSet.ComboBoxDropDown] ');
|
||||||
|
{$endif}
|
||||||
|
Result := False;
|
||||||
|
if TQtWidget(Handle) is TQtComboBox then
|
||||||
|
begin
|
||||||
|
ComboBox := QComboBoxH(TQtComboBox(Handle).Widget);
|
||||||
|
ComboList := QComboBox_view(ComboBox);
|
||||||
|
if DropDown <> QWidget_isVisible(ComboList) then
|
||||||
|
begin
|
||||||
|
if DropDown then QComboBox_showPopup(ComboBox)
|
||||||
|
else QComboBox_hidePopup(ComboBox);
|
||||||
|
end;
|
||||||
|
Result := True;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Method: TQtWidgetSet.CreateCompatibleBitmap
|
||||||
|
Params:
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
function TQtWidgetSet.CreateCompatibleBitmap(DC: HDC; Width, Height: Integer): HBITMAP;
|
||||||
|
begin
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.CreateCompatibleBitmap] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
Result := 0;
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Method: TQtWidgetSet.CreateBitmap
|
Method: TQtWidgetSet.CreateBitmap
|
||||||
Params:
|
Params:
|
||||||
@ -553,6 +620,20 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Function: CreatePixmapIndirect
|
||||||
|
Params: const Data: Pointer; const TransColor: Longint
|
||||||
|
Returns: HBITMAP
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
function TQtWidgetSet.CreatePixmapIndirect(const Data: Pointer; const TransColor: Longint): HBITMAP;
|
||||||
|
begin
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.CreatePixmapIndirect] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
Result := 0;
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Function: CreatePolygonRgn
|
Function: CreatePolygonRgn
|
||||||
Params: none
|
Params: none
|
||||||
@ -621,6 +702,40 @@ begin
|
|||||||
CritSection:=0;
|
CritSection:=0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Function: DeleteDC
|
||||||
|
Params: none
|
||||||
|
Returns: Nothing
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
function TQtWidgetSet.DeleteDC(hDC: HDC): Boolean;
|
||||||
|
var
|
||||||
|
Painter: QPainterH;
|
||||||
|
begin
|
||||||
|
{$ifdef VerboseQtWinAPI}
|
||||||
|
WriteLn('[WinAPI DeleteDC] Handle: ', dbghex(hDC));
|
||||||
|
{$endif}
|
||||||
|
|
||||||
|
Result := False;
|
||||||
|
if not IsValidDC(hDC) then exit;
|
||||||
|
|
||||||
|
|
||||||
|
Painter := TQtDeviceContext(hDC).Widget;
|
||||||
|
Result := not QPainter_isActive(Painter);
|
||||||
|
|
||||||
|
if not Result then
|
||||||
|
QPainter_end(Painter);
|
||||||
|
|
||||||
|
if Result then
|
||||||
|
begin
|
||||||
|
{we should never come here ... endPaint() do the job}
|
||||||
|
{$ifdef VerboseQtWinAPI}
|
||||||
|
WriteLn('[WinAPI DeleteDC] freeing resources ');
|
||||||
|
{$endif}
|
||||||
|
TQtDeviceContext(hDC).Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Function: DeleteObject
|
Function: DeleteObject
|
||||||
Params: none
|
Params: none
|
||||||
@ -697,6 +812,7 @@ begin
|
|||||||
{$endif}
|
{$endif}
|
||||||
|
|
||||||
// we must stop paintdevice before destroying
|
// we must stop paintdevice before destroying
|
||||||
|
|
||||||
APaintEngine := QImage_paintEngine(TQtImage(AObject).Handle);
|
APaintEngine := QImage_paintEngine(TQtImage(AObject).Handle);
|
||||||
|
|
||||||
if (APaintEngine <> NiL)
|
if (APaintEngine <> NiL)
|
||||||
@ -707,6 +823,7 @@ begin
|
|||||||
then
|
then
|
||||||
QPainter_end(APainter);
|
QPainter_end(APainter);
|
||||||
end ;
|
end ;
|
||||||
|
|
||||||
end
|
end
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Region
|
Region
|
||||||
@ -778,6 +895,31 @@ begin
|
|||||||
Result := True;
|
Result := True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Method: DrawFrameControl
|
||||||
|
Params: DC: HDC; const Rect : TRect; uType, uState : Cardinal
|
||||||
|
Returns: Boolean
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
function TQtWidgetSet.DrawFrameControl(DC: HDC; const Rect : TRect; uType, uState : Cardinal) : Boolean;
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.DrawFrameControl] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Method: DrawFocusRect
|
||||||
|
Params: DC: HDC; const Rect: TRect
|
||||||
|
Returns: Boolean
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
function TQtWidgetSet.DrawFocusRect(DC: HDC; const Rect: TRect): boolean;
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.DrawFocusRect] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Method: DrawEdge
|
Method: DrawEdge
|
||||||
@ -1095,6 +1237,25 @@ begin
|
|||||||
Result := True;
|
Result := True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.EnableScrollBar(Wnd: HWND; wSBflags, wArrows: Cardinal): Boolean;
|
||||||
|
begin
|
||||||
|
{maybe we can put creating of scrollbar here instead of SetScrollInfo() }
|
||||||
|
Result := False;
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.EnableScrollbar] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.EnableWindow(hWnd: HWND; bEnable: Boolean): Boolean;
|
||||||
|
begin
|
||||||
|
Result := True;
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.EnableWindow] possible wrong implementation');
|
||||||
|
{$endif}
|
||||||
|
if TQtWidget(hWnd).LCLObject.ClassName<>'TScrollBar' then
|
||||||
|
QWidget_setEnabled(TQtWidget(hWnd).Widget, bEnable);
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Function: EndPaint
|
Function: EndPaint
|
||||||
Params:
|
Params:
|
||||||
@ -1116,7 +1277,6 @@ begin
|
|||||||
{$ifdef VerboseQtWinAPI}
|
{$ifdef VerboseQtWinAPI}
|
||||||
WriteLn('Freeing resources');
|
WriteLn('Freeing resources');
|
||||||
{$endif}
|
{$endif}
|
||||||
|
|
||||||
TQtDeviceContext(PS.HDC).Free;
|
TQtDeviceContext(PS.HDC).Free;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -1197,6 +1357,69 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.ExtSelectClipRGN(dc: hdc; rgn : hrgn; Mode : Longint) : Integer;
|
||||||
|
var
|
||||||
|
Clip,
|
||||||
|
Tmp : hRGN;
|
||||||
|
X, Y : Longint;
|
||||||
|
DCOrigin: TPoint;
|
||||||
|
QtWidget: TQtWidget;
|
||||||
|
QtDC: TQtDeviceContext;
|
||||||
|
begin
|
||||||
|
// copied from gtk winapi
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.ExtSelectClipRGN] possible wrong implementation ');
|
||||||
|
{$endif}
|
||||||
|
If not IsValidDC(DC) then
|
||||||
|
begin
|
||||||
|
Result := ERROR;
|
||||||
|
exit;
|
||||||
|
end else
|
||||||
|
Result := SIMPLEREGION;
|
||||||
|
|
||||||
|
QtDC := TQtDeviceContext(DC);
|
||||||
|
|
||||||
|
|
||||||
|
QtWidget := QtObjectFromWidgetH(TQtDeviceContext(DC).Parent);
|
||||||
|
|
||||||
|
if Assigned(QtWidget) and (QtWidget.PaintData.ClipRegion = nil) then
|
||||||
|
begin
|
||||||
|
// there is no clipping region in the DC
|
||||||
|
Case Mode of
|
||||||
|
RGN_COPY:
|
||||||
|
begin
|
||||||
|
// Result := RegionType(PGdiObject(RGN)^.GDIRegionObject);
|
||||||
|
// If Result <> ERROR then
|
||||||
|
Result := SelectClipRGN(DC, RGN);
|
||||||
|
end;
|
||||||
|
RGN_OR,
|
||||||
|
RGN_XOR,
|
||||||
|
RGN_AND,
|
||||||
|
RGN_DIFF:
|
||||||
|
begin
|
||||||
|
// get existing clip
|
||||||
|
// GDK_Window_Get_Size(Drawable, @X, @Y);
|
||||||
|
// DCOrigin := GetDCOffset(TQtDeviceContext(DC));
|
||||||
|
GetDeviceSize(DC, DCOrigin);
|
||||||
|
|
||||||
|
Clip := CreateRectRGN(-DCOrigin.X,-DCOrigin.Y,X-DCOrigin.X,Y-DCOrigin.Y);
|
||||||
|
// create target clip
|
||||||
|
Tmp := CreateEmptyRegion;
|
||||||
|
// combine
|
||||||
|
Result := CombineRGN(Tmp, Clip, RGN, Mode);
|
||||||
|
// commit
|
||||||
|
//DebugLn('TGtkWidgetSet.ExtSelectClipRGN B ClipRegValid=',dbgs(ClipRegion),' TmpRGN=',GDKRegionAsString(PGdiObject(Tmp)^.GDIRegionObject));
|
||||||
|
SelectClipRGN(DC, Tmp);
|
||||||
|
// clean up
|
||||||
|
DeleteObject(Clip);
|
||||||
|
DeleteObject(Tmp);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
Result := Inherited ExtSelectClipRGN(dc, rgn, mode);
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Function: ExtTextOut
|
Function: ExtTextOut
|
||||||
Params: none
|
Params: none
|
||||||
@ -1272,6 +1495,9 @@ begin
|
|||||||
{$endif}
|
{$endif}
|
||||||
Result := False;
|
Result := False;
|
||||||
if not IsValidDC(DC) then exit;
|
if not IsValidDC(DC) then exit;
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.FillRgn] missing implementation ');
|
||||||
|
{$endif}
|
||||||
{$note implement FillRgn()}
|
{$note implement FillRgn()}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1306,6 +1532,9 @@ function TQtWidgetSet.Frame3d(DC : HDC; var ARect : TRect;
|
|||||||
begin
|
begin
|
||||||
{$note implement}
|
{$note implement}
|
||||||
Result := False;
|
Result := False;
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.Frame3d] missing implementation ');
|
||||||
|
{$endif}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
@ -1337,6 +1566,14 @@ begin
|
|||||||
Result := 0;
|
Result := 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.GetBitmapBits(Bitmap: HBITMAP; Count: Longint; Bits: Pointer): Longint;
|
||||||
|
begin
|
||||||
|
Result := 0;
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.GetBitmapBits] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Method: TQtWidgetSet.GetBitmapRawImageDescription
|
Method: TQtWidgetSet.GetBitmapRawImageDescription
|
||||||
Params: none
|
Params: none
|
||||||
@ -1371,6 +1608,39 @@ begin
|
|||||||
// Desc^.LineEnd := rileDWordBoundary;
|
// Desc^.LineEnd := rileDWordBoundary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.GetCapture: HWND;
|
||||||
|
var
|
||||||
|
w: QWidgetH;
|
||||||
|
QtWidget: TQtWidget;
|
||||||
|
vPoint: TQtPoint;
|
||||||
|
begin
|
||||||
|
{$ifdef VerboseQtWinAPI}
|
||||||
|
WriteLn('[WinAPI GetCapture]');
|
||||||
|
{$endif}
|
||||||
|
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
// WriteLn('*#*#*#*#* [WinAPI TQtWidgetSet.GetCapture] possible wrong implementation ');
|
||||||
|
{$endif}
|
||||||
|
|
||||||
|
QCursor_pos(@vPoint);
|
||||||
|
w := QApplication_widgetAt(@vPoint);
|
||||||
|
|
||||||
|
if w <> nil then
|
||||||
|
begin
|
||||||
|
QtWidget := QtObjectFromWidgetH(w);
|
||||||
|
if Assigned(QtWidget) then
|
||||||
|
begin
|
||||||
|
if QWidget_isWindow(w)
|
||||||
|
and QWidget_isModal(w) then
|
||||||
|
Result := 0
|
||||||
|
else
|
||||||
|
Result := HWND(QtWidget)
|
||||||
|
end else
|
||||||
|
Result := 0;
|
||||||
|
end else
|
||||||
|
Result := 0;
|
||||||
|
end;
|
||||||
|
|
||||||
function TQtWidgetSet.GetCaretPos(var lpPoint: TPoint): Boolean;
|
function TQtWidgetSet.GetCaretPos(var lpPoint: TPoint): Boolean;
|
||||||
begin
|
begin
|
||||||
Result := QtCaret.GetCaretPos(lpPoint);
|
Result := QtCaret.GetCaretPos(lpPoint);
|
||||||
@ -1379,6 +1649,9 @@ end;
|
|||||||
function TQtWidgetSet.GetCaretRespondToFocus(handle: HWND; var ShowHideOnFocus: boolean): Boolean;
|
function TQtWidgetSet.GetCaretRespondToFocus(handle: HWND; var ShowHideOnFocus: boolean): Boolean;
|
||||||
begin
|
begin
|
||||||
{$note implement}
|
{$note implement}
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.GetCaretRespondToFocus] missing implementation ');
|
||||||
|
{$endif}
|
||||||
Result := False;
|
Result := False;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1563,6 +1836,21 @@ begin
|
|||||||
{$endif}
|
{$endif}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.GetDCOriginRelativeToWindow(PaintDC: HDC; WindowHandle: HWND; var OriginDiff: TPoint): boolean;
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.GetDCOriginRelativeToWindow] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.GetDesignerDC(WindowHandle: HWND): HDC;
|
||||||
|
begin
|
||||||
|
Result := HDC(TQtDeviceContext.Create(WindowHandle, False));
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.GetDesignerDC] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
end;
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Function: GetDeviceCaps
|
Function: GetDeviceCaps
|
||||||
Params: DC: HDC; Index: Integer
|
Params: DC: HDC; Index: Integer
|
||||||
@ -1618,6 +1906,14 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.GetDIBits(DC: HDC; Bitmap: HBitmap; StartScan, NumScans: UINT; Bits: Pointer; var BitInfo: BitmapInfo; Usage: UINT): Integer;
|
||||||
|
begin
|
||||||
|
Result := 0;
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.GetDIBits] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Function: GetFocus
|
Function: GetFocus
|
||||||
Params: None
|
Params: None
|
||||||
@ -1747,6 +2043,9 @@ begin
|
|||||||
if not IsValidDC(DC) then exit;
|
if not IsValidDC(DC) then exit;
|
||||||
|
|
||||||
{$note implement - wait for LCL}
|
{$note implement - wait for LCL}
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.GetMapMode] missing implementation ');
|
||||||
|
{$endif}
|
||||||
// Result := TQtDeviceContext(DC).MapMode;
|
// Result := TQtDeviceContext(DC).MapMode;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1893,6 +2192,22 @@ begin
|
|||||||
{$endif}
|
{$endif}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.GetParent(Handle : HWND): HWND;
|
||||||
|
var
|
||||||
|
QtWidget: TQtWidget;
|
||||||
|
Parent: TQtWidget;
|
||||||
|
begin
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.GetParent] possible wrong implementation ');
|
||||||
|
{$endif}
|
||||||
|
QtWidget := TQtWidget(Handle);
|
||||||
|
if Assigned(QtWidget.LCLObject.Parent) then
|
||||||
|
begin
|
||||||
|
Parent := TQtWidget(QtWidget.LCLObject.Parent.Handle);
|
||||||
|
Result := HWND(Parent);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
function TQtWidgetSet.GetProp(Handle: hwnd; Str: PChar): Pointer;
|
function TQtWidgetSet.GetProp(Handle: hwnd; Str: PChar): Pointer;
|
||||||
begin
|
begin
|
||||||
if Handle<>0 then
|
if Handle<>0 then
|
||||||
@ -2045,6 +2360,59 @@ begin
|
|||||||
Result := True;
|
Result := True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.GetRgnBox(RGN : HRGN; lpRect : PRect) : Longint;
|
||||||
|
var
|
||||||
|
R: TRect;
|
||||||
|
begin
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.GetRgnBox] possible wrong implementation ');
|
||||||
|
{$endif}
|
||||||
|
Result := SIMPLEREGION;
|
||||||
|
If lpRect <> nil then
|
||||||
|
lpRect^ := Rect(0,0,0,0);
|
||||||
|
If Not IsValidGDIObject(RGN) then
|
||||||
|
Result := ERROR
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
Result := TQtRegion(RGN).GetRegionType;
|
||||||
|
If lpRect <> nil then begin
|
||||||
|
QRegion_boundingRect(TQtRegion(RGN).Widget, @R);
|
||||||
|
|
||||||
|
With lpRect^ do
|
||||||
|
begin
|
||||||
|
Left := R.Left;
|
||||||
|
Top := R.Top;
|
||||||
|
Right := R.Left + R.Right;
|
||||||
|
Bottom := R.Top + R.Bottom;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.GetROP2(DC: HDC): Integer;
|
||||||
|
begin
|
||||||
|
Result := 0;
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.GetROP2] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.GetScrollBarSize(Handle: HWND; BarKind: Integer): integer;
|
||||||
|
begin
|
||||||
|
Result := 15;
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.GetScrollBarSize] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.GetScrollbarVisible(Handle: HWND; SBStyle: Integer): boolean;
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.GetScrollBarVisible] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Function: GetScrollInfo
|
Function: GetScrollInfo
|
||||||
Params: BarFlag
|
Params: BarFlag
|
||||||
@ -2120,6 +2488,14 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.GetStockObject(Value: Integer): THandle;
|
||||||
|
begin
|
||||||
|
Result := 0;
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.GetStockObject] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Function: TQtWidgetSet.GetSysColor
|
Function: TQtWidgetSet.GetSysColor
|
||||||
Params: index to the syscolors array
|
Params: index to the syscolors array
|
||||||
@ -2533,6 +2909,10 @@ begin
|
|||||||
|
|
||||||
Result := 0;
|
Result := 0;
|
||||||
|
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.GetTextColor] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
|
||||||
{ if IsValidDC(DC) then
|
{ if IsValidDC(DC) then
|
||||||
with TQtDeviceContext(DC) do
|
with TQtDeviceContext(DC) do
|
||||||
begin
|
begin
|
||||||
@ -2627,6 +3007,14 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.GetWindowLong(Handle : hwnd; int: Integer): PtrInt;
|
||||||
|
begin
|
||||||
|
Result := 0;
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.GetWindowLong] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Method: GetWindowOrgEx
|
Method: GetWindowOrgEx
|
||||||
Params: DC -
|
Params: DC -
|
||||||
@ -2800,6 +3188,50 @@ begin
|
|||||||
CritSection:=TCriticalSection(ACritSec);
|
CritSection:=TCriticalSection(ACritSec);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.IntersectClipRect(dc: hdc; Left, Top, Right, Bottom: Integer): Integer;
|
||||||
|
var
|
||||||
|
IntersectRgn, Rgn: QRegionH;
|
||||||
|
X1,Y1,X2,Y2: Integer;
|
||||||
|
QtDC: TQtDeviceContext;
|
||||||
|
begin
|
||||||
|
{$ifdef VerboseQtWinAPI}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.IntersectClipRect] ');
|
||||||
|
{$endif}
|
||||||
|
Result := ERROR;
|
||||||
|
if not IsValidDC(DC) then exit;
|
||||||
|
|
||||||
|
QtDC := TQtDeviceContext(DC);
|
||||||
|
|
||||||
|
X1 := Left;
|
||||||
|
Y1 := Top;
|
||||||
|
X2 := Right;
|
||||||
|
Y2 := Bottom;
|
||||||
|
QMatrix_map(QPainter_worldMatrix(QtDC.Widget), X1, Y1, @X2, @Y2);
|
||||||
|
|
||||||
|
IntersectRgn := QRegion_create(X1, Y1, X2 - X1, Y2 - Y1);
|
||||||
|
Rgn := QRegion_create;
|
||||||
|
try
|
||||||
|
if QPainter_hasClipping(QtDC.Widget) then
|
||||||
|
begin
|
||||||
|
QPainter_clipRegion(QtDC.Widget, Rgn);
|
||||||
|
if QRegion_isEmpty(Rgn) then
|
||||||
|
QRegion_unite(Rgn, Rgn, IntersectRgn)
|
||||||
|
else
|
||||||
|
QRegion_intersect(Rgn, Rgn, IntersectRgn);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
QPainter_setClipRegion(QtDC.Widget, InterSectRgn);
|
||||||
|
QPainter_clipRegion(QtDC.Widget, Rgn);
|
||||||
|
end;
|
||||||
|
QPainter_setClipping(QtDC.Widget, True);
|
||||||
|
Result := QtDC.GetRegionType(Rgn);
|
||||||
|
finally
|
||||||
|
QRegion_destroy(IntersectRgn);
|
||||||
|
QRegion_destroy(Rgn);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
function TQtWidgetSet.IsWindowEnabled(Handle: HWND): boolean;
|
function TQtWidgetSet.IsWindowEnabled(Handle: HWND): boolean;
|
||||||
begin
|
begin
|
||||||
Result := TQtWidget(Handle).getEnabled;
|
Result := TQtWidget(Handle).getEnabled;
|
||||||
@ -2880,6 +3312,22 @@ begin
|
|||||||
Result := True;
|
Result := True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
function TQtWidgetSet.MessageBox(hWnd: HWND; lpText, lpCaption: PChar; uType: Cardinal): integer;
|
||||||
|
var
|
||||||
|
Str: WideString;
|
||||||
|
TitleStr: WideString;
|
||||||
|
OkStr: WideString;
|
||||||
|
begin
|
||||||
|
Str := UTF8Decode('TQtWidgetSet.MessageBox - not implemented');
|
||||||
|
TitleStr := UTF8Decode(lpCaption);
|
||||||
|
OkStr := UTF8Decode('Ok');
|
||||||
|
Result := QMessageBox_information(TQtWidget(hWnd).Widget, @Str, @TitleStr, @OkStr);
|
||||||
|
// {$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
// WriteLn('***** [WinAPI TQtWidgetSet.MessageBox] missing implementation ');
|
||||||
|
// {$endif}
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Function: MoveToEx
|
Function: MoveToEx
|
||||||
Params: none
|
Params: none
|
||||||
@ -2921,6 +3369,14 @@ begin
|
|||||||
Result := True;
|
Result := True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.PeekMessage(var lpMsg : TMsg; Handle : HWND; wMsgFilterMin, wMsgFilterMax,wRemoveMsg : UINT): Boolean;
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.PeekMessage] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Function: PolyBezier
|
Function: PolyBezier
|
||||||
Params: DC: HDC; Points: PPoint; NumPts: Integer; Filled: Boolean;
|
Params: DC: HDC; Points: PPoint; NumPts: Integer; Filled: Boolean;
|
||||||
@ -2975,6 +3431,13 @@ begin
|
|||||||
QPainter_drawPolyline(TQtDeviceContext(DC).Widget, PQtPoint(Points), NumPts);
|
QPainter_drawPolyline(TQtDeviceContext(DC).Widget, PQtPoint(Points), NumPts);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TQtWidgetSet.PostMessage(Handle: HWND; Msg: Cardinal; wParam: WParam; lParam: LParam): Boolean;
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.PostMessage] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
end;
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Function: Rectangle
|
Function: Rectangle
|
||||||
Params: DC: HDC; X1, Y1, X2, Y2: Integer
|
Params: DC: HDC; X1, Y1, X2, Y2: Integer
|
||||||
@ -3404,6 +3867,9 @@ function TQtWidgetSet.SetCaretRespondToFocus(handle: HWND;
|
|||||||
begin
|
begin
|
||||||
{$note implement}
|
{$note implement}
|
||||||
Result := False;
|
Result := False;
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.SetCaretRespondToFocus] missing implementation ');
|
||||||
|
{$endif}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
@ -3476,6 +3942,10 @@ begin
|
|||||||
|
|
||||||
{$note implement - wait for LCL}
|
{$note implement - wait for LCL}
|
||||||
|
|
||||||
|
{$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION}
|
||||||
|
WriteLn('***** [WinAPI TQtWidgetSet.SetMapMode] missing implementation ');
|
||||||
|
{$endif}
|
||||||
|
|
||||||
(*
|
(*
|
||||||
QtDC := TQtDeviceContext(DC);
|
QtDC := TQtDeviceContext(DC);
|
||||||
|
|
||||||
|
@ -31,34 +31,46 @@ function Arc(DC: HDC; Left,Top,Right,Bottom,angle1,angle2 : Integer): Boolean; o
|
|||||||
function AngleChord(DC: HDC; x1, y1, x2, y2, angle1, angle2: Integer): Boolean; override;
|
function AngleChord(DC: HDC; x1, y1, x2, y2, angle1, angle2: Integer): Boolean; override;
|
||||||
|
|
||||||
function BeginPaint(Handle: hWnd; Var PS : TPaintStruct) : hdc; override;
|
function BeginPaint(Handle: hWnd; Var PS : TPaintStruct) : hdc; override;
|
||||||
|
function BitBlt(DestDC: HDC; X, Y, Width, Height: Integer; SrcDC: HDC; XSrc, YSrc: Integer; Rop: DWORD): Boolean; override;
|
||||||
|
|
||||||
|
function CallNextHookEx(hHk: HHOOK; ncode : Integer; wParam: WParam; lParam : LParam) : Integer; override;
|
||||||
|
Function CallWindowProc(lpPrevWndFunc : TFarProc; Handle : HWND; Msg : UINT; wParam: WParam; lParam : lParam) : Integer; override;
|
||||||
function ClientToScreen(Handle: HWND; var P: TPoint) : Boolean; override;
|
function ClientToScreen(Handle: HWND; var P: TPoint) : Boolean; override;
|
||||||
function CombineRgn(Dest, Src1, Src2: HRGN; fnCombineMode: Longint): Longint; override;
|
function CombineRgn(Dest, Src1, Src2: HRGN; fnCombineMode: Longint): Longint; override;
|
||||||
|
function ComboBoxDropDown(Handle: HWND; DropDown: boolean): boolean; override;
|
||||||
function CreateBitmap(Width, Height: Integer; Planes, BitCount: Longint; BitmapBits: Pointer): HBITMAP; override;
|
function CreateBitmap(Width, Height: Integer; Planes, BitCount: Longint; BitmapBits: Pointer): HBITMAP; override;
|
||||||
function CreateBitmapFromRawImage(const RawImage: TRawImage; var Bitmap, MaskBitmap: HBitmap; AlwaysCreateMask: boolean): boolean; override;
|
function CreateBitmapFromRawImage(const RawImage: TRawImage; var Bitmap, MaskBitmap: HBitmap; AlwaysCreateMask: boolean): boolean; override;
|
||||||
function CreateBrushIndirect(const LogBrush: TLogBrush): HBRUSH; override;
|
function CreateBrushIndirect(const LogBrush: TLogBrush): HBRUSH; override;
|
||||||
function CreateCaret(Handle : HWND; Bitmap : hBitmap; Width, Height : Integer) : Boolean; override;
|
function CreateCaret(Handle : HWND; Bitmap : hBitmap; Width, Height : Integer) : Boolean; override;
|
||||||
|
function CreateCompatibleBitmap(DC: HDC; Width, Height: Integer): HBITMAP; override;
|
||||||
function CreateCompatibleDC(DC: HDC): HDC; override;
|
function CreateCompatibleDC(DC: HDC): HDC; override;
|
||||||
function CreateCursor(ACursorInfo: PIconInfo): hCursor; override;
|
function CreateCursor(ACursorInfo: PIconInfo): hCursor; override;
|
||||||
function CreateEllipticRgn(p1, p2, p3, p4: Integer): HRGN; override;
|
function CreateEllipticRgn(p1, p2, p3, p4: Integer): HRGN; override;
|
||||||
function CreateFontIndirect(const LogFont: TLogFont): HFONT; override;
|
function CreateFontIndirect(const LogFont: TLogFont): HFONT; override;
|
||||||
function CreateFontIndirectEx(const LogFont: TLogFont; const LongFontName: string): HFONT; override;
|
function CreateFontIndirectEx(const LogFont: TLogFont; const LongFontName: string): HFONT; override;
|
||||||
function CreatePenIndirect(const LogPen: TLogPen): HBRUSH; override;
|
function CreatePenIndirect(const LogPen: TLogPen): HBRUSH; override;
|
||||||
|
function CreatePixmapIndirect(const Data: Pointer; const TransColor: Longint): HBITMAP; override;
|
||||||
function CreatePolygonRgn(Points: PPoint; NumPts: Integer; FillMode: integer): HRGN; override;
|
function CreatePolygonRgn(Points: PPoint; NumPts: Integer; FillMode: integer): HRGN; override;
|
||||||
function CreateRectRgn(X1, Y1, X2, Y2: Integer): HRGN; override;
|
function CreateRectRgn(X1, Y1, X2, Y2: Integer): HRGN; override;
|
||||||
|
|
||||||
procedure DeleteCriticalSection(var CritSection: TCriticalSection); override;
|
procedure DeleteCriticalSection(var CritSection: TCriticalSection); override;
|
||||||
|
function DeleteDC(hDC: HDC): Boolean; override;
|
||||||
function DeleteObject(GDIObject: HGDIOBJ): Boolean; override;
|
function DeleteObject(GDIObject: HGDIOBJ): Boolean; override;
|
||||||
function DestroyCaret(Handle : HWND): Boolean; override;
|
function DestroyCaret(Handle : HWND): Boolean; override;
|
||||||
function DestroyCursor(Handle: hCursor): Boolean; override;
|
function DestroyCursor(Handle: hCursor): Boolean; override;
|
||||||
function DPtoLP(DC: HDC; var Points; Count: Integer): BOOL; override;
|
function DPtoLP(DC: HDC; var Points; Count: Integer): BOOL; override;
|
||||||
|
Function DrawFrameControl(DC: HDC; const Rect : TRect; uType, uState : Cardinal) : Boolean; override;
|
||||||
|
function DrawFocusRect(DC: HDC; const Rect: TRect): boolean; override;
|
||||||
function DrawEdge(DC: HDC; var Rect: TRect; edge: Cardinal; grfFlags: Cardinal): Boolean; override;
|
function DrawEdge(DC: HDC; var Rect: TRect; edge: Cardinal; grfFlags: Cardinal): Boolean; override;
|
||||||
function DrawText(DC: HDC; Str: PChar; Count: Integer; var ARect: TRect; Flags: Cardinal): Integer; override;
|
function DrawText(DC: HDC; Str: PChar; Count: Integer; var ARect: TRect; Flags: Cardinal): Integer; override;
|
||||||
|
|
||||||
function Ellipse(DC: HDC; x1, y1, x2, y2: Integer): Boolean; override;
|
function Ellipse(DC: HDC; x1, y1, x2, y2: Integer): Boolean; override;
|
||||||
|
function EnableScrollBar(Wnd: HWND; wSBflags, wArrows: Cardinal): Boolean; override;
|
||||||
|
function EnableWindow(hWnd: HWND; bEnable: Boolean): Boolean; override;
|
||||||
function EndPaint(Handle: hwnd; var PS: TPaintStruct): Integer; override;
|
function EndPaint(Handle: hwnd; var PS: TPaintStruct): Integer; override;
|
||||||
procedure EnterCriticalSection(var CritSection: TCriticalSection); override;
|
procedure EnterCriticalSection(var CritSection: TCriticalSection); override;
|
||||||
Function ExcludeClipRect(dc: hdc; Left, Top, Right, Bottom : Integer) : Integer; override;
|
Function ExcludeClipRect(dc: hdc; Left, Top, Right, Bottom : Integer) : Integer; override;
|
||||||
|
function ExtSelectClipRGN(dc: hdc; rgn : hrgn; Mode : Longint) : Integer; override;
|
||||||
function ExtTextOut(DC: HDC; X, Y: Integer; Options: Longint; Rect: PRect; Str: PChar; Count: Longint; Dx: PInteger): Boolean; override;
|
function ExtTextOut(DC: HDC; X, Y: Integer; Options: Longint; Rect: PRect; Str: PChar; Count: Longint; Dx: PInteger): Boolean; override;
|
||||||
|
|
||||||
function FillRect(DC: HDC; const Rect: TRect; Brush: HBRUSH): Boolean; override;
|
function FillRect(DC: HDC; const Rect: TRect; Brush: HBRUSH): Boolean; override;
|
||||||
@ -68,7 +80,9 @@ function Frame3d(DC: HDC; var ARect: TRect; const FrameWidth : integer; const St
|
|||||||
function FrameRect(DC: HDC; const ARect: TRect; hBr: HBRUSH): Integer; override;
|
function FrameRect(DC: HDC; const ARect: TRect; hBr: HBRUSH): Integer; override;
|
||||||
|
|
||||||
function GetActiveWindow : HWND; override;
|
function GetActiveWindow : HWND; override;
|
||||||
|
function GetBitmapBits(Bitmap: HBITMAP; Count: Longint; Bits: Pointer): Longint; override;
|
||||||
function GetBitmapRawImageDescription(Bitmap: HBITMAP; Desc: PRawImageDescription): Boolean; override;
|
function GetBitmapRawImageDescription(Bitmap: HBITMAP; Desc: PRawImageDescription): Boolean; override;
|
||||||
|
function GetCapture: HWND; override;
|
||||||
function GetCaretPos(var lpPoint: TPoint): Boolean; override;
|
function GetCaretPos(var lpPoint: TPoint): Boolean; override;
|
||||||
function GetCaretRespondToFocus(handle: HWND; var ShowHideOnFocus: boolean): Boolean; override;
|
function GetCaretRespondToFocus(handle: HWND; var ShowHideOnFocus: boolean): Boolean; override;
|
||||||
function GetClientBounds(handle : HWND; var ARect : TRect) : Boolean; override;
|
function GetClientBounds(handle : HWND; var ARect : TRect) : Boolean; override;
|
||||||
@ -76,23 +90,33 @@ function GetClientRect(handle : HWND; var ARect : TRect) : Boolean; override;
|
|||||||
function GetClipBox(DC : hDC; lpRect : PRect) : Longint; override;
|
function GetClipBox(DC : hDC; lpRect : PRect) : Longint; override;
|
||||||
function GetClipRGN(DC: hDC; RGN: hRGN): Longint; override;
|
function GetClipRGN(DC: hDC; RGN: hRGN): Longint; override;
|
||||||
function GetCursorPos(var lpPoint: TPoint ): Boolean; override;
|
function GetCursorPos(var lpPoint: TPoint ): Boolean; override;
|
||||||
|
function GetDC(hWnd: HWND): HDC; override;
|
||||||
|
function GetDCOriginRelativeToWindow(PaintDC: HDC; WindowHandle: HWND; var OriginDiff: TPoint): boolean; override;
|
||||||
|
function GetDesignerDC(WindowHandle: HWND): HDC; override;
|
||||||
function GetDeviceCaps(DC: HDC; Index: Integer): Integer; override;
|
function GetDeviceCaps(DC: HDC; Index: Integer): Integer; override;
|
||||||
function GetDeviceRawImageDescription(DC: HDC; Desc: PRawImageDescription): boolean; override;
|
function GetDeviceRawImageDescription(DC: HDC; Desc: PRawImageDescription): boolean; override;
|
||||||
function GetDeviceSize(DC: HDC; var P: TPoint): Boolean; Override;
|
function GetDeviceSize(DC: HDC; var P: TPoint): Boolean; Override;
|
||||||
function GetDC(hWnd: HWND): HDC; override;
|
function GetDIBits(DC: HDC; Bitmap: HBitmap; StartScan, NumScans: UINT; Bits: Pointer; var BitInfo: BitmapInfo; Usage: UINT): Integer; Override;
|
||||||
function GetFocus: HWND; override;
|
function GetFocus: HWND; override;
|
||||||
function GetKeyState(nVirtKey: Integer): Smallint; override;
|
function GetKeyState(nVirtKey: Integer): Smallint; override;
|
||||||
function GetMapMode(DC: HDC): Integer; override;
|
function GetMapMode(DC: HDC): Integer; override;
|
||||||
function GetObject(GDIObj: HGDIOBJ; BufSize: Integer; Buf: Pointer): Integer; override;
|
function GetObject(GDIObj: HGDIOBJ; BufSize: Integer; Buf: Pointer): Integer; override;
|
||||||
|
function GetParent(Handle : HWND): HWND; override;
|
||||||
function GetProp(Handle : hwnd; Str : PChar): Pointer; override;
|
function GetProp(Handle : hwnd; Str : PChar): Pointer; override;
|
||||||
function GetRawImageFromDevice(SrcDC: HDC; const SrcRect: TRect; var NewRawImage: TRawImage): boolean; override;
|
function GetRawImageFromDevice(SrcDC: HDC; const SrcRect: TRect; var NewRawImage: TRawImage): boolean; override;
|
||||||
function GetRawImageFromBitmap(SrcBitmap, SrcMaskBitmap: HBITMAP; const SrcRect: TRect; var NewRawImage: TRawImage): boolean; Override;
|
function GetRawImageFromBitmap(SrcBitmap, SrcMaskBitmap: HBITMAP; const SrcRect: TRect; var NewRawImage: TRawImage): boolean; Override;
|
||||||
|
function GetRgnBox(RGN : HRGN; lpRect : PRect) : Longint; override;
|
||||||
|
function GetROP2(DC: HDC): Integer; override;
|
||||||
|
function GetScrollBarSize(Handle: HWND; BarKind: Integer): integer; override;
|
||||||
|
function GetScrollbarVisible(Handle: HWND; SBStyle: Integer): boolean; override;
|
||||||
function GetScrollInfo(Handle: HWND; BarFlag: Integer; Var ScrollInfo: TScrollInfo): Boolean; override;
|
function GetScrollInfo(Handle: HWND; BarFlag: Integer; Var ScrollInfo: TScrollInfo): Boolean; override;
|
||||||
|
function GetStockObject(Value: Integer): THandle; override;
|
||||||
function GetSysColor(nIndex: Integer): DWORD; override;
|
function GetSysColor(nIndex: Integer): DWORD; override;
|
||||||
function GetSystemMetrics(nIndex: Integer): Integer; override;
|
function GetSystemMetrics(nIndex: Integer): Integer; override;
|
||||||
function GetTextColor(DC: HDC) : TColorRef; Override;
|
function GetTextColor(DC: HDC) : TColorRef; Override;
|
||||||
function GetTextExtentPoint(DC: HDC; Str: PChar; Count: Integer; var Size: TSize): Boolean; override;
|
function GetTextExtentPoint(DC: HDC; Str: PChar; Count: Integer; var Size: TSize): Boolean; override;
|
||||||
function GetTextMetrics(DC: HDC; var TM: TTextMetric): Boolean; override;
|
function GetTextMetrics(DC: HDC; var TM: TTextMetric): Boolean; override;
|
||||||
|
Function GetWindowLong(Handle : hwnd; int: Integer): PtrInt; override;
|
||||||
function GetWindowOrgEx(dc : hdc; P : PPoint): Integer; override;
|
function GetWindowOrgEx(dc : hdc; P : PPoint): Integer; override;
|
||||||
function GetWindowRect(Handle: hwnd; var ARect: TRect): Integer; override;
|
function GetWindowRect(Handle: hwnd; var ARect: TRect): Integer; override;
|
||||||
function GetWindowRelativePosition(Handle: hwnd; var Left, Top: Integer): boolean; override;
|
function GetWindowRelativePosition(Handle: hwnd; var Left, Top: Integer): boolean; override;
|
||||||
@ -102,18 +126,22 @@ function HideCaret(hWnd: HWND): Boolean; override;
|
|||||||
|
|
||||||
function InvalidateRect(aHandle : HWND; Rect : pRect; bErase : Boolean) : Boolean; override;
|
function InvalidateRect(aHandle : HWND; Rect : pRect; bErase : Boolean) : Boolean; override;
|
||||||
procedure InitializeCriticalSection(var CritSection: TCriticalSection); override;
|
procedure InitializeCriticalSection(var CritSection: TCriticalSection); override;
|
||||||
|
function IntersectClipRect(dc: hdc; Left, Top, Right, Bottom: Integer): Integer; override;
|
||||||
function IsWindowEnabled(Handle: HWND): boolean; override;
|
function IsWindowEnabled(Handle: HWND): boolean; override;
|
||||||
function IsWindowVisible(Handle: HWND): boolean; override;
|
function IsWindowVisible(Handle: HWND): boolean; override;
|
||||||
|
|
||||||
procedure LeaveCriticalSection(var CritSection: TCriticalSection); override;
|
procedure LeaveCriticalSection(var CritSection: TCriticalSection); override;
|
||||||
function LineTo(DC: HDC; X, Y: Integer): Boolean; override;
|
function LineTo(DC: HDC; X, Y: Integer): Boolean; override;
|
||||||
|
|
||||||
|
function MessageBox(hWnd: HWND; lpText, lpCaption: PChar; uType: Cardinal): integer; override;
|
||||||
function MoveToEx(DC: HDC; X, Y: Integer; OldPoint: PPoint): Boolean; override;
|
function MoveToEx(DC: HDC; X, Y: Integer; OldPoint: PPoint): Boolean; override;
|
||||||
function MoveWindowOrgEx(DC: HDC; dX, dY: Integer): Boolean; override;
|
function MoveWindowOrgEx(DC: HDC; dX, dY: Integer): Boolean; override;
|
||||||
|
|
||||||
|
function PeekMessage(var lpMsg : TMsg; Handle : HWND; wMsgFilterMin, wMsgFilterMax,wRemoveMsg : UINT): Boolean; override;
|
||||||
function PolyBezier(DC: HDC; Points: PPoint; NumPts: Integer; Filled, Continuous: boolean): boolean; override;
|
function PolyBezier(DC: HDC; Points: PPoint; NumPts: Integer; Filled, Continuous: boolean): boolean; override;
|
||||||
function Polygon(DC: HDC; Points: PPoint; NumPts: Integer; Winding: boolean): boolean; override;
|
function Polygon(DC: HDC; Points: PPoint; NumPts: Integer; Winding: boolean): boolean; override;
|
||||||
function Polyline(DC: HDC; Points: PPoint; NumPts: Integer): boolean; override;
|
function Polyline(DC: HDC; Points: PPoint; NumPts: Integer): boolean; override;
|
||||||
|
function PostMessage(Handle: HWND; Msg: Cardinal; wParam: WParam; lParam: LParam): Boolean; override;
|
||||||
|
|
||||||
function Rectangle(DC: HDC; X1, Y1, X2, Y2: Integer): Boolean; override;
|
function Rectangle(DC: HDC; X1, Y1, X2, Y2: Integer): Boolean; override;
|
||||||
function RectVisible(dc : hdc; const ARect: TRect) : Boolean; override;
|
function RectVisible(dc : hdc; const ARect: TRect) : Boolean; override;
|
||||||
|
Loading…
Reference in New Issue
Block a user