• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 {
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.
16 };
17 
18 // Horizontal text alignment modes.
19 enum HorizontalAlignment {
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.
23   ALIGN_TO_HEAD,  // Align the text to its first strong character's direction.
24 };
25 
26 // The directionality modes used to determine the base text direction.
27 enum DirectionalityMode {
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.
32 };
33 
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 
45 // Elision behaviors of text that exceeds constrained dimensions.
46 enum ElideBehavior {
47   NO_ELIDE = 0, // Do not modify the text, it may overflow its available bounds.
48   TRUNCATE,     // Do not elide or fade, just truncate at the end of the string.
49   ELIDE_HEAD,   // Add an ellipsis at the start of the string.
50   ELIDE_MIDDLE, // Add an ellipsis in the middle of the string.
51   ELIDE_TAIL,   // Add an ellipsis at the end of the string.
52   ELIDE_EMAIL,  // Add ellipses to username and domain substrings.
53   FADE_TAIL,    // Fade the string's end opposite of its horizontal alignment.
54 };
55 
56 }  // namespace gfx
57 
58 #endif  // UI_GFX_TEXT_CONSTANTS_H_
59