def build_radial_copy(self,parent,direction = None): _r = mUI.MelMenuItem(parent,subMenu = True, en = self._b_sel_pair, l = 'Copy', #c = lambda *a:buttonAction(tdToolsLib.doPointSnap()), rp = direction) if not self._b_sel_pair: return #--------------------------------------------------------------------------- mUI.MelMenuItem(_r, en = self._b_sel_pair, l = 'Rotate Pivot', #c = lambda *a:buttonAction(tdToolsLib.doPointSnap()), c = mUI.Callback(self.bc_copy_pivot,True, False,'Rotate Pivot'), rp = "W") mUI.MelMenuItem(_r, en = self._b_sel_pair, l = 'Scale Pivot', #c = lambda *a:buttonAction(tdToolsLib.doPointSnap()), c = mUI.Callback(self.bc_copy_pivot,False, True,'Scale Pivot'), rp = "SW") mUI.MelMenuItem(_r, en = False, l = 'Orientation', #c = lambda *a:buttonAction(tdToolsLib.doPointSnap()), #c = mUI.Callback(self.button_action_per_sel,locators.locMeObject,'Locator'), rp = "NW")
def build_menu(self, parent): self._d_radial_menu = {} self._l_res = [] self._l_sel = mc.ls(sl=True) self._b_sel = False if self._l_sel:self._b_sel = True self._b_sel_pair = False if len(self._l_sel) >= 2: self._b_sel_pair = True log.info("{0} >> build_menu".format(self._str_MM)) #mc.setParent(self) mUI.MelMenuItem(parent,l = 'ButtonAction...', c = mUI.Callback(self.button_action,None)) #mc.menu(parent,e = True, deleteAllItems = True) self.uiRadial_snap_build(parent,'S') self.build_radial_dynParent(parent,'NW') self.build_radial_create(parent,'N') self.build_radial_copy(parent,'W') self.build_radial_aim(parent,'NE') self.build_radial_control(parent,'SW') self.build_radial_arrange(parent,'SE') mUI.MelMenuItem(parent,l = "-"*20,en = False) mUI.MelMenuItem(parent,l = 'Reset...', c=mUI.Callback(self.button_action,self.reset)) mUI.MelMenuItem(parent,l='Report', c = lambda *a: self.report())
def build_menu(self, parent): log.info("{0} >> build_menu".format(self._str_MM)) #mc.setParent(self) mUI.MelMenuItem(parent, l='ButtonAction...', c=mUI.Callback(self.button_action, None)) mUI.MelMenuItem(parent, l='Reset...', c=mUI.Callback(self.button_action, self.reset)) """ mUI.MelMenuItem(parent,l = 'ButtonAction...', c = lambda *a: self.button_action(None)) mUI.MelMenuItem(parent,l = 'Reset...', c=lambda *a: self.button_action(self.reset)) """ mUI.MelMenuItem(parent, l="-" * 20, en=False) mUI.MelMenuItem(parent, l='Report', c=lambda *a: self.report())
def build_radial_create(self, parent, direction=None): """ Menu to create items from selected objects """ _r = mUI.MelMenuItem( parent, subMenu=True, en=self._b_sel, l='Create', #c = lambda *a:buttonAction(tdToolsLib.doPointSnap()), rp=direction) if not self._b_sel: return #--------------------------------------------------------------------------- mUI.MelMenuItem( _r, en=self._b_sel, l='Transform here', #c = lambda *a:buttonAction(tdToolsLib.doPointSnap()), c=mUI.Callback(self.button_action_per_sel, RIGGING.create_at, 'Create Transform'), rp="N") mUI.MelMenuItem( _r, en=self._b_sel, l='Group', #c = lambda *a:buttonAction(tdToolsLib.doPointSnap()), c=mUI.Callback(self.button_action_per_sel, RIGGING.group_me, 'Group Me'), rp="E") mUI.MelMenuItem( _r, en=self._b_sel, l='Group Me', #c = lambda *a:buttonAction(tdToolsLib.doPointSnap()), c=mUI.Callback(self.bc_create_groupMe, 'Group Me'), rp="NE") mUI.MelMenuItem( _r, en=self._b_sel, l='Locator', #c = lambda *a:buttonAction(tdToolsLib.doPointSnap()), c=mUI.Callback(self.button_action_per_sel, locators.locMeObject, 'Locator'), rp="S")
def BUILD(self, parent): """ This is the method designed to be overloaded to do build the subclass menus... """ log.info("{0} >> build_menu".format(self._str_MM)) #mc.setParent(self) mc.menuItem(parent=parent, l="-" * 25, en=False) mc.menuItem(parent=parent, l='ButtonAction...', c=mUI.Callback(self.button_action, None)) mc.menuItem(parent=parent, l='Reset...', c=mUI.Callback(self.button_action, self.reset)) """ mUI.MelMenuItem(parent,l = 'ButtonAction...', c = lambda *a: self.button_action(None)) mUI.MelMenuItem(parent,l = 'Reset...', c=lambda *a: self.button_action(self.reset)) """ mc.menuItem(parent=parent, l="-" * 25, en=False) mc.menuItem(parent=parent, l='Report', c=lambda *a: self.report())
def createUI(self, parent): """ Create the UI """ def buttonAction(command): """ execute a command and let the menu know not do do the default button action but just kill the ui """ killUI() mmActionOptionVar.value = 1 command self.LocinatorUpdateObjectsBufferOptionVar = cgmMeta.cgmOptionVar( 'cgmVar_LocinatorUpdateObjectsBuffer', defaultValue=['']) IsClickedOptionVar = cgmMeta.cgmOptionVar('cgmVar_IsClicked', 'int') mmActionOptionVar = cgmMeta.cgmOptionVar('cgmVar_mmAction', 'int') self.SnapModeOptionVar.update( ) #Check if another tool has changed this setting _sel = mc.ls(sl=True) selPair = search.checkSelectionLength(2) _selecCheck = len(_sel) IsClickedOptionVar.value = 1 mc.menu(parent, e=True, deleteAllItems=True) mUI.MelMenuItem(parent, en=selPair, l='Point Snap', c=lambda *a: buttonAction(tdToolsLib.doPointSnap()), rp='NW') mUI.MelMenuItem(parent, en=selPair, l='Parent Snap', c=lambda *a: buttonAction(tdToolsLib.doParentSnap()), rp='N') mUI.MelMenuItem(parent, en=selPair, l='Orient Snap', c=lambda *a: buttonAction(tdToolsLib.doOrientSnap()), rp='NE') mUI.MelMenuItem(parent, en=selPair, l='Surface Snap', c=lambda *a: buttonAction( tdToolsLib.doSnapClosestPointToSurface(False)), rp='W') if self.LocinatorUpdateObjectsOptionVar.value: ShowMatch = False if self.LocinatorUpdateObjectsBufferOptionVar.value: ShowMatch = True mUI.MelMenuItem(parent, en=ShowMatch, l='Buffer Snap', c=lambda *a: buttonAction( locinatorLib.doUpdateLoc(self, True)), rp='S') else: ShowMatch = search.matchObjectCheck() mUI.MelMenuItem(parent, en=ShowMatch, l='Match Snap', c=lambda *a: buttonAction( locinatorLib.doUpdateSelectedObjects(self)), rp='S') mUI.MelMenuItem( parent, en=_selecCheck, l='RayCast', #c = mUI.Callback(buttonAction,raySnap_start(_sel)), c=lambda *a: buttonAction(raySnap_start(_sel)), rp='SW') mUI.MelMenuItem( parent, en=0, l='Mirror', c=lambda *a: buttonAction(locinatorLib.doUpdateObj(self, True)), rp='SE') mUI.MelMenuItemDiv(parent) mUI.MelMenuItem(parent, l='Loc Me', c=lambda *a: buttonAction(locinatorLib.doLocMe(self))) mUI.MelMenuItem( parent, l='Tag Loc to Object', en=selPair, c=lambda *a: buttonAction(locinatorLib.doTagObjects(self))) # Update Mode UpdateMenu = mUI.MelMenuItem(parent, l='Update Mode', subMenu=True) UpdateMenuCollection = mUI.MelRadioMenuCollection() if self.LocinatorUpdateObjectsOptionVar.value == 0: slMode = True bufferMode = False else: slMode = False bufferMode = True UpdateMenuCollection.createButton( UpdateMenu, l='Selected', c=lambda *a: self.LocinatorUpdateObjectsOptionVar.setValue(0), rb=slMode) UpdateMenuCollection.createButton( UpdateMenu, l='Buffer', c=lambda *a: self.LocinatorUpdateObjectsOptionVar.setValue(1), rb=bufferMode) #>>>Match Mode self.MatchModeOptions = ['parent', 'point', 'orient'] self.MatchModeCollection = mUI.MelRadioMenuCollection() self.MatchModeCollectionChoices = [] MatchModeMenu = mUI.MelMenuItem(parent, l='Match Mode', subMenu=True) self.matchMode = self.SnapModeOptionVar.value for c, item in enumerate(self.MatchModeOptions): if self.matchMode == c: rbValue = True else: rbValue = False self.MatchModeCollectionChoices.append( self.MatchModeCollection.createButton( MatchModeMenu, label=item, rb=rbValue, command=mUI.Callback(self.SnapModeOptionVar.setValue, c))) #>>> Define DefineMenu = mUI.MelMenuItem(parent, l='Buffer', subMenu=True) mUI.MelMenuItem(DefineMenu, l="Define", c=lambda *a: locinatorLib.defineObjBuffer( self.LocinatorUpdateObjectsBufferOptionVar)) mUI.MelMenuItem(DefineMenu, l="Add Selected", c=lambda *a: locinatorLib.addSelectedToObjBuffer( self.LocinatorUpdateObjectsBufferOptionVar)) mUI.MelMenuItem(DefineMenu, l="Remove Selected", c=lambda *a: locinatorLib.removeSelectedFromObjBuffer( self.LocinatorUpdateObjectsBufferOptionVar)) mUI.MelMenuItemDiv(DefineMenu) mUI.MelMenuItem(DefineMenu, l="Select Members", c=lambda *a: locinatorLib.selectObjBufferMembers( self.LocinatorUpdateObjectsBufferOptionVar)) mUI.MelMenuItem(DefineMenu, l="Clear", c=lambda *a: locinatorLib.clearObjBuffer( self.LocinatorUpdateObjectsBufferOptionVar)) try: #>>> Sym Axis.... _str_section = 'Ray Cast menu' uiMenu_rayCast = mUI.MelMenuItem(parent, l='Ray Cast Mode', subMenu=True) var_RayCastMode = cgmMeta.cgmOptionVar( 'cgmVar_SnapMenuRayCastMode', defaultValue=0) self.uiRC_RayCast = mUI.MelRadioMenuCollection() self.uiOptions_RayCast = [] _v = var_RayCastMode.value _modes = cgmDrag._clickMesh_modes for i, item in enumerate(_modes): if i == _v: _rb = True else: _rb = False self.uiOptions_RayCast.append( self.uiRC_RayCast.createButton( uiMenu_rayCast, label=item, c=mUI.Callback(var_RayCastMode.setValue, i), rb=_rb)) except Exception, err: log.error("{0} failed to load. err: {1}".format(_str_section, err))
def reset(self): log.info("{0} >> reset".format(self._str_MM)) mUI.Callback( cgmUI.do_resetGuiInstanceOptionVars(self.l_optionVars, False))