void handleTaskBarEvent (const LPARAM lParam) { if (owner.isCurrentlyBlockedByAnotherModalComponent()) { if (lParam == WM_LBUTTONDOWN || lParam == WM_RBUTTONDOWN || lParam == WM_LBUTTONDBLCLK || lParam == WM_LBUTTONDBLCLK) { Component* const current = Component::getCurrentlyModalComponent(); if (current != nullptr) current->inputAttemptWhenModal(); } } else { ModifierKeys eventMods (ModifierKeys::getCurrentModifiersRealtime()); if (lParam == WM_LBUTTONDOWN || lParam == WM_LBUTTONDBLCLK) eventMods = eventMods.withFlags (ModifierKeys::leftButtonModifier); else if (lParam == WM_RBUTTONDOWN || lParam == WM_RBUTTONDBLCLK) eventMods = eventMods.withFlags (ModifierKeys::rightButtonModifier); else if (lParam == WM_LBUTTONUP || lParam == WM_RBUTTONUP) eventMods = eventMods.withoutMouseButtons(); const MouseEvent e (Desktop::getInstance().getMainMouseSource(), Point<int>(), eventMods, &owner, &owner, Time (getMouseEventTime()), Point<int>(), Time (getMouseEventTime()), 1, false); if (lParam == WM_LBUTTONDOWN || lParam == WM_RBUTTONDOWN) { SetFocus (iconData.hWnd); SetForegroundWindow (iconData.hWnd); owner.mouseDown (e); } else if (lParam == WM_LBUTTONUP || lParam == WM_RBUTTONUP) { owner.mouseUp (e); } else if (lParam == WM_LBUTTONDBLCLK || lParam == WM_LBUTTONDBLCLK) { owner.mouseDoubleClick (e); } else if (lParam == WM_MOUSEMOVE) { owner.mouseMove (e); } } }
bool ApplicationSettingsFile::Load(File file) { if (!file.exists()) return false; configFile = file.getFullPathName(); String jsonString = file.loadFileAsString(); var json; Result result = JSON::parse(jsonString, json); if (result.ok()) { DynamicObject* obj = json.getDynamicObject(); if (obj == nullptr) return false; if(obj->hasProperty("PlayType")) setPlayType((SoundPlayType)(int)obj->getProperty("PlayType")); if (obj->hasProperty("UseGlobalHooks")) setUseGlobalHooks((bool)obj->getProperty("UseGlobalHooks")); if (obj->hasProperty("StopAllSoundKeyPresses")) { var keyPresses = obj->getProperty("StopAllSoundKeyPresses"); if (keyPresses.isArray()) { for (int i = 0; i < keyPresses.size(); ++i) { var jsonKeyPress(keyPresses[i]); if (jsonKeyPress.isVoid()) continue; DynamicObject* jsonKeyPressObj = jsonKeyPress.getDynamicObject(); if (jsonKeyPressObj == nullptr) continue; int keyCode = (int)jsonKeyPressObj->getProperty("KeyCode"); int modifierFlags = (int)jsonKeyPressObj->getProperty("ModifierFlags"); juce::juce_wchar textCharacter = (juce_wchar)((int)jsonKeyPressObj->getProperty("TextCharacter")); ModifierKeys modifierKeys; modifierKeys = modifierKeys.withFlags(modifierFlags); KeyPress keyPress(keyCode, modifierKeys, textCharacter); stopAllSoundsKeys.add(keyPress); } } } } return true; }