motofan logo
> 

Управление на рабочем столе, HomeScreenTools

DmT
сообщение 27.12.2008, 10:09


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



Существует проблема: при двух и более эльфах, которые требуют управление с рабочего стола, и при приходе ивента клавиши вызывают APP_ConsumeEv - получается черти что.
Поэтому вот нам менеджер эльфов рабочего стола - HomeScreenTools.
Информация для разработчиков:
Первое что нужно сделать - добавить себе в SDK в ивенты:
Код
#define NEW_DESKTOP_APP_EV 0xFFD0
#define DEL_DESKTOP_APP_EV 0xFFD1
#define DESKAPP_GET_FOCUS_EV 0xFFD2

Далее, если эльф использует управление на рабочем столе он должен регистрироваться, дерегистрироваться и ловить ивент сообщающий о выбранном регионе.
А теперь по порядку.
Для регистрации вызываем
Код
UINT32 RegRegionOnDesktop( EVENT_STACK_T *ev_st, APPLICATION_T *app )
{
    DESKAPP_DATA_T Iam;

    Iam.y = высота_на_которой_расположены_контрлы;
    strcpy(Iam.app_name, app_name); // вместо app_name можно использовать что угодно, лишь бы повторения небыло.
    AFW_CreateInternalQueuedEvAux(NEW_DESKTOP_APP_EV, FBF_LEAVE, sizeof(DESKAPP_DATA_T), &Iam);

    return RESULT_OK;
}

Структура данных:
Код
typedef struct
{
    char app_name[APP_NAME_LEN];
    INT16 y;
} DESKAPP_DATA_T;

При выходе вызываем:
Код
UINT32 UnRegRegion( EVENT_STACK_T *ev_st, APPLICATION_T *app )
{
    AFW_CreateInternalQueuedEvAux(DEL_DESKTOP_APP_EV, FBF_LEAVE, sizeof(app_name), (char*)app_name);

    return RESULT_OK;
}

Кроме того, надо ловить ивент DESKAPP_GET_FOCUS_EV и обрабатывать его функцией:
Код
UINT32 OnGetFocus( EVENT_STACK_T *ev_st, APPLICATION_T *app )
{
    EVENT_T     *event;

    event = AFW_GetEv(ev_st);
    if(namecmp(((DESKAPP_DATA_T*)event->attachment)->app_name, app_name)) IsActive = TRUE;
    else IsActive = FALSE;  // для мониторинга активности/неактивности
    
    // Если используется графика(что желательно) тут стоит обновить интерфейс, с учетом активности/неактивности

    return RESULT_OK;
}

Ну и обрабатывать клавиатуру надо только если IsActive == true
Для пользователей:
Если есть нужда - пропишите HomeScreenTools в авторан.

Скачать с исходниками:
Прикрепленный файл hst.zip   ( 12.2 килобайт ) Кол-во скачиваний: 305


Сообщение отредактировал DmT - 6.1.2009, 13:26
Прикрепленный файл hst.zip   ( 12.2 килобайт ) Кол-во скачиваний: 305
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить

Сообщений в этой теме
DmT   Управление на рабочем столе   27.12.2008, 10:09
Andy51   Ага, хотя и не должны этого делать! Может, луч...   27.12.2008, 13:40
DmT   Andy51, Ну и что ты предлагаешь? Если все равно н...   27.12.2008, 13:53
om2804   Andy51, а как быть без APP_ConsumeEv ? На рабочем...   27.12.2008, 15:43
DmT   om2804, Ну ты то согласен поправить Tunes таким о...   27.12.2008, 16:37
tim apple   можно проще: эльф с запросом о регистрации в HomeS...   27.12.2008, 17:24
om2804   Tunes переделаю конечно   27.12.2008, 20:57
DmT   om2804, tim apple, Andy51, Теперь про графичски...   28.12.2008, 3:15
Мачо   Про проблему тюнса и хоум скрина. А не проще приор...   28.12.2008, 8:45
Andy51   DmT, а кстати да! Мачо дело говорит - просто в...   28.12.2008, 11:28
DmT   Новый вариант: Эльфы сами решают работать с клавиа...   30.12.2008, 6:46
motoprogger   Выражайся понятнее :) я так понял, эльф должен ре...   31.12.2008, 14:12
DmT   Готово. Смотрим спецификацию в первом посте.   4.1.2009, 18:15
Eduardu   Глупый вопрос назрел: это уже готовый эльф?! С...   5.1.2009, 7:40
Baat   Идея хорошая...но главное, чтоб всё не закончилос...   5.1.2009, 7:40
lavmen   да, только тюнс никто не переписал и тулбара еще н...   5.1.2009, 8:18
DmT   Зачем? ну контрол может использовать любые клавиш...   5.1.2009, 8:20
baat   lavmen ты тулбар на сайте видешь? и я не вижу))) а...   5.1.2009, 8:42
Andy51   DmT, кстати в EP2 можно отправить ивент конкретном...   5.1.2009, 13:16
DmT   Andy51, Да пусть получают все. Когда эльф получае...   5.1.2009, 13:34
Andy51   DmT, это лишние действия. Пускай будет лучше ивент...   5.1.2009, 14:20
DmT   Andy51, Ну ладно, ладно. Соглашусь пожалуй. Тольк...   5.1.2009, 14:30
DmT   Обновил менеджер. Прошу протестировать на предмет ...   6.1.2009, 9:36
Serg398   DmT, на 79R не работает! Часы попрежнему идут...   6.1.2009, 11:19
DmT   Serg398, А что именно не работает? ???   6.1.2009, 12:27
Serg398   Объясни подробнее что должно произойти? По твоим с...   6.1.2009, 12:44
K-E-N-N-Y   Serg398, я думаю наоборот они не должны останавлив...   6.1.2009, 15:41
croccio   how this elf work?   24.1.2009, 16:30
RuslanchiK   DmT, так есть ли твой тулбар, он же HsT о котором ...   1.2.2009, 13:33
PUSYA   Это две абсолютно разные вещи. HST - менеджер, а ...   3.2.2009, 19:30
CrayZor   Это две абсолютно разные вещи. HST - менеджер, а ...   3.2.2009, 21:10

Управление на рабочем столе, HomeScreenTools · Эльфы, их разработка и портирование · Forum
 

Закрытая темаСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: 10.7.2025, 16:08

Форум живёт: 8078 дней