Ejemplo n.º 1
0
    def _UpdateScroll(self):
        if self.isPaused:
            return
        wndAbove = uiutil.GetWindowAbove(uicore.uilib.mouseOver)
        if isinstance(wndAbove,
                      form.UIEventListener) and uicore.uilib.rightbtn:
            return
        scrolllist = []
        lastTime = None
        for time, event in self.events[:self.showMax]:
            if lastTime == time:
                time = ''
            else:
                lastTime = time
            label = time + '<t>' + self.GetScrollLabel(event)
            scrolllist.append(
                uicls.ScrollEntryNode(decoClass=uicls.SE_Generic,
                                      label=label,
                                      fontsize=14,
                                      event=event,
                                      OnGetMenu=self.GetScrollEntryMenu))

        self.scroll.Load(contentList=scrolllist,
                         headers=self.SCROLL_HEADERS,
                         ignoreSort=True)
Ejemplo n.º 2
0
 def OpenContainer(self):
     if self.rec.ownerID not in (eve.session.charid, eve.session.corpid):
         eve.Message('CantDoThatWithSomeoneElsesStuff')
         return
     wnd = uiutil.GetWindowAbove(self)
     if self.rec.typeID == const.typePlasticWrap:
         InventoryWindow.OpenOrShow(invID=('StationContainer',
                                           self.rec.itemID),
                                    openFromWnd=wnd)
     elif sm.StartService('menu').CheckSameLocation(self.rec):
         invID = ('StationContainer', self.rec.itemID)
         InventoryWindow.OpenOrShow(invID=invID, openFromWnd=wnd)
     else:
         location = self.rec.locationID
         if not session.stationid or util.IsStation(
                 location) and location != session.stationid:
             log.LogInfo('Trying to open a container in', location,
                         'while actor is in', session.stationid)
             return
         inventory = sm.GetService('invCache').GetInventoryFromId(location)
         if not inventory:
             return
         item = inventory.GetItem()
         if not item:
             return
         category = getattr(item, 'categoryID', None)
         if category == const.categoryShip and item.locationID == session.stationid:
             InventoryWindow.OpenOrShow(invID=('StationContainer',
                                               self.rec.itemID),
                                        openFromWnd=wnd)
Ejemplo n.º 3
0
 def OnFilterTypeCombo(self, combo, label, filterType):
     self.SetFilterType(filterType)
     if filterType > 0 and not self.isRemovable:
         self.controller.AddEntry()
         self.SetRemovable(True)
     wnd = uiutil.GetWindowAbove(self)
     if wnd:
         wnd.ApplyFilter()
Ejemplo n.º 4
0
 def GetSelectedFromGroup(self):
     if self._groupName:
         par = uiutil.GetWindowAbove(self)
         if par is None:
             par = self.parent
         for each in par.Find('trinity.Tr2Sprite2dContainer'):
             if isinstance(each, uicls.CheckboxCore) and each._groupName == self._groupName:
                 if each.GetValue():
                     return each
Ejemplo n.º 5
0
 def _ApplyFilter(self):
     wnd = uiutil.GetWindowAbove(self)
     if wnd:
         wnd.ApplyFilter()
         blue.synchro.Sleep(500)
         if self.applyFilterPending:
             self.applyFilterThread = uthread.new(self._ApplyFilter)
         else:
             self.applyFilterThread = None
         self.applyFilterPending = False
Ejemplo n.º 6
0
 def MouseEnterListener(self, cont, *args):
     cont = uicore.uilib.GetMouseOver()
     if uiutil.GetWindowAbove(cont) == self:
         return True
     if not cont or not self.mouseEnterCookie or self.destroyed:
         return False
     if self.highlightLock or cont == self.currCont:
         return True
     self.HighlightCont(cont)
     self.currCont = cont
     return True
Ejemplo n.º 7
0
 def OpenShipCargo(self):
     if not self.rec.ownerID == eve.session.charid:
         eve.Message('CantDoThatWithSomeoneElsesStuff')
         return
     if not sm.StartService('menu').CheckSameStation(self.rec):
         return
     if session.stationid2:
         if self.rec.groupID == const.groupCapsule:
             if eve.Message('AskActivateShip', {},
                            uiconst.YESNO,
                            suppress=uiconst.ID_YES) == uiconst.ID_YES:
                 sm.GetService('station').SelectShipDlg()
             return
     wnd = uiutil.GetWindowAbove(self)
     InventoryWindow.OpenOrShow(invID=('ShipCargo', self.rec.itemID),
                                openFromWnd=wnd)
Ejemplo n.º 8
0
    def ToggleState(self):
        if not self or self.destroyed:
            return
        if self._groupName is None:
            self.SetChecked(not self._checked)
            return
        par = uiutil.GetWindowAbove(self)
        if par is None:
            par = self.parent
        for each in par.Find('trinity.Tr2Sprite2dContainer'):
            if each == self:
                continue
            if isinstance(each, uicls.CheckboxCore) and each._groupName == self._groupName:
                each.SetChecked(0, 0)

        if not self.destroyed:
            self.SetChecked(1)
Ejemplo n.º 9
0
    def Confirm(self, *args):
        if self.OnReturn:
            self.CloseHistoryMenu()
            return uthread.new(self.OnReturn)
        searchFrom = uiutil.GetWindowAbove(self)
        if searchFrom:
            wnds = [
                w for w in searchFrom.Find('trinity.Tr2Sprite2dContainer') +
                searchFrom.Find('trinity.Tr2Sprite2d')
                if getattr(w, 'btn_default', 0) == 1
            ]
            if len(wnds):
                for wnd in wnds:
                    if self == wnd:
                        continue
                    if uiutil.IsVisible(wnd):
                        if hasattr(wnd, 'OnClick'):
                            uthread.new(wnd.OnClick, wnd)
                        return True

        return False
Ejemplo n.º 10
0
 def OnRemoveBtn(self, *args):
     wnd = uiutil.GetWindowAbove(self)
     if self.isRemovable:
         self.Close()
     if wnd:
         wnd.ApplyFilter()
Ejemplo n.º 11
0
 def GetDefaultBtnsInSameWnd(self, *args):
     wndAbove = uiutil.GetWindowAbove(self) or uicore.desktop
     btns = uiutil.FindChildByClass(wndAbove, (uicls.ButtonCore, ),
                                    ['trinity.Tr2Sprite2dContainer'],
                                    withAttributes=[('btn_default', 1)])
     return btns
Ejemplo n.º 12
0
 def CheckControlAppearance(self, control):
     wnd = uiutil.GetWindowAbove(control)
     if wnd:
         self.ChangeControlAppearance(wnd, control)
