From d7dd9147120b2ddd07d8889b993510a7dbc02570 Mon Sep 17 00:00:00 2001 From: Igor Timofeev Date: Mon, 3 Apr 2017 19:20:57 +0300 Subject: [PATCH] aefaf --- Documentation/GUI.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/Documentation/GUI.md b/Documentation/GUI.md index b55089bc..58acfc6e 100644 --- a/Documentation/GUI.md +++ b/Documentation/GUI.md @@ -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 ![enter image description here](http://i90.fastpic.ru/big/2017/0402/99/c2b151738ce348c213ff5d1d45053e99.png) Методы для создания окон и контейнеров -------------------------------- +====== + Вся библиотека делится на две основные кострукции: контейнеры и виджеты. Контейнер предназначен для группировки нескольких виджетов в единую структуру и их конвеерной обработки, поэтому в первую очередь необходимо изучить особенности работы с контейнерами и окнами. 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() ![enter image description here](http://i91.fastpic.ru/big/2017/0402/5b/66ff353492298f6a0c9b01c0fc8a525b.png) Практический пример #1 --------------------- +====== В качестве стартового примера возьмем простейшую задачу: расположим на экране 5 кнопок по вертикали и заставим их показывать окно с порядковым номером этой кнопки при нажатии на нее. Напишем следующий код: @@ -959,7 +962,7 @@ window:handleEvents() ![enter image description here](http://i91.fastpic.ru/big/2017/0402/c3/e02d02fb39a28dd17220b535e59292c3.png) Практический пример #2 --------------------- +====== Поскольку в моде OpenComputers имеется интернет-плата, я написал небольшой клиент для работы с VK.com. Разумеется, для этого необходимо реализовать авторизацию на серверах, вводя свой e-mail/номер телефона и пароль к аккаунту. В качестве тренировки привожу часть кода, отвечающую за это. @@ -1021,7 +1024,7 @@ window:handleEvents() ![enter image description here](http://i.imgur.com/LXfsT0o.png?1) Практический пример #3 --------------------- +====== Для демонстрации возможностей библиотеки предлагаю создать кастомный виджет с нуля. К примеру, создать панель, реагирующую на клики мыши, позволяющую рисовать на ней произвольным цветом по аналогии со школьной доской.