示例#1
0
def tdTab(myPath, myDirs, parent):
	'''
	Depending upon how many directory are located in the folder,
		create tabs for each one.
	'''
	print("Create tabs")
	
	# On the nuke side this will be the folder that contain the render passes.
	
	cmds.setParent(parent)
	global tabs, mainTab
	tabs = []
	mainTab = cmds.tabLayout(w=winWidth, h=winWidth, p=parent)	
	# Just create the tabs
	for myDir in myDirs:

		# tabMainCol = cmds.columnLayout()
		tabMainCol = cmds.rowColumnLayout( nc=1, w=winWidth, h=winHeight, cw=[1,winWidth+10])
		# tabMainCol = cmds.formLayout()
		
		#cmds.text(l="This is tab: %s" %myDir, w=winWidth, h=winHeight)
		# Call frameLayout function
		framePath = os.path.join(myPath, myDir)
		frameDirs = os.walk(framePath).next()[1]
		#print(framePath)
		#print(frameDirs)
		tdFrame(framePath, frameDirs, tabMainCol )		
		
		tabs.append(tabMainCol)
		cmds.tabLayout(mainTab, e=True, tl=[tabMainCol, myDir])
		cmds.setParent(mainTab)
		
	cmds.setParent(parent)
	return tabs
 def simpleTemplateEditorAddCallbacks( *args):
  currTab = str(cmds.tabLayout(tabs1,q=1, st=1))
  currColChld = cmds.columnLayout(str(cmds.tabLayout(tabs1,q=1, st=1)),q=1, ca=1)
  curList = ""
  for temp in currColChld:
  	if cmds.textScrollList(temp, exists= True):
  		curList= temp
  tempSelAttrs = cmds.textScrollList(curList, q=1, si= True)
  tempSelIndAttrs = cmds.textScrollList(curList, q=1, sii= True)
  
  if cmds.textScrollList(curList, q=1, nsi= True)!=0:
  	result = cmds.promptDialog(title='Add Callback', message='Enter The Callback command for the selected attributes:',button=['OK', 'Cancel'],defaultButton='OK', cancelButton='Cancel', dismissString='Cancel')
  	if result == 'OK':
  		text = str(cmds.promptDialog(query=True, text= True))
  		if text != "":
  			for tempAttrI in tempSelIndAttrs:
  				cmds.textScrollList(curList, e=1, sii=tempAttrI)
  				tempAttrs = cmds.textScrollList(curList, q=1, si= True)
  				tempAttr =  tempAttrs[0]
  				tempAttrStrp = tempAttr.replace("      ","")
  				tempAttrStrp = tempAttrStrp.replace(" *","")
  				dictCallbacks[currTab + "_" + tempAttrStrp] = text
				if (cmds.menuItem(verbMenuI, q=1, checkBox = True)) == True:
		  			print ('  - Callback created for ' + tempAttrStrp + ' in view "' + currTab + '"')
  				cmds.textScrollList(curList, e=1, rii=tempAttrI)
				cmds.textScrollList(curList, e=1, ap=[tempAttrI,"      " + tempAttrStrp+ " *"])
示例#3
0
 def buildMainLayout(self):
     '''Build the main part of the ui
     '''
     
     tabs = mc.tabLayout()
     tab1 = mc.columnLayout(adj=True)
     
     mc.scrollLayout(cr=True)
     self.shelfLayout = mc.shelfLayout()
     
     self.refreshShelfLayout()
     
     mc.setParent(tabs)
     
     tab2 = mc.columnLayout(adj=True)
 
     mc.separator(height=8, style='none')
     mc.text('Select curve(s) to export. Multiple selected curves will be combined.')
     mc.text('Center and fit the curve in the viewport,')
     mc.text('and make sure nothing else is visible for best icon creation.')
     mc.separator(height=16, style='in')
     
     mc.button('Export Selected Curve', command=self.exportControl, annotation='Select a nurbsCurve to export.')
     
     mc.tabLayout( tabs, edit=True, tabLabel=((tab1, 'Import'), 
                                              (tab2, 'Export')
                                              ))
     
     if not mc.shelfLayout(self.shelfLayout, query=True, numberOfChildren=True):
         mc.tabLayout( tabs, edit=True, selectTab=tab2)
示例#4
0
    def __init__(self) :
        # now we create a window ready to populate the components
        self.m_window = cmds.window( title='Flock The System', )
        # create a layout
        form = cmds.formLayout()
        tabs = cmds.tabLayout(innerMarginWidth=10, innerMarginHeight=10)
        cmds.formLayout( form, edit=True, attachForm=((tabs, 'top', 0), (tabs, 'left', 0), (tabs, 'bottom', 0), (tabs, 'right', 0)) )
        
        child1 = cmds.rowColumnLayout(numberOfColumns=1)
        #cmds.image( image='/home/i7867155/Desktop/Screenshot.png' )
        cmds.intFieldGrp( numberOfFields=2, label='Start Frame',  extraLabel='End Frame', value1=3, value2=3,  )
        #cmds.button( label='Update Flock', bgc=(1,0,0)  )
        #cmds.iconTextButton( style='iconOnly', image1='/home/i7867155/Desktop/Screenshot.png', command='click()' )
        
        

        exportButton = cmds.button( label='Export/Update Curves', command='exportCurves()' )


        cmds.setParent( tabs )

        child2 = cmds.rowColumnLayout(numberOfColumns=2)
        cmds.button(width=50)
        cmds.button()
        cmds.button()
        cmds.setParent( tabs )

        cmds.tabLayout( tabs, edit=True, tabLabel=((child1, 'Pre-flock'), (child2, 'Post-flock')) )
        
        # finally show the window
        cmds.showWindow( self.m_window )
示例#5
0
def makeAppFolders( tabLayout, title, cmdType, folderPath ):
    
    childArr  = cmds.tabLayout( tabLayout, q=1, ca=1 )
    tabLabels = cmds.tabLayout( tabLayout, q=1, tabLabel=1 )
    
    appFolder = folderPath+'/'+ title
    deletePath( appFolder )
    
    if cmdType == 'python':
        initPath = appFolder+'/__init__.py'
        makeFile( initPath )

        for i in range( len( childArr ) ):
            childUi  = childArr[i]
            tabLabel = tabLabels[i].replace( ' ', '_' )
            
            srcFile = appFolder+'/'+tabLabel+'.py'
            makeFile( srcFile )
            
            f = open( srcFile, 'w' )
            f.write( cmds.scrollField( childUi, q=1, tx=1 ) )
            f.close()
        
    elif cmdType == 'mel':
        for i in range( len( childArr ) ):
            childUi  = childArr[i]
            tabLabel = tabLabels[i].replace( ' ', '_' )
            
            srcFile = appFolder+'/'+tabLabel+'.mel'
            makeFile( srcFile )
            
            f = open( srcFile, 'w' )
            f.write( cmds.scrollField( childUi, q=1, tx=1 ) )
            f.close()
示例#6
0
    def _saveTab(self):
	'''
	The name of the tab 
	The frames included
	the attributes for each frame
	'''
	
	# Prompt where to save the file.

	# pack data
	

    	currTab = cmds.tabLayout( self.mainTab, q=True, selectTab=True)
    	tabIndex = cmds.tabLayout( self.mainTab, q=True, selectTabIndex=True) - 1 # tab index are 1 based.
	tabLabels = cmds.tabLayout( self.mainTab, q=True, tl=True )
	
	tabName = tabLabels[tabIndex]
	frameNames = []	
	frames = {}

	
	for frameInfo in self.tabs[self.tabNames[tabIndex]]:
		frameNames.append([frameInfo.frameName, frameInfo.mainLayout])
		frames[frameInfo.mainLayout] = frameInfo.attrs
	
	path = cmds.fileDialog(mode=1)
	if(path):
		fileInfo = open( path, "w" )
		pickle.dump( tabName, fileInfo  )
		pickle.dump( frameNames, fileInfo )
		pickle.dump( frames, fileInfo )
		fileInfo.close()
	else:
		print("Save Cancelled.")
示例#7
0
def savepose(*args):
    alltab  = mc.tabLayout('tabs',q=1,st=1)
    chktabs = mc.tabLayout ('Animation',q=1,st=1)
    chktabs1= mc.tabLayout ('Poses',q=1,st=1)
    sel_obj = mc.ls(sl=1)
    if len(sel_obj)==0:
        mc.confirmDialog (title = "Error",message ="Nothing is selected",button= "OK",defaultButton ="Yes")
    else :
        if alltab=='Animation':
            if chktabs=='':
                mc.confirmDialog (title = "Error",message ="Please create a tab first",button= "OK",defaultButton ="Yes")
            else:
                Animname = mc.confirmDialog(
                title='Frame chk',
                message='Pls chk : Start frame and End frame ',
                button=['OK', 'Cancel'],
                defaultButton='OK',
                cancelButton='Cancel',
                dismissString='Cancel')
                if Animname =='OK': 
                    Animposecam(sel_obj)  
        else:
            if chktabs1=='':
                mc.confirmDialog (title = "Error",message ="Please create a tab first",button= "OK",defaultButton ="Yes")
            else:
                Animposecam(sel_obj)
示例#8
0
def ModuleTemplateBuilderUI():
    MTB_UI='MTB_UI'
    if cmds.window(MTB_UI,q=1,ex=1 ):
        cmds.deleteUI(MTB_UI)
    cmds.window(MTB_UI,t='creatureRigs: Modules Builder ' +__version__,mb=1)
    cmds.menu(l='File')
    cmds.menuItem(l='install shelf button',c='')
    cmds.menuItem(label ="Close",c ="")
    cmds.menu(l='Edit')
    cmds.menuItem(l='Toggle Selectable',c='')
    cmds.menu(l='Tools')
    cmds.menuItem(l='Auto Rigger',c='')
    cmds.menuItem(l='Curve Utilities',c='')
    cmds.menu(l='Help')
    cmds.menuItem(label ="How to use",c ="")
    cmds.menuItem(label ="Close",c ="")
    cmds.menuItem(label ='')

    form = cmds.formLayout()
    tabs = cmds.tabLayout(innerMarginWidth=5, innerMarginHeight=5)
    #---------------------
    cmds.formLayout( form, edit=True, attachForm=((tabs, 'top', 0), (tabs, 'left', 0), (tabs, 'bottom', 0),(tabs, 'right', 0)) )
    child1 = cmds.rowColumnLayout(numberOfColumns=1)
    createSkeletonLayout()

    cmds.setParent( '..' )
    child2 = cmds.rowColumnLayout(numberOfColumns=1)
    createRigLayout()
    cmds.setParent( '..' )

    cmds.tabLayout( tabs, edit=True, tabLabel=((child1, ' Create Skeleton '), (child2, ' Create Rig ')))
    cmds.showWindow(MTB_UI)
示例#9
0
def duplicateSpecialZ(*args):
    if cmds.window("dupSpecialZ", exists=True):
        cmds.deleteUI("dupSpecialZ")

    cmds.window("dupSpecialZ",title="Jelly Special Z",mnb=True, mxb=False,w=250,h=130,sizeable=False)
    form = cmds.formLayout()
    tabs = cmds.tabLayout(w=250, h=100, bgc = (0.3,0.3,0.3), innerMarginWidth=10, innerMarginHeight=5)
    cmds.formLayout( form, edit=True, attachForm=((tabs, 'top', 0), (tabs, 'left', 0), (tabs, 'bottom', 0), (tabs, 'right', 0)) )
    child1=cmds.columnLayout( columnAttach=('both', 0), rowSpacing=1,columnWidth=250,h=110)
    cmds.text(label="Permanent Distance", bgc=(0.5,0.7,0.5))
    cmds.text(label="Number of copies", align='left')
    cmds.textField('copiesZper',w=200)
    cmds.text(label="Translate", align='left')
    cmds.textField('translateZper',w=200)
    cmds.button(label="Duplicate", bgc=(0.5,0.7,0.5),command=translateZpermanent)
    cmds.setParent( '..' )

    child2=cmds.columnLayout( columnAttach=('both', 0), rowSpacing=1,columnWidth=250,h=110)
    cmds.text(label="Increasing Distance", bgc=(0.5,0.3,0.5))
    cmds.text(label="Number of copies", align='left')
    cmds.textField('copiesZinc',w=200)
    cmds.text(label="Translate", align='left')
    cmds.textField('translateZinc',w=200)
    cmds.button(label="Duplicate",bgc=(0.5,0.3,0.5),command=trasnlateZincreasing)
    cmds.setParent( '..' )

    cmds.tabLayout( tabs, edit=True, tabLabel=((child1, 'Permanent Distance'),(child2,'Increasing Distance')))
    cmds.setParent( '..' )
    cmds.showWindow()
示例#10
0
    def _addTab(self, name):
        '''
        Adds an additional tab to the system.
        '''
        
        # Make sure that a tab exists!
        # scroll = cmds.scrollLayout( h=450, parent=self.mainTab )       
        col = cmds.columnLayout(parent=self.mainTab)

        frm = cmds.formLayout( w=450 )
        path = os.path.split(__file__)[0]
	fullPath = lambda x : os.path.join( path, "icons", x )
	
	btn1 = cmds.symbolButton( image=fullPath('plus_16b.xpm'), h=20, 
			    command=Callback(self.addFramePrompt)) # self._attrGUI )
	
	btn2 = cmds.symbolButton( image=fullPath('delete_16b.xpm'), h=20, 
			    command=Callback(self._removeTab ))#command=self._removeAttrs )
			 
	btn3 = cmds.symbolButton( image=fullPath('save_16.xpm'), h=20, 
			    command=Callback(self._saveTab)) # self._attrGUI )
        
	txt = cmds.text( l="" )
	
	cmds.formLayout( frm, e=1, af=[[btn1, "top", 5],[btn1, "left", 5], [btn2, "top", 5],[btn3, "top", 5], [txt, "top", 5], [txt, "right", 0]],
		ac=[[btn2, "left", 0, btn1],[btn3, "left", 0, btn2]])
        cmds.setParent( col )
        # frm = cmds.formLayout( parent=self.mainTab, w=300, h=300 )
        
        
        cmds.tabLayout( self.mainTab, e=1, tl=[col, name])
        self.tabs[col] = []
        self.tabNames.append(col)
        return col
