Package jexer.backend

Interface Screen

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void clear()
      Clear the logical screen.
      void clearPhysical()
      Clear the physical screen.
      void copySelection​(Clipboard clipboard, int x0, int y0, int x1, int y1, boolean rectangle)
      Copy the screen selection area to the clipboard.
      void drawBox​(int left, int top, int right, int bottom, CellAttributes border, CellAttributes background)
      Draw a box with a border and empty background.
      void drawBox​(int left, int top, int right, int bottom, CellAttributes border, CellAttributes background, int borderType, boolean shadow)
      Draw a box with a border and empty background.
      void drawBoxShadow​(int left, int top, int right, int bottom)
      Draw a box shadow.
      void flushPhysical()
      Classes must provide an implementation to push the logical screen to the physical device.
      CellAttributes getAttrXY​(int x, int y)
      Get the attributes at one location.
      Cell getCharXY​(int x, int y)
      Get the cell at one location in absolute coordinates.
      Cell getCharXY​(int x, int y, boolean clip)
      Get the cell at one location, in either absolute or clipped coordinates.
      int getClipBottom()
      Get bottom drawing clipping boundary.
      int getClipLeft()
      Get left drawing clipping boundary.
      int getClipRight()
      Get right drawing clipping boundary.
      int getClipTop()
      Get top drawing clipping boundary.
      int getCursorX()
      Get the cursor X position.
      int getCursorY()
      Get the cursor Y position.
      int getHeight()
      Get the height.
      int getOffsetX()
      Get drawing offset for x.
      int getOffsetY()
      Get drawing offset for y.
      int getTextHeight()
      Get the height of a character cell in pixels.
      int getTextWidth()
      Get the width of a character cell in pixels.
      int getWidth()
      Get the width.
      void hideCursor()
      Hide the cursor.
      void hLineXY​(int x, int y, int n, int ch, CellAttributes attr)
      Draw a horizontal line from (x, y) to (x + n, y).
      void invertCell​(int x, int y)
      Invert the cell color at a position, including both halves of a double-width cell.
      void invertCell​(int x, int y, boolean onlyThisCell)
      Invert the cell color at a position.
      boolean isCursorVisible()
      Get the cursor visibility.
      boolean isDirty()
      Get dirty flag.
      void putAll​(int ch, CellAttributes attr)
      Fill the entire screen with one character with attributes.
      void putAttrXY​(int x, int y, CellAttributes attr)
      Set the attributes at one location.
      void putAttrXY​(int x, int y, CellAttributes attr, boolean clip)
      Set the attributes at one location.
      void putCharXY​(int x, int y, int ch)
      Render one character without changing the underlying attributes.
      void putCharXY​(int x, int y, int ch, CellAttributes attr)
      Render one character with attributes.
      void putCharXY​(int x, int y, Cell ch)
      Render one character with attributes.
      void putCursor​(boolean visible, int x, int y)
      Put the cursor at (x,y).
      void putStringXY​(int x, int y, java.lang.String str)
      Render a string without changing the underlying attribute.
      void putStringXY​(int x, int y, java.lang.String str, CellAttributes attr)
      Render a string.
      void reset()
      Reset screen to not-bold, white-on-black.
      void resetClipping()
      Flush the offset and clip variables.
      void setClipBottom​(int clipBottom)
      Set bottom drawing clipping boundary.
      void setClipLeft​(int clipLeft)
      Set left drawing clipping boundary.
      void setClipRight​(int clipRight)
      Set right drawing clipping boundary.
      void setClipTop​(int clipTop)
      Set top drawing clipping boundary.
      void setDimensions​(int width, int height)
      Change the width and height.
      void setHeight​(int height)
      Change the height.
      void setOffsetX​(int offsetX)
      Set drawing offset for x.
      void setOffsetY​(int offsetY)
      Set drawing offset for y.
      void setSelection​(int x0, int y0, int x1, int y1, boolean rectangle)
      Set a selection area on the screen.
      void setTitle​(java.lang.String title)
      Set the window title.
      void setWidth​(int width)
      Change the width.
      Screen snapshot()
      Obtain a snapshot copy of the screen.
      void unsetImageRow​(int y)
      Unset every image cell on one row of the physical screen, forcing images on that row to be redrawn.
      void vLineXY​(int x, int y, int n, int ch, CellAttributes attr)
      Draw a vertical line from (x, y) to (x, y + n).
    • Method Detail

      • setOffsetX

        void setOffsetX​(int offsetX)
        Set drawing offset for x.
        Parameters:
        offsetX - new drawing offset
      • getOffsetX

        int getOffsetX()
        Get drawing offset for x.
        Returns:
        the drawing offset
      • setOffsetY

        void setOffsetY​(int offsetY)
        Set drawing offset for y.
        Parameters:
        offsetY - new drawing offset
      • getOffsetY

        int getOffsetY()
        Get drawing offset for y.
        Returns:
        the drawing offset
      • getClipRight

        int getClipRight()
        Get right drawing clipping boundary.
        Returns:
        drawing boundary
      • setClipRight

        void setClipRight​(int clipRight)
        Set right drawing clipping boundary.
        Parameters:
        clipRight - new boundary
      • getClipBottom

        int getClipBottom()
        Get bottom drawing clipping boundary.
        Returns:
        drawing boundary
      • setClipBottom

        void setClipBottom​(int clipBottom)
        Set bottom drawing clipping boundary.
        Parameters:
        clipBottom - new boundary
      • getClipLeft

        int getClipLeft()
        Get left drawing clipping boundary.
        Returns:
        drawing boundary
      • setClipLeft

        void setClipLeft​(int clipLeft)
        Set left drawing clipping boundary.
        Parameters:
        clipLeft - new boundary
      • getClipTop

        int getClipTop()
        Get top drawing clipping boundary.
        Returns:
        drawing boundary
      • setClipTop

        void setClipTop​(int clipTop)
        Set top drawing clipping boundary.
        Parameters:
        clipTop - new boundary
      • isDirty

        boolean isDirty()
        Get dirty flag.
        Returns:
        if true, the logical screen is not in sync with the physical screen
      • getAttrXY

        CellAttributes getAttrXY​(int x,
                                 int y)
        Get the attributes at one location.
        Parameters:
        x - column coordinate. 0 is the left-most column.
        y - row coordinate. 0 is the top-most row.
        Returns:
        attributes at (x, y)
      • getCharXY

        Cell getCharXY​(int x,
                       int y)
        Get the cell at one location in absolute coordinates.
        Parameters:
        x - column coordinate. 0 is the left-most column.
        y - row coordinate. 0 is the top-most row.
        Returns:
        the character + attributes
      • getCharXY

        Cell getCharXY​(int x,
                       int y,
                       boolean clip)
        Get the cell at one location, in either absolute or clipped coordinates.
        Parameters:
        x - column coordinate. 0 is the left-most column.
        y - row coordinate. 0 is the top-most row.
        clip - if true, honor clipping/offset
        Returns:
        the character + attributes, or null if this position is outside the clipping/offset region
      • putAttrXY

        void putAttrXY​(int x,
                       int y,
                       CellAttributes attr)
        Set the attributes at one location.
        Parameters:
        x - column coordinate. 0 is the left-most column.
        y - row coordinate. 0 is the top-most row.
        attr - attributes to use (bold, foreColor, backColor)
      • putAttrXY

        void putAttrXY​(int x,
                       int y,
                       CellAttributes attr,
                       boolean clip)
        Set the attributes at one location.
        Parameters:
        x - column coordinate. 0 is the left-most column.
        y - row coordinate. 0 is the top-most row.
        attr - attributes to use (bold, foreColor, backColor)
        clip - if true, honor clipping/offset
      • putAll

        void putAll​(int ch,
                    CellAttributes attr)
        Fill the entire screen with one character with attributes.
        Parameters:
        ch - character to draw
        attr - attributes to use (bold, foreColor, backColor)
      • putCharXY

        void putCharXY​(int x,
                       int y,
                       Cell ch)
        Render one character with attributes.
        Parameters:
        x - column coordinate. 0 is the left-most column.
        y - row coordinate. 0 is the top-most row.
        ch - character + attributes to draw
      • putCharXY

        void putCharXY​(int x,
                       int y,
                       int ch,
                       CellAttributes attr)
        Render one character with attributes.
        Parameters:
        x - column coordinate. 0 is the left-most column.
        y - row coordinate. 0 is the top-most row.
        ch - character to draw
        attr - attributes to use (bold, foreColor, backColor)
      • putCharXY

        void putCharXY​(int x,
                       int y,
                       int ch)
        Render one character without changing the underlying attributes.
        Parameters:
        x - column coordinate. 0 is the left-most column.
        y - row coordinate. 0 is the top-most row.
        ch - character to draw
      • putStringXY

        void putStringXY​(int x,
                         int y,
                         java.lang.String str,
                         CellAttributes attr)
        Render a string. Does not wrap if the string exceeds the line.
        Parameters:
        x - column coordinate. 0 is the left-most column.
        y - row coordinate. 0 is the top-most row.
        str - string to draw
        attr - attributes to use (bold, foreColor, backColor)
      • putStringXY

        void putStringXY​(int x,
                         int y,
                         java.lang.String str)
        Render a string without changing the underlying attribute. Does not wrap if the string exceeds the line.
        Parameters:
        x - column coordinate. 0 is the left-most column.
        y - row coordinate. 0 is the top-most row.
        str - string to draw
      • vLineXY

        void vLineXY​(int x,
                     int y,
                     int n,
                     int ch,
                     CellAttributes attr)
        Draw a vertical line from (x, y) to (x, y + n).
        Parameters:
        x - column coordinate. 0 is the left-most column.
        y - row coordinate. 0 is the top-most row.
        n - number of characters to draw
        ch - character to draw
        attr - attributes to use (bold, foreColor, backColor)
      • hLineXY

        void hLineXY​(int x,
                     int y,
                     int n,
                     int ch,
                     CellAttributes attr)
        Draw a horizontal line from (x, y) to (x + n, y).
        Parameters:
        x - column coordinate. 0 is the left-most column.
        y - row coordinate. 0 is the top-most row.
        n - number of characters to draw
        ch - character to draw
        attr - attributes to use (bold, foreColor, backColor)
      • setWidth

        void setWidth​(int width)
        Change the width. Everything on-screen will be destroyed and must be redrawn.
        Parameters:
        width - new screen width
      • setHeight

        void setHeight​(int height)
        Change the height. Everything on-screen will be destroyed and must be redrawn.
        Parameters:
        height - new screen height
      • setDimensions

        void setDimensions​(int width,
                           int height)
        Change the width and height. Everything on-screen will be destroyed and must be redrawn.
        Parameters:
        width - new screen width
        height - new screen height
      • getHeight

        int getHeight()
        Get the height.
        Returns:
        current screen height
      • getWidth

        int getWidth()
        Get the width.
        Returns:
        current screen width
      • reset

        void reset()
        Reset screen to not-bold, white-on-black. Also flushes the offset and clip variables.
      • resetClipping

        void resetClipping()
        Flush the offset and clip variables.
      • clear

        void clear()
        Clear the logical screen.
      • drawBox

        void drawBox​(int left,
                     int top,
                     int right,
                     int bottom,
                     CellAttributes border,
                     CellAttributes background)
        Draw a box with a border and empty background.
        Parameters:
        left - left column of box. 0 is the left-most row.
        top - top row of the box. 0 is the top-most row.
        right - right column of box
        bottom - bottom row of the box
        border - attributes to use for the border
        background - attributes to use for the background
      • drawBox

        void drawBox​(int left,
                     int top,
                     int right,
                     int bottom,
                     CellAttributes border,
                     CellAttributes background,
                     int borderType,
                     boolean shadow)
        Draw a box with a border and empty background.
        Parameters:
        left - left column of box. 0 is the left-most row.
        top - top row of the box. 0 is the top-most row.
        right - right column of box
        bottom - bottom row of the box
        border - attributes to use for the border
        background - attributes to use for the background
        borderType - if 1, draw a single-line border; if 2, draw a double-line border; if 3, draw double-line top/bottom edges and single-line left/right edges (like Qmodem)
        shadow - if true, draw a "shadow" on the box
      • drawBoxShadow

        void drawBoxShadow​(int left,
                           int top,
                           int right,
                           int bottom)
        Draw a box shadow.
        Parameters:
        left - left column of box. 0 is the left-most row.
        top - top row of the box. 0 is the top-most row.
        right - right column of box
        bottom - bottom row of the box
      • clearPhysical

        void clearPhysical()
        Clear the physical screen.
      • unsetImageRow

        void unsetImageRow​(int y)
        Unset every image cell on one row of the physical screen, forcing images on that row to be redrawn.
        Parameters:
        y - row coordinate. 0 is the top-most row.
      • flushPhysical

        void flushPhysical()
        Classes must provide an implementation to push the logical screen to the physical device.
      • putCursor

        void putCursor​(boolean visible,
                       int x,
                       int y)
        Put the cursor at (x,y).
        Parameters:
        visible - if true, the cursor should be visible
        x - column coordinate to put the cursor on
        y - row coordinate to put the cursor on
      • hideCursor

        void hideCursor()
        Hide the cursor.
      • isCursorVisible

        boolean isCursorVisible()
        Get the cursor visibility.
        Returns:
        true if the cursor is visible
      • getCursorX

        int getCursorX()
        Get the cursor X position.
        Returns:
        the cursor x column position
      • getCursorY

        int getCursorY()
        Get the cursor Y position.
        Returns:
        the cursor y row position
      • setTitle

        void setTitle​(java.lang.String title)
        Set the window title.
        Parameters:
        title - the new title
      • getTextWidth

        int getTextWidth()
        Get the width of a character cell in pixels.
        Returns:
        the width in pixels of a character cell
      • getTextHeight

        int getTextHeight()
        Get the height of a character cell in pixels.
        Returns:
        the height in pixels of a character cell
      • invertCell

        void invertCell​(int x,
                        int y)
        Invert the cell color at a position, including both halves of a double-width cell.
        Parameters:
        x - column position
        y - row position
      • invertCell

        void invertCell​(int x,
                        int y,
                        boolean onlyThisCell)
        Invert the cell color at a position.
        Parameters:
        x - column position
        y - row position
        onlyThisCell - if true, only invert this cell, otherwise invert both halves of a double-width cell if necessary
      • setSelection

        void setSelection​(int x0,
                          int y0,
                          int x1,
                          int y1,
                          boolean rectangle)
        Set a selection area on the screen.
        Parameters:
        x0 - the starting X position of the selection
        y0 - the starting Y position of the selection
        x1 - the ending X position of the selection
        y1 - the ending Y position of the selection
        rectangle - if true, this is a rectangle select
      • copySelection

        void copySelection​(Clipboard clipboard,
                           int x0,
                           int y0,
                           int x1,
                           int y1,
                           boolean rectangle)
        Copy the screen selection area to the clipboard.
        Parameters:
        clipboard - the clipboard to use
        x0 - the starting X position of the selection
        y0 - the starting Y position of the selection
        x1 - the ending X position of the selection
        y1 - the ending Y position of the selection
        rectangle - if true, this is a rectangle select
      • snapshot

        Screen snapshot()
        Obtain a snapshot copy of the screen.
        Returns:
        a copy of the screen's data