def buildAutoNameTool(self, parent, vis=True):
        containerName = 'AutoNameContainer'
        self.containerName = MelColumn(parent, vis=vis)

        #>>> Begin the section
        mc.setParent(self.containerName)
        guiFactory.header('Tag and Release')
        guiFactory.lineSubBreak()

        #>>> Guessed Name
        GenratedNameRow = MelHLayout(self.containerName,
                                     ut='cgmUIInstructionsTemplate')
        self.GeneratedNameField = MelLabel(
            GenratedNameRow,
            bgc=dictionary.returnStateColor('help'),
            align='center',
            label='Name will preview here...')

        GenratedNameRow.layout()
        mc.setParent(self.containerName)
        guiFactory.lineSubBreak()
        guiFactory.lineSubBreak()

        #>>> Load To Field
        #clear our variables
        if not mc.optionVar(ex='cgmVar_AutoNameObject'):
            mc.optionVar(sv=('cgmVar_AutoNameObject', ''))

        LoadAutoNameObjectRow = MelHSingleStretchLayout(self.containerName,
                                                        ut='cgmUISubTemplate',
                                                        padding=5)

        MelSpacer(LoadAutoNameObjectRow, w=5)

        MelLabel(LoadAutoNameObjectRow, l='Object:', align='right')

        self.AutoNameObjectField = MelTextField(LoadAutoNameObjectRow,
                                                w=125,
                                                ut='cgmUIReservedTemplate',
                                                editable=False)
        if mc.optionVar(q='cgmVar_AutoNameObject'):
            self.AutoNameObjectField(
                edit=True, text=mc.optionVar(q='cgmVar_AutoNameObject'))

        guiFactory.doButton2(LoadAutoNameObjectRow, '<<',
                             'tdToolsLib.uiLoadAutoNameObject(cgmTDToolsWin)',
                             'Load to field')

        LoadAutoNameObjectRow.setStretchWidget(self.AutoNameObjectField)

        guiFactory.doButton2(LoadAutoNameObjectRow, 'Up',
                             lambda *a: tdToolsLib.uiAutoNameWalkUp(self),
                             'Load to field')

        guiFactory.doButton2(LoadAutoNameObjectRow, 'Down',
                             lambda *a: tdToolsLib.uiAutoNameWalkDown(self),
                             'Load to field')

        guiFactory.doButton2(
            LoadAutoNameObjectRow, 'Name it',
            lambda *a: tdToolsLib.uiNameLoadedAutoNameObject(self),
            'Load to field')
        guiFactory.doButton2(
            LoadAutoNameObjectRow, 'Name Children',
            lambda *a: tdToolsLib.uiNameLoadedAutoNameObjectChildren(self),
            'Load to field')

        MelSpacer(LoadAutoNameObjectRow, w=5)

        LoadAutoNameObjectRow.layout()

        mc.setParent(self.containerName)
        guiFactory.lineSubBreak()

        #>>> Tag Labels
        TagLabelsRow = MelHLayout(self.containerName,
                                  ut='cgmUISubTemplate',
                                  padding=2)
        MelLabel(TagLabelsRow, label='Position')
        MelLabel(TagLabelsRow, label='Direction')
        MelLabel(TagLabelsRow, label='Name')
        MelLabel(TagLabelsRow, label='Type')

        TagLabelsRow.layout()

        #>>> Tags
        mc.setParent(self.containerName)
        TagsRow = MelHLayout(self.containerName,
                             ut='cgmUISubTemplate',
                             padding=3)
        self.PositionTagField = MelTextField(
            TagsRow,
            enable=False,
            bgc=dictionary.returnStateColor('normal'),
            ec=lambda *a: tdToolsLib.uiUpdateAutoNameTag(self, 'cgmPosition'),
            w=75)
        self.DirectionTagField = MelTextField(
            TagsRow,
            enable=False,
            bgc=dictionary.returnStateColor('normal'),
            ec=lambda *a: tdToolsLib.uiUpdateAutoNameTag(self, 'cgmDirection'),
            w=75)
        self.NameTagField = MelTextField(
            TagsRow,
            enable=False,
            bgc=dictionary.returnStateColor('normal'),
            ec=lambda *a: tdToolsLib.uiUpdateAutoNameTag(self, 'cgmName'),
            w=75)
        """
		self.NameTagFieldPopUp = MelPopupMenu(self.NameTagField,button = 3)
		self.NameTagLoadParentPopUp = MelMenuItem(self.NameTagFieldPopUp ,
												  label = 'Select parent name object',
												  enable = False)
		"""
        self.ObjectTypeTagField = MelTextField(
            TagsRow,
            enable=False,
            bgc=dictionary.returnStateColor('normal'),
            ec=lambda *a: tdToolsLib.uiUpdateAutoNameTag(self, 'cgmType'),
            w=75)

        TagsRow.layout()
        mc.setParent(self.containerName)
        guiFactory.lineSubBreak()

        #>>> ModifierTags
        mc.setParent(self.containerName)
        TagModifiersRow = MelHLayout(self.containerName,
                                     ut='cgmUISubTemplate',
                                     padding=3)
        MelLabel(TagModifiersRow,
                 align='right',
                 label='Modifiers ------->',
                 w=75)
        self.DirectionModifierTagField = MelTextField(
            TagModifiersRow,
            enable=False,
            bgc=dictionary.returnStateColor('normal'),
            ec=lambda *a: tdToolsLib.uiUpdateAutoNameTag(
                self, 'cgmDirectionModifier'),
            w=75)
        self.NameModifierTagField = MelTextField(
            TagModifiersRow,
            enable=False,
            bgc=dictionary.returnStateColor('normal'),
            ec=lambda *a: tdToolsLib.uiUpdateAutoNameTag(
                self, 'cgmNameModifier'),
            w=75)
        self.ObjectTypeModifierTagField = MelTextField(
            TagModifiersRow,
            enable=False,
            bgc=dictionary.returnStateColor('normal'),
            ec=lambda *a: tdToolsLib.uiUpdateAutoNameTag(
                self, 'cgmTypeModifier'),
            w=75)

        TagModifiersRow.layout()

        mc.setParent(self.containerName)
        guiFactory.lineSubBreak()
        guiFactory.lineBreak()

        #>>> Basic
        mc.setParent(self.containerName)
        guiFactory.header('On Selection')
        guiFactory.lineSubBreak()

        BasicRow = MelHLayout(self.containerName,
                              ut='cgmUISubTemplate',
                              padding=2)
        guiFactory.doButton2(BasicRow, 'Name Object',
                             'tdToolsLib.uiNameObject(cgmTDToolsWin)',
                             "Attempts to name an object")
        guiFactory.doButton2(
            BasicRow, 'Update Name',
            'tdToolsLib.doUpdateObjectName(cgmTDToolsWin)',
            "Takes the name you've manually changed the object to, \n stores that to the cgmName tag then \n renames the object"
        )
        guiFactory.doButton2(
            BasicRow, 'Name Heirarchy',
            'tdToolsLib.doNameHeirarchy(cgmTDToolsWin)',
            "Attempts to intelligently name a  \n heirarchy of objects")

        BasicRow.layout()

        mc.setParent(self.containerName)
        guiFactory.lineSubBreak()
        guiFactory.lineBreak()

        return self.containerName
Beispiel #2
0
	def Main_buildLayout(self,parent):
		def modeSet( item ):
			i =  self.setModes.index(item)
			self.SetToolsModeOptionVar.set( i )
			self.setMode = i
		
		MainForm = MelFormLayout(parent)
		TopSection = MelColumnLayout(MainForm)	
		SetHeader = guiFactory.header('Puppet')
		
		#>>>  Top Section
		#Report
		self.puppetReport = MelLabel(TopSection,
				                     bgc = dictionary.returnStateColor('help'),
				                     align = 'center',
				                     label = '...',
				                     h=20)
		MelSeparator(TopSection,ut='cgmUITemplate',h=5)
		
		#Edit name and state mode buttons
		MasterPuppetRow = MelHSingleStretchLayout(TopSection,padding = 5)
		MelSpacer(MasterPuppetRow,w=5)
		self.MasterPuppetTF = MelTextField(MasterPuppetRow,
		                                   bgc = [1,1,1],
		                                   ec = lambda *a:puppetBoxLib.updatePuppetName(self))
		MasterPuppetRow.setStretchWidget(self.MasterPuppetTF)
		
		self.puppetStateButtonsDict = {}
		for i,s in enumerate(self.puppetStateOptions):
			self.puppetStateButtonsDict[i] = guiFactory.doButton2(MasterPuppetRow,s.capitalize(),
			                                                      "print '%s'"%s,
			                                                      enable = False)
		MelSpacer(MasterPuppetRow,w=20)
		
		MasterPuppetRow.layout()
		#MelSeparator(TopSection,ut='cgmUITemplate',h=2)
		
		#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
		# Define State Rows
		#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>		
		#Initial State Mode Row
		self.PuppetModeCollection = MelRadioCollection()
		self.PuppetModeCollectionChoices = []			
		
		self.InitialStateModeRow = MelHSingleStretchLayout(TopSection,padding = 2,vis=False)	
		MelSpacer(self.InitialStateModeRow,w=5)				
		MelLabel(self.InitialStateModeRow,l='Template Modes')
		Spacer = MelSeparator(self.InitialStateModeRow,w=10)						
		for i,item in enumerate(CharacterTypes):
			self.PuppetModeCollectionChoices.append(self.PuppetModeCollection.createButton(self.InitialStateModeRow,label=item,
			                                                                               onCommand = Callback(puppetBoxLib.setPuppetBaseMode,self,i)))
			MelSpacer(self.InitialStateModeRow,w=3)
		self.InitialStateModeRow.setStretchWidget( Spacer )
		MelSpacer(self.InitialStateModeRow,w=2)		
		self.InitialStateModeRow.layout()	
		
		mc.radioCollection(self.PuppetModeCollection ,edit=True,sl= (self.PuppetModeCollectionChoices[ (self.PuppetModeOptionVar.value) ]))
		self.UI_StateRows['define'].append(self.InitialStateModeRow)
		
		
		self.AxisFrame = MelFrameLayout(TopSection,label = 'Axis',vis=False,
		                                collapse=True,
		                                collapsable=True,
		                                ut = 'cgmUIHeaderTemplate')
		self.UI_StateRows['define'].append(self.AxisFrame)
		MelSeparator(TopSection,style='none',h=5)						
		
		#Aim Axis Mode Row
		self.AimAxisCollection = MelRadioCollection()
		self.AimAxisCollectionChoices = []			
		
		self.AimAxisRow = MelHSingleStretchLayout(self.AxisFrame,padding = 2,vis=False)	
		MelSpacer(self.AimAxisRow,w=5)				
		MelLabel(self.AimAxisRow,l='Aim ')
		Spacer = MelSeparator(self.AimAxisRow,w=10)						
		for i,item in enumerate(axisDirectionsByString):
			self.AimAxisCollectionChoices.append(self.AimAxisCollection.createButton(self.AimAxisRow,label=item,
			                                                                         onCommand = Callback(puppetBoxLib.setPuppetAxisAim,self,i)))
			MelSpacer(self.AimAxisRow,w=3)
		self.AimAxisRow.setStretchWidget( Spacer )
		MelSpacer(self.AimAxisRow,w=2)		
		self.AimAxisRow.layout()	
		
		
		#Up Axis Mode Row
		self.UpAxisCollection = MelRadioCollection()
		self.UpAxisCollectionChoices = []			
		
		self.UpAxisRow = MelHSingleStretchLayout(self.AxisFrame,padding = 2,vis=False)	
		MelSpacer(self.UpAxisRow,w=5)				
		MelLabel(self.UpAxisRow,l='Up ')
		Spacer = MelSeparator(self.UpAxisRow,w=10)						
		for i,item in enumerate(axisDirectionsByString):
			self.UpAxisCollectionChoices.append(self.UpAxisCollection.createButton(self.UpAxisRow,label=item,
			                                                                         onCommand = Callback(puppetBoxLib.setPuppetAxisUp,self,i)))
			MelSpacer(self.UpAxisRow,w=3)
		self.UpAxisRow.setStretchWidget( Spacer )
		MelSpacer(self.UpAxisRow,w=2)		
		self.UpAxisRow.layout()	
		
		
		#Out Axis Mode Row
		self.OutAxisCollection = MelRadioCollection()
		self.OutAxisCollectionChoices = []			
		
		self.OutAxisRow = MelHSingleStretchLayout(self.AxisFrame,padding = 2,vis=False)	
		MelSpacer(self.OutAxisRow,w=5)				
		MelLabel(self.OutAxisRow,l='Out ')
		Spacer = MelSeparator(self.OutAxisRow,w=10)	
		for i,item in enumerate(axisDirectionsByString):
			self.OutAxisCollectionChoices.append(self.OutAxisCollection.createButton(self.OutAxisRow,label=item,
			                                                                         onCommand = Callback(puppetBoxLib.setPuppetAxisOut,self,i)))
			MelSpacer(self.OutAxisRow,w=3)
		self.OutAxisRow.setStretchWidget( Spacer )
		MelSpacer(self.OutAxisRow,w=2)		
		self.OutAxisRow.layout()	
		
		#Set toggles on menu
		mc.radioCollection(self.AimAxisCollection ,edit=True,sl= (self.AimAxisCollectionChoices[ (self.PuppetAimOptionVar.value) ]))		
		mc.radioCollection(self.UpAxisCollection ,edit=True,sl= (self.UpAxisCollectionChoices[ (self.PuppetUpOptionVar.value) ]))		
		mc.radioCollection(self.OutAxisCollection ,edit=True,sl= (self.OutAxisCollectionChoices[ (self.PuppetOutOptionVar.value) ]))
		
		
		#Initial State Button Row
		self.InitialStateButtonRow = MelHLayout(TopSection, h = 20,vis=False,padding = 5)
		guiFactory.doButton2(self.InitialStateButtonRow,'Add Geo',
		                     lambda *a:puppetBoxLib.doAddGeo(self))
		guiFactory.doButton2(self.InitialStateButtonRow,'Build Size Template',
		                     lambda *a:puppetBoxLib.doBuildSizeTemplate(self))
		
		self.InitialStateButtonRow.layout()
		self.UI_StateRows['define'].append(self.InitialStateButtonRow)
		
		#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
		# Multi Module
		#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

		#>>>  All Sets menu
		AllModulesRow = MelFormLayout(MainForm,height = 20)
		activeState = True
		i = 1
			
		tmpActive = MelCheckBox(AllModulesRow,
	                            annotation = 'Sets all sets active',
	                            value = activeState,
	                            onCommand =  Callback(puppetBoxLib.doSetAllSetsAsActive,self),
	                            offCommand = Callback(puppetBoxLib.doSetAllSetsAsInactive,self))
		
		tmpSel = guiFactory.doButton2(AllModulesRow,
		                              ' s ',
		                              'Select All Loaded/Active Sets')
						
		# Mode toggle box
		self.ModuleModeOptionMenu = MelOptionMenu(AllModulesRow,
		                                       cc = modeSet)
			
			
		tmpKey = guiFactory.doButton2(AllModulesRow,
	                                  ' k ',
		                              'Key All Sets')
		tmpDeleteKey = guiFactory.doButton2(AllModulesRow,
	                                    ' d ',
	                                    'Delete All Set Keys')	
		tmpReset = guiFactory.doButton2(AllModulesRow,
	                                    ' r ',
	                                    'Reset All Set Keys')	
		
		mc.formLayout(AllModulesRow, edit = True,
	                  af = [(tmpActive, "left", 10),
	                        (tmpReset,"right",10)],
	                  ac = [(tmpSel,"left",0,tmpActive),
	                        (self.ModuleModeOptionMenu,"left",4,tmpSel),
	                        (self.ModuleModeOptionMenu,"right",4,tmpKey),
	                        (tmpKey,"right",2,tmpDeleteKey),
		                    (tmpDeleteKey,"right",2,tmpReset)
		                    ])
		
		#>>> Sets building section
		allPopUpMenu = MelPopupMenu(self.ModuleModeOptionMenu ,button = 3)
		
		allCategoryMenu = MelMenuItem(allPopUpMenu,
	                               label = 'Make Type:',
	                               sm = True)

			
		
		
		#>>> Sets building section
		ModuleListScroll = MelScrollLayout(MainForm,cr = 1, ut = 'cgmUISubTemplate')
		ModuleMasterForm = MelFormLayout(ModuleListScroll)
		self.ModuleListColumn = MelColumnLayout(ModuleMasterForm,ut = 'cgmUIInstructionsTemplate', adj = True, rowSpacing = 2)
		
		
		
		self.helpInfo = MelLabel(MainForm,
		                         h=20,
		                         l = "Add a Puppet",
		                         ut = 'cgmUIInstructionsTemplate',
		                         al = 'center',
		                         ww = True,vis = self.ShowHelpOptionVar.value)
		self.helpBlurbs.extend([self.helpInfo ])
		
		VerifyRow = guiFactory.doButton2(MainForm,
		                                'Check Puppet',
		                                'Create new buffer from selected buffer')	
			
		ModuleMasterForm(edit = True,
		                 af = [(self.ModuleListColumn,"top",0),
		                       (self.ModuleListColumn,"left",0),
		                       (self.ModuleListColumn,"right",0),
		                       (self.ModuleListColumn,"bottom",0)])
		
		
		MainForm(edit = True,
		         af = [(TopSection,"top",0),	
		               (TopSection,"left",0),
		               (TopSection,"right",0),		               
		               (AllModulesRow,"left",0),
		               (AllModulesRow,"right",0),
		               (ModuleListScroll,"left",0),
		               (ModuleListScroll,"right",0),
		               (ModuleListScroll,"left",0),
		               (ModuleListScroll,"right",0),				       
		               (self.helpInfo,"left",8),
		               (self.helpInfo,"right",8),
		               (VerifyRow,"left",4),
		               (VerifyRow,"right",4),		               
		               (VerifyRow,"bottom",4)],
		         ac = [(AllModulesRow,"top",2,TopSection),
		               (ModuleListScroll,"top",2,AllModulesRow),
		               (ModuleListScroll,"bottom",0,self.helpInfo),
		               (self.helpInfo,"bottom",0,VerifyRow)],
		         attachNone = [(VerifyRow,"top")])	
Beispiel #3
0
def uiLoadAutoNameObject(self):
	selected = []
	bufferList = []
	selected = (mc.ls (sl=True,flatten=True,shortNames=True))
	
	fieldToKeyDict = {'cgmName':self.NameTagField,
                      'cgmType':self.ObjectTypeTagField,
                      'cgmNameModifier':self.NameModifierTagField,
                      'cgmTypeModifier':self.ObjectTypeModifierTagField,
                      'cgmDirectionModifier':self.DirectionModifierTagField,
                      'cgmDirection':self.DirectionTagField,
                      'cgmPosition':self.PositionTagField,
	                  'cgmIterator':self.IteratorTagField}
	
	if selected:
		if len(selected) >= 2:
			guiFactory.warning('Only one object can be loaded')
		else:
			# Put the object in the field
			guiFactory.doLoadSingleObjectToTextField(self.AutoNameObjectField,'cgmVar_AutoNameObject')

			#Get the tag info for the object
			tagsDict = NameFactoryOld.returnObjectGeneratedNameDict(selected[0])
			userAttrs = attributes.returnUserAttributes(selected[0])
			cgmAttrs = NameFactoryOld.returnCGMOrder()
			usedAttrs = lists.returnMatchList(userAttrs,cgmAttrs)
			tagAttrs = tagsDict.keys()
			#Enable the tag fields
			for key in fieldToKeyDict.keys():
				mc.textField(fieldToKeyDict.get(key),edit=True,enable=True,
				             text = '',
				              bgc = dictionary.returnStateColor('normal'))
			
			for key in tagsDict.keys():
				currentField = fieldToKeyDict.get(key)

				
				buildSelectPopUp = {}
				buildLoadPopUp = {}
				#purge popup
				popUpBuffer =  currentField(q=True, popupMenuArray = True)
				if popUpBuffer:
					for item in popUpBuffer:
						mc.deleteUI (item)
				
				mc.textField(currentField,edit=True,text = tagsDict.get(key),
				             bgc = dictionary.returnStateColor('keyed'))
				
				# Set special color cases, if it's guessed or gotten upstream....
				if usedAttrs:
					if key not in usedAttrs:
						mc.textField(currentField,edit = True, bgc = dictionary.returnStateColor('reserved'))
					# if it's connected	
					elif (mc.connectionInfo ((selected[0]+'.'+key),isDestination=True)):
						driverObject = attributes.returnDriverObject(selected[0]+'.'+key)
						driverAttr = attributes.returnDriverAttribute(selected[0]+'.'+key)
						mc.textField(currentField,edit = True,
						             text = (driverAttr),
						             bgc = dictionary.returnStateColor('connected'))
						buildSelectPopUp['Select driver object'] = (driverObject)
						buildLoadPopUp['Load driver object'] = (driverObject)


				else:
					#Got it from a parent
					parentNameObjectRaw = search.returnTagUp(selected[0],key)
					if parentNameObjectRaw:
						if '|' in parentNameObjectRaw[1]:
							parentNameBuffer = parentNameObjectRaw[1].split('|')
							parentNameObject = parentNameBuffer[-1]
						else:
							parentNameObject = parentNameObjectRaw[1]
						mc.textField(currentField,edit = True,
					                 enable=True,
					                 text = parentNameObject,
					                 bgc = dictionary.returnStateColor('semiLocked'))
						buildSelectPopUp['Select parent name object'] = (parentNameObjectRaw[1])
						buildLoadPopUp['Load parent name object'] = (parentNameObjectRaw[1])
					else:
						mc.textField(currentField,edit = True,
					                 bgc = dictionary.returnStateColor('reserved'))
							
				if buildSelectPopUp or buildLoadPopUp:
					buffer = MelPopupMenu(currentField,button = 3)
				if buildSelectPopUp:		
					for key in buildSelectPopUp.keys():
						MelMenuItem(buffer ,
							        label = key,
							        c = ('%s%s%s' %("mc.select('",buildSelectPopUp.get(key),"')")))
				if buildLoadPopUp:		
					for key in buildLoadPopUp.keys():
						MelMenuItem(buffer ,
					                label = key,
					                c = lambda *a:uiLoadParentNameObject(self,buildLoadPopUp.get(key)))
						
						
			# if it's connected
			uiUpdateAutoNamePreview(self)
			
	else:
		#clear the field
		guiFactory.doLoadSingleObjectToTextField(self.AutoNameObjectField,'cgmVar_AutoNameObject')
		# update the fields
		for key in fieldToKeyDict.keys():
			mc.textField(fieldToKeyDict.get(key),edit=True,enable=False,
		                 text = '',
			             bgc = dictionary.returnStateColor('normal'))
			
		# Fix previewer
		uiUpdateAutoNamePreview(self)
