mirror of
https://github.com/IgorTimofeev/MineOS.git
synced 2026-01-04 18:22:40 +01:00
aefaf
This commit is contained in:
parent
d79a6f3fc3
commit
d7dd914712
@ -1,7 +1,7 @@
|
||||
|
||||
|
||||
О библиотеке
|
||||
------------
|
||||
======
|
||||
GUI - многофункциональная графическая библиотека, отлаженная под использование маломощными компьютерами с максимально возможной производительностью. Она поддерживает множество элементов интерфейса: от привычных кнопок, слайдеров, текстовых полей и картинок до графиков и инструментов работы с цветовыми режимами. Быстродействие достигается за счет использования тройной буферизации и сложных группировочных алгоритмов.
|
||||
|
||||
К примеру, моя операционная система и среда разработки полностью реализованы методами данной библиотеки:
|
||||
@ -13,7 +13,8 @@ GUI - многофункциональная графическая библио
|
||||
Пусть синтаксис и обилие текста вас не пугают, в документации имеется множество наглядных иллюстрированных примеров и практических задач.
|
||||
|
||||
Установка
|
||||
---------
|
||||
======
|
||||
|
||||
| Зависимость | Функционал |
|
||||
| ------ | ------ |
|
||||
| *[advancedLua](https://github.com/IgorTimofeev/OpenComputers/blob/master/lib/advancedLua.lua)* | Дополнение стандартных библиотек Lua особыми функциями, такими как быстрая сериализация таблиц, перенос строк, округление чисел и т.д. |
|
||||
@ -28,7 +29,7 @@ GUI - многофункциональная графическая библио
|
||||
pastebin run ryhyXUKZ
|
||||
|
||||
Standalone-методы
|
||||
---------
|
||||
======
|
||||
|
||||
Библиотека имеет несколько полезных независимых методов, упрощающих разработку программ. К таковым относятся, к примеру, котекстное меню и информационное alert-окно.
|
||||
|
||||
@ -94,7 +95,8 @@ GUI.error("Something went wrong here, my friend", {title = {text = "Alert", colo
|
||||

|
||||
|
||||
Методы для создания окон и контейнеров
|
||||
-------------------------------
|
||||
======
|
||||
|
||||
Вся библиотека делится на две основные кострукции: контейнеры и виджеты. Контейнер предназначен для группировки нескольких виджетов в единую структуру и их конвеерной обработки, поэтому в первую очередь необходимо изучить особенности работы с контейнерами и окнами.
|
||||
|
||||
GUI.**container**( x, y, width, height ): *table* container
|
||||
@ -158,7 +160,8 @@ GUI.**fullScreenWindow**( ): *table* window
|
||||
Создать объект окна на основе текущего разрешения экранного буфера.
|
||||
|
||||
Методы для создания виджетов
|
||||
----------------------------
|
||||
======
|
||||
|
||||
После понимания концепции контейнеров можно с легкостью приступить к добавлению виджетов в созданное окно или контейнер. Каждый виджет - это наследник объекта типа GUI.**object**
|
||||
|
||||
GUI.**object**( x, y, width, height ): *table* object
|
||||
@ -921,7 +924,7 @@ window:handleEvents()
|
||||

|
||||
|
||||
Практический пример #1
|
||||
--------------------
|
||||
======
|
||||
|
||||
В качестве стартового примера возьмем простейшую задачу: расположим на экране 5 кнопок по вертикали и заставим их показывать окно с порядковым номером этой кнопки при нажатии на нее. Напишем следующий код:
|
||||
|
||||
@ -959,7 +962,7 @@ window:handleEvents()
|
||||

|
||||
|
||||
Практический пример #2
|
||||
--------------------
|
||||
======
|
||||
|
||||
Поскольку в моде OpenComputers имеется интернет-плата, я написал небольшой клиент для работы с VK.com. Разумеется, для этого необходимо реализовать авторизацию на серверах, вводя свой e-mail/номер телефона и пароль к аккаунту. В качестве тренировки привожу часть кода, отвечающую за это.
|
||||
|
||||
@ -1021,7 +1024,7 @@ window:handleEvents()
|
||||

|
||||
|
||||
Практический пример #3
|
||||
--------------------
|
||||
======
|
||||
|
||||
Для демонстрации возможностей библиотеки предлагаю создать кастомный виджет с нуля. К примеру, создать панель, реагирующую на клики мыши, позволяющую рисовать на ней произвольным цветом по аналогии со школьной доской.
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user