00001 00002 // 00003 // Copyright (C) 2006 James M. Lawrence. All rights reserved. 00004 // 00005 // software: esve-1.0.3 00006 // file: esve/ui/base/Keyboard.hxx 00007 // 00008 // Redistribution and use in source and binary forms, with or without 00009 // modification, are permitted provided that the following conditions 00010 // are met: 00011 // 00012 // 1. Redistributions of source code must retain the above copyright 00013 // notice, this list of conditions and the following disclaimer. 00014 // 00015 // 2. The origin of this software must not be misrepresented; you must 00016 // not claim that you wrote the original software. If you use this 00017 // software in a product, an acknowledgment in the product 00018 // documentation would be appreciated but is not required. 00019 // 00020 // 3. Altered source versions must be plainly marked as such, and must 00021 // not be misrepresented as being the original software. 00022 // 00023 // 4. The name of the author may not be used to endorse or promote 00024 // products derived from this software without specific prior written 00025 // permission. 00026 // 00027 // THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY, 00028 // AND WITH NO CLAIM AS TO ITS SUITABILITY FOR ANY PURPOSE. IN NO EVENT 00029 // SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM WHATSOEVER MADE IN CONNECTION 00030 // TO THIS SOFTWARE. 00031 // 00033 00034 #ifndef esve_ui_base_Keyboard_hxx 00035 #define esve_ui_base_Keyboard_hxx 00036 00037 namespace esve { namespace ui { namespace base { 00038 00043 00044 class Keyboard 00045 { 00046 public: 00049 enum Key 00050 { 00051 // ... 00052 // ascii 0-127 00053 // ... 00054 00056 NUM_ASCII_KEYS = 128, 00057 00059 ENTER = NUM_ASCII_KEYS, 00061 ESCAPE, 00063 META_LEFT, 00065 META_RIGHT, 00067 ALT_LEFT, 00069 ALT_RIGHT, 00071 CTRL_LEFT, 00073 CTRL_RIGHT, 00075 SHIFT_LEFT, 00077 SHIFT_RIGHT, 00079 BACKSPACE, 00081 TAB, 00083 RIGHT_ARROW, 00085 LEFT_ARROW, 00087 UP_ARROW, 00089 DOWN_ARROW // determines NUM_KEYS 00090 } ; 00091 00092 static const unsigned int NUM_KEYS = DOWN_ARROW + 1 ; 00093 00095 virtual bool pushed( Key a ) const = 0 ; 00096 00097 virtual ~Keyboard() = 0 ; 00098 00099 protected: 00100 Keyboard() ; 00101 00102 private: 00103 Keyboard( const Keyboard & ) ; 00104 Keyboard & operator=( const Keyboard & ) ; 00105 } ; 00106 00107 }}} // namespace esve::ui::base 00108 00109 #endif 00110
1.3.4