Files
PlantAI-dev/tools/pymol-open-source/modules/pymol/wizard/__init__.py
T
2026-08-03 18:42:47 +08:00

96 lines
2.3 KiB
Python

from pymol import cmd
class Wizard:
event_mask_pick = 1
event_mask_select = 2
event_mask_key = 4
event_mask_special = 8
event_mask_scene = 16 # scene changed
event_mask_state = 32 # state changed
event_mask_frame = 64 # frame changed
event_mask_dirty = 128 # anything changed (BEWARE FEEDBACK!)
event_mask_view = 256 # view (matrix) changed
event_mask_position = 512 # center of the view changed
def migrate_session(self, version):
'''A derived class might convert the pickled state from
an older version here.'''
pass
def __init__(self,_self=cmd):
self.menu = {}
self.prompt = None
self.panel = None
self.cmd = _self
self._validate_instance()
def __getstate__(self):
d = self.__dict__.copy()
d.pop('cmd', None)
return d
def __reduce__(self):
# for loading Python 3 (new-style class) pickle with Python 2
return (self.__class__, (), self.__getstate__())
def _validate_instance(self):
_pymol = self.cmd._pymol
if not hasattr(_pymol.session, 'wizard_storage'):
_pymol.session.wizard_storage = {}
wizard_storage = _pymol.session.wizard_storage
class_key = str(self.__class__)
self.session = wizard_storage.get(class_key,{})
# create a dictionary for per-class storage in session
if not self.session:
wizard_storage[class_key] = self.session
def get_prompt(self):
return self.prompt
def get_panel(self):
return self.panel
def get_event_mask(self):
return Wizard.event_mask_pick + Wizard.event_mask_select
def do_scene(self):
return None
def do_view(self):
return None
def do_position(self):
return None
def do_state(self,state):
return None
def do_frame(self,frame):
return None
def do_dirty(self):
return None
def do_pick(self,bondFlag):
return None
def do_select(self,name):
return None
def do_key(self,k,x,y,mod):
return None
def do_special(self,k,x,y,mod):
return None
def cleanup(self):
pass
def get_menu(self,tag):
result = None
if tag in self.menu:
result = self.menu[tag]
return result