You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
koffice/filters/olefilters/olefilter.h

133 lines
4.4 KiB

/* This file is part of the KDE project
Copyright (C) 1999 Werner Trobin <trobin@kde.org>
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.
*/
// The OLEFilter class is the main filtering class. It manages the
// correct handling of the input and output file and provides the
// OLE 2 streams for the real filters (excel97, powerpoint97, winword97)
#ifndef OLEFILTER_H
#define OLEFILTER_H
#include <filterbase.h>
#include <KoFilter.h>
#include <klaola.h>
class KoStore;
class OLEFilter : public KoEmbeddingFilter {
TQ_OBJECT
public:
OLEFilter(KoFilter *parent, const char *name, const TQStringList&);
virtual ~OLEFilter();
virtual KoFilter::ConversionStatus convert( const TQCString& from, const TQCString& to );
public slots:
void commSlotDelayStream( const char* delay );
void commSlotShapeID( unsigned int& shapeID );
protected slots:
// This slot saves the document informations to the KOffice tar storage.
void slotSaveDocumentInformation(
const TQString &fullName,
const TQString &title,
const TQString &company,
const TQString &email,
const TQString &telephone,
const TQString &fax,
const TQString &postalCode,
const TQString &country,
const TQString &city,
const TQString &street,
const TQString &docTitle,
const TQString &docAbstract);
// This slot saves an embedded Picture to the KOffice tar storage.
void slotSavePic(
const TQString &nameIN,
TQString &storageId,
const TQString &extension,
unsigned int length,
const char *data);
// This slot saves an embedded object to the KOffice tar storage. Note that
// this only applies to objects within an OLE stream (like embedded WMFs)
// that we want to handle as parts rather than using slotSavePic() since OLE
// objects are handled by us, and a filter need only call slotPart().
void slotSavePart(
const TQString &nameIN,
TQString &storageId,
TQString &mimeType,
const TQString &extension,
unsigned int length,
const char *data);
// Generate a name for a new part to store it in the KOffice tar storage,
// or find the name and type of an existing one.
void slotPart(
const TQString &nameIN,
TQString &storageId,
TQString &mimeType);
// Get another OLE 2 stream for your filter.
// Attention: You'll have to delete [] the stream.data ptr!
void slotGetStream(const int &handle, myFile &stream);
// Like above. Note: This method might return the wrong stream
// as the stream names are NOT unique in the OLE 2 file!!!
// (Therefore it's searching only in the current dir)
// Attention: You'll have to delete [] the stream.data ptr!
void slotGetStream(const TQString &name, myFile &stream);
signals:
// Forwarding signals for inter-filter communication
void internalCommShapeID( unsigned int& shapeID );
void internalCommDelayStream( const char* delay );
private:
// Don't copy or assign me >:)
OLEFilter(const OLEFilter &);
const OLEFilter &operator=(const OLEFilter &);
// Template method, triggered by embedPart calls
virtual void savePartContents( TQIODevice* file );
void convert( const TQCString& mimeTypeHint );
void connectCommon(FilterBase **myFilter);
TQCString mimeTypeHelper();
TQMap<TQString, TQString> imageMap;
myFile olefile;
int numPic; // for the "unique name generation"
KLaola *docfile; // used to split up the OLE 2 file
// Needed for the template method callback savePartContents
const char* m_embeddeeData;
unsigned int m_embeddeeLength;
bool success;
static const int s_area;
};
#endif // OLEFILTER_H