summaryrefslogtreecommitdiff
path: root/core/fpdfdoc/include/cpvt_wordplace.h
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfdoc/include/cpvt_wordplace.h')
-rw-r--r--core/fpdfdoc/include/cpvt_wordplace.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/core/fpdfdoc/include/cpvt_wordplace.h b/core/fpdfdoc/include/cpvt_wordplace.h
new file mode 100644
index 0000000000..ef7907797e
--- /dev/null
+++ b/core/fpdfdoc/include/cpvt_wordplace.h
@@ -0,0 +1,73 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef CORE_FPDFDOC_INCLUDE_CPVT_WORDPLACE_H_
+#define CORE_FPDFDOC_INCLUDE_CPVT_WORDPLACE_H_
+
+#include "core/fxcrt/include/fx_system.h"
+
+struct CPVT_WordPlace {
+ CPVT_WordPlace() : nSecIndex(-1), nLineIndex(-1), nWordIndex(-1) {}
+
+ CPVT_WordPlace(int32_t other_nSecIndex,
+ int32_t other_nLineIndex,
+ int32_t other_nWordIndex) {
+ nSecIndex = other_nSecIndex;
+ nLineIndex = other_nLineIndex;
+ nWordIndex = other_nWordIndex;
+ }
+
+ void Default() { nSecIndex = nLineIndex = nWordIndex = -1; }
+
+ bool operator==(const CPVT_WordPlace& wp) const {
+ return wp.nSecIndex == nSecIndex && wp.nLineIndex == nLineIndex &&
+ wp.nWordIndex == nWordIndex;
+ }
+
+ FX_BOOL operator!=(const CPVT_WordPlace& wp) const { return !(*this == wp); }
+
+ inline int32_t WordCmp(const CPVT_WordPlace& wp) const {
+ if (nSecIndex > wp.nSecIndex)
+ return 1;
+ if (nSecIndex < wp.nSecIndex)
+ return -1;
+ if (nLineIndex > wp.nLineIndex)
+ return 1;
+ if (nLineIndex < wp.nLineIndex)
+ return -1;
+ if (nWordIndex > wp.nWordIndex)
+ return 1;
+ if (nWordIndex < wp.nWordIndex)
+ return -1;
+ return 0;
+ }
+
+ inline int32_t LineCmp(const CPVT_WordPlace& wp) const {
+ if (nSecIndex > wp.nSecIndex)
+ return 1;
+ if (nSecIndex < wp.nSecIndex)
+ return -1;
+ if (nLineIndex > wp.nLineIndex)
+ return 1;
+ if (nLineIndex < wp.nLineIndex)
+ return -1;
+ return 0;
+ }
+
+ inline int32_t SecCmp(const CPVT_WordPlace& wp) const {
+ if (nSecIndex > wp.nSecIndex)
+ return 1;
+ if (nSecIndex < wp.nSecIndex)
+ return -1;
+ return 0;
+ }
+
+ int32_t nSecIndex;
+ int32_t nLineIndex;
+ int32_t nWordIndex;
+};
+
+#endif // CORE_FPDFDOC_INCLUDE_CPVT_WORDPLACE_H_