home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / powergui / genhdrs / keybd / uckeybd.hpp < prev   
Encoding:
C/C++ Source or Header  |  1996-10-29  |  1.7 KB  |  47 lines

  1. #ifndef _UCKEYBD_
  2. #define _UCKEYBD_
  3. //*********************************************************
  4. // Reusable Handlers - Keyboard Handler
  5. //
  6. // Copyright (C) 1994, Law, Leong, Love, Olson, Tsuji.
  7. // Copyright (c) 1997 John Wiley & Sons, Inc. 
  8. // All Rights Reserved.
  9. //*********************************************************
  10. #include <ikeyhdr.hpp>
  11. #include <istring.hpp>
  12. #include <iwindow.hpp>
  13.  
  14. // This keyboard handler example converts lowercase characters
  15. // to uppercase as a user types.
  16. class UppercaseKeyboardHandler : public IKeyboardHandler {
  17. protected:
  18. virtual Boolean
  19.   characterKeyPress ( IKeyboardEvent& event )
  20.   {
  21.     Boolean dontPassOn = false;
  22.     IString strChar = event.mixedCharacter();
  23.     if ( strChar.isSBCS()  &&  strChar.isLowerCase() )
  24.     {                // Single-byte 'a'-'z' is pressed.
  25.        // Convert the character to uppercase by generating
  26.        // another keyboard event with its uppercase character.
  27. #ifdef IC_PM
  28.        IEventParameter2 param2( strChar.upperCase()[0],
  29.                                 event.parameter2().number2() );
  30.                      // Only change the character to uppercase.
  31.        event.window()->sendEvent( IWindow::character,
  32.                                   event.parameter1(),
  33.                                   param2 );
  34. #else
  35.        IEventParameter1 param1( strChar.upperCase()[0] );
  36.                      // Only change the character to uppercase.
  37.        event.window()->sendEvent( IWindow::character,
  38.                                   param1,
  39.                                   event.parameter2() );
  40. #endif
  41.        dontPassOn = true;    // Don't pass on the original event.
  42.     }
  43.     return dontPassOn;
  44.   }
  45. }; // UppercaseKeyboardHandler
  46. #endif // _UCKEYBD_
  47.