internal void RaiseCurrentViewChangedEvent(FlowDocumentReaderViewingMode newMode, FlowDocumentReaderViewingMode oldMode) { if (newMode != oldMode) { base.RaisePropertyChangedEvent(MultipleViewPatternIdentifiers.CurrentViewProperty, this.ConvertModeToViewId(newMode), this.ConvertModeToViewId(oldMode)); } }
/// <summary> /// Initialises a new instance of the MainWindow class. /// </summary> public MainWindow() { InitializeComponent(); Model.UserApplicationStore.Load(); // restore the user preferences Size lastSize = Model.UserApplicationStore.Store.LastWindowSize; Point lastPosition = Model.UserApplicationStore.Store.LastWindowPosition; FlowDocumentReaderViewingMode mode = Model.UserApplicationStore.Store.ViewingMode; if (lastSize != null && !lastSize.IsEmpty && lastSize != new Size(0, 0)) { this.Height = lastSize.Height; this.Width = lastSize.Width; } if (lastPosition != null && !(lastPosition.X == 0 && lastPosition.Y == 0)) { this.Top = lastPosition.X; this.Left = lastPosition.Y; } this.pageViewer.ViewingMode = mode; if (Model.UserApplicationStore.Store.IsMaximized) { this.WindowState = System.Windows.WindowState.Maximized; } this.DataContext = this; this.forward.DataContext = this.back.DataContext = this.userViewingHistory; this.recentFiles.DataContext = Model.UserApplicationStore.Store.RecentFiles; this.searchEntryTimer.AutoReset = true; this.searchEntryTimer.Elapsed += new System.Timers.ElapsedEventHandler(PerformSearch); this.InitialiseStartScreen(); string[] args = ((App)App.Current).Arguments; if (args != null && args.Length > 0) { // validate this is a file we are looking for if (System.IO.File.Exists(args[0])) { // we only allow ldproj files to open here if (System.IO.Path.GetExtension(args[0]) == ".ldproj") { LiveDocumentorFile.Load(args[0]); this.startpage.Visibility = System.Windows.Visibility.Hidden; this.UpdateView(); } } } }
/// <summary>Returns the name of a control-specific view.</summary> /// <param name="viewId">The ID of a view. </param> /// <returns>The name of a control-specific view.</returns> // Token: 0x0600268A RID: 9866 RVA: 0x000B7598 File Offset: 0x000B5798 string IMultipleViewProvider.GetViewName(int viewId) { string result = string.Empty; if (viewId >= 0 && viewId <= 2) { FlowDocumentReaderViewingMode flowDocumentReaderViewingMode = this.ConvertViewIdToMode(viewId); if (flowDocumentReaderViewingMode == FlowDocumentReaderViewingMode.Page) { result = SR.Get("FlowDocumentReader_MultipleViewProvider_PageViewName"); } else if (flowDocumentReaderViewingMode == FlowDocumentReaderViewingMode.TwoPage) { result = SR.Get("FlowDocumentReader_MultipleViewProvider_TwoPageViewName"); } else if (flowDocumentReaderViewingMode == FlowDocumentReaderViewingMode.Scroll) { result = SR.Get("FlowDocumentReader_MultipleViewProvider_ScrollViewName"); } } return(result); }
//------------------------------------------------------------------- // // IMultipleViewProvider Members // //------------------------------------------------------------------- #region IMultipleViewProvider Members /// <summary> /// <see cref="IMultipleViewProvider.GetViewName"/> /// </summary> string IMultipleViewProvider.GetViewName(int viewId) { string name = string.Empty; if (viewId >= 0 && viewId <= 2) { FlowDocumentReaderViewingMode mode = ConvertViewIdToMode(viewId); if (mode == FlowDocumentReaderViewingMode.Page) { name = SR.Get(SRID.FlowDocumentReader_MultipleViewProvider_PageViewName); } else if (mode == FlowDocumentReaderViewingMode.TwoPage) { name = SR.Get(SRID.FlowDocumentReader_MultipleViewProvider_TwoPageViewName); } else if (mode == FlowDocumentReaderViewingMode.Scroll) { name = SR.Get(SRID.FlowDocumentReader_MultipleViewProvider_ScrollViewName); } } return(name); }
/// <summary> /// Converts viewing mode to view id. /// </summary> private int ConvertModeToViewId(FlowDocumentReaderViewingMode mode) { return((int)mode); }
public static void SetSuggestedViewingMode(DependencyObject obj, FlowDocumentReaderViewingMode value) { obj.SetValue(SuggestedViewingModeProperty, value); }
//-------------------------------------------------------------------- // // Private Methods // //------------------------------------------------------------------- #region Private Methods /// <summary> /// Handler for the SwitchViewingMode command. /// </summary> /// <param name="viewingMode">Viewing mode.</param> protected virtual void SwitchViewingModeCore(FlowDocumentReaderViewingMode viewingMode) { ITextSelection textSelection = null; ContentPosition contentPosition = null; IFlowDocumentViewer viewer; FrameworkElement feViewer; bool isKeyboardFocusWithin; DependencyObject focusedElement = null; if (_contentHost != null) { // Remember the current keyboard focus state. isKeyboardFocusWithin = IsKeyboardFocusWithin; // Detach old viewer viewer = _contentHost.Child as IFlowDocumentViewer; if (viewer != null) { // Remember focused element, if the focus is within the Document. // After switching to a different viewer, this focus needs to be restored. if (isKeyboardFocusWithin) { bool isFocusWithinDocument = IsFocusWithinDocument(); if (isFocusWithinDocument) { focusedElement = Keyboard.FocusedElement as DependencyObject; } } // Retrieve the current viewing state from the old viewer. textSelection = viewer.TextSelection; contentPosition = viewer.ContentPosition; // Detach old viewer DetachViewer(viewer); } viewer = GetViewerFromMode(viewingMode); feViewer = (FrameworkElement)viewer; if (viewer != null) { // Attach new viewer _contentHost.Child = feViewer; AttachViewer(viewer); // Restore viewing state. viewer.TextSelection = textSelection; viewer.ContentPosition = contentPosition; // Bring the focus to previously focused element within the document // or to the current viewer. if (isKeyboardFocusWithin) { if (focusedElement is UIElement) { ((UIElement)focusedElement).Focus(); } else if (focusedElement is ContentElement) { ((ContentElement)focusedElement).Focus(); } else { feViewer.Focus(); } } } // Viewer changes invalidates following properties: // - PageCount // - PageNumber // - CanGoToPreviousPage // - CanGoToNextPage UpdateReadOnlyProperties(true, true); } }
/// <summary> /// Handler for the SwitchViewingMode command. /// </summary> /// <param name="viewingMode">Viewing mode.</param> protected virtual void OnSwitchViewingModeCommand(FlowDocumentReaderViewingMode viewingMode) { SwitchViewingModeCore(viewingMode); }
public JournalState(int contentPosition, LogicalDirection contentPositionDirection, double zoom, FlowDocumentReaderViewingMode viewingMode) { ContentPosition = contentPosition; ContentPositionDirection = contentPositionDirection; Zoom = zoom; ViewingMode = viewingMode; }
protected virtual new void SwitchViewingModeCore(FlowDocumentReaderViewingMode viewingMode) { }
/// <summary> /// Converts viewing mode to view id. /// </summary> private int ConvertModeToViewId(FlowDocumentReaderViewingMode mode) { return (int)mode; }
/// <summary> /// Retrieves viewer form specified ViewingMode. /// </summary> private IFlowDocumentViewer GetViewerFromMode(FlowDocumentReaderViewingMode mode) { IFlowDocumentViewer viewer = null; switch (mode) { case FlowDocumentReaderViewingMode.Page: if (_pageViewer == null) { _pageViewer = new ReaderPageViewer(); _pageViewer.SetResourceReference(StyleProperty, PageViewStyleKey); _pageViewer.Name = "PageViewer"; CommandManager.AddPreviewCanExecuteHandler(_pageViewer, new CanExecuteRoutedEventHandler(PreviewCanExecuteRoutedEventHandler)); } viewer = _pageViewer; break; case FlowDocumentReaderViewingMode.TwoPage: if (_twoPageViewer == null) { _twoPageViewer = new ReaderTwoPageViewer(); _twoPageViewer.SetResourceReference(StyleProperty, TwoPageViewStyleKey); _twoPageViewer.Name = "TwoPageViewer"; CommandManager.AddPreviewCanExecuteHandler(_twoPageViewer, new CanExecuteRoutedEventHandler(PreviewCanExecuteRoutedEventHandler)); } viewer = _twoPageViewer; break; case FlowDocumentReaderViewingMode.Scroll: if (_scrollViewer == null) { _scrollViewer = new ReaderScrollViewer(); _scrollViewer.SetResourceReference(StyleProperty, ScrollViewStyleKey); _scrollViewer.Name = "ScrollViewer"; CommandManager.AddPreviewCanExecuteHandler(_scrollViewer, new CanExecuteRoutedEventHandler(PreviewCanExecuteRoutedEventHandler)); } viewer = _scrollViewer; break; } return viewer; }
/// <summary> /// Determines whether can switch to specified ViewingMode or not. /// </summary> private bool CanSwitchToViewingMode(FlowDocumentReaderViewingMode mode) { bool canSwitch = false; switch (mode) { case FlowDocumentReaderViewingMode.Page: canSwitch = IsPageViewEnabled; break; case FlowDocumentReaderViewingMode.TwoPage: canSwitch = IsTwoPageViewEnabled; break; case FlowDocumentReaderViewingMode.Scroll: canSwitch = IsScrollViewEnabled; break; } return canSwitch; }
public void SwitchViewingMode(FlowDocumentReaderViewingMode viewingMode) { }
protected virtual new void OnSwitchViewingModeCommand(FlowDocumentReaderViewingMode viewingMode) { }
internal void RaiseCurrentViewChangedEvent(FlowDocumentReaderViewingMode newMode, FlowDocumentReaderViewingMode oldMode) { if (newMode != oldMode) { RaisePropertyChangedEvent(MultipleViewPatternIdentifiers.CurrentViewProperty, ConvertModeToViewId(newMode), ConvertModeToViewId(oldMode)); } }
/// <summary> /// Convert object value to FlowDocumentReaderViewingMode. /// </summary> private bool ConvertToViewingMode(object value, out FlowDocumentReaderViewingMode mode) { bool success; if (value is FlowDocumentReaderViewingMode) { mode = (FlowDocumentReaderViewingMode)value; success = true; } else if (value is String) { String str = (String)value; if (str == FlowDocumentReaderViewingMode.Page.ToString()) { mode = FlowDocumentReaderViewingMode.Page; success = true; } else if (str == FlowDocumentReaderViewingMode.TwoPage.ToString()) { mode = FlowDocumentReaderViewingMode.TwoPage; success = true; } else if (str == FlowDocumentReaderViewingMode.Scroll.ToString()) { mode = FlowDocumentReaderViewingMode.Scroll; success = true; } else { mode = FlowDocumentReaderViewingMode.Page; success = false; } } else { mode = FlowDocumentReaderViewingMode.Page; success = false; } return success; }
/// <summary> /// Switches the current viewing mode. This is analogous to the SwitchViewingModeCommand. /// </summary> /// <param name="viewingMode">Viewing mode.</param> public void SwitchViewingMode(FlowDocumentReaderViewingMode viewingMode) { OnSwitchViewingModeCommand(viewingMode); }