widget: Add proper accessors for the 'opacity' property

To avoid collision with the property system and comply with the
API guidelines.
This commit is contained in:
Emmanuel Lepage Vallee 2016-05-26 13:57:34 -04:00
parent eb79b3262d
commit 542070205f
2 changed files with 11 additions and 4 deletions

View File

@ -272,7 +272,7 @@ function hierarchy:draw(context, cr)
-- Draw if needed -- Draw if needed
if not empty_clip(cr) then if not empty_clip(cr) then
local opacity = widget.opacity local opacity = widget:get_opacity()
local function call(func, extra_arg1, extra_arg2) local function call(func, extra_arg1, extra_arg2)
if not func then return end if not func then return end
if not extra_arg2 then if not extra_arg2 then

View File

@ -50,12 +50,19 @@ end
-- transparent while 1 is fully opaque. -- transparent while 1 is fully opaque.
-- @function set_opacity -- @function set_opacity
function base.widget:set_opacity(o) function base.widget:set_opacity(o)
if o ~= self.opacity then if o ~= self._private.opacity then
self.opacity = o self._private.opacity = o
self:emit_signal("widget::redraw") self:emit_signal("widget::redraw")
end end
end end
--- Get the widget opacity.
-- @treturn number The opacity (between 0 and 1)
-- @function get_opacity
function base.widget:get_opacity()
return self._private.opacity
end
--- Set the widget's width --- Set the widget's width
-- @tparam number|nil s The width that the widget has. `nil` means to apply the -- @tparam number|nil s The width that the widget has. `nil` means to apply the
-- default mechanism of calling the `:fit` method. A number overrides the result -- default mechanism of calling the `:fit` method. A number overrides the result
@ -535,7 +542,7 @@ function base.make_widget(proxy, widget_name, args)
ret.visible = true ret.visible = true
-- Widget is fully opaque -- Widget is fully opaque
ret.opacity = 1 ret._private.opacity = 1
-- Differentiate tables from widgets -- Differentiate tables from widgets
rawset(ret, "is_widget", true) rawset(ret, "is_widget", true)