• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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 #ifndef CHROME_BROWSER_DEVTOOLS_DEVTOOLS_TOGGLE_ACTION_H_
6 #define CHROME_BROWSER_DEVTOOLS_DEVTOOLS_TOGGLE_ACTION_H_
7 
8 #include "base/basictypes.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "base/strings/string16.h"
11 
12 struct DevToolsToggleAction {
13  public:
14   enum Type {
15     kShow,
16     kShowConsole,
17     kInspect,
18     kToggle,
19     kReveal,
20     kNoOp
21   };
22 
23   struct RevealParams {
24     RevealParams(const base::string16& url,
25                  size_t line_number,
26                  size_t column_number);
27     ~RevealParams();
28 
29     base::string16 url;
30     size_t line_number;
31     size_t column_number;
32   };
33 
34   void operator=(const DevToolsToggleAction& rhs);
35   DevToolsToggleAction(const DevToolsToggleAction& rhs);
36   ~DevToolsToggleAction();
37 
38   static DevToolsToggleAction Show();
39   static DevToolsToggleAction ShowConsole();
40   static DevToolsToggleAction Inspect();
41   static DevToolsToggleAction Toggle();
42   static DevToolsToggleAction Reveal(const base::string16& url,
43                                      size_t line_number,
44                                      size_t column_number);
45   static DevToolsToggleAction NoOp();
46 
typeDevToolsToggleAction47   Type type() const { return type_; }
paramsDevToolsToggleAction48   const RevealParams* params() const { return params_.get(); }
49 
50  private:
51   explicit DevToolsToggleAction(Type type);
52   explicit DevToolsToggleAction(RevealParams* reveal_params);
53 
54   // The type of action.
55   Type type_;
56 
57   // Additional parameters for the Reveal action; NULL if of any other type.
58   scoped_ptr<RevealParams> params_;
59 };
60 
61 #endif  // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_TOGGLE_ACTION_H_
62