diff options
Diffstat (limited to 'chrome/browser/dom_ui/textfields_ui.h')
-rw-r--r-- | chrome/browser/dom_ui/textfields_ui.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/chrome/browser/dom_ui/textfields_ui.h b/chrome/browser/dom_ui/textfields_ui.h new file mode 100644 index 0000000..f70d45e --- /dev/null +++ b/chrome/browser/dom_ui/textfields_ui.h @@ -0,0 +1,71 @@ +// Copyright (c) 2010 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. + +#ifndef CHROME_BROWSER_DOM_UI_TEXTFIELDS_UI_H_ +#define CHROME_BROWSER_DOM_UI_TEXTFIELDS_UI_H_ +#pragma once + +#include <string> + +#include "chrome/browser/dom_ui/chrome_url_data_manager.h" +#include "chrome/browser/dom_ui/dom_ui.h" + +class RefCountedMemory; + +/** + * ChromeURLDataManager::DataSource implementation that asynchronously answers + * requests for chrome://textfields URL. On receiving a request, this object + * reads the html from the local resource textfields.html and sends back the + * response. + */ +class TextfieldsUIHTMLSource : public ChromeURLDataManager::DataSource { + public: + TextfieldsUIHTMLSource(); + + // Called when the network layer has requested a resource underneath + // the path we registered. + virtual void StartDataRequest(const std::string& path, + bool is_off_the_record, + int request_id); + virtual std::string GetMimeType(const std::string& path) const; + + private: + virtual ~TextfieldsUIHTMLSource(); + + DISALLOW_COPY_AND_ASSIGN(TextfieldsUIHTMLSource); +}; + +/** + * Handler for JavaScript calls from the DOM. + */ +class TextfieldsDOMHandler : public DOMMessageHandler { + public: + TextfieldsDOMHandler(); + + // Handles the "textfieldValue" call from the JavaScript. This call + // synchonizes the value inside the JavaScript textfield with the copy in the + // DOM object. + virtual void HandleTextfieldValue(const ListValue* args); + + protected: + virtual void RegisterMessages(); + + private: + DISALLOW_COPY_AND_ASSIGN(TextfieldsDOMHandler); +}; + +class TextfieldsUI : public DOMUI { + public: + explicit TextfieldsUI(TabContents* contents); + + const std::wstring& text() const { return text_; } + void set_text(const std::wstring& text) { text_ = text; } + + private: + std::wstring text_; + + DISALLOW_COPY_AND_ASSIGN(TextfieldsUI); +}; + +#endif // CHROME_BROWSER_DOM_UI_TEXTFIELDS_UI_H_ |