static const EventRadiusPrefs* GetPrefsFor(EventClassID aEventClassID) { EventRadiusPrefs* prefs = nullptr; const char* prefBranch = nullptr; if (aEventClassID == eTouchEventClass) { prefBranch = "touch"; prefs = &sTouchEventRadiusPrefs; } else if (aEventClassID == eMouseEventClass) { // Mostly for testing purposes prefBranch = "mouse"; prefs = &sMouseEventRadiusPrefs; } else { return nullptr; } if (!prefs->mRegistered) { prefs->mRegistered = true; nsPrintfCString enabledPref("ui.%s.radius.enabled", prefBranch); Preferences::AddBoolVarCache(&prefs->mEnabled, enabledPref.get(), false); nsPrintfCString visitedWeightPref("ui.%s.radius.visitedWeight", prefBranch); Preferences::AddUintVarCache(&prefs->mVisitedWeight, visitedWeightPref.get(), 100); static const char prefNames[4][9] = { "topmm", "rightmm", "bottommm", "leftmm" }; for (int32_t i = 0; i < 4; ++i) { nsPrintfCString radiusPref("ui.%s.radius.%s", prefBranch, prefNames[i]); Preferences::AddUintVarCache(&prefs->mSideRadii[i], radiusPref.get(), 0); } if (aEventClassID == eMouseEventClass) { Preferences::AddBoolVarCache(&prefs->mTouchOnly, "ui.mouse.radius.inputSource.touchOnly", true); } else { prefs->mTouchOnly = false; } nsPrintfCString repositionPref("ui.%s.radius.reposition", prefBranch); Preferences::AddBoolVarCache(&prefs->mRepositionEventCoords, repositionPref.get(), false); nsPrintfCString touchClusterPref("ui.zoomedview.enabled", prefBranch); Preferences::AddBoolVarCache(&prefs->mTouchClusterDetectionEnabled, touchClusterPref.get(), false); nsPrintfCString simplifiedClusterDetectionPref("ui.zoomedview.simplified", prefBranch); Preferences::AddBoolVarCache(&prefs->mSimplifiedClusterDetection, simplifiedClusterDetectionPref.get(), false); nsPrintfCString limitReadableSizePref("ui.zoomedview.limitReadableSize", prefBranch); Preferences::AddUintVarCache(&prefs->mLimitReadableSize, limitReadableSizePref.get(), 8); nsPrintfCString keepLimitSize("ui.zoomedview.keepLimitSize", prefBranch); Preferences::AddUintVarCache(&prefs->mKeepLimitSizeForCluster, keepLimitSize.get(), 16); } return prefs; }
static const EventRadiusPrefs* GetPrefsFor(nsEventStructType aEventStructType) { EventRadiusPrefs* prefs = nullptr; const char* prefBranch = nullptr; if (aEventStructType == NS_TOUCH_EVENT) { prefBranch = "touch"; prefs = &sTouchEventRadiusPrefs; } else if (aEventStructType == NS_MOUSE_EVENT) { // Mostly for testing purposes prefBranch = "mouse"; prefs = &sMouseEventRadiusPrefs; } else { return nullptr; } if (!prefs->mRegistered) { prefs->mRegistered = true; nsPrintfCString enabledPref("ui.%s.radius.enabled", prefBranch); Preferences::AddBoolVarCache(&prefs->mEnabled, enabledPref.get(), false); nsPrintfCString visitedWeightPref("ui.%s.radius.visitedWeight", prefBranch); Preferences::AddUintVarCache(&prefs->mVisitedWeight, visitedWeightPref.get(), 100); static const char prefNames[4][9] = { "topmm", "rightmm", "bottommm", "leftmm" }; for (int32_t i = 0; i < 4; ++i) { nsPrintfCString radiusPref("ui.%s.radius.%s", prefBranch, prefNames[i]); Preferences::AddUintVarCache(&prefs->mSideRadii[i], radiusPref.get(), 0); } if (aEventStructType == NS_MOUSE_EVENT) { Preferences::AddBoolVarCache(&prefs->mTouchOnly, "ui.mouse.radius.inputSource.touchOnly", true); } else { prefs->mTouchOnly = false; } } return prefs; }