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