Typo in ColorConversion code: converColorComponents
[WebKit-https.git] / Tools / gtk / print-screen-size
1 #!/usr/bin/env python3
2 #
3 # Copyright (C) 2021 Igalia S.L.
4 #
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions are met:
7 #
8 # 1. Redistributions of source code must retain the above copyright notice, this
9 #    list of conditions and the following disclaimer.
10 # 2. Redistributions in binary form must reproduce the above copyright notice,
11 #    this list of conditions and the following disclaimer in the documentation
12 #    and/or other materials provided with the distribution.
13 #
14 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
15 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17 # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
18 # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
25 import argparse
26 import sys
27 import gi
28 gi.require_version('Gtk', '3.0')
29 gi.require_version('Gdk', '3.0')
30 from gi.repository import Gtk, Gdk
31
32
33 def print_screen_size(monitor_id):
34     display = Gdk.Display.get_default()
35     if not display:
36         print('Unable to find a display')
37         return 1
38     monitor = display.get_monitor(monitor_id)
39     if not monitor:
40         print('Unable to find a monitor')
41         return 1
42     geometry = monitor.get_geometry()
43     print('{}x{}'.format(geometry.width,  geometry.height))
44     return 0
45
46
47 # This tool is used from the layout tests when running with the Xvfb driver,
48 # in order to check that the Xvfb server is alive and configured as expected.
49 # Please, don't modify this tool without checking first how it is used at webkitpy/port/xvfbdriver.py
50 if __name__ == '__main__':
51     parser = argparse.ArgumentParser(description='Print the current display size (widthxheight) of a given monitor')
52     parser.add_argument("-n", type=int, help='Number of the monitor the query', default=0)
53     args = parser.parse_args()
54     sys.exit(print_screen_size(args.n))