//
// 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);
				 }
		 }}						 
		 }}	 		 		 
	}

