function gui:newHeader() local header=self:newFrame(0,0,0,20,0,0,1) header:ApplyGradient({Color.new(70,70,70),Color.Darken(Color.new(70,70,70),.25),trans=200}) header.last={x=0,width=0} function header:newTab(name) local font=love.graphics.getFont() local tab=self:newTextLabel(name,self.last.x+self.last.width,0,font:getWidth(name)/2+10,20) tab.TextColor = Color.new(200,200,200) self.last=tab tab.Visibility=0 tab.Tween=4 tab.XTween=-2 tab.Color=Color.Gray tab.largest={x=0,width=0} tab.Options=tab:newFrame("Options",0,20) tab.Options.Visible=false tab.Options.Color=Color.new(90,90,90) tab:OnEnter(function(self) self.Visibility=.5 local c = self.Parent.Children local count = 0 for i = 1,#c do if c[i].Options then if c[i].Options.Visible then count = count + 1 end end end if count ~= 0 and self.Options.Visible == false then for i = 1,#c do c[i].Options.Visible = false c[i].Visibility = 0 end self.Visibility=.5 self.Options.Visible = true end end) tab:OnExit(function(self) self.Visibility=0 end) tab:OnReleased(function(b,self) if b=="l" then self.Options.Visible=true -- header:addDominance() end end) tab:OnReleasedOuter(function(self) self.Options.Visible=false -- header:removeDominance() end) function tab:newOption(name,func,HK,disp) local opt=self.Options:newTextLabel(name,0,#self.Options:getChildren()*20,0,20,0,0,1) if HK then if type(HK)=="table" then for i=1,#HK do opt:addHotKey(HK[i],func) end if disp then HK[1]=disp end name=name.."\t" local temp=opt:newTextLabel(HK[1],-(font:getWidth(HK[1])/2+2),0,font:getWidth(HK[1])/2+2,20,1) temp.Visibility=0 temp.Tween=4 temp.XTween=-4 temp.Color = Color.new(50,50,50) opt.text=name else opt:setHotKey(HK,func) if disp then HK=disp end name=name.."\t" local temp=opt:newTextLabel(HK,-(font:getWidth(HK)/2+2),0,font:getWidth(HK)/2+2,20,1) temp.Visibility=0 temp.Tween=4 temp.XTween=-4 temp.Color = Color.new(50,50,50) opt.text=name end end opt.TextFormat="left" opt.Visibility=0 opt.Color=Color.new(50,50,50) opt.Tween=4 opt:OnEnter(function(self) self.Visibility=.5 end) opt:OnExit(function(self) self.Visibility=0 end) local font=love.graphics.getFont() local c=self:getChildren() if font:getWidth(name)+6>self.largest.width then self.largest={width=font:getWidth(name)+6} end self.Options:SetDualDim(0,20,self.largest.width,#self.Options:getChildren()*20) if func then opt:OnReleased(function() func(self.Options) end) end return opt end return tab end function header:newIconBar() local c if self.iconbar then c = self.iconbar:newFrame("Icons",0,0,0,30,0,1,1) else c = self:newFrame("Icons",0,0,0,30,0,1,1) end self.iconbar = c function c:addIcon(path) local i if self.lasticon then i = self.lasticon:newImageButton(path,"",10,0,16,16,1) else i = self:newImageButton(path,"",10,7,16,16) end self.lasticon = i return i end return c end return header end