示例#11
0
def deletetab(*args):
    alltabs = mc.tabLayout ('tabs',q=1,st=1)
    chktabs = mc.tabLayout ('Animation',q=1,st=1)
    chktabs1= mc.tabLayout ('Poses',q=1,st=1)
    if alltabs == 'Animation':
        seltab = mc.tabLayout('Animation',q=1,st=1) 
        mc.deleteUI(seltab)
        Del_tab=savepathini+'Savepose/Animation/'+seltab
        Del1_in=Del_tab+'/'
        list_in=mc.getFileList(fld=Del1_in)
        for i in range(len(list_in)):
            mc.sysFile(Del1_in+'/'+list_in[i],delete=1)
        mc.sysFile(Del_tab,red=1)
        if chktabs=='':
            mc.confirmDialog (title='Error',message='No tabs to delete', button='OK',defaultButton='Yes')    
#        else :
#            return
    else :
        seltab = mc.tabLayout('Poses',q=1,st=1) 
        mc.deleteUI(seltab)
        Del_tab=savepathini+'Savepose/Poses/'+seltab
        Del1_in=Del_tab+'/'
        list_in=mc.getFileList(fld=Del1_in)
        for i in range(len(list_in)):
            mc.sysFile(Del1_in+'/'+list_in[i],delete=1)
        mc.sysFile(Del_tab,red=1)
        if chktabs1=='':
            mc.confirmDialog (title='Error',message='No tabs to delete', button='OK',defaultButton='Yes')    
        else :
            return          
    def uvSetOptions(self):
        window_name = "uvSetOptions"
        if cmds.window(window_name, q=True, exists=True):
            cmds.deleteUI(window_name)
        self.optionWindow = cmds.window(window_name, title="Lightmap Options")
        tabs = cmds.tabLayout(innerMarginWidth=5, innerMarginHeight=5)
        
        standardLayout = cmds.columnLayout(parent=self.optionWindow, adj=True)
        self.uvSetChoice = cmds.optionMenuGrp(label="Source UV Set")
        for uvSet in self.uvList:    #lists selections' uv sets
            cmds.menuItem(label=uvSet)
        self.lightmapBox = cmds.textFieldGrp(label="New UV Set Name", text=self.lightmap)
        self.presetSelect = cmds.optionMenuGrp(self.presetSelect, label="Spacing Presets", cc=self.presetValue)
        for preset in self.spacingPresets:
            cmds.menuItem(label=preset)
        cmds.floatSliderGrp(self.shellSpacingSlider, label="Percentage Space:", v=3.200, step=0.001, max=5.000, field=True)
        print cmds.floatSliderGrp(self.shellSpacingSlider, q=True, v=True)
        cmds.button(label="Generate Lightmap", width=200, c=self.copyAndLayoutCheck)
        
        advancedLayout = cmds.columnLayout(parent=self.optionWindow, adj=True)
        
        layoutObjectsCollection = cmds.radioCollection()                        #radial button, creates new layout
        layoutObjectsCollection_layout = cmds.columnLayout()
        cmds.text(label = "Layout objects:", p=layoutObjectsCollection_layout)
        rbl = cmds.radioButton(label="Per object(overlapping)", p=layoutObjectsCollection_layout, onc=lambda *args: self.perObjectLayout(0))
        rbl = cmds.radioButton(label="Single or multiple objects(non-overlapping)", p=layoutObjectsCollection_layout, onc=lambda *args: self.perObjectLayout(1), sl=True )
                
        prescaleCollection = cmds.radioCollection()                        #radial button, creates new layout
        prescaleCollection_layout = cmds.columnLayout()
        cmds.text(label = "Prescale:", p=prescaleCollection_layout)
        rbl = cmds.radioButton(label="None", p=prescaleCollection_layout, onc=lambda *args: self.prescaleLayout(0))
        rbl = cmds.radioButton(label="Object", p=prescaleCollection_layout, onc=lambda *args: self.prescaleLayout(1))
        rbl = cmds.radioButton(label="World", p=prescaleCollection_layout, onc=lambda *args: self.prescaleLayout(2), sl=True)

        collection = cmds.radioCollection()                        #radial button, creates new layout
        collection_layout = cmds.columnLayout()
        cmds.text(label = "Shell Layout:", p=collection_layout)
        rbl = cmds.radioButton(label="Into region", p=collection_layout, onc=lambda *args: self.shellLayout(0), sl=True)
        rbl = cmds.radioButton(label="Along U", p=collection_layout, onc=lambda *args: self.shellLayout(1))
        rbl = cmds.radioButton(label="None", p=collection_layout, onc=lambda *args: self.shellLayout(2))
           
        collection = cmds.radioCollection()                        #radial button, creates new layout
        collection_layout = cmds.columnLayout()
        cmds.text(label = "Scale:", p=collection_layout)
        rbl = cmds.radioButton(label="None", p=collection_layout, onc=lambda *args: self.scaleLayout(0))
        rbl = cmds.radioButton(label="Uniform", p=collection_layout, onc=lambda *args: self.scaleLayout(1), sl=True)
        rbl = cmds.radioButton(label="Stretch", p=collection_layout, onc=lambda *args: self.scaleLayout(2))
        
        rotateCollection = cmds.radioCollection()                        #radial button, creates new layout
        rotateCollection_layout = cmds.columnLayout()
        cmds.text(label = "Rotate:", p=rotateCollection_layout)
        rbl = cmds.radioButton(label="None", p=rotateCollection_layout, onc=lambda *args: self.rotationLayout(0))
        rbl = cmds.radioButton(label="90 degrees", p=rotateCollection_layout, onc=lambda *args: self.rotationLayout(1), sl=True)
        rbl = cmds.radioButton(label="Free", p=rotateCollection_layout, onc=lambda *args: self.rotationLayout(2))
        
        cmds.tabLayout( tabs, edit=True, tabLabel=((standardLayout, 'General'), (advancedLayout, 'Advanced')) ) 
        
        cmds.showWindow(self.optionWindow)
示例#13
0
def mainWindow(configData, assetsList, modules):
	layoutWidth = 450
	#check if the window already exists, if it does delete it.
	if cmds.window( 'pipeline', exists = True ):
		cmds.deleteUI( 'pipeline' )
	cmds.window( 'pipeline' )
	
	# create the base layouts for the UI
	form = cmds.formLayout( 'pipeline_mainFormLayout' )
	tabs = cmds.tabLayout('pipeline_mainTabsLayout', innerMarginWidth=5, innerMarginHeight=5)
	cmds.formLayout( form, edit=True, attachForm=((tabs, 'top', 0), (tabs, 'left', 0), (tabs, 'bottom', 0), (tabs, 'right', 0)) )
	
	# tab one contents start here
	tabOne = cmds.scrollLayout( horizontalScrollBarThickness=16, verticalScrollBarThickness=16)
	cmds.rowColumnLayout( 'pipeline_TabOne', width = layoutWidth, numberOfColumns = 1 )
	cmds.text( 'pipeline_tabOne_heading', label = 'manage pipline here' )
	
	# use the module names to create the work flow catagories
	for module in modules:
		# becuase the name of hte module is a string, use __import__ method to import it.
		currentModule = __import__(module)
		reload(currentModule)
		#based of the setting in config, create the module or not
		if module + '=True' in configData:
			currentModule.FMlayout(layoutWidth,configData,assetsList)
			cmds.setParent( '..' )
		if module + '=False' in configData:
			currentModule.disabledMessage()
	cmds.setParent('..'), cmds.setParent('..')
	
	# tab two starts here, it contains the options from the config file
	tabTwo = cmds.rowColumnLayout( width = layoutWidth, numberOfColumns = 1 )
	#cmds.text( label = 'This is intenationally blank.' )
	cmds.text( label = '' )
	# loop over the config data, creating relevant checkboxes and textfields
	for data in configData:
		dataName, dataType, property = pipe_func.findDataType(data)
		#print dataName
		if dataType == 'booleanData':
			if property == 'True':
				propertyValue = True
			if property == 'False':
				propertyValue = False
			cmds.checkBox( dataName + 'CB', label = dataName, value = propertyValue)
		if dataType == 'string':
			cmds.text( label = dataName )
			cmds.textField( dataName + 'TF', text = property, width = (layoutWidth -100) )
	# the save button goes here
	cmds.button( label = 'Save settings', command = lambda arg : pipe_func.saveOptionsSettings(configData) )
	cmds.setParent('..'), cmds.setParent('..')
	
	# tab names
	cmds.tabLayout( tabs, edit=True, tabLabel=((tabOne, 'pipeline'), (tabTwo, 'Options')) )
	
	# This line docks the window as tool palette or utility window, so it sits nicey nice at the side
	if cmds.dockControl( 'pipeline', exists = True ):
		cmds.deleteUI( 'pipeline' )
	cmds.dockControl( 'pipeline', label = 'Fire Monkeys Pipline Manager', area='right', content='pipeline', allowedArea='right' )
	def __init__(self):
		self.moduleInstance = None
	
		self.deleteSymmetryMoveExpressions()
	    #store UI elements in a dictionary
		self.UIElements = {}
		
		if cmds.window("blueprint_UI_window", exists=True):
			cmds.deleteUI("blueprint_UI_window")
			cmds.windowPref( "blueprint_UI_window", remove=True )
			
		
		windowWidth = 400
		windowHeight = 598
		
		self.UIElements ["window"] = cmds.window("blueprint_UI_window", width=windowWidth, height=windowHeight, title="Blueprint Module UI", sizeable = True)
        
		self.UIElements["topLevelColumn"] = cmds.columnLayout (adjustableColumn=True, columnAlign="center")
		
		#Setup taps
		tabHeight = 500
		self.UIElements["tabs"] = cmds.tabLayout(height=tabHeight,width=windowWidth, innerMarginWidth=5, innerMarginHeight=5)
		
		tabWidth = cmds.tabLayout(self.UIElements["tabs"], q=True, width=True)
		
		self.scrollWidth = tabWidth - 40
		
		self.initialiseModuleTab(tabHeight,tabWidth)
		
		cmds.setParent(self.UIElements["tabs"])
		self.initialiseTemplatesTab(tabHeight, tabWidth)
		
		
		scenePublished = cmds.objExists('Scene_Published')
		sceneUnlocked = not cmds.objExists('Scene_Locked') and not scenePublished
		
		cmds.tabLayout(self.UIElements["tabs"], edit=True, tabLabelIndex=([1,"Modules"],[2,'Templates']),enable=sceneUnlocked)
		
		cmds.setParent(self.UIElements['topLevelColumn'])
		self.UIElements['lockPublishColumn'] = cmds.columnLayout(adj=True,columnAlign='center',rs=3)
		
		cmds.separator()
		
		self.UIElements['lockBtn'] = cmds.button(label='Lock', c=self.lock, enable=sceneUnlocked)
		
		cmds.separator()
		
		self.UIElements['publishBtn'] = cmds.button(label='Publish',enable=not sceneUnlocked and not scenePublished, c=self.publish)
		
		cmds.separator()
		
		
		
		#Display window
		cmds.showWindow(self.UIElements["window"])
		
		self.createScriptJob()
示例#15
0
	def __init__( self ):
		window_name = 'fissureToolWindow'
		window_width = 200
		window_height = 200

		if cmds.window( window_name, exists = True, q = True ):
			cmds.deleteUI( window_name )

		cmds.window( window_name, title = 'Fissure Tool {0}'.format( VERSION ), widthHeight = ( window_width, window_height ) )
		form = cmds.formLayout()
		tabs = cmds.tabLayout( innerMarginWidth = 5, innerMarginHeight = 5 )
		cmds.formLayout( form, edit = True, attachForm = ( ( tabs, 'top', 0 ), ( tabs, 'left', 0 ), ( tabs, 'bottom', 0 ), ( tabs, 'right', 0 ) ) )

		# Crack Row
		crack_row = cmds.rowColumnLayout( numberOfColumns = 1 )
		cmds.separator( style = 'none', height = 20 )
		cmds.text( label = 'Crack Pieces' )
		self.crack_float = cmds.floatField( value = 50, precision = 0 )
		cmds.button( l = 'Crack Mesh', w = window_width, c = self.run_crack_obj )
		cmds.separator( height = 40, style = 'in' )

		cmds.button( l = 'Create Plane Rig', w = window_width, c = self.run_create_plane_rig )
		cmds.button( l = 'Attach Plane Rig', w = window_width, c = self.run_attach_plane_rig )
		cmds.separator( height = 40, style = 'in' )

		cmds.button( l = 'Create Cluster', w = window_width, c = self.run_create_cluster )
		cmds.setParent( '..' )

		# Simulation Row
		sim_row = cmds.rowColumnLayout( numberOfColumns = 1 )
		cmds.separator( style = 'none', height = 20 )
		cmds.text( label = 'Gravity Magnitude' )
		self.magnitude_float = cmds.floatField( value = 50, precision = 2 )
		cmds.button( l = 'Add Rigid Body', w = window_width, c = self.run_add_rigid_body )
		cmds.separator( height = 40, style = 'in' )

		cmds.button( l = 'Add Crack Distance', w = window_width, c = self.run_create_crack_distance )
		cmds.button( l = 'Run Crack Distance', w = window_width, c = self.run_build_crack_distance )
		cmds.separator( height = 40, style = 'in' )

		cmds.button( l = 'Bake Simulation', w = window_width, c = self.run_bake_sim )
		cmds.setParent( '..' )

		# Export Row
		export_row = cmds.rowColumnLayout( numberOfColumns = 1 )
		cmds.separator( style = 'none', height = 20 )
		cmds.button( l = 'Convert to game skin', w = window_width, c = self.run_convert_to_game_skin )
		cmds.separator( height = 40, style = 'in' )

		cmds.button( l = 'Export FBX Mesh', w = window_width )
		cmds.button( l = 'Export FBX Skin', w = window_width )
		cmds.button( l = 'Export FBX Animation', w = window_width )
		cmds.setParent( '..' )

		cmds.tabLayout( tabs, edit = True, tabLabel = ( ( crack_row, 'Crack' ), ( sim_row, 'Simulation' ), ( export_row, 'Export' ) ) )

		cmds.showWindow()
