Home | History | Annotate | Download | only in gfx
      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