diff --git a/src/index.html b/src/index.html
index 99df5c3..87210eb 100644
--- a/src/index.html
+++ b/src/index.html
@@ -3,15 +3,15 @@
Pokemon Neige
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/src/async.js b/src/js/async.js
similarity index 100%
rename from src/async.js
rename to src/js/async.js
diff --git a/src/automaton.js b/src/js/automaton.js
similarity index 100%
rename from src/automaton.js
rename to src/js/automaton.js
diff --git a/src/buttons.js b/src/js/buttons.js
similarity index 100%
rename from src/buttons.js
rename to src/js/buttons.js
diff --git a/src/dom.js b/src/js/dom.js
similarity index 100%
rename from src/dom.js
rename to src/js/dom.js
diff --git a/src/main.js b/src/js/main.js
similarity index 100%
rename from src/main.js
rename to src/js/main.js
diff --git a/src/messaging.js b/src/js/messaging.js
similarity index 100%
rename from src/messaging.js
rename to src/js/messaging.js
diff --git a/src/screen.js b/src/js/screen.js
similarity index 82%
rename from src/screen.js
rename to src/js/screen.js
index 6fff553..c6d9cb5 100644
--- a/src/screen.js
+++ b/src/js/screen.js
@@ -80,10 +80,18 @@ function Screen(dom) {
var domEntries = [];
var selected = config.selected || 0;
for(var i = 0; i < config.entries.length; i++) {
- domEntries.push(dom.make('li', {
- class: i == selected ? 'selected' : [],
- textContent: config.entries[i].label
- }, []));
+ var classes = i == selected ? 'selected' : [];
+ if(config.entries[i].label != undefined) {
+ domEntry = dom.make('li', {
+ class: classes,
+ textContent: config.entries[i].label
+ }, []);
+ } else if(config.entries[i].picto != undefined) {
+ domEntry = dom.make('li', {
+ class: classes,
+ }, [dom.make('img', config.entries[i].picto, [])]);
+ }
+ domEntries.push(domEntry);
}
var ul = dom.make('ul', {class: ['menu', 'framed'], id: config.name + 'Menu'}, domEntries);
root.appendChild(ul);
diff --git a/src/session.js b/src/js/session.js
similarity index 100%
rename from src/session.js
rename to src/js/session.js
diff --git a/src/ui.js b/src/js/ui.js
similarity index 93%
rename from src/ui.js
rename to src/js/ui.js
index 6b9e4bd..d445210 100644
--- a/src/ui.js
+++ b/src/js/ui.js
@@ -69,17 +69,18 @@ function UI(async, buttons, dom, screen, session) {
function menu(config) {
var cursor = config.selected || 0;
+ var direction = config.direction || 'vertical';
var m = screen.menu(config);
var sync = function() { screen.select(cursor); };
+ var forth = function() {
+ cursor = (config.entries.length + cursor - 1) % config.entries.length;
+ sync();
+ };
+ var back = function() {
+ cursor = (cursor + 1) % config.entries.length;
+ sync();
+ };
var mapping = {
- Up: function() {
- cursor = (config.entries.length + cursor - 1) % config.entries.length;
- sync();
- },
- Down: function() {
- cursor = (cursor + 1) % config.entries.length;
- sync();
- },
A: function() {
var entry = config.entries[cursor];
if(entry.close) {
@@ -89,7 +90,9 @@ function UI(async, buttons, dom, screen, session) {
entry.action(m);
}
}
- };
+ };
+ mapping[direction == 'vertical' ? 'Up' : 'Right'] = forth;
+ mapping[direction == 'vertical' ? 'Down' : 'Left'] = back;
if(config.cancel != undefined) {
mapping['B'] = function() { close(m); config.cancel(); }
}