added class to minimize drawinf of list items. lxr friendlier generated files

This commit is contained in:
jband%netscape.com 1998-09-24 07:28:52 +00:00
parent 2679d473d5
commit f22cb5951c
4 changed files with 122 additions and 11 deletions

View File

@ -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()
{

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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;