+}\r
+\r
+\r
+\r
+\r
+\r
+public void fastPaint(int horizontal, int vertical)\r
+{\r
+ if (horizontal == 0 && vertical == 0 || gg==null)\r
+ return;\r
+\r
+ gg.copyArea(0, 0, imgWidth, imgHeight, -horizontal * av.charWidth,\r
+ -vertical * av.charHeight);\r
+\r
+ int sr = av.startRes, er = av.endRes + 1, ss = av.startSeq, es = av.endSeq,\r
+ transX = 0, transY = 0;\r
+ if (horizontal > 0) // scrollbar pulled right, image to the left\r
+ {\r
+ transX = (er - sr - horizontal) * av.charWidth;\r
+ sr = er - horizontal;\r
+ }\r
+ else if (horizontal < 0)\r
+ er = sr - horizontal;\r
+\r
+ else if (vertical > 0) // scroll down\r
+ {\r
+ ss = es - vertical;\r
+ if(ss<av.startSeq) // ie scrolling too fast, more than a page at a time\r
+ ss = av.startSeq;\r
+ else\r
+ transY = imgHeight - vertical * av.charHeight;\r
+ }\r
+ else if (vertical < 0)\r
+ {\r
+ es = ss - vertical;\r
+ if(es > av.endSeq)\r
+ es = av.endSeq;\r
+ }\r
+\r
+\r
+ gg.translate(transX, transY);\r
+\r
+ gg.setColor(Color.white);\r
+ gg.fillRect(0,0, (er-sr)*av.charWidth, (es-ss)*av.charHeight);\r
+ drawPanel(gg, sr, er, ss, es, sr, ss, 0);\r
+ gg.translate( -transX, -transY);\r
+\r
+ fastPaint = true;\r
+ repaint();\r
+\r
+}\r