function GM:ForceDermaSkin()

	return "zombiesurvival"

end



local SKIN = {}



SKIN.PrintName = "Zombie Survival Derma Skin"

SKIN.Author = "William \"JetBoom\" Moodhe"

SKIN.DermaVersion = 1



SKIN.bg_color = Color(50, 50, 50, 255)

SKIN.bg_color_sleep = Color(40, 40, 40, 255)

SKIN.bg_color_dark = Color(30, 30, 30, 255)

SKIN.bg_color_bright = Color(80, 80, 80, 255)



SKIN.Colors = {}

SKIN.Colors.Panel = {}

SKIN.Colors.Panel.Normal = Color(50, 50, 50, 120)



function SKIN:PaintPanel(panel, w, h)

	if not panel.m_bBackground then return end



	surface.SetDrawColor(self.Colors.Panel.Normal)

	surface.DrawRect(0, 0, w, h)

end



--SKIN.tooltip = Color(190, 190, 190, 230)



local color_frame_background = Color(0, 0, 0, 220)

SKIN.color_frame_background = color_frame_background

SKIN.color_frame_border = Color(0, 80, 0, 255)



SKIN.colTextEntryText = Color(10, 10, 10)

SKIN.colTextEntryTextHighlight = Color(30, 255, 0)

SKIN.colTextEntryTextBorder = Color(70, 90, 70, 255)



SKIN.colPropertySheet = Color(30, 30, 30, 255)

SKIN.colTab = SKIN.colPropertySheet

SKIN.colTabInactive = Color(25, 25, 25, 155)

SKIN.colTabShadow = Color(20, 30, 20, 255)

SKIN.colTabText	= Color(240, 255, 240, 255)

SKIN.colTabTextInactive	= Color(240, 255, 240, 120)



--[[SKIN.colTextEntryBG	= Color( 240, 240, 240, 255 )

SKIN.colTextEntryBorder	= Color( 20, 20, 20, 255 )

SKIN.colTextEntryText = Color( 20, 20, 20, 255 )

SKIN.colTextEntryTextHighlight = Color( 20, 200, 250, 255 )

SKIN.colTextEntryTextCursor	= Color( 0, 0, 100, 255 )]]



function SKIN:PaintPropertySheet(panel, w, h)

	local ActiveTab = panel:GetActiveTab()

	local Offset = 0

	if ActiveTab then Offset = ActiveTab:GetTall() - 8 end



	draw.RoundedBox(8, 0, 0, w, h, self.colTab)

end



function SKIN:PaintTab(panel, w, h)

	if panel:GetPropertySheet():GetActiveTab() == panel then

		return self:PaintActiveTab(panel, w, h)

	end



	draw.RoundedBox(8, 0, 0, w, h, self.colTabInactive)

end



function SKIN:PaintActiveTab(panel, w, h)

	draw.RoundedBox(8, 0, 0, w, h, self.colTab)

end



--[[SKIN.color_textentry_background = Color(40, 40, 40, 255)

SKIN.color_textentry_border = Color(70, 90, 70, 255)]]



local texCorner = surface.GetTextureID("zombiesurvival/circlegradient")

local texUpEdge = surface.GetTextureID("gui/gradient_up")

local texDownEdge = surface.GetTextureID("gui/gradient_down")

local texRightEdge = surface.GetTextureID("gui/gradient")

function PaintGenericFrame(panel, x, y, wid, hei, edgesize)

	edgesize = edgesize or math.ceil(math.min(hei * 0.1, math.min(16, wid * 0.1)))

	local dedgesize = edgesize * 2

	local hedgesize = edgesize * 0.5

	DisableClipping(true)

	surface.DrawRect(x, y, wid, hei)

	surface.SetTexture(texUpEdge)

	surface.DrawTexturedRect(x, y - edgesize, wid, edgesize)

	surface.SetTexture(texDownEdge)

	surface.DrawTexturedRect(x, y + hei, wid, edgesize)

	surface.SetTexture(texRightEdge)

	surface.DrawTexturedRect(wid, y, edgesize, hei)

	surface.DrawTexturedRectRotated(x + hedgesize * -1, y + hei * 0.5, edgesize, hei, 180)

	surface.SetTexture(texCorner)

	surface.DrawTexturedRect(x - edgesize, y - edgesize, edgesize, edgesize)

	surface.DrawTexturedRectRotated(x + wid + hedgesize, y - hedgesize, edgesize, edgesize, 270)

	surface.DrawTexturedRectRotated(x + wid + hedgesize, y + hei + hedgesize, edgesize, edgesize, 180)

	surface.DrawTexturedRectRotated(x - hedgesize, y + hei + hedgesize, edgesize, edgesize, 90)

	DisableClipping(false)