示例#16
0
def createUploadWindow():
    #---------------------------------------------以下窗体显示部分------------------------------------------
    uploadCacheWindow = cmds.window(title = "Upload Cache", iconName = "UC", widthHeight = (420, 160))
    
    uploadForm = cmds.formLayout()
    #------------------以下为标签的内容---------------------
    tabs = cmds.tabLayout(innerMarginWidth=5, innerMarginHeight=5)
    
    #标签1
    child1 = cmds.rowColumnLayout(numberOfColumns=2)    
    chlid1Form = cmds.formLayout()
    uCOptionMenu = cmds.optionMenu(label = "Project Name:     ")
    projectNameList = getProjectName()  #添加optionMenu的项
    for projectName in projectNameList:
        cmds.menuItem(label = projectName)
    tFolder = getUploadDir(uCOptionMenu)    #拿到tFolder
    uploadTextRowLayout = cmds.rowColumnLayout(numberOfColumns=2, columnAttach=(1, 'right', 0), columnWidth=[(1, 88), (2, 280)], rowSpacing = (1, 4))
    uploadDirText = cmds.text(label="Upload Directory: ")
    uploadDirTextField = cmds.textField(text = tFolder, editable = False)
    cmds.setParent("..")
    cmds.formLayout(chlid1Form, edit=True, attachForm=[(uCOptionMenu, "top", 6), (uCOptionMenu, "left", 6), (uCOptionMenu, "right", 4),
                                        (uploadTextRowLayout, "left", 4), (uploadTextRowLayout, "bottom", 10), (uploadTextRowLayout, "right", 4)],
                                        attachControl=[(uploadTextRowLayout, "top", 12, uCOptionMenu)] )
    cmds.setParent( '..' )
    cmds.setParent( '..' )

    #标签2
    child2 = cmds.rowColumnLayout(numberOfColumns=2)
    chlid2Form = cmds.formLayout()
    tFolder = ""
    chlid2TextFBG = cmds.textFieldButtonGrp(label = "Upload Directory: ", columnWidth = [(1, 90),(2, 260),(3,80)], text = tFolder, editable = False, buttonLabel = "brower")
    browerNoticeText = cmds.text("Please Select Project Name!")
    cmds.formLayout(chlid2Form, edit=True, attachForm=[(chlid2TextFBG, "top", 6), (chlid2TextFBG, "left", 0), (chlid2TextFBG, "right", 0),
                                                       (browerNoticeText, "left", 4), (browerNoticeText, "bottom", 10), (browerNoticeText, "right", 4)])
    cmds.setParent( '..' )
    cmds.setParent( '..' )
    
    cmds.tabLayout(tabs, edit=True, tabLabel=((child1, "Basic"), (child2, "Advanced")) )
    cmds.setParent( '..' )
    #----------------以下为button的内容-----------------
    uCButtonRowLayout = cmds.rowLayout(numberOfColumns = 2, columnAttach = [(1, "right", 0),(2, "right", 0)], columnWidth=[(1, 280), (2, 78)])
    #cmds.button(label = "Upload", width = 75, command = 'clothAndHair.chMain.otherWinCmd.doUploadCache(\"' + uCOptionMenu + '\", \"' + uploadCacheWindow+'\")')
    uploadButton = cmds.button(label = "Upload", width = 75)
    closeButton = cmds.button(label = "Close", width = 75)
    cmds.setParent("..")
    
    cmds.formLayout(uploadForm, edit=True, attachForm=[(tabs, "top", 4), (tabs, "left", 4), (tabs, "bottom", 50), (tabs, "right", 4),
                                                    (uCButtonRowLayout, "bottom", 12),(uCButtonRowLayout, "left", 52), (uCButtonRowLayout, "right", 4)],
                                                    attachControl=[(uCButtonRowLayout, "top", 12, tabs)] )
    cmds.showWindow(uploadCacheWindow)
    
    #---------------------------------------------以下窗体指令部分------------------------------------------
    cmds.optionMenu(uCOptionMenu, edit = True, changeCommand = (lambda x:changeProject(uploadDirTextField, uCOptionMenu)))
    cmds.textFieldButtonGrp(chlid2TextFBG, edit = True, buttonCommand = (lambda:getUploadDirAdv(chlid2TextFBG)))
    cmds.button(uploadButton, edit = True, command = lambda x:doUploadCache(tabs , child1 , child2 , uploadDirTextField , chlid2TextFBG , uploadCacheWindow ))
    cmds.button(closeButton, edit = True, command=('cmds.deleteUI(\"' + uploadCacheWindow + '\", window=True)'))
示例#17
0
文件: ui.py 项目: ewerybody/melDrop
    def drawTweakTabs(self):
        mainTl = self.ui['tabLayout']
        tabs = cmds.tabLayout(mainTl, q=True, childArray=True)
        labels = cmds.tabLayout(mainTl, q=True, tabLabel=True)
        for twkLst in self.tweaks:
            # search tabs for this tweak list
            try:
                idx = labels.index(twkLst)
                # delete content if layout is available
                col = tabs[idx]
                content = cmds.columnLayout(col, q=True, childArray=True)
                if content:
                    cmds.deleteUI(content)
            # or create a new one
            except:
                col = cmds.columnLayout(adjustableColumn=True, parent=mainTl)
                cmds.tabLayout(mainTl, edit=True, tabLabel=((col, twkLst)))

            for typ in self.tweaks[twkLst]:
                if not self.tweaks[twkLst][typ]:
                    continue
                for item in self.tweaks[twkLst][typ]:
                    if typ == 'hotkeys':
                        keyLabel = hotkey.makeKeyLabel(self.tweaks[twkLst][typ][item])
                        checkValue = 'hotkeyBackups' in self.prefsDict and keyLabel in self.prefsDict['hotkeyBackups']
                        
                        # a collapsable frame with checkbox in front
                        cmds.rowLayout(numberOfColumns=2, parent=col, adjustableColumn=2)
                        cmds.checkBox(label='', w=20, value=checkValue,
                                      onCommand=partial(hotkey.setup, item, self.tweaks[twkLst]['hotkeys'][item]),
                                      offCommand=partial(hotkey.reset, item, self.tweaks[twkLst]['hotkeys'][item], keyLabel))
                        cmds.frameLayout(label=('%s (%s)') % (item, keyLabel), collapsable=True, collapse=True, borderStyle='in')
                        
                        cmds.columnLayout(adjustableColumn=True)
                        # first version: write everything in textFields:
                        for attr in self.tweaks[twkLst][typ][item]:
                            cmds.textFieldGrp(label='%s:' % attr, text=self.tweaks[twkLst][typ][item][attr],
                                              cw=(1, LABEL_W), adjustableColumn=2)

                        key = self.tweaks[twkLst][typ][item]['key']
                        ctl = 'ctl' in self.tweaks[twkLst][typ][item]
                        alt = 'alt' in self.tweaks[twkLst][typ][item]
                        data = hotkey.gather(key, ctl, alt)
                        # show the override item when any hotkey is already found
                        if data:
                            # and if set by us and actually overrides something
                            if checkValue:
                                if self.prefsDict['hotkeyBackups'][keyLabel]:
                                    overrideLabel = self.prefsDict['hotkeyBackups'][keyLabel]['name']
                                else:
                                    overrideLabel = None
                            else:
                                overrideLabel = data['name']
                            if overrideLabel:
                                cmds.textFieldGrp(label='overrides:', text=overrideLabel, bgc=(0.4, 0, 0),
                                                  cw=(1, LABEL_W), adjustableColumn=2)
示例#18
0
文件: ui.py 项目: artbycrunk/maya-git
def createUI():

	preUI()

	mc.window( 'gitMayaWin', title="Git Tools", iconName='', widthHeight=(200, 55) )
	mc.menuBarLayout()
	mc.menu( label='File' )
	mc.menuItem( label='Create Repo', c=lambda *args: createRepo() )
	mc.setParent( '..' )
	mc.columnLayout( adjustableColumn=True )
	mc.rowLayout( numberOfColumns=3, columnWidth3=(80, 80, 80))
	mc.button( label='Create Repo', w=80, h=80)
	mc.button( label='Clone Repo', w=80, h=80)
	mc.setParent( '..' )
	mc.separator(h=10, style='none')
	mc.textFieldButtonGrp( 'repoPath', label='Repo Path', text='', buttonLabel='Browse', bc=lambda *args: getFolder() )
	mc.button( label='Refresh', c=lambda *args: initRepo() )
	mc.separator(h=10, style='none')
	mc.tabLayout(innerMarginWidth=5, innerMarginHeight=5)
	mc.columnLayout( 'Files', adjustableColumn=True )
	mc.rowColumnLayout(nc=5)
	mc.separator(h=20, style='none')
	mc.text(l='Working Copy Changes')
	mc.separator(h=20, style='none')
	mc.separator(h=20, style='none')
	mc.text(l='Staged Changes')
	mc.columnLayout( 'workingChangesColor', adjustableColumn=True)
	mc.setParent( '..' )
	mc.textScrollList( 'workingChanges', numberOfRows=16, allowMultiSelection=True)
	mc.columnLayout( adjustableColumn=True )
	mc.button( label='>>', c=lambda *args: addChanged())
	mc.button( label='>' )
	mc.separator(h=30, style='none')
	mc.button( label='<', c=lambda *args: remSelected())
	mc.button( label='<<' )
	mc.setParent( '..' )
	mc.columnLayout( 'stagedChangesColor', adjustableColumn=True )
	mc.setParent( '..' )
	mc.textScrollList( 'stagedChanges', numberOfRows=16, allowMultiSelection=True)
	mc.setParent( '..' )
	mc.textFieldButtonGrp( 'commitMessage', label='Message', text='', buttonLabel='Commit', bc=lambda *args: doCommit() )
	mc.separator(h=20)
	mc.setParent( '..' )

	mc.columnLayout( 'History', adjustableColumn=True )
	mc.intFieldGrp( 'commitCount', numberOfFields=1, label='Number of Commits', value1=10, cc=lambda *args: getCommits())
	mc.scrollLayout(h=250, horizontalScrollBarThickness=16, verticalScrollBarThickness=16)
	mc.rowColumnLayout( 'commitsGrid', numberOfColumns=2, cw=([1,450],[2,150]) )
	mc.setParent( '..' )
	mc.setParent( '..' )
	mc.text(l='Commited Changes')
	mc.textScrollList( 'commitChanges', numberOfRows=16, allowMultiSelection=True)
	mc.showWindow( 'gitMayaWin' )

	postUI()
def zbw_mmUI():
    """the UI for the script"""

    if (cmds.window('`UI', exists=True)):
        cmds.deleteUI('zbw_messageMapperUI', window=True)
        cmds.windowPref('zbw_messageMapperUI', remove=True)
    window=cmds.window('zbw_messageMapperUI', widthHeight=(600,400), title='zbw_messageMapper')

    cmds.tabLayout(h=400)
    cmds.columnLayout("mmAddNewConnections", h=400)
    #2nd small column for the persistant UI
    cmds.columnLayout(w=400, h=100)
    cmds.textFieldButtonGrp('zbw_tfbg_baseObj', cal=(1, "left"), cw3=(75, 200, 75), label="base object", w=400, bl="choose object", bc=partial(zbw_mmAddBase, "zbw_tfbg_baseObj", "clear"))

    #button to create new message/obj field groups
    cmds.separator(h=20, st="single")
    cmds.button(w=150, l="add new message attr/obj", c=zbw_mmAddMObjs)
    cmds.separator(h=20, st="single")

    cmds.setParent(u=True)
    cmds.rowColumnLayout("mmRCLayout", nc=2, co=(2, "left", 30))

    #back up to the 2nd columnLayout
    cmds.setParent(u=True)

    cmds.separator(h=20, st="single")
    #create button to delete last pair of text fields
    cmds.button("deleteLastButton", w=150, bgc=(.5,0,0), l="delete last attr/obj pair", c=zbw_mmDeleteLast)
    cmds.separator(h=20, st="double")

    #button to do connect all the attr/messages
    cmds.button("createMessageButton", w=150, bgc=(0,.5,0), l="create messages", c=zbw_mmConnectM)

    #back up to the main column
    cmds.setParent(u=True)
    #back up to the tab
    cmds.setParent(u=True)
    #new tab
    cmds.columnLayout("existingMessages", w=600, h=400)

    #Here we add stuff to the second tab
    cmds.textFieldButtonGrp("mmListMessages", cal=(1, "left"), cw3=(75,200,75), label="baseObject", w=400, bl="choose object", bc=partial(zbw_mmAddBase,"mmListMessages", "noClear"))
    cmds.separator(h=20, st="double")
    #button to create list of message attrs
    cmds.button(w=200, l="list all message attr for base", bgc = (0,.5,0), c=partial(zbw_mmListCurrentMessages, "mmListMessages"))
    cmds.separator(h=20, st="double")
    cmds.text("rt-click on the attr or object to change the connection")
    cmds.separator(h=20, st="double")

    cmds.rowColumnLayout("mmRCTextLayout", w=600, nc=3, cw=[(1, 200),(2,290),(3,100)])
    cmds.text("ATTR")
    cmds.text("OBJECT")
    cmds.text("DELETE")

    cmds.showWindow(window)
示例#20
0
 def addTab(self, tab):
     """
     adds tab object to tab UI, creating it's ui and attaching to main window
     """
     cmds.setParent(self.mainTabLayout)
     layout = tab.createUI(self.mainTabLayout)
     cmds.tabLayout( self.mainTabLayout, edit=True, tabLabel=((layout, tab.title())) );
     tab.parentWindow = self
     self.tabs.append(tab)
     
     return tab
示例#21
0
def cmdLoadBeforeSetting( pWindow, textField, tabLayout, radioCollection, packageFolderPath ):

    packageFolderPath = packageFolderPath.replace( '\\', '/' )
    packageFolderName = packageFolderPath.split( '/' )[-1]

    codeNames = []
    codePaths = []
    codeTypeIndex = 0
    
    for root, dirs, names in os.walk( packageFolderPath ):
        if not names:
            return None
        else:
            for name in names:
                codeName, extension = name.split( '.' )
                
                if codeName == '__init__': continue
                
                if extension == 'mel':
                    codeTypeIndex = 0
                elif extension == 'py':
                    codeTypeIndex = 1
                else:
                    continue
                codeNames.append( codeName )
                codePaths.append( root+'/'+name )
        break
    
    items = []
    cmds.setParent( tabLayout )
    mainCommandField = cmds.tabLayout( tabLayout, q=1, ca=1 )[0]
    
    uiCmdInst = uiCmd( pWindow )
    
    for i in range( len( codeNames ) ):
        codeName = codeNames[i]
        codePath = codePaths[i]
        
        f = open( codePath, 'r' )
        data = f.read()
        f.close()
        
        if codeName == 'MainCommand':
            scrollField = mainCommandField
        else:
            scrollField = uiCmdInst.addChild(tabLayout, codeName)
        cmds.scrollField( scrollField, e=1, tx=data )
    cmds.setParent( '..' )
    
    childItems = cmds.radioCollection( radioCollection, q=1, cia=1 )
    
    cmds.radioCollection( radioCollection, e=1, sl=childItems[codeTypeIndex] )
    cmds.textField( textField, e=1, tx=packageFolderName )
    cmds.tabLayout( tabLayout, e=1, tabLabel=items )
	def fkik_snap_build_ui( self ):

		self.get_globals()

		cmds.window( WINDOW_NAME, title = 'FKIK Snap Build {0}'.format( VERSION ), w = 500, h = 300 )

		cmds.rowColumnLayout( 'main_column', numberOfRows = 1 )
		cmds.rowColumnLayout( 'set_column', numberOfRows = 3 )

		self.set_scroll = cmds.textScrollList( self.set_scroll_str, w = 150, h = 300, dcc = self.rename_set, selectCommand = self.load_set_data )
		cmds.button( label = 'Add Set', c = self.add_set )
		cmds.button( label = 'Remove Set', c = self.remove_set )
		cmds.setParent( '..' )

		form = cmds.formLayout()
		tabs = cmds.tabLayout( w = 500, h = 300 )
		cmds.formLayout( form, edit = True, attachForm = ( ( tabs, 'top', 0 ), ( tabs, 'left', 0 ), ( tabs, 'bottom', 0 ), ( tabs, 'right', 0 ) ) )

		set_objects_column = cmds.rowColumnLayout()
		cmds.rowColumnLayout( numberOfColumns = 4, columnWidth = [( 1, 25 ), ( 2, 200 ), ( 3, 50 ), ( 4, 200 )] )

		self.object_order_scroll = cmds.textScrollList( self.object_number_str, allowMultiSelection = False, h = 300, selectCommand = functools.partial( self.obj_list_select, self.object_number_str ),
																																						dcc = self.change_obj_number )

		self.object_name_scroll = cmds.textScrollList( self.object_name_str, allowMultiSelection = False, h = 300, selectCommand = functools.partial( self.obj_list_select, self.object_name_str ),
																																					dcc = functools.partial( self.select_obj, self.object_name_str ) )

		self.object_connect_scroll = cmds.textScrollList( self.object_connect_str, allowMultiSelection = False, h = 300, selectCommand = functools.partial( self.obj_list_select, self.object_connect_str ),
																																							dcc = self.add_snap_obj )

		self.object_snap_scroll = cmds.textScrollList( self.object_snap_str, allowMultiSelection = False, h = 300, selectCommand = functools.partial( self.obj_list_select, self.object_snap_str ),
																																					dcc = functools.partial( self.select_obj, self.object_snap_str ) )
		cmds.setParent( '..' )

		cmds.button( label = 'Add Selected Object', c = self.add_obj )
		cmds.button( label = 'Remove Selected Object', c = self.remove_obj )

		cmds.separator( height = 20, style = 'in' )
		cmds.button( label = 'BUILD FKIK SNAP', c = self.build, bgc = [1, 1, 1] )
		cmds.setParent( '..' )

		set_connections_column = cmds.rowColumnLayout( numberOfColumns = 2 )

		self.opposite_set_scroll = cmds.textScrollList( h = 300, w = 225 )
		self.switch_scroll = cmds.textScrollList( h = 300, w = 225 )
		cmds.button( label = 'Pick Opposite Set', c = self.sets_list_ui )
		cmds.button( label = 'Add Selected FKIK Switch Attribute', c = self.add_switch )
		cmds.setParent( '..' )

		self.connected_set_scroll = cmds.tabLayout( tabs, edit = True, tabLabel = ( ( set_objects_column, 'Set Objects' ), ( set_connections_column, 'Opposite Set' ) ) )

		self.load_ui()

		cmds.showWindow()
示例#23
0
def createSkeletonLayout():
    createSkeleton_tabs = cmds.tabLayout(innerMarginWidth=5, innerMarginHeight=5)
    #---------------------
    createSkeleton_child1 = cmds.rowColumnLayout(numberOfColumns=1)
    modulesLayout()
    cmds.setParent( '..' )

    createSkeleton_child2 = cmds.rowColumnLayout(numberOfColumns=1)
    templatesLayout()
    cmds.setParent( '..' )

    cmds.tabLayout( createSkeleton_tabs, edit=True, tabLabel=((createSkeleton_child1, ' - MODULES - '),(createSkeleton_child2, ' - TEPLATES - ')))
 def simpleTemplateEditorAddAttrs( *args):
  attrsList = cmds.textScrollList(txtScrl1, q=1, si=1)
  if attrsList==None:
  	return
  currColChld = cmds.columnLayout(str(cmds.tabLayout(tabs1,q=1, st=1)),q=1, ca=1)
  curList = ""
  for temp in currColChld:
  	if cmds.textScrollList(temp, exists= True):
  		curList= temp
  for temp in attrsList:
  	cmds.textScrollList(curList, e=1, append=("      " + temp))
   	if (cmds.menuItem(verbMenuI, q=1, checkBox = True)) == True:
		print ('  - Added "' + temp + '" to the "' + str(cmds.tabLayout(tabs1,q=1, st=1)) +'" View ')
示例#25
0
    def _removeTab(self):
    	currTab = cmds.tabLayout( self.mainTab, q=True, selectTab=True)
    	tabIndex = cmds.tabLayout( self.mainTab, q=True, selectTabIndex=True) - 1 # tab index are 1 based.
    	# Find list item for tab
    	# Remove from list
    	# Remove from dictionary
    	# Remove ui
    	print( "Deleting: %s %s" %(currTab, tabIndex))
    	print( self.tabNames )
    	print( self.tabs )
    	cmds.deleteUI(self.tabNames[tabIndex] )
	del self.tabs[self.tabNames[tabIndex]]
	self.tabNames.pop(tabIndex)
	def createUi(self, parent):
		self.mainLayout = cmds.formLayout(parent = parent)
		headerUiLayout = self.createHeaderUi() # create the top buttons
		cmds.setParent('..')

		self.mainTabLayout = cmds.tabLayout(changeCommand = self.onTabChange)

		self.nodeListLayout = NodeListLayout() # create the node list layout
		self.listLayoutId = self.nodeListLayout.getId()
		cmds.setParent('..')

		allShaders = cmds.columnLayout()
		cmds.button()
		cmds.setParent('..')

		allTextures = cmds.columnLayout()
		cmds.button()
		cmds.setParent('..')

		cmds.formLayout(
			self.mainLayout,
			edit = 1,
			width = self.toolbarWidth,
			attachForm = [
				# (self.listLayoutId, 'left', 0),
				# (self.listLayoutId, 'right', 0),
				# (self.listLayoutId, 'bottom', 0),
				(self.mainTabLayout, 'left', 0),
				(self.mainTabLayout, 'right', 0),
				(self.mainTabLayout, 'bottom', 0),
				(headerUiLayout, 'left', 0),
				(headerUiLayout, 'right', 0),
			],
			attachControl = [
				(self.mainTabLayout, 'top', 0, headerUiLayout),
				# (self.listLayoutId, 'top', 0, headerUiLayout),
			],
		)

		cmds.tabLayout(
			self.mainTabLayout,
			edit = True,
			tabLabel = (
				(self.listLayoutId, 'Inspector'),
				(allShaders, 'Shaders'),
				(allTextures, 'Textures'),
			),
		)

		self.updateUiOnSelectionChange(self.listLayoutId)
		self.sjSelChangeId = self.createScriptJob()
def spaceMatchUI():
    if (cmds.window("spaceMatchWin", exists=True)):
        cmds.deleteUI("spaceMatchWin", window=True)

    widgets["window"] = cmds.window("spaceMatchWin", title="Space Matcher", w=250, h=300)
    widgets["mainLO"] = cmds.columnLayout()
    widgets["tabLO"] = cmds.tabLayout()
    widgets["getObjCLO"] = cmds.columnLayout()
    widgets["instruct"] = cmds.text("get obj, then attr, then space then do it")
    cmds.separator(h=10)

    #----------fill with selection automatically?
    widgets["objTFG"] = cmds.textFieldGrp(l="select obj", cw=([1,50],[2,150],[3,50]), cal=([1,"left"], [2,"left"],[3,"left"]), cc=clearList)
    widgets["matchObjButton"] = cmds.button(l="select object", c=partial(getObj, widgets["objTFG"]))
    cmds.separator(h=10)
    #-----------maybe here have it catch the selected obj by default
    #-----------and/or have a field for the attribute (default to "follow")
    widgets["getAttrButton"] = cmds.button(w=250, al="center", h=20, l="select enum space attr from obj", bgc= (.5, .5, 0), c=getAttr)
    #-----------when the attr is selected list the attrs automagically,
    widgets["spacesTSL"] = cmds.textScrollList(w=250, h=200, nr=8, ams=False, bgc=(.2, .2, .2))
    widgets["matchButton"] = cmds.button(w=250, al="center", h=40, bgc= (0,.5,0), l="space switch/match", c= doSpaceMatch)

    #tab for creation/setup of matching
    cmds.setParent(widgets["tabLO"])
    #----------in this tab, create frames. One (closable) to create constraint and fill items, check boxes for orient, position (with user selecting objects), one frame (maybe already filled out) (always open) for setting up attrs (message, strings)
    widgets["setupCLO"] = cmds.columnLayout()
    #frame layout for creating the constraints
    widgets["createFrameLO"] = cmds.frameLayout(l="create Constrants", collapsable=True, w=250)
    cmds.text("have em select for constraint")
    widgets["posRotCBG"] = cmds.checkBoxGrp(ncb=2, l1="translation", v1=True, l2="rotation", v2=True)
    #----------this button should just create the constraints on the objects in question, but then fill in what parts of the lower half it can
    widgets["createSetupButton"] = cmds.button(l="create constraints")

    cmds.setParent(widgets["setupCLO"])

    #frameLayout for setting up the attrs
    widgets["setupFrameLO"] = cmds.frameLayout(l="setup matching", collapsable=False, w=250, h=250)
    widgets["setupObjTFG"] = cmds.textFieldGrp(l="select ctrl obj", cw=([1,100],[2,150]), cal=([1,"left"], [2,"left"]))
    widgets["setupObjButton"] = cmds.button(l="get ctrl object", h=40, c= partial(getObj, widgets["setupObjTFG"]))

    widgets["setupConstrTFG"] = cmds.textFieldGrp(l="constraint", cw=([1,100],[2,150]), cal=([1,"left"], [2,"left"]))
    widgets["setupConstrButton"] = cmds.button(l="get constraint", h=40, c= partial(getObj, widgets["setupConstrTFG"]))

    #create list of attrs on constraint
    #attr = cmds.listAttr(sel,ud=True )
    #create list of spaces on obj attr

    cmds.tabLayout(widgets["tabLO"], e=True, tabLabel = ((widgets["getObjCLO"], "change spaces"),(widgets["setupCLO"], "setup matching")))

    cmds.showWindow(widgets["window"])
    cmds.window(widgets["window"], e=True, w=250, h=300)
