de.enough.polish.midp.ui
Class NativeGraphicsImpl

java.lang.Object
  extended by de.enough.polish.midp.ui.NativeGraphicsImpl
All Implemented Interfaces:
NativeGraphics

public class NativeGraphicsImpl
extends Object
implements NativeGraphics

Provides access to the native LCDUI Graphics object.

Copyright Enough Software 2010

Author:
Robert Virkus, j2mepolish@enough.de

Constructor Summary
NativeGraphicsImpl(Graphics g)
           
 
Method Summary
 void clipRect(int x, int y, int width, int height)
          Intersects the current clip with the specified rectangle.
 void copyArea(int xSrc, int ySrc, int width, int height, int xDest, int yDest, int anchor)
          Copies the contents of a rectangular area (x_src, y_src, width, height) to a destination area, whose anchor point identified by anchor is located at (x_dest, y_dest).
 void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
          Draws the outline of a circular or elliptical arc covering the specified rectangle, using the current color and stroke style.
 void drawChar(char character, int x, int y, int anchor)
          Draws the specified character using the current font and color.
 void drawChars(char[] data, int offset, int length, int x, int y, int anchor)
          Draws the specified characters using the current font and color.
 void drawImage(Image img, int x, int y, int anchor)
          Draws the specified image by using the anchor point.
 void drawLine(int x1, int y1, int x2, int y2)
          Draws a line between the coordinates (x1,y1) and (x2,y2) using the current color and stroke style.
 void drawRect(int x, int y, int width, int height)
          Draws the outline of the specified rectangle using the current color and stroke style.
 void drawRegion(Image src, int xSrc, int ySrc, int width, int height, int transform, int xDest, int yDest, int anchor)
          Copies a region of the specified source image to a location within the destination, possibly transforming (rotating and reflecting) the image data using the chosen transform function.
 void drawRGB(int[] rgbData, int offset, int scanlength, int x, int y, int width, int height, boolean processAlpha)
          Renders a series of device-independent RGB+transparency values in a specified region.
 void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
          Draws the outline of the specified rounded corner rectangle using the current color and stroke style.
 void drawString(String str, int x, int y, int anchor)
          Draws the specified String using the current font and color.
 void drawSubstring(String str, int offset, int len, int x, int y, int anchor)
          Draws the specified String using the current font and color.
 void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
          Fills a circular or elliptical arc covering the specified rectangle.
 void fillRect(int x, int y, int width, int height)
          Fills the specified rectangle with the current color.
 void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
          Fills the specified rounded corner rectangle with the current color.
 void fillTriangle(int x1, int y1, int x2, int y2, int x3, int y3)
          Fills the specified triangle will the current color.
 int getBlueComponent()
          Gets the blue component of the current color.
 int getClipHeight()
          Gets the height of the current clipping area.
 int getClipWidth()
          Gets the width of the current clipping area.
 int getClipX()
          Gets the X offset of the current clipping area, relative to the coordinate system origin of this graphics context.
 int getClipY()
          Gets the Y offset of the current clipping area, relative to the coordinate system origin of this graphics context.
 int getColor()
          Gets the current color.
 int getDisplayColor(int color)
          Gets the color that will be displayed if the specified color is requested.
 Font getFont()
          Gets the current font.
 int getGrayScale()
          Gets the current grayscale value of the color being used for rendering operations.
 int getGreenComponent()
          Gets the green component of the current color.
 int getRedComponent()
          Gets the red component of the current color.
 int getStrokeStyle()
          Gets the stroke style used for drawing operations.
 int getTranslateX()
          Gets the X coordinate of the translated origin of this graphics context.
 int getTranslateY()
          Gets the Y coordinate of the translated origin of this graphics context.
 void setClip(int x, int y, int width, int height)
          Sets the current clip to the rectangle specified by the given coordinates.
 void setColor(int rgb)
          Sets the current color to the specified RGB values.
 void setColor(int red, int green, int blue)
          Sets the current color to the specified RGB values.
 void setFont(Font font)
          Sets the font for all subsequent text rendering operations.
 void setGrayScale(int value)
          Sets the current grayscale to be used for all subsequent rendering operations.
 void setStrokeStyle(int style)
          Sets the stroke style used for drawing lines, arcs, rectangles, and rounded rectangles.
 void translate(int x, int y)
          Translates the origin of the graphics context to the point (x, y) in the current coordinate system.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NativeGraphicsImpl

