| 551 | } |
| 552 | |
| 553 | static void |
| 554 | adjustGUI() |
| 555 | { |
| 556 | static short oldMenubar = mbar_Init; /* force initial update */ |
| 557 | short newMenubar; |
| 558 | WindowPeek frontWindow; |
| 559 | |
| 560 | /* oldCursor is external so it can be reset in endRecover() */ |
| 561 | static short newCursor = curs_Init; |
| 562 | unsigned long timeNow; |
| 563 | short useArrow; |
| 564 | |
| 565 | /* adjust menubar 1st */ |
| 566 | newMenubar = in.Recover ? mbarRecover : mbarAppl; |
| 567 | |
| 568 | /* desk accessories take precedence */ |
| 569 | if (frontWindow = (WindowPeek) FrontWindow()) |
| 570 | if (frontWindow->windowKind < 0) |
| 571 | newMenubar = mbarDA; |
| 572 | |
| 573 | if (newMenubar != oldMenubar) { |
| 574 | /* adjust menus */ |
| 575 | switch (oldMenubar = newMenubar) { |
| 576 | case mbarAppl: |
| 577 | EnableItem(mHnd[menuFile], mitmOpen); |
| 578 | SetItemMark(mHnd[menuFile], mitmOpen, noMark); |
| 579 | DisableItem(mHnd[menuFile], mitmClose_DA); |
| 580 | DisableItem(mHnd[menuEdit], 0); |
| 581 | break; |
| 582 | |
| 583 | case mbarRecover: |
| 584 | DisableItem(mHnd[menuFile], mitmOpen); |
| 585 | SetItemMark(mHnd[menuFile], mitmOpen, checkMark); |
| 586 | DisableItem(mHnd[menuFile], mitmClose_DA); |
| 587 | DisableItem(mHnd[menuEdit], 0); |
| 588 | break; |
| 589 | |
| 590 | case mbarDA: |
| 591 | DisableItem(mHnd[menuFile], mitmOpen); |
| 592 | EnableItem(mHnd[menuFile], mitmClose_DA); |
| 593 | EnableItem(mHnd[menuEdit], 0); |
| 594 | break; |
| 595 | } |
| 596 | |
| 597 | DrawMenuBar(); |
| 598 | } |
| 599 | |
| 600 | /* now adjust the cursor */ |
| 601 | if (useArrow = (!in.Recover || (newMenubar == mbarDA))) |
| 602 | newCursor = curs_Init; |
| 603 | else if ((timeNow = TickCount()) >= timeCursor) /* spin cursor */ |
| 604 | { |
| 605 | timeCursor = timeNow + CURS_FRAME; |
| 606 | if (++newCursor >= curs_Total) |
| 607 | newCursor = 0; |
| 608 | } |
| 609 | |
| 610 | if (newCursor != oldCursor) { |