示例#1
0
    def edit_mode(active=1,quiet=1,_self=cmd):
        '''
DESCRIPTION

    "edit_mode" switches the mouse into editing mode, if such a mode
    is available in the current mouse ring.
    
    '''
        # legacy function
        if is_string(active):
            active=boolean_dict[boolean_sc.auto_err(active,'active')]
        active = int(active)
        if len(mouse_ring):
            bm = int(_cmd.get_setting(_self._COb,"button_mode"))
            mouse_mode = mouse_ring[bm]
            if active:
                if mouse_mode[0:10]=='two_button':
                    if mouse_mode!='two_button_editing':
                        mouse(action='two_button_editing',quiet=quiet,_self=_self)
                elif mouse_mode[0:12] == 'three_button':
                    if mouse_mode!='three_button_editing':
                        mouse(action='three_button_editing',quiet=quiet,_self=_self)
            else:
                if mouse_mode[0:10]=='two_button':
                    if mouse_mode!='two_button_viewing':               
                        mouse(action='two_button_viewing',quiet=quiet,_self=_self)
                elif mouse_mode[0:12] == 'three_button':
                    if mouse_mode!='three_button_viewing':
                        mouse(action='three_button_viewing',quiet=quiet,_self=_self)
        return DEFAULT_SUCCESS
示例#2
0
    def edit_mode(active=1, quiet=1, _self=cmd):
        '''
DESCRIPTION

    "edit_mode" switches the mouse into editing mode, if such a mode
    is available in the current mouse ring.
    
    '''
        # legacy function
        if is_string(active):
            active = boolean_dict[boolean_sc.auto_err(active, 'active')]
        active = int(active)
        if len(mouse_ring):
            bm = int(_cmd.get_setting(_self._COb, "button_mode"))
            mouse_mode = mouse_ring[bm]
            if active:
                if mouse_mode[0:10] == 'two_button':
                    if mouse_mode != 'two_button_editing':
                        mouse(action='two_button_editing',
                              quiet=quiet,
                              _self=_self)
                elif mouse_mode[0:12] == 'three_button':
                    if mouse_mode != 'three_button_editing':
                        mouse(action='three_button_editing',
                              quiet=quiet,
                              _self=_self)
            else:
                if mouse_mode[0:10] == 'two_button':
                    if mouse_mode != 'two_button_viewing':
                        mouse(action='two_button_viewing',
                              quiet=quiet,
                              _self=_self)
                elif mouse_mode[0:12] == 'three_button':
                    if mouse_mode != 'three_button_viewing':
                        mouse(action='three_button_viewing',
                              quiet=quiet,
                              _self=_self)
        return DEFAULT_SUCCESS
示例#3
0
    def mouse(action=None, quiet=1, _self=cmd):  # INTERNAL
        '''
DESCRIPTION

    "mouse" cycles through the mouse modes defined in the current
    mouse configuration ring.

USAGE

    mouse 

'''
        # NOTE: PyMOL automatically runs this routine upon start-up
        r = DEFAULT_ERROR
        try:
            _self.lock(_self)

            if action == 'forward':
                bm = _cmd.get_setting(_self._COb, "button_mode")
                bm = (int(bm) + 1) % len(mouse_ring)
                _self.set("button_mode", str(bm), quiet=1)
                action = None
            elif action == 'backward':
                bm = _cmd.get_setting(_self._COb, "button_mode")
                bm = (int(bm) - 1) % len(mouse_ring)
                _self.set("button_mode", str(bm), quiet=1)
                action = None
            elif action == 'select_forward':
                sm = _cmd.get_setting(_self._COb, "mouse_selection_mode")
                sm = sm + 1
                if sm > 6: sm = 0
                _self.set("mouse_selection_mode", sm, quiet=1)
            elif action == 'select_backward':
                sm = _cmd.get_setting(_self._COb, "mouse_selection_mode")
                sm = sm - 1
                if sm < 0: sm = 6
                _self.set("mouse_selection_mode", sm, quiet=1)

            mode_list = None
            if action == None:
                bm = int(_cmd.get_setting(_self._COb, "button_mode"))
                if bm >= 0:
                    bm = bm % len(mouse_ring)
                    mode = mouse_ring[bm]
                    _self.set("button_mode_name",
                              mode_name_dict.get(mode, mode))
                    mode_list = mode_dict[mode]
                else:
                    bm = (-1 - bm) % len(mode_name_list)
                    mode = mode_name_list[bm]
                    _self.set("button_mode_name",
                              mode_name_dict.get(mode, mode))
                    mode_list = mode_dict[mode]
            elif action in mouse_ring:
                mode = action
                _self.set("button_mode_name", mode_name_dict.get(mode, mode))
                bm = mouse_ring.index(mode)
                _self.set("button_mode", bm)
                mode_list = mode_dict[mode]
            elif mode_dict.has_key(action):
                mode = action
                _self.set("button_mode_name", mode_name_dict.get(mode, mode))
                bm = -1 - mode_name_list.index(action)
                _self.set("button_mode", bm)
                mode_list = mode_dict[mode]
            if mode_list != None:
                kw_dict = {'_self': _self}
                for a in mode_list:
                    apply(button, a, kw_dict)
                if not quiet:
                    print " mouse: %s" % mode
                if mode[-7:] != 'editing': _self.unpick()
                if mode[-7:] == 'editing': _self.deselect()
            r = DEFAULT_SUCCESS
        finally:
            _self.unlock(r, _self)
        if _self._raising(r, _self): raise pymol.CmdException
        return r
