Skip to content

Commit a4e1805

Browse files
committed
Button: Adding classes option
1 parent 9fba45d commit a4e1805

File tree

4 files changed

+20
-39
lines changed

4 files changed

+20
-39
lines changed

tests/unit/button/button_common.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ TestHelpers.commonWidgetTests( "button", {
66
label: null,
77
icon: null,
88
iconPosition: "beginning",
9+
classes: {
10+
"ui-button": "ui-corner-all",
11+
"ui-button-icon-only": "",
12+
"ui-button-icon": ""
13+
},
914

1015
// Callbacks
1116
create: null

tests/unit/button/button_options.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@ test( "showLabel false without icon", function() {
8080
$( "#button" ).button({
8181
showLabel: false
8282
});
83-
strictEqual( $( "#button" ).attr( "class" ), "ui-button ui-widget ui-corner-all" );
83+
strictEqual( $( "#button" ).is( ":ui-button.ui-corner-all.ui-widget" ), true,
84+
"Button has correct classes" );
8485

8586
$( "#button" ).button( "destroy" );
8687
});
@@ -91,8 +92,8 @@ test("showLabel false with icon", function() {
9192
showLabel: false,
9293
icon: "iconclass"
9394
});
94-
strictEqual( $( "#button" ).attr( "class" ), "ui-button ui-widget ui-corner-all ui-icon-beginning ui-button-icon-only" );
95-
95+
strictEqual( $( "#button" ).is( ".ui-button.ui-corner-all.ui-widget.ui-button-icon-only" ),
96+
true, "Button has correct classes" );
9697
$( "#button" ).button( "destroy" );
9798
});
9899

themes/base/button.css

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -103,36 +103,6 @@ input.ui-button.ui-button-icon-only {
103103
padding: .4em 1em 1.1em 1em;
104104
}
105105

106-
.ui-button.ui-icon-notext .ui-icon {
107-
padding: 0;
108-
width: 2.1em;
109-
height: 2.1em;
110-
text-indent: -9999px;
111-
white-space: nowrap;
112-
113-
}
114-
115-
input.ui-button.ui-icon-notext .ui-icon {
116-
width: auto;
117-
height: auto;
118-
text-indent: 0;
119-
white-space: normal;
120-
padding: .4em 1em;
121-
}
122-
/* button sets */
123-
.ui-buttonset {
124-
margin-right: 7px;
125-
}
126-
127-
.ui-button.ui-icon-top {
128-
padding: 1.1em 1em .4em 1em;
129-
}
130-
131-
.ui-button.ui-icon-bottom {
132-
padding: .4em 1em 1.1em 1em;
133-
}
134-
135-
>>>>>>> 06cac52... Button: fix css errors
136106
/* workarounds */
137107
/* reset extra padding in Firefox, see h5bp.com/l */
138108
input.ui-button::-moz-focus-inner,

ui/button.js

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,12 @@ $.widget( "ui.button", {
4848
showLabel: true,
4949
label: null,
5050
icon: null,
51-
iconPosition: "beginning"
51+
iconPosition: "beginning",
52+
classes: {
53+
"ui-button": "ui-corner-all",
54+
"ui-button-icon-only": "",
55+
"ui-button-icon": ""
56+
}
5257
},
5358

5459
_getCreateOptions: function() {
@@ -124,11 +129,11 @@ $.widget( "ui.button", {
124129

125130
_updateIcon: function( icon ) {
126131
if ( !this.icon ) {
127-
this.icon = $( "<span>" ).addClass( "ui-icon" );
132+
this.icon = $( "<span>" ).addClass( this._classes( "ui-button-icon" ) + " ui-icon" );
128133
this.element.addClass( "ui-icon-" + this.options.iconPosition );
129134

130135
if ( !this.options.showLabel ){
131-
this.element.addClass( "ui-button-icon-only" );
136+
this.element.addClass( this._classes( "ui-button-icon-only" ) );
132137
}
133138
} else {
134139
this.icon.removeClass( this.options.icon );
@@ -140,7 +145,7 @@ $.widget( "ui.button", {
140145

141146
_destroy: function() {
142147
this.element
143-
.removeClass( baseClasses + " ui-state-active " + typeClasses )
148+
.removeClass( this._classes( "ui-button ui-button-icon-only" ) + " " + baseClasses + " ui-state-active " + typeClasses )
144149
.removeAttr( "role" );
145150

146151
if ( this.icon ) {
@@ -157,14 +162,14 @@ $.widget( "ui.button", {
157162
this._updateIcon( value );
158163
} else {
159164
this.icon.remove();
160-
this.element.removeClass( "ui-icon-" + this.options.iconPosition );
165+
this.element.removeClass( this._classes( "ui-button-icon" ) + " ui-icon-" + this.options.iconPosition );
161166
}
162167
}
163168

164169
// Make sure we cant end up with a button that has no text nor icon
165170
if ( key === "showLabel" ) {
166171
if ( ( !value && !this.options.icon ) || value ) {
167-
this.element.toggleClass( "ui-button-icon-only", !value )
172+
this.element.toggleClass( this._classes( "ui-button-icon-only" ), !value )
168173
.toggleClass( this.options.iconPosition, !!value );
169174
this._updateTooltip();
170175
} else {

0 commit comments

Comments
 (0)