windowMessenger.py (2821B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\carbonui\loggers\message_bus\windowMessenger.py 2 import carbonui.const as uiconst 3 from eveProto.generated.eve_public.app.eveonline.generic_ui.window.analytics_pb2 import Closed as WindowClosed 4 from eveProto.generated.eve_public.app.eveonline.generic_ui.window.analytics_pb2 import Focused as WindowFocused 5 from eveProto.generated.eve_public.app.eveonline.generic_ui.window.analytics_pb2 import Opened as WindowOpened 6 from eveProto.generated.eve_public.app.eveonline.generic_ui.window.analytics_pb2 import Unfocused as WindowUnfocused 7 from eveProto.generated.eve_public.app.eveonline.generic_ui.window.window_pb2 import DOCKINGMODE_FULLSCREEN, DOCKINGMODE_FLOATING, DOCKINGMODE_LEFT, DOCKINGMODE_RIGHT 8 from logging import getLogger 9 DEFAULT_DOCKING_MODE = DOCKINGMODE_FLOATING 10 DOCKING_MODES_CONVERSION = {uiconst.TOALL: DOCKINGMODE_FULLSCREEN, 11 uiconst.TOLEFT: DOCKINGMODE_LEFT, 12 uiconst.TORIGHT: DOCKINGMODE_RIGHT, 13 uiconst.TOPLEFT: DOCKINGMODE_FLOATING} 14 logger = getLogger(__name__) 15 16 class WindowMessenger(object): 17 public_gateway = None 18 19 def __init__(self, public_gateway): 20 self.public_gateway = public_gateway 21 22 def window_closed(self, window_id, seconds_opened, nanoseconds_opened): 23 event = WindowClosed() 24 event.window.unique_name = window_id 25 event.duration_opened.seconds = seconds_opened 26 event.duration_opened.nanos = nanoseconds_opened 27 self.public_gateway.publish_event_payload(event) 28 self._log_window_event(event, window_id, event_name='CLOSED') 29 30 def window_focused(self, window_id): 31 event = WindowFocused() 32 event.window.unique_name = window_id 33 self.public_gateway.publish_event_payload(event) 34 self._log_window_event(event, window_id, event_name='FOCUSED') 35 36 def window_opened(self, window_id, docking_mode = DEFAULT_DOCKING_MODE): 37 event = WindowOpened() 38 event.window.unique_name = window_id 39 event.docking = docking_mode 40 self.public_gateway.publish_event_payload(event) 41 self._log_window_event(event, window_id, event_name='OPENED') 42 43 def window_unfocused(self, window_id, seconds_focused, nanoseconds_focused): 44 event = WindowUnfocused() 45 event.window.unique_name = window_id 46 event.duration_focused.seconds = seconds_focused 47 event.duration_focused.nanos = nanoseconds_focused 48 self.public_gateway.publish_event_payload(event) 49 self._log_window_event(event, window_id, event_name='UNFOCUSED') 50 51 def _log_window_event(self, event, window_id, event_name): 52 logger.info('WINDOW {event_name}: {window_id} ({event_class}). Protobuf:\n {event}'.format(event_class=type(event), window_id=window_id, event=event, event_name=event_name))