16 |
# write to the Free Software Foundation, Inc., 59 Temple Place |
# write to the Free Software Foundation, Inc., 59 Temple Place |
17 |
# - Suite 330, Boston, MA 02111-1307, USA. |
# - Suite 330, Boston, MA 02111-1307, USA. |
18 |
# |
# |
19 |
# Copyright 2002 Free Software Foundation |
# Copyright 2002-2003 Free Software Foundation |
20 |
# |
# |
21 |
# FILE: |
# FILE: |
22 |
# VScrollBar.py |
# VScrollBar.py |
60 |
self.leftarrow = VButton(Parent,'leftarrow',Y,X,3,'^') |
self.leftarrow = VButton(Parent,'leftarrow',Y,X,3,'^') |
61 |
self.leftarrow.SetMethod("CLICK",self._Dec) |
self.leftarrow.SetMethod("CLICK",self._Dec) |
62 |
Parent.AddControl(self.leftarrow) |
Parent.AddControl(self.leftarrow) |
63 |
self.COLOR = sio.C_SCROLL_BACKGROUND |
self.SetColor('SCROLL_BACKGROUND') |
64 |
|
|
65 |
def Init(self, Max): |
def Init(self, Max): |
66 |
self._max = Max |
self._max = Max |
67 |
self._val = 0 |
self._val = 0 |
|
self.WorkingArea = float(self.H-9) |
|
68 |
self.start = self.Y+ 3 |
self.start = self.Y+ 3 |
69 |
|
self.WorkingArea = float(self.H-9) |
70 |
self.UsedSpace = int(math.floor(self.WorkingArea / float(self._max))) |
self.UsedSpace = int(math.floor(self.WorkingArea / float(self._max))) |
71 |
self.stepsize = self.WorkingArea / self._max |
self.stepsize = self.WorkingArea / self._max |
72 |
if self.UsedSpace < 1: |
if self.UsedSpace < 1: |
74 |
self.Paint(None,None,None) |
self.Paint(None,None,None) |
75 |
|
|
76 |
def Paint(self,v1,v2,v3): |
def Paint(self,v1,v2,v3): |
77 |
Pos = int(math.ceil(float(self._val) * (self.stepsize))) + self.start |
Pos = int(math.ceil(float(self._val) * (self.stepsize))) + self._ABSY + self.start |
78 |
Screen = self.PARENT.Screen() |
Screen = self.PARENT.Screen() |
79 |
Screen.AutoRefresh = 0 |
Screen.AutoRefresh = 0 |
80 |
# clear the bar region in reverse standard-color |
# clear the bar region in reverse standard-color |
|
self.SetColor(sio.C_SCROLL_BACKGROUND) |
|
|
# self.LoLight() |
|
81 |
for i in range(0, int(self.WorkingArea)): |
for i in range(0, int(self.WorkingArea)): |
82 |
Screen.PutAt( self.start + i,self.X, '?') #, curses.A_REVERSE) |
Screen.PutAt( self._ABSY + self.start + i,self._ABSX, '|', Screen.colors.C_BACKGROUND) |
83 |
# correct position |
# correct position |
84 |
if Pos >= (self.WorkingArea + self.start): |
if Pos >= (self.WorkingArea + self.start): |
85 |
Pos = (self.start + self.WorkingArea) |
Pos = (self.start + self.WorkingArea) |
86 |
elif Pos < (self.start + self.UsedSpace): |
elif Pos < (self.start + self.UsedSpace): |
87 |
Pos = self.start + self.UsedSpace |
Pos = self.start + self.UsedSpace |
88 |
# draw the handle in "menu"-hilight |
# draw the handle |
89 |
if self.FOCUS: |
if self.FOCUS: |
90 |
self.SetColor(sio.C_SCROLL_SLIDER_FOCUS) |
color = self.SCREEN.colors.C_SCROLL_SLIDER_FOCUS |
91 |
else: |
else: |
92 |
self.SetColor(sio.C_SCROLL_SLIDER) |
color = self.SCREEN.colors.C_SCROLL_SLIDER |
93 |
#self.LoLight() |
|
94 |
for i in range(0, self.UsedSpace): |
for i in range(0, self.UsedSpace): |
95 |
Screen.PutAt((Pos - self.UsedSpace) + i,self.X, 'x')#, curses.A_REVERSE) |
Screen.PutAt((self._ABSY + Pos - self.UsedSpace) + i,self._ABSX, '0', color) |
96 |
Screen.AutoRefresh = 1 |
Screen.AutoRefresh = 1 |
97 |
Screen.Refresh() |
Screen.Refresh() |
98 |
|
|
99 |
def _ChangePos(self,arg1,newY,arg3): |
def _ChangePos(self,arg1,newY,arg3): |
100 |
Screen = self.PARENT.Screen() |
Screen = self.PARENT.Screen() |
101 |
Y = newY - self.start |
Y = newY - self.start |
102 |
Screen.PrintAt(0,0,'Y = ' + str(Y) + ' ' + str(self.WorkingArea)) |
## Screen.PrintAt(0,0,'Y = ' + str(Y) + ' ' + str(self.WorkingArea)) |
103 |
if Y >= (self.WorkingArea-1): |
if Y >= (self.WorkingArea-1): |
104 |
val = self._max |
val = self._max |
105 |
else: |
else: |