statisticsPanel.py (2763B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\login\charcreation\empireTechnologyViews\statisticsPanel.py 2 import carbonui.const as uiconst 3 from carbonui.control.editPlainText import LINESPLIT 4 from carbonui.primitives.container import Container 5 from carbonui.primitives.gradientSprite import GradientSprite 6 from eve.client.script.ui.control.eveLabel import EveLabelMedium 7 from carbonui.fontconst import EVE_MEDIUM_FONTSIZE 8 from eve.client.script.ui.util.uix import GetTextHeight, GetTextWidth 9 STATISTICS_TEXT_BOX_MARGIN = 10 10 STATISTICS_GRADIENT_COLOR = (0.0, 0.0, 0.0) 11 STATISTICS_GRADIENT_OPACITY = 1.0 12 13 def FormatStatisticsText(statisticsText): 14 formattedLines = LINESPLIT.sub('\n', statisticsText).splitlines(True) 15 return ''.join(formattedLines) 16 17 18 def AddStatisticsLineToContainer(line, container): 19 if line != '\n': 20 line = line.rstrip() 21 statisticsTextContainer = Container(name='statisticsTextContainer', parent=container, align=uiconst.TOTOP, width=GetTextWidth(line, fontsize=EVE_MEDIUM_FONTSIZE), height=GetTextHeight(line, maxLines=1, fontsize=EVE_MEDIUM_FONTSIZE)) 22 EveLabelMedium(name='statisticsLabel', parent=statisticsTextContainer, align=uiconst.CENTERRIGHT, text=line) 23 24 25 class StatisticsPanel(Container): 26 27 def ApplyAttributes(self, attributes): 28 Container.ApplyAttributes(self, attributes) 29 unFormattedStatisticsText = attributes.Get('statisticsText', '') 30 self.statisticsText = FormatStatisticsText(unFormattedStatisticsText) 31 statisticsTextHeight = GetTextHeight(strng=self.statisticsText, fontsize=EVE_MEDIUM_FONTSIZE) 32 statisticsWrapper = Container(name='statisticsWrapper', parent=self, align=uiconst.TOTOP, width=self.width, height=statisticsTextHeight + 2 * STATISTICS_TEXT_BOX_MARGIN) 33 self.statisticsTextBox = Container(name='statisticsTextBox', parent=statisticsWrapper, align=uiconst.TORIGHT, width=self.width, height=statisticsTextHeight + 2 * STATISTICS_TEXT_BOX_MARGIN) 34 GradientSprite(name='statisticsGradient', bgParent=self.statisticsTextBox, rgbData=((0, STATISTICS_GRADIENT_COLOR),), alphaData=[(0.0, 0.0), 35 (0.2, 0.1), 36 (0.7, 0.6), 37 (1.0, 0.8)], opacity=STATISTICS_GRADIENT_OPACITY) 38 self.LoadStatisticsText() 39 40 def IterLines(self): 41 return self.statisticsText.splitlines(True) 42 43 def LoadStatisticsText(self): 44 statisticsTextContainer = Container(parent=self.statisticsTextBox, align=uiconst.CENTER, width=self.statisticsTextBox.width - 2 * STATISTICS_TEXT_BOX_MARGIN, height=self.statisticsTextBox.height - 2 * STATISTICS_TEXT_BOX_MARGIN) 45 for line in self.IterLines(): 46 AddStatisticsLineToContainer(line, statisticsTextContainer)