예제 #1
0
    def __init__(self, parent, manager):
        wx.Panel.__init__(self, parent)
        cmdrui.ControllerHandler.__init__(self)

        sizer = wx.BoxSizer(wx.VERTICAL)
        self.textCtrl = wx.TextCtrl(self, \
            style = wx.TE_PROCESS_ENTER | wx.TE_PROCESS_TAB)
        sizer.Add(self.textCtrl, 0, wx.EXPAND)

        self.listBox = wx.ListBox(self, style=wx.LB_SINGLE)
        sizer.Add(self.listBox, 1, wx.EXPAND)

        if 0:
            self.logWnd = wx.TextCtrl(self,
                                      size=(0, 150),
                                      style=wx.TE_MULTILINE)
            wx.Log_SetActiveTarget(wx.LogTextCtrl(self.logWnd))
            sizer.Add(self.logWnd, 1, wx.EXPAND)

        font = self.textCtrl.GetFont()
        font.SetPointSize(14)
        self.textCtrl.SetFont(font)
        self.listBox.SetFont(font)

        self.SetSizer(sizer)
        sizer.SetSizeHints(self)
예제 #2
0
 def initUI(self):
     # Create empty connection object
     self.vpn = vpnConnection()
     # Begin background thread
     thread = threading.Thread(target=self.bgThread)
     thread.setDaemon(True)
     thread.start()
     # Create toolbar
     toolbar = wx.ToolBar(self, style=wx.TB_VERTICAL)
     tbConn = toolbar.AddTool(wx.ID_OPEN, '', wx.Bitmap(self.path + '/lib/connect.png'), shortHelp='Connect')
     tbDisc = toolbar.AddTool(wx.ID_CLOSE, '', wx.Bitmap(self.path + '/lib/disconnect.png'), shortHelp='Disconnect')
     tbClear = toolbar.AddTool(wx.ID_CLEAR, '', wx.Bitmap(self.path + '/lib/clear.png'), shortHelp='Clear Log')
     tbExit = toolbar.AddTool(wx.ID_EXIT, '', wx.Bitmap(self.path + '/lib/exit.png'), shortHelp='Exit')
     toolbar.Realize()
     self.log = wx.TextCtrl(self, style = wx.TE_MULTILINE | wx.TE_READONLY)
     wx.Log.SetActiveTarget(wx.LogTextCtrl(self.log))
     sizer = wx.BoxSizer(wx.HORIZONTAL)
     sizer.Add(toolbar, 0, wx.EXPAND)
     sizer.Add(self.log, 1, wx.EXPAND)
     self.SetAutoLayout(True)
     self.Bind(wx.EVT_TOOL, self.onConnect, tbConn)
     self.Bind(wx.EVT_TOOL, self.onDisconnect, tbDisc)
     self.Bind(wx.EVT_TOOL, self.onClear, tbClear)
     self.Bind(wx.EVT_TOOL, self.onQuit, tbExit)
     self.SetSizer(sizer)
     self.SetSize((500,400))
     self.SetTitle('OpenConnect SSL VPN Client')
     self.Centre()
     self.Show()
예제 #3
0
 def MakeLogWindow(self, container):
     log = wx.TextCtrl(container,
                       -1,
                       style=wx.TE_MULTILINE | wx.TE_READONLY | wx.HSCROLL)
     wx.Log_SetActiveTarget(wx.LogTextCtrl(log))
     wx.LogMessage('window handle: %s' % self.GetHandle())
     return log
예제 #4
0
 def _create_log_view(self):
     self._log = wx.TextCtrl(self.main_panel,
                             -1,
                             style=wx.TE_MULTILINE | wx.TE_READONLY
                             | wx.HSCROLL)
     wx.Log_SetActiveTarget(wx.LogTextCtrl(self._log))
     pass
예제 #5
0
 def __createLogWin(self, evt=None):
     # to bypass wx.Log
     if self._logWin:
         self._logWin.Destroy()
     self._logWin = wx.Frame(None)
     self._logWin.Bind(wx.EVT_CLOSE, self.__createLogWin)
     wx.Log.SetActiveTarget(wx.LogTextCtrl(wx.TextCtrl(self._logWin, style=wx.TE_MULTILINE)))
예제 #6
0
    def OnInit(self):
        try:
            self.SetAppName('nsqrCommander')

            global appDataFolder
            appDataFolder = '../data/'

            cmdr.Manager.commandsFolder = './cmdr/commands/'
            sys.stdout = MsgRedirector()
            sys.stderr = ErrorRedirector()

            ui.logWindow = wx.Frame(None, -1, 'pepper - Log Window')
            ui.logWindow.Bind(wx.EVT_CLOSE, self.__onClosingLogWindow)
            logWnd = wx.TextCtrl(ui.logWindow,
                                 size=(0, 150),
                                 style=wx.TE_MULTILINE)
            wx.Log_SetActiveTarget(wx.LogTextCtrl(logWnd))
            ui.logWindow.SetSize((600, 400))
            ui.logWindow.Show()

            print 'log window is activated'

            self.__tbIcon = wx.TaskBarIcon()
            iconFile = appDataFolder + 'app_icon.ico'
            icon = wx.Icon(iconFile, wx.BITMAP_TYPE_ICO)
            if not self.__tbIcon.SetIcon(icon, 'nsqrCommander'):
                print 'Could not set icon.'

            self.Bind(wx.EVT_TASKBAR_LEFT_UP, self.__onEvtTaskbarLeftUp)

            self.__frame = SimplePanelFrame()
            self.__frame.Hide()

        except:
            self.__frame = wx.Frame(None, -1, 'FAILED!')
            logWnd = wx.TextCtrl(self.__frame,
                                 size=(0, 150),
                                 style=wx.TE_MULTILINE)
            wx.Log_SetActiveTarget(wx.LogTextCtrl(logWnd))
            #nsqrPy.printException()
            self.__frame.Show()

        if self.__frame:
            self.SetTopWindow(self.__frame)

        return True
예제 #7
0
    def __init__(self, parent):
        wx.Panel.__init__(self, parent=parent, id=wx.ID_ANY)

        self.log = wx.TextCtrl(self, style=wx.TE_MULTILINE | wx.TE_READONLY)
        wx.Log.SetActiveTarget(wx.LogTextCtrl(self.log))

        sizer = wx.BoxSizer()
        sizer.Add(self.log, 1, wx.EXPAND | wx.ALL, 0)

        self.SetSizer(sizer)