示例#28
0
def renametab(*args):
    seltab = mc.tabLayout('tabs',q=1,st=1) 
    alltabs = mc.tabLayout('Animation',q=1,st=1)
    alltabs1 = mc.tabLayout('Poses',q=1,st=1)
    if seltab == 'Animation':        
        if alltabs=='':
            mc.confirmDialog (title='Error',message='No tabs to rename', button='OK',defaultButton='Yes')
        else:
            newname = mc.promptDialog(
                    text=alltabs,
                    title='Rename Tab',
                    message='New Tab Name:',
                    button=['OK', 'Cancel'],
                    defaultButton='OK',
                    cancelButton='Cancel',
                    dismissString='Cancel')
            if newname == 'OK':
                newtabname = mc.promptDialog (query=True, text=True)
                if newtabname =='':
                    mc.confirmDialog (title='Error' ,message= 'Sorry, The name entered is not valid', button=['OK'] ,defaultButton='Yes')
                    return
                else :
                    oldname = mc.tabLayout('Animation',q=1,st=1)
                    mc.tabLayout ('Animation',e=True,tl=((oldname, newtabname)))
                    Ren_tab =savepathini+'Savepose/Animation/'+oldname
                    Ren_tab1=savepathini+'Savepose/Animation/'+newtabname
                    mc.sysFile(Ren_tab,rename=Ren_tab1)
                    return
            else:
                return        
    else:
        if alltabs1 == '':
            mc.confirmDialog (title='Error',message='No tabs to rename', button='OK',defaultButton='Yes')    
        else:
            newname = mc.promptDialog(
                    title='Rename Tab',
                    message='New Tab Name:',
                    tx = alltabs1,
                    button=['OK', 'Cancel'],
                    defaultButton='OK',
                    cancelButton='Cancel',
                    dismissString='Cancel')
            if newname == 'OK':
                newtabname = mc.promptDialog (query=True, text=True)       
                if newtabname =='':
                    mc.confirmDialog (title='Error' ,message= 'Sorry, The name entered is not valid', button=['OK'] ,defaultButton='Yes')
                    return
                else:
                    oldname = mc.tabLayout('Poses',q=1,st=1)
                    mc.tabLayout ('Poses',e=True,tl=((oldname, newtabname)))
                    Ren_tab =savepathini+'Savepose/Poses/'+oldname
                    Ren_tab1=savepathini+'Savepose/Poses/'+newtabname
                    mc.sysFile(Ren_tab,rename=Ren_tab1)
                    return
            else:
                return
 def simpleTemplateEditorAddView( *args):
 
  result = cmds.promptDialog(title='New View Name ', message='Enter New View Name (Non-alpha characters will be stripped):',button=['OK', 'Cancel'],defaultButton='OK', cancelButton='Cancel', dismissString='Cancel')
  if result == 'OK':
        text = cmds.promptDialog(query=True, text= True)
	zz=""
	for c in text:
		if c.isalpha()==True:
			zz=zz+c
	if zz=="":
		cmds.confirmDialog(title = 'Invalid View Name',button="Retry", message='View names may only be text -- no numbers or other characters.\n\nTry a different name.\n')
		simpleTemplateEditorAddView()
	text=zz
        tabsList = cmds.tabLayout(tabs1,q=1, ca=1)
	test=""
	for temp in tabsList:
		if temp == text:
			test="Match"
	if test=="Match" :
		cmds.confirmDialog(title = 'View Exists',button="OK", message='The view "' + text + '" already exists.\n\nTry a different name.\n')
		simpleTemplateEditorAddView()		
	elif text=="" :
		return		
	else:
		tabsList.append(text)
		tabsList.sort(lambda x, y: cmp(x.lower(),y.lower()))
		tempC = 0
		counter = 1
		for tempX in tabsList:
			if tempX == text:
				tempC=counter
			counter=counter+1
		cmds.setParent(tabs1)
		cmds.columnLayout(text ,cat=["both",5], adj= True)
 		cmds.separator(style="none", h=8)
		cmds.textScrollList(nr=21, ams= True)
 		cmds.popupMenu()
		cmds.menuItem( bld=True, label= '                - -=Callbacks=- -')
		cmds.menuItem( divider=True )
		cmds.menuItem(label= 'Add a Callback to selected Attributes in the "' + text + '" view', command = simpleTemplateEditorAddCallbacks)
		cmds.menuItem( divider=True )
		cmds.menuItem( label= 'List Attributes with Callbacks in Current View', command = simpleTemplateEditorPrintCallbacks)
		cmds.menuItem( divider=True )
		cmds.menuItem( label= 'List Attributes with Callbacks in ALL Views', command = simpleTemplateEditorPrintAllCallbacks)
		cmds.separator(style="none", h=5)
		cmds.setParent('..')
		cmds.tabLayout(tabs1, e=1, mt = [len(tabsList), tempC])
		if (cmds.menuItem(verbMenuI, q=1, checkBox = True)) == True:
		  	print ('  - Added View "' + text +  '"')
 def simpleTemplateEditorDelView( *args):
  currView = str(cmds.tabLayout(tabs1,q=1, st=1))
  x=cmds.tabLayout(tabs1,q=1, ca=1)
  if len(x)==1:
  	cmds.confirmDialog(title='Warning - No Views Left ', message='There must be at least one View!\nCreate a New View before deleting this one!\n\n',button=['OK'])
  else:
  	if cmds.confirmDialog(button=["Delete View","Cancel"], defaultButton = "Cancel",cancelButton="Cancel", message="Delete " +currView + " view?\n\nYou will lose any unsaved template editing.\n\n") == "Delete View":

  		tempkeys = dictCallbacks.keys()
  		for temp in tempkeys:
  			if temp.startswith(currView):
  				del dictCallbacks[temp]
		cmds.deleteUI(currView, layout= True)
		if (cmds.menuItem(verbMenuI, q=1, checkBox = True)) == True:
		  	print ('  - View "'+ currView + '" has been deleted')
示例#31
0
def selectDir(F=True):
    global tabs
    tabState=cmds.tabLayout(tabs,q=1,selectTabIndex=1)#en que tab estoy?
    if tabState==1:#tab de export
        global epathShader
        global epathAlembic
        if F:
            multifilter="Maya Files (*.ma *.mb)"
            folder=cmds.fileDialog2(cap=" - ELIJE ARCHIVO SHADER - ",startingDirectory='M:/MAYA/01_CHAR',fm=4,ff=multifilter)#selecciona Archivo
            filePath=str(str(folder[0]).replace('\\','/'))
            cmds.textField(epathShader, edit=True,text=filePath)
        else:
            folder=cmds.fileDialog2(cap=" - ELIJE CARPETA DONDE GUARDAR - ",startingDirectory='M:/',fm=3)#seleccionar Carpeta
            filePath=str(str(folder[0]).replace('\\','/'))
            cmds.textField(epathAlembic, edit=True,text=filePath)
    if tabState==2:#tab de import
        global ipathShader
        global ipathAlembic
        if F:
            multifilter="Maya Files (*.ma *.mb)"
            folder=cmds.fileDialog2(cap=" - ELIJE ARCHIVO SHADER- ",startingDirectory='M:/MAYA/01_CHAR',fm=4,ff=multifilter)#selecciona Archivo
            filePath=str(str(folder[0]).replace('\\','/'))
            cmds.textField(ipathShader, edit=True,text=filePath)
        else:
            multifilter="*.abc"
            filen=cmds.fileDialog2(cap=" - ELIJE ARCHIVO ALEMBIC - ",startingDirectory='M:/MAYA/01_CHAR',fm=4,ff=multifilter)#selecciona Archivo
            filePath=str(str(filen[0]).replace('\\','/'))
            cmds.textField(ipathAlembic, edit=True,text=filePath)
    if tabState==3:#tab de update
        global upathAlembic
        if F:
            multifilter="*.abc"
            filen=cmds.fileDialog2(cap=" - ELIJE ARCHIVO ALEMBIC - ",startingDirectory='M:/MAYA/01_CHAR',fm=4,ff=multifilter)#selecciona Archivo
            filePath=str(str(filen[0]).replace('\\','/'))
            cmds.textField(upathAlembic, edit=True,text=filePath)
示例#32
0
def alembic():
    global tabs
    tabState=cmds.tabLayout(tabs,q=1,selectTabIndex=1)#en que tab estoy?
    if tabState==1:#tab de export
        global eloadNameSpace
        global epathShader
        global epathAlembic
        #tico:Asset
        #D:/PH_SCRIPTS/SCENES_RIG/PACOTEST/CHAR/TICO/03_TICO_SHD.ma
        #D:/PH_SCRIPTS/SCENES_RIG/PACOTEST/ALEMBIC
        rigNamespace = cmds.textField(eloadNameSpace, edit=False, text=True, q=1)
        assetSHDPath = cmds.textField(epathShader, edit=False, text=True, q=1)
        cachePath    = cmds.textField(epathAlembic, edit=False, text=True, q=1)
        PS.MM.cache.exportAssetCache( rigNamespace, assetSHDPath, cachePath )
    elif tabState==2:#tab de import
        global iloadNameSpace
        global ipathShader
        global ipathAlembic
        assetNamespace = cmds.textField(iloadNameSpace, edit=False, text=True, q=1)
        assetSHDPath = cmds.textField(ipathShader, edit=False, text=True, q=1)
        cachePath    = cmds.textField(ipathAlembic, edit=False, text=True, q=1)
        PS.MM.cache.referenceAssetWithCache( assetNamespace, assetSHDPath, cachePath )
    elif tabState==3:#tab de update
        global uloadNameSpace
        global upathAlembic
        assetNamespace = cmds.textField(uloadNameSpace, edit=False, text=True, q=1)
        cachePath    = cmds.textField(upathAlembic, edit=False, text=True, q=1)
        PS.MM.cache.updateAssetCache( assetNamespace, cachePath )
 def simpleTemplateEditorResetTemplate( *args):
  feedback = ""
  if cmds.textFieldGrp(txtFld1, q=1,text=True) == "":
  	feedback="Reset Editor"
  else:
  	feedback = cmds.confirmDialog(button=["Reset Editor","Continue Editing"], defaultButton = "Continue Editing",cancelButton="Continue Editing", message="Reset Template Editor?\n\nYou will lose any unsaved template editing.\n\n")
  if feedback == "Reset Editor":
	  if (cmds.menuItem(verbMenuI, q=1, checkBox = True)) == True:
	  	print "  - Template Editor Reset"
	  temp2= []
	  temp2= cmds.ls(sl=True)
	  if len(temp2)!=1:
		cmds.confirmDialog(button="OK", message="\n\nThere is no node selected.\n\nSelect a node and Reset the \nEditor to start creating views.\n\n")
	  else:
		currentNode=temp2[0]
		currentType = cmds.nodeType(currentNode)
		cmds.textScrollList(txtScrl1, e=1, ra=1)
		cmds.textFieldGrp(txtFld1, e=1, text=currentType)
		cmds.textField(textFld2, e=1, text=currentNode)
	  	tempAllAttrs = cmds.listAttr()
	  	tempAllAttrs.sort()
	  	for temp in tempAllAttrs:
			try:
		  		name = cmds.attributeQuery(temp, n=currentNode, ln=True)
				tempDType = cmds.getAttr (currentNode+'.'+temp, type=True)
				if tempDType != None:
					cmds.textScrollList(txtScrl1, e=1, append=temp)
			except:
				if (cmds.menuItem(verbMenuI, q=1, checkBox = True)) == True:
				  	print ("  - " + currentNode+'.'+temp + ' was skipped')
	  cmds.deleteUI("simpleTemplateEditorUITabsLayout", layout=True)
	  cmds.setParent(col33)
	  cmds.tabLayout("simpleTemplateEditorUITabsLayout")
	  for tempStr in startupViews:
		cmds.columnLayout(tempStr,cat=["both",5], adj=True)
 		cmds.separator(style="none", h=8)
		tmptxtScrl = cmds.textScrollList(nr=21, ams=True)
		cmds.popupMenu()
		cmds.menuItem(label= '                - -=Callbacks=- -')
		cmds.menuItem( divider=True )
		cmds.menuItem(label= 'Add a Callback to selected Attributes in the "' + tempStr + '" view', command = simpleTemplateEditorAddCallbacks)
		cmds.menuItem( divider=True )
		cmds.menuItem(label= 'List Attributes with Callbacks in Current View', command = simpleTemplateEditorPrintCallbacks)
		cmds.menuItem( divider=True )
		cmds.menuItem(label= 'List Attributes with Callbacks in ALL Views', command = simpleTemplateEditorPrintAllCallbacks)
		cmds.setParent('..')
	  dictCallbacks.clear()
    def creatUi(self):
        'UI core functions'
        if cmds.window(self.uiName, ex=1):
            cmds.deleteUI(self.uiName)
        cmds.window(self.uiName, t=u'提交渲染前检查工具', wh=(550, 400))
        self.maiform = cmds.formLayout(numberOfDivisions=100)

        Help_b = cmds.button(l=u'帮助', h=30)
        close_b = cmds.button(l=u'关闭', h=30, c=self.closeWindow)
        paneL = cmds.paneLayout(configuration='vertical2', ps=[1, 60, 40])

        self.tabs = cmds.tabLayout(innerMarginWidth=5, innerMarginHeight=5)

        self.button_listScr_CJ = cmds.scrollLayout(vst=1, hst=0, cr=1)
        frameCJ = cmds.frameLayout(label=u'场景提交渲染前执行按钮',
                                   borderStyle='etchedIn')
        bb = CreateButton()
        bb.create_button(True)

        cmds.setParent(self.tabs)
        self.button_listScr_JS = cmds.scrollLayout(vst=1, hst=0, cr=1)
        frameJS = cmds.frameLayout(label=u'角色提交渲染前执行按钮',
                                   borderStyle='etchedIn')
        cc = CreateButton()
        cc.create_button(False)

        cmds.tabLayout(self.tabs,
                       edit=True,
                       tabLabel=((self.button_listScr_CJ, u'场景'),
                                 (self.button_listScr_JS, u'角色')))

        cmds.setParent(paneL)
        self.help_listScr = cmds.scrollLayout(vst=1, hst=0, cr=1)
        cmds.frameLayout('ann_ts_frame', label=u'按钮提示', borderStyle='etchedIn')

        cmds.formLayout(self.maiform,
                        e=True,
                        af=[(Help_b, 'left', 5), (Help_b, 'bottom', 5),
                            (close_b, 'right', 5), (close_b, 'bottom', 5),
                            (paneL, 'left', 5), (paneL, 'right', 5),
                            (paneL, 'top', 5)],
                        ac=[(paneL, 'bottom', 5, Help_b),
                            (Help_b, 'right', 5, close_b)],
                        ap=[(close_b, 'left', 0, 50)])
        #cmds.tabLayout(self.tabs, edit=True, tabLabel=((frameCJ, u'场景'), (frameCJ, u'角色')))
        cmds.window(self.uiName, e=True, wh=(730, 400))
        cmds.showWindow(self.uiName)
示例#35
0
    def __init__(s):
        cmds.window(t="Anim Train!")
        cmds.columnLayout(adj=True)
        tabs = cmds.tabLayout()

        # Apply
        apply_col = cmds.columnLayout(adj=True, p=tabs)
        cmds.text(
            l="Apply training to current animation, on selected objects.")
        s._apply_path = PathBrowse("Training Data (training):", False, fm=3)
        s._apply_range = FrameRange()
        cmds.button(l="Apply to selected!", c=s.apply)

        # Export
        export_col = cmds.columnLayout(adj=True, p=tabs)
        cmds.text(
            l="Export animation from selected objects to be used for later training."
        )
        s._export_path = PathBrowse("Export (anim):", "*.anim", fm=0)
        s._export_range = FrameRange()
        cmds.button(l="Export Animation", c=s.export)

        # Train
        train_col = cmds.columnLayout(adj=True, p=tabs)
        cmds.text(l="Learn differences between animation data.")
        s._train_path_train = PathBrowse("Training Data (training):",
                                         False,
                                         fm=3)
        s._train_path_source = PathBrowse("Source (anim):", "*.anim", fm=1)
        s._train_path_expect = PathBrowse("Expected (anim):", "*.anim", fm=1)
        cmds.button(l="Train", c=s.train)

        # Test
        test_col = cmds.columnLayout(adj=True, p=tabs)
        cmds.text(l="Check accuracy.")
        s._test_path_train = PathBrowse("Training Data (training):",
                                        False,
                                        fm=3)
        s._test_path_source = PathBrowse("Source (anim):", "*.anim", fm=1)
        s._test_path_expect = PathBrowse("Expected (anim):", "*.anim", fm=1)
        cmds.button(l="Test", c=s.test)

        cmds.tabLayout(tabs,
                       e=True,
                       tl=[(apply_col, "Apply"), (export_col, "Export"),
                           (train_col, "Train"), (test_col, "Test")])
        cmds.showWindow()
示例#36
0
def appendUI():
    """UI for appendPath script"""

    #create window with 3 text fields, buttons call up proc to add path
    if cmds.window("appendPath", exists=True):
        cmds.deleteUI("appendPath")

    widgets["win"] = cmds.window("appendPath", t="zbw_appendPath", w=500, h=5, s=False, rtf=True)

    #create some menus for saving and loading
    cmds.setParent(widgets["win"])
    widgets["menu"] = cmds.menuBarLayout()
    widgets["menuFile"] = cmds.menu(label="file")
    cmds.menuItem(l='Clear Values', c=clearValues)
    cmds.menuItem(l="Save Add Paths", c=saveValues)
    cmds.menuItem(l="Load Add Paths", c=loadValues)

    widgets["tabLO"] = cmds.tabLayout(h=210)
    widgets["columnLO"] = cmds.columnLayout("Add Paths", w=500)
    widgets["path1"] = cmds.textFieldButtonGrp(l="path1", cal=[(1, "left"), (2,"left"),(3,"left")], cw3=(40, 410, 50), bl="<<<", bc=partial(addToField, 1))
    widgets["path2"] = cmds.textFieldButtonGrp(l="path2", cal=[(1, "left"), (2,"left"),(3,"left")], cw3=(40, 410, 50), bl="<<<", bc=partial(addToField, 2))
    widgets["path3"] = cmds.textFieldButtonGrp(l="path3", cal=[(1, "left"), (2,"left"),(3,"left")], cw3=(40, 410, 50), bl="<<<", bc=partial(addToField, 3))
    widgets["melCBG"] = cmds.checkBoxGrp(ncb=1, l1="also add to mel path (MAYA_SCRIPT_PATH)", v1=1, cal=[(1, "left"), (2,
                                                                                                                 "left")], cw = [(1, 100), (2,25)])
    cmds.separator(h=10, st="single")

    widgets["buttonRCL"] = cmds.rowColumnLayout(nc=3, w=500, cw=[(1,123),(2,247 ),(3,123)])
    widgets["addCloseBut"] = cmds.button(l="Add and Close", w=120, h=30, bgc=(.6, .8, .6), c=applyClose)
    widgets["addBut"] = cmds.button(l="Add Paths!", w=245, h=30, bgc=(.8, .8, .6), c=apply)
    widgets["closeBut"] = cmds.button(l="Close", w=120, h=30, bgc=(.8,.6,.6), c=close)

    cmds.setParent(widgets["columnLO"])
    cmds.separator(h=5, style="single")

    cmds.text("Click the '<<<' buttons to browse for paths to add. Click the 'Add' button to add those \npaths to the 'sys.path' list. Use the 'ViewPath' tab to view current list of paths.", al="center")
    cmds.text("Use 'file->save' to save the selected paths. Use 'file->load' to load previously saved paths")

    #back to window
    cmds.setParent(widgets["tabLO"])
    widgets["columnLO2"] = cmds.columnLayout("View Paths", w=500)
    cmds.text("Double-click to display full path in script editor")
    widgets["listTSL"] = cmds.textScrollList(w=500, h=120, fn="smallPlainLabelFont", append=["click button below",
                                                                                           "to refresh this list!"], dcc=printMe)
    refresh()
    cmds.separator(h=5, style="single")

    widgets["columnLO3"] = cmds.columnLayout(w=500)
    widgets["refreshBut"] = cmds.button(l="Refresh Paths", w=500, h=20, bgc=(.5, .5, .6), c=refresh)

    cmds.rowColumnLayout(nc=3, cw=[(1,200),(2,150 ),(3,150)])
    widgets["removeBut"] = cmds.button(l="Remove Selected", w=180,  h=20, bgc=(.7, .5, .5), c=removePath)
    widgets["topBut"] = cmds.button(l="Selected To Top", w=130, h=20, bgc=(.7, .5, .5), c=topPath)
    widgets["bottomBut"] = cmds.button(l="Selected To Bottom", w=130, h=20, bgc=(.7, .5, .5), c=bottomPath)

    #load (and check) previous saves


    cmds.showWindow(widgets["win"])
    cmds.window(widgets["win"], e=True, w=5, h=5, rtf=True)
示例#37
0
def activeShelf():
    """Returns the currently active maya shelf as a :class:`Shelf` object.

    :return:
    :rtype: :class:`Shelf`
    """
    return Shelf(
        cmds.tabLayout(primaryshelfLayout(), query=True, selectTab=True))
示例#38
0
 def _addTab(self, name):
     '''
     Adds an additional tab to the system.
     '''
     
     # Make sure that a tab exists!
     
     col = cmds.columnLayout(parent=self.mainTab)
     cmds.text( l="", w=415)
     
     # frm = cmds.formLayout( parent=self.mainTab, w=300, h=300 )
     
     
     cmds.tabLayout( self.mainTab, e=1, tl=[col, name])
     self.tabs[col] = []
     self.tabNames.append(col )
     return col
示例#39
0
def makeShelfButton(command, sourceType='python'):
    shelfLayout = mel.eval('string $temp = $gShelfTopLevel')
    shelf = cmds.tabLayout(shelfLayout, query=True, st=True)
    cmds.shelfButton(annotation='Saved selection',
                     image1='menuIconWindow.png',
                     sourceType=sourceType,
                     command=command,
                     parent=shelf)
 def __init__(self):
     self.projInfo = ppc.ProjectInfo()
     if not self.projInfo.validProject:
         utils.msgWin("Error", "Not a valid Project", False)
         return
     self.cachePipe = True if self.projInfo.pipelineType == "cache" else False
     if mc.window('shotManager', exists=1): mc.deleteUI('shotManager')
     if mc.windowPref('shotManager', exists=1):
         mc.windowPref('shotManager', r=1)
     if mc.dockControl('shotDock', q=True, exists=1):
         mc.deleteUI('shotDock')
     if mc.tabLayout("mainShotTab", ex=True): mc.deleteUI("mainShotTab")
     mel.eval(
         "global string $gMainWindow;tabLayout -parent $gMainWindow mainShotTab"
     )
     self.win = mc.loadUI(f=shotUi)
     mc.control(self.win, e=1, ebg=1, p="mainShotTab")
     mc.tabLayout("mainShotTab", e=1, tv=0)
     mc.dockControl('shotDock',
                    w=375,
                    a='right',
                    con="mainShotTab",
                    aa=['right', 'left'],
                    l='Toonz Shot Manager',
                    vcc=self.clearDock)
     eporsq = "Episode : " if self.projInfo.epOrSeq == "ep" else "Sequence : "
     mc.text("lblEpisode", e=True, l=eporsq)
     breakDown = self.projInfo.breakDown
     self.breakDownPath = "%s/%s" % (self.projInfo.mapDrive, breakDown)
     self.setDept()
     self.deptChange()
     mc.optionMenu('cmbDepts', e=1, cc=lambda event: self.deptChange())
     mc.optionMenu('cmbEpisode', e=1, cc=lambda event: self.loadShots())
     mc.optionMenu('cmbShot', e=1, cc=lambda event: self.selectDeptVer())
     mc.optionMenu('cmbDeptVer', e=1, cc=lambda event: self.loadVersions())
     mc.optionMenu('cmbRetake', e=1, cc=lambda event: self.loadVersions())
     mc.optionMenu('cmbCategory', e=1, cc=lambda event: self.fgbgSwitch())
     mc.button('btnOpen', e=1, c=lambda event: self.openFile("file"))
     mc.button('btnOpenVer', e=1, c=lambda event: self.openFile("ver"))
     mc.button('btnImpCam', e=1, c=lambda event: self.importCamera())
     mc.button('btnOpenBlast', e=1, c=lambda event: self.openBlast())
     mc.button('btnCreateWs', e=1, c=lambda event: self.createWs())
     mc.button('btnSaveToWs', e=1, c=lambda event: self.saveFile())
     mc.button('btnSaveToLocal', e=1, c=lambda event: self.saveFile(True))
     mc.checkBox('chkPlayblast', e=1, cc=lambda event: self.toggleCache())
     mc.checkBox('chkCache', e=1, cc=lambda event: self.togglePb())
示例#41
0
 def add_utility_mingler(self, k, v, msw_switch_Layout, mswPane):
     cmds.frameLayout(msw_switch_Layout, edit=True, label=k+ ' Utility Shop Toolkit')
     cmds.button(label='+ChopColorize', height=25, backgroundColor=[0.3, 0.3, 0.3],
                 command=partial(self.chop_mesh_manager.heyWitch_geoChopRandomColourSet, k))
     msw_grab_tabs = self.global_work_space['miscData']['switch_layouts']['msw_grab_tabs']
     if cmds.layout(msw_grab_tabs, ex=True):
         cmds.deleteUI(msw_grab_tabs, layout=True)
     msw_grab_tabs = cmds.tabLayout(innerMarginWidth=5, innerMarginHeight=5, parent=mswPane)
     self.global_work_space['miscData']['switch_layouts']['msw_grab_tabs'] = msw_grab_tabs
     raw_mesh_grid_layout = cmds.gridLayout(numberOfColumns=2, cellWidthHeight=(125, 25))
     cmds.select(k + '_grp', hierarchy=True)
     cmds.select(k + '_grp', deselect=True)
     rawMeshList = cmds.ls(sl=True, type='transform')
     for raw_mesh in rawMeshList:
         cmds.button(label=raw_mesh, command=partial(self.helper.heyWitch_selectRawMesh, raw_mesh))
     cmds.setParent('..')
     cmds.tabLayout(msw_grab_tabs, edit=True, tabLabel=(raw_mesh_grid_layout, 'Raw Meshes'))
示例#42
0
def jpmAutoRig_makePlaceCubes(button):
    pickedTab = cmds.tabLayout("autoRigTabs", q=1, st=1)
    print pickedTab

    myCubesFile = ""
    myCubesContents = helper.jpReadFile(myCubesFile)
    mm.eval(myCubesContents)
    print button
