| Index: ui/gfx/text_elider.h
|
| diff --git a/ui/gfx/text_elider.h b/ui/gfx/text_elider.h
|
| deleted file mode 100644
|
| index 9d77afa04f01f2437d1ce579cf4a65331c00f71d..0000000000000000000000000000000000000000
|
| --- a/ui/gfx/text_elider.h
|
| +++ /dev/null
|
| @@ -1,166 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -//
|
| -// This file defines utility functions for eliding and formatting UI text.
|
| -
|
| -#ifndef UI_GFX_TEXT_ELIDER_H_
|
| -#define UI_GFX_TEXT_ELIDER_H_
|
| -
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/strings/string16.h"
|
| -#include "ui/gfx/gfx_export.h"
|
| -#include "ui/gfx/text_constants.h"
|
| -
|
| -class GURL;
|
| -
|
| -namespace base {
|
| -class FilePath;
|
| -}
|
| -
|
| -namespace gfx {
|
| -class FontList;
|
| -
|
| -GFX_EXPORT extern const char kEllipsis[];
|
| -GFX_EXPORT extern const base::char16 kEllipsisUTF16[];
|
| -GFX_EXPORT extern const base::char16 kForwardSlash;
|
| -
|
| -// Helper class to split + elide text, while respecting UTF16 surrogate pairs.
|
| -class StringSlicer {
|
| - public:
|
| - StringSlicer(const base::string16& text,
|
| - const base::string16& ellipsis,
|
| - bool elide_in_middle,
|
| - bool elide_at_beginning);
|
| -
|
| - // Cuts |text_| to be |length| characters long. If |elide_in_middle_| is true,
|
| - // the middle of the string is removed to leave equal-length pieces from the
|
| - // beginning and end of the string; otherwise, the end of the string is
|
| - // removed and only the beginning remains. If |insert_ellipsis| is true,
|
| - // then an ellipsis character will be inserted at the cut point.
|
| - base::string16 CutString(size_t length, bool insert_ellipsis);
|
| -
|
| - private:
|
| - // Returns a valid cut boundary at or before/after |index|.
|
| - size_t FindValidBoundaryBefore(size_t index) const;
|
| - size_t FindValidBoundaryAfter(size_t index) const;
|
| -
|
| - // The text to be sliced.
|
| - const base::string16& text_;
|
| -
|
| - // Ellipsis string to use.
|
| - const base::string16& ellipsis_;
|
| -
|
| - // If true, the middle of the string will be elided.
|
| - bool elide_in_middle_;
|
| -
|
| - // If true, the beginning of the string will be elided.
|
| - bool elide_at_beginning_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(StringSlicer);
|
| -};
|
| -
|
| -// Elides |text| to fit the |available_pixel_width| with the specified behavior.
|
| -GFX_EXPORT base::string16 ElideText(const base::string16& text,
|
| - const gfx::FontList& font_list,
|
| - float available_pixel_width,
|
| - ElideBehavior elide_behavior);
|
| -
|
| -// Elide a filename to fit a given pixel width, with an emphasis on not hiding
|
| -// the extension unless we have to. If filename contains a path, the path will
|
| -// be removed if filename doesn't fit into available_pixel_width. The elided
|
| -// filename is forced to have LTR directionality, which means that in RTL UI
|
| -// the elided filename is wrapped with LRE (Left-To-Right Embedding) mark and
|
| -// PDF (Pop Directional Formatting) mark.
|
| -GFX_EXPORT base::string16 ElideFilename(const base::FilePath& filename,
|
| - const gfx::FontList& font_list,
|
| - float available_pixel_width);
|
| -
|
| -// Functions to elide strings when the font information is unknown. As opposed
|
| -// to the above functions, ElideString() and ElideRectangleString() operate in
|
| -// terms of character units, not pixels.
|
| -
|
| -// If the size of |input| is more than |max_len|, this function returns
|
| -// true and |input| is shortened into |output| by removing chars in the
|
| -// middle (they are replaced with up to 3 dots, as size permits).
|
| -// Ex: ElideString(ASCIIToUTF16("Hello"), 10, &str) puts Hello in str and
|
| -// returns false. ElideString(ASCIIToUTF16("Hello my name is Tom"), 10, &str)
|
| -// puts "Hell...Tom" in str and returns true.
|
| -// TODO(tsepez): Doesn't handle UTF-16 surrogate pairs properly.
|
| -// TODO(tsepez): Doesn't handle bidi properly.
|
| -GFX_EXPORT bool ElideString(const base::string16& input, int max_len,
|
| - base::string16* output);
|
| -
|
| -// Reformat |input| into |output| so that it fits into a |max_rows| by
|
| -// |max_cols| rectangle of characters. Input newlines are respected, but
|
| -// lines that are too long are broken into pieces. If |strict| is true,
|
| -// we break first at naturally occuring whitespace boundaries, otherwise
|
| -// we assume some other mechanism will do this in approximately the same
|
| -// spot after the fact. If the word itself is too long, we always break
|
| -// intra-word (respecting UTF-16 surrogate pairs) as necssary. Truncation
|
| -// (indicated by an added 3 dots) occurs if the result is still too long.
|
| -// Returns true if the input had to be truncated (and not just reformatted).
|
| -GFX_EXPORT bool ElideRectangleString(const base::string16& input,
|
| - size_t max_rows,
|
| - size_t max_cols,
|
| - bool strict,
|
| - base::string16* output);
|
| -
|
| -// Specifies the word wrapping behavior of |ElideRectangleText()| when a word
|
| -// would exceed the available width.
|
| -enum WordWrapBehavior {
|
| - // Words that are too wide will be put on a new line, but will not be
|
| - // truncated or elided.
|
| - IGNORE_LONG_WORDS,
|
| -
|
| - // Words that are too wide will be put on a new line and will be truncated to
|
| - // the available width.
|
| - TRUNCATE_LONG_WORDS,
|
| -
|
| - // Words that are too wide will be put on a new line and will be elided to the
|
| - // available width.
|
| - ELIDE_LONG_WORDS,
|
| -
|
| - // Words that are too wide will be put on a new line and will be wrapped over
|
| - // multiple lines.
|
| - WRAP_LONG_WORDS,
|
| -};
|
| -
|
| -// Indicates whether the |available_pixel_width| by |available_pixel_height|
|
| -// rectangle passed to |ElideRectangleText()| had insufficient space to
|
| -// accommodate the given |text|, leading to elision or truncation.
|
| -enum ReformattingResultFlags {
|
| - INSUFFICIENT_SPACE_HORIZONTAL = 1 << 0,
|
| - INSUFFICIENT_SPACE_VERTICAL = 1 << 1,
|
| -};
|
| -
|
| -// Reformats |text| into output vector |lines| so that the resulting text fits
|
| -// into an |available_pixel_width| by |available_pixel_height| rectangle with
|
| -// the specified |font_list|. Input newlines are respected, but lines that are
|
| -// too long are broken into pieces. For words that are too wide to fit on a
|
| -// single line, the wrapping behavior can be specified with the |wrap_behavior|
|
| -// param. Returns a combination of |ReformattingResultFlags| that indicate
|
| -// whether the given rectangle had insufficient space to accommodate |text|,
|
| -// leading to elision or truncation (and not just reformatting).
|
| -GFX_EXPORT int ElideRectangleText(const base::string16& text,
|
| - const gfx::FontList& font_list,
|
| - float available_pixel_width,
|
| - int available_pixel_height,
|
| - WordWrapBehavior wrap_behavior,
|
| - std::vector<base::string16>* lines);
|
| -
|
| -// Truncates |string| to |length| characters. This breaks the string according
|
| -// to the specified |break_type|, which must be either WORD_BREAK or
|
| -// CHARACTER_BREAK, and adds the horizontal ellipsis character (unicode
|
| -// character 0x2026) to render "...". The supplied string is returned if the
|
| -// string has |length| characters or less.
|
| -GFX_EXPORT base::string16 TruncateString(const base::string16& string,
|
| - size_t length,
|
| - BreakType break_type);
|
| -
|
| -} // namespace gfx
|
| -
|
| -#endif // UI_GFX_TEXT_ELIDER_H_
|
|
|