예제 #8
0
    def init_splitter_windows(self):
        self._splitter_top = wx.SplitterWindow(self, style=wx.SP_3D)
        self._splitter_top.SetMinimumPaneSize(1)

        self._splitter_leftmiddle = wx.SplitterWindow(self._splitter_top,
                                                      style=wx.SP_3D)
        self._splitter_leftmiddle.SetMinimumPaneSize(1)

        self._splitter_left = wx.SplitterWindow(self._splitter_leftmiddle,
                                                style=wx.SP_3D)
        self._splitter_left.SetMinimumPaneSize(1)
        self.g.track_tree = TrackTree(parent=self._splitter_left, g=self.g)
        self.g.track_edit = TrackEdit(parent=self._splitter_left, g=self.g)
        self._splitter_left.SplitHorizontally(self.g.track_tree,
                                              self.g.track_edit)
        self._splitter_left.SetSashPosition(self.GetSize().height * 3 // 5,
                                            True)

        self._splitter_middle = wx.SplitterWindow(self._splitter_leftmiddle,
                                                  style=wx.SP_3D)
        self._splitter_middle.SetMinimumPaneSize(1)
        self.g.map_canvas = MapCanvas(parent=self._splitter_middle, g=self.g)
        self.g.track_chart = TrackChart(parent=self._splitter_middle, g=self.g)
        self._splitter_middle.SplitHorizontally(self.g.map_canvas,
                                                self.g.track_chart)
        self._splitter_middle.SetSashPosition(self.GetSize().height * 3 // 4,
                                              True)

        self._splitter_leftmiddle.SplitVertically(self._splitter_left,
                                                  self._splitter_middle)
        self._splitter_leftmiddle.SetSashPosition(
            self.GetSize().width * 1 // 9, True)

        self._splitter_right = wx.SplitterWindow(self._splitter_top,
                                                 style=wx.SP_3D)
        self._splitter_right.SetMinimumPaneSize(1)
        self.g.track_details = wx.TextCtrl(self._splitter_right,
                                           style=wx.TE_MULTILINE
                                           | wx.TE_READONLY | wx.HSCROLL)
        self.g.logger = wx.TextCtrl(self._splitter_right,
                                    style=wx.TE_MULTILINE | wx.TE_READONLY
                                    | wx.HSCROLL)
        wx.Log.SetActiveTarget(wx.LogTextCtrl(self.g.logger))

        self._splitter_right.SplitHorizontally(self.g.track_details,
                                               self.g.logger)
        self._splitter_right.SetSashPosition(self.GetSize().height * 3 // 5,
                                             True)

        self._splitter_top.SplitVertically(self._splitter_leftmiddle,
                                           self._splitter_right)
        self._splitter_top.SetSashPosition(self.GetSize().width * 7 // 8, True)

        self.g.track_tree.Enable(True)
        self.g.track_edit.Enable(False)
예제 #9
0
파일: main.py 프로젝트: wangyangkobe/liukun
 def configureRightPanel(self, panel):
     noteBook = wx.Notebook(panel, -1, style=wx.NB_TOP)
     panelSizer = wx.BoxSizer(wx.VERTICAL)
     
     rulePanel = wx.Panel(noteBook, -1)
     rulePanel.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_FRAMEBK))
     logPanel = wx.Panel(noteBook, -1)
     
     staticBox = wx.StaticBox(rulePanel, -1, u"")
     stacticBoxSizer = wx.StaticBoxSizer(staticBox, wx.VERTICAL)
     
     btnBoxSizer = wx.BoxSizer(wx.HORIZONTAL)
     
     #addBtn = wx.Button(rulePanel, -1, label=u"增加")
     delBtn = wx.Button(rulePanel, -1, label=u"删除")        
     modBtn = wx.Button(rulePanel, -1, label=u"修改")  
               
     #btnBoxSizer.Add(addBtn, 0, wx.ALL, 2)
     btnBoxSizer.Add(delBtn, 0, wx.ALL, 2)
     btnBoxSizer.Add(modBtn, 0, wx.ALL, 2)
     
     self.ruleGrid = RuleGrid.RuleGrid(rulePanel, self.onCheckBoxSelected)
     
     stacticBoxSizer.Add(btnBoxSizer, 0, wx.ALL | wx.CENTER, 0)
     stacticBoxSizer.Add(self.ruleGrid, 1, wx.ALL | wx.CENTER, 5)
     
     rulePanel.SetSizer(stacticBoxSizer)
     
     #addBtn.Bind(wx.EVT_BUTTON, self.clickAddBtn)
     delBtn.Bind(wx.EVT_BUTTON, self.clickDelBtn)
     modBtn.Bind(wx.EVT_BUTTON, self.clickModifyBtn)
     
     
     logTextCtrl = wx.TextCtrl(logPanel, -1, style=(wx.BORDER_NONE | wx.MULTIPLE | wx.TE_READONLY | wx.TE_AUTO_URL))
     logBoxSizer = wx.BoxSizer(wx.VERTICAL)
     logBoxSizer.AddSizer(logTextCtrl, 1, wx.EXPAND)
     logPanel.SetSizer(logBoxSizer)
     
     logTarget = wx.LogTextCtrl(logTextCtrl)
     logTarget.SetTimestamp("%Y-%m-%d %H:%M:%S")
     wx.Log.SetActiveTarget(logTarget)
    
     noteBook.AddPage(rulePanel, u"现有规则", select=True)
     noteBook.AddPage(logPanel, u"日志")
     panelSizer.Add(noteBook, 1, wx.ALL | wx.EXPAND)
     panel.SetSizer(panelSizer)
     pass
예제 #10
0
    def __init__(self, parent):
        pyResManDialogBase.__init__(self, parent)
        
        readernames = pyResManReader.getReaderList()
        self._readernameComboBox.InsertItems(readernames, 0)
        self._readernameComboBox.Select(0)
        
        self.__controller = pyResManController(self)
        self.__logger = wx.LogTextCtrl(self._logTextCtrl)
        
        self._claTextCtrl.SetValue('00')
        self._insTextCtrl.SetValue('A4')
        self._p1TextCtrl.SetValue('04')
        self._p2TextCtrl.SetValue('00')
        self._leTextCtrl.SetValue('00')
        
        self._scriptListCtrl.InsertColumn(0, 'Index', width=50)
        self._scriptListCtrl.InsertColumn(1, 'Command', width=200)
        self._scriptListCtrl.InsertColumn(2, 'Response', width=300)
        self._scriptListCtrl.InsertColumn(3, 'TimeSpent', width=100)
        self._scriptListCtrl.InsertColumn(4, 'DateTime', width=120)

        self._keyDataListCtrl.InsertColumn(0, 'index', width=50)
        self._keyDataListCtrl.InsertColumn(1, 'KVN', width=100)
        self._keyDataListCtrl.InsertColumn(2, 'key index', width=100)
        self._keyDataListCtrl.InsertColumn(3, 'key type', width=100)
        self._keyDataListCtrl.InsertColumn(4, 'key length', width=100)

        self._apduListCtrl.InsertColumn(0, 'Index', width=50)
        self._apduListCtrl.InsertColumn(1, 'Command', width=200)
        self._apduListCtrl.InsertColumn(2, 'Response', width=300)
        self._apduListCtrl.InsertColumn(3, 'TimeSpent', width=100)
        self._apduListCtrl.InsertColumn(4, 'DateTime', width=120)
        
        defaultKeyValue = '404142434445464748494A4B4C4D4E4F'
        self._key1TextCtrl.SetValue(defaultKeyValue)
        self._key2TextCtrl.SetValue(defaultKeyValue)
        self._key3TextCtrl.SetValue(defaultKeyValue)
        self._oldKVNTextCtrl.SetValue('00')
        self._newKVNTextCtrl.SetValue('01')
        
        self._apduListCtrl.Bind(wx.EVT_CONTEXT_MENU, self._apduListCtrlOnContextMenu)
        self._scriptListCtrl.Bind(wx.EVT_CONTEXT_MENU, self._scriptListCtrlOnContextMenu)
