[email protected] | 46cb538 | 2012-08-01 21:57:31 | [diff] [blame] | 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
| 5 | #ifndef UI_GFX_TEXT_CONSTANTS_H_ |
| 6 | #define UI_GFX_TEXT_CONSTANTS_H_ |
| 7 | |
| 8 | namespace gfx { |
| 9 | |
| 10 | // TODO(msw): Distinguish between logical character stops and glyph stops? |
| 11 | // TODO(msw): Merge with base::i18n::BreakIterator::BreakType. |
| 12 | enum BreakType { |
[email protected] | f3ce621 | 2014-06-05 22:42:08 | [diff] [blame] | 13 | CHARACTER_BREAK = 0, // Stop cursor movement on neighboring characters. |
| 14 | WORD_BREAK, // Stop cursor movement on nearest word boundaries. |
| 15 | LINE_BREAK, // Stop cursor movement on line ends as shown on screen. |
[email protected] | 46cb538 | 2012-08-01 21:57:31 | [diff] [blame] | 16 | }; |
| 17 | |
| 18 | // Horizontal text alignment modes. |
| 19 | enum HorizontalAlignment { |
[email protected] | f3ce621 | 2014-06-05 22:42:08 | [diff] [blame] | 20 | ALIGN_LEFT = 0, // Align the text's left edge with that of its display area. |
| 21 | ALIGN_CENTER, // Align the text's center with that of its display area. |
| 22 | ALIGN_RIGHT, // Align the text's right edge with that of its display area. |
[email protected] | 5f751da | 2014-06-12 07:41:47 | [diff] [blame] | 23 | ALIGN_TO_HEAD, // Align the text to its first strong character's direction. |
[email protected] | 46cb538 | 2012-08-01 21:57:31 | [diff] [blame] | 24 | }; |
| 25 | |
| 26 | // The directionality modes used to determine the base text direction. |
| 27 | enum DirectionalityMode { |
[email protected] | f3ce621 | 2014-06-05 22:42:08 | [diff] [blame] | 28 | DIRECTIONALITY_FROM_TEXT = 0, // Use the first strong character's direction. |
| 29 | DIRECTIONALITY_FROM_UI, // Use the UI locale's text reading direction. |
| 30 | DIRECTIONALITY_FORCE_LTR, // Use LTR regardless of content or UI locale. |
| 31 | DIRECTIONALITY_FORCE_RTL, // Use RTL regardless of content or UI locale. |
[email protected] | 46cb538 | 2012-08-01 21:57:31 | [diff] [blame] | 32 | }; |
| 33 | |
[email protected] | ccfa43f0 | 2013-02-01 04:42:17 | [diff] [blame] | 34 | // Text styles and adornments. |
| 35 | // TODO(msw): Merge with gfx::Font::FontStyle. |
| 36 | enum TextStyle { |
| 37 | BOLD = 0, |
| 38 | ITALIC, |
| 39 | STRIKE, |
| 40 | DIAGONAL_STRIKE, |
| 41 | UNDERLINE, |
| 42 | NUM_TEXT_STYLES, |
| 43 | }; |
| 44 | |
dschuyler | fcd7691 | 2015-03-11 01:40:11 | [diff] [blame^] | 45 | // Text baseline offset types. |
| 46 | // Figure of font metrics: |
| 47 | // +--------+--------+------------------------+-------------+ |
| 48 | // | | | internal leading | SUPERSCRIPT | |
| 49 | // | | +------------+-----------| | |
| 50 | // | | ascent | | SUPERIOR |-------------+ |
| 51 | // | height | | cap height |-----------| |
| 52 | // | | | | INFERIOR |-------------+ |
| 53 | // | |--------+------------+-----------| | |
| 54 | // | | descent | SUBSCRIPT | |
| 55 | // +--------+---------------------------------+-------------+ |
| 56 | enum BaselineStyle { |
| 57 | NORMAL_BASELINE = 0, |
| 58 | SUPERSCRIPT, // e.g. a mathematical exponent would be superscript. |
| 59 | SUPERIOR, // e.g. 8th, the "th" would be superior script. |
| 60 | INFERIOR, // e.g. 1/2, the "2" would be inferior ("1" is superior). |
| 61 | SUBSCRIPT, // e.g. H2O, the "2" would be subscript. |
| 62 | }; |
| 63 | |
[email protected] | f3ce621 | 2014-06-05 22:42:08 | [diff] [blame] | 64 | // Elision behaviors of text that exceeds constrained dimensions. |
| 65 | enum ElideBehavior { |
[email protected] | 8d93614 | 2014-07-10 21:40:37 | [diff] [blame] | 66 | NO_ELIDE = 0, // Do not modify the text, it may overflow its available bounds. |
| 67 | TRUNCATE, // Do not elide or fade, just truncate at the end of the string. |
[email protected] | f3ce621 | 2014-06-05 22:42:08 | [diff] [blame] | 68 | ELIDE_HEAD, // Add an ellipsis at the start of the string. |
| 69 | ELIDE_MIDDLE, // Add an ellipsis in the middle of the string. |
| 70 | ELIDE_TAIL, // Add an ellipsis at the end of the string. |
| 71 | ELIDE_EMAIL, // Add ellipses to username and domain substrings. |
| 72 | FADE_TAIL, // Fade the string's end opposite of its horizontal alignment. |
| 73 | }; |
| 74 | |
[email protected] | 46cb538 | 2012-08-01 21:57:31 | [diff] [blame] | 75 | } // namespace gfx |
| 76 | |
| 77 | #endif // UI_GFX_TEXT_CONSTANTS_H_ |