📄 txtreadercanvas.java
字号:
if (showMenu) {
if (currentWindow == null) {
menu.keyFire();
} else {
currentWindow.keyRight();
}
repaint();
return;
} else {
if (eof && currentLine + lineOfPage > mylines.size()) {
return;
}
currentLine += lineOfPage;
prepareNextImage();
repaint();
return;
}
}
// Up
if (keyCode == -1) {
if (showMenu) {
if (currentWindow == null) {
menu.keyUp();
} else {
currentWindow.keyUp();
}
repaint();
return;
} else {
preparePreImage(1);
repaint();
return;
}
}
// Down
if (keyCode == -2) {
if (showMenu) {
if (currentWindow == null) {
menu.keyDown();
} else {
currentWindow.keyDown();
}
repaint();
return;
} else {
if (eof && currentLine + 1 > mylines.size()) {
return;
}
currentLine++;
prepareNextImage();
repaint();
return;
}
}
if (keyCode == -5) {
if (showMenu) {
if (currentWindow == null) { //弹出新窗口
menu.keyFire();
switch (menu.getSelectedIndex()) {
case 0: //阅读信息
readInfo();
repaint();
return;
case 1: //选择书签
selectBookMark();
repaint();
return;
case 2: //添加书签
addBookMark();
repaint();
return;
case 3: //删除书签
deleteBookMark();
repaint();
return;
case 4: //自由跳转
freeJump();
repaint();
return;
case 5: //分享片断
shareTxt();
repaint();
return;
case 6: //搜索
showSearch();
return;
case 7: //返回菜单
saveRec();
AnyView.av.switchSplash();
return;
case 8: //退出程序
saveRec();
AnyView.av.exit();
return;
}
} else { //处理当前窗口的事件
currentWindow.keyFire();
switch (menu.getSelectedIndex()) {
case 1: //选择书签
int index = selector.getSelectedIndex();
if (index == -1) {
repaint();
currentWindow = null;
showMenu = false;
return;
}
Mark mark = (Mark) currentMarks.elementAt(index);
currentOffset = mark.offset;
fsa.locate(currentOffset);
bufferbuffer = new byte[0];
readNextBuffer();
currentLine = 0;
analysisBuffer();
prepareNextImage();
repaint();
currentWindow = null;
showMenu = false;
return;
case 2: //添加书签
break;
case 3: //删除书签
if (selector.getSelectedIndex() == -1) {
repaint();
currentWindow = null;
showMenu = false;
return;
}
currentMarks.removeElementAt(selector.
getSelectedIndex());
currentWindow = null;
repaint();
return;
case 4: //自由跳转
break;
case 5: //搜索
break;
}
}
} else {
menu = null;
System.gc();
menu = new Menu(menuitems);
showMenu = true;
}
repaint();
}
}
public void pointerPressed(int x, int y) {
pressedx = x;
pressedy = y;
if (null != currentWindow) {
currentWindow.pointerPressed(x, y);
} else if (showMenu && menu != null) {
menu.pointerPressed(x, y);
}
repaint();
}
public void pointerReleased(int x, int y) {
int tx = x - pressedx;
int ty = y - pressedy;
if (message.getWindowState() == AbstractWindow.OPENING) { //关闭消息窗口
message.keyFire();
repaint();
return;
}
if (null != currentWindow) {
currentWindow.pointerReleased(x, y);
if (currentWindow.getTouchEvent()) {
switch (menu.getSelectedIndex()) {
case 1: //选择书签
int index = selector.getSelectedIndex();
if (index == -1) {
repaint();
currentWindow = null;
showMenu = false;
return;
}
Mark mark = (Mark) currentMarks.elementAt(index);
currentOffset = mark.offset;
fsa.locate(currentOffset);
bufferbuffer = new byte[0];
readNextBuffer();
currentLine = 0;
analysisBuffer();
prepareNextImage();
repaint();
currentWindow = null;
showMenu = false;
return;
case 2: //添加书签
break;
case 3: //删除书签
if (selector.getSelectedIndex() == -1) {
repaint();
currentWindow = null;
showMenu = false;
return;
}
currentMarks.removeElementAt(selector.getSelectedIndex());
currentWindow = null;
repaint();
return;
case 4: //自由跳转
Progress progress = (Progress) currentWindow;
if (progress.getSelectedIndex() == 3) { //选择了确定
currentOffset = progress.getCurrentValue() *
txtLenght /
100 - 2048;
currentOffset = currentOffset < 0 ? 0 :
currentOffset;
fsa.locate(currentOffset);
byte[] b = fsa.read(1);
while (currentOffset < txtLenght && b[0] != 10) {
b = fsa.read(1);
currentOffset++;
}
bufferbuffer = new byte[0]; //清缓冲的缓冲
readNextBuffer();
analysisBuffer();
//currentLine = 0;
prepareNextImage();
currentWindow = null;
menu = null;
showMenu = false;
} else if (progress.getSelectedIndex() == 4) { //选择了取消
currentWindow = null;
menu = null;
showMenu = false;
} else {
//什么也不做
}
repaint();
return;
}
} else { //关闭当前的子窗口
//System.out.println("state = " + currentWindow.getWindowState());
if (currentWindow.getWindowState() == AbstractWindow.CLOSED) {
currentWindow = null;
System.gc();
showMenu = true;
}
repaint();
return;
}
}
if (showMenu) {
menu.pointerReleased(x, y);
if (!menu.getTouchEvent()) {
return;
}
switch (menu.getSelectedIndex()) {
case 0: //阅读信息
readInfo();
repaint();
return;
case 1: //选择书签
selectBookMark();
repaint();
return;
case 2: //添加书签
addBookMark();
repaint();
return;
case 3: //删除书签
deleteBookMark();
repaint();
return;
case 4: //自由跳转
freeJump();
repaint();
return;
case 5: //分享片断
shareTxt();
repaint();
return;
case 6: //搜索
showSearch();
repaint();
return;
case 7: //返回菜单
saveRec();
AnyView.av.switchSplash();
return;
case 8: //退出程序
saveRec();
AnyView.av.exit();
return;
}
}
if (tx * tx + ty * ty > 900 && !showMenu) {
menu = new Menu(menuitems);
showMenu = true;
menu.setLocation(x, y);
repaint();
return;
}
if (rotate) {
if (x > viewHeight >> 1) { //下翻
if (eof && currentLine + lineOfPage > mylines.size()) {
return;
}
currentLine += lineOfPage;
prepareNextImage();
repaint();
return;
} else { //上翻
preparePreImage(lineOfPage);
repaint();
return;
}
} else {
if (y > viewHeight >> 1) { //下翻
if (eof && currentLine + lineOfPage > mylines.size()) {
return;
}
currentLine += lineOfPage;
prepareNextImage();
repaint();
return;
} else { //上翻
preparePreImage(lineOfPage);
repaint();
return;
}
}
}
void saveRec() {
showMenu = false;
currentWindow = null;
fsa.close();
Record.deleteRecordStore("avbookmark");
Record record = new Record("avbookmark");
record.open();
if (currentBookMarkIndex == -1) { //无当前书签记录
if (null != allBookMarks && allBookMarks.length == 9) { //当前书签列表已满
for (int i = 0; i < 8; i++) { //删除第一个书签(即最老的书签)
allBookMarks[i] = allBookMarks[i + 1];
}
}
}
int index = 0;
for (int i = 0;
null != allBookMarks && i < allBookMarks.length;
i++) { //将老的书签写入RMS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -