radioButtonMessageBox.py (3409B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\radioButtonMessageBox.py 2 import uthread 3 import localization 4 from carbonui import uiconst 5 from carbonui.control.scrollContainer import ScrollContainer 6 from carbonui.primitives.container import Container 7 from carbonui.primitives.containerAutoSize import ContainerAutoSize 8 from carbonui.uicore import uicore 9 from carbonui.control.radioButton import RadioButton 10 from eve.client.script.ui.control import eveLabel 11 from eve.client.script.ui.control.eveEditPlainText import EditPlainText 12 from eve.client.script.ui.control.eveLabel import CaptionLabel 13 from eve.client.script.ui.shared.messagebox import MessageBox 14 from eve.client.script.ui.util import uix 15 16 class RadioButtonMessageBox(MessageBox): 17 __guid__ = 'form.RadioButtonMessageBox' 18 __nonpersistvars__ = ['suppress'] 19 20 def _show_message(self, text, title, buttons, icon, suppText, customicon = None, height = None, default = None, modal = True, cancelLabel = None, isClosable = True, width = None, radioOptions = None, is_suppressable = False): 21 height = height or 280 22 width = width or 340 23 self.HideHeader() 24 self.SetMinSize([width, height]) 25 self.width = width 26 self.height = height 27 self.GetMainArea().padding = 16 28 iconTexturePath = customicon or uix.GetDialogIconTexturePath(icon) 29 self.icon = iconTexturePath 30 self.SetTopIcon(iconTexturePath) 31 if title is None: 32 title = localization.GetByLabel('UI/Common/Information') 33 eveLabel.EveCaptionLarge(parent=ContainerAutoSize(parent=self.topParent, align=uiconst.TOLEFT, left=8), align=uiconst.CENTERLEFT, text=title, width=300) 34 self.radioButtonContainer = ContainerAutoSize(name='radioContainer', parent=self.sr.main, align=uiconst.TOBOTTOM, padding=(0, 8, 0, 8)) 35 if text: 36 self._message_scroll = ScrollContainer(parent=self.content, align=uiconst.TOALL, padBottom=8) 37 self.edit = self._message_label = eveLabel.EveLabelMedium(parent=self._message_scroll, align=uiconst.TOTOP, text=text, tabs=list((16 * i for i in range(1, 9)))) 38 if radioOptions: 39 self.radioboxID = 'radioButtonMessageBox_%s' % repr(title) 40 radioSelection = settings.user.ui.Get(self.radioboxID, 'radioboxOption1Selected') 41 for index, label in enumerate(radioOptions): 42 RadioButton(parent=self.radioButtonContainer, text=label, settingsKey=self.radioboxID, retval='radioboxOption%dSelected' % (index + 1), checked='radioboxOption%dSelected' % (index + 1) == radioSelection, groupname=self.radioboxID, callback=self.OnCheckboxChange) 43 44 if suppText: 45 self.construct_suppress_checkbox(suppText) 46 self.DefineButtons(buttons, default=default) 47 if modal: 48 uicore.registry.SetFocus(self) 49 scroll_size_fraction = self._message_scroll._scrollbar_vertical.handle_size_fraction 50 self.height = min(int(round(0.8 * uicore.desktop.height)), max(self.GetMinHeight(), self.height + self._message_label.height * (1.0 - scroll_size_fraction))) 51 52 def OnCheckboxChange(self, radioButton, *args): 53 settings.user.ui.Set(radioButton.GetSettingsKey(), radioButton.GetReturnValue()) 54 55 def GetRadioSelection(self): 56 return settings.user.ui.Get(self.radioboxID, 'radioboxOption1Selected')