• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2016 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 
7 #ifndef CORE_FPDFDOC_CPVT_WORDPLACE_H_
8 #define CORE_FPDFDOC_CPVT_WORDPLACE_H_
9 
10 #include "core/fxcrt/fx_system.h"
11 
12 struct CPVT_WordPlace {
CPVT_WordPlaceCPVT_WordPlace13   CPVT_WordPlace() : nSecIndex(-1), nLineIndex(-1), nWordIndex(-1) {}
14 
CPVT_WordPlaceCPVT_WordPlace15   CPVT_WordPlace(int32_t other_nSecIndex,
16                  int32_t other_nLineIndex,
17                  int32_t other_nWordIndex) {
18     nSecIndex = other_nSecIndex;
19     nLineIndex = other_nLineIndex;
20     nWordIndex = other_nWordIndex;
21   }
22 
DefaultCPVT_WordPlace23   void Default() { nSecIndex = nLineIndex = nWordIndex = -1; }
24 
25   bool operator==(const CPVT_WordPlace& wp) const {
26     return wp.nSecIndex == nSecIndex && wp.nLineIndex == nLineIndex &&
27            wp.nWordIndex == nWordIndex;
28   }
29 
30   bool operator!=(const CPVT_WordPlace& wp) const { return !(*this == wp); }
31 
WordCmpCPVT_WordPlace32   inline int32_t WordCmp(const CPVT_WordPlace& wp) const {
33     if (nSecIndex > wp.nSecIndex)
34       return 1;
35     if (nSecIndex < wp.nSecIndex)
36       return -1;
37     if (nLineIndex > wp.nLineIndex)
38       return 1;
39     if (nLineIndex < wp.nLineIndex)
40       return -1;
41     if (nWordIndex > wp.nWordIndex)
42       return 1;
43     if (nWordIndex < wp.nWordIndex)
44       return -1;
45     return 0;
46   }
47 
LineCmpCPVT_WordPlace48   inline int32_t LineCmp(const CPVT_WordPlace& wp) const {
49     if (nSecIndex > wp.nSecIndex)
50       return 1;
51     if (nSecIndex < wp.nSecIndex)
52       return -1;
53     if (nLineIndex > wp.nLineIndex)
54       return 1;
55     if (nLineIndex < wp.nLineIndex)
56       return -1;
57     return 0;
58   }
59 
SecCmpCPVT_WordPlace60   inline int32_t SecCmp(const CPVT_WordPlace& wp) const {
61     if (nSecIndex > wp.nSecIndex)
62       return 1;
63     if (nSecIndex < wp.nSecIndex)
64       return -1;
65     return 0;
66   }
67 
68   int32_t nSecIndex;
69   int32_t nLineIndex;
70   int32_t nWordIndex;
71 };
72 
73 #endif  // CORE_FPDFDOC_CPVT_WORDPLACE_H_
74