diff -r 58cebe0861a8 -r 33e86ecbfdb4 gsprofilesrv_plat/controlpanel_api/inc/cplauncherinterface.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gsprofilesrv_plat/controlpanel_api/inc/cplauncherinterface.h Wed Sep 29 10:45:02 2010 +0800 @@ -0,0 +1,93 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0"" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Interface for controlpanel plugins, with this interface client application can launch a view from outside of controlpanel application. +* +*/ + + +#ifndef CPLAUNCHERINTERFACE_H +#define CPLAUNCHERINTERFACE_H + +#include +#include + +/*! + \class CpLauncherInterface + \brief The class CpLauncherInterface defines an interface for plugins, if one controlpanel plugin implements + this interface, client application can launch a setting view from outside of controlpanel application by two ways. + + (1) launch setting view in client process, using CpPluginLauncher. + + \code + CpBaseSettingView *settingView = CpPluginLauncher::launchSettingView("cpmyplugin.dll",QVariant()); + \endcode + + (2) launch setting view in embedded mode, using QtHighway client API. + + \code + if (mRequest) { + delete mRequest; + mRequest = 0; + } + + mRequest = mAppMgr.create("com.nokia.symbian.ICpPluginLauncher", "launchSettingView(QString,QVariant)", true); + + if (!mRequest) + { + return; + } + else + { + connect(mRequest, SIGNAL(requestOk(QVariant)), SLOT(handleReturnValue(QVariant))); + connect(mRequest, SIGNAL(requestError(int,QString)), SLOT(handleError(int,QString))); + } + + // Set arguments for request + QList args; + args << QVariant("cpmyplugin.dll"); + args << QVariant(); + mRequest->setArguments(args); + + mRequest->setSynchronous(false); + // Make the request + if (!mRequest->send()) + { + //report error + } + \endcode + + */ + +class QVariant; +class CpBaseSettingView; + +class CpLauncherInterface +{ +public: + /*! + Destructor of CpLauncherInterface. + */ + virtual ~CpLauncherInterface() + { + } + + /*! + Create a CpBaseSettingView by the parameter hint. + */ + virtual CpBaseSettingView *createSettingView(const QVariant &hint) const = 0; +}; + +Q_DECLARE_INTERFACE(CpLauncherInterface, "com.nokia.controlpanel.launcher.interface/1.0"); + +#endif /* CPLAUNCHERINTERFACE_H */