зеркало из https://github.com/mozilla/pjs.git
added class to minimize drawinf of list items. lxr friendlier generated files
This commit is contained in:
Родитель
e00a320f96
Коммит
bbc8879ec5
|
@ -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;
|
||||
|
||||
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()
|
||||
{
|
||||
|
|
|
@ -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 );
|
||||
|
||||
_ptText = new Point( _width, 0 );
|
||||
_stringClipper = new DrawStringClipper( _charWidth );
|
||||
}
|
||||
|
||||
public void draw( Graphics g,
|
||||
|
@ -531,6 +532,7 @@ final class SourceTextItemDrawer
|
|||
SourceLineItemModel itemModel = (SourceLineItemModel) item.data();
|
||||
|
||||
Rect r = new Rect();
|
||||
Rect clipRect = g.clipRect();
|
||||
|
||||
// draw the main text
|
||||
|
||||
|
@ -541,9 +543,16 @@ final class SourceTextItemDrawer
|
|||
boundsRect.y + _ptText.y,
|
||||
boundsRect.width - _ptText.x,
|
||||
boundsRect.height - _ptText.y );
|
||||
|
||||
if( r.intersects( g.clipRect() ) )
|
||||
item.drawStringInRect(g,text,_font,r,Graphics.LEFT_JUSTIFIED);
|
||||
|
||||
// System.out.println("r is "+r+" clip is "+clipRect);
|
||||
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 )
|
||||
|
@ -553,7 +562,7 @@ final class SourceTextItemDrawer
|
|||
_rectBP.width,
|
||||
_rectBP.height );
|
||||
|
||||
if( r.intersects( g.clipRect() ) )
|
||||
if( r.intersects( clipRect ) )
|
||||
{
|
||||
if( hasConditionalBreakpoint )
|
||||
g.setColor( Color.orange );
|
||||
|
@ -570,7 +579,7 @@ final class SourceTextItemDrawer
|
|||
_rectBPBackground.width,
|
||||
_rectBPBackground.height );
|
||||
|
||||
if( r.intersects( g.clipRect() ) )
|
||||
if( r.intersects( clipRect ) )
|
||||
{
|
||||
g.setColor( Color.black );
|
||||
g.setFont(_font);
|
||||
|
@ -585,7 +594,7 @@ final class SourceTextItemDrawer
|
|||
_rectExecPointBackground.width,
|
||||
_rectExecPointBackground.height );
|
||||
|
||||
if( r.intersects( g.clipRect() ) )
|
||||
if( r.intersects( clipRect ) )
|
||||
{
|
||||
if( scriptType == SourceLineItemModel.FUNCTION_BODY )
|
||||
g.setColor( Color.orange );
|
||||
|
@ -619,7 +628,7 @@ final class SourceTextItemDrawer
|
|||
boundsRect.width - _ptLineNumbers.x,
|
||||
boundsRect.height - _ptLineNumbers.y );
|
||||
|
||||
if( r.intersects( g.clipRect() ) )
|
||||
if( r.intersects( clipRect ) )
|
||||
{
|
||||
g.setColor( Color.darkGray );
|
||||
g.setFont(_font);
|
||||
|
@ -666,6 +675,7 @@ final class SourceTextItemDrawer
|
|||
private Point _ptText;
|
||||
private boolean _showLineNumbers;
|
||||
private int _charWidth;
|
||||
private DrawStringClipper _stringClipper;
|
||||
|
||||
|
||||
}
|
||||
|
@ -946,6 +956,16 @@ final class SourceTextListItem extends SmartListItem
|
|||
Font titleFont, Rect textBounds,
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче