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

infoPanelSearch.py (2879B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\infoPanels\infoPanelSearch.py
      2 from carbonui import uiconst
      3 from carbonui.control.singlelineedits.singleLineEditText import SingleLineEditText
      4 from carbonui.uianimations import animations
      5 from carbonui.uicore import uicore
      6 from eve.client.script.ui.control.eveLoadingWheel import LoadingWheel
      7 from eve.client.script.ui.shared.infoPanels.const import infoPanelConst
      8 from eve.client.script.ui.shared.infoPanels.InfoPanelBase import InfoPanelBase
      9 from eve.client.script.ui.shared.pointerTool.pointerToolConst import UNIQUE_NAME_SEARCH_INFO_PANEL
     10 from eve.client.script.ui.util import searchUtil
     11 from eve.common.script.search import const as search_const
     12 from localization import GetByLabel
     13 from uihider import UiHiderMixin
     14 
     15 class InfoPanelSearch(UiHiderMixin, InfoPanelBase):
     16     default_name = 'InfoPanelSearch'
     17     uniqueUiName = UNIQUE_NAME_SEARCH_INFO_PANEL
     18     panelTypeID = infoPanelConst.PANEL_SEARCH
     19     label = 'UI/Search/SearchNewEden'
     20     default_iconTexturePath = 'res:/UI/Texture/Classes/InfoPanels/search.png'
     21     default_isModeFixed = True
     22     hasSettings = False
     23     __notifyevents__ = InfoPanelBase.__notifyevents__ + ['OnSetSearchBarFocus']
     24 
     25     def ApplyAttributes(self, attributes):
     26         super(InfoPanelSearch, self).ApplyAttributes(attributes)
     27         self.loadingWheel = LoadingWheel(parent=self.headerBtnCont, align=uiconst.CENTERRIGHT, pos=(6, 0, 16, 16), state=uiconst.UI_DISABLED, opacity=0.0)
     28         self.searchEdit = SingleLineEditText(name='searchEdit', parent=self.headerCont, align=uiconst.TOALL, OnSetFocus=self.OnEditSetFocus, OnFocusLost=self.OnEditFocusLost, OnReturn=self.Search, width=0, padding=(0, 2, 0, 2), hintText=GetByLabel('UI/Search/SearchForAnything'))
     29         self.searchEdit.ShowClearButton()
     30         self.headerButton.Enable()
     31         self.headerButton.OnClick = self.Search
     32 
     33     def ConstructHeaderButton(self):
     34         return self.ConstructSimpleHeaderButton()
     35 
     36     def Search(self, *args):
     37         text = self.searchEdit.text
     38         if not text:
     39             return
     40         self.searchEdit.RegisterHistory()
     41         duration = 0.15
     42         animations.FadeIn(self.loadingWheel, duration=duration)
     43         animations.FadeOut(self.headerButton, duration=duration)
     44         try:
     45             searchUtil.GetResultsInNewWindow(self.searchEdit.GetText(), search_const.all_result_types, includeUiElements=True)
     46         finally:
     47             animations.FadeOut(self.loadingWheel, duration=duration)
     48             animations.FadeIn(self.headerButton, duration=duration)
     49 
     50     def OnEditFocusLost(self, *args):
     51         if not self.searchEdit.text:
     52             self.searchEdit.Clear()
     53 
     54     def OnEditSetFocus(self, *args):
     55         self.searchEdit.Clear()
     56 
     57     def OnSetSearchBarFocus(self):
     58         uicore.registry.SetFocus(self.searchEdit)