示例#4
0
    def mouse(action=None, quiet=1, _self=cmd):# INTERNAL

        '''
DESCRIPTION

    "mouse" cycles through the mouse modes defined in the current
    mouse configuration ring.

USAGE

    mouse 

'''
        # NOTE: PyMOL automatically runs this routine upon start-up
        r = DEFAULT_ERROR
        try:
            _self.lock(_self)

            if action=='forward':
                bm = _cmd.get_setting(_self._COb,"button_mode")
                bm = (int(bm) + 1) % len(mouse_ring)
                _self.set("button_mode",str(bm),quiet=1)
                action=None
            elif action=='backward':
                bm = _cmd.get_setting(_self._COb,"button_mode")
                bm = (int(bm) - 1) % len(mouse_ring)
                _self.set("button_mode",str(bm),quiet=1)
                action=None
            elif action=='select_forward':
                sm = _cmd.get_setting(_self._COb,"mouse_selection_mode")
                sm = sm + 1
                if sm>6: sm = 0
                _self.set("mouse_selection_mode",sm,quiet=1)
            elif action=='select_backward':
                sm = _cmd.get_setting(_self._COb,"mouse_selection_mode")
                sm = sm - 1
                if sm<0: sm = 6
                _self.set("mouse_selection_mode",sm,quiet=1)
            
            mode_list = None
            if action==None:
                bm = int(_cmd.get_setting(_self._COb,"button_mode"))
                if bm>=0:
                    bm = bm % len(mouse_ring)
                    mode = mouse_ring[bm]
                    _self.set("button_mode_name",mode_name_dict.get(mode,mode))
                    mode_list = mode_dict[mode]
                else:
                    bm = (-1-bm) % len(mode_name_list)
                    mode = mode_name_list[bm]
                    _self.set("button_mode_name",mode_name_dict.get(mode,mode))
                    mode_list = mode_dict[mode]                    
            elif action in mouse_ring:
                mode = action
                _self.set("button_mode_name",mode_name_dict.get(mode,mode))
                bm = mouse_ring.index(mode)
                _self.set("button_mode",bm)
                mode_list = mode_dict[mode]
            elif mode_dict.has_key(action):
                mode = action
                _self.set("button_mode_name",mode_name_dict.get(mode,mode))
                bm = -1 - mode_name_list.index(action)
                _self.set("button_mode",bm)
                mode_list = mode_dict[mode]
            if mode_list!=None:
                kw_dict = {'_self':_self}
                for a in mode_list:
                    apply(button,a,kw_dict)
                if not quiet:
                    print " mouse: %s"%mode
                if mode[-7:]!='editing': _self.unpick()
                if mode[-7:]=='editing': _self.deselect()
            r = DEFAULT_SUCCESS
        finally:
            _self.unlock(r,_self)
        if _self._raising(r,_self): raise pymol.CmdException                     
        return r