deploy: 7649c97c71
This commit is contained in:
@@ -3,12 +3,91 @@ _A container that provides automatic scrolling capabilities with visual scrollba
|
|||||||
|
|
||||||
Extends: `Container`
|
Extends: `Container`
|
||||||
|
|
||||||
|
## Examples (Executable)
|
||||||
|
```lua run
|
||||||
|
local basalt = require("basalt")
|
||||||
|
|
||||||
|
local main = basalt.getMainFrame()
|
||||||
|
|
||||||
|
-- Create a ScrollFrame with content larger than the frame
|
||||||
|
local scrollFrame = main:addScrollFrame({
|
||||||
|
x = 2,
|
||||||
|
y = 2,
|
||||||
|
width = 30,
|
||||||
|
height = 12,
|
||||||
|
background = colors.lightGray
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Add a title
|
||||||
|
scrollFrame:addLabel({
|
||||||
|
x = 2,
|
||||||
|
y = 1,
|
||||||
|
text = "ScrollFrame Example",
|
||||||
|
foreground = colors.yellow
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Add multiple labels that exceed the frame height
|
||||||
|
for i = 1, 20 do
|
||||||
|
scrollFrame:addLabel({
|
||||||
|
x = 2,
|
||||||
|
y = i + 2,
|
||||||
|
text = "Line " .. i .. " - Scroll to see more",
|
||||||
|
foreground = i % 2 == 0 and colors.white or colors.lightGray
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Add some interactive buttons at different positions
|
||||||
|
scrollFrame:addButton({
|
||||||
|
x = 2,
|
||||||
|
y = 24,
|
||||||
|
width = 15,
|
||||||
|
height = 3,
|
||||||
|
text = "Button 1",
|
||||||
|
background = colors.blue
|
||||||
|
})
|
||||||
|
:onClick(function()
|
||||||
|
scrollFrame:addLabel({
|
||||||
|
x = 18,
|
||||||
|
y = 24,
|
||||||
|
text = "Clicked!",
|
||||||
|
foreground = colors.lime
|
||||||
|
})
|
||||||
|
end)
|
||||||
|
|
||||||
|
scrollFrame:addButton({
|
||||||
|
x = 2,
|
||||||
|
y = 28,
|
||||||
|
width = 15,
|
||||||
|
height = 3,
|
||||||
|
text = "Button 2",
|
||||||
|
background = colors.green
|
||||||
|
})
|
||||||
|
:onClick(function()
|
||||||
|
scrollFrame:addLabel({
|
||||||
|
x = 18,
|
||||||
|
y = 28,
|
||||||
|
text = "Nice!",
|
||||||
|
foreground = colors.orange
|
||||||
|
})
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- Info label outside the scroll frame
|
||||||
|
main:addLabel({
|
||||||
|
x = 2,
|
||||||
|
y = 15,
|
||||||
|
text = "Use mouse wheel to scroll!",
|
||||||
|
foreground = colors.gray
|
||||||
|
})
|
||||||
|
|
||||||
|
basalt.run()
|
||||||
|
```
|
||||||
|
|
||||||
## Properties
|
## Properties
|
||||||
|
|
||||||
|Property|Type|Default|Description|
|
|Property|Type|Default|Description|
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
|showScrollBar|boolean|true|Whether to show scrollbars|
|
|showScrollBar|boolean|true|Whether to show scrollbars|
|
||||||
|scrollBarSymbol|string|"|" The symbol used for the scrollbar handle|
|
|scrollBarSymbol|string|"_"|The symbol used for the scrollbar handle|
|
||||||
|scrollBarBackground|string|"\127"|The symbol used for the scrollbar background|
|
|scrollBarBackground|string|"\127"|The symbol used for the scrollbar background|
|
||||||
|scrollBarColor|color|lightGray|Color of the scrollbar handle|
|
|scrollBarColor|color|lightGray|Color of the scrollbar handle|
|
||||||
|scrollBarBackgroundColor|color|gray|Background color of the scrollbar|
|
|scrollBarBackgroundColor|color|gray|Background color of the scrollbar|
|
||||||
|
|||||||
@@ -1,99 +1,105 @@
|
|||||||
# TabControl
|
# TabControl
|
||||||
_local main = basalt.getMainFrame()_
|
_The TabControl is a container that provides tabbed interface functionality_
|
||||||
|
|
||||||
_-- Create a simple TabControl_
|
|
||||||
_local tabControl = main:addTabControl({_
|
|
||||||
_x = 2,_
|
|
||||||
_y = 2,_
|
|
||||||
_width = 46,_
|
|
||||||
_height = 15,_
|
|
||||||
_})_
|
|
||||||
|
|
||||||
_-- Tab 1: Home_
|
|
||||||
_local homeTab = tabControl:newTab("Home")_
|
|
||||||
|
|
||||||
_homeTab:addLabel({_
|
|
||||||
_x = 2,_
|
|
||||||
_y = 2,_
|
|
||||||
_text = "Welcome!",_
|
|
||||||
_foreground = colors.yellow_
|
|
||||||
_})_
|
|
||||||
|
|
||||||
_homeTab:addLabel({_
|
|
||||||
_x = 2,_
|
|
||||||
_y = 4,_
|
|
||||||
_text = "This is a TabControl",_
|
|
||||||
_foreground = colors.white_
|
|
||||||
_})_
|
|
||||||
|
|
||||||
_homeTab:addLabel({_
|
|
||||||
_x = 2,_
|
|
||||||
_y = 5,_
|
|
||||||
_text = "example with tabs.",_
|
|
||||||
_foreground = colors.white_
|
|
||||||
_})_
|
|
||||||
|
|
||||||
_-- Tab 2: Counter_
|
|
||||||
_local counterTab = tabControl:newTab("Counter")_
|
|
||||||
|
|
||||||
_local counterLabel = counterTab:addLabel({_
|
|
||||||
_x = 2,_
|
|
||||||
_y = 2,_
|
|
||||||
_text = "Count: 0",_
|
|
||||||
_foreground = colors.lime_
|
|
||||||
_})_
|
|
||||||
|
|
||||||
_local count = 0_
|
|
||||||
_counterTab:addButton({_
|
|
||||||
_x = 2,_
|
|
||||||
_y = 4,_
|
|
||||||
_width = 12,_
|
|
||||||
_height = 3,_
|
|
||||||
_text = "Click Me",_
|
|
||||||
_background = colors.blue_
|
|
||||||
_})_
|
|
||||||
_:setBackgroundState("clicked", colors.lightBlue)_
|
|
||||||
_:onClick(function()_
|
|
||||||
_count = count + 1_
|
|
||||||
_counterLabel:setText("Count: " .. count)_
|
|
||||||
_end)_
|
|
||||||
|
|
||||||
_-- Tab 3: Info_
|
|
||||||
_local infoTab = tabControl:newTab("Info")_
|
|
||||||
|
|
||||||
_infoTab:addLabel({_
|
|
||||||
_x = 2,_
|
|
||||||
_y = 2,_
|
|
||||||
_text = "TabControl Features:",_
|
|
||||||
_foreground = colors.orange_
|
|
||||||
_})_
|
|
||||||
|
|
||||||
_infoTab:addLabel({_
|
|
||||||
_x = 2,_
|
|
||||||
_y = 4,_
|
|
||||||
_text = "- Horizontal tabs",_
|
|
||||||
_foreground = colors.gray_
|
|
||||||
_})_
|
|
||||||
|
|
||||||
_infoTab:addLabel({_
|
|
||||||
_x = 2,_
|
|
||||||
_y = 5,_
|
|
||||||
_text = "- Easy navigation",_
|
|
||||||
_foreground = colors.gray_
|
|
||||||
_})_
|
|
||||||
|
|
||||||
_infoTab:addLabel({_
|
|
||||||
_x = 2,_
|
|
||||||
_y = 6,_
|
|
||||||
_text = "- Content per tab",_
|
|
||||||
_foreground = colors.gray_
|
|
||||||
_})_
|
|
||||||
|
|
||||||
_basalt.run()_
|
|
||||||
_]]_
|
|
||||||
|
|
||||||
Extends: `Container`
|
Extends: `Container`
|
||||||
|
|
||||||
|
## Examples (Executable)
|
||||||
|
```lua run
|
||||||
|
local basalt = require("basalt")
|
||||||
|
|
||||||
|
local main = basalt.getMainFrame()
|
||||||
|
|
||||||
|
-- Create a simple TabControl
|
||||||
|
local tabControl = main:addTabControl({
|
||||||
|
x = 2,
|
||||||
|
y = 2,
|
||||||
|
width = 46,
|
||||||
|
height = 15,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Tab 1: Home
|
||||||
|
local homeTab = tabControl:newTab("Home")
|
||||||
|
|
||||||
|
homeTab:addLabel({
|
||||||
|
x = 2,
|
||||||
|
y = 2,
|
||||||
|
text = "Welcome!",
|
||||||
|
foreground = colors.yellow
|
||||||
|
})
|
||||||
|
|
||||||
|
homeTab:addLabel({
|
||||||
|
x = 2,
|
||||||
|
y = 4,
|
||||||
|
text = "This is a TabControl",
|
||||||
|
foreground = colors.white
|
||||||
|
})
|
||||||
|
|
||||||
|
homeTab:addLabel({
|
||||||
|
x = 2,
|
||||||
|
y = 5,
|
||||||
|
text = "example with tabs.",
|
||||||
|
foreground = colors.white
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Tab 2: Counter
|
||||||
|
local counterTab = tabControl:newTab("Counter")
|
||||||
|
|
||||||
|
local counterLabel = counterTab:addLabel({
|
||||||
|
x = 2,
|
||||||
|
y = 2,
|
||||||
|
text = "Count: 0",
|
||||||
|
foreground = colors.lime
|
||||||
|
})
|
||||||
|
|
||||||
|
local count = 0
|
||||||
|
counterTab:addButton({
|
||||||
|
x = 2,
|
||||||
|
y = 4,
|
||||||
|
width = 12,
|
||||||
|
height = 3,
|
||||||
|
text = "Click Me",
|
||||||
|
background = colors.blue
|
||||||
|
})
|
||||||
|
:setBackgroundState("clicked", colors.lightBlue)
|
||||||
|
:onClick(function()
|
||||||
|
count = count + 1
|
||||||
|
counterLabel:setText("Count: " .. count)
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- Tab 3: Info
|
||||||
|
local infoTab = tabControl:newTab("Info")
|
||||||
|
|
||||||
|
infoTab:addLabel({
|
||||||
|
x = 2,
|
||||||
|
y = 2,
|
||||||
|
text = "TabControl Features:",
|
||||||
|
foreground = colors.orange
|
||||||
|
})
|
||||||
|
|
||||||
|
infoTab:addLabel({
|
||||||
|
x = 2,
|
||||||
|
y = 4,
|
||||||
|
text = "- Horizontal tabs",
|
||||||
|
foreground = colors.gray
|
||||||
|
})
|
||||||
|
|
||||||
|
infoTab:addLabel({
|
||||||
|
x = 2,
|
||||||
|
y = 5,
|
||||||
|
text = "- Easy navigation",
|
||||||
|
foreground = colors.gray
|
||||||
|
})
|
||||||
|
|
||||||
|
infoTab:addLabel({
|
||||||
|
x = 2,
|
||||||
|
y = 6,
|
||||||
|
text = "- Content per tab",
|
||||||
|
foreground = colors.gray
|
||||||
|
})
|
||||||
|
|
||||||
|
basalt.run()
|
||||||
|
```
|
||||||
|
|
||||||
## Properties
|
## Properties
|
||||||
|
|
||||||
|Property|Type|Default|Description|
|
|Property|Type|Default|Description|
|
||||||
|
|||||||
Reference in New Issue
Block a user