/*------------------------------------------------------------*/ /* filename - tcmdset.cpp */ /* */ /* function(s) */ /* TCommandSet member functions */ /*------------------------------------------------------------*/ /*------------------------------------------------------------*/ /* */ /* Turbo Vision - Version 1.0 */ /* */ /* */ /* Copyright (c) 1991 by Borland International */ /* All Rights Reserved. */ /* */ /*------------------------------------------------------------*/ #define Uses_TCommandSet #include int near TCommandSet::masks[8] = { 0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020, 0x0040, 0x0080 }; TCommandSet::TCommandSet() { for( int i = 0; i < 32; i++ ) cmds[i] = 0; } TCommandSet::TCommandSet( const TCommandSet& tc ) { for( int i = 0; i < 32; i++ ) cmds[i] = tc.cmds[i]; } Boolean TCommandSet::has( int cmd ) { return Boolean( (cmds[ loc( cmd ) ] & mask( cmd )) != 0 ); } void TCommandSet::disableCmd( int cmd ) { cmds[ loc( cmd ) ] &= ~mask( cmd ); } void TCommandSet::enableCmd( const TCommandSet& tc ) { for( int i = 0; i < 32; i++ ) cmds[i] |= tc.cmds[i]; } void TCommandSet::disableCmd( const TCommandSet& tc ) { for( int i = 0; i < 32; i++ ) cmds[i] &= ~(tc.cmds[i]); } void TCommandSet::enableCmd( int cmd ) { cmds[ loc( cmd ) ] |= mask( cmd ); } TCommandSet& TCommandSet::operator &= ( const TCommandSet& tc ) { for( int i = 0; i < 32; i++ ) cmds[i] &= tc.cmds[i]; return *this; } TCommandSet& TCommandSet::operator |= ( const TCommandSet& tc ) { for( int i = 0; i < 32; i++ ) cmds[i] |= tc.cmds[i]; return *this; } TCommandSet operator & ( const TCommandSet& tc1, const TCommandSet& tc2 ) { TCommandSet temp( tc1 ); temp &= tc2; return temp; } TCommandSet operator | ( const TCommandSet& tc1, const TCommandSet& tc2 ) { TCommandSet temp( tc1 ); temp |= tc2; return temp; } Boolean TCommandSet::isEmpty() { for( int i = 0; i < 32; i++ ) if( cmds[i] != 0 ) return False; return True; } int operator == ( const TCommandSet& tc1, const TCommandSet& tc2 ) { for( int i = 0; i < 32; i++ ) if( tc1.cmds[i] != tc2.cmds[i] ) return 0; return 1; }