77---- ------------------------------------
88GuiUtilities = require (script .Parent .GuiUtilities )
99
10- local kButtonImageIdDefault = " rbxasset://textures/TerrainTools/button_default .png"
10+ local kButtonImageIdDefault = " rbxasset://textures/StudioToolbox/RoundedBackground .png"
1111local kButtonImageIdHovered = " rbxasset://textures/TerrainTools/button_hover.png"
1212local kButtonImageIdPressed = " rbxasset://textures/TerrainTools/button_pressed.png"
1313
14+ local kButtonBorder = " rbxasset://textures/StudioToolbox/RoundedBorder.png"
15+
1416CustomTextButtonClass = {}
1517CustomTextButtonClass .__index = CustomTextButtonClass
1618
@@ -23,33 +25,42 @@ function CustomTextButtonClass.new(buttonName, labelText)
2325 button .Image = kButtonImageIdDefault
2426 button .BackgroundTransparency = 1
2527 button .ScaleType = Enum .ScaleType .Slice
26- button .SliceCenter = Rect .new (7 , 7 , 156 , 36 )
28+ button .SliceCenter = Rect .new (3 , 3 , 13 , 13 )
2729 button .AutoButtonColor = false
2830
31+ local border = Instance .new (' ImageLabel' )
32+ border .Size = UDim2 .new (1 , 0 , 1 , 0 )
33+ border .BackgroundTransparency = 1
34+ border .ScaleType = Enum .ScaleType .Slice
35+ border .SliceCenter = Rect .new (3 , 3 , 13 , 13 )
36+ border .Image = kButtonBorder
37+ border .Parent = button
38+
2939 local label = Instance .new (' TextLabel' )
3040 label .Text = labelText
3141 label .BackgroundTransparency = 1
3242 label .Size = UDim2 .new (1 , 0 , 1 , 0 ) -- 1, 0, 1, GuiUtilities.kButtonVerticalFudge
33- label .Font = Enum .Font .SourceSans
34- label .TextSize = 15
43+ label .Font = Enum .Font .SourceSans
44+ label .TextSize = 15
3545 label .Parent = button
3646
3747 self ._label = label
48+ self ._border = border
3849 self ._button = button
3950
4051 self ._clicked = false
4152 self ._hovered = false
4253
4354 button .InputBegan :Connect (function (input )
44- if (input .UserInputType == Enum .UserInputType .MouseMovement ) then
55+ if (input .UserInputType == Enum .UserInputType .MouseMovement ) then
4556 self ._hovered = true
4657 self :_updateButtonVisual ()
4758 end
4859 end )
4960
5061
5162 button .InputEnded :Connect (function (input )
52- if (input .UserInputType == Enum .UserInputType .MouseMovement ) then
63+ if (input .UserInputType == Enum .UserInputType .MouseMovement ) then
5364 self ._hovered = false
5465 self ._clicked = false
5566 self :_updateButtonVisual ()
@@ -66,20 +77,22 @@ function CustomTextButtonClass.new(buttonName, labelText)
6677 self :_updateButtonVisual ()
6778 end )
6879
80+ settings ().Studio .ThemeChanged :Connect (self :_updateButtonVisual ())
6981 self :_updateButtonVisual ()
7082
7183 return self
7284end
7385
7486function CustomTextButtonClass :_updateButtonVisual ()
87+ self ._border .ImageColor3 = GuiUtilities .kButtonStandardBorderColor
7588 if (self ._clicked ) then
76- self ._button .Image = kButtonImageIdPressed
77- self ._label .TextColor3 = GuiUtilities .kPressedButtonTextColor
89+ self ._button .ImageColor3 = GuiUtilities . kButtonPressedBackgroundColor
90+ self ._label .TextColor3 = GuiUtilities .kStandardButtonTextColor
7891 elseif (self ._hovered ) then
79- self ._button .Image = kButtonImageIdHovered
92+ self ._button .ImageColor3 = GuiUtilities . kButtonHoverBackgroundColor
8093 self ._label .TextColor3 = GuiUtilities .kStandardButtonTextColor
8194 else
82- self ._button .Image = kButtonImageIdDefault
95+ self ._button .ImageColor3 = GuiUtilities . kButtonStandardBackgroundColor
8396 self ._label .TextColor3 = GuiUtilities .kStandardButtonTextColor
8497 end
8598end
0 commit comments