From: <sir...@us...> - 2003-04-05 11:06:11
|
Update of /cvsroot/btplusplus/BT++/src/TabLog In directory sc8-pr-cvs1:/tmp/cvs-serv27446/src/TabLog Modified Files: TabLog.py LogWindow.py Added Files: MultiPartFrame.py Log Message: Started modifying/reworking the whole logging system. It is work in progress... but working. --- NEW FILE: MultiPartFrame.py --- from wxPython.wx import * import math ########################################################################################################### ########################################################################################################### class MultiPartFrame(wxPanel): ########################################################################################################### SubPanels = [] BitmapOn = None BitmapOff = None ########################################################################################################### def __init__(self, parent, pos, size, bitmapon = None, bitmapoff = None): wxPanel.__init__(self, parent, -1, pos, size, style = 0) self.BitmapOn = bitmapon self.BitmapOff = bitmapoff EVT_SIZE(self, self.OnSize) ########################################################################################################### def Attach(self, child, name): window = MultiPartWindow(self, name, None, self.BitmapOn, self.BitmapOff) child.Reparent(self) self.SubPanels.append( [window, child, False] ) self.DoLayout() ########################################################################################################### def ShowSubPanel(self, panel, show = True): for bit in self.SubPanels: if bit[1] == panel: bit[2] = show self.DoLayout() return ########################################################################################################### def OnLeft(self, evt): win = evt.GetEventObject() for bit in self.SubPanels: if bit[0] == win: bit[2] = not bit[2] self.DoLayout() return ########################################################################################################### def OnSize(self, evt): self.DoLayout() ########################################################################################################### def DoLayout(self): numwin = 0 numpan = 0 for bit in self.SubPanels: numwin = numwin + 1 if bit[2]: bit[1].Show(True) if bit[0].Bitmap != None: bit[0].Bitmap.SetBitmap(self.BitmapOn) numpan = numpan + 1 else: bit[1].Show(False) if bit[0].Bitmap != None: bit[0].Bitmap.SetBitmap(self.BitmapOff) width,height = self.GetSizeTuple() if numpan > 0: winheight = math.floor( (height - 30 * numwin - 5 * (numpan - 1)) / numpan ) else: winheight = 0 x = 0 y = -5 for bit in self.SubPanels: window,panel,show = bit window.SetDimensions(x, y + 5, width, 25, sizeFlags = 0) y = y + 30 if show == True: panel.SetDimensions(x, y + 5, width, winheight, sizeFlags = 0) y = y + winheight + 5 ########################################################################################################### ########################################################################################################### class MultiPartWindow(wxWindow): ########################################################################################################### def __init__(self, parent, name, menu = None, bm_on = None, bm_off = None): wxWindow.__init__(self, parent, -1, style = wxSIMPLE_BORDER) self.SetBackgroundColour( wxColour(206,206,255) ) t = wxStaticText(self, -1, name, wxPoint(5,5)) f = t.GetFont() f.SetWeight(wxBOLD) t.SetFont(f) if bm_on != None and bm_off != None: w,h = self.GetSizeTuple() b = wxStaticBitmap(self, -1, bm_off, wxPoint(w - 20,9)) else: b = None self.BitmapOn = bm_on self.BitmapOff = bm_off self.Text = t self.Bitmap = b EVT_SIZE(self, self.OnSize) EVT_LEFT_DCLICK(self, parent.OnLeft) ########################################################################################################### def OnSize(self, evt): w = evt.GetSize().GetWidth() if self.Bitmap != None: self.Bitmap.SetPosition(wxPoint(w - 20,9)) Index: TabLog.py =================================================================== RCS file: /cvsroot/btplusplus/BT++/src/TabLog/TabLog.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** TabLog.py 10 Mar 2003 18:45:57 -0000 1.4 --- TabLog.py 5 Apr 2003 11:05:37 -0000 1.5 *************** *** 1,4 **** ! from wxPython.wx import * ! from LogWindow import * class TabLog(wxPanel): --- 1,8 ---- ! from wxPython.wx import * ! from MultiPartFrame import MultiPartFrame ! from Images import GetBitmap ! from LogWindow import LogWindow ! ! import Log class TabLog(wxPanel): *************** *** 6,25 **** wxPanel.__init__(self, parent, -1, wxPoint(2,65), wxSize(786,347), style = 0) ! self.LogWnd = LogWindow( self, wxPoint(0,0), wxSize(786,180) ) ! self.LogWnd.SetHelpText("This is the log window, details on torrents (and errors) will appear here.") ! Log( '', window = self.LogWnd ) ! Log( 'Starting up...', [0,0,0], false ) ! self.ButClearLog = wxButton(self, -1, 'Clear Log', wxPoint(0,180) ) ! sizer = wxBoxSizer(wxVERTICAL) ! sizer.Add( self.LogWnd, 1, wxEXPAND | wxALL, 3) ! sizer.Add( self.ButClearLog, 0, wxALIGN_RIGHT | wxBOTTOM | wxLEFT | wxRIGHT, 3) ! self.SetSizer( sizer ) ! ! EVT_BUTTON( self, self.ButClearLog.GetId(), self.Func_ButClearLog ) ! def Func_ButClearLog(self, evt): ! self.LogWnd.Clear() --- 10,44 ---- wxPanel.__init__(self, parent, -1, wxPoint(2,65), wxSize(786,347), style = 0) ! self.mpf = MultiPartFrame(self, wxPoint(2,60), wxSize(500,250), GetBitmap('Log_On'), GetBitmap('Log_Off') ) ! self.mpf.SetHelpText("This is the log window, details on torrents (and errors) will appear here.") ! ! self.p1 = wxPanel(self.mpf, -1, style = 0) ! self.p2 = wxPanel(self.mpf, -1, style = 0) ! self.p3 = wxPanel(self.mpf, -1, style = 0) ! ! self.mpf.Attach(self.p1, 'General') ! self.mpf.Attach(self.p2, 'Downloads') ! self.mpf.Attach(self.p3, 'Seeds') ! s1 = wxBoxSizer(wxVERTICAL) ! s2 = wxBoxSizer(wxVERTICAL) ! s3 = wxBoxSizer(wxVERTICAL) ! l1 = LogWindow.LogWindow(self.p1, wxPoint(0,0)) ! l2 = LogWindow.LogWindow(self.p2, wxPoint(0,0)) ! l3 = LogWindow.LogWindow(self.p3, wxPoint(0,0)) ! s1.Add( l1, 1, wxEXPAND | wxALL, 0) ! s2.Add( l2, 1, wxEXPAND | wxALL, 0) ! s3.Add( l3, 1, wxEXPAND | wxALL, 0) ! self.p1.SetSizer( s1 ) ! self.p2.SetSizer( s2 ) ! self.p3.SetSizer( s3 ) ! sizer = wxBoxSizer(wxHORIZONTAL) ! sizer.Add( self.mpf, 1, wxEXPAND | wxALL, 3) ! self.SetSizer(sizer) ! ! Log.Info.AddHandler(l1) ! Log.Info( 'Starting up...' ) Index: LogWindow.py =================================================================== RCS file: /cvsroot/btplusplus/BT++/src/TabLog/LogWindow.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** LogWindow.py 3 Mar 2003 22:15:26 -0000 1.4 --- LogWindow.py 5 Apr 2003 11:05:37 -0000 1.5 *************** *** 1,25 **** from wxPython.wx import * from BTConstants import * ! class LogWindow(wxTextCtrl): ! def __init__(self, parent, pos, size): ! wxTextCtrl.__init__(self, parent, -1, '', pos, size, (wxSIMPLE_BORDER | wxTE_MULTILINE | wxTE_DONTWRAP | wxTE_READONLY | wxTE_RICH)) ! ! def Log(self, text, color = [0, 0, 0], lbreak = true): ! self.SetDefaultStyle(wxTextAttr(wxColour( color[1], ! color[1], ! color[2] ))) ! if lbreak == true: ! self.AppendText('\n' + text) ! else: ! self.AppendText(text) ! global _UsedWindow ! _UsedWindow = None def Log(text, color = [255,0,0], lbreak = true, window = None, loglevel = LOG_INFO): - global _UsedWindow - if loglevel == LOG_TRIVIAL: return --- 1,52 ---- from wxPython.wx import * from BTConstants import * + from Images import GetBitmap ! import time ! import Logging ! import Log as NewLog ! ! ########################################################################################################### ! ########################################################################################################### ! ! class LogWindow(wxListCtrl,Logging.Handler): ! ! ########################################################################################################### ! ! def __init__(self, parent, pos): ! wxListCtrl.__init__(self, parent, -1, pos, style = wxSIMPLE_BORDER | wxLC_REPORT) ! imglist = wxImageList(16, 16) ! imglist.Add( GetBitmap('Log_Info') ) ! imglist.Add( GetBitmap('Log_Error') ) ! imglist.Add( GetBitmap('Log_Fatal') ) ! ! self.AssignImageList(imglist, wxIMAGE_LIST_SMALL) ! self.InsertColumn(0, '') ! self.InsertColumn(1, 'Timestap') ! self.InsertColumn(2, 'Message') ! ! EVT_SIZE(self, self.OnSize) ! ! ########################################################################################################### ! ! def Log(self, msg, severity): ! i = self.GetItemCount() ! self.InsertImageItem(i, 0) ! self.SetStringItem(i, 1, time.strftime('%d.%m.%Y - %H:%M:%S')) ! self.SetStringItem(i, 2, msg) ! ! ########################################################################################################### ! ! def OnSize(self, evt): ! self.SetColumnWidth(0, 22) ! self.SetColumnWidth(1, 130) ! self.SetColumnWidth(2, evt.GetSize().GetWidth() - 168) ! ! ########################################################################################################### ! ########################################################################################################### def Log(text, color = [255,0,0], lbreak = true, window = None, loglevel = LOG_INFO): if loglevel == LOG_TRIVIAL: return *************** *** 28,36 **** color = [255,0,0] ! if window != None: ! _UsedWindow = window ! else: ! if _UsedWindow: ! _UsedWindow.Log(text, color, lbreak) if loglevel == LOG_CRITICAL: --- 55,59 ---- color = [255,0,0] ! NewLog.Info(text, 0) if loglevel == LOG_CRITICAL: |