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

Function mac_create_nhwindow

outdated/sys/mac/macwin.c:740–884  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

738}
739
740winid
741mac_create_nhwindow(int kind)
742{
743 int i;
744 NhWindow *aWin;
745 FontInfo fi;
746
747 if (kind < NHW_BASE || kind > NHW_TEXT) {
748 error("cre_win: Invalid kind %d.", kind);
749 return WIN_ERR;
750 }
751
752 for (i = 0; i < NUM_MACWINDOWS; i++) {
753 if (!theWindows[i].its_window)
754 break;
755 }
756 if (i >= NUM_MACWINDOWS) {
757 error("cre_win: Win full; freeing extras");
758 for (i = 0; i < NUM_MACWINDOWS; i++) {
759 if (IsWindowVisible(theWindows[i].its_window) || i == WIN_INVEN
760 || GetWindowKind(theWindows[i].its_window)
761 != WIN_BASE_KIND + NHW_MENU
762 && GetWindowKind(theWindows[i].its_window)
763 != WIN_BASE_KIND + NHW_TEXT)
764 continue;
765 mac_destroy_nhwindow(i);
766 goto got1;
767 }
768 error("cre_win: Out of ids!");
769 return WIN_ERR;
770 }
771
772got1:
773 aWin = &theWindows[i];
774 aWin->windowTextLen = 0L;
775 aWin->scrollBar = (ControlHandle) 0;
776 aWin->menuInfo = 0;
777 aWin->menuSelected = 0;
778 aWin->miLen = 0;
779 aWin->miSize = 0;
780 aWin->menuChar = 'a';
781
782 dprintf("cre_win: New kind %d", kind);
783
784 if (kind == NHW_BASE || kind == NHW_MAP || kind == NHW_STATUS) {
785 short x_sz, x_sz_p, y_sz, y_sz_p;
786 if (kind != NHW_BASE) {
787 if (i != tty_create_nhwindow(kind)) {
788 dprintf("cre_win: error creating kind %d", kind);
789 }
790 if (kind == NHW_MAP) {
791 wins[i]->offy =
792 0; /* the message box is in a separate window */
793 }
794 }
795 aWin->its_window = _mt_window;
796 get_tty_metrics(aWin->its_window, &x_sz, &y_sz, &x_sz_p, &y_sz_p,
797 &aWin->font_number, &aWin->font_size,

Callers 1

mac_init_nhwindowsFunction · 0.85

Calls 7

mac_destroy_nhwindowFunction · 0.85
dprintfFunction · 0.85
tty_create_nhwindowFunction · 0.85
get_tty_metricsFunction · 0.85
mac_clear_nhwindowFunction · 0.85
errorFunction · 0.70
TextFontClass · 0.50

Tested by

no test coverage detected