예제 #1
0
        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)
예제 #2
0
 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
예제 #3
0
        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)
예제 #4
0
 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)
예제 #5
0
        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)
예제 #6
0
    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"))
예제 #7
0
        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)
예제 #9
0
 def setup(self):
     return nwidget.TextArea(), nwidget.Assets()
예제 #10
0
 def setup(self):
     return nwidget.Partial(), nwidget.Assets()
예제 #11
0
 def setup(self):
   return nwidget.Label(), nwidget.Assets()
예제 #12
0
 def assets(cls):
     try:
         rtn = cls.__assets
     except:
         cls.__assets = nwidget.Assets()
     return cls.__assets
예제 #13
0
 def setup(self):
     return nwidget.Toggle(), nwidget.Assets()
예제 #14
0
 def setup(self):
     instance = Factory()
     return Assert(), nwidget.Assets(), instance
예제 #15
0
 def setup(self):
   return nwidget.Textbox(), nwidget.Assets()
예제 #16
0
 def setup(self):
   return nwidget.Image(), nwidget.Assets()
예제 #17
0
 def setup(self):
     self.enable_blending()
     assets = nwidget.Assets()
     path = assets.resolve("..", "..", "assets", "theme", "gothic")
     return Assert(), nwidget.theme.Gothic(path, self._window)
예제 #18
0
 def setup(self):
     return nwidget.Panel(), nwidget.Assets()
예제 #19
0
 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
예제 #20
0
        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)
예제 #21
0
 def menu():
     assets = nwidget.Assets()
     layer = views.MainView(assets)
     scene = cocos.scene.Scene(layer)
     cocos.director.director.run(scene)
예제 #22
0
 def setup(self):
     return nwidget.Button(), nwidget.Assets()
예제 #23
0
 def play():
     assets = nwidget.Assets()
     layer = views.GameView(assets)
     scene = cocos.scene.Scene(layer)
     cocos.director.director.run(scene)
예제 #24
0
 def credits():
     assets = nwidget.Assets()
     layer = views.CreditsView(assets)
     scene = cocos.scene.Scene(layer)
     cocos.director.director.run(scene)
예제 #25
0
 def __init__(self, assets):
     super(GameView, self).__init__()
     self.assets = nwidget.Assets()
     self.load_objects()
     pyglet.clock.schedule_interval(self.update, 0.03)