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

summaryPage.py (5010B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\cosmetics\structure\pages\summaryPage.py
      2 from carbonui import const as uiconst
      3 from carbonui.button.const import ButtonVariant
      4 from carbonui.button.group import ButtonGroup, ButtonSizeMode
      5 from carbonui.control.button import Button
      6 from carbonui.primitives.container import Container
      7 from carbonui.primitives.containerAutoSize import ContainerAutoSize
      8 from carbonui.primitives.sprite import Sprite
      9 from eve.client.script.ui.control.eveLabel import EveLabelMedium, EveCaptionLarge
     10 from eve.client.script.ui.cosmetics.structure import paintToolSelections
     11 from eve.client.script.ui.cosmetics.structure.components.previewScene import PreviewPanel
     12 from eve.client.script.ui.cosmetics.structure.pages.basePage import BasePage
     13 import eve.client.script.ui.cosmetics.structure.const as paintToolConst
     14 import eve.client.script.ui.cosmetics.structure.paintToolSignals as paintToolSignals
     15 from localization import GetByLabel
     16 BUTTON_WIDTH = 200
     17 BUTTON_HEIGHT = 40
     18 BUTTON_PADDING = 12
     19 
     20 class SummaryPage(BasePage):
     21 
     22     def __init__(self, **kw):
     23         super(SummaryPage, self).__init__(**kw)
     24         paintToolSignals.on_paintwork_selection_changed.connect(self._on_paint_selection_changed)
     25         paintToolSignals.on_structure_selection_changed.connect(self._on_structure_selection_changed)
     26         paintToolSignals.on_duration_selection_changed.connect(self._on_duration_selection_changed)
     27         self._update_info_label()
     28 
     29     def Close(self):
     30         paintToolSignals.on_paintwork_selection_changed.disconnect(self._on_paint_selection_changed)
     31         paintToolSignals.on_structure_selection_changed.disconnect(self._on_structure_selection_changed)
     32         paintToolSignals.on_duration_selection_changed.disconnect(self._on_duration_selection_changed)
     33         super(SummaryPage, self).Close()
     34 
     35     def _open_page(self):
     36         self._live_preview.display = True
     37         super(SummaryPage, self)._open_page()
     38 
     39     def _close_page(self):
     40         self._live_preview.display = False
     41         super(SummaryPage, self)._close_page()
     42 
     43     def _construct_layout(self):
     44         self._content_cont = Container(parent=self, name='content', align=uiconst.TOALL)
     45         self._create_buttons()
     46         self._create_thank_you_message()
     47         self._create_live_preview()
     48 
     49     def _create_live_preview(self):
     50         self._live_preview = PreviewPanel(name='preview_panel', parent=self)
     51         self._live_preview.display = False
     52 
     53     def _create_buttons(self):
     54         btn_cont = Container(name='btnCont', parent=self._content_cont, align=uiconst.TOBOTTOM, height=132)
     55         btn_group = ButtonGroup(parent=btn_cont, align=uiconst.CENTERTOP, width=2 * BUTTON_WIDTH, button_size_mode=ButtonSizeMode.STRETCH)
     56         Button(name='closeBtn', parent=btn_group, label=GetByLabel('UI/Personalization/PaintTool/CloseButton'), variant=ButtonVariant.GHOST, func=self._on_close_clicked)
     57         Button(name='newDesignBtn', parent=btn_group, label=GetByLabel('UI/Personalization/PaintTool/NewDesignButton'), func=self._on_new_design_clicked)
     58 
     59     def _create_thank_you_message(self):
     60         EveLabelMedium(parent=ContainerAutoSize(parent=self._content_cont, name='delayLabelCont', align=uiconst.TOBOTTOM), name='activationDelayLabel', text=GetByLabel('UI/Personalization/PaintTool/ActivationProcessDelay'), align=uiconst.CENTER, padBottom=51)
     61         self._info_label = EveLabelMedium(parent=ContainerAutoSize(parent=self._content_cont, name='infoLabelCont', align=uiconst.TOBOTTOM), name='activationDelayLabel', align=uiconst.CENTER, padBottom=8)
     62         EveCaptionLarge(parent=ContainerAutoSize(parent=self._content_cont, name='thanksLabelCont', align=uiconst.TOBOTTOM), name='thankYouLabel', text=GetByLabel('UI/Personalization/PaintTool/ThankPurchase'), align=uiconst.CENTER, padBottom=8)
     63         Sprite(parent=Container(parent=self._content_cont, name='logoCont', align=uiconst.TOBOTTOM, height=32), align=uiconst.CENTERTOP, state=uiconst.UI_DISABLED, pos=(0, -18, 34, 32), texturePath='res:/UI/Texture/classes/paintTool/paragon_logo.png')
     64 
     65     def _update_info_label(self):
     66         duration = paintToolSelections.SELECTED_DURATION / 86400 if paintToolSelections.SELECTED_DURATION > 0 else 0
     67         self._info_label.text = GetByLabel('UI/Personalization/PaintTool/ActivatedLicenseDetails', numStructures=len(paintToolSelections.SELECTED_STRUCTURES), numDays=duration)
     68 
     69     def _on_close_clicked(self, *args):
     70         paintToolSignals.on_close_window_requested()
     71 
     72     def _on_new_design_clicked(self, *args):
     73         paintToolSelections.SELECTED_PAGE.set(paintToolConst.STRUCTURE_SELECTION_PAGE_ID)
     74 
     75     def _on_paint_selection_changed(self, _slot_id, _paint_id):
     76         self._live_preview.update(paintToolSelections.SELECTED_STRUCTURE_TYPE.get(), fit_in_view=False)
     77 
     78     def _on_structure_selection_changed(self, *_args):
     79         self._update_info_label()
     80 
     81     def _on_duration_selection_changed(self):
     82         self._update_info_label()