summaryrefslogtreecommitdiff
path: root/systems/android/hktex/HKtex2/src/worker4math/hktex2/Drawdocument.java
blob: 8ca8c7ac3e4dc01770abb374f563fb28413835e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
//
// Latex Project Public Licence (lppl1.3) applies
// Originally written by Kwanleung Tse
// First Release : 1st July, 2014
// Last Update : 27th September, 2014
//
//
package worker4math.hktex2;

import android.graphics.Typeface;
import android.graphics.Canvas;
import java.util.ArrayList;

public class Drawdocument {

    public static int ii=0;
    public static int showpagenumber=0;
	
	SuperBlock superblock = new SuperBlock();
	Parsedocument parsedocument = new Parsedocument();
	public static float containerwidth2;
	public static float containerheight2;
	public static float height=0;

	public  void drawinit(float containerwidth,float containerheight){
		containerwidth2=containerwidth;
		containerheight2=containerheight;
		 Initdraw initdraw = new Initdraw();
		 initdraw.initdraw(containerwidth,  containerheight);
		 return;
	}
	
		 
		 public  void drawdocument(Canvas canvas, ArrayList<Typeface> tf, Integer containerwidth){
			 Drawblock draw = new Drawblock();
			 int tid=0;
			 int showpagenumber2;
			 if ((Header.tablet && Header.tablet_twocolumns) || (!Header.tablet && Header.phone_twocolumns)){
			 showpagenumber2=showpagenumber*2;}
			 else {
				 showpagenumber2=showpagenumber;
			 }
				 if (Initdraw.pageline.indexOfKey(showpagenumber2)>=0){
			 int index=SuperBlock.superblocklinenumber.get(0)+1;
			 int index2=0;

			 for (int ii=0;ii<=Initdraw.pageline.get(showpagenumber2).size()-1;ii++){
				 int i=Initdraw.pageline.get(showpagenumber2).get(ii);
			 while(i>=index){
				 tid++;index2=index;index=index+SuperBlock.superblocklinenumber.get(tid)+1;}
			 int tid2=tid*1000+(i-index2);

// add page number			 
			 if(Header.showpagenumber && i==Initdraw.pageline.get(showpagenumber2).get(Initdraw.pageline.get(showpagenumber2).size()-1)){
				 SuperBlock.blockatom.get(tid2).add(Integer.toString(showpagenumber+Header.firstpage));
				 SuperBlock.blockxpos.get(tid2).add(containerwidth2/2);
				 SuperBlock.blockypos.get(tid2).add(containerheight2-Header.bottomsidemargin+10.0f);
				 SuperBlock.blockattribute.get(tid2).add(Header.defaultattribute);
			 }
			 if (SuperBlock.blockatom.get(tid2).size()>0){	
				 draw.drawblock(canvas, SuperBlock.blockatom.get(tid2),
	 			SuperBlock.blockxpos.get(tid2),SuperBlock.blockypos.get(tid2),
	 			SuperBlock.blockattribute.get(tid2),  Symbol.symbolunicode, Symbol.symboltype, 
	 			  Symbol.matchsymbol, 
	 			  tf);
				 }
		 }}		
			if ((Header.tablet && Header.tablet_twocolumns) || (!Header.tablet && Header.phone_twocolumns)	 ){
				 tid=0;
				 showpagenumber2=showpagenumber*2+1;
				 if (Initdraw.pageline.indexOfKey(showpagenumber2)>=0){
			 int index=SuperBlock.superblocklinenumber.get(0)+1;
			 int index2=0;

			 for (int ii=0;ii<=Initdraw.pageline.get(showpagenumber2).size()-1;ii++){
				 int i=Initdraw.pageline.get(showpagenumber2).get(ii);
			 while(i>=index){
				 tid++;index2=index;index=index+SuperBlock.superblocklinenumber.get(tid)+1;}
			 int tid2=tid*1000+(i-index2);

			 float t=containerwidth/2-Header.leftsidemargin+Header.rightsidemargin/2;
			 ArrayList<Float> xpos = new ArrayList<Float>();
			 for (int iii=0;iii<=SuperBlock.blockxpos.get(tid2).size()-1;iii++){
				 xpos.add(SuperBlock.blockxpos.get(tid2).get(iii)+t);
			 }
			 if (SuperBlock.blockatom.get(tid2).size()>0){
				 draw.drawblock(canvas, SuperBlock.blockatom.get(tid2),
	 			xpos,SuperBlock.blockypos.get(tid2),
	 			SuperBlock.blockattribute.get(tid2),  Symbol.symbolunicode, Symbol.symboltype, 
	 			  Symbol.matchsymbol, 
	 			  tf);
				 }
		 }}						 
		 }}	 		 		 
	}