mirror of
https://github.com/IgorTimofeev/MineOS.git
synced 2026-01-11 05:32:38 +01:00
))))
This commit is contained in:
parent
2b957827dc
commit
5083dd307a
@ -1,171 +1,31 @@
|
||||
|
||||
Oписание
|
||||
About
|
||||
======
|
||||
|
||||
MineOSInterface - это библиотека, поставляющаяся в комплекте с операционной системой MineOS. Она реализует основные системные виджеты, а также отвечает за все манипуляции с окнами. В качестве интерфейсной основы она использует библиотеки **[GUI](https://github.com/IgorTimofeev/OpenComputers/blob/master/Documentation/GUI.md)** и **[doubleBuffering](https://github.com/IgorTimofeev/OpenComputers/blob/master/Documentation/doubleBuffering.md)**.
|
||||
|
||||
Кроме того, она предоставляет таблицу с цветами интерфейса ОС по умолчанию:
|
||||
|
||||

|
||||
|
||||
Для произвольного изменения цветов отдельных элементов окон обращайтесь к ним напрямую. К примеру, через:
|
||||
|
||||
```lua
|
||||
<окно>.backgroundPanel.colors.background = 0xFF00FF
|
||||
```
|
||||
|
||||
Основные методы
|
||||
======
|
||||
MineOSInterface is a library that comes bundled with MineOS. It implements the main system widgets, and is also responsible for all windows manipulations. She works in tandem with **[GUI](https://github.com/IgorTimofeev/GUI)** и **[doubleBuffering](https://github.com/IgorTimofeev/DoubleBuffering)** libraries, that's why a preliminary familiarization with them is highly desirable.
|
||||
|
||||
MineOSInterface.**addWindow**( window ): *table* mainContainer, *table* window
|
||||
-----------------------------------------------------------
|
||||
|
||||
| Тип | Аргумент | Описание |
|
||||
| Type | Parameter | Description |
|
||||
| ------ | ------ | ------ |
|
||||
| *table* | window | Объект окна, созданный методами, описанными ниже |
|
||||
| *table* | window | Window object that was created by GUI library |
|
||||
|
||||
Добавляет созданное окно в окружение MineOS, регистрирует его иконку в Dock, устанавливает обработчики событий, а также добавляет ему несколько методов для пользовательской манипуляции.
|
||||
|
||||
| Тип свойства | Свойство |Описание |
|
||||
| ------ | ------ | ------ |
|
||||
| *function* | :**resize**(*int* width, *int* height) | Изменяет размеры окна на указанные, вызывая при этом callback-функцию .**onResize** |
|
||||
| *callback-function* | .**onResize**(*int* newWidth, *int* newHeight) | Вызывается при изменении размеров окна. Как правило, этот метод используется для изменения размеров и координат содержимого окна после изменения размеров |
|
||||
| *function* | :**close**() | Закрывает окно и удаляет его из системного окружения |
|
||||
| *function* | :**minimize**() | Скрывает окно, однако оставляет возможность обратного показа путем клика на его иконку в Dock |
|
||||
| *function* | :**maximize**() | Изменяет размеры окна под размер экрана, вызывая при этом callback-функцию .**onResize**. Повторный вызов функции вернет размер окна к прежним значениям. Последующие вызовы будут эквивалентны первым двум |
|
||||
|
||||
Примеры реализации описаны ниже.
|
||||
|
||||
Методы для создания окон
|
||||
======
|
||||
|
||||
MineOSInterface.**window**( x, y, width, height ): *table* window
|
||||
-----------------------------------------------------------
|
||||
|
||||
| Тип | Аргумент | Описание |
|
||||
| ------ | ------ | ------ |
|
||||
| *int* | x | Координата окна по оси X |
|
||||
| *int* | x | Координата окна по оси Y |
|
||||
| *int* | width | Ширина окна |
|
||||
| *int* | height | Высота окна |
|
||||
|
||||
Создает пустое окно без каких-либо элементов интерфейса. Данный объект является шаблоном для всех остальных, описанных ниже.
|
||||
|
||||
Пример реализации:
|
||||
|
||||
```lua
|
||||
local GUI = require("GUI")
|
||||
local MineOSInterface = require("MineOSInterface")
|
||||
|
||||
------------------------------------------------------------------------------------------------------
|
||||
|
||||
local mainContainer, window = MineOSInterface.addWindow(MineOSInterface.window(1, 1, 88, 25))
|
||||
window:addChild(GUI.panel(1, 1, window.width, window.height, 0x888888))
|
||||
```
|
||||
|
||||
Результат:
|
||||
|
||||

|
||||
|
||||
MineOSInterface.**filledWindow**( x, y, width, height [, color]): *table* window
|
||||
-----------------------------------------------------------
|
||||
|
||||
| Тип | Аргумент | Описание |
|
||||
| ------ | ------ | ------ |
|
||||
| *int* | x | Координата окна по оси X |
|
||||
| *int* | x | Координата окна по оси Y |
|
||||
| *int* | width | Ширина окна |
|
||||
| *int* | height | Высота окна |
|
||||
| [*int* | color] | Опциональный цвет фоновой панели |
|
||||
|
||||
Создает окно с добавленной фоновой панелью, а также кнопками для закрытия/минимизации/максимизации, являющееся наследником *MineOSInterface*.**window**. Если цвет панели не указывается, то используется *MineOSInterface.colors.windows.backgroundPanel*.
|
||||
|
||||
| Тип свойства | Свойство |Описание |
|
||||
| ------ | ------ | ------ |
|
||||
| *table* | .**backgroundPanel** | Указатель на объект фоновой панели (GUI.**panel**) |
|
||||
| *table* | .**actionButtons** | Указатель на объект кнопок действия (GUI.**actionButtons**) |
|
||||
|
||||
Пример реализации:
|
||||
Adds the created window to the MineOS environment, registers its icon in the Dock and add event handlers to it. First returned value is the MineOS main container that handles all event data and the second one is a pointer to your window object. You can use code like this (again, read GUI library documentation for details):
|
||||
|
||||
```lua
|
||||
local MineOSInterface = require("MineOSInterface")
|
||||
|
||||
------------------------------------------------------------------------------------------------------
|
||||
|
||||
local mainContainer, window = MineOSInterface.addWindow(MineOSInterface.filledWindow(1, 1, 88, 25, 0xF0F0F0))
|
||||
```
|
||||
|
||||
Результат:
|
||||
|
||||

|
||||
|
||||
MineOSInterface.**titledWindow**( x, y, width, height, titleText, [addTitlePanel]): *table* window
|
||||
-----------------------------------------------------------
|
||||
|
||||
| Тип | Аргумент | Описание |
|
||||
| ------ | ------ | ------ |
|
||||
| *int* | x | Координата окна по оси X |
|
||||
| *int* | x | Координата окна по оси Y |
|
||||
| *int* | width | Ширина окна |
|
||||
| *int* | height | Высота окна |
|
||||
| *string* | titleText | Текст заголовка |
|
||||
| [*int* | addTitlePanel] | Опциональное добавление подложки под текст заголовка |
|
||||
|
||||
Создает окно с текстовым заголовком. Если указан аргумент, добавляющий подложку, то текст будет находиться на сером прямоугольнике.
|
||||
|
||||
| Тип свойства | Свойство |Описание |
|
||||
| ------ | ------ | ------ |
|
||||
| *table* | .**backgroundPanel** | Указатель на объект фоновой панели (GUI.**panel**) |
|
||||
| *table* | .**actionButtons** | Указатель на объект кнопок действия (GUI.**actionButtons**) |
|
||||
| *table* | .**titleLabel** | Указатель на объект лейбла заголовка (GUI.**label**) |
|
||||
| *table* | .**titlePanel** | Указатель на объект лейбла заголовка (GUI.**panel**). Создается только при наличии соответствующего аргумента |
|
||||
|
||||
Пример реализации:
|
||||
|
||||
```lua
|
||||
local MineOSInterface = require("MineOSInterface")
|
||||
|
||||
------------------------------------------------------------------------------------------------------
|
||||
|
||||
local mainContainer, window = MineOSInterface.addWindow(MineOSInterface.titledWindow(1, 1, 88, 25, "Hello world", true))
|
||||
```
|
||||
|
||||
Результат:
|
||||
|
||||

|
||||
|
||||
MineOSInterface.**tabbedWindow**( x, y, width, height ): *table* window
|
||||
-----------------------------------------------------------
|
||||
|
||||
| Тип | Аргумент | Описание |
|
||||
| ------ | ------ | ------ |
|
||||
| *int* | x | Координата окна по оси X |
|
||||
| *int* | x | Координата окна по оси Y |
|
||||
| *int* | width | Ширина окна |
|
||||
| *int* | height | Высота окна |
|
||||
|
||||
Создает окно с панелью вкладок по шаблонным цветам.
|
||||
|
||||
| Тип свойства | Свойство |Описание |
|
||||
| ------ | ------ | ------ |
|
||||
| *table* | .**tabBar** | Указатель на объект панели вкладок (GUI.**tabBar**) |
|
||||
| *table* | .**backgroundPanel** | Указатель на объект фоновой панели (GUI.**panel**) |
|
||||
| *table* | .**actionButtons** | Указатель на объект кнопок действия (GUI.**actionButtons**) |
|
||||
|
||||
Пример реализации:
|
||||
|
||||
```lua
|
||||
local MineOSInterface = require("MineOSInterface")
|
||||
|
||||
------------------------------------------------------------------------------------------------------
|
||||
|
||||
local mainContainer, window = MineOSInterface.addWindow(MineOSInterface.tabbedWindow(1, 1, 88, 25))
|
||||
window.tabBar:addItem("Приложения")
|
||||
window.tabBar:addItem("Библиотеки")
|
||||
window.tabBar:addItem("Обои")
|
||||
window.tabBar:addItem("Обновления")
|
||||
|
||||
mainContainer:drawOnScreen()
|
||||
```
|
||||
|
||||
Результат:
|
||||
Result:
|
||||
|
||||

|
||||

|
||||
Loading…
x
Reference in New Issue
Block a user