Класс для создания своего GUI : Эльфостроение : Форум |
arban: |
30.05.11, 11:34 |
Всем привет. Давно эту штуку сделал, но так и не выкладывал. Это класс для создания своего интерфейса в виде списка для эльфа. Пример работы можно видеть в 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 (11.70 kb; 53 hits) Скачать файл ZBinLauncher.zip (9.43 kb; 44 hits) Скачать файл |
URL этой темы: https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=5387 © 2005-2018 supertrubka.org |