home *** CD-ROM | disk | FTP | other *** search
/ Hackers Magazine 57 / CdHackersMagazineNr57.iso / Software / Multimedia / k3d-setup-0.7.11.0.exe / include / k3d / k3dsdk / keyboard.h < prev    next >
C/C++ Source or Header  |  2008-01-23  |  4KB  |  120 lines

  1. #ifndef K3DSDK_KEYBOARD_H
  2. #define K3DSDK_KEYBOARD_H
  3.  
  4. // K-3D
  5. // Copyright (c) 1995-2004, Timothy M. Shead
  6. //
  7. // Contact: tshead@k-3d.com
  8. //
  9. // This program is free software; you can redistribute it and/or
  10. // modify it under the terms of the GNU General Public
  11. // License as published by the Free Software Foundation; either
  12. // version 2 of the License, or (at your option) any later version.
  13. //
  14. // This program is distributed in the hope that it will be useful,
  15. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  17. // General Public License for more details.
  18. //
  19. // You should have received a copy of the GNU General Public
  20. // License along with this program; if not, write to the Free Software
  21. // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  22.  
  23. #include "signal_accumulators.h"
  24. #include "signal_system.h"
  25.  
  26. #include <bitset>
  27. #include <iosfwd>
  28.  
  29. namespace k3d
  30. {
  31.  
  32. class key_modifiers
  33. {
  34. public:
  35.     key_modifiers& set();
  36.     key_modifiers& set_shift(bool val = true);
  37.     key_modifiers& set_lock(bool val = true);
  38.     key_modifiers& set_control(bool val = true);
  39.     key_modifiers& set_mod1(bool val = true);
  40.     key_modifiers& set_mod2(bool val = true);
  41.     key_modifiers& set_mod3(bool val = true);
  42.     key_modifiers& set_mod4(bool val = true);
  43.     key_modifiers& set_mod5(bool val = true);
  44.     key_modifiers& set_button1(bool val = true);
  45.     key_modifiers& set_button2(bool val = true);
  46.     key_modifiers& set_button3(bool val = true);
  47.     key_modifiers& set_button4(bool val = true);
  48.     key_modifiers& set_button5(bool val = true);
  49.     key_modifiers& set_release(bool val = true);
  50.     
  51.     key_modifiers& reset();
  52.     key_modifiers& reset_shift();
  53.     key_modifiers& reset_lock();
  54.     key_modifiers& reset_control();
  55.     key_modifiers& reset_mod1();
  56.     key_modifiers& reset_mod2();
  57.     key_modifiers& reset_mod3();
  58.     key_modifiers& reset_mod4();
  59.     key_modifiers& reset_mod5();
  60.     key_modifiers& reset_button1();
  61.     key_modifiers& reset_button2();
  62.     key_modifiers& reset_button3();
  63.     key_modifiers& reset_button4();
  64.     key_modifiers& reset_button5();
  65.     key_modifiers& reset_release();
  66.     
  67.     key_modifiers& flip();
  68.     key_modifiers& flip_shift();
  69.     key_modifiers& flip_lock();
  70.     key_modifiers& flip_control();
  71.     key_modifiers& flip_mod1();
  72.     key_modifiers& flip_mod2();
  73.     key_modifiers& flip_mod3();
  74.     key_modifiers& flip_mod4();
  75.     key_modifiers& flip_mod5();
  76.     key_modifiers& flip_button1();
  77.     key_modifiers& flip_button2();
  78.     key_modifiers& flip_button3();
  79.     key_modifiers& flip_button4();
  80.     key_modifiers& flip_button5();
  81.     key_modifiers& flip_release();
  82.  
  83.     bool any() const;
  84.     bool none() const;
  85.     bool shift() const;
  86.     bool lock() const;
  87.     bool control() const;
  88.     bool mod1() const;
  89.     bool mod2() const;
  90.     bool mod3() const;
  91.     bool mod4() const;
  92.     bool mod5() const;
  93.     bool button1() const;
  94.     bool button2() const;
  95.     bool button3() const;
  96.     bool button4() const;
  97.     bool button5() const;
  98.     bool release() const;
  99.  
  100.     bool operator==(const key_modifiers& RHS) const;
  101.     bool operator!=(const key_modifiers& RHS) const;
  102.     bool operator<(const key_modifiers& RHS) const;
  103.     
  104.     key_modifiers& operator&=(const key_modifiers& RHS);
  105.     key_modifiers& operator|=(const key_modifiers& RHS);
  106.  
  107.     friend const key_modifiers operator&(const key_modifiers& LHS, const key_modifiers& RHS);
  108.     friend const key_modifiers operator|(const key_modifiers& LHS, const key_modifiers& RHS);
  109.  
  110.     friend std::ostream& operator<<(std::ostream& Stream, const k3d::key_modifiers& RHS);
  111.     friend std::istream& operator>>(std::istream& Stream, k3d::key_modifiers& RHS);
  112.  
  113. private:
  114.     std::bitset<14> m_storage;
  115. };
  116.  
  117. } // namespace k3d
  118.  
  119. #endif // !K3DSDK_KEYBOARD_H
  120.