FoxitRdkComponentViewCtrl.h
1 #pragma once
2 
3 namespace foxit
4 {
5  namespace rdk
6  {
7  ref class PDFViewCtrl;
8  ref class FoxitViewControl;
9  ref class FSDK_Document;
10  ref class PDFViewerManager;
11  ref class PDFViewCanvas;
12  ref class PDFViewerState;
13  enum class LayoutMode;
14 
15  [Windows::Foundation::Metadata::WebHostHidden]
17  public interface class IUIExtensionsEvents
18  {
19  public:
21  virtual void ManipulationStarted(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationStartedRoutedEventArgs^ e);
23  virtual void ManipulationDelta(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationDeltaRoutedEventArgs^ e);
25  virtual void ManipulationCompleted(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs^ e);
27  virtual void PointerPressed(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e);
29  virtual void PointerMoved(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e);
31  virtual void PointerReleased(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e);
33  virtual void PointerEntered(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e);
35  virtual void PointerExited(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e);
37  virtual void PointerCaptureLost(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e);
39  virtual void PointerCanceled(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e);
41  virtual void PointerWheelChanged(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e);
43  virtual void Holding(Platform::Object^ sender, Windows::UI::Xaml::Input::HoldingRoutedEventArgs^ e);
45  virtual void Tapped(Platform::Object^ sender, Windows::UI::Xaml::Input::TappedRoutedEventArgs^ e);
47  virtual void CompositionScaleChanged(Windows::UI::Xaml::Controls::SwapChainPanel^ sender, Platform::Object^ args);
49  virtual void SizeChanged(Platform::Object^ sender, Windows::UI::Xaml::SizeChangedEventArgs^ e);
50  };
51 
52  [Windows::Foundation::Metadata::WebHostHidden]
54  public delegate void RenderPageEvent(PDFViewCtrl^ sender, RenderPageEventArgs^ e);
55 
56  [Windows::Foundation::Metadata::WebHostHidden]
58  public delegate void RenderCanvasEvent(PDFViewCtrl^ sender, RenderCanvasEventArgs^ e);
59 
60  [Windows::Foundation::Metadata::WebHostHidden]
62  public delegate void OpenDocEvent(PDFViewCtrl^ sender, DocEventArgs^ e);
63 
64  [Windows::Foundation::Metadata::WebHostHidden]
66  public delegate void CloseDocEvent(PDFViewCtrl^ sender, DocEventArgs^ e);
67 
68  [Windows::Foundation::Metadata::WebHostHidden]
70  public delegate void PageLoadedEvent(PDFViewCtrl^ sender, PageLoadedEventArgs^ e);
71 
72  [Windows::Foundation::Metadata::WebHostHidden]
74  public delegate void PageUnloadedEvent(PDFViewCtrl^ sender, PageUnloadedEventArgs^ e);
75 
76  [Windows::Foundation::Metadata::WebHostHidden]
78  public delegate void PageVisibleEvent(PDFViewCtrl^ sender, PageVisibleEventArgs^ e);
79 
80  [Windows::Foundation::Metadata::WebHostHidden]
82  public delegate void PageInvisibleEvent(PDFViewCtrl^ sender, PageInvisibleEventArgs^ e);
83 
84  [Windows::Foundation::Metadata::WebHostHidden]
86  public delegate void PageChangedEvent(PDFViewCtrl^ sender, PageChangedEventArgs^ e);
87 
88  [Windows::Foundation::Metadata::WebHostHidden]
90  public delegate void PageLayoutModeChangedEvent(PDFViewCtrl^ sender, PageLayoutModeChangedEventArgs^ e);
91 
92 
93  [Windows::Foundation::Metadata::WebHostHidden]
95  public ref class PDFViewCtrl sealed : Windows::UI::Xaml::Controls::ContentControl
96  {
97  friend ref class InsertDocumentPasswdwordDlgUIOprateion;
98  friend ref class FSDK_Document;
99  public:
100  PDFViewCtrl();
101 
103  property IUIExtensionsEvents^ ExtensionsManager
104  {
105  IUIExtensionsEvents^ get()
106  {
107  return m_extensionsEvents;
108  }
109 
110  void set(IUIExtensionsEvents^ events)
111  {
112  m_extensionsEvents = events;
113  }
114  }
116  property Windows::UI::Xaml::Controls::Grid^ Layout
117  {
118  Windows::UI::Xaml::Controls::Grid^ get()
119  {
120  return m_viewRoot;
121  }
122  }
123 
125  property float CompositionScaleX
126  {
127  float get();
128  }
130  property float CompositionScaleY
131  {
132  float get();
133  }
134 
135  void OnApplyTemplate() override;
136 
137  public:
138  [Windows::Foundation::Metadata::DefaultOverload]
150  Windows::Foundation::IAsyncOperation<foxit::common::ErrorCode>^ OpenDocAsync(Windows::Storage::StorageFile^ file, Platform::String^ password);
162  Windows::Foundation::IAsyncOperation<foxit::common::ErrorCode>^ OpenDocAsync(Platform::String^ filePath, Platform::String^ password);
168  Windows::Storage::StorageFile^ GetStorageFile();
169 
178  void GotoPage(int iPageIndex);
188  void GotoPagePoint(int iPageIndex, Windows::Foundation::Point pt);
197  void GotoBookmark(foxit::pdf::Bookmark^ bookmark);
204  bool GotoFirstPage();
211  bool GotoLastPage();
218  bool GotoPreviousPage();
225  bool GotoNextPage();
232  int GetCurrentPage();
241  int GetPageAtPoint(Windows::Foundation::Point pt);
247  Windows::Foundation::Collections::IVector<int>^ GetVisiblePages();
253  foxit::rdk::ZoomMode GetPageZoomMode();
261  void SetPageZoomMode(foxit::rdk::ZoomMode pageMode);
267  foxit::rdk::LayoutMode GetPageLayoutMode();
275  void SetPageLayoutMode(foxit::rdk::LayoutMode mode);
276 
282  foxit::pdf::PDFDoc^ GetDoc();
290  void SetDoc(foxit::pdf::PDFDoc^ doc);
296  Windows::Foundation::IAsyncAction^ SaveDoc();
302  void CloseDoc();
303 
309  bool IsModified();
317  void SetModified(bool isModified);
318 
320  foxit::common::ContentFlag GetRenderFlag();
322  void SetRenderFlag(foxit::common::ContentFlag flag);
324  void HideAnnotType(foxit::pdf::annots::AnnotType type);
326  int GetPageCount();
328  float GetScale();
330  void SetScale(float scale);
332  float GetMinScale();
334  float GetMaxScale();
343  void OffsetView(double vOffset, double hOffset);
353  void ZoomTo(Windows::Foundation::Point centerPt, double scale, bool isInertial, bool isManipulationComplete);
355  void SetRotate(int rotate);
357  int GetRotate();
359  Windows::Foundation::Size GetCanvasSize();
360 
362  event RenderCanvasEvent^ RenderCanvasEvent;
364  event RenderPageEvent^ RenderPageEvent;
366  event OpenDocEvent^ OpenPdfFileEvent;
368  event CloseDocEvent^ ClosePdfFileEvent;
370  event PageLoadedEvent^ PageLoadedEvent;
372  event PageUnloadedEvent^ PageUnloadedEvent;
374  event PageVisibleEvent^ PageVisibleEvent;
376  event PageInvisibleEvent^ PageInvisibleEvent;
378  event PageChangedEvent^ PageChangedEvent;
380  event PageLayoutModeChangedEvent^ PageLayoutModeChangedEvent;
381 
383  void SetDefaultViewMode(foxit::rdk::LayoutMode mode);
385  property Windows::UI::Color PageBgColor
386  {
387  Windows::UI::Color get();
388  }
390  property Windows::UI::Color PageFgColor
391  {
392  Windows::UI::Color get();
393  }
395  property bool NightMode
396  {
397  bool get();
398  void set(bool value);
399  }
401  void SetViewColor(Windows::UI::Color bgColor, Windows::UI::Color fgColor);
402 
404  void Redraw();
406  void Redraw(int pageIndex);
408  void Update();
409 
411  void CancelRenderTask();
413  void EnableScrollView(bool isEnable);
415  Windows::UI::Xaml::Media::Matrix GetDisplayMatrix(int pageIndex);
417  PDFPagePoint^ ConvertDevicePtToPDFPagePt(Windows::Foundation::Point devicePt);
419  Windows::Foundation::Point ConvertPagePtToDevicePt(int pageIndex, Windows::Foundation::Point pagePt);
421  Windows::Foundation::Rect ConvertDeviceRectToPageRect(int pageIndex, Windows::Foundation::Rect deviceRc);
423  Windows::Foundation::Rect ConvertPageRectToDeviceRect(int pageIndex, Windows::Foundation::Rect pageRc);
425  Windows::Foundation::Rect GetPageViewRect(int pageIndex);
427  void SaveState(Windows::Storage::ApplicationDataCompositeValue^ data);
428 
429  internal:
430  property FoxitViewControl^ PDFViewControl
431  {
432  FoxitViewControl^ get()
433  {
434  return m_pViewControl;
435  }
436  }
437  void SetDoc(FSDK_Document^ pDoc);
438  void CloseDoc(bool clean);
439  property bool IsShowAnnot
440  {
441  bool get();
442  void set(bool value);
443  }
444  void PageSizeChanged();
445  void PDFViewControl_ManipulationStarted(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationStartedRoutedEventArgs^ e);
446  void PDFViewControl_ManipulationDelta(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationDeltaRoutedEventArgs^ e);
447  void PDFViewControl_ManipulationCompleted(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs^ e);
448  void PDFViewControl_PointerPressed(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e);
449  void PDFViewControl_PointerMoved(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e);
450  void PDFViewControl_PointerReleased(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e);
451  void PDFViewControl_PointerEntered(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e);
452  void PDFViewControl_PointerExited(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e);
453  void PDFViewControl_PointerCaptureLost(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e);
454  void PDFViewControl_PointerCanceled(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e);
455  void PDFViewControl_PointerWheelChanged(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e);
456  void PDFViewControl_Holding(Platform::Object^ sender, Windows::UI::Xaml::Input::HoldingRoutedEventArgs^ e);
457  void PDFViewControl_Tapped(Platform::Object^ sender, Windows::UI::Xaml::Input::TappedRoutedEventArgs^ e);
458  void PDFViewControl_CompositionScaleChanged(Windows::UI::Xaml::Controls::SwapChainPanel^ sender, Platform::Object^ args);
459  void PDFViewControl_SizeChanged(Platform::Object^ sender, Windows::UI::Xaml::SizeChangedEventArgs^ e);
460  void fireRenderEvent(RenderCanvasEventArgs^ e)
461  {
462  RenderCanvasEvent(this, e);
463  }
464  static property Windows::UI::Xaml::DependencyProperty^ IsCanScrollPageViewEnabledProperty
465  {
466  Windows::UI::Xaml::DependencyProperty^ get();
467  }
468  property bool IsCanScrollPageViewEnabled
469  {
470  bool get();
471  void set(bool value);
472  }
473 
474  void TriggerVisibleEvent(int nPageIndex);
475  void TriggerInvisibleEvent(int nPageIndex);
476  void TriggerPageChangedEvent(Windows::Foundation::Collections::IVector<int>^ prevIndexs, Windows::Foundation::Collections::IVector<int>^ curIndexs);
477 
478  concurrency::task<bool> JudgeIsCanWrite(Windows::Storage::StorageFile^ file);
479  concurrency::task<void> SaveFileAsync();
480  concurrency::task<void> SaveAsFileAsync();
481  concurrency::task<void> SaveAsFileWithSelectDialogAsync();
482 
483  PDFViewerState^ LoadDocumentState();
484 
486  void Update(Windows::Foundation::Rect rc);
487  void ShowProgressRing();
488  void HideProgressRing();
489  double CalculateScaleByPageViewMode(foxit::rdk::ZoomMode pageMode);
490 
491  internal:
492  IUIExtensionsEvents^ m_extensionsEvents;
493 
494  private:
495  PDFViewerManager^ m_pPageViewContext;
496  FoxitViewControl^ m_pViewControl;
497  FSDK_Document^ m_pCurDocument;
498  LayoutMode m_ViewMode;
499  ZoomMode m_PageViewMode;
500  Windows::UI::Xaml::Controls::Grid^ m_viewRoot;
501  Windows::UI::Xaml::Controls::Grid^ m_appBar;
502  Windows::UI::Xaml::Controls::Grid^ m_ring;
503 
504  PDFViewerState^ m_pLastViewerState;
505 
506  private:
507  void OnInitializeControl();
508  void HookUpViewControlEvents();
509  void UnHookViewControlEvents();
510  void ActivateControlView();
511 
512  private:
513  Windows::Foundation::Rect GetPDFViewControlVisibleArea();
514  bool IsValidablePageIndex(int iPageIndex);
515  void InitSliderPageNumber(int pageIndex);
516 
517  private:
518  void OnLoaded(Platform::Object ^sender, Windows::UI::Xaml::RoutedEventArgs ^e);
519  void OnUnloaded(Platform::Object ^sender, Windows::UI::Xaml::RoutedEventArgs ^e);
520  };
521  }
522 }
The PDF view control, which is able to open/display/save/...etc the PDF document. ...
Definition: FoxitRdkComponentViewCtrl.h:95
Mouse or gesture events for UI extensions of pdf view control.
Definition: FoxitRdkComponentViewCtrl.h:17
virtual void PointerCaptureLost(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e)
Occurs when pointer capture previously held by pdf view control moves to another element or elsewhere...
virtual void PointerCanceled(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e)
Occurs when a pointer that made contact abnormally loses contact.
virtual void PointerExited(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e)
Occurs when a pointer leaves the hit test area of pdf view control.
virtual void PointerPressed(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e)
Occurs when the pointer device initiates a Press action within pdf view control.
virtual void ManipulationDelta(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationDeltaRoutedEventArgs^ e)
Handles events that happen when a manipulated object changes.
virtual void Holding(Platform::Object^ sender, Windows::UI::Xaml::Input::HoldingRoutedEventArgs^ e)
Occurs when an otherwise unhandled Hold interaction occurs over the hit test area of pdf view control...
virtual void PointerWheelChanged(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e)
Occurs when the delta value of a pointer wheel changes.
virtual void PointerMoved(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e)
Occurs when a pointer moves while the pointer remains within the hit test area of pdf view control...
virtual void ManipulationStarted(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationStartedRoutedEventArgs^ e)
Handles the event for when manipulation or inertia begins.
virtual void Tapped(Platform::Object^ sender, Windows::UI::Xaml::Input::TappedRoutedEventArgs^ e)
Occurs when an otherwise unhandled Tap interaction occurs over the hit test area of pdf view control...
virtual void CompositionScaleChanged(Windows::UI::Xaml::Controls::SwapChainPanel^ sender, Platform::Object^ args)
Occurs when composition scale of view control canvas(SwapChainPanel) is changed.
virtual void ManipulationCompleted(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs^ e)
Handles the event when manipulation or inertia finishes.
virtual void PointerEntered(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e)
Occurs when a pointer enters the hit test area of pdf view control.
Definition: FoxitRdkComponentViewCtrl.h:3
virtual void SizeChanged(Platform::Object^ sender, Windows::UI::Xaml::SizeChangedEventArgs^ e)
Occurs when either the ActualHeight or the ActualWidth properties change value on pdf view control...
virtual void PointerReleased(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e)
Occurs when the pointer device that previously initiated a Press action is released, while within pdf view control.

Foxit Software Corporation Logo
@2017 Foxit Software Incorporated. All rights reserved.