This page was last modified 20:46, 20 March 2008.
Как создать собственную экранную заставку
From Forum Nokia Wiki
Перевод с английского, оригинальная статья находится здесь.
Необходимо включить следующие заголовочные файлы:
- include <screensaverpluginintdef.h>
- include <ImplementationProxy.h>
На этапе связывания понадобятся библиотеки:
- euser.lib
- efsrv.lib
- cone.lib
- ECom.lib
Для экранной заставки требуется серьезный набор capabilities:
- NetworkServices
- LocalServices
- Location
- ReadUserData
- WriteUserData
- ReadDeviceData
- WriteDeviceData
- SwEvent
- UserEnvironment
- PowerMgmt
В 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() - данный метод должен возвращать название экранной заставки, которое показывается пользователю в списке доступных заставок при настройке темы.
Пример кода
Внешние ссылки
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| smsu.lib | truf | Russian Developer Forum - Форум Российских разработчиков | 6 | 2008-01-28 15:24 |
| S60 3rd Edition FP2 SDK released | Den123 | Russian Developer Forum - Форум Российских разработчиков | 8 | 2008-03-20 06:02 |
| Переврд курсора в CEikEdwin | SiNoptik | Russian Developer Forum - Форум Российских разработчиков | 5 | Yesterday 07:06 |
| Делаем основной цикл игры | Ecconaut | Russian Developer Forum - Форум Российских разработчиков | 17 | 2007-12-12 04:32 |
| Поворот на телевизоре картинки выдаваемой Nokia N95 | aragsm | Russian Developer Forum - Форум Российских разработчиков | 5 | 2008-03-14 09:49 |