Ejemplo n.º 13
0
    def Select(self, silently=0):
        if self.destroyed:
            return
        self.selecting = 1
        self.Blink(0)
        if self is None or self.destroyed:
            self.selecting = 0
            self.sr.tabgroup.state = uiconst.UI_PICKCHILDREN
            return
        if len(self.sr.tabgroup.sr.linkedrows):
            for tabgroup in self.sr.tabgroup.sr.linkedrows:
                if self in tabgroup.sr.mytabs:
                    continue
                uiutil.SetOrder(tabgroup, 0)

        for each in self.sr.tabgroup.sr.tabs:
            if each.IsSelected():
                if hasattr(self.sr.code, 'UnloadTabPanel'):
                    self.sr.code.UnloadTabPanel(each.sr.args, each.sr.panel,
                                                each.sr.tabgroup)
            if each == self:
                continue
            notify = True
            if each.sr.panel and each.sr.panel is self.sr.panel or each.sr.panelparent and each.sr.panelparent is self.sr.panelparent:
                notify = False
            each.Deselect(notify)

        self._selected = True
        self.ShowSelected_()
        if self.sr.panelparent:
            self.sr.panelparent.state = uiconst.UI_PICKCHILDREN
            if hasattr(self.sr.panelparent, 'OnTabSelect'):
                self.sr.panelparent.OnTabSelect()
        if self.sr.panel:
            self.sr.panel.state = uiconst.UI_PICKCHILDREN
            if hasattr(self.sr.panel, 'OnTabSelect'):
                self.sr.panel.OnTabSelect()
        if self.sr.tabgroup.callback:
            self.sr.tabgroup.callback(self.sr.tabgroup.GetSelectedIdx())
        err = None
        if self.sr.LoadTabCallback:
            try:
                self.sr.LoadTabCallback(self.sr.args, self.sr.panel,
                                        self.sr.tabgroup)
            finally:
                self.selecting = 0

        elif hasattr(self.sr.code, 'LoadTabPanel'):
            try:
                self.sr.code.LoadTabPanel(self.sr.args, self.sr.panel,
                                          self.sr.tabgroup)
            finally:
                self.selecting = 0

        elif getattr(self.sr.code, 'Load', None):
            try:
                self.sr.code.Load(self.sr.args)
            except (StandardError, ) as err:
                log.LogException(toMsgWindow=0)
                sys.exc_clear()
                if self.destroyed:
                    return
                wnd = uiutil.GetWindowAbove(self)
                if wnd and not wnd.destroyed:
                    wnd.HideLoad()

        if not silently:
            par = self.sr.panelparent or self.sr.panel
            wnd = uiutil.GetWindowAbove(self)
            if par and wnd and wnd == uicore.registry.GetActive():
                uthread.new(uicore.registry.SetFocus, par)
        if self.destroyed:
            return
        if self.sr.tabgroup._settingsID:
            settings.user.tabgroups.Set(self.sr.tabgroup._settingsID,
                                        self.sr.tabgroup.sr.tabs.index(self))
        if self and not self.destroyed:
            self.sr.tabgroup.UpdateSizes()
            self.selecting = 0
        if err and isinstance(err, UserError):
            raise err
Ejemplo n.º 14
0
 def Prepare_(self):
     self.sr.label = uicls.EveLabelSmall(text='',
                                         parent=self,
                                         idx=0,
                                         align=uiconst.CENTER,
                                         state=uiconst.UI_DISABLED,
                                         color=self.color)
     if self.iconPath is not None:
         if self.iconSize:
             width = self.iconSize
             height = self.iconSize
         else:
             width = height = min(self.width, self.height)
         self.icon = uicls.Icon(parent=self,
                                state=uiconst.UI_DISABLED,
                                align=uiconst.CENTER,
                                pos=(0, 0, width, height),
                                icon=self.iconPath,
                                ignoreSize=True,
                                color=self.color)
         self.sr.label.state = uiconst.UI_HIDDEN
         self.width = width + 4
         self.height = height + 4
     self.sr.activeframe = uicls.Frame(parent=self,
                                       name='activeline',
                                       state=uiconst.UI_HIDDEN,
                                       color=(1.0, 1.0, 1.0,
                                              uiconst.ACTIVE_FRAME_ALPHA))
     self.sr.hilite = uicls.Frame(parent=self,
                                  name='hiliteLite',
                                  state=uiconst.UI_HIDDEN,
                                  color=(1.0, 1.0, 1.0, 0.5))
     self.innerline = uicls.Frame(parent=self,
                                  padding=(2, 2, 2, 2),
                                  name='innerline',
                                  state=uiconst.UI_HIDDEN,
                                  color=(1.0, 1.0, 1.0, 0.5))
     self.shape = uicls.Container(parent=self,
                                  name='shape',
                                  state=uiconst.UI_DISABLED,
                                  align=uiconst.TOALL)
     uicls.Frame(parent=self.shape,
                 name='dot',
                 texturePath='res:/UI/Texture/Shared/windowButtonDOT.png',
                 cornerSize=6,
                 spriteEffect=trinity.TR2_SFX_DOT)
     uicls.WindowBaseColor(
         parent=self.shape,
         frameConst=('res:/UI/Texture/Shared/buttonShapeAndShadow.png', 9,
                     -5))
     self.LiteMode(self.alwaysLite)
     isDefault = getattr(self, 'btn_default', 0)
     if isDefault and self.sr.activeframe:
         self.sr.defaultActiveFrame = uicls.Frame(
             parent=self,
             idx=0,
             name='isDefaultMarker',
             state=uiconst.UI_DISABLED,
             color=(1.0, 1.0, 1.0, uiconst.ACTIVE_FRAME_ALPHA))
     wnd = uiutil.GetWindowAbove(self)
     if wnd:
         self.LiteMode(wnd.IsPinned())
