/**
 * @class Ext.Button
 */
 
// Private variables 
$disabled-color: #999;
 
.x-button {
    @include background-clip(padding-box);
    @include toolbar-button($background-color);
    min-height: 1.8em;
    padding: .3em .6em .5em .6em;
 
    // Default icon style 
    .x-button-icon {
        width: 20px;
        height: 24px;
 
        &:before {
            font-size: 24px;
            line-height: 22px;
        }
    }
 
    .x-button-label {
        color: $foreground-color;
    }
 
    &.x-disabled {
        border-color: $disabled-color;
 
        .x-button-label.x-button-icon {
            color: $disabled-color;
        }
    }
 
    &.x-button-pressing,
    &.x-button-pressed {
        &,
        .x-button-label,
        .x-button-icon:before {
            color: $background-color;
        }
    }
}
 
.x-button-round {
    @include border-radius(1.8em);
}
 
// Button icon alignment 
.x-iconalign-left .x-button-label {
    margin-left: .6em;
}
.x-iconalign-right .x-button-label {
    margin-right: .6em;
}
 
.x-iconalign-top .x-button-label {
    margin-top: .6em;
}
 
.x-iconalign-bottom .x-button-label {
    margin-bottom: .6em;
}
 
// Button labels 
.x-button-label {
    line-height: 1.2em;
    text-transform: lowercase;
}
 
// Toolbar button styling 
.x-toolbar .x-button {
    margin: 0 .2em;
    padding: .3em .5em;
    min-width: 2.6em;
    min-height: 2.6em;
 
    .x-hasbadge .x-badge {
        line-height: 1.6em;
    }
 
    .x-button-label {
        padding-left: 6px;
        padding-right: 6px;
        line-height: 1.6em;
    }
 
    .x-webkit & .x-button-icon:before {
        line-height: 26px;
    }
}
 
.x-button-small,
.x-toolbar .x-button-small {
    padding: .2em .4em;
    min-height: 0;
 
    .x-button-label {
        font-size: $font-size-small;
    }
}
 
.x-button-forward,
.x-button-back {
    position: relative;
    overflow: visible;
    z-index: 1;
    border-radius: 40px;
    min-width: 40px !important;
    min-height: 40px !important;
 
    .x-button-label {
        display: none;
    }
 
    &:before {
        @include absolute-position;
        content: '[';
        // TODO: Use FontAwesome 
        font-family: 'Pictos';
        text-align: center;
        font-size: 29px;
        line-height: 40px;
        color: $foreground-color;
    }
 
    .x-ie &:before {
        line-height: 35px;
    }
 
    &.x-button-pressing {
        &:before {
            color: $background-color;
        }
    }
}
 
.x-button-forward {
    &:before {
        content: ']';
    }
}
 
// Badges 
.x-hasbadge {
    overflow: visible;
}
 
.x-badge {
    border: 0;
    background-color: $base-color;
    color: #fff;
    font-size: 9pt;
    min-width: 30px;
    right: -3px;
    top: -2px;
    @include ellipsis;
    padding: 0 2px;
}
 
/**
 * Creates a theme UI for buttons.
 * Also automatically generates UIs for {ui-label}-round and {ui-label}-small.
 *
 *     // SCSS
 *     @include sencha-button-ui('secondary', #99A4AE, 'glossy');
 *
 *     // JS
 *     var cancelBtn = new Ext.Button({text: 'Cancel', ui: 'secondary'});
 *
 * @param {string} $ui-label The name of the UI being created.
 *   Can not included spaces or special punctuation (used in class names)
 * @param {color} $color Base color for the UI.
 */
@mixin sencha-button-ui($ui-label, $color) {
    .x-button.x-button-#{$ui-label},
    .x-button.x-button-#{$ui-label}-round,
    .x-button.x-button-#{$ui-label}-small {
        @include toolbar-button($color);
    }
 
    .x-button.x-button-#{$ui-label}-small {
        @extend .x-button-small;
    }
 
    .x-button-#{$ui-label}-round {
        @extend .x-button-round;
    }
}
 
@if $include-button-uis {
    @include sencha-button-ui('action', $background-color);
    @include sencha-button-ui('confirm', desaturate(darken($confirm-color, 10%), 5%));
    @include sencha-button-ui('decline', desaturate(darken($alert-color, 10%), 5%));
}