#1
|
|||
|
|||
VizMenu still in focus after calling setVisible
Ive got this menu and when I click a button, the menu hides via setVisible. When I want to, I bring the menu back, but when I use the mouse and click the menu title to it is still in focus and does not pop out until i focus its nebore menu title.
To see issue: Run script Select Simulation->Next Excersize Press spacebar Try to select Simulation Code:
# coding: UTF-8 import viz import vizact import vizinfo import vizmenu TITLE_COLOR = (.85, .85, .85) BGCOLOR = (0.3,0.3,.5) TITLEBGCOLOR = (0.3,0.3,.5) class ParameterView: def __init__(self, menu, parameter): self.parameter = parameter self.line = menu.add(viz.TEXT3D, '_'*15) self.line.color(TITLE_COLOR) self.label = menu.add(viz.TEXT3D, parameter.name) # self.slider = menu.add(viz.PROGRESS_BAR, parameter.name) self.slider = menu.add(viz.SLIDER) self.textBox = menu.add(viz.TEXTBOX) self.textBox.length(.5) self.parameterName = parameter.name self.sliderScaleFactor = parameter.maxValue - parameter.minValue self.updateViewParameterChanged() vizact.ontextbox(self.textBox, self.textboxChanged) vizact.onslider(self.slider, self.sliderChanged) vizact.onevent(Parameter.PARAMETER_CHANGED_EVENT, lambda e: (e.obj==self.parameter, None), self.updateViewParameterChanged) def setVisible(self, isVisible): self.line.visible(isVisible) self.label.visible(isVisible) self.slider.visible(isVisible) self.textBox.visible(isVisible) def updateViewParameterChanged(self): try: if self.parameter.value != float(self.textBox.get()): self.textBox.message(str(self.parameter.value)) except ValueError: self.textBox.message(str(self.parameter.value)) self.slider.set(self.parameter.value / self.sliderScaleFactor) def textboxChanged(self, e=None): if self.textBox.get() != '': try: value = float(self.textBox.get()) self.parameter.setValue(value) self.updateViewParameterChanged() except ValueError: try: self.textBox.message("%1.2f" % (float(e.oldText))) except: self.textBox.message('') viz.message('Enter only numbers') def sliderChanged(self, e): value = self.slider.get() * self.sliderScaleFactor self.parameter.setValue(value) self.updateViewParameterChanged() timeInfo = None simParametersInfo = None graphInfo = None paramHistory = None messageGroup = None simMenu = None def setup(): global simParametersInfo, timeInfo, graphInfo, paramHistory, messageGroup, simMenu # ALPHA = .5 # messageGroup = viz.addGroup(viz.SCREEN, pos=(.5, .80, 0), scale=[1]*3) # messageGroup.alpha(ALPHA) # background = viz.addTexQuad(messageGroup, scale=(11, 2, 0), pos=[0,0,0]) # background.zoffset(2) # background.alpha(ALPHA) # messageGroup.t = viz.addText('asdfasdfsad', parent=messageGroup, color=viz.BLACK, pos=(-.39,.028,0), scale=[.5]*3) # messageGroup.t.alpha(ALPHA) vizmenu.MENU_FONT_SIZE = 25 vizmenu.HIDDEN_HANGOFF_AMOUNT = 0 vizmenu.VISIBLE_ANIMATE_SPEED = 10000 timeInfo = vizmenu.add() timeInfo.setAutoHide(viz.OFF) simMenu = timeInfo.add('Simulation') timeInfo.startSimulationButton = simMenu.add(viz.BUTTON, 'Start') timeInfo.resetSimulationButton = simMenu.add(viz.BUTTON, 'Reset') timeInfo.resetSimulationButton.visible(viz.OFF) timeInfo.nextExercise = simMenu.add(viz.BUTTON, 'Next Exercise') sysMenu = timeInfo.add('System') timeInfo.graphOnWallCheckbox = sysMenu.add(viz.CHECKBOX, 'Draw graphs on wall') timeInfo.parameterHistoryWindowCheckbox = sysMenu.add(viz.CHECKBOX, 'Parameter History Table') timeInfo.toggleParmeterWindowsButton = sysMenu.add(viz.BUTTON, 'Toggle Parameter Windows') timeInfo.parameterHistoryWindowCheckbox.set(1) timeInfo.clearTrialHistoryButton = sysMenu.add(viz.BUTTON, 'Clear History') timeInfo.resetViewButton = sysMenu.add(viz.BUTTON, 'Reset View Position') timeInfo.showForcesButton = sysMenu.add(viz.CHECKBOX, 'Show Forces') def setMenuVisible(isVisable): timeInfo.setVisible(isVisable) timeInfo.dirty() if isVisable == 0: simMenu.setVisible(isVisable) simMenu.dirty() parameterList = [] def addParameter(param, menu): parameterList.append(ParameterView(menu, param)) def setParameterVisible(param, isVisible): for parameterView in parameterList: if parameterView.parameter == param: parameterView.setVisible(isVisible) def addOption(name, menu): button = menu.add(viz.CHECKBOX, name) return button def addLabel(stringy, menu): t = menu.add(viz.TEXT3D, '_'*15) t.color(TITLE_COLOR) t = menu.add(viz.TEXT3D, stringy) t.color(TITLE_COLOR) #def setMessageVisible(isViz): # messageGroup.visible(isViz) # #def setMessage(stingy): # messageGroup.t.message(stingy) if __name__ == '__main__': viz.go() # viz.add('gallery.ive') viz.clearcolor(viz.SKYBLUE) setup() setMenuVisible(1) setMenuVisible(0) vizact.onbuttondown(timeInfo.nextExercise, setMenuVisible, 0) vizact.onkeydown(' ' , setMenuVisible, 1)
__________________
Paul Elliott WorldViz LLC |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Vizmenu slider bug? | Gladsomebeast | Vizard | 2 | 10-22-2008 08:05 PM |