// -*- C++ -*- /** * \file update_flags.h * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * * \author The Denmark Cowboys * * Full author contact details are available in file CREDITS. */ #ifndef UPDATE_FLAGS_H #define UPDATE_FLAGS_H namespace lyx { namespace Update { enum flags { /// No screen update is needed. None = 0, /// Recenter the screen around the cursor if is found outside the /// visible area. FitCursor = 1, /// Force a full screen metrics update and a full draw. Force = 2, /// Force a full redraw (but no metrics computations) ForceDraw = 4, /// Try to rebreak only the current paragraph metrics. SinglePar = 8, /// Only the inset decorations need to be redrawn, no text metrics /// update is needed. Decoration = 16, /// Force metrics and redraw for all buffers. ForceAll = 32 }; inline flags operator|(flags const f, flags const g) { return static_cast(int(f) | int(g)); } inline flags operator&(flags const f, flags const g) { return static_cast(int(f) & int(g)); } inline flags operator~(flags const f) { return static_cast(~int(f) & 0x3f); } } // namespace Update // How the work area gets drawn (painted) enum class DrawStrategy { // draw all Full, // draw only what has changed Partial, // draw in backing store (only what has changed) Backingstore }; } // namespace lyx #endif