def __init__(self, parent): Panel.__init__(self, parent) sizer = GridBagSizer(5, 5) self.SetSizer(sizer) self.__cur_po_class = None self.__create_widgets()
def panel(element, instance: wx.Panel): props = element['props'] set_basic_props(instance, props) instance.Unbind(wx.EVT_LEFT_DOWN) if 'on_click' in props: instance.Bind(wx.EVT_LEFT_DOWN, props['on_click']) return instance
def __init__(self, parent, headers, buttons, border=10, edit_callback=None): super().__init__(parent) self._listbox = Table(self, headers=[str(x.value) for x in headers], callback=edit_callback) # CONTROL FRAMES button_frame = Panel(self) button_sizer = BoxSizer(HORIZONTAL) for callback, text in buttons: button_sizer.Add(SimpleButton(button_frame, text_button=text, callback=callback), flag=TOP, border=border) button_frame.SetSizer(button_sizer) # ALIGN sizer = BoxSizer(VERTICAL) sizer.Add(self._listbox, 1, EXPAND) sizer.Add(button_frame) self.SetSizer(sizer)
def __init__(self, parent): Panel.__init__(self, parent) self.main_frame = self.GetTopLevelParent() self.po_fields = None self.__create_widgets()
def __init__(self, parent): Panel.__init__(self, parent=parent) self.panels = {} self.currentPanelKey = 0 self.sizer = BoxSizer(VERTICAL) self.SetSizer(self.sizer)
def construct_notebook(self): """Constructs the main Notebook panel""" panel = Panel(self) self.notebook = Notebook(panel, style=NB_LEFT) self.construct_tabs() sizer = BoxSizer(HORIZONTAL) sizer.Add(self.notebook, 1, EXPAND) panel.SetSizer(sizer)
def __init__(self, parent): Panel.__init__(self, parent) startButon = Button(self, label="Start Photobox", size=((300, 100))) homeSizer = BoxSizer(VERTICAL) homeSizer.AddStretchSpacer() homeSizer.Add(startButon, 0, CENTER) homeSizer.AddStretchSpacer() self.SetSizer(homeSizer)
def __init__(self, *callbacks): Frame.__init__(self, None, ID_ANY, "CUT") self.Bind(EVT_CLOSE, lambda x: self.Destroy()) root = Panel(self, EXPAND) sizer = BoxSizer(VERTICAL) elements = [] for element in callbacks: sizer.Add(element, 1, EXPAND) root.SetSizer(sizer)
def __init__(self, master, size=(4, 4)): Panel.__init__(self, master) self.master = master self.sizer = GridBagSizer(*size) self.widgets = {} # holds the widgets as values. The keys are tuples with # three members (row, col, colspan) self.sizer.AddGrowableCol(1) self.sizer.AddGrowableRow(1) self.SetSizerAndFit(self.sizer)
def __init__(self, *args, **kw): super().__init__(*args, **kw) self.sm = SettingManeger() icon_file = get_data_safety(self.sm.setting, ICON_FILE) if icon_file is not None and exists(icon_file): icon = Icon(find_data_file(icon_file)) self.SetIcon(icon) self.menubar, self.language_menu_item_list = self.create_menubar( self.sm.language_list) self.SetMenuBar(self.menubar) if 0 <= len( self.language_menu_item_list) - 1 <= self.sm.language_index: self.language_menu_item_list[self.sm.language_index].Check() self.panel = Panel(self) self.preview_button = NormalButton(self.panel, label=SHOW_LABEL, size=(40, 40), pos=(10, 10)) self.separeter_line = StaticLine(self.panel, size=(3000, 2)) self.add_button = NormalButton(self.panel, label=ADD_LABEL, size=(40, 40)) self.timer_display = TimerDisplay(self, parent=self.panel) self.contents_display = ContentsDisplay(self, self.timer_display, parent=self.panel, style=ALWAYS_SHOW_SB) self.preview_window = PreviewWindow(self.sm, self.contents_display, parent=self) welcome_contents = self.sm.welcome_contents_list[ self.sm. language_index] if self.sm.welcome_contents_list is not None else ERROR_MESSAGE self.welcome_window = ScrolledWindow(welcome_contents, parent=self) about_contents = self.sm.about_contents_list[ self.sm. language_index] if self.sm.about_contents_list is not None else ERROR_MESSAGE self.about_window = ScrolledWindow(about_contents, parent=self) self.reset() self.change_language() self.connect() self.set_color() self.layout()
def __init__(self, parent): # call parent class __init__() Panel.__init__(self, parent=parent, id=ID_ANY, pos=DefaultPosition, size=DefaultSize, style=NO_BORDER, name="") # BackgroundBitmap self.BackgroundBitmap = None # bind paint event self.Bind(EVT_PAINT, self._OnPaint) # done return
def __init__(self, parent, editor_tab): Panel.__init__(self, parent) self.__editor_tab = editor_tab self.__cur_po_class = None sizer = GridBagSizer(5, 5) full_span = (1, 4) row = 0 inner_sizer = BoxSizer(HORIZONTAL) self.btn_open_test_file = Button(self, label=u'Open test file') self.btn_open_test_file.Bind(EVT_BUTTON, self.__on_open_test_file) inner_sizer.Add(self.btn_open_test_file) self.btn_create_test_file = Button(self, label=u'Create test file') self.btn_create_test_file.Bind(EVT_BUTTON, self.__on_create_test_file) inner_sizer.Add(self.btn_create_test_file) self.btn_save_test_file = Button(self, label=u'Save current file') self.btn_save_test_file.Bind(EVT_BUTTON, self.__on_save_test_file) inner_sizer.Add(self.btn_save_test_file) inner_sizer.AddStretchSpacer(1) self.btn_create_test = Button(self, label=u'Create new method/test case') self.btn_create_test.Bind(EVT_BUTTON, self.__create_method_or_test) inner_sizer.Add(self.btn_create_test) sizer.Add(inner_sizer, pos=(row, 0), span=full_span, flag=FLAG_ALL_AND_EXPAND) row += 1 self.tabs = Tabs(self, [(Table, "Fields' table")]) self.table = self.tabs.GetPage(0) self.table.Bind(EVT_GRID_SELECT_CELL, self.__on_cell_click) self.table.Bind(EVT_GRID_CELL_RIGHT_CLICK, self.__on_cell_click) sizer.Add(self.tabs, pos=(row, 0), span=full_span, flag=FLAG_ALL_AND_EXPAND) sizer.AddGrowableCol(1, 1) sizer.AddGrowableRow(1, 1) self.SetSizer(sizer)
def __init__(self, parent): Panel.__init__(self, parent) self._grid_layout = GridBagSizer() self._separator1 = StaticLine(self, size=(250, 1), style=LI_HORIZONTAL) self._hierarchyBox = StaticBox(parent, label="Configurar Importação") self._grid_layout.Add(self._separator1, pos=(0, 0), flag=TOP | LEFT | BOTTOM, border=0) self._grid_layout.Add(self._hierarchyBox, pos=(1, 0), flag=TOP | LEFT | BOTTOM, border=2) self.SetSizer(self._grid_layout)
def __init__(self, parent, style=wx.TAB_TRAVERSAL|wx.NO_BORDER): Panel.__init__(self, parent, style=style) self.textfield_filepath = TextCtrl(self, wx.ID_ANY, size=(200, 25)) self.panel_control = Panel(self, size=(200, 150), ) self.button_choose_file = Button(self.panel_control, wx.ID_ANY, 'Browse...') self.button_process = Button(self.panel_control, wx.ID_ANY, 'Process') self.Bind(wx.EVT_BUTTON, self.OnChooseFile, self.button_choose_file) self.Bind(wx.EVT_BUTTON, self.OnProcess, self.button_process) self.__init_layout() self.splitter = Splitter()
def __init__(self, parent, imagePath): Panel.__init__(self, parent) #Cor do Fundo self.BackgroundColour = ((100, 100, 100)) #Tamanhos do BitMap self._bitmap_width = 510 self._bitmap_height = 720 #Grid do BitMap self._hbox = BoxSizer(HORIZONTAL) self._grid_layout = FlexGridSizer(1, 2, 0, 10) #Lê a Imagem self._image = cv2.imread(imagePath) defaultImage = self.GetImageDataInPanelSize(self._bitmap_width, self._bitmap_height, self._image) defaultImage_wx = EmptyImage(self._bitmap_width, self._bitmap_height) defaultImage_wx.SetData( defaultImage.tostring()) # convert from cv.iplimage to wxImage defaultImage_png = defaultImage_wx.ConvertToBitmap() # png = Image(image.GetWidth(), image.GetHeight(), imageData) # png = Image(imagePath, BITMAP_TYPE_ANY).ConvertToBitmap() # test1 = StaticBitmap(self, -1, png, size=(self._bitmap_width,self._bitmap_height)) # test2 = StaticBitmap(self, -1, png, size=(self._bitmap_width,self._bitmap_height)) test1 = StaticBitmap( self, -1, defaultImage_png, (0, 0), (defaultImage_wx.GetWidth(), defaultImage_wx.GetHeight())) test2 = StaticBitmap( self, -1, defaultImage_png, (0, 0), (defaultImage_wx.GetWidth(), defaultImage_wx.GetHeight())) self._grid_layout.AddMany([(test1, 1, EXPAND), (test2, 1, EXPAND)]) self._grid_layout.AddGrowableRow(0, 1) self._hbox.Add(self._grid_layout, proportion=1, flag=ALL | EXPAND, border=0) self.SetSizer(self._hbox)
def __init__(self): self.loaded = False super().__init__(None) p = Panel(self) s = BoxSizer(VERTICAL) ts = BoxSizer(HORIZONTAL) ts.Add(StaticText(p, label='A&ddress'), 0, GROW) self.address = TextCtrl(p, style=TE_PROCESS_ENTER) self.address.Bind(EVT_TEXT_ENTER, self.on_enter) ts.Add(self.address, 1, GROW) s.Add(ts, 0, GROW) self.html = WebView.New(p) self.html.Bind(EVT_WEBVIEW_LOADED, self.on_load) self.html.Bind(EVT_WEBVIEW_ERROR, self.on_error) self.html.Bind(EVT_WEBVIEW_TITLE_CHANGED, self.on_title) s.Add(self.html, 1, GROW) p.SetSizerAndFit(s)
def field_from_value(self, window, value, field): item = None if isinstance(value, six.string_types): item = TextCtrl(window, value=value) field.text_type = STRING_SETTING elif isinstance(value, list): if isinstance(value[0], six.string_types): item = TextCtrl(window, value=", ".join(value)) field.text_type = STRING_LIST_SETTING elif isinstance(value[0], numbers.Real): item = TextCtrl(window, value=", ".join((str(x) for x in value))) field.text_type = NUMBER_LIST_SETTING elif isinstance(value, bool): item = CheckBox(window, -1, '', (120, 75)) item.SetValue(value) elif isinstance(value, numbers.Real): item = TextCtrl(window, value=str(value)) field.text_type = NUMBER_SETTING elif isinstance(value, dict): subpage = Panel(window) vbox = BoxSizer(VERTICAL) for lbl in sorted(value.keys()): hbox = BoxSizer(HORIZONTAL) value2 = value[lbl] label = StaticText(subpage, label=lbl) hbox.Add(label, flag=RIGHT, border=8) subfield = Field(None, lbl) item = self.field_from_value(subpage, value2, subfield) field.add_child(subfield) if item is not None: hbox.Add(item, proportion=1) vbox.Add(hbox, flag=EXPAND | LEFT | RIGHT | TOP, border=5) vbox.Add((-1, 5)) subpage.SetSizer(vbox) subpage.Show() item = subpage else: # This is left for bug reporting purposes. printer.out(("{} from the field {} was not assigned to " + "{} because type {} wasn't properly handled.").format( value, field, window, type(value))) field.widget = item return item
def __init__(self, parent): Panel.__init__(self, parent) hsizer = wx.BoxSizer(wx.HORIZONTAL) v_sizer = wx.BoxSizer(wx.VERTICAL) colors = [("green", 3), ("yellow", 2), ("light blue", 2), ("purple", 2)] count = 1 for color, subpanel in colors: panel = ColorPanel(self, count, color, subpanel) hsizer.Add(panel, 1, wx.EXPAND) count += 1 orange_panel = ColorPanel(self, count, "orange", 0) v_sizer.Add(hsizer, 1, wx.EXPAND) v_sizer.Add(orange_panel, 1, wx.EXPAND) self.SetSizer(v_sizer)
def field_from_value(self, window, value, field): item = None if isinstance(value, basestring): item = TextCtrl(window, value=value) field.text_type = STRING_SETTING elif isinstance(value, list): if isinstance(value[0], basestring): item = TextCtrl(window, value=", ".join(value)) field.text_type = STRINGLIST_SETTING elif isinstance(value[0], int): item = TextCtrl(window, value=", ".join((str(x) for x in value))) field.text_type = INTEGERLIST_SETTING elif isinstance(value, bool): item = CheckBox(window, -1, '', (120, 75)) item.SetValue(value) elif isinstance(value, int): item = TextCtrl(window, value=str(value)) field.text_type = INTEGER_SETTING elif isinstance(value, dict): subpage = Panel(window) vbox = BoxSizer(VERTICAL) alpha = value.keys() alpha.sort() for lbl in alpha: hbox = BoxSizer(HORIZONTAL) value2 = value[lbl] label = StaticText(subpage, label=lbl) hbox.Add(label, flag=RIGHT, border=8) subfield = Field(None, lbl) item = self.field_from_value(subpage, value2, subfield) field.add_child(subfield) if item is not None: hbox.Add(item, proportion=1) vbox.Add(hbox, flag=EXPAND | LEFT | RIGHT | TOP, border=5) vbox.Add((-1, 5)) subpage.SetSizer(vbox) subpage.Show() item = subpage field.wx_field = item return item
def __init__(self, setting_maneger: SettingManeger, contents_display: ContentsDisplay, *args, **kw): super().__init__(*args, **kw) icon_bundle = self.GetParent().GetIcons() if not icon_bundle.IsEmpty(): self.SetIcon(icon_bundle.GetIconByIndex(0)) self.sm = setting_maneger self.main_window = self.GetParent() self.contents_display = contents_display self.panel = Panel(self) space_length, wrap_length, newline_count = self.sm.formmat_parameter self.space_lbl = NormalText(self.panel) self.space_display = IncrementWidget(space_length, min_=0, parent=self.panel, listener=self.check) self.wrap_lbl = NormalText(self.panel) self.wrap_length_display = IncrementWidget(wrap_length, parent=self.panel, listener=self.check) self.newline_lbl = NormalText(self.panel) self.newline_display = IncrementWidget(newline_count, min_=0, parent=self.panel, listener=self.check) self.entry = PreviewEntry(self.panel, style=TE_MULTILINE | TE_READONLY | HSCROLL) self.change_language() self.set_color() self.layout() self.update() self.contents_display.Bind(EVT_TEXT, self.update)
def __init__(self): TaskBarIcon.__init__(self) self.SetIcon(Icon(self.ICON), self.TITLE) # 设置图标和标题 self.Bind(EVT_MENU, self.onAbout, id=self.ID_ABOUT) # 绑定“关于”选项的点击事件 self.Bind(EVT_MENU, self.onExit, id=self.ID_EXIT) # 绑定“退出”选项的点击事件 self.Bind(EVT_MENU, self.onUpload, id=self.ID_UPLOAD) self.Bind(EVT_MENU, self.OnLogin, id=self.ID_LOGIN) self.frame = Frame(parent=None, title='登录', size=(285, 160)) self.frame.Bind(EVT_CLOSE, lambda event: self.frame.Show(False)) panel = Panel(self.frame, -1) label_user = StaticText(panel, -1, "账号:", pos=(10, 10)) label_pass = StaticText(panel, -1, "密码:", pos=(10, 50)) self.entry_user = TextCtrl(panel, -1, size=(210, 20), pos=(50, 10)) self.entry_pass = TextCtrl(panel, -1, size=(210, 20), pos=(50, 50), style=TE_PASSWORD) self.but_login = Button(panel, -1, "登陆", size=(50, 30), pos=(10, 80)) self.but_register = Button(panel, -1, "注册SM.MS账号", size=(110, 30), pos=(150, 80)) self.but_not_login = Button(panel, -1, "免登陆使用", size=(80, 30), pos=(65, 80)) self.but_login.Bind(EVT_BUTTON, self.on_but_login) self.but_register.Bind(EVT_BUTTON, self.on_but_register) self.but_not_login.Bind(EVT_BUTTON, self.on_but_not_login) self.frame.Center() token = init_config() if token == '0': self.frame.Show(True) else: self.frame.Show(False) self.frame.SetMaxSize((285, 160)) self.frame.SetMinSize((285, 160)) ThreadKey(self) self.frame2 = Trans(parent=None, title='上传中', size=(50, 20)) self.frame2.Center() self.frame2.Show(False) self.frame3 = Trans(parent=None, title='上传成功', size=(50, 20)) self.frame3.Center() self.frame3.Show(False) self.frame4 = Trans(parent=None, title='上传失败', size=(50, 20)) self.frame4.Center() self.frame4.Show(False) self.frame5 = Trans(parent=None, title='每分钟限制上传20张,请等待冷却', size=(200, 20)) self.frame5.Center() self.frame5.Show(False)
def __init__(self, parent, imagePath): Panel.__init__(self, parent) self._hbox = BoxSizer(HORIZONTAL) self._grid_layout = FlexGridSizer(1, 2, 1, 1) # self._grid_layout = GridBagSizer(2, 1) self._configurationAndImportPanel = ConfigurationAndImportPanel(self) self._bitmapPanel = BitmapPanel(self, imagePath) self._grid_layout.AddMany([(self._configurationAndImportPanel, 1, LEFT), (self._bitmapPanel, 1, EXPAND)]) self._grid_layout.AddGrowableCol(1, 1) self._grid_layout.AddGrowableRow(0, 1) self._hbox.Add(self._grid_layout, proportion=1, flag=ALL | EXPAND, border=0) self.SetSizer(self._hbox)
def __init__(self, parent, file_path, load_file=False): Panel.__init__(self, parent) self.grandparent = self.GetGrandParent() self.__file_path = file_path sizer = BoxSizer(VERTICAL) self.txt_test_file_path = TextCtrl(self, value=self.__file_path, style=TE_READONLY) sizer.Add(self.txt_test_file_path, 0, flag=FLAG_ALL_AND_EXPAND) self.txt_content = TextCtrl(self, style=TE_MULTILINE | HSCROLL) self.txt_content.Bind(EVT_KEY_DOWN, self.__on_text_change) if load_file: self.txt_content.LoadFile(self.__file_path) font_size = self.txt_content.GetFont().GetPointSize() self.txt_content.SetFont( Font(font_size, FONTFAMILY_TELETYPE, NORMAL, NORMAL)) sizer.Add(self.txt_content, 1, flag=FLAG_ALL_AND_EXPAND) self.SetSizer(sizer)
def __init__(self, parent, id, title): # zavolání konstruktoru předka (kompatibilní s Pythonem 2.x) super(MainFrame, self).__init__(parent, id, title, size=(320, 240)) # vytvoření panelu panel = Panel(self, ID_ANY) # vytvoření tlačítka s jeho vložením do panelu x = y = 20 button = Button(panel, ID_ANY, "Press me", (x, y)) # zobrazení hlavního okna aplikace self.Show(True)
def __init__(self, parent, file_path, load_file=False): Panel.__init__(self, parent) self.grandparent = self.GetGrandParent() self.__file_path = file_path sizer = BoxSizer(VERTICAL) self.txt_test_file_path = TextCtrl(self, value=self.__file_path, style=TE_READONLY) sizer.Add(self.txt_test_file_path, 0, flag=FLAG_ALL_AND_EXPAND) self.txt_content = TextCtrl(self, style=TE_MULTILINE | HSCROLL) self.txt_content.Bind(EVT_KEY_DOWN, self.__on_text_change) if load_file: self.txt_content.LoadFile(self.__file_path) font_size = self.txt_content.GetFont().GetPointSize() self.txt_content.SetFont(Font(font_size, FONTFAMILY_TELETYPE, NORMAL, NORMAL)) sizer.Add(self.txt_content, 1, flag=FLAG_ALL_AND_EXPAND) self.SetSizer(sizer)
def __init__(self, parent, id, title): # zavolání konstruktoru předka (kompatibilní s Pythonem 2.x) super(MainFrame, self).__init__(parent, id, title, size=(320, 240)) # vytvoření panelu panel = Panel(self, ID_ANY) # vytvoření tlačítka s jeho vložením do panelu x = y = 20 button = Button(panel, ID_ANY, "Press me", (x, y)) button.Bind(EVT_BUTTON, onButtonPress) # navázání metody na událost EVT_CLOSE self.Bind(EVT_CLOSE, self.onClose) # zobrazení hlavního okna aplikace self.Show(True)
def __init__(self, parent: Window, wxID: int, title: str): """ Args: parent: parent window wxID: wx ID of this frame title: Title to display """ super().__init__(parent, wxID, title, DefaultPosition, Size(FrameWidth, FrameHeight)) self.logger: Logger = getLogger(__name__) # iconFileName: str = resource_filename(IMAGE_RESOURCES_PACKAGE, 'pyut.ico') # icon: Icon = Icon(iconFileName, BITMAP_TYPE_ICO) # # self.SetIcon(icon) if sysPlatform != PyutConstants.THE_GREAT_MAC_PLATFORM: fileName: str = PyutUtils.getResourcePath( packageName=IMAGE_RESOURCES_PACKAGE, fileName='pyut.ico') icon: Icon = Icon(fileName, BITMAP_TYPE_ICO) self.SetIcon(icon) self.Center(BOTH) longTextStr: str = PyutUtils.retrieveResourceText( ResourceTextType.KUDOS_TEXT_TYPE) self._textToShow: List[str] = longTextStr.split('\n') # Animation panel self._panel: Panel = Panel(self, ID_ANY, size=(FrameWidth, FrameHeight)) # Picture and text # bmp = Bitmap("img" + os.sep + "pyut.bmp", BITMAP_TYPE_BMP) # fileName = resource_filename(IMAGE_RESOURCES_PACKAGE, 'pyut.bmp') fileName: str = PyutUtils.getResourcePath(IMAGE_RESOURCES_PACKAGE, 'pyut.png') # bmp = Bitmap(fileName, BITMAP_TYPE_PNG) self._picture: StaticBitmap = StaticBitmap( self, ID_ANY, ImgPyut.embeddedImage.GetBitmap()) summaryText: str = "2020 The PyUt team and Humberto Sanchez II.\nPublished under the GNU General Public License" self._label: StaticText = StaticText(self, ID_ANY, summaryText, style=CAPTION) # Main sizer self.SetAutoLayout(True) sizer = BoxSizer(VERTICAL) sizer.Add(self._picture, 0, ALL | ALIGN_CENTER, 5) sizer.Add(self._panel, 1, ALL | ALIGN_CENTER, 5) sizer.Add(self._label, 0, ALL | ALIGN_CENTER, 5) btnOk: Button = Button(self, ID_OK, "&Ok") sizer.Add(btnOk, 0, ALL | ALIGN_CENTER, 5) self.SetSizer(sizer) sizer.Fit(self) self._textPosition = 0.0 # Current position self._timer: Timer = Timer(self) self.Bind(EVT_TIMER, self._onTimer, self._timer) self.Bind(EVT_BUTTON, self._onOk, btnOk) self._panel.Bind(EVT_PAINT, self.OnRefreshPanel) self.Bind(EVT_CLOSE, self._onOk)
def __init__(self, *args, **kwargs): Panel.__init__(self, *args, **kwargs) sizer = GridBagSizer(5, 5) row = 0 col = 0 self.cb_html_output = CheckBox(self, label=u'Report in HTML') self.cb_html_output.Bind(EVT_CHECKBOX, self.__on_check) sizer.Add(self.cb_html_output, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) col += 1 self.txt_html_report = TextCtrl(self, style=TE_READONLY) self.txt_html_report.Disable() sizer.Add(self.txt_html_report, pos=(row, col), span=(1, 3), flag=FLAG_ALL_AND_EXPAND) col += 3 self.btn_select_html = Button(self, label=u'Select HTML file') self.btn_select_html.Disable() self.btn_select_html.Bind(EVT_BUTTON, self.__on_select_file) sizer.Add(self.btn_select_html, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) row += 1 col = 0 self.cb_xml_output = CheckBox(self, label=u'Report in XML') self.cb_xml_output.Bind(EVT_CHECKBOX, self.__on_check) sizer.Add(self.cb_xml_output, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) col += 1 self.txt_xml_report = TextCtrl(self, style=TE_READONLY) self.txt_xml_report.Disable() sizer.Add(self.txt_xml_report, pos=(row, col), span=(1, 3), flag=FLAG_ALL_AND_EXPAND) col += 3 self.btn_select_xml = Button(self, label=u'Select XML file') self.btn_select_xml.Disable() self.btn_select_xml.Bind(EVT_BUTTON, self.__on_select_file) sizer.Add(self.btn_select_xml, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) row += 1 col = 0 self.cb_options = CheckBox(self, label=u'Additional options') self.cb_options.Bind(EVT_CHECKBOX, self.__on_check) sizer.Add(self.cb_options, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) col += 1 self.txt_options = TextCtrl(self) self.txt_options.Disable() sizer.Add(self.txt_options, pos=(row, col), span=(1, 3), flag=FLAG_ALL_AND_EXPAND) col += 3 self.btn_nose_help = Button(self, label=u'Show help') self.btn_nose_help.Bind(EVT_BUTTON, self.__on_show_help) sizer.Add(self.btn_nose_help, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) row += 1 col = 0 self.btn_load_tests_from_files = Button(self, label=u'Load tests from files') self.btn_load_tests_from_files.Bind(EVT_BUTTON, self.__load_tests_from_files) sizer.Add(self.btn_load_tests_from_files, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) col += 1 self.btn_load_tests_from_dir = Button( self, label=u'Load tests from directory') self.btn_load_tests_from_dir.Bind(EVT_BUTTON, self.__load_tests_from_directory) sizer.Add(self.btn_load_tests_from_dir, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) col += 1 dummy_label = StaticText(self) sizer.Add(dummy_label, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) col += 1 self.cb_browser = Choice(self, choices=Browser.get_supported_browsers()) self.cb_browser.Select(0) sizer.Add(self.cb_browser, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) col += 1 self.btn_run = Button(self, label=u'Run test cases') self.btn_run.Bind(EVT_BUTTON, self.__run_tests) sizer.Add(self.btn_run, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) row += 1 col = 0 window = SplitterWindow(self, style=SP_3D | SP_LIVE_UPDATE) self.tree_ctrl = CustomTreeCtrl( window, style=TR_SINGLE | TR_HAS_BUTTONS | TR_AUTO_CHECK_CHILD | TR_AUTO_CHECK_PARENT | TR_AUTO_TOGGLE_CHILD) self.tree_ctrl.SetBackgroundColour(self.GetBackgroundColour()) self.tree_ctrl.SetForegroundColour(self.GetForegroundColour()) self.tree_ctrl.Bind(EVT_TREE_ITEM_CHECKED, self.__on_tree_check) self.txt_ctrl = TextCtrl(window, style=TE_MULTILINE | TE_READONLY | HSCROLL | VSCROLL) font_size = self.txt_ctrl.GetFont().GetPointSize() self.txt_ctrl.SetFont( Font(font_size, FONTFAMILY_TELETYPE, NORMAL, NORMAL)) window.SplitVertically(self.tree_ctrl, self.txt_ctrl) sizer.Add(window, pos=(row, col), span=(1, 5), flag=FLAG_ALL_AND_EXPAND) sizer.AddGrowableCol(2, 1) sizer.AddGrowableRow(row, 1) self.SetSizerAndFit(sizer)
def __init__(self, parent): Panel.__init__(self, parent) self.grid = Grids.Main(self) self.BackgroundColour = RED
def __init__(self, parent): Panel.__init__(self, parent)
def __init__(self, *args, **kwargs): Panel.__init__(self, *args, **kwargs) sizer = GridBagSizer(5, 5) row = 0 col = 0 self.cb_html_output = CheckBox(self, label=u'Report in HTML') self.cb_html_output.Bind(EVT_CHECKBOX, self.__on_check) sizer.Add(self.cb_html_output, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) col += 1 self.txt_html_report = TextCtrl(self, style=TE_READONLY) self.txt_html_report.Disable() sizer.Add(self.txt_html_report, pos=(row, col), span=(1, 3), flag=FLAG_ALL_AND_EXPAND) col += 3 self.btn_select_html = Button(self, label=u'Select HTML file') self.btn_select_html.Disable() self.btn_select_html.Bind(EVT_BUTTON, self.__on_select_file) sizer.Add(self.btn_select_html, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) row += 1 col = 0 self.cb_xml_output = CheckBox(self, label=u'Report in XML') self.cb_xml_output.Bind(EVT_CHECKBOX, self.__on_check) sizer.Add(self.cb_xml_output, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) col += 1 self.txt_xml_report = TextCtrl(self, style=TE_READONLY) self.txt_xml_report.Disable() sizer.Add(self.txt_xml_report, pos=(row, col), span=(1, 3), flag=FLAG_ALL_AND_EXPAND) col += 3 self.btn_select_xml = Button(self, label=u'Select XML file') self.btn_select_xml.Disable() self.btn_select_xml.Bind(EVT_BUTTON, self.__on_select_file) sizer.Add(self.btn_select_xml, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) row += 1 col = 0 self.cb_options = CheckBox(self, label=u'Additional options') self.cb_options.Bind(EVT_CHECKBOX, self.__on_check) sizer.Add(self.cb_options, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) col += 1 self.txt_options = TextCtrl(self) self.txt_options.Disable() sizer.Add(self.txt_options, pos=(row, col), span=(1, 3), flag=FLAG_ALL_AND_EXPAND) col += 3 self.btn_nose_help = Button(self, label=u'Show help') self.btn_nose_help.Bind(EVT_BUTTON, self.__on_show_help) sizer.Add(self.btn_nose_help, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) row += 1 col = 0 self.btn_load_tests_from_files = Button(self, label=u'Load tests from files') self.btn_load_tests_from_files.Bind(EVT_BUTTON, self.__load_tests_from_files) sizer.Add(self.btn_load_tests_from_files, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) col += 1 self.btn_load_tests_from_dir = Button(self, label=u'Load tests from directory') self.btn_load_tests_from_dir.Bind(EVT_BUTTON, self.__load_tests_from_directory) sizer.Add(self.btn_load_tests_from_dir, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) col += 1 dummy_label = StaticText(self) sizer.Add(dummy_label, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) col += 1 self.cb_browser = Choice(self, choices=Browser.get_supported_browsers()) self.cb_browser.Select(0) sizer.Add(self.cb_browser, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) col += 1 self.btn_run = Button(self, label=u'Run test cases') self.btn_run.Bind(EVT_BUTTON, self.__run_tests) sizer.Add(self.btn_run, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) row += 1 col = 0 window = SplitterWindow(self, style=SP_3D | SP_LIVE_UPDATE) self.tree_ctrl = CustomTreeCtrl(window, style=TR_SINGLE | TR_HAS_BUTTONS | TR_AUTO_CHECK_CHILD | TR_AUTO_CHECK_PARENT | TR_AUTO_TOGGLE_CHILD) self.tree_ctrl.SetBackgroundColour(self.GetBackgroundColour()) self.tree_ctrl.SetForegroundColour(self.GetForegroundColour()) self.tree_ctrl.Bind(EVT_TREE_ITEM_CHECKED, self.__on_tree_check) self.txt_ctrl = TextCtrl(window, style=TE_MULTILINE | TE_READONLY | HSCROLL | VSCROLL) font_size = self.txt_ctrl.GetFont().GetPointSize() self.txt_ctrl.SetFont(Font(font_size, FONTFAMILY_TELETYPE, NORMAL, NORMAL)) window.SplitVertically(self.tree_ctrl, self.txt_ctrl) sizer.Add(window, pos=(row, col), span=(1, 5), flag=FLAG_ALL_AND_EXPAND) sizer.AddGrowableCol(2, 1) sizer.AddGrowableRow(row, 1) self.SetSizerAndFit(sizer)
def __create_widgets(self): panel = Panel(self) sizer = GridBagSizer(5, 5) row = 0 col = 0 label = StaticText(panel, label=u'Root folder:') sizer.Add(label, pos=(row, col)) col += 1 col_width = 4 self.__txt_root_path = TextCtrl(panel) sizer.Add(self.__txt_root_path, pos=(row, col), span=(1, col_width), flag=FLAG_ALL_AND_EXPAND) col += col_width self.__btn_set_root = Button(panel, label=u'Set root folder') self.__btn_set_root.Bind(EVT_BUTTON, self.__set_root_folder) sizer.Add(self.__btn_set_root, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) row += 1 col = 0 label = StaticText(panel, label=u'Url:') sizer.Add(label, pos=(row, col)) col += 1 self.__txt_url = TextCtrl( panel, value=u'https://www.google.com/') # TODO: remove url sizer.Add(self.__txt_url, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) col += 1 label = StaticText(panel, label=u'Browser:') sizer.Add(label, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) col += 1 self.__cb_browser = Choice(panel, choices=Browser.get_supported_browsers()) self.__cb_browser.Select(0) sizer.Add(self.__cb_browser, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) col += 1 self.bth_open_url = Button(panel, label=u'Open url') self.bth_open_url.Bind(EVT_BUTTON, self.__open_url) sizer.Add(self.bth_open_url, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) col += 1 self.bth_close_url = Button(panel, label=u'Close browser') self.bth_close_url.Bind(EVT_BUTTON, self.__close_browser) sizer.Add(self.bth_close_url, pos=(row, col), flag=FLAG_ALL_AND_EXPAND) row += 1 col = 0 tabs = Tabs(panel, [(GeneratorTab, "Generator"), (EditorTab, "Editor"), (TestRunnerTab, "Test runner"), (SelectorFinderTab, "Selector finder")]) sizer.Add(tabs, pos=(row, col), span=(1, 6), flag=FLAG_ALL_AND_EXPAND) sizer.AddGrowableCol(1, 1) sizer.AddGrowableRow(2, 1) panel.SetSizer(sizer) self.Layout()
def __init__(self, parent): Panel.__init__(self, parent) t = StaticText(self, -1, "This is a PageTddhree object", (60, 200))
class MainWindow(Frame): def __init__(self, *args, **kw): super().__init__(*args, **kw) self.sm = SettingManeger() icon_file = get_data_safety(self.sm.setting, ICON_FILE) if icon_file is not None and exists(icon_file): icon = Icon(find_data_file(icon_file)) self.SetIcon(icon) self.menubar, self.language_menu_item_list = self.create_menubar( self.sm.language_list) self.SetMenuBar(self.menubar) if 0 <= len( self.language_menu_item_list) - 1 <= self.sm.language_index: self.language_menu_item_list[self.sm.language_index].Check() self.panel = Panel(self) self.preview_button = NormalButton(self.panel, label=SHOW_LABEL, size=(40, 40), pos=(10, 10)) self.separeter_line = StaticLine(self.panel, size=(3000, 2)) self.add_button = NormalButton(self.panel, label=ADD_LABEL, size=(40, 40)) self.timer_display = TimerDisplay(self, parent=self.panel) self.contents_display = ContentsDisplay(self, self.timer_display, parent=self.panel, style=ALWAYS_SHOW_SB) self.preview_window = PreviewWindow(self.sm, self.contents_display, parent=self) welcome_contents = self.sm.welcome_contents_list[ self.sm. language_index] if self.sm.welcome_contents_list is not None else ERROR_MESSAGE self.welcome_window = ScrolledWindow(welcome_contents, parent=self) about_contents = self.sm.about_contents_list[ self.sm. language_index] if self.sm.about_contents_list is not None else ERROR_MESSAGE self.about_window = ScrolledWindow(about_contents, parent=self) self.reset() self.change_language() self.connect() self.set_color() self.layout() def connect(self): self.menubar.Bind(EVT_MENU, lambda x: self.contents_display.export(), id=ID_FILE_EXPORT) self.menubar.Bind(EVT_MENU, lambda x: self.Destroy(), id=ID_FILE_EXIT) self.menubar.Bind(EVT_MENU, lambda x: self.run(), id=ID_EDIT_TIMER_START) self.menubar.Bind(EVT_MENU, lambda x: self.pause(), id=ID_EDIT_TIMER_PAUSE) self.menubar.Bind(EVT_MENU, lambda x: self.reset(), id=ID_EDIT_TIMER_RESET) self.menubar.Bind(EVT_MENU, lambda x: self.new(), id=ID_EDIT_TIME_STAMP_NEW) self.menubar.Bind(EVT_MENU, lambda x: self.show_preview(), id=ID_VIEW_SHOW_PREVIEW) self.menubar.Bind(EVT_MENU, lambda x: self.welcome_window.Show(), id=ID_HELP_WELCOME) self.menubar.Bind(EVT_MENU, lambda x: open_github(), id=ID_HELP_VISIT_GITHUB) self.menubar.Bind(EVT_MENU, lambda x: self.about_window.Show(), id=ID_HELP_ABOUT) self.timer_display.start_btn.Bind(EVT_BUTTON, lambda x: self.run()) self.timer_display.pause_btn.Bind(EVT_BUTTON, lambda x: self.pause()) self.timer_display.reset_btn.Bind(EVT_BUTTON, lambda x: self.reset()) self.preview_button.Bind(EVT_BUTTON, lambda x: self.show_preview()) self.add_button.Bind(EVT_BUTTON, lambda x: self.new()) def set_color(self): pass def layout(self): vbox = BoxSizer(VERTICAL) vbox.Add(self.timer_display, 0, EXPAND) vbox.Add(self.contents_display, 1, EXPAND | LEFT, 10) vbox.Add(self.separeter_line, 0, TOP, 5) vbox.Add(self.add_button, 0, ALIGN_CENTER | TOP | BOTTOM, 5) self.panel.SetSizer(vbox) self.Show() def create_menubar(self, language_list, style=0): modifier = 'Ctrl' if name == 'nt' else 'Opt' menubar = MenuBar() menubar_file = Menu() menubar_file.Append(ID_FILE_EXPORT, '&Export\t' + modifier + 'E') menubar_file.AppendSeparator() menubar_file.Append(ID_FILE_EXIT, 'E&xit\t' + modifier + 'W') menubar_edit = Menu() menubar_edit_timer = Menu() menubar_edit.AppendSubMenu(menubar_edit_timer, '&Timer') menubar_edit_timer.Append(ID_EDIT_TIMER_START, '&Start\t' + modifier + 'S') menubar_edit_timer.Append(ID_EDIT_TIMER_PAUSE, '&Pause\t' + modifier + 'P') menubar_edit_timer.Append(ID_EDIT_TIMER_RESET, '&Reset\t' + modifier + 'R') menubar_edit_time_stamp = Menu() menubar_edit.AppendSubMenu(menubar_edit_time_stamp, 'Time &Stamp') menubar_edit_time_stamp.Append(ID_EDIT_TIME_STAMP_NEW, '&New\t' + modifier + 'N') menubar_view = Menu() menubar_view.AppendCheckItem(ID_VIEW_SHOW_PREVIEW, 'Show &Preview\t' + modifier + 'Shift+P') menubar_view_language = Menu() language_menu_item_list = [] if language_list is not None: menubar_view_language.Bind(EVT_MENU, lambda x: self.change_language()) menubar_view.AppendSubMenu(menubar_view_language, '&Language') for n in range(len(language_list)): language_menu_item_list.append( menubar_view_language.AppendRadioItem( ID_ANY, language_list[n]['Language Setting'])) menubar_help = Menu() menubar_help.Append(ID_HELP_WELCOME, '&Welcome\t' + modifier + 'Shift+H') menubar_help.AppendSeparator() menubar_help.Append(ID_HELP_VISIT_GITHUB, 'Visit &Github') menubar_help.AppendSeparator() menubar_help.Append(ID_HELP_ABOUT, '&About') menubar.Append(menubar_file, '&File') menubar.Append(menubar_edit, '&Edit') menubar.Append(menubar_view, '&View') menubar.Append(menubar_help, '&Help') return menubar, language_menu_item_list def change_language(self): modifier = 'Ctrl' if name == 'nt' else 'Opt' self.sm.language_index = self.selected_language selected_language = self.sm.selected_language file_ = get_data_safety(selected_language, 'File', '&File') export = get_data_safety(selected_language, 'Export', '&Export\t' + modifier + 'E') exit_ = get_data_safety(selected_language, 'Exit', 'E&xit\t' + modifier + 'W') self.menubar.SetMenuLabel(ID_FILE, file_) self.menubar.FindItemById(ID_FILE_EXPORT).SetItemLabel(export) self.menubar.FindItemById(ID_FILE_EXIT).SetItemLabel(exit_) edit = get_data_safety(selected_language, 'Edit', '&Edit') timer = get_data_safety(selected_language, 'Timer', '&Timer') start = get_data_safety(selected_language, 'Start', '&Start\t' + modifier + 'S') pause = get_data_safety(selected_language, 'Pause', '&Pause\t' + modifier + 'P') reset = get_data_safety(selected_language, 'Reset', '&Reset\t' + modifier + 'R') time_stamp = get_data_safety(selected_language, 'Time Stamp', 'Time &Stamp') new = get_data_safety(selected_language, 'New', '&New\t' + modifier + 'N') self.menubar.SetMenuLabel(ID_EDIT, edit) self.menubar.GetMenu(ID_EDIT).FindItemByPosition(0).SetItemLabel(timer) self.menubar.FindItemById(ID_EDIT_TIMER_START).SetItemLabel(start) self.menubar.FindItemById(ID_EDIT_TIMER_PAUSE).SetItemLabel(pause) self.menubar.FindItemById(ID_EDIT_TIMER_RESET).SetItemLabel(reset) self.menubar.GetMenu(ID_EDIT).FindItemByPosition(1).SetItemLabel( time_stamp) self.menubar.FindItemById(ID_EDIT_TIME_STAMP_NEW).SetItemLabel(new) view = get_data_safety(selected_language, 'View', '&View') show_preview = get_data_safety( selected_language, 'Show Preview', 'Show &Preview\t' + modifier + 'Shift+P') language = get_data_safety(selected_language, 'Language', '&Language') self.menubar.SetMenuLabel(ID_VIEW, view) self.menubar.FindItemById(ID_VIEW_SHOW_PREVIEW).SetItemLabel( show_preview) self.menubar.GetMenu(ID_VIEW).FindItemByPosition(1).SetItemLabel( language) help_ = get_data_safety(selected_language, 'Help', '&Help') welcome = get_data_safety(selected_language, 'Welcome', '&Welcome\t' + modifier + 'Shift+H') visit_github = get_data_safety(selected_language, 'Visit Github', 'Visit &Github') about = get_data_safety(selected_language, 'About', '&About') self.menubar.SetMenuLabel(ID_HELP, help_) self.menubar.FindItemById(ID_HELP_WELCOME).SetItemLabel(welcome) self.menubar.FindItemById(ID_HELP_VISIT_GITHUB).SetItemLabel( visit_github) self.menubar.FindItemById(ID_HELP_ABOUT).SetItemLabel(about) shown_welcome_window = self.welcome_window.IsShown() self.welcome_window.Destroy(True) welcome_content = self.sm.welcome_contents_list[ self. selected_language] if self.sm.welcome_contents_list is not None else ERROR_MESSAGE self.welcome_window = ScrolledWindow(welcome_content, parent=self) self.welcome_window.Show(shown_welcome_window) shown_about_window = self.about_window.IsShown() self.about_window.Destroy(True) about_content = self.sm.about_contents_list[ self. selected_language] if self.sm.about_contents_list is not None else ERROR_MESSAGE self.about_window = ScrolledWindow(about_content, parent=self) self.about_window.Show(shown_about_window) shown_preview_window = self.preview_window.IsShown() self.preview_window.Destroy(True) self.preview_window = PreviewWindow(self.sm, self.contents_display, parent=self) self.preview_window.Show(shown_preview_window) def run(self): self.add_button.Enable() self.preview_button.Enable() self.menubar.FindItemById(ID_FILE_EXPORT).Enable(True) self.menubar.FindItemById(ID_EDIT_TIMER_START).Enable(False) self.menubar.FindItemById(ID_EDIT_TIMER_PAUSE).Enable(True) self.menubar.FindItemById(ID_EDIT_TIMER_RESET).Enable(True) self.menubar.FindItemById(ID_EDIT_TIME_STAMP_NEW).Enable(True) self.menubar.FindItemById(ID_VIEW_SHOW_PREVIEW).Enable(True) self.timer_display.start() def pause(self): self.menubar.FindItemById(ID_EDIT_TIMER_START).Enable(True) self.menubar.FindItemById(ID_EDIT_TIMER_PAUSE).Enable(False) self.menubar.FindItemById(ID_EDIT_TIMER_RESET).Enable(True) self.timer_display.pause() def reset(self): self.menubar.FindItemById(ID_FILE_EXPORT).Enable(False) self.menubar.FindItemById(ID_EDIT_TIMER_START).Enable(True) self.menubar.FindItemById(ID_EDIT_TIMER_PAUSE).Enable(False) self.menubar.FindItemById(ID_EDIT_TIMER_RESET).Enable(False) self.menubar.FindItemById(ID_EDIT_TIME_STAMP_NEW).Enable(False) self.menubar.FindItemById(ID_VIEW_SHOW_PREVIEW).Enable(False) if self.preview_window.IsShown(): self.show_preview() self.add_button.Disable() self.preview_button.Disable() self.timer_display.reset() self.contents_display.reset() def new(self): self.contents_display.add_contents_panel() self.preview_window.update() def show_preview(self): menu_show_preview = self.menubar.FindItemById(ID_VIEW_SHOW_PREVIEW) if self.preview_window.IsShown(): self.preview_button.SetLabel(SHOW_LABEL) menu_show_preview.Check(False) self.preview_window.Hide() else: self.preview_button.SetLabel(HIDE_LABEL) menu_show_preview.Check(True) self.preview_window.update() self.preview_window.Show() def Destroy(self): self.sm.save_setting() return super().Destroy() @property def selected_language(self): for n, menu_item in enumerate(self.language_menu_item_list): if menu_item.IsChecked(): return n
class PreviewWindow(Frame): def __init__(self, setting_maneger: SettingManeger, contents_display: ContentsDisplay, *args, **kw): super().__init__(*args, **kw) icon_bundle = self.GetParent().GetIcons() if not icon_bundle.IsEmpty(): self.SetIcon(icon_bundle.GetIconByIndex(0)) self.sm = setting_maneger self.main_window = self.GetParent() self.contents_display = contents_display self.panel = Panel(self) space_length, wrap_length, newline_count = self.sm.formmat_parameter self.space_lbl = NormalText(self.panel) self.space_display = IncrementWidget(space_length, min_=0, parent=self.panel, listener=self.check) self.wrap_lbl = NormalText(self.panel) self.wrap_length_display = IncrementWidget(wrap_length, parent=self.panel, listener=self.check) self.newline_lbl = NormalText(self.panel) self.newline_display = IncrementWidget(newline_count, min_=0, parent=self.panel, listener=self.check) self.entry = PreviewEntry(self.panel, style=TE_MULTILINE | TE_READONLY | HSCROLL) self.change_language() self.set_color() self.layout() self.update() self.contents_display.Bind(EVT_TEXT, self.update) def layout(self): master_grid = FlexGridSizer(rows=2, cols=1, gap=(0, 0)) grid = GridSizer(rows=2, cols=3, gap=(0, 0)) grid.Add(self.space_lbl, 0, ALIGN_CENTER) grid.Add(self.wrap_lbl, 0, ALIGN_CENTER) grid.Add(self.newline_lbl, 0, ALIGN_CENTER) grid.Add(self.space_display, 0, ALIGN_CENTER) grid.Add(self.wrap_length_display, 0, ALIGN_CENTER) grid.Add(self.newline_display, 0, ALIGN_CENTER) master_grid.Add(grid, 0, ALIGN_CENTER | ALL, 10) master_grid.Add(self.entry, 1, EXPAND) master_grid.AddGrowableRow(1) master_grid.AddGrowableCol(0) self.panel.SetSizer(master_grid) self.panel.Fit() self.Fit() width, height = self.GetSize() height = WINDOW_HEIGHT self.SetSize(-1, -1, width, height) def set_color(self): self.entry.SetBackgroundColour('#eee') def change_language(self): language = self.sm.selected_language space_length_lbl = language[SPACE_LENGTH_LABEL] wrap_length_lbl = language[WRAP_LENGTH_LABEL] newline_count_lbl = language[NEWLINE_COUNT_LABEL] self.space_lbl.SetLabel(space_length_lbl) self.wrap_lbl.SetLabel(wrap_length_lbl) self.newline_lbl.SetLabel(newline_count_lbl) self.panel.Layout() self.Layout() def check(self): space = self.space_display.value max_len = self.wrap_length_display.value margin = 2 indent = 8 + space if max_len - indent < margin: max_len = indent + margin self.wrap_length_display.set_value(max_len) if indent + margin == max_len: self.wrap_length_display.left_btn.Disable() else: self.wrap_length_display.left_btn.Enable() self.panel.Layout() self.sm.set_parameter([ self.space_display.value, self.wrap_length_display.value, self.newline_display.value ]) self.update() def update(self, event=None): space_length, wrap_length, newline_count = self.sm.formmat_parameter output = self.contents_display.convert_string(space_length, wrap_length, newline_count) self.entry.SetValue(output) if event is not None: event.Skip() def Destroy(self, is_destroy=False): self.Hide() return False