home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tv20os2.zip / src / menu.cpp < prev    next >
C/C++ Source or Header  |  1998-01-19  |  2KB  |  78 lines

  1. /*
  2.  * menu.cc
  3.  *
  4.  * Turbo Vision - Version 2.0
  5.  *
  6.  * Copyright (c) 1994 by Borland International
  7.  * All Rights Reserved.
  8.  *
  9.  * Modified by Sergio Sigala <ssigala@globalnet.it>
  10.  */
  11.  
  12. #define Uses_TKeys
  13. #define Uses_TSubMenu
  14. #define Uses_TStatusDef
  15. #define Uses_TStatusItem
  16. #define Uses_TMenu
  17. #include <tvision/tv.h>
  18.  
  19. #include <string.h>
  20.  
  21. TSubMenu::TSubMenu( const char *nm, ushort key, ushort helpCtx ) :
  22.     TMenuItem( nm, 0, key, helpCtx )
  23. {
  24. }
  25.  
  26. TSubMenu& operator + ( TSubMenu& s, TMenuItem& i )
  27. {
  28.     TSubMenu *sub = &s;
  29.     while( sub->next != 0 )
  30.         sub = (TSubMenu *)(sub->next);
  31.  
  32.     if( sub->subMenu == 0 )
  33.         sub->subMenu = new TMenu( i );
  34.     else
  35.         {
  36.         TMenuItem *cur = sub->subMenu->items;
  37.         while( cur->next != 0 )
  38.             cur = cur->next;
  39.         cur->next = &i;
  40.         }
  41.     return s;
  42. }
  43.  
  44. TSubMenu& operator + ( TSubMenu& s1, TSubMenu& s2 )
  45. {
  46.     TMenuItem *cur = &s1;
  47.     while( cur->next != 0 )
  48.         cur = cur->next;
  49.     cur->next = &s2;
  50.     return s1;
  51. }
  52.  
  53. TStatusDef& operator + ( TStatusDef& s1, TStatusItem& s2 )
  54. {
  55.     TStatusDef *def = &s1;
  56.     while( def->next != 0 )
  57.         def = def->next;
  58.     if( def->items == 0 )
  59.         def->items = &s2;
  60.     else
  61.         {
  62.         TStatusItem *cur = def->items;
  63.         while( cur->next != 0 )
  64.             cur = cur->next;
  65.         cur->next = &s2;
  66.         }
  67.     return s1;
  68. }
  69.  
  70. TStatusDef& operator + ( TStatusDef& s1, TStatusDef& s2 )
  71. {
  72.     TStatusDef *cur = &s1;
  73.     while( cur->next != 0 )
  74.         cur = cur->next;
  75.     cur->next = &s2;
  76.     return s1;
  77. }
  78.