view sandbox/wx-dc.py @ 275:4a2341bc90b1
base.Sequence major cleanup
* moved base.Sequence.secstr_has to pdb (it appears that secondary structure it
uses is from PDB, which is not a nice thing to do; secondary structure is an
entity in itself and must have same names across different sources)
* removed stupid base.Sequence.monomers, since base.Sequence is subclass of list
* removed all methods that reimplement list behaviour
* fixed headers of base.Sequence.from_slice
author |
Daniil Alexeyevsky <me.dendik@gmail.com> |
date |
Wed, 15 Dec 2010 20:06:27 +0300 |
parents |
|
children |
61e5d8e146c7 |
line source
7 class Text(bufferedcanvas.BufferedCanvas):
9 def __init__(self, seqs, *args, **kw):
11 self.font = wx.FFont(12, wx.FONTFAMILY_MODERN)
12 bufferedcanvas.BufferedCanvas.__init__(self, *args, **kw)
14 dc = wx.ClientDC(self)
16 w = (len(seqs[0][1])+1) * dc.GetCharWidth()
17 h = (len(seqs)+1) * (dc.GetCharHeight() + 1)
19 self.SetVirtualSize(self.size)
21 self.Bind(wx.EVT_SCROLL, self.onPaint)
26 dc.SetBackground(wx.Brush("White"))
31 h = dc.GetCharHeight()
32 for i, (name, body, ids, colors) in enumerate(self.seqs):
33 for j in xrange(len(body)):
36 dc.SetBrush(wx.Brush(colors[j]))
37 dc.SetPen(wx.Pen(colors[j]))
38 dc.DrawRectangle(x, y, x + w, y + h)
39 dc.SetPen(wx.Pen("Black"))
40 dc.DrawText(body[j], x, y)
42 if hasattr(self, 'size'):
43 self.SetVirtualSize(self.size)
45 seqs = common.autoload('data/small.fasta')
48 top = wx.Frame(None, title='Example', size=(500, 500))
49 text = Text(seqs, top)