int PrintTableIndexPM (int y,int index) { char buffer[8]; if (index<0 || index>999) return 0; sprintf(buffer,"%d",index); y *= 8; Bdisp_AreaReverseVRAM(0,y,15,y+7); PrintMini(1,y+2,buffer,MINI_REV); }
/* 输出屏幕底部的菜单(最多5个字符) */ void PrintIcon (int index, char* text, int sel) { index*=21; if (sel) { PrintMini(index+1+2*(5-strlen(text)), 59, (unsigned char*)text, 0); Bdisp_DrawLineVRAM(index,58,index+19,58); Bdisp_DrawLineVRAM(index,58,index,63); } else{ PrintMini(index+2*(5-strlen(text)), 59, (unsigned char*)text, 0); Bdisp_AreaReverseVRAM(index,58,index+19,63); } }
int PrintTablesPM(short x,short y,char * str,short sel,short lbl) { int len; const int width = 28; len = strlen(str); x *= width; y *= 8; x += 16; if (sel) { Bdisp_AreaReverseVRAM(x,y,x+width-1,y+7); PrintMini(x+1+(lbl ? (width-5*len)/2:0),y+1,str,MINI_REV); } else { Bdisp_DrawLineVRAM(x+width-1,y,x+width-1,y+7); Bdisp_DrawLineVRAM(x,y+7,x+width-1,y+7); PrintMini(x+1+(lbl ? (width-5*len)/2:0),y+1,str,MINI_OVER); } }
void Read_Bookmark(const char* fn,int* pages,int* n) { /* 读取书签(界面绘制) 参数说明: fn: 当前打开文件的文件名 pages: 接受当前所在页码的缓冲区 n: 接受已缓存页面数的缓冲区 */ int handle,_n=0,_page=*pages; int i,sel=0; FONTCHARACTER fname[64]; char tip[64],tmp[64]; MsgBoxPush(5); beg: font16 = open_font("\\\\fls0\\24PX.hzk"); select_font(font16); ClearArea(0,192,384,216); draw_pic(0,192,61,22,0,Menu_ReadB); ClearArea(35,49,349,166); print_chs_2(38,47,0,"读取书签"); close_font(font16); for (i=0;i<4;++i) { memset(tmp,0,sizeof(tmp));memset(tip,0,sizeof(tip)); strcat(tip,"["); itoa(i+1,tmp,10);strcat(tip,tmp); strcat(tip,"]"); if (bookmark[i]) { strcat(tip," Page "); memset(tmp,0,sizeof(tmp)); itoa(bookmark[i],tmp,10);strcat(tip,tmp); } else strcat(tip," Empty"); locate_OS(3,3+i); Print_OS(tip,0,0); } Bdisp_AreaReverseVRAM(35,72+sel*24,349,94+sel*24); while (1) { int key; GetKey(&key); switch (key) { case KEY_CTRL_UP: if (sel>0) --sel; goto beg;break; case KEY_CTRL_DOWN: if (sel<3) ++sel; goto beg;break; case KEY_CTRL_EXE: if (bookmark[sel]) { *pages=bookmark[sel]-1; // 读取书签 MsgBoxPop(); return; } else goto beg;break; case KEY_CTRL_F1: case KEY_CTRL_EXIT: *pages=_page; MsgBoxPop(); return;break; } } }
void Save_Bookmark(const char* fn,unsigned int pages,int n) { /* 存储书签(界面绘制) 参数说明: fn: 当前打开文件的文件名 pages: 当前所在页码 n: 已缓存页面数 */ int handle,size,i=0; int sel=0,flag; char tip[64],tmp[64]; MsgBoxPush(5); beg: flag=0; font16 = open_font("\\\\fls0\\24PX.hzk"); select_font(font16); ClearArea(0,192,384,216); draw_pic(0,192,124,22,0,Menu_PutB); ClearArea(35,49,349,166); print_chs_2(38,47,0,"存储书签"); close_font(font16); for (i=0;i<4;++i) { memset(tmp,0,sizeof(tmp));memset(tip,0,sizeof(tip)); strcat(tip,"["); itoa(i+1,tmp,10);strcat(tip,tmp); strcat(tip,"]"); if (bookmark[i]) { strcat(tip," Page "); memset(tmp,0,sizeof(tmp)); itoa(bookmark[i],tmp,10);strcat(tip,tmp); } else strcat(tip," Empty"); locate_OS(3,3+i); Print_OS(tip,0,0); } Bdisp_AreaReverseVRAM(35,72+sel*24,349,94+sel*24); while (1) { int key; GetKey(&key); switch (key) { case KEY_CTRL_UP: if (sel>0) --sel; goto beg;break; case KEY_CTRL_DOWN: if (sel<3) ++sel; goto beg;break; case KEY_CTRL_F1: case KEY_CTRL_EXE: bookmark[sel]=pages+1; // 存储书签 goto prg;break; case KEY_CTRL_F2: case KEY_CTRL_DEL: bookmark[sel]=0;flag=1;goto prg;break; // 删除书签 case KEY_CTRL_EXIT: MsgBoxPop(); return; } } prg: Save_Config(fn,n); if (flag) goto beg; MsgBoxPop(); }
int SelectfilePM() { index = 0; need_redraw = REDRAW_PART; SetMyFont(&stHz12x12,&stAsc6x12); while(1) { if (need_redraw == REDRAW_PART) { PopUpWin(6); DrawPicture(32,9, 16, 10, G_ICON_SAVE); DispStr(48,8,"保存为 "); DrawPicture(32,25, 16, 10, G_ICON_OPEN); DispStr(48,24,"打开 "); DrawPicture(32,41, 16, 10, G_ICON_OTHER); DispStr(48,40,"新建 "); Bdisp_AreaReverseVRAM(14,8+16*index,112,20+index*16); } GetKey(&key); if (key==KEY_CTRL_UP) {if(--index<0) index = 2;need_redraw = REDRAW_PART;} if (key==KEY_CTRL_DOWN) {if(++index>2) index = 0;need_redraw = REDRAW_PART;} if (key==KEY_CTRL_EXIT) break; if (key==KEY_CTRL_EXE) { char str[13]=""; int suc,enter,i; switch(index) { case 0: for (i=0;i<13 && setup_data.pmroute_name[i] != '.';++i) str[i] = setup_data.pmroute_name[i]; str[i>=13 ? 12 : i] = 0; PopUpWin(4); DispStr(24,8,"\xce\xc4\xbc\xfe\xc3\xfb(*.pm)");//file_name do { suc = InputString(24,24,str,1,8); if (suc==KEY_CTRL_EXIT) break; if (! str[0]) continue; }while(suc!=KEY_CTRL_EXE); if(suc!=KEY_CTRL_EXIT) { enter = 1; strcat(str,".pm"); if (TestJDFFile(str)) { PopUpWin(5); DispStr(48,12,"覆盖?"); //fugai locate(7,5);Print("Yes : [F1]"); locate(7,6);Print("No : [F6]"); do{ GetKey(&key); if (key==KEY_CTRL_F6 || key==KEY_CTRL_EXIT){enter =0 ;break;} else if (KEY_CTRL_F1) {enter = 1;break;} }while(1); } if (enter) { SavePMFile(str); strcpy(setup_data.pmroute_name,str); } } break; case 1: suc = SelectPMFile (str); if (suc==-1) { PopUpWin(1); locate(7,4);Print("No File!"); GetKey(&key); } if(suc==1) { LoadPMFile (str); strcpy(setup_data.pmroute_name,str); if(LoadPMFile (setup_data.pmroute_name)==1) SaveIniPMFile(); goto EXIT; } case 2: PopUpWin(5); DispStr(48,12,"新建?"); locate(7,5);Print("Yes : [F1]"); locate(7,6);Print("No : [F6]"); GetKey(&key); if (key==KEY_CTRL_F1){ PopUpWin(5); DispStr(40,12,"保存数据?"); locate(7,5);Print("Yes : [F1]"); locate(7,6);Print("No : [F6]"); GetKey(&key); if(key==KEY_CTRL_F1) { if(setup_data.pmroute_name[0]==0) { WheterSavaASPM(); } else { SavePMFile(setup_data.pmroute_name); } } setup_data.pmroute_name[0]=0; pmroute_initial(&pmroute); pmroute_push_back(&pmroute); goto EXIT; } break; default:break; } need_redraw = REDRAW_PART; } } EXIT: return 0; }
int Explorer( int size, char *folder ) { int top, redraw; int i; unsigned int key; redraw = 1; top = index; while(1) { if( redraw ) { Bdisp_AllClr_VRAM(); //DrawPicture( 1, 56, 61, 8, graph_bar ); PrintMini(1, 58, (unsigned char*)" EXE ", MINI_REV) ; PrintMini(105, 58, (unsigned char*)" EXIT ", MINI_REV) ; locate(1, 1);Print((unsigned char*)"File List [ ]"); locate(13, 1);Print( strlen(folder) ? (unsigned char*)folder : (unsigned char*)"Root"); if( size < 1 ){ locate( 8, 4 ); Print( (unsigned char*)"No Data" ); } else{ if( top > index ) top = index; if( index > top + N_LINE - 1 ) top = index - N_LINE + 1; if( top < 0 ) top = 0; for(i = 0;i < N_LINE && i + top < size; ++i ){ locate( 1, i + 2 ); if( files[i + top].filesize == -1 ) pPrintf( " [%s]", files[i + top].filename ); else pPrintf( " %-12s:%6u ", files[i + top].filename, files[i + top].filesize ); } Bdisp_AreaReverseVRAM( 0, (index-top+1)*8 , 127, (index-top+2)*8-1 ); if( top > 0 ) PrintXY( 120, 8, (unsigned char*)"\xE6\x92", top == index ); if( top + N_LINE < size ) PrintXY( 120, N_LINE*8, (unsigned char*)"\xE6\x93" , top + N_LINE - 1 == index ); } redraw = 0; } GetKey(&key); if( key==KEY_CTRL_UP ){ if( --index < 0 ) index = size - 1; redraw = 1; } else if( key==KEY_CTRL_DOWN ){ if( ++index > size - 1 ) index = 0; redraw = 1; } else if( key==KEY_CTRL_EXE || key == KEY_CTRL_F1) break; else if( key == KEY_CTRL_F2 ){ //Help(); redraw = 1; } else if( key == KEY_CTRL_F3 ){ //About(); redraw = 1; } else if( key==KEY_CTRL_EXIT){ index = size; break; } } }