diff --git a/ion/src/simulator/init.cpp b/ion/src/simulator/init.cpp index 612f007bf..a449dae66 100644 --- a/ion/src/simulator/init.cpp +++ b/ion/src/simulator/init.cpp @@ -22,14 +22,19 @@ static FltkKbd * sKeyboard; void init_platform() { Fl::visual(FL_RGB); + int margin = 10; + int screen_width = FRAMEBUFFER_WIDTH; + int screen_height = FRAMEBUFFER_HEIGHT; + // keyboard_width == screen_width + int keyboard_height = screen_width; - Fl_Window * window = new Fl_Window(FRAMEBUFFER_WIDTH+2*margin, FRAMEBUFFER_HEIGHT+2*margin+120+2*margin); + Fl_Window * window = new Fl_Window(screen_width+2*margin, margin+screen_height+margin+keyboard_height+margin); - sDisplay = new FltkLCD(margin, margin, FRAMEBUFFER_WIDTH, FRAMEBUFFER_HEIGHT); + sDisplay = new FltkLCD(margin, margin, screen_width, screen_height); assert(FRAMEBUFFER_BITS_PER_PIXEL == 8); - sKeyboard = new FltkKbd(margin,FRAMEBUFFER_HEIGHT+3*margin,FRAMEBUFFER_WIDTH,120); + sKeyboard = new FltkKbd(margin, margin+screen_height+margin, screen_width, keyboard_height); window->end(); window->show(NULL, NULL); diff --git a/ion/src/simulator/keyboard/fltkkbd.cpp b/ion/src/simulator/keyboard/fltkkbd.cpp index 16a82857b..a9cf4d81e 100644 --- a/ion/src/simulator/keyboard/fltkkbd.cpp +++ b/ion/src/simulator/keyboard/fltkkbd.cpp @@ -1,8 +1,15 @@ +#include #include "fltkkbd.h" +#define KEYBOARD_ROWS 7 +#define KEYBOARD_COLUMNS 5 + 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