aboutsummaryrefslogtreecommitdiffstats
path: root/minilibx/mlx_mouse.m
diff options
context:
space:
mode:
authorRudy Bousset <rbousset@z2r4p3.le-101.fr>2020-01-23 15:18:45 +0100
committerRudy Bousset <rbousset@z2r4p3.le-101.fr>2020-01-23 15:18:45 +0100
commita6acf55cddec28eebf8d0e1c44603270d591cdee (patch)
treedff9c6d1075c05ee89631021e7211343e6949b28 /minilibx/mlx_mouse.m
parentDeleted libx (diff)
download42-cub3d-a6acf55cddec28eebf8d0e1c44603270d591cdee.tar.gz
42-cub3d-a6acf55cddec28eebf8d0e1c44603270d591cdee.tar.bz2
42-cub3d-a6acf55cddec28eebf8d0e1c44603270d591cdee.tar.xz
42-cub3d-a6acf55cddec28eebf8d0e1c44603270d591cdee.tar.zst
42-cub3d-a6acf55cddec28eebf8d0e1c44603270d591cdee.zip
Added back minilibx, added gitignore
Diffstat (limited to 'minilibx/mlx_mouse.m')
-rw-r--r--minilibx/mlx_mouse.m52
1 files changed, 52 insertions, 0 deletions
diff --git a/minilibx/mlx_mouse.m b/minilibx/mlx_mouse.m
new file mode 100644
index 0000000..94ce0a9
--- /dev/null
+++ b/minilibx/mlx_mouse.m
@@ -0,0 +1,52 @@
+#include <stdio.h>
+
+#import <Cocoa/Cocoa.h>
+#import <OpenGL/gl3.h>
+
+#include "mlx_int.h"
+#include "mlx_new_window.h"
+
+int mlx_mouse_hide()
+{
+ // CGDisplayHideCursor(kCGDirectMainDisplay);
+ [NSCursor hide];
+ return (0);
+}
+
+int mlx_mouse_show()
+{
+ // CGDisplayShowCursor(kCGDirectMainDisplay);
+ [NSCursor unhide];
+ return (0);
+}
+
+int mlx_mouse_move(mlx_win_list_t *win, int x, int y)
+{
+ CGPoint point;
+ NSRect pos;
+ id thewin;
+
+ thewin = [(id)(win->winid) win];
+ pos = [thewin frame];
+ // printf("got win pos %f %f\n", pos.origin.x, pos.origin.y);
+ point.x = pos.origin.x + x;
+ point.y = NSHeight([[thewin screen] frame]) - NSHeight([(id)(win->winid) frame]) - pos.origin.y + 1 + y;
+ CGWarpMouseCursorPosition(point);
+ CGAssociateMouseAndMouseCursorPosition(true);
+ return (0);
+}
+
+
+int mlx_mouse_get_pos(mlx_win_list_t *win, int *x, int *y)
+{
+ CGPoint point;
+ id thewin;
+ NSRect pos;
+
+ thewin = [(id)(win->winid) win];
+ pos = [(id)(win->winid) frame];
+ point = [thewin mouseLocationOutsideOfEventStream];
+ *x = point.x;
+ *y = NSHeight(pos) - 1 - point.y;
+ return (0);
+}