@@ -1796,6 +1796,47 @@ - (void)flagsChanged:(NSEvent *)event
1796
1796
},
1797
1797
};
1798
1798
1799
+ static PyObject*
1800
+ print_screen_info (PyObject* self)
1801
+ {
1802
+ NSScreen *main = [NSScreen mainScreen ];
1803
+ if (main != nil ) {
1804
+ NSRect frame = [main frame ];
1805
+ NSWindowDepth depth = [main depth ];
1806
+ printf (" mainScreen: %s (%f x%f )+%f +%f @%ld \n " ,
1807
+ [[main localizedName ] UTF8String ],
1808
+ NSWidth (frame), NSHeight (frame), NSMinX (frame), NSMinY (frame),
1809
+ (long )NSBitsPerSampleFromDepth (depth));
1810
+ } else {
1811
+ printf (" mainScreen: (unknown)\n " );
1812
+ }
1813
+
1814
+ NSScreen *deepest = [NSScreen deepestScreen ];
1815
+ if (deepest != nil ) {
1816
+ NSRect frame = [deepest frame ];
1817
+ NSWindowDepth depth = [deepest depth ];
1818
+ printf (" deepestScreen: %s (%f x%f )+%f +%f @%ld \n " ,
1819
+ [[deepest localizedName ] UTF8String ],
1820
+ NSWidth (frame), NSHeight (frame), NSMinX (frame), NSMinY (frame),
1821
+ (long )NSBitsPerSampleFromDepth (depth));
1822
+ } else {
1823
+ printf (" deepestScreen: (unknown)\n " );
1824
+ }
1825
+
1826
+ NSArray *screensArray = [NSScreen screens ];
1827
+ printf (" Available screens: %lu \n " , [screensArray count ]);
1828
+ [screensArray enumerateObjectsUsingBlock: ^(NSScreen * screen, NSUInteger idx, BOOL *stop) {
1829
+ NSRect frame = [screen frame ];
1830
+ NSWindowDepth depth = [screen depth ];
1831
+ printf (" %lu : %s (%f x%f )+%f +%f @%ld \n " ,
1832
+ idx, [[screen localizedName ] UTF8String ],
1833
+ NSWidth (frame), NSHeight (frame), NSMinX (frame), NSMinY (frame),
1834
+ (long )NSBitsPerSampleFromDepth (depth));
1835
+ }];
1836
+
1837
+ Py_RETURN_NONE;
1838
+ }
1839
+
1799
1840
static struct PyModuleDef moduledef = {
1800
1841
PyModuleDef_HEAD_INIT, " _macosx" , " Mac OS X native backend" , -1 ,
1801
1842
(PyMethodDef[]){
@@ -1823,6 +1864,10 @@ - (void)flagsChanged:(NSEvent *)event
1823
1864
(PyCFunction)choose_save_file,
1824
1865
METH_VARARGS,
1825
1866
" Query the user for a location where to save a file." },
1867
+ {" print_screen_info" ,
1868
+ (PyCFunction)print_screen_info,
1869
+ METH_NOARGS,
1870
+ " Show information about available screens." },
1826
1871
{} /* Sentinel */
1827
1872
},
1828
1873
};
0 commit comments