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