NotificationMon.ƒ/Source/Menu.c

/*      Menu.c      This handles Menu command dispatching */
 
#include "Event.h"
#include "Menu.h"
#include "NotificationMon.h"
 
int MenuNum,MenuItemNum;
Boolean MenuSelected = false;
 
BuildMenuBars(void)
{
    Handle mbar;
    
    mbar=GetNewMBar(128);
    if(mbar)
    {
        SetMenuBar(mbar);
        AddResMenu(GetMHandle(APPLE_MENU),'DRVR');
        DrawMenuBar();
    }
    else
    {
        DebugStr("\pMenubar resouce not loaded.  Aborting!");
        ExitToShell();
    }
}
 
MenuDispatch(int menuNumber,int itemNumber)
{
    if(menuNumber != 0)
    {
        MenuNum = menuNumber;
        MenuItemNum = itemNumber;
        MenuSelected = true;
        switch(menuNumber)
        {
            case APPLE_MENU :   ChooseApple(itemNumber);
                                break;
            case FILE_MENU :    ChooseFile(itemNumber);
                                break;
            case EDIT_MENU :    ChooseEdit(itemNumber);
                                break;
            default :           break;
        }
    }
}
 
ChooseApple(int itemNumber)
{
    if(itemNumber == 1)
    {
        AboutBox();
    }
    else
    {
        RunDeskAccesory(itemNumber);
    }
}
 
RunDeskAccesory(int item)
{
    GrafPtr     savePort;
    int         daRefNum;
    Str255      daName;
    
    GetPort(&savePort);
    GetItem(GetMHandle(APPLE_MENU), item, &daName);
    daRefNum = OpenDeskAcc(&daName);
    SetPort(savePort);
}
 
ChooseFile(int item)
{
    switch(item)
    {
        case FILE_RESET :   DoNotificationReset();
                            break;
        case FILE_PREFS :   DoNotificationPrefsDialog(MainView);
                            break;
        case FILE_QUIT  :   Done = true;
                            break;
        default:            break;
    }
}
 
 
/*
    Does not support edit menu.  Assumes that if the edit menu is enabled
    that it is for desk accessories.  (pre MF or system 7, or MF with optionkey)
*/
ChooseEdit(int item)
{
    SystemEdit(item-1);
}