зеркало из https://github.com/mozilla/gecko-dev.git
added class to minimize drawinf of list items. lxr friendlier generated files
This commit is contained in:
Родитель
2679d473d5
Коммит
f22cb5951c
|
@ -1,13 +1,13 @@
|
||||||
|
|
||||||
// generated automatically by gen_date.awk
|
/* generated by gen_date.awk to provide access to build date at runtime */
|
||||||
|
|
||||||
package com.netscape.jsdebugging.ifcui;
|
package com.netscape.jsdebugging.ifcui;
|
||||||
|
|
||||||
class BuildDate
|
class BuildDate
|
||||||
{
|
{
|
||||||
// Friday, September 18, 1998 at 12:54 PM
|
// Wednesday, September 23, 1998 at 05:12 PM
|
||||||
|
|
||||||
public static final long buildDate = 906148451000L;
|
public static final long buildDate = 906595979000L;
|
||||||
|
|
||||||
public static final java.util.Date date()
|
public static final java.util.Date date()
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,91 @@
|
||||||
|
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||||
|
*
|
||||||
|
* The contents of this file are subject to the Netscape Public License
|
||||||
|
* Version 1.0 (the "NPL"); you may not use this file except in
|
||||||
|
* compliance with the NPL. You may obtain a copy of the NPL at
|
||||||
|
* http://www.mozilla.org/NPL/
|
||||||
|
*
|
||||||
|
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||||
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||||
|
* for the specific language governing rights and limitations under the
|
||||||
|
* NPL.
|
||||||
|
*
|
||||||
|
* The Initial Developer of this code under the NPL is Netscape
|
||||||
|
* Communications Corporation. Portions created by Netscape are
|
||||||
|
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||||
|
* Reserved.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* helper class to trim a string and its rect to fit a clip rect width
|
||||||
|
*/
|
||||||
|
|
||||||
|
// when who what
|
||||||
|
// 09/23/98 jband created file
|
||||||
|
//
|
||||||
|
|
||||||
|
package com.netscape.jsdebugging.ifcui;
|
||||||
|
|
||||||
|
import netscape.application.*;
|
||||||
|
import netscape.util.*;
|
||||||
|
|
||||||
|
/* NOTE: results are in object vars -- caller must handle synchronization */
|
||||||
|
|
||||||
|
public class DrawStringClipper
|
||||||
|
{
|
||||||
|
public DrawStringClipper( int charWidth ) {_charWidth = charWidth;}
|
||||||
|
|
||||||
|
public void setCharWidth( int charWidth ) {_charWidth = charWidth;}
|
||||||
|
|
||||||
|
public int doClip(String str, Rect rect, Rect clipRect)
|
||||||
|
{
|
||||||
|
_str = str;
|
||||||
|
_rect = rect;
|
||||||
|
_len = _str.length();
|
||||||
|
|
||||||
|
int charsToTrim;
|
||||||
|
int space;
|
||||||
|
if( _len > 0 )
|
||||||
|
{
|
||||||
|
space = (_rect.x + _rect.width) - (clipRect.x + clipRect.width);
|
||||||
|
if( space > _charWidth )
|
||||||
|
{
|
||||||
|
space = (space/_charWidth)*_charWidth;
|
||||||
|
int trail = (_rect.width/_charWidth) - _len;
|
||||||
|
charsToTrim = Math.min(_len, (space/_charWidth)- trail);
|
||||||
|
if( charsToTrim > 0 )
|
||||||
|
{
|
||||||
|
_rect.width -= space;
|
||||||
|
_str = _str.substring(0, _len-charsToTrim);
|
||||||
|
_len -= charsToTrim;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if( _len > 0 )
|
||||||
|
{
|
||||||
|
space = clipRect.x - _rect.x;
|
||||||
|
if( space > _charWidth )
|
||||||
|
{
|
||||||
|
space = (space/_charWidth)*_charWidth;
|
||||||
|
charsToTrim = Math.min(_len, space / _charWidth);
|
||||||
|
if( charsToTrim > 0 )
|
||||||
|
{
|
||||||
|
_rect.x += space;
|
||||||
|
_rect.width -= space;
|
||||||
|
_str = _str.substring(charsToTrim);
|
||||||
|
_len -= charsToTrim;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return _len;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getString() {return _str;}
|
||||||
|
public int getStringLength() {return _len;}
|
||||||
|
public Rect getRect() {return _rect;}
|
||||||
|
|
||||||
|
private String _str;
|
||||||
|
private int _len;
|
||||||
|
private Rect _rect;
|
||||||
|
private int _charWidth;
|
||||||
|
}
|
|
@ -516,6 +516,7 @@ final class SourceTextItemDrawer
|
||||||
_polyExecPoint.addPoint( rectExec.x, rectExec.y );
|
_polyExecPoint.addPoint( rectExec.x, rectExec.y );
|
||||||
|
|
||||||
_ptText = new Point( _width, 0 );
|
_ptText = new Point( _width, 0 );
|
||||||
|
_stringClipper = new DrawStringClipper( _charWidth );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void draw( Graphics g,
|
public void draw( Graphics g,
|
||||||
|
@ -531,6 +532,7 @@ final class SourceTextItemDrawer
|
||||||
SourceLineItemModel itemModel = (SourceLineItemModel) item.data();
|
SourceLineItemModel itemModel = (SourceLineItemModel) item.data();
|
||||||
|
|
||||||
Rect r = new Rect();
|
Rect r = new Rect();
|
||||||
|
Rect clipRect = g.clipRect();
|
||||||
|
|
||||||
// draw the main text
|
// draw the main text
|
||||||
|
|
||||||
|
@ -541,9 +543,16 @@ final class SourceTextItemDrawer
|
||||||
boundsRect.y + _ptText.y,
|
boundsRect.y + _ptText.y,
|
||||||
boundsRect.width - _ptText.x,
|
boundsRect.width - _ptText.x,
|
||||||
boundsRect.height - _ptText.y );
|
boundsRect.height - _ptText.y );
|
||||||
|
|
||||||
if( r.intersects( g.clipRect() ) )
|
// System.out.println("r is "+r+" clip is "+clipRect);
|
||||||
item.drawStringInRect(g,text,_font,r,Graphics.LEFT_JUSTIFIED);
|
if( r.intersects( clipRect ) )
|
||||||
|
{
|
||||||
|
/* no sync - we trust that we are drawn on only one thread */
|
||||||
|
if( _stringClipper.doClip(text, r, clipRect) > 0 )
|
||||||
|
item.drawStringInRect(g, _stringClipper.getString(), _font,
|
||||||
|
_stringClipper.getRect(),
|
||||||
|
Graphics.LEFT_JUSTIFIED);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( hasBreakpoint )
|
if( hasBreakpoint )
|
||||||
|
@ -553,7 +562,7 @@ final class SourceTextItemDrawer
|
||||||
_rectBP.width,
|
_rectBP.width,
|
||||||
_rectBP.height );
|
_rectBP.height );
|
||||||
|
|
||||||
if( r.intersects( g.clipRect() ) )
|
if( r.intersects( clipRect ) )
|
||||||
{
|
{
|
||||||
if( hasConditionalBreakpoint )
|
if( hasConditionalBreakpoint )
|
||||||
g.setColor( Color.orange );
|
g.setColor( Color.orange );
|
||||||
|
@ -570,7 +579,7 @@ final class SourceTextItemDrawer
|
||||||
_rectBPBackground.width,
|
_rectBPBackground.width,
|
||||||
_rectBPBackground.height );
|
_rectBPBackground.height );
|
||||||
|
|
||||||
if( r.intersects( g.clipRect() ) )
|
if( r.intersects( clipRect ) )
|
||||||
{
|
{
|
||||||
g.setColor( Color.black );
|
g.setColor( Color.black );
|
||||||
g.setFont(_font);
|
g.setFont(_font);
|
||||||
|
@ -585,7 +594,7 @@ final class SourceTextItemDrawer
|
||||||
_rectExecPointBackground.width,
|
_rectExecPointBackground.width,
|
||||||
_rectExecPointBackground.height );
|
_rectExecPointBackground.height );
|
||||||
|
|
||||||
if( r.intersects( g.clipRect() ) )
|
if( r.intersects( clipRect ) )
|
||||||
{
|
{
|
||||||
if( scriptType == SourceLineItemModel.FUNCTION_BODY )
|
if( scriptType == SourceLineItemModel.FUNCTION_BODY )
|
||||||
g.setColor( Color.orange );
|
g.setColor( Color.orange );
|
||||||
|
@ -619,7 +628,7 @@ final class SourceTextItemDrawer
|
||||||
boundsRect.width - _ptLineNumbers.x,
|
boundsRect.width - _ptLineNumbers.x,
|
||||||
boundsRect.height - _ptLineNumbers.y );
|
boundsRect.height - _ptLineNumbers.y );
|
||||||
|
|
||||||
if( r.intersects( g.clipRect() ) )
|
if( r.intersects( clipRect ) )
|
||||||
{
|
{
|
||||||
g.setColor( Color.darkGray );
|
g.setColor( Color.darkGray );
|
||||||
g.setFont(_font);
|
g.setFont(_font);
|
||||||
|
@ -666,6 +675,7 @@ final class SourceTextItemDrawer
|
||||||
private Point _ptText;
|
private Point _ptText;
|
||||||
private boolean _showLineNumbers;
|
private boolean _showLineNumbers;
|
||||||
private int _charWidth;
|
private int _charWidth;
|
||||||
|
private DrawStringClipper _stringClipper;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -946,6 +956,16 @@ final class SourceTextListItem extends SmartListItem
|
||||||
Font titleFont, Rect textBounds,
|
Font titleFont, Rect textBounds,
|
||||||
int justification)
|
int justification)
|
||||||
{
|
{
|
||||||
|
// XXX temp test...
|
||||||
|
// if(AS.DEBUG) {
|
||||||
|
// int len = title.length();
|
||||||
|
// String sub;
|
||||||
|
// if(0 == len)
|
||||||
|
// sub = "BLANK";
|
||||||
|
// else
|
||||||
|
// sub = title.substring(0, Math.min(60,len));
|
||||||
|
// System.out.println("drawing text: \""+sub+"\" at "+textBounds);
|
||||||
|
// }
|
||||||
super.drawStringInRect(g,title,titleFont,textBounds,justification);
|
super.drawStringInRect(g,title,titleFont,textBounds,justification);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
// generated automatically by gen_dbg.awk
|
/* generated by gen_dbg.awk to set DEBUG on or off */
|
||||||
|
|
||||||
package com.netscape.jsdebugging.ifcui.palomar.util;
|
package com.netscape.jsdebugging.ifcui.palomar.util;
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче