Advertisement
Guest User

browser menager

a guest
Feb 20th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.34 KB | None | 0 0
  1. --[[
  2.     Author: l0nger
  3.     Name: Browser
  4. ]]
  5.  
  6. local cFunc={}
  7. local cSetting={}
  8.  
  9. Browser={}
  10. Browser.__index=Browser
  11.  
  12. function Browser:new(...)
  13.     local obj=setmetatable({}, {__index=self})
  14.     if obj.constructor then
  15.         obj:constructor(...)
  16.     end
  17.     return obj
  18. end
  19.  
  20. function Browser:addBrowser(name, url, x, y, width, height, isLocal, isTransparent, enabled, focus, relative, fnDocumentReady)
  21.     if not name then return end
  22.    
  23.     self.browsers[name]={}
  24.    
  25.     self.browsers[name].url=url
  26.     self.browsers[name].x=x
  27.     self.browsers[name].y=y
  28.     self.browsers[name].width=width
  29.     self.browsers[name].height=height
  30.     self.browsers[name].isLocal=(isLocal or true)
  31.     self.browsers[name].isTransparent=(isTransparent or false)
  32.     self.browsers[name].relative=(relative or false)
  33.     self.browsers[name].enabled=(enabled or false)
  34.     self.browsers[name].focused=(focus or false)
  35.     self.browsers[name].onDocumentReady=(fnDocumentReady or nil)
  36.    
  37.     self.browsers[name].guiBrowser=guiCreateBrowser(x, y, width, height, self.browsers[name].isLocal, self.browsers[name].isTransparent, self.browsers[name].relative)
  38.     if not self.browsers[name].guiBrowser then
  39.         outputDebugString('[CBrowser] addBrowser - error creating the browser: ' ..name)
  40.         self.browsers[name]=nil
  41.         return
  42.     end
  43.    
  44.     if not self.browsers[name].enabled or self.browsers[name].enabled==false then
  45.         guiSetVisible(self.browsers[name].guiBrowser, false)--self.browsers[name].hBrowser, false)
  46.     end
  47.    
  48.     self.browsers[name].hBrowser=guiGetBrowser(self.browsers[name].guiBrowser)
  49.     addEventHandler('onClientBrowserCreated', self.browsers[name].hBrowser, function()
  50.         loadBrowserURL(self.browsers[name].hBrowser, tostring(self.browsers[name].url))
  51.         if self.browsers[name].focused then
  52.             focusBrowser(self.browsers[name].hBrowser)
  53.         end
  54.     end)
  55.     addEventHandler('onClientBrowserDocumentReady', self.browsers[name].hBrowser, function(...)
  56.         if self.browsers[name].onDocumentReady then
  57.             self.browsers[name]:onDocumentReady(...)
  58.         end
  59.     end)
  60.     return
  61. end
  62.  
  63. function Browser:removeBrowser(name)
  64.     if self.browsers[name] then
  65.         if isElement(self.browsers[name].hBrowser) then
  66.             destroyElement(self.browsers[name].hBrowser)
  67.         end
  68.         self.browsers[name]=nil
  69.     end
  70. end
  71.  
  72. function Browser:setBrowserFocus(name, focus)
  73.     if self.browsers[name] then
  74.         if focus==nil then return end
  75.        
  76.         if focus==true then
  77.             focusBrowser(self.browsers[name].hBrowser)
  78.             guiSetInputEnabled(true)
  79.         elseif focus==false then
  80.             -- disable input mode
  81.             guiSetInputEnabled(false)
  82.         end
  83.         self.browsers[name].focused=focus
  84.     end
  85. end
  86.  
  87. function Browser:setURLBrowser(name, url, focused)
  88.     if self.browsers[name] then
  89.         if not url then return end
  90.        
  91.         self.browsers[name].url=tostring(url)
  92.         loadBrowserURL(self.browsers[name].hBrowser, self.browsers[name].url)
  93.         if focused then
  94.             self.browsers[name].focused=true
  95.             focusBrowser(self.browsers[name].hBrowser)
  96.         end
  97.     end
  98. end
  99.  
  100. function Browser:toggleBrowser(name, toggle)
  101.     if self.browsers[name] then
  102.         if toggle==nil then
  103.             self.browsers[name].enabled=not self.browsers[name].enabled
  104.             guiSetVisible(self.browsers[name].guiBrowser, self.browsers[name].enabled)
  105.         else
  106.             self.browsers[name].enabled=toggle
  107.             guiSetVisible(self.browsers[name].guiBrowser, toggle)
  108.         end
  109.  
  110.     end
  111. end
  112.  
  113. function Browser:constructor(...)
  114.     self.browsers={}
  115.    
  116.     logger:outputInfo('[calling] Browser: constructor')
  117. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement