|
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:
|