def main(): funcs = [ ExtObject, Window, Panel, TabPanel, Toolbar, info_box, Canvas, menu_about, menu_help, get_toolbar, get_panel, toolbar_mesh1, toolbar_mesh2, toolbar_mesh3, initialize, ] source = "" for f in funcs: source += inspect.getsource(f) + "\n" js = pyjaco.compile_string(source) print """\ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <!--[if IE]><script type="text/javascript" src="http://explorercanvas.googlecode.com/svn/trunk/excanvas.js"></script><![endif]--> <link rel="stylesheet" type="text/css" href="http://www.extjs.com/deploy/dev/resources/css/ext-all.css"> <script type="text/javascript" src="http://www.extjs.com/deploy/dev/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="http://www.extjs.com/deploy/dev/ext-all.js"></script> <script language="JavaScript" src="../py-builtins.js"></script> <title id="page-title">Title</title> <script type="text/javascript"> function _new(cls, args) { return new cls(args); } %s Ext.onReady(initialize); </script> </head> <body></body> </html>""" % (js)
def __call__(self, obj): lines = inspect.getsource(obj).split("\n") if lines[0].startswith("@"): lines.pop(0) self._js = pyjaco.compile_string("\n".join(lines), self.jsvars) return self._js