new post | browse code | authors | help | about

LuaBin 2.0

Viewing file root / lua / vgui / ToolQuickSelect_Properties.lua

  1.  
  2. local PANEL = {}
  3.  
  4. /*---------------------------------------------------------
  5.    Name: Init
  6. ---------------------------------------------------------*/
  7. function PANEL:Init()
  8.  
  9.         self:SetTitle( "#Button Settings" )
  10.         self:SetKeyboardInputEnabled( true )
  11.        
  12.         self.lblCommand = vgui.Create( "DLabel", self )
  13.                 self.lblCommand:SetText( "#Console Command:" )
  14.        
  15.         self.txtCommand = vgui.Create( "DTextEntry", self )
  16.         self.txtCommand:SetKeyboardInputEnabled( true )
  17.         self.txtCommand:SetTabPosition( 2 )
  18.        
  19.         self.btnOK = vgui.Create( "DButton", self )
  20.         self.btnOK:SetText( "#OK" )
  21.         self.btnOK:SetTabPosition( 3 )
  22.         self.btnOK.DoClick = function() self:OK() end
  23.        
  24.         self.btnCancel = vgui.Create( "DButton", self )
  25.         self.btnCancel:SetText( "#Cancel" )
  26.         self.btnCancel:SetTabPosition( 4 )
  27.         self.btnCancel.DoClick = function() self:Remove() end
  28.        
  29.        
  30.         self.iconFrame = vgui.Create( "DPanelList", self )
  31.         self.iconFrame:EnableHorizontal( true )
  32.         self.iconFrame:SetSpacing( 2 )
  33.        
  34.         local list = list.Get( "16x16Icons" )
  35.        
  36.         for name, img in pairs( list ) do
  37.        
  38.                 local btn = vgui.Create( "DImageButton", self )
  39.                         btn:SetImage( img )
  40.                         btn:SetSize( 16, 16 )
  41.                         btn.DoClick = function() self:UpdateImage( btn ) end
  42.                                
  43.                 self.iconFrame:AddItem( btn )
  44.        
  45.         end
  46.        
  47.        
  48.         self:Center()
  49.         self:MakePopup()
  50.  
  51. end
  52.  
  53. /*---------------------------------------------------------
  54.    Name: Setup
  55. ---------------------------------------------------------*/
  56. function PANEL:Setup( button, QuickTool )
  57.  
  58.         self.QuickTool  = QuickTool
  59.         self.Button     = button
  60.        
  61.         self.txtCommand:SetText( tostring( self.Button.strCommand ) )
  62.  
  63. end
  64.        
  65. /*---------------------------------------------------------
  66.    Name: PerformLayout
  67. ---------------------------------------------------------*/
  68. function PANEL:UpdateImage( btn )
  69.  
  70.         self.Button:SetImage( btn:GetImage() )
  71.  
  72. end
  73.        
  74. /*---------------------------------------------------------
  75.    Name: PerformLayout
  76. ---------------------------------------------------------*/
  77. function PANEL:PerformLayout()
  78.        
  79.         self.BaseClass.PerformLayout( self )
  80.        
  81.         self:SetSize( 200, 300 )
  82.        
  83.         local y = 30
  84.        
  85.         self.lblCommand:SetPos( 10, y )
  86.                 self.lblCommand:SetWide( self:GetWide() )
  87.         y = y + 21
  88.         self.txtCommand:SetPos( 10, y )
  89.         self.txtCommand:SetWide( self:GetWide() - 20 )
  90.         y = y + 30
  91.        
  92.         self.iconFrame:SetPos( 10, y )
  93.         self.iconFrame:SetWide( self:GetWide() - 20 )
  94.         self.iconFrame:SetTall( 100 )  
  95.        
  96.         y = y + self.iconFrame:GetTall()
  97.         y = y + 20
  98.        
  99.         self.btnOK:SetPos( self:GetWide() - 115, y )
  100.         self.btnOK:SetWide( 40 )
  101.        
  102.         self.btnCancel:SetPos( self:GetWide() - 70, y )
  103.         self.btnCancel:SetWide( 60 )
  104.        
  105.         y = y + 30
  106.         self:SetTall( y )
  107.        
  108. end
  109.  
  110. /*---------------------------------------------------------
  111.    Name: OK
  112. ---------------------------------------------------------*/
  113. function PANEL:OK()
  114.  
  115.         self.Button.strCommand = self.txtCommand:GetValue()
  116.        
  117.         self.QuickTool:SaveSettings()
  118.        
  119.         self:Remove()
  120.  
  121. end
  122.        
  123.  
  124. vgui.Register( "ToolQuickSelectProperties", PANEL, "DFrame" )