View difference between Paste ID: DB5gqaFZ and s8YapjX0
SHOW: | | - or go back to the newest paste.
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)
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