1 /*
2  * Copyright 2021 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package androidx.compose.foundation.text
18 
19 internal enum class KeyCommand(
20     // Indicates, that this command is supposed to edit text so should be applied only to
21     // editable text fields
22     val editsText: Boolean
23 ) {
24     LEFT_CHAR(false),
25     RIGHT_CHAR(false),
26     RIGHT_WORD(false),
27     LEFT_WORD(false),
28     NEXT_PARAGRAPH(false),
29     PREV_PARAGRAPH(false),
30     LINE_START(false),
31     LINE_END(false),
32     LINE_LEFT(false),
33     LINE_RIGHT(false),
34     UP(false),
35     DOWN(false),
36     PAGE_UP(false),
37     PAGE_DOWN(false),
38     HOME(false),
39     END(false),
40     COPY(false),
41     PASTE(true),
42     CUT(true),
43     DELETE_PREV_CHAR(true),
44     DELETE_NEXT_CHAR(true),
45     DELETE_PREV_WORD(true),
46     DELETE_NEXT_WORD(true),
47     DELETE_FROM_LINE_START(true),
48     DELETE_TO_LINE_END(true),
49     SELECT_ALL(false),
50     SELECT_LEFT_CHAR(false),
51     SELECT_RIGHT_CHAR(false),
52     SELECT_UP(false),
53     SELECT_DOWN(false),
54     SELECT_PAGE_UP(false),
55     SELECT_PAGE_DOWN(false),
56     SELECT_HOME(false),
57     SELECT_END(false),
58     SELECT_LEFT_WORD(false),
59     SELECT_RIGHT_WORD(false),
60     SELECT_NEXT_PARAGRAPH(false),
61     SELECT_PREV_PARAGRAPH(false),
62     SELECT_LINE_START(false),
63     SELECT_LINE_END(false),
64     SELECT_LINE_LEFT(false),
65     SELECT_LINE_RIGHT(false),
66     DESELECT(false),
67     NEW_LINE(true),
68     TAB(true),
69     UNDO(true),
70     REDO(true),
71     CHARACTER_PALETTE(true)
72 }
73