replace scripts, add installer scripts

This commit is contained in:
riva 2024-05-14 18:59:44 +03:00
parent 32ee9f38a5
commit cb6fe72f98
23 changed files with 601 additions and 119 deletions

BIN
resources/icon/install.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

View File

@ -1,106 +0,0 @@
@chcp 1251
echo off
echo.
echo Òåêóùèå äàòà è âðåìÿ
echo.
set DD=%DATE:~0,2%
set MM=%DATE:~3,2%
set YY=%DATE:~8,2%
set YYYY=%DATE:~6,4%
set HH=%TIME:~0,2%
set MN=%TIME:~3,2%
set DATE_STAMP=%YYYY%-%MM%-%DD%_%HH%-%MN%
echo.
echo Çàäàåì ïóòè èñïîëíÿåìûõ ôàéëîâ óòèëèò
echo.
set UPX_EXECUTABLE=upx
set SEVENZIP_EXECUTABLE=7z
set PO_UTILITY=scripts\tools\poFileUtility.EXE
echo.
echo Íàñòðîéêè ïðîåêòà
echo.
set PROJNAME=matrixFont
set BUILD=Release
set DEST=install\%DATE_STAMP%
set LANGDIR=bin\lang
set LANGINI=%LANGDIR%\*.ini
set LANG=%LANGDIR%\%PROJNAME%.??.po
set LANGTMP=%LANGDIR%\%PROJNAME%.pot
set FILES_ADDITION=readme.md license.md versions.md help/*
cd ..
echo.
echo Óäàëåíèå ôàéëîâ ïåðåâîäà x32
echo.
del /f /q %LANGDIR%\*x32-*.po?
echo.
echo Êîïèðîâàíèå x64 ôàéëîâ ïåðåâîäà â îáùèå äëÿ âñåõ áèíàðíèêîâ
echo.
copy %LANGDIR%\%PROJNAME%-x64-%BUILD%.*.po %LANGDIR%\%PROJNAME%.*.po
echo.
echo Êîïèðîâàíèå x64 ôàéëîâ øàáëîíà ïåðåâîäà â îáùèé
echo.
copy %LANGDIR%\%PROJNAME%-x64-%BUILD%.pot %LANGDIR%\%PROJNAME%.pot
echo.
echo Ïåðåíîñ ñòðîê â ôàéëå ïåðåâîäà äëÿ ÿçûêà îðèãèíàëà â .ru.po
echo.
%PO_UTILITY% %LANGDIR%\%PROJNAME%.pot %LANGDIR%\%PROJNAME%.ru.po transfer
echo.
echo Ñîçäàåì àðõèâ äëÿ x64
echo.
set PROJARC=x64
set BINARY=bin\*%PROJARC%-%BUILD%.exe
set LIBS=
set FILENAME="%DEST%\%PROJNAME%-%PROJARC%-Portable.zip"
set FILES="%BINARY%" "%LANG%" "%LANGTMP%" "%LANGINI%" %FILES_ADDITION%
del /f /q %FILENAME%
"%UPX_EXECUTABLE%" --lzma "%BINARY%"
"%SEVENZIP_EXECUTABLE%" a -tzip -mx5 %FILENAME% %FILES%
echo.
echo Ñîçäàåì àðõèâ äëÿ x32
echo.
set PROJARC=x32
set BINARY=bin\*%PROJARC%-%BUILD%.exe
set LIBS=
set FILENAME="%DEST%\%PROJNAME%-%PROJARC%-Portable.zip"
set FILES="%BINARY%" "%LANG%" "%LANGTMP%" "%LANGINI%" %FILES_ADDITION%
del /f /q %FILENAME%
"%UPX_EXECUTABLE%" --lzma "%BINARY%"
"%SEVENZIP_EXECUTABLE%" a -tzip -mx5 %FILENAME% %FILES%

View File

@ -0,0 +1,22 @@
@chcp 1251
echo off
set LAZBUILD=c:\lazarus\lazbuild.exe
set PROJFILE=_matrixFont.lpi
cd "..\source"
rd /s /q "lib"
setlocal enabledelayedexpansion
for %%a in (32,64) do (
set PROJARC=win%%a
set BUILDMODE=!PROJARC!-Release
echo.
echo Building Lazarus project:
echo - name: %PROJFILE%
echo - mode: !BUILDMODE!
echo ------------------------
"%LAZBUILD%" --no-write-project --build-mode=!BUILDMODE! %PROJFILE%
)

View File

@ -0,0 +1,2 @@
cmd /c build-portable.bat
cmd /c build-installers.bat

View File

@ -1 +0,0 @@
rd /s /q "..\source\lib"

View File

@ -0,0 +1,9 @@
@chcp 1251
echo off
set MDPATH=..\help
set MDPROJNAME=matrixFont
set TEMPLATE=%MDPATH%\%MDPROJNAME%-help-template.html
set MARKDOWN=%MDPROJNAME%-help*
cmd /c gen-html-from-md.bat

View File

@ -0,0 +1,8 @@
@chcp 1251
echo off
set INNOSETUPCOMPILER="C:\Program Files (x86)\Inno Setup 6\iscc.exe"
set OPTIONS=
%INNOSETUPCOMPILER% %OPTIONS% "installer\installer-win32.iss"
%INNOSETUPCOMPILER% %OPTIONS% "installer\installer-win64.iss"

View File

@ -0,0 +1,84 @@
@chcp 1251
echo off
echo.
echo Set paths for utilities
echo.
set SEVENZIP_EXECUTABLE=7z
set PO_UTILITY=scripts\tools\poFileUtility.exe
echo.
echo Project settings
echo.
set PROJNAME=matrixFont
set BUILD=Release
set LANGDIR=bin\lang
set COMMONFILES=%LANGDIR%\*.ini %LANGDIR%\%PROJNAME%.pot %LANGDIR%\%PROJNAME%.??.po %LANGDIR%\%PROJNAME%.?????.po readme.* license.* versions.* help\*
echo.
echo Creating html help file
echo.
call "build-help-html.bat"
echo.
echo Creating html readme file
echo.
call "build-readme-html.bat"
echo.
echo Creating output directory for current app version
FOR /F "delims=" %%i IN ('get-version.bat "%cd%\..\bin\%PROJNAME%-win64-Release.exe"') DO set EXEVER=%%i
set DEST=install\v%EXEVER%
echo - directory: %DEST%
cd ..
echo.
echo Removing win32 localization files
echo.
del /f /q %LANGDIR%\*win32-*.po?
echo.
echo Copying win64 localization files to files shared by all binaries
echo.
copy %LANGDIR%\%PROJNAME%-win64-%BUILD%.*.po %LANGDIR%\%PROJNAME%.*.po
echo.
echo Copying win64 localization template into common template
echo.
copy %LANGDIR%\%PROJNAME%-win64-%BUILD%.pot %LANGDIR%\%PROJNAME%.pot
echo.
echo Transfer lines in localization file for original language and save to .ru.po
echo.
%PO_UTILITY% %LANGDIR%\%PROJNAME%.pot %LANGDIR%\%PROJNAME%.ru.po transfer
setlocal enabledelayedexpansion
for %%a in (32,64) do (
set PROJARC=win%%a
set BINARY=bin\*!PROJARC!-%BUILD%.exe
set FILES=!BINARY! %COMMONFILES%
set FILENAME=%DEST%\%PROJNAME%-!PROJARC!-Portable.zip
echo.
echo Creating archive:
echo - ZIP: {!FILENAME!}
echo - Files: {!FILES!}
echo ------------------------
del /f /q "!FILENAME!"
"%SEVENZIP_EXECUTABLE%" a -tzip -mx5 !FILENAME! !FILES!
)

View File

@ -0,0 +1,8 @@
@chcp 1251
echo off
set MDPATH=..\
set TEMPLATE=%MDPATH%\readme-template.html
set MARKDOWN=readme*
cmd /c gen-html-from-md.bat

View File

@ -1,9 +0,0 @@
@chcp 1251
echo off
set MDPATH=..\help
set TEMPLATE=%MDPATH%\matrixFont-help-template.html
set MARKDOWN=%MDPATH%\matrixFont-help.md
set OUTHTML=%MDPATH%\matrixFont-help.html
copy /b %TEMPLATE% + %MARKDOWN% %OUTHTML% /y

View File

@ -0,0 +1,17 @@
set TEMPDIR=tempTa8sDf5Je0gM
md .\%TEMPDIR%
copy /b %MDPATH%\%MARKDOWN% %TEMPDIR%\%MARKDOWN% /y
cd %TEMPDIR%
del *.html
for %%i in (%MARKDOWN%.md) do (
copy /b ..\%TEMPLATE% + %%i %%i.html /y
del %%i
)
ren *.html *.
ren *.md *.html
copy /b * ..\%MDPATH% /y
cd ..
rd %TEMPDIR% /s /q

21
scripts/get-version.bat Normal file
View File

@ -0,0 +1,21 @@
@echo off
rem https://stackoverflow.com/questions/1706892/how-do-i-retrieve-the-version-of-a-file-from-a-batch-file-on-windows-vista
setlocal
set "item=%~1"
set "item=%item:\=\\%"
for /f "usebackq delims=" %%a in (`"WMIC DATAFILE WHERE name='%item%' get Version /format:Textvaluelist"`) do (
for /f "delims=" %%# in ("%%a") do set "%%#"
)
if "%~2" neq "" (
endlocal & (
echo %version%
set %~2=%version%
)
) else (
echo %version%
)

Binary file not shown.

View File

@ -0,0 +1,70 @@
matrixFont
==========
matrixFont allows you to create and edit raster fonts, and generate C code to include the created font into a software project.
The main usage area is software project development using graphical user interface in embedded systems.
Features:
- raster font:
- character sizes from 1 × 1 to 100 × 100 (technically up to 512 × 512);
- character range from 0 to 255;
- charset (encoding) selection;
- compact native RHF file format;
- project creating:
- from system font;
- from code (support of matrixFont, AdaFruit GFX, LCD Vision V1.34 formats);
- from character map image with metadata;
- character editor:
- easy editing with mouse;
- scaling workspace with mouse wheel;
- copy, paste and move characters;
- importing image into character;
- history of editing operations for each character;
- operations: invert, display, rotate, shift, pinch, center characters;
- batch editing of all font characters;
- navigation and preview:
- character navigator with character display;
- search for characters by code or name;
- view sample text;
- character map;
- exporting character map to image;
- tools:
- changing character range of font;
- changing font character size;
- character size optimization;
- C code generator with fine-tuning;
- interface:
- intuitive and user-friendly design,
- full support for different display densities,
- localization support,
- theme support: light and dark,
- flexibility - customization of appearance, colors, etc.,
- and also:
- detailed user manual.
Liability
---------
The application is provided for free use, without any warranty or technical support. You use the application at your own discretion and are solely responsible for the results of its functioning.
See more at
https://riva-lab.gitlab.io/en/apps/matrixFont
Project source code
https://gitlab.com/riva-lab/matrixFont

View File

@ -0,0 +1,113 @@
{\rtf1\ansi\ansicpg1252\deff0\nouicompat{\fonttbl{\f0\fnil\fcharset0 Verdana;}{\f1\fnil\fcharset204 Verdana;}{\f2\fnil Verdana;}{\f3\fnil\fcharset2 Symbol;}}
{\colortbl ;\red255\green0\blue0;\red0\green0\blue255;}
{\*\listtable
{\list\listhybrid
{\listlevel\levelnfc0\leveljc0\levelstartat1{\leveltext\'02\'00.;}{\levelnumbers\'01;}\jclisttab\tx0}
{\listlevel\levelnfc4\leveljc0\levelstartat1{\leveltext\'02\'01.;}{\levelnumbers\'01;}\jclisttab\tx0}
{\listlevel\levelnfc3\leveljc0\levelstartat1{\leveltext\'02\'02.;}{\levelnumbers\'01;}\jclisttab\tx0}
{\listlevel\levelnfc2\leveljc0\levelstartat1{\leveltext\'02\'03.;}{\levelnumbers\'01;}\jclisttab\tx0}
{\listlevel\levelnfc1\leveljc0\levelstartat1{\leveltext\'02\'04.;}{\levelnumbers\'01;}\jclisttab\tx0}
{\listlevel\levelnfc0\leveljc0\levelstartat1{\leveltext\'02\'05.;}{\levelnumbers\'01;}\jclisttab\tx0}
{\listlevel\levelnfc4\leveljc0\levelstartat1{\leveltext\'02\'06.;}{\levelnumbers\'01;}\jclisttab\tx0}
{\listlevel\levelnfc3\leveljc0\levelstartat1{\leveltext\'02\'07.;}{\levelnumbers\'01;}\jclisttab\tx0}
{\listlevel\levelnfc23\leveljc1\levelstartat1{\leveltext\'01\'B7;}{\levelnumbers;}\f3\jclisttab\tx0}\listid1 }}
{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}}
{\*\generator Riched20 10.0.19041}\viewkind4\uc1
\pard\li142\ri120\qc\b\f0\fs22\lang1033 matrixFont\b0\par
\pard\li142\ri120\fs18\par
\pard\li142\ri120\qj\b matrixFont \b0\f1\lang1049\'ef\'ee\'e7\'e2\'ee\'eb\'ff\'e5\'f2 \'f1\'ee\'e7\'e4\'e0\'e2\'e0\'f2\'fc, \'f0\'e5\'e4\'e0\'ea\'f2\'e8\'f0\'ee\'e2\'e0\'f2\'fc \'f0\'e0\'f1\'f2\'f0\'ee\'e2\'fb\'e5 \'f8\'f0\'e8\'f4\'f2\'fb \'e8 \'e3\'e5\'ed\'e5\'f0\'e8\'f0\'ee\'e2\'e0\'f2\'fc \'ea\'ee\'e4 C \'e4\'eb\'ff \'ef\'ee\'e4\'ea\'eb\'fe\'f7\'e5\'ed\'e8\'ff \'f1\'ee\'e7\'e4\'e0\'ed\'ed\'ee\'e3\'ee \'f8\'f0\'e8\'f4\'f2\'e0 \'ea \'ef\'f0\'ee\'e5\'ea\'f2\'f3 \'ef\'f0\'ee\'e3\'f0\'e0\'ec\'ec\'ed\'ee\'e3\'ee \'ee\'e1\'e5\'f1\'ef\'e5\'f7\'e5\'ed\'e8\'ff.\par
\par
\'ce\'f1\'ed\'ee\'e2\'ed\'e0\'ff \'ee\'e1\'eb\'e0\'f1\'f2\'fc \'ef\'f0\'e8\'ec\'e5\'ed\'e5\'ed\'e8\'ff \f2\emdash\f1 \'f0\'e0\'e7\'f0\'e0\'e1\'ee\'f2\'ea\'e0 \'ef\'f0\'ee\'e5\'ea\'f2\'ee\'e2 \'ef\'f0\'ee\'e3\'f0\'e0\'ec\'ec\'ed\'ee\'e3\'ee \'ee\'e1\'e5\'f1\'ef\'e5\'f7\'e5\'ed\'e8\'ff \'f1 \'e8\'f1\'ef\'ee\'eb\'fc\'e7\'ee\'e2\'e0\'ed\'e8\'e5\'ec \'e3\'f0\'e0\'f4\'e8\'f7\'e5\'f1\'ea\'ee\'e3\'ee \'e8\'ed\'f2\'e5\'f0\'f4\'e5\'e9\'f1\'e0 \'ef\'ee\'eb\'fc\'e7\'ee\'e2\'e0\'f2\'e5\'eb\'ff \'e2\'ee \'e2\'f1\'f2\'f0\'e0\'e8\'e2\'e0\'e5\'ec\'fb\'f5 \'f1\'e8\'f1\'f2\'e5\'ec\'e0\'f5.\par
\pard\li142\ri120\qc\par
\par
\fs22\'c2\'ee\'e7\'ec\'ee\'e6\'ed\'ee\'f1\'f2\'e8\fs18\par
\pard\li142\ri120\par
\pard
{\listtext\f1\u10625?\tab}\ls1\ilvl8\fi-142\li284\ri120\qj\'f0\'e0\'f1\'f2\'f0\'ee\'e2\'fb\'e9 \'f8\'f0\'e8\'f4\'f2:\par
\pard
{\listtext\f0\u10625?\tab}\ls1\ilvl8\fi-142\li644\ri120\qj\'f0\'e0\'e7\'ec\'e5\'f0\'fb \'f1\'e8\'ec\'e2\'ee\'eb\'e0 \'ee\'f2 1 \f0\lang1033\'d7 1 \f1\lang1049\'e4\'ee 100 \f0\lang1033\'d7 100 (\f1\lang1049\'f2\'e5\'f5\'ed\'e8\'f7\'e5\'f1\'ea\'e8 \'e4\'ee 512 \f0\lang1033\'d7 512);\par
{\listtext\f0 1\tab}\f1\lang1049\'e4\'e8\'e0\'ef\'e0\'e7\'ee\'ed \'f1\'e8\'ec\'e2\'ee\'eb\'ee\'e2 \'ee\'f2 0 \'e4\'ee 255;\par
{\listtext\f0 2\tab}\'e2\'fb\'e1\'ee\'f0 \'ea\'ee\'e4\'ee\'e2\'ee\'e9 \'f1\'f2\'f0\'e0\'ed\'e8\'f6\'fb (\'ea\'ee\'e4\'e8\'f0\'ee\'e2\'ea\'e8);\par
{\listtext\f0 3\tab}\'ea\'ee\'ec\'ef\'e0\'ea\'f2\'ed\'fb\'e9 \'f1\'ee\'e1\'f1\'f2\'e2\'e5\'ed\'ed\'fb\'e9 \'f4\'ee\'f0\'ec\'e0\'f2 \'f4\'e0\'e9\'eb\'e0 RHF;\par
\pard\fi-142\li284\ri120\qj\par
\pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-142\li284\ri120\qj\'f1\'ee\'e7\'e4\'e0\'ed\'e8\'e5 \'ef\'f0\'ee\'e5\'ea\'f2\'e0:\par
\pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-142\li644\ri120\qj\'ed\'e0 \'ee\'f1\'ed\'ee\'e2\'e5 \'f1\'e8\'f1\'f2\'e5\'ec\'ed\'ee\'e3\'ee \'f8\'f0\'e8\'f4\'f2\'e0;\par
{\pntext\f3\'B7\tab}\'e8\'e7 \'ea\'ee\'e4\'e0 (\'ef\'ee\'e4\'e4\'e5\'f0\'e6\'ea\'e0 \'f4\'ee\'f0\'ec\'e0\'f2\'ee\'e2 matrixFont, AdaFruit GFX, LCD Vision V1.34);\par
{\pntext\f3\'B7\tab}\'e8\'e7 \'e8\'e7\'ee\'e1\'f0\'e0\'e6\'e5\'ed\'e8\'ff \'ea\'e0\'f0\'f2\'fb \'f1\'e8\'ec\'e2\'ee\'eb\'ee\'e2 \'f1 \'ec\'e5\'f2\'e0\'e8\'ed\'f4\'ee\'f0\'ec\'e0\'f6\'e8\'e5\'e9;\par
\pard\fi-142\li284\ri120\qj\par
\pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-142\li284\ri120\qj\'f0\'e5\'e4\'e0\'ea\'f2\'ee\'f0 \'f1\'e8\'ec\'e2\'ee\'eb\'ee\'e2:\par
\pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-142\li644\ri120\qj\'f3\'e4\'ee\'e1\'ed\'ee\'e5 \'f0\'e5\'e4\'e0\'ea\'f2\'e8\'f0\'ee\'e2\'e0\'ed\'e8\'e5 \'ec\'fb\'f8\'fc\'fe;\par
{\pntext\f3\'B7\tab}\'ec\'e0\'f1\'f8\'f2\'e0\'e1\'e8\'f0\'ee\'e2\'e0\'ed\'e8\'e5 \'f0\'e0\'e1\'ee\'f7\'e5\'e3\'ee \'ef\'ee\'eb\'ff \'ea\'ee\'eb\'e5\'f1\'ee\'ec \'ec\'fb\'f8\'e8;\par
{\pntext\f3\'B7\tab}\'ea\'ee\'ef\'e8\'f0\'ee\'e2\'e0\'ed\'e8\'e5, \'e2\'f1\'f2\'e0\'e2\'ea\'e0 \'e8 \'ef\'e5\'f0\'e5\'ec\'e5\'f9\'e5\'ed\'e8\'e5 \'f1\'e8\'ec\'e2\'ee\'eb\'ee\'e2;\par
{\pntext\f3\'B7\tab}\'e8\'ec\'ef\'ee\'f0\'f2\'e8\'f0\'ee\'e2\'e0\'ed\'e8\'e5 \'e8\'e7\'ee\'e1\'f0\'e0\'e6\'e5\'ed\'e8\'ff \'e2 \'f1\'e8\'ec\'e2\'ee\'eb;\par
{\pntext\f3\'B7\tab}\'e8\'f1\'f2\'ee\'f0\'e8\'ff \'ee\'ef\'e5\'f0\'e0\'f6\'e8\'e9 \'f0\'e5\'e4\'e0\'ea\'f2\'e8\'f0\'ee\'e2\'e0\'ed\'e8\'ff \'e4\'eb\'ff \'ea\'e0\'e6\'e4\'ee\'e3\'ee \'f1\'e8\'ec\'e2\'ee\'eb\'e0;\par
{\pntext\f3\'B7\tab}\'ee\'ef\'e5\'f0\'e0\'f6\'e8\'e8: \'e8\'ed\'e2\'e5\'f0\'f1\'e8\'ff, \'ee\'f2\'ee\'e1\'f0\'e0\'e6\'e5\'ed\'e8\'e5, \'ef\'ee\'e2\'ee\'f0\'ee\'f2, \'f1\'e4\'e2\'e8\'e3, \'ef\'f0\'e8\'e6\'e0\'f2\'e8\'e5, \'f6\'e5\'ed\'f2\'f0\'e8\'f0\'ee\'e2\'e0\'ed\'e8\'e5 \'f1\'e8\'ec\'e2\'ee\'eb\'ee\'e2;\par
{\pntext\f3\'B7\tab}\'ef\'e0\'ea\'e5\'f2\'ed\'ee\'e5 \'f0\'e5\'e4\'e0\'ea\'f2\'e8\'f0\'ee\'e2\'e0\'ed\'e8\'e5 \'e2\'f1\'e5\'f5 \'f1\'e8\'ec\'e2\'ee\'eb\'ee\'e2 \'f8\'f0\'e8\'f4\'f2\'e0;\par
\pard\fi-142\li284\ri120\qj\par
\pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-142\li284\ri120\qj\'ed\'e0\'e2\'e8\'e3\'e0\'f6\'e8\'ff \'e8 \'ef\'f0\'e5\'e4\'ef\'f0\'ee\'f1\'ec\'ee\'f2\'f0:\par
\pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-142\li644\ri120\qj\'ed\'e0\'e2\'e8\'e3\'e0\'f2\'ee\'f0 \'ef\'ee \'f1\'e8\'ec\'e2\'ee\'eb\'e0\'ec \'f1 \'ee\'f2\'ee\'e1\'f0\'e0\'e6\'e5\'ed\'e8\'e5\'ec \'f1\'e8\'ec\'e2\'ee\'eb\'ee\'e2;\par
{\pntext\f3\'B7\tab}\'ef\'ee\'e8\'f1\'ea \'f1\'e8\'ec\'e2\'ee\'eb\'ee\'e2 \'ef\'ee \'ea\'ee\'e4\'f3 \'e8\'eb\'e8 \'ef\'ee \'ed\'e0\'e7\'e2\'e0\'ed\'e8\'fe;\par
{\pntext\f3\'B7\tab}\'ef\'f0\'ee\'f1\'ec\'ee\'f2\'f0 \'ee\'e1\'f0\'e0\'e7\'f6\'e0 \'f2\'e5\'ea\'f1\'f2\'e0;\par
{\pntext\f3\'B7\tab}\'ea\'e0\'f0\'f2\'e0 \'f1\'e8\'ec\'e2\'ee\'eb\'ee\'e2;\par
{\pntext\f3\'B7\tab}\'fd\'ea\'f1\'ef\'ee\'f0\'f2\'e8\'f0\'ee\'e2\'e0\'ed\'e8\'e5 \'ea\'e0\'f0\'f2\'fb \'f1\'e8\'ec\'e2\'ee\'eb\'ee\'e2 \'e2 \'e8\'e7\'ee\'e1\'f0\'e0\'e6\'e5\'ed\'e8\'e5;\par
\pard\fi-142\li284\ri120\qj\par
\pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-142\li284\ri120\qj\'e8\'ed\'f1\'f2\'f0\'f3\'ec\'e5\'ed\'f2\'fb:\par
\pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-142\li644\ri120\qj\'e8\'e7\'ec\'e5\'ed\'e5\'ed\'e8\'e5 \'e4\'e8\'e0\'ef\'e0\'e7\'ee\'ed\'e0 \'f1\'e8\'ec\'e2\'ee\'eb\'ee\'e2 \'f8\'f0\'e8\'f4\'f2\'e0;\par
{\pntext\f3\'B7\tab}\'e8\'e7\'ec\'e5\'ed\'e5\'ed\'e8\'e5 \'f0\'e0\'e7\'ec\'e5\'f0\'e0 \'f1\'e8\'ec\'e2\'ee\'eb\'ee\'e2 \'f8\'f0\'e8\'f4\'f2\'e0;\par
{\pntext\f3\'B7\tab}\'ee\'ef\'f2\'e8\'ec\'e8\'e7\'e0\'f6\'e8\'ff \'f0\'e0\'e7\'ec\'e5\'f0\'e0 \'f1\'e8\'ec\'e2\'ee\'eb\'ee\'e2;\par
{\pntext\f3\'B7\tab}\'e3\'e5\'ed\'e5\'f0\'e0\'f2\'ee\'f0 \'ea\'ee\'e4\'e0 C \'f1 \'f2\'ee\'ed\'ea\'ee\'e9 \'ed\'e0\'f1\'f2\'f0\'ee\'e9\'ea\'ee\'e9;\par
\pard\fi-142\li284\ri120\qj\par
\pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-142\li284\ri120\qj\'e8\'ed\'f2\'e5\'f0\'f4\'e5\'e9\'f1:\par
\pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-142\li644\ri120\qj\'e8\'ed\'f2\'f3\'e8\'f2\'e8\'e2\'ed\'fb\'e9 \'e8 \'e4\'f0\'f3\'e6\'e5\'f1\'f2\'e2\'e5\'ed\'ed\'fb\'e9 \'e4\'e8\'e7\'e0\'e9\'ed,\par
{\pntext\f3\'B7\tab}\'ef\'ee\'eb\'ed\'e0\'ff \'ef\'ee\'e4\'e4\'e5\'f0\'e6\'ea\'e0 \'e4\'e8\'f1\'ef\'eb\'e5\'e5\'e2 \'f0\'e0\'e7\'ed\'ee\'e9 \'ef\'eb\'ee\'f2\'ed\'ee\'f1\'f2\'e8,\par
{\pntext\f3\'B7\tab}\'ef\'ee\'e4\'e4\'e5\'f0\'e6\'ea\'e0 \'eb\'ee\'ea\'e0\'eb\'e8\'e7\'e0\'f6\'e8\'e9,\par
{\pntext\f3\'B7\tab}\'ef\'ee\'e4\'e4\'e5\'f0\'e6\'ea\'e0 \'f2\'e5\'ec: \'f1\'e2\'e5\'f2\'eb\'e0\'ff \'e8 \'f2\'e5\'ec\'ed\'e0\'ff,\par
{\pntext\f3\'B7\tab}\'e3\'e8\'e1\'ea\'ee\'f1\'f2\'fc \f2\emdash\f1 \'ed\'e0\'f1\'f2\'f0\'ee\'e9\'ea\'e0 \'e2\'ed\'e5\'f8\'ed\'e5\'e3\'ee \'e2\'e8\'e4\'e0, \'f6\'e2\'e5\'f2\'ee\'e2 \'e8 \'ef\'f0.,\par
\pard\fi-142\li284\ri120\qj\par
\pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-142\li284\ri120\qj\'e0 \'f2\'e0\'ea\'e6\'e5:\par
\pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-142\li644\ri120\qj\'ef\'ee\'e4\'f0\'ee\'e1\'ed\'e0\'ff \'f1\'ef\'f0\'e0\'e2\'ea\'e0.\par
\pard\li142\ri120\par
\par
\pard\li142\ri120\qc\fs22\'ce\'f2\'e2\'e5\'f2\'f1\'f2\'e2\'e5\'ed\'ed\'ee\'f1\'f2\'fc\fs18\par
\par
\pard\li142\ri120\qj\cf1\'cf\'f0\'e8\'eb\'ee\'e6\'e5\'ed\'e8\'e5 \'ef\'f0\'e5\'e4\'ee\'f1\'f2\'e0\'e2\'eb\'ff\'e5\'f2\'f1\'ff \'e4\'eb\'ff \'f1\'e2\'ee\'e1\'ee\'e4\'ed\'ee\'e3\'ee \'e8\'f1\'ef\'ee\'eb\'fc\'e7\'ee\'e2\'e0\'ed\'e8\'ff, \'e1\'e5\'e7 \'ea\'e0\'ea\'e8\'f5-\'eb\'e8\'e1\'ee \'e3\'e0\'f0\'e0\'ed\'f2\'e8\'e9 \'e8 \'f2\'e5\'f5\'ed\'e8\'f7\'e5\'f1\'ea\'ee\'e9 \'ef\'ee\'e4\'e4\'e5\'f0\'e6\'ea\'e8. \'c2\'fb \'e8\'f1\'ef\'ee\'eb\'fc\'e7\'f3\'e5\'f2\'e5 \'ef\'f0\'e8\'eb\'ee\'e6\'e5\'ed\'e8\'e5 \'ef\'ee \'f1\'e2\'ee\'e5\'ec\'f3 \'f3\'f1\'ec\'ee\'f2\'f0\'e5\'ed\'e8\'fe \'e8 \'ed\'e5\'f1\'e5\'f2\'e5 \'f1\'e2\'ee\'fe \'f1\'ee\'e1\'f1\'f2\'e2\'e5\'ed\'ed\'f3\'fe \'ee\'f2\'e2\'e5\'f2\'f1\'f2\'e2\'e5\'ed\'ed\'ee\'f1\'f2\'fc \'e7\'e0 \'f0\'e5\'e7\'f3\'eb\'fc\'f2\'e0\'f2\'fb \'e5\'e3\'ee \'f0\'e0\'e1\'ee\'f2\'fb.\par
\pard\li142\ri120\cf0\par
\par
\pard\li142\ri120\qc\'c1\'ee\'eb\'fc\'f8\'e5 \'e8\'ed\'f4\'ee\'f0\'ec\'e0\'f6\'e8\'e8\par
{{\field{\*\fldinst{HYPERLINK https://riva-lab.gitlab.io/apps/matrixFont }}{\fldrslt{https://riva-lab.gitlab.io/apps/matrixFont\ul0\cf0}}}}\f1\fs18\par
\par
\'c8\'f1\'f5\'ee\'e4\'ed\'fb\'e9 \'ea\'ee\'e4 \'ef\'f0\'ee\'e5\'ea\'f2\'e0\par
{{\field{\*\fldinst{HYPERLINK https://gitlab.com/riva-lab/matrixFont }}{\fldrslt{https://gitlab.com/riva-lab/matrixFont\ul0\cf0}}}}\f1\fs18\par
\par
\f0\lang1033\par
}

View File

@ -0,0 +1,70 @@
matrixFont
==========
matrixFont позволяет создавать, редактировать растровые шрифты и генерировать код C для подключения созданного шрифта к проекту программного обеспечения.
Основная область применения — разработка проектов программного обеспечения с использованием графического интерфейса пользователя во встраиваемых системах.
Возможности:
- растровый шрифт:
- размеры символа от 1 × 1 до 100 × 100 (технически до 512 × 512);
- диапазон символов от 0 до 255;
- выбор кодовой страницы (кодировки);
- компактный собственный формат файла RHF;
- создание проекта:
- на основе системного шрифта;
- из кода (поддержка форматов matrixFont, AdaFruit GFX, LCD Vision V1.34);
- из изображения карты символов с метаинформацией;
- редактор символов:
- удобное редактирование мышью;
- масштабирование рабочего поля колесом мыши;
- копирование, вставка и перемещение символов;
- импортирование изображения в символ;
- история операций редактирования для каждого символа;
- операции: инверсия, отображение, поворот, сдвиг, прижатие, центрирование символов;
- пакетное редактирование всех символов шрифта;
- навигация и предпросмотр:
- навигатор по символам с отображением символов;
- поиск символов по коду или по названию;
- просмотр образца текста;
- карта символов;
- экспортирование карты символов в изображение;
- инструменты:
- изменение диапазона символов шрифта;
- изменение размера символов шрифта;
- оптимизация размера символов;
- генератор кода C с тонкой настройкой;
- интерфейс:
- интуитивный и дружественный дизайн,
- полная поддержка дисплеев разной плотности,
- поддержка локализаций,
- поддержка тем: светлая и темная,
- гибкость — настройка внешнего вида, цветов и пр.,
- а также:
- подробная справка.
Ответственность
---------------
Приложение предоставляется для свободного использования, без каких-либо гарантий и технической поддержки. Вы используете приложение по своему усмотрению и несете свою собственную ответственность за результаты его работы.
Больше информации
https://riva-lab.gitlab.io/apps/matrixFont
Исходный код проекта
https://gitlab.com/riva-lab/matrixFont

View File

@ -0,0 +1,157 @@
; This script isn't full and therefore not compiled.
; This script provides common part of full work script.
; Include this file via #include directive in work script.
; Project data
#define appPath "..\.."
#define appName "matrixFont"
#define appNameShort "matrixFont"
#define appCopyright "Copyright (c) 2015-2024 Riva"
#define appPublisher "Riva Lab"
#define appURL "https://riva-lab.gitlab.io/en/apps/matrixFont/"
#define appUpdatesURL "https://gitlab.com/riva-lab/matrixFont/-/releases"
#define appExeName "matrixFont-win" + appArch + "-Release.exe"
#define _version 0
#define _vMajor 0
#define _vMinor 0
#define _vRev 0
#define _vBuild 0
#define _getVer GetPackedVersion(appPath + '\bin\' + appExeName, _version)
#define _unpackVer UnpackVersionComponents(_version, _vMajor, _vMinor, _vRev, _vBuild)
#define appVer3 Str(_vMajor) + "." + Str(_vMinor) + "." + Str(_vRev)
#define appVersion GetVersionNumbersString(appPath + '\bin\' + appExeName)
#define appOutputDir "\install\v" + appVersion
#define appOutputFile "matrixFont-win" + appArch + "-Setup"
[Setup]
AppId = {#appPublisher}_{#appName}_desktop-win
AppName = {#appName}
AppVersion = {#appVersion}
AppVerName = {#appName} {#appVer3}
AppPublisher = {#appPublisher}
AppPublisherURL = {#appURL}
AppSupportURL = {#appURL}
AppUpdatesURL = {#appUpdatesURL}
AppCopyright = {#appCopyright}
AppReadmeFile = {#appPath}\readme.html
LicenseFile = {#appPath}\license.md
;InfoBeforeFile = info.txt
WizardStyle = modern
DisableWelcomePage = no
UsePreviousAppDir = yes
AllowNoIcons = yes
DefaultDirName = {autopf}\{#appName}
DefaultGroupName = {#appName}
SetupIconFile = {#appPath}\resources\icon\install.ico
UninstallDisplayIcon= {app}\bin\{#appExeName}
OutputDir = {#appPath}\{#appOutputDir}
OutputBaseFilename = {#appOutputFile}
Compression = lzma
SolidCompression = yes
VersionInfoVersion = {#appVersion}
PrivilegesRequired = lowest
PrivilegesRequiredOverridesAllowed = dialog
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"; InfoBeforeFile: "info-en.rtf"
; Name: "armenian"; MessagesFile: "compiler:Languages\Armenian.isl"
; Name: "brazilianportuguese"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl"
; Name: "bulgarian"; MessagesFile: "compiler:Languages\Bulgarian.isl"
; Name: "catalan"; MessagesFile: "compiler:Languages\Catalan.isl"
; Name: "corsican"; MessagesFile: "compiler:Languages\Corsican.isl"
; Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl"
; Name: "danish"; MessagesFile: "compiler:Languages\Danish.isl"
; Name: "dutch"; MessagesFile: "compiler:Languages\Dutch.isl"
; Name: "finnish"; MessagesFile: "compiler:Languages\Finnish.isl"
; Name: "french"; MessagesFile: "compiler:Languages\French.isl"
; Name: "german"; MessagesFile: "compiler:Languages\German.isl"
; Name: "hebrew"; MessagesFile: "compiler:Languages\Hebrew.isl"
; Name: "hungarian"; MessagesFile: "compiler:Languages\Hungarian.isl"
; Name: "icelandic"; MessagesFile: "compiler:Languages\Icelandic.isl"
; Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl"
; Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl"
; Name: "norwegian"; MessagesFile: "compiler:Languages\Norwegian.isl"
; Name: "polish"; MessagesFile: "compiler:Languages\Polish.isl"
; Name: "portuguese"; MessagesFile: "compiler:Languages\Portuguese.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"; InfoBeforeFile: "info-ru.rtf"
; Name: "slovak"; MessagesFile: "compiler:Languages\Slovak.isl"
; Name: "slovenian"; MessagesFile: "compiler:Languages\Slovenian.isl"
; Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
; Name: "turkish"; MessagesFile: "compiler:Languages\Turkish.isl"
; Name: "ukrainian"; MessagesFile: "compiler:Languages\Ukrainian.isl"
[Components]
Name: "Application"; Description: "Application"; Types: full compact custom; Flags: fixed
Name: "Help"; Description: "Help"; Types: full
Name: "Translations"; Description: "Localizations"; Types: full
Name: "Translations\English"; Description: "English"; Types: full
Name: "Translations\Russian"; Description: "Russian"; Types: full compact custom; Flags: fixed
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
[Dirs]
Name: "{app}\bin\lang"; Permissions: users-modify
[Files]
; Application files
Source: "{#appPath}\bin\{#appExeName}"; DestDir: "{app}\bin"; Flags: ignoreversion
Source: "settings.ini"; DestDir: "{app}\bin"; Flags: ignoreversion; Permissions: users-modify
; Localization files
Source: "{#appPath}\bin\lang\*.ini"; DestDir: "{app}\bin\lang"; Flags: ignoreversion
Source: "{#appPath}\bin\lang\{#appName}.pot"; DestDir: "{app}\bin\lang"; Flags: ignoreversion
Source: "{#appPath}\bin\lang\{#appName}.en.po"; DestDir: "{app}\bin\lang"; Flags: ignoreversion; Components: Translations\English
Source: "{#appPath}\bin\lang\{#appName}.ru.po"; DestDir: "{app}\bin\lang"; Flags: ignoreversion; Components: Translations\Russian
; Common files for readme and help
Source: "{#appPath}\help\css\*"; DestDir: "{app}\help\css"; Flags: ignoreversion recursesubdirs
Source: "{#appPath}\help\js\*"; DestDir: "{app}\help\js"; Flags: ignoreversion recursesubdirs
Source: "{#appPath}\help\light\screenshots\matrixFont.png"; DestDir: "{app}\help\light\screenshots"; Flags: ignoreversion recursesubdirs
Source: "{#appPath}\help\dark\screenshots\matrixFont.png"; DestDir: "{app}\help\dark\screenshots"; Flags: ignoreversion recursesubdirs
; Help files
Source: "{#appPath}\help\*"; Excludes: "*template.html"; DestDir: "{app}\help"; Flags: ignoreversion recursesubdirs; Components: Help
; Info files
Source: "{#appPath}\readme.md"; DestDir: "{app}"; Flags: ignoreversion
Source: "{#appPath}\readme.html"; DestDir: "{app}"; Flags: ignoreversion
Source: "{#appPath}\readme.en.*"; DestDir: "{app}"; Flags: ignoreversion; Components: Translations\English
Source: "{#appPath}\license.*"; DestDir: "{app}"; Flags: ignoreversion
Source: "{#appPath}\versions.*"; DestDir: "{app}"; Flags: ignoreversion
[Icons]
Name: "{group}\{#appName}"; Filename: "{app}\bin\{#appExeName}"
Name: "{group}\Help (Rus)"; Filename: "{app}\help\{#appNameShort}-help.html"; Components: Help
Name: "{group}\Readme"; Filename: "{app}\readme.html"
Name: "{group}\{cm:UninstallProgram,{#appName}}"; Filename: "{uninstallexe}"
Name: "{autodesktop}\{#appName}"; Filename: "{app}\bin\{#appExeName}"; Tasks: desktopicon
[Run]
Filename: "{app}\bin\{#appExeName}"; Description: "{cm:LaunchProgram,{#StringChange(appName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
Filename: "{#appURL}"; Description: "{cm:ProgramOnTheWeb,{#StringChange(appName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent shellexec unchecked
Filename: "{app}\readme.html"; Description: "Readme"; Flags: nowait postinstall skipifsilent shellexec unchecked
[UninstallDelete]
Type: files; Name: "{app}\bin\lang\*.po"
Type: files; Name: "{app}\bin\lang\*.pot"
Type: files; Name: "{app}\bin\lang\*.ini"
Type: dirifempty; Name: "{app}\bin\lang"
Type: files; Name: "{app}\bin\settings.ini"
Type: dirifempty; Name: "{app}"

View File

@ -0,0 +1,3 @@
#define appArch "32"
#include "installer-common.iss"

View File

@ -0,0 +1,7 @@
#define appArch "64"
[Setup]
ArchitecturesInstallIn64BitMode = x64
ArchitecturesAllowed = x64
#include "installer-common.iss"

View File

View File

@ -0,0 +1,9 @@
set TEMPDIR=tempb4Ta9hW5bzE3
cd ..\resources
md %TEMPDIR%
for %%i in (*.svg) do (scour %%i %TEMPDIR%\%%i --enable-viewboxing --enable-id-stripping --enable-comment-stripping --shorten-ids --indent=none)
xcopy %TEMPDIR%"\*.svg" "*.svg" /y
rd %TEMPDIR% /s /q

View File

@ -0,0 +1 @@
rd /s /q "..\source\lib"

View File

@ -1,3 +0,0 @@
cd ..
upx --lzma bin\*.exe