def capture(target_uri): app = None window = None widget = None target_parts = target_uri.split('/') if len(target_parts) >= 1: # load the app class_name = to_pascalcase(target_parts[0]) app_class = get_class(target_parts[0], class_name) app = app_class() app.open() if not app: print "Unable to load '%s' app" % class_name return if len(target_parts) >= 2: # load the window (from within app) class_name = to_pascalcase(target_parts[1]) for window_class in app.windows: if window_class.__name__ == class_name: window = app.init_window(window_class) break if not window: print "Unable to load '%s' window" % class_name return if len(target_parts) >= 3: # load the widget (from within window) widget_name = target_parts[2] for widget_instance in window.widgets: if widget_instance.name == widget_name: widget = widget_instance break if not widget: print "Unable to load '%s' widget" % widget_name return parent_widget = widget for i in range(3, len(target_parts)): # load the widget (from within widget) widget_name = target_parts[i] for widget_instance in widget.widgets: if widget_instance.name == widget_name: widget = widget_instance break if widget == parent_widget: print "Unable to load '%s' widget" % widget_name return widget.capture_screenshots() else: window.capture_screenshots() else: app.capture_screenshots()
def create_app(name): f = open(os.path.join(name, "%s.py" % name), "w") f.write("from sikwidgets.application import Application\n") f.write("from windows.%s_window import %sWindow\n" % (name, to_pascalcase(name))) f.write("\n") f.write("class %s(Application):\n" % to_pascalcase(name)) f.write("\topen_cmd = ''\n") f.write("\twindows = [%sWindow]\n" % to_pascalcase(name)) f.close()
def create_window(name): windows_path = os.path.join(name, "windows") f = open(os.path.join(windows_path, "%s_window.py" % name), "w") f.write("from sikwidgets.window import Window\n") f.write("from sikwidgets.region_group import RegionGroup\n") f.write("\n") f.write("class %sWindow(Window):\n" % to_pascalcase(name)) f.write("\tdef contains(self):\n") f.write("\t\tpass") f.close()