X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fsynfigapp%2Feditmode.h;fp=synfig-studio%2Ftrunk%2Fsrc%2Fsynfigapp%2Feditmode.h;h=66e6f33035869478d2218eedb48e3d5ed9e1d1f5;hb=02252941b29de64037116f4d37991a38d9ff0d94;hp=0000000000000000000000000000000000000000;hpb=34f6fabfcefdc878ba3c08b82358ae4aef439e99;p=synfig.git diff --git a/synfig-studio/trunk/src/synfigapp/editmode.h b/synfig-studio/trunk/src/synfigapp/editmode.h new file mode 100644 index 0000000..66e6f33 --- /dev/null +++ b/synfig-studio/trunk/src/synfigapp/editmode.h @@ -0,0 +1,83 @@ +/* === S Y N F I G ========================================================= */ +/*! \file editmode.h +** \brief Template Header +** +** $Id: editmode.h,v 1.1.1.1 2005/01/07 03:34:37 darco Exp $ +** +** \legal +** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** +** This software and associated documentation +** are CONFIDENTIAL and PROPRIETARY property of +** the above-mentioned copyright holder. +** +** You may not copy, print, publish, or in any +** other way distribute this software without +** a prior written agreement with +** the copyright holder. +** \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