1GetMenuValue = {}
2MenuAction = {}
3
4GetMenuValue[ MenuC.type.menu ] = function ( menu )
5   -- return "(menu)"
6   return ""
7end
8
9MenuAction[ MenuC.type.menu ] = function ( menu )
10   Menu.current = menu
11   Menu.active = 1
12end
13
14GetMenuValue[ MenuC.type.list ] = function ( menu )
15   local value
16   if Menu[menu].read then value = Menu[menu].read() end
17   if not value then value = "undef" end
18
19   -- script_print(menu .. " --> " .. value )
20   local i
21   for i=1,getn(Menu[menu].values) do
22      if Menu[menu].values[i] == value then return Menu[menu].labels[i] end
23   end
24   return "unknown (" .. value .. ")"
25end
26
27MenuAction[ MenuC.type.list ] = function ( menu )
28   local value
29   if Menu[menu].read then
30      value = Menu[menu].read()
31   else
32      value = "undef"
33   end
34
35   local nValues = getn(Menu[menu].values)
36   local i
37   for i=1,nValues do
38      if Menu[menu].values[i] == value then
39	 if i < nValues then
40	    value = Menu[menu].values[i + 1]
41	 else
42	    value = Menu[menu].values[1]
43	 end
44	 return Menu[menu].store( value )
45      end
46   end
47   return Menu[menu].store( Menu[menu].values[1] )
48end
49
50MenuAction[ MenuC.type.action ] = function ( menu )
51   Menu[menu].action()
52end
53
54GetMenuValue[ MenuC.type.slider ] = function ( menu )
55   return Menu[menu].read()
56end
57
58MenuAction[ MenuC.type.slider ] = function( menu )
59   if Menu[menu].action then
60      Menu[menu].action()
61   end
62end
63
64MenuAction[ MenuC.type.key ] = function ( menu )
65   local player = Menu[menu].player
66   local event = Menu[menu].event
67   configure_player = player
68   configure_event = event
69   c_configureKeyboard()
70end
71
72GetMenuValue[ MenuC.type.key ] = function ( menu )
73   local player = Menu[menu].player
74   local event = Menu[menu].event
75   return c_getKeyName( settings.keys[ player ][ event ] )
76end
77
78GetMenuValue[ MenuC.type.action ] = function ( menu )
79   -- return "(action)"
80   return ""
81end
82
83GetMenuValueWidth = function ( menu )
84   return strlen( GetMenuValue[ Menu[menu].type ]( menu ) )
85end
86
87GetMenuValueString = function ( menu )
88   -- write(format("GetMenuValueString: '%s'\n", menu));
89   return GetMenuValue[ Menu[menu].type ]( menu )
90end
91
92