Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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 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
Exemplo n.º 4
0
    def destroy(self):
        self._handleWhisperModeSV.set(False)
        if self._handleWhisperModeFC:
            self._handleWhisperModeFC.destroy()

        self._handleWhisperModeSV.destroy()
        SCElement.destroy(self)
Exemplo n.º 5
0
 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)
Exemplo n.º 7
0
    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)
Exemplo n.º 8
0
    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)
Exemplo n.º 9
0
    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 __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)
Exemplo n.º 11
0
    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)
Exemplo n.º 12
0
    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()
Exemplo n.º 13
0
 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()))
Exemplo n.º 14
0
 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
Exemplo n.º 15
0
 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
Exemplo n.º 16
0
 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?).')
Exemplo n.º 18
0
    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
Exemplo n.º 19
0
 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 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)
Exemplo n.º 21
0
 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
Exemplo n.º 22
0
 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)
Exemplo n.º 23
0
 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)
Exemplo n.º 25
0
 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()
Exemplo n.º 26
0
 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()
Exemplo n.º 30
0
 def getMinDimensions(self):
     width, height = SCElement.getMinDimensions(self)
     # add space for the arrow
     width += 1.
     return width, height
Exemplo n.º 31
0
 def getMinDimensions(self):
     width, height = SCElement.getMinDimensions(self)
     if self.hasLinkedEmote():
         width += 1.3
     return (width, height)
Exemplo n.º 32
0
 def onMouseClick(self, event):
     SCElement.enterActive(self)
     self.parentMenu.memberSelected(self)
Exemplo n.º 33
0
 def destroy(self):
     if self.menu is not None:
         self.menu.destroy()
         self.menu = None
     SCElement.destroy(self)
     return
Exemplo n.º 34
0
 def invalidate(self):
     SCElement.invalidate(self)
     if self.menu is not None:
         self.menu.invalidate()
     return
Exemplo n.º 35
0
 def getMinDimensions(self):
     width, height = SCElement.getMinDimensions(self)
     width += 1.0
     return (width, height)
 def getMinDimensions(self):
     width, height = SCElement.getMinDimensions(self)
     if self.hasLinkedEmote():
         width += 1.3
     return (width, height)
Exemplo n.º 37
0
 def onMouseClick(self, event):
     if not self.isDisabled():
         SCElement.onMouseClick(self, event)
         self.handleSelect()
Exemplo n.º 38
0
 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)
 def exitVisible(self):
     SCElement.exitVisible(self)
     self.ignore(self.getEventName(SCWhisperModeChangeEvent))
     if Emote.globalEmote:
         self.ignore(Emote.globalEmote.EmoteEnableStateChanged)