1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-04 02:09:35 +02:00

compilation issues

This commit is contained in:
Nikolay Pultsin 2014-12-30 02:55:52 +00:00
parent 383a56af52
commit d7a4f78d45
6 changed files with 28 additions and 18 deletions

View file

@ -21,11 +21,18 @@ package org.geometerplus.fbreader.fbreader;
import org.geometerplus.zlibrary.core.image.ZLImageData; import org.geometerplus.zlibrary.core.image.ZLImageData;
import org.geometerplus.zlibrary.core.library.ZLibrary; import org.geometerplus.zlibrary.core.library.ZLibrary;
import org.geometerplus.zlibrary.core.util.ZLColor;
import org.geometerplus.zlibrary.core.view.ZLPaintContext; import org.geometerplus.zlibrary.core.view.ZLPaintContext;
import org.geometerplus.zlibrary.text.view.*; import org.geometerplus.zlibrary.text.view.*;
public final class BookElement extends ExtensionElement { public final class BookElement extends ExtensionElement {
private final FBView myView;
BookElement(FBView view) {
myView = view;
}
public boolean isInitialized() { public boolean isInitialized() {
return false; return false;
} }
@ -35,19 +42,19 @@ public final class BookElement extends ExtensionElement {
} }
@Override @Override
protected int getWidth(ZLTextViewBase view) { protected int getWidth() {
// 1/\phi (= 0.618) inch width + 1/10 inch left & right margin // 1/\phi (= 0.618) inch width + 1/10 inch left & right margin
return Math.min(ZLibrary.Instance().getDisplayDPI() * 818 / 1000, view.getTextColumnWidth()); return Math.min(ZLibrary.Instance().getDisplayDPI() * 818 / 1000, myView.getTextColumnWidth());
} }
@Override @Override
protected int getHeight(ZLTextViewBase view) { protected int getHeight() {
// 1 inch height + 1/15 inch top & bottom margin // 1 inch height + 1/15 inch top & bottom margin
return ZLibrary.Instance().getDisplayDPI() * 17 / 15; return ZLibrary.Instance().getDisplayDPI() * 17 / 15;
} }
@Override @Override
protected void draw(ZLPaintContext context, ZLTextView view, ZLTextElementArea area) { protected void draw(ZLPaintContext context, ZLTextElementArea area) {
final int vMargin = ZLibrary.Instance().getDisplayDPI() / 15; final int vMargin = ZLibrary.Instance().getDisplayDPI() / 15;
final int hMargin = ZLibrary.Instance().getDisplayDPI() / 10; final int hMargin = ZLibrary.Instance().getDisplayDPI() / 10;
final ZLImageData imageData = getImageData(); final ZLImageData imageData = getImageData();
@ -63,8 +70,9 @@ public final class BookElement extends ExtensionElement {
ZLPaintContext.ColorAdjustingMode.NONE ZLPaintContext.ColorAdjustingMode.NONE
); );
} else { } else {
context.setLineColor(view.getTextColor(ZLTextHyperlink.NO_LINK)); final ZLColor color = myView.getTextColor(ZLTextHyperlink.NO_LINK);
context.setFillColor(view.getTextColor(ZLTextHyperlink.NO_LINK), 0x33); context.setLineColor(color);
context.setFillColor(color, 0x33);
final int xStart = area.XStart + hMargin; final int xStart = area.XStart + hMargin;
final int xEnd = area.XEnd - hMargin; final int xEnd = area.XEnd - hMargin;
final int yStart = area.YStart + vMargin; final int yStart = area.YStart + vMargin;

View file

@ -29,16 +29,18 @@ import org.geometerplus.zlibrary.text.view.ExtensionElementManager;
import org.geometerplus.fbreader.network.opds.*; import org.geometerplus.fbreader.network.opds.*;
class BookElementManager extends ExtensionElementManager { class BookElementManager extends ExtensionElementManager {
private final FBView myView;
private final Runnable myScreenRefresher; private final Runnable myScreenRefresher;
private final Map<Map<String,String>,List<BookElement>> myCache = private final Map<Map<String,String>,List<BookElement>> myCache =
new HashMap<Map<String,String>,List<BookElement>>(); new HashMap<Map<String,String>,List<BookElement>>();
private Timer myTimer; private Timer myTimer;
BookElementManager(final FBReaderApp reader) { BookElementManager(final FBView view) {
myView = view;
myScreenRefresher = new Runnable() { myScreenRefresher = new Runnable() {
public void run() { public void run() {
reader.getViewWidget().reset(); view.Application.getViewWidget().reset();
reader.getViewWidget().repaint(); view.Application.getViewWidget().repaint();
} }
}; };
} }
@ -55,7 +57,7 @@ class BookElementManager extends ExtensionElementManager {
final int count = Integer.valueOf(data.get("size")); final int count = Integer.valueOf(data.get("size"));
elements = new ArrayList<BookElement>(count); elements = new ArrayList<BookElement>(count);
for (int i = 0; i < count; ++i) { for (int i = 0; i < count; ++i) {
elements.add(new BookElement()); elements.add(new BookElement(myView));
} }
startLoading(data.get("src"), elements); startLoading(data.get("src"), elements);
} catch (Throwable t) { } catch (Throwable t) {

View file

@ -46,7 +46,7 @@ public final class FBView extends ZLTextView {
super(reader); super(reader);
myReader = reader; myReader = reader;
myViewOptions = reader.ViewOptions; myViewOptions = reader.ViewOptions;
myBookElementManager = new BookElementManager(reader); myBookElementManager = new BookElementManager(this);
} }
public void setModel(ZLTextModel model) { public void setModel(ZLTextModel model) {

View file

@ -22,8 +22,8 @@ package org.geometerplus.zlibrary.text.view;
import org.geometerplus.zlibrary.core.view.ZLPaintContext; import org.geometerplus.zlibrary.core.view.ZLPaintContext;
public abstract class ExtensionElement extends ZLTextElement { public abstract class ExtensionElement extends ZLTextElement {
protected abstract int getWidth(ZLTextViewBase view); protected abstract int getWidth();
protected abstract int getHeight(ZLTextViewBase view); protected abstract int getHeight();
protected abstract void draw(ZLPaintContext context, ZLTextView view, ZLTextElementArea area); protected abstract void draw(ZLPaintContext context, ZLTextElementArea area);
} }

View file

@ -942,7 +942,7 @@ public abstract class ZLTextView extends ZLTextViewBase {
context.setFillColor(new ZLColor(196, 196, 196)); context.setFillColor(new ZLColor(196, 196, 196));
context.fillPolygon(new int[] { l, l, r }, new int[] { t, b, c }); context.fillPolygon(new int[] { l, l, r }, new int[] { t, b, c });
} else if (element instanceof ExtensionElement) { } else if (element instanceof ExtensionElement) {
((ExtensionElement)element).draw(context, this, area); ((ExtensionElement)element).draw(context, area);
} else if (element == ZLTextElement.HSpace) { } else if (element == ZLTextElement.HSpace) {
final int cw = context.getSpaceWidth(); final int cw = context.getSpaceWidth();
/* /*

View file

@ -102,7 +102,7 @@ abstract class ZLTextViewBase extends ZLView {
return getContextHeight() - getTopMargin() - getBottomMargin(); return getContextHeight() - getTopMargin() - getBottomMargin();
} }
int getTextColumnWidth() { public int getTextColumnWidth() {
return twoColumnView() return twoColumnView()
? (getContextWidth() - getLeftMargin() - getSpaceBetweenColumns() - getRightMargin()) / 2 ? (getContextWidth() - getLeftMargin() - getSpaceBetweenColumns() - getRightMargin()) / 2
: getContextWidth() - getLeftMargin() - getRightMargin(); : getContextWidth() - getLeftMargin() - getRightMargin();
@ -200,7 +200,7 @@ abstract class ZLTextViewBase extends ZLView {
} else if (element instanceof ZLTextVideoElement) { } else if (element instanceof ZLTextVideoElement) {
return Math.min(300, getTextColumnWidth()); return Math.min(300, getTextColumnWidth());
} else if (element instanceof ExtensionElement) { } else if (element instanceof ExtensionElement) {
return ((ExtensionElement)element).getWidth(this); return ((ExtensionElement)element).getWidth();
} else if (element == ZLTextElement.Indent) { } else if (element == ZLTextElement.Indent) {
return myTextStyle.getFirstLineIndent(metrics()); return myTextStyle.getFirstLineIndent(metrics());
} else if (element instanceof ZLTextFixedHSpaceElement) { } else if (element instanceof ZLTextFixedHSpaceElement) {
@ -225,7 +225,7 @@ abstract class ZLTextViewBase extends ZLView {
} else if (element instanceof ZLTextVideoElement) { } else if (element instanceof ZLTextVideoElement) {
return Math.min(Math.min(200, getTextAreaHeight()), getTextColumnWidth() * 2 / 3); return Math.min(Math.min(200, getTextAreaHeight()), getTextColumnWidth() * 2 / 3);
} else if (element instanceof ExtensionElement) { } else if (element instanceof ExtensionElement) {
return ((ExtensionElement)element).getHeight(this); return ((ExtensionElement)element).getHeight();
} }
return 0; return 0;
} }