def build_layoutWrapper(self, parent): uiColumn_main = zooUI.MelColumnLayout(parent) cgmUI.add_Header('Setup Hotkey') cgmUI.add_TextBlock(self.mi_cgmHotkeyer._d_kws['name']) #>>>Modifier row ------------------------------------------------------------------------------------ self.uiRow_Modifier = zooUI.MelHSingleStretchLayout( uiColumn_main, ut='cgmUISubTemplate', padding=2) #zooUI.MelSpacer(self.uiRow_Modifier,w=5) #zooUI.MelLabel(self.uiRow_Modifier, label = 'Modifier: ',align='right') self.uiRow_Modifier.setStretchWidget( zooUI.MelSeparator(self.uiRow_Modifier)) self.uiRow_Modifier.layout() self.uiRadioCollection_modifier = zooUI.MelRadioCollection() self.uiOptions_modifier = [] for i, item in enumerate(cgmHotkeyer._l_modifierOptions): self.uiOptions_modifier.append( self.uiRadioCollection_modifier.createButton( self.uiRow_Modifier, label=item)) self.uiRow_Modifier.layout() mc.radioCollection(self.uiRadioCollection_modifier, edit=True, sl=self.uiOptions_modifier[0]) #>>>Text row ------------------------------------------------------------------------------------ uiRow_key = zooUI.MelHLayout(uiColumn_main, ut='cgmUISubTemplate', padding=15) self.uiText_key = zooUI.MelTextField( uiRow_key, backgroundColor=[1, 1, 1], h=20, text=self.mi_cgmHotkeyer._defaultKey, ut='cgmUITemplate', #ec = lambda *a:self._UTILS.puppet_doChangeName(self), annotation="Hotkey to use") uiRow_key.layout() #>>> Button row mc.setParent(uiColumn_main) cgmUI.add_LineSubBreak() uiRow_buttons = zooUI.MelHLayout(uiColumn_main, ut='cgmUISubTemplate', padding=5) cgmUI.add_Button(uiRow_buttons, 'Go', commandText=lambda *a: self.buttonPress_go(), annotationText="Set it up") cgmUI.add_Button( uiRow_buttons, 'Reset', commandText=lambda *a: self.buttonPress_reset(), en=False, annotationText="Reset given key to the default maya setting") uiRow_buttons.layout()
def build_layoutWrapper(self,parent): MainForm = zooUI.MelColumnLayout(parent) SetHeader = cgmUI.add_Header('HI') #self.l_helpElements.extend(add_InstructionBlock(MainForm,"Purge all traces of cgmThinga tools from the object and so and so forth forever, amen.",vis = self.var_ShowHelp.value)) cgmUI.add_Button(MainForm) cgmUI.add_Button(MainForm,'Debug test', lambda *a: self.do_DebugEchoTest()) cgmUI.add_MelLabel(MainForm,'asdfasdfasdf')
def build_layoutWrapper(self,parent): uiColumn_main = zooUI.MelColumnLayout(parent) cgmUI.add_Header('Setup Hotkey') cgmUI.add_TextBlock(self.mi_cgmHotkeyer._d_kws['name']) #>>>Modifier row ------------------------------------------------------------------------------------ self.uiRow_Modifier = zooUI.MelHSingleStretchLayout(uiColumn_main,ut='cgmUISubTemplate',padding = 2) #zooUI.MelSpacer(self.uiRow_Modifier,w=5) #zooUI.MelLabel(self.uiRow_Modifier, label = 'Modifier: ',align='right') self.uiRow_Modifier.setStretchWidget( zooUI.MelSeparator(self.uiRow_Modifier) ) self.uiRow_Modifier.layout() self.uiRadioCollection_modifier = zooUI.MelRadioCollection() self.uiOptions_modifier = [] for i,item in enumerate(cgmHotkeyer._l_modifierOptions): self.uiOptions_modifier.append(self.uiRadioCollection_modifier.createButton(self.uiRow_Modifier,label=item)) self.uiRow_Modifier.layout() mc.radioCollection(self.uiRadioCollection_modifier,edit=True, sl=self.uiOptions_modifier[0]) #>>>Text row ------------------------------------------------------------------------------------ uiRow_key = zooUI.MelHLayout(uiColumn_main,ut='cgmUISubTemplate',padding = 15) self.uiText_key = zooUI.MelTextField(uiRow_key,backgroundColor = [1,1,1],h=20, text = self.mi_cgmHotkeyer._defaultKey, ut = 'cgmUITemplate', #ec = lambda *a:self._UTILS.puppet_doChangeName(self), annotation = "Hotkey to use") uiRow_key.layout() #>>> Button row mc.setParent(uiColumn_main) cgmUI.add_LineSubBreak() uiRow_buttons = zooUI.MelHLayout(uiColumn_main,ut='cgmUISubTemplate',padding = 5) cgmUI.add_Button(uiRow_buttons,'Go',commandText = lambda *a:self.buttonPress_go(), annotationText="Set it up") cgmUI.add_Button(uiRow_buttons,'Reset',commandText = lambda *a:self.buttonPress_reset(),en = False, annotationText="Reset given key to the default maya setting") uiRow_buttons.layout()
def buildScrollForm(self, parent, hasHeader = False, buttonArgs = [], headerText = 'Header', allowMultiSelection=True, buttonCommand=None, doubleClickCommand=None, selectCommand=None): main_form = mUI.MelFormLayout(parent,ut='cgmUITemplate') header = None if(hasHeader): header = cgmUI.add_Header(headerText, overrideUpper = True) scroll_list = mUI.MelObjectScrollList( main_form, ut='cgmUITemplate', allowMultiSelection=allowMultiSelection, doubleClickCommand=cgmGEN.Callback(doubleClickCommand,self), selectCommand=cgmGEN.Callback(selectCommand,self) ) buttonLayout = None buttons = [] hasButton = len(buttonArgs) > 0 if(hasButton): #buttonLayout = mUI.MelColumnLayout(main_form,useTemplate = 'cgmUISubTemplate') buttonLayout = mUI.MelHLayout(main_form,ut='cgmUISubTemplate',padding = 1,bgc=_subLineBGC) for btn in buttonArgs: button = cgmUI.add_Button(buttonLayout,btn['label'], cgmGEN.Callback(btn['command'],self), btn['annotation'], bgc=_buttonBGC) buttons.append(button) buttonLayout.layout() af = [(scroll_list,"left",0), (scroll_list,"right",0)] ac = [] attachNone = [] if(hasHeader): af += [ (header,"top",0), (header,"left",0), (header,"right",0) ] ac += [(scroll_list,"top",0,header)] attachNone += [(header,"bottom")] else: af += [ (scroll_list,"top",0) ] if(hasButton): af += [ (buttonLayout,"bottom",0), (buttonLayout,"left",0), (buttonLayout,"right",0)] ac += [(scroll_list,"bottom",0,buttonLayout)] attachNone += [(buttonLayout,"top")] else: af += [ (scroll_list,"bottom",0) ] main_form(edit=True, af = af, ac = ac, attachNone = attachNone) return [main_form, scroll_list, header, buttons]
def buildOptions(self,parent, asScroll = False): if asScroll: _inside = mUI.MelScrollLayout(parent,useTemplate = 'cgmUISubTemplate') else: _inside = mUI.MelColumnLayout(parent,useTemplate = 'cgmUISubTemplate') #>>>Objects Load Row --------------------------------------------------------------------------------------- mc.setParent(_inside) cgmUI.add_LineSubBreak() _row = mUI.MelHSingleStretchLayout(_inside,ut='cgmUISubTemplate',padding = 5,bgc=_subLineBGC) mUI.MelSpacer(_row,w=5) mUI.MelLabel(_row,l='Auto Link by') _row.setStretchWidget( mUI.MelSeparator(_row) ) cgmUI.add_Button(_row,'Name', cgmGEN.Callback(self.uiFunc_link_by_name,self), _d_annotations.get('linkName','fix'), bgc=_buttonBGC) cgmUI.add_Button(_row,'Distance', cgmGEN.Callback(self.uiFunc_link_by_distance,self), _d_annotations.get('linkDistance','fix'), bgc=_buttonBGC) mUI.MelSpacer(_row,w=5) _row.layout() _row = mUI.MelHSingleStretchLayout(_inside,ut='cgmUISubTemplate',padding = 1,bgc=_subLineBGC) mUI.MelSpacer(_row,w=9) mUI.MelLabel(_row,l='Set Target Constraint to') _row.setStretchWidget( mUI.MelSeparator(_row) ) cgmUI.add_Button(_row,'Point/Orient', cgmGEN.Callback(self.uiFunc_set_constraint_type,1,True,self), _d_annotations.get('setPointOrient','fix'), bgc=_buttonBGC) cgmUI.add_Button(_row,'A', cgmGEN.Callback(self.uiFunc_set_constraint_type,1,False,self), _d_annotations.get('setPointOrientAll','fix'), bgc=_buttonBGC) mUI.MelSpacer(_row,w=4) cgmUI.add_Button(_row,'Orient', cgmGEN.Callback(self.uiFunc_set_constraint_type,0,True,self), _d_annotations.get('setOrient','fix'), bgc=_buttonBGC) cgmUI.add_Button(_row,'A', cgmGEN.Callback(self.uiFunc_set_constraint_type,1,False,self), _d_annotations.get('setOrientAll','fix'), bgc=_buttonBGC) mUI.MelSpacer(_row,w=9) _row.layout() _row = mUI.MelHSingleStretchLayout(_inside,ut='cgmUISubTemplate',padding = 5,bgc=_subLineBGC) mUI.MelSpacer(_row,w=5) mUI.MelLabel(_row,l='Set Connection Pose') _row.setStretchWidget( mUI.MelSeparator(_row) ) self.cb_set_connection_at_bake = mUI.MelCheckBox(_row, v = self.var_mocap_set_connection_at_bake.value, onCommand = lambda *a: self.var_mocap_set_connection_at_bake.setValue(1), offCommand = lambda *a: self.var_mocap_set_connection_at_bake.setValue(0), label="Set On Bake") cgmUI.add_Button(_row,'Manual Set', cgmGEN.Callback(self.uiFunc_set_connection_pose,1,self), _d_annotations.get('setConnectionPose','fix'), bgc = [.5,.2,0.2]) mUI.MelSpacer(_row,w=5) _row.layout() # Bake Options timelineInfo = SEARCH.get_time('slider') mc.setParent(_inside) cgmUI.add_Header("Bake Options", overrideUpper = True) cgmUI.add_LineSubBreak() _row = mUI.MelHSingleStretchLayout(_inside,ut='cgmUISubTemplate',padding = 5,bgc=_subLineBGC) #self.timeSubMenu.append( _row ) mUI.MelSpacer(_row,w=5) mUI.MelLabel(_row,l='Set Timeline Range') _row.setStretchWidget( mUI.MelSeparator(_row) ) cgmUI.add_Button(_row,'Slider', cgmGEN.Callback(self.uiFunc_updateTimeRange,'slider'), _d_annotations.get('sliderRange','fix'), bgc=_buttonBGC) cgmUI.add_Button(_row,'Sel', cgmGEN.Callback(self.uiFunc_updateTimeRange,'selected'), _d_annotations.get('selectedRange','fix'), bgc=_buttonBGC) cgmUI.add_Button(_row,'Scene', cgmGEN.Callback(self.uiFunc_updateTimeRange,'scene'), _d_annotations.get('sceneRange','fix'), bgc=_buttonBGC) mUI.MelSpacer(_row,w=5) _row.layout() _row = mUI.MelHSingleStretchLayout(_inside,ut='cgmUISubTemplate', padding=5,bgc=_subLineBGC) mUI.MelSpacer(_row,w=5) mUI.MelLabel(_row,l='Bake Range') _row.setStretchWidget( mUI.MelSeparator(_row) ) mUI.MelLabel(_row,l='start') self.startFrameField = mUI.MelIntField(_row,'cgmLocWinStartFrameField', width = 40, value= timelineInfo[0]) mUI.MelLabel(_row,l='end') self.endFrameField = mUI.MelIntField(_row,'cgmLocWinEndFrameField', width = 40, value= timelineInfo[1]) cgmUI.add_Button(_row,' <<', cgmGEN.Callback(self.uiFunc_bake,'back'), #lambda *a: attrToolsLib.doAddAttributesToSelected(self), _d_annotations.get('<<<','fix'), bgc=_buttonBGC) cgmUI.add_Button(_row,'Bake', cgmGEN.Callback(self.uiFunc_bake,'all'), _d_annotations.get('All','fix'), bgc=_buttonBGC) cgmUI.add_Button(_row,'>>', cgmGEN.Callback(self.uiFunc_bake,'forward'), _d_annotations.get('>>>','fix'), bgc=_buttonBGC) mUI.MelSpacer(_row,w=5) _row.layout() mc.setParent(_inside) cgmUI.add_LineSubBreak() return _inside
def buildColumn_main(self, parent, asScroll=False): """ Trying to put all this in here so it's insertable in other uis """ if asScroll: _inside = mUI.MelScrollLayout(parent, useTemplate='cgmUISubTemplate') else: _inside = mUI.MelColumnLayout(parent, useTemplate='cgmUISubTemplate') self.var_contextTD = cgmMeta.cgmOptionVar('cgmVar_contextTD', defaultValue='selection') self.var_jointAimAxis = cgmMeta.cgmOptionVar('cgmVar_jointDefaultAimAxis', defaultValue=2) self.var_jointUpAxis = cgmMeta.cgmOptionVar('cgmVar_jointDefaultUpAxis', defaultValue=1) self.uiPB_cgmJointTools = mc.progressBar(vis=False) mc.setParent(_inside) cgmUI.add_Header('Orient') mc.setParent(_inside) cgmUI.add_LineSubBreak() #Orient ================================================================================================== #>>>Tweak ------------------------------------------------------------------------------------- _row = mUI.MelHSingleStretchLayout(_inside, ut='cgmUISubTemplate', padding=5) mUI.MelSpacer(_row, w=5) mUI.MelLabel(_row, l='Tweak:') _row.setStretchWidget(mUI.MelSeparator(_row)) _base_str = 'uiFF_orientTweak' #self._d_transformAttrFields[label] = {} #self._d_transformRows[label] = _row for a in list('xyz'): mUI.MelLabel(_row, l=a) _field = mUI.MelFloatField(_row, ut='cgmUISubTemplate', w=50) self.__dict__['{0}{1}'.format(_base_str, a.capitalize())] = _field mc.button(parent=_row, ut='cgmUITemplate', l=' + ', c=cgmGEN.Callback(uiFunc_tweak, self, '+'), ann="Adds value relatively to current") mc.button(parent=_row, ut='cgmUITemplate', l=' - ', c=cgmGEN.Callback(uiFunc_tweak, self, '-'), ann="Subracts value relatively to current") mc.button(parent=_row, ut='cgmUITemplate', l='Zero', c=cgmGEN.Callback(uiFunc_tweak, self, 'zero'), ann="Zero out the fields.") mUI.MelSpacer(_row, w=5) _row.layout() mc.setParent(_inside) cgmUI.add_LineSubBreak() #mUI.MelSeparator(_inside) buildRow_worldUp(self, _inside) mc.setParent(_inside) cgmUI.add_LineSubBreak() buildRow_getVector(self, _inside) #>>>Aim mode ------------------------------------------------------------------------------------- _d = {'aim': self.var_jointAimAxis, 'up': self.var_jointUpAxis} for k in _d.keys(): _var = _d[k] _row = mUI.MelHSingleStretchLayout(_inside, ut='cgmUISubTemplate', padding=5) mUI.MelSpacer(_row, w=5) mUI.MelLabel(_row, l='{0}:'.format(k)) _row.setStretchWidget(mUI.MelSeparator(_row)) uiRC = mUI.MelRadioCollection() _on = _var.value for i, item in enumerate(SHARED._l_axis_by_string): if i == _on: _rb = True else: _rb = False uiRC.createButton(_row, label=item, sl=_rb, onCommand=cgmGEN.Callback(_var.setValue, i)) mUI.MelSpacer(_row, w=2) _row.layout() #mUI.MelSeparator(_inside) #>>Orient Row ------------------------------------------------------------------------------- _row_orient = mUI.MelHLayout(_inside, ut='cgmUISubTemplate', padding=5) mc.button(parent=_row_orient, ut='cgmUITemplate', l='Orient Selected', c=cgmGEN.Callback(orientJoints, self), ann="Orient selected joints") mc.button( parent=_row_orient, ut='cgmUITemplate', l='Plane Up', c=cgmGEN.Callback(orientPlane, self, 'up'), ann= "Orient selected joints along up plane of joints. Most useful for fingers and things like that" ) mc.button( parent=_row_orient, ut='cgmUITemplate', l='Plane Out', c=cgmGEN.Callback(orientPlane, self, 'out'), ann= "Orient selected joints along out plane of joints. Most useful for fingers and things like that" ) mc.button( parent=_row_orient, ut='cgmUITemplate', l='Freeze', ann= "Freeze selected joint's orientation - our method as we don't like Maya's", c=cgmGEN.Callback(MMCONTEXT.func_process, JOINTS.freezeOrientation, None, 'each', 'freezeOrientation', False, **{}), ) _row_orient.layout() mc.setParent(_inside) cgmUI.add_LineSubBreak() #Create ================================================================================================== mc.setParent(_inside) cgmUI.add_Header('Create') #>>>Options Row --------------------------------------------------------------------------------------- _row_createOptions = mUI.MelHSingleStretchLayout(_inside, ut='cgmUISubTemplate', padding=5) mUI.MelSpacer(_row_createOptions, w=2) mUI.MelLabel(_row_createOptions, l='Resplit:') self.create_guiOptionVar('splitMode', defaultValue=0) uiRC = mUI.MelRadioCollection() _on = self.var_splitMode.value for i, item in enumerate(['none', 'linear', 'curve', 'sub']): if i == _on: _rb = True else: _rb = False uiRC.createButton(_row_createOptions, label=item, sl=_rb, onCommand=cgmGEN.Callback( self.var_splitMode.setValue, i)) #mUI.MelSpacer(_row_createOptions,w=2) _row_createOptions.setStretchWidget(mUI.MelSeparator(_row_createOptions)) self.uiIF_cnt = mUI.MelIntField(_row_createOptions, value=3, ut='cgmUISubTemplate', w=30) mUI.MelLabel(_row_createOptions, l='#') mUI.MelSpacer(_row_createOptions, w=2) _row_createOptions.layout() #>>>Create Buttons Row --------------------------------------------------------------------------------------- mc.setParent(_inside) cgmUI.add_LineSubBreak() _row_create = mUI.MelHSingleStretchLayout(_inside, ut='cgmUISubTemplate', padding=5) mUI.MelSpacer(_row_create, w=2) self.uiCB_orient = mUI.MelCheckBox(_row_create, en=True, l='Orient', value=True, ann='Orient created joints') self.uiCB_chain = mUI.MelCheckBox(_row_create, en=True, l='Chain', value=True, ann='Parent created joints as a chain') self.uiCB_relative = mUI.MelCheckBox( _row_create, en=True, l='Relative', value=False, ann= 'Relative orient where the chain orientation is relative to the parent' ) _row_create.setStretchWidget(mUI.MelSeparator(_row_create)) #mUI.MelLabel(_row_create,l='From Selected:') mc.button( parent=_row_create, ut='cgmUITemplate', l='From Selected', c=cgmGEN.Callback(createJoints, self, 'each'), #ann = "Show the joint axis by current context", #c= lambda *a:MMCONTEXT.set_attrs(self,'displayLocalAxis',1,self.var_contextTD.value,'joint',select=False), ) mc.button( parent=_row_create, ut='cgmUITemplate', l='Mid', c=cgmGEN.Callback(MMCONTEXT.func_process, RIGGING.create_at, None, 'all', 'Create Joint at mid', **{ 'create': 'joint', 'midPoint': 'True' }), ann='Create a joint at the mid point of selected', ) mc.button( parent=_row_create, ut='cgmUITemplate', l='Curve', c=cgmGEN.Callback(createJoints, self, 'curve'), #ann = "Show the joint axis by current context", #c= lambda *a:MMCONTEXT.set_attrs(self,'displayLocalAxis',1,self.var_contextTD.value,'joint',select=False), ) mUI.MelSpacer(_row_create, w=2) _row_create.layout() if asScroll: #Axis ================================================================================================== mc.setParent(_inside) cgmUI.add_Header('Raycast') mc.setParent(_inside) cgmUI.add_LineSubBreak() UICHUNKS.uiChunk_rayCast(self, _inside) #Axis ================================================================================================== mc.setParent(_inside) cgmUI.add_Header('Axis') mc.setParent(_inside) cgmUI.add_LineSubBreak() #>>>Axis Show Row --------------------------------------------------------------------------------------- _row_axis = mUI.MelHLayout(_inside, ut='cgmUISubTemplate', padding=5) mc.button( parent=_row_axis, ut='cgmUITemplate', l='* Show', ann="Show the joint axis by current context", c=lambda *a: MMCONTEXT.set_attrs(self, 'displayLocalAxis', 1, self.var_contextTD.value, 'joint', select=False), ) mc.button( parent=_row_axis, ut='cgmUITemplate', l='* Hide', ann="Hide the joint axis by current context", c=lambda *a: MMCONTEXT.set_attrs(self, 'displayLocalAxis', 0, self.var_contextTD.value, 'joint', select=False), ) _row_axis.layout() #Axis ================================================================================================== mc.setParent(_inside) cgmUI.add_Header('Radius') mc.setParent(_inside) cgmUI.add_LineSubBreak() _row_radius = mUI.MelHLayout(_inside, ut='cgmUISubTemplate', padding=5) mc.button(parent=_row_radius, ut='cgmUITemplate', l=' / 2 ', c=lambda *a: radius_modify(self, '/', 2), ann="Contextual radius editing") mc.button(parent=_row_radius, ut='cgmUITemplate', l=' - 10', c=lambda *a: radius_modify(self, '-', 10), ann="Contextual radius editing") mc.button(parent=_row_radius, ut='cgmUITemplate', l='- 1', c=lambda *a: radius_modify(self, '-', 1), ann="Contextual radius editing") mc.button(parent=_row_radius, ut='cgmUITemplate', l='+ 1', c=lambda *a: radius_modify(self, '+', 1), ann="Contextual radius editing") mc.button(parent=_row_radius, ut='cgmUITemplate', l='+10', c=lambda *a: radius_modify(self, '+', 10), ann="Contextual radius editing") mc.button(parent=_row_radius, ut='cgmUITemplate', l='*2', c=lambda *a: radius_modify(self, '*', 2), ann="Contextual radius editing") _row_radius.layout() #Utilities ================================================================================================== mc.setParent(_inside) cgmUI.add_Header('Utilities') mc.setParent(_inside) cgmUI.add_LineSubBreak() #Buttons ---------------------------------------------------------------------------------------------- _row_utils = mUI.MelHLayout(_inside, ut='cgmUISubTemplate', padding=5) mc.button(parent=_row_utils, ut='cgmUITemplate', l='cometJO', c=lambda *a: mel.eval('cometJointOrient'), ann="General Joint orientation tool by Michael Comet") mc.button(parent=_row_utils, ut='cgmUITemplate', l='* Select', c=lambda *a: contextual_select(self), ann="Contextual joint selection") mc.button( parent=_row_utils, ut='cgmUITemplate', l='seShapeTaper', ann= "Fantastic blendtaper like tool for sdk poses by our pal - Scott Englert", c=lambda *a: mel.eval('seShapeTaper'), ) _row_utils.layout() return _inside