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

  1. /*
  2.  * palette.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_TPalette
  13. #include <tvision/tv.h>
  14.  
  15. #include <string.h>
  16.  
  17. TPalette::TPalette( const char* d, ushort len ) :
  18.     data( new uchar[ len+1 ] )
  19. {
  20.     data[0] = len;
  21.     memcpy( data+1, d, len );
  22. }
  23.  
  24. TPalette::TPalette( const TPalette& tp ) :
  25.     data( new uchar[ tp.data[0] + 1 ] )
  26. {
  27.     memcpy( data, tp.data, tp.data[0] + 1 );
  28. }
  29.  
  30. TPalette::~TPalette()
  31. {
  32.     delete data;
  33. }
  34.  
  35. TPalette& TPalette::operator = ( const TPalette& tp )
  36. {
  37.     if( data != tp.data )
  38.         {
  39.         if( data[0] != tp.data[0] )
  40.             {
  41.             delete data;
  42.             data = new uchar[ tp.data[0] + 1 ];
  43.             data[0] = tp.data[0];
  44.             }
  45.         memcpy( data+1, tp.data+1, data[0] );
  46.         }
  47.     return *this;
  48. }
  49.  
  50. uchar& TPalette::operator[]( int index ) const
  51. {
  52.     return data[index];
  53. }
  54.