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(); } }