mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-23 05:39:29 +02:00
gtk: implement TMonitor support
git-svn-id: trunk@19260 -
This commit is contained in:
parent
906426f562
commit
ddf2b15e66
@ -3404,6 +3404,12 @@ begin
|
||||
ReleaseDC(Handle, PS.HDC);
|
||||
end;
|
||||
|
||||
function TGTKWidgetSet.EnumDisplayMonitors(hdc: HDC; lprcClip: PRect;
|
||||
lpfnEnum: MonitorEnumProc; dwData: LPARAM): LongBool;
|
||||
begin
|
||||
Result := lpfnEnum(0, 0, nil, dwData);
|
||||
end;
|
||||
|
||||
{.$define VerboseEnumFonts}
|
||||
{$IFDEF VerboseGtkToDos}{$note: compare TGtkWidgetSet.EnumFontFamilies with gtkproc.FillScreenFonts}{$ENDIF}
|
||||
function TGtkWidgetSet.EnumFontFamilies(DC: HDC; Family: Pchar;
|
||||
@ -5361,6 +5367,15 @@ begin
|
||||
//Assert(False, Format('Trace:[TGtkWidgetSet.GetKeyState] %d -> 0x%x', [nVirtKey, Result]));
|
||||
end;
|
||||
|
||||
function TGTKWidgetSet.GetMonitorInfo(Monitor: HMONITOR; lpmi: PMonitorInfo): Boolean;
|
||||
begin
|
||||
Result := (lpmi <> nil) and (lpmi^.cbSize >= SizeOf(TMonitorInfo)) and (Monitor = 0);
|
||||
if not Result then Exit;
|
||||
lpmi^.rcMonitor := Bounds(0, 0, gdk_screen_width, gdk_screen_height);
|
||||
lpmi^.rcWork := lpmi^.rcMonitor;
|
||||
lpmi^.dwFlags := MONITORINFOF_PRIMARY
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: GetObject
|
||||
Params: GDIObj - handle, BufSize - size of Buf argument, Buf - buffer
|
||||
@ -9745,6 +9760,7 @@ begin
|
||||
ACritSec:=System.PRTLCriticalSection(CritSection);
|
||||
System.EnterCriticalsection(ACritSec^);
|
||||
end;
|
||||
|
||||
{var
|
||||
Crit,
|
||||
tmp : ppthread_mutex_t;
|
||||
|
@ -76,6 +76,7 @@ function EnableScrollBar(Wnd: HWND; wSBflags, wArrows: Cardinal): Boolean; overr
|
||||
function EnableWindow(hWnd: HWND; bEnable: Boolean): Boolean; override;
|
||||
function EndPaint(Handle : hwnd; var PS : TPaintStruct): Integer; override;
|
||||
procedure EnterCriticalSection(var CritSection: TCriticalSection); Override;
|
||||
function EnumDisplayMonitors(hdc: HDC; lprcClip: PRect; lpfnEnum: MonitorEnumProc; dwData: LPARAM): LongBool; override;
|
||||
function EnumFontFamilies(DC: HDC; Family: Pchar; EnumFontFamProc: FontEnumProc; LParam:Lparam):longint; override;
|
||||
function EnumFontFamiliesEx(DC: HDC; lpLogFont: PLogFont; Callback: FontEnumExProc; Lparam: LParam; Flags: dword): longint; override;
|
||||
function ExcludeClipRect(dc: hdc; Left, Top, Right, Bottom : Integer) : Integer; override;
|
||||
@ -109,6 +110,7 @@ function GetDIBits(DC: HDC; Bitmap: HBitmap; StartScan, NumScans: UINT; Bits: Po
|
||||
function GetFocus: HWND; override;
|
||||
function GetFontLanguageInfo(DC: HDC): DWord; override;
|
||||
function GetKeyState(nVirtKey: Integer): Smallint; override;
|
||||
function GetMonitorInfo(Monitor: HMONITOR; lpmi: PMonitorInfo): Boolean; 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;
|
||||
|
@ -357,8 +357,12 @@ function TGtk2WidgetSet.EnumDisplayMonitors(hdc: HDC; lprcClip: PRect;
|
||||
var
|
||||
i: integer;
|
||||
begin
|
||||
Result := True;
|
||||
for i := 0 to gdk_screen_get_n_monitors(gdk_screen_get_default) - 1 do
|
||||
lpfnEnum(i, 0, nil, dwData);
|
||||
begin
|
||||
Result := Result and lpfnEnum(i, 0, nil, dwData);
|
||||
if not Result then break;
|
||||
end;
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user