Landing bookmarks branch. Everything except mozilla/xpfe

Bug 196756 - Meta bug for major architectural changes in bookmarks code
r=jag, sr=bryner
This commit is contained in:
varga%netscape.com 2003-03-25 04:44:31 +00:00
Родитель d9f1bb225c
Коммит 906bfa1fa3
14 изменённых файлов: 114 добавлений и 58 удалений

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

@ -191,17 +191,8 @@ XUL_ATOM(columns, "columns")
XUL_ATOM(row, "row")
XUL_ATOM(column, "column")
// toolbar & toolbar d&d atoms
XUL_ATOM(ddDropLocation, "dd-droplocation")
XUL_ATOM(ddDropLocationCoord, "dd-droplocationcoord")
XUL_ATOM(ddDropOn, "dd-dropon")
XUL_ATOM(ddTriggerRepaintSorted, "dd-triggerrepaintsorted")
XUL_ATOM(ddTriggerRepaintRestore, "dd-triggerrepaintrestore")
XUL_ATOM(ddTriggerRepaint, "dd-triggerrepaint")
XUL_ATOM(ddNoDropBetweenRows, "dd-nodropbetweenrows")
XUL_ATOM(container, "container")
XUL_ATOM(leaf,"leaf")
XUL_ATOM(ddDragDropArea, "dragdroparea")
XUL_ATOM(widget, "widget")
XUL_ATOM(window, "window")

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

@ -865,8 +865,8 @@ nsXULTreeBuilder::ToggleOpenState(PRInt32 aIndex)
}
if (mPersistStateStore) {
nsTreeRows::iterator iter = mRows[aIndex];
PRBool isOpen = iter->mContainerState == nsTreeRows::eContainerState_Open;
PRBool isOpen;
IsContainerOpen(aIndex, &isOpen);
nsIRDFResource* container = GetResourceFor(aIndex);
if (! container)
@ -1178,13 +1178,7 @@ nsXULTreeBuilder::ReplaceMatch(nsIRDFResource* aMember,
// Use the persist store to remember if the container
// is open or closed.
PRBool open = PR_FALSE;
if (mPersistStateStore)
mPersistStateStore->HasAssertion(container,
nsXULContentUtils::NC_open,
nsXULContentUtils::true_,
PR_TRUE,
&open);
IsContainerOpen(row, &open);
// If it's open, make sure that we've got a subtree structure ready.
if (open)

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

@ -32,7 +32,7 @@
<script type="application/x-javascript" src="chrome://communicator/content/contentAreaDD.js"/>
<script type="application/x-javascript" src="chrome://global/content/nsTransferable.js"/>
<script type="application/x-javascript" src="chrome://communicator/content/contentAreaClick.js"/>
<script type="application/x-javascript" src="chrome://communicator/content/bookmarks/bookmarksOverlay.js"/>
<script type="application/x-javascript" src="chrome://communicator/content/bookmarks/bookmarks.js"/>
<script type="application/x-javascript" src="chrome://communicator/content/findUtils.js"/>
<script type="application/x-javascript" src="chrome://global/content/nsJSSupportsUtils.js"/>

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

@ -1314,15 +1314,17 @@ nsIBox::AddCSSMinSize(nsBoxLayoutState& aState, nsIBox* aBox, nsSize& aSize)
display->mAppearance, &size, &canOverride);
float p2t;
aState.GetPresContext()->GetScaledPixelsToTwips(&p2t);
if (size.width) {
aSize.width = NSIntPixelsToTwips(size.width, p2t);
aSize.height = NSIntPixelsToTwips(size.height, p2t);
if (aSize.width)
widthSet = PR_TRUE;
if (aSize.height)
}
if (size.height) {
aSize.height = NSIntPixelsToTwips(size.height, p2t);
heightSet = PR_TRUE;
}
}
}
}
// add in the css min, max, pref
const nsStylePosition* position;

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

