diff options
author | jaseg <git@jaseg.net> | 2018-12-13 12:03:46 +0900 |
---|---|---|
committer | jaseg <git@jaseg.net> | 2018-12-13 12:03:46 +0900 |
commit | e53ed321d97cf4065534c1e046ae3ac4272b7b47 (patch) | |
tree | cc5d83b159f4d0c6834cf6c1ceff9de56937d356 /mouse_pairing_mockup | |
parent | 47ca356e92929a1d020e1111ad34c2d2bb92927d (diff) | |
download | secure-hid-e53ed321d97cf4065534c1e046ae3ac4272b7b47.tar.gz secure-hid-e53ed321d97cf4065534c1e046ae3ac4272b7b47.tar.bz2 secure-hid-e53ed321d97cf4065534c1e046ae3ac4272b7b47.zip |
Add mouse pairing mockup
Diffstat (limited to 'mouse_pairing_mockup')
-rw-r--r-- | mouse_pairing_mockup/Screenshot_2018-12-13_11-46-26.png | bin | 0 -> 29906 bytes | |||
-rw-r--r-- | mouse_pairing_mockup/mockup.py | 51 | ||||
-rw-r--r-- | mouse_pairing_mockup/mockup.xcf | bin | 0 -> 116954 bytes |
3 files changed, 51 insertions, 0 deletions
diff --git a/mouse_pairing_mockup/Screenshot_2018-12-13_11-46-26.png b/mouse_pairing_mockup/Screenshot_2018-12-13_11-46-26.png Binary files differnew file mode 100644 index 0000000..2889ec1 --- /dev/null +++ b/mouse_pairing_mockup/Screenshot_2018-12-13_11-46-26.png diff --git a/mouse_pairing_mockup/mockup.py b/mouse_pairing_mockup/mockup.py new file mode 100644 index 0000000..b8903d7 --- /dev/null +++ b/mouse_pairing_mockup/mockup.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 + +import itertools + +import gi +import gi +from gi.repository import Gtk as gtk, Gdk as gdk, Pango as pango, GLib as glib + +import numpy as np + + +class PyApp(gtk.Window): + def __init__(self, m=5): + super(PyApp, self).__init__() + + self.set_title("Mouse pairing mockup") + self.set_default_size(400, 400) + vbox = gtk.VBox() + grid = gtk.Grid(row_spacing=20, column_spacing=20, row_homogeneous=True, column_homogeneous=True, margin=20) + lbl = self.lbl = gtk.Label('Please press the buttons below in order 1-2-3...') + + # GTK has the best APIs... -.- + screen = gdk.Screen.get_default() + gtk_provider = gtk.CssProvider() + gtk_context = gtk.StyleContext() + gtk_context.add_provider_for_screen(screen, gtk_provider, gtk.STYLE_PROVIDER_PRIORITY_APPLICATION) + css = b''' + #pinpad > button {font: 24 bold} + #pinpad > button:checked {background: linear-gradient(#e5efd4, #588a5a)} + ''' + grid.set_name('pinpad') + gtk_provider.load_from_data(css) + + st = np.random.RandomState(seed=0) + for i, (x, y) in zip(st.permutation(m**2), itertools.product(range(m), range(m))): + btn = gtk.ToggleButton(f'{i+1}') + btn.connect("toggled", self.on_toggled) + grid.attach(btn, x, y, 1, 1) + + vbox.pack_start(lbl, True, True, 0) + vbox.pack_start(grid, True, True, 0) + self.add(vbox) + self.connect("destroy", gtk.main_quit) + self.show_all() + + def on_toggled(self, widget, data=None): + print(f'Clicked : {widget.get_label()}') + +if __name__ == '__main__': + PyApp() + gtk.main() diff --git a/mouse_pairing_mockup/mockup.xcf b/mouse_pairing_mockup/mockup.xcf Binary files differnew file mode 100644 index 0000000..a24e279 --- /dev/null +++ b/mouse_pairing_mockup/mockup.xcf |