Skip to content

Commit

Permalink
Bugfix: set the Disabled Images on a button when setEnabled(false) ca…
Browse files Browse the repository at this point in the history
…lled.
  • Loading branch information
Jay Vaughan committed Jul 17, 2012
1 parent 8af72fc commit 98ab137
Show file tree
Hide file tree
Showing 5 changed files with 90 additions and 5 deletions.
27 changes: 23 additions & 4 deletions gui/abutton.lua
Original file line number Diff line number Diff line change
Expand Up @@ -49,22 +49,36 @@ end

function _M.AButton:_inputEnters(event)
self._over = true
self:_setCurrImages(self._BUTTON_INDEX, self.HOVER_IMAGES)

if (true == self._enabled) then
self:_setCurrImages(self._BUTTON_INDEX, self.HOVER_IMAGES)
else
self:_setCurrImages(self._BUTTON_INDEX, self.DISABLED_IMAGES)
end

return false
end

function _M.AButton:_inputLeaves(event)
self._over = false
self:_setCurrImages(self._BUTTON_INDEX, self.NORMAL_IMAGES)

if (true == self._enabled) then
self:_setCurrImages(self._BUTTON_INDEX, self.NORMAL_IMAGES)
else
self:_setCurrImages(self._BUTTON_INDEX, self.DISABLED_IMAGES)
end

return false
end

function _M.AButton:_inputUp(event)
self._pushed = false
if (false == self._over) then
self:_setCurrImages(self._BUTTON_INDEX, self.NORMAL_IMAGES)
if (true == self._enabled) then
self:_setCurrImages(self._BUTTON_INDEX, self.NORMAL_IMAGES)
else
self:_setCurrImages(self._BUTTON_INDEX, self.DISABLED_IMAGES)
end
else
self:_setCurrImages(self._BUTTON_INDEX, self.HOVER_IMAGES)
end
Expand All @@ -74,7 +88,12 @@ end

function _M.AButton:_inputDown(event)
self._pushed = true
self:_setCurrImages(self._BUTTON_INDEX, self.PUSHED_IMAGES)

if (false == self._enabled) then
self:_setCurrImages(self._BUTTON_INDEX, self.DISABLED_IMAGES)
else
self:_setCurrImages(self._BUTTON_INDEX, self.PUSHED_IMAGES)
end

return false
end
Expand Down
6 changes: 6 additions & 0 deletions gui/awindow.lua
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,12 @@ end
function _M.AWindow:setEnabled(flag)
self._enabled = flag

if (true == flag) then
self:_setCurrImages(self._BUTTON_INDEX, self.NORMAL_IMAGES)
else
self:_setCurrImages(self._BUTTON_INDEX, self.DISABLED_IMAGES)
end

for i, v in ipairs(self._children) do
v:setEnabled(flag)
end
Expand Down
4 changes: 4 additions & 0 deletions multilayoutdemo.lua
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,7 @@ function registerScreenWidgets(widgets)
----print("reg button widget : ", i .. " = ", v)
local_button = v.window
local_button:registerEventHandler(local_button.EVENT_BUTTON_CLICK, nil, button_handler)
local_button:registerEventHandler(local_button.EVENT_DISABLE, nil, button_disable_handler)
end
if string.find(i, "_window") then
----print("reg window widget : ", i .. " = ", v)
Expand Down Expand Up @@ -446,6 +447,7 @@ function unregisterScreenWidgets(widgets)
----print("unreg widget : ", i .. " = ", v)
local_button = v.window
local_button:unregisterEventHandler(local_button.EVENT_BUTTON_CLICK)
local_button:unregisterEventHandler(local_button.EVENT_DISABLE)
end
if string.find(i, "_window") then
----print("unreg widget : ", i .. " = ", v)
Expand Down Expand Up @@ -519,6 +521,7 @@ mainThread:run(
layout_exit_handler = nil
window_handler = nil
button_handler = nil
button_disable_handler = nil
touch_handler = nil
slider_handler = nil
radio_button_handler = nil
Expand Down Expand Up @@ -548,6 +551,7 @@ mainThread:run(
layout_exit_handler = nil or t.layout_exit_handler
window_handler = nil or t.window_handler
button_handler = nil or t.button_handler
button_disable_handler = nil or t.button_disable_handler
touch_handler = nil or t.touch_handler
slider_handler = nil or t.slider_handler
radio_button_handler = nil or t.radio_button_handler
Expand Down
58 changes: 57 additions & 1 deletion resources/layouts/layout_1.lua
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,79 @@ local data = {
dim = {50, 5},
text = "This is layout 1"
},
button_navigate = {
button_disable= {
widget = "button",
pos = {15, 20},
dim = {80, 10},
text = "disable button 1",
},
button_navigate = {
widget = "button",
pos = {5, 10},
dim = {30, 10},
text = "go to layout 2",
},
button_navigate = {
widget = "button",
pos = {5, 10},
dim = {30, 10},
text = "go to layout 2",
images = {
normal = {
{
fileName = "cathead.png",
color = {1, 1, 1, 1},
},
},
hover = {
{
fileName = "cathead.png",
color = {1, 0, 0, 1},
},
},
pushed = {
{
fileName = "cathead.png",
color = {0, 1, 0, 1},
},
},
disabled = {
{
fileName = "button_hidden.png",
color = {0, 0, 1, 1},
},
},
},
},




}


-- set up the handlers for this layout
layout_handlers["layout1_"] = layout_handlers["layout1_"] or {
button_disable_handler = function(event, data)
print("Button disabled.")
end,

button_handler = function(event, data)
print ("A button was pressed, and its name is: " .. event.widget._name)

if event.widget._name == "layout1_button_navigate" then
change_to_layout("layout2_")
end

if event.widget._name == "layout1_button_disable" then
if widgets.layout1_button_navigate.window:getEnabled() then
widgets.layout1_button_navigate.window:setEnabled(false)
else
widgets.layout1_button_navigate.window:setEnabled(true)
end
end


end

}
Expand Down
Binary file added resources/media/button_hidden.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 98ab137

Please sign in to comment.