Changeset 810 for libcaca/trunk/src/cacaview.c
- Timestamp:
- Apr 18, 2006, 2:59:07 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcaca/trunk/src/cacaview.c
r777 r810 42 42 43 43 /* libcucul/libcaca contexts */ 44 cucul_ t *qq; caca_t *kk;44 cucul_canvas_t *c; caca_t *kk; 45 45 46 46 /* Local functions */ … … 69 69 70 70 /* Initialise libcucul */ 71 qq= cucul_create(0, 0);72 if(! qq)71 c = cucul_create(0, 0); 72 if(!c) 73 73 { 74 74 fprintf(stderr, "%s: unable to initialise libcucul\n", argv[0]); … … 76 76 } 77 77 78 kk = caca_attach( qq);78 kk = caca_attach(c); 79 79 if(!kk) 80 80 { … … 86 86 caca_set_window_title(kk, "cacaview"); 87 87 88 ww = cucul_get_width( qq);89 wh = cucul_get_height( qq);88 ww = cucul_get_width(c); 89 wh = cucul_get_height(c); 90 90 91 91 /* Fill the zoom table */ … … 151 151 } 152 152 } 153 else if(ev.type & CACA_EVENT_KEY_PRESS) switch(ev.data.key.c )153 else if(ev.type & CACA_EVENT_KEY_PRESS) switch(ev.data.key.ch) 154 154 { 155 155 case 'n': … … 171 171 #if 0 /* FIXME */ 172 172 case 'b': 173 i = 1 + cucul_get_feature( qq, CUCUL_BACKGROUND);173 i = 1 + cucul_get_feature(c, CUCUL_BACKGROUND); 174 174 if(i > CUCUL_BACKGROUND_MAX) i = CUCUL_BACKGROUND_MIN; 175 cucul_set_feature( qq, i);175 cucul_set_feature(c, i); 176 176 new_status = STATUS_BACKGROUND; 177 177 update = 1; 178 178 break; 179 179 case 'B': 180 i = -1 + cucul_get_feature( qq, CUCUL_BACKGROUND);180 i = -1 + cucul_get_feature(c, CUCUL_BACKGROUND); 181 181 if(i < CUCUL_BACKGROUND_MIN) i = CUCUL_BACKGROUND_MAX; 182 cucul_set_feature( qq, i);182 cucul_set_feature(c, i); 183 183 new_status = STATUS_BACKGROUND; 184 184 update = 1; 185 185 break; 186 186 case 'a': 187 i = 1 + cucul_get_feature( qq, CUCUL_ANTIALIASING);187 i = 1 + cucul_get_feature(c, CUCUL_ANTIALIASING); 188 188 if(i > CUCUL_ANTIALIASING_MAX) i = CUCUL_ANTIALIASING_MIN; 189 cucul_set_feature( qq, i);189 cucul_set_feature(c, i); 190 190 new_status = STATUS_ANTIALIASING; 191 191 update = 1; 192 192 break; 193 193 case 'A': 194 i = -1 + cucul_get_feature( qq, CUCUL_ANTIALIASING);194 i = -1 + cucul_get_feature(c, CUCUL_ANTIALIASING); 195 195 if(i < CUCUL_ANTIALIASING_MIN) i = CUCUL_ANTIALIASING_MAX; 196 cucul_set_feature( qq, i);196 cucul_set_feature(c, i); 197 197 new_status = STATUS_ANTIALIASING; 198 198 update = 1; 199 199 break; 200 200 case 'd': 201 i = 1 + cucul_get_feature( qq, CUCUL_DITHERING);201 i = 1 + cucul_get_feature(c, CUCUL_DITHERING); 202 202 if(i > CUCUL_DITHERING_MAX) i = CUCUL_DITHERING_MIN; 203 cucul_set_feature( qq, i);203 cucul_set_feature(c, i); 204 204 new_status = STATUS_DITHERING; 205 205 update = 1; 206 206 break; 207 207 case 'D': 208 i = -1 + cucul_get_feature( qq, CUCUL_DITHERING);208 i = -1 + cucul_get_feature(c, CUCUL_DITHERING); 209 209 if(i < CUCUL_DITHERING_MIN) i = CUCUL_DITHERING_MAX; 210 cucul_set_feature( qq, i);210 cucul_set_feature(c, i); 211 211 new_status = STATUS_DITHERING; 212 212 update = 1; … … 302 302 sprintf(buffer, " Loading `%s'... ", list[current]); 303 303 buffer[ww] = '\0'; 304 cucul_set_color( qq, CUCUL_COLOR_WHITE, CUCUL_COLOR_BLUE);305 cucul_putstr( qq, (ww - strlen(buffer)) / 2, wh / 2, buffer);304 cucul_set_color(c, CUCUL_COLOR_WHITE, CUCUL_COLOR_BLUE); 305 cucul_putstr(c, (ww - strlen(buffer)) / 2, wh / 2, buffer); 306 306 caca_display(kk); 307 ww = cucul_get_width( qq);308 wh = cucul_get_height( qq);307 ww = cucul_get_width(c); 308 wh = cucul_get_height(c); 309 309 310 310 if(im) … … 322 322 } 323 323 324 cucul_clear( qq);324 cucul_clear(c); 325 325 326 326 if(!items) 327 327 { 328 cucul_set_color( qq, CUCUL_COLOR_WHITE, CUCUL_COLOR_BLUE);329 cucul_printf( qq, ww / 2 - 5, wh / 2, " No image. ");328 cucul_set_color(c, CUCUL_COLOR_WHITE, CUCUL_COLOR_BLUE); 329 cucul_printf(c, ww / 2 - 5, wh / 2, " No image. "); 330 330 } 331 331 else if(!im) … … 346 346 sprintf(buffer, ERROR_STRING, list[current]); 347 347 buffer[ww] = '\0'; 348 cucul_set_color( qq, CUCUL_COLOR_WHITE, CUCUL_COLOR_BLUE);349 cucul_putstr( qq, (ww - strlen(buffer)) / 2, wh / 2, buffer);348 cucul_set_color(c, CUCUL_COLOR_WHITE, CUCUL_COLOR_BLUE); 349 cucul_putstr(c, (ww - strlen(buffer)) / 2, wh / 2, buffer); 350 350 free(buffer); 351 351 } … … 366 366 y + height * (1.0 + yfactor) / 2); 367 367 368 cucul_dither_bitmap( qq, ww * (1.0 - xfactor) * xdelta,368 cucul_dither_bitmap(c, ww * (1.0 - xfactor) * xdelta, 369 369 y + height * (1.0 - yfactor) * ydelta, 370 370 ww * (xdelta + (1.0 - xdelta) * xfactor), … … 378 378 379 379 #if 0 /* FIXME */ 380 cucul_set_color( qq, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK);380 cucul_set_color(c, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK); 381 381 switch(status) 382 382 { 383 383 case STATUS_ANTIALIASING: 384 cucul_printf( qq, 0, wh - 1, "Antialiasing: %s",385 cucul_get_feature_name(cucul_get_feature( qq, CUCUL_ANTIALIASING)));384 cucul_printf(c, 0, wh - 1, "Antialiasing: %s", 385 cucul_get_feature_name(cucul_get_feature(c, CUCUL_ANTIALIASING))); 386 386 break; 387 387 case STATUS_DITHERING: 388 cucul_printf( qq, 0, wh - 1, "Dithering: %s",389 cucul_get_feature_name(cucul_get_feature( qq, CUCUL_DITHERING)));388 cucul_printf(c, 0, wh - 1, "Dithering: %s", 389 cucul_get_feature_name(cucul_get_feature(c, CUCUL_DITHERING))); 390 390 break; 391 391 case STATUS_BACKGROUND: 392 cucul_printf( qq, 0, wh - 1, "Background: %s",393 cucul_get_feature_name(cucul_get_feature( qq, CUCUL_BACKGROUND)));392 cucul_printf(c, 0, wh - 1, "Background: %s", 393 cucul_get_feature_name(cucul_get_feature(c, CUCUL_BACKGROUND))); 394 394 break; 395 395 } … … 410 410 unload_image(im); 411 411 caca_detach(kk); 412 cucul_free( qq);412 cucul_free(c); 413 413 414 414 return 0; … … 417 417 static void print_status(void) 418 418 { 419 cucul_set_color( qq, CUCUL_COLOR_WHITE, CUCUL_COLOR_BLUE);420 cucul_draw_line( qq, 0, 0, ww - 1, 0, " ");421 cucul_draw_line( qq, 0, wh - 2, ww - 1, wh - 2, "-");422 cucul_putstr( qq, 0, 0, "q:Quit np:Next/Prev +-x:Zoom gG:Gamma "419 cucul_set_color(c, CUCUL_COLOR_WHITE, CUCUL_COLOR_BLUE); 420 cucul_draw_line(c, 0, 0, ww - 1, 0, " "); 421 cucul_draw_line(c, 0, wh - 2, ww - 1, wh - 2, "-"); 422 cucul_putstr(c, 0, 0, "q:Quit np:Next/Prev +-x:Zoom gG:Gamma " 423 423 "hjkl:Move d:Dither a:Antialias"); 424 cucul_putstr( qq, ww - strlen("?:Help"), 0, "?:Help");425 cucul_printf( qq, 3, wh - 2, "cacaview %s", VERSION);426 cucul_printf( qq, ww - 30, wh - 2, "(gamma: %#.3g)", GAMMA(g));427 cucul_printf( qq, ww - 14, wh - 2, "(zoom: %s%i)", zoom > 0 ? "+" : "", zoom);428 429 cucul_set_color( qq, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK);430 cucul_draw_line( qq, 0, wh - 1, ww - 1, wh - 1, " ");424 cucul_putstr(c, ww - strlen("?:Help"), 0, "?:Help"); 425 cucul_printf(c, 3, wh - 2, "cacaview %s", VERSION); 426 cucul_printf(c, ww - 30, wh - 2, "(gamma: %#.3g)", GAMMA(g)); 427 cucul_printf(c, ww - 14, wh - 2, "(zoom: %s%i)", zoom > 0 ? "+" : "", zoom); 428 429 cucul_set_color(c, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK); 430 cucul_draw_line(c, 0, wh - 1, ww - 1, wh - 1, " "); 431 431 } 432 432 … … 455 455 int i; 456 456 457 cucul_set_color( qq, CUCUL_COLOR_WHITE, CUCUL_COLOR_BLUE);457 cucul_set_color(c, CUCUL_COLOR_WHITE, CUCUL_COLOR_BLUE); 458 458 459 459 for(i = 0; help[i]; i++) 460 cucul_putstr( qq, x, y + i, help[i]);460 cucul_putstr(c, x, y + i, help[i]); 461 461 } 462 462 … … 473 473 if(zoom < -ZOOM_MAX) zoom = -ZOOM_MAX; 474 474 475 ww = cucul_get_width( qq);475 ww = cucul_get_width(c); 476 476 height = fullscreen ? wh : wh - 3; 477 477 478 478 xfactor = (zoom < 0) ? 1.0 / zoomtab[-zoom] : zoomtab[zoom]; 479 479 yfactor = xfactor * ww / height * im->h / im->w 480 * cucul_get_height( qq) / cucul_get_width(qq)480 * cucul_get_height(c) / cucul_get_width(c) 481 481 * caca_get_window_width(kk) / caca_get_window_height(kk); 482 482 … … 507 507 int xn, yn; 508 508 509 if(x2 + 1 > (int)cucul_get_width( qq)) x2 = cucul_get_width(qq) - 1;510 if(y2 + 1 > (int)cucul_get_height( qq)) y2 = cucul_get_height(qq) - 1;509 if(x2 + 1 > (int)cucul_get_width(c)) x2 = cucul_get_width(c) - 1; 510 if(y2 + 1 > (int)cucul_get_height(c)) y2 = cucul_get_height(c) - 1; 511 511 512 512 for(yn = y1 > 0 ? y1 : 0; yn <= y2; yn++) … … 514 514 { 515 515 if((((xn - x1) / 5) ^ ((yn - y1) / 3)) & 1) 516 cucul_set_color( qq, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_DARKGRAY);516 cucul_set_color(c, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_DARKGRAY); 517 517 else 518 cucul_set_color( qq, CUCUL_COLOR_DARKGRAY, CUCUL_COLOR_LIGHTGRAY);519 cucul_putchar( qq, xn, yn, ' ');518 cucul_set_color(c, CUCUL_COLOR_DARKGRAY, CUCUL_COLOR_LIGHTGRAY); 519 cucul_putchar(c, xn, yn, ' '); 520 520 } 521 521 }
Note: See TracChangeset
for help on using the changeset viewer.