예제 #1
0
파일: mousebind.py 프로젝트: sahwar/pyndow
def register(section, self, winid):
    assert section in mousebinds

    for (bindtype, bindkey) in mousebinds[section]:
        opt = mousebinds[section][(bindtype, bindkey)]

        if bindtype == 'drag':
            events.register_drag(eval(opt['start']), eval(opt['drag']),
                                eval(opt['end']), winid, bindkey,
                                propagate=opt['propagate'], grab=opt['grab'])
        elif bindtype == 'click':
            events.register_buttonpress(eval(opt['action']), winid, bindkey,
                                       propagate=opt['propagate'],
                                       grab=opt['grab'])
        elif bindtype == 'unclick':
            events.register_buttonrelease(eval(opt['action']), winid, bindkey,
                                         propagate=opt['propagate'],
                                         grab=opt['grab'])
        else:
            assert False, '"%s" is not a valid mouse binding type' % bindtype
예제 #2
0
    def __init__(self, *_):
        _FrameWindow.__init__(self)

        self._imgs = dict([(st, None) for st in self.frame.allowed_states])

        self._img_w = self._img_h = None

        self.pos = {
            'x': self.frame.pos[self.frm_ident]['x'],
            'y': self.frame.pos[self.frm_ident]['y'],
            'width': self.frame.pos[self.frm_ident]['width'],
            'height': self.frame.pos[self.frm_ident]['height']
        }

        events.register_drag(self.frame.client.cb_move_start,
                             self.frame.client.cb_move_drag,
                             self.frame.client.cb_move_end,
                             self.id,
                             'Mod4-1',
                             grab=False)
        events.register_drag(partial(self.frame.client.cb_resize_start,
                                     direction=self.direction),
                             self.frame.client.cb_resize_drag,
                             self.frame.client.cb_resize_end,
                             self.id,
                             '1',
                             grab=False)

        # If this is a corner, then make sure normal resizing uses the
        # appropriate direction.
        if self.frm_ident.find('side') == -1:
            rs_start = partial(self.frame.client.cb_resize_start,
                               direction=self.direction)
        else:
            rs_start = self.frame.client.cb_resize_start

        events.register_drag(rs_start,
                             self.frame.client.cb_resize_drag,
                             self.frame.client.cb_resize_end,
                             self.id,
                             'Mod4-3',
                             grab=False)

        self.setup()
        self.map()
예제 #3
0
    def __init__(self, *_):
        _FrameWindow.__init__(self)

        self._imgs = dict([(st, None) for st in self.frame.allowed_states])

        self._img_w = self._img_h = None

        self.pos = {'x': self.frame.pos[self.frm_ident]['x'],
                    'y': self.frame.pos[self.frm_ident]['y'],
                    'width': self.frame.pos[self.frm_ident]['width'],
                    'height': self.frame.pos[self.frm_ident]['height']}

        events.register_drag(self.frame.client.cb_move_start,
                             self.frame.client.cb_move_drag,
                             self.frame.client.cb_move_end,
                             self.id, 'Mod4-1', grab=False)
        events.register_drag(partial(self.frame.client.cb_resize_start,
                                     direction=self.direction),
                             self.frame.client.cb_resize_drag,
                             self.frame.client.cb_resize_end,
                             self.id, '1', grab=False)

        # If this is a corner, then make sure normal resizing uses the
        # appropriate direction.
        if self.frm_ident.find('side') == -1:
            rs_start = partial(self.frame.client.cb_resize_start,
                               direction=self.direction)
        else:
            rs_start = self.frame.client.cb_resize_start

        events.register_drag(rs_start,
                             self.frame.client.cb_resize_drag,
                             self.frame.client.cb_resize_end,
                             self.id, 'Mod4-3', grab=False)

        self.setup()
        self.map()