public NativeGraphicsImpl(Graphics g)
Method Detail

drawImage

public void drawImage(Image img,
                      int x,
                      int y,
                      int anchor)
Description copied from interface: NativeGraphics
Draws the specified image by using the anchor point. The image can be drawn in different positions relative to the anchor point by passing the appropriate position constants. See anchor points.

If the source image contains transparent pixels, the corresponding pixels in the destination image must be left untouched. If the source image contains partially transparent pixels, a compositing operation must be performed with the destination pixels, leaving all pixels of the destination image fully opaque.

If img is the same as the destination of this Graphics object, the result is undefined. For copying areas within an Image, copyArea should be used instead.

Specified by:
drawImage in interface NativeGraphics
Parameters:
img - - the specified image to be drawn
x - - the x coordinate of the anchor point
y - - the y coordinate of the anchor point
anchor - - the anchor point for positioning the image
See Also:
Image

drawRegion

public void drawRegion(Image src,
                       int xSrc,
                       int ySrc,
                       int width,
                       int height,
                       int transform,
                       int xDest,
                       int yDest,
                       int anchor)
Description copied from interface: NativeGraphics
Copies a region of the specified source image to a location within the destination, possibly transforming (rotating and reflecting) the image data using the chosen transform function.

The destination, if it is an image, must not be the same image as the source image. If it is, an exception is thrown. This restriction is present in order to avoid ill-defined behaviors that might occur if overlapped, transformed copies were permitted.

The transform function used must be one of the following, as defined in the Sprite class:
Sprite.TRANS_NONE - causes the specified image region to be copied unchanged
Sprite.TRANS_ROT90 - causes the specified image region to be rotated clockwise by 90 degrees.
Sprite.TRANS_ROT180 - causes the specified image region to be rotated clockwise by 180 degrees.
Sprite.TRANS_ROT270 - causes the specified image region to be rotated clockwise by 270 degrees.
Sprite.TRANS_MIRROR - causes the specified image region to be reflected about its vertical center.
Sprite.TRANS_MIRROR_ROT90 - causes the specified image region to be reflected about its vertical center and then rotated clockwise by 90 degrees.
Sprite.TRANS_MIRROR_ROT180 - causes the specified image region to be reflected about its vertical center and then rotated clockwise by 180 degrees.
Sprite.TRANS_MIRROR_ROT270 - causes the specified image region to be reflected about its vertical center and then rotated clockwise by 270 degrees.

If the source region contains transparent pixels, the corresponding pixels in the destination region must be left untouched. If the source region contains partially transparent pixels, a compositing operation must be performed with the destination pixels, leaving all pixels of the destination region fully opaque.

The (x_src, y_src) coordinates are relative to the upper left corner of the source image. The x_src, y_src, width, and height parameters specify a rectangular region of the source image. It is illegal for this region to extend beyond the bounds of the source image. This requires that:


 x_src >= 0
 y_src >= 0
 x_src + width <= source width
 y_src + height <= source height    

The (x_dest, y_dest) coordinates are relative to the coordinate system of this Graphics object. It is legal for the destination area to extend beyond the bounds of the Graphics object. Pixels outside of the bounds of the Graphics object will not be drawn.

The transform is applied to the image data from the region of the source image, and the result is rendered with its anchor point positioned at location (x_dest, y_dest) in the destination.

