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, None, 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): self.model = {"main_button_enabled": False, "main_text": "DISABLED", "updated": True} nwidget.listen("MAIN_BUTTON_CLICK", click_event) def swap_debug(code, widget): self.debug = not self.debug self.layout.show_edges(self.debug) self.layout.show_bounds(self.debug) self.show_debug = True nwidget.listen("DEBUG_CLICK", swap_debug) # Turn on debugging self.layout.watch() self.layout.show_edges(True) self.layout.show_bounds(True)
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 __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 load_objects(self): assets = self.assets # Clear events from other views nwidget.events.clear(cocos.director.director.window) self.is_event_handler = True # View model & ui self.model = { "score": 0, "dead": False, "updated": False, "play_time": 0, } self.ui = model.Ui("game.py", self.model) self.add(self.ui, z=1) # Above the background # bind events nwidget.listen("GAME_RESTART", self.on_restart) nwidget.listen("GAME_GOTO_MENU", self.on_menu) # Background bg = model.Background(assets) self.add(bg.node) # Add path and snake self.snake = model.Snake(assets) self.path = model.Path() width, height = cocos.director.director.get_window_size() x = width / 2 y = height / 2 self.snake.jump(x, y) self.path.jump(x, y) self.add(self.snake.node) self.add(self.path) self.bounds = (0, 0, width, height) # Direction self.snake.right() self.vector = "RIGHT" self.speed = SNAKE_SPEED # Are we paused because we died? self.dead = False # Start~ self.marker = None self.inc_dt = 0 self.generate_marker()
def load_objects(self): assets = self.assets # Clear events from other views nwidget.events.clear(cocos.director.director.window) self.is_event_handler = True # View model & ui self.model = { "score" : 0, "dead" : False, "updated" : False, "play_time" : 0, } self.ui = model.Ui("game.py", self.model) self.add(self.ui, z=1) # Above the background # bind events nwidget.listen("GAME_RESTART", self.on_restart) nwidget.listen("GAME_GOTO_MENU", self.on_menu) # Background bg = model.Background(assets) self.add(bg.node) # Add path and snake self.snake = model.Snake(assets) self.path = model.Path() width, height = cocos.director.director.get_window_size() x = width / 2 y = height / 2 self.snake.jump(x, y) self.path.jump(x, y) self.add(self.snake.node) self.add(self.path) self.bounds = (0, 0, width, height) # Direction self.snake.right() self.vector = "RIGHT" self.speed = SNAKE_SPEED # Are we paused because we died? self.dead = False # Start~ self.marker = None self.inc_dt = 0 self.generate_marker()
def __init__(self, assets): super(CreditsView, self).__init__() # Clear events from other views nwidget.events.clear(cocos.director.director.window) self.is_event_handler = True self.ui = model.Ui("credits.py", {}) self.add(self.ui) # Background bg = model.Background(assets) self.add(bg.node) nwidget.listen("CREDITS_MENU", model.Game.menu)
def runner(): i, a = self.setup() i.bounds(50, 50, 100, 100) i.add(nwidget.Image(texture=a.resolve("data", "cat.jpg")), "CAT") i.add(nwidget.Image(texture=a.resolve("data", "cat2.jpg")), "CAT2") i.add(nwidget.Image(texture=a.resolve("data", "panel1.png")), "CAT3") i.register(self._window) i.on_change = "CHANGED" self.__widgets.append(i) i, a = self.setup() i.bounds(200, 200, 300, 300) i.add(nwidget.Image(texture=a.resolve("data", "cat.jpg")), "CAT") i.add(nwidget.Image(texture=a.resolve("data", "cat2.jpg")), "CAT2") i.add(nwidget.Image(texture=a.resolve("data", "panel1.png")), "CAT3") i.disabled_widget = nwidget.Image( texture=a.resolve("data", "button_disabled.png")) i.register(self._window) item = i self.__widgets.append(i) # Events def cb(_, widget): print("New state is: %s -> %s" % (widget.index, widget.state)) if widget.state == "CAT3": item.disabled = True print("Disabled") elif item.disabled: item.disabled = False nwidget.listen("CHANGED", cb) i, a = self.setup() i.bounds(10, 200, 100, 290) i.add(nwidget.Image(texture=a.resolve("data", "cat.jpg")), "CAT") i.add(nwidget.Image(texture=a.resolve("data", "cat2.jpg")), "CAT2") i.add(nwidget.Image(texture=a.resolve("data", "panel1.png")), "CAT3") i.register(self._window) i.index = 2 self.__widgets.append(i)
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 runner(): i, a = self.setup() i.bounds(50, 50, 100, 100) i.add(nwidget.Image(texture=a.resolve("data", "cat.jpg")), "CAT") i.add(nwidget.Image(texture=a.resolve("data", "cat2.jpg")), "CAT2") i.add(nwidget.Image(texture=a.resolve("data", "panel1.png")), "CAT3") i.register(self._window) i.on_change = "CHANGED" self.__widgets.append(i) i, a = self.setup() i.bounds(200, 200, 300, 300) i.add(nwidget.Image(texture=a.resolve("data", "cat.jpg")), "CAT") i.add(nwidget.Image(texture=a.resolve("data", "cat2.jpg")), "CAT2") i.add(nwidget.Image(texture=a.resolve("data", "panel1.png")), "CAT3") i.disabled_widget = nwidget.Image(texture=a.resolve("data", "button_disabled.png")) i.register(self._window) item = i self.__widgets.append(i) # Events def cb(_, widget): print("New state is: %s -> %s" % (widget.index, widget.state)) if widget.state == "CAT3": item.disabled = True print("Disabled") elif item.disabled: item.disabled = False nwidget.listen("CHANGED", cb) i, a = self.setup() i.bounds(10, 200, 100, 290) i.add(nwidget.Image(texture=a.resolve("data", "cat.jpg")), "CAT") i.add(nwidget.Image(texture=a.resolve("data", "cat2.jpg")), "CAT2") i.add(nwidget.Image(texture=a.resolve("data", "panel1.png")), "CAT3") i.register(self._window) i.index = 2 self.__widgets.append(i)
def runner(): self.__widgets = [] self.enable_blending() # Multiline label with edge wrapping i, a = self.setup() i.bounds(50, 110, 250, 210) i.text = "Hello World Thd sf s dfas df sdf dsf adf dsf dsf dsaf dsa fdsaf adsf adsf asdf asdf" i.font = a.resolve("data", "roboto.ttf") i.color = (255, 255, 0, 255) i.size = 10 i.panel = a.resolve("data", "textbox_panel1.png") i.panel_focus = a.resolve("data", "textbox_panel2.png") i.register(self._window) i0 = i self.__widgets.append(i) # Single line label i, a = self.setup() i.bounds(10, 250, 390, 330) i.text = "Hello World" i.font = a.resolve("data", "roboto.ttf") i.color = (30, 30, 30, 255) i.multiline = False i.size = 12 i.limit = 30 i.register(self._window) i.panel = a.resolve("data", "textbox_panel1.png") i.panel_focus = a.resolve("data", "textbox_panel2.png") i.on_change = "TEXT_CHANGE" i.padding = 20 i1 = i self.__widgets.append(i) def cb(code, widget): print("New text: %s" % widget.text) nwidget.listen("TEXT_CHANGE", cb)
def __init__(self, assets): super(MainView, self).__init__() # Clear events from other views nwidget.events.clear(cocos.director.director.window) self.is_event_handler = True self.ui = model.Ui("menu.py", {}) self.add(self.ui, z=1) nwidget.listen("MENU_PLAY_GAME", model.Game.play) nwidget.listen("MENU_CREDITS", model.Game.credits) nwidget.listen("MENU_EXIT", model.Game.exit) # Background bg = model.Background(assets) self.add(bg.node)
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 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 runner(): # Global setup self.__widgets = [] self.enable_blending() # Common event callback def callback(code, button): button.disabled = True # Garish button to demo actions b1, a = self.setup() b1.texture = a.resolve("data", "image_button1.png") b1.texture_over = a.resolve("data", "image_button1.png") b1.texture_down = a.resolve("data", "image_button1.png") b1.texture_disabled = a.resolve("data", "image_button1.png") b1.uv = (0, 0.75, 1, 0.75, 1, 1, 0, 1) b1.uv_over = (0, 0.5, 1, 0.5, 1, 0.75, 0, 0.75) b1.uv_down = (0, 0.25, 1, 0.25, 1, 0.5, 0, 0.5) b1.uv_disabled = (0, 0, 1, 0, 1, 0.25, 0, 0.25) b1.bounds(10, 10, 138, 42) b1.on_click = "IBTN1" b1.register(self._window) # <--- Notice how you must attach the widget to the pyglet event system self.__widgets.append(b1) nwidget.listen("IBTN1", callback) # Square button test b2, a = self.setup() b2.from_square(a.resolve("data", "image_button2.png")) b2.on_click = "IBTN2" b2.bounds(100, 100, 164, 164) b2.register(self._window) self.__widgets.append(b2) nwidget.listen("IBTN2", callback) # Subtexture button tests b3, a = self.setup() b3.from_square(a.resolve("data", "image_button3.png"), (0.5, 0, 1, 0.5)) b3.on_click = "IBTN3" b3.bounds(10, 300, 72, 364) b3.register(self._window) self.__widgets.append(b3) nwidget.listen("IBTN3", callback) b4, a = self.setup() b4.from_square(a.resolve("data", "image_button3.png"), (0.5, 0, 1, 0.5)) b4.on_click = "IBTN4" b4.bounds(100, 300, 164, 364) b4.register(self._window) self.__widgets.append(b4) nwidget.listen("IBTN4", callback) b4.click() b5, a = self.setup() b5.from_row(a.resolve("data", "image_button3.png"), (0, 0.75, 1, 1)) b5.on_click = "IBTN5" b5.bounds(200, 300, 264, 364) b5.register(self._window) self.__widgets.append(b5) nwidget.listen("IBTN5", callback) b6, a = self.setup() b6.from_column(a.resolve("data", "image_button3.png"), (0, 0, 0.25, 1)) b6.on_click = "IBTN6" b6.bounds(300, 300, 364, 364) b6.register(self._window) self.__widgets.append(b6) nwidget.listen("IBTN6", callback)
def runner(): # Global setup self.__widgets = [] self.enable_blending() # Common event callback def callback(code, button): button.disabled = True # Garish button to demo actions b1, a = self.setup() b1.texture = a.resolve("data", "image_button1.png") b1.texture_over = a.resolve("data", "image_button1.png") b1.texture_down = a.resolve("data", "image_button1.png") b1.texture_disabled = a.resolve("data", "image_button1.png") b1.uv = (0, 0.75, 1, 0.75, 1, 1, 0, 1) b1.uv_over = (0, 0.5, 1, 0.5, 1, 0.75, 0, 0.75) b1.uv_down = (0, 0.25, 1, 0.25, 1, 0.5, 0, 0.5) b1.uv_disabled = (0, 0, 1, 0, 1, 0.25, 0, 0.25) b1.bounds(10, 10, 138, 42) b1.on_click = "IBTN1" b1.register( self._window ) # <--- Notice how you must attach the widget to the pyglet event system self.__widgets.append(b1) nwidget.listen("IBTN1", callback) # Square button test b2, a = self.setup() b2.from_square(a.resolve("data", "image_button2.png")) b2.on_click = "IBTN2" b2.bounds(100, 100, 164, 164) b2.register(self._window) self.__widgets.append(b2) nwidget.listen("IBTN2", callback) # Subtexture button tests b3, a = self.setup() b3.from_square(a.resolve("data", "image_button3.png"), (0.5, 0, 1, 0.5)) b3.on_click = "IBTN3" b3.bounds(10, 300, 72, 364) b3.register(self._window) self.__widgets.append(b3) nwidget.listen("IBTN3", callback) b4, a = self.setup() b4.from_square(a.resolve("data", "image_button3.png"), (0.5, 0, 1, 0.5)) b4.on_click = "IBTN4" b4.bounds(100, 300, 164, 364) b4.register(self._window) self.__widgets.append(b4) nwidget.listen("IBTN4", callback) b4.click() b5, a = self.setup() b5.from_row(a.resolve("data", "image_button3.png"), (0, 0.75, 1, 1)) b5.on_click = "IBTN5" b5.bounds(200, 300, 264, 364) b5.register(self._window) self.__widgets.append(b5) nwidget.listen("IBTN5", callback) b6, a = self.setup() b6.from_column(a.resolve("data", "image_button3.png"), (0, 0, 0.25, 1)) b6.on_click = "IBTN6" b6.bounds(300, 300, 364, 364) b6.register(self._window) self.__widgets.append(b6) nwidget.listen("IBTN6", callback)
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 runner(): a, i = self.setup() a.notNull(i, "Failed to create test instance") self.__widgets = [] panel = i.panel() panel.bounds(10, 10, 150, 390) self.__widgets.append(panel) panel = i.panel() panel.bounds(160, 10, 390, 390) self.__widgets.append(panel) panel = i.panel() panel.bounds(410, 10, 790, 390) self.__widgets.append(panel) button = i.button() button.bounds(20, 315, 140, 345) button.text = "Button Two" button.disabled = True ref = button self.__widgets.append( button ) # <--- Notice the theme transparently invokes register() internally button = i.button() button.bounds(20, 350, 140, 380) button.text = "Enable" button.on_click = "BUTTON_SWAP_STATE" self.__widgets.append(button) boxes = nwidget.VList(padding=10) boxes.bounds(40, 190, 160, 300) boxes.add(i.checkbox(), 10, 10) boxes.add(i.checkbox(), 20, 20) boxes.add(i.checkbox(), 20, 20) boxes.add(i.checkbox(), 30, 30) boxes.item(2).disabled = True self.__widgets.append(boxes) def callback(code, button): if button.text == "Enable": ref.disabled = False boxes.item(2).disabled = False button.text = "Disable" else: ref.disabled = True boxes.item(2).disabled = True button.text = "Enable" nwidget.listen("BUTTON_SWAP_STATE", callback) bars = nwidget.VList(padding=5) bars.bounds(20, 80, 140, 180) bars.add(i.progress()) bars.add(i.progress()) bars.add(i.progress()) bars.add(i.progress()) bars.add(i.progress()) bars.item(0).value = 0 bars.item(1).value = 0.25 bars.item(2).value = 0.5 bars.item(3).value = 0.75 bars.item(4).value = 1 self.__widgets.append(bars) display_box = i.subpanel() display_box.bounds(180, 100, 370, 250) self.__widgets.append(display_box) display = i.text() display.bounds(192, 100, 370, 239) display.text = ": Text goes here!\n: Press enter to see more!" display.keep = 8 self.__widgets.append(display) arrows = nwidget.HList(padding=4) arrows.bounds(25, 40, 140, 65) self.__widgets.append(arrows) a1 = i.arrow_left() a1.on_click = "ARROW_CLICK" arrows.add(a1, width=25) a2 = i.arrow_right() a2.on_click = "ARROW_CLICK" arrows.add(a2, width=25) a3 = i.arrow_up() a3.on_click = "ARROW_CLICK" arrows.add(a3, width=25) a4 = i.arrow_down() a4.on_click = "ARROW_CLICK" arrows.add(a4, width=25) def disable_it(code, widget): widget.disabled = True nwidget.listen("ARROW_CLICK", disable_it) hint = i.hint() hint.bounds(180, 75, 370, 90) hint.text = "Type below and press enter to update text list" self.__widgets.append(hint) textbox = i.textbox() textbox.bounds(180, 30, 370, 70) textbox.text = "Type stuff here..." textbox.on_focus = "TB1_FOCUS" textbox.on_enter = "TB1_SUBMIT" textbox.limit = 20 textbox.multiline = False self.__widgets.append(textbox) def clear_tb(_, widget): widget.text = "" def submit_tb(_, widget): display.append(": " + widget.text) widget.text = "" nwidget.listen("TB1_FOCUS", clear_tb) nwidget.listen("TB1_SUBMIT", submit_tb) header = i.header() header.text = "Light Theme Test" header.bounds(180, 330, 370, 390) self.__widgets.append(header) subheader = i.subheader() subheader.text = "subheading here" subheader.bounds(180, 300, 370, 370) self.__widgets.append(subheader) info = i.text() info.bounds(180, 250, 370, 320) info.text = "Bacon ipsum dolor sit amet turkey shoulder biltong leberkas corned beef turducken hamburger sirloin. Short loin" self.__widgets.append(info) header = i.header() header.text = "Options test" header.bounds(430, 330, 790, 390) self.__widgets.append(header) block = nwidget.VList(padding=10) block.bounds(430, 130, 760, 435) self.__widgets.append(block) label = i.label() label.text = "Value 43:" bar = i.progress() bar.value = 0.34 item = nwidget.HList(padding=25) item.add(label, 150) item.add(bar, height=15) block.add(item, height=25) label = i.label() label.text = "Awesomenesss:" bar = i.progress() bar.value = 1.0 item = nwidget.HList(padding=25) item.add(label, 150) item.add(bar, height=20) block.add(item, -1, 25) label = i.label() label.text = "Anonymous statistics:" box = i.checkbox() box.change() item = nwidget.HList(padding=25) item.add(label, 150) item.add(box, 20, 20) block.add(item, -1, 25) label = i.label() label.text = "Debug mode:" box = i.checkbox() item = nwidget.HList(padding=25) item.add(label, 150) item.add(box, 20, 20) block.add(item, -1, 25) label = i.label() label.text = "More ninjas:" box = i.checkbox() item = nwidget.HList(padding=25) item.add(label, 150) item.add(box, 20, 20) block.add(item, -1, 25) label = i.label() label.text = "Select resolution:" options = i.options({ "LOW": "640 x 480", "MEDIUM": "800 x 600", "HIGH": "1024 x 768", "NORMAL": "1200 x 1600" }) item = nwidget.HList(padding=25) item.add(label, 150) item.add(options, height=32) block.add(item, -1, 25) ok = i.accept() ok.on_click = "ARROW_CLICK" ok.bounds(720, 90, 752, 122) self.__widgets.append(ok) reject = i.reject() reject.on_click = "ARROW_CLICK" reject.bounds(755, 360, 771, 376) self.__widgets.append(reject)
def runner(): self.__widgets = [] self.enable_blending() # Multiline label with edge wrapping i, a = self.setup() i.bounds(50, 110, 250, 210) i.text = "Hello World Thd sf s dfas df sdf dsf adf dsf dsf dsaf dsa fdsaf adsf adsf asdf asdf" i.font = a.resolve("data", "roboto.ttf") i.color = (255, 255, 0, 255) i.size = 10 i.register(self._window) i0 = i self.__widgets.append(i) # Single line label i, a = self.setup() i.bounds(10, 250, 390, 300) i.text = "Hello World" i.font = a.resolve("data", "roboto.ttf") i.color = (30, 30, 30, 255) i.multiline = False i.size = 12 i.limit = 30 i.register(self._window) i.on_change = "TEXT_CHANGE" i1 = i self.__widgets.append(i) def cb(code, widget): print("New text: %s" % widget.text) nwidget.listen("TEXT_CHANGE", cb) # Buttons to control focus b = nwidget.Button(text="Focus") b.bounds(50, 80, 150, 100) b.on_click = "B1" b.register(self._window) def cb(code, button): i0.focus() i1.focus(False) nwidget.listen("B1", cb) self.__widgets.append(b) b = nwidget.Button(text="Focus") b.bounds(10, 310, 110, 340) b.on_click = "B2" b.register(self._window) def cb2(code, button): i1.focus() i0.focus(False) nwidget.listen("B2", cb2) self.__widgets.append(b) # Display bounds for labels set = [] for w in self.__widgets: if isinstance(w, nwidget.TextArea): b = nwidget.Block(solid=True) b.bounds(w.xmin, w.ymin, w.xmax, w.ymax) b.color = (150, 150, 150, 255) set.append(b) for b in set: self.__widgets.insert(0, b)
def runner(): # Global setup self.__widgets = [] self.enable_blending() # Garish button to demo actions b1, a = self.setup() b1.frame = (255, 0, 0, 255) b1.frame_over = (0, 255, 0, 255) b1.frame_down = (0, 0, 255, 255) b1.frame_disabled = (10, 10, 10, 255) b1.font_color = (100, 0, 0, 255) b1.font_over = (0, 100, 0, 255) b1.font_down = (0, 0, 100, 255) b1.font_disabled = (90, 90, 90, 255) b1.text = "Hello World Button" b1.font = a.resolve("data", "roboto.ttf") b1.font_size = 12 b1.on_click = "GARISH_BUTTON" b1.bounds(10, 10, 390, 50) b1.magic = 0 b1.register( self._window ) # <--- Notice how you must attach the widget to the pyglet event system self.__widgets.append(b1) # Callback test on b1 def callback(code, button): button.magic += 1 button.text = "Clicked %d times" % button.magic nwidget.listen("GARISH_BUTTON", callback) # Trigger a few fake clicks nwidget.events.trigger("GARISH_BUTTON", b1) nwidget.events.trigger("GARISH_BUTTON", b1) nwidget.events.trigger("GARISH_BUTTON", b1) nwidget.events.trigger("GARISH_BUTTON", b1) # Garish button to demo disabled b2, a = self.setup() b2.frame = (255, 0, 0, 255) b2.frame_over = (0, 255, 0, 255) b2.frame_down = (0, 0, 255, 255) b2.frame_disabled = (100, 100, 100, 255) b2.font_color = (100, 0, 0, 255) b2.font_over = (0, 100, 0, 255) b2.font_down = (0, 0, 100, 255) b2.font_disabled = (0, 0, 0, 255) b2.text = "Disabled button" b2.font = a.resolve("data", "roboto.ttf") b2.font_size = 10 b2.on_click = "GARISH_BUTTON_2" b2.bounds(50, 50, 200, 80) b2.disabled = True b2.register(self._window) self.__widgets.insert(0, b2) # Normalish button b3, a = self.setup() b3.frame = (205, 205, 205, 255) b3.frame_over = (205, 205, 215, 255) b3.frame_down = (90, 90, 90, 255) b3.font_color = (100, 100, 100, 255) b3.font_over = (100, 100, 100, 255) b3.font_down = (150, 150, 150, 255) b3.text = "Extra wide button content here" b3.font = a.resolve("data", "roboto.ttf") b3.font_size = 12 b3.on_click = "BUTTON_3" b3.bounds(10, 100, 300, 140) b3.register(self._window) self.__widgets.append(b3) for i in range(5): b4, a = self.setup() b4.texture = a.resolve("data", "button.png") b4.texture_over = a.resolve("data", "button_over.png") b4.texture_down = a.resolve("data", "button_down.png") b4.texture_disabled = a.resolve("data", "button_disabled.png") b4.font_color = (100, 0, 0, 255) b4.font_over = (0, 100, 0, 255) b4.font_down = (0, 0, 100, 255) b4.font_disabled = (90, 90, 90, 255) b4.text = "Hello World Button " + str(i) b4.font = a.resolve("data", "roboto.ttf") b4.font_size = 12 b4.on_click = "B4" b4.bounds(10, 200 + i * 40, 390, 200 + i * 40 + 30) b4.register(self._window) self.__widgets.append(b4)
def runner(): # Global setup self.__widgets = [] self.enable_blending() # Garish button to demo actions b1, a = self.setup() b1.frame = (255, 0, 0, 255) b1.frame_over = (0, 255, 0, 255) b1.frame_down = (0, 0, 255, 255) b1.frame_disabled = (10, 10, 10, 255) b1.font_color = (100, 0, 0, 255) b1.font_over = (0, 100, 0, 255) b1.font_down = (0, 0, 100, 255) b1.font_disabled = (90, 90, 90, 255) b1.text = "Hello World Button" b1.font = a.resolve("data", "roboto.ttf") b1.font_size = 12 b1.on_click = "GARISH_BUTTON" b1.bounds(10, 10, 390, 50) b1.magic = 0 b1.register(self._window) # <--- Notice how you must attach the widget to the pyglet event system self.__widgets.append(b1) # Callback test on b1 def callback(code, button): button.magic += 1 button.text = "Clicked %d times" % button.magic nwidget.listen("GARISH_BUTTON", callback) # Trigger a few fake clicks nwidget.events.trigger("GARISH_BUTTON", b1) nwidget.events.trigger("GARISH_BUTTON", b1) nwidget.events.trigger("GARISH_BUTTON", b1) nwidget.events.trigger("GARISH_BUTTON", b1) # Garish button to demo disabled b2, a = self.setup() b2.frame = (255, 0, 0, 255) b2.frame_over = (0, 255, 0, 255) b2.frame_down = (0, 0, 255, 255) b2.frame_disabled = (100, 100, 100, 255) b2.font_color = (100, 0, 0, 255) b2.font_over = (0, 100, 0, 255) b2.font_down = (0, 0, 100, 255) b2.font_disabled = (0, 0, 0, 255) b2.text = "Disabled button" b2.font = a.resolve("data", "roboto.ttf") b2.font_size = 10 b2.on_click = "GARISH_BUTTON_2" b2.bounds(50, 50, 200, 80) b2.disabled = True b2.register(self._window) self.__widgets.insert(0, b2) # Normalish button b3, a = self.setup() b3.frame = (205, 205, 205, 255) b3.frame_over = (205, 205, 215, 255) b3.frame_down = (90, 90, 90, 255) b3.font_color = (100, 100, 100, 255) b3.font_over = (100, 100, 100, 255) b3.font_down = (150, 150, 150, 255) b3.text = "Extra wide button content here" b3.font = a.resolve("data", "roboto.ttf") b3.font_size = 12 b3.on_click = "BUTTON_3" b3.bounds(10, 100, 300, 140) b3.register(self._window) self.__widgets.append(b3) for i in range(5): b4, a = self.setup() b4.texture = a.resolve("data", "button.png") b4.texture_over = a.resolve("data", "button_over.png") b4.texture_down = a.resolve("data", "button_down.png") b4.texture_disabled = a.resolve("data", "button_disabled.png") b4.font_color = (100, 0, 0, 255) b4.font_over = (0, 100, 0, 255) b4.font_down = (0, 0, 100, 255) b4.font_disabled = (90, 90, 90, 255) b4.text = "Hello World Button " + str(i) b4.font = a.resolve("data", "roboto.ttf") b4.font_size = 12 b4.on_click = "B4" b4.bounds(10, 200 + i * 40, 390, 200 + i * 40 + 30) b4.register(self._window) self.__widgets.append(b4)
def runner(): a, i = self.setup() a.notNull(i, "Failed to create test instance") self.__widgets = [] panel = i.panel() panel.bounds(10, 10, 150, 390) self.__widgets.append(panel) panel = i.panel() panel.bounds(160, 10, 390, 390) self.__widgets.append(panel) panel = i.panel() panel.bounds(410, 10, 790, 390) self.__widgets.append(panel) button = i.button() button.bounds(20, 315, 140, 345) button.text = "Button Two" button.disabled = True ref = button self.__widgets.append(button) # <--- Notice the theme transparently invokes register() internally button = i.button() button.bounds(20, 350, 140, 380) button.text = "Enable" button.on_click = "BUTTON_SWAP_STATE" self.__widgets.append(button) boxes = nwidget.VList(padding=10) boxes.bounds(40, 190, 160, 300) boxes.add(i.checkbox(), 10, 10) boxes.add(i.checkbox(), 20, 20) boxes.add(i.checkbox(), 20, 20) boxes.add(i.checkbox(), 30, 30) boxes.item(0).disabled = True self.__widgets.append(boxes) def callback(code, button): if button.text == "Enable": ref.disabled = False boxes.item(0).disabled = False button.text = "Disable" else: ref.disabled = True boxes.item(0).disabled = True button.text = "Enable" nwidget.listen("BUTTON_SWAP_STATE", callback) bars = nwidget.VList(padding=5) bars.bounds(20, 80, 140, 180) bars.add(i.progress()) bars.add(i.progress()) bars.add(i.progress()) bars.add(i.progress()) bars.add(i.progress()) bars.item(0).value = 0 bars.item(1).value = 0.25 bars.item(2).value = 0.5 bars.item(3).value = 0.75 bars.item(4).value = 1 self.__widgets.append(bars) display_box = i.subpanel() display_box.bounds(170, 100, 380, 250) self.__widgets.append(display_box) display = i.text() display.bounds(183, 100, 370, 235) display.text = ": Text goes here!\n: Press enter to see more!" display.color = (0, 0, 0, 255) display.keep = 8 self.__widgets.append(display) arrows = nwidget.HList(padding=4) arrows.bounds(25, 40, 140, 65) self.__widgets.append(arrows) a1 = i.arrow_left() a1.on_click = "ARROW_CLICK" arrows.add(a1, width=25) a2 = i.arrow_right() a2.on_click = "ARROW_CLICK" arrows.add(a2, width=25) a3 = i.arrow_up() a3.on_click = "ARROW_CLICK" arrows.add(a3, width=25) a4 = i.arrow_down() a4.on_click = "ARROW_CLICK" arrows.add(a4, width=25) def disable_it(code, widget): widget.disabled = True nwidget.listen("ARROW_CLICK", disable_it) hint = i.hint() hint.bounds(180, 75, 370, 90) hint.text = "Type below and press enter to update text list" self.__widgets.append(hint) textbox = i.textbox() textbox.bounds(180, 30, 370, 70) textbox.text = "Type stuff here..." textbox.on_focus = "TB1_FOCUS" textbox.on_enter = "TB1_SUBMIT" textbox.limit = 20 textbox.multiline = False self.__widgets.append(textbox) def clear_tb(_, widget): widget.text = "" def submit_tb(_, widget): display.append(": " + widget.text) widget.text = "" nwidget.listen("TB1_FOCUS", clear_tb) nwidget.listen("TB1_SUBMIT", submit_tb) header = i.header() header.text = "Light Theme Test" header.bounds(180, 330, 370, 390) self.__widgets.append(header) subheader = i.subheader() subheader.text = "subheading here" subheader.bounds(180, 300, 370, 370) self.__widgets.append(subheader) info = i.text() info.bounds(180, 250, 370, 320) info.text = "Bacon ipsum dolor sit amet turkey shoulder biltong leberkas corned beef turducken hamburger sirloin. Short loin" self.__widgets.append(info) header = i.header() header.text = "Options test" header.bounds(430, 330, 790, 390) self.__widgets.append(header) block = nwidget.VList(padding=10) block.bounds(430, 130, 760, 435) self.__widgets.append(block) label = i.label() label.text = "Value 43:" bar = i.progress() bar.value = 0.34 item = nwidget.HList(padding=25) item.add(label, 150) item.add(bar, height=15) block.add(item, height=25) label = i.label() label.text = "Awesomenesss:" bar = i.progress() bar.value = 1.0 item = nwidget.HList(padding=25) item.add(label, 150) item.add(bar, height=20) block.add(item, -1, 25) label = i.label() label.text = "Anonymous statistics:" box = i.checkbox() box.change() item = nwidget.HList(padding=25) item.add(label, 150) item.add(box, 20, 20) block.add(item, -1, 25) label = i.label() label.text = "Debug mode:" box = i.checkbox() item = nwidget.HList(padding=25) item.add(label, 150) item.add(box, 20, 20) block.add(item, -1, 25) label = i.label() label.text = "More ninjas:" box = i.checkbox() item = nwidget.HList(padding=25) item.add(label, 150) item.add(box, 20, 20) block.add(item, -1, 25) label = i.label() label.text = "Select resolution:" options = i.options({"LOW": "640 x 480", "MEDIUM": "800 x 600", "HIGH": "1024 x 768", "NORMAL": "1200 x 1600"}) item = nwidget.HList(padding=25) item.add(label, 150) item.add(options) block.add(item, -1, 25) ok = i.accept() ok.on_click = "ARROW_CLICK" ok.bounds(720, 90, 752, 122) self.__widgets.append(ok) reject = i.reject() reject.on_click = "ARROW_CLICK" reject.bounds(755, 360, 775, 380) self.__widgets.append(reject)