]> gitweb.factorcode.org Git - factor.git/blob - basis/windows/hardware/hardware.factor
scryfall: make decks better, import from moxfield
[factor.git] / basis / windows / hardware / hardware.factor
1 ! Copyright (C) 2021 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors alien arrays io kernel namespaces prettyprint
4 ui.backend.windows ui.gadgets.worlds windows.errors windows.types
5 windows.user32 ;
6 IN: windows.hardware
7
8 : monitor-enum-proc ( -- callback )
9     BOOL { HMONITOR HDC LPRECT LPARAM } stdcall [
10         4dup 4array .
11         3drop
12         MONITORINFOEX new dup byte-length >>cbSize
13         [ GetMonitorInfo win32-error=0/f ] keep ... flush
14         TRUE
15     ] alien-callback ;
16
17 : enum-monitors ( -- )
18     world get
19     [ handle>> hDC>> ]
20     [ make-RECT ] bi
21     monitor-enum-proc
22     0
23     EnumDisplayMonitors win32-error=0/f ;
24
25
26 : desktop-enum-proc ( -- callback )
27     BOOL { LPWSTR LPARAM } stdcall [
28         2array .
29         TRUE
30     ] alien-callback ;
31
32 : enum-desktops ( -- )
33     f desktop-enum-proc 0 EnumDesktopsW win32-error=0/f ;