@app.bind('get-hostname') def _get_hostname_cb(*args): app.emit('update-config', os.uname()[1]) @app.bind('update-hostname') def _update_hostname_cb(message): pp = pprint.PrettyPrinter(indent=2) pp.pprint(message) @app.bind('start-long-task') def _long_task_cb(): t = LongTask() app.threads.add(t) app.threads.on(t, 'progress', _longtask_progress_cb) app.threads.on(t, 'complete', _longtask_complete_cb) def _longtask_progress_cb(thread, *args): app.emit('long-task-progress', *args) def _longtask_complete_cb(thread, *args): app.emit('long-task-complete', *args) app.start()
# start the app event loop app.start(""" <!DOCTYPE html> <html lang="en"> <head> <link href="lens://css/lens.css" rel="stylesheet"> </head> <body> <h1>Lens. Demo</h1> <p>This sample demonstrates simple communication between the Python and JS code paths.</p> <p>Hostname: <span id="hostname"></span></p> <button id="closeBtn">CLOSE</button> <script src="lens://js/lens.js"></script> <script> document.addEventListener("DOMContentLoaded", function(event) { document.getElementById("closeBtn").onclick = function() { lens.emit('close'); }; lens.on('update-hostname', function(e, hostname) { document.getElementById('hostname').innerHTML = hostname; }); lens.emit('get-hostname'); }); </script> </body> </html> """)
from lens.app import App app = App() # load the app entry page app.namespaces.append('./sample-data/app') @app.bind('close') def _close_app_cb(*args): app.close() @app.bind('get-hostname') def _get_hostname_cb(*args): app.emit('update-config', os.uname()[1]) @app.bind('update-hostname') def _update_hostname_cb(message): print(message) @app.bind('toggle-window-maximize') def _maximize_cb(*args): app.toggle_window_maximize() @app.bind('toggle-window-fullscreen') def _fullscreen_cb(*args): app.toggle_window_fullscreen() app.start()