| 518 | } |
| 519 | |
| 520 | void |
| 521 | onMSNHCommand(HWND hWnd, WPARAM wParam, LPARAM lParam) |
| 522 | { |
| 523 | PNHMenuWindow data; |
| 524 | |
| 525 | data = (PNHMenuWindow) GetWindowLong(hWnd, GWL_USERDATA); |
| 526 | switch (wParam) { |
| 527 | case MSNH_MSG_PUTSTR: { |
| 528 | PMSNHMsgPutstr msg_data = (PMSNHMsgPutstr) lParam; |
| 529 | HWND text_view; |
| 530 | |
| 531 | if (data->type != MENU_TYPE_TEXT) |
| 532 | SetMenuType(hWnd, MENU_TYPE_TEXT); |
| 533 | |
| 534 | if (!data->text.text) { |
| 535 | data->text.text = mswin_init_text_buffer( |
| 536 | program_state.gameover ? FALSE : GetNHApp()->bWrapText); |
| 537 | if (!data->text.text) |
| 538 | break; |
| 539 | } |
| 540 | |
| 541 | mswin_add_text(data->text.text, msg_data->attr, msg_data->text); |
| 542 | |
| 543 | text_view = GetDlgItem(hWnd, IDC_MENU_TEXT); |
| 544 | if (!text_view) |
| 545 | panic("cannot get text view window"); |
| 546 | mswin_render_text(data->text.text, text_view); |
| 547 | } break; |
| 548 | |
| 549 | case MSNH_MSG_STARTMENU: { |
| 550 | int i; |
| 551 | |
| 552 | if (data->type != MENU_TYPE_MENU) |
| 553 | SetMenuType(hWnd, MENU_TYPE_MENU); |
| 554 | |
| 555 | if (data->menu.items) |
| 556 | free(data->menu.items); |
| 557 | data->how = PICK_NONE; |
| 558 | data->menu.items = NULL; |
| 559 | data->menu.size = 0; |
| 560 | data->menu.allocated = 0; |
| 561 | data->done = 0; |
| 562 | data->result = 0; |
| 563 | for (i = 0; i < NUMTABS; ++i) |
| 564 | data->menu.tab_stop_size[i] = MIN_TABSTOP_SIZE; |
| 565 | } break; |
| 566 | |
| 567 | case MSNH_MSG_ADDMENU: { |
| 568 | PMSNHMsgAddMenu msg_data = (PMSNHMsgAddMenu) lParam; |
| 569 | char *p, *p1; |
| 570 | int new_item; |
| 571 | HDC hDC; |
| 572 | int column; |
| 573 | HFONT saveFont; |
| 574 | |
| 575 | if (data->type != MENU_TYPE_MENU) |
| 576 | break; |
| 577 | if (strlen(msg_data->str) == 0) |
no test coverage detected