end



function SKIN:PaintFrame(panel, w, h)

	surface.SetDrawColor(panel.ColorOverride or color_frame_background)

	PaintGenericFrame(panel, 0, 0, w, h)

end



--[[function SKIN:DrawBorder(x, y, w, h, border)

	surface.SetDrawColor(border)

	surface.DrawOutlinedRect(x, y, w, h)

	surface.SetDrawColor(border.r * 0.75, border.g * 0.75, border.b * 0.5, border.a)

	surface.DrawOutlinedRect(x + 1, y + 1, w - 2, h - 2)

	surface.SetDrawColor(border.r * 0.5, border.g * 0.5, border.b * 0.5, border.a)

	surface.DrawOutlinedRect(x + 2, y + 2, w - 4, h - 4)

end



function SKIN:PaintTooltip(panel)

	local w, h = panel:GetSize()



	DisableClipping(true)



	self:DrawGenericBackground(0, 0, w, h, self.tooltip)

	panel:DrawArrow(0, 0)



	DisableClipping(false)

end



function SKIN:PaintButton(panel)

	local w, h = panel:GetSize()



	if panel.m_bBackground then

		local col = self.control_color

		if panel:GetDisabled() then

			col = self.control_color_dark

		elseif panel.Depressed then

			col = self.control_color_active

		elseif panel.Hovered then

			col = self.control_color_highlight

		end



		draw.RoundedBox(8, 0, 0, w, h, col)

	end

end]]



SKIN.Colours = {}



SKIN.Colours.Window = {}

SKIN.Colours.Window.TitleActive			= GWEN.TextureColor( 4 + 8 * 0, 508 );

SKIN.Colours.Window.TitleInactive		= GWEN.TextureColor( 4 + 8 * 1, 508 );



SKIN.Colours.Button = {}

SKIN.Colours.Button.Normal				= Color(200, 200, 200, 220)

SKIN.Colours.Button.Hover				= Color(255, 255, 255, 220)

SKIN.Colours.Button.Down				= Color(255, 255, 255, 255)

SKIN.Colours.Button.Disabled			= Color(160, 160, 160, 220)



SKIN.Colours.Tab = {}

SKIN.Colours.Tab.Active = {}

SKIN.Colours.Tab.Active.Normal			= GWEN.TextureColor( 4 + 8 * 4, 508 );

SKIN.Colours.Tab.Active.Hover			= GWEN.TextureColor( 4 + 8 * 5, 508 );

SKIN.Colours.Tab.Active.Down			= GWEN.TextureColor( 4 + 8 * 4, 500 );

SKIN.Colours.Tab.Active.Disabled		= GWEN.TextureColor( 4 + 8 * 5, 500 );



SKIN.Colours.Tab.Inactive = {}

SKIN.Colours.Tab.Inactive.Normal		= GWEN.TextureColor( 4 + 8 * 6, 508 );

SKIN.Colours.Tab.Inactive.Hover			= GWEN.TextureColor( 4 + 8 * 7, 508 );

SKIN.Colours.Tab.Inactive.Down			= GWEN.TextureColor( 4 + 8 * 6, 500 );

SKIN.Colours.Tab.Inactive.Disabled		= GWEN.TextureColor( 4 + 8 * 7, 500 );



SKIN.Colours.Label = {}

SKIN.Colours.Label.Default				= GWEN.TextureColor( 4 + 8 * 8, 508 );

SKIN.Colours.Label.Bright				= GWEN.TextureColor( 4 + 8 * 9, 508 );

SKIN.Colours.Label.Dark					= GWEN.TextureColor( 4 + 8 * 8, 500 );

SKIN.Colours.Label.Highlight			= GWEN.TextureColor( 4 + 8 * 9, 500 );



SKIN.Colours.Tree = {}

SKIN.Colours.Tree.Lines					= GWEN.TextureColor( 4 + 8 * 10, 508 );		---- !!!

SKIN.Colours.Tree.Normal				= GWEN.TextureColor( 4 + 8 * 11, 508 );

SKIN.Colours.Tree.Hover					= GWEN.TextureColor( 4 + 8 * 10, 500 );