Beispiel #4
0
    def buildAttributeEditingTool(self, parent, vis=True):
        #Container
        containerName = 'Attributes Constainer'
        self.containerName = MelColumn(parent, vis=vis)

        ###Create
        mc.setParent(self.containerName)
        guiFactory.header('Create')
        guiFactory.lineSubBreak()

        #>>>Create Row
        attrCreateRow = MelHSingleStretchLayout(self.containerName,
                                                ut='cgmUISubTemplate',
                                                padding=5)
        MelSpacer(attrCreateRow)

        MelLabel(attrCreateRow, l='Names:', align='right')
        self.AttrNamesTextField = MelTextField(
            attrCreateRow,
            backgroundColor=[1, 1, 1],
            h=20,
            ec=lambda *a: attrToolsLib.doAddAttributesToSelected(self),
            annotation=
            "Names for the attributes. Create multiple with a ';'. \n Message nodes try to connect to the last object in a selection \n For example: 'Test1;Test2;Test3'"
        )
        guiFactory.doButton2(
            attrCreateRow, 'Add',
            lambda *a: attrToolsLib.doAddAttributesToSelected(self),
            "Add the attribute names from the text field")
        MelSpacer(attrCreateRow, w=2)

        attrCreateRow.setStretchWidget(self.AttrNamesTextField)
        attrCreateRow.layout()

        #>>> modify Section
        self.buildAttrTypeRow(self.containerName)
        MelSeparator(self.containerName, ut='cgmUIHeaderTemplate', h=2)
        MelSeparator(self.containerName, ut='cgmUITemplate', h=10)

        ###Modify
        mc.setParent(self.containerName)
        guiFactory.header('Modify')

        AttrReportRow = MelHLayout(self.containerName,
                                   ut='cgmUIInstructionsTemplate',
                                   h=20)
        self.AttrReportField = MelLabel(
            AttrReportRow,
            bgc=dictionary.returnStateColor('help'),
            align='center',
            label='...',
            h=20)
        AttrReportRow.layout()

        MelSeparator(self.containerName, ut='cgmUISubTemplate', h=5)

        #>>> Load To Field
        LoadAttributeObjectRow = MelHSingleStretchLayout(self.containerName,
                                                         ut='cgmUISubTemplate',
                                                         padding=5)

        MelSpacer(LoadAttributeObjectRow, w=5)

        guiFactory.doButton2(LoadAttributeObjectRow, '>>',
                             lambda *a: attrToolsLib.uiLoadSourceObject(self),
                             'Load to field')

        self.SourceObjectField = MelTextField(LoadAttributeObjectRow,
                                              w=125,
                                              h=20,
                                              ut='cgmUIReservedTemplate',
                                              editable=False)

        LoadAttributeObjectRow.setStretchWidget(self.SourceObjectField)

        MelLabel(LoadAttributeObjectRow, l=' . ')
        self.ObjectAttributesOptionMenu = MelOptionMenu(LoadAttributeObjectRow,
                                                        w=100)

        self.DeleteAttrButton = guiFactory.doButton2(
            LoadAttributeObjectRow,
            'X',
            lambda *a: attrToolsLib.uiDeleteAttr(
                self, self.ObjectAttributesOptionMenu),
            'Delete attribute',
            w=25,
            en=False)

        MelSpacer(LoadAttributeObjectRow, w=5)

        LoadAttributeObjectRow.layout()

        #>>> Standard Flags
        BasicAttrFlagsRow = MelHLayout(self.containerName,
                                       ut='cgmUISubTemplate',
                                       padding=2)
        MelSpacer(BasicAttrFlagsRow, w=5)
        self.KeyableAttrCB = MelCheckBox(BasicAttrFlagsRow,
                                         label='Keyable',
                                         en=False)
        MelSpacer(BasicAttrFlagsRow, w=5)
        self.HiddenAttrCB = MelCheckBox(BasicAttrFlagsRow,
                                        label='Hidden',
                                        en=False)
        MelSpacer(BasicAttrFlagsRow, w=5)
        self.LockedAttrCB = MelCheckBox(BasicAttrFlagsRow,
                                        label='Locked',
                                        en=False)
        MelSpacer(BasicAttrFlagsRow, w=5)
        BasicAttrFlagsRow.layout()

        #>>> Name Row
        self.EditNameSettingsRow = MelHSingleStretchLayout(
            self.containerName, ut='cgmUISubTemplate')
        self.EditNameSettingsRow.setStretchWidget(
            MelSpacer(self.EditNameSettingsRow, w=5))

        NameLabel = MelLabel(self.EditNameSettingsRow, label='Name: ')
        self.NameField = MelTextField(
            self.EditNameSettingsRow,
            en=False,
            bgc=dictionary.returnStateColor('normal'),
            ec=lambda *a: attrToolsLib.uiRenameAttr(self),
            h=20,
            w=75)

        NiceNameLabel = MelLabel(self.EditNameSettingsRow, label='Nice: ')
        self.NiceNameField = MelTextField(
            self.EditNameSettingsRow,
            en=False,
            bgc=dictionary.returnStateColor('normal'),
            ec=lambda *a: attrToolsLib.uiUpdateNiceName(self),
            h=20,
            w=75)
        AliasLabel = MelLabel(self.EditNameSettingsRow, label='Alias: ')
        self.AliasField = MelTextField(
            self.EditNameSettingsRow,
            en=False,
            bgc=dictionary.returnStateColor('normal'),
            ec=lambda *a: attrToolsLib.uiUpdateAlias(self),
            h=20,
            w=75)
        MelSpacer(self.EditNameSettingsRow, w=5)
        self.EditNameSettingsRow.layout()
        """mc.formLayout(self.EditNameSettingsRow, edit = True,
	                  af = [(NameLabel, "left", 5),
	                        (self.AliasField,"right",5)],
	                  ac = [(self.NameField,"left",2,NameLabel),
	                        (NiceNameLabel,"left",2,self.NameField),
	                        (self.NiceNameField,"left",2,NiceNameLabel),
	                        (AliasLabel,"left",2,self.NiceNameField),
		                    (self.AliasField,"left",2,AliasLabel),
		                    ])"""

        #>>> Int Row
        #self.EditDigitSettingsRow = MelFormLayout(self.containerName,ut='cgmUISubTemplate',vis = False)
        self.EditDigitSettingsRow = MelHSingleStretchLayout(
            self.containerName, ut='cgmUISubTemplate', vis=False)
        self.EditDigitSettingsRow.setStretchWidget(
            MelSpacer(self.EditDigitSettingsRow, w=5))
        MinLabel = MelLabel(self.EditDigitSettingsRow, label='Min:')
        self.MinField = MelTextField(
            self.EditDigitSettingsRow,
            bgc=dictionary.returnStateColor('normal'),
            ec=lambda *a: attrToolsLib.uiUpdateMinValue(self),
            h=20,
            w=35)

        MaxLabel = MelLabel(self.EditDigitSettingsRow, label='Max:')
        self.MaxField = MelTextField(
            self.EditDigitSettingsRow,
            bgc=dictionary.returnStateColor('normal'),
            ec=lambda *a: attrToolsLib.uiUpdateMaxValue(self),
            h=20,
            w=35)

        DefaultLabel = MelLabel(self.EditDigitSettingsRow, label='dv:')
        self.DefaultField = MelTextField(
            self.EditDigitSettingsRow,
            bgc=dictionary.returnStateColor('normal'),
            ec=lambda *a: attrToolsLib.uiUpdateDefaultValue(self),
            h=20,
            w=35)
        SoftMinLabel = MelLabel(self.EditDigitSettingsRow, label='sMin:')
        self.SoftMinField = MelTextField(
            self.EditDigitSettingsRow,
            bgc=dictionary.returnStateColor('normal'),
            ec=lambda *a: attrToolsLib.uiUpdateSoftMinValue(self),
            h=20,
            w=35)

        SoftMaxLabel = MelLabel(self.EditDigitSettingsRow, label='sMax:')
        self.SoftMaxField = MelTextField(
            self.EditDigitSettingsRow,
            bgc=dictionary.returnStateColor('normal'),
            ec=lambda *a: attrToolsLib.uiUpdateSoftMaxValue(self),
            h=20,
            w=35)

        MelSpacer(self.EditDigitSettingsRow, w=5)
        self.EditDigitSettingsRow.layout()
        """mc.formLayout(self.EditDigitSettingsRow, edit = True,
	                  af = [(MinLabel, "left", 20),
	                        (self.SoftMinField,"right",20)],
	                  ac = [(self.MinField,"left",2,MinLabel),
	                        (MaxLabel,"left",2,self.MinField),
	                        (self.MaxField,"left",2,MaxLabel),
	                        (DefaultLabel,"left",2,self.MaxField),
		                    (self.DefaultField,"left",2,DefaultLabel),
		                    (SoftMaxLabel,"left",2,self.DefaultField),
		                    (self.SoftMaxField,"left",2,SoftMaxLabel),
		                    (SoftMinLabel,"left",2,self.SoftMaxField),		                    		                    
		                    (self.SoftMinField,"left",2,SoftMinLabel)		                    
		                    ])"""

        #>>> Enum
        self.EditEnumRow = MelHSingleStretchLayout(self.containerName,
                                                   ut='cgmUISubTemplate',
                                                   padding=5,
                                                   vis=False)
        MelSpacer(self.EditEnumRow, w=10)
        MelLabel(self.EditEnumRow, label='Enum: ')
        self.EnumField = MelTextField(
            self.EditEnumRow,
            annotation=
            "Options divided by ':'. \n Set values with '=' \n For example: 'off:on=1:maybe=23'",
            bgc=dictionary.returnStateColor('normal'),
            h=20,
            w=75)
        MelSpacer(self.EditEnumRow, w=10)
        self.EditEnumRow.setStretchWidget(self.EnumField)

        self.EditEnumRow.layout()

        #>>> String
        self.EditStringRow = MelHSingleStretchLayout(self.containerName,
                                                     ut='cgmUISubTemplate',
                                                     padding=5,
                                                     vis=False)
        MelSpacer(self.EditStringRow, w=10)
        MelLabel(self.EditStringRow, label='String: ')
        self.StringField = MelTextField(
            self.EditStringRow,
            h=20,
            bgc=dictionary.returnStateColor('normal'),
            w=75)
        MelSpacer(self.EditStringRow, w=10)
        self.EditStringRow.setStretchWidget(self.StringField)

        self.EditStringRow.layout()

        #>>> Message
        self.EditMessageRow = MelHSingleStretchLayout(self.containerName,
                                                      ut='cgmUISubTemplate',
                                                      padding=5,
                                                      vis=False)
        MelSpacer(self.EditMessageRow, w=10)
        MelLabel(self.EditMessageRow, label='Message: ')
        self.MessageField = MelTextField(
            self.EditMessageRow,
            h=20,
            enable=False,
            bgc=dictionary.returnStateColor('locked'),
            ec=lambda *a: tdToolsLib.uiUpdateAutoNameTag(self, 'cgmPosition'),
            w=75)
        self.LoadMessageButton = guiFactory.doButton2(
            self.EditMessageRow, '<<',
            lambda *a: attrToolsLib.uiUpdateMessage(self), 'Load to message')
        MelSpacer(self.EditMessageRow, w=10)
        self.EditMessageRow.setStretchWidget(self.MessageField)

        self.EditMessageRow.layout()

        #>>> Conversion
        self.buildAttrConversionRow(self.containerName)
        self.AttrConvertRow(e=True, vis=False)

        #>>> Connect Report
        self.ConnectionReportRow = MelHLayout(self.containerName,
                                              ut='cgmUIInstructionsTemplate',
                                              h=20,
                                              vis=False)
        self.ConnectionReportField = MelLabel(
            self.ConnectionReportRow,
            vis=False,
            bgc=dictionary.returnStateColor('help'),
            align='center',
            label='...',
            h=20)
        self.ConnectionReportRow.layout()

        self.ConnectedPopUpMenu = MelPopupMenu(self.ConnectionReportRow,
                                               button=3)

        MelSeparator(self.containerName, ut='cgmUIHeaderTemplate', h=2)

        mc.setParent(self.containerName)
        guiFactory.lineBreak()

        return self.containerName
