new post | browse code | authors | help | about

LuaBin 2.0

Viewing file root / lua / vgui / ImageCheckBox.lua

  1.  
  2. local PANEL = {}
  3.  
  4. /*---------------------------------------------------------
  5.    Name: SetMaterial
  6. ---------------------------------------------------------*/
  7. function PANEL:SetMaterial( On )
  8.        
  9.         if ( self.MatOn ) then
  10.                 self.MatOn:Remove()
  11.         end
  12.        
  13.         self.MatOn = vgui.Create( "Material", self )
  14.         self.MatOn:SetSize( 16, 16 )
  15.         self.MatOn:SetMaterial( On )
  16.        
  17.         self:PerformLayout()
  18.        
  19. end
  20.  
  21.  
  22. /*---------------------------------------------------------
  23.    Name: Set
  24. ---------------------------------------------------------*/
  25. function PANEL:Set( OnOff )
  26.        
  27.         if ( self.State == OnOff ) then return end
  28.         self.MatOn:SetVisible( OnOff )
  29.         self.State = OnOff
  30.        
  31. end
  32.  
  33. /*---------------------------------------------------------
  34.    Name: DoClick
  35. ---------------------------------------------------------*/
  36. function PANEL:DoClick( )
  37.        
  38.         self:Set( !self.State )
  39.        
  40. end
  41.  
  42. /*---------------------------------------------------------
  43.    Name: SizeToContents
  44. ---------------------------------------------------------*/
  45. function PANEL:SizeToContents()
  46.        
  47.         if ( self.MatOn ) then
  48.                 self:SetSize( self.MatOn:GetWide(), self.MatOn:GetTall() )
  49.         end
  50.        
  51.         self:InvalidateLayout()
  52.        
  53. end
  54.  
  55.  
  56. /*---------------------------------------------------------
  57.    Name: Paint
  58. ---------------------------------------------------------*/
  59. function PANEL:Paint()
  60.        
  61.         draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 0, 0, 0, 50 ) )       
  62.         return true
  63.        
  64. end
  65.  
  66.  
  67. /*---------------------------------------------------------
  68.    Name: PerformLayout
  69. ---------------------------------------------------------*/
  70. function PANEL:PerformLayout()
  71.  
  72.         self.MatOn:SetPos( (self:GetWide() - self.MatOn:GetWide()) / 2, (self:GetTall() - self.MatOn:GetTall()) / 2 )
  73.  
  74. end
  75.  
  76. vgui.Register( "ImageCheckBox", PANEL, "Button" )