Specified by:
drawRegion in interface NativeGraphics
Parameters:
src - - the source image to copy from
xSrc - - the x coordinate of the upper left corner of the region within the source image to copy
ySrc - - the y coordinate of the upper left corner of the region within the source image to copy
width - - the width of the region to copy
height - - the height of the region to copy
transform - - the desired transformation for the selected region being copied
xDest - - the x coordinate of the anchor point in the destination drawing area
yDest - - the y coordinate of the anchor point in the destination drawing area
anchor - - the anchor point for positioning the region within the destination image

setFont

public void setFont(Font font)
Description copied from interface: NativeGraphics
Sets the font for all subsequent text rendering operations. If font is null, it is equivalent to setFont(Font.getDefaultFont()).

Specified by:
setFont in interface NativeGraphics
Parameters:
font - - the specified font
See Also:
Font, NativeGraphics.getFont(), NativeGraphics.drawString(java.lang.String, int, int, int), NativeGraphics.drawChars(char[], int, int, int, int, int)

clipRect

public void clipRect(int x,
                     int y,
                     int width,
                     int height)
Description copied from interface: NativeGraphics
Intersects the current clip with the specified rectangle. The resulting clipping area is the intersection of the current clipping area and the specified rectangle. This method can only be used to make the current clip smaller. To set the current clip larger, use the setClip method. Rendering operations have no effect outside of the clipping area.

Specified by:
clipRect in interface NativeGraphics
Parameters:
x - - the x coordinate of the rectangle to intersect the clip with
y - - the y coordinate of the rectangle to intersect the clip with
width - - the width of the rectangle to intersect the clip with
height - - the height of the rectangle to intersect the clip with
See Also:
NativeGraphics.setClip(int, int, int, int)

copyArea

public void copyArea(int xSrc,
                     int ySrc,
                     int width,
                     int height,
                     int xDest,
                     int yDest,
                     int anchor)
Description copied from interface: NativeGraphics
Copies the contents of a rectangular area (x_src, y_src, width, height) to a destination area, whose anchor point identified by anchor is located at (x_dest, y_dest). The effect must be that the destination area contains an exact copy of the contents of the source area immediately prior to the invocation of this method. This result must occur even if the source and destination areas overlap.

The points (x_src, y_src) and (x_dest, y_dest) are both specified relative to the coordinate system of the Graphics object. It is illegal for the source region to extend beyond the bounds of the graphic object. This requires that:


 x_src + tx >= 0
 y_src + ty >= 0
 x_src + tx + width <= width of Graphics object's destination
 y_src + ty + height <= height of Graphics object's destination      

where tx and ty represent the X and Y coordinates of the translated origin of this graphics object, as returned by getTranslateX() and getTranslateY(), respectively.

However, it is legal for the destination area to extend beyond the bounds of the Graphics object. Pixels outside of the bounds of the Graphics object will not be drawn.

The copyArea method is allowed on all Graphics objects except those whose destination is the actual display device. This restriction is necessary because allowing a copyArea method on the display would adversely impact certain techniques for implementing double-buffering.

Like other graphics operations, the copyArea method uses the Source Over Destination rule for combining pixels. However, since it is defined only for mutable images, which can contain only fully opaque pixels, this is effectively the same as pixel replacement.

Specified by:
copyArea in interface NativeGraphics
Parameters:
xSrc - - the x coordinate of upper left corner of source area
ySrc - - the y coordinate of upper left corner of source area
width - - the width of the source area
height - - the height of the source area
xDest - - the x coordinate of the destination anchor point
yDest - - the y coordinate of the destination anchor point
anchor - - the anchor point for positioning the region within the destination image

drawArc

public void drawArc(int x,
                    int y,
                    int width,
                    int height,
                    int startAngle,
                    int arcAngle)
Description copied from interface: NativeGraphics
Draws the outline of a circular or elliptical arc covering the specified rectangle, using the current color and stroke style.

The resulting arc begins at startAngle and extends for arcAngle degrees, using the current color. Angles are interpreted such that 0 degrees is at the 3 o'clock position. A positive value indicates a counter-clockwise rotation while a negative value indicates a clockwise rotation.

