def privSetSettingsRef(self, settingsRef): SCElement.privSetSettingsRef(self, settingsRef) if self._handleWhisperModeFC is None: self._handleWhisperModeFC = FunctionCall(self._handleWhisperModeSVChanged, self._handleWhisperModeSV) self._handleWhisperModeFC.pushCurrentState() self._handleWhisperModeSV.set(self.settingsRef is not None and not self.isWhisperable()) return
def finalize(self, dbArgs={}): if not self.isDirty(): return args = {} if self.hasLinkedEmote(): self.lastEmoteIconColor = self.getEmoteIconColor() self.emotionIcon.setColorScale(*self.lastEmoteIconColor) args.update({ 'image': self.emotionIcon, 'image_pos': (self.width - 0.6, 0, -self.height * 0.5) }) if self.isDisabled(): args.update({ 'rolloverColor': (0, 0, 0, 0), 'pressedColor': (0, 0, 0, 0), 'rolloverSound': None, 'clickSound': None, 'text_fg': self.getColorScheme().getTextDisabledColor() + (1, ) }) args.update(dbArgs) SCElement.finalize(self, dbArgs=args) return
def destroy(self): self._handleWhisperModeSV.set(False) if self._handleWhisperModeFC: self._handleWhisperModeFC.destroy() self._handleWhisperModeSV.destroy() SCElement.destroy(self)
def __init__(self, title, menu = None): SCElement.__init__(self) self.title = title scGui = loader.loadModel(SCMenu.GuiModelName) self.scArrow = scGui.find('**/chatArrow') self.menu = None self.setMenu(menu)
def enterVisible(self): SCElement.enterVisible(self) # Check if the emote state has changed since the last time # we were finalized, and invalidate if it's different. if hasattr(self, 'lastEmoteIconColor'): if self.getEmoteIconColor() != self.lastEmoteIconColor: self.invalidate() # listen for whisper-mode changes def handleWhisperModeChange(whisperMode, self=self): if self.hasLinkedEmote(): # we are leaving or entering whisper mode; # the appearance of our emote icon needs to change # (no linked emotes on whispers) if self.isVisible() and not self.isWhispering(): self.updateEmoteIcon() self.accept(self.getEventName(SCWhisperModeChangeEvent), handleWhisperModeChange) # listen for emote-enable state changes def handleEmoteEnableStateChange(self=self): if self.hasLinkedEmote(): # emotions have just become enabled/disabled # update our emote icon # (no emotes when whispering) if self.isVisible() and not self.isWhispering(): self.updateEmoteIcon() if self.hasLinkedEmote(): if Emote.globalEmote: self.accept(Emote.globalEmote.EmoteEnableStateChanged, handleEmoteEnableStateChange)
def enterVisible(self): SCElement.enterVisible(self) if hasattr(self, 'lastEmoteIconColor'): if self.getEmoteIconColor() != self.lastEmoteIconColor: self.invalidate() def handleWhisperModeChange(whisperMode, self = self): if self.hasLinkedEmote(): if self.isVisible() and not self.isWhispering(): self.updateEmoteIcon() self.accept(self.getEventName(SCWhisperModeChangeEvent), handleWhisperModeChange) def handleEmoteEnableStateChange(self = self): if self.hasLinkedEmote(): if self.isVisible() and not self.isWhispering(): self.updateEmoteIcon() if self.hasLinkedEmote(): if Emote.globalEmote: self.accept(Emote.globalEmote.EmoteEnableStateChanged, handleEmoteEnableStateChange)
def finalize(self, dbArgs={}): """ catch this call and influence the appearance of our button """ if not self.isDirty(): return args = {} if self.hasLinkedEmote(): self.lastEmoteIconColor = self.getEmoteIconColor() self.emotionIcon.setColorScale(*self.lastEmoteIconColor) args.update({ 'image': self.emotionIcon, 'image_pos': (self.width-.6,0,-self.height*.5), }) if self.isDisabled(): args.update({ 'rolloverColor': (0,0,0,0), 'pressedColor': (0,0,0,0), 'rolloverSound': None, 'clickSound': None, 'text_fg': self.getColorScheme().getTextDisabledColor()+(1,), }) args.update(dbArgs) SCElement.finalize(self, dbArgs=args)
def finalize(self, dbArgs={}): """catch this call and influence the appearance of our button""" if not self.isDirty(): return r, g, b = self.getColorScheme().getArrowColor() a = self.getColorScheme().getAlpha() self.scArrow.setColorScale(r, g, b, a) if self.menu is not None: # adjust the position of the menu self.menu.setPos(self.getMenuOffset()) if self.isActive(): r, g, b = self.getColorScheme().getMenuHolderActiveColor() a = self.getColorScheme().getAlpha() frameColor = (r, g, b, a) else: frameColor = SCMenuHolder.DefaultFrameColor args = { 'image': self.scArrow, 'image_pos': (self.width - .5, 0, -self.height * .5), 'frameColor': frameColor, } args.update(dbArgs) SCElement.finalize(self, dbArgs=args)
def exitActive(self): SCElement.exitActive(self) self.hideMenu() # reset the frame color self.button.frameStyle[DGG.BUTTON_READY_STATE].setColor( *SCMenuHolder.DefaultFrameColor) self.button.updateFrameStyle()
def privSetSettingsRef(self, settingsRef): SCElement.privSetSettingsRef(self, settingsRef) if self._handleWhisperModeFC is None: self._handleWhisperModeFC = FunctionCall(self._handleWhisperModeSVChanged, self._handleWhisperModeSV) self._handleWhisperModeFC.pushCurrentState() # if this terminal is not whisperable, we need to listen for whisper mode changes self._handleWhisperModeSV.set((self.settingsRef is not None) and (not self.isWhisperable()))
def __init__(self, linkedEmote=None): SCElement.__init__(self) self.setLinkedEmote(linkedEmote) scGui = loader.loadModel(SCMenu.GuiModelName) self.emotionIcon = scGui.find('**/emotionIcon') self.setDisabled(False) self._SCTerminal__numCharges = -1 self._handleWhisperModeSV = StateVar(False) self._handleWhisperModeFC = None
def __init__(self, linkedEmote = None): SCElement.__init__(self) self.setLinkedEmote(linkedEmote) scGui = loader.loadModel(SCMenu.GuiModelName) self.emotionIcon = scGui.find('**/emotionIcon') self.setDisabled(False) self._SCTerminal__numCharges = -1 self._handleWhisperModeSV = StateVar(False) self._handleWhisperModeFC = None
def enterActive(self): SCElement.enterActive(self) self.showMenu() if hasattr(self, 'button'): r, g, b = self.getColorScheme().getMenuHolderActiveColor() a = self.getColorScheme().getAlpha() self.button.frameStyle[DGG.BUTTON_READY_STATE].setColor(r, g, b, a) self.button.updateFrameStyle() else: self.notify.warning('SCMenuHolder has no button (has finalize been called?).')
def enterActive(self): SCElement.enterActive(self) self.showMenu() if hasattr(self, 'button'): (r, g, b) = self.getColorScheme().getMenuHolderActiveColor() a = self.getColorScheme().getAlpha() self.button.frameStyle[DGG.BUTTON_READY_STATE].setColor(r, g, b, a) self.button.updateFrameStyle() else: self.notify.warning('SCMenuHolder has no button (has finalize been called?).')
def __init__(self, linkedEmote=None): SCElement.__init__(self) self.setLinkedEmote(linkedEmote) scGui = loader.loadModel(SCMenu.GuiModelName) self.emotionIcon = scGui.find('**/emotionIcon') self.setDisabled(False) self.__numCharges = -1 # should we listen for whisper mode changes? self._handleWhisperModeSV = StateVar(False) # can't set this up until we're ready to have the handler func called self._handleWhisperModeFC = None
def finalize(self, dbArgs = {}): if not self.isDirty(): return args = {} if self.hasLinkedEmote(): self.lastEmoteIconColor = self.getEmoteIconColor() self.emotionIcon.setColorScale(*self.lastEmoteIconColor) args.update({'image': self.emotionIcon, 'image_pos': (self.width - 0.6, 0, -self.height * 0.5)}) if self.isDisabled(): args.update({'rolloverColor': (0, 0, 0, 0), 'pressedColor': (0, 0, 0, 0), 'rolloverSound': None, 'clickSound': None, 'text_fg': self.getColorScheme().getTextDisabledColor() + (1,)}) args.update(dbArgs) SCElement.finalize(self, dbArgs=args) return
def finalize(self, dbArgs={}): if not self.isDirty(): return r, g, b = self.getColorScheme().getArrowColor() a = self.getColorScheme().getAlpha() self.scArrow.setColorScale(r, g, b, a) if self.menu is not None: self.menu.setPos(self.getMenuOffset()) if self.isActive(): r, g, b = self.getColorScheme().getMenuHolderActiveColor() a = self.getColorScheme().getAlpha() frameColor = (r, g, b, a) else: frameColor = SCMenuHolder.DefaultFrameColor args = {'image': self.scArrow, 'image_pos': (self.width - 0.5, 0, -self.height * 0.5), 'frameColor': frameColor} args.update(dbArgs) SCElement.finalize(self, dbArgs=args) return
def finalize(self, dbArgs = { }): if not self.isDirty(): return None (r, g, b) = self.getColorScheme().getArrowColor() a = self.getColorScheme().getAlpha() self.scArrow.setColorScale(r, g, b, a) if self.menu is not None: self.menu.setPos(self.getMenuOffset()) if self.isActive(): (r, g, b) = self.getColorScheme().getMenuHolderActiveColor() a = self.getColorScheme().getAlpha() frameColor = (r, g, b, a) else: frameColor = SCMenuHolder.DefaultFrameColor args = { 'image': self.scArrow, 'image_pos': (self.width - 0.5, 0, -(self.height) * 0.5), 'frameColor': frameColor } args.update(dbArgs) SCElement.finalize(self, dbArgs = args)
def exitVisible(self): SCElement.exitVisible(self) self.ignore(self.getEventName(SCWhisperModeChangeEvent)) if Emote.globalEmote: self.ignore(Emote.globalEmote.EmoteEnableStateChanged)
def onMouseClick(self, event): SCElement.enterActive(self) self.parentMenu.memberSelected(self)
def invalidate(self): SCElement.invalidate(self) # invalidate our menu, since our width may have changed and # the menu may be stretched to cover our width if self.menu is not None: self.menu.invalidate()
def getMinDimensions(self): width, height = SCElement.getMinDimensions(self) if self.hasLinkedEmote(): # add space for the emotion icon width += 1.3 return width, height
def destroy(self): if self.menu is not None: self.menu.destroy() self.menu = None SCElement.destroy(self)
def onMouseClick(self, event): if not self.isDisabled(): SCElement.onMouseClick(self, event) self.handleSelect()
def invalidate(self): SCElement.invalidate(self) if self.menu is not None: self.menu.invalidate()
def getMinDimensions(self): width, height = SCElement.getMinDimensions(self) # add space for the arrow width += 1. return width, height
def getMinDimensions(self): width, height = SCElement.getMinDimensions(self) if self.hasLinkedEmote(): width += 1.3 return (width, height)
def destroy(self): if self.menu is not None: self.menu.destroy() self.menu = None SCElement.destroy(self) return
def invalidate(self): SCElement.invalidate(self) if self.menu is not None: self.menu.invalidate() return
def getMinDimensions(self): width, height = SCElement.getMinDimensions(self) width += 1.0 return (width, height)
def exitActive(self): SCElement.exitActive(self) self.hideMenu() self.button.frameStyle[DGG.BUTTON_READY_STATE].setColor(*SCMenuHolder.DefaultFrameColor) self.button.updateFrameStyle()
def getMinDimensions(self): (width, height) = SCElement.getMinDimensions(self) width += 1.0 return (width, height)