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

completedconversationui.py (6748B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\conversations\ui\completedconversationui.py
      2 import carbonui.const as uiconst
      3 from carbonui.fontconst import DEFAULT_FONTSIZE
      4 from carbonui.primitives.container import Container
      5 from carbonui.primitives.fill import Fill
      6 from carbonui.primitives.sprite import Sprite
      7 from carbonui.control.button import Button
      8 from eve.client.script.ui.control.eveLabel import EveLabelMedium
      9 from eve.client.script.ui.util.uix import GetTextWidth
     10 from localization import GetByLabel
     11 from trinity import TR2_SBM_ADD
     12 from carbonui.uicore import uicore
     13 COMPLETED_LABEL = 'UI/Conversations/UI/CompletedConversation'
     14 COMPLETED_LABEL_PADDING = 2
     15 COMPLETED_LABEL_COLOR = (0.42, 0.77, 0.25, 1.5)
     16 COMPLETED_NEXT_BUTTON_LABEL = 'UI/Conversations/UI/NextConversationLine'
     17 COMPLETED_NEXT_BUTTON_LABEL_PADDING = 10
     18 COMPLETED_NEXT_BUTTON_LABEL_COLOR = (1.0, 1.0, 1.0, 1.0)
     19 COMPLETED_NEXT_BUTTON_COLOR = (0.29, 0.5, 0.18, 1.2)
     20 COMPLETED_NEXT_BUTTON_RIGHT_PADDING = 7
     21 COMPLETED_UI_BACKGROUND_FILL_COLOR = (0.42, 0.77, 0.25, 0.0)
     22 COMPLETED_UI_BACKGROUND_FILL_START_OPACITY = 0.5
     23 COMPLETED_UI_BACKGROUND_FILL_END_OPACITY = 0.15
     24 COMPLETED_UI_BACKGROUND_FILL_START_DISPLAY_WIDTH = 0.0
     25 COMPLETED_UI_BACKGROUND_FILL_DURATION = 1.0
     26 COMPLETED_UI_BACKGROUND_FILL_OPACITY_CHANGE_DURATION_SECS = 1.75
     27 COMPLETED_UI_BACKGROUND_FILL_OPACITY_CHANGE_OFFSET_SECS = 0.5
     28 COMPLETED_CHECKBOX_SIZE = 14
     29 COMPLETED_CHECKBOX_PADDING = 2
     30 COMPLETED_CHECKBOX_TEXTURE = 'res:/UI/Texture/Classes/InfoPanels/opportunitiesCheck.png'
     31 COMPLETED_CHECKBOX_COLOR = (0.42, 0.77, 0.25, 1.0)
     32 COMPLETED_CHECKBOX_GLOW_EXPAND_START = 5.0
     33 COMPLETED_CHECKBOX_GLOW_EXPAND_END = 0.0
     34 COMPLETED_CHECKBOX_GLOW_EXPAND_DURATION = 2.0
     35 COMPLETED_CHECKBOX_GLOW_COLOR_START = (0.5, 0.5, 0.5, 0.5)
     36 COMPLETED_CHECKBOX_GLOW_COLOR_END = (0.0, 0.0, 0.0, 0.0)
     37 COMPLETED_CHECKBOX_GLOW_COLOR_DURATION = 2.0
     38 COMPLETED_CHECKBOX_OPACITY = 1.0
     39 CONTENT_PADDING = 4
     40 
     41 class CompletedConversationUi(Container):
     42 
     43     def ApplyAttributes(self, attributes):
     44         Container.ApplyAttributes(self, attributes)
     45         next_function = attributes.Get('nextFunction', None)
     46         self.load_text()
     47         self.add_background()
     48         self.add_content()
     49         self.activate_next_button(next_function=next_function)
     50 
     51     def load_text(self):
     52         self.completed_label_text = GetByLabel(COMPLETED_LABEL)
     53         self.completed_label_text_width = GetTextWidth(strng=self.completed_label_text, fontsize=DEFAULT_FONTSIZE) + 2 * COMPLETED_LABEL_PADDING
     54         self.next_button_label_text = GetByLabel(COMPLETED_NEXT_BUTTON_LABEL)
     55         self.next_button_label_text_width = GetTextWidth(strng=self.next_button_label_text, fontsize=DEFAULT_FONTSIZE) + 2 * COMPLETED_NEXT_BUTTON_LABEL_PADDING
     56 
     57     def add_content(self):
     58         self.content_container = Container(name='completed_ui_content_container', align=uiconst.TOLEFT, parent=self, width=self.width, height=self.height, padding=CONTENT_PADDING)
     59         self.add_completed_tag()
     60         self.add_next_button()
     61 
     62     def add_background(self):
     63         completed_fill = Fill(bgParent=self, color=COMPLETED_UI_BACKGROUND_FILL_COLOR)
     64         completed_fill.displayWidth = COMPLETED_UI_BACKGROUND_FILL_START_DISPLAY_WIDTH
     65         completed_fill.opacity = COMPLETED_UI_BACKGROUND_FILL_START_OPACITY
     66         uicore.animations.MorphScalar(completed_fill, 'displayWidth', completed_fill.displayWidth, self.width, duration=COMPLETED_UI_BACKGROUND_FILL_DURATION)
     67         uicore.animations.FadeTo(completed_fill, startVal=COMPLETED_UI_BACKGROUND_FILL_START_OPACITY, endVal=COMPLETED_UI_BACKGROUND_FILL_END_OPACITY, duration=COMPLETED_UI_BACKGROUND_FILL_OPACITY_CHANGE_DURATION_SECS, timeOffset=COMPLETED_UI_BACKGROUND_FILL_OPACITY_CHANGE_OFFSET_SECS)
     68 
     69     def add_completed_tag(self):
     70         completed_tag_container = Container(name='completed_tag_container', align=uiconst.TOLEFT, parent=self.content_container, width=COMPLETED_CHECKBOX_SIZE + 2 * COMPLETED_CHECKBOX_PADDING + self.completed_label_text_width, height=self.content_container.height)
     71         self.add_completed_checkbox(completed_tag_container)
     72         self.add_completed_label(completed_tag_container)
     73 
     74     def add_completed_checkbox(self, parent):
     75         completed_checkbox_container = Container(name='completed_checkbox_container', align=uiconst.TOLEFT, parent=parent, width=COMPLETED_CHECKBOX_SIZE, height=parent.height, padRight=COMPLETED_CHECKBOX_PADDING, padLeft=COMPLETED_CHECKBOX_PADDING)
     76         completed_checkbox = Sprite(name='completed_checkbox', parent=completed_checkbox_container, align=uiconst.CENTER, width=COMPLETED_CHECKBOX_SIZE, height=COMPLETED_CHECKBOX_SIZE, texturePath=COMPLETED_CHECKBOX_TEXTURE, color=COMPLETED_CHECKBOX_COLOR, blendMode=TR2_SBM_ADD)
     77         uicore.animations.MorphScalar(completed_checkbox, 'glowExpand', startVal=COMPLETED_CHECKBOX_GLOW_EXPAND_START, endVal=COMPLETED_CHECKBOX_GLOW_EXPAND_END, duration=COMPLETED_CHECKBOX_GLOW_EXPAND_DURATION)
     78         uicore.animations.SpColorMorphTo(completed_checkbox, startColor=COMPLETED_CHECKBOX_GLOW_COLOR_START, endColor=COMPLETED_CHECKBOX_GLOW_COLOR_END, attrName='glowColor', duration=COMPLETED_CHECKBOX_GLOW_COLOR_DURATION)
     79         uicore.animations.FadeTo(completed_checkbox, startVal=completed_checkbox.opacity, endVal=COMPLETED_CHECKBOX_OPACITY)
     80 
     81     def add_completed_label(self, parent):
     82         completed_label_container = Container(name='completed_label_container', align=uiconst.TOLEFT, parent=parent, width=self.completed_label_text_width, height=parent.height)
     83         EveLabelMedium(name='completed_label', parent=completed_label_container, text=self.completed_label_text, align=uiconst.CENTER, color=COMPLETED_LABEL_COLOR, blendMode=TR2_SBM_ADD)
     84 
     85     def add_next_button(self):
     86         completed_next_button_container = Container(name='completed_next_button_container', align=uiconst.TORIGHT, parent=self.content_container, width=self.next_button_label_text_width, height=self.content_container.height, padRight=COMPLETED_NEXT_BUTTON_RIGHT_PADDING)
     87         self.completed_next_button = Button(name='completed_next_button', align=uiconst.NOALIGN, parent=completed_next_button_container, label=self.next_button_label_text, color=COMPLETED_NEXT_BUTTON_COLOR)
     88         self.completed_next_button.SetColor(COMPLETED_NEXT_BUTTON_COLOR)
     89         self.completed_next_button.SetLabelColor(COMPLETED_NEXT_BUTTON_LABEL_COLOR)
     90         self.completed_next_button.SetActiveFrameColor(COMPLETED_NEXT_BUTTON_LABEL_COLOR)
     91 
     92     def activate_next_button(self, next_function):
     93         self.completed_next_button.OnClick = next_function
     94 
     95     def deactivate_next_button(self):
     96         self.completed_next_button.state = uiconst.UI_DISABLED
     97         self.completed_next_button.OnClick = None