kio Library API Documentation

kdatatool.h

00001 /* This file is part of the KDE project
00002    Copyright (C) 1998, 1999, 2000 Torben Weis <weis@kde.org>
00003    Copyright (C) 2001 David Faure <david@mandrakesoft.com>
00004 
00005    This library is free software; you can redistribute it and/or
00006    modify it under the terms of the GNU Library General Public
00007    License as published by the Free Software Foundation; either
00008    version 2 of the License, or (at your option) any later version.
00009 
00010    This library 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 GNU
00013    Library General Public License for more details.
00014 
00015    You should have received a copy of the GNU Library General Public License
00016    along with this library; see the file COPYING.LIB.  If not, write to
00017    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00018    Boston, MA 02111-1307, USA.
00019 */
00020 
00021 #ifndef KDATATOOL_H
00022 #define KDATATOOL_H
00023 
00024 #include <qobject.h>
00025 #include <qvaluelist.h>
00026 
00027 #include <kaction.h>
00028 #include <kservice.h>
00029 
00030 class KDataTool;
00031 class QPixmap;
00032 class QStringList;
00033 class KInstance;
00034 
00035 // If you're only looking at implementing a data-tool, skip directly to the last
00036 // class definition, KDataTool.
00037 
00046 class KDataToolInfo
00047 {
00048 public:
00052     KDataToolInfo();
00056     KDataToolInfo( const KService::Ptr& service, KInstance* instance );
00060     KDataToolInfo( const KDataToolInfo& info );
00064     KDataToolInfo& operator= ( const KDataToolInfo& info );
00065 
00071     QString dataType() const;
00082     QStringList mimeTypes() const;
00083 
00087     bool isReadOnly() const;
00088 
00093     QPixmap icon() const;
00098     QPixmap miniIcon() const;
00102     QString iconName() const;
00115     QStringList userCommands() const;
00125     QStringList commands() const;
00126 
00131     KDataTool* createTool( QObject* parent = 0, const char* name = 0 ) const;
00132 
00133     KService::Ptr service() const;
00134     KInstance* instance() const { return m_instance; }
00135 
00140     bool isValid() const;
00141 
00149     static QValueList<KDataToolInfo> query( const QString& datatype, const QString& mimetype, KInstance * instance );
00150 
00151 private:
00152     KService::Ptr m_service;
00153     KInstance* m_instance;
00154 private:
00155     class KDataToolInfoPrivate* d;
00156 };
00157 
00158 
00169 class KDataToolAction : public KAction
00170 {
00171     Q_OBJECT
00172 public:
00173     KDataToolAction( const QString & text, const KDataToolInfo & info, const QString & command, QObject * parent = 0, const char * name = 0);
00174 
00181     static QPtrList<KAction> dataToolActionList( const QValueList<KDataToolInfo> & tools, const QObject *receiver, const char* slot );
00182 
00183 signals:
00184     void toolActivated( const KDataToolInfo & info, const QString & command );
00185 
00186 protected:
00187     virtual void slotActivated();
00188 
00189 private:
00190     QString m_command;
00191     KDataToolInfo m_info;
00192 protected:
00193     virtual void virtual_hook( int id, void* data );
00194 private:
00195     class KDataToolActionPrivate* d;
00196 
00197 };
00198 
00210 class KDataTool : public QObject
00211 {
00212     Q_OBJECT
00213 public:
00218     KDataTool( QObject* parent = 0, const char* name = 0 );
00219 
00223     void setInstance( KInstance* instance ) { m_instance = instance; }
00224 
00229     KInstance* instance() const;
00230 
00243     virtual bool run( const QString& command, void* data, const QString& datatype, const QString& mimetype) = 0;
00244 
00245 private:
00246     KInstance * m_instance;
00247 protected:
00248     virtual void virtual_hook( int id, void* data );
00249 private:
00250     class KDataToolPrivate;
00251     KDataToolPrivate * d;
00252 };
00253 
00254 #endif
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.4.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Sun Feb 27 22:15:29 2005 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001