MCPcopy Create free account
hub / github.com/LibreSprite/LibreSprite / onProcessMessage

Method onProcessMessage

src/app/ui/file_selector.cpp:185–230  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

183
184protected:
185 bool onProcessMessage(ui::Message* msg) override {
186 switch (msg->type()) {
187 case kOpenMessage:
188 manager()->addMessageFilter(kKeyDownMessage, this);
189 break;
190 case kCloseMessage:
191 manager()->removeMessageFilter(kKeyDownMessage, this);
192 break;
193 case kKeyDownMessage: {
194 KeyMessage* keyMsg = static_cast<KeyMessage*>(msg);
195 KeyScancode scancode = keyMsg->scancode();
196
197#ifdef __APPLE__
198 int unicode = keyMsg->unicodeChar();
199 bool up = (msg->cmdPressed() && scancode == kKeyUp);
200 bool enter = (msg->cmdPressed() && scancode == kKeyDown);
201 bool back = (msg->cmdPressed() && msg->shiftPressed() && unicode == '[');
202 bool forward = (msg->cmdPressed() && msg->shiftPressed() && unicode == ']');
203#else
204 bool up = (msg->altPressed() && scancode == kKeyUp);
205 bool enter = (msg->altPressed() && scancode == kKeyDown);
206 bool back = (msg->altPressed() && scancode == kKeyLeft);
207 bool forward = (msg->altPressed() && scancode == kKeyRight);
208#endif
209
210 if (up) {
211 m_filesel->goUp();
212 return true;
213 }
214 if (enter) {
215 m_filesel->goInsideFolder();
216 return true;
217 }
218 if (back) {
219 m_filesel->goBack();
220 return true;
221 }
222 if (forward) {
223 m_filesel->goForward();
224 return true;
225 }
226 return false;
227 }
228 }
229 return Widget::onProcessMessage(msg);
230 }
231
232private:
233 FileSelector* m_filesel;

Callers

nothing calls this directly

Calls 12

addMessageFilterMethod · 0.80
removeMessageFilterMethod · 0.80
cmdPressedMethod · 0.80
shiftPressedMethod · 0.80
altPressedMethod · 0.80
goInsideFolderMethod · 0.80
goBackMethod · 0.80
goForwardMethod · 0.80
typeMethod · 0.45
scancodeMethod · 0.45
unicodeCharMethod · 0.45
goUpMethod · 0.45

Tested by

no test coverage detected