示例#43
0
def dynamic_button_layout(settings_data, picker_namespace):
    #for each key in set keys make a new tab, named after the name
    set_keys = settings_data['config']['set_keys']
    
    #make our layout objects
    form = cmds.formLayout()
    tabs = cmds.tabLayout(innerMarginWidth=5, innerMarginHeight=5)

    #set padding
    cmds.formLayout(form, edit=True, 
                    attachForm=(
                        (tabs, 'top', 0),
                        (tabs, 'left', 0),
                        (tabs, 'bottom', 0),
                        (tabs, 'right', 0)
                        )
                    )

    tab_name_list = []
    tab_content_list = []

    #check for super tabs or regular tabs
    use_super_sets = False

    #check if using super set style tabs
    if 'super_sets' in settings_data.get('config_advanced', []) :
        use_super_sets = True 

    if use_super_sets:
        add_super_set_tabs(settings_data,set_keys,
                    tab_name_list,tab_content_list,
                    picker_namespace)
    else:
        add_set_tabs(settings_data,set_keys,
                    tab_name_list,tab_content_list,
                    picker_namespace)

    #make the tuple how maya wants it
    tab_label_tuple = tuple((content,name) for content, name in 
        zip(tab_content_list, tab_name_list))

    #add the contents
    cmds.tabLayout( tabs, edit=True, tabLabel=tab_label_tuple)

    #escape the layout
    cmds.setParent('..')
示例#44
0
    def get_text_edit(self):
        'get current qtextedit from script editor'
        tabIdx = mc.tabLayout(gCommandExecuterTabs, q=1, st=1)
        _logger.debug('current tab: %s', tabIdx)
        cmd_executer = mc.layout(tabIdx, q=1, ca=1)[0]
        ptr = apiUI.MQtUtil.findControl(cmd_executer)

        self.textedit = sip.wrapinstance(long(ptr), QObject)
示例#45
0
def returnActiveAOVs():
    index = cmds.tabLayout('aovTab', q=True, sti=True)
    aovs = tabs[index].keys()
    activeAOVs = []
    for i in aovs:
        if cmds.checkBox(i, v=True, q=True):
            activeAOVs.append(i)
    return activeAOVs
    def createWindow(self):
        '''
            creates main GUI window and it's contents
        '''

        BaseToolWindow.createWindow(self)

        self.targetUI = TargetDataDisplay()
        self.actions = MainUiActions(self.windowName)

        self.mainMenu = MainMenu()
        self.mainMenu.create()

        # putting tabs in a from targetUiLayout is needed to workaround maya2011
        # bug with an additional empty tab appearing otherwise
        #        form = FormLayout(parent=self.windowName)
        #        targetUiLayout = self.targetUI.create(form)
        #        form.attachForm(targetUiLayout, 0, Constants.MARGIN_SPACING_HORIZONTAL,None,Constants.MARGIN_SPACING_HORIZONTAL)
        #
        #        self.mainTabLayout = cmds.tabLayout(childResizable=True,parent=form,scrollable=False,innerMarginWidth=3)
        #        form.attachControl(self.mainTabLayout, targetUiLayout, Constants.MARGIN_SPACING_VERTICAL, None,None,None)
        #        form.attachForm(self.mainTabLayout, None, 0,0,0)

        self.splitPosition = PersistentValueModel(
            name="ngSkinTools_mainWindow_splitPosition", defaultValue=50)

        def updateSplitPosition(*args):
            size = cmds.paneLayout(horizontalSplit, q=True, paneSize=True)
            # returns (widht, height, width, height)
            self.splitPosition.set(size[1])

        horizontalSplit = cmds.paneLayout(
            configuration="horizontal2",
            width=100,
            height=200,
            separatorMovedCommand=updateSplitPosition)
        if Utils.getMayaVersion() >= Utils.MAYA2011:
            cmds.paneLayout(horizontalSplit, e=True, staticHeightPane=2)
        cmds.paneLayout(horizontalSplit,
                        e=True,
                        paneSize=(1, 100, self.splitPosition.get()))
        cmds.paneLayout(horizontalSplit,
                        e=True,
                        paneSize=(2, 100, 100 - self.splitPosition.get()))

        targetUiLayout = self.targetUI.create(horizontalSplit)
        self.mainTabLayout = cmds.tabLayout(childResizable=True,
                                            parent=horizontalSplit,
                                            scrollable=False,
                                            innerMarginWidth=3)

        self.tabPaint = self.addTab(TabPaint())
        self.tabMirror = self.addTab(TabMirror())
        self.tabRelax = self.addTab(TabSkinRelax())
        self.tabAssignWeights = self.addTab(TabAssignWeights())
        self.tabSettings = self.addTab(TabSettings())

        self.actions.updateEnabledAll()
示例#47
0
def standardWindow( windowName, title, buttons):
	# this proc creates a standard window with a columnLayout and some button below
	# if $windowName is empty, a new window will be created (otherwise the existing window is shown
	
	# it returns an array with:
	# - the UI name of the window
	# - the UI name of the columnLayout
	# - the names of the buttons
	
	# The window is NOT shown, so that the contents can be added before the window appears
	
    if len( buttons) == 0:
        mc.error( 'This window should have at least one button!')
    
    if windowName == '': windowName = mc.window( w=414, h=402, title=title)        # if no UI name is given then create a window
    elif mc.window( windowName, exists=1):
        mc.showWindow( windowName)
        return( windowName)
    else: mc.window( windowName, w=414, h=402, title=title)
    
    result = []
    result.append( windowName)
    
    form = mc.formLayout( nd=100)
    tab = mc.tabLayout( tv=0, scr=0, cr=1)
    result.append( mc.columnLayout( adj=1))
    
    mc.setParent( form)
    sep = mc.separator( h=10)
    
    for b in buttons: result.append( mc.button( label=b))
    
    mc.formLayout( form, edit=1,
                   attachForm = [(tab, 'top', 10),
                                 (tab, 'left', 5),
                                 (tab, 'right', 5),
                                 (sep, 'left', 5),
                                 (sep, 'right', 5)],
                   attachControl = [(tab, 'bottom', 5, sep),
                                    (sep, 'bottom', 5, result[2])],
                   attachNone = [(sep, 'top')])

    mc.formLayout( form, edit=1,
                   attachForm = [(result[2], 'left', 5),
                                 (result[2], 'bottom', 5),
                                 (result[-1], 'right', 5),
                                 (result[-1], 'bottom', 5)],
                   attachNone = [(result[2], 'top'),
                                 (result[-1], 'top')])

    gapStep = 100 / len(buttons)
    for i in range( 3, len( result)):
        mc.formLayout( form, edit=1,
                    attachPosition = [(result[i-1], 'right', 2, gapStep*(i-2)),
                                      (result[i], 'left', 2, gapStep*(i-2))],
                    attachForm = [(result[i], 'bottom', 5)])

    return result
示例#48
0
    def createCategoriesLayout(self):

        print("ML Log: createCategoriesLayout")
        # Create tab, form and scroll layouts.
        tabLayout = cmds.tabLayout(innerMarginWidth=5,
                                   innerMarginHeight=15,
                                   borderStyle="full")
        formLayout = cmds.formLayout(numberOfDivisions=100)
        scrollLayout = cmds.scrollLayout(backgroundColor=self.backgroundColor,
                                         horizontalScrollBarThickness=0,
                                         verticalScrollBarThickness=16,
                                         childResizable=True)

        # Lay out categories vertically.
        catergories = cmds.columnLayout()

        # Add layouts with index based names for easy lookup.
        index = 0

        for category in self.manifest["categories"]:
            cmds.iconTextButton("RPRCategory" + str(index),
                                style='iconAndTextHorizontal',
                                image='material_browser/folder_closed.png',
                                label=category["name"],
                                height=20,
                                command=partial(self.selectCategory, index))
            index += 1

        # Assign the form to the tab.
        cmds.tabLayout(tabLayout,
                       edit=True,
                       tabLabel=((formLayout, 'Categories')))

        # Lay out components within the form.
        cmds.formLayout(formLayout,
                        edit=True,
                        attachForm=[(scrollLayout, 'top', 5),
                                    (scrollLayout, 'left', 5),
                                    (scrollLayout, 'bottom', 5),
                                    (scrollLayout, 'right', 5)])

        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')
示例#49
0
    def widget(self, widgetParent):
        wd = mc.columnLayout(widgetParent, q=True, w=True)
        mc.columnLayout(adjustableColumn=True, p=widgetParent, w=wd)
        mc.separator()

        mc.rowLayout(numberOfColumns=3,
                     columnWidth2=(80, (self.canvasSize[0] - 80 - 20)),
                     adjustableColumn=2,
                     cl2=('left', 'both'))
        mc.text(l=' Current Path :')
        pathTxFld = mc.textField('buildDish_UI_data_dir_txFld', ed=False)
        self.tabCtrl_A = mc.tabLayout(innerMarginWidth=5,
                                      innerMarginHeight=5,
                                      p=widgetParent)

        #---------------------------------------------------------------------------------
        self.cookTab()
        #---------------------------------------------------------------------------------
        self.deliverTab()

        modulePath = ''.join(
            os.path.dirname(inspect.getfile(self.resizeBuildTabs)) + '\src')
        mc.textField(pathTxFld, e=True, tx=modulePath)
        mc.tabLayout(self.tabCtrl_A, e=True, tabLabelIndex=[1, 'Cook'])
        mc.tabLayout(self.tabCtrl_A, e=True, tabLabelIndex=[2, 'Deliver'])
        mc.tabLayout(self.tabCtrl_A, e=True, cc=self.resizeBuildTabs)
示例#50
0
def blendShapeManage():
	if cmds.window('blendShapeManage',exists=True):
		cmds.deleteUI('blendShapeManage')
	cmds.window('blendShapeManage',mb=True,t= 'blendShapeManage_'+blendShapeManage_version())
	cmds.menu(l='Eidt')
	cmds.menuItem(l='Append',c=lambda *args:CreativeBlendShape().AppendTarget() and freshTargetBlendShape("append"))
	cmds.menuItem(l='Delete',c=lambda *args:CreativeBlendShape().RemoveTarget() and freshTargetBlendShape("remove"))
	cmds.menuItem(l='Gain',c=lambda *args:CreativeBlendShape().GainTarget())
	cmds.menuItem(l='Rename',c= lambda *args:CreativeBlendShape().RenameTarget() and freshTargetBlendShape("append"))
	cmds.menuItem(l='RevertTarget',c= lambda *args:CreativeBlendShape().GainTarget_All_for())

	cmds.setParent('..')
	cmds.menu(l='help')
	cmds.menuItem(label= "GGHelp" )
	cmds.menuItem(d=True)
	cmds.menuItem(label ="Close",c =lambda *args:cmds.window('blendShapeManage',e=True,vis=0))
	cmds.menuItem(label =blendShapeManage_version())
	cmds.columnLayout('')
	cmds.rowColumnLayout( numberOfColumns=2, columnWidth=[(1, 300),(2,180)] )
	cmds.textFieldGrp('meshShapeText',label='BlendShape mesh',cw2 = (100,200),text=meshShapeSel() ,ed=False) 
	cmds.text(label='-> '+blendShape_Node())
	#cmds.button('buttonBlendShapeMesh',label = 'Reload',c='cmds.button(e=1,)' )
	cmds.setParent('..')

	form = cmds.formLayout()
	tabs = cmds.tabLayout(innerMarginWidth=5, innerMarginHeight=5)
	cmds.formLayout( form, edit=True, attachForm=((tabs, 'top', 0), (tabs, 'left', 0), (tabs, 'bottom', 0), (tabs, 'right', 0)) )
	cmds.columnLayout('child1')
	Create_UI()
	cmds.setParent( '..' )
	cmds.columnLayout('child2')
	Edit_UI()
	cmds.setParent( '..' )
	cmds.columnLayout('child3')
	Clone_UI()
	cmds.setParent( '..' )
	cmds.tabLayout( tabs,cc=lambda *args: freshTargetBlendShape("append"), edit=True,tabLabel=(('child1', 'Create'),('child2', 'Edit'),('child3', 'Clone')))
	cmds.setParent( '..' )

	#cmds.columnLayout('')
	#cmds.textField('', text=meshShapeSel() ,ed=False) 
	#cmds.setParent( '..' )	

	cmds.showWindow('blendShapeManage')
	cmds.window('blendShapeManage',edit=True,w=460,h=600)
