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

  1. /*
  2.  * misc.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.  * Little files are merged here.
  12.  */
  13.  
  14. #define Uses_TGroup
  15. #define Uses_TEvent
  16. #define Uses_TObject
  17. #define Uses_TVMemMgr
  18. #define Uses_TView
  19. #define Uses_pstream
  20. #include <tvision/tv.h>
  21.  
  22. #include <string.h>
  23.  
  24. /* from MISC.CPP */
  25.  
  26. void *message( TView *receiver, ushort what, ushort command, void *infoPtr)
  27. {
  28.     if( receiver == 0 )
  29.         return 0;
  30.  
  31.     TEvent event;
  32.     event.what = what;
  33.     event.message.command = command;
  34.     event.message.infoPtr = infoPtr;
  35.     receiver->handleEvent( event );
  36.     if( event.what == evNothing )
  37.         return event.message.infoPtr;
  38.     else
  39.         return 0;
  40. }
  41.  
  42. Boolean lowMemory()
  43. {
  44.     return Boolean(TVMemMgr::safetyPoolExhausted());
  45. }
  46.  
  47. /* from NEWSTR.CPP */
  48.  
  49. char *newStr( const char *s )
  50. {
  51.     if( s == 0 )
  52.         return 0;
  53.     char *temp = new char[ strlen(s)+1 ];
  54.     strcpy( temp, s );
  55.     return temp;
  56. }
  57.  
  58. /* from GRP.CPP */
  59.  
  60. TView *TGroup::at( short index )
  61. {
  62.     TView *temp = last;
  63.     while( index-- > 0 )
  64.         temp = temp->next;
  65.     return temp;
  66. }
  67.  
  68. TView *TGroup::firstThat( Boolean (*func)(TView *, void *), void *args )
  69. {
  70.     TView *temp = last;
  71.     if( temp == 0 )
  72.         return 0;
  73.  
  74.     do  {
  75.         temp = temp->next;
  76.         if( func( temp, args ) == True )
  77.             return temp;
  78.         } while( temp != last );
  79.     return 0;
  80. }
  81.  
  82. void TGroup::forEach( void (*func)(TView*, void *), void *args )
  83. {
  84.     TView *term = last;
  85.     TView *temp = last;
  86.     if( temp == 0 )
  87.         return;
  88.  
  89.     TView *next = temp->next;
  90.     do  {
  91.         temp = next;
  92.         next = temp->next;
  93.         func( temp, args );
  94.         } while( temp != term );
  95.  
  96. }
  97.  
  98. short TGroup::indexOf( TView *p )
  99. {
  100.     if( last == 0 )
  101.         return 0;
  102.  
  103.     short index = 0;
  104.     TView *temp = last;
  105.     do  {
  106.         index++;
  107.         temp = temp->next;
  108.         } while( temp != p && temp != last );
  109.     if( temp != p )
  110.         return 0;
  111.     else
  112.         return index;
  113. }
  114.  
  115. /* from MAPCOLOR.CPP */
  116.  
  117. uchar TView::mapColor( uchar color )
  118. {
  119.     if( color == 0 )
  120.         return errorAttr;
  121.     TView *cur = this;
  122.     do  {
  123.         TPalette& p = cur->getPalette();
  124.         if( p[0] != 0 )
  125.             {
  126.             if( color > p[0] )
  127.                 return errorAttr;
  128.             color = p[color];
  129.             if( color == 0 )
  130.                 return errorAttr;
  131.             }
  132.         cur = cur->owner;
  133.         } while( cur != 0 );
  134.     return color;
  135. }
  136.  
  137. /* from STRMSTAT.CPP */
  138.  
  139. TStreamableTypes * pstream::types;
  140.