def runner(): # Load layout self.setup() assets = nwidget.Assets() theme_path = assets.resolve("..", "..", "assets", "theme", "light") theme = nwidget.theme.Light(theme_path, self._window) self.layout = nwidget.Layout(self._window, theme, assets, assets.resolve("ui/sample1.py")) # Model self.model = { "main_button_enabled": True, "updated": True, "main_text": "Try clicking me" } # events def click_event(code, widget): print("EVENT!") self.model = { "main_button_enabled": False, "main_text": "DISABLED", "updated": True } nwidget.listen("MAIN_BUTTON_CLICK", click_event) # Turn on debugging self.layout.watch() self.layout.show_edges(True) self.layout.show_bounds(True)
def ui_assets(cls): try: rtn = cls.__ui_assets except: path = Ui.assets().resolve("ui") cls.__ui_assets = nwidget.Assets(path) return cls.__ui_assets
def runner(): a = nwidget.Assets() i = self.setup() i.bounds(10, 10, 60, 380) for _ in range(10): img = nwidget.Image(texture=a.resolve("data", "cat2.jpg")) i.add(img) self.__widgets.append(i) i = self.setup() i.bounds(100, 0, 200, 400) i.padding = 10 for _ in range(10): img = nwidget.Image(texture=a.resolve("data", "cat2.jpg")) i.add(img) self.__widgets.append(i) # A few fixed size elements i = self.setup() i.bounds(300, 50, 350, 400) i.padding = 5 for x in range(10): img = nwidget.Image(texture=a.resolve("data", "cat2.jpg")) if x == 5: i.add(img, 100) elif x == 8: i.add(img, 30, 100) else: i.add(img) self.__widgets.append(i)
def run(self, testing=False): assets = nwidget.Assets() if testing: layer = views.TestView(assets) else: layer = views.MainView(assets) scene = cocos.scene.Scene(layer) cocos.director.director.run(scene)
def runner(): # Load layout self.setup() assets = nwidget.Assets() theme_path = assets.resolve("..", "..", "assets", "theme", "light") theme = nwidget.theme.Light(theme_path, self._window) sassets = nwidget.Assets(assets.resolve("ui")) self.layout = nwidget.Layout(self._window, theme, sassets, assets.resolve("ui/sample2.py")) # Model self.model = { "main_button_enabled": True, "updated": True, "main_text": "Try clicking me", "turn_off": False } # events from child layout def click_event(code, widget): self.model["main_button_enabled"] = False self.model["main_text"] = "DISABLED" self.model["updated"] = True nwidget.listen("MAIN_BUTTON_CLICK", click_event) # events from parent layout def parent_event(code, widget): self.model["turn_off"] = True self.model["updated"] = True nwidget.listen("TURN_OFF_CHILD_DEBUG", parent_event) def parent_event2(code, widget): self.layout.show_edges(False) self.layout.show_bounds(False) nwidget.listen("TURN_OFF_OWN_DEBUG", parent_event2) # Turn on debugging by default self.layout.watch() self.layout.show_edges(True) self.layout.show_bounds(True)
def test_can_load_layout(self): t, i = self.setup() # Fake window self._window = FakeWindow() # Load a theme to pass to the layout assets = nwidget.Assets() theme = nwidget.theme.Light( assets.resolve("..", "..", "assets", "theme", "light"), self._window) i(self._window, theme, None, assets.resolve("ui", "sample1.py"))
def runner(): self.enable_blending() a = nwidget.Assets() s1 = nwidget.Image(texture=a.resolve("data", "cat2.jpg")) s2 = nwidget.Image(texture=a.resolve("data", "panel2.png")) i = self.setup() i.add(s1) i.add(s2) i.bounds(50, 50, 200, 200) self.__widgets = [i]
def __init__(self): a = nwidget.Assets() super(LayoutUi, self).__init__( nwidget.theme.Gothic, a.resolve("..", "..", "assets", "theme", "gothic"), a.resolve("ui", "sample.py"), a.resolve("ui") ) # Model self.model = {"main_button_enabled": True, "updated": True, "main_text": "Try clicking me", "turn_off": False} # Events nwidget.listen("MAIN_BUTTON_CLICK", self.click_event)
def setup(self): return nwidget.TextArea(), nwidget.Assets()
def setup(self): return nwidget.Partial(), nwidget.Assets()
def setup(self): return nwidget.Label(), nwidget.Assets()
def assets(cls): try: rtn = cls.__assets except: cls.__assets = nwidget.Assets() return cls.__assets
def setup(self): return nwidget.Toggle(), nwidget.Assets()
def setup(self): instance = Factory() return Assert(), nwidget.Assets(), instance
def setup(self): return nwidget.Textbox(), nwidget.Assets()
def setup(self): return nwidget.Image(), nwidget.Assets()
def setup(self): self.enable_blending() assets = nwidget.Assets() path = assets.resolve("..", "..", "assets", "theme", "gothic") return Assert(), nwidget.theme.Gothic(path, self._window)
def setup(self): return nwidget.Panel(), nwidget.Assets()
def __init__(self, path, window=None): """ Create a theme instance with a base path reference. Window may be None, but no events will be bound if so. """ self.__assets = nwidget.Assets(path) self.__window = window
def runner(): # Global setup self.__widgets = [] self.enable_blending() a = nwidget.Assets() # Text button select with both buttons b_next = nwidget.Button(text="next", on_click="S_NEXT_1") b_prev = nwidget.Button(text="prev", on_click="S_NEXT_2") items = nwidget.HList() marker = nwidget.Block(solid=False, color=(255, 0, 0, 255)) b_prev.bounds(10, 10, 50, 50) items.bounds(50, 10, 200, 50) b_next.bounds(200, 10, 240, 50) selector = nwidget.Select(next=b_next, prev=b_prev, marker=marker, list=items) selector.on_change = "SELECTED" for i in range(10): b = nwidget.Block(solid=True, color=(0, 0, 25 * i, 255)) selector.add(b, "ITEM_" + str(i), -1, 10 * i) selector.index = 3 selector.register(self._window) b_prev.register(self._window) b_next.register(self._window) self.__widgets.append(selector) def scb1(_, widget): print("Currently selected item is: %s" % widget.selected) nwidget.listen("SELECTED", scb1) # Vertical list with image buttons, marker, and restricted display count b_next = nwidget.ImageButton(on_click="SELECT_2") b_next.from_row(a.resolve("data", "arrows.png"), (0, 0, 1, 0.25)) marker = nwidget.Block(solid=False, color=(255, 255, 255, 255)) items = nwidget.VList(padding=5) items.bounds(10, 100, 60, 340) b_next.bounds(10, 340, 60, 390) selector = nwidget.Select(next=b_next, list=items, marker=marker) for i in range(10): img = nwidget.Image(texture=a.resolve("data", "select1.png")) low = 0.1 * i high = 0.1 * (i + 1) img.uv = (low, low, low, high, high, high, high, low) selector.add(img, "ITEM_" + str(i)) selector.index = 0 selector.display_count = 5 b_next.register(self._window) selector.register(self._window) self.__widgets.append(selector) # Image buttons, active item enabled only # The marker here is a semi-transparent image overlay b_next = nwidget.ImageButton(on_click="SELECT_3_NEXT") b_next.from_row(a.resolve("data", "arrows.png"), (0, 0.75, 1, 1)) b_prev = nwidget.ImageButton( on_click="SELECT_3_PREV") # <-- different event code b_prev.from_row(a.resolve("data", "arrows.png"), (0, 0.25, 1, 0.5)) marker = nwidget.Image(texture=a.resolve("data", "marker1.png")) items = nwidget.HList(padding=5) items.bounds(150, 200, 350, 250) b_prev.bounds(100, 200, 150, 250) b_next.bounds(350, 200, 400, 250) selector = nwidget.Select(next=b_next, list=items, marker=marker, prev=b_prev) selector.display_count = 5 selector.index = 2 selector.display_start = 0 selector.on_change = "SELECT_3_UPDATE" for i in range(10): b = nwidget.ImageButton() b.texture = a.resolve("data", "select2.png") b.texture_over = a.resolve("data", "select2.png") b.texture_down = a.resolve("data", "select2.png") b.texture_disabled = a.resolve("data", "select2.png") xo = i * 0.1 xe = xo + 0.1 b.uv = (xo, 0.3, xe, 0.3, xe, 0.4, xo, 0.4) b.uv_over = (xo, 0.2, xe, 0.2, xe, 0.3, xo, 0.3) b.uv_down = (xo, 0.1, xe, 0.1, xe, 0.2, xo, 0.2) b.uv_disabled = (xo, 0, xe, 0, xe, 0.1, xo, 0.1) b.register(self._window) if i != selector.index: b.disabled = True selector.add(b, "BUTTON_" + str(i)) def scb3(_, w): for i in range(10): wx = w.item(i) wx.disabled = not (i == w.index) pass nwidget.listen("SELECT_3_UPDATE", scb3) b_next.register(self._window) b_prev.register(self._window) selector.register(self._window) self.__widgets.append(selector)
def menu(): assets = nwidget.Assets() layer = views.MainView(assets) scene = cocos.scene.Scene(layer) cocos.director.director.run(scene)
def setup(self): return nwidget.Button(), nwidget.Assets()
def play(): assets = nwidget.Assets() layer = views.GameView(assets) scene = cocos.scene.Scene(layer) cocos.director.director.run(scene)
def credits(): assets = nwidget.Assets() layer = views.CreditsView(assets) scene = cocos.scene.Scene(layer) cocos.director.director.run(scene)
def __init__(self, assets): super(GameView, self).__init__() self.assets = nwidget.Assets() self.load_objects() pyglet.clock.schedule_interval(self.update, 0.03)