Commit 011f253c8ee884831189ac8585dc0eb0f5de87c6
1 parent
827dae93
Exists in
master
and in
5 other branches
Melhorando tela de charset
Showing
1 changed file
with
49 additions
and
24 deletions
Show diff stats
src/lib3270/charset.c
| ... | ... | @@ -315,12 +315,14 @@ LIB3270_EXPORT const char * lib3270_get_host_charset(H3270 *hSession) |
| 315 | 315 | LIB3270_ACTION( charsettable ) |
| 316 | 316 | { |
| 317 | 317 | static const char * hChars = "0123456789ABCDEF"; |
| 318 | + static const char * label = "Name:"; | |
| 318 | 319 | |
| 319 | 320 | int f; |
| 320 | 321 | int margin_left = 5; |
| 321 | - int row; | |
| 322 | + int baddr; | |
| 322 | 323 | int chr; |
| 323 | - int r; | |
| 324 | + int s,r; | |
| 325 | + const char *ptr; | |
| 324 | 326 | |
| 325 | 327 | CHECK_SESSION_HANDLE(hSession); |
| 326 | 328 | |
| ... | ... | @@ -328,45 +330,68 @@ LIB3270_ACTION( charsettable ) |
| 328 | 330 | |
| 329 | 331 | (void) memset((char *) hSession->ea_buf, 0, hSession->rows*hSession->cols*sizeof(struct lib3270_ea)); |
| 330 | 332 | |
| 331 | - int col = margin_left; | |
| 333 | + baddr = margin_left+hSession->maxCOLS; | |
| 334 | + s = (hSession->maxCOLS * 0x11); | |
| 332 | 335 | for(f=4;f<=0x0f;f++) |
| 333 | 336 | { |
| 334 | - col += 2; | |
| 335 | - hSession->ea_buf[col].fg = LIB3270_ATTR_COLOR_BLUE; | |
| 336 | - hSession->ea_buf[col].bg = LIB3270_ATTR_COLOR_BLACK; | |
| 337 | - hSession->ea_buf[col].cs = 0; | |
| 338 | - hSession->ea_buf[col].cc = hSession->charset.asc2ebc[(int) hChars[f]]; | |
| 339 | - hSession->ea_buf[col].gr = 0; | |
| 337 | + baddr += 2; | |
| 338 | + hSession->ea_buf[baddr+s].fg = hSession->ea_buf[baddr].fg = LIB3270_ATTR_COLOR_GRAY; | |
| 339 | + hSession->ea_buf[baddr+s].bg = hSession->ea_buf[baddr].bg = LIB3270_ATTR_COLOR_BLACK; | |
| 340 | + hSession->ea_buf[baddr+s].cs = hSession->ea_buf[baddr].cs = 0; | |
| 341 | + hSession->ea_buf[baddr+s].cc = hSession->ea_buf[baddr].cc = hSession->charset.asc2ebc[(int) hChars[f]]; | |
| 342 | + hSession->ea_buf[baddr+s].gr = hSession->ea_buf[baddr].gr = 0; | |
| 340 | 343 | } |
| 341 | 344 | |
| 342 | - row = margin_left+hSession->maxCOLS; | |
| 345 | + baddr = margin_left+(hSession->maxCOLS*2); | |
| 346 | + s = 0x1a; | |
| 343 | 347 | for(f=0;f<=0x0f;f++) |
| 344 | 348 | { |
| 345 | - hSession->ea_buf[row].fg = LIB3270_ATTR_COLOR_BLUE; | |
| 346 | - hSession->ea_buf[row].bg = LIB3270_ATTR_COLOR_BLACK; | |
| 347 | - hSession->ea_buf[row].cs = 0; | |
| 348 | - hSession->ea_buf[row].cc = hSession->charset.asc2ebc[(int) hChars[f]]; | |
| 349 | - hSession->ea_buf[row].gr = 0; | |
| 350 | - | |
| 351 | - row += hSession->maxCOLS; | |
| 349 | + hSession->ea_buf[baddr+s].fg = hSession->ea_buf[baddr].fg = LIB3270_ATTR_COLOR_GRAY; | |
| 350 | + hSession->ea_buf[baddr+s].bg = hSession->ea_buf[baddr].bg = LIB3270_ATTR_COLOR_BLACK; | |
| 351 | + hSession->ea_buf[baddr+s].cs = hSession->ea_buf[baddr].cs = 0; | |
| 352 | + hSession->ea_buf[baddr+s].cc = hSession->ea_buf[baddr].cc = hSession->charset.asc2ebc[(int) hChars[f]]; | |
| 353 | + hSession->ea_buf[baddr+s].gr = hSession->ea_buf[baddr].gr = 0; | |
| 354 | + baddr += hSession->maxCOLS; | |
| 352 | 355 | } |
| 353 | 356 | |
| 354 | 357 | chr = 0x40; |
| 355 | 358 | |
| 356 | 359 | for(f=0;f<0x0c;f++) |
| 357 | 360 | { |
| 358 | - row = (margin_left+hSession->maxCOLS)+(f*2)+2; | |
| 361 | + baddr = (margin_left+(hSession->maxCOLS*2))+(f*2)+2; | |
| 359 | 362 | for(r=0;r<=0x0f;r++) |
| 360 | 363 | { |
| 361 | - hSession->ea_buf[row].fg = LIB3270_ATTR_COLOR_WHITE; | |
| 362 | - hSession->ea_buf[row].bg = LIB3270_ATTR_COLOR_BLACK; | |
| 363 | - hSession->ea_buf[row].cs = 0; | |
| 364 | - hSession->ea_buf[row].cc = chr++; | |
| 365 | - hSession->ea_buf[row].gr = 0; | |
| 366 | - row += hSession->maxCOLS; | |
| 364 | + hSession->ea_buf[baddr].fg = LIB3270_ATTR_COLOR_YELLOW; | |
| 365 | + hSession->ea_buf[baddr].bg = LIB3270_ATTR_COLOR_BLACK; | |
| 366 | + hSession->ea_buf[baddr].cs = 0; | |
| 367 | + hSession->ea_buf[baddr].cc = chr++; | |
| 368 | + hSession->ea_buf[baddr].gr = 0; | |
| 369 | + baddr += hSession->maxCOLS; | |
| 367 | 370 | } |
| 368 | 371 | } |
| 369 | 372 | |
| 373 | + baddr = margin_left+0x1d+(hSession->maxCOLS*2); | |
| 374 | + for(ptr=label;*ptr;ptr++) | |
| 375 | + { | |
| 376 | + hSession->ea_buf[baddr].fg = LIB3270_ATTR_COLOR_WHITE; | |
| 377 | + hSession->ea_buf[baddr].bg = LIB3270_ATTR_COLOR_BLACK; | |
| 378 | + hSession->ea_buf[baddr].cs = 0; | |
| 379 | + hSession->ea_buf[baddr].cc = hSession->charset.asc2ebc[(int) *ptr]; | |
| 380 | + hSession->ea_buf[baddr].gr = 0; | |
| 381 | + baddr++; | |
| 382 | + } | |
| 383 | + baddr++; | |
| 384 | + | |
| 385 | + for(ptr=hSession->charset.host;*ptr;ptr++) | |
| 386 | + { | |
| 387 | + hSession->ea_buf[baddr].fg = LIB3270_ATTR_COLOR_YELLOW; | |
| 388 | + hSession->ea_buf[baddr].bg = LIB3270_ATTR_COLOR_BLACK; | |
| 389 | + hSession->ea_buf[baddr].cs = 0; | |
| 390 | + hSession->ea_buf[baddr].cc = hSession->charset.asc2ebc[(int) *ptr]; | |
| 391 | + hSession->ea_buf[baddr].gr = 0; | |
| 392 | + baddr++; | |
| 393 | + } | |
| 394 | + | |
| 370 | 395 | hSession->display(hSession); |
| 371 | 396 | |
| 372 | 397 | return 0; | ... | ... |