×
Namespaces

Variants
Actions

Как создать собственную экранную заставку

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Пример кода
Исходный файл: Media:Screensaver.zip

Платформа безопасности
Необходимость подписи: Symbian Signed, DevCert
Возможности (Capabilities): NetworkServices, LocalServices, Location, ReadUserData, WriteUserData, ReadDeviceData, WriteDeviceData, SwEvent, UserEnvironment, PowerMgmt

Статья
Перевод:
Оригинал: How to create screensaver
Den123
Последнее редактирование: hamishwillee (09 Dec 2011)

Необходимо включить следующие заголовочные файлы:

  • include <screensaverpluginintdef.h>
  • include <ImplementationProxy.h>

На этапе связывания понадобятся библиотеки:

  • euser.lib
  • efsrv.lib
  • cone.lib
  • ECom.lib

В mmp-файле определите:

TARGET        YourScreenSaverName.dll
TARGETTYPE PLUGIN
UID 0x10009D8D 0xEA005C44

Вместо 0xEA005C44 задайте свое значение UID3, вместо YourScreenSaverName.dll задайте свое имя файла.

Для создания screensaver'а нужно реализовать собственного потомка класса CScreensaverPluginInterfaceDefinition. Этот класс наследует интерфейс MScreensaverPlugin чистые виртуальные функции которого необходимо перекрыть:

virtual TInt InitializeL(MScreensaverPluginHost* aHost) = 0;
virtual TInt Draw(CWindowGc& aGc) = 0;
virtual TInt HandleScreensaverEventL(TScreensaverEvent aEvent, TAny* aData) = 0;
virtual const TDesC16& Name() const = 0;
  • InitializeL() - используется для инициализации плагина, для настройки следующих параметров:
    • использовать или нет стандартные индикаторы
    • плагин может отрисовывать собственную область отображения индикаторов или использовать стандартную
    • возможно задать длительность временного интервала, по прошествию которого будет вызываться метод Draw()
    • включить или выключить подсветку экрана
    • для экрана возможно активировать режим частичного отображения (display partial mode).

Display partial mode - это особый режим работы экрана, при использовании которого которого можно задать т.н. активную область (active area). После активации этого режима, экран будет обновлять только заданную область, при этом энергоснабжение остальной части экрана будет отключено, что позволяет значительно экономить заряд аккумулятора. Следует учесть, что на данный момент в качестве активной области можно задать только горизонтальную полосу относительно текущей ориентации. Не все аппараты поддерживают данный режим работы с использованием public API.

  • Draw() - вызывается периодически по прошествию заданного временного интервала. В этом методе должна производиться отрисовка изображения заставки.
  • HandleScreensaverEventL() - с помощью данного метода можно обрабатывать события экранной заставки, такие как активация, остановка, таймаут и т.д.
  • Name() - данный метод должен возвращать название экранной заставки, которое показывается пользователю в списке доступных заставок при настройке темы.

Пример кода

File:Screensaver.zip

Внешние ссылки

This page was last modified on 9 December 2011, at 05:09.
81 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×