benefit_card.py (2700B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\omega\upsell\components\benefit_card.py 2 from carbonui import Align, PickState, uiconst 3 from carbonui.text.styles import TextHeader 4 from carbonui.primitives.container import Container 5 from carbonui.primitives.fill import Fill 6 from carbonui.primitives.sprite import Sprite 7 from eve.client.script.ui import eveColor 8 from eve.client.script.ui.omega.upsell import omegaUpsellSignals 9 from eve.client.script.ui.omega.upsell.omegaUpsellConst import OmegaUpsellPage 10 from eve.client.script.ui.omega.upsell.components.omega_frame import OmegaBenefitFrame, OmegaFrameState 11 from localization import GetByMessageID 12 13 class BenefitCard(Container): 14 default_state = uiconst.UI_NORMAL 15 default_width = 256 16 default_height = 112 17 18 def __init__(self, omega_benefit, *args, **kwargs): 19 super(BenefitCard, self).__init__(*args, **kwargs) 20 self.omega_benefit = omega_benefit 21 self.construct_layout() 22 23 def construct_layout(self): 24 self.construct_containers() 25 self.construct_frame() 26 self.construct_footer() 27 self.construct_label() 28 self.construct_icon() 29 self.update() 30 31 def construct_containers(self): 32 self.content_container = Container(name='content_container', parent=self, padding=(1, 1, 1, 1)) 33 self.frame_container = Container(name='frame_container', parent=self) 34 35 def construct_frame(self): 36 self.frame = OmegaBenefitFrame(name='frame', parent=self.frame_container) 37 38 def construct_label(self): 39 self.label = TextHeader(name='label', parent=self.content_container, align=Align.VERTICALLY_CENTERED, color=eveColor.OMEGA_ACCENT, padding=(24, 0, 100, 0)) 40 41 def construct_icon(self): 42 icon_container = Container(name='icon_container', parent=self.content_container, align=Align.TORIGHT, width=96, padLeft=8) 43 self.icon = Sprite(name='icon', parent=icon_container, align=Align.CENTERLEFT, pickState=PickState.OFF, pos=(0, 0, 64, 64)) 44 45 def construct_footer(self): 46 Fill(parent=self.content_container, align=Align.TOBOTTOM_NOPUSH, color=eveColor.OMEGA_ACCENT, opacity=0.1, height=10) 47 48 def update(self): 49 self.label.text = GetByMessageID(self.omega_benefit.button_message_id) 50 self.icon.texturePath = self.omega_benefit.icon_path 51 52 def OnMouseEnter(self, *args): 53 self.frame.set_state(OmegaFrameState.HOVER) 54 55 def OnMouseExit(self, *args): 56 self.frame.set_state(OmegaFrameState.IDLE) 57 58 def OnClick(self, *args): 59 omegaUpsellSignals.load_page(OmegaUpsellPage.BENEFIT_DETAILS, omega_benefit_type=self.omega_benefit.omega_benefit_type)