use API for refresh when closing widgets in message popups

pull/1310/head
Hans-Werner Hilse 10 years ago
parent 1091a8a3b9
commit e8642fbad7

@ -25,6 +25,7 @@ local InfoMessage = InputContainer:new{
face = Font:getFace("infofont", 25), face = Font:getFace("infofont", 25),
text = "", text = "",
timeout = nil, -- in seconds timeout = nil, -- in seconds
closed = false,
} }
function InfoMessage:init() function InfoMessage:init()
@ -78,22 +79,30 @@ function InfoMessage:init()
} }
end end
function InfoMessage:close()
if not self.closed then
self.closed = true
UIManager:close(self, "partial", self[1][1].dimen)
end
end
function InfoMessage:onShow() function InfoMessage:onShow()
-- triggered by the UIManager after we got successfully shown (not yet painted) -- triggered by the UIManager after we got successfully shown (not yet painted)
if self.timeout then if self.timeout then
UIManager:scheduleIn(self.timeout, function() UIManager:close(self) end) UIManager:scheduleIn(self.timeout, function() self:close() end)
end end
self.closed = false
return true return true
end end
function InfoMessage:onAnyKeyPressed() function InfoMessage:onAnyKeyPressed()
-- triggered by our defined key events -- triggered by our defined key events
UIManager:close(self) self:close()
return true return true
end end
function InfoMessage:onTapClose() function InfoMessage:onTapClose()
UIManager:close(self) self:close()
return true return true
end end

@ -20,6 +20,7 @@ local Notification = InputContainer:new{
timeout = nil, timeout = nil,
margin = 5, margin = 5,
padding = 5, padding = 5,
closed = false,
} }
function Notification:init() function Notification:init()
@ -55,17 +56,25 @@ function Notification:init()
} }
end end
function Notification:close()
if not self.closed then
self.closed = true
UIManager:close(self, "partial", self[1][1].dimen)
end
end
function Notification:onShow() function Notification:onShow()
-- triggered by the UIManager after we got successfully shown (not yet painted) -- triggered by the UIManager after we got successfully shown (not yet painted)
if self.timeout then if self.timeout then
UIManager:scheduleIn(self.timeout, function() UIManager:close(self) end) UIManager:scheduleIn(self.timeout, function() self:close() end)
end end
self.closed = false
return true return true
end end
function Notification:onAnyKeyPressed() function Notification:onAnyKeyPressed()
-- triggered by our defined key events -- triggered by our defined key events
UIManager:close(self) self:close()
return true return true
end end

Loading…
Cancel
Save