コード例 #1
0
    def view_actor(self, parent, actor, **kargs):
        ret = gui.Button(parent, item=actor, holdable=1000, **kargs)
        hbox = gui.Box(ret, axis=0, border=0, spacing=0)
        if actor.item.icon:
            icon_path = actor.item.path(actor.item.icon)
            icon = tichy.Image(icon_path, size=Vect(96, 96)).view(hbox)
        else:
            gui.Widget(hbox, min_size=Vect(0, 96))
        text_box = gui.Box(hbox, axis=1, border=0, spacing=0)
        actor.item.get_text().view(text_box)
        sub_text = actor.get_sub_text()
        if sub_text:
            sub_text.view(text_box)

        def on_clicked(b, actor, self):
            self.select_actor(actor, b)

        ret.connect('clicked', on_clicked, actor, self)

        def on_holded(b, actor, self):
            self.select_actor(actor, b, use_default=False)

        ret.connect('holded', on_holded, actor, self)

        return ret
コード例 #2
0
 def __init__(self, parent, actor, **kargs):
     assert isinstance(actor, tichy.Actor)
     super(ActorView, self).__init__(parent, item=actor, tags=['grid-item'])
     box = gui.Box(self, axis=1, spacing=0, border=0)
     icon_frame = gui.Frame(box, border=0)
     if actor.item.icon:
         icon_path = actor.item.path(actor.item.icon)
         icon = tichy.Image(icon_path, size=Vect(96, 96)).view(icon_frame)
     else:
         gui.Widget(icon_frame, min_size=Vect(96, 96))
     actor.get_text().view(box)
コード例 #3
0
 def view(self, parent, same_as=None):
     size = Vect(self.rect[2] * 64, self.rect[3] * 64)
     pos = Vect(self.rect[0] * 64, self.rect[1] * 64)
     ret = gui.Button(parent, item=self, min_size=size, optimal_size=size,
                      pos=pos, same_as=same_as)
     # If we provided a widget for optimization, then we can also
     # use the widget child for next view
     if same_as is not None:
         same_as = same_as.children[0]
     gui.Label(ret, self.text, min_size=size, optimal_size=size,
               same_as=same_as)
     return ret
コード例 #4
0
 def __init__(self, parent, actors, **args):
     super(Wheel, self).__init__(parent, min_size=Vect(480, 480))
     box = gui.Fixed(self, min_size=Vect(480, 480))
     self.wheel = tichy.Image(WheelDesign.path('wheel.png'),
                              Vect(480, 288)).view(box)
     self.actors = []
     for i, actor in enumerate(actors):
         label = actor.get_text().view(box)
         self.actors.append(label)
     self.radius = 200
     self.center = Vect(self.radius, 0)
     self.angle = pi
コード例 #5
0
    def run(self, parent):
        self.window = gui.Window(parent, modal=True)
        vbox = gui.Box(self.window, axis=1, border=0, spacing=0)
        self.lock_widget = ScreenLockWidget(vbox, Vect(480, 560))

        size = Vect(42, 42)
        gui.Label(vbox,
                  '       Trace the pattern to unlock',
                  min_size=size,
                  optimal_size=size)

        yield tichy.Wait(self.lock_widget, 'unlocked-screen')
        self.window.destroy()
コード例 #6
0
 def __set_angle(self, value):
     self.__angle = value
     r = self.radius
     for i, actor in enumerate(self.actors):
         angle = value + i * pi / 5
         actor.pos = Vect(int(r * cos(angle)),
                          -int(r * sin(angle))) + self.center
コード例 #7
0
 def __init__(self, parent, preview=None, item=None,
              min_size=Vect(64 * 7, 64 * 5), **kargs):
     super(KeyboardWidget, self).__init__(parent, item=item,
                                          min_size=min_size, **kargs)
     self.keys = []
     self.preview = preview
     self.update_layout(self.item.layout)
     self.item.connect('layout-changed', self.on_keyboard_update_layout)
コード例 #8
0
    def view(self, parent):
        ### should I use actor?
        displayButton = gui.Button(parent)
        displayButtonBox = gui.Box(displayButton, axis=0)
        tichy.Image(self.get_icon_path(), size=Vect(96,
                                                    96)).view(displayButtonBox)
        tichy.Text(self.name).view(displayButtonBox)

        self.button = displayButton
        self.button.connect('clicked', self.on_click)
        return self.button
コード例 #9
0
    def run(self, window):
        frame = self.view(window, back_button=True)

        vbox = gui.Box(frame, axis=1)

        actor = frame.actor
        edit_item = actor.new_action('Edit')
        load_item = edit_item.new_action('Load')
        load_item.connect('activated', self.on_load)
        save_item = edit_item.new_action('Save')
        save_item.connect('activated', self.on_save)
        edit_item.new_action('Clear').connect('activated', self.on_clear)

        colors_item = actor.new_action('Color')

        def on_color(action, item, w, color):
            self.draw_widget.color = color

        for c, name in [((255, 0, 0), 'red'), ((0, 255, 0), 'green'),
                        ((0, 0, 255), 'blue'), ((255, 255, 255), 'white')]:
            color_item = colors_item.new_action(name)
            color_item.connect('activated', on_color, c)

        sizes_item = actor.new_action('Size')

        def on_size(action, item, w, size):
            self.draw_widget.radius = size

        for s in [2, 4, 8, 16]:
            size_item = sizes_item.new_action(str(s))
            size_item.connect('activated', on_size, s)

        def on_about(action, item, w):
            yield tichy.Dialog(self.window, "About", "Just a test")

        about_item = actor.new_action('About')
        about_item.connect('activated', on_about)

        self.draw_widget = DrawingWidget(vbox, Vect(480, 480))

        gui.Spring(vbox, axis=1)

        yield tichy.Wait(frame, 'back')
コード例 #10
0
 def view(self, parent, item=None, **kargs):
     ret = gui.Box(parent, axis=1, border=0, spacing=0)
     preview = tichy.Text('')
     preview.view(ret, optimal_size=Vect(128, 64), min_size=Vect(128, 64))
     KeyboardWidget(ret, item=self, preview=preview, **kargs)
     return ret
コード例 #11
0
 def view_actor_list(self, parent, actors, **kargs):
     return Wheel(parent, actors, min_size=Vect(480, 480))