Пример #1
0
        private async Task CreateController()
        {
            using (await BusyOverlay.Create())
            {
                _book = _bookRepository.Get(ViewModel.BookId);
                if (_book == null)
                {
                    return;
                }

                _readController = new ReadController(PageCanvas, ViewModel.BookId, _bookRepository, ViewModel.TokenOffset);

                await _readController.ShowNextPage();

                PageCanvas.Manipulator.UpdatePanelsVisibility();
                PageCanvas.Manipulator.IsFirstPage = _readController.IsFirst;
                PageCanvas.Manipulator.IsLastPage  = _readController.IsLast;

                AppBar.TotalPages = _readController.TotalPages;
                AppBar.PageNumber = _readController.CurrentPage;

                AppBar.MenuItems[2].IsEnabled = ViewModel.CanPinToDesktop;

                if (_book.Trial)
                {
                    AppBar.IconButtons = CreateAppBarIconsForTrial();
                }
                else
                {
                    AppBar.IconButtons[2].IsEnabled = true;
                    UpdateIsFavouriteAppBarButton(_book.IsFavourite);
                }
            }
        }
Пример #2
0
        private void RefreshBox(Uri uri)
        {
            _currentUri = uri;
            dirView.Items.Clear();

            if (_walking.ContainsKey(uri))
            {
                List <ListViewItem> items = _walking[uri];

                if (items != null)
                {
                    SetView(items.ToArray());
                }
                else
                {
                    dirView.Items.Add("<loading>");
                }
            }
            else
            {
                dirView.Items.Add("<loading>");
            }


            lock (_running)
            {
                if (_running.ContainsKey(uri))
                {
                    return;
                }

                _running[uri] = uri; // Mark as walking

                if (!_loading)
                {
                    if (_busy == null)
                    {
                        _busy = new BusyOverlay(dirView, AnchorStyles.Right | AnchorStyles.Top);
                    }

                    _loading = true;
                    _busy.Show();
                }
            }

            AnkhAction fill = delegate()
            {
                OnFill(uri);
            };

            fill.BeginInvoke(null, null);
        }
Пример #3
0
        void ShowBusyIndicator()
        {
            if (InvokeRequired)
            {
                BeginInvoke(new AnkhAction(ShowBusyIndicator));
                return;
            }

            if (_busyOverlay == null)
            {
                _busyOverlay = new BusyOverlay(syncView, AnchorStyles.Bottom | AnchorStyles.Right);
            }
            _busyOverlay.Show();
        }
Пример #4
0
        public async Task <IBusyOverlayManager> Start(bool hideAppBar = true)
        {
            if (_counter > 0)
            {
                return(this);
            }
            _counter++;

            _hideAppBar = hideAppBar;

            _busyOverlay = (BusyOverlay)await BusyOverlay.Create(Content, Closable);

            _busyOverlay.Closed  += OnClosed;
            _busyOverlay.Closing += OnClosing;
            return(this);
        }
Пример #5
0
        private async void Translate(string text)
        {
            try
            {
                using (await BusyOverlay.Create())
                {
                    var translatedText = await _translateController.Translate(text, AppSettings.Default.CurrentTranslateLanguage.TwoLetterISOLanguageName);

                    ClearTextSelection();

                    TranslationControl.Show(translatedText);
                }
            }
            catch (TranslationException)
            {
                MessageBox.Show(UIStrings.TranslateError_Body, UIStrings.TranslateError_Title, MessageBoxButton.OK);
            }
        }
Пример #6
0
        private void ShowBusyIndicator()
        {
            if (InvokeRequired)
            {
                BeginInvoke(new Action(ShowBusyIndicator));
                return;
            }

            if (_busyOverlay == null)
            {
                _busyOverlay = new BusyOverlay(this, AnchorStyles.Bottom | AnchorStyles.Right);
                _busyOverlay.ScrollBarsVisible =
                    (HorizontalScrollBar.Visible ? ScrollBars.Horizontal : 0) |
                    (VerticalScrollBar.Visible ? ScrollBars.Vertical : 0);
            }

            _busyOverlay.Show();
        }
Пример #7
0
        public async void Redraw()
        {
            if (!_isLoaded)
            {
                return;
            }

            using (await BusyOverlay.Create())
            {
                await _event.WaitAsync();

                _pageManipulationListener = InitializePageManipulationListener();
                _textManipulationListener = InitializeTextManipulationListener();
                ManipulationService.SetManipulationListener(PageCanvas, _pageManipulationListener);

                SystemTray.IsVisible = true;
                SystemTray.SetForegroundColor(this, AppSettings.Default.ColorScheme.SystemTrayForegroundColor);

                Background = AppSettings.Default.ColorScheme.BackgroundBrush;

                SupportedOrientations = AppSettings.Default.Orientation;

                PageCanvas.Clear();
                PageCanvas.SetSize(ActualWidth, ActualHeight, ActualWidth, ActualHeight - AppBar.HeightInMinimizedState);

                PageCanvas.AddBookmark -= AddBookmark;
                PageCanvas.AddBookmark += AddBookmark;

                PageCanvas.Translate -= Translate;
                PageCanvas.Translate += Translate;

                PageCanvas.Copy -= Copy;
                PageCanvas.Copy += Copy;

                PageCanvas.Share -= ShareText;
                PageCanvas.Share += ShareText;

                PageCanvas.Manipulator = new ManipulatorFactory(PageCanvas).CreateManipulator(AppSettings.Default.FlippingStyle, AppSettings.Default.FlippingMode);

                AppBar.Visibility = Visibility.Visible;
                AppBar.ApplicationBarMinimizedStateView = AppSettings.Default.HideMenu
                    ? ApplicationBarMinimizedState.Hidden
                    : ApplicationBarMinimizedState.Minimized;
                AppBar.Background            = AppSettings.Default.ColorScheme.ApplicationBarBackgroundBrush;
                AppBar.SliderForegroundBrush = AppSettings.Default.ColorScheme.ProgressBarBrush;

                AppBar.PageSelected           -= AppBar_PageSelected;
                AppBar.PageSelected           += AppBar_PageSelected;
                AppBar.PageSelectionCancelled -= AppBarOnPageSelectionCancelled;
                AppBar.PageSelectionCancelled += AppBarOnPageSelectionCancelled;
                AppBar.PageSelectionApplied   -= AppBarOnPageSelectionApplied;
                AppBar.PageSelectionApplied   += AppBarOnPageSelectionApplied;

                UpdateFontMenuItemAvailability();

                _offsetX = AppSettings.Default.Margin.Left;
                _offsetY = AppSettings.Default.Margin.Top;

                Brightness.Opacity = 1 - AppSettings.Default.Brightness / 100f;

                PageCanvas.Manipulator.TurnForward  += () => TurnPage(true);
                PageCanvas.Manipulator.TurnBackward += () => TurnPage(false);

                if (!string.IsNullOrEmpty(ViewModel.BookId))
                {
                    _data = new BookData(ViewModel.BookId);
                    PageCanvas.Bookmarks = _bookmarkRepository.GetBookmarks(ViewModel.BookId);
                }

                await CreateController();

                AppBar.IconButtons[1].IsEnabled = _data.HasTableOfContents;

                UpdateTrayVisibility();

                _event.Release();
            }
        }