diff -r 7feec50967db -r e492551a0d54 hswidgetmodel/examples/helloworldwidgetprovider/src/helloworldwidgetprovider.cpp --- a/hswidgetmodel/examples/helloworldwidgetprovider/src/helloworldwidgetprovider.cpp Tue Mar 23 23:17:02 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,167 +0,0 @@ -/* -* 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: Example of home screen widget -* -*/ - -#include - -#include "helloworldwidgetprovider.h" -#include "helloworldwidget.h" - - -/*! - \ingroup group_helloworld_widget - \class HelloWorldWidgetProvider - \brief Example implementation for home screen widget provider. - - @page page_creating_widget_provider Creating Home Screen Widget Provider - - Widgets are exposed to the home screen through widget provider plugins. - A widget can be added to an existing provider or new one can be created. - Widget provider plugins are implemented according to - the Qt plugin model. - - See @ref page_developing_home_screen_widget for the instructions how to create widget for the home screen. - - The steps to create a widget provider are: -
    -
  1. Declare a plugin class that inherits from QObject and from the \c IHsWidgetProvider interface. - -
  2. Use the Q_INTERFACES() macro to tell Qt's meta-object system about the \c IHsWidgetProvider interface. - -
  3. Export the plugin using the Q_EXPORT_PLUGIN2() macro. - -
  4. Build the plugin using an suitable .pro file. See @ref page_deploying_widget_provider. -
- - An example (full example source code can be found from section @ref page_developing_home_screen_widget): - - -Each widget provider plugin has a manifest file that allows searching widgets from the plugin without first loading it. -The manifest file contains information on widgets inside the plugin: - -\li \c library The name of the provider plugin binary. -\li \c uri Uniquely identifies the widget. -\li \c title Widget's human-readable name. -\li \c iconuri URI of the widget's icon image file. - -Example: Manifest for a widget provider. - -@code - - - - -@endcode - - -@page page_deploying_widget_provider Deploying Home Screen Widget Provider - -Widget's binaries and manifest file(s) must be deployed to correct folders on emulator and in target. -Below are the needed .pro file for the \c helloworldwidgetprovider. - -For example: -@code -# helloworldwidgetprovider.pro - -TEMPLATE = lib - -CONFIG += plugin hb -LIBS += -lhswidgetmodel - -HEADERS += ./inc/ *.h \ - ./helloworldwidget/inc/ *.h - -SOURCES += ./src/ *.cpp \ - ./helloworldwidget/src/ *.cpp - -DEPENDPATH += ./inc \ - ./src - -symbian: { - INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE - - # get your own symbian uid - TARGET.UID3 = 0xEABCFE12 - TARGET.EPOCALLOWDLLDATA=1 - TARGET.CAPABILITY = ALL -TCB - - # add your symbian uid here - PLUGIN_SUBDIR = /private/20022F35/import/widgetregistry/EABCFE12 - - pluginstub.sources = $${TARGET}.dll - pluginstub.path = $$PLUGIN_SUBDIR - - DEPLOYMENT += pluginstub - - qtplugins.path = $$PLUGIN_SUBDIR - qtplugins.sources += qmakepluginstubs/$${TARGET}.qtplugin - qtplugins.sources += resource/$${TARGET}.manifest - qtplugins.sources += resource/$${TARGET}.png - - for(qtplugin, qtplugins.sources):BLD_INF_RULES.prj_exports += "./$$qtplugin z:$$qtplugins.path/$$basename(qtplugin)" -} - -@endcode - -For detailed information on DEPLOYMENT macro, see here. - -*/ - - -/*! - Initialize token for hello world widget. Contains necessary information about - the hello world widget that can be loaded with this provider. -*/ -HelloWorldWidgetProvider::HelloWorldWidgetProvider() -{ - mWidgetToken.mLibrary = QString("helloworldwidgetprovider.dll"); - mWidgetToken.mUri = QString("homescreen.nokia.com/widget/helloworld"); - mWidgetToken.mTitle = QString("HelloWorld"); - mWidgetToken.mIconUri = QString("helloworldwidgetprovider.png"); -} - -/*! - Destructor -*/ -HelloWorldWidgetProvider::~HelloWorldWidgetProvider() -{ - -} - -/*! - Returns list of loadable widgets' tokens. -*/ -QList HelloWorldWidgetProvider::widgets() -{ - return QList() << mWidgetToken; -} - -/*! - Create widget based on uri \a token -*/ -HsWidget* HelloWorldWidgetProvider::createWidget(const HsWidgetToken& token) -{ - HsWidget *widget = 0; - if (token.mUri == mWidgetToken.mUri) { - widget = new HelloWorldWidget(); - } - return widget; -} - -Q_EXPORT_PLUGIN2(helloworldwidgetprovider, HelloWorldWidgetProvider)