doxygen: add newline after \file
[blender.git] / intern / ghost / intern / GHOST_ModifierKeys.cpp
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
17  * All rights reserved.
18  */
19
20 /** \file
21  * \ingroup GHOST
22  */
23
24
25 /**
26  * Copyright (C) 2001 NaN Technologies B.V.
27  */
28
29 #include "GHOST_ModifierKeys.h"
30
31
32 GHOST_ModifierKeys::GHOST_ModifierKeys()
33 {
34         clear();
35 }
36
37 GHOST_ModifierKeys::~GHOST_ModifierKeys() {}
38
39
40 GHOST_TKey GHOST_ModifierKeys::getModifierKeyCode(GHOST_TModifierKeyMask mask)
41 {
42         GHOST_TKey key;
43         switch (mask) {
44                 case GHOST_kModifierKeyLeftShift:       key = GHOST_kKeyLeftShift;      break;
45                 case GHOST_kModifierKeyRightShift:      key = GHOST_kKeyRightShift;     break;
46                 case GHOST_kModifierKeyLeftAlt:         key = GHOST_kKeyLeftAlt;        break;
47                 case GHOST_kModifierKeyRightAlt:        key = GHOST_kKeyRightAlt;       break;
48                 case GHOST_kModifierKeyLeftControl:     key = GHOST_kKeyLeftControl;    break;
49                 case GHOST_kModifierKeyRightControl:    key = GHOST_kKeyRightControl;   break;
50                 case GHOST_kModifierKeyOS:              key = GHOST_kKeyOS;             break;
51                 default:
52                         // Should not happen
53                         key = GHOST_kKeyUnknown;
54                         break;
55         }
56         return key;
57 }
58
59
60 bool GHOST_ModifierKeys::get(GHOST_TModifierKeyMask mask) const
61 {
62         switch (mask) {
63                 case GHOST_kModifierKeyLeftShift:
64                         return m_LeftShift;
65                 case GHOST_kModifierKeyRightShift:
66                         return m_RightShift;
67                 case GHOST_kModifierKeyLeftAlt:
68                         return m_LeftAlt;
69                 case GHOST_kModifierKeyRightAlt:
70                         return m_RightAlt;
71                 case GHOST_kModifierKeyLeftControl:
72                         return m_LeftControl;
73                 case GHOST_kModifierKeyRightControl:
74                         return m_RightControl;
75                 case GHOST_kModifierKeyOS:
76                         return m_OS;
77                 default:
78                         return false;
79         }
80 }
81
82
83 void GHOST_ModifierKeys::set(GHOST_TModifierKeyMask mask, bool down)
84 {
85         switch (mask) {
86                 case GHOST_kModifierKeyLeftShift:
87                         m_LeftShift = down; break;
88                 case GHOST_kModifierKeyRightShift:
89                         m_RightShift = down; break;
90                 case GHOST_kModifierKeyLeftAlt:
91                         m_LeftAlt = down; break;
92                 case GHOST_kModifierKeyRightAlt:
93                         m_RightAlt = down; break;
94                 case GHOST_kModifierKeyLeftControl:
95                         m_LeftControl = down; break;
96                 case GHOST_kModifierKeyRightControl:
97                         m_RightControl = down; break;
98                 case GHOST_kModifierKeyOS:
99                         m_OS = down; break;
100                 default:
101                         break;
102         }
103 }
104
105
106 void GHOST_ModifierKeys::clear()
107 {
108         m_LeftShift = false;
109         m_RightShift = false;
110         m_LeftAlt = false;
111         m_RightAlt = false;
112         m_LeftControl = false;
113         m_RightControl = false;
114         m_OS = false;
115 }
116
117
118 bool GHOST_ModifierKeys::equals(const GHOST_ModifierKeys& keys) const
119 {
120         return (m_LeftShift == keys.m_LeftShift) &&
121                (m_RightShift == keys.m_RightShift) &&
122                (m_LeftAlt == keys.m_LeftAlt) &&
123                (m_RightAlt == keys.m_RightAlt) &&
124                (m_LeftControl == keys.m_LeftControl) &&
125                (m_RightControl == keys.m_RightControl) &&
126                (m_OS == keys.m_OS);
127 }