123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- /**
- * @file llopenglview-objc.h
- * @brief Class interfaces for most of the Mac facing window functionality.
- *
- * $LicenseInfo:firstyear=2000&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
- #ifndef LLOpenGLView_H
- #define LLOpenGLView_H
- #import <Cocoa/Cocoa.h>
- #import <IOKit/IOKitLib.h>
- #import <CoreFoundation/CFBase.h>
- #import <CoreFoundation/CFNumber.h>
- #include <string>
- @interface LLOpenGLView : NSOpenGLView <NSTextInputClient>
- {
- std::string mLastDraggedUrl;
- unsigned int mModifiers;
- float mMousePos[2];
- bool mHasMarkedText;
- unsigned int mMarkedTextLength;
- bool mMarkedTextAllowed;
- bool mSimulatedRightClick;
- }
- - (id) initWithFrame:(NSRect)frame withSamples:(NSUInteger)samples andVsync:(BOOL)vsync andCoreGL:(BOOL)core_gl;
- - (void)commitCurrentPreedit;
- // rebuildContext
- // Destroys and recreates a context with the view's internal format set via setPixelFormat;
- // Use this in event of needing to rebuild a context for whatever reason, without needing to assign a new pixel format.
- - (BOOL) rebuildContext;
- // rebuildContextWithFormat
- // Destroys and recreates a context with the specified pixel format.
- - (BOOL) rebuildContextWithFormat:(NSOpenGLPixelFormat *)format;
- // These are mostly just for C++ <-> Obj-C interop. We can manipulate the CGLContext from C++ without reprecussions.
- - (CGLContextObj) getCGLContextObj;
- - (CGLPixelFormatObj*)getCGLPixelFormatObj;
- - (unsigned long) getVramSize;
- - (void) allowMarkedTextInput:(bool)allowed;
- @end
- @interface LLUserInputWindow : NSPanel
- @end
- @interface LLNonInlineTextView : NSTextView
- {
- LLOpenGLView *glview;
- unichar mKeyPressed;
- }
- - (void) setGLView:(LLOpenGLView*)view;
- @end
- @interface LLNSWindow : NSWindow
- - (NSPoint)convertToScreenFromLocalPoint:(NSPoint)point relativeToView:(NSView *)view;
- - (NSPoint)flipPoint:(NSPoint)aPoint;
- @end
- @interface NSScreen (PointConversion)
- /*
- Returns the screen where the mouse resides
- */
- + (NSScreen *)currentScreenForMouseLocation;
- /*
- Allows you to convert a point from global coordinates to the current screen coordinates.
- */
- - (NSPoint)convertPointToScreenCoordinates:(NSPoint)aPoint;
- /*
- Allows to flip the point coordinates, so y is 0 at the top instead of the bottom. x remains the same
- */
- - (NSPoint)flipPoint:(NSPoint)aPoint;
- @end
- #endif
|