diff options
| author | Geenz <geenz@geenzo.com> | 2012-12-17 18:00:30 -0500 |
|---|---|---|
| committer | Geenz <geenz@geenzo.com> | 2012-12-17 18:00:30 -0500 |
| commit | c8aa1fb7c8ed44886599ea4e04eed403392e2e34 (patch) | |
| tree | 440c4a548e55c2a6ade9f75625aabdd2203d31dd /indra/llwindow/llwindowmacosx-objc.h | |
| parent | b6abf5c0ee964ced6b8aa25872db597d3f024bfd (diff) | |
LLWindow: Move to using Cocoa for window and view creation along with setting up callbacks for event handling as such.
Diffstat (limited to 'indra/llwindow/llwindowmacosx-objc.h')
| -rw-r--r-- | indra/llwindow/llwindowmacosx-objc.h | 53 |
1 files changed, 50 insertions, 3 deletions
diff --git a/indra/llwindow/llwindowmacosx-objc.h b/indra/llwindow/llwindowmacosx-objc.h index 7893dedda4..47ae13cb25 100644 --- a/indra/llwindow/llwindowmacosx-objc.h +++ b/indra/llwindow/llwindowmacosx-objc.h @@ -24,14 +24,61 @@ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ - +#include <boost/tr1/functional.hpp> +typedef std::tr1::function<void(unsigned short, unsigned int)> KeyCallback; +typedef std::tr1::function<void(unsigned int)> ModifierCallback; +typedef std::tr1::function<void(float*, unsigned int)> MouseCallback; +typedef std::tr1::function<void(wchar_t, unsigned int)> UnicodeCallback; +typedef std::tr1::function<void(unsigned int, unsigned int)> ResizeCallback; +typedef std::tr1::function<void(float)> ScrollWheelCallback; +typedef std::tr1::function<void()> VoidCallback; // This will actually hold an NSCursor*, but that type is only available in objective C. typedef void *CursorRef; +typedef void *NSWindowRef; +typedef void *GLViewRef; /* Defined in llwindowmacosx-objc.mm: */ void setupCocoa(); CursorRef createImageCursor(const char *fullpath, int hotspotX, int hotspotY); -OSErr releaseImageCursor(CursorRef ref); -OSErr setImageCursor(CursorRef ref); +short releaseImageCursor(CursorRef ref); +short setImageCursor(CursorRef ref); +void setArrowCursor(); +void setIBeamCursor(); +void setPointingHandCursor(); +void setCopyCursor(); +void setCrossCursor(); +void hideNSCursor(); +void showNSCursor(); +void hideNSCursorTillMove(bool hide); + +NSWindowRef createNSWindow(int x, int y, int width, int height); + +#include <OpenGL/OpenGL.h> +GLViewRef createOpenGLView(NSWindowRef window); +void glSwapBuffers(void* context); +CGLContextObj getCGLContextObj(NSWindowRef window); +void getContentViewBounds(NSWindowRef window, float* bounds); +void getWindowSize(NSWindowRef window, float* size); +void setWindowSize(NSWindowRef window, int width, int height); +void getCursorPos(NSWindowRef window, float* pos); +void makeWindowOrderFront(NSWindowRef window); +void convertScreenToWindow(NSWindowRef window, float *coord); +void convertWindowToScreen(NSWindowRef window, float *coord); +void setWindowPos(NSWindowRef window, float* pos); + +void registerKeyUpCallback(NSWindowRef window, KeyCallback callback); +void registerKeyDownCallback(NSWindowRef window, KeyCallback callback); +void registerUnicodeCallback(NSWindowRef window, UnicodeCallback callback); +void registerMouseUpCallback(NSWindowRef window, MouseCallback callback); +void registerMouseDownCallback(NSWindowRef window, MouseCallback callback); +void registerRightMouseUpCallback(NSWindowRef window, MouseCallback callback); +void registerRightMouseDownCallback(NSWindowRef window, MouseCallback callback); +void registerDoubleClickCallback(NSWindowRef window, MouseCallback callback); +void registerResizeEventCallback(GLViewRef window, ResizeCallback callback); +void registerMouseMovedCallback(NSWindowRef window, MouseCallback callback); +void registerScrollCallback(NSWindowRef window, ScrollWheelCallback callback); +void registerMouseExitCallback(NSWindowRef window, VoidCallback callback); +void registerDeltaUpdateCallback(NSWindowRef window, MouseCallback callback); +unsigned int getModifiers(); |
