/* * Mr. 4th Dimention - Allen Webster * * 06.29.2017 * * Types and functions for communication between C++ and Objective-C layers. * */ // TOP #if !defined(OSX_OBJECTIVE_C_TO_CPP_LINKS_H) #define OSX_OBJECTIVE_C_TO_CPP_LINKS_H typedef enum OSX_Mouse_Event_Type{ MouseType_Move, MouseType_Press, MouseType_Release, } OSX_Mouse_Event_Type; typedef struct OSX_Keyboard_Modifiers{ b32 shift; b32 command; b32 control; b32 option; } OSX_Keyboard_Modifiers; typedef struct OSX_Vars{ i32 width, height; b32 running; u32 key_count; u32 keys[8]; u32 prev_clipboard_change_count; b32 has_clipboard_item; void *clipboard_data; umem clipboard_size, clipboard_max; b32 just_posted_to_clipboard; } OSX_Vars; // In C++ layer. extern OSX_Vars osx; void osx_post_to_clipboard(char *str); internal void* osx_allocate(umem size); internal void osx_resize(int width, int height); internal void osx_character_input(u32 code, OSX_Keyboard_Modifiers modifier_flags); internal void osx_mouse(i32 mx, i32 my, u32 type); internal void osx_mouse_wheel(float dx, float dy); internal void osx_step(); internal void osx_init(); #endif // BOTTOM