?? tkmacmenus.c
字號:
/* * tkMacMenus.c -- * * These calls set up and manage the menubar for the * Macintosh version of Tk. * * Copyright (c) 1995-1996 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: @(#) tkMacMenus.c 1.38 97/10/31 17:37:03 */#include "tcl.h"#include "tclMacInt.h"#include "tk.h"#include "tkInt.h"#include "tkMacInt.h"/* * The define Status defined by Xlib.h conflicts with the function Status * defined by Devices.h. We undefine it here to compile. */#undef Status#include <Devices.h>#include <Menus.h>#include <Memory.h>#include <SegLoad.h>#include <StandardFile.h>#include <ToolUtils.h>#include <Balloons.h>#define kAppleMenu 256#define kAppleAboutItem 1#define kFileMenu 2#define kEditMenu 3#define kSourceItem 1#define kCloseItem 2#define kQuitItem 4#define EDIT_CUT 1#define EDIT_COPY 2#define EDIT_PASTE 3#define EDIT_CLEAR 4MenuHandle tkAppleMenu;MenuHandle tkFileMenu;MenuHandle tkEditMenu;static Tcl_Interp * gInterp; /* Interpreter for this application. */static void GenerateEditEvent _ANSI_ARGS_((int flag));static void SourceDialog _ANSI_ARGS_((void));/* *---------------------------------------------------------------------- * * TkMacHandleMenuSelect -- * * Handles events that occur in the Menu bar. * * Results: * None. * * Side effects: * None. * *---------------------------------------------------------------------- */void TkMacHandleMenuSelect( long mResult, int optionKeyPressed){ short theItem = LoWord(mResult); short theMenu = HiWord(mResult); Str255 name; Tk_Window tkwin; Window window; if (mResult == 0) { TkMacHandleTearoffMenu(); TkMacClearMenubarActive(); return; } switch (theMenu) { case kAppleMenu: switch (theItem) { case kAppleAboutItem: { Tcl_CmdInfo dummy; if (optionKeyPressed || gInterp == NULL || Tcl_GetCommandInfo(gInterp, "tkAboutDialog", &dummy) == 0) { TkAboutDlg(); } else { Tcl_Eval(gInterp, "tkAboutDialog"); } break; } default: GetItem(tkAppleMenu, theItem, name); HiliteMenu(0); OpenDeskAcc(name); return; } break; case kFileMenu: switch (theItem) { case kSourceItem: /* TODO: source script */ SourceDialog(); break; case kCloseItem: /* Send close event */ window = TkMacGetXWindow(FrontWindow()); tkwin = Tk_IdToWindow(tkDisplayList->display, window); TkGenWMDestroyEvent(tkwin); break; case kQuitItem: /* Exit */ if (optionKeyPressed || gInterp == NULL) { Tcl_Exit(0); } else { Tcl_Eval(gInterp, "exit"); } break; } break; case kEditMenu: /* * This implementation just send keysyms * the Tk thinks are associated with function keys that * do Cut, Copy & Paste on a Sun keyboard. */ GenerateEditEvent(theItem); break; default: TkMacDispatchMenuEvent(theMenu, theItem); TkMacClearMenubarActive(); break; } /* * Finally we unhighlight the menu. */ HiliteMenu(0);} /* TkMacHandleMenuSelect *//* *---------------------------------------------------------------------- * * TkMacInitMenus -- * * This procedure initializes the Macintosh menu bar. * * Results: * None. * * Side effects: * None. * *---------------------------------------------------------------------- */void TkMacInitMenus( Tcl_Interp *interp){ gInterp = interp; /* * At this point, InitMenus() should have already been called. */ if (TkMacUseMenuID(256) != TCL_OK) { panic("Menu ID 256 is already in use!"); } tkAppleMenu = NewMenu(256, "\p\024"); if (tkAppleMenu == NULL) { panic("memory - menus"); } InsertMenu(tkAppleMenu, 0); AppendMenu(tkAppleMenu, "\pAbout Tcl & Tk
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -