Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
menu.c
/* |
File: menu.c |
Contains: |
Written by: EL |
Copyright: Copyright © 1991-1999 by Apple Computer, Inc., All Rights Reserved. |
You may incorporate this Apple sample source code into your program(s) without |
restriction. This Apple sample source code has been provided "AS IS" and the |
responsibility for its operation is yours. You are not permitted to redistribute |
this Apple sample source code as "Apple sample source code" after having made |
changes. If you're going to re-distribute the source, we require that you make |
it clear in the source that the code was descended from Apple sample source |
code, but that you've made changes. |
Change History (most recent first): |
08/2000 JM Carbonized, non-Carbon code is commented out |
for demonstration purposes. |
7/16/1999 KG Updated for Metrowerks Codewarror Pro 2.1 |
*/ |
#include "out.h" |
#include <Resources.h> |
#include <Menus.h> |
MenuHandle appleMenu, fileMenu, patMenu, animMenu; |
enum { |
appleID = 1, |
fileID, |
patID, |
animID |
}; |
enum { |
quitItem = 1 |
}; |
enum { |
pat1Item = 1, |
pat2Item, |
pat3Item, |
pat4Item, |
pat5Item, |
pat6Item, |
pat7Item, |
pat8Item |
}; |
enum { |
startItem = 1, |
stopItem, |
forItem = 4, |
revItem, |
colorItem = 7, |
grayItem, |
resetItem |
}; |
void setUpMenus() |
{ |
InsertMenu( appleMenu = NewMenu( appleID, "\p\024" ), 0 ); |
InsertMenu( fileMenu = NewMenu( fileID, "\pFile" ), 0 ); |
InsertMenu( patMenu = NewMenu( patID, "\pDemo" ), 0 ); |
InsertMenu( animMenu = NewMenu( animID, "\pAnimation" ), 0 ); |
DrawMenuBar(); |
AppendMenu( appleMenu, "\pAbout Out of This GWorld;(-" ); |
AppendResMenu( appleMenu, 'DRVR' ); |
AppendMenu( fileMenu, "\pQuit/Q" ); |
AppendMenu( patMenu, "\pColor Scale/1;Color Wheels/2;Color Rings/3;Color Gears/4;Color Curves/5;Color Balls/6;Color Wave/7;Color Text/8" ); |
AppendMenu( animMenu, "\pStart Animation/A;Stop Animation/S;(-;Forward/F;Reverse/R;(-;Color Palette/C;Gray Palette/G;Reset Palette/R" ); |
} |
void adjustMenus() |
{ |
//register WindowPeek wp = (WindowPeek)FrontWindow(); |
register WindowPtr wp = FrontWindow(); |
//short kind = wp ? wp->windowKind : 0; |
short kind = GetWindowKind(wp); |
Boolean DA = kind < 0; |
enable( fileMenu, quitItem, true ); |
enable( patMenu, pat1Item, gCurrentPat != pat1Item ); |
enable( patMenu, pat2Item, gCurrentPat != pat2Item ); |
enable( patMenu, pat3Item, gCurrentPat != pat3Item ); |
enable( patMenu, pat4Item, gCurrentPat != pat4Item ); |
enable( patMenu, pat5Item, gCurrentPat != pat5Item ); |
enable( patMenu, pat6Item, gCurrentPat != pat6Item ); |
enable( patMenu, pat7Item, gCurrentPat != pat7Item ); |
enable( patMenu, pat8Item, gCurrentPat != pat8Item ); |
enable( animMenu, startItem, gCurrentMove != START ); |
enable( animMenu, stopItem, gCurrentMove != STOP ); |
enable( animMenu, forItem, gCurrentDir != FORWARD ); |
enable( animMenu, revItem, gCurrentDir != REVERSE ); |
enable( animMenu, colorItem, gCurrentColor != COLOR ); |
enable( animMenu, grayItem, gCurrentColor != GRAY ); |
enable( animMenu, resetItem, true ); |
} |
void enable( menu, item, ok ) |
MenuHandle menu; |
{ |
if (ok) |
//EnableItem( menu, item ); |
EnableMenuItem( menu, item ); |
else |
//DisableItem( menu, item ); |
DisableMenuItem( menu, item ); |
} |
void handleMenu( mSelect ) |
long mSelect; |
{ |
int menuID = HiWord( mSelect ); |
int menuItem = LoWord( mSelect ); |
//GrafPtr savePort; |
//Str255 name; |
//RGBColor aColor; |
switch (menuID) |
{ |
case appleID: |
if (menuItem == 1) |
{ |
gCurrentPat = -1; |
defineColorPalette(); |
updatePalette(); |
createImage(); |
drawImage(); |
} |
else |
{ |
/*GetPort( &savePort ); |
GetMenuItemText( appleMenu, menuItem, name ); |
OpenDeskAcc( (ConstStr255Param)name ); |
SetPort( savePort );*/ |
} |
break; |
case fileID: |
switch (menuItem) |
{ |
case quitItem: |
cleanUp(); |
break; |
} |
break; |
case patID: |
gCurrentPat = menuItem; |
createImage(); |
drawImage(); |
break; |
case animID: |
switch (menuItem) |
{ |
case startItem: |
gCurrentMove = START; |
break; |
case stopItem: |
gCurrentMove = STOP; |
break; |
case forItem: |
gCurrentDir = FORWARD; |
break; |
case revItem: |
gCurrentDir = REVERSE; |
break; |
case colorItem: |
defineColorPalette(); |
updatePalette(); |
break; |
case grayItem: |
defineGrayPalette(); |
updatePalette(); |
break; |
case resetItem: |
if (gCurrentColor == COLOR || gCurrentPat == -1) |
defineColorPalette(); |
else |
defineGrayPalette(); |
updatePalette(); |
break; |
} |
break; |
} |
HiliteMenu( 0 ); |
} |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-03-12