X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fbase%2Frs_flags.cpp;fp=src%2Fbase%2Frs_flags.cpp;h=2dcba42d9a1467ffca3ae949c13adec0ee423142;hb=20cce16e98fc9b052c5862efa6394a285971e846;hp=0000000000000000000000000000000000000000;hpb=48105dec9198cf5a81dd9286010d0d45e28f70c3;p=architektonas diff --git a/src/base/rs_flags.cpp b/src/base/rs_flags.cpp new file mode 100644 index 0000000..2dcba42 --- /dev/null +++ b/src/base/rs_flags.cpp @@ -0,0 +1,68 @@ +// rs_flags.cpp +// +// Part of the Architektonas Project +// Originally part of QCad Community Edition by Andrew Mustun +// Extensively rewritten and refactored by James L. Hammons +// Portions copyright (C) 2001-2003 RibbonSoft +// Copyright (C) 2010 Underground Software +// See the README and GPLv2 files for licensing and warranty information +// +// JLH = James L. Hammons +// +// Who When What +// --- ---------- ----------------------------------------------------------- +// JLH 08/03/2010 Created this file. :-) +// + +#include "rs_flags.h" + +/** Default constructor. Resets all flags to 0. */ +RS_Flags::RS_Flags() +{ + flags = 0; +} + +/** Constructor with initialisation to the given flags. */ +RS_Flags::RS_Flags(unsigned int f) +{ + flags = f; +} + +/*virtual*/ RS_Flags::~RS_Flags() +{ +} + +unsigned int RS_Flags::getFlags() const +{ + return flags; +} + +void RS_Flags::resetFlags() +{ + flags = 0; +} + +void RS_Flags::setFlags(unsigned int f) +{ + flags = f; +} + +void RS_Flags::setFlag(unsigned int f) +{ + flags = flags | f; +} + +void RS_Flags::delFlag(unsigned int f) +{ + flags = flags & (~f); +} + +void RS_Flags::toggleFlag(unsigned int f) +{ + flags = flags ^ f; +} + +bool RS_Flags::getFlag(unsigned int f) const +{ + return (flags & f ? true : false); +}