82 lines
2.3 KiB
C
82 lines
2.3 KiB
C
/* ************************************************************************** */
|
|
/* */
|
|
/* ::: :::::::: */
|
|
/* hooks.c :+: :+: :+: */
|
|
/* +:+ +:+ +:+ */
|
|
/* By: gtertysh <marvin@42.fr> +#+ +:+ +#+ */
|
|
/* +#+#+#+#+#+ +#+ */
|
|
/* 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);
|
|
}
|