1d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// found in the LICENSE file.
4d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
5d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#ifndef GamepadButton_h
6d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#define GamepadButton_h
7d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
8197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#include "bindings/core/v8/ScriptWrappable.h"
910f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch#include "platform/heap/Handle.h"
10d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "wtf/Vector.h"
11d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
12c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink {
13d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
14c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)class GamepadButton FINAL : public GarbageCollected<GamepadButton>, public ScriptWrappable {
157242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    DEFINE_WRAPPERTYPEINFO();
16d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)public:
176f543c786fc42989f552b4daa774ca5ff32fa697Ben Murdoch    static GamepadButton* create();
18d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
19d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    double value() const { return m_value; }
20d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    void setValue(double val) { m_value = val; }
21d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
22d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    bool pressed() const { return m_pressed; }
23d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    void setPressed(bool val) { m_pressed = val; }
24d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
25c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    void trace(Visitor*) { }
26d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
27d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)private:
28d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    GamepadButton();
29d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    double m_value;
30d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    bool m_pressed;
31d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)};
32d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
336f543c786fc42989f552b4daa774ca5ff32fa697Ben Murdochtypedef HeapVector<Member<GamepadButton> > GamepadButtonVector;
34d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
35c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink
36d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
37d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#endif // GamepadButton_h
38