Beispiel #5
0
	def updateModulesUI(self):
		def optionMenuSet(item):
			print item
			#puppetBoxLib.uiModuleSetCGMTag(self,tag,item,index)
			"""
			i =  self.setModes.index(item)
			self.SetToolsModeOptionVar.set( i )
			self.setMode = i"""
			
		#deleteExisting
		self.ModuleListColumn.clear()
		
		if self.Puppet:			
			for i,b in enumerate(self.Puppet.ModulesBuffer.bufferList):
				# NEED to get colors
				#Build label for Frame
				self.moduleFrames[i] = MelFrameLayout(self.ModuleListColumn,l='',
			                                          collapse=True,
			                                          collapsable=True,
				                                      marginHeight=0,
				                                      marginWidth=0,
			                                          bgc = dictionary.guiDirectionColors['center'])
				puppetBoxLib.uiModuleUpdateFrameLabel(self,i)
				
				
				#Build Naming Row
				tmpNameRow = MelFormLayout(self.moduleFrames[i], h=25,
				                          )
				tmpNameLabel = MelLabel(tmpNameRow,l='base:',align='right')
				
				self.moduleBaseNameFields[i] = MelTextField(tmpNameRow,text=self.Puppet.Module[i].nameBase or '',
			                                                ec = Callback(puppetBoxLib.uiUpdateBaseName,self,i),
				                                            w=50,
			                                                h=20)
				
				tmpDirLabel = MelLabel(tmpNameRow,l='dir:',align='right')								
				self.moduleDirectionMenus[i] = MelOptionMenu(tmpNameRow, cc = Callback(puppetBoxLib.uiModuleOptionMenuSet,self,self.moduleDirectionMenus,self.moduleDirections,'cgmDirection',i))

				for cnt,o in enumerate(self.moduleDirections):
					self.moduleDirectionMenus[i].append(o)
					if o == self.Puppet.Module[i].ModuleNull.cgm['cgmDirection']:
						self.moduleDirectionMenus[i](edit = True, select = cnt + 1)
								
				tmpPosLabel = MelLabel(tmpNameRow,l='pos:',align='right')
				self.modulePositionMenus[i] = MelOptionMenu(tmpNameRow,
				                                            cc = Callback(puppetBoxLib.uiModuleOptionMenuSet,self,self.modulePositionMenus,self.modulePositions,'cgmPosition',i))
				for cnt,o in enumerate(self.modulePositions):
					self.modulePositionMenus[i].append(o)
					if o == self.Puppet.Module[i].ModuleNull.cgm['cgmPosition']:
						self.modulePositionMenus[i](edit = True, select = cnt + 1)					
					
				mc.formLayout(tmpNameRow, edit = True,
				              af = [(tmpNameLabel, "left", 10),
				                    (self.modulePositionMenus[i],"right",10)],
				              ac = [(self.moduleBaseNameFields[i],"left",5,tmpNameLabel),
				                    (self.moduleBaseNameFields[i],"right",5,tmpDirLabel),
				                    (tmpDirLabel,"right",5,self.moduleDirectionMenus[i]),
				                    (self.moduleDirectionMenus[i],"right",5,tmpPosLabel),
				                    (tmpPosLabel,"right",5,self.modulePositionMenus[i] ),
				                    ])
				#>>>>>>>>>>>>>>>>>>>>>
				
				if self.Puppet.Module[i].moduleClass == 'Limb':
				
					#Build Int Settings Row
					tmpIntRow = MelHSingleStretchLayout(self.moduleFrames[i], h=25,
					                                    )
					tmpIntRow.setStretchWidget(MelSpacer(tmpIntRow,w=5))
					                           
					MelLabel(tmpIntRow,l='Handles:')
					self.moduleHandleFields[i] = MelIntField(tmpIntRow,
					                                         v = self.Puppet.Module[i].optionHandles.value,
					                                         bgc = dictionary.returnStateColor('normal'),
					                                         ec = Callback(puppetBoxLib.uiModuleUpdateIntAttrFromField,self,self.moduleHandleFields,'optionHandles',i),
					                                         h = 20, w = 35)
					MelLabel(tmpIntRow,l='Roll:')
					self.moduleRollFields[i] = MelIntField(tmpIntRow,
					                                       v = self.Puppet.Module[i].optionRollJoints.value,					                                       
					                                       bgc = dictionary.returnStateColor('normal'),
					                                       ec = Callback(puppetBoxLib.uiModuleUpdateIntAttrFromField,self,self.moduleRollFields,'optionRollJoints',i),
					                                       h = 20, w = 35)
					MelLabel(tmpIntRow,l='Stiff Index:')
					self.moduleStiffIndexFields[i] = MelIntField(tmpIntRow,
					                                             v = self.Puppet.Module[i].optionStiffIndex.value,					                                             
					                                             bgc = dictionary.returnStateColor('normal'),
					                                             ec = Callback(puppetBoxLib.uiModuleUpdateIntAttrFromField,self,self.moduleStiffIndexFields,'optionStiffIndex',i),
					                                             h = 20, w = 35)	
					MelLabel(tmpIntRow,l='Curve:')
					self.moduleCurveFields[i] = MelIntField(tmpIntRow,
					                                        v = self.Puppet.Module[i].optionCurveDegree.value,					                                        
					                                        bgc = dictionary.returnStateColor('normal'),
					                                        ec = Callback(puppetBoxLib.uiModuleUpdateIntAttrFromField,self,self.moduleCurveFields,'optionCurveDegree',i),
					                                        h = 20, w = 35)
					
					
					MelSpacer(tmpIntRow,w=10)
					
					tmpIntRow.layout()
				


				#PopUp Menu!
				popUpMenu = MelPopupMenu(self.moduleFrames[i],button = 3)
				
				MelMenuItem(popUpMenu,
							label = "cls: %s"%self.Puppet.Module[i].moduleClass,
							enable = False)
				#Parent/MIrror				
				MelMenuItem(popUpMenu,
							label = "Set Parent>",
							enable = False)
				MelMenuItem(popUpMenu,
							label = "Set Mirror>",
							enable = False)	
				
				if self.Puppet.Module[i].moduleClass == 'Limb':
					MelMenuItem(popUpMenu,
						        label = 'FK',
						        cb = self.Puppet.Module[i].optionFK.value,
						        c = Callback(puppetBoxLib.uiModuleToggleBool,self,'optionFK',i))
					MelMenuItem(popUpMenu,
						        label = 'IK',
						        cb = self.Puppet.Module[i].optionIK.value,
					            c = Callback(puppetBoxLib.uiModuleToggleBool,self,'optionIK',i))
					MelMenuItem(popUpMenu,
						        label = 'Stretchy',
						        cb = self.Puppet.Module[i].optionStretchy.value,
					            c = Callback(puppetBoxLib.uiModuleToggleBool,self,'optionStretchy',i))
					MelMenuItem(popUpMenu,
						        label = 'Bendy',
						        cb = self.Puppet.Module[i].optionBendy.value,
					            c = Callback(puppetBoxLib.uiModuleToggleBool,self,'optionBendy',i))
					
				MelMenuItemDiv(popUpMenu)
				
				# Object Aim Menu
				ObjectAimMenu = MelMenuItem(popUpMenu, l='Aim:', subMenu=True)
				self.ObjectAimCollection = MelRadioMenuCollection()
			
				for index,axis in enumerate(dictionary.axisDirectionsByString):
					if self.Puppet.Module[i].optionAimAxis.get() == index:
						checkState = True
					else:
						checkState = False
					self.ObjectAimCollection.createButton(ObjectAimMenu,l=axis,
				                                          c= Callback(puppetBoxLib.doSetAxisAndUpdateModule,self,functions.doSetAimAxis,self.Puppet.Module[i],index),
				                                          rb = checkState)
				ObjectUpMenu = MelMenuItem(popUpMenu, l='Up:', subMenu=True)
				self.ObjectUpCollection = MelRadioMenuCollection()
			
				for index,axis in enumerate(dictionary.axisDirectionsByString):
					if self.Puppet.Module[i].optionUpAxis.get() == index:
						checkState = True
					else:
						checkState = False
					self.ObjectUpCollection.createButton(ObjectUpMenu,l=axis,
					                                     c= Callback(puppetBoxLib.doSetAxisAndUpdateModule,self,functions.doSetUpAxis,self.Puppet.Module[i],index),
				                                          rb = checkState)
				ObjectOutMenu = MelMenuItem(popUpMenu, l='Out:', subMenu=True)
				self.ObjectOutCollection = MelRadioMenuCollection()
			
				for index,axis in enumerate(dictionary.axisDirectionsByString):
					if self.Puppet.Module[i].optionOutAxis.get() == index:
						checkState = True
					else:
						checkState = False
					self.ObjectOutCollection.createButton(ObjectOutMenu,l=axis,
					                                      c= Callback(puppetBoxLib.doSetAxisAndUpdateModule,self,functions.doSetOutAxis,self.Puppet.Module[i],index),
				                                          rb = checkState)
					
					
				ObjectOutMenu = MelMenuItem(popUpMenu, l='Copy from Parent', 
				                            c= Callback(puppetBoxLib.doCopyAxisFromParent,self,self.Puppet.Module[i]))
				                            
				MelMenuItemDiv(popUpMenu)
				
				
				
				MelMenuItem(popUpMenu ,
							label = 'Remove',
							c = Callback(puppetBoxLib.doRemoveModule,self,i))
				
				MelMenuItem(popUpMenu ,
							label = 'Delete',
							c = Callback(puppetBoxLib.doDeleteModule,self,i))
Beispiel #6
0
def setBGColorState(textFieldToChange, newState):
    mc.textField(textFieldToChange,edit = True, bgc = dictionary.returnStateColor(newState))
