home *** CD-ROM | disk | FTP | other *** search
/ PC PowerPlay 56 / CDPowerplay56Disc2.iso / demos / blade / data1.cab / Program_Executable_Files / Lib / Widgets / SpinWidget.py < prev    next >
Encoding:
Python Source  |  2000-10-27  |  5.1 KB  |  188 lines

  1.  
  2.  
  3.  
  4.  
  5. import BUIx
  6. import DistortFX
  7. import types
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14. class B_SpinWidgetAux(BUIx.B_FrameWidget):
  15.   def __init__(self,Parent,Name,Width,Height,font_server,font):
  16.     BUIx.B_FrameWidget.__init__(self,Parent,Name,Width,Height)
  17.     self.LeftArrow=BUIx.B_TextWidget(self,"SpinLArrow "+Name,"<",font_server,font)
  18.     self.AddWidget(self.LeftArrow,1,0.5,BUIx.B_FrameWidget.B_FR_AbsoluteLeft,BUIx.B_FrameWidget.B_FR_Left,
  19.                                       BUIx.B_FrameWidget.B_FR_VRelative,BUIx.B_FrameWidget.B_FR_VCenter)
  20.     self.LeftArrow.SetColor(250,0,0)
  21.     self.LeftArrow.SetAlpha(1)
  22.  
  23.     self.RightArrow=BUIx.B_TextWidget(self,"SpinRArrow "+Name,">",font_server,font)
  24.     self.AddWidget(self.RightArrow,1,0.5,BUIx.B_FrameWidget.B_FR_AbsoluteRight,BUIx.B_FrameWidget.B_FR_Right,
  25.                                         BUIx.B_FrameWidget.B_FR_VRelative,BUIx.B_FrameWidget.B_FR_VCenter)
  26.     self.RightArrow.SetColor(250,0,0)
  27.     self.RightArrow.SetAlpha(1)
  28.  
  29.     self.Text=BUIx.B_TextWidget(self,"SpinTextAux "+Name,"0",font_server,font) # 0 == self.Value
  30.     self.AddWidget(self.Text,0.5,0.5,BUIx.B_FrameWidget.B_FR_HRelative,BUIx.B_FrameWidget.B_FR_HCenter,
  31.                                    BUIx.B_FrameWidget.B_FR_VRelative,BUIx.B_FrameWidget.B_FR_VCenter)
  32.     self.Text.SetColor(250,0,0)
  33.     self.Text.SetAlpha(1)
  34.  
  35.     self.LowLimit=0
  36.     self.UpLimit=10
  37.     self.Steps=10
  38.     self.Value=0
  39.     self.__SetIncrement()
  40.     self.AdjustArrows()
  41.  
  42.  
  43.  
  44.   def SetLimits(self,low,up):
  45.     if low>up:
  46.       return
  47.  
  48.     self.LowLimit=low
  49.     self.UpLimit=up
  50.     self.__SetIncrement()
  51.  
  52.     if self.Value<low:
  53.       self.Value=low
  54.     elif self.Value>up:
  55.       self.Value=up
  56.  
  57.  
  58.   def SetSteps(self,steps):
  59.     if steps<0:
  60.       return
  61.  
  62.     self.Steps=steps
  63.     self.__SetIncrement()
  64.  
  65.  
  66.   def __SetIncrement(self):
  67.     self.Increment=(self.UpLimit-self.LowLimit)/self.Steps
  68.  
  69.  
  70.   def AdjustArrows(self):
  71.     if self.Value<=self.LowLimit:
  72.       self.LeftArrow.SetVisible(0)
  73.     else:
  74.       self.LeftArrow.SetVisible(1)
  75.  
  76.     if self.Value>=self.UpLimit:
  77.       self.RightArrow.SetVisible(0)
  78.     else:
  79.       self.RightArrow.SetVisible(1)
  80.  
  81.  
  82.  
  83.   def IncrementValue(self):
  84.     self.Value=self.Value+self.Increment
  85.     if self.Value>self.UpLimit:
  86.       self.Value=self.UpLimit
  87.  
  88.     self.UpdateDisplayValue()
  89.  
  90.  
  91.   def DecrementValue(self):
  92.     self.Value=self.Value-self.Increment
  93.     if self.Value<self.LowLimit:
  94.       self.Value=self.LowLimit
  95.  
  96.     self.UpdateDisplayValue()
  97.  
  98.  
  99.   def UpdateDisplayValue(self):
  100.     if type(self.Value)==types.FloatType:
  101.       str_tmp="%.2f" % self.Value
  102.       self.Text.SetText(str_tmp)
  103.     else:
  104.       self.Text.SetText(str(self.Value))
  105.     self.RecalcLayout()
  106.     self.AdjustArrows()
  107.  
  108.  
  109.   def SetValue(self,value):
  110.     if value>=self.LowLimit and value<=self.UpLimit and value!=self.Value:
  111.       self.Value=value
  112.       self.UpdateDisplayValue()
  113.  
  114.  
  115.  
  116.  
  117. class B_SpinWidget(BUIx.B_FrameWidget):
  118.   def __init__(self,Parent,Name,Width,Height,font_server,font):
  119.     BUIx.B_FrameWidget.__init__(self,Parent,Name,Width,Height)
  120.     self.Text=BUIx.B_TextWidget(self,"SpinLArrow "+Name,Name,font_server,font)
  121.     self.AddWidget(self.Text,1,0.5,BUIx.B_FrameWidget.B_FR_AbsoluteLeft,BUIx.B_FrameWidget.B_FR_Left,
  122.                                    BUIx.B_FrameWidget.B_FR_VRelative,BUIx.B_FrameWidget.B_FR_VCenter)
  123.     self.Spin=B_SpinWidgetAux(self,"SpinText "+Name,80,Width,font_server,font) # 50 a ojo (Estoy hasta los c######).
  124.     self.AddWidget(self.Spin,1,0.5,BUIx.B_FrameWidget.B_FR_AbsoluteRight,BUIx.B_FrameWidget.B_FR_Right,
  125.                                    BUIx.B_FrameWidget.B_FR_VRelative,BUIx.B_FrameWidget.B_FR_VCenter)
  126.     self.SetDrawFunc(self.Draw)
  127.  
  128.  
  129.   def SetLimits(self,low,up):
  130.     self.Spin.SetLimits(low,up)
  131.  
  132.  
  133.   def SetSteps(self,steps):
  134.     self.Spin.SetSteps(steps)
  135.  
  136.  
  137.   def IncrementValue(self):
  138.     self.Spin.IncrementValue()
  139.  
  140.   def DecrementValue(self):
  141.     self.Spin.DecrementValue()
  142.  
  143.   def SetValue(self,value):
  144.     self.Spin.SetValue(value)
  145.  
  146.   def GetValue(self):
  147.     return self.Spin.Value
  148.  
  149.   def Draw(self,x,y,time):
  150.     foc=self.GetHasFocus()
  151.     self.Text.SetAlpha(1.0)
  152.     if foc:
  153.       self.Text.SetColor(254,148,1)
  154.     else:
  155.       self.Text.SetColor(220,10,10)
  156.     self.DefDraw(x,y,time)
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163. class B_SpinFXWidget(B_SpinWidget): #,DistortFX.B_DistortFX):
  164.   def __init__(self,Parent,Name,Width,Height,font_server,font,dist_size=45,color=(255,10,10)):
  165.     B_SpinWidget.__init__(self,Parent,Name,Width,Height,font_server,font)
  166.     #DistortFX.B_DistortFX.__init__(self,dist_size,color)
  167.     self.SetDrawFunc(self.Draw)
  168.  
  169.   def IncrementValue(self):
  170.     v1=self.GetValue()
  171.     B_SpinWidget.IncrementValue(self)
  172.     if v1!=self.GetValue():
  173.       self.FilterUpdated=0
  174.       self.SelectionFilterUpdated=0
  175.       self.Filter=None
  176.       self.SelectionFilter=None
  177.  
  178.   def DecrementValue(self):
  179.     v1=self.GetValue()
  180.     B_SpinWidget.DecrementValue(self)
  181.     if v1!=self.GetValue():
  182.       self.FilterUpdated=0
  183.       self.SelectionFilterUpdated=0
  184.       self.Filter=None
  185.       self.SelectionFilter=None
  186.  
  187.  
  188.