class _ConfirmationWithCheckbox(Dialog): _width = 650 _height = 250 def __init__(self, controller): Dialog.__init__(self, self._title, size=(self._width, self._height)) self._controller = controller self._sizer = VerticalSizer() self._create_controls() self._create_horizontal_line(self._sizer) self._create_buttons(self._sizer) self.SetSizer(self._sizer) def _create_controls(self): self._show_usages() self._checkbox = wx.CheckBox(self, label=self._checkbox_label) self._checkbox.SetValue(True) self._sizer.add_with_padding(self._checkbox) def _show_usages(self): usages = list(self._controller.execute(FindResourceUsages())) if usages: self._sizer.add_with_padding(Label(self, label="Usages:")) model = ResourceImportListModel(usages) self._sizer.add_expanding(VirtualList(self, model.headers, model)) self._add_usages_modifying_help(usages) def _add_usages_modifying_help(self, usages): if any(u for u in usages if not u.can_be_renamed): help = Label(self, label='Highlighted imports are not modified because they ' 'contain variables in resource file name.') help.Wrap(self._width) help.SetForegroundColour('red') self._sizer.add_with_padding(help)
class _UsageDialog(Dialog): _width = 650 _height = 250 def __init__(self, usages, title, checkbox_label, model=ResourceImportListModel): Dialog.__init__(self, title, size=(self._width, self._height)) self._sizer = VerticalSizer() self._create_controls(usages, checkbox_label, model) self._create_horizontal_line(self._sizer) self._create_buttons(self._sizer) self.SetSizer(self._sizer) def _create_controls(self, usages, checkbox_label, model): self._sizer.add_with_padding(Label(self, label="Usages:")) model = model(usages) self._sizer.add_expanding(VirtualList(self, model.headers, model)) self._add_usages_modifying_help(usages) self._checkbox = wx.CheckBox(self, label=checkbox_label) self._checkbox.SetValue(True) self._sizer.add_with_padding(self._checkbox) def _add_usages_modifying_help(self, usages): if any(u for u in usages if not u.can_be_renamed): help = Label(self, label='Highlighted imports are not modified because they ' 'contain variables in resource file name.') help.Wrap(self._width) help.SetForegroundColour('red') self._sizer.add_with_padding(help) def show(self): confirmed = self.ShowModal() == wx.ID_OK return confirmed, self._checkbox.IsChecked()
class _UsageDialog(Dialog): _width = 650 _height = 250 def __init__(self, usages, title, checkbox_label, model=ResourceImportListModel): Dialog.__init__(self, title, size=(self._width, self._height)) # set Left to Right direction (while we don't have localization) self.SetLayoutDirection(wx.Layout_LeftToRight) self._sizer = VerticalSizer() self._create_controls(usages, checkbox_label, model) self._create_horizontal_line(self._sizer) self._create_buttons(self._sizer) self.SetSizer(self._sizer) def _create_controls(self, usages, checkbox_label, model): self._sizer.add_with_padding(Label(self, label="Usages:")) model = model(usages) self._sizer.add_expanding(VirtualList(self, model.headers, model)) self._add_usages_modifying_help(usages) self._checkbox = wx.CheckBox(self, label=checkbox_label) self._checkbox.SetValue(True) self._sizer.add_with_padding(self._checkbox) def _add_usages_modifying_help(self, usages): if any(u for u in usages if not u.can_be_renamed): help = Label( self, label='Highlighted imports are not modified because they ' 'contain variables in resource file name.') help.Wrap(self._width) help.SetForegroundColour('red') self._sizer.add_with_padding(help) def show(self): confirmed = self.ShowModal() == wx.ID_OK return confirmed, self._checkbox.IsChecked()