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 TQt, and distribute the resulting executable,
00021     without including the source code for TQt in the source distribution.
00022 */
00023 
00024 #ifndef CONTACTEDITORWIDGETMANAGER_H
00025 #define CONTACTEDITORWIDGETMANAGER_H
00026 
00027 #include <tqwidget.h>
00028 
00029 #include "contacteditorwidget.h"
00030 
00031 namespace TDEABC {
00032 class Addressee;
00033 }
00034 
00035 class TQGridLayout;
00036 
00037 class ContactEditorWidgetManager : public TQObject
00038 {
00039   Q_OBJECT
00040   
00041 
00042   public:
00043     static ContactEditorWidgetManager *self();
00044 
00048     int count() const;
00049 
00053     KAB::ContactEditorWidgetFactory *factory( int pos ) const;
00054 
00055   protected:
00056     ContactEditorWidgetManager();
00057     ~ContactEditorWidgetManager();
00058 
00059   private:
00060     void reload();
00061 
00062     TQValueList<KAB::ContactEditorWidgetFactory*> mFactories;
00063 
00064     static ContactEditorWidgetManager *mSelf;
00065 };
00066 
00067 class ContactEditorTabPage : public TQWidget
00068 {
00069   Q_OBJECT
00070   
00071 
00072   public:
00073     ContactEditorTabPage( TQWidget *parent, const char *name = 0 );
00074 
00078     void addWidget( KAB::ContactEditorWidget *widget );
00079 
00083     void loadContact( TDEABC::Addressee *addr );
00084 
00089     void storeContact( TDEABC::Addressee *addr );
00090 
00096     void setReadOnly( bool readOnly );
00097 
00102     void updateLayout();
00103 
00104   signals:
00108     void changed();
00109 
00110   private:
00111     TQGridLayout *mLayout;
00112     KAB::ContactEditorWidget::List mWidgets;
00113 };
00114 
00115 #endif