Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright 2007 Google Inc. All Rights Reserved. | 2 * Copyright 2007 Google Inc. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Portions Copyright (C) 2006 Apple Computer, Inc. All rights reserved. | 4 * Portions Copyright (C) 2006 Apple Computer, Inc. All rights reserved. |
| 5 * | 5 * |
| 6 * ***** BEGIN LICENSE BLOCK ***** | 6 * ***** BEGIN LICENSE BLOCK ***** |
| 7 * | 7 * |
| 8 * Redistribution and use in source and binary forms, with or without | 8 * Redistribution and use in source and binary forms, with or without |
| 9 * modification, are permitted provided that the following conditions | 9 * modification, are permitted provided that the following conditions |
| 10 * are met: | 10 * are met: |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 29 * ***** END LICENSE BLOCK ***** | 29 * ***** END LICENSE BLOCK ***** |
| 30 * | 30 * |
| 31 */ | 31 */ |
| 32 | 32 |
| 33 #include "config.h" | 33 #include "config.h" |
| 34 #include "build/build_config.h" | 34 #include "build/build_config.h" |
| 35 | 35 |
| 36 #include "base/compiler_specific.h" | 36 #include "base/compiler_specific.h" |
| 37 MSVC_PUSH_WARNING_LEVEL(0); | 37 MSVC_PUSH_WARNING_LEVEL(0); |
| 38 #include "CSSStyleSelector.h" | 38 #include "CSSStyleSelector.h" |
| 39 #include "CSSValueKeywords.h" | |
| 39 #include "Cursor.h" | 40 #include "Cursor.h" |
| 40 #include "Document.h" | 41 #include "Document.h" |
| 41 #include "DocumentLoader.h" | 42 #include "DocumentLoader.h" |
| 42 #include "DragController.h" | 43 #include "DragController.h" |
| 43 #include "DragData.h" | 44 #include "DragData.h" |
| 44 #include "Editor.h" | 45 #include "Editor.h" |
| 45 #include "EventHandler.h" | 46 #include "EventHandler.h" |
| 46 #include "FocusController.h" | 47 #include "FocusController.h" |
| 47 #include "FontDescription.h" | 48 #include "FontDescription.h" |
| 48 #include "FrameLoader.h" | 49 #include "FrameLoader.h" |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 125 : public RefCounted<AutocompletePopupMenuClient>, | 126 : public RefCounted<AutocompletePopupMenuClient>, |
| 126 public WebCore::PopupMenuClient { | 127 public WebCore::PopupMenuClient { |
| 127 public: | 128 public: |
| 128 AutocompletePopupMenuClient(WebViewImpl* webview, | 129 AutocompletePopupMenuClient(WebViewImpl* webview, |
| 129 WebCore::HTMLInputElement* text_field, | 130 WebCore::HTMLInputElement* text_field, |
| 130 const std::vector<std::wstring>& suggestions, | 131 const std::vector<std::wstring>& suggestions, |
| 131 int default_suggestion_index) | 132 int default_suggestion_index) |
| 132 : text_field_(text_field), | 133 : text_field_(text_field), |
| 133 selected_index_(default_suggestion_index), | 134 selected_index_(default_suggestion_index), |
| 134 webview_(webview) { | 135 webview_(webview) { |
| 136 FontDescription font_description; | |
| 137 #if defined(OS_WIN) | |
| 138 theme()->systemFont(CSSValueWebkitControl, text_field->document(), | |
| 139 font_description); | |
| 140 #else | |
| 141 NOTIMPLEMENTED(); | |
| 142 #endif | |
| 143 // Use a smaller font size to match IE/Firefox. | |
| 144 font_description.setComputedSize(12.0); | |
|
ojan
2009/02/04 02:12:47
Please add a TODO to make sure that this works wel
| |
| 145 Font font(font_description, 0, 0); | |
| 146 font.update(text_field->document()->styleSelector()->fontSelector()); | |
| 147 style_.reset(new PopupMenuStyle(Color::black, Color::white, font, true)); | |
| 135 SetSuggestions(suggestions); | 148 SetSuggestions(suggestions); |
| 136 } | 149 } |
| 137 virtual ~AutocompletePopupMenuClient() { | 150 virtual ~AutocompletePopupMenuClient() { |
| 138 } | 151 } |
| 139 | 152 |
| 140 virtual void valueChanged(unsigned listIndex, bool fireEvents = true) { | 153 virtual void valueChanged(unsigned listIndex, bool fireEvents = true) { |
| 141 text_field_->setValue(suggestions_[listIndex]); | 154 text_field_->setValue(suggestions_[listIndex]); |
| 142 } | 155 } |
| 143 | 156 |
| 144 virtual WebCore::String itemText(unsigned list_index) const { | 157 virtual WebCore::String itemText(unsigned list_index) const { |
| 145 return suggestions_[list_index]; | 158 return suggestions_[list_index]; |
| 146 } | 159 } |
| 147 | 160 |
| 148 virtual bool itemIsEnabled(unsigned listIndex) const { | 161 virtual bool itemIsEnabled(unsigned listIndex) const { |
| 149 return true; | 162 return true; |
| 150 } | 163 } |
| 151 | 164 |
| 152 virtual PopupMenuStyle itemStyle(unsigned listIndex) const { | 165 virtual PopupMenuStyle itemStyle(unsigned listIndex) const { |
| 153 return menuStyle(); | 166 return *style_; |
| 154 } | 167 } |
| 155 | 168 |
| 156 virtual PopupMenuStyle menuStyle() const { | 169 virtual PopupMenuStyle menuStyle() const { |
| 157 RenderStyle* style = text_field_->renderStyle() ? | 170 return *style_; |
| 158 text_field_->renderStyle() : | |
| 159 text_field_->computedStyle(); | |
| 160 return PopupMenuStyle(style->color(), Color::white, style->font(), | |
| 161 style->visibility() == VISIBLE); | |
| 162 } | 171 } |
| 163 | 172 |
| 164 virtual int clientInsetLeft() const { | 173 virtual int clientInsetLeft() const { |
| 165 return 0; | 174 return 0; |
| 166 } | 175 } |
| 167 virtual int clientInsetRight() const { | 176 virtual int clientInsetRight() const { |
| 168 return 0; | 177 return 0; |
| 169 } | 178 } |
| 170 virtual int clientPaddingLeft() const { | 179 virtual int clientPaddingLeft() const { |
| 171 #if defined(OS_WIN) | 180 #if defined(OS_WIN) |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 243 | 252 |
| 244 WebCore::HTMLInputElement* text_field() const { | 253 WebCore::HTMLInputElement* text_field() const { |
| 245 return text_field_.get(); | 254 return text_field_.get(); |
| 246 } | 255 } |
| 247 | 256 |
| 248 private: | 257 private: |
| 249 RefPtr<WebCore::HTMLInputElement> text_field_; | 258 RefPtr<WebCore::HTMLInputElement> text_field_; |
| 250 std::vector<WebCore::String> suggestions_; | 259 std::vector<WebCore::String> suggestions_; |
| 251 int selected_index_; | 260 int selected_index_; |
| 252 WebViewImpl* webview_; | 261 WebViewImpl* webview_; |
| 262 scoped_ptr<PopupMenuStyle> style_; | |
| 253 }; | 263 }; |
| 254 | 264 |
| 255 // WebView ---------------------------------------------------------------- | 265 // WebView ---------------------------------------------------------------- |
| 256 | 266 |
| 257 /*static*/ | 267 /*static*/ |
| 258 WebView* WebView::Create(WebViewDelegate* delegate, | 268 WebView* WebView::Create(WebViewDelegate* delegate, |
| 259 const WebPreferences& prefs) { | 269 const WebPreferences& prefs) { |
| 260 WebViewImpl* instance = new WebViewImpl(); | 270 WebViewImpl* instance = new WebViewImpl(); |
| 261 instance->AddRef(); | 271 instance->AddRef(); |
| 262 instance->SetPreferences(prefs); | 272 instance->SetPreferences(prefs); |
| (...skipping 1365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1628 Frame* frame = page_->focusController()->focusedFrame(); | 1638 Frame* frame = page_->focusController()->focusedFrame(); |
| 1629 if (!frame) | 1639 if (!frame) |
| 1630 return NULL; | 1640 return NULL; |
| 1631 | 1641 |
| 1632 Document* document = frame->document(); | 1642 Document* document = frame->document(); |
| 1633 if (!document) | 1643 if (!document) |
| 1634 return NULL; | 1644 return NULL; |
| 1635 | 1645 |
| 1636 return document->focusedNode(); | 1646 return document->focusedNode(); |
| 1637 } | 1647 } |
| OLD | NEW |