@ -422,7 +422,7 @@ nsTreeBodyFrame::Init(nsIPresContext* aPresContext, nsIContent* aContent,
}
NS_IMETHODIMP
nsTreeBodyFrame::GetPrefSize(nsBoxLayoutState& aBoxLayoutState, nsSize& aSize)
nsTreeBodyFrame::GetMinSize(nsBoxLayoutState& aBoxLayoutState, nsSize& aSize)
{
EnsureView();
@ -441,8 +441,10 @@ nsTreeBodyFrame::GetPrefSize(nsBoxLayoutState& aBoxLayoutState, nsSize& aSize)
desiredRows = size.ToInteger(&err);
mHasFixedRowCount = PR_TRUE;
mPageCount = desiredRows;
} else
}
else {
desiredRows = 1;
}
} else {
// tree
aSize.width = 0;
@ -453,15 +455,17 @@ nsTreeBodyFrame::GetPrefSize(nsBoxLayoutState& aBoxLayoutState, nsSize& aSize)
desiredRows = rows.ToInteger(&err);
mHasFixedRowCount = PR_TRUE;
mPageCount = desiredRows;
} else
}
else {
desiredRows = 0;
}
}
aSize.height = mRowHeight * desiredRows;
AddBorderAndPadding(aSize);
AddInset(aSize);
nsIBox::AddCSSPrefSize(aBoxLayoutState, this, aSize);
nsIBox::AddCSSMinSize(aBoxLayoutState, this, aSize);
return NS_OK;
}
@ -2324,6 +2328,32 @@ nsTreeBodyFrame::PaintRow(PRInt32 aRowIndex,
if (isSeparator) {
// The row is a separator. Paint only a double horizontal line.
// Find the primary cell.
nscoord currX, primaryX1, primaryX2;
currX = primaryX1 = primaryX2 = rowRect.x;
for (nsTreeColumn* currCol = mColumns; currCol && currX < mInnerBox.x+mInnerBox.width;
currCol = currCol->GetNext()) {
if (currCol->IsPrimary()) {
nsRect cellRect(currX, rowRect.y, currCol->GetWidth(), rowRect.height);
PRInt32 overflow = cellRect.x+cellRect.width-(mInnerBox.x+mInnerBox.width);
if (overflow > 0)
cellRect.width -= overflow;
nsRect dirtyRect;
if (dirtyRect.IntersectRect(aDirtyRect, cellRect))
PaintCell(aRowIndex, currCol, cellRect, aPresContext, aRenderingContext, aDirtyRect, primaryX2);
primaryX1 = currX;
PRInt32 level;
mView->GetLevel(aRowIndex, &level);
if (level == 0) {
primaryX1 += mIndentation;
}
break;
}
currX += currCol->GetWidth();
}
// Resolve style for the separator.
nsStyleContext* separatorContext = GetPseudoStyleContext(nsCSSAnonBoxes::moztreeseparator);
PRBool useTheme = PR_FALSE;
@ -2336,9 +2366,17 @@ nsTreeBodyFrame::PaintRow(PRInt32 aRowIndex,
}
// use -moz-appearance if provided.
if ( useTheme )
if (useTheme) {
if (primaryX1 > rowRect.x) {
// XXX We should draw the left side of the native separator here.
// The problem is that Mac native theme implementation is too smart
// and draws a vertical line if the separator is too narrow.
}
rowRect.width -= primaryX2 - rowRect.x;
rowRect.x = primaryX2;
theme->DrawWidgetBackground(&aRenderingContext, this,
displayData->mAppearance, rowRect, aDirtyRect);
}
else {
// Get border style
const nsStyleBorder* borderStyle = (const nsStyleBorder*)separatorContext->GetStyleData(eStyleStruct_Border);
@ -2356,7 +2394,10 @@ nsTreeBodyFrame::PaintRow(PRInt32 aRowIndex,
style = borderStyle->GetBorderStyle(side);
aRenderingContext.SetLineStyle(ConvertBorderStyleToLineStyle(style));
aRenderingContext.DrawLine(rowRect.x, currY, rowRect.x + rowRect.width, currY);
if (primaryX1 > rowRect.x) {
aRenderingContext.DrawLine(rowRect.x, currY, primaryX1, currY);
}
aRenderingContext.DrawLine(primaryX2, currY, rowRect.x + rowRect.width, currY);
side = NS_SIDE_BOTTOM;
currY += 16;
@ -2376,8 +2417,9 @@ nsTreeBodyFrame::PaintRow(PRInt32 aRowIndex,
if (overflow > 0)
cellRect.width -= overflow;
nsRect dirtyRect;
nscoord dummy;
if (dirtyRect.IntersectRect(aDirtyRect, cellRect))
PaintCell(aRowIndex, currCol, cellRect, aPresContext, aRenderingContext, aDirtyRect);
PaintCell(aRowIndex, currCol, cellRect, aPresContext, aRenderingContext, aDirtyRect, dummy);
currX += currCol->GetWidth();
}
}
@ -2391,7 +2433,8 @@ nsTreeBodyFrame::PaintCell(PRInt32 aRowIndex,
const nsRect& aCellRect,
nsIPresContext* aPresContext,
nsIRenderingContext& aRenderingContext,
const nsRect& aDirtyRect)
const nsRect& aDirtyRect,
nscoord& aCurrX)
{
if (aCellRect.width == 0)
return NS_OK; // Don't paint cells in hidden columns.
@ -2539,7 +2582,7 @@ nsTreeBodyFrame::PaintCell(PRInt32 aRowIndex,
if (dirtyRect.IntersectRect(aDirtyRect, elementRect)) {
switch (aColumn->GetType()) {
case nsTreeColumn::eText:
PaintText(aRowIndex, aColumn, elementRect, aPresContext, aRenderingContext, aDirtyRect);
PaintText(aRowIndex, aColumn, elementRect, aPresContext, aRenderingContext, aDirtyRect, currX);
break;
case nsTreeColumn::eCheckbox:
PaintCheckbox(aRowIndex, aColumn, elementRect, aPresContext, aRenderingContext, aDirtyRect);
@ -2554,7 +2597,7 @@ nsTreeBodyFrame::PaintCell(PRInt32 aRowIndex,
break;
case nsITreeView::progressNone:
default:
PaintText(aRowIndex, aColumn, elementRect, aPresContext, aRenderingContext, aDirtyRect);
PaintText(aRowIndex, aColumn, elementRect, aPresContext, aRenderingContext, aDirtyRect, currX);
break;
}
break;
@ -2562,6 +2605,8 @@ nsTreeBodyFrame::PaintCell(PRInt32 aRowIndex,
}
}
aCurrX = currX;
return NS_OK;
}
@ -2767,7 +2812,8 @@ nsTreeBodyFrame::PaintText(PRInt32 aRowIndex,
const nsRect& aTextRect,
nsIPresContext* aPresContext,
nsIRenderingContext& aRenderingContext,
const nsRect& aDirtyRect)
const nsRect& aDirtyRect,
nscoord& aCurrX)
{
// Now obtain the text for our cell.
nsAutoString text;
@ -2922,6 +2968,11 @@ nsTreeBodyFrame::PaintText(PRInt32 aRowIndex,
aRenderingContext.GetWidth(text, width);
textRect.width = width;
// Subtract out the remaining width.
nsRect copyRect(textRect);
copyRect.Inflate(textMargin);
aCurrX += copyRect.width;
textRect.Inflate(bp);
PaintBackgroundLayer(textContext, aPresContext, aRenderingContext, textRect, aDirtyRect);

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

@ -247,7 +247,7 @@ public:
NS_DECL_NSITREEBOXOBJECT
// nsIBox
NS_IMETHOD GetPrefSize(nsBoxLayoutState& aBoxLayoutState, nsSize& aSize);
NS_IMETHOD GetMinSize(nsBoxLayoutState& aBoxLayoutState, nsSize& aSize);
NS_IMETHOD SetBounds(nsBoxLayoutState& aBoxLayoutState, const nsRect& aRect);
// nsIReflowCallback
@ -295,7 +295,8 @@ public:
const nsRect& aCellRect,
nsIPresContext* aPresContext,
nsIRenderingContext& aRenderingContext,
const nsRect& aDirtyRect);
const nsRect& aDirtyRect,
nscoord& aCurrX);
// This method paints the twisty inside a cell in the primary column of an tree.
nsresult PaintTwisty(PRInt32 aRowIndex,
@ -323,7 +324,8 @@ public:
const nsRect& aTextRect,
nsIPresContext* aPresContext,
nsIRenderingContext& aRenderingContext,
const nsRect& aDirtyRect);
const nsRect& aDirtyRect,
nscoord& aCurrX);
// This method paints the checkbox inside a particular cell of the tree.
nsresult PaintCheckbox(PRInt32 aRowIndex,

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

@ -501,16 +501,6 @@ function DragOverAddressListTree(event)
// XXX add support for other flavors here
if (dragSession.isDataFlavorSupported("text/x-moz-address")) {
validFlavor = true;
}
// touch the attribute on the rowgroup to trigger the repaint with the drop feedback.
if (validFlavor)
{
//XXX this is really slow and likes to refresh N times per second.
var rowGroup = event.target.parentNode.parentNode;
if (rowGroup)
rowGroup.setAttribute ( "dd-triggerrepaint", 0 );
dragSession.canDrop = true;
}
}

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

@ -44,7 +44,7 @@ Rights Reserved.
<script src="chrome://messenger/content/commandglue.js"/>
<script src="chrome://messenger/content/mail-offline.js"/>
<script type="application/x-javascript" src="chrome://communicator/content/findUtils.js"/>
<script type="application/x-javascript" src="chrome://communicator/content/bookmarks/bookmarksOverlay.js"/>
<script type="application/x-javascript" src="chrome://communicator/content/bookmarks/bookmarks.js"/>
<script type="application/x-javascript" src="chrome://communicator/content/printing.js"/>
<stringbundleset id="stringbundleset">

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

@ -206,7 +206,7 @@ jar:resource:///chrome/toolkit.jar!/content/global/bindings/outliner.xml
jar:resource:///chrome/en-US.jar!/locale/en-US/navigator/navigator.properties
jar:resource:///chrome/en-win.jar!/locale/en-US/navigator-platform/navigator.properties
jar:resource:///chrome/en-US.jar!/locale/en-US/necko/necko.properties
jar:resource:///chrome/en-US.jar!/locale/en-US/communicator/bookmarks/bookmark.properties
jar:resource:///chrome/en-US.jar!/locale/en-US/communicator/bookmarks/bookmarks.properties
jar:resource:///chrome/en-win.jar!/locale/en-US/global-platform/platformKeys.properties
jar:resource:///chrome/en-US.jar!/locale/en-US/communicator/utilityOverlay.properties
jar:resource:///chrome/US.jar!/locale/US/navigator-region/region.properties

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

@ -15,23 +15,23 @@ Do Not Edit! -->
<HR>
<DT><H3 ADD_DATE="961099767" LAST_MODIFIED="0">Mozilla Project</H3>
<DL><p>
<DT><H3 ADD_DATE="961099767" LAST_MODIFIED="0" ID="NC:BookmarksRoot#$7a37f5df">mozilla.org</H3>
<DT><H3 ADD_DATE="961099767" LAST_MODIFIED="0">mozilla.org</H3>
<DL><p>
<DT><A HREF="http://www.mozilla.org/" ADD_DATE="961099870" LAST_VISIT="0" LAST_MODIFIED="0" LAST_CHARSET="ISO-8859-1">The Mozilla Organization</A>
<DT><A HREF="http://www.mozilla.org/status/" ADD_DATE="961099993" LAST_VISIT="0" LAST_MODIFIED="0" LAST_CHARSET="ISO-8859-1">Weekly Status Update</A>
<DT><A HREF="http://www.mozilla.org/feedback.html" ADD_DATE="961100017" LAST_VISIT="0" LAST_MODIFIED="0" LAST_CHARSET="ISO-8859-1">Feedback</A>
</DL><p>
<DT><H3 ADD_DATE="961102203" LAST_MODIFIED="0" ID="NC:BookmarksRoot#$b742f58">Developer Information</H3>
<DT><H3 ADD_DATE="961102203" LAST_MODIFIED="0">Developer Information</H3>
<DL><p>
<DT><A HREF="http://www.mozilla.org/get-involved.html" ADD_DATE="961102879">Getting Involved</A>
<DT><A HREF="http://www.mozilla.org/docs/" ADD_DATE="961102901">Documentation</A>
<DT><A HREF="http://www.mozilla.org/source.html" ADD_DATE="961105505" LAST_VISIT="0" LAST_MODIFIED="0" LAST_CHARSET="ISO-8859-1">Download Source Code</A>
<DT><H3 ADD_DATE="961102925" LAST_MODIFIED="0" ID="NC:BookmarksRoot#$b742f59">Standards</H3>
<DT><H3 ADD_DATE="961102925" LAST_MODIFIED="0">Standards</H3>
<DL><p>
<DT><A HREF="http://www.w3c.org/" ADD_DATE="961102978">World Wide Web Consortium</A>
<DT><A HREF="http://www.faqs.org/rfcs/" ADD_DATE="961104168">RFC Archive</A>
</DL><p>
<DT><H3 ADD_DATE="961103100" LAST_MODIFIED="0" ID="NC:BookmarksRoot#$b742f5b">User interface design</H3>
<DT><H3 ADD_DATE="961103100" LAST_MODIFIED="0">User interface design</H3>
<DL><p>
<DT><A HREF="http://developer.apple.com/techpubs/mac/HIGuidelines/HIGuidelines-2.html" ADD_DATE="961104987">Macintosh Human Interface Guidelines</A>
<DT><A HREF="http://www-3.ibm.com/ibm/easy/eou_ext.nsf/Publish/561" ADD_DATE="961105043">IBM/Ease of Use/Design</A>
@ -39,21 +39,21 @@ Do Not Edit! -->
<DT><A HREF="http://developer.kde.org/documentation/standards/kde/style/basics/" ADD_DATE="961105043">KDE User Interface Guidelines</A>
</DL><p>
</DL><p>
<DT><H3 ADD_DATE="961105105" LAST_MODIFIED="0" ID="NC:BookmarksRoot#$b8619366">Webtools</H3>
<DT><H3 ADD_DATE="961105105" LAST_MODIFIED="0">Webtools</H3>
<DL><p>
<DT><A HREF="http://lxr.mozilla.org/" ADD_DATE="961105149" LAST_VISIT="0" LAST_MODIFIED="0" LAST_CHARSET="ISO-8859-1">lxr - Mozilla Cross-Reference</A>
<DT><A HREF="http://bonsai.mozilla.org/" ADD_DATE="961105218" LAST_MODIFIED="0">bonsai - CVS Tree Control</A>
<DT><A HREF="http://tinderbox.mozilla.org/showbuilds.cgi" ADD_DATE="961105359">tinderbox - Tree Status</A>
<DT><A HREF="http://bugzilla.mozilla.org/" ADD_DATE="961105401">bugzilla - Bug-Tracking System</A>
</DL><p>
<DT><H3 ADD_DATE="961111855" LAST_MODIFIED="0" ID="NC:BookmarksRoot#$ebf1a63">Community</H3>
<DT><H3 ADD_DATE="961111855" LAST_MODIFIED="0">Community</H3>
<DL><p>
<DT><A HREF="http://www.mozilla.org/community.html" ADD_DATE="961111887" LAST_VISIT="0" LAST_MODIFIED="0">Newsgroups</A>
<DT><A HREF="http://www.mozillazine.org/" ADD_DATE="961111887" LAST_VISIT="0" LAST_MODIFIED="0" LAST_CHARSET="ISO-8859-1">MozillaZine</A>
<DT><A HREF="http://www.mozdev.org/" ADD_DATE="961112176" LAST_VISIT="0" LAST_MODIFIED="0" LAST_CHARSET="ISO-8859-1">Alphanumerica's Mozilla Development Projects</A>
<DT><A HREF="http://www.gerbilbox.com/newzilla/" ADD_DATE="961112731">NewZilla - the Unofficial Netscape 6 and Mozilla FAQ</A>
</DL><p>
<DT><H3 ADD_DATE="961106554" LAST_MODIFIED="0" ID="NC:BookmarksRoot#$ebf1a62">Third-Party Tools</H3>
<DT><H3 ADD_DATE="961106554" LAST_MODIFIED="0">Third-Party Tools</H3>
<DL><p>
<DT><A HREF="http://aphrodite.mozdev.org/total_recall.html" ADD_DATE="961106831">Crash Recovery - Alphanumerica's Total Recall</A>
</DL><p>

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

@ -87,3 +87,16 @@ treechildren:-moz-tree-twisty(group,hidetwisty) {
treechildren:-moz-tree-image(Name, container, group) {
list-style-image: url("chrome://communicator/skin/bookmarks/bookmark-group.gif");
}
treechildren:-moz-tree-image(Name, separator) {
list-style-image: none;
}
treechildren:-moz-tree-cell-text(Name, separator) {
color: ThreeDShadow;
margin: 0px 5px 0px 5px;
}
treechildren:-moz-tree-cell-text(Name, separator, selected, focus) {
color: HighlightText;
}

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

@ -71,3 +71,16 @@ treechildren:-moz-tree-twisty(group, hidetwisty) {
treechildren:-moz-tree-image(Name, container, group) {
list-style-image: url("chrome://communicator/skin/bookmarks/bookmark-group.gif");
}
treechildren:-moz-tree-image(Name, separator) {
list-style-image: none;
}
treechildren:-moz-tree-cell-text(Name, separator) {
color: #808080;
margin: 0px 5px 0px 5px;
}
treechildren:-moz-tree-cell-text(Name, separator, selected, focus) {
color: #FFFFFF;
}