The center of the arc is the center of the rectangle whose origin is (xy) and whose size is specified by the width and height arguments.

The resulting arc covers an area width + 1 pixels wide by height + 1 pixels tall. If either width or height is less than zero, nothing is drawn.

The angles are specified relative to the non-square extents of the bounding rectangle such that 45 degrees always falls on the line from the center of the ellipse to the upper right corner of the bounding rectangle. As a result, if the bounding rectangle is noticeably longer in one axis than the other, the angles to the start and end of the arc segment will be skewed farther along the longer axis of the bounds.

Specified by:
drawArc in interface NativeGraphics
Parameters:
x - - the x coordinate of the upper-left corner of the arc to be drawn
y - - the y coordinate of the upper-left corner of the arc to be drawn
width - - the width of the arc to be drawn
height - - the height of the arc to be drawn
startAngle - - the beginning angle
arcAngle - - the angular extent of the arc, relative to the start angle
See Also:
NativeGraphics.fillArc(int, int, int, int, int, int)

drawChar

public void drawChar(char character,
                     int x,
                     int y,
                     int anchor)
Description copied from interface: NativeGraphics
Draws the specified character using the current font and color.

Specified by:
drawChar in interface NativeGraphics
Parameters:
character - - the character to be drawn
x - - the x coordinate of the anchor point
y - - the y coordinate of the anchor point
anchor - - the anchor point for positioning the text; see anchor points
See Also:
NativeGraphics.drawString(java.lang.String, int, int, int), NativeGraphics.drawChars(char[], int, int, int, int, int)

drawChars

public void drawChars(char[] data,
                      int offset,
                      int length,
                      int x,
                      int y,
                      int anchor)
Description copied from interface: NativeGraphics
Draws the specified characters using the current font and color.

The offset and length parameters must specify a valid range of characters within the character array data. The offset parameter must be within the range [0..(data.length)], inclusive. The length parameter must be a non-negative integer such that (offset + length) <= data.length.

Specified by:
drawChars in interface NativeGraphics
Parameters:
data - - the array of characters to be drawn
offset - - the start offset in the data
length - - the number of characters to be drawn
x - - the x coordinate of the anchor point
y - - the y coordinate of the anchor point
anchor - - the anchor point for positioning the text; see anchor points
See Also:
NativeGraphics.drawString(java.lang.String, int, int, int)

drawLine

public void drawLine(int x1,
                     int y1,
                     int x2,
                     int y2)
Description copied from interface: NativeGraphics
Draws a line between the coordinates (x1,y1) and (x2,y2) using the current color and stroke style.

Specified by:
drawLine in interface NativeGraphics
Parameters:
x1 - - the x coordinate of the start of the line
y1 - - the y coordinate of the start of the line
x2 - - the x coordinate of the end of the line
y2 - - the y coordinate of the end of the line

drawRGB

public void drawRGB(int[] rgbData,
                    int offset,
                    int scanlength,
                    int x,
                    int y,
                    int width,
                    int height,
                    boolean processAlpha)
Description copied from interface: NativeGraphics
Renders a series of device-independent RGB+transparency values in a specified region. The values are stored in rgbData in a format with 24 bits of RGB and an eight-bit alpha value (0xAARRGGBB), with the first value stored at the specified offset. The scanlength specifies the relative offset within the array between the corresponding pixels of consecutive rows. Any value for scanlength is acceptable (even negative values) provided that all resulting references are within the bounds of the rgbData array. The ARGB data is rasterized horizontally from left to right within each row. The ARGB values are rendered in the region specified by x, y, width and height, and the operation is subject to the current clip region and translation for this Graphics object.

Consider P(a,b) to be the value of the pixel located at column a and row b of the Image, where rows and columns are numbered downward from the top starting at zero, and columns are numbered rightward from the left starting at zero. This operation can then be defined as:


 P(a, b) = rgbData[offset + (a - x) + (b - y) * scanlength]       