Beispiel #7
0
	def buildAttributeEditingTool(self,parent, vis=True):
		#Container
		containerName = 'Attributes Constainer'
		self.containerName = MelColumn(parent,vis=vis)
		
		###Create
		mc.setParent(self.containerName)
		guiFactory.header('Create')
		guiFactory.lineSubBreak()
		
		#>>>Create Row
		attrCreateRow = MelHSingleStretchLayout(self.containerName,ut='cgmUISubTemplate',padding = 5)
		MelSpacer(attrCreateRow)

		MelLabel(attrCreateRow,l='Names:',align='right')
		self.AttrNamesTextField = MelTextField(attrCreateRow,backgroundColor = [1,1,1],h=20,
		                                       ec = lambda *a: attrToolsLib.doAddAttributesToSelected(self),
		                                       annotation = "Names for the attributes. Create multiple with a ';'. \n Message nodes try to connect to the last object in a selection \n For example: 'Test1;Test2;Test3'")
		guiFactory.doButton2(attrCreateRow,'Add',
		                     lambda *a: attrToolsLib.doAddAttributesToSelected(self),
		                     "Add the attribute names from the text field")
		MelSpacer(attrCreateRow,w=2)

		attrCreateRow.setStretchWidget(self.AttrNamesTextField)
		attrCreateRow.layout()
		
		
		#>>> modify Section
		self.buildAttrTypeRow(self.containerName)
		MelSeparator(self.containerName,ut = 'cgmUIHeaderTemplate',h=2)
		MelSeparator(self.containerName,ut = 'cgmUITemplate',h=10)
		
		###Modify
		mc.setParent(self.containerName)
		guiFactory.header('Modify')

		
		AttrReportRow = MelHLayout(self.containerName ,ut='cgmUIInstructionsTemplate',h=20)
		self.AttrReportField = MelLabel(AttrReportRow,
		                                bgc = dictionary.returnStateColor('help'),
		                                align = 'center',
		                                label = '...',
		                                h=20)
		AttrReportRow.layout()
			
		MelSeparator(self.containerName,ut = 'cgmUISubTemplate',h=5)
		
		#>>> Load To Field
		LoadAttributeObjectRow = MelHSingleStretchLayout(self.containerName ,ut='cgmUISubTemplate',padding = 5)
	
		MelSpacer(LoadAttributeObjectRow,w=5)
		
		guiFactory.doButton2(LoadAttributeObjectRow,'>>',
	                        lambda *a:attrToolsLib.uiLoadSourceObject(self),
	                         'Load to field')
		
		self.SourceObjectField = MelTextField(LoadAttributeObjectRow, w= 125, h=20, ut = 'cgmUIReservedTemplate', editable = False)
	
		LoadAttributeObjectRow.setStretchWidget(self.SourceObjectField  )
		
		MelLabel(LoadAttributeObjectRow, l=' . ')
		self.ObjectAttributesOptionMenu = MelOptionMenu(LoadAttributeObjectRow, w = 100)
	
		self.DeleteAttrButton = guiFactory.doButton2(LoadAttributeObjectRow,'X',
		                                             lambda *a:attrToolsLib.uiDeleteAttr(self,self.ObjectAttributesOptionMenu),
		                                             'Delete attribute',
		                                             w = 25,
		                                             en = False)
	
		MelSpacer(LoadAttributeObjectRow,w=5)
	
		LoadAttributeObjectRow.layout()
		
	
		#>>> Standard Flags
		BasicAttrFlagsRow = MelHLayout(self.containerName ,ut='cgmUISubTemplate',padding = 2)
		MelSpacer(BasicAttrFlagsRow,w=5)
		self.KeyableAttrCB = MelCheckBox(BasicAttrFlagsRow,label = 'Keyable',en=False)
		MelSpacer(BasicAttrFlagsRow,w=5)
		self.HiddenAttrCB = MelCheckBox(BasicAttrFlagsRow,label = 'Hidden',en=False)
		MelSpacer(BasicAttrFlagsRow,w=5)
		self.LockedAttrCB = MelCheckBox(BasicAttrFlagsRow,label = 'Locked',en=False)
		MelSpacer(BasicAttrFlagsRow,w=5)
		BasicAttrFlagsRow.layout()
		
		
		#>>> Name Row
		self.EditNameSettingsRow = MelHSingleStretchLayout(self.containerName,ut='cgmUISubTemplate')
		self.EditNameSettingsRow.setStretchWidget(MelSpacer(self.EditNameSettingsRow,w=5))
		
		NameLabel = MelLabel(self.EditNameSettingsRow,label = 'Name: ')
		self.NameField = MelTextField(self.EditNameSettingsRow,en = False,
		                              bgc = dictionary.returnStateColor('normal'),
		                              ec = lambda *a: attrToolsLib.uiRenameAttr(self),
		                              h=20,
		                              w = 75)

		NiceNameLabel = MelLabel(self.EditNameSettingsRow,label = 'Nice: ')		
		self.NiceNameField = MelTextField(self.EditNameSettingsRow,en = False,
		                             bgc = dictionary.returnStateColor('normal'),
		                             ec = lambda *a: attrToolsLib.uiUpdateNiceName(self),		                             
		                             h=20,
		                             w = 75)
		AliasLabel = MelLabel(self.EditNameSettingsRow,label = 'Alias: ')		
		self.AliasField = MelTextField(self.EditNameSettingsRow,en = False,
		                                 bgc = dictionary.returnStateColor('normal'),
		                                 ec = lambda *a: attrToolsLib.uiUpdateAlias(self),		                                 
		                                 h=20,
		                                 w = 75)
		MelSpacer(self.EditNameSettingsRow,w=5)
		self.EditNameSettingsRow.layout()
		"""mc.formLayout(self.EditNameSettingsRow, edit = True,
	                  af = [(NameLabel, "left", 5),
	                        (self.AliasField,"right",5)],
	                  ac = [(self.NameField,"left",2,NameLabel),
	                        (NiceNameLabel,"left",2,self.NameField),
	                        (self.NiceNameField,"left",2,NiceNameLabel),
	                        (AliasLabel,"left",2,self.NiceNameField),
		                    (self.AliasField,"left",2,AliasLabel),
		                    ])"""
		
		#>>> Int Row
		#self.EditDigitSettingsRow = MelFormLayout(self.containerName,ut='cgmUISubTemplate',vis = False)
		self.EditDigitSettingsRow = MelHSingleStretchLayout(self.containerName,ut='cgmUISubTemplate',vis = False)
		self.EditDigitSettingsRow.setStretchWidget(MelSpacer(self.EditDigitSettingsRow,w=5))
		MinLabel = MelLabel(self.EditDigitSettingsRow,label = 'Min:')
		self.MinField = MelTextField(self.EditDigitSettingsRow,
		                             bgc = dictionary.returnStateColor('normal'),
		                             ec = lambda *a: attrToolsLib.uiUpdateMinValue(self),
		                             h = 20, w = 35)
		
		MaxLabel = MelLabel(self.EditDigitSettingsRow,label = 'Max:')		
		self.MaxField = MelTextField(self.EditDigitSettingsRow,
		                             bgc = dictionary.returnStateColor('normal'),
		                             ec = lambda *a: attrToolsLib.uiUpdateMaxValue(self),	
		                             h = 20, w = 35)
		
		DefaultLabel = MelLabel(self.EditDigitSettingsRow,label = 'dv:')		
		self.DefaultField = MelTextField(self.EditDigitSettingsRow,
		                                 bgc = dictionary.returnStateColor('normal'),
		                                 ec = lambda *a: attrToolsLib.uiUpdateDefaultValue(self),	
		                                 h = 20, w = 35)
		SoftMinLabel = MelLabel(self.EditDigitSettingsRow,label = 'sMin:')				
		self.SoftMinField = MelTextField(self.EditDigitSettingsRow,
		                                 bgc = dictionary.returnStateColor('normal'),
		                                 ec = lambda *a: attrToolsLib.uiUpdateSoftMinValue(self),	
		                                 h = 20, w = 35)
		
		SoftMaxLabel = MelLabel(self.EditDigitSettingsRow,label = 'sMax:')				
		self.SoftMaxField = MelTextField(self.EditDigitSettingsRow,
		                                 bgc = dictionary.returnStateColor('normal'),
		                                 ec = lambda *a: attrToolsLib.uiUpdateSoftMaxValue(self),	
		                                 h = 20, w = 35)
		
		MelSpacer(self.EditDigitSettingsRow,w=5)
		self.EditDigitSettingsRow.layout()
		
		"""mc.formLayout(self.EditDigitSettingsRow, edit = True,
	                  af = [(MinLabel, "left", 20),
	                        (self.SoftMinField,"right",20)],
	                  ac = [(self.MinField,"left",2,MinLabel),
	                        (MaxLabel,"left",2,self.MinField),
	                        (self.MaxField,"left",2,MaxLabel),
	                        (DefaultLabel,"left",2,self.MaxField),
		                    (self.DefaultField,"left",2,DefaultLabel),
		                    (SoftMaxLabel,"left",2,self.DefaultField),
		                    (self.SoftMaxField,"left",2,SoftMaxLabel),
		                    (SoftMinLabel,"left",2,self.SoftMaxField),		                    		                    
		                    (self.SoftMinField,"left",2,SoftMinLabel)		                    
		                    ])"""
		
		#>>> Enum
		self.EditEnumRow = MelHSingleStretchLayout(self.containerName,ut='cgmUISubTemplate',padding = 5, vis = False)
		MelSpacer(self.EditEnumRow,w=10)
		MelLabel(self.EditEnumRow,label = 'Enum: ')
		self.EnumField = MelTextField(self.EditEnumRow,
				                      annotation = "Options divided by ':'. \n Set values with '=' \n For example: 'off:on=1:maybe=23'",
		                              bgc = dictionary.returnStateColor('normal'),
		                              h = 20, w = 75)
		MelSpacer(self.EditEnumRow,w=10)
		self.EditEnumRow.setStretchWidget(self.EnumField)
		
		self.EditEnumRow.layout()
		
		#>>> String
		self.EditStringRow = MelHSingleStretchLayout(self.containerName,ut='cgmUISubTemplate',padding = 5, vis = False)
		MelSpacer(self.EditStringRow,w=10)
		MelLabel(self.EditStringRow,label = 'String: ')
		self.StringField = MelTextField(self.EditStringRow,
		                                h=20,
		                                bgc = dictionary.returnStateColor('normal'),
		                                w = 75)
		MelSpacer(self.EditStringRow,w=10)
		self.EditStringRow.setStretchWidget(self.StringField)
		
		self.EditStringRow.layout()
		
		#>>> Message
		self.EditMessageRow = MelHSingleStretchLayout(self.containerName,ut='cgmUISubTemplate',padding = 5, vis = False)
		MelSpacer(self.EditMessageRow,w=10)
		MelLabel(self.EditMessageRow,label = 'Message: ')
		self.MessageField = MelTextField(self.EditMessageRow,
		                                 h=20,
		                                 enable = False,
		                                 bgc = dictionary.returnStateColor('locked'),
		                                 ec = lambda *a: tdToolsLib.uiUpdateAutoNameTag(self,'cgmPosition'),
		                                 w = 75)
		self.LoadMessageButton = guiFactory.doButton2(self.EditMessageRow,'<<',
		                                              lambda *a:attrToolsLib.uiUpdateMessage(self),
		                                              'Load to message')
		MelSpacer(self.EditMessageRow,w=10)
		self.EditMessageRow.setStretchWidget(self.MessageField)

		self.EditMessageRow.layout()
		
		#>>> Conversion
		self.buildAttrConversionRow(self.containerName)
		self.AttrConvertRow(e=True, vis = False)
		


		#>>> Connect Report
		self.ConnectionReportRow = MelHLayout(self.containerName ,ut='cgmUIInstructionsTemplate',h=20,vis=False)
		self.ConnectionReportField = MelLabel(self.ConnectionReportRow,vis=False,
		                                bgc = dictionary.returnStateColor('help'),
		                                align = 'center',
		                                label = '...',
		                                h=20)	
		self.ConnectionReportRow.layout()	
		
		self.ConnectedPopUpMenu = MelPopupMenu(self.ConnectionReportRow,button = 3)
		
		MelSeparator(self.containerName,ut = 'cgmUIHeaderTemplate',h=2)
		
		mc.setParent(self.containerName )
		guiFactory.lineBreak()
		
		return self.containerName
