SinisterMemories

Light Theme GUI Library API [Toggle Button Update]

Jun 3rd, 2020
722
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