Bug 674744 - Implement conditional forward button for pinstripe. r=dao ui-r=shorlander

This commit is contained in:
Jared Wein 2011-11-07 10:48:27 -08:00
Родитель c608257c6c
Коммит a456333108
2 изменённых файлов: 158 добавлений и 3 удалений

Просмотреть файл

@ -1063,6 +1063,10 @@
<svg:rect x="0" y="0" width="1" height="1" fill="white"/>
<svg:circle cx="-0.41" cy="0.5" r="0.65"/>
</svg:mask>
<svg:mask id="pinstripe-urlbar-back-button-mask" maskContentUnits="userSpaceOnUse">
<svg:rect x="0" y="-5" width="10000" height="55" fill="white"/>
<svg:circle cx="-9" cy="11" r="15"/>
</svg:mask>
<svg:mask id="pinstripe-tab-ontop-left-curve-mask" maskContentUnits="userSpaceOnUse">
<svg:circle cx="9" cy="3" r="3" fill="white"/>
<svg:rect x="9" y="0" width="3" height="3" fill="white"/>

Просмотреть файл

@ -47,6 +47,10 @@
@import url("chrome://global/skin/");
%include shared.inc
%filter substitution
%define forwardTransitionLength 150ms
%define conditionalForwardWithUrlbar window:not([chromehidden~=toolbar]) #navigator-toolbox[iconsize=large][mode=icons] > :-moz-any(#nav-bar[currentset*="unified-back-forward-button,urlbar-container"],#nav-bar:not([currentset])) > #unified-back-forward-button
%define conditionalForwardWithUrlbarWidth 27
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
@namespace html url("http://www.w3.org/1999/xhtml");
@ -531,6 +535,71 @@ toolbar[mode="icons"] #forward-button {
mask: url(chrome://browser/content/browser.xul#pinstripe-keyhole-forward-mask);
}
@conditionalForwardWithUrlbar@ > #forward-button:not(:-moz-lwtheme) {
-moz-appearance: none;
-moz-padding-start: 2px;
background: -moz-linear-gradient(hsl(0,0%,99%), hsl(0,0%,67%)) padding-box;
border: 1px solid;
border-color: hsl(0,0%,31%) hsla(0,0%,29%,.6) hsl(0,0%,27%);
box-shadow: inset 0 1px 0 hsla(0,0%,100%,.35),
0 1px 0 hsla(0,0%,100%,.2);
}
@conditionalForwardWithUrlbar@ > #forward-button {
border-radius: 0;
-moz-margin-end: 0;
}
@conditionalForwardWithUrlbar@ > #forward-button:-moz-lwtheme {
-moz-padding-start: 2px;
-moz-padding-end: 0;
}
@conditionalForwardWithUrlbar@:not([switchingtabs]) > #forward-button {
-moz-transition: opacity @forwardTransitionLength@ ease-out;
}
@conditionalForwardWithUrlbar@ > #forward-button:hover:active:not(:-moz-lwtheme) {
background-image: -moz-linear-gradient(hsl(0,0%,74%), hsl(0,0%,61%));
box-shadow: inset rgba(0,0,0,.3) 0 -6px 10px,
inset #000 0 1px 3px,
inset rgba(0,0,0,.2) 0 1px 3px,
0 1px 0 hsla(0,0%,100%,.2);
}
@conditionalForwardWithUrlbar@ > #forward-button:-moz-window-inactive:not(:-moz-lwtheme) {
border-color: hsl(0,0%,64%) hsl(0,0%,65%) hsl(0,0%,66%);
background-image: -moz-linear-gradient(hsl(0,0%,99%), hsl(0,0%,82%));
box-shadow: inset 0 1px 0 hsla(0,0%,100%,.35);
}
@conditionalForwardWithUrlbar@:not(:hover) > #forward-button[disabled] {
opacity: 0;
}
@media (-moz-mac-lion-theme) {
@conditionalForwardWithUrlbar@ > #forward-button:not(:-moz-lwtheme) {
background-image: -moz-linear-gradient(hsla(0,0%,100%,.73), hsla(0,0%,100%,.05) 85%);
border-color: hsla(0,0%,0%,.35) hsla(0,0%,0%,.25) hsla(0,0%,0%,.2);
box-shadow: inset 0 1px 0 hsla(0,0%,100%,.2),
inset 0 0 1px hsla(0,0%,100%,.1),
0 1px 0 hsla(0,0%,100%,.2);
}
@conditionalForwardWithUrlbar@ > #forward-button:hover:active:not(:-moz-lwtheme) {
background-image: -moz-linear-gradient(hsla(0,0%,60%,.37), hsla(0,0%,100%,.35) 95%);
border-color: hsla(0,0%,0%,.43) hsla(0,0%,0%,.25) hsla(0,0%,0%,.37);
box-shadow: inset 0 1px 0 hsla(0,0%,0%,.02),
inset 0 1px 2px hsla(0,0%,0%,.2),
0 1px 0 hsla(0,0%,100%,.2);
}
@conditionalForwardWithUrlbar@ > #forward-button:-moz-window-inactive:not(:-moz-lwtheme) {
background-image: none;
border-color: hsla(0,0%,0%,.2);
}
}
#navigator-toolbox[iconsize="small"][mode="icons"] > #nav-bar #forward-button {
width: 27px;
}
@ -842,6 +911,57 @@ toolbar[mode="icons"] #zoom-in-button {
border-radius: @toolbarbuttonCornerRadius@;
}
@conditionalForwardWithUrlbar@ + #urlbar-container {
padding-left: @conditionalForwardWithUrlbarWidth@px;
-moz-margin-start: -@conditionalForwardWithUrlbarWidth@px;
position: relative;
pointer-events: none;
}
@conditionalForwardWithUrlbar@ + #urlbar-container > #urlbar {
-moz-border-start: none;
margin-left: 0;
pointer-events: all;
}
@conditionalForwardWithUrlbar@:not([switchingtabs]) + #urlbar-container > #urlbar {
-moz-transition: margin-left @forwardTransitionLength@ ease-out;
}
@conditionalForwardWithUrlbar@ + #urlbar-container > #urlbar:-moz-locale-dir(ltr) {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
@conditionalForwardWithUrlbar@ + #urlbar-container > #urlbar:-moz-locale-dir(rtl) {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
@conditionalForwardWithUrlbar@[forwarddisabled] + #urlbar-container {
mask: url("chrome://browser/content/browser.xul#pinstripe-urlbar-back-button-mask");
}
@conditionalForwardWithUrlbar@[forwarddisabled] + #urlbar-container > #urlbar {
margin-left: -@conditionalForwardWithUrlbarWidth@px;
}
@conditionalForwardWithUrlbar@[forwarddisabled]:hover:not([switchingtabs]) + #urlbar-container > #urlbar {
/* delay the hiding of the forward button when hovered to avoid accidental clicks on the url bar */
-moz-transition-delay: 100s;
}
@conditionalForwardWithUrlbar@[forwarddisabled]:not(:hover) + #urlbar-container > #urlbar {
/* when not hovered anymore, trigger a new transition to hide the forward button immediately */
margin-left: -@conditionalForwardWithUrlbarWidth@.01px;
}
@conditionalForwardWithUrlbar@ + #urlbar-container:-moz-locale-dir(rtl),
@conditionalForwardWithUrlbar@ + #urlbar-container > #urlbar:-moz-locale-dir(rtl) {
/* let pinstripe-urlbar-back-button-mask clip the urlbar's right side for RTL */
-moz-transform: scaleX(-1);
}
#identity-box {
background-image: -moz-linear-gradient(hsl(0,0%,98%), hsl(0,0%,92%));
box-shadow: 0 1px 0 hsla(0,0%,0%,.05) inset;
@ -860,6 +980,38 @@ toolbar[mode="icons"] #zoom-in-button {
border-bottom-right-radius: 2px;
}
#notification-popup-box:not([hidden]) + #identity-box {
-moz-padding-start: 10px;
border-radius: 0;
}
@conditionalForwardWithUrlbar@ + #urlbar-container > #urlbar > #identity-box {
border-radius: 0;
}
@conditionalForwardWithUrlbar@[forwarddisabled] + #urlbar-container > #urlbar > #notification-popup-box[hidden] + #identity-box:-moz-locale-dir(ltr) {
-moz-transition: 0s padding-left;
padding-left: 10px;
}
@conditionalForwardWithUrlbar@[forwarddisabled] + #urlbar-container > #urlbar > #notification-popup-box[hidden] + #identity-box:-moz-locale-dir(rtl) {
-moz-transition: 0s padding-right;
padding-right: 10px;
}
@conditionalForwardWithUrlbar@[forwarddisabled]:hover:not([switchingtabs]) + #urlbar-container > #urlbar > #notification-popup-box[hidden] + #identity-box {
/* delay the hiding of the forward button when hovered to avoid accidental clicks on the url bar */
-moz-transition-delay: 100s;
}
@conditionalForwardWithUrlbar@[forwarddisabled]:not(:hover) + #urlbar-container > #urlbar > #notification-popup-box[hidden] + #identity-box:-moz-locale-dir(ltr) {
padding-left: 10.01px;
}
@conditionalForwardWithUrlbar@[forwarddisabled]:not(:hover) + #urlbar-container > #urlbar > #notification-popup-box[hidden] + #identity-box:-moz-locale-dir(rtl) {
padding-right: 10.01px;
}
#identity-box:active:hover,
#identity-box[open="true"] {
background-image: -moz-linear-gradient(hsl(0,0%,93%), hsl(0,0%,80%));
@ -2155,9 +2307,8 @@ toolbarbutton.chevron > .toolbarbutton-menu-dropmarker {
-moz-margin-end: -8px;
}
#notification-popup-box:not([hidden]) + #identity-box {
-moz-padding-start: 10px;
border-radius: 0;
@conditionalForwardWithUrlbar@[forwarddisabled] + #urlbar-container > #urlbar > #notification-popup-box {
padding-left: 7px;
}
#notification-popup-box:-moz-locale-dir(rtl),