JETServer
/home/bradarant/barant/HTTPServer/__editview.h
1
#ifndef ____editview_h__
2
#define ____editview_h__
3
4
#include "HTTPPage.h"
5
6
namespace
http
{
7
8
class
__editview
:
public
HTTPPage
{
9
10
int
processCommand(std::string request, core::Session *session,
HTTPSession
*httpSession,
HTTPRequest
&httpRequest, std::stringstream &data)
override
{
11
12
data <<
" <div style=\"position: relative;\">"
<< std::endl;
13
data <<
""
<< std::endl;
14
data <<
" <div id=\"window1\" style=\"position: absolute; left: 0px; top: 0px; border: 1pt solid black; display: inline-block; padding: 2px; background: #808080; color: #ffffff;\">"
<< std::endl;
15
data <<
""
<< std::endl;
16
data <<
" <span style=\"font: 20px bebasneue;\">View Editor</span>"
<< std::endl;
17
data <<
""
<< std::endl;
18
data <<
" <div id=\"mainpage\" "
<< std::endl;
19
data <<
" style=\"width: 600px; height: 600px; border: 1px solid black; position: relative; background: #ffffff;\" "
<< std::endl;
20
data <<
" onmousemove=\"mousemove(event); return true;\" "
<< std::endl;
21
data <<
" onmouseup=\"mouseup(); return true;\">"
<< std::endl;
22
data <<
""
<< std::endl;
23
data <<
" <canvas id=\"grid\" width=\"600px\" height=\"600px\" style=\"position: absolute; left: 0px; top: 0px; alpha: 0.5; cursor: normal;\"></canvas>"
<< std::endl;
24
data <<
""
<< std::endl;
25
26
data <<
"<div id=\"__workspace__\"></div>"
<< std::endl;
27
28
data <<
""
<< std::endl;
29
data <<
" <div id=\"window3\" style=\"position:absolute; top: 235px; left: 610px;"
<< std::endl;
30
data <<
" border: 1pt solid black; display: inline-block; padding: 2px; background: #808080; color: #ffffff;\">"
<< std::endl;
31
data <<
""
<< std::endl;
32
data <<
" <span style=\"font: 20px bebasneue;\">OPTIONS</span>"
<< std::endl;
33
data <<
""
<< std::endl;
34
data <<
" <div style=\"width: 150px; height: 300px; color: #000000; border: 1px solid black; position: relative; background: #ffffff;\" "
<< std::endl;
35
data <<
" onmousemove=\"mousemove(event); return true;\" "
<< std::endl;
36
data <<
" onmouseup=\"mouseup(); return true;\"> "
<< std::endl;
37
data <<
""
<< std::endl;
38
data <<
" <div id=\"controls\">"
<< std::endl;
39
data <<
" <input type=\"checkbox\" name=\"grid\" onchange=\"showGrid = this.checked; drawGrid(); return true;\"><span style=\"font: 12px bebasneue; margin-bottom: 2px;\">Show Grid</span><br>"
<< std::endl;
40
data <<
" <input type=\"checkbox\" name=\"snaptogrid\" onchange=\"snapToGrid = this.checked; return true;\"><span style=\"font: 12px bebasneue; margin-bottom: 2px;\">Snap To Grid</span><br>"
<< std::endl;
41
data <<
" <span style=\"font: 12px bebasneue; margin-bottom: 2px;\">Grid Size: </span><input type=\"text\" name=\"gridsize\" id=\"gridsize\" style=\"width: 20px;\" size=\"3\" onchange=\"gridSize = parseInt(this.value); drawGrid(); return true;\"><br>"
<< std::endl;
42
data <<
" </div>"
<< std::endl;
43
data <<
""
<< std::endl;
44
data <<
" <div id=\"itemparameters\" style=\"font: 12px bebasneue;\"></div>"
<< std::endl;
45
data <<
""
<< std::endl;
46
data <<
" <div id=\"data\" style=\"font: 12px bebasneue;\">"
<< std::endl;
47
data <<
" <p>NO DATA</p>"
<< std::endl;
48
data <<
" </div>"
<< std::endl;
49
data <<
""
<< std::endl;
50
data <<
" </div>"
<< std::endl;
51
data <<
" </div>"
<< std::endl;
52
data <<
""
<< std::endl;
53
data <<
""
<< std::endl;
54
data <<
" <div id=\"window2\" style=\"position:absolute; top: 0px; left: 610px; border: 1pt solid black; display: inline-block; padding: 2px; background: #808080; color: #ffffff;\">"
<< std::endl;
55
data <<
""
<< std::endl;
56
data <<
" <span style=\"font: 20px bebasneue;\">Toolbar</span>"
<< std::endl;
57
data <<
""
<< std::endl;
58
data <<
" <div id=\"toolbar\" "
<< std::endl;
59
data <<
" style=\"width: 80px; height: 200px; border: 1px solid black; position: relative; background: #ffffff;\" "
<< std::endl;
60
data <<
" onmousemove=\"mousemove(event); return true;\" "
<< std::endl;
61
data <<
" onmouseup=\"mouseup(); return true;\">"
<< std::endl;
62
data <<
" <button id=\"button1\" "
<< std::endl;
63
data <<
" style=\"width: 40px; height: 40px; border: 2px solid green; position: absolute;\""
<< std::endl;
64
data <<
" onmousedown=\"mousedown(this, event); return true;\">Press</button>"
<< std::endl;
65
data <<
""
<< std::endl;
66
data <<
" </div>"
<< std::endl;
67
data <<
" </div>"
<< std::endl;
68
data <<
" "
<< std::endl;
69
data <<
" </div> "
<< std::endl;
70
data <<
""
<< std::endl;
71
data <<
" <script>"
<< std::endl;
72
data <<
" var mainpage;"
<< std::endl;
73
data <<
" var result;"
<< std::endl;
74
data <<
" var mousedownx;"
<< std::endl;
75
data <<
" var mousedowny;"
<< std::endl;
76
data <<
" var mouseDownWidth;"
<< std::endl;
77
data <<
" var mouseDownHeight;"
<< std::endl;
78
data <<
" var ismousedown = false;"
<< std::endl;
79
data <<
" var dragobject;"
<< std::endl;
80
data <<
" var dragHint = \"move\";"
<< std::endl;
81
data <<
" var data;"
<< std::endl;
82
data <<
" var showGrid = false;"
<< std::endl;
83
data <<
" var snapToGrid = false;"
<< std::endl;
84
data <<
" var gridSize = 10;"
<< std::endl;
85
data <<
" var selected;"
<< std::endl;
86
data <<
" var itemparameters;"
<< std::endl;
87
data <<
""
<< std::endl;
88
data <<
" mainpage = document.getElementById(\"mainpage\");"
<< std::endl;
89
data <<
" data = document.getElementById(\"data\");"
<< std::endl;
90
data <<
" itemparameters = document.getElementById(\"itemparameters\");"
<< std::endl;
91
data <<
" var gridsize = document.getElementById(\"gridsize\");"
<< std::endl;
92
data <<
" gridsize.value = gridSize;"
<< std::endl;
93
data <<
" drawGrid();"
<< std::endl;
94
data <<
""
<< std::endl;
95
data <<
" function drawGrid() {"
<< std::endl;
96
data <<
" var grid = document.getElementById(\"grid\");"
<< std::endl;
97
data <<
" var context = grid.getContext(\"2d\");"
<< std::endl;
98
data <<
" if(showGrid == true) {"
<< std::endl;
99
data <<
" context.clearRect(0,0,grid.width,grid.height);"
<< std::endl;
100
data <<
" context.globalAlpha = 0.2;"
<< std::endl;
101
data <<
" context.lineWidth = 0.5; "
<< std::endl;
102
data <<
" for(ix = 0; ix < grid.width; ix += gridSize) {"
<< std::endl;
103
data <<
" context.beginPath();"
<< std::endl;
104
data <<
" context.moveTo(ix, 0);"
<< std::endl;
105
data <<
" context.lineTo(ix, grid.height);"
<< std::endl;
106
data <<
" context.stroke();"
<< std::endl;
107
data <<
" context.beginPath();"
<< std::endl;
108
data <<
" context.moveTo(0, ix);"
<< std::endl;
109
data <<
" context.lineTo(grid.width, ix);"
<< std::endl;
110
data <<
" context.stroke(); "
<< std::endl;
111
data <<
" }"
<< std::endl;
112
data <<
" } else {"
<< std::endl;
113
data <<
" context.clearRect(0,0,grid.width,grid.height);"
<< std::endl;
114
data <<
" }"
<< std::endl;
115
data <<
" }"
<< std::endl;
116
data <<
""
<< std::endl;
117
data <<
" function setDragHint(hint) {"
<< std::endl;
118
data <<
" dragHint = hint;"
<< std::endl;
119
data <<
" }"
<< std::endl;
120
data <<
" "
<< std::endl;
121
data <<
" function getMouseX(e) {"
<< std::endl;
122
data <<
" return e.clientX - mainpage.offsetLeft - parseFloat(mainpage.style.borderWidth);"
<< std::endl;
123
data <<
" }"
<< std::endl;
124
data <<
" "
<< std::endl;
125
data <<
" function getMouseY(e) {"
<< std::endl;
126
data <<
" return e.clientY - mainpage.offsetTop - parseFloat(mainpage.style.borderWidth);"
<< std::endl;
127
data <<
" }"
<< std::endl;
128
data <<
""
<< std::endl;
129
data <<
" function mousedown(obj, e) {"
<< std::endl;
130
data <<
" var mouseX = getMouseX(e);"
<< std::endl;
131
data <<
" var mouseY = getMouseY(e);"
<< std::endl;
132
data <<
" mousedownx = mouseX - obj.offsetLeft;"
<< std::endl;
133
data <<
" mousedowny = mouseY - obj.offsetTop;"
<< std::endl;
134
data <<
" mouseDownLeft = parseFloat(obj.style.left);"
<< std::endl;
135
data <<
" mouseDownTop = parseFloat(obj.style.top);"
<< std::endl;
136
data <<
" mouseDownWidth = parseFloat(obj.style.width);"
<< std::endl;
137
data <<
" mouseDownHeight = parseFloat(obj.style.height);"
<< std::endl;
138
data <<
" dragobject = obj;"
<< std::endl;
139
data <<
" selected = obj;"
<< std::endl;
140
data <<
" ismousedown = true;"
<< std::endl;
141
data <<
" displayParameters();"
<< std::endl;
142
data <<
" }"
<< std::endl;
143
data <<
" "
<< std::endl;
144
data <<
" function mouseup() {"
<< std::endl;
145
data <<
" ismousedown = false;"
<< std::endl;
146
data <<
" dragobject = null;"
<< std::endl;
147
data <<
" console.log(mainpage.innerHTML);"
<< std::endl;
148
data <<
" }"
<< std::endl;
149
data <<
""
<< std::endl;
150
data <<
" function mousemove(e) {"
<< std::endl;
151
data <<
" var mouseX = getMouseX(e);"
<< std::endl;
152
data <<
" var mouseY = getMouseY(e);"
<< std::endl;
153
data <<
" if(ismousedown) {"
<< std::endl;
154
data <<
" "
<< std::endl;
155
data <<
" if(dragHint == \"move\") {"
<< std::endl;
156
data <<
" if(snapToGrid == false) {"
<< std::endl;
157
data <<
" dragobject.style.left = (mouseX - mousedownx) + \"px\";"
<< std::endl;
158
data <<
" dragobject.style.top = (mouseY - mousedowny) + \"px\";"
<< std::endl;
159
data <<
" } else {"
<< std::endl;
160
data <<
" dragobject.style.left = (Math.round((mouseX - mousedownx) / gridSize) * gridSize) + \"px\";"
<< std::endl;
161
data <<
" dragobject.style.top = (Math.round((mouseY - mousedowny) / gridSize) * gridSize) + \"px\";"
<< std::endl;
162
data <<
" }"
<< std::endl;
163
data <<
" if((mouseX - mousedownx) < 0)"
<< std::endl;
164
data <<
" dragobject.style.left = \"0px\";"
<< std::endl;
165
data <<
" if((mouseY - mousedowny) < 0)"
<< std::endl;
166
data <<
" dragobject.style.top = \"0px\";"
<< std::endl;
167
data <<
" if((mouseX - mousedownx + parseFloat(dragobject.style.width)) > parseFloat(mainpage.style.width)) "
<< std::endl;
168
data <<
" dragobject.style.left = (mouseX - mousedownx) + \"px\"; "
<< std::endl;
169
data <<
" } else if(dragHint == \"rightbottomresize\") { "
<< std::endl;
170
data <<
" dragobject.style.width = (mouseX - mouseDownLeft) + \"px\";"
<< std::endl;
171
data <<
" dragobject.style.height = (mouseY - mouseDownTop) + \"px\";"
<< std::endl;
172
data <<
" } else if(dragHint == \"rightresize\") { "
<< std::endl;
173
data <<
" if(snapToGrid == false) {"
<< std::endl;
174
data <<
" dragobject.style.width = (mouseX - mouseDownLeft) + \"px\"; "
<< std::endl;
175
data <<
" } else {"
<< std::endl;
176
data <<
" dragobject.style.width = (Math.round((mouseX - mouseDownLeft) / gridSize) * gridSize) + \"px\"; "
<< std::endl;
177
data <<
" }"
<< std::endl;
178
data <<
" } else if(dragHint == \"bottomresize\") { "
<< std::endl;
179
data <<
" if(snapToGrid == false) {"
<< std::endl;
180
data <<
" dragobject.style.height = (mouseY - mouseDownTop) + \"px\";"
<< std::endl;
181
data <<
" } else {"
<< std::endl;
182
data <<
" dragobject.style.height = (Math.round((mouseY - mouseDownTop) / gridSize) * gridSize) + \"px\";"
<< std::endl;
183
data <<
" }"
<< std::endl;
184
data <<
" } else if(dragHint == \"leftresize\") { "
<< std::endl;
185
data <<
" dragobject.style.left = mouseX + \"px\";"
<< std::endl;
186
data <<
" dragobject.style.width = (mouseDownWidth + (mouseDownLeft - mouseX)) + \"px\";"
<< std::endl;
187
data <<
" } else if(dragHint == \"topresize\") { "
<< std::endl;
188
data <<
" dragobject.style.top = mouseY + \"px\";"
<< std::endl;
189
data <<
" dragobject.style.height = (mouseDownHeight + (mouseDownTop - mouseY)) + \"px\";"
<< std::endl;
190
data <<
" }"
<< std::endl;
191
data <<
" "
<< std::endl;
192
data <<
" data.innerHTML = \"<p>\" + dragobject.nodeName + \"<br>\" + "
<< std::endl;
193
data <<
" \"Action: \" + dragHint + \"<br>\" +"
<< std::endl;
194
data <<
" \"MouseLocation: \" + mouseX + \":\" + mouseY + \"<br>\" +"
<< std::endl;
195
data <<
" \"MouseOver Location: \" + (mouseX - dragobject.offsetLeft) + \":\" + (mouseY - dragobject.offsetTop) + \"<br>\" + "
<< std::endl;
196
data <<
" \"Location: \" + dragobject.style.left + \":\" + dragobject.style.top + \"<br>\" + "
<< std::endl;
197
data <<
" \"Size: \" + dragobject.style.width + \":\" + dragobject.style.height + \"<br>\" + "
<< std::endl;
198
data <<
" \"</p>\";"
<< std::endl;
199
data <<
" "
<< std::endl;
200
data <<
""
<< std::endl;
201
data <<
" } else {"
<< std::endl;
202
data <<
" var mouseabove = document.elementFromPoint(mouseX + mainpage.offsetLeft, mouseY + mainpage.offsetTop);"
<< std::endl;
203
data <<
""
<< std::endl;
204
data <<
" if((mouseabove.id != \"mainpage\") && (mouseabove.id != \"grid\")) {"
<< std::endl;
205
data <<
" "
<< std::endl;
206
data <<
" data.innerHTML = \"<p>\" + mouseabove.nodeName + \"<br>\" + "
<< std::endl;
207
data <<
" \"Action: \" + dragHint + \"<br>\" +"
<< std::endl;
208
data <<
" \"MouseLocation: \" + mouseX + \":\" + mouseY + \"<br>\" +"
<< std::endl;
209
data <<
" \"MouseOver Location: \" + (mouseX - mouseabove.offsetLeft) + \":\" + (mouseY - mouseabove.offsetTop) + \"<br>\" + "
<< std::endl;
210
data <<
" \"Location: \" + mouseabove.style.left + \":\" + mouseabove.style.top + \"<br>\" + "
<< std::endl;
211
data <<
" \"Size: \" + mouseabove.style.width + \":\" + mouseabove.style.height + \"<br>\" + "
<< std::endl;
212
data <<
" \"</p>\";"
<< std::endl;
213
data <<
" "
<< std::endl;
214
data <<
" if((mouseabove.nodeName == \"DIV\") || "
<< std::endl;
215
data <<
" (mouseabove.nodeName == \"IMG\") || "
<< std::endl;
216
data <<
" (mouseabove.nodeName == \"BUTTON\") ||"
<< std::endl;
217
data <<
" (mouseabove.nodeName == \"INPUT\") ||"
<< std::endl;
218
data <<
" (mouseabove.nodeName == \"SPAN\")) {"
<< std::endl;
219
data <<
" "
<< std::endl;
220
data <<
" if((parseFloat(mouseabove.style.width) <= (mouseX - mouseabove.offsetLeft)) && "
<< std::endl;
221
data <<
" (parseFloat(mouseabove.style.height) <= (mouseY - mouseabove.offsetTop))) {"
<< std::endl;
222
data <<
" mouseabove.style.cursor = \"nwse-resize\";"
<< std::endl;
223
data <<
" dragHint = \"rightbottomresize\"; "
<< std::endl;
224
data <<
" } else if((parseFloat(mouseabove.style.left) <= (mouseX - mouseabove.offsetLeft)) && "
<< std::endl;
225
data <<
" ((parseFloat(mouseabove.style.borderWidth) + 2) >= (mouseY - mouseabove.offsetTop))) {"
<< std::endl;
226
data <<
" mouseabove.style.cursor = \"nesw-resize\";"
<< std::endl;
227
data <<
" dragHint = \"righttopresize\"; "
<< std::endl;
228
data <<
" } else if(((parseFloat(mouseabove.style.borderWidth) + 2) >= (mouseX - mouseabove.offsetLeft)) && "
<< std::endl;
229
data <<
" (parseFloat(mouseabove.style.height) <= (mouseY - mouseabove.offsetTop))) {"
<< std::endl;
230
data <<
" mouseabove.style.cursor = \"nesw-resize\";"
<< std::endl;
231
data <<
" dragHint = \"leftbottomresize\"; "
<< std::endl;
232
data <<
" } else if(parseFloat(mouseabove.style.width) <= (mouseX - mouseabove.offsetLeft)) {"
<< std::endl;
233
data <<
" mouseabove.style.cursor = \"ew-resize\";"
<< std::endl;
234
data <<
" dragHint = \"rightresize\";"
<< std::endl;
235
data <<
" } else if(parseFloat(mouseabove.style.height) <= (mouseY - mouseabove.offsetTop)) {"
<< std::endl;
236
data <<
" mouseabove.style.cursor = \"ns-resize\";"
<< std::endl;
237
data <<
" dragHint = \"bottomresize\";"
<< std::endl;
238
data <<
" } else if((parseFloat(mouseabove.style.borderWidth) + 2) >= (mouseX - mouseabove.offsetLeft)) {"
<< std::endl;
239
data <<
" mouseabove.style.cursor = \"ew-resize\";"
<< std::endl;
240
data <<
" dragHint = \"leftresize\";"
<< std::endl;
241
data <<
" } else if((parseFloat(mouseabove.style.borderWidth) + 2) >= (mouseY - mouseabove.offsetTop)) {"
<< std::endl;
242
data <<
" mouseabove.style.cursor = \"ns-resize\";"
<< std::endl;
243
data <<
" dragHint = \"topresize\";"
<< std::endl;
244
data <<
" } else {"
<< std::endl;
245
data <<
" mouseabove.style.cursor = \"move\";"
<< std::endl;
246
data <<
" dragHint = \"move\";"
<< std::endl;
247
data <<
" }"
<< std::endl;
248
data <<
" } else {"
<< std::endl;
249
data <<
" mouseabove.style.cursor = \"default\";"
<< std::endl;
250
data <<
" }"
<< std::endl;
251
data <<
" } else {"
<< std::endl;
252
data <<
" mouseabove.style.cursor = \"default\";"
<< std::endl;
253
data <<
" dragHint = \"\";"
<< std::endl;
254
data <<
" data.innerHTML = \"<p></p>\";"
<< std::endl;
255
data <<
" }"
<< std::endl;
256
data <<
" }"
<< std::endl;
257
data <<
" displayParameters();"
<< std::endl;
258
data <<
" }"
<< std::endl;
259
data <<
" "
<< std::endl;
260
data <<
" function displayParameters() {"
<< std::endl;
261
data <<
""
<< std::endl;
262
data <<
" itemparameters.innerHTML = \"<p>\" + selected.nodeName + \": \" + selected.id + \"<br>\" + "
<< std::endl;
263
data <<
" \"Location: \" + selected.style.left + \":\" + selected.style.top + \"<br>\" + "
<< std::endl;
264
data <<
" \"Size: \" + selected.style.width + \":\" + selected.style.height + \"<br>\" + "
<< std::endl;
265
data <<
" \"</p>\";"
<< std::endl;
266
data <<
""
<< std::endl;
267
data <<
" }"
<< std::endl;
268
data <<
"</script>"
<< std::endl;
269
270
httpRequest.response.addHeader(
"Content-Type"
,
"script/javascript"
);
271
272
return
0;
273
}
274
275
};
276
277
}
278
279
#endif
http::HTTPSession
Definition:
HTTPSession.h:9
http
Definition:
__configure.h:4
http::HTTPPage
Definition:
HTTPPage.h:11
http::__editview
Definition:
__editview.h:8
http::HTTPRequest
Definition:
HTTPRequest.h:11
Generated by
1.8.13