forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Lib_menu32 - Графическое меню без головной боли (http://forum.boolean.name/showthread.php?t=6230)

odd 09.08.2008 08:01

Lib_menu32 - Графическое меню без головной боли
 
Вложений: 2
Последнее обновление 02.10.2009
Библиотека графических меню.
Пробуйте. Оценивайте. Делайте советы какие ещё функции можно добавить.
На данный момент список функций такой:

PHP код:

init Инициализация менюОчистка списка пунктовМожно вызывать неоднократно (напримердля очистки памяти).
 
SetMenuWindow(xintegeryintegerwintegerhinteger) - Установить окнов котором будет
    отображаться наше меню
xкоординаты левого верхнего углаw и h ширина и высота окна.
    
По умолчанию устанавливается окно размером в весь дисплей телефона.
 
LoadCursor(fnamestring) - Загрузить из ресурсов картинку с именем fnameкоторая будет использоваться
    в качестве курсора меню
.
 
AddItem(fnamestringtxtstring) - Добавление пункта в меню.
    
fname Путь к картинке из ресурсовкоторая будет использоваться в качестве иконки для пункта меню
    
(если иконка не нужна в качестве пути пишем строчку'NONE')
    
txt Текст подписи для пункта меню
 
MenuFonts
(f1integerf2integer) - Установить шрифтыкоторые будут использоваться в меню.
    
f1 это шрифтиспользуемый для всех элементов меню
    f2 
шрифтиспользуемый для отображения выделенного пункта
    По умолчанию используется нулевой шрифт в обоих случаях
.
 
DrawMenu Отрисовка меню в буфере экранаЧтобы меню стало видимымиспользуйте Repaint.
    
Меню при создании сохраняет свой фон и в последующих операциях использует его,
    
по-этому вам не нужно делать восстановление фона меню после каждого изменения положения курсора.
 
HideMenu Спрятать меню (восстановить фон). Операция проходит в буфере экрана.
    
Чтобы увидеть результаты изменения используйте Repaint.
 
CursorUp Передвигает курсор в меню вверх на 1 пункт
 
CursorDown 
Передвигает курсор в меню вниз на 1 пункт
 
integer Selected 
Возвращает номер выделенного пункта меню (счёт идет с 0).
 
string SelectedItem Возвращает значение (текствыделенного пункта меню
 
SetOffset
(iinteger) - Установить отступ текста от левого края окна (и от иконкиесли есть).
    
По умолчанию отступ равен 3 пикселам

Библиотека тесно использует другую библиотеку - Lib_font32, по-этому без нее она работать не будет. Уже есть идея добавить плавную прокрутку текста в пунктах с длинным текстом. Сейчас уже бьюсь над её реализацией.

Kurdt 09.08.2008 15:18

Re: Lib_menu32 - Графическое меню без головной боли
 
неплохо бы еще функцию

Установка определенного пункта меню активным (можно использовать CursorDown но это помоему более процесороемкий процесс)

Romanzes 09.08.2008 22:29

Ответ: Lib_menu32 - Графическое меню без головной боли
 
А как изменять текст пункта меню?

Strelok 09.08.2008 22:35

Ответ: Lib_menu32 - Графическое меню без головной боли
 
odd, Агромное спасибо!:super: А можно сделать функцию для получения позиции курсора на экране? хочу сделать вывод справки к пунктам

Strelok 09.08.2008 22:57

Ответ: Lib_menu32 - Графическое меню без головной боли
 
И ещё было бы здорово - если текст пункта больше заданного окна меню то он прокручивается влево-вправо. И не плохо бы сделать ползунок скролинга, с возможностью отключения. Высота пунктов меню, как я понял, зависит от размера иконки?

odd 10.08.2008 09:29

Ответ: Lib_menu32 - Графическое меню без головной боли
 
Да. Высота пункта пока зависит от иконки, но в свежей версии появится функция настройки высоты пункта. Скролинг уже делается. Также добавлю функции удаления и изменения текста пунктов. Над полосой прокрутки я уже тоже думал. Скорее всего сделаю и её, но уже в отдельной библиотеке. Ждите обновления библиотек.

Kurdt 10.08.2008 12:05

Re: Lib_menu32 - Графическое меню без головной боли
 
и еще одну мелочь можно былобы. вместо курсора битмапа генерировать филрект с опр. цветом, если картинка незадана. просто на разных разрешениях телефонах не подобртать одинаковой картинки... да и памяти меньше будет да и несложно в доработке. 2 строчки)

Еще былобы непохо центрировать надписи в меню.

Strelok 10.08.2008 21:01

Ответ: Re: Lib_menu32 - Графическое меню без головной боли
 
Цитата:

Сообщение от Kurdt (Сообщение 84134)
и еще одну мелочь можно былобы. вместо курсора битмапа генерировать филрект с опр. цветом, если картинка незадана. просто на разных разрешениях телефонах не подобртать одинаковой картинки... да и памяти меньше будет да и несложно в доработке. 2 строчки)

Еще былобы непохо центрировать надписи в меню.

А ещё лучше сделать чтоб вместо LoadCursor(fname: string) было LoadCursor(fname: image) и тогда при помощи других библиотек можно было бы обрабатывать курсор, в том числе и растягивать под размер окна

Strelok 10.08.2008 22:07

Ответ: Lib_menu32 - Графическое меню без головной боли
 
У меня какой то лаг странный - главное меню построенно с использованием этой библы, после нескольких переходов по пунктам меню и возврате в главное начинает автоматически включаться первый пункт

Strelok 10.08.2008 23:32

Ответ: Lib_menu32 - Графическое меню без головной боли
 
Сменил реагирование кнопки огня с кейпрессед на кейкликед и глюк пропал

odd 18.08.2008 08:30

Ответ: Lib_menu32 - Графическое меню без головной боли
 
Немного подправлил библиотеку. Почти все ваши пожелания были учтены.
От себя еще добавил функции поддержки сенсорного экрана.
Скроллинга пока нет :-( но я уже работаю в данном направлении.

Strelok 18.08.2008 23:07

Ответ: Lib_menu32 - Графическое меню без головной боли
 
Ругается на pointer_state - пишет что необъявлена нигде

Romanzes 19.08.2008 00:10

Ответ: Lib_menu32 - Графическое меню без головной боли
 
Strelok, поищи в теме про Lib_game аттач с именем Lib_sensor.

Strelok 19.08.2008 18:25

Ответ: Lib_menu32 - Графическое меню без головной боли
 
так он у меня и так есть

ViNT 19.08.2008 18:35

Ответ: Lib_menu32 - Графическое меню без головной боли
 
Цитата:

Сообщение от Strelok (Сообщение 84707)
так он у меня и так есть

А в uses объявлена?


Часовой пояс GMT +4, время: 22:50.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot