| /* |
| * Copyright 2019 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 androidx.compose.ui.text.style |
| |
| /** |
| * Defines the algorithm to be used while determining the text direction. |
| * |
| * @see ResolvedTextDirection |
| */ |
| @kotlin.jvm.JvmInline |
| value class TextDirection internal constructor(internal val value: Int) { |
| |
| override fun toString(): String { |
| return when (this) { |
| Ltr -> "Ltr" |
| Rtl -> "Rtl" |
| Content -> "Content" |
| ContentOrLtr -> "ContentOrLtr" |
| ContentOrRtl -> "ContentOrRtl" |
| Unspecified -> "Unspecified" |
| else -> "Invalid" |
| } |
| } |
| |
| companion object { |
| /** |
| * Always sets the text direction to be Left to Right. |
| */ |
| val Ltr = TextDirection(1) |
| |
| /** |
| * Always sets the text direction to be Right to Left. |
| */ |
| val Rtl = TextDirection(2) |
| |
| /** |
| * This value indicates that the text direction depends on the first strong directional |
| * character in the text according to the Unicode Bidirectional Algorithm. |
| * If no strong directional character is present, then |
| * [androidx.compose.ui.unit.LayoutDirection] is used to resolve the final TextDirection. |
| * * if used while creating a Paragraph object, [androidx.compose.ui.text.intl.LocaleList] will |
| * be used to resolve the direction as a fallback instead of |
| * [androidx.compose.ui.unit.LayoutDirection]. |
| */ |
| val Content = TextDirection(3) |
| |
| /** |
| * This value indicates that the text direction depends on the first strong directional |
| * character in the text according to the Unicode Bidirectional Algorithm. If no strong |
| * directional character is present, then Left to Right will be used as the default direction. |
| */ |
| val ContentOrLtr = TextDirection(4) |
| |
| /** |
| * This value indicates that the text direction depends on the first strong directional |
| * character in the text according to the Unicode Bidirectional Algorithm. If no strong |
| * directional character is present, then Right to Left will be used as the default direction. |
| */ |
| val ContentOrRtl = TextDirection(5) |
| |
| /** |
| * This represents an unset value, a usual replacement for "null" when a primitive value |
| * is desired. |
| */ |
| val Unspecified = TextDirection(Int.MIN_VALUE) |
| } |
| } |