X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftags%2F0.61.08%2Fsrc%2Fsynfigapp%2Feditmode.h;fp=synfig-studio%2Ftags%2F0.61.08%2Fsrc%2Fsynfigapp%2Feditmode.h;h=0dbfac11f8086f666eb275693b2f6f96bd39d3c5;hb=79fcd5b32f0accf9f1d13f9b6ded0d628e6f4b33;hp=0000000000000000000000000000000000000000;hpb=c1f365570ac471ede0668ad976fad345747aa8de;p=synfig.git diff --git a/synfig-studio/tags/0.61.08/src/synfigapp/editmode.h b/synfig-studio/tags/0.61.08/src/synfigapp/editmode.h new file mode 100644 index 0000000..0dbfac1 --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/synfigapp/editmode.h @@ -0,0 +1,84 @@ +/* === S Y N F I G ========================================================= */ +/*! \file editmode.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_EDITMODE_H +#define __SYNFIG_EDITMODE_H + +/* === H E A D E R S ======================================================= */ + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfigapp { + +/*! \enum EditMode +** \brief \writeme +*/ +enum EditMode +{ + MODE_NORMAL =0, //!< Normal editing mode. Place holder. + + MODE_ANIMATE =(1<<0), //!< Animated editing mode. + MODE_ANIMATE_FUTURE =(1<<1), //!< Respect future keyframes + MODE_ANIMATE_PAST =(1<<2), //!< Respect past keyframes + MODE_ANIMATE_ALL =(3<<1), //!< Respect all keyframes + + MODE_UNDEFINED =(~0) //!< Undefined Mode +}; // END of enum EditMode + +//! Combine Flags +inline EditMode +operator|(const EditMode& lhs, const EditMode& rhs) +{ return static_cast(int(lhs)|int(rhs)); } + +//! Exclude Flags +inline EditMode +operator-(const EditMode& lhs, const EditMode& rhs) +{ return static_cast(int(lhs)&~int(rhs)); } + +inline EditMode& +operator|=(EditMode& lhs, const EditMode& rhs) +{ *reinterpret_cast(&lhs)|=int(rhs); return lhs; } + +//! Flag Comparison. THIS IS NOT LESS-THAN-OR-EQUAL-TO. +/*! This function will return true of all of the flags +** in the \a rhs are set in the \a lhs */ +inline EditMode +operator&(const EditMode& lhs, const EditMode& rhs) +{ return static_cast(int(lhs)&int(rhs)); } + +//! Flag Comparison. THIS IS NOT LESS-THAN-OR-EQUAL-TO. +/*! This function will return true of all of the flags +** in the \a rhs are set in the \a lhs */ +// inline bool +// operator<=(const EditMode& lhs, const EditMode& rhs) +// { return (lhs&rhs)==int(rhs); } + +}; // END if namespace synfigapp +/* === E N D =============================================================== */ + +#endif