Example #1
0
 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")
Example #2
0
	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)))