| Предыдущая версия справа и слева
Предыдущая версия
Следующая версия
|
Предыдущая версия
|
lm2:ce:winstart [2020/03/12 07:29] admin [Запуск] |
— (текущий) |
| ====== Запуск системы на Windows ====== | |
| |
| ===== Создание структуры директорий: ===== | |
| |
| - Создаем папку empty_project и копируем в нее файлы start.exe и все dll-файлы из дистрибутива. | |
| - Создаем папку images – каталог хранения рендеров, его мы укажем в конфигурационном файле в качестве ImagesPath. Необходимо поместить туда файл logo.png | |
| - Создаем папку configs – каталог для хранения конфигурационных файлов (кроме основного конфигурационного файла, который должен быть расположен в корневом каталоге) | |
| - Создаем папку fonts – каталог для хранения используемых шрифтов | |
| ===== Создание файлов проекта: ===== | |
| ==== config.xml ==== | |
| Создаем config.xml в папке empty_project. Config.xml – файл, который платформа загружает по-умолчанию. Если указать в качестве параметра запуска другой файл, то вместо config.xml будет загружен указанный. В тэге System определяем настройки программы. В тэге VM определяем виртуальную машину с её настройками. В тэге Font определяем используемый шрифт: <code xml><?xml version="1.0" encoding="utf-8" standalone="yes"?> | |
| <root> | |
| <System | |
| Language="ru" | |
| ImagesPath="images/" | |
| ConfigsPath="configs/" | |
| Log="true"/> | |
| <VM | |
| ID="main" | |
| Visual="panels.xml" | |
| StartupLayout="viewports.xml" | |
| StartupLogic="start.lua" > | |
| </VM> | |
| <Font ID="Default" FileName="fonts/LiberationSerif-Regular.ttf" /> | |
| </root> | |
| </code> | |
| ==== viewports.xml ==== | |
| Создаем viewports.xml в папке empty_project/configs/, указанный в атрибуте StartupLayout файла config.xml. Это файл с настройками окон программы, в нем указывается разрешение окон программы (MonitorWidth и MonitorHeight) и монитор, на котором они будут отображены (тэг ViewPort, атрибут Monitor). Cистема может оперировать несколькими мониторами. Определим одно окно программы на первом мониторе, разрешение – 800x480 <code xml><?xml version="1.0" encoding="utf-8" standalone="yes"?> | |
| <root MonitorWidth="800" MonitorHeight="480"> | |
| <ViewPort Monitor="0,0" ID="main_viewport" /> | |
| </root> | |
| </code> | |
| ==== panels.xml ==== | |
| Создаем panels.xml, указанный в атрибуте Visual файла config.xml. В файле panels.xml указываются элементы, которые будут использоваться в процессе работы программы. В тэге Text указываем файл с текстовыми ресурсами. В тэге Library указываем файл с шаблонами элементов. В тэге GUI создаем тег Panel с набором элементов на панели. Для каждого элемента необходимо определить тег Entry и задать ID элемента и TypeID из файла templates.xml.<code xml><?xml version="1.0" encoding="utf-8" standalone="yes"?> | |
| <root> | |
| <Text FileName="text.xml"/> | |
| <Library FileName="templates.xml"/> | |
| <GUI> | |
| <Panel ID="main" VPWidth="800" VPHeight="480"> | |
| <Comment>Empty project main panel</Comment> | |
| <Entry ID="bg" TypeID="bg"> | |
| <Comment>Panel background</Comment> | |
| </Entry> | |
| <Entry ID="btExit" TypeID="button" Top="300" Left="300"/> | |
| <Entry ID="Logo" TypeID="logo" Top="60" Left="60"/> | |
| </Panel> | |
| </GUI> | |
| </root> | |
| </code> | |
| ==== templates.xml ==== | |
| Создаем templates.xml. В этом файле определим шаблоны элементов, которые можно использовать для графических элементов. Каждый элемент может содержать различные типы подэлементов. В этой статье используются только типы Rectangle, TextBox и Image. Опишем в templates.xml все элементы, использованные в panels.xml. Rectangle – отрисовывается прямоугольник с заданными параметрами. TextBox – выводится текст. Image – выводится рендер из указанного файла.<code xml><?xml version="1.0" encoding="utf-8" standalone="yes"?> | |
| <root> | |
| <Library> | |
| <Element ID="bg" Width="800" Height="480"> | |
| <Comment>Background</Comment> | |
| <Rectangle ID="bg" Rect="50,50,700,380" Color="white" BGColor="black" Thickness="1" CornerRadius="10"/> | |
| <TextBox ID="text" Rect="full" TextTID="txtEmptyProject" Font="Default" Size="60" Align="Center" VAlign="Center"/> | |
| </Element> | |
| <Element ID="button" Width="200" Height="80"> | |
| <Rectangle ID="bg" Rect="full" Color="white" BGColor="black" Thickness="2" CornerRadius="5"/> | |
| <TextBox ID="text" Rect="full" TextTID="txtExit" Font="Default" Size="30" Align="Center" VAlign="Center"/> | |
| </Element> | |
| <Element ID="logo" Width="369" Height="595" Scale="0.25"> | |
| <Image Rect="full" Source="logo.png"/> | |
| </Element> | |
| </Library> | |
| </root> | |
| </code> | |
| ==== text.xml ==== | |
| Создаем text.xml, указанный в качестве текстового ресурса в panels.xml. Платформа позволяет легко создавать мультиязычный интерфейс, для этого необходимо для каждого текста определить перевод в текстовых ресурсах.<code xml><?xml version="1.0" encoding="utf-8" standalone="yes"?> | |
| <root> | |
| <Text ID="txtEmptyProject"> | |
| <Entry Lang="ru" Value="Пустой проект" /> | |
| <Entry Lang="en" Value="Empty project" /> | |
| </Text> | |
| <Text ID="txtExit"> | |
| <Entry Lang="ru" Value="Выход" /> | |
| <Entry Lang="en" Value="Exit" /> | |
| </Text> | |
| </root> | |
| </code> | |
| ==== start.lua ==== | |
| Создаем start.lua, указанный в тэге StartupLogic файла config.xml. После того как все графические элементы определены, необходимо прописать логику их использования. Это делается в файле, указанном в StartupLogic. Чтобы описанная нами панель main появилась в окне с ID=”main_viewport”, необходимо указать это в файле start.lua, следующим образом: <code lua>Panel('main_viewport', 'main')</code> На панели определена кнопка btExit, чтобы обработать событие нажатия на эту кнопку, необходимо прописать это в файле start.lua: <code lua>function H_Exit(_ev) | |
| sys.Exit() | |
| end | |
| AddEventHandler('main.btExit.Mouse.LeftPress', 'H_Exit')</code>Полный текст файла start.lua:<code lua>Panel('main_viewport', 'main') | |
| |
| function H_Exit(_ev) | |
| sys.Exit() | |
| end | |
| AddEventHandler('main.btExit.Mouse.LeftPress', 'H_Exit')</code> | |
| ===== Запуск ===== | |
| |
| Запускаем start.exe. Таким образом мы описали одно окно с разрешением 800х480, расположенное на первом мониторе. В этом окне отрисовано три элемента – бэкграунд с текстом, рендер с логотипом и кнопка выхода: {{ empty_project.png?direct&400 }}{{empty_project.zip|empty_project.zip}} | |
| |
| |