@mixin widget_button($disabled, $label) {
    background-clip: padding-box;
    padding: 4px 8px;
    border: $border_width solid;
    border-radius: $roundness;

    @include button-normal();

    &.flat:not(:hover):not(:active):not(:checked) {
        &, &:#{$disabled} {
            @include button-flat();
        }
    }
    &:hover { @include button-hover(); }
    &:active, &:checked { @include button-active(); }
    &:#{$disabled} {
        @include button-insensitive();
        > #{$label} { color: inherit; }
        &:active, &:checked {
            opacity: 0.5;
        }
    }

    // Destructive and Sugggested action buttons
    @each $b_type, $b_color in (suggested-action, $suggested_color),
                               (destructive-action, $destructive_color) {
        &.#{$b_type} {
            @include button-normal($selected_fg_color, $b_color);
            &:hover { @include button-hover($selected_fg_color, $b_color); }
            &:active, &:checked { @include button-active($bg:darken($b_color, 10%)); }
            &:#{$disabled} { opacity: 0.5; }

            &.flat:not(:hover):not(:active):not(:checked) {
                &, &:#{$disabled} {
                    @include button-flat($selected_fg_color, $b_color);
                }
            }
        }
    }

    &.text-button { padding: 4px 12px; }
    &.image-button { padding: 4px; }
}
