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

bracketBorderWindow.py (8199B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\contextualOffers\client\UI\bracketBorderWindow.py
      2 import math
      3 import trinity
      4 import localization
      5 from carbonui import uiconst
      6 from carbonui.primitives.container import Container
      7 from carbonui.primitives.frame import Frame
      8 from carbonui.primitives.sprite import Sprite, StreamingVideoSprite
      9 from carbonui.primitives.stretchspritehorizontal import StretchSpriteHorizontal
     10 from carbonui.uianimations import animations
     11 from eve.client.script.ui.tooltips.tooltipsWrappers import TooltipDescriptionWrapper
     12 from carbonui.control.window import Window
     13 from carbonui.control.buttonIcon import ButtonIcon
     14 from uthread2 import StartTasklet
     15 SPRITE_OPACITY = 0.2
     16 IMG_HEIGHT = 400
     17 MOUSE_ENTER_EXIT_DURATION = 0.3
     18 
     19 class BracketBorderWindow(Window):
     20     default_name = 'BracketBorderWindow'
     21     default_fixedWidth = 950
     22     default_fixedHeight = 550
     23     default_isLightBackgroundConfigurable = False
     24     default_isMinimizable = False
     25     default_isCollapseable = False
     26     default_isStackable = False
     27     default_isLockable = False
     28     default_isOverlayable = False
     29     default_border_opacity = 0.35
     30     default_background_image = None
     31     default_on_open_callback = None
     32     default_on_close_callback = None
     33     mainContentWidth = 770
     34     mainContentHeight = 415
     35     bracketWidth = 910
     36     bracketHeadWidth = 260
     37     innerContWidth = 892
     38     innerContHeight = 500
     39     bottomBracketOffset = 46
     40     openingDurationSec = 0.3
     41     openingDuration2Sec = 0.3
     42     closingDurationSec = 0.28
     43     closingDuration2Sec = 0.28
     44     fadeOutDurationSec = 0.1
     45     fadeInDurationSec = 0.3
     46 
     47     def ApplyAttributes(self, attributes):
     48         Window.ApplyAttributes(self, attributes)
     49         self.borderOpacity = attributes.get('borderOpacity', self.default_border_opacity)
     50         self.backgroundImage = attributes.get('backgroundImage', self.default_background_image)
     51         self.onOpenCallback = attributes.get('onOpenCallback', self.default_on_open_callback)
     52         self.onCloseCallback = attributes.get('onCloseCallback', self.default_on_close_callback)
     53         self.sr.headerParent.Hide()
     54         self.HideBackground()
     55         self.outerCont = Container(name='outerCont', parent=self.sr.main, state=uiconst.UI_PICKCHILDREN, opacity=1, padding=2, clipChildren=True)
     56         self.innerCont = Container(name='innerCont', parent=self.outerCont, align=uiconst.CENTERTOP, height=self.innerContHeight, width=self.innerContWidth, opacity=0, bgColor=(0, 0, 0, 0.5))
     57         self.frameCont = Container(name='contentCont', parent=self.innerCont, align=uiconst.CENTER, width=self.mainContentWidth, height=self.mainContentHeight)
     58         self.ConstructBracketFrame()
     59         self.ConstructContent()
     60         self.ConstructInnerFrame()
     61         self._AnimEnter()
     62         if callable(self.onOpenCallback):
     63             StartTasklet(self.onOpenCallback)
     64 
     65     def ConstructContent(self):
     66         pass
     67 
     68     def ConstructBracketFrame(self):
     69         self.topBracketContainer = Container(name='topBracketCont', parent=self.outerCont, align=uiconst.CENTERTOP, width=self.bracketWidth, height=7, opacity=self.borderOpacity, idx=0)
     70         self.topBracketTail = StretchSpriteHorizontal(name='topSpriteBracket', parent=self.topBracketContainer, align=uiconst.CENTERTOP, width=self.bracketWidth, height=7, leftEdgeSize=16, rightEdgeSize=16, texturePath='res:/UI/Texture/Shared/BracketBorderWindow/bracketTails_Window.png')
     71         self.topBracketHead = StretchSpriteHorizontal(name='topSpriteHead', parent=self.topBracketContainer, align=uiconst.CENTERTOP, width=self.bracketHeadWidth, height=5, leftEdgeSize=16, rightEdgeSize=16, top=1, texturePath='res:/UI/Texture/Shared/BracketBorderWindow/bracketHead_Window.png')
     72         self.bottomBracketContainer = Container(name='bottomBracketCont', parent=self.outerCont, align=uiconst.CENTERBOTTOM, width=self.bracketWidth, height=7, top=self.bottomBracketOffset, opacity=self.borderOpacity, idx=0)
     73         self.bottomBracketTail = StretchSpriteHorizontal(name='bottomSpriteBracket', parent=self.bottomBracketContainer, align=uiconst.CENTERBOTTOM, width=self.bracketWidth, height=7, leftEdgeSize=16, rightEdgeSize=16, texturePath='res:/UI/Texture/Shared/BracketBorderWindow/bracketTails_Window.png', rotation=math.pi)
     74         self.bottomBracketHead = StretchSpriteHorizontal(name='bottomSpriteHead', parent=self.bottomBracketContainer, align=uiconst.CENTERBOTTOM, width=self.bracketHeadWidth, height=5, leftEdgeSize=16, rightEdgeSize=16, top=1, texturePath='res:/UI/Texture/Shared/BracketBorderWindow/bracketHead_Window.png', rotation=math.pi)
     75 
     76     def ConstructInnerFrame(self):
     77         mainSpriteWidth = self.mainContentWidth
     78         mainSpriteHeight = self.mainContentHeight
     79         self.bannerSprite = Sprite(name='bannerSprite', parent=self.frameCont, align=uiconst.CENTERTOP, width=mainSpriteWidth, height=mainSpriteHeight, texturePath=self.backgroundImage, textureSecondaryPath='res:/UI/Texture/Shared/BracketBorderWindow/mask_Window770.png', spriteEffect=trinity.TR2_SFX_MODULATE)
     80         self.bannerVideoSprite = StreamingVideoSprite(name='bannerVideoSprite', parent=self.frameCont, state=uiconst.UI_HIDDEN, align=uiconst.CENTERTOP, width=mainSpriteWidth, height=mainSpriteHeight, textureSecondaryPath='res:/UI/Texture/Shared/BracketBorderWindow/mask_Window770.png', spriteEffect=trinity.TR2_SFX_MODULATE)
     81         self.frameSprite = Frame(name='frameSprite', parent=self.frameCont, align=uiconst.CENTERTOP, width=mainSpriteWidth, height=mainSpriteHeight, opacity=SPRITE_OPACITY, texturePath='res:/UI/Texture/Shared/BracketBorderWindow/frame_Window.png', cornerSize=10, idx=0)
     82         self.closeButtonCont = Container(name='closeButtonContainer', parent=self.innerCont, align=uiconst.TOPRIGHT, height=100, width=75, idx=0)
     83         self.closeButton = ButtonIcon(name='closeOfferButton', parent=self.closeButtonCont, align=uiconst.CENTER, texturePath='res:/UI/Texture/Icons/x_close14.png', iconSize=14, func=self.CloseButtonClicked, text=localization.GetByLabel('UI/Common/Buttons/Close'))
     84         self.closeButton.tooltipPanelClassInfo = TooltipDescriptionWrapper(localization.GetByLabel('UI/Common/Buttons/Close'))
     85 
     86     def CloseButtonClicked(self):
     87         self._AnimExit()
     88         if callable(self.onCloseCallback):
     89             self.onCloseCallback()
     90 
     91     def SetBackgroundImage(self, image = None):
     92         if image is not None:
     93             self.bannerSprite.SetTexturePath(image)
     94 
     95     def DeferredClose(self):
     96         self.CloseByUser()
     97 
     98     def _AnimExit(self):
     99         animations.FadeOut(obj=self.innerCont, duration=self.closingDurationSec)
    100         animations.MoveTo(obj=self.topBracketContainer, startPos=(0, 0), endPos=(0, self.height / 2 - 8), duration=self.closingDuration2Sec, timeOffset=self.closingDurationSec)
    101         animations.MoveTo(obj=self.bottomBracketContainer, startPos=(0, self.bottomBracketOffset), endPos=(0, self.height / 2 - 8), duration=self.closingDuration2Sec, timeOffset=self.closingDurationSec)
    102         animations.FadeOut(obj=self.topBracketContainer, duration=self.fadeOutDurationSec, timeOffset=self.closingDurationSec + self.closingDuration2Sec)
    103         animations.FadeOut(obj=self.bottomBracketContainer, duration=self.fadeOutDurationSec, timeOffset=self.closingDurationSec + self.closingDuration2Sec, callback=self.DeferredClose)
    104 
    105     def _AnimEnter(self):
    106         animations.FadeIn(obj=self.topBracketContainer, endVal=SPRITE_OPACITY, duration=self.openingDurationSec)
    107         animations.FadeIn(obj=self.bottomBracketContainer, endVal=SPRITE_OPACITY, duration=self.openingDurationSec)
    108         animations.MoveTo(obj=self.topBracketContainer, startPos=(0, self.height / 2 - 8), endPos=(0, 0), duration=self.openingDuration2Sec, timeOffset=self.openingDurationSec)
    109         animations.MoveTo(obj=self.bottomBracketContainer, startPos=(0, self.height / 2 - 8), endPos=(0, self.bottomBracketOffset), duration=self.openingDuration2Sec, timeOffset=self.openingDurationSec)
    110         animations.FadeIn(obj=self.innerCont, duration=self.fadeInDurationSec, timeOffset=self.openingDurationSec + self.openingDuration2Sec, callback=self.PostAnimEnter)
    111 
    112     def PostAnimEnter(self):
    113         pass