logic 51 Опубликовано: 5 апреля, 2022 (изменено) начнем с того что данная библиотека зависима от моего мода для openOS и поставляется с ним в комплекте: что поваляет делать данная библиотека: создавать многосценные приложения создавать многопоточные приложения средствами библиотеки библиотека позваляет создавать таймеры слышатели и потоки операясь на главный объект gui или на конкретную сцену билиотека сама закроет все таймеры слушатели и потоки при выходе, таймеры слушатели и потоки созданные на конкретной сцене будут работать только тогда когда она выбранна удалять элементы и/или сцены перерисовка ведется автоматически или же самостоятельно, можно перересовать сцену целеком(gui.redraw()) а можно конкретный элемент(obj.draw()) пересовываться элемент будет только если выбрана его сцена открывать контекстное меню кастомное разрешения вплоть до отдельных сцен оптимизация под слабое железо: я настоятельно рекомендую использовать функцию для выбора цвета в зависимости от выдеокарты (gui.selectColor(main, level2(опционально), level1(опционально(можно использовать boolean)))) библиотка может работать даже на экране первого уровня(да даже на роботе) но для этого придеться использовать демон курсора которого пока что не существует но я его сделаю он должен сообщить библиотеки о своей работе чтобы она позволила открыть программу на мониторе первого уровня поддерживаемые элементы: button, имеет 3 режима, кнопка, переключатель, автоотпускаемый переключатель(кнопка реагирующяя на отжатия) label, думаю тут все понятно seekBar, может быть не кликабельный, поддерживает прокрутку колесиком мыши list, может использоваться для отображения строк, позваляет узнать о нажатии строки, обладает отключаемым автоскролом, автоперересовку тоже можно отключить, по умалчанию сам удаляет элементы когда их много чтобы люди с нерабочим колесиком могли увидеть все пункты в планах: тягаемые окошки(сделано) api: для создания объекта gui необходимо вызвать метод create у библиотеки все обрашения в библиотеки через одинарную точку вызвать контекстного мен., gui.context(x, y, tbl) таблица может содержать строки или таблицы такого плана {str, on} если on, false то тогда данный пункт нельзя будет выбрать, вункция вернет значения, str, num или все будет nil если нечего не выбрано создания сцены gui.createScene(backgroundColor, sizeX, sizeY) получения api видеокарты gui.gpu получения выжных значений, gui.screen, gui.keyboard получения настроик видеокарты, gui.depth, gui.userX, gui.userY, gui.maxX, gui.maxY отключения звукового соправождения gui.soundOn = false создания теймеров слушателей потоков createTimer(time, callback) createListen(eventName or nil(all), callback) createThread(func, ...) данные методы необходимо вызывать от имени обекта gui(работа в всем приложении) или же от имени сцены(работа только на ней) создания объектов на сцене, scene.createButton(x, y, sizeX, sizeY, text, callback, mode, state) createLabel(x, y, sizeX, sizeY, text) createSeekbar(posX, posY, size, text, callback, mode, min, max, value, touch, onlyIntegers) createList(posX, posY, sizeX, sizeY, callback) настройки объекта button, backColor, foreColor, invertBackColor, invertForeColor настройки объекта seekBar, backColor, foreColor, scrollCount, scrollWheel(можно ли колесиком крутить(запрет можно использовать например если есть желания переопределить это код(так сделано в list))) настройки объекта list, backColor, foreColor, autoScroll, autoRedraw(выключите если будет добавлять много элементов за раз а потом лутще включить), autoRemove, maxStrsCount, для изменения настроик seekBar обратитесь к нему как к list.seekBar методы addStr, clear inputbox создаеться как createInputbox(posX, posY, sizeX, sizeY, text, callback) у него есть настройки viewData(показываеть последний ввод(изначально true)) drawer создаеться createDrawer(posX, posY, drawer) где drawer это функция вызываемыя каждую перересовку отрисовщика в функцию приходит 3 аргумента(gpu(proxy видеокарты), posX, posY(тут нада начать отрисовку размер отрисовываемого изображения выберает сам отрисовши(делайте как хотите))) и наконецто окошки, их можно таскать(если записать true в userMove) они могут использоваться для груперования элементов создания маленькиз минюшек, как создать окно? вот так createWindow(posX, posY, sizeX, sizeY) как настроить его? вот так: color(вебарает цвет окна изначально nil(нивидимый)) и window.attachObj(позиция иск на окне, тоже но y, и обект который на окно нада поместить) для перемешения обекстов используйте метод move(работает и с окошками и перетягивает все элементы на них) метод не обновляет картинку по этому вызовите gui.redraw сомастоятельно(для того чтоб снизит нагрузка кода много действий) если вы хотите временно отключить обект то нада setActive(true/false) не обновляет сцену(для того чтоб снизит нагрузка кода много действий) так что вызовите gui.redraw самастоятельно, setActive прячет обект запрешяя его отрисовку и недает ему реагировать на касания примеры кода: https://drive.google.com/file/d/19mpdK9sxy4Yf9AxzdPpy8YkXan7AZU8g/view?usp=sharing (плохой пример, делал чисто для отладки и только для себя, на второй сцене должна midi играть, но для этого ее нада разместить по обсалютному пути пути /mnt/ded/as16.mid(у мена миди на диске ded лежат а у вас пару будет в /usr/midi там midi1.mid и midi2.mid они в комплекте с модом(моим для openOS) идут и вы можете путь на них в примере поменять чтоб все работало как у меня)) Изменено 6 апреля, 2022 пользователем rootmaster Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 155 Опубликовано: 5 апреля, 2022 @rootmaster А какое API этой библиотеки? Есть примеры использования? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
logic Автор темы 51 Опубликовано: 5 апреля, 2022 2 минуты назад, eu_tomat сказал: @rootmaster А какое API этой библиотеки? Есть примеры использования? скоро будут Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior 586 Опубликовано: 5 апреля, 2022 Что, где, как? примеры, инструкции, описания? Как использовать, зачем оно ... опять реклама. И ни одного слова даже о том, как она именуется 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
logic Автор темы 51 Опубликовано: 5 апреля, 2022 15 минут назад, Asior сказал: Что, где, как? примеры, инструкции, описания? Как использовать, зачем оно ... опять реклама. И ни одного слова даже о том, как она именуется что? всмысле неодного слова, я написал api чуть чуть, а названия ей guix Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
hohserg 197 Опубликовано: 12 апреля, 2022 А можно примеры разместить на гитхабе, пастебине или как-то еще, чтобы не прихоилось качать архив? 4 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
logic Автор темы 51 Опубликовано: 13 апреля, 2022 (изменено) В 29.07.2015 в 19:02, Zer0Galaxy сказал: pastebin get iKzRve2g lib/forms.lua Конечно, браузер на такой библиотеке не построить, но для небольших приложений может сгодится. Библиотека позволяет создавать следующие визуальные компоненты: Form (форма) - является контейнером для остальных компонентов. Служит для быстрой смены экранного интерфейса без необходимости удалять и создавать компоненты. Button (кнопка) - тут всё понятно. Label (метка) - просто строка текста. Edit (окно ввода) - позволяет вводить текст. Frame (рамка) - просто рамка. List (список) - отображается в виде набора строк. Каждой строке ставится в соответствие элемент, способный хранить любое lua-значение (число, строку, таблицу и т.д.). Пользователь может прокручивать список, выбирать один из элементов, производить сортировку списка. И невизуальные компоненты: Event (событие) - обрабатывает системные события. Timer (таймер) - позволяет вызывать функцию-обработчик с заданным периодом. Пример работы с библиотекой: Скрыть содержимое forms=require("forms") -- подключаем библиотеку Form1=forms.addForm() -- создаем основную форму exitForm=forms.addForm() -- и форму диалога выхода exitForm.border=2 exitForm.W=31 exitForm.H=7 exitForm.left=math.floor((Form1.W-exitForm.W)/2) exitForm.top =math.floor((Form1.H-exitForm.H)/2) exitForm:addLabel(8,3,"Вы хотите выйти?") exitForm:addButton(5,5,"Да",function() forms.stop() end) exitForm:addButton(18,5,"Нет",function() Form1:setActive() end) Btn1=Form1:addButton(65,21,"Выход",function() exitForm:setActive() end) -- создаем кнопку выхода Btn1.color=0x505050 -- задаем цвет кнопки forms.run(Form1) --запускаем gui Попробовать библиотеку в действии можно в дата-центре на компьютере с координатами 10150, 14199. Для этого необходимо запустить файл form.lua ну такое себе, элементов очень мало, нету даже ползунков и таскаемых окошек, нет списков, это все есть в моей библиотеки guix, нельзя создать паток зашет gui, в моей либе так можно, лайк за красивые рамочьки кстате, да тут документация лутще чем в моем варианте, но я свою библиотеку писал для себя так та, у меня timer/listen/thread можно создать как для всего приложения так и для конкретной сцены(простите если когото обидел) Изменено 13 апреля, 2022 пользователем rootmaster 2 4 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 155 Опубликовано: 14 апреля, 2022 23 часа назад, rootmaster сказал: ну такое себе ... (простите если когото обидел) Читатели не одобрили рекламу за чужой счёт. Рекомендую делать сравнение с аналогами в своей теме. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
logic Автор темы 51 Опубликовано: 14 апреля, 2022 1 час назад, eu_tomat сказал: Читатели не одобрили рекламу за чужой счёт. Рекомендую делать сравнение с аналогами в своей теме. лан больше пиариться так не буду, ну что поделаеш та если некому мой софт не интересен.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 14 апреля, 2022 20 минут назад, rootmaster сказал: лан больше пиариться так не буду, ну что поделаеш та если некому мой софт не интересен.... Причину и, более того, даже решение ты уже сам написал: В 13.04.2022 в 21:39, rootmaster сказал: тут документация лутще чем в моем варианте, но я свою библиотеку писал для себя так та Софт-то ты делаешь интересный, для меня как минимум, но уважения к читателю, хотя бы призрачного и лицемерного, не проявил ни в одной из тем, из-за чего и неприятие. Умение правильно подать прогу не менее важно, чем умение прогу написать. 5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
logic Автор темы 51 Опубликовано: 14 апреля, 2022 2 минуты назад, Fingercomp сказал: Причину и, более того, даже решение ты уже сам написал: Софт-то ты делаешь интересный, для меня как минимум, но уважения к читателю, хотя бы призрачного и лицемерного, не проявил ни в одной из тем, из-за чего и неприятие. Умение правильно подать прогу не менее важно, чем умение прогу написать. к сожеления "правильно подовать" я и не умею.... даже figaOS которая по сути openOS даже без оболочьки в которую накачали библиотек, стала более популярной, так что как то так, пиариться в чужих тема больше надеюсь не буду, но главная проблемма в моем софте на него нет или почьти нет документации либо же она устарела и неимеет нечегообшего с нынешним продуктом, но я совсом не умею писать доки, что делать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Taoshi 55 Опубликовано: 14 апреля, 2022 1 час назад, rootmaster сказал: что делать? Первым шагом навстречу пользователям является, как я думаю, наличие такой ссылки на программу, благодаря которой можно скачать и запустить её без необходимости качать и распаковывать архивы. Вторым, если программа состоит более чем из одного файла, самодокачивание программой своих/не своих частей необходимых для полноценной работы. Доки на мой взгляд - третьестепенный фактор: большинство пользователей хочет максимально просто получить что-либо и пользоваться этим. Но в это же время предоставляемые продуктом возможности должны быть описаны хоть как-то, иначе они рискуют остаться неизвестными. Например, вывод по кнопке/команде краткого списка "что и как" – один из оптимальных вариантов. Ведь доки, по сути, это задокументированные возможности продукта, а не какие-то взятые с потолка абстрактные рассуждения. И когда автор в теме, в своей теме, пишет что может его программа – это не только добавляет ему постов в своей теме, но и - что более важно - делает описание более обширным, более ЗАДОКУМЕНТИРОВАННЫМ. Сделал обновление: что-то добавил или что-то поменял – напиши там же. Это удобно всем. 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 155 Опубликовано: 14 апреля, 2022 Непомерно разросшийся оффтоп в теме "Лёгкая" библиотека GUI перенесён в тему инициатора оффтопа, начиная с этого поста: В 13.04.2022 в 17:39, rootmaster сказал: ну такое себе, элементов очень мало... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
logic Автор темы 51 Опубликовано: 16 апреля, 2022 В 14.04.2022 в 20:50, Taoshi сказал: Первым шагом навстречу пользователям является, как я думаю, наличие такой ссылки на программу, благодаря которой можно скачать и запустить её без необходимости качать и распаковывать архивы. Вторым, если программа состоит более чем из одного файла, самодокачивание программой своих/не своих частей необходимых для полноценной работы. Доки на мой взгляд - третьестепенный фактор: большинство пользователей хочет максимально просто получить что-либо и пользоваться этим. Но в это же время предоставляемые продуктом возможности должны быть описаны хоть как-то, иначе они рискуют остаться неизвестными. Например, вывод по кнопке/команде краткого списка "что и как" – один из оптимальных вариантов. Ведь доки, по сути, это задокументированные возможности продукта, а не какие-то взятые с потолка абстрактные рассуждения. И когда автор в теме, в своей теме, пишет что может его программа – это не только добавляет ему постов в своей теме, но и - что более важно - делает описание более обширным, более ЗАДОКУМЕНТИРОВАННЫМ. Сделал обновление: что-то добавил или что-то поменял – напиши там же. Это удобно всем. у моего софта уже давно есть устоновшик Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ProgramCrafter 545 Опубликовано: 16 апреля, 2022 @rootmaster А что насчёт В 14.04.2022 в 22:50, Taoshi сказал: наличие такой ссылки на программу, благодаря которой можно скачать и запустить её без необходимости качать и распаковывать архивы а желательно и возможности посмотреть на код, не устанавливая его никуда? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах