fixes for profile manager bugs 24851, 27526, 27595, 28283, 29139, 30246, 31472, 31473, 28185, 30094, 31151, 29633, 17721

This commit is contained in:
ben%netscape.com 2000-03-14 11:07:09 +00:00
parent 3fc295392e
commit 54958006d1
23 changed files with 275 additions and 527 deletions

View File

@ -19,22 +19,11 @@
<html:script language="javascript" src="chrome://global/content/wizardManager.js" />
<html:script language="javascript" src="chrome://global/content/widgetStateManager.js" />
<toolbar class="decorated header" align="horizontal">
<titledbutton id="profileIcon" class="button28"/>
<box align="vertical">
<spring flex="100%"/>
<html:div class="headertext">&newprofile.title;</html:div>
<spring flex="100%"/>
</box>
<spring flex="100%"/>
</toolbar>
<box type="largeheader" id="header" value="&profileWizard.title;"/>
<box id="contentarea" flex="100%">
<html:iframe src="about:blank" style="width: 400px; height: 200px;" name="content" id="content" scrolling="auto" flex="100%"/>
</box>
<box id="wizardButtons"/>
<toolbar class="standard title">
<html:div class="dimmed-highcontrast">&window.title.label;</html:div>
<spring flex="100%"/>
<html:div id="progress" class="dimmed-highcontrast"/>
</toolbar>
<box type="status" id="status" value="&window.title.label;" progress=""/>
</window>

View File

@ -26,18 +26,16 @@
<!DOCTYPE window SYSTEM "chrome://profile/locale/newProfile1_1.dtd" >
<window
xmlns:html="http://www.w3.org/TR/REC-html40"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" class="dialog wizardPanel"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
class="dialog wizardPanel"
orient="vertical"
onload="parent.wizardManager.onPageLoad('newProfile1_1');">
<box flex="100%" align="vertical">
<html:div>&pnl1.p1.text;</html:div>
<spring style="height: 10px;"/>
<html:div>&pnl1.p2.text;</html:div>
<spring style="height: 10px;"/>
<html:div>&pnl1.p3.text;</html:div>
<spring style="height: 10px;"/>
<html:div>&pnl1.p4.text;</html:div>
</box>
<html>&pnl1.p1.text;</html>
<html>&pnl1.p2.text;</html>
<html>&pnl1.p3.text;</html>
<spring flex="1"/>
<html>&pnl1.p4.text;</html>
</window>

View File

@ -22,7 +22,6 @@
*/
var bundle = srGetStrBundle("chrome://profile/locale/newProfile1_2.properties");
var detect = false;
// the getting procedure is unique to each page, since each page can different
// types of elements (not necessarily form elements). So each page must provide
@ -34,8 +33,8 @@ function GetFields()
var profDirContent = profDir.getAttribute("value");
var profDirRootFolder = profDir.getAttribute("rootFolder");
var rv = {
ProfileName: { id: "ProfileName", value: profName },
ProfileDir: { id: "ProfileDir", value: profDirContent, rootFolder: profDirRootFolder }
ProfileName: { id: "ProfileName", value: profName },
ProfileDir: { id: "ProfileDir", value: profDirContent, rootFolder: profDirRootFolder }
}
return rv;
}
@ -44,58 +43,43 @@ function GetFields()
// must provide its own SetFields function
function SetFields( aElement, aValue, aDataObject )
{
dump("*** element = " + aElement + "; set = " + aValue + "\n");
element = document.getElementById( aElement );
//dump("In SetFields(" + element + "," + set + ");\n");
if(element.id == "ProfileDir" && aValue != "") {
element.setAttribute( "rootFolder", aDataObject.rootFolder );
getProfileDir( aValue, false );
chooseProfileFolder( aValue, false );
}
else if(element.id == "ProfileName")
element.value = aValue;
}
// function createProfileWizard.js::chooseFolder();
// utility function responsible for displaying a folder selection dialog.
function chooseFolder(string)
// check to see if some user specified profile folder exists, otherwise use
// default.
function initFields()
{
try {
var fileSpec = Components.classes["component://netscape/filespecwithui"].createInstance();
if(fileSpec) {
fileSpec = fileSpec.QueryInterface(Components.interfaces.nsIFileSpecWithUI);
return fileSpec.chooseDirectory(string);
} else
return false;
} catch(e) {
return false;
}
var displayField = document.getElementById( "ProfileDir" );
if ( !displayField.value || !displayField.rootFolder )
setDisplayToDefaultFolder();
}
function removeChildren(which)
// function createProfileWizard.js::chooseProfileFolder();
// invoke a folder selection dialog for choosing the directory of profile storage.
function chooseProfileFolder(folder, showPopup)
{
if(which.hasChildNodes()) {
for(var i = 0; i < which.childNodes.length; i++)
{
which.removeChild(which.lastChild);
if(showPopup) {
try {
var fileSpec = Components.classes["component://netscape/filespecwithui"].createInstance();
if(fileSpec) {
fileSpec = fileSpec.QueryInterface(Components.interfaces.nsIFileSpecWithUI);
folder = fileSpec.chooseDirectory( bundle.GetStringFromName("chooseFolder"));
}
else folder = null;
}
catch(e) {
folder = null;
}
}
}
// function createProfileWizard.js::getProfileDir();
// invoke a folder selection dialog for choosing the directory of profile storage.
function getProfileDir(folder, showPopup)
{
if(showPopup)
folder = chooseFolder("Choose Profile Directory");
if( folder != undefined && folder ) {
var folderText = document.getElementById("ProfileDir");
oldText = document.getElementById("deffoldername");
removeChildren(oldText);
// covert the file URL to a native file path.
// only need to do this if we called chooseFolder()
// otherwise, it's already a native file path.
// this can happen when the user goes back and next after
// selecting a folder
if (showPopup) {
try {
var spec = Components.classes["component://netscape/filespec"].createInstance();
@ -110,76 +94,48 @@ function getProfileDir(folder, showPopup)
folderText.setAttribute( "value",folder );
if( showPopup )
folderText.setAttribute( "rootFolder", folder );
if(!detect) {
var useDefault = document.createElement("titledbutton");
try {
useDefault.setAttribute("value",bundle.GetStringFromName("useDefaultFolder"));
}
catch(e) {
// mac string bundle hack
useDefault.setAttribute("value", "Use default folder, yah");
}
useDefault.setAttribute("class","dialog push");
useDefault.setAttribute("id","useDefaultButton");
useDefault.setAttribute("onclick","UseDefaultFolder();");
document.getElementById("folderbuttons").appendChild(useDefault);
detect = true;
updateProfileName( document.getElementById("ProfileName") );
}
// show the 'use default' button
document.getElementById( "useDefault" ).setAttribute( "style", "display: inherit" );
updateProfileName();
}
//resize the parent window, because the native file path
//may require a window resize.
//comment this out for now, see bug #15825
//parent.sizeToContent();
}
function UseDefaultFolder()
function updateProfileName()
{
var ProfileDir = document.getElementById("ProfileDir");
ProfileDir.setAttribute("value","");
var FolderButtons = document.getElementById("folderbuttons");
if(FolderButtons.childNodes.length > 1)
FolderButtons.removeChild(FolderButtons.lastChild);
var span = document.getElementById("deffoldername")
var profileName = document.getElementById( "ProfileName" );
var folderDisplayElement = document.getElementById( "ProfileDir" );
var rootFolder = folderDisplayElement.getAttribute( "rootFolder" );
try {
var text = document.createTextNode(bundle.GetStringFromName("defaultString"));
var fileSpec = Components.classes["component://netscape/filespec"].createInstance();
if ( fileSpec )
fileSpec = fileSpec.QueryInterface( Components.interfaces.nsIFileSpec );
if ( fileSpec )
fileSpec.nativePath = rootFolder;
fileSpec.appendRelativeUnixPath( profileName.value );
folderDisplayElement.setAttribute( "value", fileSpec.nativePath );
}
catch(e) {
// mac string bundle hack
var text = document.createTextNode("the default folder, yah.");
}
span.appendChild(text);
detect = false;
//resize the parent window, because switching to use the default
//may require a window resize.
//comment this out for now, see bug #15825
//parent.sizeToContent();
}
// check to see if profilename exists to allow the user to finish or not.
function ProfileNameExists()
{
/*
var profName = this.value;
var isBackAvailable = ( parent.wizardManager.wizardMap[parent.wizardManager.currentPageTag].previous ) ? true : false;
var isNextAvailable = ( parent.wizardManager.wizardMap[parent.wizardManager.currentPageTag].next ) ? true : false;
var isFinishAvailable = ( parent.wizardManager.wizardMap[parent.wizardManager.currentPageTag].finish ) ? true : false;
if( parent.profile.profileExists( profName ) )
parent.wizardManager.DoButtonEnabling( false, isBackAvailable, false );
else
parent.wizardManager.DoButtonEnabling( false, isNextAvailable, isFinishAvailable );
*/
}
function updateProfileName( aTextFieldElement )
{
if( detect ) {
var folderDisplayElement = document.getElementById( "ProfileDir" );
var rootFolder = folderDisplayElement.getAttribute( "rootFolder" );
dump("*** rootFolder = " + rootFolder + "\n");
var stringValue = rootFolder + aTextFieldElement.value;
folderDisplayElement.setAttribute( "value", stringValue );
}
}
function setDisplayToDefaultFolder()
{
var profileName = document.getElementById( "ProfileName" );
var profileDisplay = document.getElementById( "ProfileDir" );
var fileSpec;
try {
fileSpec = top.profile.defaultProfileParentDir;
if ( fileSpec )
fileSpec = fileSpec.QueryInterface( Components.interfaces.nsIFileSpec );
if ( fileSpec )
profileDisplay.setAttribute("rootFolder", fileSpec.nativePath );
}
catch(e) {
}
document.getElementById("useDefault").setAttribute("style","display:none");
// reset the display field
updateProfileName();
}

View File

@ -29,38 +29,24 @@
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" class="dialog wizardPanel"
width="500" height="500"
align="vertical"
onload="parent.wizardManager.onPageLoad('newProfile1_2');">
onload="initFields();parent.wizardManager.onPageLoad('newProfile1_2');">
<html:script language="javascript" src="chrome://global/content/strres.js" />
<html:script language="JavaScript" src="newProfile1_2.js"/>
<html:script language="JavaScript" src="chrome://profile/content/newProfile1_2.js"/>
<html:div>&pnl2.intro.text;</html:div>
<spring style="height: 7px;"/>
<html:div>&pnl2.pname.label;</html:div>
<spring flex="15%"/>
<box align="horizontal">
<html:input type="text" id="ProfileName" value="mozProfile" flex="100%" onblur="updateProfileName( this );"/>
<html>&pnl2.intro.text;</html>
<html>&pnl2.pname.label;</html>
<html:input type="text" id="ProfileName" value="&pnl2.defaultPName.label;" onblur="updateProfileName();"/>
<html>&pnl2.pdir.label;</html>
<box id="dirbox" autostretch="never">
<text id="ProfileDir" flex="1" crop="right"/>
<box orient="vertical">
<titledbutton class="push" value="&button.choosefolder.label;" onclick="chooseProfileFolder(null,true);"/>
<titledbutton class="push" id="useDefault" value="&button.usedefault.label;" onclick="setDisplayToDefaultFolder();" style="display: none;"/>
</box>
<spring flex="15%"/>
<html:div id="folderintro" style="padding-bottom: 0px;">
&pnl2.pdir.label;
<html:span id="deffoldername">&pnl2.deffldr.label;</html:span>
</html:div>
<box align="horizontal" id="dirbox">
<html:div class="dirLabel" flex="100%">
<!-- replace this button with an input field when they start responding
to css styles properly as the cropping is a problem. -->
<titledbutton id="ProfileDir" flex="100%" value="" crop="right"/>
</html:div>
<spring flex="100%"/>
<box align="vertical" id="folderbuttons">
<titledbutton class="dialog push" value="&button.choosefolder.label;" onclick="getProfileDir(null,true);"/>
</box>
<spring flex="5%"/>
</box>
<spring flex="85%"/>
<html:div id="finishtext">&pnl2.finish.text;</html:div>
<spring flex="15%"/>
</box>
<spring flex="1"/>
<html id="finishtext">&pnl2.finish.text;</html>
</window>

View File

@ -18,6 +18,8 @@
* Copyright (C) 1998-1999 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Ben Goodger <ben@netscape.com>
*/
var bundle = srGetStrBundle("chrome://profile/locale/profileManager.properties");
@ -66,7 +68,7 @@ function RenameProfile()
}
else {
var oldName = selected.getAttribute("rowName");
var newName = prompt( bundle.GetStringFromName("renameprofilepromptA") + oldName + bundle.GetStringFromName("renameprofilepromptB"), "" );
var newName = prompt( bundle.GetStringFromName("renameprofilepromptA") + oldName + bundle.GetStringFromName("renameprofilepromptB"), oldName );
dump("*** newName = |" + newName + "|\n");
if( newName == "" || !newName )
return false;
@ -179,7 +181,6 @@ function SwitchProfileManagerMode()
captionLine = "Manage Profiles Yah";
}
buttonDisplay = "display: inherit;"; // display the manager's buttons
var manage = document.getElementById( "manage" ); // hide the manage profiles button...
var manageParent = manage.parentNode;
manageParent.removeChild( manage );
@ -192,7 +193,6 @@ function SwitchProfileManagerMode()
} catch(e) {
captionLine = "Select Profile Yah";
}
buttonDisplay = "display: none;";
profileManagerMode = "selection";
}
@ -203,27 +203,14 @@ function SwitchProfileManagerMode()
// swap caption
ChangeCaption( captionLine );
// display the management buttons
var buttons = document.getElementById( "managementbox" );
buttons.setAttribute( "style", buttonDisplay );
// switch set
if( set )
set = false;
else
set = true;
set = !set;
}
// change the title of the profile manager/selection window.
function ChangeCaption( aCaption )
{
var caption = document.getElementById( "caption" );
while( caption.hasChildNodes() )
{
caption.removeChild( caption.firstChild );
}
newCaption = document.createTextNode( aCaption );
caption.appendChild( newCaption );
var caption = document.getElementById( "header" );
caption.setAttribute( "value", aCaption );
}
// do button enabling based on tree selection
@ -274,8 +261,9 @@ function HandleKeyEvent( aEvent )
function HandleClickEvent( aEvent )
{
if( aEvent.clickCount == 2 ) {
if( aEvent.target.nodeName.toLowerCase() == "treecell" )
if( aEvent.clickCount == 2 && aEvent.which == 1 ) {
if( aEvent.target.nodeName.toLowerCase() == "treecell" &&
aEvent.target.parentNode.parentNode.nodeName.toLowerCase() != "treehead" )
return onStart();
}
else

View File

@ -19,7 +19,7 @@
* Rights Reserved.
*
* Contributor(s):
* Ben Goodger (03/01/00)
* Ben Goodger <ben@netscape.com>
* Seth Spitzer (28/10/99)
*/
@ -53,6 +53,7 @@ function StartUp()
loadElements();
highlightCurrentProfile();
DoEnabling();
document.getElementById("profiles").focus();
}
// select the last opened profile in the profile list

View File

@ -22,7 +22,7 @@
Contributor(s):
Contributors:
Code: Ben Goodger (28/10/99)
Code: Ben Goodger <ben@netscape.com>
UI Ideas: Matthew Thomas, Ben Gregory
-->
@ -48,100 +48,52 @@
<key id="fooKey" key="s" xulkey="true" shift="true" onkeydown="foo()"/>
</keyset>
<toolbar class="decorated header" align="horizontal">
<titledbutton id="profileIcon" class="button28"/>
<box align="vertical">
<spring flex="100%"/>
<html:div class="headertext" id="caption">&windowtitle.label;</html:div>
<spring flex="100%"/>
</box>
<spring flex="100%"/>
</toolbar>
<box type="largeheader" id="header" value="&windowtitle.label;"/>
<box id="contentarea" align="horizontal" flex="100%">
<spring style="width: 7px;"/>
<separator class="thin" orient="vertical"/>
<!-- instructions -->
<deck id="prattle">
<box align="vertical" id="selection">
<html:div class="label" style="width: 200px;">&introgeneral.label;</html:div>
<!-- sspitzer roaming not supported yet 10-28-199
<html:div class="label">&introroaming.label;</html:div>
-->
<html>&introgeneral.label;</html>
</box>
<box align="vertical" id="manager">
<html:div class="label" style="width: 200px;">&pmTextA.label;</html:div>
<html class="label" style="width: 200px;">&pmTextA.label;</html>
<spring flex="30%"/>
<box align="horizontal" flex="100%">
<spring flex="100%"/>
<box align="vertical">
<titledbutton id="delbutton" class="dialog push padded" value="&deleteButton.label;" onclick="ConfirmDelete();"/>
<titledbutton id="renbutton" class="dialog push padded" value="&renameButton.label;" onclick="RenameProfile();"/>
<titledbutton id="newbutton" class="dialog push padded" value="&newButton.label;" onclick="CreateProfileWizard();"/>
</box>
<spring flex="100%"/>
<box orient="vertical" autostretch="never" id="managebuttons">
<titledbutton id="newbutton" class="dialog push padded" value="&newButton.label;" onclick="CreateProfileWizard();"/>
<titledbutton id="renbutton" class="dialog push padded" value="&renameButton.label;" onclick="RenameProfile();"/>
<titledbutton id="delbutton" class="dialog push padded" value="&deleteButton.label;" onclick="ConfirmDelete();"/>
</box>
<html:div class="label" style="width: 200px; display: none;">
<titledbutton class="unMigratedProfile plain"/>
&pmTextB.label;
</html:div>
<html class="label" style="display: none;">&pmTextB.label;</html>
</box>
</deck>
<spring style="width: 7px;"/>
<box align="vertical" flex="100%">
<spring style="height: 1px;"/>
<tree
id="profiles" class="inset" style="height: 175px; width: 220px;" flex="100%"
onclick="HandleClickEvent( event );"
onkeypress="HandleKeyEvent( event );">
<treehead>
<treerow>
<treecell value="&availprofiles.label;"/>
</treerow>
</treehead>
<treechildren id="profilekids">
<!-- sspitzer roaming not supported yet 10-28-199
<treeitem id="roamingitem">
<treerow>
<treecell id="roamingcell" value="Roaming Access Profile"/>
</treerow>
</treeitem>
-->
</treechildren>
</tree>
<!-- sspitzer workoffline not supported yet 10-28-199
<html:table>
<html:tr>
<html:td valign="middle"><html:input type="checkbox" id="offline"/></html:td>
<html:td valign="middle">
<html:label for="offline" style="padding-top: 3px;">&workoffline.label;</html:label>
</html:td>
</html:tr>
</html:table>
-->
<spring style="height: 3px"/>
<box id="managementbox" align="vertical" style="display: none;"/>
</box>
<spring style="width: 7px;"/>
<separator class="thin" orient="vertical"/>
<tree id="profiles" class="inset" flex="1"
onclick="HandleClickEvent( event );"
onkeypress="HandleKeyEvent( event );">
<treecol/>
<treehead>
<treerow>
<treecell value="&availprofiles.label;"/>
</treerow>
</treehead>
<treechildren id="profilekids"/>
</tree>
<separator class="thin" orient="vertical"/>
</box>
<box class="selection" align="horizontal">
<spring style="width: 5px;"/>
<separator class="thin" orient="vertical"/>
<titledbutton class="dialog push padded" id="manage" value="&manage.label;" onclick="SwitchProfileManagerMode();"/>
<spring flex="100%"/>
<spring flex="1"/>
<box id="okCancelButtons"/>
<!-- older, but nonetheless prettier buttons.
<titledbutton class="dialog push padded" id="exit" value="&exit.label;" onclick="onExit();"/>
<spring style="width: 5px;"/>
<titledbutton class="dialog push padded" id="start" value="&start.label;" onclick="onStart();"/>
-->
<spring style="width: 5px;"/>
<separator class="thin" orient="vertical"/>
</box>
<spring style="height: 4px;"/>
<toolbar class="standard title">
<html:div class="dimmed-highcontrast">&profilemanager.label;</html:div>
<spring flex="100%"/>
<html:div id="progress"/>
</toolbar>
<separator class="thin" />
<box type="status" value="&profilemanager.label;" progress=""/>
</window>

View File

@ -1,14 +1,9 @@
<!-- extracted from cpw.xul -->
<!ENTITY profileWizard.title "Create New Profile">
<!ENTITY profileWizard.title "Create Profile">
<!ENTITY window.title.label "Mozilla Profile Manager">
<!ENTITY newprofile.title "Create New Profile">
<!ENTITY newprofile.title "Create Profile">
<!ENTITY dialup.title "Dialup">
<!ENTITY mailnews.title "Mail News">
<!ENTITY addrbook.title "Address Book">
<!ENTITY back.label "Back">
<!ENTITY next.label "Next">
<!ENTITY cancel.label "Cancel">
<!ENTITY finish.label "Finish">
<!ENTITY createprofile.heading "Create New Profile">
<!ENTITY createprofile.subheading "MOZILLA PROFILE MANAGER">

View File

@ -1,5 +1,5 @@
<!ENTITY pnl1.p1.text "Mozilla stores information about your settings, preferences, bookmarks, and stored messages in your personal profile.">
<!ENTITY pnl1.p2.text "If you are sharing this copy of Mozilla with other users, you can use profiles to keep each user's information separate. To do this, each user should create his or her own profile and optionally protect it with a password.">
<!ENTITY pnl1.p2.text "If you are sharing this copy of Mozilla with other users, you can use profiles to keep each user's information separate. To do this, each user should create his or her own profile.">
<!ENTITY pnl1.p3.text "If you are the only person using this copy of Mozilla, you must have at least one profile. If you would like, you can create multiple profiles for yourself to store different sets of setting and preferences. For example, you may want to have separate profiles for business and personal use.">
<!ENTITY pnl1.p4.text "To begin creating your profile, click Next.">

View File

@ -1,6 +1,8 @@
<!ENTITY pnl2.intro.text "If you create several profiles you can tell them apart by the profile names. You may use the name provided here or use one of your own.">
<!ENTITY pnl2.pname.label "Enter New Profile name:">
<!ENTITY pnl2.pdir.label "Your user settings, preferences, bookmarks and mail will be stored in ">
<!ENTITY pnl2.pdir.label "Your user settings, preferences, bookmarks and mail will be stored in: ">
<!ENTITY pnl2.deffldr.label " the default folder.">
<!ENTITY pnl2.finish.text "Click Finish to create this new profile.">
<!ENTITY button.choosefolder.label "Change Folder...">
<!ENTITY button.choosefolder.label "Choose Folder...">
<!ENTITY button.usedefault.label "Use Default">
<!ENTITY pnl2.defaultPName.label "Default User">

View File

@ -1,2 +1,2 @@
useDefaultFolder=Use Default Folder
defaultString= the default folder.
chooseFolder=Choose Profile Folder

View File

@ -1,45 +1,16 @@
box.picker {
margin-left : 10px;
margin-top : 10px;
margin-bottom : 5px;
margin-right : 20px;
}
div.dirLabel {
margin-left : 15px;
margin-top : -10px;
font-weight : bold;
}
div#finishtext {
#finishtext {
margin-top : -20px;
}
div#folderintro {
height : 30px;
}
titledbutton#ProfileDir {
border : none;
color : black;
text#ProfileDir {
font-weight : bold;
padding : none;
margin : none;
text-decoration : none;
padding-left : 1em;
margin-top : 0.4em;
}
box#folderbuttons {
margin-top : 0px;
margin-bottom : -10px;
margin-right : 7px;
}
box#folderbuttons titledbutton {
width : 90px;
}
box#dirbox {
height : 50px;
box#dirbox > box > titledbutton {
min-width : 8em;
}
span#deffoldername {

