00001
00002 /*
00003 TEDDY - General graphics application library
00004 Copyright (C) 1999-2002 Timo Suoranta
00005 tksuoran@cc.helsinki.fi
00006
00007 This library is free software; you can redistribute it and/or
00008 modify it under the terms of the GNU Lesser General Public
00009 License as published by the Free Software Foundation; either
00010 version 2.1 of the License, or (at your option) any later version.
00011
00012 This library is distributed in the hope that it will be useful,
00013 but WITHOUT ANY WARRANTY; without even the implied warranty of
00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00015 Lesser General Public License for more details.
00016
00017 You should have received a copy of the GNU Lesser General Public
00018 License along with this library; if not, write to the Free Software
00019 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
00020
00021 $Id: Options.h,v 1.6 2002/03/12 10:46:06 tksuoran Exp $
00022 */
00023
00024
00025 #ifndef TEDDY__MIX_IN__OPTIONS_H
00026 #define TEDDY__MIX_IN__OPTIONS_H
00027
00028
00029 namespace Teddy {
00030 namespace MixIn {
00031
00032
00034 class Options {
00035 public:
00036 Options();
00037 Options( const unsigned long options );
00038 virtual ~Options();
00039
00040 void setOptions ( const unsigned long options );
00041 unsigned long getOptions () const;
00042 unsigned long operator & ( const Options &other );
00043 unsigned long operator | ( const Options &other );
00044 Options &operator &= ( const Options &other );
00045 Options &operator |= ( const Options &other );
00046 Options &operator ^= ( const Options &other );
00047 void enable ( const unsigned long options );
00048 void disable ( const unsigned long options );
00049 void toggle ( const unsigned long options );
00050 bool isEnabled ( const unsigned long options );
00051 const char *isEnabledStr( const unsigned long options );
00052 bool isDisabled ( const unsigned long options );
00053
00054 protected:
00055 unsigned long options;
00056 };
00057
00058
00059 }; // namespace MixIn
00060 }; // namespace Teddy
00061
00062
00063 #endif // TEDDY__MIX_IN__OPTIONS_H
00064