diff options
author | scaraveo <unknown> | 2007-06-01 00:57:26 +0000 |
---|---|---|
committer | scaraveo <unknown> | 2007-06-01 00:57:26 +0000 |
commit | 710f716e96f6e9ee9eb410b343b78b3c4d95bc46 (patch) | |
tree | 55e5547869daa67b6a639c89825058baf75545c7 /macosx/TCarbonEvent.h | |
parent | cac98b923422b91839f7c285a9b78ea282cd6f0a (diff) | |
download | scintilla-mirror-710f716e96f6e9ee9eb410b343b78b3c4d95bc46.tar.gz |
integrate OS X support for scintilla. a big patch with a little commit message :)
- now uses namespaces (optionally for non-os x) to avoid conflicts with OS X libraries
- several fixes in the OS X layer since the branch was commited in 2005
- used in Komodo since 2005, so pretty stable
Diffstat (limited to 'macosx/TCarbonEvent.h')
-rw-r--r-- | macosx/TCarbonEvent.h | 230 |
1 files changed, 230 insertions, 0 deletions
diff --git a/macosx/TCarbonEvent.h b/macosx/TCarbonEvent.h new file mode 100644 index 000000000..d40da9795 --- /dev/null +++ b/macosx/TCarbonEvent.h @@ -0,0 +1,230 @@ +/* + File: TCarbonEvent.h + + Version: 1.0 + + Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. + ("Apple") in consideration of your agreement to the following terms, and your + use, installation, modification or redistribution of this Apple software + constitutes acceptance of these terms. If you do not agree with these terms, + please do not use, install, modify or redistribute this Apple software. + + In consideration of your agreement to abide by the following terms, and subject + to these terms, Apple grants you a personal, non-exclusive license, under AppleÕs + copyrights in this original Apple software (the "Apple Software"), to use, + reproduce, modify and redistribute the Apple Software, with or without + modifications, in source and/or binary forms; provided that if you redistribute + the Apple Software in its entirety and without modifications, you must retain + this notice and the following text and disclaimers in all such redistributions of + the Apple Software. Neither the name, trademarks, service marks or logos of + Apple Computer, Inc. may be used to endorse or promote products derived from the + Apple Software without specific prior written permission from Apple. Except as + expressly stated in this notice, no other rights or licenses, express or implied, + are granted by Apple herein, including but not limited to any patent rights that + may be infringed by your derivative works or by other works in which the Apple + Software may be incorporated. + + The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO + WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED + WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN + COMBINATION WITH YOUR PRODUCTS. + + IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION + OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT + (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Copyright © 2002 Apple Computer, Inc., All Rights Reserved +*/ + +#ifndef TCarbonEvent_H_ +#define TCarbonEvent_H_ + +#include <Carbon/Carbon.h> + +class TCarbonEvent +{ +public: + // Construction/Destruction + TCarbonEvent( + UInt32 inClass, + UInt32 inKind ); + TCarbonEvent( + EventRef inEvent ); + virtual ~TCarbonEvent(); + + UInt32 GetClass() const; + UInt32 GetKind() const; + + // Time + void SetTime( + EventTime inTime ); + EventTime GetTime() const; + + // Retention + void Retain(); + void Release(); + + // Accessors + operator EventRef&() + { return fEvent; }; + EventRef GetEventRef() + { return fEvent; } + + // Posting + OSStatus PostToQueue( + EventQueueRef inQueue, + EventPriority inPriority = kEventPriorityStandard ); + + // Parameters + OSStatus SetParameter( + EventParamName inName, + EventParamType inType, + UInt32 inSize, + const void* inData ); + OSStatus GetParameter( + EventParamName inName, + EventParamType inType, + UInt32 inBufferSize, + void* outData ); + + OSStatus GetParameterType( + EventParamName inName, + EventParamType* outType ); + OSStatus GetParameterSize( + EventParamName inName, + UInt32* outSize ); + + // Simple parameters + OSStatus SetParameter( + EventParamName inName, + Boolean inValue ); + OSStatus GetParameter( + EventParamName inName, + Boolean* outValue ); + + OSStatus SetParameter( + EventParamName inName, + bool inValue ); + OSStatus GetParameter( + EventParamName inName, + bool* outValue ); + + OSStatus SetParameter( + EventParamName inName, + Point inPt ); + OSStatus GetParameter( + EventParamName inName, + Point* outPt ); + + OSStatus SetParameter( + EventParamName inName, + const HIPoint& inPt ); + + OSStatus GetParameter( + EventParamName inName, + HIPoint* outPt ); + + OSStatus SetParameter( + EventParamName inName, + const Rect& inRect ); + OSStatus GetParameter( + EventParamName inName, + Rect* outRect ); + + OSStatus SetParameter( + EventParamName inName, + const HIRect& inRect ); + OSStatus GetParameter( + EventParamName inName, + HIRect* outRect ); + + OSStatus SetParameter( + EventParamName inName, + const HISize& inSize ); + OSStatus GetParameter( + EventParamName inName, + HISize* outSize ); + + OSStatus SetParameter( + EventParamName inName, + RgnHandle inRegion ); + OSStatus GetParameter( + EventParamName inName, + RgnHandle* outRegion ); + + OSStatus SetParameter( + EventParamName inName, + WindowRef inWindow ); + OSStatus GetParameter( + EventParamName inName, + WindowRef* outWindow ); + + OSStatus SetParameter( + EventParamName inName, + ControlRef inControl ); + OSStatus GetParameter( + EventParamName inName, + ControlRef* outControl ); + + OSStatus SetParameter( + EventParamName inName, + MenuRef inMenu ); + OSStatus GetParameter( + EventParamName inName, + MenuRef* outMenu ); + + OSStatus SetParameter( + EventParamName inName, + DragRef inDrag ); + OSStatus GetParameter( + EventParamName inName, + DragRef* outDrag ); + + OSStatus SetParameter( + EventParamName inName, + UInt32 inValue ); + OSStatus GetParameter( + EventParamName inName, + UInt32* outValue ); + + OSStatus SetParameter( + EventParamName inName, + const HICommand& inValue ); + OSStatus GetParameter( + EventParamName inName, + HICommand* outValue ); + + OSStatus SetParameter( + EventParamName inName, + const ControlPartCode& inValue ); + OSStatus GetParameter( + EventParamName inName, + ControlPartCode* outValue ); + + // Template parameters + template <class T> OSStatus SetParameter( + EventParamName inName, + EventParamType inType, + const T& inValue ) + { + return SetParameter( inName, inType, sizeof( T ), &inValue ); + } + + template <class T> OSStatus GetParameter( + EventParamName inName, + EventParamType inType, + T* outValue ) + { + return GetParameter( inName, inType, sizeof( T ), outValue ); + } + +private: + EventRef fEvent; +}; + +#endif // TCarbonEvent_H_ |