for


 x <= a < x + width
 y <= b < y + height    

This capability is provided in the Graphics class so that it can be used to render both to the screen and to offscreen Image objects. The ability to retrieve ARGB values is provided by the Image.getRGB(int[], int, int, int, int, int, int) method.

If processAlpha is true, the high-order byte of the ARGB format specifies opacity; that is, 0x00RRGGBB specifies a fully transparent pixel and 0xFFRRGGBB specifies a fully opaque pixel. Intermediate alpha values specify semitransparency. If the implementation does not support alpha blending for image rendering operations, it must remove any semitransparency from the source data prior to performing any rendering. (See Alpha Processing for further discussion.) If processAlpha is false, the alpha values are ignored and all pixels must be treated as completely opaque.

The mapping from ARGB values to the device-dependent pixels is platform-specific and may require significant computation.

Specified by:
drawRGB in interface NativeGraphics
Parameters:
rgbData - - an array of ARGB values in the format 0xAARRGGBB
offset - - the array index of the first ARGB value
scanlength - - the relative array offset between the corresponding pixels in consecutive rows in the rgbData array
x - - the horizontal location of the region to be rendered
y - - the vertical location of the region to be rendered
width - - the width of the region to be rendered
height - - the height of the region to be rendered
processAlpha - - true if rgbData has an alpha channel, false if all pixels are fully opaque

drawRect

public void drawRect(int x,
                     int y,
                     int width,
                     int height)
Description copied from interface: NativeGraphics
Draws the outline of the specified rectangle using the current color and stroke style. The resulting rectangle will cover an area (width + 1) pixels wide by (height + 1) pixels tall. If either width or height is less than zero, nothing is drawn.

Specified by:
drawRect in interface NativeGraphics
Parameters:
x - - the x coordinate of the rectangle to be drawn
y - - the y coordinate of the rectangle to be drawn
width - - the width of the rectangle to be drawn
height - - the height of the rectangle to be drawn
See Also:
NativeGraphics.fillRect(int, int, int, int)

drawRoundRect

public void drawRoundRect(int x,
                          int y,
                          int width,
                          int height,
                          int arcWidth,
                          int arcHeight)
Description copied from interface: NativeGraphics
Draws the outline of the specified rounded corner rectangle using the current color and stroke style. The resulting rectangle will cover an area (width + 1) pixels wide by (height + 1) pixels tall. If either width or height is less than zero, nothing is drawn.

Specified by:
drawRoundRect in interface NativeGraphics
Parameters:
x - - the x coordinate of the rectangle to be drawn
y - - the y coordinate of the rectangle to be drawn
width - - the width of the rectangle to be drawn
height - - the height of the rectangle to be drawn
arcWidth - - the horizontal diameter of the arc at the four corners
arcHeight - - the vertical diameter of the arc at the four corners
See Also:
NativeGraphics.fillRoundRect(int, int, int, int, int, int)

drawString

public void drawString(String str,
                       int x,
                       int y,
                       int anchor)
Description copied from interface: NativeGraphics
Draws the specified String using the current font and color. The x,y position is the position of the anchor point. See anchor points.

Specified by:
drawString in interface NativeGraphics
Parameters:
str - - the String to be drawn
x - - the x coordinate of the anchor point
y - - the y coordinate of the anchor point
anchor - - the anchor point for positioning the text
See Also:
NativeGraphics.drawChars(char[], int, int, int, int, int)

drawSubstring

public void drawSubstring(String str,
                          int offset,
                          int len,
                          int x,
                          int y,
                          int anchor)
Description copied from interface: NativeGraphics
Draws the specified String using the current font and color. The x,y position is the position of the anchor point. See anchor points.

The offset and len parameters must specify a valid range of characters within the string str. The offset parameter must be within the range [0..(str.length())], inclusive. The len parameter must be a non-negative integer such that (offset + len) <= str.length().

