diff options
Diffstat (limited to 'scripts/menu_functions.lua')
-rw-r--r-- | scripts/menu_functions.lua | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/scripts/menu_functions.lua b/scripts/menu_functions.lua new file mode 100644 index 0000000..8d302e9 --- /dev/null +++ b/scripts/menu_functions.lua @@ -0,0 +1,91 @@ +GetMenuValue = {} +MenuAction = {} + +GetMenuValue[ MenuC.type.menu ] = function ( menu ) + -- return "(menu)" + return "" +end + +MenuAction[ MenuC.type.menu ] = function ( menu ) + Menu.current = menu + Menu.active = 1 +end + +GetMenuValue[ MenuC.type.list ] = function ( menu ) + local value + if Menu[menu].read then value = Menu[menu].read() end + if not value then value = "undef" end + + -- script_print(menu .. " --> " .. value ) + local i + for i=1,getn(Menu[menu].values) do + if Menu[menu].values[i] == value then return Menu[menu].labels[i] end + end + return "unknown (" .. value .. ")" +end + +MenuAction[ MenuC.type.list ] = function ( menu ) + local value + if Menu[menu].read then + value = Menu[menu].read() + else + value = "undef" + end + + local nValues = getn(Menu[menu].values) + local i + for i=1,nValues do + if Menu[menu].values[i] == value then + if i < nValues then + value = Menu[menu].values[i + 1] + else + value = Menu[menu].values[1] + end + return Menu[menu].store( value ) + end + end + return Menu[menu].store( Menu[menu].values[1] ) +end + +MenuAction[ MenuC.type.action ] = function ( menu ) + Menu[menu].action() +end + +GetMenuValue[ MenuC.type.slider ] = function ( menu ) + return Menu[menu].read() +end + +MenuAction[ MenuC.type.slider ] = function( menu ) + if Menu[menu].action then + Menu[menu].action() + end +end + +MenuAction[ MenuC.type.key ] = function ( menu ) + local player = Menu[menu].player + local event = Menu[menu].event + configure_player = player + configure_event = event + c_configureKeyboard() +end + +GetMenuValue[ MenuC.type.key ] = function ( menu ) + local player = Menu[menu].player + local event = Menu[menu].event + return c_getKeyName( settings.keys[ player ][ event ] ) +end + +GetMenuValue[ MenuC.type.action ] = function ( menu ) + -- return "(action)" + return "" +end + +GetMenuValueWidth = function ( menu ) + return strlen( GetMenuValue[ Menu[menu].type ]( menu ) ) +end + +GetMenuValueString = function ( menu ) + -- write(format("GetMenuValueString: '%s'\n", menu)); + return GetMenuValue[ Menu[menu].type ]( menu ) +end + |