public SlideInstanceLayoutStrategy createLayoutStrategy(SlideDisplayManager displayManager) { return(new InstanceStrategy(this, displayManager)); }
void displayManager_DisplayModeChanged(SlideDisplayManager obj) { lastWorkingParentHeight = int.MinValue; }
public void createViews(String name, RunCommandsAction showCommand, AnomalousMvcContext context, SlideDisplayManager displayManager, Slide slide) { SlideInstanceLayoutStrategy instanceStrategy = createLayoutStrategy(displayManager); foreach (SlidePanel panel in panels.Values) { MyGUIView view = panel.createView(slide, name); instanceStrategy.addView(view); showCommand.addCommand(new ShowViewCommand(view.Name)); context.Views.add(view); } }
public InstanceStrategy(BorderSlideLayoutStrategy masterStrategy, SlideDisplayManager displayManager) { this.masterStrategy = masterStrategy; this.displayManager = displayManager; displayManager.DisplayModeChanged += displayManager_DisplayModeChanged; }
public SlideshowRuntime(Slideshow slideshow, ResourceProvider resourceProvider, GUIManager guiManager, int startIndex, TaskController additionalTasks) { this.guiManager = guiManager; Assembly assembly = Assembly.GetExecutingAssembly(); using (Stream resourceStream = assembly.GetManifestResourceStream(SlideshowProps.BaseContextProperties.File)) { mvcContext = SharedXmlSaver.Load <AnomalousMvcContext>(resourceStream); } navModel = (NavigationModel)mvcContext.Models[SlideshowProps.BaseContextProperties.NavigationModel]; displayManager = new SlideDisplayManager(slideshow.VectorMode); foreach (Slide slide in slideshow.Slides) { String slideName = slide.UniqueName; slide.setupContext(mvcContext, slideName, resourceProvider, displayManager); NavigationLink link = new NavigationLink(slideName, null, slideName + "/Show"); navModel.addNavigationLink(link); } RunCommandsAction runCommands = (RunCommandsAction)mvcContext.Controllers["Common"].Actions["Start"]; runCommands.addCommand(new NavigateToIndexCommand() { Index = startIndex }); taskbar = new ClosingTaskbar(); taskbarLink = new SingleChildChainLink(SlideTaskbarName, taskbar); taskbar.Close += close; previousTask = new CallbackTask("Slideshow.Back", "Back", PreviousTaskName, "None", arg => { back(); }); nextTask = new CallbackTask("Slideshow.Forward", "Forward", NextTaskName, "None", arg => { next(); }); taskbar.addItem(new TaskTaskbarItem(previousTask)); taskbar.addItem(new TaskTaskbarItem(nextTask)); taskbar.addItem(new TaskTaskbarItem(new CallbackTask("Slideshow.Reload", "Reload", ReloadTaskName, "None", arg => { reload(); }))); //taskbar.addItem(new TaskTaskbarItem(new CallbackTask("Slideshow.ToggleMode", "Toggle Display Mode", "SlideshowIcons/NormalVectorToggle", "None", arg => //{ // displayManager.VectorMode = !displayManager.VectorMode; // guiManager.layout(); //}))); taskbar.addItem(new TaskTaskbarItem(new CallbackTask("Slideshow.ZoomIn", "Zoom In", "SlideshowIcons/ZoomIn", "None", arg => { zoomIn(); }))); taskbar.addItem(new TaskTaskbarItem(new CallbackTask("Slideshow.ResetZoom", "Reset Zoom", "SlideshowIcons/ResetZoom", "None", arg => { if (displayManager.AdditionalZoomMultiple != 1.0f) { displayManager.AdditionalZoomMultiple = 1.0f; guiManager.layout(); } }))); taskbar.addItem(new TaskTaskbarItem(new CallbackTask("Slideshow.ZoomOut", "Zoom Out", "SlideshowIcons/ZoomOut", "None", arg => { zoomOut(); }))); eventContext = new EventContext(); ButtonEvent nextEvent = new ButtonEvent(EventLayers.Gui); nextEvent.addButton(KeyboardButtonCode.KC_RIGHT); nextEvent.FirstFrameUpEvent += eventManager => { next(); }; eventContext.addEvent(nextEvent); ButtonEvent backEvent = new ButtonEvent(EventLayers.Gui); backEvent.addButton(KeyboardButtonCode.KC_LEFT); backEvent.FirstFrameUpEvent += eventManager => { back(); }; eventContext.addEvent(backEvent); ButtonEvent zoomInEvent = new ButtonEvent(EventLayers.Gui); zoomInEvent.addButton(KeyboardButtonCode.KC_EQUALS); zoomInEvent.FirstFrameUpEvent += eventManager => { zoomIn(); }; eventContext.addEvent(zoomInEvent); ButtonEvent zoomOutEvent = new ButtonEvent(EventLayers.Gui); zoomOutEvent.addButton(KeyboardButtonCode.KC_MINUS); zoomOutEvent.FirstFrameUpEvent += eventManager => { zoomOut(); }; eventContext.addEvent(zoomOutEvent); ButtonEvent closeEvent = new ButtonEvent(EventLayers.Gui); closeEvent.addButton(KeyboardButtonCode.KC_ESCAPE); closeEvent.FirstFrameUpEvent += eventManager => { ThreadManager.invoke(close); //Delay so we do not modify the input collection }; eventContext.addEvent(closeEvent); foreach (Task task in additionalTasks.Tasks) { taskbar.addItem(new TaskTaskbarItem(task)); } mvcContext.Blurred += (ctx) => { guiManager.deactivateLink(SlideTaskbarName); guiManager.removeLinkFromChain(taskbarLink); GlobalContextEventHandler.disableEventContext(eventContext); }; mvcContext.Focused += (ctx) => { guiManager.addLinkToChain(taskbarLink); guiManager.pushRootContainer(SlideTaskbarName); setNavigationIcons(); GlobalContextEventHandler.setEventContext(eventContext); }; mvcContext.RemovedFromStack += (ctx) => { taskbar.Dispose(); }; }
public void setupContext(AnomalousMvcContext context, String name, ResourceProvider resourceProvider, SlideDisplayManager displayManager) { MvcController controller = new MvcController(name); RunCommandsAction showCommand = new RunCommandsAction("Show"); showCommand.addCommand(new CloseAllViewsCommand()); String timelinePath = Path.Combine(UniqueName, "Timeline.tl"); if (resourceProvider.exists(timelinePath)) { showCommand.addCommand(new PlayTimelineCommand(timelinePath)); } foreach (var action in triggerActions.Values) { action.addToController(this, controller, context); } context.Controllers.add(controller); layoutStrategy.createViews(name, showCommand, context, displayManager, this); controller.Actions.add(showCommand); customizeController(controller, showCommand); }