示例#51
0
    def p(self):  
        pathA=self.pathA1[0:]
        getpath=cmds.textField('Path',q=True,tx=True)
        delto=getpath.replace('\\','/')
        path=delto+'/'    
        trvsel=cmds.treeView('ok',q=True,si=True)
        trvselP=cmds.treeView('ok',q=True,ip=trvsel[0])
        object=cmds.tabLayout('tuplistlayout',q=True,st=True)
        Path1=path+trvselP+'/'+trvsel[0]+'/'+object[0:]+'/'
        id1=cmds.getFileList(folder=Path1)
        slLc=cmds.scrollLayout(object[0:],q=True,ca=True)
        #cmds.rowColumnLayout('RowL',numberOfColumns=1,p=object[0:])
        if slLc!=None:
            for slLcobj in slLc:
                cmds.deleteUI(slLcobj,control=True)
        else:
            print '没有'
        if cmds.formLayout('RowL',ex=True):
             cmds.deleteUI('RowL')
        #cmds.rowColumnLayout('RowL',numberOfColumns=1,p=object[0:])  
        cmds.formLayout('RowL',p=object[0:]) 
        ksymbolButtonk=[] 
        ktextk=[]
        k_tW=100
        k_tH=100 
        k_tH=20     
            
        for i in range(len(id1)):
            pic=[w for w in os.listdir(Path1+id1[i]+'/') if w.endswith('.jpg')]
            pp=Path1+id1[i]+'/'
            #cmds.symbolButton(image=(Path1+id1[i]+'/'+pic[0]),ann='oo',p='RowL',w=100,h=100,c=partial(self.showFileInfo,(Path1+id1[i]+'/'))) #增加图片按钮 
            ksymbolButtonk.append(cmds.symbolButton(image=(Path1+id1[i]+'/'+pic[0]),p='RowL',w=k_tW,h=k_tH,c=partial(self.showFileInfo,(Path1+id1[i]+'/'))))#增加图片按钮                    
            cmds.popupMenu()
            cmds.menuItem(l=u'导入动画数据',c = partial(self.eidtpath,(Path1+id1[i]+'/')))
            cmds.menuItem(l=u'观看视频!',c=self.OPENVIDEO)
            cmds.menuItem(l=u'打开文件夹!',c=self.OPENFILE)
            cmds.menuItem(l=u'打开文件!',c=self.OPENMB)
            cmds.menuItem(l=u'信息查看与动画截取',c=self.editaniwin)
            #cmds.text(l=id1[i],p='RowL')
            ktextk.append(cmds.iconTextButton (style=('textOnly'),enable=0,l=id1[i],w=k_tW,h=k_tH,p='RowL'))
            self.editSBsize()
            
        for o in range(len(id1)):
            if o==0:
                cmds.formLayout('RowL',e=True,attachPosition=((ksymbolButtonk[o],'top',0,0),(ksymbolButtonk[o],'left',0,0)))
            elif o==1:
                cmds.formLayout('RowL',e=True,attachPosition=(ksymbolButtonk[o],'top',0,0),attachControl=(ksymbolButtonk[o],'left',0,ksymbolButtonk[o-1]))
            elif o%2==1:  
                cmds.formLayout('RowL',e=True,attachControl=((ksymbolButtonk[o],'top',0,ktextk[o-2]),(ksymbolButtonk[o],'left',0,ksymbolButtonk[o-1])))
            else:
                cmds.formLayout('RowL',e=True,attachControl=(ksymbolButtonk[o],'top',k_tH,ksymbolButtonk[o-2]),attachPosition=(ksymbolButtonk[o],'left',0,0))

        for u in range(len(id1)):
            if u%2==1:
                cmds.formLayout('RowL',e=True,attachControl=((ktextk[u],'top',0,ksymbolButtonk[u]),(ktextk[u],'left',0,ktextk[u-1])))
            else:
                cmds.formLayout('RowL',e=True,attachControl=(ktextk[u],'top',0,ksymbolButtonk[u]),attachPosition=(ktextk[u],'left',0,0))            
示例#52
0
def dmxExportButton(self):
    currentShelf = cmds.tabLayout("ShelfLayout", selectTab=True, query=True)
    cmds.shelfButton(
        annotation='DMX Export',
        image1='DMXExport.png',
        imageOverlayLabel='DMX',
        command='import DMXExport; reload(DMXExport); DMXExport.createUI()',
        parent=currentShelf,
        label='DMX')
示例#53
0
def setAOVsCheckBox(key=True, *args):
    index = cmds.tabLayout('aovTab', q=True, sti=True)
    aovs = tabs[index].keys()
    if key == True:
        for i in aovs:
            cmds.checkBox(i, v=True, e=True)
    else:
        for i in aovs:
            cmds.checkBox(i, v=False, e=True)
示例#54
0
def jpmAutoRig_mirrorPlaceCubes(button):
    pickedTab = cmds.tabLayout("autoRigTabs", q=1, st=1)
    print pickedTab

    lefties = ["left_clavicle_PLACE_GEO", "left_hip_PLACE_GEO"]
    cmds.select(lefties)
    cmds.duplicate
    group = cmds.group
    cmds.setAttr((group + ".scaleX"), -1)
示例#55
0
def asset_UI_create(*args):
    """
    ui
    """
    if cmds.window("assetWin", exists=True):
        cmds.deleteUI("assetWin")

    w = 820
    h = 550
    widgets["win"] = cmds.window("assetWin", t="Asset Manager", w=w, h=h)
    widgets["mainCLO"] = cmds.columnLayout(w=w, h=h)
    widgets["mainFLO"] = cmds.formLayout(w=w, h=h, bgc=(.2,.2,.2))

    widgets["phaseOM"] = cmds.optionMenu( label='Phase: ')#, changeCommand=temp)
    cmds.menuItem(label="Modeling")
    cmds.menuItem(label="Rigging")
    cmds.menuItem(label="Animation")
    cmds.optionMenu(widgets["phaseOM"], e=True, value = "Rigging")   

    widgets["assetsFLO"] = cmds.formLayout(w=200, h=500)
    widgets["assetsTab"] = cmds.tabLayout(w=200,h=500)
    widgets["charCLO"] = cmds.columnLayout("CHARS", w=200, h=500)
    widgets["charTSL"] = cmds.textScrollList(w=200, h=500)
    cmds.setParent(widgets["assetsTab"])
    widgets["propCLO"] = cmds.columnLayout("PROPS", w=200, h=500)
    widgets["propTSL"] = cmds.textScrollList(w=200, h=500)
    cmds.setParent(widgets["assetsTab"])
    widgets["setCLO"] = cmds.columnLayout("SETS", w=200, h=500)
    widgets["setTSL"] = cmds.textScrollList(w=200, h=500)   
    cmds.formLayout(widgets["assetsFLO"], e=True, af = [(widgets["assetsTab"], "top", 30), (widgets["assetsTab"], "left", 0),
        ])

    cmds.setParent(widgets["mainFLO"])
    widgets["refBut"] = cmds.button(l=">>>Ref in>>>", w=70, h=30, bgc=(.5,.5,.5), c=create_new_ref)
    # widgets["impBut"] = cmds.button(l=">>>Import in>>>", w=70, h=30, en=False, bgc=(.5,.5,.5), c=create_new_import)

    widgets["execBut"] = cmds.button(l="Execute Changes", w=120, h=40, bgc=(.5,.5,.5), c=execute)
    widgets["reloadBut"] = cmds.button(l="Reload/Refresh", w=120, h=40, bgc=(.5,.5,.5), c=reload_ref_list)   

    cmds.setParent(widgets["mainFLO"])
    widgets["refSLO"] = cmds.scrollLayout(w=520, h=400, bgc=(0,0,0))
    widgets["refCLO"] = cmds.columnLayout(w=520, rowSpacing=2, bgc = (.0,.0,.0), p=widgets["refSLO"])

    cmds.formLayout(widgets["mainFLO"], e=True, af = [(widgets["assetsFLO"], "top", 20), (widgets["assetsFLO"], "left", 5),
        (widgets["phaseOM"], "top", 10), (widgets["phaseOM"], "left", 0),
        (widgets["refSLO"], "top", 70), (widgets["refSLO"], "left", 290),
        (widgets["refBut"], "top", 100), (widgets["refBut"], "left", 210),
        # (widgets["impBut"], "top", 150), (widgets["impBut"], "left", 210),
        (widgets["execBut"], "top", 485), (widgets["execBut"], "left", 680),
        (widgets["reloadBut"], "top", 485), (widgets["reloadBut"], "left", 540),
        ])

    cmds.window(widgets["win"], e=True, w=5, h=5, rtf=True)
    cmds.showWindow(widgets["win"])

    load_asset_info()
    create_ref_list()
示例#56
0
 def simpleTemplateEditorPrintCallbacks(*args):
     currTab = str(cmds.tabLayout(tabs1, q=1, st=1))
     tempkeys = dictCallbacks.keys()
     print '\n-------------------------------------\n Callbacks list in the "' + currTab + '" View\n-------------------------------------'
     for temp in tempkeys:
         if temp.startswith(currTab):
             tempCB = dictCallbacks[temp]
             temp = temp.replace(currTab + "_", "")
             print temp + ":  " + tempCB
示例#57
0
    def deleteChild(self, *args):

        tabLayout = self.pWindow.tab
        selItemIndex = cmds.tabLayout(tabLayout, q=1, sti=1)

        if selItemIndex == 1: cmds.error('Main Command tab Can not delete')

        children = cmds.tabLayout(tabLayout, q=1, ca=1)
        tabLabels = cmds.tabLayout(tabLayout, q=1, tabLabel=1)

        cmds.deleteUI(children.pop(selItemIndex - 1))
        tabLabels.pop(selItemIndex - 1)

        items = []
        for i in range(len(children)):
            items.append((children[i], tabLabels[i]))

        cmds.tabLayout(tabLayout, e=1, tabLabel=items)
示例#58
0
def createShelfBtn():
    currentShelf = cmds.tabLayout("ShelfLayout", selectTab=True, query=True)
    cmds.shelfButton(annotation='Delta Mush To Skin Cluster',
                     command='import dm2sc.convert as convert\nconvert.main()',
                     label='DM2SC',
                     sourceType='python',
                     image1='pythonFamily.png',
                     imageOverlayLabel='DM2SC',
                     parent=currentShelf)
    def createScrollLayout(parent):
        if Utils.getMayaVersion() >= Utils.MAYA2011:
            return cmds.scrollLayout(parent=parent, childResizable=True)

        # scrollbar fake shamelessly stolen from Autodesk's own UI code
        return cmds.tabLayout(parent=parent,
                              tv=False,
                              childResizable=True,
                              scrollable=True)
示例#60
0
    def buildUI(self):
        if cmds.dockControl("characterPicker_dockControl", exists=True):
            cmds.deleteUI("characterPicker_dockControl")

        self.widgets["window"] = cmds.window(title="Character Picker", w=400, h=600, mnb=False, mxb=False)
        self.widgets["mainLayout"] = cmds.columnLayout(w=400, h=600)
        self.widgets["tabLayout"] = cmds.tabLayout()

        for name in self.namespaces:
            self.widgets[(name + "_formLayout")] = cmds.formLayout(w=400, h=600, parent=self.widgets["tabLayout"])

            namespace = name + ":"

            # create the buttons
            self.widgets[name + "_headButton"] = cmds.button(label="", w=40, h=40, bgc=[0, 0.593, 1])
            cmds.button(self.widgets[name + "_headButton"], edit=True, c=partial(self.selectControls, [namespace + "head"], [(self.widgets[name + "_headButton"], [0, 0.593, 1])]))

            self.widgets[name + "_spine03Button"] = cmds.button(label="", w=100, h=40, bgc=[0.824, 0.522, 0.275])
            cmds.button(self.widgets[name + "_spine03Button"], edit=True, c=partial(self.selectControls, [namespace + "spine_03"], [(self.widgets[name + "_spine03Button"], [0.824, 0.522, 0.275])]))

            self.widgets[name + "_spine02Button"] = cmds.button(label="", w=100, h=40, bgc=[0.824, 0.522, 0.275])
            cmds.button(self.widgets[name + "_spine02Button"], edit=True, c=partial(self.selectControls, [namespace + "spine_02"], [(self.widgets[name + "_spine02Button"], [0.824, 0.522, 0.275])]))

            self.widgets[name + "_spine01Button"] = cmds.button(label="", w=100, h=40, bgc=[0.824, 0.522, 0.275])
            cmds.button(self.widgets[name + "_spine01Button"], edit=True, c=partial(self.selectControls, [namespace + "spine_01"], [(self.widgets[name + "_spine01Button"], [0.824, 0.522, 0.275])]))

            self.widgets[name + "_selectAllSpineButton"] = cmds.button(label="", w=30, h=30, bgc=[0, 1, 0])
            cmds.button(self.widgets[name + "_selectAllSpineButton"], edit=True, c=partial(self.selectControls,
            [(namespace + "spine_01"), (namespace + "spine_02"), (namespace + "spine_03")],
            [(self.widgets[name + "_spine01Button"], [0.824, 0.522, 0.275]),
             (self.widgets[name + "_spine02Button"], [0.824, 0.522, 0.275]),
             (self.widgets[name + "_spine03Button"], [0.824, 0.522, 0.275])]))

            # place the buttons
            cmds.formLayout(self.widgets[name + "_formLayout"], edit=True, af=[(self.widgets[name + "_headButton"], "left", 175), (self.widgets[name + "_headButton"], "top", 100)])
            cmds.formLayout(self.widgets[name + "_formLayout"], edit=True, af=[(self.widgets[name + "_spine03Button"], "left", 145), (self.widgets[name + "_spine03Button"], "top", 150)])
            cmds.formLayout(self.widgets[name + "_formLayout"], edit=True, af=[(self.widgets[name + "_spine02Button"], "left", 145), (self.widgets[name + "_spine02Button"], "top", 200)])
            cmds.formLayout(self.widgets[name + "_formLayout"], edit=True, af=[(self.widgets[name + "_spine01Button"], "left", 145), (self.widgets[name + "_spine01Button"], "top", 250)])
            cmds.formLayout(self.widgets[name + "_formLayout"], edit=True, af=[(self.widgets[name + "_selectAllSpineButton"], "left", 250), (self.widgets[name + "_selectAllSpineButton"], "top", 205)])

            cmds.tabLayout(self.widgets["tabLayout"], edit=True, tabLabel=((self.widgets[(name + "_formLayout")], name)))

        # cmds.showWindow(self.widgets["window"])
        cmds.dockControl(label="Character Picker", area="right", allowedArea="right", content=self.widgets["window"])