com.sun.perseus.demo.optimizedmenu
Class OptimizedSVGMenuDemo.MenuCanvas

java.lang.Object
  extended by javax.microedition.lcdui.Displayable
      extended by javax.microedition.lcdui.Canvas
          extended by com.sun.perseus.demo.optimizedmenu.OptimizedSVGMenuDemo.MenuCanvas
Enclosing class:
OptimizedSVGMenuDemo

 class OptimizedSVGMenuDemo.MenuCanvas
extends javax.microedition.lcdui.Canvas

The MenuCanvas class loads the icons found in the SVG image given at construction time and turns each icon into a bitmap.


Field Summary
protected  int[][] currentFrame
          The index of the current frame for each icon
protected  int focusCol
          The row/col index of the currently-focused icon.
protected  int focusRow
          The row/col index of the currently-focused icon.
protected  float frameLength
          Frame length.
protected  int iconHeight
          The size of a single icon.
protected  int iconWidth
          The size of a single icon.
protected  javax.microedition.lcdui.Image[][][] menuIcons
          The menu raster images.
protected  int numCols
          The number of icons, horizontally.
protected  int numFramesFocus
          Number of frames in focus selection.
protected  int numRows
          The number of icons, vertically.
protected  float padding
          The padding ratio.
protected  javax.microedition.m2g.ScalableGraphics sg
          The ScalableGraphics used to paint into the midp Graphics instance.
protected  javax.microedition.m2g.SVGImage svgImage
          The SVGImage painted by the canvas.
 
Fields inherited from class javax.microedition.lcdui.Canvas
DOWN, FIRE, GAME_A, GAME_B, GAME_C, GAME_D, KEY_NUM0, KEY_NUM1, KEY_NUM2, KEY_NUM3, KEY_NUM4, KEY_NUM5, KEY_NUM6, KEY_NUM7, KEY_NUM8, KEY_NUM9, KEY_POUND, KEY_STAR, LEFT, RIGHT, UP
 
Constructor Summary
protected OptimizedSVGMenuDemo.MenuCanvas(javax.microedition.m2g.SVGImage svgImage, int numRows, int numCols, float padding, int numFramesFocus, float frameLength)
           
 
Method Summary
 void keyPressed(int keyCode)
           
(package private)  org.w3c.dom.svg.SVGRect pad(org.w3c.dom.svg.SVGRect bbox)
          Helper method.
 void paint(javax.microedition.lcdui.Graphics g)
           
 
Methods inherited from class javax.microedition.lcdui.Canvas
getGameAction, getKeyCode, getKeyName, hasPointerEvents, hasPointerMotionEvents, hasRepeatEvents, hideNotify, isDoubleBuffered, keyReleased, keyRepeated, pointerDragged, pointerPressed, pointerReleased, repaint, repaint, serviceRepaints, setFullScreenMode, showNotify, sizeChanged
 
Methods inherited from class javax.microedition.lcdui.Displayable
addCommand, getHeight, getTicker, getTitle, getWidth, isShown, removeCommand, setCommandListener, setTicker, setTitle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

svgImage

protected javax.microedition.m2g.SVGImage svgImage
The SVGImage painted by the canvas.


sg

protected javax.microedition.m2g.ScalableGraphics sg
The ScalableGraphics used to paint into the midp Graphics instance.


numRows

protected int numRows
The number of icons, vertically.


numCols

protected int numCols
The number of icons, horizontally.


iconWidth

protected int iconWidth
The size of a single icon.


iconHeight

protected int iconHeight
The size of a single icon.


numFramesFocus

protected int numFramesFocus
Number of frames in focus selection.


frameLength

protected float frameLength
Frame length.


menuIcons

protected javax.microedition.lcdui.Image[][][] menuIcons
The menu raster images.


currentFrame

protected int[][] currentFrame
The index of the current frame for each icon


focusRow

protected int focusRow
The row/col index of the currently-focused icon.


focusCol

protected int focusCol
The row/col index of the currently-focused icon.


padding

protected float padding
The padding ratio.

Constructor Detail

OptimizedSVGMenuDemo.MenuCanvas

protected OptimizedSVGMenuDemo.MenuCanvas(javax.microedition.m2g.SVGImage svgImage,
                                          int numRows,
                                          int numCols,
                                          float padding,
                                          int numFramesFocus,
                                          float frameLength)
Parameters:
svgImage - the SVGImage this canvas should paint.
numRows - the number of rows of icons.
numCols - the number of colums of icons.
padding - the margin around each icons, as a percentage of the icon's bounding box.
numFramesFocus - the number of frames to sample in order to get from the unselected frame to the focused state.
frameLength - the amount of time between frames.
Method Detail

pad

org.w3c.dom.svg.SVGRect pad(org.w3c.dom.svg.SVGRect bbox)
Helper method. Pads the input bounding box.

Parameters:
bbox - the box to pad.

keyPressed

public void keyPressed(int keyCode)
Overrides:
keyPressed in class javax.microedition.lcdui.Canvas

paint

public void paint(javax.microedition.lcdui.Graphics g)
Specified by:
paint in class javax.microedition.lcdui.Canvas