public SlideLayoutStrategy createDerivedStrategy(Slide destinationSlide, Slide thisPanelSlide, EditorResourceProvider resourceProvider, bool overwriteContent, bool createTemplates)
        {
            SlideLayoutStrategy       destinationSlideStrategy = destinationSlide.LayoutStrategy;
            BorderSlideLayoutStrategy copiedLayoutStrategy     = new BorderSlideLayoutStrategy();

            foreach (SlidePanel panel in panels.Values)
            {
                SlidePanel copiedPanel = destinationSlideStrategy.getPanel(panel.ElementName);
                if (copiedPanel != null) //Already exists in the destination, so duplicate it instead of creating a new one
                {
                    copiedPanel = copiedPanel.clone(destinationSlide, destinationSlide, createTemplates, resourceProvider);
                    panel.applyToExisting(destinationSlide, copiedPanel, overwriteContent, resourceProvider);
                }
                else
                {
                    copiedPanel = panel.clone(thisPanelSlide, destinationSlide, createTemplates, resourceProvider);
                }
                copiedLayoutStrategy.addPanel(copiedPanel);
            }
            return(copiedLayoutStrategy);
        }
 public InstanceStrategy(BorderSlideLayoutStrategy masterStrategy, SlideDisplayManager displayManager)
 {
     this.masterStrategy = masterStrategy;
     this.displayManager = displayManager;
     displayManager.DisplayModeChanged += displayManager_DisplayModeChanged;
 }