コード例 #1
0
    def __init__(self, block_proxy):
        self.block = block_proxy.get()
        self.ellipsis = make_label(style.ellipsis, '...', True)

        self.statement_box = VBox(CacheMap(StatementWidgetMaker.make, self.block.statements),
                                  relay_focus=True)
        self.proxy_widget = ProxyWidget(ValueContainer(self.statement_box))

        VBox.__init__(self, List([
            make_label(style.braces, '{'),
            indented(self.proxy_widget),
            make_label(style.braces, '}'),
        ]))
        self.info_shower = InfoShower(self.ellipsis.focus_keymap.obs_activation)
        self.info_shower.info_widget = self.statement_box

        self.keymap.register_key(
            self.insert_statement_key,
            Keymap.keydown_noarg(self._insert_statement)
        )
        self.keymap.register_key(
            self.append_statement_key,
            Keymap.keydown_noarg(self._append_statement)
        )

        self.block.statements.obs_list.add_observer(self, '_statement_list_')
        self._update_delete_registration()
        self._update_fold_state()
コード例 #2
0
    def __init__(self, widget):
        self.main_stack = StackWidget()
        self.main_stack.push(widget)


        from loop import loop
        keys_reflection_widget = KeysReflectionWidget(loop.global_keymap,
                                                      style.key_name,
                                                      style.keydoc_name)
        keys_reflection_widget.bg_color = (20,20,50)

        self.info_list = List([keys_reflection_widget])
        info_box = HBox(self.info_list)
        info_box.selectable.set(False)
        info_box.bg_color = (20,50,20)

        VBox.__init__(self, List([
            self.main_stack,
            SpacerWidget((10, 0)),
            info_box,
        ]), relay_focus=True)

        register_key = self.keymap.register_key
        register_key(self.offset_right_key, Keymap.keydown_noarg(self._offset_right))
        register_key(self.offset_left_key, Keymap.keydown_noarg(self._offset_left))
        register_key(self.offset_up_key, Keymap.keydown_noarg(self._offset_down))
        register_key(self.offset_down_key, Keymap.keydown_noarg(self._offset_up))
コード例 #3
0
    def __init__(self, function_proxy):
        self.function_proxy = function_proxy
        self.function = function_proxy.get()

        VBox.__init__(self, List([
            TypeWidgetMaker.make(self.function.type, self.function_proxy),
            NormalWidgetMaker.make(self.function.block),
        ]))
コード例 #4
0
    def __init__(self, module_proxy):
        self.module = module_proxy.get()
        self.func_box = VBox(CacheMap(NormalWidgetMaker.make, self.module.declarations),
                             relay_focus=True)
        VBox.__init__(self, List([
            make_label(style.module_name, loop.namer.get_name(self.module)),
            self.func_box,
        ]))

        self.keymap.register_key(
            self.add_func_key,
            Keymap.keydown_noarg(self._add_func)
        )
コード例 #5
0
    def __init__(self, node_proxy):
        self.node_proxy = node_proxy
        self.node = node_proxy.get()

        cond_part = HBox(List([
            make_label(style.while_, 'while'),
            make_label(style.paren, '('),
            NormalWidgetMaker.make(self.node.expr),
            make_label(style.paren, ')'),
        ]), relay_focus=True)
        cond_part.is_centered = True

        VBox.__init__(self, List([
            cond_part,
            NormalWidgetMaker.make(self.node.block),
        ]))

        self.focus_keymap.register_key(
            self.convert_to_if_key,
            Keymap.keydown_noarg(self._convert_to_if)
        )
コード例 #6
0
ファイル: EnumWidget.py プロジェクト: SapphireDensetsu/enough
    def __init__(self, enum_proxy, emphasize_value=None):
        self.enum = enum_proxy.get()

        self._comma = make_label(style.comma, ',')
        values_box = VBox(List([
            self._value_widget(value_proxy, index!=len(self.enum.values)-1,
                               emphasize_value)
            for index, value_proxy in enumerate(self.enum.values)
        ]))

        VBox.__init__(self, List([
            HBox(List([
                make_label(style.enum, 'enum'),
                make_label(style.space, ' '),
                make_label(style.type_, loop.namer.get_name(self.enum)),
            ]), relay_focus=True),
            make_label(style.braces, '{'),
            indented(values_box),
            HBox(List([
                make_label(style.braces, '}'),
                make_label(style.semicolon, ';'),
            ]), relay_focus=True)
        ]))