⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tkmacmdef.c

📁 linux系统下的音频通信
💻 C
字号:
/* * TkMacMDEF.c -- * *	This module is implements the MDEF for tkMenus. The address of the *	real entry proc will be blasted into the MDEF. * * Copyright (c) 1996 by Sun Microsystems, Inc. * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * SCCS: @(#) tkMacMDEF.c 1.5 97/07/11 %V% */#define MAC_TCL#define NeedFunctionPrototypes 1#define NeedWidePrototypes 0#include <Menus.h>#include <LowMem.h>#include "tkMacInt.h"/* * The following structure is built from assembly equates in MPW 3.0  * AIncludes file: "Private.a." We're forced to update several locations not * documented in "Inside Mac" to make our MDEF behave properly with hierarchical  * menus. */#if STRUCTALIGNMENTSUPPORTED#pragma options align=mac68k#endiftypedef struct mbPrivate {    Byte unknown[6];    Rect mbItemRect; 		/* rect of currently chosen menu item */} mbPrivate;#if STRUCTALIGNMENTSUPPORTED#pragma options align=reset#endif/* * We are forced to update a low-memory global to get cascades to work. This * global does not have a LMEquate associated with it. */#define SELECTRECT (*(Rect *)0x09fa) 	/* Menu select seems to need this */#define	MBSAVELOC (*(short *)0x0B5C) 	/* address of handle to mbarproc private data redefined below */pascal void		main _ANSI_ARGS_((short message,			    MenuHandle menu, Rect *menuRect,			    Point hitPt, short *whichItem));/* *---------------------------------------------------------------------- * * TkMacStdMenu -- * *	The dispatch routine called by the system to handle menu drawing, *	scrolling, etc. This is a stub; the address of the real routine *	is blasted in. The real routine will be a UniversalProcPtr, *	which will give the real dispatch routine in Tk globals *	and the like. * * Results: *	None. * * Side effects: *	This routine causes menus to be drawn and will certainly allocate *	memory as a result. Also, the menu can scroll up and down, and *	various other interface actions can take place * *---------------------------------------------------------------------- */pascal voidmain(    short message,		/* What action are we taking? */    MenuHandle menu,		/* The menu we are working with */    Rect *menuRect,		/* A pointer to the rect we are working with */    Point hitPt,		/* Where the mouse was hit for appropriate    				 * messages. */    short *whichItemPtr)	/* Output result. Which item was hit by    				 * the user? */{	    /*     * The constant 'MDEF' is what will be punched during menu intialization.     */    TkMenuDefProcPtr procPtr = (TkMenuDefProcPtr) 'MDEF';    TkMenuLowMemGlobals globals;    short oldItem;       globals.menuDisable = LMGetMenuDisable();    globals.menuTop = LMGetTopMenuItem();    globals.menuBottom = LMGetAtMenuBottom();    if (MBSAVELOC == -1) {        globals.itemRect = (**(mbPrivate***)&MBSAVELOC)->mbItemRect;    }    if (message == mChooseMsg) {        oldItem = *whichItemPtr;    }        TkCallMenuDefProc(procPtr, message, menu, menuRect, hitPt, whichItemPtr,    	    &globals);        LMSetMenuDisable(globals.menuDisable);    LMSetTopMenuItem(globals.menuTop);    LMSetAtMenuBottom(globals.menuBottom);    if ((message == mChooseMsg) && (oldItem != *whichItemPtr)     	    && (MBSAVELOC != -1)) {    	(**(mbPrivate***)&MBSAVELOC)->mbItemRect = globals.itemRect;      	SELECTRECT = globals.itemRect;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -