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