@@ -30,7 +30,7 @@ function mouseup(e) {
30
30
return false ;
31
31
}
32
32
33
- function choose_type ( ) {
33
+ function do_menu ( callback , populate ) {
34
34
var menu = document . createElement ( "div" ) ;
35
35
menu . className = "ontopmenu" ;
36
36
var list = document . createElement ( "div" ) ;
@@ -44,7 +44,48 @@ function choose_type() {
44
44
}
45
45
}
46
46
47
- set_callback ( function ( name , i , sel ) {
47
+ var o = { list : list , hide_menu : hide_menu } ;
48
+
49
+ set_callback ( callback . bind ( o ) ) ;
50
+ populate ( ) ;
51
+
52
+ document . body . appendChild ( menu ) ;
53
+ menu . tabIndex = 100 ;
54
+ menu . focus ( ) ;
55
+ menu . onblur = function ( ) {
56
+ /* setTimeout needed so clicking the radio buttons works
57
+ * as the click will cause a loss of focus */
58
+ setTimeout ( hide_menu , 100 ) ;
59
+ }
60
+ }
61
+
62
+ function choose_game ( ) {
63
+ do_menu ( function ( name , i ) {
64
+ var hide_menu = this . hide_menu ;
65
+ name = Pointer_stringify ( name ) ;
66
+ var div = document . createElement ( "div" ) ;
67
+ var radio = document . createElement ( "input" ) ;
68
+ radio . type = "radio" ;
69
+ radio . name = 'game' ;
70
+ var label = document . createElement ( "label" ) ;
71
+ var img = document . createElement ( "img" ) ;
72
+ img . src = "web-icons/" + name + ".png" ;
73
+ label . appendChild ( img ) ;
74
+ label . appendChild ( radio ) ;
75
+ label . appendChild ( document . createTextNode ( name ) ) ;
76
+ div . appendChild ( label ) ;
77
+ this . list . appendChild ( div ) ;
78
+ label . onclick = function ( ) {
79
+ hide_menu ( ) ;
80
+ location . hash = name ;
81
+ _change_game ( i ) ;
82
+ } ;
83
+ } , _populate_game_menu ) ;
84
+ }
85
+
86
+ function choose_type ( ) {
87
+ do_menu ( function ( name , i , sel ) {
88
+ var hide_menu = this . hide_menu ;
48
89
name = Pointer_stringify ( name ) ;
49
90
var div = document . createElement ( "div" ) ;
50
91
var radio = document . createElement ( "input" ) ;
@@ -55,29 +96,23 @@ function choose_type() {
55
96
label . appendChild ( radio ) ;
56
97
label . appendChild ( document . createTextNode ( name ) ) ;
57
98
div . appendChild ( label ) ;
58
- list . appendChild ( div ) ;
99
+ this . list . appendChild ( div ) ;
59
100
label . onclick = function ( ) {
60
101
hide_menu ( ) ;
61
102
_set_preset ( i ) ;
62
- }
63
- } ) ;
64
- _populate_type_menu ( ) ;
65
-
66
- document . body . appendChild ( menu ) ;
67
- menu . tabIndex = 100 ;
68
- menu . focus ( ) ;
69
- menu . onblur = function ( ) {
70
- /* setTimeout needed so clicking the radio buttons works
71
- * as the click will cause a loss of focus */
72
- setTimeout ( hide_menu , 100 ) ;
73
- }
103
+ } ;
104
+ } , _populate_type_menu ) ;
74
105
}
75
106
76
107
function setup_menu ( ) {
77
108
var menu = document . getElementById ( "menu" ) ;
109
+ var gamemenu = document . createElement ( "button" ) ;
78
110
var typemenu = document . createElement ( "button" ) ;
111
+ gamemenu . appendChild ( document . createTextNode ( "Game" ) ) ;
79
112
typemenu . appendChild ( document . createTextNode ( "Type" ) ) ;
113
+ menu . appendChild ( gamemenu ) ;
80
114
menu . appendChild ( typemenu ) ;
115
+ gamemenu . onclick = choose_game ;
81
116
typemenu . onclick = choose_type ;
82
117
}
83
118
0 commit comments