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

ui.py (1787B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\uihider\ui.py
      2 import abc
      3 import weakref
      4 from carbonui.uicore import uicore
      5 
      6 class InputDisabler(object):
      7 
      8     def __init__(self, is_context_menu_disabled = False, is_manual_piloting_disabled = False):
      9         self.is_context_menu_disabled = is_context_menu_disabled
     10         self.is_manual_piloting_disabled = is_manual_piloting_disabled
     11 
     12     def register_handlers(self):
     13         uicore.uilib.SetEventHandlerResolver(self.resolve_event_handler)
     14         uicore.uilib.SetMenuHandlerResolver(self.resolve_menu_handler)
     15 
     16     def unregister_handlers(self):
     17         uicore.uilib.SetEventHandlerResolver(None)
     18         uicore.uilib.SetMenuHandlerResolver(None)
     19 
     20     def resolve_event_handler(self, ui_object, handler_name):
     21         if self.is_manual_piloting_disabled:
     22             if handler_name == 'OnDblClick':
     23                 if is_name_equal(ui_object, 'l_inflight'):
     24                     return (None, None)
     25             elif handler_name == 'OnKeyDown':
     26                 if is_name_equal(ui_object, 'Desktop'):
     27                     return (None, None)
     28             elif handler_name == 'OnClick':
     29                 name = getattr(ui_object, 'name', None)
     30                 if name == 'SpeedGauge':
     31                     return (None, None)
     32                 if 'ModuleButton_' in name:
     33                     target_id = sm.GetService('target').GetActiveTargetID()
     34                     if target_id is None:
     35                         return (None, None)
     36         return ui_object.FindEventHandler(handler_name)
     37 
     38     def resolve_menu_handler(self, ui_object):
     39         if self.is_context_menu_disabled:
     40             return None
     41 
     42 
     43 def is_name_equal(ui_object, name):
     44     return getattr(ui_object, 'name', None) == name