Все для Sony Ericsson, патчи, эльфы, моддинг, прошивка
Логин: Пароль: Запомнить: Привет гость! Зарегистрируйся или авторизируйся для получения доп. возможностей!
Разделы
PDA версия сайта
Новости
Статьи
Файлы
Патчи
Патчи A2
Патчи db2020
Эльфы
Исходники эльфов
Wiki
Форум
Обратная связь
Развернуть/Свернуть
 
Развернуть/Свернуть

Класс для создания своего GUI : Эльфостроение : Эльфы : Форум : Для Sony Ericsson патчи эльфы моддинг прошивка
/  Список форумов
   /  Эльфы
      /  Эльфостроение
   /  Класс для создания своего GUI
На печать 
Правила 


arban


Elfmaker


Регистрация: 2.3.08
Сообщений: 802
Репутация: 3111





 
  #1 [30.05.11, 11:34] Класс для создания своего GUI   

 
Всем привет. Давно эту штуку сделал, но так и не выкладывал. Это класс для создания своего интерфейса в виде списка для эльфа. Пример работы можно видеть в ZBinLauncher.

Немного расскажу о методах

int GetItemsNum() возвращает количество элементов в списке
int GetMoreNum() возвращает количество элементов в дополнительном меню
int GetKeyNum() возвращает количество кнопок, назначенных на какие-либо действия
int GetCondNum() возвращает количество условий
int GetSelected() возвращает выделенный элемент
int GetMoreSelected() возвращает выделенный элемент в дополнительном меню
bool IsMore() возвращает истину, если открыто дополнительное меню
void SetTitle(wchar_t * txt) устанавливает заголовок
int LoadLayout(wchar_t * file) загружает файл с настройками интерфейса
GITEM * GetItem(int index) возвращает элемент с нужным индексом
LAYOUT * GetLayout() возвращает структуру с информацией о настройках интерфейса
Sort_(int(*cmp_proc)(void * s1, void * s2)) сортирует элементы, используя callback-функцию для сравнения двух элементов. Сортировка Шелла
void Sort_2() сортирует элементы по возрастанию. Пузырьковая сортировка

GITEM * AddItem(wchar_t * name, wchar_t * second_line, wchar_t iconid, void(*action)( CBookBase*book, CGuiBase* ),void*add_data) добавляет новый элемент в список
name - название
second_line - подпись под названием (если нужна)
iconid - иконка
action - действие, выполняющееся при выборе элемента
add_data - дополнительные данные, добавляемые в структуру элемента


GITEM * AddDynItem(wchar_t * name, wchar_t * second_line, wchar_t iconid, void(*action)( CBookBase*book, CGuiBase* ),di_arg,void*add_data) добавляет динамический элемент в список
name - название
second_line - подпись под названием (если нужна)
iconid - иконка
action - действие, выполняющееся при выборе элемента
add_data - дополнительные данные, добавляемые в структуру элемента
di_arg - callback-функция вида void(*cond)(GITEM*gi,int index,CBookBase*book, CGuiBase*g), необходимая для проверки условий или для выполнения чего-либо. Необходима для изменения названия, иконки, действия и т.д. этого пункта.



void AddMoreItem(wchar_t * name, wchar_t iconid, void(*action)( CBookBase*book, CGuiBase* ))добавляет элемент в дополнительное меню
name - название
iconid - иконка
action - действие, выполняющееся при выборе элемента


void AddKeyAction(int key, int mode, void(*action)( CBookBase*book, CGuiBase* )) назначает на определенную кнопку определенное действие
key - кнопка
mode - режим нажатия
action - действие


void AddCondition(bool (*condition)(), void(*action)( CBookBase*book, CGuiBase* )) добавляет условие, при истинности которого будет выполняться нужное действие.
condition - callback-функция. Если возвращает истину, то выполняется действие
action - действие


Константы

EMPTY_ACTION - пустое действие, используется в AddItem, AddDynItem, AddCondition
SELECT_ACTION - выбор пункта, используется в AddKey
OPEN_MORE_ACTION - открытие дополнительного меню, используется в AddKey
CLOSE_MORE_ACTION - закрытие дополнительного меню, используется в AddKey

Знаю, что все довольно мутно. Надеюсь, что кому-то это пригодиться и можно будет продолжить разработку.

Прикладываю также исходник ZBinLauncher. В "поставку" включен также класс для удобной работой с файлами.

[ Редактировано arban в 30.5.11 12:03 ]



Прикрепленный к сообщению файл:

api.zip api.zip (11.70 kb; 58 hits) Скачать файл
ZBinLauncher.zip ZBinLauncher.zip (9.43 kb; 49 hits) Скачать файл


LG Optimus
My SVN | Elflib Wiki | Elf SVN
Спасибо сказали: toha257, MAVER145, DuMOHsmol, zylka, E1kolyan, farid, clisto, Therion, ZverUA, Nook, Zormax, Black_Roland, Metaler



  • Поиск
  • Права
Вы не можете начинать темы.
Вы не можете редактировать свои сообщения.
Вы не можете создавать опросы.
Вы не можете вкладывать файлы в сообщения.
Вы не можете отвечать на сообщения.
Вы не можете удалять свои сообщения.
Вы не можете голосовать.

Главная Новости Статьи Файлы Патчи Форум Опросы PDA
- Генерация страницы: 0.03 секунд | 11 Запросов | HTML: 28.88 КБ -