Blender V5.0
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 left_shift_;
72 return right_shift_;
74 return left_alt_;
76 return right_alt_;
78 return left_control_;
80 return right_control_;
82 return left_os_;
84 return right_os_;
86 return left_hyper_;
88 return right_hyper_;
89 default:
90 GHOST_ASSERT(0, "Invalid key!");
91 return false;
92 }
93}
94
96{
97 switch (mask) {
99 left_shift_ = down;
100 break;
102 right_shift_ = down;
103 break;
105 left_alt_ = down;
106 break;
108 right_alt_ = down;
109 break;
111 left_control_ = down;
112 break;
114 right_control_ = down;
115 break;
117 left_os_ = down;
118 break;
120 right_os_ = down;
121 break;
123 left_hyper_ = down;
124 break;
126 right_hyper_ = down;
127 break;
128 default:
129 GHOST_ASSERT(0, "Invalid key!");
130 break;
131 }
132}
133
135{
136 left_shift_ = false;
137 right_shift_ = false;
138 left_alt_ = false;
139 right_alt_ = false;
140 left_control_ = false;
141 right_control_ = false;
142 left_os_ = false;
143 right_os_ = false;
144 left_hyper_ = false;
145 right_hyper_ = false;
146}
147
149{
150 return (left_shift_ == keys.left_shift_) && (right_shift_ == keys.right_shift_) &&
151 (left_alt_ == keys.left_alt_) && (right_alt_ == keys.right_alt_) &&
153 (left_os_ == keys.left_os_) && (right_os_ == keys.right_os_) &&
154 (left_hyper_ == keys.left_hyper_) && (right_hyper_ == keys.right_hyper_);
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)