internal void RelayoutWithParents(IGraphicsHolder gh, bool skipInvalidate) { var root = Root; LayoutInfo transform = new LayoutInfo(gh.Transform, root.LastLayoutInfo.MaxWidth, gh.VwGraphics, Root.LastLayoutInfo.RendererFactory); using (var lcb = skipInvalidate ? new NoInvalidateLayoutCallbacks(root): new LayoutCallbacks(root)) root.Relayout(transform, PrepareFixupMap(), lcb); }
/// <summary> /// This variant of RelayoutParents is used if the caller also needs the lcb, and therefore must /// be the thing to create it. /// </summary> internal void RelayoutParents(IGraphicsHolder gh, LayoutCallbacks lcb) { var root = Root; LayoutInfo transform = new LayoutInfo(gh.Transform, root.LastLayoutInfo.MaxWidth, gh.VwGraphics, Root.LastLayoutInfo.RendererFactory); var fixupMap = new Dictionary <Box, Rectangle>(); foreach (var gb in AllContainers) { fixupMap[gb] = gb.InvalidateRect; } root.Relayout(transform, fixupMap, lcb); }
internal void RelayoutWithParents(IGraphicsHolder gh) { RelayoutWithParents(gh, false); }
/// <summary> /// This routine typically fires off the whole relayout process. It builds the fixmap and calls /// Relayout. It also invalidates the new area of this, if it has moved. /// Todo: write a test for this moving if that ever becomes possible, and implement. /// </summary> internal void RelayoutParents(IGraphicsHolder gh) { using (var lcb = new LayoutCallbacks(Root)) RelayoutParents(gh, lcb); }
/// <summary> /// This variant of RelayoutParents is used if the caller also needs the lcb, and therefore must /// be the thing to create it. /// </summary> internal void RelayoutParents(IGraphicsHolder gh, LayoutCallbacks lcb) { var root = Root; LayoutInfo transform = new LayoutInfo(gh.Transform, root.LastLayoutInfo.MaxWidth, gh.VwGraphics, Root.LastLayoutInfo.RendererFactory); var fixupMap = new Dictionary<Box, Rectangle>(); foreach (var gb in AllContainers) fixupMap[gb] = gb.InvalidateRect; root.Relayout(transform, fixupMap, lcb); }