aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2014-09-03 17:55:58 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-09-03 17:55:58 +0000
commitf7be68e6360864f79ebe6ba293f46d04a2ef0936 (patch)
treeeb284750c748b9f252ca54f50c77a14da5fff1fe
parent8bc82177a5b039d7503f7d161fffb6c412827ad0 (diff)
parent06429878808f3e072ee34e97ac7a9085da9f8e79 (diff)
downloadlatinime-f7be68e6360864f79ebe6ba293f46d04a2ef0936.tar.gz
latinime-f7be68e6360864f79ebe6ba293f46d04a2ef0936.tar.xz
latinime-f7be68e6360864f79ebe6ba293f46d04a2ef0936.zip
am 06429878: am 464ff7c1: Add unit tests for enter key\'s more keys
* commit '06429878808f3e072ee34e97ac7a9085da9f8e79': Add unit tests for enter key's more keys
-rw-r--r--tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetNavigateMoreKeysBase.java324
-rw-r--r--tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetNavigateMoreKeysKlpTests.java28
-rw-r--r--tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetNavigateMoreKeysLxxTests.java28
3 files changed, 380 insertions, 0 deletions
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetNavigateMoreKeysBase.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetNavigateMoreKeysBase.java
new file mode 100644
index 000000000..1fce362b5
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetNavigateMoreKeysBase.java
@@ -0,0 +1,324 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard;
+
+import android.text.InputType;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
+import com.android.inputmethod.keyboard.internal.MoreKeySpec;
+import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.RichInputMethodManager;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+import java.util.Arrays;
+import java.util.Locale;
+
+abstract class KeyboardLayoutSetNavigateMoreKeysBase extends KeyboardLayoutSetTestsBase {
+ private ExpectedMoreKey mExpectedNavigateNextMoreKey;
+ private ExpectedMoreKey mExpectedNavigatePreviousMoreKey;
+ private ExpectedMoreKey mExpectedEmojiMoreKey;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ mExpectedNavigateNextMoreKey = new ExpectedMoreKey(R.string.label_next_key);
+ mExpectedNavigatePreviousMoreKey = new ExpectedMoreKey(R.string.label_previous_key);
+ mExpectedEmojiMoreKey = new ExpectedMoreKey(KeyboardIconsSet.NAME_EMOJI_ACTION_KEY);
+ }
+
+ /**
+ * This class represents an expected more key.
+ */
+ protected static class ExpectedMoreKey {
+ public static final int NO_LABEL = 0;
+ public static final ExpectedMoreKey[] EMPTY_MORE_KEYS = new ExpectedMoreKey[0];
+
+ public final int mLabelResId;
+ public final int mIconId;
+
+ public ExpectedMoreKey(final String iconName) {
+ mLabelResId = NO_LABEL;
+ mIconId = KeyboardIconsSet.getIconId(iconName);
+ }
+
+ public ExpectedMoreKey(final int labelResId) {
+ mLabelResId = labelResId;
+ mIconId = KeyboardIconsSet.ICON_UNDEFINED;
+ }
+ }
+
+ private void doTestMoreKeysOf(final int code, final InputMethodSubtype subtype,
+ final int elementId, final int inputType, final int imeOptions,
+ final ExpectedMoreKey ... expectedMoreKeys) {
+ final EditorInfo editorInfo = new EditorInfo();
+ editorInfo.inputType = inputType;
+ editorInfo.imeOptions = imeOptions;
+ final KeyboardLayoutSet layoutSet = createKeyboardLayoutSet(subtype, editorInfo);
+ final Keyboard keyboard = layoutSet.getKeyboard(elementId);
+
+ final Key actualKey = keyboard.getKey(code);
+ final MoreKeySpec[] actualMoreKeys = actualKey.getMoreKeys();
+ final String tag = actualKey.toString() + " moreKeys=" + Arrays.toString(actualMoreKeys);
+ if (expectedMoreKeys.length == 0) {
+ assertEquals(tag, null, actualMoreKeys);
+ return;
+ }
+ if (expectedMoreKeys.length == 1) {
+ assertEquals(tag + " fixedOrder", false, actualKey.isMoreKeysFixedOrder());
+ assertEquals(tag + " fixedColumn", false, actualKey.isMoreKeysFixedColumn());
+ } else {
+ assertEquals(tag + " fixedOrder", true, actualKey.isMoreKeysFixedOrder());
+ assertEquals(tag + " fixedColumn", true, actualKey.isMoreKeysFixedColumn());
+ // TODO: Can't handle multiple rows of more keys.
+ assertEquals(tag + " column",
+ expectedMoreKeys.length, actualKey.getMoreKeysColumnNumber());
+ }
+ assertEquals(tag, expectedMoreKeys.length, actualMoreKeys.length);
+ for (int index = 0; index < actualMoreKeys.length; index++) {
+ final int expectedLabelResId = expectedMoreKeys[index].mLabelResId;
+ if (expectedLabelResId == ExpectedMoreKey.NO_LABEL) {
+ assertEquals(tag + " label " + index, null, actualMoreKeys[index].mLabel);
+ } else {
+ final CharSequence expectedLabel = getContext().getText(expectedLabelResId);
+ assertEquals(tag + " label " + index, expectedLabel, actualMoreKeys[index].mLabel);
+ }
+ final int expectedIconId = expectedMoreKeys[index].mIconId;
+ assertEquals(tag + " icon " + index, expectedIconId, actualMoreKeys[index].mIconId);
+ }
+ }
+
+ private void doTestNavigationMoreKeysOf(final int code, final InputMethodSubtype subtype,
+ final int elementId, final int inputType) {
+ // No navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_NULL,
+ ExpectedMoreKey.EMPTY_MORE_KEYS);
+ // With next navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_FLAG_NAVIGATE_NEXT,
+ mExpectedNavigateNextMoreKey);
+ // With previous navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS,
+ mExpectedNavigatePreviousMoreKey);
+ // With next and previous naviagte flags.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_FLAG_NAVIGATE_NEXT | EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS,
+ mExpectedNavigatePreviousMoreKey, mExpectedNavigateNextMoreKey);
+ // Action next.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_NEXT,
+ ExpectedMoreKey.EMPTY_MORE_KEYS);
+ // Action next with next navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_NEXT | EditorInfo.IME_FLAG_NAVIGATE_NEXT,
+ ExpectedMoreKey.EMPTY_MORE_KEYS);
+ // Action next with previous navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_NEXT | EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS,
+ mExpectedNavigatePreviousMoreKey);
+ // Action next with next and previous navigate flags.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_NEXT | EditorInfo.IME_FLAG_NAVIGATE_NEXT
+ | EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS,
+ mExpectedNavigatePreviousMoreKey);
+ // Action previous.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_PREVIOUS,
+ ExpectedMoreKey.EMPTY_MORE_KEYS);
+ // Action previous with next navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_PREVIOUS | EditorInfo.IME_FLAG_NAVIGATE_NEXT,
+ mExpectedNavigateNextMoreKey);
+ // Action previous with previous navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_PREVIOUS | EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS,
+ ExpectedMoreKey.EMPTY_MORE_KEYS);
+ // Action previous with next and previous navigate flags.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_PREVIOUS | EditorInfo.IME_FLAG_NAVIGATE_NEXT
+ | EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS,
+ mExpectedNavigateNextMoreKey);
+ }
+
+ private void doTestNavigationWithEmojiMoreKeysOf(final int code,
+ final InputMethodSubtype subtype, final int elementId, final int inputType) {
+ // No navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_NULL,
+ mExpectedEmojiMoreKey);
+ // With next navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_FLAG_NAVIGATE_NEXT,
+ mExpectedEmojiMoreKey, mExpectedNavigateNextMoreKey);
+ // With previous navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS,
+ mExpectedEmojiMoreKey, mExpectedNavigatePreviousMoreKey);
+ // With next and previous naviagte flags.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_FLAG_NAVIGATE_NEXT | EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS,
+ mExpectedEmojiMoreKey, mExpectedNavigatePreviousMoreKey,
+ mExpectedNavigateNextMoreKey);
+ // Action next.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_NEXT,
+ mExpectedEmojiMoreKey);
+ // Action next with next navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_NEXT | EditorInfo.IME_FLAG_NAVIGATE_NEXT,
+ mExpectedEmojiMoreKey);
+ // Action next with previous navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_NEXT | EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS,
+ mExpectedEmojiMoreKey, mExpectedNavigatePreviousMoreKey);
+ // Action next with next and previous navigate flags.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_NEXT | EditorInfo.IME_FLAG_NAVIGATE_NEXT
+ | EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS,
+ mExpectedEmojiMoreKey, mExpectedNavigatePreviousMoreKey);
+ // Action previous.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_PREVIOUS,
+ mExpectedEmojiMoreKey);
+ // Action previous with next navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_PREVIOUS | EditorInfo.IME_FLAG_NAVIGATE_NEXT,
+ mExpectedEmojiMoreKey, mExpectedNavigateNextMoreKey);
+ // Action previous with previous navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_PREVIOUS | EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS,
+ mExpectedEmojiMoreKey);
+ // Action previous with next and previous navigate flags.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_PREVIOUS | EditorInfo.IME_FLAG_NAVIGATE_NEXT
+ | EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS,
+ mExpectedEmojiMoreKey, mExpectedNavigateNextMoreKey);
+ }
+
+ private void doTestNoNavigationMoreKeysOf(final int code, final InputMethodSubtype subtype,
+ final int elementId, final int inputType) {
+ // No navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_NULL,
+ ExpectedMoreKey.EMPTY_MORE_KEYS);
+ // With next navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_FLAG_NAVIGATE_NEXT,
+ ExpectedMoreKey.EMPTY_MORE_KEYS);
+ // With previous navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS,
+ ExpectedMoreKey.EMPTY_MORE_KEYS);
+ // With next and previous naviagte flags.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_FLAG_NAVIGATE_NEXT | EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS,
+ ExpectedMoreKey.EMPTY_MORE_KEYS);
+ // Action next.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_NEXT,
+ ExpectedMoreKey.EMPTY_MORE_KEYS);
+ // Action next with next navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_NEXT | EditorInfo.IME_FLAG_NAVIGATE_NEXT,
+ ExpectedMoreKey.EMPTY_MORE_KEYS);
+ // Action next with previous navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_NEXT | EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS,
+ ExpectedMoreKey.EMPTY_MORE_KEYS);
+ // Action next with next and previous navigate flags.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_NEXT | EditorInfo.IME_FLAG_NAVIGATE_NEXT
+ | EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS,
+ ExpectedMoreKey.EMPTY_MORE_KEYS);
+ // Action previous.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_PREVIOUS,
+ ExpectedMoreKey.EMPTY_MORE_KEYS);
+ // Action previous with next navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_PREVIOUS | EditorInfo.IME_FLAG_NAVIGATE_NEXT,
+ ExpectedMoreKey.EMPTY_MORE_KEYS);
+ // Action previous with previous navigate flag.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_PREVIOUS | EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS,
+ ExpectedMoreKey.EMPTY_MORE_KEYS);
+ // Action previous with next and previous navigate flags.
+ doTestMoreKeysOf(code, subtype, elementId, inputType,
+ EditorInfo.IME_ACTION_PREVIOUS | EditorInfo.IME_FLAG_NAVIGATE_NEXT
+ | EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS,
+ ExpectedMoreKey.EMPTY_MORE_KEYS);
+ }
+
+ public void testMoreKeysOfEnterKey() {
+ final RichInputMethodManager richImm = RichInputMethodManager.getInstance();
+ final InputMethodSubtype subtype = richImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+ Locale.US.toString(), SubtypeLocaleUtils.QWERTY);
+
+ // Password field.
+ doTestNavigationMoreKeysOf(Constants.CODE_ENTER, subtype, KeyboardId.ELEMENT_ALPHABET,
+ InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
+ // Email field.
+ doTestNavigationMoreKeysOf(Constants.CODE_ENTER, subtype, KeyboardId.ELEMENT_ALPHABET,
+ InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
+ // Url field.
+ doTestNavigationMoreKeysOf(Constants.CODE_ENTER, subtype, KeyboardId.ELEMENT_ALPHABET,
+ InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI);
+ // Phone number field.
+ doTestNavigationMoreKeysOf(Constants.CODE_ENTER, subtype, KeyboardId.ELEMENT_PHONE,
+ InputType.TYPE_CLASS_PHONE);
+ // Number field.
+ doTestNavigationMoreKeysOf(Constants.CODE_ENTER, subtype, KeyboardId.ELEMENT_NUMBER,
+ InputType.TYPE_CLASS_NUMBER);
+ // Date-time field.
+ doTestNavigationMoreKeysOf(Constants.CODE_ENTER, subtype, KeyboardId.ELEMENT_NUMBER,
+ InputType.TYPE_CLASS_DATETIME | InputType.TYPE_DATETIME_VARIATION_NORMAL);
+ // Date field.
+ doTestNavigationMoreKeysOf(Constants.CODE_ENTER, subtype, KeyboardId.ELEMENT_NUMBER,
+ InputType.TYPE_CLASS_DATETIME | InputType.TYPE_DATETIME_VARIATION_DATE);
+ // Time field.
+ doTestNavigationMoreKeysOf(Constants.CODE_ENTER, subtype, KeyboardId.ELEMENT_NUMBER,
+ InputType.TYPE_CLASS_DATETIME | InputType.TYPE_DATETIME_VARIATION_TIME);
+ // Text field.
+ if (isPhone()) {
+ // The enter key has an Emoji key as one of more keys.
+ doTestNavigationWithEmojiMoreKeysOf(Constants.CODE_ENTER, subtype,
+ KeyboardId.ELEMENT_ALPHABET,
+ InputType.TYPE_CLASS_TEXT);
+ } else {
+ // Tablet has a dedicated Emoji key, so the Enter key has no Emoji more key.
+ doTestNavigationMoreKeysOf(Constants.CODE_ENTER, subtype,
+ KeyboardId.ELEMENT_ALPHABET,
+ InputType.TYPE_CLASS_TEXT);
+ }
+ // Short message field.
+ if (isPhone()) {
+ // Enter key is switched to Emoji key on a short message field.
+ // Emoji key has no navigation more keys.
+ doTestNoNavigationMoreKeysOf(Constants.CODE_EMOJI, subtype,
+ KeyboardId.ELEMENT_ALPHABET,
+ InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_SHORT_MESSAGE);
+ } else {
+ doTestNavigationMoreKeysOf(Constants.CODE_ENTER, subtype,
+ KeyboardId.ELEMENT_ALPHABET,
+ InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_SHORT_MESSAGE);
+ }
+ }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetNavigateMoreKeysKlpTests.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetNavigateMoreKeysKlpTests.java
new file mode 100644
index 000000000..286c69d33
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetNavigateMoreKeysKlpTests.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+@SmallTest
+public class KeyboardLayoutSetNavigateMoreKeysKlpTests
+ extends KeyboardLayoutSetNavigateMoreKeysBase {
+ @Override
+ protected int getKeyboardThemeForTests() {
+ return KeyboardTheme.THEME_ID_KLP;
+ }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetNavigateMoreKeysLxxTests.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetNavigateMoreKeysLxxTests.java
new file mode 100644
index 000000000..02593cb49
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetNavigateMoreKeysLxxTests.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+@SmallTest
+public class KeyboardLayoutSetNavigateMoreKeysLxxTests
+ extends KeyboardLayoutSetNavigateMoreKeysBase {
+ @Override
+ protected int getKeyboardThemeForTests() {
+ return KeyboardTheme.THEME_ID_LXX_LIGHT;
+ }
+}