GUI = class("level_editor/gui")

GUI.static.pressSound = love.audio.newSource("sounds/ui/button.wav")

GUI.static.defaultCallbac = function() print("this button has not been configured") end

function GUI:initialize(t)
	print("i exist", t.name, t.text)
	self.offset = {x = 0, y = 0}
	self.name = t.name
	self.text = t.text

	if not t.onClic then
		t.onClic = {}
	end
	if not t.onClic.right then
		t.onClic.right = GUI.defaultCallbac
	end
	if not t.onClic.left then
		t.onClic.left = GUI.defaultCallbac
	end

	self.clic = t.onClic

	self.x, self.y = t.x, t.y

	if t.sprite then
		print(self.name)
		self.scale = drawScale * 2 / 3
		self.w = t.sprite:getWidth() * self.scale
		self.h = t.sprite:getHeight() * self.scale
		self.sprite = t.sprite

		self.offset = {x = self.w / 2, y = self.h / 2}
		self.x, self.y = t.x - self.offset.x, t.y - self.offset.y
	elseif t.sprites then
		self.sprites = t.sprites
		local w, h
		for color, sprite in pairs(t.sprites) do
			w = sprite:getWidth()
			h = sprite:getHeight()
		end
		if w > h then
			self.scale = (drawScale * (2 / 3)) / (w / 16)
		elseif w < h then
			self.scale = (drawScale * (2 / 3)) / (h / 16)
		else
			self.scale = (drawScale * (2 / 3)) / (w / 16)
		end
		self.w = sideBarBox.w - (self.x * 2)
		self.h = h * self.scale
	else
		-- this is text
		self.x, self.y = t.x, t.y
		self.w, self.h = sideBarBox.w - self.x * 2, 50
	end

	if self.name == "folder" then
		self.w = sideBarBox.w - self.x * 2
	end
end

function GUI:clicIsInBox(x, y)
	if x > self.x and x < self.x + self.w and y > self.y and y < self.y + self.h then
		return true
	end
	return false
end

function GUI:getBox()
	return {x = self.x, y = self.y, w = self.w, h = self.h}
end

function GUI:editText(text)
	self.text = text
end

function GUI:draw()

	love.graphics.setColor(gColor.white:set())
	love.graphics.setLineWidth(4)

	local box = self:getBox()
	box.x = box.x + self:sha()
	box.y = box.y + self:sha()

	if name == "forward" then
		print(box.x, box.y)
	end

	if selectedColor == self.name then
		love.graphics.rectangle("line", box.x, box.y, box.w, box.h)
	end

	if self.sprite then
		love.graphics.draw(self.sprite, box.x, box.y, 0, self.scale, self.scale)
	end

	if self.sprites then
		for color, sprite in pairs(self.sprites) do
			love.graphics.setColor(gColor[color]:set())
			love.graphics.draw(sprite, box.x, box.y, 0, self.scale, self.scale)
		end
	end

	if self.text then
		love.graphics.setColor(gColor.white:set())
		if not self.sprites and not self.sprite then
			love.graphics.rectangle("line", box.x, box.y, box.w, box.h)
		end
		love.graphics.print(self.text, box.x + 50, box.y + 15)
	end

end

function GUI:onClic(button)
	print(button)
	print("hey!!! u cliced on me. my name is ", self.name, self.text)
	GUI.pressSound:play()
	if button == 1 then
		self.clic:left()
	elseif button == 2 then
		self.clic:right()
	end
end

function GUI:sha()
	return math.random(-worldSha, worldSha) * .5
end