1#!/usr/bin/env python3
2
3from xpra.x11.gtk_x11.gdk_display_source import init_gdk_display_source
4init_gdk_display_source()
5
6import gi
7gi.require_version('Gtk', '3.0')
8from gi.repository import Gtk   #pylint: disable=wrong-import-position
9
10from xpra.x11.gtk_x11.prop import prop_set
11from xpra.gtk_common.error import xsync
12
13def main():
14    win = Gtk.Window()
15    win.set_size_request(400, 100)
16    win.set_title("quality / speed hint")
17    vbox = Gtk.VBox()
18    win.add(vbox)
19    def set_int_prop(prop_name, value):
20        with xsync:
21            prop_set(win.get_window(), prop_name, "u32", value)
22        print("%s=%s" % (prop_name, value))
23    win.quality = 100
24    win.speed = 100
25    def set_quality_hint():
26        set_int_prop("_XPRA_QUALITY", win.quality)
27    def set_speed_hint():
28        set_int_prop("_XPRA_SPEED", win.speed)
29    def change_quality(*_args):
30        win.quality = (win.quality - 20) % 100
31        set_quality_hint()
32    def change_speed(*_args):
33        win.speed = (win.speed - 20) % 100
34        set_speed_hint()
35    def add_button(label, cb):
36        btn = Gtk.Button(label=label)
37        vbox.add(btn)
38        btn.connect('button-press-event', cb)
39    add_button("change quality", change_quality)
40    add_button("change speed", change_speed)
41    win.connect("destroy", Gtk.main_quit)
42    win.show_all()
43    Gtk.main()
44    return 0
45
46
47if __name__ == '__main__':
48    main()
49