Index: ui/views/examples/text_example.cc |
diff --git a/ui/views/examples/text_example.cc b/ui/views/examples/text_example.cc |
index d4055009dcf40b99e232665efdb5cb95cb77fc2f..2682e73bd1400275365bef430fc41946803d1a2b 100644 |
--- a/ui/views/examples/text_example.cc |
+++ b/ui/views/examples/text_example.cc |
@@ -16,8 +16,6 @@ |
#include "ui/views/layout/grid_layout.h" |
#include "ui/views/view.h" |
-using base::ASCIIToUTF16; |
- |
namespace views { |
namespace examples { |
@@ -26,48 +24,31 @@ namespace { |
// Number of columns in the view layout. |
const int kNumColumns = 10; |
-const char kShortText[] = "Batman"; |
-const char kMediumText[] = "The quick brown fox jumps over the lazy dog."; |
+const char kShortText[] = "The quick brown fox jumps over the lazy dog."; |
const char kLongText[] = |
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod " |
"tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim " |
"veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea " |
- "commodo consequat. Duis aute irure dolor in reprehenderit in voluptate " |
- "velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint " |
+ "commodo consequat.\nDuis aute irure dolor in reprehenderit in voluptate " |
+ "velit esse cillum dolore eu fugiat nulla pariatur.\n\nExcepteur sint " |
"occaecat cupidatat non proident, sunt in culpa qui officia deserunt " |
"mollit anim id est laborum."; |
const char kAmpersandText[] = |
"The quick && &brown fo&x jumps over the lazy dog."; |
-const char kNewlineText[] = |
- "The quick \nbrown fox jumps\n\n over the lazy dog."; |
- |
-const char* kTextExamples[] = { |
- "Short", |
- "Medium", |
- "Long", |
- "Ampersands", |
- "Newlines", |
-}; |
- |
-const char* kElidingBehaviors[] = { |
- "Ellipsis", |
- "None", |
- "Fade Tail", |
- "Fade Head", |
-}; |
- |
-const char* kPrefixOptions[] = { |
- "Default", |
- "Show", |
- "Hide", |
-}; |
- |
-const char* kHorizontalAligments[] = { |
- "Default", |
- "Left", |
- "Center", |
- "Right", |
-}; |
+const wchar_t kRightToLeftText[] = |
+ L"\x5e9\x5dc\x5d5\x5dd \x5d4\x5e2\x5d5\x5dc\x5dd! " |
+ L"\x5e9\x5dc\x5d5\x5dd \x5d4\x5e2\x5d5\x5dc\x5dd! " |
+ L"\x5e9\x5dc\x5d5\x5dd \x5d4\x5e2\x5d5\x5dc\x5dd! " |
+ L"\x5e9\x5dc\x5d5\x5dd \x5d4\x5e2\x5d5\x5dc\x5dd! " |
+ L"\x5e9\x5dc\x5d5\x5dd \x5d4\x5e2\x5d5\x5dc\x5dd! " |
+ L"\x5e9\x5dc\x5d5\x5dd \x5d4\x5e2\x5d5\x5dc\x5dd! " |
+ L"\x5e9\x5dc\x5d5\x5dd \x5d4\x5e2\x5d5\x5dc\x5dd! " |
+ L"\x5e9\x5dc\x5d5\x5dd \x5d4\x5e2\x5d5\x5dc\x5dd!"; |
+ |
+const char* kTextExamples[] = { "Short", "Long", "Ampersands", "RTL Hebrew", }; |
+const char* kElideBehaviors[] = { "Elide", "Truncate", "Fade", }; |
+const char* kPrefixOptions[] = { "Default", "Show", "Hide", }; |
+const char* kHorizontalAligments[] = { "Default", "Left", "Center", "Right", }; |
// Toggles bit |flag| on |flags| based on state of |checkbox|. |
void SetFlagFromCheckbox(Checkbox* checkbox, int* flags, int flag) { |
@@ -79,55 +60,38 @@ void SetFlagFromCheckbox(Checkbox* checkbox, int* flags, int flag) { |
} // namespace |
-// TextExample's content view, which is responsible for drawing a string with |
-// the specified style. |
+// TextExample's content view, which draws stylized string. |
class TextExample::TextExampleView : public View { |
public: |
TextExampleView() |
- : text_(ASCIIToUTF16(kShortText)), |
- text_flags_(0), |
+ : text_(base::ASCIIToUTF16(kShortText)), |
+ flags_(0), |
halo_(false), |
- fade_(false), |
- fade_mode_(gfx::Canvas::TruncateFadeTail) { |
+ elide_(gfx::TRUNCATE) { |
} |
virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE { |
View::OnPaint(canvas); |
const gfx::Rect bounds = GetContentsBounds(); |
- |
- if (fade_) { |
- canvas->DrawFadeTruncatingStringRect(text_, fade_mode_, font_list_, |
- SK_ColorDKGRAY, bounds); |
+ const SkColor color = SK_ColorDKGRAY; |
+ if (elide_ == gfx::FADE_TAIL) { |
+ canvas->DrawFadedString(text_, font_list_, color, bounds, flags_); |
} else if (halo_) { |
- canvas->DrawStringRectWithHalo(text_, font_list_, SK_ColorDKGRAY, |
- SK_ColorWHITE, bounds, text_flags_); |
+ canvas->DrawStringRectWithHalo(text_, font_list_, color, SK_ColorYELLOW, |
+ bounds, flags_); |
} else { |
- canvas->DrawStringRectWithFlags(text_, font_list_, SK_ColorDKGRAY, bounds, |
- text_flags_); |
+ canvas->DrawStringRectWithFlags(text_, font_list_, color, bounds, flags_); |
} |
} |
- int text_flags() const { return text_flags_; } |
- void set_text_flags(int text_flags) { text_flags_ = text_flags; } |
- |
- const base::string16& text() const { return text_; } |
+ int flags() const { return flags_; } |
+ void set_flags(int flags) { flags_ = flags; } |
void set_text(const base::string16& text) { text_ = text; } |
- |
- bool halo() const { return halo_; } |
void set_halo(bool halo) { halo_ = halo; } |
+ void set_elide(gfx::ElideBehavior elide) { elide_ = elide; } |
- bool fade() const { return fade_; } |
- void set_fade(bool fade) { fade_ = fade; } |
- |
- gfx::Canvas::TruncateFadeMode fade_mode() const { return fade_mode_; } |
- void set_fade_mode(gfx::Canvas::TruncateFadeMode mode) { fade_mode_ = mode; } |
- |
- int GetFontStyle() const { |
- return font_list_.GetFontStyle(); |
- } |
- void SetFontStyle(int style) { |
- font_list_ = font_list_.DeriveWithStyle(style); |
- } |
+ int GetStyle() const { return font_list_.GetFontStyle(); } |
+ void SetStyle(int style) { font_list_ = font_list_.DeriveWithStyle(style); } |
private: |
// The font used for drawing the text. |
@@ -137,33 +101,26 @@ class TextExample::TextExampleView : public View { |
base::string16 text_; |
// Text flags for passing to |DrawStringRect()|. |
- int text_flags_; |
+ int flags_; |
- // If |true|, specifies to call |DrawStringWithHalo()| instead of |
- // |DrawStringRect()|. |
+ // A flag to draw a halo around the text. |
bool halo_; |
- // If |true|, specifies to call |DrawFadeTruncatingString()| instead of |
- // |DrawStringRect()|. |
- bool fade_; |
- |
- // If |fade_| is |true|, fade mode parameter to |DrawFadeTruncatingString()|. |
- gfx::Canvas::TruncateFadeMode fade_mode_; |
+ // The eliding, fading, or truncating behavior. |
+ gfx::ElideBehavior elide_; |
DISALLOW_COPY_AND_ASSIGN(TextExampleView); |
}; |
-TextExample::TextExample() : ExampleBase("Text Styles") { |
-} |
+TextExample::TextExample() : ExampleBase("Text Styles") {} |
TextExample::~TextExample() { |
- // Remove all the views first as some reference models in |
- // |example_combobox_model_|. |
+ // Remove the views first as some reference combobox models. |
container()->RemoveAllChildViews(true); |
} |
Checkbox* TextExample::AddCheckbox(GridLayout* layout, const char* name) { |
- Checkbox* checkbox = new Checkbox(ASCIIToUTF16(name)); |
+ Checkbox* checkbox = new Checkbox(base::ASCIIToUTF16(name)); |
checkbox->set_listener(this); |
layout->AddView(checkbox); |
return checkbox; |
@@ -174,11 +131,10 @@ Combobox* TextExample::AddCombobox(GridLayout* layout, |
const char** strings, |
int count) { |
layout->StartRow(0, 0); |
- layout->AddView(new Label(ASCIIToUTF16(name))); |
- ExampleComboboxModel* combobox_model = new ExampleComboboxModel(strings, |
- count); |
- example_combobox_model_.push_back(combobox_model); |
- Combobox* combobox = new Combobox(combobox_model); |
+ layout->AddView(new Label(base::ASCIIToUTF16(name))); |
+ ExampleComboboxModel* model = new ExampleComboboxModel(strings, count); |
+ example_combobox_model_.push_back(model); |
+ Combobox* combobox = new Combobox(model); |
combobox->SetSelectedIndex(0); |
combobox->set_listener(this); |
layout->AddView(combobox, kNumColumns - 1, 1); |
@@ -188,10 +144,8 @@ Combobox* TextExample::AddCombobox(GridLayout* layout, |
void TextExample::CreateExampleView(View* container) { |
text_view_ = new TextExampleView; |
text_view_->SetBorder(Border::CreateSolidBorder(1, SK_ColorGRAY)); |
- |
GridLayout* layout = new GridLayout(container); |
container->SetLayoutManager(layout); |
- |
layout->AddPaddingRow(0, 8); |
ColumnSet* column_set = layout->AddColumnSet(0); |
@@ -203,33 +157,24 @@ void TextExample::CreateExampleView(View* container) { |
0.1f, GridLayout::USE_PREF, 0, 0); |
column_set->AddPaddingColumn(0, 8); |
- h_align_cb_ = AddCombobox(layout, |
- "H-Align", |
- kHorizontalAligments, |
+ h_align_cb_ = AddCombobox(layout, "H-Align", kHorizontalAligments, |
arraysize(kHorizontalAligments)); |
- eliding_cb_ = AddCombobox(layout, |
- "Eliding", |
- kElidingBehaviors, |
- arraysize(kElidingBehaviors)); |
- prefix_cb_ = AddCombobox(layout, |
- "Prefix", |
- kPrefixOptions, |
+ eliding_cb_ = AddCombobox(layout, "Eliding", kElideBehaviors, |
+ arraysize(kElideBehaviors)); |
+ prefix_cb_ = AddCombobox(layout, "Prefix", kPrefixOptions, |
arraysize(kPrefixOptions)); |
- text_cb_ = AddCombobox(layout, |
- "Example Text", |
- kTextExamples, |
+ text_cb_ = AddCombobox(layout, "Example Text", kTextExamples, |
arraysize(kTextExamples)); |
layout->StartRow(0, 0); |
multiline_checkbox_ = AddCheckbox(layout, "Multiline"); |
break_checkbox_ = AddCheckbox(layout, "Character Break"); |
- halo_checkbox_ = AddCheckbox(layout, "Text Halo"); |
+ halo_checkbox_ = AddCheckbox(layout, "Halo"); |
bold_checkbox_ = AddCheckbox(layout, "Bold"); |
italic_checkbox_ = AddCheckbox(layout, "Italic"); |
underline_checkbox_ = AddCheckbox(layout, "Underline"); |
- layout->AddPaddingRow(0, 32); |
- |
+ layout->AddPaddingRow(0, 20); |
column_set = layout->AddColumnSet(1); |
column_set->AddPaddingColumn(0, 16); |
column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, |
@@ -237,94 +182,83 @@ void TextExample::CreateExampleView(View* container) { |
column_set->AddPaddingColumn(0, 16); |
layout->StartRow(1, 1); |
layout->AddView(text_view_); |
- |
layout->AddPaddingRow(0, 8); |
} |
void TextExample::ButtonPressed(Button* button, const ui::Event& event) { |
- int flags = text_view_->text_flags(); |
- int style = text_view_->GetFontStyle(); |
+ int flags = text_view_->flags(); |
+ int style = text_view_->GetStyle(); |
SetFlagFromCheckbox(multiline_checkbox_, &flags, gfx::Canvas::MULTI_LINE); |
SetFlagFromCheckbox(break_checkbox_, &flags, gfx::Canvas::CHARACTER_BREAK); |
SetFlagFromCheckbox(bold_checkbox_, &style, gfx::Font::BOLD); |
SetFlagFromCheckbox(italic_checkbox_, &style, gfx::Font::ITALIC); |
SetFlagFromCheckbox(underline_checkbox_, &style, gfx::Font::UNDERLINE); |
text_view_->set_halo(halo_checkbox_->checked()); |
- text_view_->set_text_flags(flags); |
- text_view_->SetFontStyle(style); |
+ text_view_->set_flags(flags); |
+ text_view_->SetStyle(style); |
text_view_->SchedulePaint(); |
} |
void TextExample::OnPerformAction(Combobox* combobox) { |
- int text_flags = text_view_->text_flags(); |
+ int flags = text_view_->flags(); |
if (combobox == h_align_cb_) { |
- text_flags &= ~(gfx::Canvas::TEXT_ALIGN_LEFT | |
- gfx::Canvas::TEXT_ALIGN_CENTER | |
- gfx::Canvas::TEXT_ALIGN_RIGHT); |
+ flags &= ~(gfx::Canvas::TEXT_ALIGN_LEFT | |
+ gfx::Canvas::TEXT_ALIGN_CENTER | |
+ gfx::Canvas::TEXT_ALIGN_RIGHT); |
switch (combobox->selected_index()) { |
case 0: |
break; |
case 1: |
- text_flags |= gfx::Canvas::TEXT_ALIGN_LEFT; |
+ flags |= gfx::Canvas::TEXT_ALIGN_LEFT; |
break; |
case 2: |
- text_flags |= gfx::Canvas::TEXT_ALIGN_CENTER; |
+ flags |= gfx::Canvas::TEXT_ALIGN_CENTER; |
break; |
case 3: |
- text_flags |= gfx::Canvas::TEXT_ALIGN_RIGHT; |
+ flags |= gfx::Canvas::TEXT_ALIGN_RIGHT; |
break; |
} |
} else if (combobox == text_cb_) { |
switch (combobox->selected_index()) { |
case 0: |
- text_view_->set_text(ASCIIToUTF16(kShortText)); |
+ text_view_->set_text(base::ASCIIToUTF16(kShortText)); |
break; |
case 1: |
- text_view_->set_text(ASCIIToUTF16(kMediumText)); |
+ text_view_->set_text(base::ASCIIToUTF16(kLongText)); |
break; |
case 2: |
- text_view_->set_text(ASCIIToUTF16(kLongText)); |
+ text_view_->set_text(base::ASCIIToUTF16(kAmpersandText)); |
break; |
case 3: |
- text_view_->set_text(ASCIIToUTF16(kAmpersandText)); |
- break; |
- case 4: |
- text_view_->set_text(ASCIIToUTF16(kNewlineText)); |
+ text_view_->set_text(base::WideToUTF16(kRightToLeftText)); |
break; |
} |
} else if (combobox == eliding_cb_) { |
switch (combobox->selected_index()) { |
case 0: |
- text_flags &= ~gfx::Canvas::NO_ELLIPSIS; |
- text_view_->set_fade(false); |
+ text_view_->set_elide(gfx::ELIDE_TAIL); |
break; |
case 1: |
- text_flags |= gfx::Canvas::NO_ELLIPSIS; |
- text_view_->set_fade(false); |
+ text_view_->set_elide(gfx::TRUNCATE); |
break; |
case 2: |
- text_view_->set_fade_mode(gfx::Canvas::TruncateFadeTail); |
- text_view_->set_fade(true); |
- break; |
- case 3: |
- text_view_->set_fade_mode(gfx::Canvas::TruncateFadeHead); |
- text_view_->set_fade(true); |
+ text_view_->set_elide(gfx::FADE_TAIL); |
break; |
} |
} else if (combobox == prefix_cb_) { |
- text_flags &= ~(gfx::Canvas::SHOW_PREFIX | gfx::Canvas::HIDE_PREFIX); |
+ flags &= ~(gfx::Canvas::SHOW_PREFIX | gfx::Canvas::HIDE_PREFIX); |
switch (combobox->selected_index()) { |
case 0: |
break; |
case 1: |
- text_flags |= gfx::Canvas::SHOW_PREFIX; |
+ flags |= gfx::Canvas::SHOW_PREFIX; |
break; |
case 2: |
- text_flags |= gfx::Canvas::HIDE_PREFIX; |
+ flags |= gfx::Canvas::HIDE_PREFIX; |
break; |
} |
} |
- text_view_->set_text_flags(text_flags); |
+ text_view_->set_flags(flags); |
text_view_->SchedulePaint(); |
} |