Specified by:
drawSubstring in interface NativeGraphics
Parameters:
str - - the String to be drawn
offset - - zero-based index of first character in the substring
len - - length of the substring
x - - the x coordinate of the anchor point
y - - the y coordinate of the anchor point
anchor - - the anchor point for positioning the text
See Also:
NativeGraphics.drawString(String, int, int, int).

fillArc

public void fillArc(int x,
                    int y,
                    int width,
                    int height,
                    int startAngle,
                    int arcAngle)
Description copied from interface: NativeGraphics
Fills a circular or elliptical arc covering the specified rectangle.

The resulting arc begins at startAngle and extends for arcAngle degrees. Angles are interpreted such that 0 degrees is at the 3 o'clock position. A positive value indicates a counter-clockwise rotation while a negative value indicates a clockwise rotation.

The center of the arc is the center of the rectangle whose origin is (xy) and whose size is specified by the width and height arguments.

If either width or height is zero or less, nothing is drawn.

The filled region consists of the "pie wedge" region bounded by the arc segment as if drawn by drawArc(), the radius extending from the center to this arc at startAngle degrees, and radius extending from the center to this arc at startAngle + arcAngle degrees.

The angles are specified relative to the non-square extents of the bounding rectangle such that 45 degrees always falls on the line from the center of the ellipse to the upper right corner of the bounding rectangle. As a result, if the bounding rectangle is noticeably longer in one axis than the other, the angles to the start and end of the arc segment will be skewed farther along the longer axis of the bounds.

Specified by:
fillArc in interface NativeGraphics
Parameters:
x - - the x coordinate of the upper-left corner of the arc to be filled.
y - - the y coordinate of the upper-left corner of the arc to be filled.
width - - the width of the arc to be filled
height - - the height of the arc to be filled
startAngle - - the beginning angle.
arcAngle - - the angular extent of the arc, relative to the start angle.
See Also:
NativeGraphics.drawArc(int, int, int, int, int, int)

fillRect

public void fillRect(int x,
                     int y,
                     int width,
                     int height)
Description copied from interface: NativeGraphics
Fills the specified rectangle with the current color. If either width or height is zero or less, nothing is drawn.

Specified by:
fillRect in interface NativeGraphics
Parameters:
x - - the x coordinate of the rectangle to be filled
y - - the y coordinate of the rectangle to be filled
width - - the width of the rectangle to be filled
height - - the height of the rectangle to be filled
See Also:
NativeGraphics.drawRect(int, int, int, int)

fillRoundRect

public void fillRoundRect(int x,
                          int y,
                          int width,
                          int height,
                          int arcWidth,
                          int arcHeight)
Description copied from interface: NativeGraphics
Fills the specified rounded corner rectangle with the current color. If either width or height is zero or less, nothing is drawn.

Specified by:
fillRoundRect in interface NativeGraphics
Parameters:
x - - the x coordinate of the rectangle to be filled
y - - the y coordinate of the rectangle to be filled
width - - the width of the rectangle to be filled
height - - the height of the rectangle to be filled
arcWidth - - the horizontal diameter of the arc at the four corners
arcHeight - - the vertical diameter of the arc at the four corners
See Also:
NativeGraphics.drawRoundRect(int, int, int, int, int, int)

fillTriangle

public void fillTriangle(int x1,
                         int y1,
                         int x2,
                         int y2,
                         int x3,
                         int y3)
Description copied from interface: NativeGraphics
Fills the specified triangle will the current color. The lines connecting each pair of points are included in the filled triangle.

Specified by:
fillTriangle in interface NativeGraphics
Parameters:
x1 - - the x coordinate of the first vertex of the triangle
y1 - - the y coordinate of the first vertex of the triangle
x2 - - the x coordinate of the second vertex of the triangle
y2 - - the y coordinate of the second vertex of the triangle
x3 - - the x coordinate of the third vertex of the triangle
y3 - - the y coordinate of the third vertex of the triangle

getBlueComponent

public int getBlueComponent()
Description copied from interface: NativeGraphics
Gets the blue component of the current color.

