]> Shamusworld >> Repos - architektonas/blobdiff - src/base/rs_flags.cpp
Adding missing implementation.
[architektonas] / src / base / rs_flags.cpp
diff --git a/src/base/rs_flags.cpp b/src/base/rs_flags.cpp
new file mode 100644 (file)
index 0000000..2dcba42
--- /dev/null
@@ -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 <jlhamm@acm.org>
+//
+// 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);
+}