ebmDevMag.com home
ebm Developer's Magazine
links

developer's mag
main page

article
part 1
part 2
part 3
part 4
part 5
part 6
part 7
part 8


6 - Displaying The Keyboards

Our sample app also includes a special response to the K_KEYBOARD value, to provide an onscreen keyboard:
  if ( K_KEYBOARD==data || ( hostIO_is_simulator() && 'k'==data ) )
  {
    static bool inUse=false;
    if ( ! inUse )
    {
      inUse=true; // lock & prevent second call
      CLatin1Keyboard *keyboard=new CLatin1Keyboard(99,0);
      keyboard->SetCurScreen(0); // choose keyboard
      GUI_EventLoop(keyboard); // display it
      inUse=false; // unlock 
    }
  }
The first line checks for the keyboard code. As a convenient shortcut in debugging (and because I couldn't find a way to generate the K_KEYBOARD key on the simulator), the code also allows the 'k' character to call it up (using hostIO_is_simulator() to guarantee this shortcut only works on the emulator, and won't interfere with code running on a real ebm).

Once we've decided that it's Keyboard Time, we then prepare to display. The inUse static variable is needed because of a bug my code encountered: when I displayed the keyboard with the upward stroke, doing so a second time crashed the program. While unlikely in general use, the extra code makes sure this can't happen, since the inUse variable acts as an access lock to prevent multiple simultaneous calls of the keyboard.

Previous Section
Next Section

Copyright © 2001-2006 ebmDevMag.com - Legal Notice