| /* |
| * Copyright 2018 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 |
| |
| import androidx.compose.runtime.Stable |
| |
| /** How overflowing text should be handled. */ |
| @kotlin.jvm.JvmInline |
| value class TextOverflow internal constructor(internal val value: Int) { |
| |
| override fun toString(): String { |
| return when (this) { |
| Clip -> "Clip" |
| Ellipsis -> "Ellipsis" |
| Visible -> "Visible" |
| else -> "Invalid" |
| } |
| } |
| |
| companion object { |
| /** |
| * Clip the overflowing text to fix its container. |
| * @sample androidx.compose.ui.text.samples.TextOverflowClipSample |
| */ |
| @Stable |
| val Clip = TextOverflow(1) |
| |
| /** |
| * Use an ellipsis to indicate that the text has overflowed. |
| * @sample androidx.compose.ui.text.samples.TextOverflowEllipsisSample |
| */ |
| @Stable |
| val Ellipsis = TextOverflow(2) |
| |
| /** |
| * Display all text, even if there is not enough space in the specified bounds. |
| * When overflow is visible, text may be rendered outside the bounds of the composable |
| * displaying the text. This ensures that all text is displayed to the user, and is typically |
| * the right choice for most text display. It does mean that the text may visually occupy a |
| * region larger than the bounds of it's composable. This can lead to situations where text |
| * displays outside the bounds of the background and clickable on a Text composable with a |
| * fixed height and width. |
| * |
| * @sample androidx.compose.ui.text.samples.TextOverflowVisibleFixedSizeSample |
| * |
| * To make the background and click region expand to match the size of the text, allow it to |
| * expand vertically/horizontally using `Modifier.heightIn`/`Modifier.widthIn` or similar. |
| * |
| * @sample androidx.compose.ui.text.samples.TextOverflowVisibleMinHeightSample |
| * |
| * Note: text that expands past its bounds using `Visible` may be clipped by other modifiers |
| * such as `Modifier.clipToBounds`. |
| */ |
| @Stable |
| val Visible = TextOverflow(3) |
| } |
| } |