SKIN.Colours.Tree.Selected				= GWEN.TextureColor( 4 + 8 * 11, 500 );



SKIN.Colours.Properties = {}

SKIN.Colours.Properties.Line_Normal			= GWEN.TextureColor( 4 + 8 * 12, 508 );

SKIN.Colours.Properties.Line_Selected		= GWEN.TextureColor( 4 + 8 * 13, 508 );

SKIN.Colours.Properties.Line_Hover			= GWEN.TextureColor( 4 + 8 * 12, 500 );

SKIN.Colours.Properties.Title				= GWEN.TextureColor( 4 + 8 * 13, 500 );

SKIN.Colours.Properties.Column_Normal		= GWEN.TextureColor( 4 + 8 * 14, 508 );

SKIN.Colours.Properties.Column_Selected		= GWEN.TextureColor( 4 + 8 * 15, 508 );

SKIN.Colours.Properties.Column_Hover		= GWEN.TextureColor( 4 + 8 * 14, 500 );

SKIN.Colours.Properties.Border				= GWEN.TextureColor( 4 + 8 * 15, 500 );

SKIN.Colours.Properties.Label_Normal		= GWEN.TextureColor( 4 + 8 * 16, 508 );

SKIN.Colours.Properties.Label_Selected		= GWEN.TextureColor( 4 + 8 * 17, 508 );

SKIN.Colours.Properties.Label_Hover			= GWEN.TextureColor( 4 + 8 * 16, 500 );



SKIN.Colours.Category = {}

SKIN.Colours.Category.Header				= GWEN.TextureColor( 4 + 8 * 18, 500 );

SKIN.Colours.Category.Header_Closed			= GWEN.TextureColor( 4 + 8 * 19, 500 );

SKIN.Colours.Category.Line = {}

SKIN.Colours.Category.Line.Text				= GWEN.TextureColor( 4 + 8 * 20, 508 );

SKIN.Colours.Category.Line.Text_Hover		= GWEN.TextureColor( 4 + 8 * 21, 508 );

SKIN.Colours.Category.Line.Text_Selected	= GWEN.TextureColor( 4 + 8 * 20, 500 );

SKIN.Colours.Category.Line.Button			= GWEN.TextureColor( 4 + 8 * 21, 500 );

SKIN.Colours.Category.Line.Button_Hover		= GWEN.TextureColor( 4 + 8 * 22, 508 );

SKIN.Colours.Category.Line.Button_Selected	= GWEN.TextureColor( 4 + 8 * 23, 508 );

SKIN.Colours.Category.LineAlt = {}

SKIN.Colours.Category.LineAlt.Text				= GWEN.TextureColor( 4 + 8 * 22, 500 );

SKIN.Colours.Category.LineAlt.Text_Hover		= GWEN.TextureColor( 4 + 8 * 23, 500 );

SKIN.Colours.Category.LineAlt.Text_Selected		= GWEN.TextureColor( 4 + 8 * 24, 508 );

SKIN.Colours.Category.LineAlt.Button			= GWEN.TextureColor( 4 + 8 * 25, 508 );

SKIN.Colours.Category.LineAlt.Button_Hover		= GWEN.TextureColor( 4 + 8 * 24, 500 );

SKIN.Colours.Category.LineAlt.Button_Selected	= GWEN.TextureColor( 4 + 8 * 25, 500 );



SKIN.Colours.TooltipText	= GWEN.TextureColor( 4 + 8 * 26, 500 );



function SKIN:PaintButton(panel, w, h)

	if not panel.m_bBackground then return end



	local col



	if panel:GetDisabled() then

		col = Color(5, 5, 5, 90)

	elseif panel.Depressed or panel:IsSelected() or panel:GetToggle() then

		col = Color(60, 70, 100, 160)

	elseif panel.Hovered then

		col = Color(45, 45, 80, 160)

	else

		col = Color(32, 32, 35, 160)

	end



	local edgesize = math.min(math.ceil(w * 0.2), 24)

	surface.SetDrawColor(col)

	surface.DrawRect(edgesize, 0, w - edgesize * 2, h)

	surface.SetTexture(texRightEdge)

	surface.DrawTexturedRect(w - edgesize, 0, edgesize, h)

	surface.DrawTexturedRectRotated(math.ceil(edgesize * 0.5), math.ceil(h * 0.5), edgesize, h, 180)

end



derma.DefineSkin("zombiesurvival", "The default Derma skin for Zombie Survival", SKIN, "Default")

