summaryrefslogtreecommitdiff
path: root/library/lua/gui/dialogs.lua
diff options
context:
space:
mode:
Diffstat (limited to 'library/lua/gui/dialogs.lua')
-rw-r--r--library/lua/gui/dialogs.lua86
1 files changed, 43 insertions, 43 deletions
diff --git a/library/lua/gui/dialogs.lua b/library/lua/gui/dialogs.lua
index dc435811..eb883465 100644
--- a/library/lua/gui/dialogs.lua
+++ b/library/lua/gui/dialogs.lua
@@ -180,10 +180,10 @@ function ListBox:init(info)
info = info or {}
self:init_fields{
selection = info.selection or 0,
- choices = info.choices or {},
+ choices = info.choices or {},
select_pen = info.select_pen,
on_input = info.on_input,
- page_top = 0
+ page_top = 0
}
MessageBox.init(self, info)
self.on_accept = nil
@@ -197,62 +197,62 @@ end
function ListBox:onRenderBody(dc)
MessageBox.onRenderBody(self, dc)
-
+
dc:newline(1)
-
- if self.selection>dc.height-3 then
- self.page_top=self.selection-(dc.height-3)
- elseif self.selection<self.page_top and self.selection >0 then
- self.page_top=self.selection-1
- end
- for i,entry in ipairs(self.choices) do
- if type(entry)=="table" then
- entry=entry[1]
- end
- if i>self.page_top then
- if i == self.selection then
- dc:pen(self.select_pen or COLOR_LIGHTCYAN)
- else
- dc:pen(self.text_pen or COLOR_GREY)
- end
- dc:string(entry)
- dc:newline(1)
- end
- end
+
+ if self.selection>dc.height-3 then
+ self.page_top=self.selection-(dc.height-3)
+ elseif self.selection<self.page_top and self.selection >0 then
+ self.page_top=self.selection-1
+ end
+ for i,entry in ipairs(self.choices) do
+ if type(entry)=="table" then
+ entry=entry[1]
+ end
+ if i>self.page_top then
+ if i == self.selection then
+ dc:pen(self.select_pen or COLOR_LIGHTCYAN)
+ else
+ dc:pen(self.text_pen or COLOR_GREY)
+ end
+ dc:string(entry)
+ dc:newline(1)
+ end
+ end
end
function ListBox:moveCursor(delta)
- local newsel=self.selection+delta
- if #self.choices ~=0 then
- if newsel<1 or newsel>#self.choices then
- newsel=newsel % #self.choices
- end
- end
- self.selection=newsel
+ local newsel=self.selection+delta
+ if #self.choices ~=0 then
+ if newsel<1 or newsel>#self.choices then
+ newsel=newsel % #self.choices
+ end
+ end
+ self.selection=newsel
end
function ListBox:onInput(keys)
if keys.SELECT then
self:dismiss()
- local choice=self.choices[self.selection]
+ local choice=self.choices[self.selection]
if self.on_input then
self.on_input(self.selection,choice)
end
-
- if choice and choice[2] then
- choice[2](choice,self.selection) -- maybe reverse the arguments?
- end
+
+ if choice and choice[2] then
+ choice[2](choice,self.selection) -- maybe reverse the arguments?
+ end
elseif keys.LEAVESCREEN then
self:dismiss()
if self.on_cancel then
self.on_cancel()
end
- elseif keys.CURSOR_UP then
- self:moveCursor(-1)
- elseif keys.CURSOR_DOWN then
- self:moveCursor(1)
- elseif keys.CURSOR_UP_FAST then
- self:moveCursor(-10)
- elseif keys.CURSOR_DOWN_FAST then
- self:moveCursor(10)
+ elseif keys.CURSOR_UP then
+ self:moveCursor(-1)
+ elseif keys.CURSOR_DOWN then
+ self:moveCursor(1)
+ elseif keys.CURSOR_UP_FAST then
+ self:moveCursor(-10)
+ elseif keys.CURSOR_DOWN_FAST then
+ self:moveCursor(10)
end
end