home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 1.4)
-
- import tbevent
- import window
- argv
- *
- NoSuchNode
- import icache
- import string
- import regex
- import regsub
- backcol = -256
- forecol = 0
- fontname = 'Corpus.Bold'
- pointsize = 11
- nchars = 80
- fh = swi(393345, '.sii00;i', fontname, pointsize * 16, pointsize * 16)
- bb = block(9, [
- 0,
- 0,
- 0,
- 0,
- -1])
- big = 2147483647
- swi(393377, 'isiiib', fh, 'M' * nchars, (1 << 18) + (1 << 8) + (1 << 5), big, big, bb)
- width = (bb[7] - bb[5]) / 400
- ht = (bb[8] - bb[6]) / 200
- ctrlchars = regex.compile('[\x01-\x1f]')
-
- class Display(window.Window):
- actions = { }
-
- def __init__(self, file, ref):
- self.list = []
- self.file = ''
- if self.move(file, ref):
- window.Window.__init__(self, 'Display')
- tbevent.tbclasses[self.id] = self
- self.handle = self.getwimphandle()
- tbevent.winclasses[self.handle] = self
- self.toolbar = window.Window(self.gettoolbars()[1])
- self.setup()
-
-
-
- def setup(self):
- self.hide()
- self.setextent(0, -ht * self.nl, width, ht + 64)
- self.settitle('(' + self.file + ')' + self.node)
- self.show()
- self.findstr = ''
- self.findline = 0
-
-
- def move(self, file, ref):
-
- try:
- (file, node, header, menu, footnotes, text) = icache.get_node(file, ref)
- except NoSuchFile:
- file = None
- print "can't find file ", file
- return 0
- except NoSuchNode:
- node = None
- print "can't find node ", node
- return 0
-
- self.lines = string.splitfields(text, '\n')
- self.nl = len(self.lines)
- for n in range(self.nl):
- self.lines[n] = regsub.gsub(ctrlchars, ' ', self.lines[n])
-
- self.header = header
- self.file = file
- self.node = node
- if menu:
- self.newmenu = menu
- else:
- self.newmenu = []
- self.notes = footnotes
- return 1
-
-
- def E_SS_ValueChanged(self):
- g = tbevent.idblock[5]
- n = self.toolbar.stringset_getindex(g) - 1
- if n < 0:
- return None
-
- if g == 3:
- if self.move(self.file, self.menu[n][1]):
- self.setup()
-
-
- if g == 10:
- if self.move(self.file, self.notes[n][1]):
- self.setup()
-
-
-
-
- def E_Move(self):
- s = self.toolbar.writeable_getvalue(4)
- if self.move(self.file, s):
- self.setup()
-
-
-
- def E_Find(self):
- s = self.toolbar.writeable_getvalue(4)
-
- try:
- pat = regex.compile(s)
- except regex.error:
- msg = None
- print 'bad pattern ', msg
- return None
-
- if self.findstr != s:
- self.findstr = s
- self.findline = 0
-
- for n in range(self.findline + 1, self.nl):
- pass
-
-
-
- def E_Next(self):
- (prev, next, up) = self.header
- if next:
- if self.move(self.file, next):
- self.setup()
-
-
-
-
- def E_Previous(self):
- (prev, next, up) = self.header
- if prev:
- if self.move(self.file, prev):
- self.setup()
-
-
-
-
- def E_Up(self):
- (prev, next, up) = self.header
- if up:
- if self.move(self.file, up):
- self.setup()
-
-
-
-
- def E_Clone(self):
- a = Display(self.file, self.node)
-
-
- def E_Dir(self):
- if self.move('dir', 'Top'):
- self.setup()
-
-
-
- def E_Last(self):
- if self.list:
- a = self.list[0]
- self.list = self.list[1:]
- if self.move(a[0], a[1]):
- self.setup()
- self.list = self.list[1:]
-
-
-
-
- def W_Redraw(self):
- more = swi(262344, '.b;i', tbevent.wblock)
- bx = tbevent.wblock[1] - tbevent.wblock[5]
- by = tbevent.wblock[4] - tbevent.wblock[6]
- swi(264015, 'iiii', fh, backcol, forecol, 14)
- while more:
- tl = -1 + (by - tbevent.wblock[10]) / ht
- if tl < 0:
- tl = 0
-
- bl = 2 + (by - tbevent.wblock[8]) / ht
- if bl > self.nl:
- bl = self.nl
-
- for y in range(tl, bl):
- swi(262278, 'isiii000', fh, self.lines[y], 272, bx, by - y * ht)
-
- more = swi(262346, '.b;i', tbevent.wblock)
- continue
- 0
-
-
-
- class Orphans:
- actions = { }
-
- def __init__(self):
- tbevent.tbclasses[0] = self
-
-
- def BarClick(self):
- a = Display('dir', 'Top')
-
-
- def E_Q_Quit(self):
- exit()
-
-
-
- class Messenger:
-
- def Wimp_MQuit(self):
- exit()
-
-
- tbevent.initialise('<ibrowse$Dir>')
- oi = Orphans()
- tbevent.msghandler = Messenger()
- tbevent.usereport = 16
- while 1:
- tbevent.poll()
- continue
- None if len(argv) > 2 else import sys
-