SHARE
TWEET

Light Theme GUI Library API [Toggle Button Update]

SinisterMemories Jun 3rd, 2020 (edited) 678 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --[[
  2.  
  3. Created by EpicMetatableMoment 😎
  4.  
  5. ]]--
  6.  
  7. -- [[ Window API ]] --
  8.  
  9. local window = {}
  10.  
  11. do
  12.     --// Window Methods
  13.    
  14.     local windowMethods = {}
  15.     local windowMeta = {
  16.         __index = windowMethods
  17.     }
  18.    
  19.     local windowOffset = 0
  20.    
  21.     function window.new(uiContainer, windowName)
  22.         local newWindow = {
  23.             name = windowName,
  24.             newWindowFrame = Instance.new("Frame")
  25.         }
  26.        
  27.         do
  28.             --// Construct UI
  29.            
  30.             local newWindowFrame = newWindow.newWindowFrame
  31.            
  32.             local newWindowTitle = Instance.new("TextLabel")
  33.             local newWindowElementContainer = Instance.new("Frame")
  34.             local elementContainerSorter = Instance.new("UIListLayout")
  35.            
  36.             do
  37.                 --// New Window Frame
  38.                
  39.                 newWindowFrame.Name = windowName
  40.                
  41.                 newWindowFrame.Draggable = true
  42.                 newWindowFrame.Active = true
  43.                
  44.                 newWindowFrame.BorderSizePixel = 0
  45.                
  46.                 newWindowFrame.AnchorPoint = Vector2.new(.5, .5)
  47.                 newWindowFrame.Size = UDim2.new(.14, 0, 0.14, 0)
  48.                 newWindowFrame.Position = UDim2.new(.125 + windowOffset, 0, .25, 0)
  49.                 newWindowFrame.BackgroundColor3 = Color3.fromRGB(232, 232, 232)
  50.                 newWindowFrame.SizeConstraint = Enum.SizeConstraint.RelativeXX
  51.                
  52.                 newWindowFrame.Parent = uiContainer
  53.             end
  54.            
  55.             do
  56.                 --// New Window Title
  57.                
  58.                 newWindowTitle.Name = "Title"
  59.                 newWindowTitle.Text = newWindow.name
  60.                
  61.                 newWindowTitle.BorderSizePixel = 0
  62.                 newWindowTitle.TextSize = 18
  63.                
  64.                 newWindowTitle.Font = Enum.Font.Code
  65.                 newWindowTitle.Size = UDim2.new(1, 0, .12, 0)
  66.                 newWindowTitle.BackgroundColor3 = Color3.fromRGB(208, 208, 208)
  67.                
  68.                 newWindowTitle.Parent = newWindowFrame
  69.             end
  70.            
  71.             do
  72.                 --// New Window Button Container
  73.                
  74.                 newWindowElementContainer.Name = "Container"
  75.                
  76.                 newWindowElementContainer.BorderSizePixel = 0
  77.                 newWindowElementContainer.BackgroundTransparency = 1
  78.                
  79.                 newWindowElementContainer.AnchorPoint = Vector2.new(0, 1)
  80.                 newWindowElementContainer.Size = UDim2.new(1, 0, .85, 0)
  81.                 newWindowElementContainer.Position = UDim2.new(0, 0, 1, 0)
  82.                
  83.                 newWindowElementContainer.Parent = newWindowFrame
  84.             end
  85.            
  86.             do
  87.                 --// Element Container Sorter
  88.                
  89.                 elementContainerSorter.Padding = UDim.new(.025, 0)
  90.                
  91.                 elementContainerSorter.SortOrder = Enum.SortOrder.LayoutOrder
  92.                 elementContainerSorter.FillDirection = Enum.FillDirection.Vertical
  93.                 elementContainerSorter.HorizontalAlignment = Enum.HorizontalAlignment.Center
  94.                
  95.                 elementContainerSorter.Parent = newWindowElementContainer
  96.             end
  97.         end
  98.        
  99.         setmetatable(newWindow, windowMeta)
  100.        
  101.         windowOffset = windowOffset + 0.15
  102.        
  103.         return newWindow
  104.     end
  105.    
  106.     function windowMethods:addLabel(labelText)
  107.         local windowFrame = self.newWindowFrame
  108.         local elementContainer = windowFrame.Container
  109.        
  110.         do
  111.             --// Construct New Label
  112.            
  113.             local newLabel = Instance.new("TextLabel")
  114.            
  115.             do
  116.                 --// New Label
  117.                
  118.                 newLabel.Text = labelText
  119.                
  120.                 newLabel.BorderSizePixel = 0
  121.                 newLabel.TextSize = 14
  122.                
  123.                 newLabel.Font = Enum.Font.Code
  124.                 newLabel.BackgroundColor3 = Color3.fromRGB(248, 248, 248)
  125.                 newLabel.Size = UDim2.new(.9, 0, .125, 0)
  126.                
  127.                 newLabel.Parent = elementContainer
  128.             end
  129.         end
  130.     end
  131.    
  132.     function windowMethods:addButton(buttonName, func)
  133.         local windowFrame = self.newWindowFrame
  134.         local elementContainer = windowFrame.Container
  135.        
  136.         do
  137.             --// Construct New Button
  138.            
  139.             local newButton = Instance.new("TextButton")
  140.             local newButtonDetail = Instance.new("Frame")
  141.    
  142.             do
  143.                 --// New Button
  144.                
  145.                 newButton.Text = buttonName
  146.                
  147.                 newButton.BorderSizePixel = 0
  148.                 newButton.TextSize = 14
  149.                
  150.                 newButton.Font = Enum.Font.Code
  151.                 newButton.BackgroundColor3 = Color3.fromRGB(248, 248, 248)
  152.                 newButton.Size = UDim2.new(.9, 0, .125, 0)
  153.                
  154.                 newButton.Parent = elementContainer
  155.                
  156.                 newButton.MouseButton1Click:Connect(func)
  157.             end
  158.            
  159.             do
  160.                 --// Button Detail
  161.                
  162.                 newButtonDetail.BorderSizePixel = 0
  163.                
  164.                 newButtonDetail.AnchorPoint = Vector2.new(0, 1)
  165.                 newButtonDetail.BackgroundColor3 = Color3.fromRGB(225, 225, 225)
  166.                 newButtonDetail.Position = UDim2.new(0, 0, 1, 0)
  167.                 newButtonDetail.Size = UDim2.new(1, 0, 0.15, 0)
  168.                
  169.                 newButtonDetail.Parent = newButton
  170.             end
  171.         end
  172.     end
  173.    
  174.     function windowMethods:addTextBox(textBoxName, func)
  175.         local windowFrame = self.newWindowFrame
  176.         local elementContainer = windowFrame.Container
  177.        
  178.         do
  179.             --// Construct TextBox
  180.            
  181.             local newTextBoxLabel = Instance.new("TextLabel")
  182.             local newTextBox = Instance.new("TextBox")
  183.             local newTextBoxDetail = Instance.new("Frame")
  184.            
  185.             do
  186.                 --// Text Box Label
  187.                
  188.                 newTextBoxLabel.Text = (" %s:"):format(textBoxName)
  189.                
  190.                 newTextBoxLabel.BorderSizePixel = 0
  191.                 newTextBoxLabel.TextSize = 14
  192.                
  193.                 newTextBoxLabel.Font = Enum.Font.Code
  194.                 newTextBoxLabel.TextXAlignment = Enum.TextXAlignment.Left
  195.                 newTextBoxLabel.BackgroundColor3 = Color3.fromRGB(248, 248, 248)
  196.                 newTextBoxLabel.Size = UDim2.new(.9, 0, .125, 0)
  197.                
  198.                 newTextBoxLabel.Parent = elementContainer
  199.             end
  200.            
  201.             do
  202.                 --// Text Box
  203.                
  204.                 newTextBox.Text = ""
  205.                 newTextBox.PlaceholderText = "Enter Value"
  206.                
  207.                 newTextBox.BorderSizePixel = 0
  208.                 newTextBox.TextSize = 14
  209.                
  210.                 newTextBox.Font = Enum.Font.Code
  211.                 newTextBox.BackgroundColor3 = Color3.fromRGB(248, 248, 248)
  212.                 newTextBox.Position = UDim2.new(.5, 0, 0, 0)
  213.                 newTextBox.Size = UDim2.new(.5, 0, 1, 0)
  214.                
  215.                 newTextBox.Parent = newTextBoxLabel
  216.                
  217.                 newTextBox.FocusLost:Connect(function()
  218.                     func(newTextBox.Text)
  219.                 end)
  220.             end
  221.            
  222.             do
  223.                 --// Button Detail
  224.                
  225.                 newTextBoxDetail.BorderSizePixel = 0
  226.                
  227.                 newTextBoxDetail.AnchorPoint = Vector2.new(0, 1)
  228.                 newTextBoxDetail.BackgroundColor3 = Color3.fromRGB(225, 225, 225)
  229.                 newTextBoxDetail.Position = UDim2.new(0, 0, 1, 0)
  230.                 newTextBoxDetail.Size = UDim2.new(1, 0, 0.15, 0)
  231.                
  232.                 newTextBoxDetail.Parent = newTextBox
  233.             end
  234.         end
  235.     end
  236.    
  237.     function windowMethods:addToggle(toggleName, func)
  238.         local windowFrame = self.newWindowFrame
  239.         local elementContainer = windowFrame.Container
  240.        
  241.         do
  242.             --// Construct Toggle
  243.            
  244.             local toggleText = Instance.new("TextLabel")
  245.             local toggleButton = Instance.new("ImageButton")
  246.             local toggleTextDetail = Instance.new("Frame")
  247.            
  248.             do
  249.                 --// Toggle Text
  250.  
  251.                 toggleText.Text = (" %s"):format(toggleName)
  252.                
  253.                 toggleText.BorderSizePixel = 0
  254.                 toggleText.TextSize = 14
  255.                
  256.                 toggleText.Size = UDim2.new(.9, 0, .125, 0)
  257.                 toggleText.Font = Enum.Font.Code
  258.                 toggleText.TextXAlignment = Enum.TextXAlignment.Left
  259.                 toggleText.BackgroundColor3 = Color3.fromRGB(248, 248, 248)
  260.                
  261.                 toggleText.Parent = elementContainer
  262.             end
  263.            
  264.             do
  265.                 --// Toggle Button
  266.                
  267.                 toggleButton.BorderSizePixel = 0
  268.                
  269.                 toggleButton.Image = ""
  270.                
  271.                 toggleButton.SizeConstraint = Enum.SizeConstraint.RelativeYY
  272.                
  273.                 toggleButton.AnchorPoint = Vector2.new(1, 0.5)
  274.                 toggleButton.Size = UDim2.new(.9, 0, .0, 0)
  275.                 toggleButton.Position = UDim2.new(1, 0, .435, 0)
  276.                 toggleButton.BackgroundColor3 = Color3.fromRGB(232, 232, 232)
  277.                
  278.                 toggleButton.Parent = toggleText
  279.                
  280.                 local currentState = false
  281.                
  282.                 toggleButton.MouseButton1Click:Connect(function()
  283.                     currentState = not currentState
  284.                    
  285.                     func(currentState)
  286.                    
  287.                     toggleButton.Image = (currentState and "http://www.roblox.com/asset/?id=247421287") or ""
  288.                 end)
  289.             end
  290.            
  291.             do
  292.                 --// Toggle Detail
  293.                
  294.                 toggleTextDetail.BorderSizePixel = 0
  295.                
  296.                 toggleTextDetail.AnchorPoint = Vector2.new(0, 1)
  297.                 toggleTextDetail.BackgroundColor3 = Color3.fromRGB(225, 225, 225)
  298.                 toggleTextDetail.Position = UDim2.new(0, 0, 1, 0)
  299.                 toggleTextDetail.Size = UDim2.new(1, 0, 0.175, 0)
  300.                
  301.                 toggleTextDetail.Parent = toggleText
  302.             end
  303.         end
  304.     end
  305. end
  306.  
  307. -- [[ Init ]] --
  308.  
  309. return window
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top