00001 /* === S Y N F I G ========================================================= */ 00021 /* ========================================================================= */ 00022 00023 /* === S T A R T =========================================================== */ 00024 00025 #ifndef __SYNFIG_EDITMODE_H 00026 #define __SYNFIG_EDITMODE_H 00027 00028 /* === H E A D E R S ======================================================= */ 00029 00030 /* === M A C R O S ========================================================= */ 00031 00032 /* === T Y P E D E F S ===================================================== */ 00033 00034 /* === C L A S S E S & S T R U C T S ======================================= */ 00035 00036 namespace synfigapp { 00037 00041 enum EditMode 00042 { 00043 MODE_NORMAL =0, 00044 00045 MODE_ANIMATE =(1<<0), 00046 MODE_ANIMATE_FUTURE =(1<<1), 00047 MODE_ANIMATE_PAST =(1<<2), 00048 MODE_ANIMATE_ALL =(3<<1), 00049 00050 MODE_UNDEFINED =(~0) 00051 }; // END of enum EditMode 00052 00054 inline EditMode 00055 operator|(const EditMode& lhs, const EditMode& rhs) 00056 { return static_cast<EditMode>(int(lhs)|int(rhs)); } 00057 00059 inline EditMode 00060 operator-(const EditMode& lhs, const EditMode& rhs) 00061 { return static_cast<EditMode>(int(lhs)&~int(rhs)); } 00062 00063 inline EditMode& 00064 operator|=(EditMode& lhs, const EditMode& rhs) 00065 { *reinterpret_cast<int*>(&lhs)|=int(rhs); return lhs; } 00066 00068 00070 inline EditMode 00071 operator&(const EditMode& lhs, const EditMode& rhs) 00072 { return static_cast<EditMode>(int(lhs)&int(rhs)); } 00073 00075 00077 // inline bool 00078 // operator<=(const EditMode& lhs, const EditMode& rhs) 00079 // { return (lhs&rhs)==int(rhs); } 00080 00081 }; // END if namespace synfigapp 00082 /* === E N D =============================================================== */ 00083 00084 #endif