// Copyright (c) 2011 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_DEVTOOLS_DEVTOOLS_TOGGLE_ACTION_H_ #define CHROME_BROWSER_DEVTOOLS_DEVTOOLS_TOGGLE_ACTION_H_ #include "base/basictypes.h" #include "base/memory/scoped_ptr.h" #include "base/strings/string16.h" struct DevToolsToggleAction { public: enum Type { kShow, kShowConsole, kInspect, kToggle, kReveal }; struct RevealParams { RevealParams(const base::string16& url, size_t line_number, size_t column_number); ~RevealParams(); base::string16 url; size_t line_number; size_t column_number; }; void operator=(const DevToolsToggleAction& rhs); DevToolsToggleAction(const DevToolsToggleAction& rhs); ~DevToolsToggleAction(); static DevToolsToggleAction Show(); static DevToolsToggleAction ShowConsole(); static DevToolsToggleAction Inspect(); static DevToolsToggleAction Toggle(); static DevToolsToggleAction Reveal(const base::string16& url, size_t line_number, size_t column_number); Type type() const { return type_; } const RevealParams* params() const { return params_.get(); } private: explicit DevToolsToggleAction(Type type); explicit DevToolsToggleAction(RevealParams* reveal_params); // The type of action. Type type_; // Additional parameters for the Reveal action; NULL if of any other type. scoped_ptr<RevealParams> params_; }; #endif // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_TOGGLE_ACTION_H_