diff options
| author | Apickx <Apickx@cogarr.org> | 2015-12-28 19:18:30 -0500 |
|---|---|---|
| committer | Apickx <Apickx@cogarr.org> | 2015-12-28 19:18:30 -0500 |
| commit | 868e729d68b5913716bfe5ddb512f4099851e9a2 (patch) | |
| tree | 6441108754145dfd68a6e23bea382b5cb1ab63d5 /gamemode/cl_hud/vgui/mbtab.lua | |
| download | gearfox-master.tar.gz gearfox-master.tar.bz2 gearfox-master.zip | |
Diffstat (limited to 'gamemode/cl_hud/vgui/mbtab.lua')
| -rw-r--r-- | gamemode/cl_hud/vgui/mbtab.lua | 106 |
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 |
