/* This file is part of the KDE project Copyright (C) 1998, 1999 Reginald Stadlbauer Modified by Joseph wenninger, 2001 This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #ifndef mailmerge_h #define mailmerge_h #include #include #include #include #include #include #include #include "KWMailMergeDataSource.h" #include "KWordMailMergeDatabaseIface.h" #include class TQListBox; class TQPushButton; class TQLineEdit; class TQSpinBox; class KWDocument; class TQVBox; //class KWMailMergeDataBase; /****************************************************************** * * Class: KWMailMergeDataBase * ******************************************************************/ class KWORD_EXPORT KWMailMergeDataBase: public TQObject,KWordMailMergeDatabaseIface { TQ_OBJECT public: KWMailMergeDataBase( KWDocument *doc_ ); void showConfigDialog(TQWidget *); // Select datasource type and / or configure datasource TQString getValue( const TQString &name, int record = -1 ) const; //accesses the plugin bool isSampleRecord(); const TQMap< TQString, TQString > &getRecordEntries() const; //accesses the plugin int getNumRecords() const; //accesses the plugin TQDomElement save(TQDomDocument &doc) const; // save some global config + plugin config void load( const TQDomElement& elem ); // save some global config + plugin config KWMailMergeDataSource *loadPlugin(const TQString& name); KWMailMergeDataSource *openPluginFor(int type,int &version); virtual void refresh(bool force); virtual TQStringList availablePlugins(); virtual bool loadPlugin(const TQString &name,const TQString &command); virtual bool isConfigDialogShown(); int version(); private: int m_version; protected: friend class KWMailMergeConfigDialog; KWDocument *doc; int action; class KWMailMergeDataSource *plugin; TQMap emptyMap; bool askUserForConfirmationAndConfig(KWMailMergeDataSource *tmpPlugin,bool config,TQWidget *par,int version); bool rejectdcopcall; }; class KWMailMergeChoosePluginDialog : public KDialogBase { TQ_OBJECT public: KWMailMergeChoosePluginDialog( TDETrader::OfferList ); ~KWMailMergeChoosePluginDialog(); int currentPlugin() const; private slots: void pluginChanged( int pos ); private: class TQComboBox *chooser; class TQLabel *descriptionLabel; TDETrader::OfferList pluginOffers; }; class KWMailMergeConfigDialog : public KDialogBase { TQ_OBJECT public: KWMailMergeConfigDialog ( TQWidget *parent, KWMailMergeDataBase *db ); ~KWMailMergeConfigDialog(); protected: TQPushButton *edit; TQPushButton *create; TQPushButton *open; TQPushButton *preview; TQPushButton *document; KWMailMergeDataBase *db_; void enableDisableEdit(); void doNewActions(); protected slots: void slotEditClicked(); void slotCreateClicked(); void slotOpenClicked(); void slotPreviewClicked(); void slotDocumentClicked(); }; /****************************************************************** * * Class: KWMailMergeVariableInsertDia * ******************************************************************/ class KWMailMergeVariableInsertDia : public KDialogBase { TQ_OBJECT public: KWMailMergeVariableInsertDia( TQWidget *parent, KWMailMergeDataBase *db ); TQString getName() const; // ### unused, can we remove this? protected slots: void slotSelectionChanged(); private: KWMailMergeDataBase *m_db; protected: TQListBox *names; }; #endif