@mixin extjs-menu-ui(
$ui,
$ui-background-color: $menu-background-color,
$ui-border-color: $menu-border-color,
$ui-border-style: $menu-border-style,
$ui-border-width: $menu-border-width,
$ui-padding: $menu-padding,
$ui-text-color: $menu-text-color,
$ui-item-font-family: $menu-item-font-family,
$ui-item-font-size: $menu-item-font-size,
$ui-item-font-weight: $menu-item-font-weight,
$ui-item-height: $menu-item-height,
$ui-item-border-width: $menu-item-border-width,
$ui-item-cursor: $menu-item-cursor,
$ui-item-active-text-color: $menu-item-active-text-color,
$ui-item-active-background-color: $menu-item-active-background-color,
$ui-item-active-border-color: $menu-item-active-border-color,
$ui-item-background-gradient: $menu-item-background-gradient,
$ui-item-active-border-radius: $menu-item-active-border-radius,
$ui-item-icon-size: $menu-item-icon-size,
$ui-glyph-color: $menu-glyph-color,
$ui-glyph-font-size: $menu-glyph-font-size,
$ui-glyph-opacity: $menu-glyph-opacity,
$ui-item-active-glyph-color: $menu-item-active-glyph-color,
$ui-item-checkbox-size: $menu-item-checkbox-size,
$ui-item-checkbox-glyph: $menu-item-checkbox-glyph,
$ui-item-checkbox-checked-glyph: $menu-item-checkbox-checked-glyph,
$ui-item-checkbox-glyph-color: $menu-item-checkbox-glyph-color,
$ui-item-checkbox-group-glyph: $menu-item-checkbox-group-glyph,
$ui-item-checkbox-group-checked-glyph: $menu-item-checkbox-group-checked-glyph,
$ui-item-checkbox-group-glyph-color: $menu-item-checkbox-group-glyph-color,
$ui-item-active-checkbox-group-glyph-color: $menu-item-active-checkbox-group-glyph-color,
$ui-item-active-checkbox-glyph-color: $menu-item-active-checkbox-glyph-color,
$ui-item-icon-background-position: $menu-item-icon-background-position,
$ui-item-icon-vertical-offset: $menu-item-icon-vertical-offset,
$ui-item-text-vertical-offset: $menu-item-text-vertical-offset,
$ui-item-text-horizontal-spacing: $menu-item-text-horizontal-spacing,
$ui-item-icon-horizontal-spacing: $menu-item-icon-horizontal-spacing,
$ui-item-arrow-horizontal-spacing: $menu-item-arrow-horizontal-spacing,
$ui-item-separator-margin: $menu-item-separator-margin,
$ui-item-arrow-height: $menu-item-arrow-height,
$ui-item-arrow-width: $menu-item-arrow-width,
$ui-item-arrow-margin: $menu-item-arrow-margin,
$ui-item-arrow-glyph-color: $menu-item-arrow-glyph-color,
$ui-item-active-arrow-glyph-color: $menu-item-active-arrow-glyph-color,
$ui-item-arrow-glyph: $menu-item-arrow-glyph,
$ui-item-arrow-glyph-rtl: $menu-item-arrow-glyph-rtl,
$ui-item-disabled-opacity: $menu-item-disabled-opacity,
$ui-component-margin: $menu-component-margin,
$ui-separator-border-color: $menu-separator-border-color,
$ui-separator-background-color: $menu-separator-background-color,
$ui-separator-size: $menu-separator-size,
$ui-scroller-width: $menu-scroller-width,
$ui-scroller-height: $menu-scroller-height,
$ui-scroller-border-color: $menu-scroller-border-color,
$ui-scroller-border-width: $menu-scroller-border-width,
$ui-scroller-top-margin: $menu-scroller-top-margin,
$ui-scroller-bottom-margin: $menu-scroller-bottom-margin,
$ui-scroller-cursor: $menu-scroller-cursor,
$ui-scroller-cursor-disabled: $menu-scroller-cursor-disabled,
$ui-scroller-opacity: $menu-scroller-opacity,
$ui-scroller-opacity-over: $menu-scroller-opacity-over,
$ui-scroller-opacity-pressed: $menu-scroller-opacity-pressed,
$ui-scroller-opacity-disabled: $menu-scroller-opacity-disabled,
$ui-scroller-glyph-color: $menu-scroller-glyph-color,
$ui-scroller-top-glyph: $menu-scroller-top-glyph,
$ui-scroller-bottom-glyph: $menu-scroller-bottom-glyph,
$ui-classic-scrollers: $menu-classic-scrollers,
$ui-item-disabled-cursor: $menu-item-disabled-cursor,
$ui-item-arrow-top-offset: 0
) {
$ui-item-arrow-top: round(($ui-item-height - vertical($ui-item-border-width) - $ui-item-arrow-height) / 2) + $ui-item-arrow-top-offset !default;
$ui-icon-separator-indent: before($ui-item-icon-horizontal-spacing) + $ui-item-icon-size + after($ui-item-icon-horizontal-spacing);
$ui-item-indent: $ui-icon-separator-indent + $ui-separator-size + before($ui-item-text-horizontal-spacing);
$ui-item-indent-no-separator: before($ui-item-icon-horizontal-spacing) + $ui-item-icon-size + max(after($ui-item-icon-horizontal-spacing), before($ui-item-text-horizontal-spacing));
$ui-item-indent-right-icon: $ui-icon-separator-indent + before($ui-item-text-horizontal-spacing);
$ui-item-indent-right-arrow: $ui-item-arrow-width + before($ui-item-arrow-horizontal-spacing) + after($ui-item-arrow-horizontal-spacing) + after($ui-item-text-horizontal-spacing);
$ui-item-icon-top: round(($ui-item-height - vertical($ui-item-border-width) - $ui-item-icon-size) / 2) + $ui-item-icon-vertical-offset !default;
@if not is-null($ui-border-width) and $ui-border-width != 0 {
.#{$prefix}menu-#{$ui} {
border-style: $ui-border-style;
border-width: $ui-border-width;
border-color: $ui-border-color;
}
}
.#{$prefix}menu-body-#{$ui} {
background: $ui-background-color;
padding: $ui-padding;
}
.#{$prefix}menu-icon-separator-#{$ui} {
left: $ui-icon-separator-indent;
border-left: solid 1px $ui-separator-border-color;
background-color: $ui-separator-background-color;
width: $ui-separator-size;
}
@if $include-rtl {
.#{$prefix}rtl > .#{$prefix}menu-icon-separator {
left: auto;
right: $ui-icon-separator-indent;
}
}
.#{$prefix}menu-item-#{$ui} {
border-width: $ui-item-border-width;
cursor: $ui-item-cursor;
&.#{$prefix}menu-item-focus,
&.#{$prefix}menu-item-active {
@include background-gradient($ui-item-active-background-color, $ui-item-background-gradient);
@if $ui-item-active-border-radius != 0 {
@include border-radius($ui-item-active-border-radius);
}
@if $ui-item-border-width != 0 {
border-color: $ui-item-active-border-color;
}
@if $include-slicer-gradient {
.#{$prefix}nlg & {
background: $ui-item-active-background-color repeat-x left top;
background-image: slicer-background-image(menu-item-#{$ui}-active, 'menu/menu-item-#{$ui}-active-bg');
}
}
}
&.#{$prefix}menu-item-disabled {
cursor: $ui-item-disabled-cursor;
a {
cursor: $ui-item-disabled-cursor;
}
}
&.#{$prefix}menu-item-separator {
height: $ui-separator-size;
border-top: solid 1px $ui-separator-border-color;
background-color: $ui-separator-background-color;
margin: $ui-item-separator-margin;
padding: 0;
}
&.#{$prefix}menu-item-disabled {
@include opacity($ui-item-disabled-opacity);
@if $include-ie {
.#{$prefix}ie9m & {
.#{$prefix}menu-item-icon-#{ui} {
@include opacity($ui-item-disabled-opacity);
}
.#{$prefix}menu-item-text-#{$ui} {
background-color: transparent;
}
}
}
}
@if $include-ext-form-labelable {
.#{$prefix}form-item-label {
font-size: $ui-item-font-size;
color: $ui-text-color;
}
}
}
.#{$prefix}menu-item-text-#{$ui},
.#{$prefix}menu-item-cmp-#{$ui} {
margin: 0 after($ui-item-text-horizontal-spacing) 0 before($ui-item-text-horizontal-spacing);
}
.#{$prefix}menu-item-text-#{$ui} {
font: $ui-item-font-weight $ui-item-font-size $ui-item-font-family;
line-height: $ui-item-height - vertical($ui-item-border-width) - abs($ui-item-text-vertical-offset);
@if $ui-item-text-vertical-offset > 0 {
padding-top: $ui-item-text-vertical-offset;
} @else if $ui-item-text-vertical-offset < 0 {
padding-bottom: $ui-item-text-vertical-offset;
}
color: $ui-text-color;
cursor: $ui-item-cursor;
@if $ui-item-active-text-color != $ui-text-color {
.#{$prefix}menu-item-focus &,
.#{$prefix}menu-item-active & {
color: $ui-item-active-text-color;
}
}
&.#{$prefix}menu-item-indent {
margin-left: $ui-item-indent;
}
&.#{$prefix}menu-item-indent-no-separator {
margin-left: $ui-item-indent-no-separator;
}
&.#{$prefix}menu-item-indent-right-icon {
margin-right: $ui-item-indent-right-icon;
}
&.#{$prefix}menu-item-indent-right-arrow {
margin-right: $ui-item-indent-right-arrow;
}
.#{$prefix}menu-item-disabled & {
cursor: $ui-item-disabled-cursor;
}
}
@if $include-rtl {
.#{$prefix}rtl {
&.#{$prefix}menu-item-text-#{$ui},
&.#{$prefix}menu-item-cmp-#{$ui} {
margin: 0 before($ui-item-text-horizontal-spacing) 0 after($ui-item-text-horizontal-spacing);
}
&.#{$prefix}menu-item-text-#{$ui} {
&.#{$prefix}menu-item-indent {
margin-right: $ui-item-indent;
}
&.#{$prefix}menu-item-indent-no-separator {
margin-right: $ui-item-indent-no-separator;
}
&.#{$prefix}menu-item-indent-right-icon {
margin-left: $ui-item-indent-right-icon;
}
&.#{$prefix}menu-item-indent-right-arrow {
margin-left: $ui-item-indent-right-arrow;
}
}
}
}
.#{$prefix}menu-item-indent-#{$ui} {
margin-left: $ui-item-indent;
@if $include-rtl {
&.#{$prefix}rtl {
margin-left: 0;
margin-right: $ui-item-indent;
}
}
}
.#{$prefix}menu-item-icon-#{$ui} {
width: $ui-item-icon-size;
height: $ui-item-icon-size;
top: $ui-item-icon-top;
left: before($ui-item-icon-horizontal-spacing);
line-height: $ui-item-icon-size;
font-size: $ui-glyph-font-size;
color: $ui-glyph-color;
@if $ui-item-active-glyph-color != $ui-glyph-color {
.#{$prefix}menu-item-focus &,
.#{$prefix}menu-item-active & {
color: $ui-item-active-glyph-color;
@if $include-ie {
.#{$prefix}ie8 & {
color: $ui-item-active-glyph-color !important;
}
}
}
}
background-position: $ui-item-icon-background-position;
@if $include-rtl {
&.#{$prefix}rtl {
left: auto;
right: before($ui-item-icon-horizontal-spacing);
.#{$prefix}menu-item-focus &,
.#{$prefix}menu-item-active & {
right: before($ui-item-icon-horizontal-spacing) - left($ui-item-border-width);
}
}
}
&.#{$prefix}menu-item-glyph {
@if $ui-glyph-opacity != 1 {
opacity: $ui-glyph-opacity;
}
@if $include-ie {
.#{$prefix}ie8 & {
color: mix($ui-glyph-color, $ui-background-color, $ui-glyph-opacity * 100);
}
}
}
&.#{$prefix}menu-item-icon-right {
width: $ui-item-icon-size;
height: $ui-item-icon-size;
top: $ui-item-icon-top;
right: after($ui-item-icon-horizontal-spacing);
left: auto;
background-position: $ui-item-icon-background-position;
@if $include-rtl {
&.#{$prefix}rtl {
right: auto;
left: after($ui-item-icon-horizontal-spacing);
.#{$prefix}menu-item-focus &,
.#{$prefix}menu-item-active & {
left: after($ui-item-icon-horizontal-spacing) - right($ui-item-border-width);
}
}
}
}
&.#{$prefix}menu-item-checkbox {
@if $ui-item-checkbox-size != $ui-item-icon-size {
height: $ui-item-checkbox-size;
width: $ui-item-checkbox-size;
}
@if $enable-font-icons {
color: $ui-item-checkbox-glyph-color;
@if $ui-item-active-checkbox-glyph-color != $ui-item-checkbox-glyph-color {
.#{$prefix}menu-item-focus &,
.#{$prefix}menu-item-active & {
color: $ui-item-active-checkbox-glyph-color;
}
}
}
.#{$prefix}menu-item-checked & {
@if $enable-font-icons and ($ui-item-checkbox-checked-glyph != null) {
@include font-icon($ui-item-checkbox-checked-glyph, $line-height: $ui-item-checkbox-size);
} @else {
background-image: theme-background-image('menu/#{$ui}-checked');
}
}
.#{$prefix}menu-item-unchecked & {
@if $enable-font-icons and ($ui-item-checkbox-glyph != null) {
@include font-icon($ui-item-checkbox-glyph, $line-height: $ui-item-checkbox-size);
} @else {
background-image: theme-background-image('menu/#{$ui}-unchecked');
}
}
}
&.#{$prefix}menu-group-icon {
@if $enable-font-icons {
@if $ui-item-checkbox-group-glyph-color != $ui-item-checkbox-glyph-color {
color: $ui-item-checkbox-group-glyph-color;
}
@if $ui-item-active-checkbox-group-glyph-color != $ui-item-checkbox-group-glyph-color {
.#{$prefix}menu-item-focus &,
.#{$prefix}menu-item-active & {
color: $ui-item-active-checkbox-group-glyph-color;
}
}
}
.#{$prefix}menu-item-checked & {
@if $enable-font-icons and ($ui-item-checkbox-group-checked-glyph != null) {
@include font-icon($ui-item-checkbox-group-checked-glyph, $line-height: $ui-item-checkbox-size);
} @else {
background-image: theme-background-image('menu/#{$ui}-group-checked');
}
}
.#{$prefix}menu-item-unchecked & {
@if $enable-font-icons {
@if $ui-item-checkbox-group-glyph != null {
@include font-icon($ui-item-checkbox-group-glyph, $line-height: $ui-item-checkbox-size);
} @else {
&:before {
content: '';
}
}
}
background-image: none;
}
}
}
.#{$prefix}menu-item-arrow-#{$ui} {
width: $ui-item-arrow-width;
height: $ui-item-arrow-height;
top: $ui-item-arrow-top - top($ui-item-border-width);
right: after($ui-item-arrow-horizontal-spacing) - right($ui-item-border-width);
margin: $ui-item-arrow-margin;
@if $enable-font-icons and ($ui-item-arrow-glyph != null) {
@include font-icon($ui-item-arrow-glyph);
color: $ui-item-arrow-glyph-color;
@if $ui-item-active-arrow-glyph-color != $ui-item-arrow-glyph-color {
.#{$prefix}menu-item-focus &,
.#{$prefix}menu-item-active & {
color: $ui-item-active-arrow-glyph-color;
}
}
} @else {
background-image: theme-background-image('menu/#{$ui}-menu-parent');
}
.#{$prefix}menu-item-focus &,
.#{$prefix}menu-item-active & {
top: $ui-item-arrow-top - top($ui-item-border-width);
right: after($ui-item-arrow-horizontal-spacing) - right($ui-item-border-width);
}
@if $include-rtl {
&.#{$prefix}rtl {
left: after($ui-item-arrow-horizontal-spacing);
right: auto;
@if $enable-font-icons and ($ui-item-arrow-glyph-rtl != null) {
@include font-icon($ui-item-arrow-glyph-rtl);
}
@else {
background-image: theme-background-image('menu/#{$ui}-menu-parent-left');
}
.#{$prefix}menu-item-focus &,
.#{$prefix}menu-item-active & {
left: after($ui-item-arrow-horizontal-spacing) - right($ui-item-border-width);
}
}
}
}
@if $include-ext-layout-container-boxoverflow-scroller {
@include extjs-box-scroller-ui(
$ui: $ui,
$type: 'menu',
$vertical-width: $ui-scroller-width,
$vertical-height: $ui-scroller-height,
$top-margin: $ui-scroller-top-margin,
$bottom-margin: $ui-scroller-bottom-margin,
$vertical-border-color: $ui-scroller-border-color,
$vertical-border-width: $ui-scroller-border-width,
$glyph-color: $ui-scroller-glyph-color,
$top-glyph: $ui-scroller-top-glyph,
$bottom-glyph: $ui-scroller-bottom-glyph,
$container-padding: $ui-padding,
$cursor: $ui-scroller-cursor,
$cursor-disabled: $ui-scroller-cursor-disabled,
$align: middle,
$opacity: $ui-scroller-opacity,
$opacity-over: $ui-scroller-opacity-over,
$opacity-pressed: $ui-scroller-opacity-pressed,
$opacity-disabled: $ui-scroller-opacity-disabled,
$classic: $ui-classic-scrollers,
$include-horizontal: false
);
}
.#{$prefix}ie8 {
.#{$prefix}box-scroller-menu-#{$ui} {
background-color: $ui-background-color;
}
}
@if not is-null($ui-item-background-gradient) {
$stretch: slicer-background-stretch(menu-item-#{$ui}-active, bottom);
@include x-slicer(menu-item-#{$ui}-active);
}
}
@if $include-menu-default-ui {
@include extjs-menu-ui(
$ui: 'default'
);
@include extjs-menu-ui(
$ui: 'default-menubar',
$ui-item-arrow-glyph: $menubar-item-arrow-glyph,
$ui-item-arrow-glyph-rtl: $menubar-item-arrow-glyph-rtl,
$ui-item-arrow-height: $menubar-item-arrow-height,
$ui-item-arrow-width: $menubar-item-arrow-width,
$ui-item-arrow-horizontal-spacing: $menubar-item-arrow-horizontal-spacing,
$ui-item-arrow-top-offset: $menubar-item-arrow-vertical-offset
);
}