nsxivb2a2a62
Added own bool type
+454 −452
13 files changed
- M commands.c +107 −109
- M commands.h +30 −28
- M config.def.h +77 −77
- M image.c +85 −84
- M image.h +19 −19
- M main.c +41 −44
- M options.c +16 −17
- M options.h +8 −8
- M thumbs.c +40 −39
- M thumbs.h +6 −6
- M types.h +6 −1
- M window.c +14 −15
- M window.h +5 −5
| @@ -26,17 +26,16 @@ | |||
| 26 | 26 | #include "commands.h" | |
| 27 | 27 | #include "image.h" | |
| 28 | 28 | #include "thumbs.h" | |
| 29 | − | #include "types.h" | |
| 30 | 29 | #include "util.h" | |
| 31 | 30 | ||
| 32 | 31 | void cleanup(); | |
| 33 | − | void remove_file(int, unsigned char); | |
| 32 | + | void remove_file(int, bool); | |
| 34 | 33 | void load_image(int); | |
| 35 | 34 | void redraw(); | |
| 36 | 35 | void reset_cursor(); | |
| 37 | 36 | void animate(); | |
| 38 | 37 | void slideshow(); | |
| 39 | − | void set_timeout(timeout_f, int, int); | |
| 38 | + | void set_timeout(timeout_f, int, bool); | |
| 40 | 39 | void reset_timeout(timeout_f); | |
| 41 | 40 | ||
| 42 | 41 | extern appmode_t mode; | |
| @@ -47,73 +46,73 @@ extern win_t win; | |||
| 47 | 46 | extern fileinfo_t *files; | |
| 48 | 47 | extern int filecnt, fileidx; | |
| 49 | 48 | ||
| 50 | − | int it_quit(arg_t a) { | |
| 49 | + | bool it_quit(arg_t a) { | |
| 51 | 50 | cleanup(); | |
| 52 | 51 | exit(0); | |
| 53 | 52 | } | |
| 54 | 53 | ||
| 55 | − | int it_switch_mode(arg_t a) { | |
| 54 | + | bool it_switch_mode(arg_t a) { | |
| 56 | 55 | if (mode == MODE_IMAGE) { | |
| 57 | 56 | if (!tns.thumbs) | |
| 58 | 57 | tns_init(&tns, filecnt); | |
| 59 | − | img_close(&img, 0); | |
| 58 | + | img_close(&img, false); | |
| 60 | 59 | reset_timeout(reset_cursor); | |
| 61 | 60 | if (img.slideshow) { | |
| 62 | − | img.slideshow = 0; | |
| 61 | + | img.slideshow = false; | |
| 63 | 62 | reset_timeout(slideshow); | |
| 64 | 63 | } | |
| 65 | 64 | tns.sel = fileidx; | |
| 66 | − | tns.dirty = 1; | |
| 65 | + | tns.dirty = true; | |
| 67 | 66 | mode = MODE_THUMB; | |
| 68 | 67 | } else { | |
| 69 | 68 | load_image(tns.sel); | |
| 70 | 69 | mode = MODE_IMAGE; | |
| 71 | 70 | } | |
| 72 | − | return 1; | |
| 71 | + | return true; | |
| 73 | 72 | } | |
| 74 | 73 | ||
| 75 | − | int it_toggle_fullscreen(arg_t a) { | |
| 74 | + | bool it_toggle_fullscreen(arg_t a) { | |
| 76 | 75 | win_toggle_fullscreen(&win); | |
| 77 | − | set_timeout(redraw, TO_REDRAW_RESIZE, 0); | |
| 76 | + | set_timeout(redraw, TO_REDRAW_RESIZE, false); | |
| 78 | 77 | if (mode == MODE_IMAGE) | |
| 79 | − | img.checkpan = 1; | |
| 78 | + | img.checkpan = true; | |
| 80 | 79 | else | |
| 81 | − | tns.dirty = 1; | |
| 82 | − | return 0; | |
| 80 | + | tns.dirty = true; | |
| 81 | + | return false; | |
| 83 | 82 | } | |
| 84 | 83 | ||
| 85 | − | int it_reload_image(arg_t a) { | |
| 84 | + | bool it_reload_image(arg_t a) { | |
| 86 | 85 | if (mode == MODE_IMAGE) { | |
| 87 | 86 | load_image(fileidx); | |
| 88 | 87 | } else { | |
| 89 | 88 | win_set_cursor(&win, CURSOR_WATCH); | |
| 90 | − | if (!tns_load(&tns, tns.sel, &files[tns.sel], True, False)) { | |
| 91 | − | remove_file(tns.sel, 0); | |
| 92 | − | tns.dirty = 1; | |
| 89 | + | if (!tns_load(&tns, tns.sel, &files[tns.sel], true, false)) { | |
| 90 | + | remove_file(tns.sel, false); | |
| 91 | + | tns.dirty = true; | |
| 93 | 92 | if (tns.sel >= tns.cnt) | |
| 94 | 93 | tns.sel = tns.cnt - 1; | |
| 95 | 94 | } | |
| 96 | 95 | } | |
| 97 | − | return 1; | |
| 96 | + | return true; | |
| 98 | 97 | } | |
| 99 | 98 | ||
| 100 | − | int it_remove_image(arg_t a) { | |
| 99 | + | bool it_remove_image(arg_t a) { | |
| 101 | 100 | if (mode == MODE_IMAGE) { | |
| 102 | − | remove_file(fileidx, 1); | |
| 101 | + | remove_file(fileidx, true); | |
| 103 | 102 | load_image(fileidx >= filecnt ? filecnt - 1 : fileidx); | |
| 104 | − | return 1; | |
| 103 | + | return true; | |
| 105 | 104 | } else if (tns.sel < tns.cnt) { | |
| 106 | − | remove_file(tns.sel, 1); | |
| 107 | − | tns.dirty = 1; | |
| 105 | + | remove_file(tns.sel, true); | |
| 106 | + | tns.dirty = true; | |
| 108 | 107 | if (tns.sel >= tns.cnt) | |
| 109 | 108 | tns.sel = tns.cnt - 1; | |
| 110 | − | return 1; | |
| 109 | + | return true; | |
| 111 | 110 | } else { | |
| 112 | − | return 0; | |
| 111 | + | return false; | |
| 113 | 112 | } | |
| 114 | 113 | } | |
| 115 | 114 | ||
| 116 | − | int i_navigate(arg_t a) { | |
| 115 | + | bool i_navigate(arg_t a) { | |
| 117 | 116 | long n = (long) a; | |
| 118 | 117 | ||
| 119 | 118 | if (mode == MODE_IMAGE) { | |
| @@ -125,86 +124,83 @@ int i_navigate(arg_t a) { | |||
| 125 | 124 | ||
| 126 | 125 | if (n != fileidx) { | |
| 127 | 126 | load_image(n); | |
| 128 | − | return 1; | |
| 127 | + | return true; | |
| 129 | 128 | } | |
| 130 | 129 | } | |
| 131 | − | return 0; | |
| 130 | + | return false; | |
| 132 | 131 | } | |
| 133 | 132 | ||
| 134 | − | int it_first(arg_t a) { | |
| 133 | + | bool it_first(arg_t a) { | |
| 135 | 134 | if (mode == MODE_IMAGE && fileidx != 0) { | |
| 136 | 135 | load_image(0); | |
| 137 | − | return 1; | |
| 136 | + | return true; | |
| 138 | 137 | } else if (mode == MODE_THUMB && tns.sel != 0) { | |
| 139 | 138 | tns.sel = 0; | |
| 140 | − | tns.dirty = 1; | |
| 141 | − | return 1; | |
| 139 | + | tns.dirty = true; | |
| 140 | + | return true; | |
| 142 | 141 | } else { | |
| 143 | − | return 0; | |
| 142 | + | return false; | |
| 144 | 143 | } | |
| 145 | 144 | } | |
| 146 | 145 | ||
| 147 | − | int it_last(arg_t a) { | |
| 146 | + | bool it_last(arg_t a) { | |
| 148 | 147 | if (mode == MODE_IMAGE && fileidx != filecnt - 1) { | |
| 149 | 148 | load_image(filecnt - 1); | |
| 150 | − | return 1; | |
| 149 | + | return true; | |
| 151 | 150 | } else if (mode == MODE_THUMB && tns.sel != tns.cnt - 1) { | |
| 152 | 151 | tns.sel = tns.cnt - 1; | |
| 153 | − | tns.dirty = 1; | |
| 154 | − | return 1; | |
| 152 | + | tns.dirty = true; | |
| 153 | + | return true; | |
| 155 | 154 | } else { | |
| 156 | − | return 0; | |
| 155 | + | return false; | |
| 157 | 156 | } | |
| 158 | 157 | } | |
| 159 | 158 | ||
| 160 | − | int i_navigate_frame(arg_t a) { | |
| 159 | + | bool i_navigate_frame(arg_t a) { | |
| 161 | 160 | if (mode == MODE_IMAGE && !img.multi.animate) | |
| 162 | 161 | return img_frame_navigate(&img, (long) a); | |
| 163 | 162 | else | |
| 164 | − | return 0; | |
| 163 | + | return false; | |
| 165 | 164 | } | |
| 166 | 165 | ||
| 167 | − | int i_toggle_animation(arg_t a) { | |
| 168 | − | int delay; | |
| 169 | − | ||
| 166 | + | bool i_toggle_animation(arg_t a) { | |
| 170 | 167 | if (mode != MODE_IMAGE) | |
| 171 | − | return 0; | |
| 168 | + | return false; | |
| 172 | 169 | ||
| 173 | 170 | if (img.multi.animate) { | |
| 174 | 171 | reset_timeout(animate); | |
| 175 | − | img.multi.animate = 0; | |
| 176 | − | } else { | |
| 177 | − | delay = img_frame_animate(&img, 1); | |
| 178 | − | set_timeout(animate, delay, 1); | |
| 172 | + | img.multi.animate = false; | |
| 173 | + | } else if (img_frame_animate(&img, true)) { | |
| 174 | + | set_timeout(animate, img.multi.frames[img.multi.sel].delay, true); | |
| 179 | 175 | } | |
| 180 | − | return 1; | |
| 176 | + | return true; | |
| 181 | 177 | } | |
| 182 | 178 | ||
| 183 | − | int it_move(arg_t a) { | |
| 179 | + | bool it_move(arg_t a) { | |
| 184 | 180 | direction_t dir = (direction_t) a; | |
| 185 | 181 | ||
| 186 | 182 | if (mode == MODE_IMAGE) | |
| 187 | − | return img_pan(&img, &win, dir, 0); | |
| 183 | + | return img_pan(&img, &win, dir, false); | |
| 188 | 184 | else | |
| 189 | 185 | return tns_move_selection(&tns, &win, dir); | |
| 190 | 186 | } | |
| 191 | 187 | ||
| 192 | − | int i_pan_screen(arg_t a) { | |
| 188 | + | bool i_pan_screen(arg_t a) { | |
| 193 | 189 | direction_t dir = (direction_t) a; | |
| 194 | 190 | ||
| 195 | 191 | if (mode == MODE_IMAGE) | |
| 196 | − | return img_pan(&img, &win, dir, 1); | |
| 192 | + | return img_pan(&img, &win, dir, true); | |
| 197 | 193 | else | |
| 198 | − | return 0; | |
| 194 | + | return false; | |
| 199 | 195 | } | |
| 200 | 196 | ||
| 201 | − | int i_pan_edge(arg_t a) { | |
| 197 | + | bool i_pan_edge(arg_t a) { | |
| 202 | 198 | direction_t dir = (direction_t) a; | |
| 203 | 199 | ||
| 204 | 200 | if (mode == MODE_IMAGE) | |
| 205 | 201 | return img_pan_edge(&img, &win, dir); | |
| 206 | 202 | else | |
| 207 | − | return 0; | |
| 203 | + | return false; | |
| 208 | 204 | } | |
| 209 | 205 | ||
| 210 | 206 | /* Xlib helper function for i_drag() */ | |
| @@ -212,17 +208,17 @@ Bool is_motionnotify(Display *d, XEvent *e, XPointer a) { | |||
| 212 | 208 | return e != NULL && e->type == MotionNotify; | |
| 213 | 209 | } | |
| 214 | 210 | ||
| 215 | − | int i_drag(arg_t a) { | |
| 211 | + | bool i_drag(arg_t a) { | |
| 216 | 212 | int dx = 0, dy = 0, i, ox, oy, x, y; | |
| 217 | 213 | unsigned int ui; | |
| 218 | − | Bool dragging = True, next = False; | |
| 214 | + | bool dragging = true, next = false; | |
| 219 | 215 | XEvent e; | |
| 220 | 216 | Window w; | |
| 221 | 217 | ||
| 222 | 218 | if (mode != MODE_IMAGE) | |
| 223 | − | return 0; | |
| 219 | + | return false; | |
| 224 | 220 | if (!XQueryPointer(win.env.dpy, win.xwin, &w, &w, &i, &i, &ox, &oy, &ui)) | |
| 225 | − | return 0; | |
| 221 | + | return false; | |
| 226 | 222 | ||
| 227 | 223 | win_set_cursor(&win, CURSOR_HAND); | |
| 228 | 224 | ||
| @@ -233,7 +229,7 @@ int i_drag(arg_t a) { | |||
| 233 | 229 | switch (e.type) { | |
| 234 | 230 | case ButtonPress: | |
| 235 | 231 | case ButtonRelease: | |
| 236 | − | dragging = False; | |
| 232 | + | dragging = false; | |
| 237 | 233 | break; | |
| 238 | 234 | case MotionNotify: | |
| 239 | 235 | x = e.xmotion.x; | |
| @@ -256,17 +252,17 @@ int i_drag(arg_t a) { | |||
| 256 | 252 | } | |
| 257 | 253 | ||
| 258 | 254 | win_set_cursor(&win, CURSOR_ARROW); | |
| 259 | − | set_timeout(reset_cursor, TO_CURSOR_HIDE, 1); | |
| 255 | + | set_timeout(reset_cursor, TO_CURSOR_HIDE, true); | |
| 260 | 256 | reset_timeout(redraw); | |
| 261 | 257 | ||
| 262 | − | return 0; | |
| 258 | + | return false; | |
| 263 | 259 | } | |
| 264 | 260 | ||
| 265 | − | int i_zoom(arg_t a) { | |
| 261 | + | bool i_zoom(arg_t a) { | |
| 266 | 262 | long scale = (long) a; | |
| 267 | 263 | ||
| 268 | 264 | if (mode != MODE_IMAGE) | |
| 269 | − | return 0; | |
| 265 | + | return false; | |
| 270 | 266 | ||
| 271 | 267 | if (scale > 0) | |
| 272 | 268 | return img_zoom_in(&img, &win); | |
| @@ -276,21 +272,22 @@ int i_zoom(arg_t a) { | |||
| 276 | 272 | return img_zoom(&img, &win, 1.0); | |
| 277 | 273 | } | |
| 278 | 274 | ||
| 279 | − | int i_fit_to_win(arg_t a) { | |
| 280 | − | int ret; | |
| 275 | + | bool i_fit_to_win(arg_t a) { | |
| 276 | + | bool ret; | |
| 281 | 277 | ||
| 282 | 278 | if (mode == MODE_IMAGE) { | |
| 283 | 279 | if ((ret = img_fit_win(&img, &win))) | |
| 284 | 280 | img_center(&img, &win); | |
| 285 | 281 | return ret; | |
| 286 | 282 | } else { | |
| 287 | − | return 0; | |
| 283 | + | return false; | |
| 288 | 284 | } | |
| 289 | 285 | } | |
| 290 | 286 | ||
| 291 | − | int i_fit_to_img(arg_t a) { | |
| 292 | − | int ret, x, y; | |
| 287 | + | bool i_fit_to_img(arg_t a) { | |
| 288 | + | int x, y; | |
| 293 | 289 | unsigned int w, h; | |
| 290 | + | bool ret; | |
| 294 | 291 | ||
| 295 | 292 | if (mode == MODE_IMAGE) { | |
| 296 | 293 | x = MAX(0, win.x + img.x); | |
| @@ -303,90 +300,91 @@ int i_fit_to_img(arg_t a) { | |||
| 303 | 300 | } | |
| 304 | 301 | return ret; | |
| 305 | 302 | } else { | |
| 306 | − | return 0; | |
| 303 | + | return false; | |
| 307 | 304 | } | |
| 308 | 305 | } | |
| 309 | 306 | ||
| 310 | − | int i_rotate(arg_t a) { | |
| 307 | + | bool i_rotate(arg_t a) { | |
| 311 | 308 | direction_t dir = (direction_t) a; | |
| 312 | 309 | ||
| 313 | 310 | if (mode == MODE_IMAGE) { | |
| 314 | 311 | if (dir == DIR_LEFT) { | |
| 315 | 312 | img_rotate_left(&img, &win); | |
| 316 | − | return 1; | |
| 313 | + | return true; | |
| 317 | 314 | } else if (dir == DIR_RIGHT) { | |
| 318 | 315 | img_rotate_right(&img, &win); | |
| 319 | − | return 1; | |
| 316 | + | return true; | |
| 320 | 317 | } | |
| 321 | 318 | } | |
| 322 | − | return 0; | |
| 319 | + | return false; | |
| 323 | 320 | } | |
| 324 | 321 | ||
| 325 | − | int i_toggle_slideshow(arg_t a) { | |
| 322 | + | bool i_toggle_slideshow(arg_t a) { | |
| 326 | 323 | if (mode == MODE_IMAGE) { | |
| 327 | 324 | if (img.slideshow) { | |
| 328 | − | img.slideshow = 0; | |
| 325 | + | img.slideshow = false; | |
| 329 | 326 | reset_timeout(slideshow); | |
| 330 | − | return 1; | |
| 327 | + | return true; | |
| 331 | 328 | } else if (fileidx + 1 < filecnt) { | |
| 332 | − | img.slideshow = 1; | |
| 333 | − | set_timeout(slideshow, img.ss_delay, 1); | |
| 334 | − | return 1; | |
| 329 | + | img.slideshow = true; | |
| 330 | + | set_timeout(slideshow, img.ss_delay, true); | |
| 331 | + | return true; | |
| 335 | 332 | } | |
| 336 | 333 | } | |
| 337 | − | return 0; | |
| 334 | + | return false; | |
| 338 | 335 | } | |
| 339 | 336 | ||
| 340 | − | int i_adjust_slideshow(arg_t a) { | |
| 337 | + | bool i_adjust_slideshow(arg_t a) { | |
| 341 | 338 | long d = (long) a; | |
| 342 | 339 | int i, delays[] = { 1, 2, 3, 5, 10, 15, 20, 30, 60, 120, 180, 300, 600 }; | |
| 343 | 340 | ||
| 344 | 341 | if (mode != MODE_IMAGE || !img.slideshow) | |
| 345 | − | return 0; | |
| 342 | + | return false; | |
| 346 | 343 | ||
| 347 | 344 | if (d < 0) { | |
| 348 | 345 | for (i = ARRLEN(delays) - 2; i >= 0; i--) { | |
| 349 | 346 | if (img.ss_delay > delays[i] * 1000) { | |
| 350 | 347 | img.ss_delay = delays[i] * 1000; | |
| 351 | − | return 1; | |
| 348 | + | return true; | |
| 352 | 349 | } | |
| 353 | 350 | } | |
| 354 | 351 | } else { | |
| 355 | 352 | for (i = 1; i < ARRLEN(delays); i++) { | |
| 356 | 353 | if (img.ss_delay < delays[i] * 1000) { | |
| 357 | 354 | img.ss_delay = delays[i] * 1000; | |
| 358 | − | return 1; | |
| 355 | + | return true; | |
| 359 | 356 | } | |
| 360 | 357 | } | |
| 361 | 358 | } | |
| 362 | − | return 0; | |
| 359 | + | return false; | |
| 363 | 360 | } | |
| 364 | 361 | ||
| 365 | − | int i_toggle_antialias(arg_t a) { | |
| 362 | + | bool i_toggle_antialias(arg_t a) { | |
| 366 | 363 | if (mode == MODE_IMAGE) { | |
| 367 | 364 | img_toggle_antialias(&img); | |
| 368 | − | return 1; | |
| 365 | + | return true; | |
| 369 | 366 | } else { | |
| 370 | − | return 0; | |
| 367 | + | return false; | |
| 371 | 368 | } | |
| 372 | 369 | } | |
| 373 | 370 | ||
| 374 | − | int it_toggle_alpha(arg_t a) { | |
| 375 | − | img.alpha ^= 1; | |
| 376 | − | tns.alpha = img.alpha; | |
| 377 | − | if (mode == MODE_THUMB) | |
| 378 | − | tns.dirty = 1; | |
| 379 | − | return 1; | |
| 371 | + | bool it_toggle_alpha(arg_t a) { | |
| 372 | + | img.alpha = tns.alpha = !img.alpha; | |
| 373 | + | if (mode == MODE_IMAGE) | |
| 374 | + | img.dirty = true; | |
| 375 | + | else | |
| 376 | + | tns.dirty = true; | |
| 377 | + | return true; | |
| 380 | 378 | } | |
| 381 | 379 | ||
| 382 | − | int it_open_with(arg_t a) { | |
| 380 | + | bool it_open_with(arg_t a) { | |
| 383 | 381 | const char *prog = (const char*) a; | |
| 384 | 382 | pid_t pid; | |
| 385 | 383 | ||
| 386 | 384 | if (!prog || !*prog) | |
| 387 | − | return 0; | |
| 385 | + | return false; | |
| 388 | 386 | ||
| 389 | − | if((pid = fork()) == 0) { | |
| 387 | + | if ((pid = fork()) == 0) { | |
| 390 | 388 | execlp(prog, prog, | |
| 391 | 389 | files[mode == MODE_IMAGE ? fileidx : tns.sel].path, NULL); | |
| 392 | 390 | warn("could not exec: %s", prog); | |
| @@ -395,10 +393,10 @@ int it_open_with(arg_t a) { | |||
| 395 | 393 | warn("could not fork. program was: %s", prog); | |
| 396 | 394 | } | |
| 397 | 395 | ||
| 398 | − | return 0; | |
| 396 | + | return false; | |
| 399 | 397 | } | |
| 400 | 398 | ||
| 401 | − | int it_shell_cmd(arg_t a) { | |
| 399 | + | bool it_shell_cmd(arg_t a) { | |
| 402 | 400 | int n, status; | |
| 403 | 401 | const char *cmdline = (const char*) a; | |
| 404 | 402 | pid_t pid; | |
| @@ -411,7 +409,7 @@ int it_shell_cmd(arg_t a) { | |||
| 411 | 409 | if (setenv("SXIV_IMG", files[n].path, 1) < 0) { | |
| 412 | 410 | warn("could not set env.-variable: SXIV_IMG. command line was: %s", | |
| 413 | 411 | cmdline); | |
| 414 | − | return 0; | |
| 412 | + | return false; | |
| 415 | 413 | } | |
| 416 | 414 | ||
| 417 | 415 | if ((pid = fork()) == 0) { | |
| @@ -420,7 +418,7 @@ int it_shell_cmd(arg_t a) { | |||
| 420 | 418 | exit(1); | |
| 421 | 419 | } else if (pid < 0) { | |
| 422 | 420 | warn("could not fork. command line was: %s", cmdline); | |
| 423 | − | return 0; | |
| 421 | + | return false; | |
| 424 | 422 | } | |
| 425 | 423 | ||
| 426 | 424 | win_set_cursor(&win, CURSOR_WATCH); | |
| @@ -431,17 +429,17 @@ int it_shell_cmd(arg_t a) { | |||
| 431 | 429 | WEXITSTATUS(status), cmdline); | |
| 432 | 430 | ||
| 433 | 431 | if (mode == MODE_IMAGE) { | |
| 434 | − | img_close(&img, 1); | |
| 432 | + | img_close(&img, true); | |
| 435 | 433 | load_image(fileidx); | |
| 436 | 434 | } | |
| 437 | − | if (!tns_load(&tns, n, &files[n], True, mode == MODE_IMAGE) && | |
| 435 | + | if (!tns_load(&tns, n, &files[n], true, mode == MODE_IMAGE) && | |
| 438 | 436 | mode == MODE_THUMB) | |
| 439 | 437 | { | |
| 440 | − | remove_file(tns.sel, 0); | |
| 441 | − | tns.dirty = 1; | |
| 438 | + | remove_file(tns.sel, false); | |
| 439 | + | tns.dirty = true; | |
| 442 | 440 | if (tns.sel >= tns.cnt) | |
| 443 | 441 | tns.sel = tns.cnt - 1; | |
| 444 | 442 | } | |
| 445 | 443 | ||
| 446 | − | return 1; | |
| 444 | + | return true; | |
| 447 | 445 | } | |
| @@ -21,47 +21,49 @@ | |||
| 21 | 21 | ||
| 22 | 22 | #include <X11/Xlib.h> | |
| 23 | 23 | ||
| 24 | + | #include "types.h" | |
| 25 | + | ||
| 24 | 26 | typedef void* arg_t; | |
| 25 | − | typedef int (*command_f)(arg_t); | |
| 27 | + | typedef bool (*command_f)(arg_t); | |
| 26 | 28 | ||
| 27 | 29 | typedef struct { | |
| 28 | − | Bool ctrl; | |
| 30 | + | bool ctrl; | |
| 29 | 31 | KeySym ksym; | |
| 30 | 32 | command_f cmd; | |
| 31 | 33 | arg_t arg; | |
| 32 | 34 | } keymap_t; | |
| 33 | 35 | ||
| 34 | 36 | typedef struct { | |
| 35 | − | Bool ctrl; | |
| 36 | − | Bool shift; | |
| 37 | + | bool ctrl; | |
| 38 | + | bool shift; | |
| 37 | 39 | unsigned int button; | |
| 38 | 40 | command_f cmd; | |
| 39 | 41 | arg_t arg; | |
| 40 | 42 | } button_t; | |
| 41 | 43 | ||
| 42 | − | int it_quit(arg_t); | |
| 43 | − | int it_switch_mode(arg_t); | |
| 44 | − | int it_toggle_fullscreen(arg_t); | |
| 45 | − | int it_reload_image(arg_t); | |
| 46 | − | int it_remove_image(arg_t); | |
| 47 | − | int i_navigate(arg_t); | |
| 48 | − | int it_first(arg_t); | |
| 49 | − | int it_last(arg_t); | |
| 50 | − | int i_navigate_frame(arg_t); | |
| 51 | − | int i_toggle_animation(arg_t); | |
| 52 | − | int it_move(arg_t); | |
| 53 | − | int i_pan_screen(arg_t); | |
| 54 | − | int i_pan_edge(arg_t); | |
| 55 | − | int i_drag(arg_t); | |
| 56 | − | int i_zoom(arg_t); | |
| 57 | − | int i_fit_to_win(arg_t); | |
| 58 | − | int i_fit_to_img(arg_t); | |
| 59 | − | int i_rotate(arg_t); | |
| 60 | − | int i_toggle_slideshow(arg_t); | |
| 61 | − | int i_adjust_slideshow(arg_t); | |
| 62 | − | int i_toggle_antialias(arg_t); | |
| 63 | − | int it_toggle_alpha(arg_t); | |
| 64 | − | int it_open_with(arg_t); | |
| 65 | − | int it_shell_cmd(arg_t); | |
| 44 | + | bool it_quit(arg_t); | |
| 45 | + | bool it_switch_mode(arg_t); | |
| 46 | + | bool it_toggle_fullscreen(arg_t); | |
| 47 | + | bool it_reload_image(arg_t); | |
| 48 | + | bool it_remove_image(arg_t); | |
| 49 | + | bool i_navigate(arg_t); | |
| 50 | + | bool it_first(arg_t); | |
| 51 | + | bool it_last(arg_t); | |
| 52 | + | bool i_navigate_frame(arg_t); | |
| 53 | + | bool i_toggle_animation(arg_t); | |
| 54 | + | bool it_move(arg_t); | |
| 55 | + | bool i_pan_screen(arg_t); | |
| 56 | + | bool i_pan_edge(arg_t); | |
| 57 | + | bool i_drag(arg_t); | |
| 58 | + | bool i_zoom(arg_t); | |
| 59 | + | bool i_fit_to_win(arg_t); | |
| 60 | + | bool i_fit_to_img(arg_t); | |
| 61 | + | bool i_rotate(arg_t); | |
| 62 | + | bool i_toggle_slideshow(arg_t); | |
| 63 | + | bool i_adjust_slideshow(arg_t); | |
| 64 | + | bool i_toggle_antialias(arg_t); | |
| 65 | + | bool it_toggle_alpha(arg_t); | |
| 66 | + | bool it_open_with(arg_t); | |
| 67 | + | bool it_shell_cmd(arg_t); | |
| 66 | 68 | ||
| 67 | 69 | #endif /* COMMANDS_H */ | |
| @@ -51,96 +51,96 @@ enum { THUMB_SIZE = 60 }; | |||
| 51 | 51 | /* keyboard mappings for image and thumbnail mode: */ | |
| 52 | 52 | static const keymap_t keys[] = { | |
| 53 | 53 | /* ctrl key function argument */ | |
| 54 | − | { False, XK_q, it_quit, (arg_t) None }, | |
| 55 | − | { False, XK_Return, it_switch_mode, (arg_t) None }, | |
| 56 | − | { False, XK_f, it_toggle_fullscreen, (arg_t) None }, | |
| 57 | − | ||
| 58 | − | { False, XK_r, it_reload_image, (arg_t) None }, | |
| 59 | − | { False, XK_D, it_remove_image, (arg_t) None }, | |
| 60 | − | ||
| 61 | − | { False, XK_n, i_navigate, (arg_t) +1 }, | |
| 62 | − | { False, XK_space, i_navigate, (arg_t) +1 }, | |
| 63 | − | { False, XK_p, i_navigate, (arg_t) -1 }, | |
| 64 | − | { False, XK_BackSpace, i_navigate, (arg_t) -1 }, | |
| 65 | − | { False, XK_bracketright, i_navigate, (arg_t) +10 }, | |
| 66 | − | { False, XK_bracketleft, i_navigate, (arg_t) -10 }, | |
| 67 | − | { False, XK_g, it_first, (arg_t) None }, | |
| 68 | − | { False, XK_G, it_last, (arg_t) None }, | |
| 69 | − | ||
| 70 | − | { True, XK_n, i_navigate_frame, (arg_t) +1 }, | |
| 71 | − | { True, XK_p, i_navigate_frame, (arg_t) -1 }, | |
| 72 | − | { True, XK_space, i_toggle_animation, (arg_t) None }, | |
| 73 | − | ||
| 74 | − | { False, XK_h, it_move, (arg_t) DIR_LEFT }, | |
| 75 | − | { False, XK_Left, it_move, (arg_t) DIR_LEFT }, | |
| 76 | − | { False, XK_j, it_move, (arg_t) DIR_DOWN }, | |
| 77 | − | { False, XK_Down, it_move, (arg_t) DIR_DOWN }, | |
| 78 | − | { False, XK_k, it_move, (arg_t) DIR_UP }, | |
| 79 | − | { False, XK_Up, it_move, (arg_t) DIR_UP }, | |
| 80 | − | { False, XK_l, it_move, (arg_t) DIR_RIGHT }, | |
| 81 | − | { False, XK_Right, it_move, (arg_t) DIR_RIGHT }, | |
| 82 | − | ||
| 83 | − | { True, XK_h, i_pan_screen, (arg_t) DIR_LEFT }, | |
| 84 | − | { True, XK_Left, i_pan_screen, (arg_t) DIR_LEFT }, | |
| 85 | − | { True, XK_j, i_pan_screen, (arg_t) DIR_DOWN }, | |
| 86 | − | { True, XK_Down, i_pan_screen, (arg_t) DIR_DOWN }, | |
| 87 | − | { True, XK_k, i_pan_screen, (arg_t) DIR_UP }, | |
| 88 | − | { True, XK_Up, i_pan_screen, (arg_t) DIR_UP }, | |
| 89 | − | { True, XK_l, i_pan_screen, (arg_t) DIR_RIGHT }, | |
| 90 | − | { True, XK_Right, i_pan_screen, (arg_t) DIR_RIGHT }, | |
| 91 | − | ||
| 92 | − | { False, XK_H, i_pan_edge, (arg_t) DIR_LEFT }, | |
| 93 | − | { False, XK_J, i_pan_edge, (arg_t) DIR_DOWN }, | |
| 94 | − | { False, XK_K, i_pan_edge, (arg_t) DIR_UP }, | |
| 95 | − | { False, XK_L, i_pan_edge, (arg_t) DIR_RIGHT }, | |
| 96 | − | ||
| 97 | − | { False, XK_plus, i_zoom, (arg_t) +1 }, | |
| 98 | − | { False, XK_equal, i_zoom, (arg_t) +1 }, | |
| 99 | − | { False, XK_KP_Add, i_zoom, (arg_t) +1 }, | |
| 100 | − | { False, XK_minus, i_zoom, (arg_t) -1 }, | |
| 101 | − | { False, XK_KP_Subtract, i_zoom, (arg_t) -1 }, | |
| 102 | − | { False, XK_0, i_zoom, (arg_t) None }, | |
| 103 | − | { False, XK_KP_0, i_zoom, (arg_t) None }, | |
| 104 | − | { False, XK_w, i_fit_to_win, (arg_t) None }, | |
| 105 | − | { False, XK_W, i_fit_to_img, (arg_t) None }, | |
| 106 | − | ||
| 107 | − | { False, XK_less, i_rotate, (arg_t) DIR_LEFT }, | |
| 108 | − | { False, XK_greater, i_rotate, (arg_t) DIR_RIGHT }, | |
| 109 | − | ||
| 110 | − | { False, XK_s, i_toggle_slideshow, (arg_t) None }, | |
| 111 | − | { True, XK_plus, i_adjust_slideshow, (arg_t) +1 }, | |
| 112 | − | { True, XK_equal, i_adjust_slideshow, (arg_t) +1 }, | |
| 113 | − | { True, XK_minus, i_adjust_slideshow, (arg_t) -1 }, | |
| 114 | − | ||
| 115 | − | { False, XK_a, i_toggle_antialias, (arg_t) None }, | |
| 116 | − | { False, XK_A, it_toggle_alpha, (arg_t) None }, | |
| 54 | + | { false, XK_q, it_quit, (arg_t) None }, | |
| 55 | + | { false, XK_Return, it_switch_mode, (arg_t) None }, | |
| 56 | + | { false, XK_f, it_toggle_fullscreen, (arg_t) None }, | |
| 57 | + | ||
| 58 | + | { false, XK_r, it_reload_image, (arg_t) None }, | |
| 59 | + | { false, XK_D, it_remove_image, (arg_t) None }, | |
| 60 | + | ||
| 61 | + | { false, XK_n, i_navigate, (arg_t) +1 }, | |
| 62 | + | { false, XK_space, i_navigate, (arg_t) +1 }, | |
| 63 | + | { false, XK_p, i_navigate, (arg_t) -1 }, | |
| 64 | + | { false, XK_BackSpace, i_navigate, (arg_t) -1 }, | |
| 65 | + | { false, XK_bracketright, i_navigate, (arg_t) +10 }, | |
| 66 | + | { false, XK_bracketleft, i_navigate, (arg_t) -10 }, | |
| 67 | + | { false, XK_g, it_first, (arg_t) None }, | |
| 68 | + | { false, XK_G, it_last, (arg_t) None }, | |
| 69 | + | ||
| 70 | + | { true, XK_n, i_navigate_frame, (arg_t) +1 }, | |
| 71 | + | { true, XK_p, i_navigate_frame, (arg_t) -1 }, | |
| 72 | + | { true, XK_space, i_toggle_animation, (arg_t) None }, | |
| 73 | + | ||
| 74 | + | { false, XK_h, it_move, (arg_t) DIR_LEFT }, | |
| 75 | + | { false, XK_Left, it_move, (arg_t) DIR_LEFT }, | |
| 76 | + | { false, XK_j, it_move, (arg_t) DIR_DOWN }, | |
| 77 | + | { false, XK_Down, it_move, (arg_t) DIR_DOWN }, | |
| 78 | + | { false, XK_k, it_move, (arg_t) DIR_UP }, | |
| 79 | + | { false, XK_Up, it_move, (arg_t) DIR_UP }, | |
| 80 | + | { false, XK_l, it_move, (arg_t) DIR_RIGHT }, | |
| 81 | + | { false, XK_Right, it_move, (arg_t) DIR_RIGHT }, | |
| 82 | + | ||
| 83 | + | { true, XK_h, i_pan_screen, (arg_t) DIR_LEFT }, | |
| 84 | + | { true, XK_Left, i_pan_screen, (arg_t) DIR_LEFT }, | |
| 85 | + | { true, XK_j, i_pan_screen, (arg_t) DIR_DOWN }, | |
| 86 | + | { true, XK_Down, i_pan_screen, (arg_t) DIR_DOWN }, | |
| 87 | + | { true, XK_k, i_pan_screen, (arg_t) DIR_UP }, | |
| 88 | + | { true, XK_Up, i_pan_screen, (arg_t) DIR_UP }, | |
| 89 | + | { true, XK_l, i_pan_screen, (arg_t) DIR_RIGHT }, | |
| 90 | + | { true, XK_Right, i_pan_screen, (arg_t) DIR_RIGHT }, | |
| 91 | + | ||
| 92 | + | { false, XK_H, i_pan_edge, (arg_t) DIR_LEFT }, | |
| 93 | + | { false, XK_J, i_pan_edge, (arg_t) DIR_DOWN }, | |
| 94 | + | { false, XK_K, i_pan_edge, (arg_t) DIR_UP }, | |
| 95 | + | { false, XK_L, i_pan_edge, (arg_t) DIR_RIGHT }, | |
| 96 | + | ||
| 97 | + | { false, XK_plus, i_zoom, (arg_t) +1 }, | |
| 98 | + | { false, XK_equal, i_zoom, (arg_t) +1 }, | |
| 99 | + | { false, XK_KP_Add, i_zoom, (arg_t) +1 }, | |
| 100 | + | { false, XK_minus, i_zoom, (arg_t) -1 }, | |
| 101 | + | { false, XK_KP_Subtract, i_zoom, (arg_t) -1 }, | |
| 102 | + | { false, XK_0, i_zoom, (arg_t) None }, | |
| 103 | + | { false, XK_KP_0, i_zoom, (arg_t) None }, | |
| 104 | + | { false, XK_w, i_fit_to_win, (arg_t) None }, | |
| 105 | + | { false, XK_W, i_fit_to_img, (arg_t) None }, | |
| 106 | + | ||
| 107 | + | { false, XK_less, i_rotate, (arg_t) DIR_LEFT }, | |
| 108 | + | { false, XK_greater, i_rotate, (arg_t) DIR_RIGHT }, | |
| 109 | + | ||
| 110 | + | { false, XK_s, i_toggle_slideshow, (arg_t) None }, | |
| 111 | + | { true, XK_plus, i_adjust_slideshow, (arg_t) +1 }, | |
| 112 | + | { true, XK_equal, i_adjust_slideshow, (arg_t) +1 }, | |
| 113 | + | { true, XK_minus, i_adjust_slideshow, (arg_t) -1 }, | |
| 114 | + | ||
| 115 | + | { false, XK_a, i_toggle_antialias, (arg_t) None }, | |
| 116 | + | { false, XK_A, it_toggle_alpha, (arg_t) None }, | |
| 117 | 117 | ||
| 118 | 118 | /* open current image with given program: */ | |
| 119 | − | { True, XK_g, it_open_with, (arg_t) "gimp" }, | |
| 119 | + | { true, XK_g, it_open_with, (arg_t) "gimp" }, | |
| 120 | 120 | ||
| 121 | 121 | /* run shell command line on current file ("$SXIV_IMG"): */ | |
| 122 | − | { True, XK_less, it_shell_cmd, (arg_t) \ | |
| 122 | + | { true, XK_less, it_shell_cmd, (arg_t) \ | |
| 123 | 123 | "mogrify -rotate -90 \"$SXIV_IMG\"" }, | |
| 124 | − | { True, XK_greater, it_shell_cmd, (arg_t) \ | |
| 124 | + | { true, XK_greater, it_shell_cmd, (arg_t) \ | |
| 125 | 125 | "mogrify -rotate +90 \"$SXIV_IMG\"" }, | |
| 126 | − | { True, XK_comma, it_shell_cmd, (arg_t) \ | |
| 126 | + | { true, XK_comma, it_shell_cmd, (arg_t) \ | |
| 127 | 127 | "jpegtran -rotate 270 -copy all -outfile \"$SXIV_IMG\" \"$SXIV_IMG\"" }, | |
| 128 | − | { True, XK_period, it_shell_cmd, (arg_t) \ | |
| 128 | + | { true, XK_period, it_shell_cmd, (arg_t) \ | |
| 129 | 129 | "jpegtran -rotate 90 -copy all -outfile \"$SXIV_IMG\" \"$SXIV_IMG\"" }, | |
| 130 | 130 | }; | |
| 131 | 131 | ||
| 132 | 132 | /* mouse button mappings for image mode: */ | |
| 133 | 133 | static const button_t buttons[] = { | |
| 134 | 134 | /* ctrl shift button function argument */ | |
| 135 | − | { False, False, Button1, i_navigate, (arg_t) +1 }, | |
| 136 | − | { False, False, Button3, i_navigate, (arg_t) -1 }, | |
| 137 | − | { False, False, Button2, i_drag, (arg_t) None }, | |
| 138 | − | { False, False, Button4, it_move, (arg_t) DIR_UP }, | |
| 139 | − | { False, False, Button5, it_move, (arg_t) DIR_DOWN }, | |
| 140 | − | { False, True, Button4, it_move, (arg_t) DIR_LEFT }, | |
| 141 | − | { False, True, Button5, it_move, (arg_t) DIR_RIGHT }, | |
| 142 | − | { True, False, Button4, i_zoom, (arg_t) +1 }, | |
| 143 | − | { True, False, Button5, i_zoom, (arg_t) -1 }, | |
| 135 | + | { false, false, Button1, i_navigate, (arg_t) +1 }, | |
| 136 | + | { false, false, Button3, i_navigate, (arg_t) -1 }, | |
| 137 | + | { false, false, Button2, i_drag, (arg_t) None }, | |
| 138 | + | { false, false, Button4, it_move, (arg_t) DIR_UP }, | |
| 139 | + | { false, false, Button5, it_move, (arg_t) DIR_DOWN }, | |
| 140 | + | { false, true, Button4, it_move, (arg_t) DIR_LEFT }, | |
| 141 | + | { false, true, Button5, it_move, (arg_t) DIR_RIGHT }, | |
| 142 | + | { true, false, Button4, i_zoom, (arg_t) +1 }, | |
| 143 | + | { true, false, Button5, i_zoom, (arg_t) -1 }, | |
| 144 | 144 | }; | |
| 145 | 145 | ||
| 146 | 146 | #endif | |
| @@ -51,15 +51,15 @@ void img_init(img_t *img, win_t *win) { | |||
| 51 | 51 | if (img) { | |
| 52 | 52 | img->im = NULL; | |
| 53 | 53 | img->multi.cap = img->multi.cnt = 0; | |
| 54 | − | img->multi.animate = 0; | |
| 54 | + | img->multi.animate = false; | |
| 55 | 55 | img->zoom = options->zoom; | |
| 56 | 56 | img->zoom = MAX(img->zoom, zoom_min); | |
| 57 | 57 | img->zoom = MIN(img->zoom, zoom_max); | |
| 58 | − | img->checkpan = 0; | |
| 59 | − | img->dirty = 0; | |
| 58 | + | img->checkpan = false; | |
| 59 | + | img->dirty = false; | |
| 60 | 60 | img->aa = options->aa; | |
| 61 | − | img->alpha = 1; | |
| 62 | − | img->slideshow = 0; | |
| 61 | + | img->alpha = true; | |
| 62 | + | img->slideshow = false; | |
| 63 | 63 | img->ss_delay = SLIDESHOW_DELAY * 1000; | |
| 64 | 64 | } | |
| 65 | 65 | ||
| @@ -119,7 +119,7 @@ void exif_auto_orientate(const fileinfo_t *file) { | |||
| 119 | 119 | /* Originally based on, but in its current form merely inspired by Imlib2's | |
| 120 | 120 | * src/modules/loaders/loader_gif.c:load(), written by Carsten Haitzler. | |
| 121 | 121 | */ | |
| 122 | − | int img_load_gif(img_t *img, const fileinfo_t *file) { | |
| 122 | + | bool img_load_gif(img_t *img, const fileinfo_t *file) { | |
| 123 | 123 | GifFileType *gif; | |
| 124 | 124 | GifRowType *rows = NULL; | |
| 125 | 125 | GifRecordType rec; | |
| @@ -131,8 +131,9 @@ int img_load_gif(img_t *img, const fileinfo_t *file) { | |||
| 131 | 131 | int x, y, w, h, sw, sh; | |
| 132 | 132 | int intoffset[] = { 0, 4, 2, 1 }; | |
| 133 | 133 | int intjump[] = { 8, 8, 4, 2 }; | |
| 134 | − | int err = 0, transp = -1; | |
| 134 | + | int transp = -1; | |
| 135 | 135 | unsigned int delay = 0; | |
| 136 | + | bool err = false; | |
| 136 | 137 | ||
| 137 | 138 | if (img->multi.cap == 0) { | |
| 138 | 139 | img->multi.cap = 8; | |
| @@ -145,7 +146,7 @@ int img_load_gif(img_t *img, const fileinfo_t *file) { | |||
| 145 | 146 | gif = DGifOpenFileName(file->path); | |
| 146 | 147 | if (!gif) { | |
| 147 | 148 | warn("could not open gif file: %s", file->name); | |
| 148 | − | return 0; | |
| 149 | + | return false; | |
| 149 | 150 | } | |
| 150 | 151 | bg = gif->SBackGroundColor; | |
| 151 | 152 | sw = gif->SWidth; | |
| @@ -153,7 +154,7 @@ int img_load_gif(img_t *img, const fileinfo_t *file) { | |||
| 153 | 154 | ||
| 154 | 155 | do { | |
| 155 | 156 | if (DGifGetRecordType(gif, &rec) == GIF_ERROR) { | |
| 156 | − | err = 1; | |
| 157 | + | err = true; | |
| 157 | 158 | break; | |
| 158 | 159 | } | |
| 159 | 160 | if (rec == EXTENSION_RECORD_TYPE) { | |
| @@ -177,7 +178,7 @@ int img_load_gif(img_t *img, const fileinfo_t *file) { | |||
| 177 | 178 | } | |
| 178 | 179 | } else if (rec == IMAGE_DESC_RECORD_TYPE) { | |
| 179 | 180 | if (DGifGetImageDesc(gif) == GIF_ERROR) { | |
| 180 | − | err = 1; | |
| 181 | + | err = true; | |
| 181 | 182 | break; | |
| 182 | 183 | } | |
| 183 | 184 | x = gif->Image.Left; | |
| @@ -235,7 +236,7 @@ int img_load_gif(img_t *img, const fileinfo_t *file) { | |||
| 235 | 236 | free(data); | |
| 236 | 237 | ||
| 237 | 238 | if (!im) { | |
| 238 | − | err = 1; | |
| 239 | + | err = true; | |
| 239 | 240 | break; | |
| 240 | 241 | } | |
| 241 | 242 | ||
| @@ -272,7 +273,7 @@ int img_load_gif(img_t *img, const fileinfo_t *file) { | |||
| 272 | 273 | imlib_context_set_image(img->multi.frames[0].im); | |
| 273 | 274 | imlib_free_image(); | |
| 274 | 275 | img->multi.cnt = 0; | |
| 275 | − | img->multi.animate = 0; | |
| 276 | + | img->multi.animate = false; | |
| 276 | 277 | } | |
| 277 | 278 | ||
| 278 | 279 | imlib_context_set_image(img->im); | |
| @@ -281,15 +282,15 @@ int img_load_gif(img_t *img, const fileinfo_t *file) { | |||
| 281 | 282 | } | |
| 282 | 283 | #endif /* GIF_SUPPORT */ | |
| 283 | 284 | ||
| 284 | − | int img_load(img_t *img, const fileinfo_t *file) { | |
| 285 | + | bool img_load(img_t *img, const fileinfo_t *file) { | |
| 285 | 286 | const char *fmt; | |
| 286 | 287 | ||
| 287 | 288 | if (!img || !file || !file->name || !file->path) | |
| 288 | − | return 0; | |
| 289 | + | return false; | |
| 289 | 290 | ||
| 290 | 291 | if (access(file->path, R_OK) || !(img->im = imlib_load_image(file->path))) { | |
| 291 | 292 | warn("could not open image: %s", file->name); | |
| 292 | − | return 0; | |
| 293 | + | return false; | |
| 293 | 294 | } | |
| 294 | 295 | ||
| 295 | 296 | imlib_context_set_image(img->im); | |
| @@ -310,17 +311,17 @@ int img_load(img_t *img, const fileinfo_t *file) { | |||
| 310 | 311 | #endif | |
| 311 | 312 | ||
| 312 | 313 | img->scalemode = options->scalemode; | |
| 313 | − | img->re = 0; | |
| 314 | − | img->checkpan = 0; | |
| 314 | + | img->re = false; | |
| 315 | + | img->checkpan = false; | |
| 316 | + | img->dirty = true; | |
| 315 | 317 | ||
| 316 | 318 | img->w = imlib_image_get_width(); | |
| 317 | 319 | img->h = imlib_image_get_height(); | |
| 318 | 320 | ||
| 319 | − | img->dirty = 1; | |
| 320 | − | return 1; | |
| 321 | + | return true; | |
| 321 | 322 | } | |
| 322 | 323 | ||
| 323 | − | void img_close(img_t *img, int decache) { | |
| 324 | + | void img_close(img_t *img, bool decache) { | |
| 324 | 325 | int i; | |
| 325 | 326 | ||
| 326 | 327 | if (!img) | |
| @@ -343,7 +344,7 @@ void img_close(img_t *img, int decache) { | |||
| 343 | 344 | } | |
| 344 | 345 | } | |
| 345 | 346 | ||
| 346 | − | void img_check_pan(img_t *img, win_t *win, int moved) { | |
| 347 | + | void img_check_pan(img_t *img, win_t *win, bool moved) { | |
| 347 | 348 | int ox, oy; | |
| 348 | 349 | ||
| 349 | 350 | if (!img || !win) | |
| @@ -370,14 +371,14 @@ void img_check_pan(img_t *img, win_t *win, int moved) { | |||
| 370 | 371 | } | |
| 371 | 372 | ||
| 372 | 373 | if (!moved && (ox != img->x || oy != img->y)) | |
| 373 | − | img->dirty = 1; | |
| 374 | + | img->dirty = true; | |
| 374 | 375 | } | |
| 375 | 376 | ||
| 376 | − | int img_fit(img_t *img, win_t *win) { | |
| 377 | + | bool img_fit(img_t *img, win_t *win) { | |
| 377 | 378 | float z, zmax, zw, zh; | |
| 378 | 379 | ||
| 379 | 380 | if (!img || !win || img->scalemode == SCALE_ZOOM) | |
| 380 | − | return 0; | |
| 381 | + | return false; | |
| 381 | 382 | ||
| 382 | 383 | zmax = img->scalemode == SCALE_DOWN ? 1.0 : zoom_max; | |
| 383 | 384 | zw = (float) win->w / (float) img->w; | |
| @@ -389,10 +390,10 @@ int img_fit(img_t *img, win_t *win) { | |||
| 389 | 390 | ||
| 390 | 391 | if (ZOOMDIFF(z, img->zoom)) { | |
| 391 | 392 | img->zoom = z; | |
| 392 | − | img->dirty = 1; | |
| 393 | − | return 1; | |
| 393 | + | img->dirty = true; | |
| 394 | + | return true; | |
| 394 | 395 | } else { | |
| 395 | − | return 0; | |
| 396 | + | return false; | |
| 396 | 397 | } | |
| 397 | 398 | } | |
| 398 | 399 | ||
| @@ -407,7 +408,7 @@ void img_render(img_t *img, win_t *win) { | |||
| 407 | 408 | ||
| 408 | 409 | if (!img->re) { | |
| 409 | 410 | /* rendered for the first time */ | |
| 410 | − | img->re = 1; | |
| 411 | + | img->re = true; | |
| 411 | 412 | if (img->zoom * img->w <= win->w) | |
| 412 | 413 | img->x = (win->w - img->w * img->zoom) / 2; | |
| 413 | 414 | else | |
| @@ -419,8 +420,8 @@ void img_render(img_t *img, win_t *win) { | |||
| 419 | 420 | } | |
| 420 | 421 | ||
| 421 | 422 | if (img->checkpan) { | |
| 422 | − | img_check_pan(img, win, 0); | |
| 423 | − | img->checkpan = 0; | |
| 423 | + | img_check_pan(img, win, false); | |
| 424 | + | img->checkpan = false; | |
| 424 | 425 | } | |
| 425 | 426 | ||
| 426 | 427 | if (!img->dirty) | |
| @@ -462,22 +463,22 @@ void img_render(img_t *img, win_t *win) { | |||
| 462 | 463 | ||
| 463 | 464 | win_draw(win); | |
| 464 | 465 | ||
| 465 | − | img->dirty = 0; | |
| 466 | + | img->dirty = false; | |
| 466 | 467 | } | |
| 467 | 468 | ||
| 468 | − | int img_fit_win(img_t *img, win_t *win) { | |
| 469 | + | bool img_fit_win(img_t *img, win_t *win) { | |
| 469 | 470 | if (!img || !img->im || !win) | |
| 470 | − | return 0; | |
| 471 | + | return false; | |
| 471 | 472 | ||
| 472 | 473 | img->scalemode = SCALE_FIT; | |
| 473 | 474 | return img_fit(img, win); | |
| 474 | 475 | } | |
| 475 | 476 | ||
| 476 | − | int img_center(img_t *img, win_t *win) { | |
| 477 | + | bool img_center(img_t *img, win_t *win) { | |
| 477 | 478 | int ox, oy; | |
| 478 | 479 | ||
| 479 | 480 | if (!img || !win) | |
| 480 | − | return 0; | |
| 481 | + | return false; | |
| 481 | 482 | ||
| 482 | 483 | ox = img->x; | |
| 483 | 484 | oy = img->y; | |
| @@ -486,16 +487,16 @@ int img_center(img_t *img, win_t *win) { | |||
| 486 | 487 | img->y = (win->h - img->h * img->zoom) / 2; | |
| 487 | 488 | ||
| 488 | 489 | if (ox != img->x || oy != img->y) { | |
| 489 | − | img->dirty = 1; | |
| 490 | − | return 1; | |
| 490 | + | img->dirty = true; | |
| 491 | + | return true; | |
| 491 | 492 | } else { | |
| 492 | − | return 0; | |
| 493 | + | return false; | |
| 493 | 494 | } | |
| 494 | 495 | } | |
| 495 | 496 | ||
| 496 | − | int img_zoom(img_t *img, win_t *win, float z) { | |
| 497 | + | bool img_zoom(img_t *img, win_t *win, float z) { | |
| 497 | 498 | if (!img || !img->im || !win) | |
| 498 | − | return 0; | |
| 499 | + | return false; | |
| 499 | 500 | ||
| 500 | 501 | z = MAX(z, zoom_min); | |
| 501 | 502 | z = MIN(z, zoom_max); | |
| @@ -506,45 +507,45 @@ int img_zoom(img_t *img, win_t *win, float z) { | |||
| 506 | 507 | img->x = win->w / 2 - (win->w / 2 - img->x) * z / img->zoom; | |
| 507 | 508 | img->y = win->h / 2 - (win->h / 2 - img->y) * z / img->zoom; | |
| 508 | 509 | img->zoom = z; | |
| 509 | − | img->checkpan = 1; | |
| 510 | − | img->dirty = 1; | |
| 511 | − | return 1; | |
| 510 | + | img->checkpan = true; | |
| 511 | + | img->dirty = true; | |
| 512 | + | return true; | |
| 512 | 513 | } else { | |
| 513 | − | return 0; | |
| 514 | + | return false; | |
| 514 | 515 | } | |
| 515 | 516 | } | |
| 516 | 517 | ||
| 517 | − | int img_zoom_in(img_t *img, win_t *win) { | |
| 518 | + | bool img_zoom_in(img_t *img, win_t *win) { | |
| 518 | 519 | int i; | |
| 519 | 520 | ||
| 520 | 521 | if (!img || !img->im || !win) | |
| 521 | − | return 0; | |
| 522 | + | return false; | |
| 522 | 523 | ||
| 523 | 524 | for (i = 1; i < ARRLEN(zoom_levels); i++) { | |
| 524 | 525 | if (zoom_levels[i] > img->zoom * 100.0) | |
| 525 | 526 | return img_zoom(img, win, zoom_levels[i] / 100.0); | |
| 526 | 527 | } | |
| 527 | − | return 0; | |
| 528 | + | return false; | |
| 528 | 529 | } | |
| 529 | 530 | ||
| 530 | − | int img_zoom_out(img_t *img, win_t *win) { | |
| 531 | + | bool img_zoom_out(img_t *img, win_t *win) { | |
| 531 | 532 | int i; | |
| 532 | 533 | ||
| 533 | 534 | if (!img || !img->im || !win) | |
| 534 | − | return 0; | |
| 535 | + | return false; | |
| 535 | 536 | ||
| 536 | 537 | for (i = ARRLEN(zoom_levels) - 2; i >= 0; i--) { | |
| 537 | 538 | if (zoom_levels[i] < img->zoom * 100.0) | |
| 538 | 539 | return img_zoom(img, win, zoom_levels[i] / 100.0); | |
| 539 | 540 | } | |
| 540 | − | return 0; | |
| 541 | + | return false; | |
| 541 | 542 | } | |
| 542 | 543 | ||
| 543 | − | int img_move(img_t *img, win_t *win, int dx, int dy) { | |
| 544 | + | bool img_move(img_t *img, win_t *win, int dx, int dy) { | |
| 544 | 545 | int ox, oy; | |
| 545 | 546 | ||
| 546 | 547 | if (!img || !img->im || !win) | |
| 547 | − | return 0; | |
| 548 | + | return false; | |
| 548 | 549 | ||
| 549 | 550 | ox = img->x; | |
| 550 | 551 | oy = img->y; | |
| @@ -552,19 +553,19 @@ int img_move(img_t *img, win_t *win, int dx, int dy) { | |||
| 552 | 553 | img->x += dx; | |
| 553 | 554 | img->y += dy; | |
| 554 | 555 | ||
| 555 | − | img_check_pan(img, win, 1); | |
| 556 | + | img_check_pan(img, win, true); | |
| 556 | 557 | ||
| 557 | 558 | if (ox != img->x || oy != img->y) { | |
| 558 | − | img->dirty = 1; | |
| 559 | − | return 1; | |
| 559 | + | img->dirty = true; | |
| 560 | + | return true; | |
| 560 | 561 | } else { | |
| 561 | − | return 0; | |
| 562 | + | return false; | |
| 562 | 563 | } | |
| 563 | 564 | } | |
| 564 | 565 | ||
| 565 | − | int img_pan(img_t *img, win_t *win, direction_t dir, int screen) { | |
| 566 | + | bool img_pan(img_t *img, win_t *win, direction_t dir, bool screen) { | |
| 566 | 567 | if (!img || !img->im || !win) | |
| 567 | − | return 0; | |
| 568 | + | return false; | |
| 568 | 569 | ||
| 569 | 570 | switch (dir) { | |
| 570 | 571 | case DIR_LEFT: | |
| @@ -576,14 +577,14 @@ int img_pan(img_t *img, win_t *win, direction_t dir, int screen) { | |||
| 576 | 577 | case DIR_DOWN: | |
| 577 | 578 | return img_move(img, win, 0, win->h / (screen ? 1 : 5) * -1); | |
| 578 | 579 | } | |
| 579 | − | return 0; | |
| 580 | + | return false; | |
| 580 | 581 | } | |
| 581 | 582 | ||
| 582 | − | int img_pan_edge(img_t *img, win_t *win, direction_t dir) { | |
| 583 | + | bool img_pan_edge(img_t *img, win_t *win, direction_t dir) { | |
| 583 | 584 | int ox, oy; | |
| 584 | 585 | ||
| 585 | 586 | if (!img || !img->im || !win) | |
| 586 | − | return 0; | |
| 587 | + | return false; | |
| 587 | 588 | ||
| 588 | 589 | ox = img->x; | |
| 589 | 590 | oy = img->y; | |
| @@ -603,13 +604,13 @@ int img_pan_edge(img_t *img, win_t *win, direction_t dir) { | |||
| 603 | 604 | break; | |
| 604 | 605 | } | |
| 605 | 606 | ||
| 606 | − | img_check_pan(img, win, 1); | |
| 607 | + | img_check_pan(img, win, true); | |
| 607 | 608 | ||
| 608 | 609 | if (ox != img->x || oy != img->y) { | |
| 609 | − | img->dirty = 1; | |
| 610 | − | return 1; | |
| 610 | + | img->dirty = true; | |
| 611 | + | return true; | |
| 611 | 612 | } else { | |
| 612 | − | return 0; | |
| 613 | + | return false; | |
| 613 | 614 | } | |
| 614 | 615 | } | |
| 615 | 616 | ||
| @@ -632,8 +633,8 @@ void img_rotate(img_t *img, win_t *win, int d) { | |||
| 632 | 633 | img->w = img->h; | |
| 633 | 634 | img->h = tmp; | |
| 634 | 635 | ||
| 635 | − | img->checkpan = 1; | |
| 636 | − | img->dirty = 1; | |
| 636 | + | img->checkpan = true; | |
| 637 | + | img->dirty = true; | |
| 637 | 638 | } | |
| 638 | 639 | ||
| 639 | 640 | void img_rotate_left(img_t *img, win_t *win) { | |
| @@ -648,18 +649,18 @@ void img_toggle_antialias(img_t *img) { | |||
| 648 | 649 | if (!img || !img->im) | |
| 649 | 650 | return; | |
| 650 | 651 | ||
| 651 | − | img->aa ^= 1; | |
| 652 | + | img->aa = !img->aa; | |
| 652 | 653 | imlib_context_set_image(img->im); | |
| 653 | 654 | imlib_context_set_anti_alias(img->aa); | |
| 654 | − | img->dirty = 1; | |
| 655 | + | img->dirty = true; | |
| 655 | 656 | } | |
| 656 | 657 | ||
| 657 | − | int img_frame_goto(img_t *img, int n) { | |
| 658 | + | bool img_frame_goto(img_t *img, int n) { | |
| 658 | 659 | if (!img || n < 0 || n >= img->multi.cnt) | |
| 659 | − | return 0; | |
| 660 | + | return false; | |
| 660 | 661 | ||
| 661 | 662 | if (n == img->multi.sel) | |
| 662 | − | return 0; | |
| 663 | + | return false; | |
| 663 | 664 | ||
| 664 | 665 | img->multi.sel = n; | |
| 665 | 666 | img->im = img->multi.frames[n].im; | |
| @@ -667,15 +668,15 @@ int img_frame_goto(img_t *img, int n) { | |||
| 667 | 668 | imlib_context_set_image(img->im); | |
| 668 | 669 | img->w = imlib_image_get_width(); | |
| 669 | 670 | img->h = imlib_image_get_height(); | |
| 670 | − | img->checkpan = 1; | |
| 671 | − | img->dirty = 1; | |
| 671 | + | img->checkpan = true; | |
| 672 | + | img->dirty = true; | |
| 672 | 673 | ||
| 673 | − | return 1; | |
| 674 | + | return true; | |
| 674 | 675 | } | |
| 675 | 676 | ||
| 676 | − | int img_frame_navigate(img_t *img, int d) { | |
| 677 | + | bool img_frame_navigate(img_t *img, int d) { | |
| 677 | 678 | if (!img || !img->multi.cnt || !d) | |
| 678 | − | return 0; | |
| 679 | + | return false; | |
| 679 | 680 | ||
| 680 | 681 | d += img->multi.sel; | |
| 681 | 682 | if (d < 0) | |
| @@ -686,22 +687,22 @@ int img_frame_navigate(img_t *img, int d) { | |||
| 686 | 687 | return img_frame_goto(img, d); | |
| 687 | 688 | } | |
| 688 | 689 | ||
| 689 | − | int img_frame_animate(img_t *img, int restart) { | |
| 690 | + | bool img_frame_animate(img_t *img, bool restart) { | |
| 690 | 691 | if (!img || !img->multi.cnt) | |
| 691 | − | return 0; | |
| 692 | + | return false; | |
| 692 | 693 | ||
| 693 | 694 | if (img->multi.sel + 1 >= img->multi.cnt) { | |
| 694 | 695 | if (restart || (GIF_LOOP && !img->slideshow)) { | |
| 695 | 696 | img_frame_goto(img, 0); | |
| 696 | 697 | } else { | |
| 697 | − | img->multi.animate = 0; | |
| 698 | − | return 0; | |
| 698 | + | img->multi.animate = false; | |
| 699 | + | return false; | |
| 699 | 700 | } | |
| 700 | 701 | } else if (!restart) { | |
| 701 | 702 | img_frame_goto(img, img->multi.sel + 1); | |
| 702 | 703 | } | |
| 703 | − | img->multi.animate = 1; | |
| 704 | + | img->multi.animate = true; | |
| 705 | + | img->dirty = true; | |
| 704 | 706 | ||
| 705 | − | img->dirty = 1; | |
| 706 | − | return img->multi.frames[img->multi.sel].delay; | |
| 707 | + | return true; | |
| 707 | 708 | } | |
| @@ -34,7 +34,7 @@ typedef struct { | |||
| 34 | 34 | int cap; | |
| 35 | 35 | int cnt; | |
| 36 | 36 | int sel; | |
| 37 | − | unsigned char animate; | |
| 37 | + | bool animate; | |
| 38 | 38 | } multi_img_t; | |
| 39 | 39 | ||
| 40 | 40 | typedef struct { | |
| @@ -44,13 +44,13 @@ typedef struct { | |||
| 44 | 44 | float zoom; | |
| 45 | 45 | scalemode_t scalemode; | |
| 46 | 46 | ||
| 47 | − | unsigned char re; | |
| 48 | − | unsigned char checkpan; | |
| 49 | − | unsigned char dirty; | |
| 50 | − | unsigned char aa; | |
| 51 | − | unsigned char alpha; | |
| 47 | + | bool re; | |
| 48 | + | bool checkpan; | |
| 49 | + | bool dirty; | |
| 50 | + | bool aa; | |
| 51 | + | bool alpha; | |
| 52 | 52 | ||
| 53 | − | unsigned char slideshow; | |
| 53 | + | bool slideshow; | |
| 54 | 54 | int ss_delay; /* in ms */ | |
| 55 | 55 | ||
| 56 | 56 | int x; | |
| @@ -61,28 +61,28 @@ typedef struct { | |||
| 61 | 61 | ||
| 62 | 62 | void img_init(img_t*, win_t*); | |
| 63 | 63 | ||
| 64 | − | int img_load(img_t*, const fileinfo_t*); | |
| 65 | − | void img_close(img_t*, int); | |
| 64 | + | bool img_load(img_t*, const fileinfo_t*); | |
| 65 | + | void img_close(img_t*, bool); | |
| 66 | 66 | ||
| 67 | 67 | void img_render(img_t*, win_t*); | |
| 68 | 68 | ||
| 69 | − | int img_fit_win(img_t*, win_t*); | |
| 70 | − | int img_center(img_t*, win_t*); | |
| 69 | + | bool img_fit_win(img_t*, win_t*); | |
| 70 | + | bool img_center(img_t*, win_t*); | |
| 71 | 71 | ||
| 72 | − | int img_zoom(img_t*, win_t*, float); | |
| 73 | − | int img_zoom_in(img_t*, win_t*); | |
| 74 | − | int img_zoom_out(img_t*, win_t*); | |
| 72 | + | bool img_zoom(img_t*, win_t*, float); | |
| 73 | + | bool img_zoom_in(img_t*, win_t*); | |
| 74 | + | bool img_zoom_out(img_t*, win_t*); | |
| 75 | 75 | ||
| 76 | − | int img_move(img_t*, win_t*, int, int); | |
| 77 | − | int img_pan(img_t*, win_t*, direction_t, int); | |
| 78 | − | int img_pan_edge(img_t*, win_t*, direction_t); | |
| 76 | + | bool img_move(img_t*, win_t*, int, int); | |
| 77 | + | bool img_pan(img_t*, win_t*, direction_t, bool); | |
| 78 | + | bool img_pan_edge(img_t*, win_t*, direction_t); | |
| 79 | 79 | ||
| 80 | 80 | void img_rotate_left(img_t*, win_t*); | |
| 81 | 81 | void img_rotate_right(img_t*, win_t*); | |
| 82 | 82 | ||
| 83 | 83 | void img_toggle_antialias(img_t*); | |
| 84 | 84 | ||
| 85 | − | int img_frame_navigate(img_t*, int); | |
| 86 | − | int img_frame_animate(img_t*, int); | |
| 85 | + | bool img_frame_navigate(img_t*, int); | |
| 86 | + | bool img_frame_animate(img_t*, bool); | |
| 87 | 87 | ||
| 88 | 88 | #endif /* IMAGE_H */ | |
| @@ -17,6 +17,7 @@ | |||
| 17 | 17 | */ | |
| 18 | 18 | ||
| 19 | 19 | #define _POSIX_C_SOURCE 200112L | |
| 20 | + | #define _MAPPINGS_CONFIG | |
| 20 | 21 | ||
| 21 | 22 | #include <stdlib.h> | |
| 22 | 23 | #include <stdio.h> | |
| @@ -34,8 +35,6 @@ | |||
| 34 | 35 | #include "types.h" | |
| 35 | 36 | #include "util.h" | |
| 36 | 37 | #include "window.h" | |
| 37 | − | ||
| 38 | − | #define _MAPPINGS_CONFIG | |
| 39 | 38 | #include "config.h" | |
| 40 | 39 | ||
| 41 | 40 | enum { | |
| @@ -45,7 +44,7 @@ enum { | |||
| 45 | 44 | ||
| 46 | 45 | typedef struct { | |
| 47 | 46 | struct timeval when; | |
| 48 | − | Bool active; | |
| 47 | + | bool active; | |
| 49 | 48 | timeout_f handler; | |
| 50 | 49 | } timeout_t; | |
| 51 | 50 | ||
| @@ -67,17 +66,17 @@ size_t filesize; | |||
| 67 | 66 | char win_title[TITLE_LEN]; | |
| 68 | 67 | ||
| 69 | 68 | timeout_t timeouts[] = { | |
| 70 | − | { { 0, 0 }, False, redraw }, | |
| 71 | − | { { 0, 0 }, False, reset_cursor }, | |
| 72 | − | { { 0, 0 }, False, animate }, | |
| 73 | − | { { 0, 0 }, False, slideshow }, | |
| 69 | + | { { 0, 0 }, false, redraw }, | |
| 70 | + | { { 0, 0 }, false, reset_cursor }, | |
| 71 | + | { { 0, 0 }, false, animate }, | |
| 72 | + | { { 0, 0 }, false, slideshow }, | |
| 74 | 73 | }; | |
| 75 | 74 | ||
| 76 | 75 | void cleanup() { | |
| 77 | 76 | static int in = 0; | |
| 78 | 77 | ||
| 79 | 78 | if (!in++) { | |
| 80 | − | img_close(&img, 0); | |
| 79 | + | img_close(&img, false); | |
| 81 | 80 | tns_free(&tns); | |
| 82 | 81 | win_close(&win); | |
| 83 | 82 | } | |
| @@ -103,14 +102,14 @@ void check_add_file(char *filename) { | |||
| 103 | 102 | return; | |
| 104 | 103 | } | |
| 105 | 104 | } | |
| 106 | − | files[fileidx].loaded = 0; | |
| 105 | + | files[fileidx].loaded = false; | |
| 107 | 106 | files[fileidx].name = s_strdup(filename); | |
| 108 | 107 | if (*filename == '/') | |
| 109 | 108 | files[fileidx].path = files[fileidx].name; | |
| 110 | 109 | fileidx++; | |
| 111 | 110 | } | |
| 112 | 111 | ||
| 113 | − | void remove_file(int n, unsigned char silent) { | |
| 112 | + | void remove_file(int n, bool silent) { | |
| 114 | 113 | if (n < 0 || n >= filecnt) | |
| 115 | 114 | return; | |
| 116 | 115 | ||
| @@ -138,7 +137,7 @@ void remove_file(int n, unsigned char silent) { | |||
| 138 | 137 | tns.cnt--; | |
| 139 | 138 | } | |
| 140 | 139 | ||
| 141 | − | void set_timeout(timeout_f handler, int time, int overwrite) { | |
| 140 | + | void set_timeout(timeout_f handler, int time, bool overwrite) { | |
| 142 | 141 | int i; | |
| 143 | 142 | ||
| 144 | 143 | for (i = 0; i < ARRLEN(timeouts); i++) { | |
| @@ -146,7 +145,7 @@ void set_timeout(timeout_f handler, int time, int overwrite) { | |||
| 146 | 145 | if (!timeouts[i].active || overwrite) { | |
| 147 | 146 | gettimeofday(&timeouts[i].when, 0); | |
| 148 | 147 | MSEC_ADD_TO_TIMEVAL(time, &timeouts[i].when); | |
| 149 | − | timeouts[i].active = True; | |
| 148 | + | timeouts[i].active = true; | |
| 150 | 149 | } | |
| 151 | 150 | return; | |
| 152 | 151 | } | |
| @@ -158,13 +157,13 @@ void reset_timeout(timeout_f handler) { | |||
| 158 | 157 | ||
| 159 | 158 | for (i = 0; i < ARRLEN(timeouts); i++) { | |
| 160 | 159 | if (timeouts[i].handler == handler) { | |
| 161 | − | timeouts[i].active = False; | |
| 160 | + | timeouts[i].active = false; | |
| 162 | 161 | return; | |
| 163 | 162 | } | |
| 164 | 163 | } | |
| 165 | 164 | } | |
| 166 | 165 | ||
| 167 | − | int check_timeouts(struct timeval *t) { | |
| 166 | + | bool check_timeouts(struct timeval *t) { | |
| 168 | 167 | int i = 0, tdiff, tmin = -1; | |
| 169 | 168 | struct timeval now; | |
| 170 | 169 | ||
| @@ -173,7 +172,7 @@ int check_timeouts(struct timeval *t) { | |||
| 173 | 172 | if (timeouts[i].active) { | |
| 174 | 173 | tdiff = TIMEDIFF(&timeouts[i].when, &now); | |
| 175 | 174 | if (tdiff <= 0) { | |
| 176 | − | timeouts[i].active = False; | |
| 175 | + | timeouts[i].active = false; | |
| 177 | 176 | if (timeouts[i].handler) | |
| 178 | 177 | timeouts[i].handler(); | |
| 179 | 178 | i = tmin = -1; | |
| @@ -196,14 +195,14 @@ void load_image(int new) { | |||
| 196 | 195 | ||
| 197 | 196 | win_set_cursor(&win, CURSOR_WATCH); | |
| 198 | 197 | ||
| 199 | − | img_close(&img, 0); | |
| 198 | + | img_close(&img, false); | |
| 200 | 199 | while (!img_load(&img, &files[new])) { | |
| 201 | − | remove_file(new, 0); | |
| 200 | + | remove_file(new, false); | |
| 202 | 201 | if (new >= filecnt) | |
| 203 | 202 | new = filecnt - 1; | |
| 204 | 203 | } | |
| 205 | 204 | ||
| 206 | − | files[new].loaded = 1; | |
| 205 | + | files[new].loaded = true; | |
| 207 | 206 | fileidx = new; | |
| 208 | 207 | if (!stat(files[new].path, &fstats)) | |
| 209 | 208 | filesize = fstats.st_size; | |
| @@ -211,7 +210,7 @@ void load_image(int new) { | |||
| 211 | 210 | filesize = 0; | |
| 212 | 211 | ||
| 213 | 212 | if (img.multi.cnt && img.multi.animate) | |
| 214 | − | set_timeout(animate, img.multi.frames[img.multi.sel].delay, 1); | |
| 213 | + | set_timeout(animate, img.multi.frames[img.multi.sel].delay, true); | |
| 215 | 214 | else | |
| 216 | 215 | reset_timeout(animate); | |
| 217 | 216 | } | |
| @@ -265,9 +264,9 @@ void redraw() { | |||
| 265 | 264 | img_render(&img, &win); | |
| 266 | 265 | if (img.slideshow && !img.multi.animate) { | |
| 267 | 266 | if (fileidx + 1 < filecnt) | |
| 268 | − | set_timeout(slideshow, img.ss_delay, 1); | |
| 267 | + | set_timeout(slideshow, img.ss_delay, true); | |
| 269 | 268 | else | |
| 270 | − | img.slideshow = 0; | |
| 269 | + | img.slideshow = false; | |
| 271 | 270 | } | |
| 272 | 271 | } else { | |
| 273 | 272 | tns_render(&tns, &win); | |
| @@ -299,12 +298,10 @@ void reset_cursor() { | |||
| 299 | 298 | } | |
| 300 | 299 | ||
| 301 | 300 | void animate() { | |
| 302 | − | int delay; | |
| 303 | − | ||
| 304 | − | delay = img_frame_animate(&img, 0); | |
| 305 | − | redraw(); | |
| 306 | − | if (delay) | |
| 307 | − | set_timeout(animate, delay, 1); | |
| 301 | + | if (img_frame_animate(&img, false)) { | |
| 302 | + | redraw(); | |
| 303 | + | set_timeout(animate, img.multi.frames[img.multi.sel].delay, true); | |
| 304 | + | } | |
| 308 | 305 | } | |
| 309 | 306 | ||
| 310 | 307 | void slideshow() { | |
| @@ -313,16 +310,16 @@ void slideshow() { | |||
| 313 | 310 | load_image(fileidx + 1); | |
| 314 | 311 | redraw(); | |
| 315 | 312 | } else { | |
| 316 | − | img.slideshow = 0; | |
| 313 | + | img.slideshow = false; | |
| 317 | 314 | } | |
| 318 | 315 | } | |
| 319 | 316 | } | |
| 320 | 317 | ||
| 321 | − | Bool keymask(const keymap_t *k, unsigned int state) { | |
| 318 | + | bool keymask(const keymap_t *k, unsigned int state) { | |
| 322 | 319 | return (k->ctrl ? ControlMask : 0) == (state & ControlMask); | |
| 323 | 320 | } | |
| 324 | 321 | ||
| 325 | − | Bool buttonmask(const button_t *b, unsigned int state) { | |
| 322 | + | bool buttonmask(const button_t *b, unsigned int state) { | |
| 326 | 323 | return ((b->ctrl ? ControlMask : 0) | (b->shift ? ShiftMask : 0)) == | |
| 327 | 324 | (state & (ControlMask | ShiftMask)); | |
| 328 | 325 | } | |
| @@ -354,7 +351,7 @@ void on_buttonpress(XButtonEvent *bev) { | |||
| 354 | 351 | ||
| 355 | 352 | if (mode == MODE_IMAGE) { | |
| 356 | 353 | win_set_cursor(&win, CURSOR_ARROW); | |
| 357 | − | set_timeout(reset_cursor, TO_CURSOR_HIDE, 1); | |
| 354 | + | set_timeout(reset_cursor, TO_CURSOR_HIDE, true); | |
| 358 | 355 | ||
| 359 | 356 | for (i = 0; i < ARRLEN(buttons); i++) { | |
| 360 | 357 | if (buttons[i].button == bev->button && | |
| @@ -372,11 +369,11 @@ void on_buttonpress(XButtonEvent *bev) { | |||
| 372 | 369 | if ((sel = tns_translate(&tns, bev->x, bev->y)) >= 0) { | |
| 373 | 370 | if (sel == tns.sel) { | |
| 374 | 371 | mode = MODE_IMAGE; | |
| 375 | − | set_timeout(reset_cursor, TO_CURSOR_HIDE, 1); | |
| 372 | + | set_timeout(reset_cursor, TO_CURSOR_HIDE, true); | |
| 376 | 373 | load_image(tns.sel); | |
| 377 | 374 | } else { | |
| 378 | − | tns_highlight(&tns, &win, tns.sel, False); | |
| 379 | − | tns_highlight(&tns, &win, sel, True); | |
| 375 | + | tns_highlight(&tns, &win, tns.sel, false); | |
| 376 | + | tns_highlight(&tns, &win, sel, true); | |
| 380 | 377 | tns.sel = sel; | |
| 381 | 378 | } | |
| 382 | 379 | redraw(); | |
| @@ -405,11 +402,11 @@ void run() { | |||
| 405 | 402 | !XPending(win.env.dpy)) | |
| 406 | 403 | { | |
| 407 | 404 | /* load thumbnails */ | |
| 408 | − | set_timeout(redraw, TO_REDRAW_THUMBS, 0); | |
| 409 | − | if (tns_load(&tns, tns.cnt, &files[tns.cnt], False, False)) | |
| 405 | + | set_timeout(redraw, TO_REDRAW_THUMBS, false); | |
| 406 | + | if (tns_load(&tns, tns.cnt, &files[tns.cnt], false, false)) | |
| 410 | 407 | tns.cnt++; | |
| 411 | 408 | else | |
| 412 | − | remove_file(tns.cnt, 0); | |
| 409 | + | remove_file(tns.cnt, false); | |
| 413 | 410 | if (tns.cnt == filecnt) | |
| 414 | 411 | redraw(); | |
| 415 | 412 | else | |
| @@ -436,11 +433,11 @@ void run() { | |||
| 436 | 433 | break; | |
| 437 | 434 | case ConfigureNotify: | |
| 438 | 435 | if (win_configure(&win, &ev.xconfigure)) { | |
| 439 | − | set_timeout(redraw, TO_REDRAW_RESIZE, 0); | |
| 436 | + | set_timeout(redraw, TO_REDRAW_RESIZE, false); | |
| 440 | 437 | if (mode == MODE_IMAGE) | |
| 441 | − | img.checkpan = 1; | |
| 438 | + | img.checkpan = true; | |
| 442 | 439 | else | |
| 443 | − | tns.dirty = 1; | |
| 440 | + | tns.dirty = true; | |
| 444 | 441 | } | |
| 445 | 442 | break; | |
| 446 | 443 | case KeyPress: | |
| @@ -449,7 +446,7 @@ void run() { | |||
| 449 | 446 | case MotionNotify: | |
| 450 | 447 | if (mode == MODE_IMAGE) { | |
| 451 | 448 | win_set_cursor(&win, CURSOR_ARROW); | |
| 452 | − | set_timeout(reset_cursor, TO_CURSOR_HIDE, 1); | |
| 449 | + | set_timeout(reset_cursor, TO_CURSOR_HIDE, true); | |
| 453 | 450 | } | |
| 454 | 451 | break; | |
| 455 | 452 | } | |
| @@ -539,11 +536,11 @@ int main(int argc, char **argv) { | |||
| 539 | 536 | win_init(&win); | |
| 540 | 537 | img_init(&img, &win); | |
| 541 | 538 | ||
| 542 | − | if (options->thumbnails) { | |
| 539 | + | if (options->thumb_mode) { | |
| 543 | 540 | mode = MODE_THUMB; | |
| 544 | 541 | tns_init(&tns, filecnt); | |
| 545 | − | while (!tns_load(&tns, 0, &files[0], False, False)) | |
| 546 | − | remove_file(0, 0); | |
| 542 | + | while (!tns_load(&tns, 0, &files[0], false, false)) | |
| 543 | + | remove_file(0, false); | |
| 547 | 544 | tns.cnt = 1; | |
| 548 | 545 | } else { | |
| 549 | 546 | mode = MODE_IMAGE; | |
| @@ -17,6 +17,7 @@ | |||
| 17 | 17 | */ | |
| 18 | 18 | ||
| 19 | 19 | #define _POSIX_C_SOURCE 200112L | |
| 20 | + | #define _IMAGE_CONFIG | |
| 20 | 21 | ||
| 21 | 22 | #include <stdlib.h> | |
| 22 | 23 | #include <string.h> | |
| @@ -25,8 +26,6 @@ | |||
| 25 | 26 | ||
| 26 | 27 | #include "options.h" | |
| 27 | 28 | #include "util.h" | |
| 28 | − | ||
| 29 | − | #define _IMAGE_CONFIG | |
| 30 | 29 | #include "config.h" | |
| 31 | 30 | ||
| 32 | 31 | options_t _options; | |
| @@ -56,20 +55,20 @@ void print_version() { | |||
| 56 | 55 | void parse_options(int argc, char **argv) { | |
| 57 | 56 | int opt, t; | |
| 58 | 57 | ||
| 59 | − | _options.recursive = 0; | |
| 58 | + | _options.recursive = false; | |
| 60 | 59 | _options.startnum = 0; | |
| 61 | 60 | ||
| 62 | 61 | _options.scalemode = SCALE_MODE; | |
| 63 | 62 | _options.zoom = 1.0; | |
| 64 | − | _options.aa = 1; | |
| 63 | + | _options.aa = true; | |
| 65 | 64 | ||
| 66 | − | _options.fixed = 0; | |
| 67 | − | _options.fullscreen = 0; | |
| 65 | + | _options.fixed_win = false; | |
| 66 | + | _options.fullscreen = false; | |
| 68 | 67 | _options.geometry = NULL; | |
| 69 | 68 | ||
| 70 | − | _options.quiet = 0; | |
| 71 | − | _options.thumbnails = 0; | |
| 72 | − | _options.clean_cache = 0; | |
| 69 | + | _options.quiet = false; | |
| 70 | + | _options.thumb_mode = false; | |
| 71 | + | _options.clean_cache = false; | |
| 73 | 72 | ||
| 74 | 73 | while ((opt = getopt(argc, argv, "cdFfg:hn:pqrstvZz:")) != -1) { | |
| 75 | 74 | switch (opt) { | |
| @@ -77,16 +76,16 @@ void parse_options(int argc, char **argv) { | |||
| 77 | 76 | print_usage(); | |
| 78 | 77 | exit(1); | |
| 79 | 78 | case 'c': | |
| 80 | − | _options.clean_cache = 1; | |
| 79 | + | _options.clean_cache = true; | |
| 81 | 80 | break; | |
| 82 | 81 | case 'd': | |
| 83 | 82 | _options.scalemode = SCALE_DOWN; | |
| 84 | 83 | break; | |
| 85 | 84 | case 'F': | |
| 86 | − | _options.fixed = 1; | |
| 85 | + | _options.fixed_win = true; | |
| 87 | 86 | break; | |
| 88 | 87 | case 'f': | |
| 89 | − | _options.fullscreen = 1; | |
| 88 | + | _options.fullscreen = true; | |
| 90 | 89 | break; | |
| 91 | 90 | case 'g': | |
| 92 | 91 | _options.geometry = optarg; | |
| @@ -104,19 +103,19 @@ void parse_options(int argc, char **argv) { | |||
| 104 | 103 | } | |
| 105 | 104 | break; | |
| 106 | 105 | case 'p': | |
| 107 | − | _options.aa = 0; | |
| 106 | + | _options.aa = false; | |
| 108 | 107 | break; | |
| 109 | 108 | case 'q': | |
| 110 | − | _options.quiet = 1; | |
| 109 | + | _options.quiet = true; | |
| 111 | 110 | break; | |
| 112 | 111 | case 'r': | |
| 113 | − | _options.recursive = 1; | |
| 112 | + | _options.recursive = true; | |
| 114 | 113 | break; | |
| 115 | 114 | case 's': | |
| 116 | 115 | _options.scalemode = SCALE_FIT; | |
| 117 | 116 | break; | |
| 118 | 117 | case 't': | |
| 119 | − | _options.thumbnails = 1; | |
| 118 | + | _options.thumb_mode = true; | |
| 120 | 119 | break; | |
| 121 | 120 | case 'v': | |
| 122 | 121 | print_version(); | |
| @@ -140,5 +139,5 @@ void parse_options(int argc, char **argv) { | |||
| 140 | 139 | _options.filenames = argv + optind; | |
| 141 | 140 | _options.filecnt = argc - optind; | |
| 142 | 141 | _options.from_stdin = _options.filecnt == 1 && | |
| 143 | − | strcmp(_options.filenames[0], "-") == 0; | |
| 142 | + | !strcmp(_options.filenames[0], "-"); | |
| 144 | 143 | } | |
| @@ -25,25 +25,25 @@ | |||
| 25 | 25 | typedef struct { | |
| 26 | 26 | /* file list: */ | |
| 27 | 27 | char **filenames; | |
| 28 | − | unsigned char from_stdin; | |
| 29 | − | unsigned char recursive; | |
| 28 | + | bool from_stdin; | |
| 29 | + | bool recursive; | |
| 30 | 30 | int filecnt; | |
| 31 | 31 | int startnum; | |
| 32 | 32 | ||
| 33 | 33 | /* image: */ | |
| 34 | 34 | scalemode_t scalemode; | |
| 35 | 35 | float zoom; | |
| 36 | − | unsigned char aa; | |
| 36 | + | bool aa; | |
| 37 | 37 | ||
| 38 | 38 | /* window: */ | |
| 39 | − | unsigned char fixed; | |
| 40 | − | unsigned char fullscreen; | |
| 39 | + | bool fixed_win; | |
| 40 | + | bool fullscreen; | |
| 41 | 41 | char *geometry; | |
| 42 | 42 | ||
| 43 | 43 | /* misc flags: */ | |
| 44 | − | unsigned char quiet; | |
| 45 | − | unsigned char thumbnails; | |
| 46 | − | unsigned char clean_cache; | |
| 44 | + | bool quiet; | |
| 45 | + | bool thumb_mode; | |
| 46 | + | bool clean_cache; | |
| 47 | 47 | } options_t; | |
| 48 | 48 | ||
| 49 | 49 | extern const options_t *options; | |
| @@ -17,6 +17,7 @@ | |||
| 17 | 17 | */ | |
| 18 | 18 | ||
| 19 | 19 | #define _POSIX_C_SOURCE 200112L | |
| 20 | + | #define _THUMBS_CONFIG | |
| 20 | 21 | ||
| 21 | 22 | #include <stdlib.h> | |
| 22 | 23 | #include <string.h> | |
| @@ -27,8 +28,6 @@ | |||
| 27 | 28 | ||
| 28 | 29 | #include "thumbs.h" | |
| 29 | 30 | #include "util.h" | |
| 30 | − | ||
| 31 | − | #define _THUMBS_CONFIG | |
| 32 | 31 | #include "config.h" | |
| 33 | 32 | ||
| 34 | 33 | #ifdef EXIF_SUPPORT | |
| @@ -38,7 +37,7 @@ void exif_auto_orientate(const fileinfo_t*); | |||
| 38 | 37 | const int thumb_dim = THUMB_SIZE + 10; | |
| 39 | 38 | char *cache_dir = NULL; | |
| 40 | 39 | ||
| 41 | − | int tns_cache_enabled() { | |
| 40 | + | bool tns_cache_enabled() { | |
| 42 | 41 | struct stat stats; | |
| 43 | 42 | ||
| 44 | 43 | return cache_dir && !stat(cache_dir, &stats) && S_ISDIR(stats.st_mode) && | |
| @@ -81,7 +80,7 @@ Imlib_Image* tns_cache_load(const char *filepath) { | |||
| 81 | 80 | return im; | |
| 82 | 81 | } | |
| 83 | 82 | ||
| 84 | − | void tns_cache_write(thumb_t *t, Bool force) { | |
| 83 | + | void tns_cache_write(thumb_t *t, bool force) { | |
| 85 | 84 | char *cfile, *dirend; | |
| 86 | 85 | struct stat cstats, fstats; | |
| 87 | 86 | struct utimbuf times; | |
| @@ -120,7 +119,8 @@ void tns_cache_write(thumb_t *t, Bool force) { | |||
| 120 | 119 | } | |
| 121 | 120 | ||
| 122 | 121 | void tns_clean_cache(tns_t *tns) { | |
| 123 | − | int dirlen, delete; | |
| 122 | + | int dirlen; | |
| 123 | + | bool delete; | |
| 124 | 124 | char *cfile, *filename, *tpos; | |
| 125 | 125 | r_dir_t dir; | |
| 126 | 126 | ||
| @@ -136,11 +136,12 @@ void tns_clean_cache(tns_t *tns) { | |||
| 136 | 136 | ||
| 137 | 137 | while ((cfile = r_readdir(&dir))) { | |
| 138 | 138 | filename = cfile + dirlen; | |
| 139 | − | delete = 0; | |
| 139 | + | delete = false; | |
| 140 | 140 | ||
| 141 | 141 | if ((tpos = strrchr(filename, '.'))) { | |
| 142 | 142 | *tpos = '\0'; | |
| 143 | − | delete = access(filename, F_OK); | |
| 143 | + | if (access(filename, F_OK)) | |
| 144 | + | delete = true; | |
| 144 | 145 | *tpos = '.'; | |
| 145 | 146 | } | |
| 146 | 147 | ||
| @@ -170,8 +171,8 @@ void tns_init(tns_t *tns, int cnt) { | |||
| 170 | 171 | ||
| 171 | 172 | tns->cnt = tns->first = tns->sel = 0; | |
| 172 | 173 | tns->cap = cnt; | |
| 173 | − | tns->alpha = 1; | |
| 174 | − | tns->dirty = 0; | |
| 174 | + | tns->alpha = true; | |
| 175 | + | tns->dirty = false; | |
| 175 | 176 | ||
| 176 | 177 | if ((homedir = getenv("HOME"))) { | |
| 177 | 178 | if (cache_dir) | |
| @@ -207,21 +208,21 @@ void tns_free(tns_t *tns) { | |||
| 207 | 208 | } | |
| 208 | 209 | } | |
| 209 | 210 | ||
| 210 | − | int tns_load(tns_t *tns, int n, const fileinfo_t *file, | |
| 211 | − | Bool force, Bool silent) | |
| 211 | + | bool tns_load(tns_t *tns, int n, const fileinfo_t *file, | |
| 212 | + | bool force, bool silent) | |
| 212 | 213 | { | |
| 213 | 214 | int w, h; | |
| 214 | − | int use_cache, cache_hit = 0; | |
| 215 | + | bool use_cache, cache_hit = false; | |
| 215 | 216 | float z, zw, zh; | |
| 216 | 217 | thumb_t *t; | |
| 217 | 218 | Imlib_Image *im; | |
| 218 | 219 | const char *fmt; | |
| 219 | 220 | ||
| 220 | 221 | if (!tns || !tns->thumbs || !file || !file->name || !file->path) | |
| 221 | − | return 0; | |
| 222 | + | return false; | |
| 222 | 223 | ||
| 223 | 224 | if (n < 0 || n >= tns->cap) | |
| 224 | − | return 0; | |
| 225 | + | return false; | |
| 225 | 226 | ||
| 226 | 227 | t = &tns->thumbs[n]; | |
| 227 | 228 | t->file = file; | |
| @@ -233,7 +234,7 @@ int tns_load(tns_t *tns, int n, const fileinfo_t *file, | |||
| 233 | 234 | ||
| 234 | 235 | if ((use_cache = tns_cache_enabled())) { | |
| 235 | 236 | if (!force && (im = tns_cache_load(file->path))) | |
| 236 | − | cache_hit = 1; | |
| 237 | + | cache_hit = true; | |
| 237 | 238 | } | |
| 238 | 239 | ||
| 239 | 240 | if (!cache_hit && | |
| @@ -241,7 +242,7 @@ int tns_load(tns_t *tns, int n, const fileinfo_t *file, | |||
| 241 | 242 | { | |
| 242 | 243 | if (!silent) | |
| 243 | 244 | warn("could not open image: %s", file->name); | |
| 244 | − | return 0; | |
| 245 | + | return false; | |
| 245 | 246 | } | |
| 246 | 247 | ||
| 247 | 248 | imlib_context_set_image(im); | |
| @@ -270,13 +271,13 @@ int tns_load(tns_t *tns, int n, const fileinfo_t *file, | |||
| 270 | 271 | imlib_free_image_and_decache(); | |
| 271 | 272 | ||
| 272 | 273 | if (use_cache && !cache_hit) | |
| 273 | − | tns_cache_write(t, False); | |
| 274 | + | tns_cache_write(t, false); | |
| 274 | 275 | ||
| 275 | − | tns->dirty = 1; | |
| 276 | − | return 1; | |
| 276 | + | tns->dirty = true; | |
| 277 | + | return true; | |
| 277 | 278 | } | |
| 278 | 279 | ||
| 279 | − | void tns_check_view(tns_t *tns, Bool scrolled) { | |
| 280 | + | void tns_check_view(tns_t *tns, bool scrolled) { | |
| 280 | 281 | int r; | |
| 281 | 282 | ||
| 282 | 283 | if (!tns) | |
| @@ -295,10 +296,10 @@ void tns_check_view(tns_t *tns, Bool scrolled) { | |||
| 295 | 296 | /* scroll to selection */ | |
| 296 | 297 | if (tns->first + tns->cols * tns->rows <= tns->sel) { | |
| 297 | 298 | tns->first = tns->sel - r - tns->cols * (tns->rows - 1); | |
| 298 | − | tns->dirty = 1; | |
| 299 | + | tns->dirty = true; | |
| 299 | 300 | } else if (tns->first > tns->sel) { | |
| 300 | 301 | tns->first = tns->sel - r; | |
| 301 | − | tns->dirty = 1; | |
| 302 | + | tns->dirty = true; | |
| 302 | 303 | } | |
| 303 | 304 | } | |
| 304 | 305 | } | |
| @@ -323,7 +324,7 @@ void tns_render(tns_t *tns, win_t *win) { | |||
| 323 | 324 | tns->first = 0; | |
| 324 | 325 | cnt = tns->cnt; | |
| 325 | 326 | } else { | |
| 326 | − | tns_check_view(tns, False); | |
| 327 | + | tns_check_view(tns, false); | |
| 327 | 328 | cnt = tns->cols * tns->rows; | |
| 328 | 329 | if ((r = tns->first + cnt - tns->cnt) >= tns->cols) | |
| 329 | 330 | tns->first -= r - r % tns->cols; | |
| @@ -342,7 +343,7 @@ void tns_render(tns_t *tns, win_t *win) { | |||
| 342 | 343 | imlib_context_set_image(t->im); | |
| 343 | 344 | ||
| 344 | 345 | if (imlib_image_has_alpha() && !tns->alpha) | |
| 345 | − | win_draw_rect(win, win->pm, t->x, t->y, t->w, t->h, True, 0, win->white); | |
| 346 | + | win_draw_rect(win, win->pm, t->x, t->y, t->w, t->h, true, 0, win->white); | |
| 346 | 347 | ||
| 347 | 348 | imlib_render_image_part_on_drawable_at_size(0, 0, t->w, t->h, | |
| 348 | 349 | t->x, t->y, t->w, t->h); | |
| @@ -354,11 +355,11 @@ void tns_render(tns_t *tns, win_t *win) { | |||
| 354 | 355 | } | |
| 355 | 356 | } | |
| 356 | 357 | ||
| 357 | − | tns->dirty = 0; | |
| 358 | − | tns_highlight(tns, win, tns->sel, True); | |
| 358 | + | tns->dirty = false; | |
| 359 | + | tns_highlight(tns, win, tns->sel, true); | |
| 359 | 360 | } | |
| 360 | 361 | ||
| 361 | − | void tns_highlight(tns_t *tns, win_t *win, int n, Bool hl) { | |
| 362 | + | void tns_highlight(tns_t *tns, win_t *win, int n, bool hl) { | |
| 362 | 363 | thumb_t *t; | |
| 363 | 364 | int x, y; | |
| 364 | 365 | unsigned long col; | |
| @@ -379,17 +380,17 @@ void tns_highlight(tns_t *tns, win_t *win, int n, Bool hl) { | |||
| 379 | 380 | x = t->x - (THUMB_SIZE - t->w) / 2; | |
| 380 | 381 | y = t->y - (THUMB_SIZE - t->h) / 2; | |
| 381 | 382 | win_draw_rect(win, win->pm, x - 3, y - 3, THUMB_SIZE + 6, THUMB_SIZE + 6, | |
| 382 | − | False, 2, col); | |
| 383 | + | false, 2, col); | |
| 383 | 384 | } | |
| 384 | 385 | ||
| 385 | 386 | win_draw(win); | |
| 386 | 387 | } | |
| 387 | 388 | ||
| 388 | − | int tns_move_selection(tns_t *tns, win_t *win, direction_t dir) { | |
| 389 | + | bool tns_move_selection(tns_t *tns, win_t *win, direction_t dir) { | |
| 389 | 390 | int old; | |
| 390 | 391 | ||
| 391 | 392 | if (!tns || !tns->thumbs || !win) | |
| 392 | − | return 0; | |
| 393 | + | return false; | |
| 393 | 394 | ||
| 394 | 395 | old = tns->sel; | |
| 395 | 396 | ||
| @@ -413,31 +414,31 @@ int tns_move_selection(tns_t *tns, win_t *win, direction_t dir) { | |||
| 413 | 414 | } | |
| 414 | 415 | ||
| 415 | 416 | if (tns->sel != old) { | |
| 416 | − | tns_highlight(tns, win, old, False); | |
| 417 | − | tns_check_view(tns, False); | |
| 417 | + | tns_highlight(tns, win, old, false); | |
| 418 | + | tns_check_view(tns, false); | |
| 418 | 419 | if (!tns->dirty) | |
| 419 | − | tns_highlight(tns, win, tns->sel, True); | |
| 420 | + | tns_highlight(tns, win, tns->sel, true); | |
| 420 | 421 | } | |
| 421 | 422 | ||
| 422 | 423 | return tns->sel != old; | |
| 423 | 424 | } | |
| 424 | 425 | ||
| 425 | − | int tns_scroll(tns_t *tns, direction_t dir) { | |
| 426 | + | bool tns_scroll(tns_t *tns, direction_t dir) { | |
| 426 | 427 | int old; | |
| 427 | 428 | ||
| 428 | 429 | if (!tns) | |
| 429 | − | return 0; | |
| 430 | + | return false; | |
| 430 | 431 | ||
| 431 | 432 | old = tns->first; | |
| 432 | 433 | ||
| 433 | 434 | if (dir == DIR_DOWN && tns->first + tns->cols * tns->rows < tns->cnt) { | |
| 434 | 435 | tns->first += tns->cols; | |
| 435 | − | tns_check_view(tns, True); | |
| 436 | − | tns->dirty = 1; | |
| 436 | + | tns_check_view(tns, true); | |
| 437 | + | tns->dirty = true; | |
| 437 | 438 | } else if (dir == DIR_UP && tns->first >= tns->cols) { | |
| 438 | 439 | tns->first -= tns->cols; | |
| 439 | − | tns_check_view(tns, True); | |
| 440 | − | tns->dirty = 1; | |
| 440 | + | tns_check_view(tns, true); | |
| 441 | + | tns->dirty = true; | |
| 441 | 442 | } | |
| 442 | 443 | ||
| 443 | 444 | return tns->first != old; | |
| @@ -44,8 +44,8 @@ typedef struct { | |||
| 44 | 44 | int rows; | |
| 45 | 45 | int first; | |
| 46 | 46 | int sel; | |
| 47 | − | unsigned char alpha; | |
| 48 | − | unsigned char dirty; | |
| 47 | + | bool alpha; | |
| 48 | + | bool dirty; | |
| 49 | 49 | } tns_t; | |
| 50 | 50 | ||
| 51 | 51 | void tns_clean_cache(tns_t*); | |
| @@ -53,13 +53,13 @@ void tns_clean_cache(tns_t*); | |||
| 53 | 53 | void tns_init(tns_t*, int); | |
| 54 | 54 | void tns_free(tns_t*); | |
| 55 | 55 | ||
| 56 | − | int tns_load(tns_t*, int, const fileinfo_t*, Bool, Bool); | |
| 56 | + | bool tns_load(tns_t*, int, const fileinfo_t*, bool, bool); | |
| 57 | 57 | ||
| 58 | 58 | void tns_render(tns_t*, win_t*); | |
| 59 | − | void tns_highlight(tns_t*, win_t*, int, Bool); | |
| 59 | + | void tns_highlight(tns_t*, win_t*, int, bool); | |
| 60 | 60 | ||
| 61 | − | int tns_move_selection(tns_t*, win_t*, direction_t); | |
| 62 | − | int tns_scroll(tns_t*, direction_t); | |
| 61 | + | bool tns_move_selection(tns_t*, win_t*, direction_t); | |
| 62 | + | bool tns_scroll(tns_t*, direction_t); | |
| 63 | 63 | ||
| 64 | 64 | int tns_translate(tns_t*, int, int); | |
| 65 | 65 | ||
| @@ -1,6 +1,11 @@ | |||
| 1 | 1 | #ifndef TYPES_H | |
| 2 | 2 | #define TYPES_H | |
| 3 | 3 | ||
| 4 | + | typedef enum { | |
| 5 | + | false, | |
| 6 | + | true | |
| 7 | + | } bool; | |
| 8 | + | ||
| 4 | 9 | typedef enum { | |
| 5 | 10 | MODE_IMAGE, | |
| 6 | 11 | MODE_THUMB | |
| @@ -29,7 +34,7 @@ typedef enum { | |||
| 29 | 34 | typedef struct { | |
| 30 | 35 | const char *name; /* as given by user */ | |
| 31 | 36 | const char *path; /* always absolute */ | |
| 32 | − | unsigned char loaded; | |
| 37 | + | bool loaded; | |
| 33 | 38 | } fileinfo_t; | |
| 34 | 39 | ||
| 35 | 40 | /* timeouts in milliseconds: */ | |
| @@ -17,6 +17,7 @@ | |||
| 17 | 17 | */ | |
| 18 | 18 | ||
| 19 | 19 | #define _POSIX_C_SOURCE 200112L | |
| 20 | + | #define _WINDOW_CONFIG | |
| 20 | 21 | ||
| 21 | 22 | #include <string.h> | |
| 22 | 23 | #include <X11/Xutil.h> | |
| @@ -25,8 +26,6 @@ | |||
| 25 | 26 | #include "options.h" | |
| 26 | 27 | #include "util.h" | |
| 27 | 28 | #include "window.h" | |
| 28 | − | ||
| 29 | − | #define _WINDOW_CONFIG | |
| 30 | 29 | #include "config.h" | |
| 31 | 30 | ||
| 32 | 31 | static Cursor carrow; | |
| @@ -76,7 +75,7 @@ void win_init(win_t *win) { | |||
| 76 | 75 | ||
| 77 | 76 | win->xwin = 0; | |
| 78 | 77 | win->pm = 0; | |
| 79 | − | win->fullscreen = 0; | |
| 78 | + | win->fullscreen = false; | |
| 80 | 79 | } | |
| 81 | 80 | ||
| 82 | 81 | void win_set_sizehints(win_t *win) { | |
| @@ -97,7 +96,7 @@ void win_open(win_t *win) { | |||
| 97 | 96 | win_env_t *e; | |
| 98 | 97 | XClassHint classhint; | |
| 99 | 98 | XColor col; | |
| 100 | − | char none_data[] = {0, 0, 0, 0, 0, 0, 0, 0}; | |
| 99 | + | char none_data[] = { 0, 0, 0, 0, 0, 0, 0, 0 }; | |
| 101 | 100 | Pixmap none; | |
| 102 | 101 | int gmask; | |
| 103 | 102 | ||
| @@ -158,7 +157,7 @@ void win_open(win_t *win) { | |||
| 158 | 157 | classhint.res_class = "sxiv"; | |
| 159 | 158 | XSetClassHint(e->dpy, win->xwin, &classhint); | |
| 160 | 159 | ||
| 161 | − | if (options->fixed) | |
| 160 | + | if (options->fixed_win) | |
| 162 | 161 | win_set_sizehints(win); | |
| 163 | 162 | ||
| 164 | 163 | XMapWindow(e->dpy, win->xwin); | |
| @@ -186,11 +185,11 @@ void win_close(win_t *win) { | |||
| 186 | 185 | XCloseDisplay(win->env.dpy); | |
| 187 | 186 | } | |
| 188 | 187 | ||
| 189 | − | int win_configure(win_t *win, XConfigureEvent *c) { | |
| 190 | − | int changed; | |
| 188 | + | bool win_configure(win_t *win, XConfigureEvent *c) { | |
| 189 | + | bool changed; | |
| 191 | 190 | ||
| 192 | 191 | if (!win) | |
| 193 | − | return 0; | |
| 192 | + | return false; | |
| 194 | 193 | ||
| 195 | 194 | changed = win->w != c->width || win->h != c->height; | |
| 196 | 195 | ||
| @@ -203,9 +202,9 @@ int win_configure(win_t *win, XConfigureEvent *c) { | |||
| 203 | 202 | return changed; | |
| 204 | 203 | } | |
| 205 | 204 | ||
| 206 | − | int win_moveresize(win_t *win, int x, int y, unsigned int w, unsigned int h) { | |
| 205 | + | bool win_moveresize(win_t *win, int x, int y, unsigned int w, unsigned int h) { | |
| 207 | 206 | if (!win || !win->xwin) | |
| 208 | − | return 0; | |
| 207 | + | return false; | |
| 209 | 208 | ||
| 210 | 209 | x = MAX(0, x); | |
| 211 | 210 | y = MAX(0, y); | |
| @@ -213,19 +212,19 @@ int win_moveresize(win_t *win, int x, int y, unsigned int w, unsigned int h) { | |||
| 213 | 212 | h = MIN(h, win->env.scrh - 2 * win->bw); | |
| 214 | 213 | ||
| 215 | 214 | if (win->x == x && win->y == y && win->w == w && win->h == h) | |
| 216 | − | return 0; | |
| 215 | + | return false; | |
| 217 | 216 | ||
| 218 | 217 | win->x = x; | |
| 219 | 218 | win->y = y; | |
| 220 | 219 | win->w = w; | |
| 221 | 220 | win->h = h; | |
| 222 | 221 | ||
| 223 | − | if (options->fixed) | |
| 222 | + | if (options->fixed_win) | |
| 224 | 223 | win_set_sizehints(win); | |
| 225 | 224 | ||
| 226 | 225 | XMoveResizeWindow(win->env.dpy, win->xwin, win->x, win->y, win->w, win->h); | |
| 227 | 226 | ||
| 228 | − | return 1; | |
| 227 | + | return true; | |
| 229 | 228 | } | |
| 230 | 229 | ||
| 231 | 230 | void win_toggle_fullscreen(win_t *win) { | |
| @@ -235,7 +234,7 @@ void win_toggle_fullscreen(win_t *win) { | |||
| 235 | 234 | if (!win || !win->xwin) | |
| 236 | 235 | return; | |
| 237 | 236 | ||
| 238 | − | win->fullscreen ^= 1; | |
| 237 | + | win->fullscreen = !win->fullscreen; | |
| 239 | 238 | ||
| 240 | 239 | memset(&ev, 0, sizeof(ev)); | |
| 241 | 240 | ev.type = ClientMessage; | |
| @@ -279,7 +278,7 @@ void win_draw(win_t *win) { | |||
| 279 | 278 | } | |
| 280 | 279 | ||
| 281 | 280 | void win_draw_rect(win_t *win, Pixmap pm, int x, int y, int w, int h, | |
| 282 | − | Bool fill, int lw, unsigned long col) { | |
| 281 | + | bool fill, int lw, unsigned long col) { | |
| 283 | 282 | XGCValues gcval; | |
| 284 | 283 | ||
| 285 | 284 | if (!win || !pm) | |
| @@ -46,9 +46,9 @@ typedef struct { | |||
| 46 | 46 | int y; | |
| 47 | 47 | unsigned int w; | |
| 48 | 48 | unsigned int h; | |
| 49 | − | ||
| 50 | 49 | unsigned int bw; | |
| 51 | − | unsigned char fullscreen; | |
| 50 | + | ||
| 51 | + | bool fullscreen; | |
| 52 | 52 | } win_t; | |
| 53 | 53 | ||
| 54 | 54 | extern Atom wm_delete_win; | |
| @@ -57,14 +57,14 @@ void win_init(win_t*); | |||
| 57 | 57 | void win_open(win_t*); | |
| 58 | 58 | void win_close(win_t*); | |
| 59 | 59 | ||
| 60 | − | int win_configure(win_t*, XConfigureEvent*); | |
| 61 | − | int win_moveresize(win_t*, int, int, unsigned int, unsigned int); | |
| 60 | + | bool win_configure(win_t*, XConfigureEvent*); | |
| 61 | + | bool win_moveresize(win_t*, int, int, unsigned int, unsigned int); | |
| 62 | 62 | ||
| 63 | 63 | void win_toggle_fullscreen(win_t*); | |
| 64 | 64 | ||
| 65 | 65 | void win_clear(win_t*); | |
| 66 | 66 | void win_draw(win_t*); | |
| 67 | − | void win_draw_rect(win_t*, Pixmap, int, int, int, int, Bool, int, | |
| 67 | + | void win_draw_rect(win_t*, Pixmap, int, int, int, int, bool, int, | |
| 68 | 68 | unsigned long); | |
| 69 | 69 | ||
| 70 | 70 | void win_set_title(win_t*, const char*); | |