Column widths now generated from definitions

This commit is contained in:
John Ladan 2012-03-21 16:06:34 -04:00
parent e668142c15
commit a88034f94e
2 changed files with 24 additions and 5 deletions

View File

@ -6,10 +6,11 @@ class browserWindow:
hl=0
books = []
topline = 0
columns = [('ID',3),
('Title',30),
('Authors',20),
('ISBN',13)]
# column definitions are in (label, weight, specified width) triples
columnDefs = [('ID',0,3),
('ISBN',0,13),
('Authors',30,None),
('Title',60,None)]
mx = my = 0
# redefinable functions
@ -44,6 +45,7 @@ class browserWindow:
def __init__(self,window):
self.w = window
self.updateGeometry()
self.calcColWidths()
self.refreshBooks()
def refreshBooks(self):
@ -57,6 +59,23 @@ class browserWindow:
self.pageSize = self.my-3
# maybe recalculate column widths here.
def calcColWidths(self):
total_weights = 0
available_space = self.mx - len(self.columnDefs)
cols = []
for label,weight,value in self.columnDefs:
if value!=None:
available_space -= value
else:
total_weights+=weight
for label,weight,value in self.columnDefs:
if value!=None:
cols.append((label,value))
else:
cols.append((label,available_space*weight/total_weights))
self.columns=cols
def refresh(self):
self.displayHeader()
for r in range(0,self.pageSize):

View File

@ -89,7 +89,7 @@ def deleteMenu():
w.refresh()
def browseMenu():
w=curses.newwin(10,80,20,20)
w=curses.newwin(30,80,20,20)
b = browser.browserWindow(w)
b.startBrowser()
b.clear()