NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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))