summaryrefslogtreecommitdiffabout
path: root/kaddressbook/views/kaddressbookiconview.h
blob: 963ee7c58906533324d35353fab8f0c03d005d04 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/*                                                                      
    This file is part of KAddressBook.                                  
    Copyright (c) 2002 Mike Pilone <mpilone@slac.com>                   
                                                                        
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or   
    (at your option) any later version.                                 
                                                                        
    This program is distributed in the hope that it will be useful,     
    but WITHOUT ANY WARRANTY; without even the implied warranty of      
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the        
    GNU General Public License for more details.                        
                                                                        
    You should have received a copy of the GNU General Public License   
    along with this program; if not, write to the Free Software         
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.           
                                                                        
    As a special exception, permission is given to link this program    
    with any edition of Qt, and distribute the resulting executable,    
    without including the source code for Qt in the source distribution.
*/                                                                      

#ifndef KADDRESSBOOKICONVIEW_H
#define KADDRESSBOOKICONVIEW_H

#include <qstring.h>
#ifndef KAB_EMBEDDED
#include <kiconview.h>
#else //KAB_EMBEDDED
#include <qiconview.h>
#include <qptrlist.h>
#include <klocale.h>
#endif //KAB_EMBEDDED
#include "kaddressbookview.h"

class QIconViewItem;
class KConfig;
class AddresseeIconView;
class AddresseeIconViewItem;
class QIconDragItem;
class KAddressBookIconView;

namespace KABC { class AddressBook; }

/** This is an example kaddressbook view that is implemented using
* KIconView. This view is not the most useful view, but it displays
* how simple implementing a new view can be.
*/
class KAddressBookIconView : public KAddressBookView
{
  Q_OBJECT
    
  public:
    KAddressBookIconView( KABC::AddressBook *ab, QWidget *parent,
                          const char *name = 0 );
    virtual ~KAddressBookIconView();
    
    virtual QStringList selectedUids();
    virtual QString type() const { return "Icon"; }
    void doSearch( const QString&  s ,KABC::Field *field );
    
    virtual void readConfig(KConfig *config);
    
  public slots:
    void refresh(QString uid = QString::null);
#ifndef KAB_EMBEDDED
//MOC_SKIP_BEGIN
    void setSelected(QString uid = QString::null, bool selected = true);
//MOC_SKIP_END
#else //KAB_EMBEDDED
//US my MOC do not like default parameters ???
    void setSelected(QString uid, bool selected);
#endif //KAB_EMBEDDED
  
  protected slots:
    void addresseeExecuted(QIconViewItem *item);
    void addresseeSelected();
  
  private:
    AddresseeIconView *mIconView;
    QPtrList<AddresseeIconViewItem> mIconList;
};


#ifndef KAB_EMBEDDED
//MOC_SKIP_BEGIN
class AddresseeIconView : public KIconView
//MOC_SKIP_END
#else //KAB_EMBEDDED
class AddresseeIconView : public QIconView
#endif //KAB_EMBEDDED
{
  Q_OBJECT
  
  public:
    AddresseeIconView(QWidget *parent, const char *name);
    ~AddresseeIconView();
    
  signals:
    void addresseeDropped(QDropEvent *);
    void startAddresseeDrag();
  
  protected:
    virtual QDragObject *dragObject();
    
  protected slots:
    void itemDropped(QDropEvent *, const QValueList<QIconDragItem> &);
};

class IconViewFactory : public ViewFactory
{
  public:
    KAddressBookView *view( KABC::AddressBook *ab, QWidget *parent, const char *name )
    {
      return new KAddressBookIconView( ab, parent, name );
    }

    QString type() const { return "Icon"; }

    QString description() const { return i18n( "Icons represent contacts. Very simple view." ); }
};
/*
extern "C" {
  void *init_libkaddrbk_iconview()
  {
    return ( new IconViewFactory );
  }
}
*/
#endif