Package br.com.gmartins.simbler.jedit.tokenmarker

Examples of br.com.gmartins.simbler.jedit.tokenmarker.TokenMarker


     * to the text since the last repaint.
     * @param line The line
     * @param offset The offset, from the start of the line
     */
    public int _offsetToX(int line, int offset) {
        TokenMarker tokenMarker = getTokenMarker();

        /* Use painter's cached info for speed */
        FontMetrics fm = painter.getFontMetrics();

        getLineText(line, lineSegment);

        int segmentOffset = lineSegment.offset;
        int x = horizontalOffset;

        /* If syntax coloring is disabled, do simple translation */
        if (tokenMarker == null) {
            lineSegment.count = offset;
            return x + Utilities.getTabbedTextWidth(lineSegment,
                    fm, x, painter, 0);
        } /* If syntax coloring is enabled, we have to do this because
         * tokens can vary in width */ else {
            Token tokens;
            if (painter.currentLineIndex == line
                    && painter.currentLineTokens != null) {
                tokens = painter.currentLineTokens;
            } else {
                painter.currentLineIndex = line;
                tokens = painter.currentLineTokens = tokenMarker.markTokens(lineSegment, line);
            }

            Toolkit toolkit = painter.getToolkit();
            Font defaultFont = painter.getFont();
            SyntaxStyle[] styles = painter.getStyles();
View Full Code Here


     * Converts an x co-ordinate to an offset within a line.
     * @param line The line
     * @param x The x co-ordinate
     */
    public int xToOffset(int line, int x) {
        TokenMarker tokenMarker = getTokenMarker();

        /* Use painter's cached info for speed */
        FontMetrics fm = painter.getFontMetrics();

        getLineText(line, lineSegment);

        char[] segmentArray = lineSegment.array;
        int segmentOffset = lineSegment.offset;
        int segmentCount = lineSegment.count;

        int width = horizontalOffset;

        if (tokenMarker == null) {
            for (int i = 0; i < segmentCount; i++) {
                char c = segmentArray[i + segmentOffset];
                int charWidth;
                if (c == '\t') {
                    charWidth = (int) painter.nextTabStop(width, i)
                            - width;
                } else {
                    charWidth = fm.charWidth(c);
                }

                if (painter.isBlockCaretEnabled()) {
                    if (x - charWidth <= width) {
                        return i;
                    }
                } else {
                    if (x - charWidth / 2 <= width) {
                        return i;
                    }
                }

                width += charWidth;
            }

            return segmentCount;
        } else {
            Token tokens;
            if (painter.currentLineIndex == line && painter.currentLineTokens != null) {
                tokens = painter.currentLineTokens;
            } else {
                painter.currentLineIndex = line;
                tokens = painter.currentLineTokens = tokenMarker.markTokens(lineSegment, line);
            }

            int offset = 0;
            Toolkit toolkit = painter.getToolkit();
            Font defaultFont = painter.getFont();
View Full Code Here

    // too many lines will always be painted.
    int lastInvalid = firstLine + (clipRect.y + clipRect.height - 1) / height;

    try
    {
      TokenMarker tokenMarker = textArea.getDocument()
        .getTokenMarker();
      int x = textArea.getHorizontalOffset();

      for(int line = firstInvalid; line <= lastInvalid; line++)
      {
        paintLine(gfx,tokenMarker,line,x);
      }

      if(tokenMarker != null && tokenMarker.isNextLineRequested())
      {
        int h = clipRect.y + clipRect.height;
        repaint(0,h,getWidth(),getHeight() - h);
      }
    }
View Full Code Here

TOP

Related Classes of br.com.gmartins.simbler.jedit.tokenmarker.TokenMarker

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.