Beispiel #8
0
def uiLoadAutoNameObject(self):
    selected = []
    bufferList = []
    selected = (mc.ls(sl=True, flatten=True, shortNames=True))

    fieldToKeyDict = {
        'cgmName': self.NameTagField,
        'cgmType': self.ObjectTypeTagField,
        'cgmNameModifier': self.NameModifierTagField,
        'cgmTypeModifier': self.ObjectTypeModifierTagField,
        'cgmDirectionModifier': self.DirectionModifierTagField,
        'cgmDirection': self.DirectionTagField,
        'cgmPosition': self.PositionTagField,
        'cgmIterator': self.IteratorTagField
    }

    if selected:
        if len(selected) >= 2:
            guiFactory.warning('Only one object can be loaded')
        else:
            # Put the object in the field
            guiFactory.doLoadSingleObjectToTextField(self.AutoNameObjectField,
                                                     'cgmVar_AutoNameObject')

            #Get the tag info for the object
            tagsDict = NameFactoryOld.returnObjectGeneratedNameDict(
                selected[0])
            userAttrs = attributes.returnUserAttributes(selected[0])
            cgmAttrs = NameFactoryOld.returnCGMOrder()
            usedAttrs = lists.returnMatchList(userAttrs, cgmAttrs)
            tagAttrs = tagsDict.keys()
            #Enable the tag fields
            for key in fieldToKeyDict.keys():
                mc.textField(fieldToKeyDict.get(key),
                             edit=True,
                             enable=True,
                             text='',
                             bgc=dictionary.returnStateColor('normal'))

            for key in tagsDict.keys():
                currentField = fieldToKeyDict.get(key)

                buildSelectPopUp = {}
                buildLoadPopUp = {}
                #purge popup
                popUpBuffer = currentField(q=True, popupMenuArray=True)
                if popUpBuffer:
                    for item in popUpBuffer:
                        mc.deleteUI(item)

                mc.textField(currentField,
                             edit=True,
                             text=tagsDict.get(key),
                             bgc=dictionary.returnStateColor('keyed'))

                # Set special color cases, if it's guessed or gotten upstream....
                if usedAttrs:
                    if key not in usedAttrs:
                        mc.textField(
                            currentField,
                            edit=True,
                            bgc=dictionary.returnStateColor('reserved'))
                    # if it's connected
                    elif (mc.connectionInfo((selected[0] + '.' + key),
                                            isDestination=True)):
                        driverObject = attributes.returnDriverObject(
                            selected[0] + '.' + key)
                        driverAttr = attributes.returnDriverAttribute(
                            selected[0] + '.' + key)
                        mc.textField(
                            currentField,
                            edit=True,
                            text=(driverAttr),
                            bgc=dictionary.returnStateColor('connected'))
                        buildSelectPopUp['Select driver object'] = (
                            driverObject)
                        buildLoadPopUp['Load driver object'] = (driverObject)

                else:
                    #Got it from a parent
                    parentNameObjectRaw = search.returnTagUp(selected[0], key)
                    if parentNameObjectRaw:
                        if '|' in parentNameObjectRaw[1]:
                            parentNameBuffer = parentNameObjectRaw[1].split(
                                '|')
                            parentNameObject = parentNameBuffer[-1]
                        else:
                            parentNameObject = parentNameObjectRaw[1]
                        mc.textField(
                            currentField,
                            edit=True,
                            enable=True,
                            text=parentNameObject,
                            bgc=dictionary.returnStateColor('semiLocked'))
                        buildSelectPopUp['Select parent name object'] = (
                            parentNameObjectRaw[1])
                        buildLoadPopUp['Load parent name object'] = (
                            parentNameObjectRaw[1])
                    else:
                        mc.textField(
                            currentField,
                            edit=True,
                            bgc=dictionary.returnStateColor('reserved'))

                if buildSelectPopUp or buildLoadPopUp:
                    buffer = MelPopupMenu(currentField, button=3)
                if buildSelectPopUp:
                    for key in buildSelectPopUp.keys():
                        MelMenuItem(
                            buffer,
                            label=key,
                            c=('%s%s%s' % ("mc.select('",
                                           buildSelectPopUp.get(key), "')")))
                if buildLoadPopUp:
                    for key in buildLoadPopUp.keys():
                        MelMenuItem(buffer,
                                    label=key,
                                    c=lambda *a: uiLoadParentNameObject(
                                        self, buildLoadPopUp.get(key)))

            # if it's connected
            uiUpdateAutoNamePreview(self)

    else:
        #clear the field
        guiFactory.doLoadSingleObjectToTextField(self.AutoNameObjectField,
                                                 'cgmVar_AutoNameObject')
        # update the fields
        for key in fieldToKeyDict.keys():
            mc.textField(fieldToKeyDict.get(key),
                         edit=True,
                         enable=False,
                         text='',
                         bgc=dictionary.returnStateColor('normal'))

        # Fix previewer
        uiUpdateAutoNamePreview(self)
Beispiel #9
0
def setBGColorState(textFieldToChange, newState):
    mc.textField(textFieldToChange,
                 edit=True,
                 bgc=dictionary.returnStateColor(newState))
