def __init__( self, parent ): MelTabLayout.__init__( self, parent ) #do skeleton parts skeletonPartScroll = MelScrollLayout( self ) theCol = MelColumnLayout( skeletonPartScroll ) def getFile( cls ): clsFile = Path( inspect.getfile( cls ) ) if clsFile.setExtension( 'py' ).exists(): return clsFile.setExtension( 'py' ) return clsFile for cls in SkeletonPart.IterSubclasses(): clsFile = getFile( cls ) col = MelColumnLayout( theCol ) MelSeparator( col, h=5 ) hLayout = MelHSingleStretchLayout( col ) MelLabel( hLayout, l=cls.GetPartName(), align='left' ).bold( True ) MelSpacer( hLayout, w=10 ) lbl = MelLabel( hLayout, l=clsFile, align='left' ) hLayout.setStretchWidget( lbl ) hLayout.layout() hLayout = MelHLayout( col ) MelButton( hLayout, l='Explore To', c=Callback( mel.zooExploreTo, clsFile ), h=20 ) MelButton( hLayout, l='Edit', c=Callback( os.system, 'start %s' % clsFile ), h=20 ) hLayout.layout() #do rig parts rigPartScroll = MelScrollLayout( self ) theCol = MelColumnLayout( rigPartScroll ) for cls in rigPrimitives.RigPart.IterSubclasses(): clsFile = getFile( cls ) col = MelColumnLayout( theCol ) MelSeparator( col, h=5 ) hLayout = MelHSingleStretchLayout( col ) MelLabel( hLayout, l=cls.GetPartName(), align='left' ).bold( True ) MelSpacer( hLayout, w=10 ) lbl = MelLabel( hLayout, l=clsFile, align='left' ) hLayout.setStretchWidget( lbl ) hLayout.layout() hLayout = MelHLayout( col ) MelButton( hLayout, l='Explore To', c=Callback( mel.zooExploreTo, clsFile ), h=20 ) MelButton( hLayout, l='Edit', c=Callback( os.system, 'start %s' % clsFile ), h=20 ) hLayout.layout() #setup labels self.setLabel( 0, 'Skeleton Parts' ) self.setLabel( 1, 'Rig Parts' )
def build_popup(self, parent, *a): cmd.setParent(parent, m=True) cmd.menu(parent, e=True, dai=True) thisFile = Path(cmd.file(q=True, sn=True)) #if the file doesn't exist, then use teh cwd if not thisFile.exists(): thisFile = thisFile.getcwd() / "tmp.ma" dir = thisFile.up() curFile = Path(cmd.textField(self.UI_file, q=True, tx=True)) for f in dir.files(): if f.hasExtension(skinWeights.EXTENSION): cmd.menuItem(l=f.name(), cb=f == curFile, c=Callback(cmd.textField, self.UI_file, e=True, tx=f)) cmd.menuItem(d=True) cmd.menuItem(l="browse", c=self.on_browseWeightFile) cmd.menuItem(d=True) cmd.menuItem(l="clear", c=lambda *a: cmd.textField(self.UI_file, e=True, tx='')) if curFile.exists(): cmd.menuItem(d=True) addExploreToMenuItems(curFile)
def popup_sets( self, parent, *args ): cmd.setParent(parent, m=True) cmd.menu(parent, e=True, dai=True) items = self.selection() addEazel = cmd.optionVar(q='zooVisManEazel') if cmd.optionVar(ex='zooVisManEazel') else True enable = bool(items) cmd.menuItem(en=enable, l="+ selection to vis set", c=self.on_add) cmd.menuItem(en=enable, l="- selection from vis set", c=self.on_remove) cmd.menuItem(en=enable, l="select items in vis set", c=self.on_set_select) cmd.menuItem(en=enable, l="parent to...", c=self.on_reparent) cmd.menuItem(d=True) cmd.menuItem(l="new vis set", c=self.on_new) cmd.menuItem(en=enable, l="remove vis set", c=self.on_delete) cmd.menuItem(d=True) cmd.menuItem(l="always show eazel", cb=addEazel, c=self.on_eazel) cmd.menuItem(d=True) cmd.menuItem(l="merge all sets (nasty hack)", c="mel.hackyMergeSets()") cmd.menuItem(l="add faces affected by joint", c=self.on_joint_affected_faces) cmd.menuItem(l="add faces affected by joint heirarchy", c=self.on_joint_affected_faces) cmd.menuItem(d=True) #build the preset list... visPresets = presetsUI.listAllPresets( visManager.TOOL_NAME, visManager.EXTENSION, True ) cmd.menuItem(l="build sets from preset", sm=True) for locale, pList in visPresets.iteritems(): for p in pList: cmd.menuItem(l=p.name(), c=Callback(self.import_preset, p.name(), locale, True, True)) cmd.setParent('..', m=True) cmd.menuItem(l="import preset volumes", sm=True) for locale, pList in visPresets.iteritems(): for p in pList: cmd.menuItem(l=p.name(), c=Callback(self.import_preset, p.name(), locale, False, False)) cmd.setParent('..', m=True) selected = cmd.ls(sl=True) cmd.menuItem(en=len(selected)==1, l="export volume preset", c=self.export_preset) cmd.menuItem(l="manage presets", c=lambda *x: presetsUI.load(visManager.TOOL_NAME, visManager.DEFAULT_LOCALE, visManager.EXTENSION)) cmd.menuItem(d=True) cmd.menuItem(l='create sphere volume', c=lambda *x: assets.createExportVolume(assets.ExportManager.kVOLUME_SPHERE)) cmd.menuItem(l='create cube volume', c=lambda *x: assets.createExportVolume(assets.ExportManager.kVOLUME_CUBE))
def buildCmdEditorMenu( self, *a ): previewMode = self.UI_previewCheck.getValue() selTrigger = self.getHighlightedTrigger() if selTrigger: cmd.menu( self.MENU_cmdEditor, e=True, dai=True ) for presetName, presetContents in CMD_PRESETS.iteritems(): MelMenuItem( self.MENU_cmdEditor, l=presetName, en=not previewMode, c=Callback( self.UI_cmdEditor.setValue, presetContents ) ) MelMenuItem( self.MENU_cmdEditor, l='setAttr cmd', en=not previewMode, c=lambda *a: self.UI_cmdEditor.setValue( writeSetAttrCmd( selTrigger ) ) )
def popup_marks( self, parent, *args, **kwargs ): cmd.setParent(parent, m=True) cmd.menu(parent, e=True, dai=True) add = kwargs.get('add', False ) marks = mel.zooVisManListBookmarks() for mark in marks: cmd.menuItem(l=mark, c=Callback(self.on_activate_mark, mark, add)) cmd.menuItem(d=1) cmd.menuItem(l='create bookmark', c=self.on_create_bookmark)
def popup_filterPresets(self, parent, *args): cmd.setParent(parent, m=True) cmd.menu(parent, e=True, dai=True) hasItems = False allFilterPresets = presetsUI.listAllPresets(PRESET_ID_STR, PRESET_EXTENSION) for locale, filterPresets in allFilterPresets.iteritems(): for item in filterPresets: itemName = item.name() cmd.menuItem(l=itemName, c=Callback(self.setFilter, itemName)) hasItems = True if hasItems: cmd.menuItem(d=True) cmd.menuItem(l='clear', c=Callback(self.setFilter, '')) if self.getFilter(): cmd.menuItem(d=True) cmd.menuItem(l='save filter preset', c=self.on_filterSave) cmd.menuItem(l='manager filter presets', c=self.on_filterManage)
def buildImportPresetMenu( self, *a ): cmd.menu( self.MENU_import, e=True, dai=True ) presetDict = triggeredPresets.listPresets() for locale, presets in presetDict.iteritems(): for preset in presets: MelMenuItem( self.MENU_import, l=preset.name(), c=Callback( self.importFilepath, preset.path() ) )