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.
107 lines
3.9 KiB
107 lines
3.9 KiB
15 years ago
|
/* This file is part of the KDE project
|
||
|
Copyright (C) 1999 Simon Hausmann <hausmann@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.
|
||
|
*/
|
||
|
#ifndef __kdcoppropertyproxy_h__
|
||
|
#define __kdcoppropertyproxy_h__
|
||
|
|
||
|
#include <qobject.h>
|
||
|
#include <qcstring.h>
|
||
|
#include <qvaluelist.h>
|
||
|
#include "kdelibs_export.h"
|
||
|
|
||
|
class KDCOPPropertyProxyPrivate;
|
||
|
/**
|
||
|
* The KDCOPPropertyProxy class provides an easy way to publish Qt properties of a
|
||
|
* QObject through DCOP.
|
||
|
*
|
||
|
* The class provides DCOP equivalents for the Qt property methods setProperty() ,
|
||
|
* property() and propertyNames() and also provides automatic set/get methods for
|
||
|
* the properties of a QObject. That means for example if your object provides a
|
||
|
* QString property called foo , then KDCOPPropertyProxy translates DCOP calls
|
||
|
* "setFoo( QString )" and "QString foo()" automatically into the corresponding
|
||
|
* setProperty/property calls.
|
||
|
*/
|
||
|
class KDECORE_EXPORT KDCOPPropertyProxy
|
||
|
{
|
||
|
public:
|
||
|
/**
|
||
|
* Convenience constructor. Use it if you want to use this class as object, in contrary
|
||
|
* to using the static methods of this class and providing a QObject argument for each
|
||
|
* call.
|
||
|
*/
|
||
|
KDCOPPropertyProxy( QObject *object );
|
||
|
/**
|
||
|
* Destructor.
|
||
|
*/
|
||
|
~KDCOPPropertyProxy();
|
||
|
|
||
|
/**
|
||
|
* Convenience method, when using this class as object. See documentation of the constructor and
|
||
|
* static isPropertyRequest method.
|
||
|
*/
|
||
|
bool isPropertyRequest( const QCString &fun );
|
||
|
|
||
|
/**
|
||
|
* Convenience method, when using this class as object. See documentation of the constructor and
|
||
|
* static processPropertyRequest method.
|
||
|
*/
|
||
|
bool processPropertyRequest( const QCString &fun, const QByteArray &data, QCString &replyType,
|
||
|
QByteArray &replyData );
|
||
|
|
||
|
/**
|
||
|
* Convenience method, when using this class as object. See documentation of the constructor and
|
||
|
* static functions method.
|
||
|
*/
|
||
|
QValueList<QCString> functions();
|
||
|
|
||
|
/**
|
||
|
* Returns a semicolon-separated list of functions understood by the PropertyProxy for the given
|
||
|
* QObject argument.
|
||
|
*
|
||
|
* Returns "property(QCString);setProperty(QCString,QVariant);propertyNames();" plus set/get
|
||
|
* methods for the properties of the given object argument.
|
||
|
*
|
||
|
* @see DCOPObject::functions()
|
||
|
*/
|
||
|
static QValueList<QCString> functions( QObject *object );
|
||
|
|
||
|
/**
|
||
|
* Returns true if the method request in the fun argument matches the signature of the three standard
|
||
|
* property methods or set/get methods for the properties of the object argument.
|
||
|
*
|
||
|
* Use this method in your own DCOPObject dispatcher to check if the DCOP request is a property
|
||
|
* request which can be handled by this class.
|
||
|
*/
|
||
|
static bool isPropertyRequest( const QCString &fun, QObject *object );
|
||
|
|
||
|
/**
|
||
|
* Processes the given DCOP method request by translating the request into a setProperty/property call
|
||
|
* on the given QObject argument.
|
||
|
*/
|
||
|
static bool processPropertyRequest( const QCString &fun, const QByteArray &data, QCString &replyType,
|
||
|
QByteArray &replyData, QObject *object );
|
||
|
|
||
|
private:
|
||
|
static bool decodePropertyRequestInternal( const QCString &fun, QObject *object, bool &set,
|
||
|
QCString &propName, QCString &arg );
|
||
|
|
||
|
KDCOPPropertyProxyPrivate *d;
|
||
|
};
|
||
|
|
||
|
#endif
|