Advertisement
Guest User

Webdea3

a guest
Aug 18th, 2014
361
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- WebdeaOffical
  2.  
  3. -- Use this function to perform your initial setup
  4. function setup()
  5.     scene = UI
  6.     scene:init()
  7. end
  8.  
  9. -- This function gets called once every frame
  10. function draw()
  11.     -- This sets a dark background color
  12.    
  13. scene:draw()
  14.  
  15.     -- This sets the line thickness
  16.     strokeWidth(5)
  17.  
  18.     -- Do your drawing here
  19.    
  20. end
  21.  
  22. function touched(t)
  23.     scene:touched(t)
  24. end
  25.  
  26.  
  27. UI = class()
  28.  
  29. function UI:init(x)
  30.     -- The main vairbles to set
  31.     shows = false
  32.     bgcolor=color(255, 255, 255, 255)
  33.     selected = "bg"
  34.     moving = false
  35.     movingn = nil
  36.    
  37.     elements= {}
  38.    
  39.     parameter.action("Export", export)
  40.    
  41.     images = spriteList("Documents")
  42.    
  43. end
  44.  
  45.  
  46. function UI:draw()
  47.     -- Tells if the selected object is the background
  48.     if selected == "bg"then
  49.         parameter.action("Export", export)
  50.    
  51.         parameter.color("bgcolor",bgcolor)
  52.        
  53.     end
  54.    
  55.    
  56.    
  57.    
  58.     background(bgcolor)
  59.    
  60.     --Puts parameters in the console  for the selected object
  61.     if selected[1] ~= nil then
  62.        
  63.         if selected[1] == "text" then
  64.            
  65.             parameter.boolean("Locked",elements[selectedn][7])
  66.            
  67.             parameter.color("scolor",elements[selectedn][4])
  68.             parameter.text("Text", elements[selectedn][6])
  69.             parameter.integer("Size", 5,70, elements[selectedn][5])
  70.            
  71.             parameter.integer("x",1,800,elements[selectedn][2])
  72.             parameter.integer("y",1,800,elements[selectedn][3])
  73.            
  74.             elements[selectedn][4] = scolor
  75.             if elements[selectedn][2] ~= x or elements[selectedn][3] ~= y and moving == false then
  76.                 elements[selectedn][2] = x
  77.                 elements[selectedn][3] = y
  78.             end
  79.             elements[selectedn][5] = Size
  80.             elements[selectedn][6] = Text
  81.             elements[selectedn][7] = Locked
  82.            
  83.            
  84.            
  85.             stroke(255, 4, 0, 255)
  86.             fill(216, 255, 0, 0)
  87.             ellipse(elements[selectedn][2],elements[selectedn][3]+5,5)
  88.            
  89.         end
  90.        
  91.        
  92.         if selected[1] == "image" then
  93.             parameter.action("Change Image", showimg)
  94.            
  95.             parameter.boolean("Locked",elements[selectedn][6])
  96.            
  97.             parameter.integer("Width", 5,600, elements[selectedn][4])
  98.             parameter.integer("Height", 5,600, elements[selectedn][5])
  99.            
  100.             parameter.integer("x",1,800,elements[selectedn][2])
  101.             parameter.integer("y",1,800,elements[selectedn][3])
  102.            
  103.             elements[selectedn][4] = Width
  104.             if elements[selectedn][2] ~= x or elements[selectedn][3] ~= y and moving == false then
  105.                
  106.                 elements[selectedn][2] = x
  107.                 elements[selectedn][3] = y
  108.             end
  109.             elements[selectedn][6] = Locked
  110.             elements[selectedn][5] = Height
  111.            
  112.            
  113.            
  114.             stroke(255, 4, 0, 255)
  115.             fill(216, 255, 0, 0)
  116.             ellipse(elements[selectedn][2],elements[selectedn][3]+5,5)
  117.            
  118.            
  119.            
  120.         end
  121.        
  122.         if selected[1] == "div" then
  123.            
  124.             parameter.boolean("Locked",elements[selectedn][6])
  125.             parameter.color("scolor",elements[selectedn][7])
  126.             parameter.integer("Width", 5,760, elements[selectedn][4])
  127.             parameter.integer("Height", 5,1000, elements[selectedn][5])
  128.            
  129.             parameter.integer("x",-2,1000,elements[selectedn][2])
  130.             parameter.integer("y",-2,1000,elements[selectedn][3])
  131.            
  132.             elements[selectedn][4] = Width
  133.             if elements[selectedn][2] ~= x or elements[selectedn][3] ~= y and moving == false then
  134.                
  135.                 elements[selectedn][2] = x
  136.                 elements[selectedn][3] = y
  137.             end
  138.             elements[selectedn][6] = Locked
  139.             elements[selectedn][5] = Height
  140.             elements[selectedn][7] = scolor
  141.            
  142.            
  143.             stroke(255, 4, 0, 255)
  144.             fill(216, 255, 0, 0)
  145.             ellipse(elements[selectedn][2],elements[selectedn][3]+5,5)
  146.            
  147.            
  148.            
  149.         end
  150.        
  151.            
  152.         if selected[1] == "input" then
  153.             parameter.action("Change type | " ..elements[selectedn][9], showput)
  154.             parameter.boolean("Locked",elements[selectedn][6])
  155.         --    parameter.watch(tostring(elements[selectedn][9]))
  156.              parameter.text("name",elements[selectedn][8])
  157.             parameter.text("placeholder",elements[selectedn][7])
  158.             parameter.integer("Width", 5,760, elements[selectedn][4])
  159.             parameter.integer("Height", 5,1000, elements[selectedn][5])
  160.            
  161.             parameter.integer("x",-2,1000,elements[selectedn][2])
  162.             parameter.integer("y",-2,1000,elements[selectedn][3])
  163.            
  164.             elements[selectedn][4] = Width
  165.             if elements[selectedn][2] ~= x or elements[selectedn][3] ~= y and moving == false then
  166.                
  167.                 elements[selectedn][2] = x
  168.                 elements[selectedn][3] = y
  169.             end
  170.             elements[selectedn][6] = Locked
  171.             elements[selectedn][5] = Height
  172.             elements[selectedn][7] = placeholder
  173.            
  174.            
  175.             stroke(255, 4, 0, 255)
  176.             fill(216, 255, 0, 0)
  177.             ellipse(elements[selectedn][2],elements[selectedn][3]+5,5)
  178.            
  179.            
  180.            
  181.         end
  182.        
  183.        
  184.        
  185.        
  186.     end
  187.    
  188.     for i=1, #elements do
  189.        
  190.         if elements[i][1] == "div" then
  191.             noStroke()
  192.             fill(elements[i][7])
  193.             rect(elements[i][2],elements[i][3], elements[i][4], elements[i][5])
  194.            
  195.         end
  196.        
  197.         if   elements[i][1] == "image" then
  198.            
  199.             sprite(elements[i][7],elements[i][2],elements[i][3],elements[i][4],elements[i][5])
  200.            
  201.         end
  202.        
  203.        
  204.         if elements[i][1] == "text" then
  205.             fontSize(elements[i][5])
  206.             fill(elements[i][4])
  207.             textAlign(LEFT)
  208.             textMode(CORNER)
  209.             text(elements[i][6],elements[i][2], elements[i][3] )
  210.            
  211.         end
  212.        
  213.         if elements[i][1] == "input" then
  214.             stroke(0, 0, 0, 255)
  215.             strokeWidth(1)
  216.             fill(245, 245, 245, 255)
  217.             rect(elements[i][2],elements[i][3],elements[i][4],elements[i][5])
  218.             fontSize(10)
  219.             fill(69, 69, 69, 255)
  220.             textMode(CORNER)
  221.             text(elements[i][7],elements[i][2],elements[i][3]+ elements[i][5]/2)
  222.         end
  223.        
  224.        
  225.        
  226.         if CurrentTouch.tapCount == BEGAN then
  227.             parameter.clear()
  228.             selected =  "bg"
  229.             selectedn = nil
  230.         end
  231.        
  232.         if elements[i][1] == "text" then
  233.            
  234.            
  235.            
  236.             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
  237.             elements[i][7] == false and CurrentTouch.state ~= BEGAN   then
  238.                 elements[i][2] = CurrentTouch.x
  239.                
  240.                 elements[i][3] = CurrentTouch.y
  241.                 moving = false
  242.                
  243.             end
  244.            
  245.            
  246.            
  247.            
  248.             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
  249.                 parameter.clear()
  250.                
  251.                 parameter.action("Export", export)
  252.                 parameter.action("Remove", remove)
  253.                
  254.                 selected = "bg"
  255.                 selectedn = nil
  256.                
  257.                 selected = elements[i]
  258.                 selectedn  = i
  259.                
  260.             end
  261.            
  262.            
  263.             else
  264.            
  265.            
  266.             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
  267.                
  268.                 elements[i][2] = CurrentTouch.x
  269.                
  270.                 elements[i][3] = CurrentTouch.y
  271.                 moving = false
  272.                
  273.             end
  274.            
  275.            
  276.            
  277.            
  278.            
  279.             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
  280.                
  281.                 selected = elements[i]
  282.                 selectedn  = i
  283.                 parameter.clear()
  284.                 parameter.action("Export", export)
  285.                 parameter.action("Remove", remove)
  286.                
  287.                
  288.             end
  289.         end
  290.     end
  291.     -- This sets the line thickness
  292.     strokeWidth(5)
  293.    
  294.     -- Do your drawing here
  295.    
  296.    
  297.     if shows == true then
  298.        
  299.         noStroke()
  300.         fill(33, 37, 36, 255)
  301.         rect(-1,-1,WIDTH+5,60)
  302.         fill(255, 255, 255, 255)
  303.         font("ArialMT")
  304.         fontSize(15)
  305.         text("Text      | ", 50, 25)
  306.         text("Image     | ",150, 25)
  307.         text("Div       | ",250, 25)
  308.         text("Input     | ",350, 25)
  309.     end
  310.    
  311.     moving = false
  312. end
  313.  
  314. function UI:touched(t)
  315.    
  316.     if math.abs(CurrentTouch.x-50)<100/2 and  math.abs(CurrentTouch.y-25)<60 and shows==true then
  317.         shows=false
  318.         table.insert(elements, {"text", 300, 300, color(0,0,0,255), 10, "type here", false })
  319.        
  320.     end
  321.    
  322.     if math.abs(CurrentTouch.x-150)<100/2 and  math.abs(CurrentTouch.y-25)<60 and shows==true then
  323.         shows=false
  324.         table.insert(elements, {"image", 150,100,50,50, false,"Documents:imageicon" })
  325.        
  326.     end
  327.    
  328.     if math.abs(CurrentTouch.x-250)<100/2 and  math.abs(CurrentTouch.y-25)<60 and shows==true then
  329.         shows=false
  330.         table.insert(elements, {"div", 300, 100,100,100, false, color(0,195,75) })
  331.        
  332.        
  333.     end
  334.    
  335.      if math.abs(CurrentTouch.x-350)<100/2 and  math.abs(CurrentTouch.y-25)<60 and shows==true then
  336.         shows=false
  337.         table.insert(elements, {"input", 300, 100, 180, 40,false, "name", "Username", "text" })
  338.        
  339.        
  340.     end
  341.    
  342.    
  343.     if t.tapCount == 1 then
  344.         shows= false
  345.     end
  346.    
  347.     if t.tapCount >= 2 then
  348.         shows = true
  349.     end
  350.    
  351. end
  352.  
  353. function export()
  354.     -- The function thats turns all the elements into HTML/CSS
  355.     code = ""
  356.     for i=1, #elements do
  357.         if elements[i][1] == "text" then
  358.             print(elements[i][4])
  359.             code = code .. "<p style='position:absolute; left:" .. elements[i][2]+
  360.          (textSize(elements[i][6])/1.25) .. "; bottom: " .. math.ceil(elements[i][3]/1.20-
  361.             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"
  362.         end
  363.         if elements[i][1] == "image" then
  364.             print(elements[i][4])
  365.         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"
  366.         end
  367.        
  368.         if elements[i][1] == "div" then
  369.             print(elements[i][4])
  370.             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>"
  371.            
  372.            
  373.          
  374.         end
  375.        
  376.         if elements[i][1] == "input" then
  377.            
  378.             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"
  379.            
  380.         end
  381.        
  382.     end
  383.    
  384.     print(code)
  385.     --post({["code"] = code})
  386.   --  post(code)
  387. end
  388.  
  389. function remove()
  390.     table.remove(elements,selectedn)
  391.     selected[1] = nil
  392.     parameter.clear()
  393. end
  394.  
  395. function showimg()
  396.     parameter.clear()
  397.    
  398.     for i=1, #images do
  399.        
  400.         parameter.action("Documents:"..images[i], changeimg)
  401.        
  402.     end
  403. end
  404.  
  405. function changeimg(strng)
  406.    
  407.     elements[selectedn][7] = strng
  408. parameter.clear()
  409. end
  410.  
  411. function showput()
  412.     parameter.clear()
  413.     parameter.action("date", changeput)
  414.     parameter.action("email", changeput)
  415.     parameter.action("number", changeput)
  416.     parameter.action("password", changeput)
  417.     parameter.action("submit", changeput)
  418.     parameter.action("text", changeput)
  419.  
  420.  
  421.    
  422. end
  423.  
  424. function changeput(strin)
  425.    
  426.     elements[selectedn][9] = strin
  427.      parameter.clear()
  428.    
  429. end
  430.  
  431. function preview(data)
  432.    
  433. openURL("http://www.indiegrail.com/webdea.php")
  434.  
  435.    
  436. end
  437.  
  438.  
  439. function post(data)
  440.     --[[
  441.     if (sid) then data["sid"]=sid end
  442.     local dstring = ""
  443.     local k,v
  444.     for k,v in pairs(data) do
  445.         if (dstring == "") then
  446.            dstring = k .. "=" .. v
  447.         else
  448.             dstring = dstring .. "&" .. k .. "=" .. v
  449.         end
  450.     end
  451.     ]]
  452.    -- print(dstring)
  453.     local t = { ["method"]="POST", ["data"]=data }
  454.     http.request("http://www.indiegrail.com/webdea.php",preview, fail, t)
  455. end
  456.  
  457. function fail()
  458.    
  459.    
  460. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement