示例#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))
    def __init__(self, literal):
        LiteralWidget.__init__(self, literal)
        self.keymap.register_key(self.hex_mode_key, Keymap.keydown_noarg(self._set_hex_mode))
        self.keymap.register_key(self.dec_mode_key, Keymap.keydown_noarg(self._set_dec_mode))
        self.keymap.register_key(self.oct_mode_key, Keymap.keydown_noarg(self._set_oct_mode))

        self.text_edit.editing_keymap.register_key(
            self.negate_key,
            Keymap.keydown_noarg(self._negate)
        )
        self._set_mode(self.literal.meta.get('mode', self._default_mode))
示例#4
0
 def _update_fold_state(self):
     if self._is_folded():
         for key in self.plus_keys:
             self.keymap.register_key(key, Keymap.keydown_noarg(self._unfold))
         for key in self.minus_keys:
             self.keymap.unregister_key(key)
         widget = self.ellipsis
     else:
         for key in self.minus_keys:
             self.keymap.register_key(key, Keymap.keydown_noarg(self._fold))
         for key in self.plus_keys:
             self.keymap.unregister_key(key)
         widget = self.statement_box
     self.proxy_widget.value_proxy.set(widget)
示例#5
0
 def _update_delete_registration(self):
     if self.block.statements:
         self.statement_box.keymap.register_key(
             self.kill_stmt_key,
             Keymap.keydown_noarg(self._delete_selected_child)
         )
     else:
         self.statement_box.keymap.unregister_key(
             self.kill_stmt_key)
示例#6
0
 def _update_next_prev_keys(self):
     for selectability, key, func in [
         (self._right_selectable, self.right_key, self._right),
         (self._left_selectable, self.left_key, self._left),
         (self._up_selectable, self.up_key, self._up),
         (self._down_selectable, self.down_key, self._down),
     ]:
         if selectability():
             self.parenting_keymap.register_key(key, Keymap.keydown_noarg(func))
         else:
             self.parenting_keymap.unregister_key(key)
示例#7
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)
        )
示例#8
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)
        )
示例#9
0
 def _allow_leave_child(self):
     self.parenting_keymap.register_key(
         self.leave_child_key,
         Keymap.keydown_noarg(self._leave_child)
     )
示例#10
0
 def _allow_enter_child(self):
     self.focus_keymap.register_key(
         self.enter_child_key,
         Keymap.keydown_noarg(self._enter_child)
     )
示例#11
0
文件: loop.py 项目: krfkeith/enough
 def __init__(self):
     self.global_keymap = Keymap.Keymap()
     self.global_keymap.register_key(self.quit_key, Keymap.keydown_noarg(self._quit))