Files
Upsilon/ion/src/simulator/keyboard/fltkkbd.cpp
Felix Raimundo 4e9c33de2d Put the keys on the simulator.
NOTE: I messed up a merge so this si a bad commit.
Change-Id: I80c9bc3f9dd8b1d24069eb0cc87ce7fe15368071
2016-03-22 18:39:59 +01:00

34 lines
978 B
C++

#include <assert.h>
#include "fltkkbd.h"
#define KEYBOARD_ROWS 7
#define KEYBOARD_COLUMNS 5
static const char* kCharForKey[KEYBOARD_ROWS * KEYBOARD_COLUMNS] = {
"A", "B", "C", "D", "E",
"F", "G", "H", "I", "J",
"K", "L", "M", "N", "O",
"7", "8", "9", "(", ")",
"4", "5", "6", "*", "/",
"1", "2", "3", "+", "-",
"0", ".", "x", "7", "X"
};
FltkKbd::FltkKbd(int x, int y, int w, int h) : Fl_Group(x, y, w, h) {
assert(KEYBOARD_ROWS*KEYBOARD_COLUMNS == ION_NUMBER_OF_KEYS);
int key_width = w/KEYBOARD_COLUMNS;
int key_height = h/KEYBOARD_ROWS;
for (int k=0; k<ION_NUMBER_OF_KEYS; k++) {
m_buttons[k] = new Fl_Button(x + (k%KEYBOARD_COLUMNS)*key_width,
y + (k/KEYBOARD_COLUMNS)*key_height,
key_width,
key_height,
kCharForKey[k]);
}
end();
}
bool FltkKbd::key_down(ion_key_t key) {
return m_buttons[key]->value();
}