MCPcopy Create free account
hub / github.com/ErrorAtLine0/infinipaint / input_key_callback

Method input_key_callback

src/RichTextUserInput.cpp:144–228  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

142}
143
144RichTextUserInput::Changes RichTextUserInput::input_key_callback(InputManager& input, const InputManager::KeyCallbackArgs& key) {
145 std::optional<RichText::TextStyleModifier::ModifierMap> modMapOpt = shared_ptr_to_opt(modMap);
146
147 Changes toRet;
148
149 if(key.down) {
150 auto oldCursor = *cursor;
151
152 switch(key.key) {
153 case InputManager::KEY_GENERIC_UP:
154 textBox->process_key_input(*cursor, RichText::TextBox::InputKey::UP, input.ctrl_or_meta_held(), input.key(InputManager::KEY_GENERIC_LSHIFT).held, modMapOpt);
155 break;
156 case InputManager::KEY_GENERIC_DOWN:
157 textBox->process_key_input(*cursor, RichText::TextBox::InputKey::DOWN, input.ctrl_or_meta_held(), input.key(InputManager::KEY_GENERIC_LSHIFT).held, modMapOpt);
158 break;
159 case InputManager::KEY_GENERIC_LEFT:
160 textBox->process_key_input(*cursor, RichText::TextBox::InputKey::LEFT, input.ctrl_or_meta_held(), input.key(InputManager::KEY_GENERIC_LSHIFT).held, modMapOpt);
161 break;
162 case InputManager::KEY_GENERIC_RIGHT:
163 textBox->process_key_input(*cursor, RichText::TextBox::InputKey::RIGHT, input.ctrl_or_meta_held(), input.key(InputManager::KEY_GENERIC_LSHIFT).held, modMapOpt);
164 break;
165 case InputManager::KEY_TEXT_BACKSPACE:
166 do_textbox_operation_with_undo([&] {
167 textBox->process_key_input(*cursor, RichText::TextBox::InputKey::BACKSPACE, input.ctrl_or_meta_held(), input.key(InputManager::KEY_GENERIC_LSHIFT).held, modMapOpt);
168 });
169 toRet.textEdited = true;
170 break;
171 case InputManager::KEY_TEXT_DELETE:
172 do_textbox_operation_with_undo([&] {
173 textBox->process_key_input(*cursor, RichText::TextBox::InputKey::DEL, input.ctrl_or_meta_held(), input.key(InputManager::KEY_GENERIC_LSHIFT).held, modMapOpt);
174 });
175 toRet.textEdited = true;
176 break;
177 case InputManager::KEY_TEXT_HOME:
178 textBox->process_key_input(*cursor, RichText::TextBox::InputKey::HOME, input.ctrl_or_meta_held(), input.key(InputManager::KEY_GENERIC_LSHIFT).held, modMapOpt);
179 break;
180 case InputManager::KEY_TEXT_END:
181 textBox->process_key_input(*cursor, RichText::TextBox::InputKey::END, input.ctrl_or_meta_held(), input.key(InputManager::KEY_GENERIC_LSHIFT).held, modMapOpt);
182 break;
183 case InputManager::KEY_TEXT_COPY:
184 input.set_clipboard_plain_and_richtext_pair(textBox->process_copy(*cursor));
185 break;
186 case InputManager::KEY_TEXT_CUT:
187 do_textbox_operation_with_undo([&] {
188 input.set_clipboard_plain_and_richtext_pair(textBox->process_cut(*cursor));
189 });
190 toRet.textEdited = true;
191 break;
192 case InputManager::KEY_TEXT_PASTE:
193 input.call_paste(CustomEvents::PasteEvent::DataType::TEXT);
194 break;
195 case InputManager::KEY_TEXT_SELECTALL:
196 textBox->process_key_input(*cursor, RichText::TextBox::InputKey::SELECT_ALL, input.ctrl_or_meta_held(), input.key(InputManager::KEY_GENERIC_LSHIFT).held, modMapOpt);
197 break;
198 case InputManager::KEY_TEXT_UNDO:
199 textboxUndo.undo();
200 toRet.textEdited = true;
201 break;

Callers

nothing calls this directly

Calls 10

shared_ptr_to_optFunction · 0.85
process_key_inputMethod · 0.80
ctrl_or_meta_heldMethod · 0.80
process_copyMethod · 0.80
process_cutMethod · 0.80
call_pasteMethod · 0.80
keyMethod · 0.45
undoMethod · 0.45
redoMethod · 0.45

Tested by

no test coverage detected