View File

@ -19,32 +19,15 @@
* Rights Reserved.
*
* Contributors:
* Ben Goodger <ben@netscape.com>
* Chris Nelson <chrisn@statecollege.com>
*
*/
@import url(chrome://global/skin/);
toolbar.header {
padding-left: 5px;
padding-bottom: 4px;
min-height: 34px;
}
toolbar.title {
padding: 1px 5px 1px 5px;
min-height: 0px ! important;
}
treeitem[rowMigrate="true"] > treerow > treecell > .tree-icon {
list-style-image: url("chrome://profile/skin/migrate.gif");
}
titledbutton.unMigratedProfile {
padding: 0px;
margin-bottom: -4px;
margin-right: 4px;
list-style-image: url("chrome://profile/skin/migrate.gif");
window.dialog {
padding: none;
}
.dimmed-highcontrast {
@ -55,7 +38,7 @@ treeitem[rowMigrate="no"] > treerow > treecell {
}
/** icon courtesy of chris nelson, chrisn@statecollege.com **/
treeitem[rowMigrate="no"] > treerow > treecell > .tree-icon {
treeitem[rowMigrate="no"] > treerow > treecell > .tree-button {
list-style-image: url("chrome://profile/skin/migrate.gif");
}
@ -63,11 +46,7 @@ treeitem[rowMigrate="no"][selected="true"] > treerow > treecell {
color: #FFFFFF;
}
div.headertext {
color: white;
}
titledbutton#profileIcon {
box[type="largeheader"] > toolbar > .circle {
list-style-image: url("chrome://profile/skin/profileicon-large.gif");
margin-top: 1px;
margin-bottom: 1px;
@ -75,22 +54,13 @@ titledbutton#profileIcon {
width: 28px;
}
titledbutton#profileIcon:hover {
background-image: url("chrome://global/skin/button28-bg.gif");
/* profile selection dialog */
deck#prattle {
max-width: 17em;
}
titledbutton#profileIcon:active {
background-image: url("chrome://global/skin/button28-bg.gif");
}
div.headertext {
font-size: large;
font-weight: bold;
text-decoration: underline;
}
div.separator {
margin: 0px;
box#managebuttons > titledbutton {
min-width: 8em;
}
/* display area */
@ -107,11 +77,6 @@ box#wizardButtons {
padding-bottom: 1px;
}
/* profile selection dialog */
div.label {
padding-top: 10px;
}
/* manager buttons */
titledbutton.padded {
padding-left: 10px ! important;

View File

@ -10,6 +10,7 @@ tasksOverlay.js
taskbarOverlay.xul
dialogOverlay.xul
dialogOverlay.js
dialogBindings.xml
commonDialog.xul
commonDialog.js
strres.js

View File

@ -41,6 +41,7 @@ EXPORT_RESOURCE_CONTENT = \
$(srcdir)/taskbarOverlay.xul \
$(srcdir)/dialogOverlay.xul \
$(srcdir)/dialogOverlay.js \
$(srcdir)/dialogBindings.xml \
$(srcdir)/commonDialog.xul \
$(srcdir)/commonDialog.js \
$(srcdir)/charsetOverlay.xul \

View File

@ -1,5 +1,6 @@
<?xml version="1.0"?>
<?xul-overlay href="chrome://global/content/platformDialogOverlay.xul"?>
<?xml-stylesheet href="chrome://global/skin/dialogOverlay.css" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://global/locale/dialogOverlay.dtd">

View File

@ -41,6 +41,7 @@ install::
$(MAKE_INSTALL) taskbarOverlay.xul $(DISTBROWSER)
$(MAKE_INSTALL) dialogOverlay.xul $(DISTBROWSER)
$(MAKE_INSTALL) dialogOverlay.js $(DISTBROWSER)
$(MAKE_INSTALL) dialogBindings.xml $(DISTBROWSER)
$(MAKE_INSTALL) commonDialog.xul $(DISTBROWSER)
$(MAKE_INSTALL) commonDialog.js $(DISTBROWSER)
$(MAKE_INSTALL) strres.js $(DISTBROWSER)

View File

@ -149,7 +149,7 @@ function DEF_onPageLoad( tag )
if( this.DoButtonEnabling ) // if provided, call user-defined button
this.DoButtonEnabling(); // enabling function
if( this.content_frame ) {
oParent.SM.SetPageData( tag, false ); // set page data in content frame
oParent.SM.SetPageData( tag, true ); // set page data in content frame
// set the focus to the first focusable element
var doc = window.frames[this.content_frame.name].document;

View File

@ -155,13 +155,8 @@ function WM_GetMapLength()
**/
function WM_ProgressUpdate( currentPageNumber )
{
var div = document.getElementById ( "progress" );
if ( div ) {
if ( div.hasChildNodes() ) {
for ( var i = 0; i < div.childNodes.length; i++ ) {
div.removeChild ( div.childNodes[i] ); // kill old childnodes
}
}
var statusbar = document.getElementById ( "status" );
if ( statusbar ) {
var string = "";
string += (currentPageNumber + 1);
try {
@ -171,8 +166,7 @@ function WM_ProgressUpdate( currentPageNumber )
string += " of ";
}
string += this.GetMapLength();
var textNode = document.createTextNode ( string );
div.appendChild ( textNode );
statusbar.setAttribute( "progress", string );
}
}

View File

@ -1740,28 +1740,10 @@ html|input[type=radio][disabled] {
/********** checkbox **********/
checkbox, foopy {
checkbox {
list-style-image: url(chrome://global/skin/scroll-up.gif);
}
checkbox > .internal-box > text,
radio > .internal-box > text {
border: 1px solid red;
}
radio:focus > .internal-box > text,
checkbox:focus > .internal-box > text {
border: 1px dotted black;
}
checkbox > .internal-box > image {
border: 1px outset #CCCCCC;
}
checkbox:hover > .internal-box > image {
border: 1px solid black;
}
checkbox[checked="true"] {
list-style-image: url(chrome://global/skin/scroll-down.gif);
}
@ -1770,20 +1752,14 @@ radio {
list-style-image: url(chrome://global/skin/scroll-up.gif);
}
radio > .internal-box > image {
border: 1px outset #CCCCCC;
-moz-border-radius: 6px;
}
radio:hover > .internal-box > image {
border: 1px solid black;
}
radio[checked="true"] {
list-style-image: url(chrome://global/skin/scroll-down.gif);
}
radiogroup {
border: 1px solid black;
}
html|input[type=checkbox] {
padding: 0px 1px 1px 0px;
margin: 3px 5px 4px 3px;
@ -2099,53 +2075,38 @@ toolbarseparator.line {
background-color: #99CCCC;
}
/* push button */
button {
border: 1px solid #CCCCCC;
margin: 2px;
background-color: inherit;
background-image: inherit;
/* NEW WIDGET LANDING: <separator> */
separator, separator[orient="horizontal"] {
height: 1.5em;
}
button > .internal-box > image,
button.left > .internal-box > image,
button.right > .internal-box > text {
padding-right: 5px;
separator[orient="vertical"] {
width: 1.5em;
}
button.top > .internal-box > image,
button.bottom > .internal-box > text {
padding-bottom: 3px;
separator.thin, separator.thin[orient="horizontal"] {
height: 0.5em;
}
button:hover {
border: 1px solid #000000;
color: #003366;
text-decoration: underline;
}
button:active {
border: 1px solid #000000;
text-decoration: none;
separator.thin[orient="vertical"] {
width: 0.5em;
}
button > .internal-box {
vertical-align: middle;
border: 1px outset #CCCCCC;
padding: 2px;
separator.groove,
separator.groove[orient="horizontal"] {
border-top: 2px groove #CCCCCC;
height: 0px;
margin-top: 0.75em;
margin-bottom: 0.75em;
}
button:hover > .internal-box {
padding: 2px;
separator[type="groove"][orient="vertical"] {
border-left: 2px groove #CCCCCC;
margin-left: 0.75em;
margin-right: 0.75em;
}
button:hover:active > .internal-box {
border: 1px inset #CCCCCC;
padding: 3px 1px 1px 3px;
}
button:active > .internal-box {
border: 1px inset #CCCCCC;
padding: 3px 1px 1px 3px;
}
html {
margin-top: 0.4em;
margin-bottom: 0.4em;
}

View File

@ -13,4 +13,5 @@ titledbutton[id="wiz.next.button"][disabled] {
box#wizardButtons {
margin-top : 3px;
}
}

View File

@ -276,7 +276,13 @@ scrollbar {
behavior: url("resource:/chrome/xulBindings.xml#scrollbar");
}
thumb {
display: block;
user-focus: ignore;
}
slider {
display: block;
user-focus: ignore;
}
@ -293,22 +299,58 @@ scrollbar[value="hidden"] {
/********* XP Scrollbar *********/
thumb {
behavior: url(resource:/chrome/xulBindings.xml#thumb);
user-focus: ignore;
background-color: #CCCCCC;
border: 1px outset #CCCCCC;
list-style-image: url("chrome://global/skin/scroll-thumb-horiz.gif")
user-focus: ignore;
background-color: #CCCCCC;
border: 1px outset white;
list-style-image: url("chrome://global/skin/scroll-thumb-horiz.gif")
}
/*
pinkerton - workaround. removed until bug 15722 can be fixed.
thumb:hover {
list-style-image: url(chrome://global/skin/scroll-thumb-horiz-hover.gif);
}
*/
thumb[disabled="true"] {
user-focus: ignore;
list-style-image: url("chrome://global/skin/scroll-thumb-horiz-disabled.gif");
}
thumb[align="vertical"] {
slider[align="vertical"] thumb {
user-focus: ignore;
list-style-image: url("chrome://global/skin/scroll-thumb-vert.gif")
}
/*
pinkerton - workaround. removed until bug 15722 can be fixed.
slider[align="vertical"] thumb:hover {
list-style-image: url(chrome://global/skin/scroll-thumb-vert-hover.gif);
}
*/
slider[align="vertical"] thumb[disabled="true"] {
user-focus: ignore;
list-style-image: url("chrome://global/skin/scroll-thumb-vert-disabled.gif");
}
thumb:active {
user-focus: ignore;
background-color: #CCCCCC;
}
slider[align="vertical"] thumb:active {
user-focus: ignore;
background-color: #CCCCCC;
}
slider {
user-focus: ignore;
background-color: #999999;
}
scrollbarbutton {
user-focus: ignore;
vertical-align: bottom;
@ -336,6 +378,13 @@ scrollbarbutton[type="decrement"] {
list-style-image: url("chrome://global/skin/scroll-left.gif")
}
/*
pinkerton - workaround. removed until bug 15722 can be fixed.
scrollbarbutton[type="decrement"]:hover {
list-style-image: url(chrome://global/skin/scroll-left-hover.gif)
}
*/
scrollbarbutton[type="decrement"][disabled="true"] {
user-focus: ignore;
list-style-image: url("chrome://global/skin/scroll-left-disabled.gif")
@ -346,6 +395,12 @@ scrollbarbutton[type="increment"] {
list-style-image: url("chrome://global/skin/scroll-right.gif")
}
/*
pinkerton - workaround. removed until bug 15722 can be fixed.
scrollbarbutton[type="increment"]:hover {
list-style-image: url(chrome://global/skin/scroll-right-hover.gif)
}
*/
scrollbarbutton[type="increment"][disabled="true"] {
user-focus: ignore;
@ -358,6 +413,13 @@ scrollbar[align="vertical"] scrollbarbutton[type="decrement"] {
list-style-image: url("chrome://global/skin/scroll-up.gif")
}
/*
pinkerton - workaround. removed until bug 15722 can be fixed.
scrollbar[align="vertical"] scrollbarbutton[type="decrement"]:hover {
list-style-image: url(chrome://global/skin/scroll-up-hover.gif)
}
*/
scrollbar[align="vertical"] scrollbarbutton[type="decrement"][disabled="true"] {
user-focus: ignore;
list-style-image: url("chrome://global/skin/scroll-up-disabled.gif")
@ -368,21 +430,18 @@ scrollbar[align="vertical"] scrollbarbutton[type="increment"] {
list-style-image: url("chrome://global/skin/scroll-down.gif")
}
/*
pinkerton - workaround. removed until bug 15722 can be fixed.
scrollbar[align="vertical"] scrollbarbutton[type="increment"]:hover {
list-style-image: url(chrome://global/skin/scroll-down-hover.gif)
}
*/
scrollbar[align="vertical"] scrollbarbutton[type="increment"][disabled="true"] {
user-focus: ignore;
list-style-image: url("chrome://global/skin/scroll-down-disabled.gif")
}
slider[align="vertical"] thumb:active {
user-focus: ignore;
background-color: #CCCCCC;
}
slider {
user-focus: ignore;
background-color: #999999;
}
splitter {
display: block;
}
@ -391,33 +450,18 @@ grippy {
display: block;
}
/********** checkbox **********/
checkbox {
behavior: url(resource:/chrome/xulBindings.xml#checkbox);
}
radio, button, button.left {
behavior: url(resource:/chrome/xulBindings.xml#buttonleft);
}
radiogroup {
behavior: url(resource:/chrome/xulBindings.xml#radiogroup);
}
button, button.left {
behavior: url(resource:/chrome/xulBindings.xml#buttonleft);
}
button.top {
behavior: url(resource:/chrome/xulBindings.xml#buttontop);
}
button.right {
behavior: url(resource:/chrome/xulBindings.xml#buttonright);
}
button.bottom {
behavior: url(resource:/chrome/xulBindings.xml#buttonbottom);
separator {
behavior: url(resource:/chrome/xulBindings.xml#separator);
}

View File

@ -5,34 +5,14 @@
xmlns:html="http://www.w3.org/TR/REC-html40"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<binding name="thumb" extends="xul:box">
<content>
<xul:spring flex="1"/>
<xul:image inherits="src"/>
<xul:spring flex="1"/>
</content>
</binding>
<binding name="scrollbar">
<content>
<xul:scrollbarbutton type="decrement">
<xul:image inherits="src"/>
</xul:scrollbarbutton>
<xul:slider flex="1" inherits="curpos,maxpos,pageincrement,increment">
<xul:thumb inherits="align,src" flex="1"/>
</xul:slider>
<xul:scrollbarbutton type="increment">
<xul:image inherits="src"/>
</xul:scrollbarbutton>
<xul:scrollbarbutton type="decrement"/>
<xul:slider flex="1" inherits="curpos,maxpos,pageincrement,increment"/>
<xul:scrollbarbutton type="increment"/>
</content>
</binding>
<binding name="slider">
<content>
<xul:button align="horizontal"/>
</content>
</binding>
<binding name="menusOnMenuBar">
<content excludes="template,observes,menupopup">
<xul:titledbutton class="menubar-left"/>
@ -79,7 +59,7 @@
</binding>
<binding name="treecell-indented-folder">
<content>
<content>
<xul:treeindentation/>
<xul:titledbutton class="twisty" allowevents="true"/>
<xul:titledbutton class="tree-icon tree-button" inherits="crop,value,align,src"
@ -103,15 +83,9 @@
</content>
</binding>
<binding name="checkbox" extends="xul:checkbox">
<content>
<xul:box class="internal-box" autostretch="never">
<xul:image inherits="src"/>
<xul:text inherits="value,accesskey,crop"/>
</xul:box>
</content>
<binding name="checkbox">
<handlers>
<handler type="mouseup" value="dump('\n*** foopy\n');this.checked = !this.checked;"/>
<handler type="mouseup" value="this.checked = !this.checked;"/>
<handler type="keypress" key=" " value="this.checked = !this.checked;"/>
</handlers>
</binding>
@ -123,40 +97,7 @@
</handlers>
</binding>
<binding name="buttonleft" excludes="observes,template">
<content>
<xul:box class="internal-box" autostretch="never">
<xul:image inherits="src"/>
<xul:text inherits="value,accesskey,crop"/>
</xul:box>
</content>
</binding>
<binding name="buttontop" excludes="observes,template">
<content>
<xul:box orient="vertical" autostretch="never" class="internal-box">
<xul:image inherits="src"/>
<xul:text inherits="value,accesskey,crop"/>
</xul:box>
</content>
</binding>
<binding name="buttonright" excludes="observes,template">
<content>
<xul:box autostretch="never" class="internal-box">
<xul:text inherits="value,accesskey,crop"/>
<xul:image inherits="src"/>
</xul:box>
</content>
</binding>
<binding name="buttonbottom" excludes="observes,template">
<content>
<xul:box orient="vertical" autostretch="never" class="internal-box">
<xul:text inherits="value,accesskey,crop"/>
<xul:image inherits="src"/>
</xul:box>
</content>
</binding>
<binding name="separator" extends="xul:spring"/>
</bindings>