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