Blender V4.5
GHOST_ModifierKeys.cc
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
12
13#include "GHOST_ModifierKeys.hh"
14#include "GHOST_Debug.hh"
15
20
22
24{
25 GHOST_TKey key;
26 switch (mask) {
29 break;
32 break;
35 break;
38 break;
41 break;
44 break;
46 key = GHOST_kKeyLeftOS;
47 break;
50 break;
53 break;
56 break;
57 default:
58 /* Should not happen. */
59 GHOST_ASSERT(0, "Invalid key!");
61 break;
62 }
63 return key;
64}
65
67{
68 switch (mask) {
70 return m_LeftShift;
72 return m_RightShift;
74 return m_LeftAlt;
76 return m_RightAlt;
78 return m_LeftControl;
80 return m_RightControl;
82 return m_LeftOS;
84 return m_RightOS;
86 return m_LeftHyper;
88 return m_RightHyper;
89 default:
90 GHOST_ASSERT(0, "Invalid key!");
91 return false;
92 }
93}
94
96{
97 switch (mask) {
99 m_LeftShift = down;
100 break;
102 m_RightShift = down;
103 break;
105 m_LeftAlt = down;
106 break;
108 m_RightAlt = down;
109 break;
111 m_LeftControl = down;
112 break;
114 m_RightControl = down;
115 break;
117 m_LeftOS = down;
118 break;
120 m_RightOS = down;
121 break;
123 m_LeftHyper = down;
124 break;
126 m_RightHyper = down;
127 break;
128 default:
129 GHOST_ASSERT(0, "Invalid key!");
130 break;
131 }
132}
133
135{
136 m_LeftShift = false;
137 m_RightShift = false;
138 m_LeftAlt = false;
139 m_RightAlt = false;
140 m_LeftControl = false;
141 m_RightControl = false;
142 m_LeftOS = false;
143 m_RightOS = false;
144 m_LeftHyper = false;
145 m_RightHyper = false;
146}
147
149{
150 return (m_LeftShift == keys.m_LeftShift) && (m_RightShift == keys.m_RightShift) &&
151 (m_LeftAlt == keys.m_LeftAlt) && (m_RightAlt == keys.m_RightAlt) &&
153 (m_LeftOS == keys.m_LeftOS) && (m_RightOS == keys.m_RightOS) &&
154 (m_LeftHyper == keys.m_LeftHyper) && (m_RightHyper == keys.m_RightHyper);
155}
#define GHOST_ASSERT(x, info)
GHOST_TKey
@ GHOST_kKeyLeftOS
@ GHOST_kKeyLeftAlt
@ GHOST_kKeyRightShift
@ GHOST_kKeyRightOS
@ GHOST_kKeyLeftControl
@ GHOST_kKeyLeftHyper
@ GHOST_kKeyRightAlt
@ GHOST_kKeyRightControl
@ GHOST_kKeyUnknown
@ GHOST_kKeyRightHyper
@ GHOST_kKeyLeftShift
GHOST_TModifierKey
@ GHOST_kModifierKeyRightControl
@ GHOST_kModifierKeyLeftControl
@ GHOST_kModifierKeyRightHyper
@ GHOST_kModifierKeyRightAlt
@ GHOST_kModifierKeyRightShift
@ GHOST_kModifierKeyLeftAlt
@ GHOST_kModifierKeyLeftShift
@ GHOST_kModifierKeyLeftOS
@ GHOST_kModifierKeyRightOS
@ GHOST_kModifierKeyLeftHyper
ccl_device_inline float2 mask(const MaskType mask, const float2 a)
void set(GHOST_TModifierKey mask, bool down)
bool get(GHOST_TModifierKey mask) const
bool equals(const GHOST_ModifierKeys &keys) const
static GHOST_TKey getModifierKeyCode(GHOST_TModifierKey mask)