2015-09-19 07:21:38 +03:00

62 lines
2.4 KiB
Lua

local c = require("component")
local gpu = c.gpu
---------------------------------------------------------------------------
local colors = {
usualButton = 0xeeeeee,
actionButton = 0xF69332,
usualButtonText = 0x262626,
actionButtonText = 0xffffff,
equal = 0x363636,
equalText = 0xffffff,
}
local buttons = {
{{"C", colors.usualButton, colors.usualButtonText}, {"sin", colors.usualButton, colors.usualButtonText}, {"cos", colors.usualButton, colors.usualButtonText}, {"/", colors.actionButton, colors.actionButtonText}},
{{"7", colors.usualButton, colors.usualButtonText}, {"8", colors.usualButton, colors.usualButtonText}, {"9", colors.usualButton, colors.usualButtonText}, {"*", colors.actionButton, colors.actionButtonText}},
{{"4", colors.usualButton, colors.usualButtonText}, {"5", colors.usualButton, colors.usualButtonText}, {"6", colors.usualButton, colors.usualButtonText}, {"-", colors.actionButton, colors.actionButtonText}},
{{"1", colors.usualButton, colors.usualButtonText}, {"2", colors.usualButton, colors.usualButtonText}, {"3", colors.usualButton, colors.usualButtonText}, {"+", colors.actionButton, colors.actionButtonText}},
{{"0", colors.usualButton, colors.usualButtonText}, {".", colors.usualButton, colors.usualButtonText}, {"rnd", colors.usualButton, colors.usualButtonText}, {"=", colors.actionButton, colors.actionButtonText}},
}
local buttonWidth, buttonHeight, equalHeight = 7, 3, 3
local calcWidth = #buttons[1] * buttonWidth
local calcHeight = #buttons * buttonHeight + equalHeight
local equal, number1, number2 = 0, 0, 0
local function drawButtons(x, y)
local yPos, xPos = y, x
for i = 1, #buttons do
xPos = x
for j = 1, #buttons[i] do
ecs.drawButton(xPos, yPos, buttonWidth, buttonHeight, buttons[i][j][1], buttons[i][j][2], buttons[i][j][3])
xPos = xPos + buttonWidth
end
yPos = yPos + buttonHeight
end
end
local function drawEqual(x, y)
ecs.square(x, y, calcWidth, equalHeight, colors.equal)
ecs.colorText(x + 1, y, ecs.colors.red, "")
ecs.colorText(x + 3, y, ecs.colors.orange, "")
ecs.colorText(x + 5, y, ecs.colors.green, "")
--
local limit = calcWidth - 4
local strEqual = ecs.stringLimit("start", tostring(equal), limit)
local sEqual = #strEqual
local xPos, yPos = x + calcWidth - sEqual - 3, y + 1
ecs.colorText(xPos, yPos, colors.equalText, strEqual)
end
local function drawCalc(x, y)
drawEqual(x, y)
drawButtons(x, y + equalHeight)
end
--ecs.prepareToExit()
drawCalc(2, 2)
ecs.waitForTouchOrClick()