Beispiel #10
0
    def Main_buildLayout(self,parent):
        def modeSet( item ):
            i =  self.setModes.index(item)
            self.SetToolsModeOptionVar.set( i )
            self.setMode = i

        MainForm = MelFormLayout(parent)
        TopSection = MelColumnLayout(MainForm)	
        SetHeader = guiFactory.header('Puppet')

        #>>>  Top Section
        #Report
        self.puppetReport = MelLabel(TopSection,
                                     bgc = dictionary.returnStateColor('help'),
                                     align = 'center',
                                     label = '...',
                                     h=20)
        MelSeparator(TopSection,ut='cgmUITemplate',h=5)

        #Edit name and state mode buttons
        MasterPuppetRow = MelHSingleStretchLayout(TopSection,padding = 5)
        MelSpacer(MasterPuppetRow,w=5)
        self.MasterPuppetTF = MelTextField(MasterPuppetRow,
                                           bgc = [1,1,1],
                                           ec = lambda *a:puppetBoxLib.updatePuppetName(self))
        MasterPuppetRow.setStretchWidget(self.MasterPuppetTF)

        self.puppetStateButtonsDict = {}
        for i,s in enumerate(self.puppetStateOptions):
            self.puppetStateButtonsDict[i] = guiFactory.doButton2(MasterPuppetRow,s.capitalize(),
                                                                  "print '%s'"%s,
                                                                  enable = False)
        MelSpacer(MasterPuppetRow,w=20)

        MasterPuppetRow.layout()
        #MelSeparator(TopSection,ut='cgmUITemplate',h=2)

        #>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        # Define State Rows
        #>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>		
        #Initial State Mode Row
        self.PuppetModeCollection = MelRadioCollection()
        self.PuppetModeCollectionChoices = []			

        self.InitialStateModeRow = MelHSingleStretchLayout(TopSection,padding = 2,vis=False)	
        MelSpacer(self.InitialStateModeRow,w=5)				
        MelLabel(self.InitialStateModeRow,l='Template Modes')
        Spacer = MelSeparator(self.InitialStateModeRow,w=10)						
        for i,item in enumerate(CharacterTypes):
            self.PuppetModeCollectionChoices.append(self.PuppetModeCollection.createButton(self.InitialStateModeRow,label=item,
                                                                                           onCommand = Callback(puppetBoxLib.setPuppetBaseMode,self,i)))
            MelSpacer(self.InitialStateModeRow,w=3)
        self.InitialStateModeRow.setStretchWidget( Spacer )
        MelSpacer(self.InitialStateModeRow,w=2)		
        self.InitialStateModeRow.layout()	

        mc.radioCollection(self.PuppetModeCollection ,edit=True,sl= (self.PuppetModeCollectionChoices[ (self.PuppetModeOptionVar.value) ]))
        self.UI_StateRows['define'].append(self.InitialStateModeRow)


        self.AxisFrame = MelFrameLayout(TopSection,label = 'Axis',vis=False,
                                        collapse=True,
                                        collapsable=True,
                                        ut = 'cgmUIHeaderTemplate')
        self.UI_StateRows['define'].append(self.AxisFrame)
        MelSeparator(TopSection,style='none',h=5)						

        #Aim Axis Mode Row
        self.AimAxisCollection = MelRadioCollection()
        self.AimAxisCollectionChoices = []			

        self.AimAxisRow = MelHSingleStretchLayout(self.AxisFrame,padding = 2,vis=False)	
        MelSpacer(self.AimAxisRow,w=5)				
        MelLabel(self.AimAxisRow,l='Aim ')
        Spacer = MelSeparator(self.AimAxisRow,w=10)						
        for i,item in enumerate(axisDirectionsByString):
            self.AimAxisCollectionChoices.append(self.AimAxisCollection.createButton(self.AimAxisRow,label=item,
                                                                                     onCommand = Callback(puppetBoxLib.setPuppetAxisAim,self,i)))
            MelSpacer(self.AimAxisRow,w=3)
        self.AimAxisRow.setStretchWidget( Spacer )
        MelSpacer(self.AimAxisRow,w=2)		
        self.AimAxisRow.layout()	


        #Up Axis Mode Row
        self.UpAxisCollection = MelRadioCollection()
        self.UpAxisCollectionChoices = []			

        self.UpAxisRow = MelHSingleStretchLayout(self.AxisFrame,padding = 2,vis=False)	
        MelSpacer(self.UpAxisRow,w=5)				
        MelLabel(self.UpAxisRow,l='Up ')
        Spacer = MelSeparator(self.UpAxisRow,w=10)						
        for i,item in enumerate(axisDirectionsByString):
            self.UpAxisCollectionChoices.append(self.UpAxisCollection.createButton(self.UpAxisRow,label=item,
                                                                                   onCommand = Callback(puppetBoxLib.setPuppetAxisUp,self,i)))
            MelSpacer(self.UpAxisRow,w=3)
        self.UpAxisRow.setStretchWidget( Spacer )
        MelSpacer(self.UpAxisRow,w=2)		
        self.UpAxisRow.layout()	


        #Out Axis Mode Row
        self.OutAxisCollection = MelRadioCollection()
        self.OutAxisCollectionChoices = []			

        self.OutAxisRow = MelHSingleStretchLayout(self.AxisFrame,padding = 2,vis=False)	
        MelSpacer(self.OutAxisRow,w=5)				
        MelLabel(self.OutAxisRow,l='Out ')
        Spacer = MelSeparator(self.OutAxisRow,w=10)	
        for i,item in enumerate(axisDirectionsByString):
            self.OutAxisCollectionChoices.append(self.OutAxisCollection.createButton(self.OutAxisRow,label=item,
                                                                                     onCommand = Callback(puppetBoxLib.setPuppetAxisOut,self,i)))
            MelSpacer(self.OutAxisRow,w=3)
        self.OutAxisRow.setStretchWidget( Spacer )
        MelSpacer(self.OutAxisRow,w=2)		
        self.OutAxisRow.layout()	

        #Set toggles on menu
        mc.radioCollection(self.AimAxisCollection ,edit=True,sl= (self.AimAxisCollectionChoices[ (self.PuppetAimOptionVar.value) ]))		
        mc.radioCollection(self.UpAxisCollection ,edit=True,sl= (self.UpAxisCollectionChoices[ (self.PuppetUpOptionVar.value) ]))		
        mc.radioCollection(self.OutAxisCollection ,edit=True,sl= (self.OutAxisCollectionChoices[ (self.PuppetOutOptionVar.value) ]))


        #Initial State Button Row
        self.InitialStateButtonRow = MelHLayout(TopSection, h = 20,vis=False,padding = 5)
        guiFactory.doButton2(self.InitialStateButtonRow,'Add Geo',
                             lambda *a:puppetBoxLib.doAddGeo(self))
        guiFactory.doButton2(self.InitialStateButtonRow,'Build Size Template',
                             lambda *a:puppetBoxLib.doBuildSizeTemplate(self))

        self.InitialStateButtonRow.layout()
        self.UI_StateRows['define'].append(self.InitialStateButtonRow)

        #>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        # Multi Module
        #>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

        #>>>  All Sets menu
        AllModulesRow = MelFormLayout(MainForm,height = 20)
        activeState = True
        i = 1

        tmpActive = MelCheckBox(AllModulesRow,
                                annotation = 'Sets all sets active',
                                value = activeState,
                                onCommand =  Callback(puppetBoxLib.doSetAllSetsAsActive,self),
                                offCommand = Callback(puppetBoxLib.doSetAllSetsAsInactive,self))

        tmpSel = guiFactory.doButton2(AllModulesRow,
                                      ' s ',
                                      'Select All Loaded/Active Sets')

        # Mode toggle box
        self.ModuleModeOptionMenu = MelOptionMenu(AllModulesRow,
                                                  cc = modeSet)


        tmpKey = guiFactory.doButton2(AllModulesRow,
                                      ' k ',
                                      'Key All Sets')
        tmpDeleteKey = guiFactory.doButton2(AllModulesRow,
                                            ' d ',
                                            'Delete All Set Keys')	
        tmpReset = guiFactory.doButton2(AllModulesRow,
                                        ' r ',
                                        'Reset All Set Keys')	

        mc.formLayout(AllModulesRow, edit = True,
                      af = [(tmpActive, "left", 10),
                            (tmpReset,"right",10)],
                      ac = [(tmpSel,"left",0,tmpActive),
                            (self.ModuleModeOptionMenu,"left",4,tmpSel),
                            (self.ModuleModeOptionMenu,"right",4,tmpKey),
                            (tmpKey,"right",2,tmpDeleteKey),
                            (tmpDeleteKey,"right",2,tmpReset)
                            ])

        #>>> Sets building section
        allPopUpMenu = MelPopupMenu(self.ModuleModeOptionMenu ,button = 3)

        allCategoryMenu = MelMenuItem(allPopUpMenu,
                                      label = 'Make Type:',
                                      sm = True)




        #>>> Sets building section
        ModuleListScroll = MelScrollLayout(MainForm,cr = 1, ut = 'cgmUISubTemplate')
        ModuleMasterForm = MelFormLayout(ModuleListScroll)
        self.ModuleListColumn = MelColumnLayout(ModuleMasterForm,ut = 'cgmUIInstructionsTemplate', adj = True, rowSpacing = 2)



        self.helpInfo = MelLabel(MainForm,
                                 h=20,
                                 l = "Add a Puppet",
                                 ut = 'cgmUIInstructionsTemplate',
                                 al = 'center',
                                 ww = True,vis = self.ShowHelpOptionVar.value)
        self.helpBlurbs.extend([self.helpInfo ])

        VerifyRow = guiFactory.doButton2(MainForm,
                                         'Check Puppet',
                                         'Create new buffer from selected buffer')	

        ModuleMasterForm(edit = True,
                         af = [(self.ModuleListColumn,"top",0),
                               (self.ModuleListColumn,"left",0),
                               (self.ModuleListColumn,"right",0),
                               (self.ModuleListColumn,"bottom",0)])


        MainForm(edit = True,
                 af = [(TopSection,"top",0),	
                       (TopSection,"left",0),
                       (TopSection,"right",0),		               
                       (AllModulesRow,"left",0),
                       (AllModulesRow,"right",0),
                       (ModuleListScroll,"left",0),
                       (ModuleListScroll,"right",0),
                       (ModuleListScroll,"left",0),
                       (ModuleListScroll,"right",0),				       
                       (self.helpInfo,"left",8),
                       (self.helpInfo,"right",8),
                       (VerifyRow,"left",4),
                       (VerifyRow,"right",4),		               
                       (VerifyRow,"bottom",4)],
                 ac = [(AllModulesRow,"top",2,TopSection),
                       (ModuleListScroll,"top",2,AllModulesRow),
                       (ModuleListScroll,"bottom",0,self.helpInfo),
                       (self.helpInfo,"bottom",0,VerifyRow)],
                 attachNone = [(VerifyRow,"top")])	
Beispiel #11
0
    def updateModulesUI(self):
        def optionMenuSet(item):
            print item
            #puppetBoxLib.uiModuleSetCGMTag(self,tag,item,index)
            """
			i =  self.setModes.index(item)
			self.SetToolsModeOptionVar.set( i )
			self.setMode = i"""

        #deleteExisting
        self.ModuleListColumn.clear()

        if self.Puppet:			
            for i,b in enumerate(self.Puppet.ModulesBuffer.bufferList):
                # NEED to get colors
                #Build label for Frame
                self.moduleFrames[i] = MelFrameLayout(self.ModuleListColumn,l='',
                                                      collapse=True,
                                                      collapsable=True,
                                                      marginHeight=0,
                                                      marginWidth=0,
                                                      bgc = dictionary.guiDirectionColors['center'])
                puppetBoxLib.uiModuleUpdateFrameLabel(self,i)


                #Build Naming Row
                tmpNameRow = MelFormLayout(self.moduleFrames[i], h=25,
                                           )
                tmpNameLabel = MelLabel(tmpNameRow,l='base:',align='right')

                self.moduleBaseNameFields[i] = MelTextField(tmpNameRow,text=self.Puppet.Module[i].nameBase or '',
                                                            ec = Callback(puppetBoxLib.uiUpdateBaseName,self,i),
                                                            w=50,
                                                            h=20)

                tmpDirLabel = MelLabel(tmpNameRow,l='dir:',align='right')								
                self.moduleDirectionMenus[i] = MelOptionMenu(tmpNameRow, cc = Callback(puppetBoxLib.uiModuleOptionMenuSet,self,self.moduleDirectionMenus,self.moduleDirections,'cgmDirection',i))

                for cnt,o in enumerate(self.moduleDirections):
                    self.moduleDirectionMenus[i].append(o)
                    if o == self.Puppet.Module[i].ModuleNull.cgm['cgmDirection']:
                        self.moduleDirectionMenus[i](edit = True, select = cnt + 1)

                tmpPosLabel = MelLabel(tmpNameRow,l='pos:',align='right')
                self.modulePositionMenus[i] = MelOptionMenu(tmpNameRow,
                                                            cc = Callback(puppetBoxLib.uiModuleOptionMenuSet,self,self.modulePositionMenus,self.modulePositions,'cgmPosition',i))
                for cnt,o in enumerate(self.modulePositions):
                    self.modulePositionMenus[i].append(o)
                    if o == self.Puppet.Module[i].ModuleNull.cgm['cgmPosition']:
                        self.modulePositionMenus[i](edit = True, select = cnt + 1)					

                mc.formLayout(tmpNameRow, edit = True,
                              af = [(tmpNameLabel, "left", 10),
                                    (self.modulePositionMenus[i],"right",10)],
                              ac = [(self.moduleBaseNameFields[i],"left",5,tmpNameLabel),
                                    (self.moduleBaseNameFields[i],"right",5,tmpDirLabel),
                                    (tmpDirLabel,"right",5,self.moduleDirectionMenus[i]),
                                    (self.moduleDirectionMenus[i],"right",5,tmpPosLabel),
                                    (tmpPosLabel,"right",5,self.modulePositionMenus[i] ),
                                    ])
                #>>>>>>>>>>>>>>>>>>>>>

                if self.Puppet.Module[i].moduleClass == 'Limb':

                    #Build Int Settings Row
                    tmpIntRow = MelHSingleStretchLayout(self.moduleFrames[i], h=25,
                                                        )
                    tmpIntRow.setStretchWidget(MelSpacer(tmpIntRow,w=5))

                    MelLabel(tmpIntRow,l='Handles:')
                    self.moduleHandleFields[i] = MelIntField(tmpIntRow,
                                                             v = self.Puppet.Module[i].optionHandles.value,
                                                             bgc = dictionary.returnStateColor('normal'),
                                                             ec = Callback(puppetBoxLib.uiModuleUpdateIntAttrFromField,self,self.moduleHandleFields,'optionHandles',i),
                                                             h = 20, w = 35)
                    MelLabel(tmpIntRow,l='Roll:')
                    self.moduleRollFields[i] = MelIntField(tmpIntRow,
                                                           v = self.Puppet.Module[i].optionRollJoints.value,					                                       
                                                           bgc = dictionary.returnStateColor('normal'),
                                                           ec = Callback(puppetBoxLib.uiModuleUpdateIntAttrFromField,self,self.moduleRollFields,'optionRollJoints',i),
                                                           h = 20, w = 35)
                    MelLabel(tmpIntRow,l='Stiff Index:')
                    self.moduleStiffIndexFields[i] = MelIntField(tmpIntRow,
                                                                 v = self.Puppet.Module[i].optionStiffIndex.value,					                                             
                                                                 bgc = dictionary.returnStateColor('normal'),
                                                                 ec = Callback(puppetBoxLib.uiModuleUpdateIntAttrFromField,self,self.moduleStiffIndexFields,'optionStiffIndex',i),
                                                                 h = 20, w = 35)	
                    MelLabel(tmpIntRow,l='Curve:')
                    self.moduleCurveFields[i] = MelIntField(tmpIntRow,
                                                            v = self.Puppet.Module[i].optionCurveDegree.value,					                                        
                                                            bgc = dictionary.returnStateColor('normal'),
                                                            ec = Callback(puppetBoxLib.uiModuleUpdateIntAttrFromField,self,self.moduleCurveFields,'optionCurveDegree',i),
                                                            h = 20, w = 35)


                    MelSpacer(tmpIntRow,w=10)

                    tmpIntRow.layout()



                #PopUp Menu!
                popUpMenu = MelPopupMenu(self.moduleFrames[i],button = 3)

                MelMenuItem(popUpMenu,
                            label = "cls: %s"%self.Puppet.Module[i].moduleClass,
                            enable = False)
                #Parent/MIrror				
                MelMenuItem(popUpMenu,
                            label = "Set Parent>",
                            enable = False)
                MelMenuItem(popUpMenu,
                            label = "Set Mirror>",
                            enable = False)	

                if self.Puppet.Module[i].moduleClass == 'Limb':
                    MelMenuItem(popUpMenu,
                                label = 'FK',
                                cb = self.Puppet.Module[i].optionFK.value,
                                c = Callback(puppetBoxLib.uiModuleToggleBool,self,'optionFK',i))
                    MelMenuItem(popUpMenu,
                                label = 'IK',
                                cb = self.Puppet.Module[i].optionIK.value,
                                c = Callback(puppetBoxLib.uiModuleToggleBool,self,'optionIK',i))
                    MelMenuItem(popUpMenu,
                                label = 'Stretchy',
                                cb = self.Puppet.Module[i].optionStretchy.value,
                                c = Callback(puppetBoxLib.uiModuleToggleBool,self,'optionStretchy',i))
                    MelMenuItem(popUpMenu,
                                label = 'Bendy',
                                cb = self.Puppet.Module[i].optionBendy.value,
                                c = Callback(puppetBoxLib.uiModuleToggleBool,self,'optionBendy',i))

                MelMenuItemDiv(popUpMenu)

                # Object Aim Menu
                ObjectAimMenu = MelMenuItem(popUpMenu, l='Aim:', subMenu=True)
                self.ObjectAimCollection = MelRadioMenuCollection()

                for index,axis in enumerate(dictionary.axisDirectionsByString):
                    if self.Puppet.Module[i].optionAimAxis.get() == index:
                        checkState = True
                    else:
                        checkState = False
                    self.ObjectAimCollection.createButton(ObjectAimMenu,l=axis,
                                                          c= Callback(puppetBoxLib.doSetAxisAndUpdateModule,self,functions.doSetAimAxis,self.Puppet.Module[i],index),
                                                          rb = checkState)
                ObjectUpMenu = MelMenuItem(popUpMenu, l='Up:', subMenu=True)
                self.ObjectUpCollection = MelRadioMenuCollection()

                for index,axis in enumerate(dictionary.axisDirectionsByString):
                    if self.Puppet.Module[i].optionUpAxis.get() == index:
                        checkState = True
                    else:
                        checkState = False
                    self.ObjectUpCollection.createButton(ObjectUpMenu,l=axis,
                                                         c= Callback(puppetBoxLib.doSetAxisAndUpdateModule,self,functions.doSetUpAxis,self.Puppet.Module[i],index),
                                                         rb = checkState)
                ObjectOutMenu = MelMenuItem(popUpMenu, l='Out:', subMenu=True)
                self.ObjectOutCollection = MelRadioMenuCollection()

                for index,axis in enumerate(dictionary.axisDirectionsByString):
                    if self.Puppet.Module[i].optionOutAxis.get() == index:
                        checkState = True
                    else:
                        checkState = False
                    self.ObjectOutCollection.createButton(ObjectOutMenu,l=axis,
                                                          c= Callback(puppetBoxLib.doSetAxisAndUpdateModule,self,functions.doSetOutAxis,self.Puppet.Module[i],index),
                                                          rb = checkState)


                ObjectOutMenu = MelMenuItem(popUpMenu, l='Copy from Parent', 
                                            c= Callback(puppetBoxLib.doCopyAxisFromParent,self,self.Puppet.Module[i]))

                MelMenuItemDiv(popUpMenu)



                MelMenuItem(popUpMenu ,
                            label = 'Remove',
                            c = Callback(puppetBoxLib.doRemoveModule,self,i))

                MelMenuItem(popUpMenu ,
                            label = 'Delete',
                            c = Callback(puppetBoxLib.doDeleteModule,self,i))
