示例#1
0
 def handle(self, element, module, clazz, handlers, listeners, override,
            log, dll):
     override = self.isTrue(override)
     dll = BugDll.decode(dll)
     if self.isDllOkay(element, dll):
         if clazz:
             utils = BugUtil.callFunction(module, clazz)
             element.setState("gameutils", utils)
             if handlers or listeners:
                 if handlers:
                     for handler in handlers.replace(",", " ").split():
                         addHandler(BugUtil.bindFunction(utils, handler),
                                    override, log)
                 if listeners:
                     for listener in listeners.replace(",", " ").split():
                         func = None
                         if not listener.endswith(LISTENER_SUFFIX):
                             try:
                                 func = BugUtil.bindFunction(
                                     utils, listener + LISTENER_SUFFIX)
                             except BugUtil.ConfigError:
                                 pass
                         if not func:
                             try:
                                 func = BugUtil.bindFunction(
                                     utils, listener)
                             except BugUtil.ConfigError:
                                 raise BugUtil.ConfigError(
                                     "Game utils %s.%s must define function %s or %s",
                                     module, clazz, listener,
                                     listener + "Listener")
                         addListener(func, log)
             else:
                 addClassUtils(utils, override, log)
         else:
             if handlers or listeners:
                 if handlers:
                     for handler in handlers.replace(",", " ").split():
                         addHandler(BugUtil.lookupFunction(module, handler),
                                    override, log)
                 if listeners:
                     for listener in listeners.replace(",", " ").split():
                         addListener(
                             BugUtil.lookupFunction(module, listener), log)
             else:
                 addModuleUtils(BugUtil.lookupModule(module), override, log)
     else:
         BugUtil.info(
             "BugGameUtils - ignoring <%s> %s.%s, requires dll version %s",
             element.tag, module, clazz, self.resolveDll(element, dll))
示例#2
0
	def handle(self, element, name, type, default, module, handler, listener, log, dll):
		utils = element.getState("gameutils")
		if utils:
			func = BugUtil.bindFunction(utils, handler)
			if listener:
				listenerFunc = BugUtil.bindFunction(utils, listener)
		elif not module:
			raise BugUtil.ConfigError("Element <%s> requires attribute module or be enclosed in <gameutils> that defines a class", element.tag)
		else:
			func = BugUtil.lookupFunction(module, handler)
			if listener:
				listenerFunc = BugUtil.lookupFunction(module, listener)
		createCallback(name, func, self.createValue(type, default), log)
		if listener:
			addNamedListener(name, listenerFunc, log)
	def handle(self, element, name, text, xml, module, function):
		widget = createWidget(name)
		if text:
			setWidgetHelpText(widget, text)
		elif xml:
			setWidgetHelpXml(widget, xml)
		elif module and function:
			setWidgetHelpFunction(widget, BugUtil.lookupFunction(module, function))
	def handle(self, element, name, text, xml, module, function):
		widget = createWidget(name)
		if text:
			setWidgetHelpText(widget, text)
		elif xml:
			setWidgetHelpXml(widget, xml)
		elif module and function:
			setWidgetHelpFunction(widget, BugUtil.lookupFunction(module, function))
示例#5
0
 def handle(self, element, module, clazz, handlers, listeners, override,
            log, dll):
     override = self.isTrue(override)
     if clazz:
         utils = BugUtil.callFunction(module, clazz)
         element.setState("gameutils", utils)
         if handlers or listeners:
             if handlers:
                 for handler in handlers.replace(",", " ").split():
                     addHandler(BugUtil.bindFunction(utils, handler),
                                override, log)
             if listeners:
                 for listener in listeners.replace(",", " ").split():
                     func = None
                     if not listener.endswith("Listener"):
                         try:
                             func = BugUtil.bindFunction(
                                 utils, listener + "Listener")
                         except BugUtil.ConfigError:
                             pass
                     if not func:
                         try:
                             func = BugUtil.bindFunction(utils, listener)
                         except BugUtil.ConfigError:
                             raise BugUtil.ConfigError(
                                 "Game utils %s.%s must define function %s or %s",
                                 module, clazz, listener,
                                 listener + "Listener")
                     addListener(func, log)
         else:
             addClassUtils(utils, override, log)
     else:
         if handlers or listeners:
             if handlers:
                 for handler in handlers.replace(",", " ").split():
                     addHandler(BugUtil.lookupFunction(module, handler),
                                override, log)
             if listeners:
                 for listener in listeners.replace(",", " ").split():
                     addListener(BugUtil.lookupFunction(module, listener),
                                 log)
         else:
             addModuleUtils(BugUtil.lookupModule(module), override, log)
示例#6
0
	def handle(self, element, name, type, default, module, handler, listener, log, dll):
		dll = BugDll.decode(dll)
		if self.isDllOkay(element, dll):
			utils = element.getState("gameutils")
			if utils:
				func = BugUtil.bindFunction(utils, handler)
				if listener:
					listenerFunc = BugUtil.bindFunction(utils, listener)
			elif not module:
				raise BugUtil.ConfigError("Element <%s> requires attribute module or be enclosed in <gameutils> that defines a class", element.tag)
			else:
				func = BugUtil.lookupFunction(module, handler)
				if listener:
					listenerFunc = BugUtil.lookupFunction(module, listener)
			createCallback(name, func, self.createValue(type, default), log)
			if listener:
				addNamedListener(name, listenerFunc, log)
		else:
			BugUtil.info("BugGameUtils - ignoring <%s> %s, requires dll version %s", element.tag, name, self.resolveDll(element, dll))
	def handle(self, element, module, clazz, handlers, listeners, override, log, dll):
		override = self.isTrue(override)
		dll = BugDll.decode(dll)
		if self.isDllOkay(element, dll):
			if clazz:
				utils = BugUtil.callFunction(module, clazz)
				element.setState("gameutils", utils)
				if handlers or listeners:
					if handlers:
						for handler in handlers.replace(",", " ").split():
							addHandler(BugUtil.bindFunction(utils, handler), override, log)
					if listeners:
						for listener in listeners.replace(",", " ").split():
							func = None
							if not listener.endswith(LISTENER_SUFFIX):
								try:
									func = BugUtil.bindFunction(utils, listener + LISTENER_SUFFIX)
								except BugUtil.ConfigError:
									pass
							if not func:
								try:
									func = BugUtil.bindFunction(utils, listener)
								except BugUtil.ConfigError:
									raise BugUtil.ConfigError("Game utils %s.%s must define function %s or %s", 
											module, clazz, listener, listener + "Listener")
							addListener(func, log)
				else:
					addClassUtils(utils, override, log)
			else:
				if handlers or listeners:
					if handlers:
						for handler in handlers.replace(",", " ").split():
							addHandler(BugUtil.lookupFunction(module, handler), override, log)
					if listeners:
						for listener in listeners.replace(",", " ").split():
							addListener(BugUtil.lookupFunction(module, listener), log)
				else:
					addModuleUtils(BugUtil.lookupModule(module), override, log)
		else:
			BugUtil.info("BugGameUtils - ignoring <%s> %s.%s, requires dll version %s", element.tag, module, clazz, self.resolveDll(element, dll))