def handleInput(self, screen, szSplit, iNotifyCode, szFlag, ID, iData1): print "ACEM - handleInput" if iNotifyCode == NotifyCode.NOTIFY_CURSOR_MOVE_ON: if szSplit[0] in ("List", "ListBtn"): szText = CyGameTextMgr().getBuildingHelp( ID, False, False, False, self.CyCity, True) self.updateTooltip(screen, szText, self.xListTooltip) elif iNotifyCode == NotifyCode.NOTIFY_CLICKED: if szSplit[0] == "Exit": exitCityDemolish(screen) return if szSplit[0] == "Btn": if not ID: if szFlag == "MOUSE_RBUTTONUP" and iData1: x, y, w = self.xywBtn0 screen.setButtonGFC("CityDemolish|Btn0", "****", "", x, y, w, 30, WidgetTypes.WIDGET_GENERAL, 0, 0, ButtonStyles.BUTTON_STYLE_STANDARD) self.iSelected = None elif self.bListHidden: screen.show("CityDemolish|List") screen.show("CityDemolish|ListBkgr") self.bListHidden = False else: screen.hide("CityDemolish|List") screen.hide("CityDemolish|ListBkgr") self.bListHidden = True elif ID == 1 and szFlag == "MOUSE_LBUTTONUP": iSelected = self.iSelected if iSelected != None: self.doIt(iSelected) exitCityDemolish(screen) elif szSplit[0] == "ListTop": x, y, w = self.xywBtn0 if ID: screen.setButtonGFC("CityDemolish|Btn0", self.szAbandon, "", x, y, w, 30, WidgetTypes.WIDGET_GENERAL, 1, 0, ButtonStyles.BUTTON_STYLE_STANDARD) self.iSelected = -1 else: screen.hide("CityDemolish|List") self.bListHidden = True screen.setButtonGFC("CityDemolish|Btn0", "****", "", x, y, w, 30, WidgetTypes.WIDGET_GENERAL, 0, 0, ButtonStyles.BUTTON_STYLE_STANDARD) self.iSelected = None elif szSplit[0] in ("List", "ListBtn"): if szFlag == "MOUSE_RBUTTONUP": CvScreensInterface.pediaJumpToBuilding([ID]) else: x, y, w = self.xywBtn0 screen.setButtonGFC("CityDemolish|Btn0", self.aList[iData1], "", x, y, w, 30, WidgetTypes.WIDGET_GENERAL, 1, 0, ButtonStyles.BUTTON_STYLE_STANDARD) self.iSelected = ID if self.iSelected == None: screen.hide("CityDemolish|Btn1") screen.show("CityDemolish|Exit1") else: screen.hide("CityDemolish|Exit1") screen.show("CityDemolish|Btn1")
def handleInput(self, inputClass): if not self.created: print "CvTechChooser.handleInput - aborted due to screen not being created" return 0 print "CvTechChooser.handleInput" screen = self.screen() bAlt, bCtrl, bShift = self.InputData.getModifierKeys() iCode = inputClass.eNotifyCode iData = inputClass.iData iData2 = inputClass.iData2 ID = inputClass.iItemID NAME = inputClass.szFunctionName szFlag = HandleInputUtil.MOUSE_FLAGS.get(inputClass.uiFlags, "UNKNOWN") szSplit = NAME.split("|") BASE = szSplit[0] if szSplit[1:]: TYPE = szSplit[1] else: TYPE = "" if szSplit[2:]: CASE = szSplit[2:] else: CASE = [""] iType = ID if iCode == NotifyCode.NOTIFY_CHARACTER: # Character if iData in (45, 49, 56): # Ctrl, Shift, Alt if self.bUnitTT: self.tooltip.handle(screen, CyGameTextMgr().getUnitHelp(self.iUnitTT, False, True, True, None)) self.bUnitTT = None return 1 elif iCode == 17: # Key Up if iData == InputTypes.KB_A: self.scrollTo(self.scrollOffs - self.xCellDist) elif iData == InputTypes.KB_D: self.scrollTo(self.scrollOffs + self.xCellDist) if iData == InputTypes.KB_Q: self.demoMode = not self.demoMode self.demoOffs = 0 elif iData in (InputTypes.KB_ESCAPE, InputTypes.KB_F6): # Stop F6 and ESC handlers from triggering on load if self.skipNextExitKey: self.skipNextExitKey = False else: screen.hideScreen() return 1 if self.bUnitTT is None: self.bUnitTT = True return 1 # Remove potential Help Text self.tooltip.reset(screen) self.iUnitTT = None self.bUnitTT = False if iCode == NotifyCode.NOTIFY_CURSOR_MOVE_ON: # Mouse Enter if BASE == "WID": if TYPE == "TECH": if CASE[0] == "CURRENT": szTxt = "Researching: " + CyGameTextMgr().getTechHelp(self.CyPlayer.getCurrentResearch(), False, True, True, True, -1) elif CASE[0] == "REQ": szTxt = TRNSLTR.getText("TXT_KEY_MISC_TECH_REQUIRES_KNOWLEDGE_OF", (GC.getTechInfo(ID).getTextKey(),)) else: szTxt = CyGameTextMgr().getTechHelp(ID, False, True, True, True, -1) self.tooltip.handle(screen, szTxt) elif TYPE == "UNIT": self.tooltip.handle(screen, CyGameTextMgr().getUnitHelp(ID, False, True, True, None)) self.iUnitTT = ID self.bUnitTT = True elif TYPE == "BUILDING": if CASE[0] == "OBS": CvBuildingInfo = GC.getBuildingInfo(ID) szTxt = TRNSLTR.getText("TXT_KEY_TECHHELP_OBSOLETES", (CvBuildingInfo.getType(), CvBuildingInfo.getTextKey())) else: szTxt = CyGameTextMgr().getBuildingHelp(ID, False, None, False, False, True) self.tooltip.handle(screen, szTxt) elif iCode == NotifyCode.NOTIFY_CLICKED: # click if BASE == "WID": if szFlag == "MOUSE_RBUTTONUP": if TYPE == "UNIT": UP.pediaJumpToUnit([ID]) elif TYPE == "BUILDING": UP.pediaJumpToBuilding([ID]) elif TYPE == "PROJECT": UP.pediaJumpToProject([ID]) elif TYPE == "PROMO": UP.pediaJumpToPromotion([ID]) elif TYPE == "TECH": if CASE[0] == "CURRENT": UP.pediaJumpToTech([self.CyPlayer.getCurrentResearch()]) else: UP.pediaJumpToTech([iType]) elif szFlag == "MOUSE_LBUTTONUP": if TYPE == "TECH": if self.CyPlayer.getAdvancedStartPoints() > -1: if CASE[0] == "CHOICE": self.updateSelectedTech(screen, ID) elif GC.getGame().getActivePlayer() == self.iPlayer: if CASE[0] == "CURRENT": CyMessageControl().sendResearch(-1, bShift) self.updateTechRecords(False) elif CASE[0] == "CHOICE" and (self.currentTechState[iType] == CIV_TECH_AVAILABLE or not bShift and (self.currentTechState[iType] == CIV_IS_RESEARCHING or self.currentTechState[iType] == CIV_IS_QUEUED)): CyMessageControl().sendResearch(iType, bShift) self.updateTechRecords(False) elif TYPE == "ERAIM" or TYPE == "ERATEXT": self.scrollTo(self.minEraXPos[ID] - self.minX) elif NAME == "AddTechButton": CyMessageControl().sendAdvancedStartAction(AdvancedStartActionTypes.ADVANCEDSTARTACTION_TECH, self.iPlayer, -1, -1, self.iSelectedTech, True) #Action, Player, X, Y, Data, bAdd self.updateSelectedTech(screen, -1) elif NAME == HSLIDER_ID: if iCode == 20: self.scrollOffs = iData self.scroll() elif iCode == 11: # List Select if NAME == "TC_DebugDD": self.initForPlayer(screen.getPullDownData(NAME, screen.getSelectedPullDownID(NAME)))