Skip to content

PixelUI.Slider ​

Extends: PixelUI.Widget

A slider widget for selecting numeric values within a range. Supports single value or range selection mode.

Properties ​

NameTypeDescription
minnumberMinimum value
maxnumberMaximum value
valuenumberCurrent value (single mode)
rangebooleanWhether in range selection mode
lowerValuenumber?Lower bound value (range mode)
upperValuenumber?Upper bound value (range mode)
stepnumberStep increment for value changes
showValuebooleanWhether to display the current value
onChangefun(self:PixelUI.Slider,
formatValuefun(self:PixelUI.Slider,

Methods ​

new ​

lua
new()

_clampValue ​

lua
_clampValue()

_applyStep ​

lua
_applyStep()

_getInnerMetrics ​

lua
_getInnerMetrics()

_valueToPosition ​

lua
_valueToPosition()

_positionToValue ​

lua
_positionToValue()

_notifyChange ​

lua
_notifyChange()

setOnChange ​

lua
setOnChange()

_setSingleValue ​

lua
_setSingleValue()

setValue ​

lua
setValue()

getValue ​

lua
getValue()

_setLowerValue ​

lua
_setLowerValue()

_setUpperValue ​

lua
_setUpperValue()

setRangeValues ​

lua
setRangeValues()

getRangeValues ​

lua
getRangeValues()

setRangeLimits ​

lua
setRangeLimits()

setStep ​

lua
setStep()

setShowValue ​

lua
setShowValue()

setColors ​

lua
setColors()

_formatNumber ​

lua
_formatNumber()

_formatDisplayValue ​

lua
_formatDisplayValue()

_getStepForNudge ​

lua
_getStepForNudge()

_positionFromPoint ​

lua
_positionFromPoint()

_beginInteraction ​

lua
_beginInteraction()

_updateInteraction ​

lua
_updateInteraction()

_endInteraction ​

lua
_endInteraction()

_switchFocusedHandle ​

lua
_switchFocusedHandle()

_nudgeValue ​

lua
_nudgeValue()

onFocusChanged ​

lua
onFocusChanged()

draw ​

lua
draw()

handleEvent ​

lua
handleEvent()

Examples ​

Basic
lua
local pixelui = require("pixelui")
local app = pixelui.app()

-- Simple value slider
local slider = app:slider({
    x = 2, y = 2,
    width = 25, height = 1,
    min = 0,
    max = 100,
    value = 50,
    showValue = true,
    onChange = function(self, value)
        -- Handle value change
    end
})
app.root:addChild(slider)

app:run()
Advanced
lua
local pixelui = require("pixelui")
local app = pixelui.app()

-- Range slider with custom formatting
local rangeLabel = app:label({
    x = 2, y = 5,
    text = "Range: $0 - $100",
    fg = colors.white
})

local slider = app:slider({
    x = 2, y = 2,
    width = 30, height = 1,
    min = 0,
    max = 1000,
    range = true,
    lowerValue = 200,
    upperValue = 800,
    step = 50,
    showValue = true,
    formatValue = function(self, lower, upper)
        return string.format("$%d - $%d", lower, upper)
    end,
    onChange = function(self, lower, upper)
        rangeLabel:setText(string.format("Range: $%d - $%d", lower, upper))
    end
})

app.root:addChild(slider)
app.root:addChild(rangeLabel)

app:run()

Released under the MIT License.