new post | browse code | authors | help | about

LuaBin 2.0

Viewing file root / lua / menu / loading.lua

  1. //=============================================================================//
  2. //  ___  ___   _   _   _    __   _   ___ ___ __ __
  3. // |_ _|| __| / \ | \_/ |  / _| / \ | o \ o \\ V /
  4. //  | | | _| | o || \_/ | ( |_n| o ||   /   / \ /
  5. //  |_| |___||_n_||_| |_|  \__/|_n_||_|\\_|\\ |_|  2007
  6. //                                                                               
  7. //=============================================================================//
  8.  
  9.  
  10. local pnlLoadProgress = vgui.RegisterFile( "loading/progress.lua" )
  11. local pnlDownloads = vgui.RegisterFile( "loading/downloads.lua" )
  12.  
  13. local PANEL = {}
  14.  
  15. /*---------------------------------------------------------
  16.  
  17. ---------------------------------------------------------*/
  18. function PANEL:Init()
  19.  
  20.         self.Progress = vgui.CreateFromTable( pnlLoadProgress, self )
  21.         self.Downloads = vgui.CreateFromTable( pnlDownloads, self )
  22.        
  23.         /*
  24.        
  25.         // Using the default progress bar thing for now..
  26.        
  27.         self.Button = vgui.Create( "DButton", self )
  28.         self.Button:SetText( "#Cancel" )
  29.        
  30.         function self.Button:DoClick() CancelLoading() end
  31.         */
  32.  
  33. end
  34.  
  35.  
  36. /*---------------------------------------------------------
  37.  
  38. ---------------------------------------------------------*/
  39. function PANEL:PerformLayout()
  40.  
  41.         self:SetSize( ScrW(), ScrH() )
  42.        
  43.         self.Progress:InvalidateLayout( true )
  44.         self.Progress:SetPos( 0, ScrH() * 0.4 )
  45.        
  46.         self.Downloads:SetPos( 0, 0 )
  47.         self.Downloads:SetSize( ScrW(), ScrH() * 0.4 )
  48.        
  49.         /*
  50.         self.Button:AlignRight( 50 )
  51.         self.Button:AlignBottom( 50 )
  52.         */
  53.        
  54. end
  55.  
  56.  
  57. /*---------------------------------------------------------
  58.  
  59. ---------------------------------------------------------*/
  60. function PANEL:Paint()
  61.  
  62.         surface.SetDrawColor( 250, 250, 250, 255 )
  63.         surface.DrawRect( 0, 0, self:GetWide(), self:GetTall() )
  64.        
  65. end
  66.  
  67.  
  68. /*---------------------------------------------------------
  69.  
  70. ---------------------------------------------------------*/
  71. function PANEL:StatusChanged( strStatus )
  72.  
  73.         // If it's a file download we do some different stuff..
  74.         if ( string.find( strStatus, "Downloading " ) ) then
  75.        
  76.                 local Filename = string.gsub( strStatus, "Downloading ", "" )
  77.                
  78.                 self.Progress:DownloadingFile( Filename )
  79.                 self.Downloads:DownloadingFile( Filename )
  80.        
  81.         return end
  82.        
  83.         self.Progress:StatusChanged( strStatus )
  84.         self.Downloads:StatusChanged( strStatus )
  85.        
  86. end
  87.  
  88. /*---------------------------------------------------------
  89.  
  90. ---------------------------------------------------------*/
  91. function PANEL:CheckForStatusChanges()
  92.  
  93.         local str = GetLoadStatus()
  94.         if ( !str ) then return end
  95.        
  96.         str = string.Trim( str )
  97.         str = string.Trim( str, "\n" )
  98.         str = string.Trim( str, "\t" )
  99.        
  100.         str = string.gsub( str, ".bz2", "" )
  101.         str = string.gsub( str, ".ztmp", "" )
  102.         str = string.gsub( str, "\\", "/" )
  103.        
  104.         if ( self.OldStatus && self.OldStatus == str ) then return end
  105.        
  106.         self.OldStatus = str
  107.         self:StatusChanged( str )
  108.  
  109. end
  110.  
  111.  
  112. /*---------------------------------------------------------
  113.  
  114. ---------------------------------------------------------*/
  115. function PANEL:OnActivate()
  116.  
  117.         // Clean it up
  118.         self:OnDeactivate()
  119.        
  120. end
  121.  
  122. /*---------------------------------------------------------
  123.  
  124. ---------------------------------------------------------*/
  125. function PANEL:OnDeactivate()
  126.  
  127.         self.Progress:Clean()
  128.         self.Downloads:Clean()
  129.        
  130. end
  131.  
  132. /*---------------------------------------------------------
  133.  
  134. ---------------------------------------------------------*/
  135. function PANEL:Think()
  136.  
  137.         self:CheckForStatusChanges()
  138.        
  139. end
  140.  
  141. local PanelType_Loading = vgui.RegisterTable( PANEL, "EditablePanel" )
  142.  
  143.  
  144. local pnlLoading = nil
  145.  
  146. function GetLoadPanel()
  147.  
  148.         if ( !pnlLoading ) then
  149.                 pnlLoading = vgui.CreateFromTable( PanelType_Loading )
  150.         end
  151.  
  152.         return pnlLoading
  153.        
  154. end
  155.  
  156.  
  157.  
  158.