MCPcopy Create free account
hub / github.com/NetHack/NetHack / mac_add_menu

Function mac_add_menu

outdated/sys/mac/macwin.c:1938–2015  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1936}
1937
1938void
1939mac_add_menu(winid win, int glyph, const anything *any, CHAR_P menuChar,
1940 CHAR_P groupAcc, int attr, const char *inStr, unsigned int itemflags)
1941{
1942#if defined(__SC__) || defined(__MRC__)
1943#pragma unused(glyph)
1944#endif
1945 NhWindow *aWin = &theWindows[win];
1946 const char *str;
1947 char locStr[4 + BUFSZ];
1948 MacMHMenuItem *item;
1949 int preselected = ((itemflags & MENU_ITEMFLAGS_SELECTED) != 0);
1950
1951 if (!inStr)
1952 return;
1953
1954 if (any->a_void != 0) {
1955#define kMenuSizeBump 26
1956 if (!aWin->miSize) {
1957 aWin->menuInfo = (MacMHMenuItem **) NewHandle(
1958 sizeof(MacMHMenuItem) * kMenuSizeBump);
1959 if (!aWin->menuInfo) {
1960 error("Can't alloc menu handle");
1961 return;
1962 }
1963 aWin->menuSelected =
1964 (short **) NewHandle(sizeof(short) * kMenuSizeBump);
1965 if (!aWin->menuSelected) {
1966 error("Can't alloc menu select handle");
1967 return;
1968 }
1969 aWin->miSize = kMenuSizeBump;
1970 }
1971
1972 if (aWin->miLen >= aWin->miSize) {
1973 SetHandleSize((Handle) aWin->menuInfo,
1974 sizeof(MacMHMenuItem)
1975 * (aWin->miLen + kMenuSizeBump));
1976 if (MemError()) {
1977 error("Can't resize menu handle");
1978 return;
1979 }
1980 SetHandleSize((Handle) aWin->menuSelected,
1981 sizeof(short) * (aWin->miLen + kMenuSizeBump));
1982 if (MemError()) {
1983 error("Can't resize menu select handle");
1984 return;
1985 }
1986 aWin->miSize += kMenuSizeBump;
1987 }
1988
1989 if (menuChar == 0) {
1990 if (('a' <= aWin->menuChar && aWin->menuChar <= 'z')
1991 || ('A' <= aWin->menuChar && aWin->menuChar <= 'Z')) {
1992 menuChar = aWin->menuChar++;
1993 if (menuChar == 'z')
1994 aWin->menuChar = 'A';
1995 }

Callers

nothing calls this directly

Calls 1

errorFunction · 0.70

Tested by

no test coverage detected