From: thefiddler Date: Thu, 24 Apr 2014 07:22:46 +0000 (+0200) Subject: [Mac] Removed most legacy Carbon code X-Git-Tag: 2.0-0~180 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=824f238973401c5070dea2ccd691a8ff51b19c51;p=platform%2Fcore%2Fcsapi%2Fopentk.git [Mac] Removed most legacy Carbon code --- diff --git a/Source/OpenTK/OpenTK.csproj b/Source/OpenTK/OpenTK.csproj index aa03844..c0cff00 100644 --- a/Source/OpenTK/OpenTK.csproj +++ b/Source/OpenTK/OpenTK.csproj @@ -279,9 +279,6 @@ Code - - Code - Code @@ -291,9 +288,6 @@ Code - - Code - Code diff --git a/Source/OpenTK/Platform/MacOS/Application.cs b/Source/OpenTK/Platform/MacOS/Application.cs deleted file mode 100644 index a55f45b..0000000 --- a/Source/OpenTK/Platform/MacOS/Application.cs +++ /dev/null @@ -1,149 +0,0 @@ -#region License -// -// The Open Toolkit Library License -// -// Copyright (c) 2006 - 2010 the Open Toolkit library. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -// the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -// OTHER DEALINGS IN THE SOFTWARE. -// -#endregion - -// Created by Erik Ylvisaker on 3/17/08. - -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Text; - -namespace OpenTK.Platform.MacOS.Carbon -{ - static class Application - { - static bool mInitialized = false; - static IntPtr uppHandler; - static int osMajor, osMinor, osBugfix; - - static Application() - { - Initialize(); - } - - static internal void Initialize() - { - if (mInitialized) - return; - - API.AcquireRootMenu(); - - ConnectEvents(); - - API.Gestalt(GestaltSelector.SystemVersionMajor, out osMajor); - API.Gestalt(GestaltSelector.SystemVersionMinor, out osMinor); - API.Gestalt(GestaltSelector.SystemVersionBugFix, out osBugfix); - - Debug.Print("Running on Mac OS X {0}.{1}.{2}.", osMajor, osMinor, osBugfix); - - TransformProcessToForeground(); - } - - private static void TransformProcessToForeground() - { - Carbon.ProcessSerialNumber psn = new ProcessSerialNumber(); - - Debug.Print("Setting process to be foreground application."); - - API.GetCurrentProcess(ref psn); - API.TransformProcessType(ref psn, ProcessApplicationTransformState.kProcessTransformToForegroundApplication); - API.SetFrontProcess(ref psn); - } - - static void ConnectEvents() - { - - EventTypeSpec[] eventTypes = new EventTypeSpec[] { - new EventTypeSpec(EventClass.Application, AppEventKind.AppActivated), - new EventTypeSpec(EventClass.Application, AppEventKind.AppDeactivated), - new EventTypeSpec(EventClass.Application, AppEventKind.AppQuit), - new EventTypeSpec(EventClass.Mouse, MouseEventKind.MouseDown), - new EventTypeSpec(EventClass.Mouse, MouseEventKind.MouseUp), - new EventTypeSpec(EventClass.Mouse, MouseEventKind.MouseMoved), - new EventTypeSpec(EventClass.Mouse, MouseEventKind.MouseDragged), - new EventTypeSpec(EventClass.Mouse, MouseEventKind.MouseEntered), - new EventTypeSpec(EventClass.Mouse, MouseEventKind.MouseExited), - new EventTypeSpec(EventClass.Mouse, MouseEventKind.WheelMoved), - new EventTypeSpec(EventClass.Mouse, MouseEventKind.WheelScroll), - - - new EventTypeSpec(EventClass.Keyboard, KeyboardEventKind.RawKeyDown), - new EventTypeSpec(EventClass.Keyboard, KeyboardEventKind.RawKeyRepeat), - new EventTypeSpec(EventClass.Keyboard, KeyboardEventKind.RawKeyUp), - new EventTypeSpec(EventClass.Keyboard, KeyboardEventKind.RawKeyModifiersChanged), - new EventTypeSpec(EventClass.AppleEvent, AppleEventKind.AppleEvent), - }; - - MacOSEventHandler handler = EventHandler; - uppHandler = API.NewEventHandlerUPP(handler); - - API.InstallApplicationEventHandler(uppHandler, eventTypes, IntPtr.Zero, IntPtr.Zero); - - mInitialized = true; - } - - static OSStatus EventHandler(IntPtr inCaller, IntPtr inEvent, IntPtr userData) - { - EventInfo evt = new EventInfo(inEvent); - - switch (evt.EventClass) - { - case EventClass.Application: - switch (evt.AppEventKind) - { - case AppEventKind.AppQuit: - API.RemoveEventHandler(uppHandler); - return OSStatus.EventNotHandled; - - default: - return OSStatus.EventNotHandled; - } - - case EventClass.AppleEvent: - // only event here is the apple event. - Debug.Print("Processing apple event."); - API.ProcessAppleEvent(inEvent); - break; - } - - return OSStatus.EventNotHandled; - } - - static void MainWindowClosed(object sender, EventArgs e) - { - Debug.Print("Quitting application event loop."); - API.QuitApplicationEventLoop(); - } - - - static internal void ProcessEvents() - { - API.ProcessEvents(); - } - } -} diff --git a/Source/OpenTK/Platform/MacOS/Carbon/CarbonAPI.cs b/Source/OpenTK/Platform/MacOS/Carbon/CarbonAPI.cs index bf99c06..914b8c3 100644 --- a/Source/OpenTK/Platform/MacOS/Carbon/CarbonAPI.cs +++ b/Source/OpenTK/Platform/MacOS/Carbon/CarbonAPI.cs @@ -30,98 +30,9 @@ using System; using System.Runtime.InteropServices; -using System.Diagnostics; -#if !MINIMAL -using System.Drawing; -#endif - -using EventTime = System.Double; - namespace OpenTK.Platform.MacOS.Carbon { - - #region --- Types defined in MacTypes.h --- - - [StructLayout(LayoutKind.Sequential)] - internal struct CarbonPoint - { - internal short V; - internal short H; - - public CarbonPoint(int x, int y) - { - V = (short)x; - H = (short)y; - } - } - - [StructLayout(LayoutKind.Sequential)] - internal struct Rect - { - short top; - short left; - short bottom; - short right; - - internal Rect(int left, int top, int width, int height) - : this((short)left, (short)top, (short)width, (short)height) - { - } - - internal Rect(short _left, short _top, short _width, short _height) - { - top = _top; - left = _left; - bottom = (short)(_top + _height); - right = (short)(_left + _width); - } - - internal short X - { - get { return left; } - set - { - short width = Width; - left = value; - right = (short)(left + width); - } - } - internal short Y - { - get { return top; } - set - { - short height = Height; - top = value; - bottom = (short)(top + height); - } - } - internal short Width - { - get { return (short)(right - left); } - set { right = (short)(left + value); } - } - internal short Height - { - get { return (short)(bottom - top); } - set { bottom = (short)(top + value); } - } - - public override string ToString() - { - return string.Format( - "Rect: [{0}, {1}, {2}, {3}]", X, Y, Width, Height); - } - - public Rectangle ToRectangle() - { - return new Rectangle(X, Y, Width, Height); - } - } - - #endregion - #region --- Types defined in HIGeometry.h --- [StructLayout(LayoutKind.Sequential)] @@ -129,11 +40,13 @@ namespace OpenTK.Platform.MacOS.Carbon { public float X; public float Y; + public HIPoint(float x, float y) { X = x; Y = y; } + public HIPoint(double x, double y) : this((float)x, (float)y) { } @@ -160,552 +73,6 @@ namespace OpenTK.Platform.MacOS.Carbon } #endregion - - #region --- Types defined in CarbonEvents.h --- - - enum EventAttributes : uint - { - kEventAttributeNone = 0, - kEventAttributeUserEvent = (1 << 0), - kEventAttributeMonitored = 1 << 3, - } - - [StructLayout(LayoutKind.Sequential)] - internal struct EventTypeSpec - { - internal EventTypeSpec(EventClass evtClass, AppEventKind evtKind) - { - this.EventClass = evtClass; - this.EventKind = (uint)evtKind; - } - internal EventTypeSpec(EventClass evtClass, AppleEventKind appleKind) - { - this.EventClass = evtClass; - this.EventKind = (uint)appleKind; - } - internal EventTypeSpec(EventClass evtClass, MouseEventKind evtKind) - { - this.EventClass = evtClass; - this.EventKind = (uint)evtKind; - } - internal EventTypeSpec(EventClass evtClass, KeyboardEventKind evtKind) - { - this.EventClass = evtClass; - this.EventKind = (uint)evtKind; - } - internal EventTypeSpec(EventClass evtClass, WindowEventKind evtKind) - { - this.EventClass = evtClass; - this.EventKind = (uint)evtKind; - } - - internal EventClass EventClass; - internal uint EventKind; - } - - internal enum EventClass : int - { - /* - kEventClassMouse = FOUR_CHAR_CODE('mous'), - kEventClassKeyboard = FOUR_CHAR_CODE('keyb'), - kEventClassTextInput = FOUR_CHAR_CODE('text'), - kEventClassApplication = FOUR_CHAR_CODE('appl'), - kEventClassAppleEvent = FOUR_CHAR_CODE('eppc'), - kEventClassMenu = FOUR_CHAR_CODE('menu'), - kEventClassWindow = FOUR_CHAR_CODE('wind'), - kEventClassControl = FOUR_CHAR_CODE('cntl'), - kEventClassCommand = FOUR_CHAR_CODE('cmds') - */ - Mouse = 0x6d6f7573, - Keyboard = 0x6b657962, - Application = 0x6170706c, - AppleEvent = 0x65707063, - Menu = 0x6d656e75, - Window = 0x77696e64, - } - internal enum WindowEventKind : int - { - // window events - WindowUpdate = 1, - WindowDrawContent = 2, - WindowDrawStructure = 3, - WindowEraseContent = 4, - WindowActivate = 5, - WindowDeactivate = 6, - WindowSizeChanged = 23, - WindowBoundsChanging = 26, - WindowBoundsChanged = 27, - WindowClickDragRgn = 32, - WindowClickResizeRgn = 33, - WindowClickCollapseRgn = 34, - WindowClickCloseRgn = 35, - WindowClickZoomRgn = 36, - WindowClickContentRgn = 37, - WindowClickProxyIconRgn = 38, - WindowClose = 72, - WindowClosed = 73, - WindowPaint = 1013, - } - internal enum MouseEventKind : int - { - MouseDown = 1, - MouseUp = 2, - MouseMoved = 5, - MouseDragged = 6, - MouseEntered = 8, - MouseExited = 9, - WheelMoved = 10, - WheelScroll = 11, - } - internal enum MouseButton : short - { - Primary = 1, - Secondary = 2, - Tertiary = 3, - } - - internal enum KeyboardEventKind : int - { - // raw keyboard events - RawKeyDown = 1, - RawKeyRepeat = 2, - RawKeyUp = 3, - RawKeyModifiersChanged = 4, - } - - internal enum AppEventKind : int - { - // application events - AppActivated = 1, - AppDeactivated = 2, - AppQuit = 3, - AppLaunchNotification = 4, - } - - enum AppleEventKind : int - { - AppleEvent = 1, - } - - internal enum EventParamName : int - { - WindowRef = 0x77696e64, // typeWindowRef, - - // Mouse Events - MouseLocation = 0x6d6c6f63, // typeHIPoint - WindowMouseLocation = 0x776d6f75, // typeHIPoint - MouseButton = 0x6d62746e, // typeMouseButton - ClickCount = 0x63636e74, // typeUInt32 - MouseWheelAxis = 0x6d776178, // typeMouseWheelAxis 'mwax' - MouseWheelDelta = 0x6d77646c, // typeSInt32 'mwdl' - MouseWheelSmoothVerticalDelta = 0x73617879, // typeSInt32 'saxy' - MouseWheelSmoothHorizontalDelta = 0x73617878, // typeSInt32 'saxx' - - MouseDelta = 0x6d647461, // typeHIPoint - - // Keyboard events - KeyCode = 0x6b636f64, // typeUInt32 - KeyMacCharCode = 0x6b636872, // typechar - KeyModifiers = 0x6b6d6f64, // typeUInt32 - - } - internal enum EventParamType : int - { - typeWindowRef = 0x77696e64, - - typeMouseButton = 0x6d62746e, - typeMouseWheelAxis = 0x6d776178, - typeHIPoint = 0x68697074, - typeHISize = 0x6869737a, - typeHIRect = 0x68697263, - - typeChar = 0x54455854, - - typeUInt32 = 0x6d61676e, - typeSInt32 = 0x6c6f6e67, - typeSInt16 = 0x73686f72, - typeSInt64 = 0x636f6d70, - typeIEEE32BitFloatingPoint = 0x73696e67, - typeIEEE64BitFloatingPoint = 0x646f7562, - } - - internal enum EventMouseButton : int - { - Primary = 0, - Secondary = 1, - Tertiary = 2, - } - - internal enum WindowRegionCode : int - { - TitleBarRegion = 0, - TitleTextRegion = 1, - CloseBoxRegion = 2, - ZoomBoxRegion = 3, - DragRegion = 5, - GrowRegion = 6, - CollapseBoxRegion = 7, - TitleProxyIconRegion = 8, - StructureRegion = 32, - ContentRegion = 33, - UpdateRegion = 34, - OpaqueRegion = 35, - GlobalPortRegion = 40, - ToolbarButtonRegion = 41 - }; - - #endregion - - #region --- MacWindows.h --- - - internal enum WindowClass : uint - { - Alert = 1, /* "I need your attention now."*/ - MovableAlert = 2, /* "I need your attention now, but I'm kind enough to let you switch out of this app to do other things."*/ - Modal = 3, /* system modal, not draggable*/ - MovableModal = 4, /* application modal, draggable*/ - Floating = 5, /* floats above all other application windows*/ - Document = 6, /* document windows*/ - Desktop = 7, /* desktop window (usually only one of these exists) - OS X only in CarbonLib 1.0*/ - Utility = 8, /* Available in CarbonLib 1.1 and later, and in Mac OS X*/ - Help = 10, /* Available in CarbonLib 1.1 and later, and in Mac OS X*/ - Sheet = 11, /* Available in CarbonLib 1.3 and later, and in Mac OS X*/ - Toolbar = 12, /* Available in CarbonLib 1.1 and later, and in Mac OS X*/ - Plain = 13, /* Available in CarbonLib 1.2.5 and later, and Mac OS X*/ - Overlay = 14, /* Available in Mac OS X*/ - SheetAlert = 15, /* Available in CarbonLib 1.3 and later, and in Mac OS X 10.1 and later*/ - AltPlain = 16, /* Available in CarbonLib 1.3 and later, and in Mac OS X 10.1 and later*/ - Drawer = 20, /* Available in Mac OS X 10.2 or later*/ - All = 0xFFFFFFFFu /* for use with GetFrontWindowOfClass, FindWindowOfClass, GetNextWindowOfClass*/ - } - - [Flags] - internal enum WindowAttributes : uint - { - NoAttributes = 0u, /* no attributes*/ - CloseBox = (1u << 0), /* window has a close box*/ - HorizontalZoom = (1u << 1), /* window has horizontal zoom box*/ - VerticalZoom = (1u << 2), /* window has vertical zoom box*/ - FullZoom = (VerticalZoom | HorizontalZoom), - CollapseBox = (1u << 3), /* window has a collapse box*/ - Resizable = (1u << 4), /* window is resizable*/ - SideTitlebar = (1u << 5), /* window wants a titlebar on the side (floating window class only)*/ - NoUpdates = (1u << 16), /* this window receives no update events*/ - NoActivates = (1u << 17), /* this window receives no activate events*/ - - /// - /// This window uses composited drawing. This means that the entire - /// window is comprised of HIViews, and can be treated thusly. This - /// attribute must be specified at window creation, and cannot be - /// changed later with ChangeWindows. In 64-bit mode, all windows must - /// be compositing, and you must always specify this attribute when - /// creating a window from code or designing a window in Interface - /// Builder. Available on Mac OS X 10.2 and later. - /// - Compositing = (1u << 19), - - /// - /// This window's context should be scaled to match the display scale - /// factor. This attribute can only be used when - /// kHIWindowBitCompositing is also enabled. When this attribute is - /// enabled, you may not draw with QuickDraw in the window. If this - /// attribute is enabled and if the scale factor is something other - /// than 1.0, the window's scale mode will be - /// kHIWindowScaleModeFrameworkScaled. You may only specify this - /// attribute at window creation time. Available for all windows in - /// Mac OS X 10.4 and later. - /// - FrameworkScaled = (1u << 20), - - /// - /// This window has the standard Carbon window event handler - /// installed. Available for all windows. - /// - StandardHandler = (1u << 25), - InWindowMenu = (1u << 27), - LiveResize = (1u << 28), - StandardDocument = (CloseBox | FullZoom | CollapseBox | Resizable), - StandardFloating = (CloseBox | CollapseBox) - } - - internal enum WindowPositionMethod : uint - { - CenterOnMainScreen = 1, - CenterOnParentWindow = 2, - CenterOnParentWindowScreen = 3, - CascadeOnMainScreen = 4, - CascadeOnParentWindow = 5, - CascadeOnParentWindowScreen = 6, - CascadeStartAtParentWindowScreen = 10, - AlertPositionOnMainScreen = 7, - AlertPositionOnParentWindow = 8, - AlertPositionOnParentWindowScreen = 9 - } - - internal delegate OSStatus MacOSEventHandler(IntPtr inCaller, IntPtr inEvent, IntPtr userData); - - internal enum WindowPartCode : short - { - inDesk = 0, - inNoWindow = 0, - inMenuBar = 1, - inSysWindow = 2, - inContent = 3, - inDrag = 4, - inGrow = 5, - inGoAway = 6, - inZoomIn = 7, - inZoomOut = 8, - inCollapseBox = 11, - inProxyIcon = 12, - inToolbarButton = 13, - inStructure = 15, - } - - #endregion - - #region --- Enums from gestalt.h --- - - internal enum GestaltSelector - { - SystemVersion = 0x73797376, // FOUR_CHAR_CODE("sysv"), /* system version*/ - SystemVersionMajor = 0x73797331, // FOUR_CHAR_CODE("sys1"), /* The major system version number; in 10.4.17 this would be the decimal value 10 */ - SystemVersionMinor = 0x73797332, // FOUR_CHAR_CODE("sys2"), /* The minor system version number; in 10.4.17 this would be the decimal value 4 */ - SystemVersionBugFix = 0x73797333, // FOUR_CHAR_CODE("sys3") /* The bug fix system version number; in 10.4.17 this would be the decimal value 17 */ - }; - - #endregion - - #region --- Process Manager --- - - enum ProcessApplicationTransformState : int - { - kProcessTransformToForegroundApplication = 1, - } - - struct ProcessSerialNumber - { - public ulong high; - public ulong low; - } - - #endregion - - - enum HICoordinateSpace - { - _72DPIGlobal = 1, - ScreenPixel = 2, - Window = 3, - View = 4 - }; - - #region --- Carbon API Methods --- - - internal partial class API - { - const string carbon = "/System/Library/Frameworks/Carbon.framework/Versions/Current/Carbon"; - - [DllImport(carbon)] - internal static extern EventClass GetEventClass(IntPtr inEvent); - [DllImport(carbon)] - internal static extern uint GetEventKind(IntPtr inEvent); - - #region --- Processing Events --- - - [DllImport(carbon)] - static extern IntPtr GetEventDispatcherTarget(); - - [DllImport(carbon,EntryPoint="ReceiveNextEvent")] - static extern OSStatus ReceiveNextEvent(uint inNumTypes, - IntPtr inList, - double inTimeout, - bool inPullEvent, - out IntPtr outEvent); - - [DllImport(carbon)] - static extern void SendEventToEventTarget(IntPtr theEvent, IntPtr theTarget); - - [DllImport(carbon)] - static extern void ReleaseEvent(IntPtr theEvent); - - internal static void SendEvent(IntPtr theEvent) - { - IntPtr theTarget = GetEventDispatcherTarget(); - SendEventToEventTarget(theEvent, theTarget); - } - - // Processes events in the queue and then returns. - internal static void ProcessEvents() - { - IntPtr theEvent; - IntPtr theTarget = GetEventDispatcherTarget(); - - for (;;) - { - OSStatus status = ReceiveNextEvent(0, IntPtr.Zero, 0.0, true, out theEvent); - - if (status == OSStatus.EventLoopTimedOut) - break; - - if (status != OSStatus.NoError) - { - Debug.Print("Message Loop status: {0}", status); - break; - } - if (theEvent == IntPtr.Zero) - break; - - try - { - SendEventToEventTarget(theEvent, theTarget); - } - catch (System.ExecutionEngineException e) - { - Console.Error.WriteLine("ExecutionEngineException caught."); - Console.Error.WriteLine("theEvent: " + new EventInfo(theEvent).ToString()); - Console.Error.WriteLine(e.Message); - Console.Error.WriteLine(e.StackTrace); - } - - ReleaseEvent(theEvent); - } - - } - - #region --- Processing apple event --- - - [StructLayout(LayoutKind.Sequential)] - - struct EventRecord - { - public ushort what; - public uint message; - public uint when; - public CarbonPoint where; - public uint modifiers; - } - - [DllImport(carbon)] - static extern bool ConvertEventRefToEventRecord(IntPtr inEvent, out EventRecord outEvent); - - [DllImport(carbon)] - static extern OSStatus AEProcessAppleEvent(ref EventRecord theEventRecord); - - static internal void ProcessAppleEvent(IntPtr inEvent) - { - EventRecord record; - - ConvertEventRefToEventRecord(inEvent, out record); - AEProcessAppleEvent(ref record); - } - - #endregion - - #endregion - - #region --- Event Handlers --- - - [DllImport(carbon,EntryPoint="InstallEventHandler")] - static extern OSStatus _InstallEventHandler( - IntPtr eventTargetRef, IntPtr handlerProc, - int numtypes, EventTypeSpec[] typeList, - IntPtr userData, IntPtr handlerRef); - - internal static void InstallApplicationEventHandler(IntPtr uppHandlerProc, - EventTypeSpec[] eventTypes, IntPtr userData, IntPtr handlerRef) - { - - OSStatus error = _InstallEventHandler(GetApplicationEventTarget(), uppHandlerProc, - eventTypes.Length, eventTypes, - userData, handlerRef); - - if (error != OSStatus.NoError) - { - throw new MacOSException(error); - } - } - - [DllImport(carbon)] - internal static extern OSStatus RemoveEventHandler(IntPtr inHandlerRef); - - #endregion - - #region --- GetWindowEventTarget --- - - [DllImport(carbon)] - internal static extern IntPtr GetWindowEventTarget(IntPtr window); - - [DllImport(carbon)] - internal static extern IntPtr GetApplicationEventTarget(); - - #endregion - #region --- UPP Event Handlers --- - - [DllImport(carbon)] - internal static extern IntPtr NewEventHandlerUPP(MacOSEventHandler handler); - - [DllImport(carbon)] - internal static extern void DisposeEventHandlerUPP(IntPtr userUPP); - - #endregion - #region --- Process Manager --- - - [DllImport(carbon)] - internal static extern int TransformProcessType(ref Carbon.ProcessSerialNumber psn, ProcessApplicationTransformState type); - [DllImport(carbon)] - internal static extern int GetCurrentProcess(ref Carbon.ProcessSerialNumber psn); - [DllImport(carbon)] - internal static extern int SetFrontProcess(ref Carbon.ProcessSerialNumber psn); - - #endregion - #region --- Setting Dock Tile --- - - [DllImport(carbon)] - internal extern static IntPtr CGColorSpaceCreateDeviceRGB(); - [DllImport(carbon)] - internal extern static IntPtr CGDataProviderCreateWithData(IntPtr info, IntPtr[] data, int size, IntPtr releasefunc); - [DllImport(carbon)] - internal extern static IntPtr CGImageCreate(int width, int height, int bitsPerComponent, int bitsPerPixel, int bytesPerRow, IntPtr colorspace, uint bitmapInfo, IntPtr provider, IntPtr decode, int shouldInterpolate, int intent); - [DllImport(carbon)] - internal extern static void SetApplicationDockTileImage(IntPtr imageRef); - [DllImport(carbon)] - internal extern static void RestoreApplicationDockTileImage(); - - #endregion - - [DllImport(carbon)] - static extern IntPtr GetControlBounds(IntPtr control, out Rect bounds); - - internal static Rect GetControlBounds(IntPtr control) - { - Rect retval; - GetControlBounds(control, out retval); - - return retval; - } - - [DllImport(carbon)] - internal static extern void RunApplicationEventLoop(); - - [DllImport(carbon)] - internal static extern void QuitApplicationEventLoop(); - - #region --- Menus --- - - [DllImport(carbon)] - internal static extern IntPtr AcquireRootMenu(); - - #endregion - - const string gestaltlib = "/System/Library/Frameworks/Carbon.framework/Versions/Current/Carbon"; - - [DllImport(gestaltlib)] - internal static extern OSStatus Gestalt(GestaltSelector selector, out int response); - } - - #endregion - } diff --git a/Source/OpenTK/Platform/MacOS/EventInfo.cs b/Source/OpenTK/Platform/MacOS/EventInfo.cs deleted file mode 100644 index 32c9d68..0000000 --- a/Source/OpenTK/Platform/MacOS/EventInfo.cs +++ /dev/null @@ -1,112 +0,0 @@ -#region License -// -// The Open Toolkit Library License -// -// Copyright (c) 2006 - 2010 the Open Toolkit library. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -// the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -// OTHER DEALINGS IN THE SOFTWARE. -// -#endregion - -// Created by Erik Ylvisaker on 3/17/08. - -using System; -using System.Collections.Generic; -using System.IO; -using System.Text; - -namespace OpenTK.Platform.MacOS.Carbon -{ - internal struct EventInfo - { - internal EventInfo(IntPtr eventRef) - { - this._eventClass = API.GetEventClass(eventRef); - this._eventKind = API.GetEventKind(eventRef); - } - - uint _eventKind; - EventClass _eventClass; - - public EventClass EventClass - { - get { return _eventClass; } - } - - public WindowEventKind WindowEventKind - { - get - { - if (EventClass == EventClass.Window) - return (WindowEventKind)_eventKind; - else - throw new InvalidCastException("Event is not a Window event."); - } - } - public KeyboardEventKind KeyboardEventKind - { - get - { - if (EventClass == EventClass.Keyboard) - return (KeyboardEventKind)_eventKind; - else - throw new InvalidCastException("Event is not a Keyboard event."); - } - } - public MouseEventKind MouseEventKind - { - get - { - if (EventClass == EventClass.Mouse) - return (MouseEventKind)_eventKind; - else - throw new InvalidCastException("Event is not an Mouse event."); - } - } - public AppEventKind AppEventKind - { - get - { - if (EventClass == EventClass.Application) - return (AppEventKind)_eventKind; - else - throw new InvalidCastException("Event is not an Application event."); - } - } - - - public override string ToString() - { - switch (EventClass) - { - case EventClass.Application: - return "Event: App " + AppEventKind.ToString(); - case EventClass.Keyboard: - return "Event: Keyboard " + KeyboardEventKind.ToString(); - case EventClass.Mouse: - return "Event: Mouse " + MouseEventKind.ToString(); - case EventClass.Window: - return "Event: Window " + WindowEventKind.ToString(); - } - - return "Event: Unknown Class " + EventClass.ToString() + " kind: " + _eventKind.ToString(); - } - } -}