|  | @@ -356,6 +356,19 @@ char TNS_LCD_MAP_16[][16]={
 | 
											
												
													
														|  |      {0,0,0,0,1,1,1,1,0,0,1,1,0,0,0,0},{0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0},
 |  |      {0,0,0,0,1,1,1,1,0,0,1,1,0,0,0,0},{0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0},
 | 
											
												
													
														|  |      {0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1},{0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1},
 |  |      {0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1},{0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1},
 | 
											
												
													
														|  |      {0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0},{1,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0},
 |  |      {0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0},{1,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0},
 | 
											
												
													
														|  | 
 |  | +    {0,0,1,0,1,1,0,1,0,1,0,0,0,0,0,0},{0,0,0,1,1,1,0,0,1,1,0,1,0,0,0,0},//a
 | 
											
												
													
														|  | 
 |  | +    {0,0,1,1,1,1,0,1,0,0,0,0,0,0,0,0},{0,0,1,0,1,1,0,1,1,1,0,0,0,0,0,0},
 | 
											
												
													
														|  | 
 |  | +    {0,0,1,0,1,1,0,1,0,0,0,0,0,0,1,0},{0,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0},
 | 
											
												
													
														|  | 
 |  | +    {0,1,0,1,1,1,0,1,1,0,1,1,0,0,0,0},{0,0,1,0,0,1,1,1,0,1,0,0,0,0,0,0},
 | 
											
												
													
														|  | 
 |  | +    {1,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0},{0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,0},
 | 
											
												
													
														|  | 
 |  | +    {0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,1},{1,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0},
 | 
											
												
													
														|  | 
 |  | +    {0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,0},{0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0},
 | 
											
												
													
														|  | 
 |  | +    {0,0,1,1,1,1,0,1,0,0,0,1,0,0,0,0},{1,1,0,1,0,0,0,0,1,1,1,0,0,0,0,0},
 | 
											
												
													
														|  | 
 |  | +    {1,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0},{0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0},
 | 
											
												
													
														|  | 
 |  | +    {0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1},{0,0,1,1,0,1,0,0,1,1,0,0,0,0,0,0},
 | 
											
												
													
														|  | 
 |  | +    {0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0},{0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0},
 | 
											
												
													
														|  | 
 |  | +    {0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1},{0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1},
 | 
											
												
													
														|  | 
 |  | +    {0,0,0,1,1,1,0,0,1,0,1,1,0,0,0,0},{0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0},
 | 
											
												
													
														|  |  };
 |  |  };
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  //   1
 |  |  //   1
 | 
											
										
											
												
													
														|  | @@ -3161,7 +3174,7 @@ int tnsStringGetWidthU(uint32_t *contentU, int Count, int UseMono){
 | 
											
												
													
														|  |  int tnsDrawLCD7_ProgressX11(real x, real y, real Percent){
 |  |  int tnsDrawLCD7_ProgressX11(real x, real y, real Percent){
 | 
											
												
													
														|  |      real hgap=LA_RH/15; real vgap=LA_RH/5;
 |  |      real hgap=LA_RH/15; real vgap=LA_RH/5;
 | 
											
												
													
														|  |      real MA=FM->UsingFont->MonoAdvance;
 |  |      real MA=FM->UsingFont->MonoAdvance;
 | 
											
												
													
														|  | -    real w=MA-hgap*2, h=LA_RH-vgap*2; y+=vgap; x+=hgap-MA;
 |  | 
 | 
											
												
													
														|  | 
 |  | +    real w=MA-hgap*2, h=LA_RH-vgap*2; y+=vgap; x+=hgap-MA; real shear=h/12;
 | 
											
												
													
														|  |      TNS_CLAMP(Percent,0,1);
 |  |      TNS_CLAMP(Percent,0,1);
 | 
											
												
													
														|  |      char str[10]; sprintf(str,"%d",(int)(Percent*100)); int len=strlen(str);
 |  |      char str[10]; sprintf(str,"%d",(int)(Percent*100)); int len=strlen(str);
 | 
											
												
													
														|  |      for(int i=len-1;i>=0;i--){
 |  |      for(int i=len-1;i>=0;i--){
 | 
											
										
											
												
													
														|  | @@ -3171,8 +3184,10 @@ int tnsDrawLCD7_ProgressX11(real x, real y, real Percent){
 | 
											
												
													
														|  |          for(int i=0;i<7;i++){
 |  |          for(int i=0;i<7;i++){
 | 
											
												
													
														|  |              if(TNS_LCD_MAP_7[uc][i]){
 |  |              if(TNS_LCD_MAP_7[uc][i]){
 | 
											
												
													
														|  |                  real* seg=TNS_LCD_SEG_7[i];
 |  |                  real* seg=TNS_LCD_SEG_7[i];
 | 
											
												
													
														|  | 
 |  | +                real s1=tnsInterpolate(shear,-shear,seg[1]); real s2=tnsInterpolate(shear,-shear,seg[3]);
 | 
											
												
													
														|  |                  XDrawLine(MAIN.dpy,MAIN.Progress.w,MAIN.Progress.gc,
 |  |                  XDrawLine(MAIN.dpy,MAIN.Progress.w,MAIN.Progress.gc,
 | 
											
												
													
														|  | -                    tnsInterpolate(x,x+w,seg[0]),tnsInterpolate(y,y+h,seg[1]),tnsInterpolate(x,x+w,seg[2]),tnsInterpolate(y,y+h,seg[3]));
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    tnsInterpolate(x+s1,x+w+s1,seg[0]),tnsInterpolate(y,y+h,seg[1]),
 | 
											
												
													
														|  | 
 |  | +                    tnsInterpolate(x+s2,x+w+s2,seg[2]),tnsInterpolate(y,y+h,seg[3]));
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |          x-=MA;
 |  |          x-=MA;
 | 
											
										
											
												
													
														|  | @@ -3180,28 +3195,31 @@ int tnsDrawLCD7_ProgressX11(real x, real y, real Percent){
 | 
											
												
													
														|  |      return 1;
 |  |      return 1;
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  int tnsMakeLCD7(real x, real y, real w, real h, int ch){
 |  |  int tnsMakeLCD7(real x, real y, real w, real h, int ch){
 | 
											
												
													
														|  | -    int uc=ch;
 |  | 
 | 
											
												
													
														|  | 
 |  | +    int uc=ch; real shear=h/12;
 | 
											
												
													
														|  |      if(ch>='0' && ch<='9'){ uc-='0'; } 
 |  |      if(ch>='0' && ch<='9'){ uc-='0'; } 
 | 
											
												
													
														|  |      else {return 0;}
 |  |      else {return 0;}
 | 
											
												
													
														|  |      for(int i=0;i<7;i++){
 |  |      for(int i=0;i<7;i++){
 | 
											
												
													
														|  |          if(TNS_LCD_MAP_7[uc][i]){
 |  |          if(TNS_LCD_MAP_7[uc][i]){
 | 
											
												
													
														|  |              real* seg=TNS_LCD_SEG_7[i];
 |  |              real* seg=TNS_LCD_SEG_7[i];
 | 
											
												
													
														|  | -            tnsVertex2d(tnsInterpolate(x,x+w,seg[0]),tnsInterpolate(y,y+h,seg[1]));
 |  | 
 | 
											
												
													
														|  | -            tnsVertex2d(tnsInterpolate(x,x+w,seg[2]),tnsInterpolate(y,y+h,seg[3]));
 |  | 
 | 
											
												
													
														|  | 
 |  | +            real s1=tnsInterpolate(shear,-shear,seg[1]); real s2=tnsInterpolate(shear,-shear,seg[3]);
 | 
											
												
													
														|  | 
 |  | +            tnsVertex2d(tnsInterpolate(x+s1,x+w+s1,seg[0]),tnsInterpolate(y,y+h,seg[1]));
 | 
											
												
													
														|  | 
 |  | +            tnsVertex2d(tnsInterpolate(x+s2,x+w+s2,seg[2]),tnsInterpolate(y,y+h,seg[3]));
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |      return 1;
 |  |      return 1;
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  int tnsMakeLCD16(real x, real y, real w, real h, int ch){
 |  |  int tnsMakeLCD16(real x, real y, real w, real h, int ch){
 | 
											
												
													
														|  | -    int uc=ch;
 |  | 
 | 
											
												
													
														|  | 
 |  | +    int uc=ch; real shear=h/12;
 | 
											
												
													
														|  |      if(ch>='0' && ch<='9'){ uc-='0'; }
 |  |      if(ch>='0' && ch<='9'){ uc-='0'; }
 | 
											
												
													
														|  |      elif(ch>='A' && ch<='Z'){ uc-='A'; uc+=10; }
 |  |      elif(ch>='A' && ch<='Z'){ uc-='A'; uc+=10; }
 | 
											
												
													
														|  | 
 |  | +    elif(ch>='a' && ch<='z'){ uc-='a'; uc+=(10+26); }
 | 
											
												
													
														|  |      else {return 0;}
 |  |      else {return 0;}
 | 
											
												
													
														|  |      for(int i=0;i<16;i++){
 |  |      for(int i=0;i<16;i++){
 | 
											
												
													
														|  |          if(TNS_LCD_MAP_16[uc][i]){
 |  |          if(TNS_LCD_MAP_16[uc][i]){
 | 
											
												
													
														|  |              real* seg=TNS_LCD_SEG_16[i];
 |  |              real* seg=TNS_LCD_SEG_16[i];
 | 
											
												
													
														|  | -            tnsVertex2d(tnsInterpolate(x,x+w,seg[0]),tnsInterpolate(y,y+h,seg[1]));
 |  | 
 | 
											
												
													
														|  | -            tnsVertex2d(tnsInterpolate(x,x+w,seg[2]),tnsInterpolate(y,y+h,seg[3]));
 |  | 
 | 
											
												
													
														|  | 
 |  | +            real s1=tnsInterpolate(shear,-shear,seg[1]); real s2=tnsInterpolate(shear,-shear,seg[3]);
 | 
											
												
													
														|  | 
 |  | +            tnsVertex2d(tnsInterpolate(x+s1,x+w+s1,seg[0]),tnsInterpolate(y,y+h,seg[1]));
 | 
											
												
													
														|  | 
 |  | +            tnsVertex2d(tnsInterpolate(x+s2,x+w+s2,seg[2]),tnsInterpolate(y,y+h,seg[3]));
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |      return 1;
 |  |      return 1;
 |