kaddressbook

contacteditorwidgetmanager.h

00001 /*
00002     This file is part of KAddressBook.
00003     Copyright (c) 2004 Tobias Koenig <tokoe@kde.org>
00004 
00005     This program is free software; you can redistribute it and/or modify
00006     it under the terms of the GNU General Public License as published by
00007     the Free Software Foundation; either version 2 of the License, or
00008     (at your option) any later version.
00009 
00010     This program 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
00013     GNU General Public License for more details.
00014 
00015     You should have received a copy of the GNU General Public License
00016     along with this program; if not, write to the Free Software
00017     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00018 
00019     As a special exception, permission is given to link this program
00020     with any edition of Qt, and distribute the resulting executable,
00021     without including the source code for Qt in the source distribution.
00022 */
00023 
00024 #ifndef CONTACTEDITORWIDGETMANAGER_H
00025 #define CONTACTEDITORWIDGETMANAGER_H
00026 
00027 #include <qwidget.h>
00028 
00029 #include "contacteditorwidget.h"
00030 
00031 namespace KABC {
00032 class Addressee;
00033 }
00034 
00035 class QGridLayout;
00036 
00037 class ContactEditorWidgetManager : public QObject
00038 {
00039   Q_OBJECT
00040 
00041   public:
00042     static ContactEditorWidgetManager *self();
00043 
00047     int count() const;
00048 
00052     KAB::ContactEditorWidgetFactory *factory( int pos ) const;
00053 
00054   protected:
00055     ContactEditorWidgetManager();
00056     ~ContactEditorWidgetManager();
00057 
00058   private:
00059     void reload();
00060 
00061     QValueList<KAB::ContactEditorWidgetFactory*> mFactories;
00062 
00063     static ContactEditorWidgetManager *mSelf;
00064 };
00065 
00066 class ContactEditorTabPage : public QWidget
00067 {
00068   Q_OBJECT
00069 
00070   public:
00071     ContactEditorTabPage( QWidget *parent, const char *name = 0 );
00072 
00076     void addWidget( KAB::ContactEditorWidget *widget );
00077 
00081     void loadContact( KABC::Addressee *addr );
00082 
00087     void storeContact( KABC::Addressee *addr );
00088 
00094     void setReadOnly( bool readOnly );
00095 
00100     void updateLayout();
00101 
00102   signals:
00106     void changed();
00107 
00108   private:
00109     QGridLayout *mLayout;
00110     KAB::ContactEditorWidget::List mWidgets;
00111 };
00112 
00113 #endif
KDE Home | KDE Accessibility Home | Description of Access Keys