|
|
@@ -109,10 +109,11 @@ class DirectScrolledList(DirectFrame):
|
|
|
|
|
|
self.initialiseoptions(DirectScrolledList)
|
|
|
self.recordMaxHeight()
|
|
|
- #if len(self["items"]) > 0:
|
|
|
- # self.scrollTo(0)
|
|
|
self.scrollTo(0)
|
|
|
|
|
|
+ # test
|
|
|
+ base.sl = self
|
|
|
+
|
|
|
def setForceHeight(self):
|
|
|
assert self.notify.debugStateCall(self)
|
|
|
self.forceHeight = self["forceHeight"]
|
|
|
@@ -157,7 +158,7 @@ class DirectScrolledList(DirectFrame):
|
|
|
|
|
|
def scrollBy(self, delta):
|
|
|
assert self.notify.debugStateCall(self)
|
|
|
- # print "scrollBy[", delta,"]"
|
|
|
+ #print "scrollBy[", delta,"]"
|
|
|
return self.scrollTo(self.index + delta)
|
|
|
|
|
|
def getItemIndexForItemID(self, itemID):
|
|
|
@@ -169,13 +170,13 @@ class DirectScrolledList(DirectFrame):
|
|
|
return 0
|
|
|
|
|
|
if(type(self["items"][0])!=types.InstanceType):
|
|
|
- print "warning: getItemIndexForItemID: cant find itemID for non-class list items!"
|
|
|
+ self.notify.warning("getItemIndexForItemID: cant find itemID for non-class list items!")
|
|
|
return 0
|
|
|
|
|
|
for i in range(len(self["items"])):
|
|
|
if(self["items"][i].itemID == itemID):
|
|
|
return i
|
|
|
- print "warning: getItemIndexForItemID: item not found!"
|
|
|
+ self.notify.warning("getItemIndexForItemID: item not found!")
|
|
|
return 0
|
|
|
|
|
|
def scrollToItemID(self, itemID, centered=0):
|
|
|
@@ -185,7 +186,7 @@ class DirectScrolledList(DirectFrame):
|
|
|
def scrollTo(self, index, centered=0):
|
|
|
""" scrolls list so selected index is at top, or centered in box"""
|
|
|
assert self.notify.debugStateCall(self)
|
|
|
- # print "scrollTo[", index,"] called, len(self[items])=", len(self["items"])," self[numItemsVisible]=", self["numItemsVisible"]
|
|
|
+ #print "scrollTo[", index,"] called, len(self[items])=", len(self["items"])," self[numItemsVisible]=", self["numItemsVisible"]
|
|
|
try:
|
|
|
self["numItemsVisible"]
|
|
|
except:
|
|
|
@@ -211,16 +212,21 @@ class DirectScrolledList(DirectFrame):
|
|
|
else:
|
|
|
if (self.index <= 0):
|
|
|
self.index = 0
|
|
|
+ self.__buttonUp(0)
|
|
|
self.decButton['state'] = DGG.DISABLED
|
|
|
self.incButton['state'] = DGG.NORMAL
|
|
|
ret = 0
|
|
|
elif (self.index >= (numItemsTotal - numItemsVisible)):
|
|
|
self.index = numItemsTotal - numItemsVisible
|
|
|
# print "at list end, ", len(self["items"])," ", self["numItemsVisible"]
|
|
|
+ self.__buttonUp(0)
|
|
|
self.incButton['state'] = DGG.DISABLED
|
|
|
self.decButton['state'] = DGG.NORMAL
|
|
|
ret = 0
|
|
|
else:
|
|
|
+ # deal with an edge condition - make sure any tasks are removed from the disabled arrows.
|
|
|
+ if (self.incButton['state'] == DGG.DISABLED) or (self.decButton['state'] == DGG.DISABLED):
|
|
|
+ self.__buttonUp(0)
|
|
|
self.incButton['state'] = DGG.NORMAL
|
|
|
self.decButton['state'] = DGG.NORMAL
|
|
|
ret = 1
|
|
|
@@ -270,7 +276,7 @@ class DirectScrolledList(DirectFrame):
|
|
|
# If the item is a 'str', then it has not been created
|
|
|
# Therefore, use the the function given to make it or
|
|
|
# just make it a frame
|
|
|
- print "Making " + str(item)
|
|
|
+ #print "Making " + str(item)
|
|
|
if item.__class__.__name__ == 'str':
|
|
|
if self['itemMakeFunction']:
|
|
|
# If there is a function to create the item
|
|
|
@@ -307,7 +313,6 @@ class DirectScrolledList(DirectFrame):
|
|
|
self.scrollBy(task.delta)
|
|
|
taskMgr.add(task, self.taskName("scroll"))
|
|
|
|
|
|
-
|
|
|
def __decButtonDown(self, event):
|
|
|
assert self.notify.debugStateCall(self)
|
|
|
task = Task(self.__scrollByTask)
|
|
|
@@ -316,11 +321,11 @@ class DirectScrolledList(DirectFrame):
|
|
|
task.delta = -1
|
|
|
self.scrollBy(task.delta)
|
|
|
taskMgr.add(task, self.taskName("scroll"))
|
|
|
-
|
|
|
+
|
|
|
def __buttonUp(self, event):
|
|
|
assert self.notify.debugStateCall(self)
|
|
|
taskMgr.remove(self.taskName("scroll"))
|
|
|
-
|
|
|
+
|
|
|
def addItem(self, item, refresh=1):
|
|
|
"""
|
|
|
Add this string and extraArg to the list
|