aboutsummaryrefslogtreecommitdiffstats
path: root/main.lua
blob: 390e61a6d43b143a69426b7c39d3026458d63733 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
require 'love2d-fakecanvas/fakecanvas'

local Window = {}
local colors = { { 0, 0, 255, 255}, {0, 255, 0, 255}, {0, 255, 255, 255}, {255, 0, 0, 255}, {255, 0, 255, 255}, {255, 255, 0, 255} }
local Polygons = {}
local Keypressed = {}

function love.load()
	love.graphics.setBackgroundColor(0, 0, 0)

	-- Inner window border
	table.insert(Polygons, { Type = "rectangle", DrawMode = "line", LineWidth = 0.005, Position = { x = 0.005, y = 0.005}, Dimension = {width = 0.99, height = 0.99}, Colors = {0, 0, 171, 255} })

	-- Background
	for i = 0, 5 do
		table.insert(Polygons, { Type = "polygon", DrawMode = "fill", Position = { x1 = 0.01, y1 = 0.02+0.02*i, x2 = 0.02+0.02*i, y2 = 0.01, x3 = 0.03+0.02*i, y3 = 0.01, x4 = 0.01, y4 = 0.03+0.02*i}, Colors = {0, 0, 171, 255} })
		table.insert(Polygons, { Type = "polygon", DrawMode = "fill", Position = { x1 = 0.99, y1 = 0.98-0.02*i, x2 = 0.98-0.02*i, y2 = 0.99, x3 = 0.97-0.02*i, y3 = 0.99, x4 = 0.99, y4 = 0.97-0.02*i}, Colors = {0, 0, 171, 255} })
	end

	-- Left box
	table.insert(Polygons, { Type = "rectangle", DrawMode = "fill", Position = { x = 0.05, y = 0.05}, Dimension = {width = 0.35, height = 0.90}, Colors = {0, 0, 0, 255} })
	table.insert(Polygons, { Type = "rectangle", DrawMode = "line", Position = { x = 0.05, y = 0.05}, Dimension = {width = 0.35, height = 0.90}, Colors = {0, 0, 171, 255} })
	table.insert(Polygons, { Type = "line", Position = { x1 = 0.05, y1 = 0.1, x2 = 0.4, y2 = 0.1}, Colors = {0, 0, 171, 255} })

	-- Left box buttons
	table.insert(Polygons, { Type = "rectangle", DrawMode = "line", Position = { x = 0.075, y = 0.875}, Dimension = {width = 0.125, height = 0.05}, Colors = {0, 0, 171, 255} })
	table.insert(Polygons, { Type = "rectangle", DrawMode = "line", Position = { x = 0.25, y = 0.875}, Dimension = {width = 0.125, height = 0.05}, Colors = {0, 0, 171, 255} })

	-- Left box content
	table.insert(Polygons, { Type = "line", LineWidth = 0.01, Position = { x1 = 0.375, y1 = 0.15, x2 = 0.375, y2 = 0.75}, Colors = {0, 0, 171, 255} })

	-- Right top box
	table.insert(Polygons, { Type = "rectangle", LineWidth = 0.005, DrawMode = "line", Position = { x = 0.45, y = 0.05}, Dimension = {width = 0.50, height = 0.75}, Colors = {0, 0, 171, 255} })
	table.insert(Polygons, { Type = "line", Position = { x1 = 0.45, y1 = 0.1, x2 = 0.95, y2 = 0.1}, Colors = {0, 0, 171, 255} })

	-- Right top box content
	table.insert(Polygons, { Type = "line", LineWidth = 0.01, Position = { x1 = 0.375-0.005, y1 = 0.75, x2 = 0.52+5*0.075+0.005, y2 = 0.75}, Colors = {0, 0, 171, 255} })

	-- Right bottom box
	table.insert(Polygons, { Type = "rectangle", LineWidth = 0.005, DrawMode = "fill", Position = { x = 0.45, y = 0.85}, Dimension = {width = 0.50, height = 0.10}, Colors = {0, 0, 0, 255} })
	table.insert(Polygons, { Type = "rectangle", DrawMode = "line", Position = { x = 0.45, y = 0.85}, Dimension = {width = 0.50, height = 0.10}, Colors = {0, 0, 171, 255} })

	-- Right bottom box buttons
	for i = 0, 5 do
		table.insert(Polygons, { Type = "rectangle", DrawMode = "fill", Position = { x = 0.50+i*0.075, y = 0.875}, Dimension = {width = 0.04, height = 0.04}, Colors = colors[i+1] })
		table.insert(Polygons, { Type = "rectangle", DrawMode = "line", LineWidth = 0.01, Position = { x = 0.50+i*0.075, y = 0.875}, Dimension = {width = 0.04, height = 0.04}, Colors = {0, 0, 171, 255} })
		table.insert(Polygons, { Type = "line", Position = { x1 = 0.52+i*0.075, y1 = 0.75, x2 = 0.52+i*0.075, y2 = 0.875}, Colors = {0, 0, 171, 255} })
		if i < 5 then table.insert(Polygons, { Type = "line", Position = { x1 = 0.5+i*0.075+0.04, y1 = 0.895, x2 = 0.52+(i+1)*0.075, y2 = 0.895}, Colors = {0, 0, 171, 255} }) end
	end
end

local function drawPolygon(polygon)
	if polygon.Colors then
		love.graphics.setColor(unpack(polygon.Colors))
	end

	if polygon.LineWidth then
		love.graphics.setLineWidth(polygon.LineWidth*(Window.width+Window.height)/2)
	end

	if polygon.Type == "rectangle" then
		love.graphics.rectangle(polygon.DrawMode, polygon.Position.x*Window.width, polygon.Position.y*Window.height,
			polygon.Dimension.width*Window.width, polygon.Dimension.height*Window.height)

	elseif polygon.Type == "polygon" then
		love.graphics.polygon(polygon.DrawMode, polygon.Position.x1*Window.width, polygon.Position.y1*Window.height,
			polygon.Position.x2*Window.width, polygon.Position.y2*Window.height,
			polygon.Position.x3*Window.width, polygon.Position.y3*Window.height,
			polygon.Position.x4*Window.width, polygon.Position.y4*Window.height)

	elseif polygon.Type == "line" then
		love.graphics.line(polygon.Position.x1*Window.width, polygon.Position.y1*Window.height,
			polygon.Position.x2*Window.width, polygon.Position.y2*Window.height)
	end
end

function love.mousepressed(x, y, b)
	x = x/Window.width
	y = y/Window.height
	if 0.875 < y and y < 0.915 then
		for i = 0,5 do
			if 0.50+i*0.075 < x and x < 0.50+i*0.075+0.04 then
				table.insert(Keypressed, i)
			end
		end
	end
end

function love.draw()
	Window.width, Window.height = love.window.getDimensions()

	for id, polygon in ipairs(Polygons) do
		drawPolygon(polygon)
	end

	love.graphics.setColor(255, 255, 255, 255)
	for id, num in ipairs(Keypressed) do
		love.graphics.print(num, (0.1+(id%5)*0.05)*Window.width, (0.6+((id-(id%5))/5)*0.05)*Window.height)
	end
end