Specified by:
getBlueComponent in interface NativeGraphics
Returns:
integer value in range 0-255
See Also:
NativeGraphics.setColor(int, int, int)

getClipHeight

public int getClipHeight()
Description copied from interface: NativeGraphics
Gets the height of the current clipping area.

Specified by:
getClipHeight in interface NativeGraphics
Returns:
height of the current clipping area.
See Also:
NativeGraphics.clipRect(int, int, int, int), NativeGraphics.setClip(int, int, int, int)

getClipWidth

public int getClipWidth()
Description copied from interface: NativeGraphics
Gets the width of the current clipping area.

Specified by:
getClipWidth in interface NativeGraphics
Returns:
width of the current clipping area.
See Also:
NativeGraphics.clipRect(int, int, int, int), NativeGraphics.setClip(int, int, int, int)

getClipX

public int getClipX()
Description copied from interface: NativeGraphics
Gets the X offset of the current clipping area, relative to the coordinate system origin of this graphics context. Separating the getClip operation into two methods returning integers is more performance and memory efficient than one getClip() call returning an object.

Specified by:
getClipX in interface NativeGraphics
Returns:
X offset of the current clipping area
See Also:
NativeGraphics.clipRect(int, int, int, int), NativeGraphics.setClip(int, int, int, int)

getClipY

public int getClipY()
Description copied from interface: NativeGraphics
Gets the Y offset of the current clipping area, relative to the coordinate system origin of this graphics context. Separating the getClip operation into two methods returning integers is more performance and memory efficient than one getClip() call returning an object.

Specified by:
getClipY in interface NativeGraphics
Returns:
Y offset of the current clipping area
See Also:
NativeGraphics.clipRect(int, int, int, int), NativeGraphics.setClip(int, int, int, int)

getColor

public int getColor()
Description copied from interface: NativeGraphics
Gets the current color.

Specified by:
getColor in interface NativeGraphics
Returns:
an integer in form 0x00RRGGBB
See Also:
NativeGraphics.setColor(int, int, int)

getDisplayColor

public int getDisplayColor(int color)
Description copied from interface: NativeGraphics
Gets the color that will be displayed if the specified color is requested. This method enables the developer to check the manner in which RGB values are mapped to the set of distinct colors that the device can actually display. For example, with a monochrome device, this method will return either 0xFFFFFF (white) or 0x000000 (black) depending on the brightness of the specified color.

Specified by:
getDisplayColor in interface NativeGraphics
Parameters:
color - - the desired color (in 0x00RRGGBB format, the high-order byte is ignored)
Returns:
the corresponding color that will be displayed on the device's screen (in 0x00RRGGBB format)

getFont

public Font getFont()
Description copied from interface: NativeGraphics
Gets the current font.

Specified by:
getFont in interface NativeGraphics
Returns:
current font
See Also:
Font, NativeGraphics.setFont(Font)

getGrayScale

public int getGrayScale()
Description copied from interface: NativeGraphics
Gets the current grayscale value of the color being used for rendering operations. If the color was set by setGrayScale(), that value is simply returned. If the color was set by one of the methods that allows setting of the red, green, and blue components, the value returned is computed from the RGB color components (possibly in a device-specific fashion) that best approximates the brightness of that color.

Specified by:
getGrayScale in interface NativeGraphics
Returns:
integer value in range 0-255
See Also:
NativeGraphics.setGrayScale(int)

getGreenComponent

public int getGreenComponent()
Description copied from interface: NativeGraphics
Gets the green component of the current color.

Specified by:
getGreenComponent in interface NativeGraphics
Returns:
integer value in range 0-255
See Also:
NativeGraphics.setColor(int, int, int)

getRedComponent

public int getRedComponent()
Description copied from interface: NativeGraphics
Gets the red component of the current color.

Specified by:
getRedComponent in interface NativeGraphics
Returns:
integer value in range 0-255
See Also:
NativeGraphics.setColor(int, int, int)

