Home · All Namespaces · All Classes

Status Indicator Menu

This page documents various aspects about the Status Indicator Menu.

The status indicator menu loads a predefined set of plugins implemented using application extensions. The set is defined in Direct UI – Status Indicator System UI Specification (H00405111-EN). The permanent plugins are displayed on one row next to each other. The plugins will be loaded in the below specified order from left to right and loaded from the following application extension .desktop files:

Order Plugin Application extension .desktop file name
1 Alarms statusindicatormenu-alarms.desktop
2 Internet Connection statusindicatormenu-internetconnection.desktop
3 Presence statusindicatormenu-presence.desktop
4 Profile statusindicatormenu-profile.desktop

Temporary plug-ins (whole screen wide items) are placed under the top row vertically, in the below specified order and loaded from the following application extension .desktop files:

Order Plugin Application extension .desktop file name
1 Ongoing/incoming call statusindicatormenu-call.desktop
2 Transfers statusindicatormenu-transfer.desktop

Each plugin is written as an application extension that implements MStatusIndicatorMenuExtensionInterface as follows:

class MyExtension : public QObject, public MStatusIndicatorMenuExtensionInterface
{
    Q_OBJECT
    Q_INTERFACES(MStatusIndicatorMenuExtensionInterface MApplicationExtensionInterface)
public:
    MyExtension(QObject *parent);
    virtual ~MyExtension();
    // Methods derived from MApplicationExtensionInterface
    virtual bool initialize(const QString &interface);
    virtual QGraphicsWidget *widget();
    virtual void setStatusIndicatorMenuInterface(MStatusIndicatorMenuInterface &menuInterface);
private:
    QGraphicsWidget *myWidget;
};
MyExtension::MyExtension(QObject *parent) : QObject(parent)
{
}
MyExtension::~MyExtension()
{
    delete myWidget;
}
bool MyExtension::initialize(const QString &)
{
    myWidget = new MyWidget;
    return true;
}
QGraphicsWidget *MyExtensionwidget()
{
    return myWidget;
}
void setStatusIndicatorMenuInterface(MStatusIndicatorMenuInterface &menuInterface)
{
    // ...
}

initialize(const QString &interface) should initialize the plugin.

widget() should return a pointer to a GraphicsWidget for the plugin. This QGraphicsWidget is then inserted into the status indicator menu layout by the status indicator menu.

setStatusIndicatorMenuInterface(MStatusIndicatorMenuInterface &menuInterface) lets the plugin know about an interface to the status indicator menu which allows the plugin to show and hide the status indicator menu using showStatusIndicatorMenu() and hideStatusIndicatorMenu().

More information about application extension development is available in the libmeegotouch documentation. An example plugin is available in the system-ui source package.


Copyright © 2011 Nokia Corporation Generated on Tue Aug 30 2011 16:38:12
Doxygen 1.7.1
MeeGo Touch