/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #pragma once #include #include class ScTypedStrData { public: enum StringType { Value = 0, Standard = 1, Name = 2, DbName = 3, Header = 4 }; ScTypedStrData( const OUString& rStr, double nVal = 0.0, StringType eType = Standard, bool bDate = false, bool mbIsFormatted = false, bool bDuplicated = false ); bool IsDate() const { return mbIsDate;} const OUString& GetString() const { return maStrValue;} StringType GetStringType() const { return meStrType;} double GetValue() const { return mfValue; } bool IsDuplicated() const { return mbIsDuplicated; } struct LessCaseSensitive { bool operator() (const ScTypedStrData& left, const ScTypedStrData& right) const; }; struct LessCaseInsensitive { bool operator() (const ScTypedStrData& left, const ScTypedStrData& right) const; }; struct EqualCaseSensitive { bool operator() (const ScTypedStrData& left, const ScTypedStrData& right) const; }; struct EqualCaseInsensitive { bool operator() (const ScTypedStrData& left, const ScTypedStrData& right) const; }; bool operator< (const ScTypedStrData& r) const; private: OUString maStrValue; double mfValue; StringType meStrType; bool mbIsDate; bool mbIsFormatted; // true if the cell value is a formatted filter value bool mbIsDuplicated; // true if the cell has a formatted filter value and has at least one duplicate formatted value. }; class FindTypedStrData { ScTypedStrData maVal; bool mbCaseSens; public: FindTypedStrData(const ScTypedStrData& rVal, bool bCaseSens); bool operator() (const ScTypedStrData& r) const; }; typedef std::set ScTypedCaseStrSet; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */