464ef4b290f234e87ad8db6d4713951df7201eab
[WebKit-https.git] / Source / WebInspectorUI / UserInterface / Views / ToggleButtonNavigationItem.js
1 /*
2  * Copyright (C) 2013, 2015 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 WI.ToggleButtonNavigationItem = class ToggleButtonNavigationItem extends WI.ButtonNavigationItem
27 {
28     constructor(identifier, defaultToolTip, alternateToolTip, defaultImage, alternateImage, imageWidth, imageHeight)
29     {
30         super(identifier, defaultToolTip, defaultImage, imageWidth, imageHeight);
31
32         this._toggled = false;
33         this._defaultImage = defaultImage;
34         this._alternateImage = alternateImage;
35         this._defaultToolTip = defaultToolTip;
36         this._alternateToolTip = alternateToolTip || defaultToolTip;
37     }
38
39     // Public
40
41     get defaultToolTip()
42     {
43         return this._defaultToolTip;
44     }
45
46     get alternateToolTip()
47     {
48         return this._alternateToolTip;
49     }
50
51     set alternateToolTip(toolTip)
52     {
53         this._alternateToolTip = toolTip;
54
55         if (this._toggled)
56             this.tooltip = this._alternateToolTip;
57     }
58
59     get defaultImage()
60     {
61         return this._defaultImage;
62     }
63
64     get alternateImage()
65     {
66         return this._alternateImage;
67     }
68
69     set alternateImage(image)
70     {
71         this._alternateImage = image;
72
73         if (this._toggled)
74             this.image = this._alternateImage;
75     }
76
77     get toggled()
78     {
79         return this._toggled;
80     }
81
82     set toggled(flag)
83     {
84         flag = flag || false;
85
86         if (this._toggled === flag)
87             return;
88
89         this._toggled = flag;
90
91         if (this._toggled) {
92             this.tooltip = this._alternateToolTip;
93             this.image = this._alternateImage;
94         } else {
95             this.tooltip = this._defaultToolTip;
96             this.image = this._defaultImage;
97         }
98     }
99
100     // Protected
101
102     get additionalClassNames()
103     {
104         return ["toggle", "button"];
105     }
106 };