Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- WebdeaOffical
- -- Use this function to perform your initial setup
- function setup()
- scene = UI
- scene:init()
- end
- -- This function gets called once every frame
- function draw()
- -- This sets a dark background color
- scene:draw()
- -- This sets the line thickness
- strokeWidth(5)
- -- Do your drawing here
- end
- function touched(t)
- scene:touched(t)
- end
- UI = class()
- function UI:init(x)
- -- The main vairbles to set
- shows = false
- bgcolor=color(255, 255, 255, 255)
- selected = "bg"
- moving = false
- movingn = nil
- elements= {}
- parameter.action("Export", export)
- images = spriteList("Documents")
- end
- function UI:draw()
- -- Tells if the selected object is the background
- if selected == "bg"then
- parameter.action("Export", export)
- parameter.color("bgcolor",bgcolor)
- end
- background(bgcolor)
- --Puts parameters in the console for the selected object
- if selected[1] ~= nil then
- if selected[1] == "text" then
- parameter.boolean("Locked",elements[selectedn][7])
- parameter.color("scolor",elements[selectedn][4])
- parameter.text("Text", elements[selectedn][6])
- parameter.integer("Size", 5,70, elements[selectedn][5])
- parameter.integer("x",1,800,elements[selectedn][2])
- parameter.integer("y",1,800,elements[selectedn][3])
- elements[selectedn][4] = scolor
- if elements[selectedn][2] ~= x or elements[selectedn][3] ~= y and moving == false then
- elements[selectedn][2] = x
- elements[selectedn][3] = y
- end
- elements[selectedn][5] = Size
- elements[selectedn][6] = Text
- elements[selectedn][7] = Locked
- stroke(255, 4, 0, 255)
- fill(216, 255, 0, 0)
- ellipse(elements[selectedn][2],elements[selectedn][3]+5,5)
- end
- if selected[1] == "image" then
- parameter.action("Change Image", showimg)
- parameter.boolean("Locked",elements[selectedn][6])
- parameter.integer("Width", 5,600, elements[selectedn][4])
- parameter.integer("Height", 5,600, elements[selectedn][5])
- parameter.integer("x",1,800,elements[selectedn][2])
- parameter.integer("y",1,800,elements[selectedn][3])
- elements[selectedn][4] = Width
- if elements[selectedn][2] ~= x or elements[selectedn][3] ~= y and moving == false then
- elements[selectedn][2] = x
- elements[selectedn][3] = y
- end
- elements[selectedn][6] = Locked
- elements[selectedn][5] = Height
- stroke(255, 4, 0, 255)
- fill(216, 255, 0, 0)
- ellipse(elements[selectedn][2],elements[selectedn][3]+5,5)
- end
- if selected[1] == "div" then
- parameter.boolean("Locked",elements[selectedn][6])
- parameter.color("scolor",elements[selectedn][7])
- parameter.integer("Width", 5,760, elements[selectedn][4])
- parameter.integer("Height", 5,1000, elements[selectedn][5])
- parameter.integer("x",-2,1000,elements[selectedn][2])
- parameter.integer("y",-2,1000,elements[selectedn][3])
- elements[selectedn][4] = Width
- if elements[selectedn][2] ~= x or elements[selectedn][3] ~= y and moving == false then
- elements[selectedn][2] = x
- elements[selectedn][3] = y
- end
- elements[selectedn][6] = Locked
- elements[selectedn][5] = Height
- elements[selectedn][7] = scolor
- stroke(255, 4, 0, 255)
- fill(216, 255, 0, 0)
- ellipse(elements[selectedn][2],elements[selectedn][3]+5,5)
- end
- if selected[1] == "input" then
- parameter.action("Change type | " ..elements[selectedn][9], showput)
- parameter.boolean("Locked",elements[selectedn][6])
- -- parameter.watch(tostring(elements[selectedn][9]))
- parameter.text("name",elements[selectedn][8])
- parameter.text("placeholder",elements[selectedn][7])
- parameter.integer("Width", 5,760, elements[selectedn][4])
- parameter.integer("Height", 5,1000, elements[selectedn][5])
- parameter.integer("x",-2,1000,elements[selectedn][2])
- parameter.integer("y",-2,1000,elements[selectedn][3])
- elements[selectedn][4] = Width
- if elements[selectedn][2] ~= x or elements[selectedn][3] ~= y and moving == false then
- elements[selectedn][2] = x
- elements[selectedn][3] = y
- end
- elements[selectedn][6] = Locked
- elements[selectedn][5] = Height
- elements[selectedn][7] = placeholder
- stroke(255, 4, 0, 255)
- fill(216, 255, 0, 0)
- ellipse(elements[selectedn][2],elements[selectedn][3]+5,5)
- end
- end
- for i=1, #elements do
- if elements[i][1] == "div" then
- noStroke()
- fill(elements[i][7])
- rect(elements[i][2],elements[i][3], elements[i][4], elements[i][5])
- end
- if elements[i][1] == "image" then
- sprite(elements[i][7],elements[i][2],elements[i][3],elements[i][4],elements[i][5])
- end
- if elements[i][1] == "text" then
- fontSize(elements[i][5])
- fill(elements[i][4])
- textAlign(LEFT)
- textMode(CORNER)
- text(elements[i][6],elements[i][2], elements[i][3] )
- end
- if elements[i][1] == "input" then
- stroke(0, 0, 0, 255)
- strokeWidth(1)
- fill(245, 245, 245, 255)
- rect(elements[i][2],elements[i][3],elements[i][4],elements[i][5])
- fontSize(10)
- fill(69, 69, 69, 255)
- textMode(CORNER)
- text(elements[i][7],elements[i][2],elements[i][3]+ elements[i][5]/2)
- end
- if CurrentTouch.tapCount == BEGAN then
- parameter.clear()
- selected = "bg"
- selectedn = nil
- end
- if elements[i][1] == "text" then
- if math.abs(CurrentTouch.x-elements[i][2]) < string.len(elements[i][6])*2.6 and math.abs(CurrentTouch.y-elements[i][3]) < 90 and selected ~= elements[i] and moving == false and
- elements[i][7] == false and CurrentTouch.state ~= BEGAN then
- elements[i][2] = CurrentTouch.x
- elements[i][3] = CurrentTouch.y
- moving = false
- end
- if math.abs(CurrentTouch.x-elements[i][2]+textSize(elements[i][6])) < textSize(elements[i][6])*2 and math.abs(CurrentTouch.y-elements[i][3]) < 70 and CurrentTouch.state == BEGAN and selected ~= elements[i] then
- parameter.clear()
- parameter.action("Export", export)
- parameter.action("Remove", remove)
- selected = "bg"
- selectedn = nil
- selected = elements[i]
- selectedn = i
- end
- else
- if math.abs(CurrentTouch.x-elements[i][2]) < elements[i][4] and math.abs(CurrentTouch.y-elements[i][3]) < elements[i][5] and selected ~= elements[i] and moving == false and CurrentTouch.state ~= BEGAN and elements[i][6] == false then
- elements[i][2] = CurrentTouch.x
- elements[i][3] = CurrentTouch.y
- moving = false
- end
- if math.abs(CurrentTouch.x-elements[i][2]) <elements[i][4] and math.abs(CurrentTouch.y-elements[i][3]) < elements[i][5] and selected ~= elements[i]and CurrentTouch.state == BEGAN then
- selected = elements[i]
- selectedn = i
- parameter.clear()
- parameter.action("Export", export)
- parameter.action("Remove", remove)
- end
- end
- end
- -- This sets the line thickness
- strokeWidth(5)
- -- Do your drawing here
- if shows == true then
- noStroke()
- fill(33, 37, 36, 255)
- rect(-1,-1,WIDTH+5,60)
- fill(255, 255, 255, 255)
- font("ArialMT")
- fontSize(15)
- text("Text | ", 50, 25)
- text("Image | ",150, 25)
- text("Div | ",250, 25)
- text("Input | ",350, 25)
- end
- moving = false
- end
- function UI:touched(t)
- if math.abs(CurrentTouch.x-50)<100/2 and math.abs(CurrentTouch.y-25)<60 and shows==true then
- shows=false
- table.insert(elements, {"text", 300, 300, color(0,0,0,255), 10, "type here", false })
- end
- if math.abs(CurrentTouch.x-150)<100/2 and math.abs(CurrentTouch.y-25)<60 and shows==true then
- shows=false
- table.insert(elements, {"image", 150,100,50,50, false,"Documents:imageicon" })
- end
- if math.abs(CurrentTouch.x-250)<100/2 and math.abs(CurrentTouch.y-25)<60 and shows==true then
- shows=false
- table.insert(elements, {"div", 300, 100,100,100, false, color(0,195,75) })
- end
- if math.abs(CurrentTouch.x-350)<100/2 and math.abs(CurrentTouch.y-25)<60 and shows==true then
- shows=false
- table.insert(elements, {"input", 300, 100, 180, 40,false, "name", "Username", "text" })
- end
- if t.tapCount == 1 then
- shows= false
- end
- if t.tapCount >= 2 then
- shows = true
- end
- end
- function export()
- -- The function thats turns all the elements into HTML/CSS
- code = ""
- for i=1, #elements do
- if elements[i][1] == "text" then
- print(elements[i][4])
- code = code .. "<p style='position:absolute; left:" .. elements[i][2]+
- (textSize(elements[i][6])/1.25) .. "; bottom: " .. math.ceil(elements[i][3]/1.20-
- textSize(elements[i][6])/3.25) .. "px; font-size:" .. elements[i][5] .. "px; color: rgba" .. tostring(elements[i][4]) .. ";' > " .. elements[i][6] .. " </p>\n \n"
- end
- if elements[i][1] == "image" then
- print(elements[i][4])
- code = code .. "<img src='alert.png' style='position:absolute; left:" .. elements[i][2]*1.25 .. "; bottom: " .. math.ceil(elements[i][3]/1.10-(elements[i][5]/1.25)) .. ";' width='" .. elements[i][4] .. "' height='" .. elements[i][5] .. "'> \n \n"
- end
- if elements[i][1] == "div" then
- print(elements[i][4])
- code = code .. "<div style='position: absolute; width:" ..elements[i][4]*1.3 .. "px;height:" ..elements[i][5]*1.3 .. "px; left:" .. elements[i][2]*1.4 .. "px; bottom:" .. elements[i][3]/1.15 .. "px; background-color: rgba" ..tostring(elements[i][7]) .. ";'></div>"
- end
- if elements[i][1] == "input" then
- code = code .. "<form> <input style=' position: absolute; left:" ..elements[i][2]*1.4 .. "px; bottom:" .. elements[i][3]/1.2 .. "px; width:" .. elements[i][4] .. "px; height:" ..elements[i][5] .. "px;' type='" .. elements[i][9] .. "' name='" .. elements[i][8] .. "' placeholder='" .. elements[i][7] .. "'> </form> \n \n"
- end
- end
- print(code)
- --post({["code"] = code})
- -- post(code)
- end
- function remove()
- table.remove(elements,selectedn)
- selected[1] = nil
- parameter.clear()
- end
- function showimg()
- parameter.clear()
- for i=1, #images do
- parameter.action("Documents:"..images[i], changeimg)
- end
- end
- function changeimg(strng)
- elements[selectedn][7] = strng
- parameter.clear()
- end
- function showput()
- parameter.clear()
- parameter.action("date", changeput)
- parameter.action("email", changeput)
- parameter.action("number", changeput)
- parameter.action("password", changeput)
- parameter.action("submit", changeput)
- parameter.action("text", changeput)
- end
- function changeput(strin)
- elements[selectedn][9] = strin
- parameter.clear()
- end
- function preview(data)
- openURL("http://www.indiegrail.com/webdea.php")
- end
- function post(data)
- --[[
- if (sid) then data["sid"]=sid end
- local dstring = ""
- local k,v
- for k,v in pairs(data) do
- if (dstring == "") then
- dstring = k .. "=" .. v
- else
- dstring = dstring .. "&" .. k .. "=" .. v
- end
- end
- ]]
- -- print(dstring)
- local t = { ["method"]="POST", ["data"]=data }
- http.request("http://www.indiegrail.com/webdea.php",preview, fail, t)
- end
- function fail()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement