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

smartclick.py (3375B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\carbonui\smartclick.py
      2 import math
      3 import logging
      4 import blue
      5 _logger = logging.getLogger(__name__)
      6 
      7 def _get_ui_element_name(ui_element):
      8     return getattr(ui_element, 'name', repr(ui_element))
      9 
     10 
     11 def smartclick(ui_element):
     12     if not ui_element:
     13         return False
     14     element_name = _get_ui_element_name(ui_element)
     15     try:
     16         from eve.client.script.ui.shared.neocom.neocom.neocomPanelEntries import PanelEntryGroup
     17         if isinstance(ui_element, PanelEntryGroup):
     18             ui_element.ToggleNeocomPanel()
     19             return True
     20     except (ImportError, AttributeError) as exc:
     21         _logger.exception('Failed smart click on PanelEntryGroup for %s: %s', element_name, exc)
     22 
     23     try:
     24         from eve.client.script.ui.shared.neocom.neocom.neocomPanelEntries import PanelEntryCmd
     25         if isinstance(ui_element, PanelEntryCmd):
     26             ui_element.OnClick()
     27             return True
     28     except (ImportError, AttributeError) as exc:
     29         _logger.exception('Failed smart click on PanelEntryCmd for %s: %s', element_name, exc)
     30 
     31     try:
     32         from eve.client.script.ui.shared.neocom.neocom.neocomPanelEntries import PanelEntryBase
     33         if isinstance(ui_element, PanelEntryBase):
     34             ui_element.OnClick()
     35             return True
     36     except (ImportError, AttributeError) as exc:
     37         _logger.exception('Failed smart click on PanelEntryBase for %s: %s', element_name, exc)
     38 
     39     try:
     40         from eve.client.script.ui.shared.neocom.neocom.buttons.buttonGroup import ButtonGroup
     41         if isinstance(ui_element, ButtonGroup):
     42             ui_element.ToggleNeocomPanel()
     43             return True
     44     except (ImportError, AttributeError) as exc:
     45         _logger.exception('Failed smart click on ButtonGroup for %s: %s', element_name, exc)
     46 
     47     try:
     48         from eve.client.script.ui.shared.neocom.neocom.buttons.buttonWindow import ButtonWindow
     49         if isinstance(ui_element, ButtonWindow):
     50             ui_element.OnClickCommand()
     51             return True
     52     except (ImportError, AttributeError) as exc:
     53         _logger.exception('Failed smart click on ButtonWindow for %s: %s', element_name, exc)
     54 
     55     try:
     56         from eve.client.script.ui.shared.neocom.neocom.buttons.baseNeocomButton import BaseNeocomButton
     57         if isinstance(ui_element, BaseNeocomButton):
     58             if hasattr(ui_element, 'ToggleNeocomPanel'):
     59                 ui_element.ToggleNeocomPanel()
     60                 return True
     61             if hasattr(ui_element, 'OnClickCommand'):
     62                 ui_element.OnClickCommand()
     63                 return True
     64     except (ImportError, AttributeError) as exc:
     65         _logger.exception('Failed smart click on BaseNeocomButton for %s: %s', element_name, exc)
     66 
     67     try:
     68         from carbonui.control.button import Button
     69         if isinstance(ui_element, Button) and hasattr(ui_element, 'OnClick'):
     70             ui_element.OnClick()
     71             return True
     72     except (ImportError, AttributeError) as exc:
     73         _logger.exception('Failed smart click on Button for %s: %s', element_name, exc)
     74 
     75     if hasattr(ui_element, 'OnClick'):
     76         try:
     77             ui_element.OnClick()
     78             return True
     79         except AttributeError as exc:
     80             _logger.exception('Failed calling OnClick() for %s: %s', element_name, exc)
     81 
     82     return False