| OLD | NEW |
| (Empty) |
| 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 #include "chrome/browser/ui/autofill/autofill_dialog_types.h" | |
| 6 | |
| 7 #include <stddef.h> | |
| 8 | |
| 9 #include "base/logging.h" | |
| 10 #include "base/strings/string_split.h" | |
| 11 #include "base/strings/string_util.h" | |
| 12 #include "ui/gfx/color_palette.h" | |
| 13 | |
| 14 namespace { | |
| 15 | |
| 16 bool IsSureError(const autofill::ValidityMessage& message) { | |
| 17 return message.sure && !message.text.empty(); | |
| 18 } | |
| 19 | |
| 20 } // namespace | |
| 21 | |
| 22 namespace autofill { | |
| 23 | |
| 24 static const base::char16 kRangeSeparator = '|'; | |
| 25 | |
| 26 DialogNotification::DialogNotification() : type_(NONE) {} | |
| 27 | |
| 28 DialogNotification::DialogNotification(Type type, | |
| 29 const base::string16& display_text) | |
| 30 : type_(type), | |
| 31 display_text_(display_text), | |
| 32 checked_(false) { | |
| 33 // If there's a range separated by bars, mark that as the anchor text. | |
| 34 std::vector<base::string16> pieces = base::SplitString( | |
| 35 display_text, base::string16(1, kRangeSeparator), | |
| 36 base::KEEP_WHITESPACE, base::SPLIT_WANT_ALL); | |
| 37 if (pieces.size() > 1) { | |
| 38 size_t start = pieces[0].size(); | |
| 39 size_t end = start + pieces[1].size(); | |
| 40 link_range_ = gfx::Range(start, end); | |
| 41 display_text_ = base::JoinString(pieces, base::StringPiece16()); | |
| 42 } | |
| 43 } | |
| 44 | |
| 45 DialogNotification::DialogNotification(const DialogNotification& other) = | |
| 46 default; | |
| 47 | |
| 48 DialogNotification::~DialogNotification() {} | |
| 49 | |
| 50 SkColor DialogNotification::GetBackgroundColor() const { | |
| 51 switch (type_) { | |
| 52 case DialogNotification::WALLET_USAGE_CONFIRMATION: | |
| 53 return SkColorSetRGB(0xf5, 0xf5, 0xf5); | |
| 54 case DialogNotification::REQUIRED_ACTION: | |
| 55 case DialogNotification::WALLET_ERROR: | |
| 56 return SkColorSetRGB(0xfc, 0xf3, 0xbf); | |
| 57 case DialogNotification::DEVELOPER_WARNING: | |
| 58 case DialogNotification::SECURITY_WARNING: | |
| 59 return kWarningColor; | |
| 60 case DialogNotification::NONE: | |
| 61 return SK_ColorTRANSPARENT; | |
| 62 } | |
| 63 | |
| 64 NOTREACHED(); | |
| 65 return SK_ColorTRANSPARENT; | |
| 66 } | |
| 67 | |
| 68 SkColor DialogNotification::GetBorderColor() const { | |
| 69 switch (type_) { | |
| 70 case DialogNotification::WALLET_USAGE_CONFIRMATION: | |
| 71 return SkColorSetRGB(0xe5, 0xe5, 0xe5); | |
| 72 case DialogNotification::REQUIRED_ACTION: | |
| 73 case DialogNotification::WALLET_ERROR: | |
| 74 case DialogNotification::DEVELOPER_WARNING: | |
| 75 case DialogNotification::SECURITY_WARNING: | |
| 76 case DialogNotification::NONE: | |
| 77 return GetBackgroundColor(); | |
| 78 } | |
| 79 | |
| 80 NOTREACHED(); | |
| 81 return SK_ColorTRANSPARENT; | |
| 82 } | |
| 83 | |
| 84 SkColor DialogNotification::GetTextColor() const { | |
| 85 switch (type_) { | |
| 86 case DialogNotification::REQUIRED_ACTION: | |
| 87 case DialogNotification::WALLET_ERROR: | |
| 88 case DialogNotification::WALLET_USAGE_CONFIRMATION: | |
| 89 return SkColorSetRGB(102, 102, 102); | |
| 90 case DialogNotification::DEVELOPER_WARNING: | |
| 91 case DialogNotification::SECURITY_WARNING: | |
| 92 return SK_ColorWHITE; | |
| 93 case DialogNotification::NONE: | |
| 94 return SK_ColorTRANSPARENT; | |
| 95 } | |
| 96 | |
| 97 NOTREACHED(); | |
| 98 return SK_ColorTRANSPARENT; | |
| 99 } | |
| 100 | |
| 101 bool DialogNotification::HasArrow() const { | |
| 102 return type_ == DialogNotification::WALLET_ERROR || | |
| 103 type_ == DialogNotification::WALLET_USAGE_CONFIRMATION; | |
| 104 } | |
| 105 | |
| 106 bool DialogNotification::HasCheckbox() const { | |
| 107 return type_ == DialogNotification::WALLET_USAGE_CONFIRMATION; | |
| 108 } | |
| 109 | |
| 110 SkColor const kWarningColor = gfx::kGoogleRed700; | |
| 111 SkColor const kLightShadingColor = SkColorSetARGB(7, 0, 0, 0); | |
| 112 SkColor const kSubtleBorderColor = SkColorSetARGB(10, 0, 0, 0); | |
| 113 | |
| 114 SuggestionState::SuggestionState() | |
| 115 : visible(false) {} | |
| 116 SuggestionState::SuggestionState( | |
| 117 bool visible, | |
| 118 const base::string16& vertically_compact_text, | |
| 119 const base::string16& horizontally_compact_text, | |
| 120 const gfx::Image& icon, | |
| 121 const base::string16& extra_text, | |
| 122 const gfx::Image& extra_icon) | |
| 123 : visible(visible), | |
| 124 vertically_compact_text(vertically_compact_text), | |
| 125 horizontally_compact_text(horizontally_compact_text), | |
| 126 icon(icon), | |
| 127 extra_text(extra_text), | |
| 128 extra_icon(extra_icon) {} | |
| 129 SuggestionState::SuggestionState(const SuggestionState& other) = default; | |
| 130 SuggestionState::~SuggestionState() {} | |
| 131 | |
| 132 DialogOverlayString::DialogOverlayString() {} | |
| 133 DialogOverlayString::~DialogOverlayString() {} | |
| 134 | |
| 135 DialogOverlayState::DialogOverlayState() {} | |
| 136 DialogOverlayState::~DialogOverlayState() {} | |
| 137 | |
| 138 ValidityMessage::ValidityMessage(const base::string16& text, bool sure) | |
| 139 : text(text), sure(sure) {} | |
| 140 ValidityMessage::~ValidityMessage() {} | |
| 141 | |
| 142 ValidityMessages::ValidityMessages() | |
| 143 : default_message_(ValidityMessage(base::string16(), false)) {} | |
| 144 ValidityMessages::ValidityMessages(const ValidityMessages& other) = default; | |
| 145 ValidityMessages::~ValidityMessages() {} | |
| 146 | |
| 147 void ValidityMessages::Set( | |
| 148 ServerFieldType field, const ValidityMessage& message) { | |
| 149 MessageMap::iterator iter = messages_.find(field); | |
| 150 if (iter != messages_.end()) { | |
| 151 if (!iter->second.text.empty()) | |
| 152 return; | |
| 153 | |
| 154 messages_.erase(iter); | |
| 155 } | |
| 156 | |
| 157 messages_.insert(MessageMap::value_type(field, message)); | |
| 158 } | |
| 159 | |
| 160 const ValidityMessage& ValidityMessages::GetMessageOrDefault( | |
| 161 ServerFieldType field) const { | |
| 162 MessageMap::const_iterator iter = messages_.find(field); | |
| 163 return iter != messages_.end() ? iter->second : default_message_; | |
| 164 } | |
| 165 | |
| 166 bool ValidityMessages::HasSureError(ServerFieldType field) const { | |
| 167 return IsSureError(GetMessageOrDefault(field)); | |
| 168 } | |
| 169 | |
| 170 bool ValidityMessages::HasErrors() const { | |
| 171 for (MessageMap::const_iterator iter = messages_.begin(); | |
| 172 iter != messages_.end(); ++iter) { | |
| 173 if (!iter->second.text.empty()) | |
| 174 return true; | |
| 175 } | |
| 176 return false; | |
| 177 } | |
| 178 | |
| 179 bool ValidityMessages::HasSureErrors() const { | |
| 180 for (MessageMap::const_iterator iter = messages_.begin(); | |
| 181 iter != messages_.end(); ++iter) { | |
| 182 if (IsSureError(iter->second)) | |
| 183 return true; | |
| 184 } | |
| 185 return false; | |
| 186 } | |
| 187 | |
| 188 } // namespace autofill | |
| OLD | NEW |