summaryrefslogtreecommitdiff
path: root/indra/llwindow/llwindowmacosx-objc.h
diff options
context:
space:
mode:
authorGeenz <geenz@geenzo.com>2012-12-17 18:00:30 -0500
committerGeenz <geenz@geenzo.com>2012-12-17 18:00:30 -0500
commitc8aa1fb7c8ed44886599ea4e04eed403392e2e34 (patch)
tree440c4a548e55c2a6ade9f75625aabdd2203d31dd /indra/llwindow/llwindowmacosx-objc.h
parentb6abf5c0ee964ced6b8aa25872db597d3f024bfd (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.h53
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();