diff --git a/lib/wibox/layout/ratio.lua b/lib/wibox/layout/ratio.lua index 92983af31..a3a30f822 100644 --- a/lib/wibox/layout/ratio.lua +++ b/lib/wibox/layout/ratio.lua @@ -176,6 +176,9 @@ end --- Increase the ratio of "widget" -- If the increment produce an invalid ratio (not between 0 and 1), the method -- do nothing. +-- +--@DOC_wibox_layout_ratio_inc_ratio_EXAMPLE@ +-- -- @tparam number index The widget index to change -- @tparam number increment An floating point value between -1 and 1 where the -- end result is within 0 and 1 @@ -249,7 +252,10 @@ function ratio:set_widget_ratio(widget, percent) end --- Update all widgets to match a set of a ratio. --- The sum of before, itself and after must be 1 or nothing will be done +-- The sum of before, itself and after must be 1 or nothing will be done. +-- +--@DOC_wibox_layout_ratio_ajust_ratio_EXAMPLE@ +-- -- @tparam number index The index of the widget to change -- @tparam number before The sum of the ratio before the widget -- @tparam number itself The ratio for "widget" diff --git a/tests/examples/wibox/layout/ratio/ajust_ratio.lua b/tests/examples/wibox/layout/ratio/ajust_ratio.lua new file mode 100644 index 000000000..4e18ef8b5 --- /dev/null +++ b/tests/examples/wibox/layout/ratio/ajust_ratio.lua @@ -0,0 +1,48 @@ +local generic_widget = ... --DOC_HIDE +local wibox = require("wibox") --DOC_HIDE +local unpack = unpack or table.unpack -- luacheck: globals unpack (compatibility with Lua 5.1) --DOC_HIDE + +local first, second, third = generic_widget("first"), --DOC_HIDE + generic_widget("second"), generic_widget("third") --DOC_HIDE + +local ret = wibox.layout.fixed.vertical() + +local function create() --DOC_HIDE + +local w = wibox.widget { + first, + second, + third, + force_width = 200, --DOC_HIDE + layout = wibox.layout.ratio.horizontal +} + + return w --DOC_HIDE +end --DOC_HIDE + +local values = { + {0.25, 0.50, 0.25}, + {0.33, 0.55, 0.12}, + {0.123, 0.456, 0.789}, + {0.123, 0, 0.789}, + {0, 1, 0}, +} + +for i=1, 5 do + ret:add(wibox.widget { --DOC_HIDE + markup = "Set " .. i ..":", --DOC_HIDE + widget = wibox.widget.textbox --DOC_HIDE + }) --DOC_HIDE + + local w = create() --DOC_HIDE + + for _=1, i do --DOC_HIDE + w:ajust_ratio(2, unpack(values[i])) + end --DOC_HIDE + + ret:add(w) --DOC_HIDE +end + +return ret, 200, 200 --DOC_HIDE + +--DOC_HIDE vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80 diff --git a/tests/examples/wibox/layout/ratio/inc_ratio.lua b/tests/examples/wibox/layout/ratio/inc_ratio.lua new file mode 100644 index 000000000..f430eab4f --- /dev/null +++ b/tests/examples/wibox/layout/ratio/inc_ratio.lua @@ -0,0 +1,39 @@ +local generic_widget = ... --DOC_HIDE +local wibox = require("wibox") --DOC_HIDE + +local first, second, third = generic_widget("first"), --DOC_HIDE + generic_widget("second"), generic_widget("third") --DOC_HIDE + +local ret = wibox.layout.fixed.vertical() + +local function create() --DOC_HIDE + +local w = wibox.widget { + first, + second, + third, + force_width = 200, --DOC_HIDE + layout = wibox.layout.ratio.horizontal +} + + return w --DOC_HIDE +end --DOC_HIDE + +for i=1, 5 do + ret:add(wibox.widget { --DOC_HIDE + markup = "Iteration " .. i ..":", --DOC_HIDE + widget = wibox.widget.textbox --DOC_HIDE + }) --DOC_HIDE + + local w = create() --DOC_HIDE + + for _=1, i do --DOC_HIDE + w:inc_ratio(2, 0.1) + end --DOC_HIDE + + ret:add(w) --DOC_HIDE +end + +return ret, 200, 200 --DOC_HIDE + +--DOC_HIDE vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80 diff --git a/tests/examples/wibox/layout/ratio/strategy.lua b/tests/examples/wibox/layout/ratio/strategy.lua new file mode 100644 index 000000000..3079b585e --- /dev/null +++ b/tests/examples/wibox/layout/ratio/strategy.lua @@ -0,0 +1,36 @@ +local generic_widget = ... --DOC_HIDE_ALL +local wibox = require("wibox") + +local empty_width = wibox.widget { + visible = false +} +local first, third, fourth = generic_widget("first"), generic_widget("third"), generic_widget("fourth") + +local function add(tab, name) + table.insert(tab, { + markup = ""..name..":", + widget = wibox.widget.textbox + }) + table.insert(tab, { + first, + empty_width, + third, + fourth, + inner_fill_strategy = name, + force_width = 200, + layout = wibox.layout.ratio.horizontal + }) +end + +local ret = {layout = wibox.layout.fixed.vertical} +add(ret, "default") +add(ret, "center") +add(ret, "justify") +add(ret, "inner_spacing") +add(ret, "spacing") +add(ret, "left") +add(ret, "right") + +return wibox.widget(ret), 200, 250 + +--DOC_HIDE vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80