new post | browse code | authors | help | about

LuaBin 2.0

Viewing file root / lua / menu / maplist_listview.lua

  1. //=============================================================================//
  2. //  ___  ___   _   _   _    __   _   ___ ___ __ __
  3. // |_ _|| __| / \ | \_/ |  / _| / \ | o \ o \\ V /
  4. //  | | | _| | o || \_/ | ( |_n| o ||   /   / \ /
  5. //  |_| |___||_n_||_| |_|  \__/|_n_||_|\\_|\\ |_|  2007
  6. //                                                                               
  7. //=============================================================================//
  8.  
  9.  
  10. local PANEL = {}
  11.  
  12. AccessorFunc( PANEL, "m_pController",                   "Controller" )
  13.  
  14. /*---------------------------------------------------------
  15.  
  16. ---------------------------------------------------------*/
  17. function PANEL:Init()
  18.  
  19.         self:SetMouseInputEnabled( true )
  20.         self:SetKeyboardInputEnabled( false )
  21.        
  22.         self.List = vgui.Create( "DListView", self )
  23.        
  24.         self.List:AddColumn( "Map Name" )
  25.         self.List:AddColumn( "Category" )
  26.        
  27.         self.List:SetDataHeight( 17 )
  28.        
  29.         self.List.OnRowSelected = function( list, itemid, line ) self:DoClick( itemid, line ) end
  30.         self.List.DoDoubleClick = function( list, itemid, line ) self:DoDoubleClick( itemid, line ) end
  31.        
  32.         self.List:SetMultiSelect( false )
  33.                                                                                
  34.         self:BuildMaps()
  35.        
  36. end
  37.  
  38. /*---------------------------------------------------------
  39.  
  40. ---------------------------------------------------------*/
  41. function PANEL:BuildMaps()
  42.  
  43.         for k, v in pairs( g_MapList ) do
  44.        
  45.                 local item = self.List:AddLine( v.Name, v.Category )
  46.                 item.MapName = v.Name
  47.                                                        
  48.         end
  49.        
  50.         self.List:SortByColumn( 1, true )
  51.  
  52. end
  53.  
  54. /*---------------------------------------------------------
  55.  
  56. ---------------------------------------------------------*/
  57. function PANEL:PerformLayout()
  58.  
  59.         self.List:SetPos( 0, 0 )
  60.         self.List:SetSize( self:GetWide(), self:GetTall() )
  61.        
  62. end
  63.  
  64. /*---------------------------------------------------------
  65.  
  66. ---------------------------------------------------------*/
  67. function PANEL:DoClick( itemid, line )
  68.  
  69.         self:GetController():SetMap( line.MapName )
  70.        
  71. end
  72.  
  73. /*---------------------------------------------------------
  74.  
  75. ---------------------------------------------------------*/
  76. function PANEL:DoDoubleClick( itemid )
  77.  
  78.         // No need to set the map, it should be set
  79.         // by the first click..
  80.        
  81.         self:GetController():LaunchGame()
  82.        
  83. end
  84.  
  85.  
  86.  
  87.  
  88. vgui.Register( "MapListList", PANEL )