sortmode.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
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
00071 NameSortMode( NameType type, bool ascending = true );
00072
00076 virtual bool lesser( const KABC::Addressee&, const KABC::Addressee& ) const;
00077
00078 private:
00079 NameType mNameType;
00080 bool mAscendingOrder;
00081
00082 class NameSortModePrivate;
00083 NameSortModePrivate *d;
00084 };
00085
00086 class KABC_EXPORT FieldSortMode : public SortMode
00087 {
00088 public:
00097 FieldSortMode( KABC::Field *field, bool ascending = true );
00098
00102 virtual bool lesser( const KABC::Addressee&, const KABC::Addressee& ) const;
00103
00104 private:
00105 KABC::Field *mField;
00106 bool mAscendingOrder;
00107
00108 class FieldSortModePrivate;
00109 FieldSortModePrivate *d;
00110 };
00111
00112 }
00113
00114 #endif
|