def __init__(self, parent): super(LaunchWindow, self).__init__(parent) # Attributes self._log = wx.GetApp().GetLog() self._mw = ed_basewin.FindMainWindow(self) self._buffer = OutputDisplay(self) self._fnames = list() self._run = None # Created in __DoLayout self._pbtn = None # Created in __DoLayout self._clear = None # Created in __DoLayout self._lockFile = None # Created in __DoLayout self._chFiles = None # Created in __DoLayout self._worker = None self._busy = False self._isready = False self._state = dict(file='', lang=0, cfile='', clang=0, last='', lastlang=0, prelang=0, largs='', lcmd='') # Setup self.__DoLayout() if not handlers.InitCustomHandlers(ed_glob.CONFIG['CACHE_DIR']): util.Log(u"[launch][warn] failed to load launch extensions") # Ensure preferences have been initialized cfgdlg.InitConfig() self.UpdateBufferColors() cbuffer = GetTextBuffer(self.MainWindow) self.SetupControlBar(cbuffer) self.State['lang'] = GetLangIdFromMW(self.MainWindow) self.UpdateCurrentFiles(self.State['lang']) self.SetFile(cbuffer.GetFileName()) # Setup filetype settings self.RefreshControlBar() # Event Handlers self.Bind(wx.EVT_BUTTON, self.OnButton) self.Bind(wx.EVT_CHOICE, self.OnChoice) self.Bind(wx.EVT_CHECKBOX, self.OnCheck) self.Bind(wx.EVT_WINDOW_DESTROY, self.OnDestroy, self) ed_msg.Subscribe(self.OnPageChanged, ed_msg.EDMSG_UI_NB_CHANGED) ed_msg.Subscribe(self.OnFileOpened, ed_msg.EDMSG_FILE_OPENED) ed_msg.Subscribe(self.OnThemeChanged, ed_msg.EDMSG_THEME_CHANGED) ed_msg.Subscribe(self.OnLexerChange, ed_msg.EDMSG_UI_STC_LEXER) ed_msg.Subscribe(self.OnConfigChange, ed_msg.EDMSG_PROFILE_CHANGE + (handlers.CONFIG_KEY, )) ed_msg.Subscribe(self.OnRunMsg, MSG_RUN_LAUNCH) ed_msg.Subscribe(self.OnRunLastMsg, MSG_RUN_LAST) ed_msg.RegisterCallback(self._CanLaunch, REQUEST_ACTIVE) ed_msg.RegisterCallback(self._CanReLaunch, REQUEST_RELAUNCH)
def __init__(self, parent): eclib.ControlBox.__init__(self, parent) # Attributes self._log = wx.GetApp().GetLog() self._mw = self.__FindMainWindow() self._buffer = OutputDisplay(self) self._fnames = list() self._chFiles = None # Created in __DoLayout self._worker = None self._busy = False self._isready = False self._config = dict(file='', lang=0, cfile='', clang=0, last='', lastlang=0, prelang=0, largs='', lcmd='') self._prefs = Profile_Get(cfgdlg.LAUNCH_PREFS, default=None) # Setup self.__DoLayout() hstate = Profile_Get(LAUNCH_KEY) if hstate is not None: handlers.SetState(hstate) if self._prefs is None: Profile_Set(cfgdlg.LAUNCH_PREFS, dict(autoclear=False, defaultf=self._buffer.GetDefaultForeground().Get(), defaultb=self._buffer.GetDefaultBackground().Get(), errorf=self._buffer.GetErrorForeground().Get(), errorb=self._buffer.GetErrorBackground().Get(), infof=self._buffer.GetInfoForeground().Get(), infob=self._buffer.GetInfoBackground().Get(), warnf=self._buffer.GetWarningForeground().Get(), warnb=self._buffer.GetWarningBackground().Get())) self._prefs = Profile_Get(cfgdlg.LAUNCH_PREFS) self.UpdateBufferColors() cbuffer = self._mw.GetNotebook().GetCurrentCtrl() self.SetupControlBar(cbuffer) self._config['lang'] = GetLangIdFromMW(self._mw) self.UpdateCurrentFiles(self._config['lang']) self.SetFile(GetTextBuffer(self._mw).GetFileName()) # Setup filetype settings self.RefreshControlBar() # Event Handlers self.Bind(wx.EVT_BUTTON, self.OnButton) self.Bind(wx.EVT_CHOICE, self.OnChoice) ed_msg.Subscribe(self.OnPageChanged, ed_msg.EDMSG_UI_NB_CHANGED) ed_msg.Subscribe(self.OnFileOpened, ed_msg.EDMSG_FILE_OPENED) ed_msg.Subscribe(self.OnThemeChanged, ed_msg.EDMSG_THEME_CHANGED) ed_msg.Subscribe(self.OnLexerChange, ed_msg.EDMSG_UI_STC_LEXER) ed_msg.Subscribe(self.OnConfigExit, cfgdlg.EDMSG_LAUNCH_CFG_EXIT) ed_msg.Subscribe(self.OnRunMsg, MSG_RUN_LAUNCH) ed_msg.Subscribe(self.OnRunLastMsg, MSG_RUN_LAST) ed_msg.RegisterCallback(self._CanLaunch, REQUEST_ACTIVE) ed_msg.RegisterCallback(self._CanReLaunch, REQUEST_RELAUNCH)
def __init__(self, parent): ctrlbox.ControlBox.__init__(self, parent) # Attributes self._mw = self.__FindMainWindow() self._buffer = OutputDisplay(self) self._fnames = list() self._chFiles = None # Created in __DoLayout self._worker = None self._busy = False self._isready = False self._config = dict(file='', lang=0, cfile='', clang=0, last='', lastlang=0, prelang=0) self._prefs = Profile_Get('Launch.Prefs', default=None) # Setup self.__DoLayout() hstate = Profile_Get(LAUNCH_KEY) if hstate is not None: handlers.SetState(hstate) if self._prefs is None: Profile_Set( 'Launch.Prefs', dict(autoclear=False, defaultf=self._buffer.GetDefaultForeground().Get(), defaultb=self._buffer.GetDefaultBackground().Get(), errorf=self._buffer.GetErrorForeground().Get(), errorb=self._buffer.GetErrorBackground().Get(), infof=self._buffer.GetInfoForeground().Get(), infob=self._buffer.GetInfoBackground().Get(), warnf=self._buffer.GetWarningForeground().Get(), warnb=self._buffer.GetWarningBackground().Get())) self._prefs = Profile_Get('Launch.Prefs') self.UpdateBufferColors() cbuffer = self._mw.GetNotebook().GetCurrentCtrl() self.SetupControlBar(cbuffer) # Event Handlers self.Bind(wx.EVT_BUTTON, self.OnButton) self.Bind(wx.EVT_CHOICE, self.OnChoice) ed_msg.Subscribe(self.OnPageChanged, ed_msg.EDMSG_UI_NB_CHANGED) ed_msg.Subscribe(self.OnFileOpened, ed_msg.EDMSG_FILE_OPENED) ed_msg.Subscribe(self.OnThemeChanged, ed_msg.EDMSG_THEME_CHANGED) ed_msg.Subscribe(self.OnConfigExit, cfgdlg.EDMSG_LAUNCH_CFG_EXIT) ed_msg.Subscribe(self.OnRunMsg, MSG_RUN_LAUNCH) ed_msg.RegisterCallback(self._CanLaunch, REQUEST_ACTIVE)
def __init__(self, parent, id_num): """Initialize a notebook with a blank text control in it @param parent: parent window of the notebook @param id_num: this notebooks id """ FNB.FlatNotebook.__init__( self, parent, id_num, style=FNB.FNB_FF2 | FNB.FNB_X_ON_TAB | FNB.FNB_SMART_TABS | FNB.FNB_DROPDOWN_TABS_LIST | FNB.FNB_ALLOW_FOREIGN_DND) # Notebook attributes self.LOG = wx.GetApp().GetLog() self.DocMgr = ed_editv.EdEditorView.DOCMGR self._searchctrl = ed_search.SearchController(self, self.GetCurrentCtrl) self._searchctrl.SetLookinChoices( Profile_Get('SEARCH_LOC', default=list())) self._searchctrl.SetFileFilters( Profile_Get('SEARCH_FILTER', default='')) self.pg_num = -1 # Track new pages (aka untitled docs) self.control = None self.frame = self.GetTopLevelParent() # MainWindow self._index = dict() # image list index self._ses_load = False self._menu = None # Set Additional Style Parameters self.SetNonActiveTabTextColour(wx.Colour(102, 102, 102)) ed_icon = ed_glob.CONFIG['SYSPIX_DIR'] + u"editra.png" self.SetNavigatorIcon(wx.Bitmap(ed_icon, wx.BITMAP_TYPE_PNG)) # Setup the ImageList and the default image imgl = wx.ImageList(16, 16) txtbmp = wx.ArtProvider.GetBitmap(str(synglob.ID_LANG_TXT), wx.ART_MENU) self._index[synglob.ID_LANG_TXT] = imgl.Add(txtbmp) robmp = wx.ArtProvider.GetBitmap(str(ed_glob.ID_READONLY), wx.ART_MENU) self._index[ed_glob.ID_READONLY] = imgl.Add(robmp) self.SetImageList(imgl) # Notebook Events self.Bind(FNB.EVT_FLATNOTEBOOK_PAGE_CHANGING, self.OnPageChanging) self.Bind(FNB.EVT_FLATNOTEBOOK_PAGE_CHANGED, self.OnPageChanged) self.Bind(FNB.EVT_FLATNOTEBOOK_PAGE_CLOSING, self.OnPageClosing) self.Bind(FNB.EVT_FLATNOTEBOOK_PAGE_CLOSED, self.OnPageClosed) self.Bind(wx.stc.EVT_STC_MODIFIED, self.OnUpdatePageText) self._pages.Bind(wx.EVT_LEFT_UP, self.OnLeftUp) self._pages.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDClick) self._pages.Bind(wx.EVT_MIDDLE_UP, self.OnMClick) self.Bind(FNB.EVT_FLATNOTEBOOK_PAGE_CONTEXT_MENU, self.OnTabMenu) self.Bind(wx.EVT_MENU, self.OnCopyTabPath, id=ed_glob.ID_COPY_PATH) self.Bind(wx.EVT_IDLE, self.OnIdle) # Message handlers ed_msg.Subscribe(self.OnThemeChanged, ed_msg.EDMSG_THEME_CHANGED) ed_msg.Subscribe(self.OnThemeChanged, ed_msg.EDMSG_THEME_NOTEBOOK) ed_msg.RegisterCallback(self.OnDocPointerRequest, ed_msg.EDREQ_DOCPOINTER) # Add a blank page self.NewPage()
def __init__(self, parent): """Initialize a notebook with a blank text control in it @param parent: parent window of the notebook @param id_num: this notebooks id """ style = aui.AUI_NB_DEFAULT_STYLE | \ aui.AUI_NB_WINDOWLIST_BUTTON | \ aui.AUI_NB_SMART_TABS | \ aui.AUI_NB_USE_IMAGES_DROPDOWN | \ aui.AUI_NB_TAB_EXTERNAL_MOVE | \ aui.AUI_NB_TAB_FIXED_WIDTH | \ aui.AUI_NB_ORDER_BY_ACCESS super(EdPages, self).__init__(parent, style=style) # Notebook attributes self.LOG = wx.GetApp().GetLog() self._idletimer = wx.Timer(self, ID_IDLE_TIMER) self.DocMgr = ed_editv.EdEditorView.DOCMGR self._searchctrl = ed_search.SearchController(self, self.GetCurrentCtrl) self._searchctrl.SetLookinChoices( Profile_Get('SEARCH_LOC', default=list())) self._searchctrl.SetFileFilters( Profile_Get('SEARCH_FILTER', default=u'')) self.pg_num = -1 # Track new pages (aka untitled docs) self.mdown = -1 self.control = None self.frame = self.GetTopLevelParent() # MainWindow self._index = dict() # image list index self._ses_load = False self._menu = ebmlib.ContextMenuManager() # Setup Tab Navigator ed_icon = ed_glob.CONFIG['SYSPIX_DIR'] + u"editra.png" bmp = wx.Bitmap(ed_icon, wx.BITMAP_TYPE_PNG) if bmp.IsOk(): self.SetNavigatorIcon(bmp) else: util.Log("[ed_pages][warn] Bad bitmap: %s" % ed_icon) # Setup the ImageList and the default image imgl = wx.ImageList(16, 16) txtbmp = wx.ArtProvider.GetBitmap(str(synglob.ID_LANG_TXT), wx.ART_MENU) self._index[synglob.ID_LANG_TXT] = imgl.Add(txtbmp) robmp = wx.ArtProvider.GetBitmap(str(ed_glob.ID_READONLY), wx.ART_MENU) self._index[ed_glob.ID_READONLY] = imgl.Add(robmp) self.SetImageList(imgl) # Set custom options self.SetSashDClickUnsplit(True) self.SetMinMaxTabWidth(125, 135) self.UpdateFontSetting() # Notebook Events self.Bind(wx.EVT_WINDOW_DESTROY, self.OnDestroy, self) self.Bind(aui.EVT_AUINOTEBOOK_PAGE_CHANGING, self.OnPageChanging) self.Bind(aui.EVT_AUINOTEBOOK_PAGE_CHANGED, self.OnPageChanged) self.Bind(aui.EVT_AUINOTEBOOK_PAGE_CLOSE, self.OnPageClosing) self.Bind(aui.EVT_AUINOTEBOOK_PAGE_CLOSED, self.OnPageClosed) self.Bind(aui.EVT_AUINOTEBOOK_TAB_DCLICK, self.OnTabLeftDClick) self.Bind(aui.EVT_AUINOTEBOOK_BG_DCLICK, self.OnBGLeftDClick) self.Bind(aui.EVT_AUINOTEBOOK_TAB_MIDDLE_DOWN, self.OnMClickDown) self.Bind(aui.EVT_AUINOTEBOOK_TAB_MIDDLE_UP, self.OnMClickUp) self.Bind(aui.EVT_AUINOTEBOOK_TAB_RIGHT_UP, self.OnTabMenu) self.Bind(aui.EVT_AUINOTEBOOK_ALLOW_DND, self.OnAllowDnD) self.Bind(aui.EVT_AUINOTEBOOK_END_DRAG, self.OnDragFinished) self.Bind(aui.EVT_AUINOTEBOOK_DRAG_DONE, self.OnDragFinished) self.Bind(wx.stc.EVT_STC_CHANGE, self.OnUpdatePageText) self.Bind(wx.EVT_MENU, self.OnMenu) self.Bind(wx.EVT_TIMER, self.OnIdle, id=ID_IDLE_TIMER) # Message handlers ed_msg.Subscribe(self.OnThemeChanged, ed_msg.EDMSG_THEME_CHANGED) ed_msg.Subscribe(self.OnThemeChanged, ed_msg.EDMSG_THEME_NOTEBOOK) ed_msg.Subscribe(self.OnUpdatePosCache, ed_msg.EDMSG_UI_STC_POS_JUMPED) ed_msg.RegisterCallback(self.OnDocPointerRequest, ed_msg.EDREQ_DOCPOINTER) ed_msg.Subscribe(self.OnConfigMsg, ed_msg.EDMSG_PROFILE_CHANGE + ('FONT3', )) # Add a blank page self.NewPage() self._idletimer.Start(400)
def __init__(self, parent, id_num): """Initialize a notebook with a blank text control in it @param parent: parent window of the notebook @param id_num: this notebooks id """ style = aui.AUI_NB_DEFAULT_STYLE | \ aui.AUI_NB_WINDOWLIST_BUTTON | \ aui.AUI_NB_SMART_TABS | \ aui.AUI_NB_USE_IMAGES_DROPDOWN | \ aui.AUI_NB_TAB_EXTERNAL_MOVE # | \ # aui.AUI_NB_TAB_FIXED_WIDTH if wx.Platform == '__WXMAC__': style |= aui.AUI_NB_CLOSE_ON_TAB_LEFT aui.AuiNotebook.__init__(self, parent, id_num, style=style) # Notebook attributes self.LOG = wx.GetApp().GetLog() self._idletimer = wx.Timer(self, ID_IDLE_TIMER) self.DocMgr = ed_editv.EdEditorView.DOCMGR self._searchctrl = ed_search.SearchController(self, self.GetCurrentCtrl) self._searchctrl.SetLookinChoices( Profile_Get('SEARCH_LOC', default=list())) self._searchctrl.SetFileFilters( Profile_Get('SEARCH_FILTER', default='')) self.pg_num = -1 # Track new pages (aka untitled docs) self.mdown = -1 self.control = None self.frame = self.GetTopLevelParent() # MainWindow self._index = dict() # image list index self._ses_load = False self._menu = None # Setup Tab Navigator ed_icon = ed_glob.CONFIG['SYSPIX_DIR'] + u"editra.png" self.SetNavigatorIcon(wx.Bitmap(ed_icon, wx.BITMAP_TYPE_PNG)) # Setup the ImageList and the default image imgl = wx.ImageList(16, 16) txtbmp = wx.ArtProvider.GetBitmap(str(synglob.ID_LANG_TXT), wx.ART_MENU) self._index[synglob.ID_LANG_TXT] = imgl.Add(txtbmp) robmp = wx.ArtProvider.GetBitmap(str(ed_glob.ID_READONLY), wx.ART_MENU) self._index[ed_glob.ID_READONLY] = imgl.Add(robmp) self.SetImageList(imgl) # Set custom options self.SetSashDClickUnsplit(True) # Notebook Events self.Bind(aui.EVT_AUINOTEBOOK_PAGE_CHANGING, self.OnPageChanging) self.Bind(aui.EVT_AUINOTEBOOK_PAGE_CHANGED, self.OnPageChanged) self.Bind(aui.EVT_AUINOTEBOOK_PAGE_CLOSE, self.OnPageClosing) self.Bind(aui.EVT_AUINOTEBOOK_PAGE_CLOSED, self.OnPageClosed) self.Bind(aui.EVT_AUINOTEBOOK_TAB_DCLICK, self.OnTabLeftDClick) self.Bind(aui.EVT_AUINOTEBOOK_BG_DCLICK, self.OnBGLeftDClick) self.Bind(aui.EVT_AUINOTEBOOK_TAB_MIDDLE_DOWN, self.OnMClickDown) self.Bind(aui.EVT_AUINOTEBOOK_TAB_MIDDLE_UP, self.OnMClickUp) self.Bind(aui.EVT_AUINOTEBOOK_TAB_RIGHT_UP, self.OnTabMenu) self.Bind(aui.EVT_AUINOTEBOOK_ALLOW_DND, self.OnAllowDnD) self.Bind(wx.stc.EVT_STC_CHANGE, self.OnUpdatePageText) self.Bind(wx.EVT_MENU, self.OnMenu) self.Bind(wx.EVT_TIMER, self.OnIdle, id=ID_IDLE_TIMER) # Message handlers ed_msg.Subscribe(self.OnThemeChanged, ed_msg.EDMSG_THEME_CHANGED) ed_msg.Subscribe(self.OnThemeChanged, ed_msg.EDMSG_THEME_NOTEBOOK) ed_msg.Subscribe(self.OnUpdatePosCache, ed_msg.EDMSG_UI_STC_POS_JUMPED) ed_msg.RegisterCallback(self.OnDocPointerRequest, ed_msg.EDREQ_DOCPOINTER) # Add a blank page self.NewPage() self._idletimer.Start(333) # Do idle checks 3 times a second