Commit a916be78bbb129f91cce289348ed0e493abf9ab8
1 parent
66a08005
Exists in
master
and in
3 other branches
Melhorando tela de charset
Showing
1 changed file
with
49 additions
and
24 deletions
Show diff stats
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; | ... | ... |