All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Selection.h
Go to the documentation of this file.
1 //---------------------------------------------------------------------------------------
2 // Copyright (c) 2001-2018 by PDFTron Systems Inc. All Rights Reserved.
3 // Consult legal.txt regarding legal and license information.
4 //---------------------------------------------------------------------------------------
5 #ifndef PDFTRON_H_CPPSelection
6 #define PDFTRON_H_CPPSelection
7 
8 #include <C/Common/TRN_Types.h>
9 #include <C/PDF/TRN_PDFView.h>
10 namespace pdftron {
11  namespace PDF {
15  class Selection {
16  friend class PDFView;
17  friend class PDFViewCtrl;
18  public:
22  int GetPageNum() const;
23 
48  std::vector<QuadPoint> GetQuads() const;
49 
50 
54  UString GetAsUnicode() const;
55 
56 
63  const char* GetAsHtml() const;
64 
65 #if !defined(SWIG)
66  int GetQuads(const double* & quads) const;
67  void GetAsUnicode(UString& out_str) const;
68 #endif // !defined(SWIG)
69 
71 #ifndef SWIGHIDDEN
72  ~Selection();
73  Selection();
74  Selection(const Selection&);
75  Selection& operator=(const Selection&);
76  Selection(TRN_PDFViewSelection impl);
77  private:
78  TRN_PDFViewSelection mp_selection;
79 #endif
80  };
82 
83  inline Selection::Selection()
84  {
85  REX(TRN_PDFViewSelectionCreate(&mp_selection));
86  }
87 
88  inline Selection::~Selection()
89  {
90  DREX(mp_selection, TRN_PDFViewSelectionDestroy(mp_selection));
91  }
92 
93  inline Selection::Selection(const Selection& s)
94  {
95  REX(TRN_PDFViewSelectionCreate(&mp_selection));
96  REX(TRN_PDFViewSelectionAssign(mp_selection,s.mp_selection));
97  }
98 
99  inline Selection::Selection(TRN_PDFViewSelection impl) : mp_selection(impl)
100  {
101 
102  }
103 
104  inline Selection& Selection::operator=(const Selection& s)
105  {
106  REX(TRN_PDFViewSelectionAssign(mp_selection,s.mp_selection));
107  return *this;
108  }
109 
110 
111 
112  inline int Selection::GetPageNum() const
113  {
114  RetInt(TRN_PDFViewSelectionGetPageNum(mp_selection,&result));
115  }
116 
117  //inline int Selection::GetRects(const double* &rects) const
118  //{
119  // RetInt(TRN_PDFViewSelectionGetRects(&mp_selection,&rects,&result));
120  //}
121 
122  inline std::vector<QuadPoint> Selection::GetQuads() const
123  {
124  int num;
125  double* quads;
126  TRN_PDFViewSelectionGetQuads(mp_selection,(const double**)&quads,&num);
127  std::vector<QuadPoint> result(num);
128  int i;
129  for(i = 0; i < num; i++) {
130  Point p1 = Point(quads[i*8+0], quads[i*8+1]);
131  Point p2 = Point(quads[i*8+2], quads[i*8+3]);
132  Point p3 = Point(quads[i*8+4], quads[i*8+5]);
133  Point p4 = Point(quads[i*8+6], quads[i*8+7]);
134  result[i] = QuadPoint(p1, p2, p3, p4);
135  }
136  return result;
137  }
138 
140  {
141  UString unicodeStr;
142  REX(TRN_PDFViewSelectionGetAsUnicode(mp_selection, unicodeStr.mp_impl));
143  return unicodeStr;
144  }
145 
146  inline const char* Selection::GetAsHtml() const
147  {
148  RetCCS(TRN_PDFViewSelectionGetAsHtml(mp_selection, &result));
149  }
150 
151 #if !defined(SWIG)
152  inline int Selection::GetQuads(const double* & quads) const
153  {
154  RetInt(TRN_PDFViewSelectionGetQuads(mp_selection,&quads,&result));
155  }
156 
157  inline void Selection::GetAsUnicode(UString& out_str) const
158  {
159  REX(TRN_PDFViewSelectionGetAsUnicode(mp_selection, out_str.mp_impl));
160  }
161 #endif // !defined(SWIG)
162 
163  } // PDF
164 } // PDFTron
165 
166 
167 #endif // PDFTRON_H_CPPSelection
std::vector< QuadPoint > GetQuads() const
Definition: Selection.h:122
#define RetCCS(ex)
Definition: Common.h:24
#define RetInt(ex)
Definition: Common.h:23
int GetPageNum() const
Definition: Selection.h:112
#define REX(action)
Definition: Common.h:13
#define DREX(impl, destroy_action)
Definition: Common.h:14
const char * GetAsHtml() const
Definition: Selection.h:146
UString GetAsUnicode() const
Definition: Selection.h:139

© 2002-2014 PDFTron Systems Inc.