예제 #11
0
    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY, title="Maria's Card maker")
        sizer1 = wx.BoxSizer(wx.VERTICAL)
        sizer1.Add(wx.StaticText(self, wx.ID_ANY, "Excel file:"), 0,
                   wx.ALIGN_CENTER_VERTICAL|wx.ALL, 3)
        self.__file_name_ctrl = wx.TextCtrl(self, -1, size=(500, -1))
        sizer1.Add(self.__file_name_ctrl, 0,
                   wx.ALIGN_CENTER_VERTICAL|wx.EXPAND|wx.ALL, 3)
        self.__new_cards = wx.CheckBox(self, wx.ID_ANY,
                                       "Create only new cards")
        sizer1.Add(self.__new_cards, 0, wx.ALL, 3)

        sizer2 = wx.BoxSizer(wx.HORIZONTAL)
        button = wx.Button(self, -1, "Open")
        button.Bind(wx.EVT_BUTTON, self.__on_chose_file)
        sizer2.Add(button, 0, wx.ALL, 3)
        sizer2.AddStretchSpacer(1)
        button = wx.Button(self, wx.ID_ANY, "Run")
        button.Bind(wx.EVT_BUTTON, self.__on_run)
        sizer2.Add(button, 0, wx.ALL, 3)
        sizer1.Add(sizer2, 0, wx.EXPAND)

        # add logger
        style = wx.TE_MULTILINE | wx.TE_READONLY | wx.TE_WORDWRAP
        logger = wx.TextCtrl(self, size=(500, 300),style=style)
        sizer1.Add(logger, 1, wx.ALL|wx.EXPAND, 3)
        logger = wx.LogTextCtrl(logger)
        wx.Log.SetActiveTarget(logger)
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer.Add(sizer1, 1, wx.EXPAND)
        zangoose = Path(__file__).parents[0] / "Zangoose.png"
        print("Opening image: ", str(zangoose))
        image = wx.Image(str(zangoose), wx.BITMAP_TYPE_ANY)
        image = image.Scale(418 // 4, 457 // 4, quality=wx.IMAGE_QUALITY_HIGH)
        image = wx.StaticBitmap(self, -1, wx.Bitmap(image))
        sizer.Add(image, 0, wx.ALL, 3)
        self.SetSizer(sizer)
        self.Fit()
        wx.LogMessage("Ready when you are! Select an Excel file")
예제 #12
0
    def __init__(self, *args, **kw):
        """Initialize the gui here"""
        super().__init__(*args, **kw)

        #  Startup Settings
        self.active_queue = []
        self.genre_pristine = True
        self.project = Project()
        self.default_save_path = ivonet.DEFAULT_SAVE_PATH
        wx.ArtProvider.Push(IvoNetArtProvider())

        self.SetSize((1500, 1200))
        self.SetMinSize((1024, 768))
        self.current_size = self.GetSize()
        self.is_resizing = False

        self.__make_toolbar()
        self.SetMenuBar(MenuBar(self))

        self.CreateStatusBar()
        self.SetStatusText(ivonet.TXT_COPYRIGHT)

        self.status_timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.on_clear_status, self.status_timer)

        vs_main = wx.BoxSizer(wx.VERTICAL)

        self.main_panel = wx.Panel(self, wx.ID_ANY)
        vs_main.Add(self.main_panel, 3, wx.EXPAND, 0)

        vs_main_panel = wx.BoxSizer(wx.VERTICAL)

        hs_main_panel = wx.BoxSizer(wx.HORIZONTAL)
        vs_main_panel.Add(hs_main_panel, 4, wx.EXPAND, 0)

        self.m4b_panel = wx.Panel(self.main_panel, wx.ID_ANY)
        hs_main_panel.Add(self.m4b_panel, 1, wx.EXPAND, 0)

        vs_m4b_panel = wx.BoxSizer(wx.VERTICAL)

        hs_m4b_panel = wx.BoxSizer(wx.HORIZONTAL)
        vs_m4b_panel.Add(hs_m4b_panel, 1, wx.EXPAND, 0)

        self.metadata_panel = wx.Panel(self.m4b_panel,
                                       wx.ID_ANY,
                                       style=wx.BORDER_SIMPLE
                                       | wx.TAB_TRAVERSAL)
        hs_m4b_panel.Add(self.metadata_panel, 2, wx.ALL | wx.EXPAND, 0)

        hs_metadata_panel = wx.BoxSizer(wx.HORIZONTAL)

        fgs_metadata_panel = wx.FlexGridSizer(3, 1, 4, 0)
        hs_metadata_panel.Add(fgs_metadata_panel, 1, wx.ALL | wx.EXPAND, 2)

        fgs_mp3_metadata = wx.FlexGridSizer(6, 2, 4, 11)
        fgs_metadata_panel.Add(fgs_mp3_metadata, 1, wx.ALL | wx.EXPAND, 0)

        # MP3 Tags
        lbl_title = wx.StaticText(self.metadata_panel, wx.ID_ANY, "Title")
        fgs_mp3_metadata.Add(lbl_title, 1, 0, 0)

        self.tc_title = wx.TextCtrl(self.metadata_panel, wx.ID_ANY, "")
        self.tc_title.SetToolTip("Title of the book")
        fgs_mp3_metadata.Add(self.tc_title, 1, wx.EXPAND, 0)

        lbl_artist = wx.StaticText(self.metadata_panel, wx.ID_ANY, "Artist")
        fgs_mp3_metadata.Add(lbl_artist, 0, wx.EXPAND, 0)

        self.tc_artist = wx.TextCtrl(self.metadata_panel, wx.ID_ANY, "")
        self.tc_artist.SetToolTip("The author or album artist")
        fgs_mp3_metadata.Add(self.tc_artist, 0, wx.EXPAND, 0)

        lbl_grouping = wx.StaticText(self.metadata_panel, wx.ID_ANY,
                                     "Grouping")
        fgs_mp3_metadata.Add(lbl_grouping, 1, 0, 0)

        self.tc_grouping = wx.TextCtrl(self.metadata_panel, wx.ID_ANY, "")
        self.tc_grouping.SetToolTip("Grouping e.g. series")
        fgs_mp3_metadata.Add(self.tc_grouping, 0, wx.EXPAND, 0)

        lbl_genre = wx.StaticText(self.metadata_panel, wx.ID_ANY, "Genre")
        fgs_mp3_metadata.Add(lbl_genre, 0, 0, 0)

        self.cb_genre = wx.ComboBox(self.metadata_panel,
                                    wx.ID_ANY,
                                    choices=GENRES,
                                    style=wx.CB_DROPDOWN | wx.TE_PROCESS_ENTER
                                    | wx.CB_READONLY)
        self.cb_genre.SetToolTip("Select your genre")
        self.cb_genre.SetSelection(0)
        fgs_mp3_metadata.Add(self.cb_genre, 0,
                             wx.ALL | wx.EXPAND | wx.FIXED_MINSIZE, 0)

        label_1 = wx.StaticText(self.metadata_panel, wx.ID_ANY, "Chapter text")
        fgs_mp3_metadata.Add(label_1, 0, 0, 0)

        self.tc_chapter_text = wx.TextCtrl(self.metadata_panel, wx.ID_ANY,
                                           "Chapter")
        self.tc_chapter_text.SetToolTip("Text to use fore chapterisation")
        fgs_mp3_metadata.Add(self.tc_chapter_text, 0, wx.EXPAND, 0)

        lbl_chapterisation = wx.StaticText(self.metadata_panel, wx.ID_ANY,
                                           "Chapters")
        fgs_mp3_metadata.Add(lbl_chapterisation, 1, 0, 0)

        self.cb_chapterisation = wx.ComboBox(self.metadata_panel,
                                             wx.ID_ANY,
                                             choices=CHAPTER_LIST,
                                             style=wx.CB_DROPDOWN
                                             | wx.CB_READONLY | wx.CB_SIMPLE)
        self.cb_chapterisation.SetToolTip(
            "Choose which chapterisation method is prefered")
        self.cb_chapterisation.SetSelection(0)
        fgs_mp3_metadata.Add(self.cb_chapterisation, 0, wx.EXPAND, 0)

        vs_track_year_comment = wx.BoxSizer(wx.VERTICAL)
        fgs_metadata_panel.Add(vs_track_year_comment, 1, wx.EXPAND, 0)

        hs_track_year = wx.BoxSizer(wx.HORIZONTAL)
        vs_track_year_comment.Add(hs_track_year, 0, wx.ALL | wx.EXPAND, 0)

        lbl_disc = wx.StaticText(self.metadata_panel, wx.ID_ANY, "Disc")
        hs_track_year.Add(lbl_disc, 0, 0, 0)

        hs_track_year.Add((60, 20), 0, 0, 0)

        self.sc_disc = wx.SpinCtrl(self.metadata_panel,
                                   wx.ID_ANY,
                                   "1",
                                   min=1,
                                   max=100)
        self.sc_disc.SetToolTip("which disk?")
        hs_track_year.Add(self.sc_disc, 0, 0, 0)

        label_8 = wx.StaticText(self.metadata_panel, wx.ID_ANY, "of")
        hs_track_year.Add(label_8, 0, wx.ALIGN_CENTER_VERTICAL, 0)

        self.sc_disk_total = wx.SpinCtrl(self.metadata_panel,
                                         wx.ID_ANY,
                                         "1",
                                         min=1,
                                         max=100)
        self.sc_disk_total.SetToolTip("Total number of discs for this book")
        hs_track_year.Add(self.sc_disk_total, 0, 0, 0)

        hs_track_year.Add((32, 20), 0, 0, 0)

        lbl_year = wx.StaticText(self.metadata_panel, wx.ID_ANY, "Year")
        hs_track_year.Add(lbl_year, 0, wx.ALIGN_CENTER_VERTICAL, 0)

        self.tc_year = wx.TextCtrl(self.metadata_panel, wx.ID_ANY, "")
        self.tc_year.Bind(wx.EVT_CHAR, handle_numeric_keypress)
        self.tc_year.SetToolTip("Publication year")
        hs_track_year.Add(self.tc_year, 1, wx.EXPAND, 0)

        vs_comment = wx.BoxSizer(wx.VERTICAL)
        vs_track_year_comment.Add(vs_comment, 0, wx.EXPAND, 0)

        vs_comment_1 = wx.BoxSizer(wx.VERTICAL)
        vs_comment.Add(vs_comment_1, 2, wx.ALL | wx.EXPAND, 0)

        lbl_comment = wx.StaticText(self.metadata_panel, wx.ID_ANY, "Comment")
        vs_comment_1.Add(lbl_comment, 0, wx.LEFT, 0)

        self.tc_comment = wx.TextCtrl(self.metadata_panel,
                                      wx.ID_ANY,
                                      "",
                                      style=wx.TE_MULTILINE)
        self.tc_comment.SetToolTip("Add your comments here.")
        vs_comment_1.Add(self.tc_comment, 2, wx.EXPAND, 0)

        cover_art_wrapper_sizer_v = wx.BoxSizer(wx.VERTICAL)
        fgs_metadata_panel.Add(cover_art_wrapper_sizer_v, 1,
                               wx.ALL | wx.EXPAND, 0)

        # Cover Art section
        lbl_cover_art = wx.StaticText(self.metadata_panel, wx.ID_ANY,
                                      "Cover art")
        cover_art_wrapper_sizer_v.Add(lbl_cover_art, 0, 0, 0)

        self.cover_art_panel = wx.Panel(self.metadata_panel, wx.ID_ANY)
        self.cover_art_panel.SetToolTip("Drag and drop Cover Art here")
        cover_art_wrapper_sizer_v.Add(self.cover_art_panel, 1, wx.EXPAND, 1)

        cover_art_sizer_h = wx.BoxSizer(wx.HORIZONTAL)

        self.cover_art = wx.StaticBitmap(self.cover_art_panel)
        self.cover_art.SetBitmap(yoda.GetBitmap())
        self.SetToolTip("Drag and drop Cover Art here. Double click to reset.")
        self.cover_art.SetDropTarget(CoverArtDropTarget(self))
        self.cover_art.Bind(wx.EVT_LEFT_DCLICK, self.on_reset_cover_art)
        cover_art_sizer_h.Add(self.cover_art, 1, wx.EXPAND, 0)

        # MP3 Drag n Drop section
        self.lc_mp3 = wx.adv.EditableListBox(
            self,
            wx.ID_ANY,
            "Drag and Drop mp3 files below...",
            style=wx.adv.EL_ALLOW_DELETE)
        self.lc_mp3.SetToolTip("Drag and Drop MP3 files here")
        self.lc_mp3.SetDropTarget(MP3DropTarget(self))
        self.lc_mp3.SetToolTip("Drag and Drop MP3 files here")
        self.lc_mp3.del_button = self.lc_mp3.GetDelButton()
        self.lc_mp3.GetListCtrl().Bind(wx.EVT_LEFT_DCLICK,
                                       self.on_tracks_empty)
        self.lc_mp3.GetListCtrl().Bind(wx.EVT_LIST_ITEM_RIGHT_CLICK,
                                       self.on_selected_right_click)

        hs_m4b_panel.Add(self.lc_mp3, 5, wx.ALL | wx.EXPAND, 0)

        self.log_panel = wx.Panel(self.main_panel, wx.ID_ANY)
        vs_main_panel.Add(self.log_panel, 1, wx.EXPAND, 0)

        log_sizer_v = wx.BoxSizer(wx.VERTICAL)

        log_sizer_h = wx.BoxSizer(wx.HORIZONTAL)
        log_sizer_v.Add(log_sizer_h, 1, wx.EXPAND, 0)

        self.tc_log = wx.TextCtrl(self.log_panel,
                                  wx.ID_ANY,
                                  "",
                                  style=wx.TE_MULTILINE | wx.TE_LEFT
                                  | wx.TE_READONLY | wx.HSCROLL)
        self.tc_log.SetFont(
            wx.Font(12, wx.FONTFAMILY_TELETYPE, wx.FONTSTYLE_NORMAL,
                    wx.FONTWEIGHT_NORMAL, 0, "Courier New"))
        wx.Log.SetActiveTarget(wx.LogTextCtrl(self.tc_log))
        log_sizer_h.Add(self.tc_log, 1, wx.EXPAND, 0)

        # Queue Part
        self.queue_window = wx.ScrolledWindow(self.main_panel,
                                              wx.ID_ANY,
                                              style=wx.BORDER_RAISED
                                              | wx.TAB_TRAVERSAL
                                              | wx.HT_WINDOW_VERT_SCROLLBAR)
        self.queue_window.SetScrollRate(10, 10)
        vs_main_panel.Add(self.queue_window, 1, wx.EXPAND, 0)

        self.queue_sizer_v = wx.BoxSizer(wx.VERTICAL)
        self.queue_window.SetSizer(self.queue_sizer_v)

        self.log_panel.SetSizer(log_sizer_v)

        self.cover_art_panel.SetSizer(cover_art_sizer_h)

        fgs_mp3_metadata.AddGrowableCol(1)

        fgs_metadata_panel.AddGrowableRow(2)
        fgs_metadata_panel.AddGrowableCol(0)

        self.metadata_panel.SetSizer(hs_metadata_panel)

        self.m4b_panel.SetSizer(vs_m4b_panel)

        self.main_panel.SetSizer(vs_main_panel)

        self.SetSizer(vs_main)
        vs_main.SetSizeHints(self)

        self.load_settings()
        self.Layout()

        self.update_timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.on_update_ui)
        self.update_timer.Start(750)

        self.Bind(wx.EVT_TEXT, self.on_title, self.tc_title)
        self.Bind(wx.EVT_TEXT, self.on_artist, self.tc_artist)
        self.Bind(wx.EVT_TEXT, self.on_grouping, self.tc_grouping)
        self.Bind(wx.EVT_COMBOBOX, self.on_genre, self.cb_genre)
        self.Bind(wx.EVT_TEXT, self.on_chapter_text, self.tc_chapter_text)
        self.Bind(wx.EVT_COMBOBOX, self.on_chapter_method,
                  self.cb_chapterisation)
        self.Bind(wx.EVT_SPINCTRL, self.on_disc, self.sc_disc)
        self.Bind(wx.EVT_SPINCTRL, self.on_disc, self.sc_disk_total)
        self.Bind(wx.EVT_TEXT, self.on_year, self.tc_year)
        self.Bind(wx.EVT_TEXT, self.on_comment, self.tc_comment)
        self.Bind(wx.EVT_TEXT_MAXLEN, self.on_log_empty, self.tc_log)
        self.tc_log.Bind(wx.EVT_LEFT_DCLICK, self.on_log_empty)

        self.Bind(wx.EVT_SIZING, self.on_resizing)
        self.Bind(wx.EVT_IDLE, self.on_idle)
        self.Bind(EVT_PROJECT_HISTORY, self.on_project_history)
        self.Bind(EVT_PROCESS_CLEAN, self.on_clean_queue_item)
        self.Bind(EVT_PROCESS_CANCELLED, self.on_process_cancelled)
        self.Bind(EVT_UPDATE_CHECK, self.update_check)

        self.init()