Ejemplo n.º 15
0
    def OnAppEvent(self, msgID, wParam, lParam):
        try:
            returnValue = 0
            currentMouseOver = self.GetMouseOver()
            if msgID == WM_MOUSEMOVE:
                mouseX = uicore.ReverseScaleDpi(lParam & 65535)
                mouseY = uicore.ReverseScaleDpi(lParam >> 16)
                if self.x != mouseX or self.y != mouseY:
                    self.dx = mouseX - self.x
                    self.dy = mouseY - self.y
                    self.x = mouseX
                    self.y = mouseY
                    self.z = 0
                    if self.centerMouse:
                        self.SetCursorPos(uicore.desktop.width / 2,
                                          uicore.desktop.height / 2)
                    mouseCaptureItem = self.GetMouseCapture()
                    if mouseCaptureItem:
                        self._TryExecuteHandler(uiconst.UI_MOUSEMOVE,
                                                mouseCaptureItem,
                                                param=(wParam, lParam))
                        self._TryExecuteHandler(uiconst.UI_MOUSEMOVEDRAG,
                                                mouseCaptureItem,
                                                param=(wParam, lParam))
                    elif currentMouseOver:
                        self._TryExecuteHandler(uiconst.UI_MOUSEMOVE,
                                                currentMouseOver,
                                                param=(wParam, lParam))
                        self._TryExecuteHandler(uiconst.UI_MOUSEMOVEDRAG,
                                                currentMouseOver,
                                                param=(wParam, lParam))
            elif msgID == WM_LBUTTONDOWN:
                self._globalClickCounter += 1
                self.RegisterAppEventTime()
                self._expandMenu = uiconst.MOUSELEFT
                self._mouseButtonStates[uiconst.MOUSELEFT] = True
                self._mouseDownPosition[uiconst.MOUSELEFT] = (self.x, self.y,
                                                              self.z)
                if self.exclusiveMouseFocusActive:
                    self._TryExecuteHandler(uiconst.UI_MOUSEDOWN,
                                            self.GetMouseCapture(),
                                            (uiconst.MOUSELEFT, ),
                                            param=(uiconst.MOUSELEFT, wParam))
                    self._TryExecuteHandler(uiconst.UI_MOUSEDOWNDRAG,
                                            self.GetMouseCapture(),
                                            (uiconst.MOUSELEFT, ),
                                            param=(uiconst.MOUSELEFT, wParam))
                else:
                    self._TryExecuteHandler(uiconst.UI_MOUSEDOWN,
                                            currentMouseOver,
                                            (uiconst.MOUSELEFT, ),
                                            param=(uiconst.MOUSELEFT, wParam))
                    self._TryExecuteHandler(uiconst.UI_MOUSEDOWNDRAG,
                                            currentMouseOver,
                                            (uiconst.MOUSELEFT, ),
                                            param=(uiconst.MOUSELEFT, wParam))
                    self.SetCapture(currentMouseOver,
                                    retainFocus=self.exclusiveMouseFocusActive)
                    if not uiutil.IsUnder(currentMouseOver, uicore.layer.menu):
                        uicore.layer.menu.Flush()
                        currentFocus = uicore.registry.GetFocus()
                        if currentFocus != currentMouseOver:
                            uicore.registry.SetFocus(currentMouseOver)
            elif msgID == WM_MBUTTONDOWN:
                self._globalClickCounter += 1
                self.RegisterAppEventTime()
                self._expandMenu = None
                self._mouseButtonStates[uiconst.MOUSEMIDDLE] = True
                self._mouseDownPosition[uiconst.MOUSEMIDDLE] = (self.x, self.y,
                                                                self.z)
                self._TryExecuteHandler(uiconst.UI_MOUSEDOWN,
                                        currentMouseOver,
                                        (uiconst.MOUSEMIDDLE, ),
                                        param=(uiconst.MOUSEMIDDLE, wParam))
                uthread.new(self.CheckAccelerators, uiconst.VK_MBUTTON, lParam)
            elif msgID == WM_RBUTTONDOWN:
                self._globalClickCounter += 1
                self.RegisterAppEventTime()
                self._expandMenu = uiconst.MOUSERIGHT
                self._mouseButtonStates[uiconst.MOUSERIGHT] = True
                self._mouseDownPosition[uiconst.MOUSERIGHT] = (self.x, self.y,
                                                               self.z)
                if self.exclusiveMouseFocusActive:
                    self._TryExecuteHandler(uiconst.UI_MOUSEDOWN,
                                            self.GetMouseCapture(),
                                            (uiconst.MOUSERIGHT, ),
                                            param=(uiconst.MOUSERIGHT, wParam))
                else:
                    self._TryExecuteHandler(uiconst.UI_MOUSEDOWN,
                                            currentMouseOver,
                                            (uiconst.MOUSERIGHT, ),
                                            param=(uiconst.MOUSERIGHT, wParam))
                if not uiutil.IsUnder(currentMouseOver, uicore.layer.menu):
                    uicore.layer.menu.Flush()
                    currentFocus = uicore.registry.GetFocus()
                    if currentFocus is not currentMouseOver:
                        uicore.registry.SetFocus(currentMouseOver)
            elif msgID == WM_XBUTTONDOWN:
                self._globalClickCounter += 1
                self.RegisterAppEventTime()
                if wParam & 65536:
                    self._mouseButtonStates[uiconst.MOUSEXBUTTON1] = True
                    self._TryExecuteHandler(uiconst.UI_MOUSEDOWN,
                                            currentMouseOver,
                                            (uiconst.MOUSEXBUTTON1, ),
                                            param=(uiconst.MOUSEXBUTTON1,
                                                   wParam))
                    uthread.new(self.CheckAccelerators, uiconst.VK_XBUTTON1,
                                lParam)
                else:
                    self._mouseButtonStates[uiconst.MOUSEXBUTTON2] = True
                    self._TryExecuteHandler(uiconst.UI_MOUSEDOWN,
                                            currentMouseOver,
                                            (uiconst.MOUSEXBUTTON2, ),
                                            param=(uiconst.MOUSEXBUTTON2,
                                                   wParam))
                    uthread.new(self.CheckAccelerators, uiconst.VK_XBUTTON2,
                                lParam)
            elif msgID == WM_LBUTTONUP:
                self.RegisterAppEventTime()
                self._mouseButtonStates[uiconst.MOUSELEFT] = False
                mouseCaptureItem = self.GetMouseCapture()
                if mouseCaptureItem:
                    if not self.exclusiveMouseFocusActive:
                        if getattr(
                                mouseCaptureItem, 'expandOnLeft', 0
                        ) and not self.rightbtn and self._expandMenu == uiconst.MOUSELEFT and getattr(
                                mouseCaptureItem, 'GetMenu', None):
                            x, y, z = self._mouseDownPosition[
                                uiconst.MOUSELEFT]
                            if abs(self.x - x) < 3 and abs(self.y - y) < 3:
                                uthread.new(menu.ShowMenu, mouseCaptureItem,
                                            self.GetAuxMouseOver())
                        self._expandMenu = False
                    self._TryExecuteHandler(uiconst.UI_MOUSEUP,
                                            mouseCaptureItem,
                                            (uiconst.MOUSELEFT, ),
                                            param=(uiconst.MOUSELEFT, wParam))
                    if not self.exclusiveMouseFocusActive:
                        self.ReleaseCapture()
                    if currentMouseOver is not mouseCaptureItem:
                        self._TryExecuteHandler(uiconst.UI_MOUSEEXIT,
                                                mouseCaptureItem,
                                                param=(wParam, lParam))
                        self._TryExecuteHandler(uiconst.UI_MOUSEENTER,
                                                currentMouseOver,
                                                param=(wParam, lParam))
                    else:
                        self._TryExecuteClickHandler(wParam, lParam)
            elif msgID == WM_RBUTTONUP:
                self._mouseButtonStates[uiconst.MOUSERIGHT] = False
                if self.exclusiveMouseFocusActive:
                    self._TryExecuteHandler(uiconst.UI_MOUSEUP,
                                            self.GetMouseCapture(),
                                            (uiconst.MOUSERIGHT, ),
                                            param=(uiconst.MOUSERIGHT, wParam))
                else:
                    if not self.leftbtn and self._expandMenu == uiconst.MOUSERIGHT and (
                            getattr(currentMouseOver, 'GetMenu', None)
                            or self._auxMouseOverRO is not None):
                        x, y, z = self._mouseDownPosition[uiconst.MOUSERIGHT]
                        if abs(self.x - x) < 3 and abs(self.y - y) < 3:
                            uthread.new(menu.ShowMenu, currentMouseOver,
                                        self.GetAuxMouseOver())
                    self._expandMenu = None
                    self._TryExecuteHandler(uiconst.UI_MOUSEUP,
                                            currentMouseOver,
                                            (uiconst.MOUSERIGHT, ),
                                            param=(uiconst.MOUSERIGHT, wParam))
            elif msgID == WM_MBUTTONUP:
                self._mouseButtonStates[uiconst.MOUSEMIDDLE] = False
                self._TryExecuteHandler(uiconst.UI_MOUSEUP,
                                        currentMouseOver,
                                        (uiconst.MOUSEMIDDLE, ),
                                        param=(uiconst.MOUSEMIDDLE, wParam))
            elif msgID == WM_XBUTTONUP:
                if wParam & 65536:
                    self._mouseButtonStates[uiconst.MOUSEXBUTTON1] = False
                    self._TryExecuteHandler(uiconst.UI_MOUSEUP,
                                            currentMouseOver,
                                            (uiconst.MOUSEXBUTTON1, ),
                                            param=(uiconst.MOUSEXBUTTON1,
                                                   wParam))
                else:
                    self._mouseButtonStates[uiconst.MOUSEXBUTTON2] = False
                    self._TryExecuteHandler(uiconst.UI_MOUSEUP,
                                            currentMouseOver,
                                            (uiconst.MOUSEXBUTTON2, ),
                                            param=(uiconst.MOUSEXBUTTON2,
                                                   wParam))
            elif msgID == WM_MOUSEWHEEL:
                self.RegisterAppEventTime()
                mouseZ = wParam >> 16
                self.dz = mouseZ
                if self.mouseOver:
                    mo = self.mouseOver
                    mwHandlerArgs, mwHandler = self.FindEventHandler(
                        mo, 'OnMouseWheel')
                    while not mwHandler:
                        if not mo.parent or mo is uicore.uilib.desktop:
                            break
                        mo = mo.parent
                        mwHandlerArgs, mwHandler = self.FindEventHandler(
                            mo, 'OnMouseWheel')

                    calledMethod = None
                    if mo:
                        calledMethod = self._TryExecuteHandler(
                            uiconst.UI_MOUSEWHEEL,
                            mo, (mouseZ, ),
                            param=(wParam, lParam))
                    if not calledMethod:
                        focus = uicore.registry.GetFocus()
                        if focus and uiutil.GetWindowAbove(
                                self.mouseOver) == uicore.registry.GetActive():
                            self._TryExecuteHandler(uiconst.UI_MOUSEWHEEL,
                                                    focus, (mouseZ, ),
                                                    param=(wParam, lParam))
            elif msgID in (WM_KEYDOWN, WM_SYSKEYDOWN):
                self._globalKeyDownCounter += 1
                self.RegisterAppEventTime()
                focus = uicore.registry.GetFocus()
                if focus:
                    self._TryExecuteHandler(uiconst.UI_KEYDOWN,
                                            focus, (wParam, lParam),
                                            param=(wParam, lParam))
                self._keyDownAcceleratorThread = uthread.new(
                    self.CheckAccelerators, wParam, lParam)
            elif msgID == WM_CHAR:
                char = wParam
                ignoreChar = False
                if char <= 32 or char == self.ignoreDeadChar:
                    ctrl = trinity.app.Key(uiconst.VK_CONTROL)
                    if char not in (uiconst.VK_RETURN, uiconst.VK_BACK,
                                    uiconst.VK_SPACE) or ctrl:
                        ignoreChar = True
                if not ignoreChar:
                    calledOn = self.ResolveOnChar(wParam, lParam)
                    if calledOn and self._keyDownAcceleratorThread:
                        self._keyDownAcceleratorThread.kill()
                self.ignoreDeadChar = None
            elif msgID == WM_DEADCHAR:
                focus = uicore.registry.GetFocus()
                if focus and hasattr(focus,
                                     'OnChar') and uiutil.IsVisible(focus):
                    self._keyDownAcceleratorThread.kill()
                else:
                    self.ignoreDeadChar = wParam
            elif msgID in (WM_KEYUP, WM_SYSKEYUP):
                focus = uicore.registry.GetFocus()
                if focus:
                    self._TryExecuteHandler(uiconst.UI_KEYUP,
                                            focus, (wParam, lParam),
                                            param=(wParam, lParam))
                if wParam == uiconst.VK_SNAPSHOT:
                    uicore.cmd.PrintScreen()
            elif msgID == WM_ACTIVATE:
                self.CheckAppFocus(hasFocus=wParam > 0)
                self.CheckCallbacks(obj=uicore.registry.GetFocus(),
                                    msgID=uiconst.UI_ACTIVE,
                                    param=(wParam, lParam))
            elif msgID == WM_ACTIVATEAPP:
                if self.activateAppHandler:
                    returnValue = self.activateAppHandler(wParam, lParam)
            elif msgID == WM_INPUTLANGCHANGE:
                if self.inputLangChangeHandler:
                    returnValue = self.inputLangChangeHandler(wParam, lParam)
            elif msgID == WM_IME_SETCONTEXT:
                if self.imeSetContextHandler:
                    returnValue = self.imeSetContextHandler(wParam, lParam)
            elif msgID == WM_IME_STARTCOMPOSITION:
                if self.imeStartCompositionHandler:
                    returnValue = self.imeStartCompositionHandler(
                        wParam, lParam)
            elif msgID == WM_IME_COMPOSITION:
                if self.imeCompositionHandler:
                    returnValue = self.imeCompositionHandler(wParam, lParam)
            elif msgID == WM_IME_ENDCOMPOSITION:
                if self.imeEndCompositionHandler:
                    returnValue = self.imeEndCompositionHandler(wParam, lParam)
            elif msgID == WM_IME_NOTIFY:
                if self.imeNotifyHandler:
                    returnValue = self.imeNotifyHandler(wParam, lParam)
            elif msgID == WM_CLOSE:
                uthread.new(uicore.cmd.CmdQuitGame)
                returnValue = 1
            else:
                returnValue = None
            return returnValue
        except:
            log.LogException()