home *** CD-ROM | disk | FTP | other *** search
/ PC PowerPlay 56 / CDPowerplay56Disc2.iso / demos / blade / data1.cab / Program_Executable_Files / Lib / LoadBar.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2000-10-27  |  7.6 KB  |  175 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 1.5)
  3.  
  4. import BBLib
  5. import Raster
  6. import Bladex
  7. BAR_X = 64.0
  8. BAR_Y = 425.0
  9.  
  10. class BaseProgressBar:
  11.     '''Clase base de las barras de progreso de carga'''
  12.     
  13.     def __init__(self, total_increments):
  14.         self.total_increments = total_increments
  15.         self.RectSize = (512.0, 16.0)
  16.         self.SolidBar = 0
  17.         self.hBmpBar = None
  18.         if not (self.SolidBar):
  19.             Bladex.ReadBitMap('../../Data/Gray_progress_bar.bmp', 'LoadBarBmp')
  20.             self.hBmpBar = Raster.BmpHandle('LoadBarBmp')
  21.         
  22.  
  23.     
  24.     def Clear(self):
  25.         pass
  26.  
  27.     
  28.     def BarIncrement(self, n_file, text):
  29.         if Raster.ClassIdName() == 'B_Direct3DRasterDevice':
  30.             if n_file % 10:
  31.                 return None
  32.             
  33.         
  34.         str = 'Loading %s.' % (text,)
  35.         percentage = float(n_file) / float(self.total_increments)
  36.         if percentage > 1.0:
  37.             percentage = 1.0
  38.         
  39.         (w, h) = Raster.GetSize()
  40.         AdjustedRectWidth = self.RectSize[0] * w / 640.0
  41.         AdjustedRectHeight = self.RectSize[1] * h / 480.0
  42.         Raster.Cls(0, 0, 0)
  43.         Raster.SetAlpha(0.8)
  44.         percentage_width = percentage * self.RectSize[0]
  45.         AdjustedRectX = BAR_X * w / 640.0
  46.         AdjustedRectY = BAR_Y * h / 480.0
  47.         x1 = AdjustedRectX
  48.         x2 = x1 + AdjustedRectWidth
  49.         y1 = AdjustedRectY
  50.         y2 = AdjustedRectY + AdjustedRectHeight
  51.         Raster.SetPenColor(0, 0, 0)
  52.         Raster.Rectangle(x1, y1, x2, y2)
  53.         if self.SolidBar == 1:
  54.             x2 = x1 + percentage * AdjustedRectWidth
  55.             Raster.SetFillColor(140, 220, 10)
  56.             Raster.SolidRectangle(x1, y1, x2, y2)
  57.         else:
  58.             Raster.SetPosition(x1, y1)
  59.             Raster.SetPenColor(180, 23, 44)
  60.             Raster.DrawBitmap(self.hBmpBar, percentage * AdjustedRectWidth, AdjustedRectHeight)
  61.             Raster.SetPosition(0, 0)
  62.         Raster.SysWrite(10, h - 25, str, 240, 240, 20)
  63.         Raster.SwapBuffers()
  64.  
  65.  
  66.  
  67. class ProgressBar(BaseProgressBar):
  68.     '''Clase auxiliar para poner una barra de progreso durante la carga de un nivel'''
  69.     
  70.     def __init__(self, total_increments, background_image = None):
  71.         BaseProgressBar.__init__(self, total_increments)
  72.         BBLib.ResetnOpenedInputFiles()
  73.         BBLib.SetOnOpenInputFileFunc(self.BarIncrement)
  74.         self.filehook = 1
  75.         self.imagehook = 0
  76.         if background_image:
  77.             back_image = BBLib.B_BitMap24()
  78.             if back_image.ReadFromBMP(background_image):
  79.                 (w, h) = back_image.GetDimension()
  80.                 Raster.SetBackgroundImage(w, h, 'RGB', 'Normal', 'Stretch', back_image.GetData())
  81.                 Raster.Cls(0, 0, 0)
  82.                 Raster.SwapBuffers()
  83.                 self.imagehook = 1
  84.             
  85.         
  86.         Bladex.AddScheduledFunc(0, self.Clear, ())
  87.  
  88.     
  89.     def Clear(self):
  90.         BaseProgressBar.Clear(self)
  91.         if self.imagehook:
  92.             Raster.RemoveBackgroundImage()
  93.             self.imagehook = 0
  94.         
  95.         if self.filehook:
  96.             BBLib.RemoveOnOpenInputFileFunc()
  97.             self.filehook = 0
  98.         
  99.  
  100.     
  101.     def __del__(self):
  102.         self.Clear()
  103.  
  104.  
  105.  
  106. class AutoProgressBar(BaseProgressBar):
  107.     
  108.     def __init__(self, total_increments):
  109.         BaseProgressBar.__init__(self, total_increments)
  110.         self.CurrentPoint = 0
  111.  
  112.     
  113.     def Increment(self, text = ''):
  114.         self.CurrentPoint = self.CurrentPoint + 1
  115.         self.BarIncrement(self.CurrentPoint, text)
  116.  
  117.  
  118.  
  119. class ECTSProgressBar(ProgressBar):
  120.     
  121.     def __init__(self, total_increments, background_image = None):
  122.         ProgressBar.__init__(self, total_increments, background_image)
  123.         self.updated = 0
  124.  
  125.     
  126.     def BarIncrement(self, n_file, text):
  127.         if n_file > self.total_increments / 2 and not (self.updated):
  128.             BBLib.RemoveOnOpenInputFileFunc()
  129.             back_image = BBLib.B_BitMap24()
  130.             if back_image.ReadFromBMP('Blade_progress2.bmp'):
  131.                 Raster.RemoveBackgroundImage()
  132.                 (w, h) = back_image.GetDimension()
  133.                 Raster.SetBackgroundImage(w, h, 'RGB', 'Normal', 'Stretch', back_image.GetData())
  134.                 Raster.Cls(0, 0, 0)
  135.                 Raster.SwapBuffers()
  136.             
  137.             self.updated = 1
  138.             BBLib.SetOnOpenInputFileFunc(self.BarIncrement)
  139.         
  140.         ProgressBar.BarIncrement(self, n_file, text)
  141.  
  142.  
  143.  
  144. class DemoProgressBar(ProgressBar):
  145.     
  146.     def __init__(self, total_increments, background_image = None):
  147.         self.updated = 1
  148.         self.segment_size = total_increments / 4
  149.         ProgressBar.__init__(self, total_increments, background_image)
  150.  
  151.     
  152.     def BarIncrement(self, n_file, text):
  153.         if Raster.ClassIdName() == 'B_Direct3DRasterDevice':
  154.             if n_file % 10:
  155.                 return None
  156.             
  157.         
  158.         if not n_file > 3 * self.segment_size and self.updated == 3:
  159.             if n_file > 2 * self.segment_size and self.updated == 2 and n_file > self.segment_size and self.updated == 1:
  160.                 BBLib.RemoveOnOpenInputFileFunc()
  161.                 back_image = BBLib.B_BitMap24()
  162.                 if back_image.ReadFromBMP('Blade_progress' + `self.updated + 1` + '.bmp'):
  163.                     Raster.RemoveBackgroundImage()
  164.                     (w, h) = back_image.GetDimension()
  165.                     Raster.SetBackgroundImage(w, h, 'RGB', 'Normal', 'Stretch', back_image.GetData())
  166.                     Raster.Cls(0, 0, 0)
  167.                     Raster.SwapBuffers()
  168.                 
  169.                 self.updated = self.updated + 1
  170.                 BBLib.SetOnOpenInputFileFunc(self.BarIncrement)
  171.             
  172.         ProgressBar.BarIncrement(self, n_file, text)
  173.  
  174.  
  175.