Exemple #1
0
    def __init__(self, parent):
        Panel.__init__(self, parent)
        sizer = GridBagSizer(5, 5)
        self.SetSizer(sizer)

        self.__cur_po_class = None
        self.__create_widgets()
Exemple #2
0
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
Exemple #3
0
    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)
Exemple #4
0
    def __init__(self, parent):
        Panel.__init__(self, parent)

        self.main_frame = self.GetTopLevelParent()
        self.po_fields = None

        self.__create_widgets()
Exemple #5
0
    def __init__(self, parent):
        Panel.__init__(self, parent)

        self.main_frame = self.GetTopLevelParent()
        self.po_fields = None

        self.__create_widgets()
Exemple #6
0
    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)
Exemple #8
0
    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)
Exemple #9
0
    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)
Exemple #10
0
    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)
Exemple #11
0
    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()
Exemple #12
0
 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
Exemple #13
0
    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)
Exemple #15
0
    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)
Exemple #17
0
 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
Exemple #19
0
    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)
Exemple #20
0
 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
Exemple #21
0
    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)
Exemple #22
0
    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)
Exemple #23
0
    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)
Exemple #25
0
    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)
Exemple #26
0
    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)
Exemple #27
0
    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)
Exemple #28
0
    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)
Exemple #29
0
    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
Exemple #32
0
 def __init__(self, parent):
     Panel.__init__(self, parent)
Exemple #33
0
    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)
Exemple #34
0
    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()
Exemple #35
0
 def __init__(self, parent):
     Panel.__init__(self, parent)
     t = StaticText(self, -1, "This is a PageTddhree object", (60, 200))
Exemple #36
0
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
Exemple #37
0
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