kabc Library API Documentation

sortmode.h

00001 /* 00002 This file is part of libkabc. 00003 Copyright (c) 2004 Tobias Koenig <tokoe@kde.org> 00004 00005 This library is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU Library General Public 00007 License as published by the Free Software Foundation; either 00008 version 2 of the License, or (at your option) any later version. 00009 00010 This library is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 Library General Public License for more details. 00014 00015 You should have received a copy of the GNU Library General Public License 00016 along with this library; see the file COPYING.LIB. If not, write to 00017 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00018 Boston, MA 02111-1307, USA. 00019 */ 00020 00021 #ifndef KABC_SORTMODE_H 00022 #define KABC_SORTMODE_H 00023 00024 #include <kdelibs_export.h> 00025 00026 #include <kabc/addressee.h> 00027 00028 namespace KABC { 00029 00036 class KABC_EXPORT SortMode 00037 { 00038 public: 00043 virtual bool lesser( const KABC::Addressee &first, const KABC::Addressee &second ) const = 0; 00044 }; 00045 00046 class KABC_EXPORT NameSortMode : public SortMode 00047 { 00048 public: 00049 enum NameType 00050 { 00051 FormattedName, 00052 FamilyName, 00053 GivenName 00054 }; 00055 00061 NameSortMode(); 00062 00070 NameSortMode( NameType type, bool ascending = true ); 00071 00075 virtual bool lesser( const KABC::Addressee&, const KABC::Addressee& ) const; 00076 00077 private: 00078 NameType mNameType; 00079 bool mAscendingOrder; 00080 00081 class NameSortModePrivate; 00082 NameSortModePrivate *d; 00083 }; 00084 00085 class KABC_EXPORT FieldSortMode : public SortMode 00086 { 00087 public: 00095 FieldSortMode( KABC::Field *field, bool ascending = true ); 00096 00100 virtual bool lesser( const KABC::Addressee&, const KABC::Addressee& ) const; 00101 00102 private: 00103 KABC::Field *mField; 00104 bool mAscendingOrder; 00105 00106 class FieldSortModePrivate; 00107 FieldSortModePrivate *d; 00108 }; 00109 00110 } 00111 00112 #endif
KDE Logo
This file is part of the documentation for kabc Library Version 3.4.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Apr 12 23:27:23 2005 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003