Guest User

Untitled

a guest
Dec 5th, 2015
420
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 30.31 KB | None | 0 0
  1. dxLib = {
  2. imageURL = "loginImage/",
  3. globalAlpha = 1,
  4. font = "default-bold"
  5. }
  6.  
  7.  
  8.  
  9. addEvent("onDxLibButtonClick",true)
  10. addEvent("onDxLibEditChange",true)
  11. addEvent("onDxLibGridlistClick",true)
  12. addEvent("onDxLibScrollMouse",true)
  13.  
  14.  
  15.  
  16. local sX,sY = guiGetScreenSize()
  17.  
  18. function dxLibCreateButton(buttonElement,positionX,positionY,sizeX,sizeY,buttonLabel,labelSize,red,green,blue,lR,lG,lB,alpha,postGUI,coloredLabel)
  19. if not getElementData(buttonElement,"dxButtonCreate") then
  20. setElementData(buttonElement,"dxButtonCreate",true,false)
  21. setElementData(buttonElement,"dxButtonHover",false,false)
  22. setElementData(buttonElement,"dxButtonClick",false,false)
  23. return
  24. end
  25. setElementData(buttonElement,"dxButtonLabel",tostring(buttonLabel),false)
  26. setElementData(buttonElement,"dxButtonHover",false,false)
  27. local scaleX = sizeX/932
  28. if isCursorHover(positionX,positionY,sizeX,sizeY) and not getElementData(buttonElement,"dxButtonClick") then
  29. setElementData(buttonElement,"dxButtonHover",true,false)
  30. dxDrawImageSection(positionX-25*scaleX+sizeX,positionY,25*scaleX,sizeY,0,0,25,174,dxLib.imageURL.."button.png",180,0,0,tocolor(red,green,blue,alpha*dxLib.globalAlpha),postGUI)
  31. dxDrawImageSection(positionX,positionY,25*scaleX,sizeY,907,0,25,174,dxLib.imageURL.."button.png",180,0,0,tocolor(red,green,blue,alpha*dxLib.globalAlpha),postGUI)
  32. dxDrawImageSection(positionX+25*scaleX,positionY,sizeX-50*scaleX,sizeY,26,0,1,174,dxLib.imageURL.."button.png",180,0,0,tocolor(red,green,blue,alpha*dxLib.globalAlpha),postGUI)
  33. dxDrawText(buttonLabel,positionX,positionY,positionX+sizeX+1,positionY+sizeY+2,tocolor(0,0,0,alpha*dxLib.globalAlpha),labelSize,dxLib.font,"center","center",true,false,postGUI,coloredLabel or false)
  34. dxDrawText(buttonLabel,positionX,positionY,positionX+sizeX,positionY+sizeY,tocolor(lR,lG,lB,alpha*dxLib.globalAlpha),labelSize,dxLib.font,"center","center",true,false,postGUI,coloredLabel or false)
  35. else
  36. dxDrawImageSection(positionX,positionY,25*scaleX,sizeY,0,0,25,174,dxLib.imageURL.."button.png",0,0,0,tocolor(red,green,blue,alpha*dxLib.globalAlpha),postGUI)
  37. dxDrawImageSection(positionX-25*scaleX+sizeX,positionY,25*scaleX,sizeY,907,0,25,174,dxLib.imageURL.."button.png",0,0,0,tocolor(red,green,blue,alpha*dxLib.globalAlpha),postGUI)
  38. dxDrawImageSection(positionX+25*scaleX,positionY,sizeX-50*scaleX,sizeY,26,0,1,174,dxLib.imageURL.."button.png",0,0,0,tocolor(red,green,blue,alpha*dxLib.globalAlpha),postGUI)
  39. if not getElementData(buttonElement,"dxButtonClick") then
  40. dxDrawText(buttonLabel,positionX,positionY,positionX+sizeX+1,positionY+sizeY+2,tocolor(0,0,0,alpha*dxLib.globalAlpha),labelSize,dxLib.font,"center","center",true,false,postGUI,coloredLabel or false)
  41. dxDrawText(buttonLabel,positionX,positionY,positionX+sizeX,positionY+sizeY,tocolor(lR,lG,lB,alpha*dxLib.globalAlpha),labelSize,dxLib.font,"center","center",true,false,postGUI,coloredLabel or false)
  42. else
  43. dxDrawText(buttonLabel,positionX,positionY,positionX+sizeX+1,positionY+sizeY+2,tocolor(0,0,0,alpha/1.2*dxLib.globalAlpha),labelSize,dxLib.font,"center","center",true,false,postGUI,coloredLabel or false)
  44. dxDrawText(buttonLabel,positionX,positionY,positionX+sizeX,positionY+sizeY,tocolor(lR,lG,lB,alpha/1.2*dxLib.globalAlpha),labelSize,dxLib.font,"center","center",true,false,postGUI,coloredLabel or false)
  45. end
  46. end
  47. setElementData(buttonElement,"dxButtonClick",false,false)
  48. end
  49.  
  50.  
  51. function dxLibCreateGridlist(gridlistElement,gridlistData,positionX,positionY,sizeX,sizeY,fontSize,emptyString,colorRed,colorGreen,colorBlue,alphaGridlist,coloredLabels,postGUI)
  52. if not getElementData(gridlistElement,"dxGridlistCreate") then
  53. setElementData(gridlistElement,"dxGridlistCreate",true,false)
  54. setElementData(gridlistElement,"dxGridlistScroll",0,false)
  55. setElementData(gridlistElement,"dxGridlistScrollTo",0,false)
  56. setElementData(gridlistElement,"dxGridlistSelected",0,false)
  57. setElementData(gridlistElement,"dxGridlistDataCount",1,false)
  58. setElementData(gridlistElement,"dxGridlistHover",false,false)
  59. setElementData(gridlistElement,"dxGridlistDataHover",false,false)
  60. setElementData(gridlistElement,"dxGridlistTick",getTickCount(),false)
  61. setElementData(gridlistElement,"dxGridlistScrollHover",false,false)
  62. setElementData(gridlistElement,"dxGridlistScrollClicked",false,false)
  63. setElementData(gridlistElement,"dxGridlistDatatable",gridlistData,false)
  64. local renderTarget = dxCreateRenderTarget(sizeX,sizeY,true)
  65. setElementData(gridlistElement,"dxGridlistRenderTarget",renderTarget,false)
  66. return
  67. end
  68. if type(gridlistData) == "table" then
  69. local dataCount = getElementData(gridlistElement,"dxGridlistDataCount")
  70. if dataCount ~= #gridlistData then
  71. setElementData(gridlistElement,"dxGridlistDataCount",#gridlistData,false)
  72. setElementData(gridlistElement,"dxGridlistDatatable",gridlistData,false)
  73. end
  74. if getElementData(gridlistElement,"dxGridlistSelected") > #gridlistData then
  75. setElementData(gridlistElement,"dxGridlistSelected",0,false)
  76. end
  77. else
  78. outputDebugString("dxLib: Data for gridlist must be a table value!")
  79. return
  80. end
  81. setElementData(gridlistElement,"dxGridlistHover",false,false)
  82. if isCursorHover(positionX,positionY,sizeX,sizeY) then
  83. setElementData(gridlistElement,"dxGridlistHover",true,false)
  84. end
  85. local renderTarget = getElementData(gridlistElement,"dxGridlistRenderTarget")
  86. if renderTarget then
  87. local rowSize = dxGetFontHeight(fontSize,dxLib.font)+10
  88. local gridlistTick = getElementData(gridlistElement,"dxGridlistTick")
  89. local scroll = getElementData(gridlistElement,"dxGridlistScroll")
  90. local scrollTo = getElementData(gridlistElement,"dxGridlistScrollTo")
  91. local visibleRows = sizeY/rowSize
  92. if #gridlistData*rowSize > sizeY then
  93. if scrollTo < 0 then
  94. scrollTo = 0
  95. setElementData(gridlistElement,"dxGridlistScrollTo",0,false)
  96. elseif scrollTo > #gridlistData-visibleRows then
  97. scrollTo = #gridlistData-visibleRows
  98. setElementData(gridlistElement,"dxGridlistScrollTo",#gridlistData-visibleRows,false)
  99. end
  100. if scroll ~= scrollTo then
  101. local tick = getTickCount() - gridlistTick
  102. local progress = tick/500
  103. if progress >= 1 then progress = 1 end
  104. scroll = interpolateBetween(scroll,0,0,scrollTo,0,0,progress,"Linear")
  105. setElementData(gridlistElement,"dxGridlistScroll",scroll,false)
  106. end
  107. else
  108. scroll = 0
  109. setElementData(gridlistElement,"dxGridlistScroll",0,false)
  110. setElementData(gridlistElement,"dxGridlistScrollTo",0,false)
  111. end
  112. local scrollPosition = rowSize*scroll
  113. dxSetRenderTarget(renderTarget)
  114. dxDrawRectangle(0,0,sizeX,sizeY,tocolor(15,15,15,160))
  115. setElementData(gridlistElement,"dxGridlistDataHover",false,false)
  116. local selectedRow = getElementData(gridlistElement,"dxGridlistSelected")
  117. if #gridlistData ~= 0 then
  118. for id,dataPart in pairs(gridlistData) do
  119. if (positionY+(rowSize*(id-1))-scrollPosition)>=positionY-rowSize and (positionY+(rowSize*(id-1))-scrollPosition)<=positionY+sizeY+rowSize then
  120. if isCursorHover(positionX,positionY+(rowSize*(id-1))-scrollPosition,sizeX,rowSize) and getElementData(gridlistElement,"dxGridlistHover") then
  121. setElementData(gridlistElement,"dxGridlistDataHover",id,false)
  122. if selectedRow == id then
  123. dxDrawRectangle(0,rowSize*(id-1)-scrollPosition,sizeX,rowSize,tocolor(colorRed,colorGreen,colorBlue,220),false)
  124. dxDrawText(tostring(dataPart),5,rowSize*(id-1)+5-scrollPosition,sizeX,rowSize*id-5-scrollPosition,tocolor(255,255,255,255),fontSize,dxLib.font,"left","center",true,false,false,coloredLabels or false)
  125. else
  126. dxDrawRectangle(0,rowSize*(id-1)-scrollPosition,sizeX,rowSize,tocolor(50,50,50,200),false)
  127. dxDrawText(tostring(dataPart),5,rowSize*(id-1)+5-scrollPosition,sizeX,rowSize*id-5-scrollPosition,tocolor(255,255,255,255),fontSize,dxLib.font,"left","center",true,false,false,coloredLabels or false)
  128. end
  129. else
  130. if selectedRow == id then
  131. dxDrawRectangle(0,rowSize*(id-1)-scrollPosition,sizeX,rowSize,tocolor(colorRed,colorGreen,colorBlue,200),false)
  132. dxDrawText(tostring(dataPart),5,rowSize*(id-1)+5-scrollPosition,sizeX,rowSize*id-5-scrollPosition,tocolor(255,255,255,255),fontSize,dxLib.font,"left","center",true,false,false,coloredLabels or false)
  133. else
  134. dxDrawRectangle(0,rowSize*(id-1)-scrollPosition,sizeX,rowSize,tocolor(20,20,20,150),false)
  135. dxDrawText(tostring(dataPart),5,rowSize*(id-1)+5-scrollPosition,sizeX,rowSize*id-5-scrollPosition,tocolor(255,255,255,255),fontSize,dxLib.font,"left","center",true,false,false,coloredLabels or false)
  136. end
  137. end
  138. end
  139. end
  140. else
  141. dxDrawText(tostring(emptyString),6,4,sizeX,rowSize-5,tocolor(0,0,0,255),fontSize,dxLib.font,"left","center",true,false,false,coloredLabels or false)
  142. dxDrawText(tostring(emptyString),5,5,sizeX,rowSize-5,tocolor(200,15,15,255),fontSize,dxLib.font,"left","center",true,false,false,coloredLabels or false)
  143. end
  144. dxSetRenderTarget()
  145. dxDrawImage(positionX,positionY,sizeX,sizeY,renderTarget,0,0,0,tocolor(255,255,255,alphaGridlist or 255),postGUI or false)
  146. dxDrawLine(positionX,positionY,positionX+sizeX,positionY,tocolor(0,0,0,alphaGridlist or 255),1,postGUI or false)
  147. dxDrawLine(positionX,positionY+sizeY,positionX+sizeX,positionY+sizeY,tocolor(0,0,0,alphaGridlist or 255),1,postGUI or false)
  148. dxDrawLine(positionX+sizeX,positionY,positionX+sizeX,positionY+sizeY,tocolor(0,0,0,alphaGridlist or 255),1,postGUI or false)
  149. dxDrawLine(positionX,positionY,positionX,positionY+sizeY,tocolor(0,0,0,alphaGridlist or 255),1,postGUI or false)
  150. local scrollBar = {}
  151. if #gridlistData*rowSize > sizeY then
  152. scrollBar.size = (sizeY-(sizeY/3))/(#gridlistData-visibleRows)
  153. if scrollBar.size<=sizeY/8 then
  154. scrollBar.size = sizeY/8
  155. end
  156. scrollBar.position = ((sizeY-scrollBar.size)/(#gridlistData-visibleRows))*scroll
  157. dxDrawRectangle(positionX+sizeX+1,positionY,sX*0.02,sizeY,tocolor(40,40,40,100*((alphaGridlist or 255)/255)),postGUI)
  158. dxDrawRectangle(positionX+sizeX+1,positionY+scrollBar.position,sX*0.02,scrollBar.size,tocolor(colorRed,colorGreen,colorBlue,255*((alphaGridlist or 255)/255)),postGUI)
  159. if getElementData(gridlistElement,"dxGridlistScrollClicked") then
  160. if getKeyState("mouse1") then
  161. local x,y = getCursorPosition()
  162. local x,y = x*sX,y*sY
  163. local newPos = y-positionY
  164. local barSize = (((#gridlistData-visibleRows)*rowSize)*(newPos/sizeY))/rowSize
  165. setElementData(gridlistElement,"dxGridlistScroll",barSize,false)
  166. setElementData(gridlistElement,"dxGridlistScrollTo",barSize,false)
  167. else
  168. setElementData(gridlistElement,"dxGridlistScrollClicked",false,false)
  169. end
  170. else
  171. if isCursorHover(positionX+sizeX,positionY+scrollBar.position,sX*0.02,scrollBar.size) then
  172. setElementData(gridlistElement,"dxGridlistScrollHover",true,false)
  173. else
  174. setElementData(gridlistElement,"dxGridlistScrollHover",false,false)
  175. end
  176. end
  177. end
  178. else
  179. outputDebugString("dxLib: Cant find a render target")
  180. end
  181. end
  182.  
  183.  
  184. function dxLibCreateEdit(editElement,positionX,positionY,sizeX,sizeY,defaultText,iconImage,colorRed,colorGreen,colorBlue,editAlpha,postGUI,maskedText)
  185. if not getElementData(editElement,"dxEditCreated") then
  186. setElementData(editElement,"dxEditCreated",true,false)
  187. setElementData(editElement,"dxEditTextCache","",false)
  188. setElementData(editElement,"dxEditHover",false,false)
  189. setElementData(editElement,"dxEditActive",false,false)
  190. setElementData(editElement,"dxEditSelected",false,false)
  191. local fontSize = 0
  192. local findedSize = false
  193. local i = 0
  194. local fontSizeCache = 0
  195. repeat
  196. i = i+0.1
  197. fontSizeCache = fontSize
  198. fontSize = dxGetFontHeight(i,dxLib.font)
  199. if fontSize>=(sizeY-(sY*0.01)) then
  200. findedSize = true
  201. end
  202. until findedSize
  203. setElementData(editElement,"dxEditTextSize",i,false)
  204. return
  205. end
  206. local fontSize = getElementData(editElement,"dxEditTextSize")
  207. local postGUI = postGUI or false
  208. if isCursorHover(positionX,positionY,sizeX,sizeY) then
  209. setElementData(editElement,"dxEditHover",true,false)
  210. else
  211. setElementData(editElement,"dxEditHover",false,false)
  212. end
  213. if getElementData(editElement,"dxEditActive") or getElementData(editElement,"dxEditHover") then
  214. dxDrawRectangle(positionX,positionY,sizeX,sizeY,tocolor(255,255,255,255*(editAlpha/255)),postGUI)
  215. dxDrawLine(positionX,positionY,positionX,positionY+sizeY,tocolor(0,0,0,255*(editAlpha/255)),1,postGUI)
  216. dxDrawLine(positionX+sizeX,positionY,positionX+sizeX,positionY+sizeY,tocolor(0,0,0,255*(editAlpha/255)),1,postGUI)
  217. dxDrawLine(positionX,positionY,positionX+sizeX,positionY,tocolor(0,0,0,255*(editAlpha/255)),1,postGUI)
  218. dxDrawLine(positionX,positionY+sizeY,positionX+sizeX,positionY+sizeY,tocolor(0,0,0,255*(editAlpha/255)),1,postGUI)
  219. local textPos = sY*0.005
  220. if iconImage then
  221. dxDrawImage(positionX+sY*0.005,positionY+sY*0.005,dxGetFontHeight(fontSize,dxLib.font),dxGetFontHeight(fontSize,dxLib.font),dxLib.imageURL..iconImage..".png",0,0,0,tocolor(255,255,255,255*(editAlpha/255)*dxLib.globalAlpha),postGUI)
  222. textPos = ((sY*0.005)*3)+dxGetFontHeight(fontSize,dxLib.font)
  223. dxDrawLine(positionX+textPos,positionY+sY*0.005,positionX+textPos,positionY+sizeY-sY*0.005,tocolor(colorRed,colorGreen,colorBlue,255*(editAlpha/255)*dxLib.globalAlpha),1,postGUI)
  224. textPos = textPos + sY*0.01
  225. end
  226. if getElementData(editElement,"dxEditActive") then
  227. local defaultText = tostring(getElementData(editElement,"dxEditTextCache"))
  228. if dxGetTextWidth(defaultText,fontSize,dxLib.font) > (positionX+sizeX-sY*0.005)-(positionX+textPos) then
  229. if getElementData(editElement,"dxEditSelected") then
  230. dxDrawRectangle(positionX+textPos,positionY+sY*0.005,(positionX+sizeX-sY*0.005)-(positionX+textPos),sizeY-sY*0.01,tocolor(200,200,200,255*(editAlpha/255)*dxLib.globalAlpha),postGUI)
  231. end
  232. if maskedText then
  233. local defaultText = string.rep("*",string.len(defaultText))
  234. dxDrawText(defaultText,positionX+textPos,positionY+sY*0.005,positionX+sizeX-sY*0.005,positionY+sizeY-sY*0.005,tocolor(colorRed,colorGreen,colorBlue,255*(editAlpha/255)*dxLib.globalAlpha),fontSize,dxLib.font,"left","center",true,false,postGUI)
  235. else
  236. dxDrawText(defaultText,positionX+textPos,positionY+sY*0.005,positionX+sizeX-sY*0.005,positionY+sizeY-sY*0.005,tocolor(colorRed,colorGreen,colorBlue,255*(editAlpha/255)*dxLib.globalAlpha),fontSize,dxLib.font,"left","center",true,false,postGUI)
  237. end
  238. dxDrawLine(positionX+sizeX-sY*0.01,positionY+sY*0.005,positionX+sizeX-sY*0.01,positionY+sizeY-sY*0.005,tocolor(0,0,0,255*(editAlpha/255)*dxLib.globalAlpha),2,postGUI)
  239. else
  240. if getElementData(editElement,"dxEditSelected") then
  241. dxDrawRectangle(positionX+textPos,positionY+sY*0.005,dxGetTextWidth(defaultText,fontSize,dxLib.font),sizeY-sY*0.01,tocolor(200,200,200,255*(editAlpha/255)*dxLib.globalAlpha),postGUI)
  242. end
  243. if maskedText then
  244. local defaultText = string.rep("*",string.len(defaultText))
  245. dxDrawText(defaultText,positionX+textPos,positionY+sY*0.005,positionX+sizeX-sY*0.005,positionY+sizeY-sY*0.005,tocolor(colorRed,colorGreen,colorBlue,255*(editAlpha/255)*dxLib.globalAlpha),fontSize,dxLib.font,"left","center",true,false,postGUI)
  246. else
  247. dxDrawText(defaultText,positionX+textPos,positionY+sY*0.005,positionX+sizeX-sY*0.005,positionY+sizeY-sY*0.005,tocolor(colorRed,colorGreen,colorBlue,255*(editAlpha/255)*dxLib.globalAlpha),fontSize,dxLib.font,"left","center",true,false,postGUI)
  248. end
  249. if maskedText then
  250. local defaultText = string.rep("*",string.len(defaultText))
  251. dxDrawLine(positionX+textPos+dxGetTextWidth(defaultText,fontSize,dxLib.font),positionY+sY*0.005,positionX+textPos+dxGetTextWidth(defaultText,fontSize,dxLib.font),positionY+sizeY-sY*0.005,tocolor(0,0,0,255*(editAlpha/255)*dxLib.globalAlpha),2,postGUI)
  252. else
  253. dxDrawLine(positionX+textPos+dxGetTextWidth(defaultText,fontSize,dxLib.font),positionY+sY*0.005,positionX+textPos+dxGetTextWidth(defaultText,fontSize,dxLib.font),positionY+sizeY-sY*0.005,tocolor(0,0,0,255*(editAlpha/255)*dxLib.globalAlpha),2,postGUI)
  254. end
  255. end
  256. local charPressed = checkPressedKey()
  257. if charPressed ~= "" then
  258. if charPressed == "backspace" then
  259. defaultText = string.sub(defaultText,1,string.len(defaultText)-1)
  260. setElementData(editElement,"dxEditTextCache",defaultText,false)
  261. triggerEvent("onDxLibEditChange",getResourceRootElement(getThisResource()),editElement)
  262. if getElementData(editElement,"dxEditSelected") then
  263. setElementData(editElement,"dxEditTextCache","",false)
  264. setElementData(editElement,"dxEditSelected",false,false)
  265. end
  266. else
  267. if not getElementData(editElement,"dxEditSelected") and not (getKeyState("lctrl") or getKeyState("rctrl")) then
  268. setElementData(editElement,"dxEditTextCache",defaultText..charPressed,false)
  269. triggerEvent("onDxLibEditChange",getResourceRootElement(getThisResource()),editElement)
  270. elseif not (getKeyState("lctrl") or getKeyState("rctrl")) then
  271. setElementData(editElement,"dxEditTextCache",charPressed,false)
  272. setElementData(editElement,"dxEditSelected",false,false)
  273. triggerEvent("onDxLibEditChange",getResourceRootElement(getThisResource()),editElement)
  274. end
  275. end
  276. end
  277. if (getKeyState("lctrl") or getKeyState("rctrl")) and getKeyState("a") then
  278. setElementData(editElement,"dxEditSelected",true,false)
  279. end
  280. else
  281. if getElementData(editElement,"dxEditTextCache") == "" then
  282. if dxGetTextWidth(defaultText,fontSize,dxLib.font) > (positionX+sizeX-sY*0.005)-(positionX+textPos) then
  283. dxDrawText(defaultText,positionX+textPos,positionY+sY*0.005,positionX+sizeX-sY*0.005,positionY+sizeY-sY*0.005,tocolor(colorRed,colorGreen,colorBlue,255*(editAlpha/255)*dxLib.globalAlpha),fontSize,dxLib.font,"right","center",true,false,postGUI)
  284. else
  285. dxDrawText(defaultText,positionX+textPos,positionY+sY*0.005,positionX+sizeX-sY*0.005,positionY+sizeY-sY*0.005,tocolor(colorRed,colorGreen,colorBlue,255*(editAlpha/255)*dxLib.globalAlpha),fontSize,dxLib.font,"left","center",true,false,postGUI)
  286. end
  287. else
  288. local defaultText = tostring(getElementData(editElement,"dxEditTextCache"))
  289. if maskedText then
  290. defaultText = string.rep("*",string.len(defaultText))
  291. end
  292. if dxGetTextWidth(defaultText,fontSize,dxLib.font) > (positionX+sizeX-sY*0.005)-(positionX+textPos) then
  293. dxDrawText(defaultText,positionX+textPos,positionY+sY*0.005,positionX+sizeX-sY*0.005,positionY+sizeY-sY*0.005,tocolor(colorRed,colorGreen,colorBlue,255*(editAlpha/255)*dxLib.globalAlpha),fontSize,dxLib.font,"right","center",true,false,postGUI)
  294. else
  295. dxDrawText(defaultText,positionX+textPos,positionY+sY*0.005,positionX+sizeX-sY*0.005,positionY+sizeY-sY*0.005,tocolor(colorRed,colorGreen,colorBlue,255*(editAlpha/255)*dxLib.globalAlpha),fontSize,dxLib.font,"left","center",true,false,postGUI)
  296. end
  297. end
  298. end
  299. else
  300. dxDrawRectangle(positionX,positionY,sizeX,sizeY,tocolor(220,220,220,220*(editAlpha/255)),postGUI)
  301. dxDrawLine(positionX,positionY,positionX,positionY+sizeY,tocolor(0,0,0,220*(editAlpha/255)),1,postGUI)
  302. dxDrawLine(positionX+sizeX,positionY,positionX+sizeX,positionY+sizeY,tocolor(0,0,0,220*(editAlpha/255)),1,postGUI)
  303. dxDrawLine(positionX,positionY,positionX+sizeX,positionY,tocolor(0,0,0,220*(editAlpha/255)),1,postGUI)
  304. dxDrawLine(positionX,positionY+sizeY,positionX+sizeX,positionY+sizeY,tocolor(0,0,0,220*(editAlpha/255)),1,postGUI)
  305. local textPos = sY*0.005
  306. if iconImage then
  307. dxDrawImage(positionX+sY*0.005,positionY+sY*0.005,dxGetFontHeight(fontSize,dxLib.font),dxGetFontHeight(fontSize,dxLib.font),dxLib.imageURL..iconImage..".png",0,0,0,tocolor(220,220,220,220*(editAlpha/255)*dxLib.globalAlpha),postGUI)
  308. textPos = ((sY*0.005)*3)+dxGetFontHeight(fontSize,dxLib.font)
  309. dxDrawLine(positionX+textPos,positionY+sY*0.005,positionX+textPos,positionY+sizeY-sY*0.005,tocolor(colorRed,colorGreen,colorBlue,220*(editAlpha/255)*dxLib.globalAlpha),1,postGUI)
  310. textPos = textPos + sY*0.01
  311. end
  312. if getElementData(editElement,"dxEditTextCache") == "" then
  313. if dxGetTextWidth(defaultText,fontSize,dxLib.font) > (positionX+sizeX-sY*0.005)-(positionX+textPos) then
  314. dxDrawText(defaultText,positionX+textPos,positionY+sY*0.005,positionX+sizeX-sY*0.005,positionY+sizeY-sY*0.005,tocolor(colorRed,colorGreen,colorBlue,220*(editAlpha/255)*dxLib.globalAlpha),fontSize,dxLib.font,"right","center",true,false,postGUI)
  315. else
  316. dxDrawText(defaultText,positionX+textPos,positionY+sY*0.005,positionX+sizeX-sY*0.005,positionY+sizeY-sY*0.005,tocolor(colorRed,colorGreen,colorBlue,220*(editAlpha/255)*dxLib.globalAlpha),fontSize,dxLib.font,"left","center",true,false,postGUI)
  317. end
  318. else
  319. local defaultText = tostring(getElementData(editElement,"dxEditTextCache"))
  320. if maskedText then
  321. defaultText = string.rep("*",string.len(defaultText))
  322. end
  323. if dxGetTextWidth(defaultText,fontSize,dxLib.font) > (positionX+sizeX-sY*0.005)-(positionX+textPos) then
  324. dxDrawText(defaultText,positionX+textPos,positionY+sY*0.005,positionX+sizeX-sY*0.005,positionY+sizeY-sY*0.005,tocolor(colorRed,colorGreen,colorBlue,220*(editAlpha/255)*dxLib.globalAlpha),fontSize,dxLib.font,"right","center",true,false,postGUI)
  325. else
  326. dxDrawText(defaultText,positionX+textPos,positionY+sY*0.005,positionX+sizeX-sY*0.005,positionY+sizeY-sY*0.005,tocolor(colorRed,colorGreen,colorBlue,220*(editAlpha/255)*dxLib.globalAlpha),fontSize,dxLib.font,"left","center",true,false,postGUI)
  327. end
  328. end
  329. end
  330. end
  331.  
  332.  
  333. function isCursorHover(posX,posY,sizeX,sizeY)
  334. local x,y = 0,0
  335. if isCursorShowing() then x,y = getCursorPosition() x,y = sX*x,sY*y else return false end
  336. if x>=posX and x<=posX+sizeX and y>=posY and y<=posY+sizeY then
  337. return true
  338. else
  339. return false
  340. end
  341. end
  342.  
  343.  
  344. function onDxLibPlayerClick(button,state)
  345. if isCursorShowing() then
  346. if button == "left" and state == "down" then
  347. for i,dxButton in pairs(getElementsByType("dxButton")) do
  348. if getElementData(dxButton,"dxButtonHover") then
  349. setElementData(dxButton,"dxButtonClick",true,false)
  350. triggerEvent("onDxLibButtonClick",getRootElement(),dxButton)
  351. outputDebugString("Triggering event: \"onDxLibButtonClick\"",0,100,100,100)
  352. setElementData(dxButton,"dxButtonHover",false,false)
  353. end
  354. end
  355. for i,dxGridlist in pairs(getElementsByType("dxGridlist")) do
  356. if getElementData(dxGridlist,"dxGridlistHover") then
  357. if getElementData(dxGridlist,"dxGridlistDataHover") then
  358. setElementData(dxGridlist,"dxGridlistSelected",tonumber(getElementData(dxGridlist,"dxGridlistDataHover")),false)
  359. triggerEvent("onDxLibGridlistClick",getRootElement(),dxGridlist)
  360. end
  361. elseif getElementData(dxGridlist,"dxGridlistScrollHover") then
  362. setElementData(dxGridlist,"dxGridlistScrollClicked",true,false)
  363. end
  364. end
  365. for i,dxEdit in pairs(getElementsByType("dxEdit")) do
  366. if getElementData(dxEdit,"dxEditHover") then
  367. setElementData(dxEdit,"dxEditActive",true,false)
  368. setElementData(dxEdit,"dxEditSelected",false,false)
  369. elseif getElementData(dxEdit,"dxEditActive") and not getElementData(dxEdit,"dxEditHover") then
  370. setElementData(dxEdit,"dxEditActive",false,false)
  371. end
  372. end
  373. end
  374. end
  375. end
  376. addEventHandler("onClientClick",getRootElement(),onDxLibPlayerClick)
  377.  
  378.  
  379. function onDxLibMouseScroll(keyPressed)
  380. if keyPressed == "mouse_wheel_up" then
  381. for i,dxGridlist in pairs(getElementsByType("dxGridlist")) do
  382. if getElementData(dxGridlist,"dxGridlistHover") then
  383. setElementData(dxGridlist,"dxGridlistTick",getTickCount(),false)
  384. setElementData(dxGridlist,"dxGridlistScrollTo",getElementData(dxGridlist,"dxGridlistScrollTo")-(3),false)
  385. end
  386. end
  387. triggerEvent("onDxLibScrollMouse",getRootElement(),"up")
  388. elseif keyPressed == "mouse_wheel_down" then
  389. for i,dxGridlist in pairs(getElementsByType("dxGridlist")) do
  390. if getElementData(dxGridlist,"dxGridlistHover") then
  391. setElementData(dxGridlist,"dxGridlistTick",getTickCount(),false)
  392. setElementData(dxGridlist,"dxGridlistScrollTo",getElementData(dxGridlist,"dxGridlistScrollTo")+(3),false)
  393. end
  394. end
  395. triggerEvent("onDxLibScrollMouse",getRootElement(),"down")
  396. end
  397. end
  398. bindKey("mouse_wheel_up","down",onDxLibMouseScroll)
  399. bindKey("mouse_wheel_down","down",onDxLibMouseScroll)
  400.  
  401.  
  402. keysTable = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
  403. "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z","backspace","num_0", "num_1", "num_2", "num_3", "num_4", "num_5",
  404. "num_6", "num_7", "num_8", "num_9", "num_mul", "num_add", "num_sub", "num_div", "num_dec","space","[", "]", ";", ",", "-", ".", "/", "#", "\\", "=","'"
  405. }
  406. shiftTable = {")","!","@","#","$","%","^","&","*","("}
  407.  
  408. keyState = {}
  409.  
  410. function checkPressedKey()
  411. for i,key in ipairs(keysTable) do
  412. if getKeyState(key) then
  413. if true then
  414. if not keyState[i] then
  415. keyState[i] = getTickCount() + 500
  416. if key == "num_0" then return "0"
  417. elseif key == "num_1" then return "1"
  418. elseif key == "num_2" then return "2"
  419. elseif key == "num_3" then return "3"
  420. elseif key == "num_4" then return "4"
  421. elseif key == "num_5" then return "5"
  422. elseif key == "num_6" then return "6"
  423. elseif key == "num_7" then return "7"
  424. elseif key == "num_8" then return "8"
  425. elseif key == "num_9" then return "9"
  426. elseif key == "num_add" then return "+"
  427. elseif key == "num_sub" then return "-"
  428. elseif key == "num_div" then return "/"
  429. elseif key == "num_mul" then return "*"
  430. elseif key == "num_dec" then return ","
  431. elseif key == "space" then return " "
  432. else
  433. if not (getKeyState("lshift") or getKeyState("rshift")) then
  434. return key
  435. else
  436. if tonumber(key) then
  437. return shiftTable[tonumber(key)+1]
  438. else
  439. if key == '\\' then return "|"
  440. elseif key == '[' then return "{"
  441. elseif key == ']' then return "}"
  442. elseif key == '-' then return "_"
  443. elseif key == '=' then return "+"
  444. elseif key == '/' then return "?"
  445. elseif key == '.' then return "<"
  446. elseif key == '`' then return "~"
  447. elseif key == ',' then return ">"
  448. else
  449. return string.upper(key)
  450. end
  451. end
  452. end
  453. end
  454. elseif keyState[i] and keyState[i] < getTickCount() then
  455. keyState[i] = getTickCount()+100
  456. if key == "num_0" then return "0"
  457. elseif key == "num_1" then return "1"
  458. elseif key == "num_2" then return "2"
  459. elseif key == "num_3" then return "3"
  460. elseif key == "num_4" then return "4"
  461. elseif key == "num_5" then return "5"
  462. elseif key == "num_6" then return "6"
  463. elseif key == "num_7" then return "7"
  464. elseif key == "num_8" then return "8"
  465. elseif key == "num_9" then return "9"
  466. elseif key == "num_add" then return "+"
  467. elseif key == "num_sub" then return "-"
  468. elseif key == "num_div" then return "/"
  469. elseif key == "num_mul" then return "*"
  470. elseif key == "num_dec" then return ","
  471. elseif key == "space" then return " "
  472. else
  473. if not (getKeyState("lshift") or getKeyState("rshift")) then
  474. return key
  475. else
  476. if tonumber(key) then
  477. return shiftTable[tonumber(key)+1]
  478. else
  479. if key == '\\' then return "|"
  480. elseif key == '[' then return "{"
  481. elseif key == ']' then return "}"
  482. elseif key == '-' then return "_"
  483. elseif key == '=' then return "+"
  484. elseif key == '/' then return "?"
  485. elseif key == '.' then return "<"
  486. elseif key == '`' then return "~"
  487. elseif key == ',' then return ">"
  488. else
  489. return string.upper(key)
  490. end
  491. end
  492. end
  493. end
  494. end
  495. else
  496. return ""
  497. end
  498. else
  499. keyState[i] = false
  500. end
  501. end
  502. return ""
  503. end
  504.  
  505.  
  506. function dxLibEditGetText(editElement)
  507. if isElement(editElement) or not getElementData(editElement,"dxEditCreated") then
  508. return tostring(getElementData(editElement,"dxEditTextCache"))
  509. else
  510. outputDebugString("dxLib: Bad element!")
  511. end
  512. end
  513.  
  514.  
  515. function dxLibEditSetText(editElement,stringToSet)
  516. if isElement(editElement) then
  517. setElementData(editElement,"dxEditTextCache",stringToSet,false)
  518. else
  519. outputDebugString("dxLib: Bad element!")
  520. end
  521. end
  522.  
  523.  
  524. function dxLibGridlistGetSelectedRowText(gridlistElement)
  525. if isElement(gridlistElement) or not getElementData(gridlistElement,"dxGridlistCreate") then
  526. if getElementData(gridlistElement,"dxGridlistSelected") and getElementData(gridlistElement,"dxGridlistSelected") ~= 0 then
  527. local data = getElementData(gridlistElement,"dxGridlistDatatable")
  528. local row = tonumber(getElementData(gridlistElement,"dxGridlistSelected"))
  529. local gridlistData = data[row]
  530. return gridlistData
  531. else
  532. return false
  533. end
  534. else
  535. outputDebugString("dxLib: Bad element!")
  536. end
  537. end
  538.  
  539. function dxLibGridlistGetSelectedRowNumber(gridlistElement)
  540. if isElement(gridlistElement) or not getElementData(gridlistElement,"dxGridlistCreate") then
  541. if getElementData(gridlistElement,"dxGridlistSelected") then
  542. local row = tonumber(getElementData(gridlistElement,"dxGridlistSelected"))
  543. if row then
  544. return row
  545. else
  546. return false
  547. end
  548. else
  549. return false
  550. end
  551. else
  552. outputDebugString("dxLib: Bad element!")
  553. end
  554. end
  555.  
  556.  
  557. function findFontSize(dxFont,toSize)
  558. local fontSize = 0
  559. local relativeSize = 0
  560. local perLoop = 0.01
  561. repeat
  562. fontSize = fontSize+perLoop
  563. relativeSize = dxGetFontHeight(fontSize,dxFont)
  564. until relativeSize>=toSize
  565. fontSize = fontSize - perLoop
  566. return fontSize
  567. end
  568.  
  569.  
  570. --####################################################################
  571. --## Testing ##
  572. --####################################################################
  573.  
  574.  
  575. --[[local button = createElement("dxButton")
  576. local gridlist = createElement("dxGridlist")
  577. local edit = createElement("dxEdit")
  578.  
  579. gridData = {}
  580.  
  581.  
  582. for i=1,2000 do
  583. gridData[i] = " "..i
  584. end
  585.  
  586. showCursor(true)
  587.  
  588. function test()
  589. dxLibCreateButton(button,350,760,400,50,"Find me!",3,255,0,120,0,255,0,255,false)
  590. dxLibCreateGridlist(gridlist,gridData,350,150,400,600,3,50,0,255,255)
  591. dxLibCreateEdit(edit,350,100,400,40,"Search player...","person",50,50,50,255)
  592. end
  593. addEventHandler("onClientRender",getRootElement(),test)]]
  594.  
  595.  
  596. --####################################################################
  597. --## Copyrights © & ™ All rights reserved, Apple 2013. ##
  598. --####################################################################
  599.  
  600.  
  601. fileDelete('dx_lib.lua')
Advertisement
Add Comment
Please, Sign In to add comment