예제 #13
0
    def __init__(self, *args, **kw):
        """Initialize the gui here"""
        super().__init__(*args, **kw)

        #  Startup Settings
        self.activation_bytes = None
        self.active_queue = []
        self.genre_pristine = True
        self.project = Project()
        self.default_save_path = ivonet.DEFAULT_SAVE_PATH
        wx.ArtProvider.Push(IvoNetArtProvider())

        self.SetSize((1024, 768))
        self.SetMinSize((1024, 768))
        self.current_size = self.GetSize()

        self.__make_toolbar()
        self.SetMenuBar(MenuBar(self))

        self.CreateStatusBar()
        self.SetStatusText(ivonet.TXT_COPYRIGHT)

        self.status_timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.on_clear_status, self.status_timer)

        vs_main = wx.BoxSizer(wx.VERTICAL)

        self.main_panel = wx.Panel(self, wx.ID_ANY)
        vs_main.Add(self.main_panel, 1, wx.EXPAND, 0)

        vs_main_panel = wx.BoxSizer(wx.VERTICAL)

        hs_main_panel = wx.BoxSizer(wx.HORIZONTAL)
        vs_main_panel.Add(hs_main_panel, 1, wx.EXPAND, 0)

        self.m4b_panel = wx.Panel(self.main_panel, wx.ID_ANY)
        hs_main_panel.Add(self.m4b_panel, 1, wx.EXPAND, 0)

        vs_m4b_panel = wx.BoxSizer(wx.VERTICAL)

        hs_m4b_panel = wx.BoxSizer(wx.HORIZONTAL)
        vs_m4b_panel.Add(hs_m4b_panel, 1, wx.EXPAND, 0)

        self.lc_audiofiles = wx.adv.EditableListBox(self, wx.ID_ANY, "Drag and Drop aax files below...",
                                                    style=wx.adv.EL_ALLOW_DELETE)
        self.lc_audiofiles.SetDropTarget(MP3DropTarget(self))
        self.lc_audiofiles.SetToolTip("Drag and Drop AAX files here")
        self.lc_audiofiles.del_button = self.lc_audiofiles.GetDelButton()
        self.lc_audiofiles.GetListCtrl().Bind(wx.EVT_LEFT_DCLICK, self.on_tracks_empty)

        hs_m4b_panel.Add(self.lc_audiofiles, 3, wx.ALL | wx.EXPAND, 0)

        self.log_panel = wx.Panel(self.main_panel, wx.ID_ANY)
        vs_main_panel.Add(self.log_panel, 1, wx.EXPAND, 0)

        log_sizer_v = wx.BoxSizer(wx.VERTICAL)

        log_sizer_h = wx.BoxSizer(wx.HORIZONTAL)
        log_sizer_v.Add(log_sizer_h, 1, wx.EXPAND, 0)

        self.tc_log = wx.TextCtrl(self.log_panel, wx.ID_ANY, "",
                                  style=wx.TE_MULTILINE | wx.TE_LEFT | wx.TE_READONLY | wx.HSCROLL)
        self.tc_log.SetFont(
            wx.Font(12, wx.FONTFAMILY_TELETYPE, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, "Courier New"))
        wx.Log.SetActiveTarget(wx.LogTextCtrl(self.tc_log))
        log_sizer_h.Add(self.tc_log, 1, wx.EXPAND, 0)

        # Queue Part
        self.queue_window = wx.ScrolledWindow(self.main_panel, wx.ID_ANY,
                                              style=wx.BORDER_RAISED | wx.TAB_TRAVERSAL | wx.HT_WINDOW_VERT_SCROLLBAR)
        self.queue_window.SetScrollRate(10, 10)
        vs_main_panel.Add(self.queue_window, 1, wx.EXPAND, 0)

        self.queue_sizer_v = wx.BoxSizer(wx.VERTICAL)
        self.queue_window.SetSizer(self.queue_sizer_v)

        self.log_panel.SetSizer(log_sizer_v)

        self.m4b_panel.SetSizer(vs_m4b_panel)

        self.main_panel.SetSizer(vs_main_panel)

        self.SetSizer(vs_main)
        vs_main.SetSizeHints(self)

        self.load_settings()
        self.Layout()

        self.update_timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.on_update_ui)
        self.update_timer.Start(750)

        self.Bind(wx.EVT_TEXT_MAXLEN, self.on_log_empty, self.tc_log)
        self.tc_log.Bind(wx.EVT_LEFT_DCLICK, self.on_log_empty)

        self.Bind(EVT_PROCESS_CLEAN, self.on_clean_queue_item)
        self.Bind(EVT_PROCESS_CANCELLED, self.on_process_cancelled)

        self.init()
예제 #14
0
    def __init__(self, parent, id, title):
        # 只有一个关闭按钮,不能改变大小
        wx.Frame.__init__(self, parent, id, title, pos=(70, 80), size=(1260, 570),
                          style=wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX)
                          # style=wx.FULLSCREEN_NOSTATUSBAR | wx.DEFAULT_FRAME_STYLE)
        # 窗口的角标
        self.SetIcon(wx.Icon("src\\gui_view\\studio.ico", wx.BITMAP_TYPE_ICO))
        # self.SetIcon(wx.Icon("gui_view\\studio.ico", wx.TaskBarIcon))
        self.event_ctrl = EventController(self)
        # 主界面
        main_vbox = wx.BoxSizer(wx.VERTICAL)

        vbox1_phone_info = wx.BoxSizer(wx.VERTICAL)
        vbox2_apk_info = wx.BoxSizer(wx.VERTICAL)
        vbox3_button = wx.BoxSizer(wx.VERTICAL)
        grid_button = wx.GridSizer(3, 6, 5, 5)

        # window的上半部分:vbox2(lc_device_info)
        self.lc_device_info = wx.ListCtrl(self, -1, style=wx.LC_REPORT | wx.BORDER_SUNKEN)
        self.lc_device_info.InsertColumn(0, '品 牌'.decode('utf8'), wx.LIST_FORMAT_RIGHT, width= 78)
        self.lc_device_info.InsertColumn(1, '型 号'.decode('utf8'), wx.LIST_FORMAT_CENTER, width=85)
        self.lc_device_info.InsertColumn(2, '系统版本'.decode('utf8'), wx.LIST_FORMAT_CENTER, width=78)
        self.lc_device_info.InsertColumn(3, '运行内存'.decode('utf8'), wx.LIST_FORMAT_CENTER, width=78)
        self.lc_device_info.InsertColumn(4, '像素密度'.decode('utf8'), wx.LIST_FORMAT_CENTER, width=78)
        self.lc_device_info.InsertColumn(5, '分辨率'.decode('utf8'), wx.LIST_FORMAT_CENTER, width=100)
        self.lc_device_info.InsertColumn(6, 'IP'.decode('utf8'), wx.LIST_FORMAT_CENTER, width=120)
        self.lc_device_info.InsertColumn(7, 'ID'.decode('utf8'), wx.LIST_FORMAT_CENTER, width=120)
        vbox1_phone_info.Add(self.lc_device_info, 1, wx.EXPAND | wx.ALL, 3)
        self.event_ctrl.refresh_device_info()

        # 设置右键菜单
        menuBar = wx.MenuBar()
        self.SetMenuBar(menuBar)
        self.popupmenu = wx.Menu()
        for text in "dump print".split():
            item = self.popupmenu.Append(-1, text)
            self.Bind(wx.EVT_MENU, self.event_ctrl.on_popup_item_selected, item)
            self.lc_device_info.Bind(wx.EVT_CONTEXT_MENU, self.event_ctrl.show_popUp)

        # 中间部分显示apk文件目录
        self.lc_apk_info = wx.ListCtrl(self, -1, style=wx.LC_LIST | wx.LC_SORT_ASCENDING)
        vbox2_apk_info.Add(self.lc_apk_info, 1, wx.EXPAND | wx.ALL, 4)
        self.event_ctrl.refresh_apk_info()

        # 最下面部分显示按钮
        panl = wx.Panel(self, -1, style=wx.SIMPLE_BORDER)
        vbox3_button.Add(panl, 1, wx.EXPAND | wx.ALL, 3)
        grid_button.AddMany([
                       (wx.Button(panl, 10, '刷新列表'.decode('utf8'), size=(80,35)) , 0, wx.ALIGN_CENTER),
                       (wx.Button(panl, 11, '清空列表'.decode('utf8'), size=(80,35)), 0,wx.ALIGN_CENTER),
                       (wx.Button(panl, 12, '移除本地'.decode('utf8'), size=(80,35)), 0,wx.ALIGN_CENTER),
                       (wx.Button(panl, 13, '录制视频'.decode('utf8'), size=(80,35)), 0,wx.ALIGN_CENTER),
                       (wx.Button(panl, 14, '截取屏幕'.decode('utf8'), size=(80,35)), 0,wx.ALIGN_CENTER),
                       (wx.Button(panl, 15, '重启设备'.decode('utf8'), size=(80,35)), 0,wx.ALIGN_CENTER),
                       (wx.Button(panl, 16, '单个安装'.decode('utf8'), size=(80,35)), 0,wx.ALIGN_CENTER),
                       (wx.Button(panl, 17, '全部安装'.decode('utf8'), size=(80,35)), 0,wx.ALIGN_CENTER),
                       (wx.Button(panl, 18, '覆盖安装'.decode('utf8'), size=(80,35)), 0,wx.ALIGN_CENTER),
                       (wx.Button(panl, 19, '清除数据'.decode('utf8'), size=(80,35)), 0,wx.ALIGN_CENTER),
                       (wx.Button(panl, 20, '发送文本'.decode('utf8'), size=(80,35)), 0,wx.ALIGN_CENTER),
                       (wx.Button(panl, 21, '杀死进程'.decode('utf8'), size=(80,35)), 0,wx.ALIGN_CENTER),
                       (wx.Button(panl, 22, '崩溃日志'.decode('utf8'), size=(80,35)), 0,wx.ALIGN_CENTER),
                       (wx.Button(panl, 23, '当前包名'.decode('utf8'), size=(80,35)), 0,wx.ALIGN_CENTER),
                       (wx.Button(panl, 24, '当前活动'.decode('utf8'), size=(80,35)), 0,wx.ALIGN_CENTER),
                       (wx.Button(panl, 25, '应用权限'.decode('utf8'), size=(80,35)), 0,wx.ALIGN_CENTER),
                       (wx.Button(panl, 26, '性能消耗'.decode('utf8'), size=(80,35)), 0,wx.ALIGN_CENTER),
                       (wx.Button(panl, 27, 'kill 5037'.decode('utf8'),size=(80,35)), 0,wx.ALIGN_CENTER),
])
        panl.SetSizer(grid_button)
        # 为各个btn设置事件监听
        self.Bind(wx.EVT_BUTTON, self.event_ctrl.do_refresh, id=10)
        # self.Bind(wx.EVT_BUTTON, self.event_ctrl.do_download, id=12)
        self.Bind(wx.EVT_BUTTON, self.event_ctrl.do_screenrecord_event, id=13)
        self.Bind(wx.EVT_BUTTON, self.event_ctrl.do_Clear, id=11)
        self.Bind(wx.EVT_BUTTON, self.event_ctrl.remove_local_file, id=12)
        self.Bind(wx.EVT_BUTTON, self.event_ctrl.do_capture_window, id=14)
        self.Bind(wx.EVT_BUTTON, self.event_ctrl.do_reboot, id=15)
        self.Bind(wx.EVT_BUTTON, self.event_ctrl.do_install, id=16)
        self.Bind(wx.EVT_BUTTON, self.event_ctrl.do_install_all, id=17)
        self.Bind(wx.EVT_BUTTON, self.event_ctrl.do_cover_install, id=18)
        self.Bind(wx.EVT_BUTTON, self.event_ctrl.do_clear_data, id=19)
        self.Bind(wx.EVT_BUTTON, self.event_ctrl.do_input_text, id=20)
        self.Bind(wx.EVT_BUTTON, self.event_ctrl.do_kill_process_event, id=21)
        self.Bind(wx.EVT_BUTTON, self.event_ctrl.get_app_crash_log,id=22)
        self.Bind(wx.EVT_BUTTON, self.event_ctrl.get_current_app_package_name, id=23)
        self.Bind(wx.EVT_BUTTON, self.event_ctrl.get_current_app_activity, id=24)
        self.Bind(wx.EVT_BUTTON, self.event_ctrl.get_app_permission_event, id=25)
        self.Bind(wx.EVT_BUTTON, self.event_ctrl.get_app_cpu_mem_thread, id=26)
        self.Bind(wx.EVT_BUTTON, self.event_ctrl.reset_service_port, id=27)
        # 将vbox2和hbox1添加到w_vbox中
        main_vbox.Add(vbox1_phone_info, 1, wx.EXPAND)
        main_vbox.Add(vbox2_apk_info, 1, wx.EXPAND)
        main_vbox.Add(vbox3_button, 1, wx.EXPAND)
        # 添加一个boss容器,log容器,boss容纳主界面
        boss_vbox = wx.BoxSizer(wx.HORIZONTAL)
        log_vbox = wx.BoxSizer(wx.VERTICAL)

        self.log_text_ctrl = wx.TextCtrl(self, id=28, style=wx.TE_MULTILINE, size=(500, 570))
        self.Bind(wx.EVT_BUTTON, self.event_ctrl.do_Clear, id=28)
        log_vbox.Add(self.log_text_ctrl, 1, wx.EXPAND | wx.ALL, 3)
        # 将整个gui的日志进行重定向到指定控件里
        wx.Log.SetActiveTarget(wx.LogTextCtrl(self.log_text_ctrl))

        boss_vbox.Add(main_vbox)
        boss_vbox.Add(log_vbox)

        self.SetSizer(boss_vbox)
예제 #15
0
    def __init__(self, *args, **kwds):
        # begin wxGlade: frmRipper.__init__
        kwds["style"] = wx.DEFAULT_FRAME_STYLE
        wx.Frame.__init__(self, *args, **kwds)
        self.lblTempPath = wx.StaticText(self,
                                         -1,
                                         "Working path:",
                                         style=wx.ALIGN_RIGHT)
        self.txtTempPath = wx.TextCtrl(self, -1, "/tmp")
        self.cmdTempPath = wx.Button(self,
                                     ID_CHOOSETMPPATH,
                                     "...",
                                     style=wx.BU_LEFT)
        self.lblOutPath = wx.StaticText(self,
                                        -1,
                                        "Final output path:",
                                        style=wx.ALIGN_RIGHT)
        self.txtOutPath = wx.TextCtrl(self, -1, "")
        self.cmdOutPath = wx.Button(self,
                                    ID_CHOOSEOUTPATH,
                                    "...",
                                    style=wx.BU_LEFT)
        self.chkEject = wx.CheckBox(self, -1, "Eject CD when done")
        self.lblCoverArt = wx.StaticText(self, -1,
                                         "Cover Art (APPLICATION blocks):")
        self.bmpCoverArt = wx.StaticBitmap(self,
                                           -1,
                                           wx.EmptyBitmap(120, 120),
                                           style=wx.SIMPLE_BORDER)
        self.lblCoverArtFilename = wx.StaticText(self, -1, "None Selected")
        self.lblMimeType = wx.StaticText(self, -1, "application/unknown")
        self.lblCoverArtSize = wx.StaticText(self, -1, "0 bytes")
        self.cmdCoverArt = wx.Button(self,
                                     ID_CHOOSECOVERART,
                                     "...",
                                     style=wx.BU_LEFT)
        self.cmdDetectCD = wx.ToggleButton(self, ID_DETECTCD, "Detect CD")
        self.cmdRip = wx.ToggleButton(self, ID_RIP, "Rip")
        #self.cmdWebBrowser = wx.Button(self, ID_WEBBROWSER, "Look Up")
        self.cmdClose = wx.Button(self, ID_CLOSE, "Close")
        self.lblTags = wx.StaticText(self, -1, "Tags (VORBIS_COMMENT block):")
        self.txtTags = wx.TextCtrl(self, -1, "", style=wx.TE_MULTILINE)
        self.lblMessages = wx.StaticText(self, -1, "Messages:")
        self.txtMessages = wx.TextCtrl(self, -1, "", style=wx.TE_MULTILINE)
        self.lblProgress = wx.StaticText(self, -1, "Idle")

        self.__set_properties()
        self.__do_layout()
        # end wxGlade

        wx.Log.SetActiveTarget(wx.LogTextCtrl(self.txtMessages))

        wx.EVT_BUTTON(self, ID_CHOOSECOVERART, self.OnChooseCoverArt)
        wx.EVT_BUTTON(self, ID_CHOOSETMPPATH, self.OnChooseTmpPath)
        wx.EVT_BUTTON(self, ID_CHOOSEOUTPATH, self.OnChooseOutPath)
        wx.EVT_TOGGLEBUTTON(self, ID_DETECTCD, self.OnDetectCD)
        wx.EVT_TOGGLEBUTTON(self, ID_RIP, self.OnRip)
        wx.EVT_BUTTON(self, ID_CLOSE, self.OnClose)
        wx.EVT_BUTTON(self, ID_WEBBROWSER, self.OnWebBrowser)

        self.timer = wx.Timer(self, ID_TIMER)
        wx.EVT_TIMER(self, ID_TIMER, self.OnIdle)
        #wx.EVT_IDLE(self, self.OnIdle)

        self.coverart = None
        self.workdir = None
        self.cancelled = False
        self.cddevice = None

        self.txtTags.SetValue("Click Detect CD to fill in tag information\n" \
                              "automatically using the MusicBrainz database.\n\n" \
                              "Click Rip to start ripping.  You may still edit\n" \
                              "tags and select cover art after ripping has\n" \
                              "started.")

        self.setUIState(STATE_IDLE)
        self.CheckBinaries()
예제 #16
0
 def __init__(self, parent):
     super().__init__(parent,
                      -1,
                      style=wx.TE_MULTILINE | wx.TE_READONLY | wx.HSCROLL,
                      size=(-1, 200))
     wx.Log.SetActiveTarget(wx.LogTextCtrl(self))