summaryrefslogtreecommitdiff
path: root/gamemode/cl_hud/vgui/mbtab.lua
diff options
context:
space:
mode:
authorApickx <Apickx@cogarr.org>2015-12-28 19:18:30 -0500
committerApickx <Apickx@cogarr.org>2015-12-28 19:18:30 -0500
commit868e729d68b5913716bfe5ddb512f4099851e9a2 (patch)
tree6441108754145dfd68a6e23bea382b5cb1ab63d5 /gamemode/cl_hud/vgui/mbtab.lua
downloadgearfox-868e729d68b5913716bfe5ddb512f4099851e9a2.tar.gz
gearfox-868e729d68b5913716bfe5ddb512f4099851e9a2.tar.bz2
gearfox-868e729d68b5913716bfe5ddb512f4099851e9a2.zip
Initial commitHEADmaster
Diffstat (limited to 'gamemode/cl_hud/vgui/mbtab.lua')
-rw-r--r--gamemode/cl_hud/vgui/mbtab.lua106
1 files changed, 106 insertions, 0 deletions
diff --git a/gamemode/cl_hud/vgui/mbtab.lua b/gamemode/cl_hud/vgui/mbtab.lua
new file mode 100644
index 0000000..3899f69
--- /dev/null
+++ b/gamemode/cl_hud/vgui/mbtab.lua
@@ -0,0 +1,106 @@
+local PANEL = {}
+
+function PANEL:Init()
+ self.bgcol = MAIN_COLOR
+ self.fgcol = MAIN_COLOR2
+
+ self.TabsBut = {}
+ self.Tabs = {}
+ self.TabSel = ""
+ self.VertTabs = false
+
+ self.Slide = 0
+end
+
+function PANEL:OnClose()
+end
+
+function PANEL:SetVerticalTabs( bool )
+ self.VertTabs = bool
+end
+
+function PANEL:SetTitle( name )
+end
+
+function PANEL:SetFGColor( col )
+ self.fgcol = col
+end
+
+function PANEL:SetBGColor( col )
+ self.bgcol = col
+end
+
+function PANEL:AddTab(Text)
+ local A = vgui.Create("MBFrame",self)
+ A:SetTitle("")
+ A:SetVisible(false)
+ A:ShowCloseButton(false)
+ A:SetPos(0,20)
+ A:SetSize(self:GetWide(),self:GetTall()-25)
+ A.Paint = function(s,w,h) DrawRect(0,0,w,h,self.bgcol) end
+
+ local D = vgui.Create("MBButton",self)
+ D:SetText(Text)
+ D.T = #self.TabsBut*1
+
+ if (D.T < 1) then A:SetVisible(true) self.TabSel = D.T end
+
+ D.Paint = function(s,w,h)
+ if (self.TabSel == s.T) then DrawRect(0,0,w,h,self.bgcol)
+ else DrawRect(0,0,w,h,self.fgcol) end
+
+ DrawText( s.Text, "Trebuchet18", w/2, h/2, MAIN_TEXTCOLOR, 1 )
+ end
+
+ D.DoClick = function()
+ for k,v in pairs(self.Tabs) do
+ v:SetVisible(false)
+ end
+
+ self.Tabs[D.T]:SetVisible(true)
+ self.TabSel = D.T
+ end
+
+ table.insert(self.TabsBut,D)
+ self.Tabs[D.T] = A
+
+ return self.Tabs[D.T]
+end
+
+
+function PANEL:Paint()
+ return true
+end
+
+function PANEL:Think()
+ local Num = #self.TabsBut
+ local W = self:GetWide()
+ local SW = 100*Num
+ local X,Y = self:LocalToScreen()
+
+ if (SW > self:GetWide()) then
+ if (input.IsMouseInBox(X,Y,20,20) and self.Slide > 0) then
+ self.Slide = self.Slide-1
+
+ self:PerformLayout()
+ elseif (input.IsMouseInBox(X+W-20,Y,20,20) and self.Slide < SW-W) then
+ self.Slide = self.Slide+1
+
+ self:PerformLayout()
+ end
+ end
+end
+
+function PANEL:PerformLayout()
+ for k,v in pairs(self.TabsBut) do
+ v:SetPos(100*(k-1)-self.Slide,0)
+ v:SetSize(97,20)
+ end
+
+ if (self.Tabs[self.TabSel]) then
+ self.Tabs[self.TabSel]:SetPos(0,20)
+ self.Tabs[self.TabSel]:SetSize(self:GetWide(),self:GetTall()-25)
+ end
+end
+
+vgui.Register( "MBTab", PANEL ) \ No newline at end of file