Beispiel #12
0
	def buildAutoNameTool(self,parent, vis=True):
		containerName = 'AutoNameContainer'
		self.containerName = MelColumn(parent,vis=vis)
		
		#>>> Begin the section
		mc.setParent(self.containerName )
		guiFactory.header('Tag and Release')
		guiFactory.lineSubBreak()
		
		#>>> Guessed Name
		GenratedNameRow = MelHLayout(self.containerName ,ut='cgmUIInstructionsTemplate')
		self.GeneratedNameField = MelLabel(GenratedNameRow,
	                                       bgc = dictionary.returnStateColor('help'),
	                                       align = 'center',
	                                       label = 'Name will preview here...')
		
		GenratedNameRow.layout()
		mc.setParent(self.containerName )
		guiFactory.lineSubBreak()
		guiFactory.lineSubBreak()
	
		#>>> Load To Field
		#clear our variables
		if not mc.optionVar( ex='cgmVar_AutoNameObject' ):
			mc.optionVar( sv=('cgmVar_AutoNameObject', '') )
	
		LoadAutoNameObjectRow = MelHSingleStretchLayout(self.containerName ,ut='cgmUISubTemplate',padding = 5)
	
		MelSpacer(LoadAutoNameObjectRow,w=5)
	
		MelLabel(LoadAutoNameObjectRow,l='Object:',align='right')
	
		self.AutoNameObjectField = MelTextField(LoadAutoNameObjectRow, w= 125, ut = 'cgmUIReservedTemplate', editable = False)
		if mc.optionVar( q = 'cgmVar_AutoNameObject'):
			self.AutoNameObjectField(edit=True,text = mc.optionVar( q = 'cgmVar_AutoNameObject'))
	
		guiFactory.doButton2(LoadAutoNameObjectRow,'<<',
	                        'tdToolsLib.uiLoadAutoNameObject(cgmTDToolsWin)',
	                         'Load to field')
	
		LoadAutoNameObjectRow.setStretchWidget(self.AutoNameObjectField  )
	
		guiFactory.doButton2(LoadAutoNameObjectRow,'Up',
	                         lambda *a:tdToolsLib.uiAutoNameWalkUp(self),
	                         'Load to field')
		
		guiFactory.doButton2(LoadAutoNameObjectRow,'Down',
	                         lambda *a:tdToolsLib.uiAutoNameWalkDown(self),
	                         'Load to field')
	
		guiFactory.doButton2(LoadAutoNameObjectRow,'Name it',
	                         lambda *a:tdToolsLib.uiNameLoadedAutoNameObject(self),
	                         'Load to field')
		guiFactory.doButton2(LoadAutoNameObjectRow,'Name Children',
	                         lambda *a:tdToolsLib.uiNameLoadedAutoNameObjectChildren(self),
	                         'Load to field')
	
		MelSpacer(LoadAutoNameObjectRow,w=5)
	
		LoadAutoNameObjectRow.layout()
	
	
		mc.setParent(self.containerName )
		guiFactory.lineSubBreak()
		
		#>>> Tag Labels
		TagLabelsRow = MelHLayout(self.containerName ,ut='cgmUISubTemplate',padding = 2)
		MelLabel(TagLabelsRow,label = 'Position')
		MelLabel(TagLabelsRow,label = 'Direction')
		MelLabel(TagLabelsRow,label = 'Name')
		MelLabel(TagLabelsRow,label = 'Type')
	
		TagLabelsRow.layout()
		
		#>>> Tags
		mc.setParent(self.containerName )
		TagsRow = MelHLayout(self.containerName,ut='cgmUISubTemplate',padding = 3)
		self.PositionTagField = MelTextField(TagsRow,
	                                     enable = False,
	                                     bgc = dictionary.returnStateColor('normal'),
	                                     ec = lambda *a: tdToolsLib.uiUpdateAutoNameTag(self,'cgmPosition'),
	                                     w = 75)
		self.DirectionTagField = MelTextField(TagsRow,
	                                     enable = False,
	                                     bgc = dictionary.returnStateColor('normal'),
	                                     ec = lambda *a: tdToolsLib.uiUpdateAutoNameTag(self,'cgmDirection'),
	                                     w = 75)
		self.NameTagField = MelTextField(TagsRow,
	                                     enable = False,
	                                     bgc = dictionary.returnStateColor('normal'),
	                                     ec = lambda *a: tdToolsLib.uiUpdateAutoNameTag(self,'cgmName'),
	                                     w = 75)
		"""
		self.NameTagFieldPopUp = MelPopupMenu(self.NameTagField,button = 3)
		self.NameTagLoadParentPopUp = MelMenuItem(self.NameTagFieldPopUp ,
												  label = 'Select parent name object',
												  enable = False)
		"""
		self.ObjectTypeTagField = MelTextField(TagsRow,
	                                     enable = False,
	                                     bgc = dictionary.returnStateColor('normal'),
	                                     ec = lambda *a: tdToolsLib.uiUpdateAutoNameTag(self,'cgmType'),
	                                     w = 75)
		
		TagsRow.layout()
		mc.setParent(self.containerName )
		guiFactory.lineSubBreak()
		
		#>>> ModifierTags
		mc.setParent(self.containerName )
		TagModifiersRow = MelHLayout(self.containerName,ut='cgmUISubTemplate',padding = 3)
		MelLabel(TagModifiersRow,align = 'right', label = 'Modifiers ------->',w = 75)
		self.DirectionModifierTagField = MelTextField(TagModifiersRow,
	                                     enable = False,
	                                     bgc = dictionary.returnStateColor('normal'),
	                                     ec = lambda *a: tdToolsLib.uiUpdateAutoNameTag(self,'cgmDirectionModifier'),
	                                     w = 75)
		self.NameModifierTagField = MelTextField(TagModifiersRow,
	                                     enable = False,
	                                     bgc = dictionary.returnStateColor('normal'),
	                                     ec = lambda *a: tdToolsLib.uiUpdateAutoNameTag(self,'cgmNameModifier'),
	                                     w = 75)
		self.ObjectTypeModifierTagField = MelTextField(TagModifiersRow,
	                                     enable = False,
	                                     bgc = dictionary.returnStateColor('normal'),
	                                     ec = lambda *a: tdToolsLib.uiUpdateAutoNameTag(self,'cgmTypeModifier'),
	                                     w = 75)
		
		TagModifiersRow.layout()
		
		
		
		mc.setParent(self.containerName )
		guiFactory.lineSubBreak()
		guiFactory.lineBreak()
		
		#>>> Basic
		mc.setParent(self.containerName )
		guiFactory.header('On Selection')
		guiFactory.lineSubBreak()
	
		BasicRow = MelHLayout(self.containerName ,ut='cgmUISubTemplate',padding = 2)
		guiFactory.doButton2(BasicRow,'Name Object',
	                         'tdToolsLib.uiNameObject(cgmTDToolsWin)',
	                         "Attempts to name an object")
		guiFactory.doButton2(BasicRow,'Update Name',
	                         'tdToolsLib.doUpdateObjectName(cgmTDToolsWin)',
	                         "Takes the name you've manually changed the object to, \n stores that to the cgmName tag then \n renames the object")
		guiFactory.doButton2(BasicRow,'Name Heirarchy',
	                         'tdToolsLib.doNameHeirarchy(cgmTDToolsWin)',
	                         "Attempts to intelligently name a  \n heirarchy of objects")
	
		BasicRow.layout()
		
		
		mc.setParent(self.containerName )
		guiFactory.lineSubBreak()
		guiFactory.lineBreak()
	
	
		return self.containerName