Skip to content

Commit d443a88

Browse files
committed
Button: Adding classes option
1 parent e60bc37 commit d443a88

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
@@ -5,6 +5,11 @@ TestHelpers.commonWidgetTests( "button", {
55
label: null,
66
icon: null,
77
iconPosition: "beginning",
8+
classes: {
9+
"ui-button": "ui-corner-all",
10+
"ui-button-icon-only": "",
11+
"ui-button-icon": ""
12+
},
813

914
// Callbacks
1015
create: null

tests/unit/button/button_options.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ test( "showLabel false without icon", function() {
4343
$( "#button" ).button({
4444
showLabel: false
4545
});
46-
strictEqual( $( "#button" ).attr( "class" ), "ui-button ui-widget ui-corner-all" );
46+
strictEqual( $( "#button" ).is( ":ui-button.ui-corner-all.ui-widget" ), true,
47+
"Button has correct classes" );
4748

4849
$( "#button" ).button( "destroy" );
4950
});
@@ -54,8 +55,8 @@ test("showLabel false with icon", function() {
5455
showLabel: false,
5556
icon: "iconclass"
5657
});
57-
strictEqual( $( "#button" ).attr( "class" ), "ui-button ui-widget ui-corner-all ui-icon-beginning ui-button-icon-only" );
58-
58+
strictEqual( $( "#button" ).is( ".ui-button.ui-corner-all.ui-widget.ui-button-icon-only" ),
59+
true, "Button has correct classes" );
5960
$( "#button" ).button( "destroy" );
6061
});
6162

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
@@ -42,7 +42,12 @@ $.widget( "ui.button", {
4242
showLabel: true,
4343
label: null,
4444
icon: null,
45-
iconPosition: "beginning"
45+
iconPosition: "beginning",
46+
classes: {
47+
"ui-button": "ui-corner-all",
48+
"ui-button-icon-only": "",
49+
"ui-button-icon": ""
50+
}
4651
},
4752

4853
_getCreateOptions: function() {
@@ -118,11 +123,11 @@ $.widget( "ui.button", {
118123

119124
_updateIcon: function( icon ) {
120125
if ( !this.icon ) {
121-
this.icon = $( "<span>" ).addClass( "ui-icon" );
126+
this.icon = $( "<span>" ).addClass( this._classes( "ui-button-icon" ) + " ui-icon" );
122127
this.element.addClass( "ui-icon-" + this.options.iconPosition );
123128

124129
if ( !this.options.showLabel ){
125-
this.element.addClass( "ui-button-icon-only" );
130+
this.element.addClass( this._classes( "ui-button-icon-only" ) );
126131
}
127132
} else {
128133
this.icon.removeClass( this.options.icon );
@@ -134,7 +139,7 @@ $.widget( "ui.button", {
134139

135140
_destroy: function() {
136141
this.element
137-
.removeClass( baseClasses + " ui-state-active " + typeClasses )
142+
.removeClass( this._classes( "ui-button ui-button-icon-only" ) + " " + baseClasses + " ui-state-active " + typeClasses )
138143
.removeAttr( "role" );
139144

140145
if ( this.icon ) {
@@ -151,14 +156,14 @@ $.widget( "ui.button", {
151156
this._updateIcon( value );
152157
} else {
153158
this.icon.remove();
154-
this.element.removeClass( "ui-icon-" + this.options.iconPosition );
159+
this.element.removeClass( this._classes( "ui-button-icon" ) + " ui-icon-" + this.options.iconPosition );
155160
}
156161
}
157162

158163
// Make sure we cant end up with a button that has no text nor icon
159164
if ( key === "showLabel" ) {
160165
if ( ( !value && !this.options.icon ) || value ) {
161-
this.element.toggleClass( "ui-button-icon-only", !value )
166+
this.element.toggleClass( this._classes( "ui-button-icon-only" ), !value )
162167
.toggleClass( this.options.iconPosition, !!value );
163168
this._updateTooltip();
164169
} else {

0 commit comments

Comments
 (0)