/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* hooks.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gtertysh +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/03/16 18:59:03 by gtertysh #+# #+# */ /* Updated: 2017/03/24 14:02:46 by gtertysh ### ########.fr */ /* */ /* ************************************************************************** */ #include "fractol.h" int key_hook(int keycode, void *fr) { printf("%d\n", keycode); if (keycode == 53) quit(fr); if (keycode == 49) gradient_hook(fr); if (keycode == 124) move_left(fr); if (keycode == 123) move_right(fr); if (keycode == 125) move_up(fr); if (keycode == 126) move_down(fr); if (keycode == 69) change_limit_up(fr); if (keycode == 78) change_limit_down(fr); return (0); } /* * beware!! shitcode on lines 48-49. */ int mouse_move_hook( int x, int y, void *fr) { static int start_x = WIDTH / 2; int to_render; t_fractol *fr_p; to_render = 0; y = to_render; printf("x = %d, y = %d\n", x, y); to_render = y; fr_p = (t_fractol *)fr; if (fr_p->frac->com_rl_im_change == 1 && fr_p->frac->allow_mouse_change == 1) to_render = change_real(fr_p, x, &start_x); else if (fr_p->frac->com_rl_im_change == -1 && fr_p->frac->allow_mouse_change == 1) to_render = change_imagianry(fr_p, x, &start_x); if (to_render) { new_and_clear_image(fr_p); parallel_fractal(fr_p); mlx_put_image_to_window(fr_p->mlx, fr_p->win, fr_p->img->ptr, 0, 0); } return (0); } int mouse_button_hook(int btn, int x, int y, void *fr) { printf("x = %d, y = %d, btn = %d\n", x, y, btn); if (btn == 4) zoom_in(fr, x, y); if (btn == 5) zoom_out(fr); if (btn == 3) ((t_fractol *)fr)->frac->com_rl_im_change *= -1; if (btn == 2) ((t_fractol *)fr)->frac->allow_mouse_change *= -1; if (btn == 1) reset(fr); return (0); }