JaggerDer 90 Опубликовано: 30 октября, 2014 Что это? Как то гуляя по бескрайней пустоши ютуба увидал видео с ОС для СС. Там было всплывающее меню, которое выползает при нажатии ПКМ; я неплохо вдохновился(аж так что довел дело до конца, что редко со мной бывает) и написал свой "велосипед" - ведь наверняка уже таких штук много. Сам не знаю где это дело может пригодится, но это моя первая законченная и работающая писанина на CC/Lua - я доволен Описание. AddItem(id, text, func) - добавляет пункт меню, где id - идентификатор пункта; text - текст, который выведется в меню; func - выполняемая функция, при щелчке ЛКМ на пункте. RemoveItem(id) - удаляет пункт id из меню. Update() - обрабатывает меню(не могу нормально сформулировать). В самом коде имеются три константы: -MAXCHAR - максимальная длина текста пункта меню, -MAXITEMS - максимальное кол-во пунктов меню, -BLINKTIME - сколько времени работает подсветка выбранного пункта. Как использовать. Для начала нужно скачать два файла с pastebin: rcmenu и utils (Ссылки на них ниже) Затем создается отдельный файл, например test, а в нем пишем примерно следующее: os.loadAPI("rcmenu") info = function(a, b) return function() print(a+b) end end rcmenu.AddItem(1, "Hello", function() print("Hello, world!") end) rcmenu.AddItem(2, "5+10", info(5, 10)) while true do rcmenu.Update() end Где взять. Взять можно на Pastebin: -rcmenu: http://pastebin.com/MMnNpjvE -utils: http://pastebin.com/azd4ZR3h Вроде все. Мне бы еще хотелось, чтобы меню после закрытия восстанавливало фон. Пока не знаю, что с этим можно сделать. P.S. За английский просьба не бить. Пользовался translate.google.ru. 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 392 Опубликовано: 31 октября, 2014 [...] Мне бы еще хотелось, чтобы меню после закрытия восстанавливало фон. Пока не знаю, что с этим можно сделать. Нужно ставить обратно фон чёрный (можно сохранять в переменной) и запускать после этого term.clear(). Тогда фон исправится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
1Ridav 1 049 Опубликовано: 31 октября, 2014 Внимательо изучил исходники. Написано просто и понятно. Из минусов надо отметить невозможность изменять os.pullEvent иначе эта библиотека меню попросту перестанет работать. Так же к сожалению не увидел возможность создавать несколко меню и использовать их в зависимости от текущего состояния программы пользователя А так задумка очень даже полезная Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах