// 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_
|