diff options
Diffstat (limited to 'macosx/tkMacOSXCarbonEvents.c')
-rw-r--r-- | macosx/tkMacOSXCarbonEvents.c | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/macosx/tkMacOSXCarbonEvents.c b/macosx/tkMacOSXCarbonEvents.c new file mode 100644 index 0000000..c80ed61 --- /dev/null +++ b/macosx/tkMacOSXCarbonEvents.c @@ -0,0 +1,128 @@ +/* + * tkMacOSXCarbonEvents.c -- + * + * This file implements functions that register for and handle + * various Carbon Events. + * + * Copyright 2001, Apple Computer, Inc. + * + * The following terms apply to all files originating from Apple + * Computer, Inc. ("Apple") and associated with the software + * unless explicitly disclaimed in individual files. + * + * + * Apple hereby grants permission to use, copy, modify, + * distribute, and license this software and its documentation + * for any purpose, provided that existing copyright notices are + * retained in all copies and that this notice is included + * verbatim in any distributions. No written agreement, license, + * or royalty fee is required for any of the authorized + * uses. Modifications to this software may be copyrighted by + * their authors and need not follow the licensing terms + * described here, provided that the new terms are clearly + * indicated on the first page of each file where they apply. + * + * + * IN NO EVENT SHALL APPLE, THE AUTHORS OR DISTRIBUTORS OF THE + * SOFTWARE BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, + * INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF + * THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, + * EVEN IF APPLE OR THE AUTHORS HAVE BEEN ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. APPLE, THE AUTHORS AND + * DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS + * SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND APPLE,THE + * AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE + * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * GOVERNMENT USE: If you are acquiring this software on behalf + * of the U.S. government, the Government shall have only + * "Restricted Rights" in the software and related documentation + * as defined in the Federal Acquisition Regulations (FARs) in + * Clause 52.227.19 (c) (2). If you are acquiring the software + * on behalf of the Department of Defense, the software shall be + * classified as "Commercial Computer Software" and the + * Government shall have only "Restricted Rights" as defined in + * Clause 252.227-7013 (c) (1) of DFARs. Notwithstanding the + * foregoing, the authors grant the U.S. Government and others + * acting in its behalf permission to use and distribute the + * software in accordance with the terms specified in this + * license. + */ + +#include "tkInt.h" +#include "tkMacOSXInt.h" + +static EventHandlerRef ApplicationCarbonEventHandler; + +/* Definitions of functions used only in this file */ +static OSStatus AppEventHandlerProc ( + EventHandlerCallRef callRef, + EventRef inEvent, + void *userData); + + +/* + *---------------------------------------------------------------------- + * + * AppEventHandlerProc -- + * + * This procedure is the Application CarbonEvent + * handler. + * + * Results: + * None. + * + * Side effects: + * Dispatches CarbonEvents. + * + *---------------------------------------------------------------------- + */ + +static OSStatus +AppEventHandlerProc ( + EventHandlerCallRef callRef, + EventRef inEvent, + void *userData) +{ + return eventNotHandledErr; +} + +/* + *---------------------------------------------------------------------- + * + * TkMacOSXInitCarbonEvents -- + * + * This procedure initializes the Application CarbonEvent + * handler. + * + * Results: + * None. + * + * Side effects: + * A handler for Application targeted Carbon Events is registered. + * + *---------------------------------------------------------------------- + */ + +void +TkMacOSXInitCarbonEvents ( + Tcl_Interp *interp) +{ + EventTypeSpec inList[1]; + + InstallEventHandler(GetApplicationEventTarget(), + NewEventHandlerUPP(AppEventHandlerProc), + 0, NULL, NULL, &ApplicationCarbonEventHandler); + + inList[0].eventClass = kEventClassWindow; + inList[0].eventKind = kEventWindowExpanded; + AddEventTypesToHandler (ApplicationCarbonEventHandler, 1, inList); + + inList[0].eventClass = kEventClassWindow; + inList[0].eventKind = kEventWindowCollapsed; + AddEventTypesToHandler (ApplicationCarbonEventHandler, 1, inList); + +} + |