From 4240e0dfeec86e9725ee7eed3d0ac63581c073ac Mon Sep 17 00:00:00 2001 From: Igor Timofeev Date: Sun, 2 Apr 2017 03:10:16 +0300 Subject: [PATCH] =?UTF-8?q?=D0=91=D0=BE=D0=BB=D1=8C=D1=88=D0=B5=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=B4=D1=80=D0=BE=D0=B1=D0=BD=D0=BE=D1=81=D1=82=D0=B5?= =?UTF-8?q?=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Documentation/GUI.md | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/Documentation/GUI.md b/Documentation/GUI.md index c1adbe55..a3cc4cdb 100644 --- a/Documentation/GUI.md +++ b/Documentation/GUI.md @@ -416,26 +416,33 @@ GUI.**chart**( x, y, width, height, axisColor, axisValueColor, axisHelpersColor, Практический пример #1 -------------------- - Для закрепления работы с GUI.**window**, GUI.**panel** и GUI.**button** напишем следующий код: + В качестве стартового примера возьмем простейшую задачу: расположим на экране 5 кнопок по вертикали и заставим их показывать окно с порядковым номером этой кнопки при нажатии на нее. Напишем следующий код: ```lua +-- Подключаем необходимые библиотеки local buffer = require("doubleBuffering") local GUI = require("GUI") -local window = GUI.window(1, 1, buffer.screen.width, buffer.screen.height) +-- Создаем полноэкранное окно +local window = GUI.fullScreenWindow() +-- Добавляем на окно темно-серую панель по всей его ширине и высоте window:addPanel(1, 1, window.width, window.height, 0x2D2D2D) +-- Создаем 5 объектов-кнопок, располагаемых все ниже и ниже local y = 2 for i = 1, 5 do - local button = window:addButton(2, y, 30, 3, 0xEEEEEE, 0x2D2D2D, 0x666666, 0xEEEEEE, "This is button " .. i) - button.onTouch = function() + -- При нажатии на конкретную кнопку будет вызван указанный метод .onTouch() + window:addButton(2, y, 30, 3, 0xEEEEEE, 0x2D2D2D, 0x666666, 0xEEEEEE, "This is button " .. i).onTouch = function() GUI.error("You've pressed button " .. i .. "!") end - y = y + button.height + 1 + y = y + 4 end +-- Отрисовываем содержимое окно window:draw() +-- Отрисовываем содержимое экранного буфера buffer.draw() +-- Активируем режим обработки событий window:handleEvents() ``` При нажатии на любую из созданных кнопок будет показываться дебаг-окно с информацией, указанной в методе *.onTouch*: @@ -447,19 +454,22 @@ window:handleEvents() Практический пример #2 -------------------- -Также продемонстрирую возможность изменения цвета фона программы путем добавления GUI.**colorSelector** в окно: +В качестве второго примера предлагаю реализовать возможность изменения цвета фона программы путем добавления цветового селектора в окно. ```lua local buffer = require("doubleBuffering") local GUI = require("GUI") -local window = GUI.window(1, 1, buffer.screen.width, buffer.screen.height) +local window = GUI.fullScreenWindow() local panel = window:addPanel(1, 1, window.width, window.height, 0x2D2D2D) +-- Добавляем селектор цвета local colorSelector = window:addColorSelector(2, 2, 30, 3, 0xFFDB40, "Choose color") +-- Создаем метод .onTouch, в котором цвет фона станет эквивалентным выбранному цвету селектора, а цвет селектора будет инвертироваться на противоположный colorSelector.onTouch = function() panel.colors.background = colorSelector.color colorSelector.color = 0xFFFFFF - colorSelector.color + -- После обработки цветов вызываем методы отрисовки окна и экранного буфера window:draw() buffer.draw() end