mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-21 06:40:37 +01:00
NOTE: I messed up a merge so this si a bad commit. Change-Id: I80c9bc3f9dd8b1d24069eb0cc87ce7fe15368071
34 lines
978 B
C++
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();
|
|
}
|