getStrokeStyle

public int getStrokeStyle()
Description copied from interface: NativeGraphics
Gets the stroke style used for drawing operations.

Specified by:
getStrokeStyle in interface NativeGraphics
Returns:
stroke style, SOLID or DOTTED
See Also:
NativeGraphics.setStrokeStyle(int)

getTranslateX

public int getTranslateX()
Description copied from interface: NativeGraphics
Gets the X coordinate of the translated origin of this graphics context.

Specified by:
getTranslateX in interface NativeGraphics
Returns:
X of current origin

getTranslateY

public int getTranslateY()
Description copied from interface: NativeGraphics
Gets the Y coordinate of the translated origin of this graphics context.

Specified by:
getTranslateY in interface NativeGraphics
Returns:
Y of current origin

setClip

public void setClip(int x,
                    int y,
                    int width,
                    int height)
Description copied from interface: NativeGraphics
Sets the current clip to the rectangle specified by the given coordinates. Rendering operations have no effect outside of the clipping area.

Specified by:
setClip in interface NativeGraphics
Parameters:
x - - the x coordinate of the new clip rectangle
y - - the y coordinate of the new clip rectangle
width - - the width of the new clip rectangle
height - - the height of the new clip rectangle
See Also:
NativeGraphics.clipRect(int, int, int, int)

setColor

public void setColor(int red,
                     int green,
                     int blue)
Description copied from interface: NativeGraphics
Sets the current color to the specified RGB values. All subsequent rendering operations will use this specified color.

Specified by:
setColor in interface NativeGraphics
Parameters:
red - - the red component of the color being set in range 0-255
green - - the green component of the color being set in range 0-255
blue - - the blue component of the color being set in range 0-255
See Also:
NativeGraphics.getColor()

setColor

public void setColor(int rgb)
Description copied from interface: NativeGraphics
Sets the current color to the specified RGB values. All subsequent rendering operations will use this specified color. The RGB value passed in is interpreted with the least significant eight bits giving the blue component, the next eight more significant bits giving the green component, and the next eight more significant bits giving the red component. That is to say, the color component is specified in the form of 0x00RRGGBB. The high order byte of this value is ignored.

Specified by:
setColor in interface NativeGraphics
Parameters:
rgb - - the color being set
See Also:
NativeGraphics.getColor()

setGrayScale

public void setGrayScale(int value)
Description copied from interface: NativeGraphics
Sets the current grayscale to be used for all subsequent rendering operations. For monochrome displays, the behavior is clear. For color displays, this sets the color for all subsequent drawing operations to be a gray color equivalent to the value passed in. The value must be in the range 0-255.

Specified by:
setGrayScale in interface NativeGraphics
Parameters:
value - - the desired grayscale value
See Also:
NativeGraphics.getGrayScale()

setStrokeStyle

public void setStrokeStyle(int style)
Description copied from interface: NativeGraphics
Sets the stroke style used for drawing lines, arcs, rectangles, and rounded rectangles. This does not affect fill, text, and image operations.

Specified by:
setStrokeStyle in interface NativeGraphics
Parameters:
style - - can be SOLID or DOTTED
See Also:
NativeGraphics.getStrokeStyle()

translate

public void translate(int x,
                      int y)
Description copied from interface: NativeGraphics
Translates the origin of the graphics context to the point (x, y) in the current coordinate system. All coordinates used in subsequent rendering operations on this graphics context will be relative to this new origin.

The effect of calls to translate() are cumulative. For example, calling translate(1, 2) and then translate(3, 4) results in a translation of (4, 6).

The application can set an absolute origin (ax, ay) using the following technique:

g.translate(ax - g.getTranslateX(), ay - g.getTranslateY())

Specified by:
translate in interface NativeGraphics
Parameters:
x - - the x coordinate of the new translation origin
y - - the y coordinate of the new translation origin
See Also:
NativeGraphics.getTranslateX(), NativeGraphics.getTranslateY()