michael@0: /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: #ifndef mozFlushType_h___ michael@0: #define mozFlushType_h___ michael@0: michael@0: /** michael@0: * This is the enum used by nsIDocument::FlushPendingNotifications to michael@0: * decide what to flush. michael@0: * michael@0: * Please note that if you change these values, you should sync it with the michael@0: * flushTypeNames array inside PresShell::FlushPendingNotifications. michael@0: */ michael@0: enum mozFlushType { michael@0: Flush_None = 0, /* Actually don't flush anything */ michael@0: Flush_Content = 1, /* flush the content model construction */ michael@0: Flush_ContentAndNotify = 2, /* As above, plus flush the frame model michael@0: construction and other nsIMutationObserver michael@0: notifications. */ michael@0: Flush_Style = 3, /* As above, plus flush style reresolution */ michael@0: Flush_Frames = Flush_Style, michael@0: Flush_InterruptibleLayout = 4, /* As above, plus flush reflow, michael@0: but allow it to be interrupted (so michael@0: an incomplete layout may result) */ michael@0: Flush_Layout = 5, /* As above, but layout must run to michael@0: completion */ michael@0: Flush_Display = 6 /* As above, plus flush painting */ michael@0: }; michael@0: michael@0: namespace mozilla { michael@0: michael@0: struct ChangesToFlush { michael@0: ChangesToFlush(mozFlushType aFlushType, bool aFlushAnimations) michael@0: : mFlushType(aFlushType) michael@0: , mFlushAnimations(aFlushAnimations) michael@0: {} michael@0: michael@0: mozFlushType mFlushType; michael@0: bool mFlushAnimations; michael@0: }; michael@0: michael@0: } michael@0: #endif /* mozFlushType_h___ */