Compare commits

..

3 Commits

Author SHA1 Message Date
Simon Rozman
c251f568a9 Make ZRCola window always-on-top while composing
Microsoft Remote Desktop introduced a bug in Windows 10 Falls Update
(1709 release) keeping Remote Desktop window always-on-top. This
prevents ZRCola window to pop-up on Win+F5.

This patch addresses this issue by temporarily making ZRCola window
always-on-top when called by Win+F5/F6, and restoring it back to normal
when finished by F5/F6 or dismissed by Esc.
2019-03-12 20:51:44 +01:00
Simon Rozman
8c2dd29f39 Upgrade to latest WinStd library
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-12 20:50:35 +01:00
Simon Rozman
360f42868d Trigger per-user setup on logon 2019-03-12 20:50:35 +01:00
152 changed files with 8610 additions and 5675 deletions

View File

@@ -1,4 +1,4 @@
# Localization of ZRCola
# Localization of ZRCola
In order to get ZRCola experience in your language the following resources should be translated:

Binary file not shown.

View File

@@ -1,5 +1,21 @@
# SPDX-License-Identifier: GPL-3.0-or-later
# Copyright © 1991-2021 Amebis
#
# Copyright 1991-2018 Amebis
#
# This file is part of ZRCola.
#
# ZRCola is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ZRCola is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
#
!INCLUDE "..\..\include\MSIBuildCfg.mak"
!INCLUDE "..\MSIBuild\Makefile"

View File

@@ -1,5 +1,3 @@
# Translators:
# Simon Rozman <simon@rozman.si>, 2018
#
#, fuzzy
msgid ""
@@ -7,7 +5,7 @@ msgstr ""
"Project-Id-Version: ZRCola MSI\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-09-19 08:59+0200\n"
"PO-Revision-Date: 2018-09-19 07:19+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2018\n"
"Language-Team: German (Germany) (https://www.transifex.com/amebis/teams/91592/de_DE/)\n"
"MIME-Version: 1.0\n"

View File

@@ -1,5 +1,3 @@
# Translators:
# Simon Rozman <simon@rozman.si>, 2018
#
#, fuzzy
msgid ""
@@ -7,7 +5,7 @@ msgstr ""
"Project-Id-Version: ZRCola MSI\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-09-19 08:59+0200\n"
"PO-Revision-Date: 2018-09-19 07:19+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2018\n"
"Language-Team: Russian (Russia) (https://www.transifex.com/amebis/teams/91592/ru_RU/)\n"
"MIME-Version: 1.0\n"

View File

@@ -1,5 +1,3 @@
# Translators:
# Simon Rozman <simon@rozman.si>, 2018
#
#, fuzzy
msgid ""
@@ -7,7 +5,7 @@ msgstr ""
"Project-Id-Version: ZRCola MSI\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-09-19 08:59+0200\n"
"PO-Revision-Date: 2018-09-19 07:19+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2018\n"
"Language-Team: Slovenian (Slovenia) (https://www.transifex.com/amebis/teams/91592/sl_SI/)\n"
"MIME-Version: 1.0\n"

BIN
Makefile

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,4 +1,4 @@
# ZRCola
# ZRCola
A Microsoft Windows application for composing texts using a wide range of Slavic (and general) letters from or beyond Unicode.
@@ -6,7 +6,7 @@ A Microsoft Windows application for composing texts using a wide range of Slavic
http://zrcola.zrc-sazu.si/en/
## Binaries for Download
https://prenos.amebis.si/ZRCola/
https://www.amebis.si/prenos/ZRCola/
## Building
@@ -20,7 +20,7 @@ https://prenos.amebis.si/ZRCola/
### wxWidgets
ZRCola is using wxWidgets static libraries. You have to compile static libraries yourself.
#### Compiling wxWidgets Win32 static libraries
#### Compiling wxWidgets x86 static libraries
1. Start _x86 Native Tools Command Prompt for VS 2017_
2. Change working folder to `build\msw`
3. Run: `nmake /f makefile.vc /ls RUNTIME_LIBS=static SHARED=0 COMPILER_VERSION=141`
@@ -33,15 +33,15 @@ ZRCola is using wxWidgets static libraries. You have to compile static libraries
4. Run: `nmake /f makefile.vc /ls RUNTIME_LIBS=static SHARED=0 COMPILER_VERSION=141 TARGET_CPU=X64 BUILD=release`
#### Specifying wxWidgets path
ZRCola compilation references wxWidgets libraries using `WXWIN` environment variable. Please set it to wxWidgets folder (e.g. `C:\SDK\wxWidgets`).
ZRCola compilation references wxWidgets libraries using `WXWIN` environment variable. Please set it to wxWidgets folder (i.e. `C:\SDK\wxWidgets`).
### Digital Signing of Build Outputs
In order to have the build process digitally sign output files, one should provide the following:
1. A signing certificate installed in the current user's certificate store.
2. The following variables in the environment:
- `ManifestCertificateThumbprint` - set the value to certificate's SHA1 thumbprint (hexadecimal, without spaces, e.g. `f61b973226c502a732d24f41aa85e192b009e7c0`).
- `ManifestTimestampRFC3161Url` - set the value to URL used to perform RFC3161 timestamp signature (e.g. `http://time.certum.pl`). In order to perform timestamp signing successfully, the computer running the build should be online and able to access this URL.
- `ManifestCertificateThumbprint` - set the value to certificate's SHA1 thumbprint (hexadecimal, without spaces, i.e. `bc0d8da45f9eeefcbe4e334e1fc262804df88d7e`).
- `ManifestTimestampUrl` - set the value to URL used to perform timestamp signature (i.e. `http://timestamp.verisign.com/scripts/timstamp.dll`). In order to perform timestamp signing successfully, the computer running the build should be online and able to access this URL.
Please note that only Release builds are configured for timestamp signing. Debug configurations do not attempt to timestamp sign the resulting DLL and EXE files in order to speed up the building process and enable offline building.
@@ -54,7 +54,7 @@ Use Microsoft NMAKE to build the project. The resulting files can be found in ou
- `nmake Register` Build a debug version of project, install fonts (reboot required), and Start Menu shortcuts. For development purposes only!
- `nmake Unregister` Remove Start Menu shortcuts, and fonts. For development purposes only!
The `/ls` flag can be appended to the commands above to reduce NMAKE's verbosity. You can combine multiple targets (e.g. nmake Unregister Clean). Please, see NMAKE reference for further reading.
The `/ls` flag can be appended to the commands above to reduce NMAKE's verbosity. You can combine multiple targets (i.e. nmake Unregister Clean). Please, see NMAKE reference for further reading.
## Translating ZRCola
Instructions how to translate ZRCola to your language can be found [here](LOCALIZATION.md).

Submodule Updater updated: 0ba186c984...6fbcede83b

View File

@@ -1,13 +1,13 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29728.190
# Visual Studio 15
VisualStudioVersion = 15.0.28010.2016
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZRCola", "ZRCola\ZRCola.vcxproj", "{CD9E4170-92DD-440E-980C-D15F62032249}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{6D85AD6A-69D6-40EB-BF0C-7495479DDCE5}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxExtend", "lib\wxExtend\build\wxExtendLib.vcxproj", "{D3E29951-D9F5-486D-A167-20AE8E90B1FA}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxExtend", "lib\wxExtend\build\wxExtendLib-15.0.vcxproj", "{D3E29951-D9F5-486D-A167-20AE8E90B1FA}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{CFEBC17E-C840-4507-BDE6-1EF5B52DDCC5}"
ProjectSection(SolutionItems) = preProject
@@ -18,106 +18,106 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libZRCola", "lib\libZRCola\
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libZRColaUI", "lib\libZRColaUI\build\libZRColaUI.vcxproj", "{C0A84BD2-3870-4CD6-B281-0AB322E3C579}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stdex", "lib\stdex\build\stdex.vcxproj", "{518777CC-0A59-4415-A12A-82751ED75343}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stdex", "lib\stdex\build\stdex-15.0.vcxproj", "{518777CC-0A59-4415-A12A-82751ED75343}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Updater", "Updater\Updater\build\Updater.vcxproj", "{990D8CF9-4457-4DC0-AA18-4968EF434741}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinStd", "lib\WinStd\build\WinStd.vcxproj", "{47399D91-7EB9-41DE-B521-514BA5DB0C43}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinStd", "lib\WinStd\build\WinStd-15.0.vcxproj", "{47399D91-7EB9-41DE-B521-514BA5DB0C43}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM64 = Debug|ARM64
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|ARM64 = Release|ARM64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{CD9E4170-92DD-440E-980C-D15F62032249}.Debug|ARM64.ActiveCfg = Debug|ARM64
{CD9E4170-92DD-440E-980C-D15F62032249}.Debug|ARM64.Build.0 = Debug|ARM64
{CD9E4170-92DD-440E-980C-D15F62032249}.Debug|Win32.ActiveCfg = Debug|Win32
{CD9E4170-92DD-440E-980C-D15F62032249}.Debug|Win32.Build.0 = Debug|Win32
{CD9E4170-92DD-440E-980C-D15F62032249}.Debug|x64.ActiveCfg = Debug|x64
{CD9E4170-92DD-440E-980C-D15F62032249}.Debug|x64.Build.0 = Debug|x64
{CD9E4170-92DD-440E-980C-D15F62032249}.Debug|x86.ActiveCfg = Debug|Win32
{CD9E4170-92DD-440E-980C-D15F62032249}.Debug|x86.Build.0 = Debug|Win32
{CD9E4170-92DD-440E-980C-D15F62032249}.Release|ARM64.ActiveCfg = Release|ARM64
{CD9E4170-92DD-440E-980C-D15F62032249}.Release|ARM64.Build.0 = Release|ARM64
{CD9E4170-92DD-440E-980C-D15F62032249}.Release|Win32.ActiveCfg = Release|Win32
{CD9E4170-92DD-440E-980C-D15F62032249}.Release|Win32.Build.0 = Release|Win32
{CD9E4170-92DD-440E-980C-D15F62032249}.Release|x64.ActiveCfg = Release|x64
{CD9E4170-92DD-440E-980C-D15F62032249}.Release|x64.Build.0 = Release|x64
{CD9E4170-92DD-440E-980C-D15F62032249}.Release|x86.ActiveCfg = Release|Win32
{CD9E4170-92DD-440E-980C-D15F62032249}.Release|x86.Build.0 = Release|Win32
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Debug|ARM64.ActiveCfg = Debug|ARM64
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Debug|ARM64.Build.0 = Debug|ARM64
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Debug|Win32.ActiveCfg = Debug|Win32
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Debug|Win32.Build.0 = Debug|Win32
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Debug|x64.ActiveCfg = Debug|x64
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Debug|x64.Build.0 = Debug|x64
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Debug|x86.ActiveCfg = Debug|Win32
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Debug|x86.Build.0 = Debug|Win32
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Release|ARM64.ActiveCfg = Release|ARM64
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Release|ARM64.Build.0 = Release|ARM64
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Release|Win32.ActiveCfg = Release|Win32
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Release|Win32.Build.0 = Release|Win32
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Release|x64.ActiveCfg = Release|x64
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Release|x64.Build.0 = Release|x64
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Release|x86.ActiveCfg = Release|Win32
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Release|x86.Build.0 = Release|Win32
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Debug|ARM64.ActiveCfg = Debug|ARM64
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Debug|ARM64.Build.0 = Debug|ARM64
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Debug|Win32.ActiveCfg = Debug|Win32
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Debug|Win32.Build.0 = Debug|Win32
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Debug|x64.ActiveCfg = Debug|x64
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Debug|x64.Build.0 = Debug|x64
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Debug|x86.ActiveCfg = Debug|Win32
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Debug|x86.Build.0 = Debug|Win32
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Release|ARM64.ActiveCfg = Release|ARM64
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Release|ARM64.Build.0 = Release|ARM64
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Release|Win32.ActiveCfg = Release|Win32
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Release|Win32.Build.0 = Release|Win32
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Release|x64.ActiveCfg = Release|x64
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Release|x64.Build.0 = Release|x64
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Release|x86.ActiveCfg = Release|Win32
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Release|x86.Build.0 = Release|Win32
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Debug|ARM64.ActiveCfg = Debug|ARM64
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Debug|ARM64.Build.0 = Debug|ARM64
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Debug|Win32.ActiveCfg = Debug|Win32
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Debug|Win32.Build.0 = Debug|Win32
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Debug|x64.ActiveCfg = Debug|x64
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Debug|x64.Build.0 = Debug|x64
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Debug|x86.ActiveCfg = Debug|Win32
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Debug|x86.Build.0 = Debug|Win32
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Release|ARM64.ActiveCfg = Release|ARM64
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Release|ARM64.Build.0 = Release|ARM64
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Release|Win32.ActiveCfg = Release|Win32
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Release|Win32.Build.0 = Release|Win32
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Release|x64.ActiveCfg = Release|x64
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Release|x64.Build.0 = Release|x64
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Release|x86.ActiveCfg = Release|Win32
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Release|x86.Build.0 = Release|Win32
{518777CC-0A59-4415-A12A-82751ED75343}.Debug|ARM64.ActiveCfg = Debug|ARM64
{518777CC-0A59-4415-A12A-82751ED75343}.Debug|ARM64.Build.0 = Debug|ARM64
{518777CC-0A59-4415-A12A-82751ED75343}.Debug|Win32.ActiveCfg = Debug|Win32
{518777CC-0A59-4415-A12A-82751ED75343}.Debug|Win32.Build.0 = Debug|Win32
{518777CC-0A59-4415-A12A-82751ED75343}.Debug|x64.ActiveCfg = Debug|x64
{518777CC-0A59-4415-A12A-82751ED75343}.Debug|x64.Build.0 = Debug|x64
{518777CC-0A59-4415-A12A-82751ED75343}.Debug|x86.ActiveCfg = Debug|Win32
{518777CC-0A59-4415-A12A-82751ED75343}.Debug|x86.Build.0 = Debug|Win32
{518777CC-0A59-4415-A12A-82751ED75343}.Release|ARM64.ActiveCfg = Release|ARM64
{518777CC-0A59-4415-A12A-82751ED75343}.Release|ARM64.Build.0 = Release|ARM64
{518777CC-0A59-4415-A12A-82751ED75343}.Release|Win32.ActiveCfg = Release|Win32
{518777CC-0A59-4415-A12A-82751ED75343}.Release|Win32.Build.0 = Release|Win32
{518777CC-0A59-4415-A12A-82751ED75343}.Release|x64.ActiveCfg = Release|x64
{518777CC-0A59-4415-A12A-82751ED75343}.Release|x64.Build.0 = Release|x64
{518777CC-0A59-4415-A12A-82751ED75343}.Release|x86.ActiveCfg = Release|Win32
{518777CC-0A59-4415-A12A-82751ED75343}.Release|x86.Build.0 = Release|Win32
{990D8CF9-4457-4DC0-AA18-4968EF434741}.Debug|ARM64.ActiveCfg = Debug|ARM64
{990D8CF9-4457-4DC0-AA18-4968EF434741}.Debug|ARM64.Build.0 = Debug|ARM64
{990D8CF9-4457-4DC0-AA18-4968EF434741}.Debug|Win32.ActiveCfg = Debug|Win32
{990D8CF9-4457-4DC0-AA18-4968EF434741}.Debug|Win32.Build.0 = Debug|Win32
{990D8CF9-4457-4DC0-AA18-4968EF434741}.Debug|x64.ActiveCfg = Debug|x64
{990D8CF9-4457-4DC0-AA18-4968EF434741}.Debug|x64.Build.0 = Debug|x64
{990D8CF9-4457-4DC0-AA18-4968EF434741}.Debug|x86.ActiveCfg = Debug|Win32
{990D8CF9-4457-4DC0-AA18-4968EF434741}.Debug|x86.Build.0 = Debug|Win32
{990D8CF9-4457-4DC0-AA18-4968EF434741}.Release|ARM64.ActiveCfg = Release|ARM64
{990D8CF9-4457-4DC0-AA18-4968EF434741}.Release|ARM64.Build.0 = Release|ARM64
{990D8CF9-4457-4DC0-AA18-4968EF434741}.Release|Win32.ActiveCfg = Release|Win32
{990D8CF9-4457-4DC0-AA18-4968EF434741}.Release|Win32.Build.0 = Release|Win32
{990D8CF9-4457-4DC0-AA18-4968EF434741}.Release|x64.ActiveCfg = Release|x64
{990D8CF9-4457-4DC0-AA18-4968EF434741}.Release|x64.Build.0 = Release|x64
{990D8CF9-4457-4DC0-AA18-4968EF434741}.Release|x86.ActiveCfg = Release|Win32
{990D8CF9-4457-4DC0-AA18-4968EF434741}.Release|x86.Build.0 = Release|Win32
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Debug|ARM64.ActiveCfg = Debug|ARM64
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Debug|ARM64.Build.0 = Debug|ARM64
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Debug|Win32.ActiveCfg = Debug|Win32
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Debug|Win32.Build.0 = Debug|Win32
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Debug|x64.ActiveCfg = Debug|x64
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Debug|x64.Build.0 = Debug|x64
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Debug|x86.ActiveCfg = Debug|Win32
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Debug|x86.Build.0 = Debug|Win32
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Release|ARM64.ActiveCfg = Release|ARM64
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Release|ARM64.Build.0 = Release|ARM64
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Release|Win32.ActiveCfg = Release|Win32
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Release|Win32.Build.0 = Release|Win32
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Release|x64.ActiveCfg = Release|x64
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Release|x64.Build.0 = Release|x64
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Release|x86.ActiveCfg = Release|Win32
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

Binary file not shown.

20
ZRCola/ZRCola.props Normal file
View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<OutDir>..\output\$(Platform).$(Configuration)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>..\lib\wxExtend\include;..\Updater\Updater\include;..\lib\stdex\include;..\lib\WinStd\include;..\lib\libZRCola\include;..\lib\libZRColaUI\include</AdditionalIncludeDirectories>
</ClCompile>
<Manifest>
<EnableDpiAwareness>true</EnableDpiAwareness>
</Manifest>
<ResourceCompile>
<AdditionalIncludeDirectories>..\Updater\Updater\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup />
</Project>

Binary file not shown.

View File

@@ -29,47 +29,98 @@
<PropertyGroup Label="Globals">
<ProjectGuid>{CD9E4170-92DD-440E-980C-D15F62032249}</ProjectGuid>
<RootNamespace>ZRCola</RootNamespace>
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)'=='Debug'">
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)'=='Release'">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Platform)'=='ARM64'">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="PropertySheets">
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\include\$(Platform).props" />
<Import Project="..\include\$(Configuration).props" />
<Import Project="ZRCola.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\include\$(Platform).props" />
<Import Project="..\include\$(Configuration).props" />
<Import Project="ZRCola.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\include\$(Platform).props" />
<Import Project="..\include\$(Configuration).props" />
<Import Project="ZRCola.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\include\$(Platform).props" />
<Import Project="..\include\$(Configuration).props" />
<Import Project="ZRCola.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\include\$(Platform).props" />
<Import Project="..\include\$(Configuration).props" />
<Import Project="ZRCola.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\include\$(Platform).props" />
<Import Project="..\include\$(Configuration).props" />
<Import Project="ZRCola.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<OutDir>..\output\$(Platform).$(Configuration)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>..\lib\wxExtend\include;..\Updater\Updater\include;..\lib\stdex\include;..\lib\WinStd\include;..\lib\libZRCola\include;..\lib\libZRColaUI\include</AdditionalIncludeDirectories>
</ClCompile>
<Manifest>
<EnableDpiAwareness>true</EnableDpiAwareness>
</Manifest>
<ResourceCompile>
<AdditionalIncludeDirectories>..\Updater\Updater\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="pch.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="zrcolaabout.cpp" />
<ClCompile Include="zrcolaapp.cpp" />
@@ -86,7 +137,7 @@
<ClCompile Include="zrcolaupdater.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="pch.h" />
<ClInclude Include="stdafx.h" />
<ClInclude Include="zrcolaabout.h" />
<ClInclude Include="zrcolaapp.h" />
<ClInclude Include="zrcolachrcatpnl.h" />
@@ -108,10 +159,10 @@
<ProjectReference Include="..\lib\libZRCola\build\libZRCola.vcxproj">
<Project>{3c61929e-7289-4101-8d0a-da22d6e1aea8}</Project>
</ProjectReference>
<ProjectReference Include="..\lib\WinStd\build\WinStd.vcxproj">
<ProjectReference Include="..\lib\WinStd\build\WinStd-15.0.vcxproj">
<Project>{47399d91-7eb9-41de-b521-514ba5db0c43}</Project>
</ProjectReference>
<ProjectReference Include="..\lib\wxExtend\build\wxExtendLib.vcxproj">
<ProjectReference Include="..\lib\wxExtend\build\wxExtendLib-15.0.vcxproj">
<Project>{D3E29951-D9F5-486D-A167-20AE8E90B1FA}</Project>
</ProjectReference>
<ProjectReference Include="..\Updater\Updater\build\Updater.vcxproj">

View File

@@ -19,7 +19,7 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="pch.cpp">
<ClCompile Include="stdafx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="zrcolaapp.cpp">
@@ -63,7 +63,7 @@
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="pch.h">
<ClInclude Include="stdafx.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="zrcolaapp.h">

File diff suppressed because it is too large Load Diff

View File

@@ -1,23 +1,22 @@
# Translators:
# Simon Rozman <simon@rozman.si>, 2018
#
msgid ""
msgstr ""
"Project-Id-Version: ZRCola\n"
"POT-Creation-Date: 2021-11-19 14:27+0100\n"
"PO-Revision-Date: 2021-11-19 14:28+0100\n"
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
"POT-Creation-Date: 2018-09-19 09:00+0200\n"
"PO-Revision-Date: 2018-09-19 09:09+0200\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2018\n"
"Language-Team: German (Germany) (https://www.transifex.com/amebis/teams/91592/de_DE/)\n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: de_DE\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.4.2\n"
"X-Generator: Poedit 2.1.1\n"
"X-Poedit-Basepath: ..\n"
"X-Poedit-KeywordsList: _\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-SearchPath-0: .\n"
"X-Poedit-SourceCharset: UTF-8\n"
#: res/zrcolagui.cpp:42 zrcolagui.cpp:42
msgid "E&xit"
@@ -45,71 +44,62 @@ msgstr ""
#: res/zrcolagui.cpp:84 res/zrcolagui.cpp:213 zrcolagui.cpp:84
#: zrcolagui.cpp:213
msgid "Toggle character search to select character to insert into text"
msgid "Display character search to select character to insert into text"
msgstr ""
#: res/zrcolagui.cpp:90 zrcolagui.cpp:90
#: res/zrcolagui.cpp:95 zrcolagui.cpp:95
msgid "&Send Composed"
msgstr ""
#: res/zrcolagui.cpp:90 res/zrcolagui.cpp:215 zrcolagui.cpp:90
#: res/zrcolagui.cpp:95 res/zrcolagui.cpp:215 zrcolagui.cpp:95
#: zrcolagui.cpp:215
msgid "Send composed text to source window"
msgstr ""
#: res/zrcolagui.cpp:99 zrcolagui.cpp:99
#: res/zrcolagui.cpp:104 zrcolagui.cpp:104
msgid "Copy Composed and &Return"
msgstr ""
#: res/zrcolagui.cpp:99 zrcolagui.cpp:99
#: res/zrcolagui.cpp:104 zrcolagui.cpp:104
msgid "Copy composed text to clipboard and return focus to source window"
msgstr ""
#: res/zrcolagui.cpp:108 zrcolagui.cpp:108
#: res/zrcolagui.cpp:113 zrcolagui.cpp:113
msgid "Send &Decomposed"
msgstr ""
#: res/zrcolagui.cpp:108 res/zrcolagui.cpp:217 zrcolagui.cpp:108
#: res/zrcolagui.cpp:113 res/zrcolagui.cpp:217 zrcolagui.cpp:113
#: zrcolagui.cpp:217
msgid "Send decomposed text to source window"
msgstr ""
#: res/zrcolagui.cpp:117 zrcolagui.cpp:117
#: res/zrcolagui.cpp:122 zrcolagui.cpp:122
msgid "Copy Decomposed and Re&turn"
msgstr ""
#: res/zrcolagui.cpp:117 zrcolagui.cpp:117
#: res/zrcolagui.cpp:122 zrcolagui.cpp:122
msgid "Copy decomposed text to clipboard and return focus to source window"
msgstr ""
#: res/zrcolagui.cpp:126 zrcolagui.cpp:126
#: res/zrcolagui.cpp:131 zrcolagui.cpp:131
msgid "Abort (De)composition"
msgstr ""
#: res/zrcolagui.cpp:126 zrcolagui.cpp:126
#: res/zrcolagui.cpp:131 zrcolagui.cpp:131
msgid "Abort composition and return focus to source window"
msgstr ""
#: res/zrcolagui.cpp:136 zrcolagui.cpp:136
#: res/zrcolagui.cpp:141 zrcolagui.cpp:141
msgid "&ZRCola (De)composition"
msgstr ""
#: res/zrcolagui.cpp:136 res/zrcolagui.cpp:221 zrcolagui.cpp:136
#: res/zrcolagui.cpp:141 res/zrcolagui.cpp:219 zrcolagui.cpp:141
#: zrcolagui.cpp:221
msgid "Toggle ZRCola character (De)composition"
msgstr ""
#: res/zrcolagui.cpp:140 zrcolagui.cpp:140
msgid "Tra&nslation"
msgstr ""
#: res/zrcolagui.cpp:145 zrcolagui.cpp:145
msgid "&PUA Warning"
msgstr ""
#: res/zrcolagui.cpp:145 res/zrcolagui.cpp:229 zrcolagui.cpp:145
#: zrcolagui.cpp:229
msgid "Highlight Private Use Area Characters"
msgid "Tra&nslation"
msgstr ""
#: res/zrcolagui.cpp:151 zrcolagui.cpp:151
@@ -232,218 +222,210 @@ msgstr ""
msgid "Send Decomposed"
msgstr ""
#: res/zrcolagui.cpp:221 zrcolagui.cpp:221
#: res/zrcolagui.cpp:219 zrcolagui.cpp:221
msgid "ZRCola (De)composition"
msgstr ""
#: res/zrcolagui.cpp:229 zrcolagui.cpp:229
msgid "PUA Warning"
msgstr ""
#: res/zrcolagui.cpp:232 zrcolagui.cpp:232
#: res/zrcolagui.cpp:226 zrcolagui.cpp:228
msgid "Compose"
msgstr ""
#: res/zrcolagui.cpp:236 zrcolagui.cpp:236
#: res/zrcolagui.cpp:230 zrcolagui.cpp:232
msgid "Character Catalog"
msgstr ""
#: res/zrcolagui.cpp:240 zrcolagui.cpp:240
#: res/zrcolagui.cpp:234 zrcolagui.cpp:236
msgid "(De)Composer"
msgstr ""
#: res/zrcolagui.cpp:281 zrcolagui.cpp:281
#: res/zrcolagui.cpp:275 zrcolagui.cpp:277
msgid "Decomposed Text"
msgstr ""
#: res/zrcolagui.cpp:301 zrcolagui.cpp:301
#: res/zrcolagui.cpp:295 zrcolagui.cpp:297
msgid "Decomposed Unicode Dump"
msgstr ""
#: res/zrcolagui.cpp:328 zrcolagui.cpp:328
#: res/zrcolagui.cpp:322 zrcolagui.cpp:324
msgid "Composed Text"
msgstr ""
#: res/zrcolagui.cpp:348 zrcolagui.cpp:348
#: res/zrcolagui.cpp:342 zrcolagui.cpp:344
msgid "Composed Unicode Dump"
msgstr ""
#: res/zrcolagui.cpp:402 zrcolagui.cpp:402
#: res/zrcolagui.cpp:396 zrcolagui.cpp:398
msgid "Select category to display"
msgstr ""
#: res/zrcolagui.cpp:436 zrcolagui.cpp:436
#: res/zrcolagui.cpp:430 zrcolagui.cpp:432
msgid "Show &All"
msgstr ""
#: res/zrcolagui.cpp:437 zrcolagui.cpp:437
#: res/zrcolagui.cpp:431 zrcolagui.cpp:433
msgid "Toggle display of less frequent characters"
msgstr ""
#: res/zrcolagui.cpp:477 zrcolagui.cpp:477
#: res/zrcolagui.cpp:471 zrcolagui.cpp:473
msgid "&Browse"
msgstr ""
#: res/zrcolagui.cpp:484 zrcolagui.cpp:484
msgid "Full or partial terms from Unicode character description (in English) to search for"
#: res/zrcolagui.cpp:478 zrcolagui.cpp:480
msgid ""
"Full or partial terms from Unicode character description (in English) to "
"search for"
msgstr ""
#: res/zrcolagui.cpp:488 zrcolagui.cpp:488
#: res/zrcolagui.cpp:482 zrcolagui.cpp:484
msgid "Search Options"
msgstr ""
#: res/zrcolagui.cpp:489 zrcolagui.cpp:489
#: res/zrcolagui.cpp:483 zrcolagui.cpp:485
msgid "Shows/hides additional search options"
msgstr ""
#: res/zrcolagui.cpp:501 zrcolagui.cpp:501
#: res/zrcolagui.cpp:495 zrcolagui.cpp:497
msgid "List of Unicode character categories to search in"
msgstr ""
#: res/zrcolagui.cpp:508 zrcolagui.cpp:508
#: res/zrcolagui.cpp:502 zrcolagui.cpp:504
msgid "All"
msgstr ""
#: res/zrcolagui.cpp:509 zrcolagui.cpp:509
#: res/zrcolagui.cpp:503 zrcolagui.cpp:505
msgid "Select all categories"
msgstr ""
#: res/zrcolagui.cpp:513 zrcolagui.cpp:513
#: res/zrcolagui.cpp:507 zrcolagui.cpp:509
msgid "None"
msgstr ""
#: res/zrcolagui.cpp:514 zrcolagui.cpp:514
#: res/zrcolagui.cpp:508 zrcolagui.cpp:510
msgid "Clear category selection"
msgstr ""
#: res/zrcolagui.cpp:518 zrcolagui.cpp:518
#: res/zrcolagui.cpp:512 zrcolagui.cpp:514
msgid "Invert"
msgstr ""
#: res/zrcolagui.cpp:519 zrcolagui.cpp:519
#: res/zrcolagui.cpp:513 zrcolagui.cpp:515
msgid "Invert category selection"
msgstr ""
#: res/zrcolagui.cpp:558 zrcolagui.cpp:558
#: res/zrcolagui.cpp:552 zrcolagui.cpp:554
msgid "Character search results"
msgstr ""
#: res/zrcolagui.cpp:568 zrcolagui.cpp:568
#: res/zrcolagui.cpp:562 zrcolagui.cpp:564
msgid "Re&cently Used"
msgstr ""
#: res/zrcolagui.cpp:596 zrcolagui.cpp:596
#: res/zrcolagui.cpp:590 zrcolagui.cpp:592
msgid "List of recently inserted characters"
msgstr ""
#: res/zrcolagui.cpp:610 zrcolagui.cpp:610
#: res/zrcolagui.cpp:604 zrcolagui.cpp:606
msgid "Preview"
msgstr ""
#: res/zrcolagui.cpp:615 zrcolagui.cpp:615
#: res/zrcolagui.cpp:609 zrcolagui.cpp:611
msgid "U+"
msgstr "U+"
#: res/zrcolagui.cpp:620 zrcolagui.cpp:620
#: res/zrcolagui.cpp:614 zrcolagui.cpp:616
msgid "Unicode hexadecimal code"
msgstr ""
#: res/zrcolagui.cpp:625 zrcolagui.cpp:625
#: res/zrcolagui.cpp:619 zrcolagui.cpp:621
msgid "Keyboard shortcut in Composer window"
msgstr ""
#: res/zrcolagui.cpp:660 zrcolagui.cpp:660
#: res/zrcolagui.cpp:654 zrcolagui.cpp:656
msgid "Character preview"
msgstr ""
#: res/zrcolagui.cpp:665 zrcolagui.cpp:665
#: res/zrcolagui.cpp:659 zrcolagui.cpp:661
msgid "Unicode character description"
msgstr ""
#: res/zrcolagui.cpp:670 zrcolagui.cpp:670
#: res/zrcolagui.cpp:664 zrcolagui.cpp:666
msgid "Character tags"
msgstr ""
#: res/zrcolagui.cpp:675 zrcolagui.cpp:675
#: res/zrcolagui.cpp:669 zrcolagui.cpp:671
msgid "Unicode character category"
msgstr ""
#: res/zrcolagui.cpp:682 zrcolagui.cpp:682
#: res/zrcolagui.cpp:676 zrcolagui.cpp:678
msgid "« Back"
msgstr ""
#: res/zrcolagui.cpp:684 zrcolagui.cpp:684
#: res/zrcolagui.cpp:678 zrcolagui.cpp:680
msgid "To previously viewed character"
msgstr ""
#: res/zrcolagui.cpp:688 zrcolagui.cpp:688
#: res/zrcolagui.cpp:682 zrcolagui.cpp:684
msgid "Forward »"
msgstr ""
#: res/zrcolagui.cpp:690 zrcolagui.cpp:690
#: res/zrcolagui.cpp:684 zrcolagui.cpp:686
msgid "To following viewed character"
msgstr ""
#: res/zrcolagui.cpp:701 zrcolagui.cpp:701
#: res/zrcolagui.cpp:695 zrcolagui.cpp:697
msgid "Re&lated"
msgstr ""
#: res/zrcolagui.cpp:728 zrcolagui.cpp:728
#: res/zrcolagui.cpp:722 zrcolagui.cpp:724
msgid "List of related characters"
msgstr ""
#: res/zrcolagui.cpp:747 zrcolagui.cpp:747
msgid "&Insert"
msgstr ""
#: res/zrcolagui.cpp:751 zrcolagui.cpp:751
msgid "Insert character into decomposed text"
msgstr ""
#: res/zrcolagui.cpp:824 zrcolagui.cpp:827
#: res/zrcolagui.cpp:811 zrcolagui.cpp:816
msgid ""
"Some character native to specific language you are working with should not decompose to primitives.\n"
"For optimal decomposition you should set the language correctly."
msgstr ""
#: res/zrcolagui.cpp:828 zrcolagui.cpp:831
#: res/zrcolagui.cpp:815 zrcolagui.cpp:820
msgid "Select language &automatically according to selected keyboard"
msgstr ""
#: res/zrcolagui.cpp:831 zrcolagui.cpp:834
#: res/zrcolagui.cpp:818 zrcolagui.cpp:823
msgid "&Manually select the language from the list below:"
msgstr ""
#: res/zrcolagui.cpp:842 zrcolagui.cpp:845
#: res/zrcolagui.cpp:829 zrcolagui.cpp:834
msgid "Text Language"
msgstr ""
#: res/zrcolagui.cpp:847 zrcolagui.cpp:850
#: res/zrcolagui.cpp:834 zrcolagui.cpp:839
msgid ""
"ZRCola can be launched every time you log in to your computer.\n"
"It will be available on the system tray and via registered shortcuts Win+F5 and Win+F6."
msgstr ""
#: res/zrcolagui.cpp:851 zrcolagui.cpp:854
#: res/zrcolagui.cpp:838 zrcolagui.cpp:843
msgid "Start ZRCola &automatically on logon"
msgstr ""
#: res/zrcolagui.cpp:857 zrcolagui.cpp:860
#: res/zrcolagui.cpp:844 zrcolagui.cpp:849
msgid "Startup"
msgstr ""
#: res/zrcolagui.cpp:924 res/zrcolagui.h:114 zrcolaapp.cpp:74 zrcolafrm.cpp:129
#: zrcolagui.cpp:927 zrcolagui.h:114
#: MSIBuild/en_US.ARM64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Shortcut-2.idtx:4
#: res/zrcolagui.cpp:911 res/zrcolagui.h:113 zrcolaapp.cpp:72
#: zrcolafrm.cpp:123 zrcolagui.cpp:916 zrcolagui.h:113
#: MSIBuild/en_US.Win32.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
msgid "ZRCola"
msgstr "ZRCola"
#: res/zrcolagui.cpp:935 zrcolagui.cpp:938
#: res/zrcolagui.cpp:922 zrcolagui.cpp:927
msgid ""
"Program and Website Editor: Janoš Ježovnik\n"
"Development: Amebis, d. o. o., Kamnik\n"
@@ -452,107 +434,114 @@ msgid ""
"Development and maintenance of the original program (20042015): Peter Weiss"
msgstr ""
#: res/zrcolagui.cpp:943 zrcolagui.cpp:946
#: res/zrcolagui.cpp:930 zrcolagui.cpp:935
msgid "zrcola.zrc-sazu.si"
msgstr "zrcola.zrc-sazu.si"
#: res/zrcolagui.cpp:949 zrcolagui.cpp:952
msgid "Texts made using ZRCola have to include in a footnote or some other appropriate part of the publication the note below:"
msgstr ""
#: res/zrcolagui.cpp:953 zrcolagui.cpp:956
msgid "This text was written using the ZRCola input system (http://zrcola.zrc-sazu.si), developed at the Science and Research Centre of SAZU in Ljubljana (http://www.zrc-sazu.si) by Peter Weiss."
#: res/zrcolagui.cpp:936 zrcolagui.cpp:941
msgid ""
"Texts made using ZRCola have to include in a footnote or some other "
"appropriate part of the publication the note below:"
msgstr ""
#: res/zrcolagui.cpp:994 zrcolagui.cpp:997
#: res/zrcolagui.cpp:940 zrcolagui.cpp:945
msgid ""
"This text was written using the ZRCola input system (http://zrcola.zrc-"
"sazu.si), developed at the Science and Research Centre of SAZU in Ljubljana "
"(http://www.zrc-sazu.si) by Peter Weiss."
msgstr ""
#: res/zrcolagui.cpp:981 zrcolagui.cpp:986
msgid "Log"
msgstr ""
#: res/zrcolagui.cpp:1010 zrcolagui.cpp:1013
#: res/zrcolagui.cpp:997 zrcolagui.cpp:1002
msgid "Quit and &Update..."
msgstr ""
#: res/zrcolagui.cpp:1012 zrcolagui.cpp:1015
#: res/zrcolagui.cpp:999 zrcolagui.cpp:1004
msgid "Exit this program and launch product update"
msgstr ""
#: res/zrcolagui.cpp:1016 zrcolagui.cpp:1019
#: res/zrcolagui.cpp:1003 zrcolagui.cpp:1008
msgid "&Close"
msgstr ""
#: res/zrcolagui.cpp:1017 zrcolagui.cpp:1020
#: res/zrcolagui.cpp:1004 zrcolagui.cpp:1009
msgid "Close this window"
msgstr ""
#: res/zrcolagui.cpp:1054 zrcolachrreq.cpp:49 zrcolagui.cpp:1057
#: res/zrcolagui.cpp:1041 zrcolachrreq.cpp:49 zrcolagui.cpp:1046
msgid "Character"
msgstr ""
#: res/zrcolagui.cpp:1056 zrcolagui.cpp:1059
#: res/zrcolagui.cpp:1043 zrcolagui.cpp:1048
msgid "Enter the &character you would like to request:"
msgstr ""
#: res/zrcolagui.cpp:1070 zrcolagui.cpp:1073
#: res/zrcolagui.cpp:1057 zrcolagui.cpp:1062
msgid "Decomposed character to request"
msgstr ""
#: res/zrcolagui.cpp:1074 zrcolagui.cpp:1077
#: res/zrcolagui.cpp:1061 zrcolagui.cpp:1066
msgid ""
"Please, use the decomposed form.\n"
"You can use ZRCola keyboard shortcuts to enter the character or Copy&&Paste it from the Decomposed window."
msgstr ""
#: res/zrcolagui.cpp:1082 zrcolachrreq.cpp:58 zrcolagui.cpp:1085
#: res/zrcolagui.cpp:1069 zrcolachrreq.cpp:58 zrcolagui.cpp:1074
msgid "Context"
msgstr ""
#: res/zrcolagui.cpp:1084 zrcolagui.cpp:1087
msgid "The &context, examples or description why and where the character is required:"
#: res/zrcolagui.cpp:1071 zrcolagui.cpp:1076
msgid ""
"The &context, examples or description why and where the character is "
"required:"
msgstr ""
#: res/zrcolagui.cpp:1090 zrcolagui.cpp:1093
#: res/zrcolagui.cpp:1077 zrcolagui.cpp:1082
msgid "Additional notes for character request"
msgstr ""
#: res/zrcolagui.cpp:1097 zrcolagui.cpp:1100
#: res/zrcolagui.cpp:1084 zrcolagui.cpp:1089
msgid ""
"After clicking OK button, your e-mail application should open allowing you to submit the new character request to ZRCola Editor.\n"
"Your e-mail application might not display all the characters correctly, but the Editor will be able to read them correctly anyway."
msgstr ""
#: res/zrcolagui.cpp:1139 zrcolagui.cpp:1142
#: res/zrcolagui.cpp:1126 zrcolagui.cpp:1131
msgid "Translation"
msgstr ""
#: res/zrcolagui.cpp:1141 zrcolagui.cpp:1144
#: res/zrcolagui.cpp:1128 zrcolagui.cpp:1133
msgid ""
"ZRCola offers multiple text translations that can be arranged in a sequence.\n"
"Please select desired translations and the order they are applied."
msgstr ""
#: res/zrcolagui.cpp:1151 zrcolagui.cpp:1154
#: res/zrcolagui.cpp:1138 zrcolagui.cpp:1143
msgid "A&vailable:"
msgstr ""
#: res/zrcolagui.cpp:1166 zrcolagui.cpp:1169
msgid ""
msgstr ""
#: res/zrcolagui.cpp:1153 zrcolagui.cpp:1158
msgid ">"
msgstr ">"
#: res/zrcolagui.cpp:1169 zrcolagui.cpp:1172
msgid ""
msgstr ""
#: res/zrcolagui.cpp:1156 zrcolagui.cpp:1161
msgid "<"
msgstr "<"
#: res/zrcolagui.cpp:1178 zrcolagui.cpp:1181
#: res/zrcolagui.cpp:1165 zrcolagui.cpp:1170
msgid "&Selected:"
msgstr ""
#: res/zrcolagui.cpp:1196 zrcolagui.cpp:1199
msgid ""
msgstr ""
#: res/zrcolagui.cpp:1183 zrcolagui.cpp:1188
msgid "Up"
msgstr ""
#: res/zrcolagui.cpp:1199 zrcolagui.cpp:1202
msgid ""
msgstr ""
#: res/zrcolagui.cpp:1186 zrcolagui.cpp:1191
msgid "Down"
msgstr ""
#: res/zrcolagui.h:255 zrcolagui.h:255
msgid "Character Search"
@@ -566,7 +555,7 @@ msgstr ""
msgid "About ZRCola"
msgstr ""
#: res/zrcolagui.h:342 zrcolagui.h:342 zrcolaupdater.cpp:95
#: res/zrcolagui.h:342 zrcolagui.h:342 zrcolaupdater.cpp:94
msgid "Product Update"
msgstr ""
@@ -596,48 +585,58 @@ msgstr "Fehler bei der Validierung"
msgid "Invalid character in Unicode found: %c"
msgstr ""
#: zrcolachrslct.cpp:215 zrcolachrslct.cpp:391 zrcolachrslct.cpp:888
#: zrcolachrslct.cpp:214 zrcolachrslct.cpp:388 zrcolachrslct.cpp:867
msgid "▸ Search Options"
msgstr ""
#: zrcolachrslct.cpp:329
#: zrcolachrslct.cpp:326
msgid ", "
msgstr ", "
msgstr ""
#: zrcolachrslct.cpp:394 zrcolachrslct.cpp:885
#: zrcolachrslct.cpp:391 zrcolachrslct.cpp:864
msgid "▾ Search Options"
msgstr ""
#: zrcolafrm.cpp:95
#: zrcolafrm.cpp:89
msgid "No Translation"
msgstr ""
#: zrcolafrm.cpp:108
#: zrcolafrm.cpp:102
msgid "Custom Translation..."
msgstr ""
#: zrcolafrm.cpp:225
msgid "ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality will not be available."
#: zrcolafrm.cpp:206
msgid ""
"ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality "
"will not be available."
msgstr ""
#: zrcolafrm.cpp:225 zrcolafrm.cpp:227
#: zrcolafrm.cpp:206 zrcolafrm.cpp:208
msgid "Warning"
msgstr ""
#: zrcolafrm.cpp:227
msgid "ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality will not be available."
#: zrcolafrm.cpp:208
msgid ""
"ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality "
"will not be available."
msgstr ""
#: zrcolafrm.cpp:499
#: zrcolafrm.cpp:472
msgid "http://zrcola.zrc-sazu.si/en/info/instructions/"
msgstr "http://zrcola.zrc-sazu.si/de/info/instructions/"
#: zrcolafrm.cpp:524
msgid "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf"
msgstr "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf"
#: zrcolafrm.cpp:496
msgid ""
"http://zrcola.zrc-sazu.si/wp-"
"content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf"
msgstr ""
"http://zrcola.zrc-sazu.si/wp-"
"content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf"
#: zrcolakeyhndlr.cpp:44
msgid "INS key is pressed. Type the Unicode code of desired character now (up to four hexadecimal digits: 0-9, A-F), then release INS."
msgid ""
"INS key is pressed. Type the Unicode code of desired character now (up to "
"four hexadecimal digits: 0-9, A-F), then release INS."
msgstr ""
#: zrcolasettings.cpp:87
@@ -649,107 +648,130 @@ msgstr ""
msgid "Unknown translation (%u)"
msgstr ""
#: zrcolaupdater.cpp:95
#: zrcolaupdater.cpp:94
msgid ""
"This program will now close and the upgrade will be launched.\n"
"Are you sure?"
msgstr ""
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:10
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:15
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:4
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:10
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:15
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:10
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:15
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:10
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:15
#: MSIBuild/en_US.x64.Release.Control-2.idtx:4
#: MSIBuild/en_US.x64.Release.Control-2.idtx:10
#: MSIBuild/en_US.x64.Release.Control-2.idtx:15
msgid "binUIHeader.bmp"
msgstr "binUIHeader.bmp"
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:5
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:5
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:5
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:5
#: MSIBuild/en_US.x64.Release.Control-2.idtx:5
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Starting"
msgstr ""
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:6
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:6
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:6
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:6
#: MSIBuild/en_US.x64.Release.Control-2.idtx:6
msgid "bintutorial1.bmp"
msgstr "bintutorial1.bmp"
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:7
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:7
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:7
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:7
#: MSIBuild/en_US.x64.Release.Control-2.idtx:7
msgid "When configured, ZRCola starts at system startup and runs in the background. If needed, it can be brought up by pressing the combination Win+F5."
msgid ""
"When configured, ZRCola starts at system startup and runs in the background."
" If needed, it can be brought up by pressing the combination Win+F5."
msgstr ""
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:8
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:8
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:8
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:8
#: MSIBuild/en_US.x64.Release.Control-2.idtx:8
msgid "IMPORTANT: Upon pressing the combination Win+F5 the program memorises the location of the cursor in the text. If ZRCola is brought to the foreground without using the aforementioned combination of keys, the program won't know where to insert the special characters!"
msgid ""
"IMPORTANT: Upon pressing the combination Win+F5 the program memorises the "
"location of the cursor in the text. If ZRCola is brought to the foreground "
"without using the aforementioned combination of keys, the program won't know"
" where to insert the special characters!"
msgstr ""
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:9
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:14
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:19
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:9
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:14
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:19
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:9
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:14
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:19
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:9
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:14
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:19
#: MSIBuild/en_US.x64.Release.Control-2.idtx:9
#: MSIBuild/en_US.x64.Release.Control-2.idtx:14
#: MSIBuild/en_US.x64.Release.Control-2.idtx:19
msgid "&Continue"
msgstr ""
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:11
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:11
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:11
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:11
#: MSIBuild/en_US.x64.Release.Control-2.idtx:11
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Composition"
msgstr ""
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:12
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:12
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:12
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:12
#: MSIBuild/en_US.x64.Release.Control-2.idtx:12
msgid "bintutorial2.bmp"
msgstr "bintutorial2.bmp"
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:13
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:13
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:13
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:13
#: MSIBuild/en_US.x64.Release.Control-2.idtx:13
msgid "The string of basic and substitute characters is entered into the upper input window of the program. In the window below the resulted special characters are displayed. To insert them in the text, the F5 key is used."
msgid ""
"The string of basic and substitute characters is entered into the upper "
"input window of the program. In the window below the resulted special "
"characters are displayed. To insert them in the text, the F5 key is used."
msgstr ""
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:16
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:16
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:16
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:16
#: MSIBuild/en_US.x64.Release.Control-2.idtx:16
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Entering Characters"
msgstr ""
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:17
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:17
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:17
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:17
#: MSIBuild/en_US.x64.Release.Control-2.idtx:17
msgid "bintutorial3.bmp"
msgstr "bintutorial3.bmp"
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:18
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:18
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:18
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:18
#: MSIBuild/en_US.x64.Release.Control-2.idtx:18
msgid "Characters can be entered using keyboard shortcuts, the character catalogue (F4) or the character finding tool (F8)."
msgid ""
"Characters can be entered using keyboard shortcuts, the character catalogue "
"(F4) or the character finding tool (F8)."
msgstr ""
#: MSIBuild/en_US.ARM64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Shortcut-2.idtx:4
#: MSIBuild/en_US.Win32.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
msgid "Input system for linguistic use"
msgstr ""
#~ msgid ">"
#~ msgstr ">"
#~ msgid "<"
#~ msgstr "<"

View File

@@ -1,24 +1,23 @@
# Translators:
# Simon Rozman <simon@rozman.si>, 2018
# Janoš Ježovnik, 2019
#
# Janoš Ježovnik, 2018
msgid ""
msgstr ""
"Project-Id-Version: ZRCola\n"
"POT-Creation-Date: 2021-11-19 14:27+0100\n"
"PO-Revision-Date: 2021-11-19 14:27+0100\n"
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
"POT-Creation-Date: 2018-09-19 09:00+0200\n"
"PO-Revision-Date: 2018-09-19 09:09+0200\n"
"Last-Translator: Janoš Ježovnik, 2018\n"
"Language-Team: Russian (Russia) (https://www.transifex.com/amebis/teams/91592/ru_RU/)\n"
"Language: ru_RU\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ru_RU\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
"X-Generator: Poedit 2.4.2\n"
"X-Generator: Poedit 2.1.1\n"
"X-Poedit-Basepath: ..\n"
"X-Poedit-KeywordsList: _\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-SearchPath-0: .\n"
"X-Poedit-SourceCharset: UTF-8\n"
#: res/zrcolagui.cpp:42 zrcolagui.cpp:42
msgid "E&xit"
@@ -46,75 +45,68 @@ msgstr "Поиск &знака ..."
#: res/zrcolagui.cpp:84 res/zrcolagui.cpp:213 zrcolagui.cpp:84
#: zrcolagui.cpp:213
msgid "Toggle character search to select character to insert into text"
msgstr "Переключить поиск знаков для вставки выбранного знака в текст"
msgid "Display character search to select character to insert into text"
msgstr "Показать браузер знаков для вставления выбранного знака"
#: res/zrcolagui.cpp:90 zrcolagui.cpp:90
#: res/zrcolagui.cpp:95 zrcolagui.cpp:95
msgid "&Send Composed"
msgstr "&Послать составленное"
#: res/zrcolagui.cpp:90 res/zrcolagui.cpp:215 zrcolagui.cpp:90
#: res/zrcolagui.cpp:95 res/zrcolagui.cpp:215 zrcolagui.cpp:95
#: zrcolagui.cpp:215
msgid "Send composed text to source window"
msgstr "Послать составленный текст в исходное окно"
#: res/zrcolagui.cpp:99 zrcolagui.cpp:99
#: res/zrcolagui.cpp:104 zrcolagui.cpp:104
msgid "Copy Composed and &Return"
msgstr "Копировать составленное и &возвратиться"
#: res/zrcolagui.cpp:99 zrcolagui.cpp:99
#: res/zrcolagui.cpp:104 zrcolagui.cpp:104
msgid "Copy composed text to clipboard and return focus to source window"
msgstr "Копировать составленный текст в буфер обмена и возвратить фокус в исходное окно"
msgstr ""
"Копировать составленный текст в буфер обмена и возвратить фокус в исходное "
"окно"
#: res/zrcolagui.cpp:108 zrcolagui.cpp:108
#: res/zrcolagui.cpp:113 zrcolagui.cpp:113
msgid "Send &Decomposed"
msgstr "Послать &разобранное"
#: res/zrcolagui.cpp:108 res/zrcolagui.cpp:217 zrcolagui.cpp:108
#: res/zrcolagui.cpp:113 res/zrcolagui.cpp:217 zrcolagui.cpp:113
#: zrcolagui.cpp:217
msgid "Send decomposed text to source window"
msgstr "Послать разобранный текст в исходное окно"
#: res/zrcolagui.cpp:117 zrcolagui.cpp:117
#: res/zrcolagui.cpp:122 zrcolagui.cpp:122
msgid "Copy Decomposed and Re&turn"
msgstr "Копировать разобранное и возв&ратиться"
#: res/zrcolagui.cpp:117 zrcolagui.cpp:117
#: res/zrcolagui.cpp:122 zrcolagui.cpp:122
msgid "Copy decomposed text to clipboard and return focus to source window"
msgstr "Копировать разобранный текст в буфер обмена и возвратить фокус в исходное окно"
msgstr ""
"Копировать разобранный текст в буфер обмена и возвратить фокус в исходное "
"окно"
#: res/zrcolagui.cpp:126 zrcolagui.cpp:126
#: res/zrcolagui.cpp:131 zrcolagui.cpp:131
msgid "Abort (De)composition"
msgstr "Прервать составление/разборку"
#: res/zrcolagui.cpp:126 zrcolagui.cpp:126
#: res/zrcolagui.cpp:131 zrcolagui.cpp:131
msgid "Abort composition and return focus to source window"
msgstr "Прервать составление и возвратить фокус в исходное окно"
#: res/zrcolagui.cpp:136 zrcolagui.cpp:136
#: res/zrcolagui.cpp:141 zrcolagui.cpp:141
msgid "&ZRCola (De)composition"
msgstr "Составление/разборка &ZRCola "
#: res/zrcolagui.cpp:136 res/zrcolagui.cpp:221 zrcolagui.cpp:136
#: res/zrcolagui.cpp:141 res/zrcolagui.cpp:219 zrcolagui.cpp:141
#: zrcolagui.cpp:221
msgid "Toggle ZRCola character (De)composition"
msgstr "Переключить составление/разборку ZRCola"
#: res/zrcolagui.cpp:140 zrcolagui.cpp:140
#: res/zrcolagui.cpp:145 zrcolagui.cpp:145
msgid "Tra&nslation"
msgstr "Тра&нслитерация"
#: res/zrcolagui.cpp:145 zrcolagui.cpp:145
#, fuzzy
#| msgid "Warning"
msgid "&PUA Warning"
msgstr "Предупреждение"
#: res/zrcolagui.cpp:145 res/zrcolagui.cpp:229 zrcolagui.cpp:145
#: zrcolagui.cpp:229
msgid "Highlight Private Use Area Characters"
msgstr ""
#: res/zrcolagui.cpp:151 zrcolagui.cpp:151
msgid "&Settings..."
msgstr "&Настройки ..."
@@ -235,177 +227,166 @@ msgstr "Послать составленное (F5)"
msgid "Send Decomposed"
msgstr "Послать разобранное (F6)"
#: res/zrcolagui.cpp:221 zrcolagui.cpp:221
#: res/zrcolagui.cpp:219 zrcolagui.cpp:221
msgid "ZRCola (De)composition"
msgstr "ZRCola составление/разборка"
#: res/zrcolagui.cpp:229 zrcolagui.cpp:229
#, fuzzy
#| msgid "Warning"
msgid "PUA Warning"
msgstr "Предупреждение"
#: res/zrcolagui.cpp:232 zrcolagui.cpp:232
#: res/zrcolagui.cpp:226 zrcolagui.cpp:228
msgid "Compose"
msgstr "Составить"
#: res/zrcolagui.cpp:236 zrcolagui.cpp:236
#: res/zrcolagui.cpp:230 zrcolagui.cpp:232
msgid "Character Catalog"
msgstr "Список знаков"
#: res/zrcolagui.cpp:240 zrcolagui.cpp:240
#: res/zrcolagui.cpp:234 zrcolagui.cpp:236
msgid "(De)Composer"
msgstr "(Де)Композитор"
#: res/zrcolagui.cpp:281 zrcolagui.cpp:281
#: res/zrcolagui.cpp:275 zrcolagui.cpp:277
msgid "Decomposed Text"
msgstr "Разобранний текст"
#: res/zrcolagui.cpp:301 zrcolagui.cpp:301
#: res/zrcolagui.cpp:295 zrcolagui.cpp:297
msgid "Decomposed Unicode Dump"
msgstr "Дамп разобранного Юнукода"
#: res/zrcolagui.cpp:328 zrcolagui.cpp:328
#: res/zrcolagui.cpp:322 zrcolagui.cpp:324
msgid "Composed Text"
msgstr "Составленный текст"
#: res/zrcolagui.cpp:348 zrcolagui.cpp:348
#: res/zrcolagui.cpp:342 zrcolagui.cpp:344
msgid "Composed Unicode Dump"
msgstr "Дамп составленного Юникода"
#: res/zrcolagui.cpp:402 zrcolagui.cpp:402
#: res/zrcolagui.cpp:396 zrcolagui.cpp:398
msgid "Select category to display"
msgstr "Выделить категории для отображения"
#: res/zrcolagui.cpp:436 zrcolagui.cpp:436
#: res/zrcolagui.cpp:430 zrcolagui.cpp:432
msgid "Show &All"
msgstr "Показать &все"
#: res/zrcolagui.cpp:437 zrcolagui.cpp:437
#: res/zrcolagui.cpp:431 zrcolagui.cpp:433
msgid "Toggle display of less frequent characters"
msgstr "Переключить отображение редко использованных знаков"
#: res/zrcolagui.cpp:477 zrcolagui.cpp:477
#: res/zrcolagui.cpp:471 zrcolagui.cpp:473
msgid "&Browse"
msgstr "&Обзор"
#: res/zrcolagui.cpp:484 zrcolagui.cpp:484
msgid "Full or partial terms from Unicode character description (in English) to search for"
msgstr "Полное либо частичное описание знака Юникод (на английском) для поиска"
#: res/zrcolagui.cpp:478 zrcolagui.cpp:480
msgid ""
"Full or partial terms from Unicode character description (in English) to "
"search for"
msgstr ""
"Полное либо частичное описание знака Юникод (на английском) для поиска"
#: res/zrcolagui.cpp:488 zrcolagui.cpp:488
#: res/zrcolagui.cpp:482 zrcolagui.cpp:484
msgid "Search Options"
msgstr "Опции поиска"
#: res/zrcolagui.cpp:489 zrcolagui.cpp:489
#: res/zrcolagui.cpp:483 zrcolagui.cpp:485
msgid "Shows/hides additional search options"
msgstr "Показать/скрыть дополнительные опции поиска"
#: res/zrcolagui.cpp:501 zrcolagui.cpp:501
#: res/zrcolagui.cpp:495 zrcolagui.cpp:497
msgid "List of Unicode character categories to search in"
msgstr "Список категории Юникод для проведения поиска"
#: res/zrcolagui.cpp:508 zrcolagui.cpp:508
#: res/zrcolagui.cpp:502 zrcolagui.cpp:504
msgid "All"
msgstr "Все"
#: res/zrcolagui.cpp:509 zrcolagui.cpp:509
#: res/zrcolagui.cpp:503 zrcolagui.cpp:505
msgid "Select all categories"
msgstr "Выбрать все категории"
#: res/zrcolagui.cpp:513 zrcolagui.cpp:513
#: res/zrcolagui.cpp:507 zrcolagui.cpp:509
msgid "None"
msgstr "Ничего"
#: res/zrcolagui.cpp:514 zrcolagui.cpp:514
#: res/zrcolagui.cpp:508 zrcolagui.cpp:510
msgid "Clear category selection"
msgstr "Очистить выбор категории"
#: res/zrcolagui.cpp:518 zrcolagui.cpp:518
#: res/zrcolagui.cpp:512 zrcolagui.cpp:514
msgid "Invert"
msgstr "Обратить"
#: res/zrcolagui.cpp:519 zrcolagui.cpp:519
#: res/zrcolagui.cpp:513 zrcolagui.cpp:515
msgid "Invert category selection"
msgstr "Обратить выбор категории"
#: res/zrcolagui.cpp:558 zrcolagui.cpp:558
#: res/zrcolagui.cpp:552 zrcolagui.cpp:554
msgid "Character search results"
msgstr "Результаты поиска знаков"
#: res/zrcolagui.cpp:568 zrcolagui.cpp:568
#: res/zrcolagui.cpp:562 zrcolagui.cpp:564
msgid "Re&cently Used"
msgstr "&Недавно использованное"
#: res/zrcolagui.cpp:596 zrcolagui.cpp:596
#: res/zrcolagui.cpp:590 zrcolagui.cpp:592
msgid "List of recently inserted characters"
msgstr "Список недавно вставленных знаков"
#: res/zrcolagui.cpp:610 zrcolagui.cpp:610
#: res/zrcolagui.cpp:604 zrcolagui.cpp:606
msgid "Preview"
msgstr "Просмотр"
#: res/zrcolagui.cpp:615 zrcolagui.cpp:615
#: res/zrcolagui.cpp:609 zrcolagui.cpp:611
msgid "U+"
msgstr "U+"
#: res/zrcolagui.cpp:620 zrcolagui.cpp:620
#: res/zrcolagui.cpp:614 zrcolagui.cpp:616
msgid "Unicode hexadecimal code"
msgstr "Шестнадцатеричный код Юникод"
#: res/zrcolagui.cpp:625 zrcolagui.cpp:625
#: res/zrcolagui.cpp:619 zrcolagui.cpp:621
msgid "Keyboard shortcut in Composer window"
msgstr "Сочетание клавиш в окне композитора"
#: res/zrcolagui.cpp:660 zrcolagui.cpp:660
#: res/zrcolagui.cpp:654 zrcolagui.cpp:656
msgid "Character preview"
msgstr "Просмотр знака"
#: res/zrcolagui.cpp:665 zrcolagui.cpp:665
#: res/zrcolagui.cpp:659 zrcolagui.cpp:661
msgid "Unicode character description"
msgstr "Описание знака Юникод"
#: res/zrcolagui.cpp:670 zrcolagui.cpp:670
#: res/zrcolagui.cpp:664 zrcolagui.cpp:666
msgid "Character tags"
msgstr "Ключевые слова"
#: res/zrcolagui.cpp:675 zrcolagui.cpp:675
#: res/zrcolagui.cpp:669 zrcolagui.cpp:671
msgid "Unicode character category"
msgstr "Категория знака Юникод"
#: res/zrcolagui.cpp:682 zrcolagui.cpp:682
#: res/zrcolagui.cpp:676 zrcolagui.cpp:678
msgid "« Back"
msgstr "« Назад"
#: res/zrcolagui.cpp:684 zrcolagui.cpp:684
#: res/zrcolagui.cpp:678 zrcolagui.cpp:680
msgid "To previously viewed character"
msgstr "К предыдущему знаку"
#: res/zrcolagui.cpp:688 zrcolagui.cpp:688
#: res/zrcolagui.cpp:682 zrcolagui.cpp:684
msgid "Forward »"
msgstr "Далее »"
#: res/zrcolagui.cpp:690 zrcolagui.cpp:690
#: res/zrcolagui.cpp:684 zrcolagui.cpp:686
msgid "To following viewed character"
msgstr "К следующему знаку"
#: res/zrcolagui.cpp:701 zrcolagui.cpp:701
#: res/zrcolagui.cpp:695 zrcolagui.cpp:697
msgid "Re&lated"
msgstr "&Связанное"
#: res/zrcolagui.cpp:728 zrcolagui.cpp:728
#: res/zrcolagui.cpp:722 zrcolagui.cpp:724
msgid "List of related characters"
msgstr "Список связанных знаков"
#: res/zrcolagui.cpp:747 zrcolagui.cpp:747
msgid "&Insert"
msgstr "&Вставить"
#: res/zrcolagui.cpp:751 zrcolagui.cpp:751
msgid "Insert character into decomposed text"
msgstr "Вставка знака в разобранный текст"
#: res/zrcolagui.cpp:824 zrcolagui.cpp:827
#: res/zrcolagui.cpp:811 zrcolagui.cpp:816
msgid ""
"Some character native to specific language you are working with should not decompose to primitives.\n"
"For optimal decomposition you should set the language correctly."
@@ -413,19 +394,19 @@ msgstr ""
"Некоторые знаки использованного языка нельзя разбирать.\n"
"Для оптимальной разборки вы должны настроить правильный язык."
#: res/zrcolagui.cpp:828 zrcolagui.cpp:831
#: res/zrcolagui.cpp:815 zrcolagui.cpp:820
msgid "Select language &automatically according to selected keyboard"
msgstr "&Автоматически установить язык на основе выбранной клавиатуры"
#: res/zrcolagui.cpp:831 zrcolagui.cpp:834
#: res/zrcolagui.cpp:818 zrcolagui.cpp:823
msgid "&Manually select the language from the list below:"
msgstr "&Вручную выбрать язык со списка:"
#: res/zrcolagui.cpp:842 zrcolagui.cpp:845
#: res/zrcolagui.cpp:829 zrcolagui.cpp:834
msgid "Text Language"
msgstr "Язык текста"
#: res/zrcolagui.cpp:847 zrcolagui.cpp:850
#: res/zrcolagui.cpp:834 zrcolagui.cpp:839
msgid ""
"ZRCola can be launched every time you log in to your computer.\n"
"It will be available on the system tray and via registered shortcuts Win+F5 and Win+F6."
@@ -433,26 +414,28 @@ msgstr ""
"Запуск системы ZRCola возможен при каждом запуске компьютера.\n"
"После запуска система ZRCola доступна на панели задач либо через нажатие сочетания клавиш Win+F5 и Win+F6."
#: res/zrcolagui.cpp:851 zrcolagui.cpp:854
#: res/zrcolagui.cpp:838 zrcolagui.cpp:843
msgid "Start ZRCola &automatically on logon"
msgstr "&Автоматически запустить систему ZRCola при запуске компьютера"
#: res/zrcolagui.cpp:857 zrcolagui.cpp:860
#: res/zrcolagui.cpp:844 zrcolagui.cpp:849
msgid "Startup"
msgstr "Запуск"
#: res/zrcolagui.cpp:924 res/zrcolagui.h:114 zrcolaapp.cpp:74 zrcolafrm.cpp:129
#: zrcolagui.cpp:927 zrcolagui.h:114
#: MSIBuild/en_US.ARM64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Shortcut-2.idtx:4
#: res/zrcolagui.cpp:911 res/zrcolagui.h:113 zrcolaapp.cpp:72
#: zrcolafrm.cpp:123 zrcolagui.cpp:916 zrcolagui.h:113
#: MSIBuild/en_US.Win32.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
msgid "ZRCola"
msgstr "ZRCola"
#: res/zrcolagui.cpp:935 zrcolagui.cpp:938
#: res/zrcolagui.cpp:922 zrcolagui.cpp:927
msgid ""
"Program and Website Editor: Janoš Ježovnik\n"
"Development: Amebis, d. o. o., Kamnik\n"
@@ -466,51 +449,61 @@ msgstr ""
"Перевод на русский язык: Домен Крвина (Domen Krvina), Силво Торкар (Silvo Torkar), Анастасия Плотникова\n"
"Разработка in техническая поддержка первоначальной программы (20042015): Петер Вейсс (Peter Weiss)"
#: res/zrcolagui.cpp:943 zrcolagui.cpp:946
#: res/zrcolagui.cpp:930 zrcolagui.cpp:935
msgid "zrcola.zrc-sazu.si"
msgstr "zrcola.zrc-sazu.si"
#: res/zrcolagui.cpp:949 zrcolagui.cpp:952
msgid "Texts made using ZRCola have to include in a footnote or some other appropriate part of the publication the note below:"
msgstr "Текст, созданный с помощью системы ZRCola, должен в примечании или другом соответствующем месте в публикации сопровождаться следующей записью:"
#: res/zrcolagui.cpp:936 zrcolagui.cpp:941
msgid ""
"Texts made using ZRCola have to include in a footnote or some other "
"appropriate part of the publication the note below:"
msgstr ""
"Текст, созданный с помощью системы ZRCola, должен в примечании или другом "
"соответствующем месте в публикации сопровождаться следующей записью:"
#: res/zrcolagui.cpp:953 zrcolagui.cpp:956
msgid "This text was written using the ZRCola input system (http://zrcola.zrc-sazu.si), developed at the Science and Research Centre of SAZU in Ljubljana (http://www.zrc-sazu.si) by Peter Weiss."
msgstr "Текст подготовлен с помощью системы ввода ZRCola (http://zrcola.zrc-sazu.si), разработанной в Научно-исследовательском центре Словенской академии наук и искусств в Любляне (http://www.zrc-sazu.si) Петром Вейссoм."
#: res/zrcolagui.cpp:940 zrcolagui.cpp:945
msgid ""
"This text was written using the ZRCola input system (http://zrcola.zrc-"
"sazu.si), developed at the Science and Research Centre of SAZU in Ljubljana "
"(http://www.zrc-sazu.si) by Peter Weiss."
msgstr ""
"Текст подготовлен с помощью системы ввода ZRCola (http://zrcola.zrc-"
"sazu.si), разработанной в Научно-исследовательском центре Словенской "
"академии наук и искусств в Любляне (http://www.zrc-sazu.si) Петром Вейссoм."
#: res/zrcolagui.cpp:994 zrcolagui.cpp:997
#: res/zrcolagui.cpp:981 zrcolagui.cpp:986
msgid "Log"
msgstr "Журнал"
#: res/zrcolagui.cpp:1010 zrcolagui.cpp:1013
#: res/zrcolagui.cpp:997 zrcolagui.cpp:1002
msgid "Quit and &Update..."
msgstr "Выйти и &обновить ..."
#: res/zrcolagui.cpp:1012 zrcolagui.cpp:1015
#: res/zrcolagui.cpp:999 zrcolagui.cpp:1004
msgid "Exit this program and launch product update"
msgstr "Выйти из программы и запустить обновление"
#: res/zrcolagui.cpp:1016 zrcolagui.cpp:1019
#: res/zrcolagui.cpp:1003 zrcolagui.cpp:1008
msgid "&Close"
msgstr "&Закрыть"
#: res/zrcolagui.cpp:1017 zrcolagui.cpp:1020
#: res/zrcolagui.cpp:1004 zrcolagui.cpp:1009
msgid "Close this window"
msgstr "Закрыть это окно"
#: res/zrcolagui.cpp:1054 zrcolachrreq.cpp:49 zrcolagui.cpp:1057
#: res/zrcolagui.cpp:1041 zrcolachrreq.cpp:49 zrcolagui.cpp:1046
msgid "Character"
msgstr "Знак"
#: res/zrcolagui.cpp:1056 zrcolagui.cpp:1059
#: res/zrcolagui.cpp:1043 zrcolagui.cpp:1048
msgid "Enter the &character you would like to request:"
msgstr "Ввести запрашиваемый &знак:"
#: res/zrcolagui.cpp:1070 zrcolagui.cpp:1073
#: res/zrcolagui.cpp:1057 zrcolagui.cpp:1062
msgid "Decomposed character to request"
msgstr "Запрашиваемый разобранный знак"
#: res/zrcolagui.cpp:1074 zrcolagui.cpp:1077
#: res/zrcolagui.cpp:1061 zrcolagui.cpp:1066
msgid ""
"Please, use the decomposed form.\n"
"You can use ZRCola keyboard shortcuts to enter the character or Copy&&Paste it from the Decomposed window."
@@ -518,19 +511,23 @@ msgstr ""
"Пожалуйста, используйте разобранный формат.\n"
"Для ввода запрашиваемого знака можно использовать сочетания клавиш системы ZRCola либо копировать и вставить знаки из окна для разборки."
#: res/zrcolagui.cpp:1082 zrcolachrreq.cpp:58 zrcolagui.cpp:1085
#: res/zrcolagui.cpp:1069 zrcolachrreq.cpp:58 zrcolagui.cpp:1074
msgid "Context"
msgstr "Контекст"
#: res/zrcolagui.cpp:1084 zrcolagui.cpp:1087
msgid "The &context, examples or description why and where the character is required:"
msgstr "&Контекст, примеры либо описание запрашиваемого знака или объяснение, зачем он нужен:"
#: res/zrcolagui.cpp:1071 zrcolagui.cpp:1076
msgid ""
"The &context, examples or description why and where the character is "
"required:"
msgstr ""
"&Контекст, примеры либо описание запрашиваемого знака или объяснение, зачем "
"он нужен:"
#: res/zrcolagui.cpp:1090 zrcolagui.cpp:1093
#: res/zrcolagui.cpp:1077 zrcolagui.cpp:1082
msgid "Additional notes for character request"
msgstr "Дополнительные примечания"
#: res/zrcolagui.cpp:1097 zrcolagui.cpp:1100
#: res/zrcolagui.cpp:1084 zrcolagui.cpp:1089
msgid ""
"After clicking OK button, your e-mail application should open allowing you to submit the new character request to ZRCola Editor.\n"
"Your e-mail application might not display all the characters correctly, but the Editor will be able to read them correctly anyway."
@@ -538,11 +535,11 @@ msgstr ""
"После нажатия на кнопку «OK» ваша почтовая программа должна открытся для отправки запроса нового знака администратору системы ZRCola.\n"
"Возможно, не все знаки будут отображены правильно, но все информации будут закодированны таким образом, что администратор сможет их правильно прочитать."
#: res/zrcolagui.cpp:1139 zrcolagui.cpp:1142
#: res/zrcolagui.cpp:1126 zrcolagui.cpp:1131
msgid "Translation"
msgstr "Преобразование"
#: res/zrcolagui.cpp:1141 zrcolagui.cpp:1144
#: res/zrcolagui.cpp:1128 zrcolagui.cpp:1133
msgid ""
"ZRCola offers multiple text translations that can be arranged in a sequence.\n"
"Please select desired translations and the order they are applied."
@@ -550,29 +547,29 @@ msgstr ""
"ZRCola предоставляет различные преобразования текста, последовательность которых можно свободно изменять.\n"
"Пожалуйста, выбрать желаемые преобразования и порядок их применения."
#: res/zrcolagui.cpp:1151 zrcolagui.cpp:1154
#: res/zrcolagui.cpp:1138 zrcolagui.cpp:1143
msgid "A&vailable:"
msgstr "&Доступное:"
#: res/zrcolagui.cpp:1166 zrcolagui.cpp:1169
msgid ""
msgstr ""
#: res/zrcolagui.cpp:1153 zrcolagui.cpp:1158
msgid ">"
msgstr ">"
#: res/zrcolagui.cpp:1169 zrcolagui.cpp:1172
msgid ""
msgstr ""
#: res/zrcolagui.cpp:1156 zrcolagui.cpp:1161
msgid "<"
msgstr "<"
#: res/zrcolagui.cpp:1178 zrcolagui.cpp:1181
#: res/zrcolagui.cpp:1165 zrcolagui.cpp:1170
msgid "&Selected:"
msgstr "&Выбранное:"
#: res/zrcolagui.cpp:1196 zrcolagui.cpp:1199
msgid ""
msgstr ""
#: res/zrcolagui.cpp:1183 zrcolagui.cpp:1188
msgid "Up"
msgstr "Up"
#: res/zrcolagui.cpp:1199 zrcolagui.cpp:1202
msgid ""
msgstr ""
#: res/zrcolagui.cpp:1186 zrcolagui.cpp:1191
msgid "Down"
msgstr "Down"
#: res/zrcolagui.h:255 zrcolagui.h:255
msgid "Character Search"
@@ -586,7 +583,7 @@ msgstr "Настройки"
msgid "About ZRCola"
msgstr "О системе ZRCola"
#: res/zrcolagui.h:342 zrcolagui.h:342 zrcolaupdater.cpp:95
#: res/zrcolagui.h:342 zrcolagui.h:342 zrcolaupdater.cpp:94
msgid "Product Update"
msgstr "Обновление продукта"
@@ -616,49 +613,65 @@ msgstr "Конфликт проверки"
msgid "Invalid character in Unicode found: %c"
msgstr "Недействительный знак в записи Unicode: %c"
#: zrcolachrslct.cpp:215 zrcolachrslct.cpp:391 zrcolachrslct.cpp:888
#: zrcolachrslct.cpp:214 zrcolachrslct.cpp:388 zrcolachrslct.cpp:867
msgid "▸ Search Options"
msgstr "▸ Опции поиска"
#: zrcolachrslct.cpp:329
#: zrcolachrslct.cpp:326
msgid ", "
msgstr ", "
#: zrcolachrslct.cpp:394 zrcolachrslct.cpp:885
#: zrcolachrslct.cpp:391 zrcolachrslct.cpp:864
msgid "▾ Search Options"
msgstr "▾ Опции поиска"
#: zrcolafrm.cpp:95
#: zrcolafrm.cpp:89
msgid "No Translation"
msgstr "Без транслитерации"
#: zrcolafrm.cpp:108
#: zrcolafrm.cpp:102
msgid "Custom Translation..."
msgstr "Настраиваемое преобразование ..."
#: zrcolafrm.cpp:225
msgid "ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality will not be available."
msgstr "Сочетание клавиш Win+F5 регистрировать. Некоторые функциональности не будут доступны."
#: zrcolafrm.cpp:206
msgid ""
"ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality "
"will not be available."
msgstr ""
"Сочетание клавиш Win+F5 регистрировать. Некоторые функциональности не будут "
"доступны."
#: zrcolafrm.cpp:225 zrcolafrm.cpp:227
#: zrcolafrm.cpp:206 zrcolafrm.cpp:208
msgid "Warning"
msgstr "Предупреждение"
#: zrcolafrm.cpp:227
msgid "ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality will not be available."
msgstr "Сочетание клавиш Win+F6 невозможно регистрировать. Некоторые функциональности не будут доступны."
#: zrcolafrm.cpp:208
msgid ""
"ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality "
"will not be available."
msgstr ""
"Сочетание клавиш Win+F6 невозможно регистрировать. Некоторые "
"функциональности не будут доступны."
#: zrcolafrm.cpp:499
#: zrcolafrm.cpp:472
msgid "http://zrcola.zrc-sazu.si/en/info/instructions/"
msgstr "http://zrcola.zrc-sazu.si/ru/info/instructions/"
#: zrcolafrm.cpp:524
msgid "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf"
msgstr "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf"
#: zrcolafrm.cpp:496
msgid ""
"http://zrcola.zrc-sazu.si/wp-"
"content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf"
msgstr ""
"http://zrcola.zrc-sazu.si/wp-"
"content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf"
#: zrcolakeyhndlr.cpp:44
msgid "INS key is pressed. Type the Unicode code of desired character now (up to four hexadecimal digits: 0-9, A-F), then release INS."
msgstr "Нажата клавиша INS. Введите код Юникод желаемого знака (максимум четыре шестнадцатеричныe цифры: 0-9, A-F), затем отпустите клавишу INS."
msgid ""
"INS key is pressed. Type the Unicode code of desired character now (up to "
"four hexadecimal digits: 0-9, A-F), then release INS."
msgstr ""
"Нажата клавиша INS. Введите код Юникод желаемого знака (максимум четыре "
естнадцатеричныe цифры: 0-9, A-F), затем отпустите клавишу INS."
#: zrcolasettings.cpp:87
msgid "Start ZRCola automatically on logon"
@@ -669,7 +682,7 @@ msgstr "Автоматически запустить систему ZRCola пр
msgid "Unknown translation (%u)"
msgstr "Неизвестное преобразование (%u)"
#: zrcolaupdater.cpp:95
#: zrcolaupdater.cpp:94
msgid ""
"This program will now close and the upgrade will be launched.\n"
"Are you sure?"
@@ -677,107 +690,136 @@ msgstr ""
"Программа будет закрыта и обновлена.\n"
"Вы уверены?"
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:10
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:15
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:4
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:10
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:15
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:10
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:15
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:10
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:15
#: MSIBuild/en_US.x64.Release.Control-2.idtx:4
#: MSIBuild/en_US.x64.Release.Control-2.idtx:10
#: MSIBuild/en_US.x64.Release.Control-2.idtx:15
msgid "binUIHeader.bmp"
msgstr "binUIHeader.bmp"
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:5
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:5
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:5
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:5
#: MSIBuild/en_US.x64.Release.Control-2.idtx:5
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Starting"
msgstr "[DlgTitleFont][SimpleProductName] Руководство по запуску системы"
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:6
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:6
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:6
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:6
#: MSIBuild/en_US.x64.Release.Control-2.idtx:6
msgid "bintutorial1.bmp"
msgstr "bintutorial1.bmp"
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:7
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:7
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:7
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:7
#: MSIBuild/en_US.x64.Release.Control-2.idtx:7
msgid "When configured, ZRCola starts at system startup and runs in the background. If needed, it can be brought up by pressing the combination Win+F5."
msgstr "Если так настроено, система ZRCola запускается при запуске компьютера и работает в фоновом режиме. Если потребуется, пользователь может вывести программу на экран, нажав на сочетание клавиш Win+F5."
msgid ""
"When configured, ZRCola starts at system startup and runs in the background."
" If needed, it can be brought up by pressing the combination Win+F5."
msgstr ""
"Если так настроено, система ZRCola запускается при запуске компьютера и "
"работает в фоновом режиме. Если потребуется, пользователь может вывести "
"программу на экран, нажав на сочетание клавиш Win+F5."
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:8
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:8
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:8
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:8
#: MSIBuild/en_US.x64.Release.Control-2.idtx:8
msgid "IMPORTANT: Upon pressing the combination Win+F5 the program memorises the location of the cursor in the text. If ZRCola is brought to the foreground without using the aforementioned combination of keys, the program won't know where to insert the special characters!"
msgstr "Внимание: При нажатии сочетание клавиш Win+F5 программа запомнить местонахождение курсора в тексте. Если система ZRCola выведена на экран без использования упомянутого сочетания клавиш, программа не знает, куда ввести желаемые знаки!"
msgid ""
"IMPORTANT: Upon pressing the combination Win+F5 the program memorises the "
"location of the cursor in the text. If ZRCola is brought to the foreground "
"without using the aforementioned combination of keys, the program won't know"
" where to insert the special characters!"
msgstr ""
"Внимание: При нажатии сочетание клавиш Win+F5 программа запомнить "
"местонахождение курсора в тексте. Если система ZRCola выведена на экран без "
"использования упомянутого сочетания клавиш, программа не знает, куда ввести "
"желаемые знаки!"
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:9
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:14
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:19
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:9
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:14
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:19
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:9
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:14
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:19
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:9
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:14
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:19
#: MSIBuild/en_US.x64.Release.Control-2.idtx:9
#: MSIBuild/en_US.x64.Release.Control-2.idtx:14
#: MSIBuild/en_US.x64.Release.Control-2.idtx:19
msgid "&Continue"
msgstr "&Продолжить"
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:11
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:11
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:11
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:11
#: MSIBuild/en_US.x64.Release.Control-2.idtx:11
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Composition"
msgstr "[DlgTitleFont][SimpleProductName] Руководство по составлению"
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:12
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:12
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:12
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:12
#: MSIBuild/en_US.x64.Release.Control-2.idtx:12
msgid "bintutorial2.bmp"
msgstr "bintutorial2.bmp"
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:13
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:13
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:13
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:13
#: MSIBuild/en_US.x64.Release.Control-2.idtx:13
msgid "The string of basic and substitute characters is entered into the upper input window of the program. In the window below the resulted special characters are displayed. To insert them in the text, the F5 key is used."
msgstr "Строка основных и замещающих знаков вводится в верхнее окно для ввода. После того, в нижнем окне появляются соответствующие специальные знаки. Для их ввода в текст нужно нажать клавишу F5."
msgid ""
"The string of basic and substitute characters is entered into the upper "
"input window of the program. In the window below the resulted special "
"characters are displayed. To insert them in the text, the F5 key is used."
msgstr ""
"Строка основных и замещающих знаков вводится в верхнее окно для ввода. После"
" того, в нижнем окне появляются соответствующие специальные знаки. Для их "
"ввода в текст нужно нажать клавишу F5."
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:16
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:16
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:16
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:16
#: MSIBuild/en_US.x64.Release.Control-2.idtx:16
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Entering Characters"
msgstr "[DlgTitleFont][SimpleProductName] Руководство по вводу знаков"
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:17
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:17
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:17
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:17
#: MSIBuild/en_US.x64.Release.Control-2.idtx:17
msgid "bintutorial3.bmp"
msgstr "bintutorial3.bmp"
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:18
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:18
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:18
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:18
#: MSIBuild/en_US.x64.Release.Control-2.idtx:18
msgid "Characters can be entered using keyboard shortcuts, the character catalogue (F4) or the character finding tool (F8)."
msgstr "Знак можно ввести, употребляя сочетания клавиш на клавиатуре, список знаков (F4) или функцию \"Поиск знака\" (F8)."
msgid ""
"Characters can be entered using keyboard shortcuts, the character catalogue "
"(F4) or the character finding tool (F8)."
msgstr ""
"Знак можно ввести, употребляя сочетания клавиш на клавиатуре, список знаков "
"(F4) или функцию \"Поиск знака\" (F8)."
#: MSIBuild/en_US.ARM64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Shortcut-2.idtx:4
#: MSIBuild/en_US.Win32.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
msgid "Input system for linguistic use"
msgstr "Система ввода ZRCola для лингвистического применения"
#~ msgid ">"
#~ msgstr ">"
#~ msgid "<"
#~ msgstr "<"
#~ msgid "Up"
#~ msgstr "Up"
#~ msgid "Down"
#~ msgstr "Down"

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +0,0 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
*/
#include "pch.h"

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,12 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Oct 26 2018)
// C++ code generated with wxFormBuilder (version Aug 8 2018)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#pragma once
#ifndef __ZRCOLAGUI_H__
#define __ZRCOLAGUI_H__
#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
@@ -25,7 +26,6 @@ class wxZRColaCharGrid;
#include <wx/aui/aui.h>
#include <wx/aui/auibar.h>
#include <wx/choice.h>
#include <wx/fontpicker.h>
class wxZRColaCharacterCatalogPanel;
class wxZRColaComposerPanel;
#include <wx/statusbr.h>
@@ -55,10 +55,10 @@ class wxZRColaComposerPanel;
///////////////////////////////////////////////////////////////////////////////
/// Class wxZRColaFrameBase
///////////////////////////////////////////////////////////////////////////////
class wxZRColaFrameBase : public wxFrame
class wxZRColaFrameBase : public wxFrame
{
private:
protected:
enum
{
@@ -68,75 +68,68 @@ class wxZRColaFrameBase : public wxFrame
wxID_SEND_SOURCE,
wxID_COPY_SOURCE_AND_RETURN,
wxID_SEND_ABORT,
wxID_COMPOSITION,
wxID_FONT_DESTINATION,
wxID_WARN_PUA,
wxID_COMPOSITION_MENU,
wxID_SETTINGS,
wxID_TOOLBAR_EDIT,
wxID_TOOLBAR_TRANSLATE,
wxID_TOOLBAR_DESTINATION,
wxID_PANEL_CHRGRPS,
wxID_HELP_INSTRUCTIONS,
wxID_HELP_SHORTCUTS,
wxID_HELP_REQCHAR,
wxID_HELP_UPDATE
wxID_HELP_UPDATE,
wxID_COMPOSITION_TOOLBAR
};
wxMenuBar* m_menubar;
wxMenu* m_menuProgram;
wxMenu* m_menuEdit;
wxMenuItem* m_menuItemComposition;
wxMenu* m_menuTranslationSeq;
wxMenuItem* m_menuItemWarnPUA;
wxMenu* m_menuView;
wxMenu* m_menuHelp;
wxAuiToolBar* m_toolbarEdit;
wxAuiToolBarItem* m_toolEditCut;
wxAuiToolBarItem* m_toolEditCopy;
wxAuiToolBarItem* m_toolEditPaste;
wxAuiToolBarItem* m_toolEditCut;
wxAuiToolBarItem* m_toolEditCopy;
wxAuiToolBarItem* m_toolEditPaste;
wxAuiToolBar* m_toolbarTranslate;
wxAuiToolBarItem* m_toolCharSelect;
wxAuiToolBarItem* m_toolSendDestination;
wxAuiToolBarItem* m_toolSendSource;
wxAuiToolBarItem* m_toolComposition;
wxAuiToolBarItem* m_toolCharSelect;
wxAuiToolBarItem* m_toolSendDestination;
wxAuiToolBarItem* m_toolSendSource;
wxAuiToolBarItem* m_toolComposition;
wxChoice* m_toolTranslationSeq;
wxAuiToolBar* m_toolbarDestination;
wxFontPickerCtrl* m_fontpickerDestination;
wxAuiToolBarItem* m_toolWarnPUA;
wxZRColaCharacterCatalogPanel* m_panelChrCat;
wxStatusBar* m_statusBar;
// Virtual event handlers, overide them in your derived class
virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
virtual void OnIconize( wxIconizeEvent& event ) { event.Skip(); }
virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
virtual void OnTranslationSeqChoice( wxCommandEvent& event ) { event.Skip(); }
virtual void OnFontDestinationChanged( wxFontPickerEvent& event ) { event.Skip(); }
public:
wxZRColaComposerPanel* m_panel;
wxZRColaFrameBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("ZRCola"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 660,450 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL, const wxString& name = wxT("ZRCola") );
wxZRColaFrameBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("ZRCola"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 600,400 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL, const wxString& name = wxT("ZRCola") );
wxAuiManager m_mgr;
~wxZRColaFrameBase();
};
///////////////////////////////////////////////////////////////////////////////
/// Class wxZRColaComposerPanelBase
///////////////////////////////////////////////////////////////////////////////
class wxZRColaComposerPanelBase : public wxPanel
class wxZRColaComposerPanelBase : public wxPanel
{
private:
protected:
enum
{
wxID_TIMER_SAVE = 1000
};
wxSplitterWindow* m_splitterSource;
wxPanel* m_panelSourceEdit;
wxPanel* m_panelSourceHex;
@@ -146,7 +139,7 @@ class wxZRColaComposerPanelBase : public wxPanel
wxPanel* m_panelDestinationHex;
wxTextCtrl* m_destinationHex;
wxTimer m_timerSave;
// Virtual event handlers, overide them in your derived class
virtual void OnSourcePaint( wxPaintEvent& event ) { event.Skip(); }
virtual void OnSourceText( wxCommandEvent& event ) { event.Skip(); }
@@ -155,62 +148,62 @@ class wxZRColaComposerPanelBase : public wxPanel
virtual void OnDestinationText( wxCommandEvent& event ) { event.Skip(); }
virtual void OnDestinationHexPaint( wxPaintEvent& event ) { event.Skip(); }
virtual void OnSaveTimer( wxTimerEvent& event ) { event.Skip(); }
public:
wxTextCtrl* m_source;
wxTextCtrl* m_destination;
wxZRColaComposerPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxT("ZRColaComposerPanel") );
wxZRColaComposerPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxT("ZRColaComposerPanel") );
~wxZRColaComposerPanelBase();
void m_splitterSourceOnIdle( wxIdleEvent& )
{
m_splitterSource->SetSashPosition( -5 );
m_splitterSource->Disconnect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaComposerPanelBase::m_splitterSourceOnIdle ), NULL, this );
}
void m_splitterDestinationOnIdle( wxIdleEvent& )
{
m_splitterDestination->SetSashPosition( -5 );
m_splitterDestination->Disconnect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaComposerPanelBase::m_splitterDestinationOnIdle ), NULL, this );
}
};
///////////////////////////////////////////////////////////////////////////////
/// Class wxZRColaCharacterCatalogPanelBase
///////////////////////////////////////////////////////////////////////////////
class wxZRColaCharacterCatalogPanelBase : public wxPanel
class wxZRColaCharacterCatalogPanelBase : public wxPanel
{
private:
protected:
wxChoice* m_choice;
wxZRColaCharGrid* m_grid;
wxCheckBox* m_show_all;
// Virtual event handlers, overide them in your derived class
virtual void OnChoice( wxCommandEvent& event ) { event.Skip(); }
virtual void OnGridClick( wxGridEvent& event ) { event.Skip(); }
virtual void OnGridKeyDown( wxKeyEvent& event ) { event.Skip(); }
virtual void OnShowAll( wxCommandEvent& event ) { event.Skip(); }
public:
wxZRColaCharacterCatalogPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxT("ZRColaCharacterCatalog") );
wxZRColaCharacterCatalogPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxT("ZRColaCharacterCatalog") );
~wxZRColaCharacterCatalogPanelBase();
};
///////////////////////////////////////////////////////////////////////////////
/// Class wxZRColaCharSelectBase
///////////////////////////////////////////////////////////////////////////////
class wxZRColaCharSelectBase : public wxDialog
class wxZRColaCharSelectBase : public wxDialog
{
private:
protected:
wxSearchCtrl* m_search;
wxHyperlinkCtrl* m_search_more;
@@ -231,8 +224,10 @@ class wxZRColaCharSelectBase : public wxDialog
wxHyperlinkCtrl* m_navigateBack;
wxHyperlinkCtrl* m_navigateForward;
wxZRColaCharGrid* m_gridRelated;
wxButton* m_buttonInsert;
wxStdDialogButtonSizer* m_sdbSizerButtons;
wxButton* m_sdbSizerButtonsOK;
wxButton* m_sdbSizerButtonsCancel;
// Virtual event handlers, overide them in your derived class
virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
virtual void OnSearchText( wxCommandEvent& event ) { event.Skip(); }
@@ -252,24 +247,23 @@ class wxZRColaCharSelectBase : public wxDialog
virtual void OnNavigateBack( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnNavigateForward( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnRelatedSelectCell( wxGridEvent& event ) { event.Skip(); }
virtual void OnInsert( wxCommandEvent& event ) { event.Skip(); }
virtual void OnInsertUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }
virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); }
public:
wxZRColaCharSelectBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Character Search"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaCharSelect") );
wxZRColaCharSelectBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Character Search"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaCharSelect") );
~wxZRColaCharSelectBase();
};
///////////////////////////////////////////////////////////////////////////////
/// Class wxZRColaSettingsBase
///////////////////////////////////////////////////////////////////////////////
class wxZRColaSettingsBase : public wxDialog
class wxZRColaSettingsBase : public wxDialog
{
private:
protected:
wxListbook* m_listbook;
wxPanel* m_panelLanguage;
@@ -284,28 +278,28 @@ class wxZRColaSettingsBase : public wxDialog
wxButton* m_sdbSizerButtonsOK;
wxButton* m_sdbSizerButtonsApply;
wxButton* m_sdbSizerButtonsCancel;
// Virtual event handlers, overide them in your derived class
virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }
virtual void OnLanguageUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
virtual void OnApplyButtonClick( wxCommandEvent& event ) { event.Skip(); }
virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); }
public:
wxZRColaSettingsBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaSettings") );
wxZRColaSettingsBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaSettings") );
~wxZRColaSettingsBase();
};
///////////////////////////////////////////////////////////////////////////////
/// Class wxZRColaAboutBase
///////////////////////////////////////////////////////////////////////////////
class wxZRColaAboutBase : public wxDialog
class wxZRColaAboutBase : public wxDialog
{
private:
protected:
wxStaticBitmap* m_bitmapIcon;
wxStaticText* m_staticTextZRCola;
@@ -317,46 +311,46 @@ class wxZRColaAboutBase : public wxDialog
wxTextCtrl* m_declaration;
wxStdDialogButtonSizer* m_sdbSizerButtons;
wxButton* m_sdbSizerButtonsOK;
public:
wxZRColaAboutBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About ZRCola"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaAbout") );
wxZRColaAboutBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About ZRCola"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaAbout") );
~wxZRColaAboutBase();
};
///////////////////////////////////////////////////////////////////////////////
/// Class wxZRColaUpdaterBase
///////////////////////////////////////////////////////////////////////////////
class wxZRColaUpdaterBase : public wxDialog
class wxZRColaUpdaterBase : public wxDialog
{
private:
protected:
wxTextCtrl* m_log;
wxButton* m_buttonUpdate;
wxButton* m_buttonClose;
// Virtual event handlers, overide them in your derived class
virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
virtual void OnUpdate( wxCommandEvent& event ) { event.Skip(); }
virtual void OnClose( wxCommandEvent& event ) { event.Skip(); }
public:
wxZRColaUpdaterBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Product Update"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaUpdater") );
wxZRColaUpdaterBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Product Update"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaUpdater") );
~wxZRColaUpdaterBase();
};
///////////////////////////////////////////////////////////////////////////////
/// Class wxZRColaCharRequestBase
///////////////////////////////////////////////////////////////////////////////
class wxZRColaCharRequestBase : public wxDialog
class wxZRColaCharRequestBase : public wxDialog
{
private:
protected:
wxStaticText* m_characterLbl;
wxTextCtrl* m_character;
@@ -367,25 +361,25 @@ class wxZRColaCharRequestBase : public wxDialog
wxStdDialogButtonSizer* m_sdbSizerButtons;
wxButton* m_sdbSizerButtonsOK;
wxButton* m_sdbSizerButtonsCancel;
// Virtual event handlers, overide them in your derived class
virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); }
public:
wxZRColaCharRequestBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Request a New Character"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaCharRequest") );
wxZRColaCharRequestBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Request a New Character"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaCharRequest") );
~wxZRColaCharRequestBase();
};
///////////////////////////////////////////////////////////////////////////////
/// Class wxZRColaTranslationSeqBase
///////////////////////////////////////////////////////////////////////////////
class wxZRColaTranslationSeqBase : public wxDialog
class wxZRColaTranslationSeqBase : public wxDialog
{
private:
protected:
wxStaticText* m_transLbl;
wxStaticText* m_availableLbl;
@@ -399,7 +393,7 @@ class wxZRColaTranslationSeqBase : public wxDialog
wxStdDialogButtonSizer* m_sdbSizerButtons;
wxButton* m_sdbSizerButtonsOK;
wxButton* m_sdbSizerButtonsCancel;
// Virtual event handlers, overide them in your derived class
virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }
virtual void OnUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
@@ -412,12 +406,13 @@ class wxZRColaTranslationSeqBase : public wxDialog
virtual void OnSelectedUp( wxCommandEvent& event ) { event.Skip(); }
virtual void OnSelectedDown( wxCommandEvent& event ) { event.Skip(); }
virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); }
public:
wxZRColaTranslationSeqBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Custom Translation Sequence"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaTranslationSeq") );
wxZRColaTranslationSeqBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Custom Translation Sequence"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaTranslationSeq") );
~wxZRColaTranslationSeqBase();
};
#endif //__ZRCOLAGUI_H__

20
ZRCola/stdafx.cpp Normal file
View File

@@ -0,0 +1,20 @@
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#include "stdafx.h"

View File

@@ -1,56 +1,66 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
*/
#pragma once
#include "../include/version.h"
#include "zrcolaabout.h"
#include "zrcolaapp.h"
#include "zrcolachrcatpnl.h"
#include "zrcolachrgrid.h"
#include "zrcolachrreq.h"
#include "zrcolacomppnl.h"
#include "zrcolafrm.h"
#include "zrcolakeyhndlr.h"
#include "zrcolasettings.h"
#include "zrcolatranseq.h"
#include "zrcolaupdater.h"
#include <Updater/chkthread.h>
#include <wxex/common.h>
#include <wxex/url.h>
#include <wxex/persist/auimanager.h>
#include <wxex/persist/toplevel.h>
#pragma warning(push)
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
#include <wx/clipbrd.h>
#include <wx/dcclient.h>
#include <wx/ffile.h>
#include <wx/fontdlg.h>
#include <wx/msgdlg.h>
#include <wx/persist.h>
#include <wx/persist/toplevel.h>
#include <wx/socket.h>
#include <wx/tokenzr.h>
#include <wx/utils.h>
#include <wx/valtext.h>
#pragma warning(pop)
#include <WinStd/MSI.h>
#include <fstream>
#include <string>
#include <utility>
#include <vector>
#include <stdex/idrec.h>
#if defined(__WXMSW__)
#include <Msi.h>
#include <ShObjIdl.h>
#include <ShlGuid.h>
#endif
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "../include/version.h"
#include "zrcolaabout.h"
#include "zrcolaapp.h"
#include "zrcolachrcatpnl.h"
#include "zrcolachrgrid.h"
#include "zrcolachrreq.h"
#include "zrcolacomppnl.h"
#include "zrcolafrm.h"
#include "zrcolakeyhndlr.h"
#include "zrcolasettings.h"
#include "zrcolatranseq.h"
#include "zrcolaupdater.h"
#include <Updater/chkthread.h>
#include <wxex/common.h>
#include <wxex/url.h>
#include <wxex/persist/auimanager.h>
#include <wxex/persist/toplevel.h>
#include <wx/clipbrd.h>
#include <wx/dcclient.h>
#include <wx/ffile.h>
#include <wx/msgdlg.h>
#include <wx/persist.h>
#include <wx/persist/toplevel.h>
#include <wx/socket.h>
#include <wx/tokenzr.h>
#include <wx/utils.h>
#include <wx/valtext.h>
#include <WinStd/MSI.h>
#include <fstream>
#include <string>
#include <utility>
#include <vector>
#include <stdex/idrec.h>
#if defined(__WXMSW__)
#include <Msi.h>
#include <ShObjIdl.h>
#include <ShlGuid.h>
#endif

View File

@@ -1,9 +1,23 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#include "pch.h"
#include "stdafx.h"
//////////////////////////////////////////////////////////////////////////

View File

@@ -1,6 +1,20 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
///
@@ -11,11 +25,7 @@ class wxZRColaAbout;
#pragma once
#include <wxex/common.h>
#pragma warning(push)
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
#include "zrcolagui.h"
#pragma warning(pop)
///

View File

@@ -1,9 +1,23 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#include "pch.h"
#include "stdafx.h"
#if defined(__WXMSW__)
#pragma comment(lib, "msi.lib")
#endif
@@ -13,13 +27,11 @@
// ZRColaApp
//////////////////////////////////////////////////////////////////////////
#pragma warning(suppress: 28251) // wxWidgets implement WinMain without code analysis annotations.
wxIMPLEMENT_APP(ZRColaApp);
ZRColaApp::ZRColaApp() :
m_mainWnd(NULL),
#pragma warning(suppress: 26812) // wxLanguage is unscoped
m_lang_ui(wxLANGUAGE_DEFAULT),
wxApp()
{
@@ -153,14 +165,12 @@ bool ZRColaApp::OnInit()
}
} else
wxFAIL_MSG(wxT("ZRCola.zrcdb is not a valid ZRCola database."));
} else
wxFAIL_MSG(wxT("ZRCola.zrcdb not found or cannot be opened."));
}
// Initialize sockets. Otherwise Updater thread will not work.
wxSocketBase::Initialize();
m_mainWnd = new wxZRColaFrame();
m_mainWnd->m_panel->RestoreFromStateFile();
m_mainWnd->Show();
return true;

View File

@@ -1,6 +1,20 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
///
@@ -13,13 +27,9 @@ class ZRColaApp;
#include "zrcolafrm.h"
#include <WinStd/Win.h>
#include <wxex/common.h>
#pragma warning(push)
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
#include <wx/app.h>
#include <wx/config.h>
#include <wx/intl.h>
#pragma warning(pop)
#include <zrcola/character.h>
#include <zrcola/language.h>
#include <zrcola/translate.h>

View File

@@ -1,9 +1,23 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#include "pch.h"
#include "stdafx.h"
//////////////////////////////////////////////////////////////////////////
@@ -15,9 +29,7 @@ BEGIN_EVENT_TABLE(wxZRColaCharacterCatalogPanel, wxZRColaCharacterCatalogPanelBa
END_EVENT_TABLE()
wxZRColaCharacterCatalogPanel::wxZRColaCharacterCatalogPanel(wxWindow* parent) :
m_cg_id(0),
wxZRColaCharacterCatalogPanelBase(parent)
wxZRColaCharacterCatalogPanel::wxZRColaCharacterCatalogPanel(wxWindow* parent) : wxZRColaCharacterCatalogPanelBase(parent)
{
std::fstream dat((LPCTSTR)dynamic_cast<ZRColaApp*>(wxTheApp)->GetDatabaseFilePath(), std::ios_base::in | std::ios_base::binary);
if (dat.good()) {
@@ -38,8 +50,7 @@ wxZRColaCharacterCatalogPanel::wxZRColaCharacterCatalogPanel(wxWindow* parent) :
}
} else
wxFAIL_MSG(wxT("ZRCola.zrcdb is not a valid ZRCola database."));
} else
wxFAIL_MSG(wxT("ZRCola.zrcdb not found or cannot be opened."));
}
if (!m_cg_db.idxRank.empty()) {
// Populate character group list.
@@ -48,7 +59,7 @@ wxZRColaCharacterCatalogPanel::wxZRColaCharacterCatalogPanel(wxWindow* parent) :
wxString
label(cg.name(), cg.name_len()),
label_tran2(wxGetTranslation(label, wxT("ZRCola-zrcdb")));
m_choice->Insert(label_tran2, (unsigned int)i);
m_choice->Insert(label_tran2, i);
}
m_cg_id = m_cg_db.idxRank[0].grp;
m_choice->Select(0);
@@ -204,7 +215,7 @@ bool wxPersistentZRColaCharacterCatalogPanel::Restore()
if (cg.grp == cg_id) {
if (wnd->m_cg_id != cg.grp) {
wnd->m_cg_id = cg.grp;
wnd->m_choice->Select((int)i);
wnd->m_choice->Select(i);
update = true;
}

View File

@@ -1,6 +1,20 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
///
@@ -11,16 +25,9 @@ class wxZRColaCharacterCatalogPanel;
#pragma once
#include <wxex/common.h>
#pragma warning(push)
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
#include "zrcolagui.h"
#pragma warning(pop)
#include <zrcolaui/chargroup.h>
#pragma warning(push)
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
#include <wx/persist/window.h>
#pragma warning(pop)
///

View File

@@ -1,9 +1,23 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#include "pch.h"
#include "stdafx.h"
//////////////////////////////////////////////////////////////////////////
@@ -142,13 +156,13 @@ void wxZRColaCharGrid::OnSize(wxSizeEvent& event)
row_height = FromDIP(wxZRColaCharacterGridRowHeight),
width = size.GetWidth() - m_rowLabelWidth - m_extraWidth,
cols = std::max<int>(width / col_width, 1),
rows = std::max<int>((int)((char_count + cols - 1) / cols), 1);
rows = std::max<int>((char_count + cols - 1) / cols, 1);
if (m_colLabelHeight + rows*row_height + m_extraHeight > size.GetHeight()) {
// Vertical scrollbar will be shown. Adjust the width and recalculate layout to avoid horizontal scrollbar.
width = std::max<int>(width - wxSystemSettings::GetMetric(wxSYS_VSCROLL_X, this), 0);
cols = std::max<int>(width / col_width, 1);
rows = std::max<int>((int)((char_count + cols - 1) / cols), 1);
rows = std::max<int>((char_count + cols - 1) / cols, 1);
}
BeginBatch();
@@ -228,7 +242,7 @@ void wxZRColaCharGrid::OnMotion(wxMouseEvent& event)
if (col == wxNOT_FOUND || row == wxNOT_FOUND )
return;
size_t toolTipIdx = (size_t)row*m_numCols + col;
size_t toolTipIdx = row*m_numCols + col;
if (toolTipIdx >= m_chars.GetCount()) {
// Index out of range.
m_toolTipIdx = (size_t)-1;
@@ -240,7 +254,7 @@ void wxZRColaCharGrid::OnMotion(wxMouseEvent& event)
wxWindow *gridWnd = GetGridWindow();
if (gridWnd->GetToolTip()) {
// The tooltip is already shown. Update it immediately.
gridWnd->SetToolTip(GetToolTipText((int)m_toolTipIdx));
gridWnd->SetToolTip(GetToolTipText(m_toolTipIdx));
} else {
// This must be our initial entry. Schedule tooltip display after 1s.
m_timerToolTip.Start(1000, true);
@@ -256,5 +270,5 @@ void wxZRColaCharGrid::OnTooltipTimer(wxTimerEvent& event)
if (m_toolTipIdx >= m_chars.GetCount())
return;
GetGridWindow()->SetToolTip(GetToolTipText((int)m_toolTipIdx));
GetGridWindow()->SetToolTip(GetToolTipText(m_toolTipIdx));
}

View File

@@ -1,6 +1,20 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
///
@@ -11,11 +25,7 @@ class wxZRColaCharGrid;
#pragma once
#include <wxex/common.h>
#pragma warning(push)
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
#include <wx/grid.h>
#pragma warning(pop)
///
@@ -86,7 +96,7 @@ public:
if (i >= n)
return wxGridCellCoords(-1, -1);
else if (m_chars[i] == c)
return wxGridCellCoords((int)(i / m_numCols), i % m_numCols);
return wxGridCellCoords(i / m_numCols, i % m_numCols);
}
}

View File

@@ -1,9 +1,23 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#include "pch.h"
#include "stdafx.h"
//////////////////////////////////////////////////////////////////////////

View File

@@ -1,6 +1,20 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
///
@@ -12,11 +26,7 @@ class wxPersistentZRColaCharRequest;
#pragma once
#include <wxex/common.h>
#pragma warning(push)
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
#include "zrcolagui.h"
#pragma warning(pop)
#include "zrcolakeyhndlr.h"
#include <wxex/persist/toplevel.h>

View File

@@ -1,9 +1,23 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#include "pch.h"
#include "stdafx.h"
//////////////////////////////////////////////////////////////////////
@@ -71,7 +85,7 @@ bool wxZRColaUTF16CharValidator::Parse(const wxString &val_in, size_t i_start, s
} else if (i >= i_start + 4) {
// Maximum characters exceeded.
ctrl->SetFocus();
ctrl->SetSelection((int)i, (int)i_end);
ctrl->SetSelection(i, i_end);
wxMessageBox(_("Too many digits in Unicode."), _("Validation conflict"), wxOK | wxICON_EXCLAMATION, parent);
return false;
} else if (_T('0') <= buf[i] && buf[i] <= _T('9')) {
@@ -89,7 +103,7 @@ bool wxZRColaUTF16CharValidator::Parse(const wxString &val_in, size_t i_start, s
} else {
// Invalid character found.
ctrl->SetFocus();
ctrl->SetSelection((long)i, (long)(i + 1));
ctrl->SetSelection(i, i + 1);
wxMessageBox(wxString::Format(_("Invalid character in Unicode found: %c"), buf[i]), _("Validation conflict"), wxOK | wxICON_EXCLAMATION, parent);
return false;
}
@@ -188,7 +202,6 @@ wxZRColaCharSelect::wxZRColaCharSelect(wxWindow* parent) :
wxZRColaCharSelectBase(parent)
{
// Set tag lookup locale.
#pragma warning(suppress: 26812) // wxLanguage is unscoped
wxLanguage language = dynamic_cast<ZRColaApp*>(wxTheApp)->m_lang_ui;
if (wxLANGUAGE_DEFAULT == language ||
wxLANGUAGE_ENGLISH <= language && language <= wxLANGUAGE_ENGLISH_ZIMBABWE) m_locale = MAKELCID(MAKELANGID(LANG_ENGLISH , SUBLANG_DEFAULT), SORT_DEFAULT);
@@ -206,7 +219,7 @@ wxZRColaCharSelect::wxZRColaCharSelect(wxWindow* parent) :
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++) {
const auto &cc = app->m_cc_db.idxRank[i];
int idx = m_categories->Insert(wxGetTranslation(wxString(cc.name(), cc.name_len()), wxT("ZRCola-zrcdb")), (unsigned int)i);
int idx = m_categories->Insert(wxGetTranslation(wxString(cc.name(), cc.name_len()), wxT("ZRCola-zrcdb")), i);
m_categories->Check(idx);
m_ccOrder.insert(std::make_pair(cc.cat, idx));
}
@@ -223,10 +236,8 @@ wxZRColaCharSelect::wxZRColaCharSelect(wxWindow* parent) :
wxZRColaCharSelect::~wxZRColaCharSelect()
{
if (m_searchThread) {
#pragma warning(suppress: 26812) // wxThreadError is unscoped.
if (m_searchThread)
m_searchThread->Delete();
}
Disconnect(wxID_ANY, wxEVT_SEARCH_COMPLETE, wxThreadEventHandler(wxZRColaCharSelect::OnSearchComplete), NULL, this);
}
@@ -343,7 +354,7 @@ void wxZRColaCharSelect::OnIdle(wxIdleEvent& event)
// Select categories.
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++) {
const auto &cc = app->m_cc_db.idxRank[i];
if (m_categories->IsChecked((unsigned int)i))
if (m_categories->IsChecked(i))
m_searchThread->m_cats.insert(cc.cat);
}
@@ -390,7 +401,7 @@ void wxZRColaCharSelect::OnCategoriesAll(wxHyperlinkEvent& event)
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++)
m_categories->Check((unsigned int)i, true);
m_categories->Check(i, true);
m_searchChanged = true;
}
@@ -402,7 +413,7 @@ void wxZRColaCharSelect::OnCategoriesNone(wxHyperlinkEvent& event)
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++)
m_categories->Check((unsigned int)i, false);
m_categories->Check(i, false);
m_searchChanged = true;
}
@@ -414,7 +425,7 @@ void wxZRColaCharSelect::OnCategoriesInvert(wxHyperlinkEvent& event)
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++)
m_categories->Check((unsigned int)i, !m_categories->IsChecked((unsigned int)i));
m_categories->Check(i, !m_categories->IsChecked(i));
m_searchChanged = true;
}
@@ -466,7 +477,7 @@ void wxZRColaCharSelect::OnResultCellDClick(wxGridEvent& event)
if (!val.IsEmpty()) {
NavigateTo(val);
wxCommandEvent e(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK);
m_buttonInsert->GetEventHandler()->ProcessEvent(e);
m_sdbSizerButtonsOK->GetEventHandler()->ProcessEvent(e);
}
}
@@ -480,7 +491,7 @@ void wxZRColaCharSelect::OnResultsKeyDown(wxKeyEvent& event)
if (!val.IsEmpty()) {
NavigateTo(val);
wxCommandEvent e(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK);
m_buttonInsert->GetEventHandler()->ProcessEvent(e);
m_sdbSizerButtonsOK->GetEventHandler()->ProcessEvent(e);
event.StopPropagation();
return;
@@ -509,7 +520,7 @@ void wxZRColaCharSelect::OnRecentCellDClick(wxGridEvent& event)
if (!val.IsEmpty()) {
NavigateTo(val);
wxCommandEvent e(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK);
m_buttonInsert->GetEventHandler()->ProcessEvent(e);
m_sdbSizerButtonsOK->GetEventHandler()->ProcessEvent(e);
}
}
@@ -523,7 +534,7 @@ void wxZRColaCharSelect::OnRecentKeyDown(wxKeyEvent& event)
if (!val.IsEmpty()) {
NavigateTo(val);
wxCommandEvent e(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK);
m_buttonInsert->GetEventHandler()->ProcessEvent(e);
m_sdbSizerButtonsOK->GetEventHandler()->ProcessEvent(e);
event.StopPropagation();
return;
@@ -585,13 +596,7 @@ void wxZRColaCharSelect::OnRelatedSelectCell(wxGridEvent& event)
}
void wxZRColaCharSelect::OnInsertUpdateUI(wxUpdateUIEvent& event)
{
event.Enable(!m_char.empty());
}
void wxZRColaCharSelect::OnInsert(wxCommandEvent& event)
void wxZRColaCharSelect::OnOKButtonClick(wxCommandEvent& event)
{
event.Skip();
@@ -605,14 +610,6 @@ void wxZRColaCharSelect::OnInsert(wxCommandEvent& event)
val.Add(c);
}
m_gridRecent->SetCharacters(val);
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
if (app->m_mainWnd) {
app->m_mainWnd->m_panel->m_source->WriteText(m_char);
app->m_mainWnd->m_panel->m_source->SetFocus();
}
Show(false);
}
@@ -824,7 +821,7 @@ void wxPersistentZRColaCharSelect::Save() const
const auto &cc = app->m_cc_db.idxRank[i];
wxString name(wxT("category"));
name.Append(cc.cat.data, _countof(cc.cat.data));
SaveValue(name, wnd->m_categories->IsChecked((unsigned int)i));
SaveValue(name, wnd->m_categories->IsChecked(i));
}
SaveValue(wxT("searchPanel"), wnd->m_search_panel->IsShown());
@@ -861,7 +858,7 @@ bool wxPersistentZRColaCharSelect::Restore()
name.Append(cc.cat.data, _countof(cc.cat.data));
bool val;
if (RestoreValue(name, &val))
wnd->m_categories->Check((unsigned int)i, val);
wnd->m_categories->Check(i, val);
}
bool search_panel;

View File

@@ -1,6 +1,20 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
///
@@ -12,19 +26,12 @@ class wxPersistentZRColaCharSelect;
#pragma once
#include <wxex/common.h>
#pragma warning(push)
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
#include "zrcolagui.h"
#pragma warning(pop)
#include <zrcola/character.h>
#include <wxex/persist/toplevel.h>
#pragma warning(push)
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
#include <wx/validate.h>
#include <wx/event.h>
#include <wx/thread.h>
#pragma warning(pop)
#include <list>
#include <map>
#include <string>
@@ -156,8 +163,7 @@ protected:
virtual void OnUnicodeText(wxCommandEvent& event);
virtual void OnPreviewKeyDown(wxKeyEvent& event);
virtual void OnRelatedSelectCell(wxGridEvent& event);
virtual void OnInsertUpdateUI(wxUpdateUIEvent& event);
virtual void OnInsert(wxCommandEvent& event);
virtual void OnOKButtonClick(wxCommandEvent& event);
void ResetResults();
void NavigateBy(int offset);

View File

@@ -1,14 +1,23 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#include "pch.h"
static inline bool is_pua(_In_ wchar_t c)
{
return L'\ue000' <= c && c <= L'\uf8ff';
}
#include "stdafx.h"
//////////////////////////////////////////////////////////////////////////
@@ -18,36 +27,12 @@ static inline bool is_pua(_In_ wchar_t c)
wxZRColaComposerPanel::wxZRColaComposerPanel(wxWindow* parent) :
m_sourceChanged(false),
m_destinationChanged(false),
m_sourceRestyled(false),
m_destinationRestyled(false),
m_styleSource(*wxBLACK, *wxWHITE, wxFont(20, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxT("ZRCola"))),
m_styleDestination(*wxBLACK, *wxWHITE, wxFont(20, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxT("ZRCola"))),
m_styleDestinationPUA(*wxBLUE, *wxWHITE, wxFont(20, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxT("ZRCola"))),
m_selSource(0, 0),
m_selDestination(0, 0),
wxZRColaComposerPanelBase(parent)
{
// RichEdit control has no inner margins by default.
m_source->SetMargins(FromDIP(wxPoint(5, 2)));
m_destination->SetMargins(FromDIP(wxPoint(5, 2)));
m_source->PushEventHandler(&m_keyhandler);
}
wxZRColaComposerPanel::~wxZRColaComposerPanel()
{
m_source->PopEventHandler();
// This is a controlled exit. Purge saved state.
wxString fileName(GetStateFileName());
if (wxFileExists(fileName))
wxRemoveFile(fileName);
}
void wxZRColaComposerPanel::RestoreFromStateFile()
{
// Restore the previously saved state (if exists).
wxString fileName(GetStateFileName());
if (wxFileExists(fileName)) {
@@ -58,13 +43,13 @@ void wxZRColaComposerPanel::RestoreFromStateFile()
file.Read(&n, sizeof(n));
if (!file.Error()) {
wxString source;
file.Read(wxStringBuffer(source, (size_t)n), sizeof(wchar_t)*(size_t)n);
file.Read(wxStringBuffer(source, n), sizeof(wchar_t)*n);
if (!file.Error()) {
// Load destination text.
file.Read(&n, sizeof(n));
if (!file.Error()) {
wxString destination;
file.Read(wxStringBuffer(destination, (size_t)n), sizeof(wchar_t)*(size_t)n);
file.Read(wxStringBuffer(destination, n), sizeof(wchar_t)*n);
if (!file.Error()) {
// Restore state.
m_source->SetValue(source);
@@ -85,6 +70,17 @@ void wxZRColaComposerPanel::RestoreFromStateFile()
}
wxZRColaComposerPanel::~wxZRColaComposerPanel()
{
m_source->PopEventHandler();
// This is a controlled exit. Purge saved state.
wxString fileName(GetStateFileName());
if (wxFileExists(fileName))
wxRemoveFile(fileName);
}
void wxZRColaComposerPanel::SynchronizePanels()
{
if (m_sourceChanged) {
@@ -92,15 +88,15 @@ void wxZRColaComposerPanel::SynchronizePanels()
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
wxString src = m_source->GetValue();
size_t len = src.Length();
wxString src;
size_t len = GetValue(m_source, src);
std::wstring dst(src.data(), len), dst2;
ZRCola::mapping_vector map;
m_mapping.clear();
if (app->m_mainWnd->m_composition) {
// ZRCola decompose first, then re-compose.
// ZRCola Decomposed => ZRCola Composed should decompose first.
app->m_t_db.TranslateInv(ZRCOLA_TRANSEQID_DEFAULT, dst.data(), dst.size(), dst2, &map);
m_mapping.push_back(std::move(map));
@@ -125,8 +121,8 @@ void wxZRColaComposerPanel::SynchronizePanels()
// Update destination text, and its HEX dump.
m_destination->SetValue(dst);
m_destination->SetSelection(
m_selDestination.first = (long)MapToDestination(m_selSource.first ),
m_selDestination.second = (long)MapToDestination(m_selSource.second));
m_selDestination.first = MapToDestination(m_selSource.first ),
m_selDestination.second = MapToDestination(m_selSource.second));
SetHexValue(m_destinationHex, m_selDestinationHex, m_mappingDestinationHex, dst.data(), dst.length(), m_selDestination.first, m_selDestination.second);
// Schedule state save after 3s.
@@ -136,8 +132,8 @@ void wxZRColaComposerPanel::SynchronizePanels()
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
wxString src = m_destination->GetValue();
size_t len = src.Length();
wxString src;
size_t len = GetValue(m_destination, src);
std::wstring dst(src.data(), len), dst2;
ZRCola::mapping_vector map;
@@ -155,12 +151,8 @@ void wxZRColaComposerPanel::SynchronizePanels()
}
if (app->m_mainWnd->m_composition) {
// ZRCola decompose.
// ZRCola Decomposed => ZRCola Composed
app->m_t_db.TranslateInv(ZRCOLA_TRANSEQID_DEFAULT, dst.data(), dst.size(), &app->m_lc_db, app->m_mainWnd->m_settings->m_lang, dst2, &map);
dst = std::move(dst2);
map.invert();
m_mapping.push_back(std::move(map));
}
m_destination->GetSelection(&m_selDestination.first, &m_selDestination.second);
@@ -171,8 +163,8 @@ void wxZRColaComposerPanel::SynchronizePanels()
// Update source text, and its HEX dump.
m_source->SetValue(dst);
m_source->SetSelection(
m_selSource.first = (long)MapToSource(m_selDestination.first ),
m_selSource.second = (long)MapToSource(m_selDestination.second));
m_selSource.first = MapToSource(m_selDestination.first ),
m_selSource.second = MapToSource(m_selDestination.second));
SetHexValue(m_sourceHex, m_selSourceHex, m_mappingSourceHex, dst.data(), dst.length(), m_selSource.first, m_selSource.second);
// Schedule state save after 3s.
@@ -184,48 +176,11 @@ void wxZRColaComposerPanel::SynchronizePanels()
}
void wxZRColaComposerPanel::SetDestinationFont(const wxFont& font, int flags)
{
m_styleDestination.SetFont(font, flags);
m_styleDestinationPUA.SetFont(font, flags);
}
void wxZRColaComposerPanel::RestyleSource()
{
m_sourceRestyled = true;
m_source->SetStyle(0, GetWindowTextLength(m_source->GetHWND()), m_styleSource);
m_sourceRestyled = false;
}
void wxZRColaComposerPanel::RestyleDestination()
{
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
m_destinationRestyled = true;
if (app->m_mainWnd->m_warnPUA) {
wxString src = m_destination->GetValue();
size_t len = src.Length();
for (size_t i = 0, j; i < len;) {
bool pua_i = is_pua(src[i]);
for (j = i + 1; j < len && pua_i == is_pua(src[j]); j++);
m_destination->SetStyle((long)i, (long)j, pua_i ? m_styleDestinationPUA : m_styleDestination);
i = j;
}
} else
m_destination->SetStyle(0, GetWindowTextLength(m_destination->GetHWND()), m_styleDestination);
m_destinationRestyled = false;
}
void wxZRColaComposerPanel::OnSourcePaint(wxPaintEvent& event)
{
event.Skip();
if (m_sourceRestyled)
return;
long from, to;
m_source->GetSelection(&from, &to);
@@ -235,16 +190,16 @@ void wxZRColaComposerPanel::OnSourcePaint(wxPaintEvent& event)
m_selSource.second = to;
m_sourceHex->SetSelection(
m_selSourceHex.first = (long)m_mappingSourceHex.to_dst(from),
m_selSourceHex.second = (long)m_mappingSourceHex.to_dst(to ));
m_selSourceHex.first = m_mappingSourceHex.to_dst(from),
m_selSourceHex.second = m_mappingSourceHex.to_dst(to ));
m_destination->SetSelection(
m_selDestination.first = (long)MapToDestination(from),
m_selDestination.second = (long)MapToDestination(to ));
m_selDestination.first = MapToDestination(from),
m_selDestination.second = MapToDestination(to ));
m_destinationHex->SetSelection(
m_selDestinationHex.first = (long)m_mappingDestinationHex.to_dst(m_selDestination.first ),
m_selDestinationHex.second = (long)m_mappingDestinationHex.to_dst(m_selDestination.second));
m_selDestinationHex.first = m_mappingDestinationHex.to_dst(m_selDestination.first ),
m_selDestinationHex.second = m_mappingDestinationHex.to_dst(m_selDestination.second));
}
}
@@ -262,16 +217,16 @@ void wxZRColaComposerPanel::OnSourceHexPaint(wxPaintEvent& event)
m_selSourceHex.second = to;
m_source->SetSelection(
m_selSource.first = (long)m_mappingSourceHex.to_src(from),
m_selSource.second = (long)m_mappingSourceHex.to_src(to ));
m_selSource.first = m_mappingSourceHex.to_src(from),
m_selSource.second = m_mappingSourceHex.to_src(to ));
m_destination->SetSelection(
m_selDestination.first = (long)MapToDestination(m_selSource.first ),
m_selDestination.second = (long)MapToDestination(m_selSource.second));
m_selDestination.first = MapToDestination(m_selSource.first ),
m_selDestination.second = MapToDestination(m_selSource.second));
m_destinationHex->SetSelection(
m_selDestinationHex.first = (long)m_mappingDestinationHex.to_dst(m_selDestination.first ),
m_selDestinationHex.second = (long)m_mappingDestinationHex.to_dst(m_selDestination.second));
m_selDestinationHex.first = m_mappingDestinationHex.to_dst(m_selDestination.first ),
m_selDestinationHex.second = m_mappingDestinationHex.to_dst(m_selDestination.second));
}
}
@@ -280,12 +235,8 @@ void wxZRColaComposerPanel::OnSourceText(wxCommandEvent& event)
{
event.Skip();
if (m_sourceRestyled)
return;
// Set the flag the source text changed to trigger idle-time translation.
m_sourceChanged = true;
RestyleSource();
}
@@ -293,9 +244,6 @@ void wxZRColaComposerPanel::OnDestinationPaint(wxPaintEvent& event)
{
event.Skip();
if (m_destinationRestyled)
return;
long from, to;
m_destination->GetSelection(&from, &to);
@@ -305,16 +253,16 @@ void wxZRColaComposerPanel::OnDestinationPaint(wxPaintEvent& event)
m_selDestination.second = to;
m_destinationHex->SetSelection(
m_selDestinationHex.first = (long)m_mappingDestinationHex.to_dst(from),
m_selDestinationHex.second = (long)m_mappingDestinationHex.to_dst(to ));
m_selDestinationHex.first = m_mappingDestinationHex.to_dst(from),
m_selDestinationHex.second = m_mappingDestinationHex.to_dst(to ));
m_source->SetSelection(
m_selSource.first = (long)MapToSource(from),
m_selSource.second = (long)MapToSource(to ));
m_selSource.first = MapToSource(from),
m_selSource.second = MapToSource(to ));
m_sourceHex->SetSelection(
m_selSourceHex.first = (long)m_mappingSourceHex.to_dst(m_selSource.first ),
m_selSourceHex.second = (long)m_mappingSourceHex.to_dst(m_selSource.second));
m_selSourceHex.first = m_mappingSourceHex.to_dst(m_selSource.first ),
m_selSourceHex.second = m_mappingSourceHex.to_dst(m_selSource.second));
}
}
@@ -332,16 +280,16 @@ void wxZRColaComposerPanel::OnDestinationHexPaint(wxPaintEvent& event)
m_selDestinationHex.second = to;
m_destination->SetSelection(
m_selDestination.first = (long)m_mappingDestinationHex.to_src(from),
m_selDestination.second = (long)m_mappingDestinationHex.to_src(to ));
m_selDestination.first = m_mappingDestinationHex.to_src(from),
m_selDestination.second = m_mappingDestinationHex.to_src(to ));
m_source->SetSelection(
m_selSource.first = (long)MapToSource(m_selDestination.first ),
m_selSource.second = (long)MapToSource(m_selDestination.second));
m_selSource.first = MapToSource(m_selDestination.first ),
m_selSource.second = MapToSource(m_selDestination.second));
m_sourceHex->SetSelection(
m_selSourceHex.first = (long)m_mappingSourceHex.to_dst(m_selSource.first ),
m_selSourceHex.second = (long)m_mappingSourceHex.to_dst(m_selSource.second));
m_selSourceHex.first = m_mappingSourceHex.to_dst(m_selSource.first ),
m_selSourceHex.second = m_mappingSourceHex.to_dst(m_selSource.second));
}
}
@@ -350,12 +298,8 @@ void wxZRColaComposerPanel::OnDestinationText(wxCommandEvent& event)
{
event.Skip();
if (m_destinationRestyled)
return;
// Set the flag the destination text changed to trigger idle-time inverse translation.
m_destinationChanged = true;
RestyleDestination();
}
@@ -364,21 +308,18 @@ void wxZRColaComposerPanel::OnSaveTimer(wxTimerEvent& event)
wxString fileName(GetStateFileName());
wxFFile file(fileName, wxT("wb"));
if (file.IsOpened()) {
{
// Save source text.
wxString text = m_source->GetValue();
size_t len = text.Length();
file.Write(&len, sizeof(len));
file.Write((const wchar_t*)text, sizeof(wchar_t)*len);
}
wxString text;
size_t len;
{
// Save destination text.
wxString text = m_destination->GetValue();
size_t len = text.Length();
file.Write(&len, sizeof(len));
file.Write((const wchar_t*)text, sizeof(wchar_t)*len);
}
// Save source text.
len = GetValue(m_source, text);
file.Write(&len, sizeof(len));
file.Write((const wchar_t*)text, sizeof(wchar_t)*len);
// Save destination text.
len = GetValue(m_destination, text);
file.Write(&len, sizeof(len));
file.Write((const wchar_t*)text, sizeof(wchar_t)*len);
}
event.Skip();
@@ -403,6 +344,31 @@ wxString wxZRColaComposerPanel::GetStateFileName()
}
size_t wxZRColaComposerPanel::GetValue(wxTextCtrl *wnd, wxString &text)
{
#ifdef __WINDOWS__
// Use Windows GetWindowText() function to avoid line ending conversion incompletely imposed by wxWidgets.
WXHWND hWnd = wnd->GetHWND();
size_t len = ::GetWindowTextLengthW(hWnd);
if (len < 0x100) {
WCHAR buf[0x100];
::GetWindowTextW(hWnd, buf, len + 1);
text.assign(buf, len);
} else {
LPWSTR buf = new WCHAR[len + 1];
::GetWindowTextW(hWnd, buf, len + 1);
text.assign(buf, len);
delete [] buf;
}
return len;
#else
text = wnd->GetValue();
return text.Length();
#endif
}
void wxZRColaComposerPanel::SetHexValue(wxTextCtrl *wnd, std::pair<long, long> &range, ZRCola::mapping_vector &mapping, const wchar_t *src, size_t len, long from, long to)
{
wxString hex;
@@ -411,8 +377,8 @@ void wxZRColaComposerPanel::SetHexValue(wxTextCtrl *wnd, std::pair<long, long> &
mapping.clear();
for (size_t i = 0; i < len && src[i]; i++) {
wchar_t c = src[i];
if (c == L'\n') {
hex += L"\r\n";
if (c == L'\n' || c == '\r') {
hex += c;
first = true;
} else {
hex += wxString::Format(first ? wxT("%04X") : wxT(" %04X"), src[i]);
@@ -423,8 +389,8 @@ void wxZRColaComposerPanel::SetHexValue(wxTextCtrl *wnd, std::pair<long, long> &
wnd->SetValue(hex);
wnd->SetSelection(
range.first = (long)mapping.to_dst(from),
range.second = (long)mapping.to_dst(to ));
range.first = mapping.to_dst(from),
range.second = mapping.to_dst(to ));
}

View File

@@ -1,6 +1,20 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
///
@@ -11,17 +25,10 @@ class wxZRColaComposerPanel;
#pragma once
#include <wxex/common.h>
#pragma warning(push)
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
#include "zrcolagui.h"
#pragma warning(pop)
#include "zrcolakeyhndlr.h"
#pragma warning(push)
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
#include <wx/persist/window.h>
#include <wx/timer.h>
#pragma warning(pop)
#include <utility>
#include <vector>
@@ -35,11 +42,7 @@ public:
wxZRColaComposerPanel(wxWindow* parent);
virtual ~wxZRColaComposerPanel();
void RestoreFromStateFile();
void SynchronizePanels();
void SetDestinationFont(const wxFont& font, int flags = (wxTEXT_ATTR_FONT & ~wxTEXT_ATTR_FONT_PIXEL_SIZE));
void RestyleSource();
void RestyleDestination();
friend class wxPersistentZRColaComposerPanel; // Allow saving/restoring window state.
@@ -56,18 +59,12 @@ protected:
inline void GetTranslationSeq(_Out_ const ZRCola::transetid_t *&sets_begin, _Out_ const ZRCola::transetid_t *&sets_end) const;
static wxString GetStateFileName();
static size_t GetValue(wxTextCtrl *wnd, wxString &text);
static void SetHexValue(wxTextCtrl *wnd, std::pair<long, long> &range, ZRCola::mapping_vector &mapping, const wchar_t *src, size_t len, long from, long to);
protected:
bool m_sourceChanged; ///< Boolean flag to mark source text "dirty" to trigger translation
bool m_destinationChanged; ///< Boolean flag to mark destination text "dirty" to trigger inverse translation
volatile bool
m_sourceRestyled, ///< Boolean flag to mark source text is being restyled
m_destinationRestyled; ///< Boolean flag to mark destination text is being restyled
wxTextAttr
m_styleSource, ///< Normal source text style
m_styleDestination, ///< Normal destination text style
m_styleDestinationPUA; ///< PUA character destination text style
std::vector<ZRCola::mapping_vector> m_mapping; ///< Character index mapping vector between source and normalized text
std::pair<long, long>
m_selSource, ///< Character index of selected text in source text control

View File

@@ -1,9 +1,23 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#include "pch.h"
#include "stdafx.h"
//////////////////////////////////////////////////////////////////////////
@@ -18,7 +32,6 @@ wxBEGIN_EVENT_TABLE(wxZRColaFrame, wxZRColaFrameBase)
EVT_UPDATE_UI (wxID_SELECTALL , wxZRColaFrame::OnForwardEventUpdate )
EVT_MENU (wxID_SELECTALL , wxZRColaFrame::OnForwardEvent )
EVT_UPDATE_UI (wxID_CHARACTER_SELECTOR , wxZRColaFrame::OnInsertCharacterUpdate )
EVT_MENU (wxID_CHARACTER_SELECTOR , wxZRColaFrame::OnInsertCharacter )
EVT_UPDATE_UI_RANGE(wxID_SEND_DESTINATION , wxID_SEND_ABORT , wxZRColaFrame::OnSendUpdate )
@@ -28,9 +41,8 @@ wxBEGIN_EVENT_TABLE(wxZRColaFrame, wxZRColaFrameBase)
EVT_MENU (wxID_SEND_SOURCE , wxZRColaFrame::OnSendSource )
EVT_MENU (wxID_SEND_ABORT , wxZRColaFrame::OnSendAbort )
EVT_MENU (wxID_COMPOSITION , wxZRColaFrame::OnComposition )
EVT_MENU (wxID_FONT_DESTINATION , wxZRColaFrame::OnFontDestination )
EVT_MENU (wxID_WARN_PUA , wxZRColaFrame::OnWarnPUA )
EVT_MENU (wxID_COMPOSITION_MENU , wxZRColaFrame::OnCompositionMenu )
EVT_MENU (wxID_COMPOSITION_TOOLBAR , wxZRColaFrame::OnCompositionToolbar )
EVT_MENU_RANGE (wxID_TRANSLATION_SEQ_DEFAULT, wxID_TRANSLATION_SEQ_END, wxZRColaFrame::OnTranslationSeqMenu )
EVT_MENU (wxID_SETTINGS , wxZRColaFrame::OnSettings )
@@ -39,8 +51,6 @@ wxBEGIN_EVENT_TABLE(wxZRColaFrame, wxZRColaFrameBase)
EVT_MENU (wxID_TOOLBAR_EDIT , wxZRColaFrame::OnToolbarEdit )
EVT_UPDATE_UI (wxID_TOOLBAR_TRANSLATE , wxZRColaFrame::OnToolbarTranslateUpdate )
EVT_MENU (wxID_TOOLBAR_TRANSLATE , wxZRColaFrame::OnToolbarTranslate )
EVT_UPDATE_UI (wxID_TOOLBAR_DESTINATION , wxZRColaFrame::OnToolbarDestinationUpdate )
EVT_MENU (wxID_TOOLBAR_DESTINATION , wxZRColaFrame::OnToolbarDestination )
EVT_UPDATE_UI (wxID_PANEL_CHRGRPS , wxZRColaFrame::OnPanelCharacterCatalogUpdate)
EVT_MENU (wxID_PANEL_CHRGRPS , wxZRColaFrame::OnPanelCharacterCatalog )
EVT_MENU (wxID_FOCUS_CHARACTER_CATALOG , wxZRColaFrame::OnPanelCharacterCatalogFocus )
@@ -64,8 +74,6 @@ wxZRColaFrame::wxZRColaFrame() :
m_settings(NULL),
m_chrReq(NULL),
m_composition(true),
m_fontDestination(20, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxT("ZRCola")),
m_warnPUA(false),
m_transeq_id(ZRCOLA_TRANSEQID_DEFAULT),
m_transeq(NULL),
wxZRColaFrameBase(NULL)
@@ -92,11 +100,11 @@ wxZRColaFrame::wxZRColaFrame() :
wxString
name(ts.name(), ts.name_len()),
name_tran(wxGetTranslation(name, wxT("ZRCola-zrcdb")));
m_menuTranslationSeq->AppendRadioItem((int)(wxID_TRANSLATION_SEQ_START + i), name_tran);
m_menuTranslationSeq->AppendRadioItem(wxID_TRANSLATION_SEQ_START + i, name_tran);
m_toolTranslationSeq->Append(name_tran, reinterpret_cast<void*>(ts.seq));
} else {
wxString name_tran(_("Custom Translation..."));
m_menuTranslationSeq->AppendRadioItem((int)(wxID_TRANSLATION_SEQ_START + i), name_tran);
m_menuTranslationSeq->AppendRadioItem(wxID_TRANSLATION_SEQ_START + i, name_tran);
m_toolTranslationSeq->Append(name_tran, reinterpret_cast<void*>(ZRCOLA_TRANSEQID_CUSTOM));
break;
}
@@ -145,14 +153,13 @@ wxZRColaFrame::wxZRColaFrame() :
// Register notification sink for language detection.
m_ulRefCount = 1;
m_tfSource = NULL;
m_dwCookie = MAXDWORD;
ITfInputProcessorProfiles *pProfiles;
HRESULT hr = CoCreateInstance(CLSID_TF_InputProcessorProfiles, NULL, CLSCTX_INPROC_SERVER, IID_ITfInputProcessorProfiles, (LPVOID*)&pProfiles);
if(SUCCEEDED(hr)) {
hr = pProfiles->QueryInterface(IID_ITfSource, (LPVOID*)&m_tfSource);
if(SUCCEEDED(hr)) {
hr = m_tfSource->AdviseSink(IID_ITfLanguageProfileNotifySink, (ITfLanguageProfileNotifySink*)this, &m_dwCookie);
if (FAILED(hr) || m_dwCookie == MAXDWORD) {
if (FAILED(hr) || m_dwCookie == -1) {
m_tfSource->Release();
m_tfSource = NULL;
}
@@ -186,16 +193,6 @@ wxZRColaFrame::wxZRColaFrame() :
m_toolComposition->SetState(m_toolComposition->GetState() & ~wxAUI_BUTTON_STATE_CHECKED);
}
m_fontpickerDestination->SetSelectedFont(m_fontDestination);
m_panel->SetDestinationFont(m_fontDestination);
if (m_warnPUA) {
m_menuItemWarnPUA->Check(true);
m_toolWarnPUA->SetState(m_toolWarnPUA->GetState() | wxAUI_BUTTON_STATE_CHECKED);
} else {
m_menuItemWarnPUA->Check(false);
m_toolWarnPUA->SetState(m_toolWarnPUA->GetState() & ~wxAUI_BUTTON_STATE_CHECKED);
}
// Update translation sequence selection.
for (unsigned int i = 0, n = m_toolTranslationSeq->GetCount(); ; i++) {
if (i < n) {
@@ -272,15 +269,12 @@ void wxZRColaFrame::OnForwardEvent(wxCommandEvent& event)
}
void wxZRColaFrame::OnInsertCharacterUpdate(wxUpdateUIEvent& event)
{
event.Check(m_chrSelect->IsVisible());
}
void wxZRColaFrame::OnInsertCharacter(wxCommandEvent& event)
{
m_chrSelect->Show(!m_chrSelect->IsVisible());
if (m_chrSelect->ShowModal() == wxID_OK && !m_chrSelect->m_char.empty()) {
m_panel->m_source->WriteText(m_chrSelect->m_char);
m_panel->m_source->SetFocus();
}
}
@@ -330,6 +324,7 @@ void wxZRColaFrame::OnSendAbort(wxCommandEvent& event)
{
if (m_hWndSource) {
// Return focus to the source window.
::SetWindowPos(m_hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
if (m_wasIconised) Iconize();
::SetActiveWindow(m_hWndSource);
::SetForegroundWindow(m_hWndSource);
@@ -344,10 +339,9 @@ void wxZRColaFrame::OnSendAbort(wxCommandEvent& event)
}
void wxZRColaFrame::OnComposition(wxCommandEvent& event)
void wxZRColaFrame::OnCompositionMenu(wxCommandEvent& event)
{
m_composition = !m_composition;
m_menuItemComposition->Check(m_composition);
m_composition = m_menuItemComposition->IsChecked();
m_toolComposition->SetState((m_toolComposition->GetState() & ~wxAUI_BUTTON_STATE_CHECKED) | (m_composition ? wxAUI_BUTTON_STATE_CHECKED : 0));
m_toolbarTranslate->Refresh();
@@ -359,41 +353,14 @@ void wxZRColaFrame::OnComposition(wxCommandEvent& event)
}
void wxZRColaFrame::OnFontDestinationChanged(wxFontPickerEvent& event)
void wxZRColaFrame::OnCompositionToolbar(wxCommandEvent& event)
{
m_fontDestination = event.GetFont();
m_panel->SetDestinationFont(m_fontDestination);
m_panel->RestyleDestination();
m_composition = (m_toolComposition->GetState() & wxAUI_BUTTON_STATE_CHECKED) ? true : false;
m_menuItemComposition->Check(m_composition);
event.Skip();
}
void wxZRColaFrame::OnFontDestination(wxCommandEvent& event)
{
wxFontData data;
data.SetInitialFont(m_fontDestination);
wxFontDialog dlg(this, data);
if (dlg.ShowModal() == wxID_OK)
{
data = dlg.GetFontData();
m_fontDestination = data.GetChosenFont();
m_fontpickerDestination->SetSelectedFont(m_fontDestination);
m_panel->SetDestinationFont(m_fontDestination);
m_panel->RestyleDestination();
}
event.Skip();
}
void wxZRColaFrame::OnWarnPUA(wxCommandEvent& event)
{
m_warnPUA = !m_warnPUA;
m_menuItemWarnPUA->Check(m_warnPUA);
m_toolWarnPUA->SetState((m_toolWarnPUA->GetState() & ~wxAUI_BUTTON_STATE_CHECKED) | (m_warnPUA ? wxAUI_BUTTON_STATE_CHECKED : 0));
m_toolbarDestination->Refresh();
m_panel->RestyleDestination();
// Notify source text something changed and should re-translate.
wxCommandEvent event2(wxEVT_COMMAND_TEXT_UPDATED);
m_panel->m_source->ProcessWindowEvent(event2);
event.Skip();
}
@@ -460,20 +427,6 @@ void wxZRColaFrame::OnToolbarTranslate(wxCommandEvent& event)
}
void wxZRColaFrame::OnToolbarDestinationUpdate(wxUpdateUIEvent& event)
{
event.Check(m_mgr.GetPane(m_toolbarDestination).IsShown());
}
void wxZRColaFrame::OnToolbarDestination(wxCommandEvent& event)
{
wxAuiPaneInfo &paneInfo = m_mgr.GetPane(m_toolbarDestination);
paneInfo.Show(!paneInfo.IsShown());
m_mgr.Update();
}
void wxZRColaFrame::OnTranslationSeqMenu(wxCommandEvent& event)
{
int idx = event.GetId() - wxID_TRANSLATION_SEQ_DEFAULT;
@@ -537,7 +490,6 @@ void wxZRColaFrame::OnHelpShortcuts(wxCommandEvent& event)
#ifdef __WXMSW__
// Search and try to launch installed PDF.
#pragma warning(suppress: 26812) // INSTALLSTATE is unscoped.
INSTALLSTATE pdf_is = ::MsiGetComponentPath(_T(PRODUCT_VERSION_GUID), _T("{68AC2C38-10E2-41A3-B92C-844C03FFDF6A}"), pdf_path);
if ((pdf_is == INSTALLSTATE_LOCAL || pdf_is == INSTALLSTATE_SOURCE) &&
wxFileExists(pdf_path) &&
@@ -639,10 +591,10 @@ void wxZRColaFrame::DoSend(const wxString& str)
{
// Prepare the INPUT table.
wxString::size_type n = str.length();
wxString::const_iterator i_str = str.begin();
auto i_str = str.begin();
std::vector<INPUT> input;
input.reserve(n*2);
for (std::vector<INPUT>::size_type i = 0; i < n; i++, ++i_str) {
for (std::vector<INPUT>::size_type i = 0; i < n; i++, i_str++) {
wxString::char_type c = *i_str;
// Add key down event.
@@ -657,11 +609,12 @@ void wxZRColaFrame::DoSend(const wxString& str)
}
// Return focus to the source window and send the input.
::SetWindowPos(m_hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
if (m_wasIconised) Iconize();
::SetActiveWindow(m_hWndSource);
::SetForegroundWindow(m_hWndSource);
::Sleep(200);
::SendInput((UINT)input.size(), input.data(), sizeof(INPUT));
::SendInput(input.size(), input.data(), sizeof(INPUT));
m_hWndSource = NULL;
// Select all input in source and destination to prepare for the overwrite next time.
@@ -678,6 +631,7 @@ void wxZRColaFrame::DoCopyAndReturn(const wxString& str)
}
// Return focus to the source window.
::SetWindowPos(m_hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
if (m_wasIconised) Iconize();
::SetActiveWindow(m_hWndSource);
::SetForegroundWindow(m_hWndSource);
@@ -746,6 +700,7 @@ WXLRESULT wxZRColaFrame::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM
Show(true);
Iconize(false);
Raise();
::SetWindowPos(m_hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
::SetActiveWindow(m_hWnd);
//} else if (wxAppBarIsDocked(m_state)) {
// // ZRCola window is currently docked.
@@ -791,17 +746,6 @@ void wxPersistentZRColaFrame::Save() const
SaveValue(wxT("composition"), wnd->m_composition);
SaveValue(wxT("transeqId"), static_cast<int>(wnd->m_transeq_id));
#pragma warning(push)
#pragma warning(disable: 26812) // wxWidgets font enums are unscoped.
SaveValue(wxT("fontDestinationSize" ), wnd->m_fontDestination.GetPointSize());
SaveValue(wxT("fontDestinationFamily" ), wnd->m_fontDestination.GetFamily());
SaveValue(wxT("fontDestinationStyle" ), wnd->m_fontDestination.GetStyle());
SaveValue(wxT("fontDestinationWeight" ), wnd->m_fontDestination.GetWeight());
SaveValue(wxT("fontDestinationIsUnderlined"), wnd->m_fontDestination.GetUnderlined());
SaveValue(wxT("fontDestinationFace" ), wnd->m_fontDestination.GetFaceName());
#pragma warning(pop)
SaveValue(wxT("warnPUA"), wnd->m_warnPUA);
wxPersistentZRColaComposerPanel(wnd->m_panel).Save();
wxPersistentZRColaCharacterCatalogPanel(wnd->m_panelChrCat).Save();
}
@@ -816,7 +760,7 @@ bool wxPersistentZRColaFrame::Restore()
int num;
if (RestoreValue(wxT("transeqId"), &num))
wnd->m_transeq_id = (ZRCola::transeqid_t)num;
wnd->m_transeq_id = num;
bool b;
if (RestoreValue(wxT("composition"), &b))
@@ -824,23 +768,6 @@ bool wxPersistentZRColaFrame::Restore()
else
wnd->m_composition = wnd->m_transeq_id == ZRCOLA_TRANSEQID_DEFAULT;
int fontSize = 20, fontFamily = wxFONTFAMILY_DEFAULT, fontStyle = wxFONTSTYLE_NORMAL, fontWeight = wxFONTWEIGHT_NORMAL;
bool fontIsUnderlined = false;
wxString fontFace(wxT("ZRCola"));
if (RestoreValue(wxT("fontDestinationSize" ), &fontSize) &&
RestoreValue(wxT("fontDestinationFamily" ), &fontFamily) &&
RestoreValue(wxT("fontDestinationStyle" ), &fontStyle) &&
RestoreValue(wxT("fontDestinationWeight" ), &fontWeight) &&
RestoreValue(wxT("fontDestinationIsUnderlined"), &fontIsUnderlined) &&
RestoreValue(wxT("fontDestinationFace" ), &fontFace))
wnd->m_fontDestination = wxFont(fontSize, (wxFontFamily)fontFamily, (wxFontStyle)fontStyle, (wxFontWeight)fontWeight, fontIsUnderlined, fontFace);
else
wnd->m_fontDestination = wxFont(20, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxT("ZRCola"));
if (RestoreValue(wxT("warnPUA"), &b))
wnd->m_warnPUA = b;
else
wnd->m_warnPUA = false;
int guiLevel;
return RestoreValue(wxT("guiLevel"), &guiLevel) && guiLevel == s_guiLevel ? wxPersistentTLWEx::Restore() : true;
}

View File

@@ -1,6 +1,20 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
///
@@ -12,11 +26,7 @@ class wxPersistentZRColaFrame;
#pragma once
#include <wxex/common.h>
#pragma warning(push)
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
#include "zrcolagui.h"
#pragma warning(pop)
#include "zrcolachrslct.h"
#include "zrcolachrreq.h"
#include "zrcolasettings.h"
@@ -24,10 +34,7 @@ class wxPersistentZRColaFrame;
#include <zrcola/language.h>
#include <zrcola/translate.h>
#include <wxex/persist/toplevel.h>
#pragma warning(push)
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
#include <wx/taskbar.h>
#pragma warning(pop)
#if defined(__WXMSW__)
#include <msctf.h>
#endif
@@ -68,7 +75,6 @@ protected:
void OnExit(wxCommandEvent& event);
void OnForwardEventUpdate(wxUpdateUIEvent& event);
void OnForwardEvent(wxCommandEvent& event);
void OnInsertCharacterUpdate(wxUpdateUIEvent& event);
void OnInsertCharacter(wxCommandEvent& event);
void OnSendUpdate(wxUpdateUIEvent& event);
void OnSendDestination(wxCommandEvent& event);
@@ -76,10 +82,8 @@ protected:
void OnSendSource(wxCommandEvent& event);
void OnCopySourceAndReturn(wxCommandEvent& event);
void OnSendAbort(wxCommandEvent& event);
void OnComposition(wxCommandEvent& event);
virtual void OnFontDestinationChanged(wxFontPickerEvent& event);
void OnFontDestination(wxCommandEvent& event);
void OnWarnPUA(wxCommandEvent& event);
void OnCompositionMenu(wxCommandEvent& event);
void OnCompositionToolbar(wxCommandEvent& event);
void OnSettings(wxCommandEvent& event);
virtual void OnIdle(wxIdleEvent& event);
void OnTaskbarIconClick(wxTaskBarIconEvent& event);
@@ -88,8 +92,6 @@ protected:
void OnToolbarEdit(wxCommandEvent& event);
void OnToolbarTranslateUpdate(wxUpdateUIEvent& event);
void OnToolbarTranslate(wxCommandEvent& event);
void OnToolbarDestinationUpdate(wxUpdateUIEvent& event);
void OnToolbarDestination(wxCommandEvent& event);
void OnTranslationSeqMenu(wxCommandEvent& event);
virtual void OnTranslationSeqChoice(wxCommandEvent& event);
void OnPanelCharacterCatalogUpdate(wxUpdateUIEvent& event);
@@ -139,8 +141,6 @@ protected:
wxZRColaCharRequest *m_chrReq; ///< Request a New Character dialog
wxZRColaSettings *m_settings; ///< Configuration dialog
bool m_composition; ///< Is (de)composition enabled?
wxFont m_fontDestination; ///< Destination window font
bool m_warnPUA; ///< Mark Private-Use-Area characters in destination text
ZRCola::transeqid_t m_transeq_id; ///< Translation sequence ID
wxZRColaTranslationSeq *m_transeq; ///< Custom translation sequence dialog
};

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,12 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Oct 26 2018)
// C++ code generated with wxFormBuilder (version Aug 8 2018)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#pragma once
#ifndef __ZRCOLAGUI_H__
#define __ZRCOLAGUI_H__
#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
@@ -25,7 +26,6 @@ class wxZRColaCharGrid;
#include <wx/aui/aui.h>
#include <wx/aui/auibar.h>
#include <wx/choice.h>
#include <wx/fontpicker.h>
class wxZRColaCharacterCatalogPanel;
class wxZRColaComposerPanel;
#include <wx/statusbr.h>
@@ -55,10 +55,10 @@ class wxZRColaComposerPanel;
///////////////////////////////////////////////////////////////////////////////
/// Class wxZRColaFrameBase
///////////////////////////////////////////////////////////////////////////////
class wxZRColaFrameBase : public wxFrame
class wxZRColaFrameBase : public wxFrame
{
private:
protected:
enum
{
@@ -68,75 +68,68 @@ class wxZRColaFrameBase : public wxFrame
wxID_SEND_SOURCE,
wxID_COPY_SOURCE_AND_RETURN,
wxID_SEND_ABORT,
wxID_COMPOSITION,
wxID_FONT_DESTINATION,
wxID_WARN_PUA,
wxID_COMPOSITION_MENU,
wxID_SETTINGS,
wxID_TOOLBAR_EDIT,
wxID_TOOLBAR_TRANSLATE,
wxID_TOOLBAR_DESTINATION,
wxID_PANEL_CHRGRPS,
wxID_HELP_INSTRUCTIONS,
wxID_HELP_SHORTCUTS,
wxID_HELP_REQCHAR,
wxID_HELP_UPDATE
wxID_HELP_UPDATE,
wxID_COMPOSITION_TOOLBAR
};
wxMenuBar* m_menubar;
wxMenu* m_menuProgram;
wxMenu* m_menuEdit;
wxMenuItem* m_menuItemComposition;
wxMenu* m_menuTranslationSeq;
wxMenuItem* m_menuItemWarnPUA;
wxMenu* m_menuView;
wxMenu* m_menuHelp;
wxAuiToolBar* m_toolbarEdit;
wxAuiToolBarItem* m_toolEditCut;
wxAuiToolBarItem* m_toolEditCopy;
wxAuiToolBarItem* m_toolEditPaste;
wxAuiToolBarItem* m_toolEditCut;
wxAuiToolBarItem* m_toolEditCopy;
wxAuiToolBarItem* m_toolEditPaste;
wxAuiToolBar* m_toolbarTranslate;
wxAuiToolBarItem* m_toolCharSelect;
wxAuiToolBarItem* m_toolSendDestination;
wxAuiToolBarItem* m_toolSendSource;
wxAuiToolBarItem* m_toolComposition;
wxAuiToolBarItem* m_toolCharSelect;
wxAuiToolBarItem* m_toolSendDestination;
wxAuiToolBarItem* m_toolSendSource;
wxAuiToolBarItem* m_toolComposition;
wxChoice* m_toolTranslationSeq;
wxAuiToolBar* m_toolbarDestination;
wxFontPickerCtrl* m_fontpickerDestination;
wxAuiToolBarItem* m_toolWarnPUA;
wxZRColaCharacterCatalogPanel* m_panelChrCat;
wxStatusBar* m_statusBar;
// Virtual event handlers, overide them in your derived class
virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
virtual void OnIconize( wxIconizeEvent& event ) { event.Skip(); }
virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
virtual void OnTranslationSeqChoice( wxCommandEvent& event ) { event.Skip(); }
virtual void OnFontDestinationChanged( wxFontPickerEvent& event ) { event.Skip(); }
public:
wxZRColaComposerPanel* m_panel;
wxZRColaFrameBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("ZRCola"), const wxPoint& pos = wxDefaultPosition, long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL, const wxString& name = wxT("ZRCola") );
wxAuiManager m_mgr;
~wxZRColaFrameBase();
};
///////////////////////////////////////////////////////////////////////////////
/// Class wxZRColaComposerPanelBase
///////////////////////////////////////////////////////////////////////////////
class wxZRColaComposerPanelBase : public wxPanel
class wxZRColaComposerPanelBase : public wxPanel
{
private:
protected:
enum
{
wxID_TIMER_SAVE = 1000
};
wxSplitterWindow* m_splitterSource;
wxPanel* m_panelSourceEdit;
wxPanel* m_panelSourceHex;
@@ -146,7 +139,7 @@ class wxZRColaComposerPanelBase : public wxPanel
wxPanel* m_panelDestinationHex;
wxTextCtrl* m_destinationHex;
wxTimer m_timerSave;
// Virtual event handlers, overide them in your derived class
virtual void OnSourcePaint( wxPaintEvent& event ) { event.Skip(); }
virtual void OnSourceText( wxCommandEvent& event ) { event.Skip(); }
@@ -155,62 +148,62 @@ class wxZRColaComposerPanelBase : public wxPanel
virtual void OnDestinationText( wxCommandEvent& event ) { event.Skip(); }
virtual void OnDestinationHexPaint( wxPaintEvent& event ) { event.Skip(); }
virtual void OnSaveTimer( wxTimerEvent& event ) { event.Skip(); }
public:
wxTextCtrl* m_source;
wxTextCtrl* m_destination;
wxZRColaComposerPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxT("ZRColaComposerPanel") );
wxZRColaComposerPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL, const wxString& name = wxT("ZRColaComposerPanel") );
~wxZRColaComposerPanelBase();
void m_splitterSourceOnIdle( wxIdleEvent& )
{
m_splitterSource->SetSashPosition( FromDIP(-5) );
m_splitterSource->Disconnect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaComposerPanelBase::m_splitterSourceOnIdle ), NULL, this );
}
void m_splitterDestinationOnIdle( wxIdleEvent& )
{
m_splitterDestination->SetSashPosition( FromDIP(-5) );
m_splitterDestination->Disconnect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaComposerPanelBase::m_splitterDestinationOnIdle ), NULL, this );
}
};
///////////////////////////////////////////////////////////////////////////////
/// Class wxZRColaCharacterCatalogPanelBase
///////////////////////////////////////////////////////////////////////////////
class wxZRColaCharacterCatalogPanelBase : public wxPanel
class wxZRColaCharacterCatalogPanelBase : public wxPanel
{
private:
protected:
wxChoice* m_choice;
wxZRColaCharGrid* m_grid;
wxCheckBox* m_show_all;
// Virtual event handlers, overide them in your derived class
virtual void OnChoice( wxCommandEvent& event ) { event.Skip(); }
virtual void OnGridClick( wxGridEvent& event ) { event.Skip(); }
virtual void OnGridKeyDown( wxKeyEvent& event ) { event.Skip(); }
virtual void OnShowAll( wxCommandEvent& event ) { event.Skip(); }
public:
wxZRColaCharacterCatalogPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxT("ZRColaCharacterCatalog") );
wxZRColaCharacterCatalogPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL, const wxString& name = wxT("ZRColaCharacterCatalog") );
~wxZRColaCharacterCatalogPanelBase();
};
///////////////////////////////////////////////////////////////////////////////
/// Class wxZRColaCharSelectBase
///////////////////////////////////////////////////////////////////////////////
class wxZRColaCharSelectBase : public wxDialog
class wxZRColaCharSelectBase : public wxDialog
{
private:
protected:
wxSearchCtrl* m_search;
wxHyperlinkCtrl* m_search_more;
@@ -231,8 +224,10 @@ class wxZRColaCharSelectBase : public wxDialog
wxHyperlinkCtrl* m_navigateBack;
wxHyperlinkCtrl* m_navigateForward;
wxZRColaCharGrid* m_gridRelated;
wxButton* m_buttonInsert;
wxStdDialogButtonSizer* m_sdbSizerButtons;
wxButton* m_sdbSizerButtonsOK;
wxButton* m_sdbSizerButtonsCancel;
// Virtual event handlers, overide them in your derived class
virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
virtual void OnSearchText( wxCommandEvent& event ) { event.Skip(); }
@@ -252,24 +247,23 @@ class wxZRColaCharSelectBase : public wxDialog
virtual void OnNavigateBack( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnNavigateForward( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnRelatedSelectCell( wxGridEvent& event ) { event.Skip(); }
virtual void OnInsert( wxCommandEvent& event ) { event.Skip(); }
virtual void OnInsertUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }
virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); }
public:
wxZRColaCharSelectBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Character Search"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaCharSelect") );
wxZRColaCharSelectBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Character Search"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaCharSelect") );
~wxZRColaCharSelectBase();
};
///////////////////////////////////////////////////////////////////////////////
/// Class wxZRColaSettingsBase
///////////////////////////////////////////////////////////////////////////////
class wxZRColaSettingsBase : public wxDialog
class wxZRColaSettingsBase : public wxDialog
{
private:
protected:
wxListbook* m_listbook;
wxPanel* m_panelLanguage;
@@ -284,28 +278,28 @@ class wxZRColaSettingsBase : public wxDialog
wxButton* m_sdbSizerButtonsOK;
wxButton* m_sdbSizerButtonsApply;
wxButton* m_sdbSizerButtonsCancel;
// Virtual event handlers, overide them in your derived class
virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }
virtual void OnLanguageUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
virtual void OnApplyButtonClick( wxCommandEvent& event ) { event.Skip(); }
virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); }
public:
wxZRColaSettingsBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaSettings") );
wxZRColaSettingsBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaSettings") );
~wxZRColaSettingsBase();
};
///////////////////////////////////////////////////////////////////////////////
/// Class wxZRColaAboutBase
///////////////////////////////////////////////////////////////////////////////
class wxZRColaAboutBase : public wxDialog
class wxZRColaAboutBase : public wxDialog
{
private:
protected:
wxStaticBitmap* m_bitmapIcon;
wxStaticText* m_staticTextZRCola;
@@ -317,46 +311,46 @@ class wxZRColaAboutBase : public wxDialog
wxTextCtrl* m_declaration;
wxStdDialogButtonSizer* m_sdbSizerButtons;
wxButton* m_sdbSizerButtonsOK;
public:
wxZRColaAboutBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About ZRCola"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaAbout") );
wxZRColaAboutBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About ZRCola"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaAbout") );
~wxZRColaAboutBase();
};
///////////////////////////////////////////////////////////////////////////////
/// Class wxZRColaUpdaterBase
///////////////////////////////////////////////////////////////////////////////
class wxZRColaUpdaterBase : public wxDialog
class wxZRColaUpdaterBase : public wxDialog
{
private:
protected:
wxTextCtrl* m_log;
wxButton* m_buttonUpdate;
wxButton* m_buttonClose;
// Virtual event handlers, overide them in your derived class
virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
virtual void OnUpdate( wxCommandEvent& event ) { event.Skip(); }
virtual void OnClose( wxCommandEvent& event ) { event.Skip(); }
public:
wxZRColaUpdaterBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Product Update"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaUpdater") );
wxZRColaUpdaterBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Product Update"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaUpdater") );
~wxZRColaUpdaterBase();
};
///////////////////////////////////////////////////////////////////////////////
/// Class wxZRColaCharRequestBase
///////////////////////////////////////////////////////////////////////////////
class wxZRColaCharRequestBase : public wxDialog
class wxZRColaCharRequestBase : public wxDialog
{
private:
protected:
wxStaticText* m_characterLbl;
wxTextCtrl* m_character;
@@ -367,25 +361,25 @@ class wxZRColaCharRequestBase : public wxDialog
wxStdDialogButtonSizer* m_sdbSizerButtons;
wxButton* m_sdbSizerButtonsOK;
wxButton* m_sdbSizerButtonsCancel;
// Virtual event handlers, overide them in your derived class
virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); }
public:
wxZRColaCharRequestBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Request a New Character"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaCharRequest") );
wxZRColaCharRequestBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Request a New Character"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaCharRequest") );
~wxZRColaCharRequestBase();
};
///////////////////////////////////////////////////////////////////////////////
/// Class wxZRColaTranslationSeqBase
///////////////////////////////////////////////////////////////////////////////
class wxZRColaTranslationSeqBase : public wxDialog
class wxZRColaTranslationSeqBase : public wxDialog
{
private:
protected:
wxStaticText* m_transLbl;
wxStaticText* m_availableLbl;
@@ -399,7 +393,7 @@ class wxZRColaTranslationSeqBase : public wxDialog
wxStdDialogButtonSizer* m_sdbSizerButtons;
wxButton* m_sdbSizerButtonsOK;
wxButton* m_sdbSizerButtonsCancel;
// Virtual event handlers, overide them in your derived class
virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }
virtual void OnUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
@@ -412,12 +406,13 @@ class wxZRColaTranslationSeqBase : public wxDialog
virtual void OnSelectedUp( wxCommandEvent& event ) { event.Skip(); }
virtual void OnSelectedDown( wxCommandEvent& event ) { event.Skip(); }
virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); }
public:
wxZRColaTranslationSeqBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Custom Translation Sequence"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaTranslationSeq") );
wxZRColaTranslationSeqBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Custom Translation Sequence"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaTranslationSeq") );
~wxZRColaTranslationSeqBase();
};
#endif //__ZRCOLAGUI_H__

View File

@@ -1,9 +1,23 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#include "pch.h"
#include "stdafx.h"
//////////////////////////////////////////////////////////////////////////
@@ -33,7 +47,7 @@ bool wxZRColaKeyHandler::ProcessEvent(wxEvent& event)
if (!chr) {
int key = e.GetKeyCode();
if (WXK_NUMPAD0 <= key && key <= WXK_NUMPAD9)
chr = '0' + (wxChar)(key - WXK_NUMPAD0);
chr = '0' + (key - WXK_NUMPAD0);
}
wxFrame *pFrame = wxDynamicCast(dynamic_cast<ZRColaApp*>(wxTheApp)->m_mainWnd, wxFrame);
if (('0' <= chr && chr <= '9' || 'A' <= chr && chr <= 'F') && m_insert_seq.size() < 4) {
@@ -67,14 +81,14 @@ bool wxZRColaKeyHandler::ProcessEvent(wxEvent& event)
{
// Parse key event and save it at the end of the key sequence.
ZRCola::keyseq_db::keyseq::key_t key;
key.key = (wchar_t)e.GetRawKeyCode();
key.key = e.GetRawKeyCode();
#if defined(__WXMSW__)
// Translate from local keyboard to scan code.
key.key = static_cast<wchar_t>(::MapVirtualKey(key.key, MAPVK_VK_TO_VSC) & 0xffff);
key.key = ::MapVirtualKey(key.key, MAPVK_VK_TO_VSC);
// Translate from scan code to U.S. Keyboard.
static const HKL s_hkl = ::LoadKeyboardLayout(_T("00000409"), 0);
key.key = static_cast<wchar_t>(::MapVirtualKeyEx(key.key, MAPVK_VSC_TO_VK, s_hkl) & 0xffff);
key.key = ::MapVirtualKeyEx(key.key, MAPVK_VSC_TO_VK, s_hkl);
#endif
key.modifiers =
(e.ShiftDown() ? ZRCola::keyseq_db::keyseq::SHIFT : 0) |
@@ -133,7 +147,7 @@ bool wxZRColaKeyHandler::ProcessEvent(wxEvent& event)
if (count) {
// Zero terminate sequence and parse the Unicode value.
m_insert_seq.push_back(0);
wchar_t chr = (wchar_t)strtoul(m_insert_seq.data(), NULL, 16);
wchar_t chr = strtoul(m_insert_seq.data(), NULL, 16);
if (chr) {
wxObject *obj = event.GetEventObject();

View File

@@ -1,6 +1,20 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
///
@@ -13,11 +27,7 @@ class wxZRColaKeyHandler;
#include <zrcolaui/keyboard.h>
#include <wxex/common.h>
#pragma warning(push)
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
#include <wx/event.h>
#pragma warning(pop)
#include <vector>

View File

@@ -1,9 +1,23 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#include "pch.h"
#include "stdafx.h"
//////////////////////////////////////////////////////////////////////////
@@ -22,7 +36,7 @@ wxZRColaSettings::wxZRColaSettings(wxWindow* parent) :
wxString
label(lang.name(), lang.name_len()),
label_tran(wxGetTranslation(label, wxT("ZRCola-zrcdb")));
m_languages->Insert(label_tran, (unsigned int)i);
m_languages->Insert(label_tran, i);
}
}
@@ -45,7 +59,7 @@ void wxZRColaSettings::OnInitDialog(wxInitDialogEvent& event)
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
ZRCola::language_db::indexLang::size_type start;
m_languages->Select(app->m_lang_db.idxLang.find(ZRCola::language_db::language(m_lang), start) ? (int)start : -1);
m_languages->Select(app->m_lang_db.idxLang.find(ZRCola::language_db::language(m_lang), start) ? start : -1);
}

View File

@@ -1,6 +1,20 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
///
@@ -12,11 +26,7 @@ class wxPersistentZRColaSettings;
#pragma once
#include <wxex/common.h>
#pragma warning(push)
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
#include "zrcolagui.h"
#pragma warning(pop)
#include <wxex/persist/toplevel.h>
#include <vector>

View File

@@ -1,9 +1,23 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#include "pch.h"
#include "stdafx.h"
//////////////////////////////////////////////////////////////////////////
@@ -226,7 +240,7 @@ bool wxPersistentZRColaTranslationSeq::Restore()
if (RestoreValue(wxT("transeq"), &str)) {
std::vector<ZRCola::transetid_t> transet;
for (wxStringTokenizer tok(str, wxT("|")); tok.HasMoreTokens(); ) {
ZRCola::transetid_t val = (ZRCola::transetid_t)_tcstoul(tok.GetNextToken().c_str(), NULL, 10);
unsigned long val = _tcstoul(tok.GetNextToken().c_str(), NULL, 10);
for (size_t i = 0, n = app->m_ts_db.idxTranSet.size(); i < n; i++) {
const ZRCola::transet_db::transet &cg = app->m_ts_db.idxTranSet[i];
if (cg.set == val) {

View File

@@ -1,6 +1,20 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
///
@@ -12,11 +26,7 @@ class wxPersistentZRColaTranslationSeq;
#pragma once
#include <wxex/common.h>
#pragma warning(push)
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
#include "zrcolagui.h"
#pragma warning(pop)
#include <zrcola/translate.h>
#include <wxex/persist/toplevel.h>
#include <vector>

View File

@@ -1,9 +1,23 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#include "pch.h"
#include "stdafx.h"
//////////////////////////////////////////////////////////////////////////
@@ -27,7 +41,6 @@ wxZRColaUpdater::wxZRColaUpdater(wxWindow* parent) :
// Prepare Updater.
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
#pragma warning(suppress: 26812) // wxLanguage is unscoped.
m_updater = new wxUpdCheckThread(app->m_lang_ui == wxLANGUAGE_DEFAULT ? wxT("en_US") : wxLocale::GetLanguageCanonicalName(app->m_lang_ui), this);
//if (m_updater->Run() != wxTHREAD_NO_ERROR) {
// wxFAIL_MSG(wxT("Can't create the thread!"));
@@ -67,7 +80,7 @@ wxZRColaUpdater::~wxZRColaUpdater()
void wxZRColaUpdater::OnIdle(wxIdleEvent& event)
{
if (!m_finished) {
m_buttonUpdate->Enable(m_updater->CheckForUpdate() == wxUpdCheckThread::wxResult::UpdateAvailable);
m_buttonUpdate->Enable(m_updater->CheckForUpdate() == wxUpdCheckThread::wxUpdUpdateAvailable);
m_finished = true;
}
}

View File

@@ -1,6 +1,20 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
///
@@ -11,16 +25,11 @@ class wxZRColaUpdater;
#pragma once
#include <wxex/common.h>
#pragma warning(push)
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
#include "zrcolagui.h"
#pragma warning(pop)
#include <Updater/chkthread.h>
#pragma warning(push)
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
#include <wx/log.h>
#pragma warning(pop)
///

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<OutDir>..\output\$(Platform).$(Configuration)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>..\lib\wxExtend\include;..\lib\WinStd\include;..\lib\stdex\include;..\lib\libZRCola\include;..\lib\libZRColaUI\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemGroup />
</Project>

Binary file not shown.

View File

@@ -13,51 +13,51 @@
<PropertyGroup Label="Globals">
<ProjectGuid>{87A3ADEC-1BE4-42E4-92B8-B742F3D21BC4}</ProjectGuid>
<RootNamespace>ZRColaCompile</RootNamespace>
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)'=='Debug'">
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)'=='Release'">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="PropertySheets">
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\include\$(Platform).props" />
<Import Project="..\include\$(Configuration).props" />
<Import Project="ZRColaCompile.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\include\$(Platform).props" />
<Import Project="..\include\$(Configuration).props" />
<Import Project="ZRColaCompile.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<OutDir>..\output\$(Platform).$(Configuration)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>..\lib\wxExtend\include;..\lib\WinStd\include;..\lib\stdex\include;..\lib\libZRCola\include;..\lib\libZRColaUI\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="dbsource.cpp" />
<ClCompile Include="main.cpp" />
<ClCompile Include="parse.cpp" />
<ClCompile Include="pch.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="dbsource.h" />
<ClInclude Include="parse.h" />
<ClInclude Include="pch.h" />
<ClInclude Include="stdafx.h" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\lib\libZRColaUI\build\libZRColaUI.vcxproj">
@@ -66,10 +66,10 @@
<ProjectReference Include="..\lib\libZRCola\build\libZRCola.vcxproj">
<Project>{3c61929e-7289-4101-8d0a-da22d6e1aea8}</Project>
</ProjectReference>
<ProjectReference Include="..\lib\WinStd\build\WinStd.vcxproj">
<ProjectReference Include="..\lib\WinStd\build\WinStd-15.0.vcxproj">
<Project>{47399d91-7eb9-41de-b521-514ba5db0c43}</Project>
</ProjectReference>
<ProjectReference Include="..\lib\wxExtend\build\wxExtendLib.vcxproj">
<ProjectReference Include="..\lib\wxExtend\build\wxExtendLib-15.0.vcxproj">
<Project>{D3E29951-D9F5-486D-A167-20AE8E90B1FA}</Project>
</ProjectReference>
</ItemGroup>

View File

@@ -19,7 +19,7 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="pch.cpp">
<ClCompile Include="stdafx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="main.cpp">
@@ -33,7 +33,7 @@
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="pch.h">
<ClInclude Include="stdafx.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="dbsource.h">

View File

@@ -1,9 +1,23 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#include "pch.h"
#include "stdafx.h"
using namespace std;
using namespace stdex;
@@ -37,7 +51,7 @@ void ZRCola::DBSource::character_bank::build_related()
}
}
delete [] workers; // This line of code sounds horrible, I know.
delete workers; // This line of code sounds horrible, I know.
}
@@ -120,7 +134,7 @@ unsigned int __stdcall ZRCola::DBSource::character_bank::build_related_worker::p
// ZRCola::DBSource::character_desc_idx
//////////////////////////////////////////////////////////////////////////
void ZRCola::DBSource::character_desc_idx::parse_keywords(_In_ const wchar_t *str, _Inout_ set<wstring> &terms)
void ZRCola::DBSource::character_desc_idx::parse_keywords(const wchar_t *str, set<wstring> &terms)
{
wxASSERT_MSG(str, wxT("string is NULL"));
@@ -217,8 +231,7 @@ void ZRCola::DBSource::character_desc_idx::save(ZRCola::textindex<wchar_t, wchar
// ZRCola::DBSource
//////////////////////////////////////////////////////////////////////////
ZRCola::DBSource::DBSource() :
m_locale(nullptr)
ZRCola::DBSource::DBSource()
{
// Initialize ignore list.
m_terms_ignore.insert(L"letter");
@@ -264,10 +277,7 @@ bool ZRCola::DBSource::Open(LPCTSTR filename)
cn += L"Dbq=";
cn += filename;
cn += L";Uid=;Pwd=;";
#pragma warning(push)
#pragma warning(disable: 6387) // Connection15::Open() declaration is wrong: it defaults username and password parameters to NULL, but annotates them as required non-NULL.
hr = m_db->Open(bstr(cn.c_str()));
#pragma warning(pop)
if (SUCCEEDED(hr)) {
// Database open and ready.
m_filename = filename;
@@ -999,18 +1009,18 @@ bool ZRCola::DBSource::GetKeySequence(const com_obj<ADORecordset>& rs, ZRCola::D
if (keycode1) {
// First key in the sequence is complete.
keyseq::keycode kc1 = {
keyseq::keycode::translate_slen(static_cast<wchar_t>(keycode1 & 0xffff)),
keyseq::keycode::translate_slen(keycode1),
(modifiers & 0x100) != 0,
(modifiers & 0x200) != 0,
(modifiers & 0x400) != 0 };
ks.seq.push_back(kc1);
keyseq::keycode kc2 = { keyseq::keycode::translate_slen(static_cast<wchar_t>(keycode & 0xffff)), shift };
keyseq::keycode kc2 = { keyseq::keycode::translate_slen(keycode), shift };
ks.seq.push_back(kc2);
} else {
// First key in the sequence is only modifier(s).
keyseq::keycode kc1 = {
keyseq::keycode::translate_slen(static_cast<wchar_t>(keycode & 0xffff)),
keyseq::keycode::translate_slen(keycode),
shift || (modifiers & 0x100) != 0,
(modifiers & 0x200) != 0,
(modifiers & 0x400) != 0 };

View File

@@ -1,6 +1,20 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
@@ -17,11 +31,7 @@
#include <WinStd/COM.h>
#include <WinStd/Win.h>
#include <wxex/common.h>
#pragma warning(push)
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
#include <wx/debug.h>
#pragma warning(pop)
#pragma warning(push)
#pragma warning(disable: 4091)
@@ -50,8 +60,7 @@ namespace ZRCola {
int rank; ///< Sequence rank
std::wstring str; ///< Sequence string
inline charseq() :
rank(0)
inline charseq()
{
}
@@ -117,8 +126,6 @@ namespace ZRCola {
charseq src; ///< Source sequence
std::string norm; ///< Normalization footprint
charseq dst; ///< Destination sequence
inline translation() : set((int)ZRCOLA_TRANSEQID_DEFAULT) {}
};
@@ -130,8 +137,6 @@ namespace ZRCola {
int set; ///< ID
std::wstring src; ///< Source name
std::wstring dst; ///< Destination name
inline transet() : set((int)ZRCOLA_TRANSEQID_DEFAULT) {}
};
@@ -144,11 +149,6 @@ namespace ZRCola {
int rank; ///< Rank
std::wstring name; ///< Name
std::vector<int> sets; ///< Sets
inline transeq() :
seq(0),
rank(0)
{}
};
@@ -200,8 +200,6 @@ namespace ZRCola {
public:
ZRCola::langid_t lang; ///< Language ID
std::wstring name; ///< Name
inline language() : lang(ZRCola::langid_t::blank) {}
};
@@ -212,8 +210,6 @@ namespace ZRCola {
public:
std::wstring chr; ///> Character
ZRCola::langid_t lang; ///< Language ID
inline langchar() : lang(ZRCola::langid_t::blank) {}
};
@@ -227,8 +223,6 @@ namespace ZRCola {
std::wstring name; ///< Name
std::vector<wchar_t> chars; ///< Characters (zero-delimited)
std::vector<unsigned __int16> show; ///< Bit vector if particular character from \c chars is displayed initially
inline chrgrp() : grp(0), rank(0) {}
};
@@ -331,7 +325,7 @@ namespace ZRCola {
class character_desc_idx : public std::map<std::wstring, std::vector<wchar_t>, character_desc_idx_less>
{
public:
static void parse_keywords(_In_ const wchar_t *str, _Inout_ std::set<std::wstring> &terms);
static void parse_keywords(const wchar_t *str, std::set<std::wstring> &terms);
void add_keywords(const std::set<std::wstring> &terms, const std::wstring &chr, size_t sub = 0);
inline void add_keywords(const wchar_t *str, const std::wstring &chr, size_t sub = 0)
{
@@ -375,8 +369,6 @@ namespace ZRCola {
ZRCola::chrcatid_t cat; ///> Category ID
int rank; ///< Rank
std::wstring name; ///< Name
inline chrcat() : cat(ZRCola::chrcatid_t::blank), rank(0) {}
};
@@ -387,8 +379,6 @@ namespace ZRCola {
public:
std::wstring chr; ///> Character
int tag; ///< Tag ID
inline chrtag() : tag(0) {}
};
@@ -399,8 +389,6 @@ namespace ZRCola {
public:
int tag; ///< Tag ID
std::map<LCID, std::list<std::wstring> > names; ///< Names
inline tagname() : tag(0) {}
};
@@ -894,7 +882,7 @@ namespace ZRCola {
inline ZRCola::translation_db& operator<<(_Inout_ ZRCola::translation_db &db, _In_ const ZRCola::DBSource::translation &rec)
{
unsigned __int32 idx = db.data.size();
wxASSERT_MSG((int)0xffff0000 <= rec.set && rec.set <= (int)0x0000ffff, wxT("translation set id out of bounds"));
wxASSERT_MSG((int)0xffff8000 <= rec.set && rec.set <= (int)0x00007fff, wxT("translation set id out of bounds"));
db.data.push_back((unsigned __int16)rec.set);
wxASSERT_MSG((int)0xffff8000 <= rec.dst.rank && rec.dst.rank <= (int)0x00007fff, wxT("destination character rank out of bounds"));
db.data.push_back((unsigned __int16)rec.dst.rank);
@@ -918,7 +906,7 @@ inline ZRCola::translation_db& operator<<(_Inout_ ZRCola::translation_db &db, _I
inline ZRCola::transet_db& operator<<(_Inout_ ZRCola::transet_db &db, _In_ const ZRCola::DBSource::transet &rec)
{
unsigned __int32 idx = db.data.size();
wxASSERT_MSG((int)0xffff0000 <= rec.set && rec.set <= (int)0x0000ffff, wxT("translation set id out of bounds"));
wxASSERT_MSG((int)0xffff8000 <= rec.set && rec.set <= (int)0x00007fff, wxT("translation set id out of bounds"));
db.data.push_back((unsigned __int16)rec.set);
std::wstring::size_type n = rec.src.length();
wxASSERT_MSG(n <= 0xffff, wxT("translation set source name overflow"));

View File

@@ -1,9 +1,23 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#include "pch.h"
#include "stdafx.h"
using namespace std;
using namespace stdex;
@@ -20,9 +34,7 @@ public:
int rank_dst; ///< Destination character rank
string norm; ///< Normalization footprint
inline com_translation() :
rank_src(0),
rank_dst(0)
inline com_translation()
{
}
@@ -53,7 +65,7 @@ public:
{
}
inline com_translation(com_translation &&other) noexcept :
inline com_translation(com_translation &&other) :
rank_src( other.rank_src ),
rank_dst( other.rank_dst ),
norm (std::move(other.norm ))
@@ -70,7 +82,7 @@ public:
return *this;
}
inline com_translation& operator=(com_translation &&other) noexcept
inline com_translation& operator=(com_translation &&other)
{
if (this != std::addressof(other)) {
rank_src = other.rank_src ;
@@ -201,8 +213,8 @@ static inline set<ZRCola::DBSource::charseq> permutate_and_translate_inv(_In_ co
// Secondary permutation inverse translate.
auto res_perm = translate_inv(db_trans, db_np, str_perm.c_str(), path);
for (auto r = res_perm.cbegin(), r_end = res_perm.cend(); r != r_end; ++r)
res.insert(ZRCola::DBSource::charseq(r->rank + 1, r->str));
for (auto r = res_perm.begin(), r_end = res_perm.end(); r != r_end; ++r)
res.insert(ZRCola::DBSource::charseq(r->rank + 1, std::move(r->str)));
}
}
@@ -236,10 +248,10 @@ int _tmain(int argc, _TCHAR *argv[])
// Parse command line.
static const wxCmdLineEntryDesc cmdLineDesc[] =
{
{ wxCMD_LINE_SWITCH, "h" , "help" , _("Show this help message"), wxCMD_LINE_VAL_NONE , wxCMD_LINE_OPTION_HELP },
{ wxCMD_LINE_PARAM , NULL, NULL , _("<Input file>" ), wxCMD_LINE_VAL_STRING, wxCMD_LINE_OPTION_MANDATORY },
{ wxCMD_LINE_PARAM , NULL, NULL , _("<Output file>" ), wxCMD_LINE_VAL_STRING, wxCMD_LINE_OPTION_MANDATORY },
{ wxCMD_LINE_OPTION, NULL, "pot-cat", _("Output POT catalog" ), wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL },
{ wxCMD_LINE_SWITCH, "h" , "help", _("Show this help message"), wxCMD_LINE_VAL_NONE , wxCMD_LINE_OPTION_HELP },
{ wxCMD_LINE_PARAM , NULL, NULL , _("<input file>" ), wxCMD_LINE_VAL_STRING, wxCMD_LINE_OPTION_MANDATORY },
{ wxCMD_LINE_PARAM , NULL, NULL , _("<output file>" ), wxCMD_LINE_VAL_STRING, wxCMD_LINE_OPTION_MANDATORY },
{ wxCMD_LINE_PARAM , NULL, NULL , _("<output POT catalog>" ), wxCMD_LINE_VAL_STRING, wxCMD_LINE_OPTION },
{ wxCMD_LINE_NONE }
};
@@ -282,15 +294,13 @@ int _tmain(int argc, _TCHAR *argv[])
bool has_errors = false;
// Set of strings to translate.
wxString filenamePot;
bool build_pot = parser.Found("pot-cat", &filenamePot);
bool build_pot = parser.GetParamCount() > 2;
set<wstring> pot;
// Open file ID.
streamoff dst_start = idrec::open<ZRCola::recordid_t, ZRCola::recordsize_t>(dst, ZRCOLA_DB_ID);
ZRCola::translation_db db_trans;
ZRCola::transet_db db_transset;
normperm_db db_np;
{
@@ -361,14 +371,14 @@ int _tmain(int argc, _TCHAR *argv[])
assert(!res.empty());
// Add translation to temporary database.
for (auto r = res.cbegin(), r_end = res.cend(); r != r_end; ++r) {
for (auto r = res.begin(), r_end = res.end(); r != r_end; ++r) {
translation_db::mapped_type::mapped_type ct(d1->second.rank_src + r->rank, d1->second.rank_dst);
auto hit = t2->second.find(r->str);
if (hit != t2->second.end()) {
hit->second.rank_src = std::min<int>(hit->second.rank_src, ct.rank_src);
hit->second.rank_dst = std::max<int>(hit->second.rank_dst, ct.rank_dst);
} else
t2->second.insert(pair<translation_db::mapped_type::key_type, translation_db::mapped_type::mapped_type>(r->str, std::move(ct)));
t2->second.insert(pair<translation_db::mapped_type::key_type, translation_db::mapped_type::mapped_type>(std::move(r->str), std::move(ct)));
}
}
}
@@ -383,11 +393,11 @@ int _tmain(int argc, _TCHAR *argv[])
trans.set = 0;
for (auto t = db_temp2.cbegin(), t_end = db_temp2.cend(); t != t_end; ++t) {
// Add translation to index and data.
trans.dst.str = t->first;
trans.dst.str = std::move(t->first);
for (auto d = t->second.cbegin(), d_end = t->second.cend(); d != d_end; ++d) {
trans.dst.rank = d->second.rank_dst;
trans.src.rank = d->second.rank_src;
trans.src.str = d->first;
trans.src.str = std::move(d->first);
db_trans << trans;
}
}
@@ -407,28 +417,24 @@ int _tmain(int argc, _TCHAR *argv[])
if (src.SelectTranlationSets(rs)) {
size_t count = src.GetRecordsetCount(rs);
if (count < 0xffffffff) { // 4G check (-1 is reserved for error condition)
ZRCola::transet_db db;
// Preallocate memory.
db_transset.idxTranSet.reserve((count+1));
db_transset.data .reserve((count+1)*4);
db.idxTranSet.reserve((count+1));
db.data .reserve((count+1)*4);
// Parse translation sets and build index and data.
for (; !ZRCola::DBSource::IsEOF(rs); rs->MoveNext()) {
// Read translation set from the database.
ZRCola::DBSource::transet ts;
if (src.GetTranslationSet(rs, ts)) {
if (ts.set <= (int)ZRCOLA_TRANSEQID_DEFAULT) {
_ftprintf(stderr, wxT("%s: error ZCC0008: Translation set is using reserved ID %i.\n"), (LPCTSTR)filenameIn.c_str(), ts.set);
has_errors = true;
continue;
}
if (build_pot) {
pot.insert(ts.src);
pot.insert(ts.dst);
}
// Add translation set to index and data.
db_transset << ts;
db << ts;
// Get translations.
com_obj<ADORecordset> rs_tran;
@@ -456,6 +462,12 @@ int _tmain(int argc, _TCHAR *argv[])
} else
has_errors = true;
}
// Sort indices.
db.idxTranSet.sort();
// Write translation sets to file.
dst << ZRCola::transet_rec(db);
} else {
_ftprintf(stderr, wxT("%s: error ZCC0009: Error getting translation set count from database or too many translation sets.\n"), (LPCTSTR)filenameIn.c_str());
has_errors = true;
@@ -466,12 +478,6 @@ int _tmain(int argc, _TCHAR *argv[])
}
}
// Sort indices.
db_transset.idxTranSet.sort();
// Write translation sets to file.
dst << ZRCola::transet_rec(db_transset);
// Sort indices.
db_trans.idxSrc.sort();
db_trans.idxDst.sort();
@@ -909,6 +915,7 @@ int _tmain(int argc, _TCHAR *argv[])
}
if (!has_errors && build_pot) {
const wxString& filenamePot = parser.GetParam(2);
fstream dst_pot((LPCTSTR)filenamePot, ios_base::out | ios_base::trunc);
if (dst_pot.good()) {
dst_pot << "msgid \"\"" << endl

View File

@@ -1,9 +1,23 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2018-2021 Amebis
/*
Copyright 2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#include "pch.h"
#include "stdafx.h"
using namespace std;
using namespace stdex;

View File

@@ -1,6 +1,20 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2018-2021 Amebis
/*
Copyright 2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once

View File

@@ -1,6 +0,0 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
*/
#include "pch.h"

View File

@@ -1,45 +0,0 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
*/
#pragma once
#include "../include/version.h"
#include "dbsource.h"
#include "parse.h"
#include <wxex/common.h>
#include <wxex/comutils.h>
#pragma warning(push)
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
#include <wx/app.h>
#include <wx/cmdline.h>
#include <wx/config.h>
#include <wx/intl.h>
#pragma warning(pop)
#include <stdex/idrec.h>
#include <WinStd/Common.h>
#include <initguid.h> // GUID helper to prevent LNK2001 errors (unresolved external symbol IID_IADO...)
#pragma warning(push)
#pragma warning(disable: 4091)
#include <adoint.h>
#include <adoid.h>
#pragma warning(pop)
#include <process.h>
#include <tchar.h>
#include <stdlib.h>
#include <algorithm>
#include <codecvt>
#include <cwctype>
#include <fstream>
#include <memory>
#include <set>
#include <vector>

20
ZRColaCompile/stdafx.cpp Normal file
View File

@@ -0,0 +1,20 @@
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#include "stdafx.h"

56
ZRColaCompile/stdafx.h Normal file
View File

@@ -0,0 +1,56 @@
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "../include/version.h"
#include "dbsource.h"
#include "parse.h"
#include <wx/app.h>
#include <wx/cmdline.h>
#include <wx/config.h>
#include <wx/intl.h>
#include <wxex/common.h>
#include <wxex/comutils.h>
#include <stdex/idrec.h>
#include <WinStd/Common.h>
#include <initguid.h> // GUID helper to prevent LNK2001 errors (unresolved external symbol IID_IADO...)
#pragma warning(push)
#pragma warning(disable: 4091)
#include <adoint.h>
#include <adoid.h>
#pragma warning(pop)
#include <process.h>
#include <tchar.h>
#include <stdlib.h>
#include <algorithm>
#include <codecvt>
#include <cwctype>
#include <fstream>
#include <memory>
#include <set>
#include <vector>

View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets">
<Import Project="..\include\$(Platform).props" />
<Import Project="..\include\$(Configuration).props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<OutDir>..\output\$(Platform).$(Configuration)\</OutDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<CompileAsManaged>false</CompileAsManaged>
<BufferSecurityCheck>false</BufferSecurityCheck>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<SmallerTypeCheck>false</SmallerTypeCheck>
</ClCompile>
<Link>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="main.cpp" />
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="ZRColaInstall.rc" />
</ItemGroup>
</Project>

Binary file not shown.

View File

@@ -1,74 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<Language Condition="'$(Language)'==''">En</Language>
</PropertyGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{5BD95B95-38B0-4C7D-9471-F99CA1203DF4}</ProjectGuid>
<RootNamespace>ZRColaInstall$(Language)</RootNamespace>
<ProjectName>ZRColaInstall$(Language)</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)'=='Debug'">
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)'=='Release'">
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\include\$(Platform).props" />
<Import Project="..\include\$(Configuration).props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IntDir>temp\$(ProjectName).$(Platform).$(Configuration).$(PlatformToolset)\</IntDir>
<OutDir>..\output\$(Platform).$(Configuration)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>ZRCOLA_INSTALL_LANG="$(Language)";%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="main.cpp" />
<ClCompile Include="pch.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="pch.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="ZRColaInstall.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{620D6AC0-C8FF-4185-B820-DB1503ACB95C}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>ZRColaInstallDe</RootNamespace>
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="ZRColaInstall.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="ZRColaInstall.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PreprocessorDefinitions>ZRCOLA_INSTALL_LANG="De";%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PreprocessorDefinitions>ZRCOLA_INSTALL_LANG="De";%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -15,7 +15,7 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="pch.cpp">
<ClCompile Include="stdafx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="main.cpp">
@@ -23,7 +23,7 @@
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="pch.h">
<ClInclude Include="stdafx.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>

View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{5BD95B95-38B0-4C7D-9471-F99CA1203DF4}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>ZRColaInstallEn</RootNamespace>
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="ZRColaInstall.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="ZRColaInstall.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PreprocessorDefinitions>ZRCOLA_INSTALL_LANG="En";%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PreprocessorDefinitions>ZRCOLA_INSTALL_LANG="En";%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="stdafx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="ZRColaInstall.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{2551B561-5E5B-497E-AE01-11519F91EF19}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>ZRColaInstallRu</RootNamespace>
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="ZRColaInstall.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="ZRColaInstall.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PreprocessorDefinitions>ZRCOLA_INSTALL_LANG="Ru";%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PreprocessorDefinitions>ZRCOLA_INSTALL_LANG="Ru";%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="stdafx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="ZRColaInstall.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{0C2C89C2-C96B-41B6-AA99-7E7741E20F3A}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>ZRColaInstallSl</RootNamespace>
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="ZRColaInstall.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="ZRColaInstall.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PreprocessorDefinitions>ZRCOLA_INSTALL_LANG="Sl";%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PreprocessorDefinitions>ZRCOLA_INSTALL_LANG="Sl";%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="stdafx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="ZRColaInstall.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
</Project>

View File

@@ -1,62 +1,64 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#include "pch.h"
#include "stdafx.h"
///
/// Main function
///
int CALLBACK WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nCmdShow)
extern "C" void WinMainCRTStartup()
{
UNREFERENCED_PARAMETER(hInstance);
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
UNREFERENCED_PARAMETER(nCmdShow);
// Load "KERNEL32.DLL".
HMODULE hKernel32 = LoadLibrary(TEXT("KERNEL32.DLL"));
if (!hKernel32)
ExitProcess(1);
TCHAR szArchProc[MAX_PATH];
if (!GetEnvironmentVariable(TEXT("PROCESSOR_ARCHITECTURE"), szArchProc, _countof(szArchProc)))
szArchProc[0] = 0;
szArchProc[_countof(szArchProc) - 1] = 0;
// Get IsWow64Process() address.
BOOL (WINAPI *_IsWow64Process)(__in HANDLE hProcess, __out PBOOL Wow64Process) = (BOOL(WINAPI*)(__in HANDLE, __out PBOOL))::GetProcAddress(hKernel32, "IsWow64Process");
TCHAR szArchWin[MAX_PATH];
if (!GetEnvironmentVariable(TEXT("PROCESSOR_ARCHITEW6432"), szArchWin, _countof(szArchWin)))
szArchWin[0] = 0;
szArchWin[_countof(szArchWin) - 1] = 0;
// If PROCESSOR_ARCHITEW6432 is defined, this is a Windows-on-Windows
// guest of some kind. szArchWin is the host's architecture and szArchProc
// is the current process' architecture.
// If PROCESSOR_ARCHITEW6432 is not defined, then PROCESSOR_ARCHITECTURE
// is both the process and OS architecture.
if (szArchWin[0] == 0)
memcpy_s(szArchWin, sizeof(szArchWin), szArchProc, sizeof(szArchProc));
// If PROCESSOR_ARCHITECTURE is not defined, then either we're running on
// Windows 9x or something is messing with the environment. Make the
// Windows 9x assumption.
if (szArchProc[0] == 0) {
memcpy_s(szArchProc, sizeof(szArchProc), TEXT("x86"), sizeof(TEXT("x86")));
memcpy_s(szArchWin , sizeof(szArchWin ), TEXT("x86"), sizeof(TEXT("x86")));
BOOL bIs64Bit;
#ifndef _WIN64
// Determine if this is a 32-bit process under Windows-over-Windows64.
if (_IsWow64Process) {
// See what IsWow64Process() says.
if (!_IsWow64Process(::GetCurrentProcess(), &bIs64Bit)) {
// IsWow64Process() returned an error. Assume not 64-bit Windows.
bIs64Bit = FALSE;
}
} else {
// This platform does not have IsWow64Process(). Therefore, this is definitely not 64-bit Windows.
bIs64Bit = FALSE;
}
#else
// This is a running 64-bit process. The Windows must be 64 bit then.
bIs64Bit = TRUE;
#endif
LPCTSTR pszPlatSuffix;
if (_tcsicmp(szArchWin, TEXT("amd64")) == 0)
pszPlatSuffix = TEXT("-amd64");
else if (_tcsicmp(szArchWin, TEXT("arm64")) == 0)
pszPlatSuffix = TEXT("-arm64");
else
pszPlatSuffix = TEXT("-x86");
FreeLibrary(hKernel32);
// Get temporary folder path.
static const LPTSTR pszTempFolderDefault = TEXT("");
LPTSTR pszTempFolder;
DWORD dwLength;
if ((dwLength = GetEnvironmentVariable(TEXT("TEMP"), NULL, 0)) != 0 &&
(pszTempFolder = (LPTSTR)LocalAlloc(LMEM_FIXED, (dwLength + 2)*sizeof(TCHAR))) != NULL) // +1 for trailing backslash when missing, +1 for zero terminator
(pszTempFolder = (LPTSTR)LocalAlloc(LMEM_FIXED, (dwLength + 1)*sizeof(TCHAR))) != NULL) // +1 is for trailing backslash when missing!
{
dwLength = ::GetEnvironmentVariable(TEXT("TEMP"), pszTempFolder, dwLength);
@@ -72,12 +74,12 @@ int CALLBACK WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance,
LPTSTR pszParams;
DWORD_PTR aArgs[] = {
(DWORD_PTR)TEXT(ZRCOLA_INSTALL_LANG),
(DWORD_PTR)pszPlatSuffix,
(DWORD_PTR)(bIs64Bit ? TEXT("64") : TEXT("32")),
(DWORD_PTR)pszTempFolder,
};
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_ARGUMENT_ARRAY | FORMAT_MESSAGE_FROM_STRING,
TEXT("/i \"https://prenos.amebis.si/ZRCola/_latest/ZRCola%1%2.msi\" /l* \"%3ZRCola%1%2.log\""),
TEXT("/i \"http://www.amebis.si/prenos/ZRCola/_latest/ZRCola%1%2.msi\" /l* \"%3ZRCola%1%2.log\""),
0,
0,
(LPTSTR)&pszParams,

View File

@@ -1,6 +0,0 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
*/
#include "pch.h"

View File

@@ -1,9 +0,0 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
*/
#pragma once
#include <Windows.h>
#include <tchar.h>

20
ZRColaInstall/stdafx.cpp Normal file
View File

@@ -0,0 +1,20 @@
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#include "stdafx.h"

22
ZRColaInstall/stdafx.h Normal file
View File

@@ -0,0 +1,22 @@
/*
Copyright 2015-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include <Windows.h>

View File

@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29728.190
# Visual Studio 15
VisualStudioVersion = 15.0.28010.2016
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{A7D28E0C-BB96-444D-AAB0-F22A6483FE5F}"
EndProject
@@ -14,50 +14,70 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZRColaCompile", "ZRColaCompile\ZRColaCompile.vcxproj", "{87A3ADEC-1BE4-42E4-92B8-B742F3D21BC4}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxExtend", "lib\wxExtend\build\wxExtendLib.vcxproj", "{D3E29951-D9F5-486D-A167-20AE8E90B1FA}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxExtend", "lib\wxExtend\build\wxExtendLib-15.0.vcxproj", "{D3E29951-D9F5-486D-A167-20AE8E90B1FA}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stdex", "lib\stdex\build\stdex.vcxproj", "{518777CC-0A59-4415-A12A-82751ED75343}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stdex", "lib\stdex\build\stdex-15.0.vcxproj", "{518777CC-0A59-4415-A12A-82751ED75343}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libZRColaUI", "lib\libZRColaUI\build\libZRColaUI.vcxproj", "{C0A84BD2-3870-4CD6-B281-0AB322E3C579}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZRColaInstall", "ZRColaInstall\ZRColaInstall.vcxproj", "{5BD95B95-38B0-4C7D-9471-F99CA1203DF4}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ZRColaInstall", "ZRColaInstall", "{7F5D45A3-B3D2-4B1D-B258-9B83395786E6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinStd", "lib\WinStd\build\WinStd.vcxproj", "{47399D91-7EB9-41DE-B521-514BA5DB0C43}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZRColaInstallSl", "ZRColaInstall\ZRColaInstallSl.vcxproj", "{0C2C89C2-C96B-41B6-AA99-7E7741E20F3A}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZRColaInstallDe", "ZRColaInstall\ZRColaInstallDe.vcxproj", "{620D6AC0-C8FF-4185-B820-DB1503ACB95C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZRColaInstallEn", "ZRColaInstall\ZRColaInstallEn.vcxproj", "{5BD95B95-38B0-4C7D-9471-F99CA1203DF4}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZRColaInstallRu", "ZRColaInstall\ZRColaInstallRu.vcxproj", "{2551B561-5E5B-497E-AE01-11519F91EF19}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinStd", "lib\WinStd\build\WinStd-15.0.vcxproj", "{47399D91-7EB9-41DE-B521-514BA5DB0C43}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
Debug|x86 = Debug|x86
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Debug|Win32.ActiveCfg = Debug|Win32
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Debug|Win32.Build.0 = Debug|Win32
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Release|Win32.ActiveCfg = Release|Win32
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Release|Win32.Build.0 = Release|Win32
{87A3ADEC-1BE4-42E4-92B8-B742F3D21BC4}.Debug|Win32.ActiveCfg = Debug|Win32
{87A3ADEC-1BE4-42E4-92B8-B742F3D21BC4}.Debug|Win32.Build.0 = Debug|Win32
{87A3ADEC-1BE4-42E4-92B8-B742F3D21BC4}.Release|Win32.ActiveCfg = Release|Win32
{87A3ADEC-1BE4-42E4-92B8-B742F3D21BC4}.Release|Win32.Build.0 = Release|Win32
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Debug|Win32.ActiveCfg = Debug|Win32
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Debug|Win32.Build.0 = Debug|Win32
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Release|Win32.ActiveCfg = Release|Win32
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Release|Win32.Build.0 = Release|Win32
{518777CC-0A59-4415-A12A-82751ED75343}.Debug|Win32.ActiveCfg = Debug|Win32
{518777CC-0A59-4415-A12A-82751ED75343}.Debug|Win32.Build.0 = Debug|Win32
{518777CC-0A59-4415-A12A-82751ED75343}.Release|Win32.ActiveCfg = Release|Win32
{518777CC-0A59-4415-A12A-82751ED75343}.Release|Win32.Build.0 = Release|Win32
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Debug|Win32.ActiveCfg = Debug|Win32
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Debug|Win32.Build.0 = Debug|Win32
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Release|Win32.ActiveCfg = Release|Win32
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Release|Win32.Build.0 = Release|Win32
{5BD95B95-38B0-4C7D-9471-F99CA1203DF4}.Debug|Win32.ActiveCfg = Debug|Win32
{5BD95B95-38B0-4C7D-9471-F99CA1203DF4}.Debug|Win32.Build.0 = Debug|Win32
{5BD95B95-38B0-4C7D-9471-F99CA1203DF4}.Release|Win32.ActiveCfg = Release|Win32
{5BD95B95-38B0-4C7D-9471-F99CA1203DF4}.Release|Win32.Build.0 = Release|Win32
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Debug|Win32.ActiveCfg = Debug|Win32
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Debug|Win32.Build.0 = Debug|Win32
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Release|Win32.ActiveCfg = Release|Win32
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Release|Win32.Build.0 = Release|Win32
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Debug|x86.ActiveCfg = Debug|Win32
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Debug|x86.Build.0 = Debug|Win32
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Release|x86.ActiveCfg = Release|Win32
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}.Release|x86.Build.0 = Release|Win32
{87A3ADEC-1BE4-42E4-92B8-B742F3D21BC4}.Debug|x86.ActiveCfg = Debug|Win32
{87A3ADEC-1BE4-42E4-92B8-B742F3D21BC4}.Debug|x86.Build.0 = Debug|Win32
{87A3ADEC-1BE4-42E4-92B8-B742F3D21BC4}.Release|x86.ActiveCfg = Release|Win32
{87A3ADEC-1BE4-42E4-92B8-B742F3D21BC4}.Release|x86.Build.0 = Release|Win32
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Debug|x86.ActiveCfg = Debug|Win32
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Debug|x86.Build.0 = Debug|Win32
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Release|x86.ActiveCfg = Release|Win32
{D3E29951-D9F5-486D-A167-20AE8E90B1FA}.Release|x86.Build.0 = Release|Win32
{518777CC-0A59-4415-A12A-82751ED75343}.Debug|x86.ActiveCfg = Debug|Win32
{518777CC-0A59-4415-A12A-82751ED75343}.Debug|x86.Build.0 = Debug|Win32
{518777CC-0A59-4415-A12A-82751ED75343}.Release|x86.ActiveCfg = Release|Win32
{518777CC-0A59-4415-A12A-82751ED75343}.Release|x86.Build.0 = Release|Win32
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Debug|x86.ActiveCfg = Debug|Win32
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Debug|x86.Build.0 = Debug|Win32
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Release|x86.ActiveCfg = Release|Win32
{C0A84BD2-3870-4CD6-B281-0AB322E3C579}.Release|x86.Build.0 = Release|Win32
{0C2C89C2-C96B-41B6-AA99-7E7741E20F3A}.Debug|x86.ActiveCfg = Debug|Win32
{0C2C89C2-C96B-41B6-AA99-7E7741E20F3A}.Debug|x86.Build.0 = Debug|Win32
{0C2C89C2-C96B-41B6-AA99-7E7741E20F3A}.Release|x86.ActiveCfg = Release|Win32
{0C2C89C2-C96B-41B6-AA99-7E7741E20F3A}.Release|x86.Build.0 = Release|Win32
{620D6AC0-C8FF-4185-B820-DB1503ACB95C}.Debug|x86.ActiveCfg = Debug|Win32
{620D6AC0-C8FF-4185-B820-DB1503ACB95C}.Debug|x86.Build.0 = Debug|Win32
{620D6AC0-C8FF-4185-B820-DB1503ACB95C}.Release|x86.ActiveCfg = Release|Win32
{620D6AC0-C8FF-4185-B820-DB1503ACB95C}.Release|x86.Build.0 = Release|Win32
{5BD95B95-38B0-4C7D-9471-F99CA1203DF4}.Debug|x86.ActiveCfg = Debug|Win32
{5BD95B95-38B0-4C7D-9471-F99CA1203DF4}.Debug|x86.Build.0 = Debug|Win32
{5BD95B95-38B0-4C7D-9471-F99CA1203DF4}.Release|x86.ActiveCfg = Release|Win32
{5BD95B95-38B0-4C7D-9471-F99CA1203DF4}.Release|x86.Build.0 = Release|Win32
{2551B561-5E5B-497E-AE01-11519F91EF19}.Debug|x86.ActiveCfg = Debug|Win32
{2551B561-5E5B-497E-AE01-11519F91EF19}.Debug|x86.Build.0 = Debug|Win32
{2551B561-5E5B-497E-AE01-11519F91EF19}.Release|x86.ActiveCfg = Release|Win32
{2551B561-5E5B-497E-AE01-11519F91EF19}.Release|x86.Build.0 = Release|Win32
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Debug|x86.ActiveCfg = Debug|Win32
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Debug|x86.Build.0 = Debug|Win32
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Release|x86.ActiveCfg = Release|Win32
{47399D91-7EB9-41DE-B521-514BA5DB0C43}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -67,6 +87,10 @@ Global
{D3E29951-D9F5-486D-A167-20AE8E90B1FA} = {A7D28E0C-BB96-444D-AAB0-F22A6483FE5F}
{518777CC-0A59-4415-A12A-82751ED75343} = {A7D28E0C-BB96-444D-AAB0-F22A6483FE5F}
{C0A84BD2-3870-4CD6-B281-0AB322E3C579} = {A7D28E0C-BB96-444D-AAB0-F22A6483FE5F}
{0C2C89C2-C96B-41B6-AA99-7E7741E20F3A} = {7F5D45A3-B3D2-4B1D-B258-9B83395786E6}
{620D6AC0-C8FF-4185-B820-DB1503ACB95C} = {7F5D45A3-B3D2-4B1D-B258-9B83395786E6}
{5BD95B95-38B0-4C7D-9471-F99CA1203DF4} = {7F5D45A3-B3D2-4B1D-B258-9B83395786E6}
{2551B561-5E5B-497E-AE01-11519F91EF19} = {7F5D45A3-B3D2-4B1D-B258-9B83395786E6}
{47399D91-7EB9-41DE-B521-514BA5DB0C43} = {A7D28E0C-BB96-444D-AAB0-F22A6483FE5F}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution

View File

@@ -1,12 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0"?>
<!--
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2017-2021 Amebis
Copyright 2017 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
-->
<package>
<job id="CanoPerm">
<runtime>
<description>Generates character index permutations - Amebis, Copyright © 2017-2021</description>
<description>Generates character index permutations - Amebis, Copyright © 2017</description>
<unnamed name="&lt;Pattern&gt;" required="true" helpstring="Cannonical form (X=unmoveable character; 0-9=moveable character, characters of the same number must preserve global order of appearance; maximum 10 characters)"/>
<example>
Example:
@@ -90,4 +104,217 @@ CanoPerm.wsf &quot;X01112&quot;
]]></script>
</job>
<signature>
** SIG ** MIIbHwYJKoZIhvcNAQcCoIIbEDCCGwwCAQExCzAJBgUr
** SIG ** DgMCGgUAMGcGCisGAQQBgjcCAQSgWTBXMDIGCisGAQQB
** SIG ** gjcCAR4wJAIBAQQQcAVhGs441BGiowAQS9NQkAIBAAIB
** SIG ** AAIBAAIBAAIBADAhMAkGBSsOAwIaBQAEFHAC354udFC3
** SIG ** lTRyP4Y74iqurVPyoIIKLzCCBM4wggO2oAMCAQICEDB6
** SIG ** NnqqPmiBpvlPCMs7OWQwDQYJKoZIhvcNAQELBQAwfzEL
** SIG ** MAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENv
** SIG ** cnBvcmF0aW9uMR8wHQYDVQQLExZTeW1hbnRlYyBUcnVz
** SIG ** dCBOZXR3b3JrMTAwLgYDVQQDEydTeW1hbnRlYyBDbGFz
** SIG ** cyAzIFNIQTI1NiBDb2RlIFNpZ25pbmcgQ0EwHhcNMTUx
** SIG ** MDA5MDAwMDAwWhcNMTgxMTA3MjM1OTU5WjBhMQswCQYD
** SIG ** VQQGEwJTSTERMA8GA1UECBMIU2xvdmVuaWExDzANBgNV
** SIG ** BAcTBkthbW5pazEWMBQGA1UEChQNQW1lYmlzIGQuby5v
** SIG ** LjEWMBQGA1UEAxQNQW1lYmlzIGQuby5vLjCCASIwDQYJ
** SIG ** KoZIhvcNAQEBBQADggEPADCCAQoCggEBAJfy6Bdwx2kq
** SIG ** yGhtaYAZgcA8pWLe7EbyLqBHRq/8jIVfUX1CH7fsbEz1
** SIG ** UDgIq74BvilG3BNyjJxh/lbiu2Pr2M0ad3WEy4p0kM9T
** SIG ** SmABC8k3Vc5pmJlNy1++uMpNwAbUmbGcD6Igsvk1xPWb
** SIG ** ApLoAdnO0KfTfzvRI40A0cGZVGt5y6GPemN6jT8JAp9O
** SIG ** KaWIqj3iF00c/FwS7ODZf2w/cMphLjUle+b86GyewVGE
** SIG ** MEVO5ZjS9ksEWBDWn9A6XYshSwbDWnx4xmIl0B4DcWVA
** SIG ** aY+zqEQzQbzEGC/izPDq44RiCtbhi+QqgQ/6fNXm3hbA
** SIG ** GVcYPYa4J5D1UMO+1NC2cPMCAwEAAaOCAWIwggFeMAkG
** SIG ** A1UdEwQCMAAwDgYDVR0PAQH/BAQDAgeAMCsGA1UdHwQk
** SIG ** MCIwIKAeoByGGmh0dHA6Ly9zdi5zeW1jYi5jb20vc3Yu
** SIG ** Y3JsMGYGA1UdIARfMF0wWwYLYIZIAYb4RQEHFwMwTDAj
** SIG ** BggrBgEFBQcCARYXaHR0cHM6Ly9kLnN5bWNiLmNvbS9j
** SIG ** cHMwJQYIKwYBBQUHAgIwGQwXaHR0cHM6Ly9kLnN5bWNi
** SIG ** LmNvbS9ycGEwEwYDVR0lBAwwCgYIKwYBBQUHAwMwVwYI
** SIG ** KwYBBQUHAQEESzBJMB8GCCsGAQUFBzABhhNodHRwOi8v
** SIG ** c3Yuc3ltY2QuY29tMCYGCCsGAQUFBzAChhpodHRwOi8v
** SIG ** c3Yuc3ltY2IuY29tL3N2LmNydDAfBgNVHSMEGDAWgBSW
** SIG ** O1PweTOXr32D7y4rzMq3hh5yZjAdBgNVHQ4EFgQU9we9
** SIG ** loCaLXTEfww9PSfd1JAKn8wwDQYJKoZIhvcNAQELBQAD
** SIG ** ggEBAIpxL0AvtcrbShLKgI7dmLn6WJbpdzkB9e2Cm1Mu
** SIG ** AAIiogLFF1n07l0VXZE+gqxGHB8ji2h33t+o1R8PLyyI
** SIG ** kdnMhHAd78HsqyZzabfmWuCP12TKBv77wiZkpbTo/Av+
** SIG ** z0SlpJRoMpzzXhyPPtHdby80bSu+4RXlewiDCH56aGE4
** SIG ** SSk0i8Xa9JJ/ozPKLX3Szdmg6J58XtDH/tq5K1/ABSCB
** SIG ** z6SF2Y9l9lRJpGXchSDYCPipSVUGP0WPQRTDNobSwCJD
** SIG ** XAz9UFcxWo4Rh8o/gvlLWUH+T3HhmLSRzXqt3JuqJo5x
** SIG ** H8s4vPzcGBZZFob8yRB98KD6ioFK2pjRRSw9FucwggVZ
** SIG ** MIIEQaADAgECAhA9eNf5dklgsmF99PAeyoYqMA0GCSqG
** SIG ** SIb3DQEBCwUAMIHKMQswCQYDVQQGEwJVUzEXMBUGA1UE
** SIG ** ChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
** SIG ** aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAy
** SIG ** MDA2IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6
** SIG ** ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENs
** SIG ** YXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlv
** SIG ** biBBdXRob3JpdHkgLSBHNTAeFw0xMzEyMTAwMDAwMDBa
** SIG ** Fw0yMzEyMDkyMzU5NTlaMH8xCzAJBgNVBAYTAlVTMR0w
** SIG ** GwYDVQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjEfMB0G
** SIG ** A1UECxMWU3ltYW50ZWMgVHJ1c3QgTmV0d29yazEwMC4G
** SIG ** A1UEAxMnU3ltYW50ZWMgQ2xhc3MgMyBTSEEyNTYgQ29k
** SIG ** ZSBTaWduaW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
** SIG ** AQ8AMIIBCgKCAQEAl4MeABavLLHSCMTXaJNRYB5x9uJH
** SIG ** tNtYTSNiarS/WhtR96MNGHdou9g2qy8hUNqe8+dfJ04L
** SIG ** wpfICXCTqdpcDU6kDZGgtOwUzpFyVC7Oo9tE6VIbP0E8
** SIG ** ykrkqsDoOatTzCHQzM9/m+bCzFhqghXuPTbPHMWXBySO
** SIG ** 8Xu+MS09bty1mUKfS2GVXxxw7hd924vlYYl4x2gbrxF4
** SIG ** GpiuxFVHU9mzMtahDkZAxZeSitFTp5lbhTVX0+qTYmEg
** SIG ** CscwdyQRTWKDtrp7aIIx7mXK3/nVjbI13Iwrb2pyXGCE
** SIG ** nPIMlF7AVlIASMzT+KV93i/XE+Q4qITVRrgThsIbnepa
** SIG ** ON2b2wIDAQABo4IBgzCCAX8wLwYIKwYBBQUHAQEEIzAh
** SIG ** MB8GCCsGAQUFBzABhhNodHRwOi8vczIuc3ltY2IuY29t
** SIG ** MBIGA1UdEwEB/wQIMAYBAf8CAQAwbAYDVR0gBGUwYzBh
** SIG ** BgtghkgBhvhFAQcXAzBSMCYGCCsGAQUFBwIBFhpodHRw
** SIG ** Oi8vd3d3LnN5bWF1dGguY29tL2NwczAoBggrBgEFBQcC
** SIG ** AjAcGhpodHRwOi8vd3d3LnN5bWF1dGguY29tL3JwYTAw
** SIG ** BgNVHR8EKTAnMCWgI6Ahhh9odHRwOi8vczEuc3ltY2Iu
** SIG ** Y29tL3BjYTMtZzUuY3JsMB0GA1UdJQQWMBQGCCsGAQUF
** SIG ** BwMCBggrBgEFBQcDAzAOBgNVHQ8BAf8EBAMCAQYwKQYD
** SIG ** VR0RBCIwIKQeMBwxGjAYBgNVBAMTEVN5bWFudGVjUEtJ
** SIG ** LTEtNTY3MB0GA1UdDgQWBBSWO1PweTOXr32D7y4rzMq3
** SIG ** hh5yZjAfBgNVHSMEGDAWgBR/02Wnwt3su/AwCfNDOfoC
** SIG ** rzMxMzANBgkqhkiG9w0BAQsFAAOCAQEAE4UaHmmpN/eg
** SIG ** vaSvfh1hU/6djF4MpnUeeBcj3f3sGgNVOftxlcdlWqeO
** SIG ** MNJEWmHbcG/aIQXCLnO6SfHRk/5dyc1eA+CJnj90Htf3
** SIG ** OIup1s+7NS8zWKiSVtHITTuC5nmEFvwosLFH8x2iPu6H
** SIG ** 2aZ/pFalP62ELinefLyoqqM9BAHqupOiDlAiKRdMh+Q6
** SIG ** EV/WpCWJmwVrL7TJAUwnewusGQUioGAVP9rJ+01Mj/ty
** SIG ** Z3f9J5THujUOiEn+jf0or0oSvQ2zlwXeRAwV+jYrA9zB
** SIG ** UAHxoRFdFOXivSdLVL4rhF4PpsN0BQrvl8OJIrEfd/O9
** SIG ** zUPU8UypP7WLhK9k8tAUITGCEFwwghBYAgEBMIGTMH8x
** SIG ** CzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBD
** SIG ** b3Jwb3JhdGlvbjEfMB0GA1UECxMWU3ltYW50ZWMgVHJ1
** SIG ** c3QgTmV0d29yazEwMC4GA1UEAxMnU3ltYW50ZWMgQ2xh
** SIG ** c3MgMyBTSEEyNTYgQ29kZSBTaWduaW5nIENBAhAwejZ6
** SIG ** qj5ogab5TwjLOzlkMAkGBSsOAwIaBQCgcDAQBgorBgEE
** SIG ** AYI3AgEMMQIwADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGC
** SIG ** NwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIB
** SIG ** FTAjBgkqhkiG9w0BCQQxFgQUdlEhxAuBWm0MlKArFsW7
** SIG ** wUJuFFgwDQYJKoZIhvcNAQEBBQAEggEAOMbNA+eBRdXb
** SIG ** PwzUC3rlnPZpzU2U9GE4Px79FkQav1Ml8uAeyxtGA4Tr
** SIG ** 0e/f5AX4HS12RIwmd7yOOuUvbyJcNp8+F/ThfGouS/tl
** SIG ** UKUCJ4kHtF19H3MBUU2qdG1DAzFFwwzH/8ZT5ekodidY
** SIG ** yFW2K09+1hIm83WxsL9+61bdLRjzz6FNNhIX1UXvrMf2
** SIG ** IioYdJjA/nlL7ot3FOflIvvHRbxMCkaUWpb+AKI5jnB5
** SIG ** CBBMhYL6vKy6gv9d5Kgqtiwy9AJF8w8gxJWcQ0tAKkGT
** SIG ** AE4sUBjPrHzwjT66hscTWT5KAVkG8CT1JLiMKMxWKu7z
** SIG ** IrolLvLRlSDa5Vvep3mLY6GCDiswgg4nBgorBgEEAYI3
** SIG ** AwMBMYIOFzCCDhMGCSqGSIb3DQEHAqCCDgQwgg4AAgED
** SIG ** MQ0wCwYJYIZIAWUDBAIBMIH+BgsqhkiG9w0BCRABBKCB
** SIG ** 7gSB6zCB6AIBAQYLYIZIAYb4RQEHFwMwITAJBgUrDgMC
** SIG ** GgUABBREu5UsXoPHdh84kBIceHhZTKaw7QIUbmqb3qOo
** SIG ** cAbKtAp5GBBU4Yf8xy0YDzIwMTcwNzEyMTM0NTIzWjAD
** SIG ** AgEeoIGGpIGDMIGAMQswCQYDVQQGEwJVUzEdMBsGA1UE
** SIG ** ChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNVBAsT
** SIG ** FlN5bWFudGVjIFRydXN0IE5ldHdvcmsxMTAvBgNVBAMT
** SIG ** KFN5bWFudGVjIFNIQTI1NiBUaW1lU3RhbXBpbmcgU2ln
** SIG ** bmVyIC0gRzKgggqLMIIFODCCBCCgAwIBAgIQewWx1Elo
** SIG ** UUT3yYnSnBmdEjANBgkqhkiG9w0BAQsFADCBvTELMAkG
** SIG ** A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMu
** SIG ** MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3Jr
** SIG ** MTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5j
** SIG ** LiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYD
** SIG ** VQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0
** SIG ** aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNjAxMTIwMDAw
** SIG ** MDBaFw0zMTAxMTEyMzU5NTlaMHcxCzAJBgNVBAYTAlVT
** SIG ** MR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjEf
** SIG ** MB0GA1UECxMWU3ltYW50ZWMgVHJ1c3QgTmV0d29yazEo
** SIG ** MCYGA1UEAxMfU3ltYW50ZWMgU0hBMjU2IFRpbWVTdGFt
** SIG ** cGluZyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
** SIG ** AQoCggEBALtZnVlVT52Mcl0agaLrVfOwAa08cawyjwVr
** SIG ** hponADKXak3JZBRLKbvC2Sm5Luxjs+HPPwtWkPhiG37r
** SIG ** pgfi3n9ebUA41JEG50F8eRzLy60bv9iVkfPw7mz4rZY5
** SIG ** Ln/BJ7h4OcWEpe3tr4eOzo3HberSmLU6Hx45ncP0mqj0
** SIG ** hOHE0XxxxgYptD/kgw0mw3sIPk35CrczSf/KO9T1sptL
** SIG ** 4YiZGvXA6TMU1t/HgNuR7v68kldyd/TNqMz+CfWTN76V
** SIG ** iGrF3PSxS9TO6AmRX7WEeTWKeKwZMo8jwTJBG1kOqT6x
** SIG ** zPnWK++32OTVHW0ROpL2k8mc40juu1MO1DaXhnjFoTcC
** SIG ** AwEAAaOCAXcwggFzMA4GA1UdDwEB/wQEAwIBBjASBgNV
** SIG ** HRMBAf8ECDAGAQH/AgEAMGYGA1UdIARfMF0wWwYLYIZI
** SIG ** AYb4RQEHFwMwTDAjBggrBgEFBQcCARYXaHR0cHM6Ly9k
** SIG ** LnN5bWNiLmNvbS9jcHMwJQYIKwYBBQUHAgIwGRoXaHR0
** SIG ** cHM6Ly9kLnN5bWNiLmNvbS9ycGEwLgYIKwYBBQUHAQEE
** SIG ** IjAgMB4GCCsGAQUFBzABhhJodHRwOi8vcy5zeW1jZC5j
** SIG ** b20wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL3Muc3lt
** SIG ** Y2IuY29tL3VuaXZlcnNhbC1yb290LmNybDATBgNVHSUE
** SIG ** DDAKBggrBgEFBQcDCDAoBgNVHREEITAfpB0wGzEZMBcG
** SIG ** A1UEAxMQVGltZVN0YW1wLTIwNDgtMzAdBgNVHQ4EFgQU
** SIG ** r2PWyqNOhXLgp7xB8ymiOH+AdWIwHwYDVR0jBBgwFoAU
** SIG ** tnf6aUhHn1MS1cLqBzJ2B9GXBxkwDQYJKoZIhvcNAQEL
** SIG ** BQADggEBAHXqsC3VNBlcMkX+DuHUT6Z4wW/X6t3cT/Oh
** SIG ** yIGI96ePFeZAKa3mXfSi2VZkhHEwKt0eYRdmIFYGmBmN
** SIG ** XXHy+Je8Cf0ckUfJ4uiNA/vMkC/WCmxOM+zWtJPITJBj
** SIG ** SDlAIcTd1m6JmDy1mJfoqQa3CcmPU1dBkC/hHk1O3MoQ
** SIG ** eGxCbvC2xfhhXFL1TvZrjfdKer7zzf0D19n2A6gP41P3
** SIG ** CnXsxnUuqmaFBJm3+AZX4cYO9uiv2uybGB+queM6AL/O
** SIG ** ipTLAduexzi7D1Kr0eOUA2AKTaD+J20UMvw/l0Dhv5mJ
** SIG ** 2+Q5FL3a5NPD6itas5VYVQR9x5rsIwONhSrS/66pYYEw
** SIG ** ggVLMIIEM6ADAgECAhBUWPKq10HWRLyEqXugllLmMA0G
** SIG ** CSqGSIb3DQEBCwUAMHcxCzAJBgNVBAYTAlVTMR0wGwYD
** SIG ** VQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjEfMB0GA1UE
** SIG ** CxMWU3ltYW50ZWMgVHJ1c3QgTmV0d29yazEoMCYGA1UE
** SIG ** AxMfU3ltYW50ZWMgU0hBMjU2IFRpbWVTdGFtcGluZyBD
** SIG ** QTAeFw0xNzAxMDIwMDAwMDBaFw0yODA0MDEyMzU5NTla
** SIG ** MIGAMQswCQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50
** SIG ** ZWMgQ29ycG9yYXRpb24xHzAdBgNVBAsTFlN5bWFudGVj
** SIG ** IFRydXN0IE5ldHdvcmsxMTAvBgNVBAMTKFN5bWFudGVj
** SIG ** IFNIQTI1NiBUaW1lU3RhbXBpbmcgU2lnbmVyIC0gRzIw
** SIG ** ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCZ
** SIG ** 8/zYBAkDhvnXXKaTwEJ86nxjz10A4o7zwJDfjyn1GOqU
** SIG ** t5Ll17Cgc4Ho6QqbSnwB/52PpDmnDupF9CIMOnDtOUWL
** SIG ** 5MUbXPBFaEYkBWN2mxz8nmwqsVblin9Sca7yNdVGIwYc
** SIG ** z0gtHbTNuNl2I44c/z6/uwZcaQemZQ74Xq59Lu1NrjXv
** SIG ** ydcAQv0olQ6fXXJCCbzD2kTS7cxHhOT8yi2sWL6u967Z
** SIG ** RA0It8J31hpDcNFuA95SksQQCHHZuiJV8h+87ZudO+Je
** SIG ** HUyD/5cPewvnVYNO0g3rvtfsrm5HuZ/fpdZRvARV7f8n
** SIG ** cEzJ7SpLE+GxuUwPyQHuVWVfaQJ4Zss/AgMBAAGjggHH
** SIG ** MIIBwzAMBgNVHRMBAf8EAjAAMGYGA1UdIARfMF0wWwYL
** SIG ** YIZIAYb4RQEHFwMwTDAjBggrBgEFBQcCARYXaHR0cHM6
** SIG ** Ly9kLnN5bWNiLmNvbS9jcHMwJQYIKwYBBQUHAgIwGRoX
** SIG ** aHR0cHM6Ly9kLnN5bWNiLmNvbS9ycGEwQAYDVR0fBDkw
** SIG ** NzA1oDOgMYYvaHR0cDovL3RzLWNybC53cy5zeW1hbnRl
** SIG ** Yy5jb20vc2hhMjU2LXRzcy1jYS5jcmwwFgYDVR0lAQH/
** SIG ** BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQDAgeAMHcG
** SIG ** CCsGAQUFBwEBBGswaTAqBggrBgEFBQcwAYYeaHR0cDov
** SIG ** L3RzLW9jc3Aud3Muc3ltYW50ZWMuY29tMDsGCCsGAQUF
** SIG ** BzAChi9odHRwOi8vdHMtYWlhLndzLnN5bWFudGVjLmNv
** SIG ** bS9zaGEyNTYtdHNzLWNhLmNlcjAoBgNVHREEITAfpB0w
** SIG ** GzEZMBcGA1UEAxMQVGltZVN0YW1wLTIwNDgtNTAdBgNV
** SIG ** HQ4EFgQUCbXB/pZylylDmsngArqu+P0vuvYwHwYDVR0j
** SIG ** BBgwFoAUr2PWyqNOhXLgp7xB8ymiOH+AdWIwDQYJKoZI
** SIG ** hvcNAQELBQADggEBABezCojpXFpeIGs7ChWybMWpijKH
** SIG ** 07H0HFOuhb4/m//XvLeUhbTHUn6U6L3tYbLUp5nkw8mT
** SIG ** wTU9C+hoCl1WmL2xIjvRRHrXv/BtUTKK1SPfOAE39uJT
** SIG ** K3orEY+3TWx6MwMbfGsJlBe75NtY1CETZefs0SXKLHWa
** SIG ** nH/8ybsqaKvEfbTPo8lsp9nEAJyJCneR9E2i+zE7hm72
** SIG ** 5h9QA4abv8tCq+Z2m3JaEQGKxu+lb5Xn3a665iJl8BhZ
** SIG ** GxHJzYC32JdHH0II+KxxH7BGU7PUstWjq1B1SBIXgq3P
** SIG ** 4EFPMn7NlRy/kYoIPaSnZwKW3yRMpdBBwIJgo4oXMkvT
** SIG ** vM+ktIwxggJaMIICVgIBATCBizB3MQswCQYDVQQGEwJV
** SIG ** UzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24x
** SIG ** HzAdBgNVBAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsx
** SIG ** KDAmBgNVBAMTH1N5bWFudGVjIFNIQTI1NiBUaW1lU3Rh
** SIG ** bXBpbmcgQ0ECEFRY8qrXQdZEvISpe6CWUuYwCwYJYIZI
** SIG ** AWUDBAIBoIGkMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0B
** SIG ** CRABBDAcBgkqhkiG9w0BCQUxDxcNMTcwNzEyMTM0NTIz
** SIG ** WjAvBgkqhkiG9w0BCQQxIgQg1xD52jg9/P8NO5ws2naf
** SIG ** wcu6an12O8ENVDquZNAiSfQwNwYLKoZIhvcNAQkQAi8x
** SIG ** KDAmMCQwIgQgz3rBetBH7NX9w2giAxsS1O8Hi28rTF5r
** SIG ** pB+P8s9LrWcwCwYJKoZIhvcNAQEBBIIBAJDHkzPZuNcj
** SIG ** mq2Pi6cZM4Iw79XCJn2IuBXYIYMA17dvZpkoqlhDJDZk
** SIG ** W1x1j+70vkAJNoOa4PnAaNVHii13rybX8UC37iZNoRBQ
** SIG ** CYpgptcOw9tPkNBOoZmysu8qbOe2qK1eSklI6l/v1J7t
** SIG ** 2560Y9bKvgPs3Pya5EKFFLs+gWA+2IjQp9/uvRVVg8ws
** SIG ** Wd0y2RLctd/y9+kQod3NYy4EinM3pcFA8jAON5PRTQOj
** SIG ** 1xM/I6pJHB7NmsRJKSZcI5QZndLc3Re/i2ZQdI6hT9fT
** SIG ** lh5ZH/C9TnTD9Hh0hgItpGSR93oX3PID12Cpf20q2Sda
** SIG ** RY05FX4dNVmF2nLM9y33rBY=
</signature>
</package>

View File

@@ -1,12 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0"?>
<!--
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2016-2021 Amebis
Copyright 2016-2017 Amebis
This file is part of InstFont.
InstFont is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
InstFont is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with InstFont. If not, see <http://www.gnu.org/licenses/>.
-->
<package>
<job id="InstFont">
<runtime>
<description>Installs font - Amebis, Copyright © 2016-2021</description>
<description>Installs font - Amebis, Copyright © 2016-2017</description>
<unnamed name="&lt;Shortcut.lnk&gt;" required="true" helpstring="Shortcut file to create"/>
<example>
Example:
@@ -32,4 +46,218 @@ InstFont.wsf &quot;My Font.ttf&quot;
WScript.Quit(0);
]]></script>
</job>
<signature>
** SIG ** MIIbIAYJKoZIhvcNAQcCoIIbETCCGw0CAQExCzAJBgUr
** SIG ** DgMCGgUAMGcGCisGAQQBgjcCAQSgWTBXMDIGCisGAQQB
** SIG ** gjcCAR4wJAIBAQQQcAVhGs441BGiowAQS9NQkAIBAAIB
** SIG ** AAIBAAIBAAIBADAhMAkGBSsOAwIaBQAEFGEeMjueacR0
** SIG ** jh4XkURojdD3J5x+oIIKLzCCBM4wggO2oAMCAQICEDB6
** SIG ** NnqqPmiBpvlPCMs7OWQwDQYJKoZIhvcNAQELBQAwfzEL
** SIG ** MAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENv
** SIG ** cnBvcmF0aW9uMR8wHQYDVQQLExZTeW1hbnRlYyBUcnVz
** SIG ** dCBOZXR3b3JrMTAwLgYDVQQDEydTeW1hbnRlYyBDbGFz
** SIG ** cyAzIFNIQTI1NiBDb2RlIFNpZ25pbmcgQ0EwHhcNMTUx
** SIG ** MDA5MDAwMDAwWhcNMTgxMTA3MjM1OTU5WjBhMQswCQYD
** SIG ** VQQGEwJTSTERMA8GA1UECBMIU2xvdmVuaWExDzANBgNV
** SIG ** BAcTBkthbW5pazEWMBQGA1UEChQNQW1lYmlzIGQuby5v
** SIG ** LjEWMBQGA1UEAxQNQW1lYmlzIGQuby5vLjCCASIwDQYJ
** SIG ** KoZIhvcNAQEBBQADggEPADCCAQoCggEBAJfy6Bdwx2kq
** SIG ** yGhtaYAZgcA8pWLe7EbyLqBHRq/8jIVfUX1CH7fsbEz1
** SIG ** UDgIq74BvilG3BNyjJxh/lbiu2Pr2M0ad3WEy4p0kM9T
** SIG ** SmABC8k3Vc5pmJlNy1++uMpNwAbUmbGcD6Igsvk1xPWb
** SIG ** ApLoAdnO0KfTfzvRI40A0cGZVGt5y6GPemN6jT8JAp9O
** SIG ** KaWIqj3iF00c/FwS7ODZf2w/cMphLjUle+b86GyewVGE
** SIG ** MEVO5ZjS9ksEWBDWn9A6XYshSwbDWnx4xmIl0B4DcWVA
** SIG ** aY+zqEQzQbzEGC/izPDq44RiCtbhi+QqgQ/6fNXm3hbA
** SIG ** GVcYPYa4J5D1UMO+1NC2cPMCAwEAAaOCAWIwggFeMAkG
** SIG ** A1UdEwQCMAAwDgYDVR0PAQH/BAQDAgeAMCsGA1UdHwQk
** SIG ** MCIwIKAeoByGGmh0dHA6Ly9zdi5zeW1jYi5jb20vc3Yu
** SIG ** Y3JsMGYGA1UdIARfMF0wWwYLYIZIAYb4RQEHFwMwTDAj
** SIG ** BggrBgEFBQcCARYXaHR0cHM6Ly9kLnN5bWNiLmNvbS9j
** SIG ** cHMwJQYIKwYBBQUHAgIwGQwXaHR0cHM6Ly9kLnN5bWNi
** SIG ** LmNvbS9ycGEwEwYDVR0lBAwwCgYIKwYBBQUHAwMwVwYI
** SIG ** KwYBBQUHAQEESzBJMB8GCCsGAQUFBzABhhNodHRwOi8v
** SIG ** c3Yuc3ltY2QuY29tMCYGCCsGAQUFBzAChhpodHRwOi8v
** SIG ** c3Yuc3ltY2IuY29tL3N2LmNydDAfBgNVHSMEGDAWgBSW
** SIG ** O1PweTOXr32D7y4rzMq3hh5yZjAdBgNVHQ4EFgQU9we9
** SIG ** loCaLXTEfww9PSfd1JAKn8wwDQYJKoZIhvcNAQELBQAD
** SIG ** ggEBAIpxL0AvtcrbShLKgI7dmLn6WJbpdzkB9e2Cm1Mu
** SIG ** AAIiogLFF1n07l0VXZE+gqxGHB8ji2h33t+o1R8PLyyI
** SIG ** kdnMhHAd78HsqyZzabfmWuCP12TKBv77wiZkpbTo/Av+
** SIG ** z0SlpJRoMpzzXhyPPtHdby80bSu+4RXlewiDCH56aGE4
** SIG ** SSk0i8Xa9JJ/ozPKLX3Szdmg6J58XtDH/tq5K1/ABSCB
** SIG ** z6SF2Y9l9lRJpGXchSDYCPipSVUGP0WPQRTDNobSwCJD
** SIG ** XAz9UFcxWo4Rh8o/gvlLWUH+T3HhmLSRzXqt3JuqJo5x
** SIG ** H8s4vPzcGBZZFob8yRB98KD6ioFK2pjRRSw9FucwggVZ
** SIG ** MIIEQaADAgECAhA9eNf5dklgsmF99PAeyoYqMA0GCSqG
** SIG ** SIb3DQEBCwUAMIHKMQswCQYDVQQGEwJVUzEXMBUGA1UE
** SIG ** ChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
** SIG ** aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAy
** SIG ** MDA2IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6
** SIG ** ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENs
** SIG ** YXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlv
** SIG ** biBBdXRob3JpdHkgLSBHNTAeFw0xMzEyMTAwMDAwMDBa
** SIG ** Fw0yMzEyMDkyMzU5NTlaMH8xCzAJBgNVBAYTAlVTMR0w
** SIG ** GwYDVQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjEfMB0G
** SIG ** A1UECxMWU3ltYW50ZWMgVHJ1c3QgTmV0d29yazEwMC4G
** SIG ** A1UEAxMnU3ltYW50ZWMgQ2xhc3MgMyBTSEEyNTYgQ29k
** SIG ** ZSBTaWduaW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
** SIG ** AQ8AMIIBCgKCAQEAl4MeABavLLHSCMTXaJNRYB5x9uJH
** SIG ** tNtYTSNiarS/WhtR96MNGHdou9g2qy8hUNqe8+dfJ04L
** SIG ** wpfICXCTqdpcDU6kDZGgtOwUzpFyVC7Oo9tE6VIbP0E8
** SIG ** ykrkqsDoOatTzCHQzM9/m+bCzFhqghXuPTbPHMWXBySO
** SIG ** 8Xu+MS09bty1mUKfS2GVXxxw7hd924vlYYl4x2gbrxF4
** SIG ** GpiuxFVHU9mzMtahDkZAxZeSitFTp5lbhTVX0+qTYmEg
** SIG ** CscwdyQRTWKDtrp7aIIx7mXK3/nVjbI13Iwrb2pyXGCE
** SIG ** nPIMlF7AVlIASMzT+KV93i/XE+Q4qITVRrgThsIbnepa
** SIG ** ON2b2wIDAQABo4IBgzCCAX8wLwYIKwYBBQUHAQEEIzAh
** SIG ** MB8GCCsGAQUFBzABhhNodHRwOi8vczIuc3ltY2IuY29t
** SIG ** MBIGA1UdEwEB/wQIMAYBAf8CAQAwbAYDVR0gBGUwYzBh
** SIG ** BgtghkgBhvhFAQcXAzBSMCYGCCsGAQUFBwIBFhpodHRw
** SIG ** Oi8vd3d3LnN5bWF1dGguY29tL2NwczAoBggrBgEFBQcC
** SIG ** AjAcGhpodHRwOi8vd3d3LnN5bWF1dGguY29tL3JwYTAw
** SIG ** BgNVHR8EKTAnMCWgI6Ahhh9odHRwOi8vczEuc3ltY2Iu
** SIG ** Y29tL3BjYTMtZzUuY3JsMB0GA1UdJQQWMBQGCCsGAQUF
** SIG ** BwMCBggrBgEFBQcDAzAOBgNVHQ8BAf8EBAMCAQYwKQYD
** SIG ** VR0RBCIwIKQeMBwxGjAYBgNVBAMTEVN5bWFudGVjUEtJ
** SIG ** LTEtNTY3MB0GA1UdDgQWBBSWO1PweTOXr32D7y4rzMq3
** SIG ** hh5yZjAfBgNVHSMEGDAWgBR/02Wnwt3su/AwCfNDOfoC
** SIG ** rzMxMzANBgkqhkiG9w0BAQsFAAOCAQEAE4UaHmmpN/eg
** SIG ** vaSvfh1hU/6djF4MpnUeeBcj3f3sGgNVOftxlcdlWqeO
** SIG ** MNJEWmHbcG/aIQXCLnO6SfHRk/5dyc1eA+CJnj90Htf3
** SIG ** OIup1s+7NS8zWKiSVtHITTuC5nmEFvwosLFH8x2iPu6H
** SIG ** 2aZ/pFalP62ELinefLyoqqM9BAHqupOiDlAiKRdMh+Q6
** SIG ** EV/WpCWJmwVrL7TJAUwnewusGQUioGAVP9rJ+01Mj/ty
** SIG ** Z3f9J5THujUOiEn+jf0or0oSvQ2zlwXeRAwV+jYrA9zB
** SIG ** UAHxoRFdFOXivSdLVL4rhF4PpsN0BQrvl8OJIrEfd/O9
** SIG ** zUPU8UypP7WLhK9k8tAUITGCEF0wghBZAgEBMIGTMH8x
** SIG ** CzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBD
** SIG ** b3Jwb3JhdGlvbjEfMB0GA1UECxMWU3ltYW50ZWMgVHJ1
** SIG ** c3QgTmV0d29yazEwMC4GA1UEAxMnU3ltYW50ZWMgQ2xh
** SIG ** c3MgMyBTSEEyNTYgQ29kZSBTaWduaW5nIENBAhAwejZ6
** SIG ** qj5ogab5TwjLOzlkMAkGBSsOAwIaBQCgcDAQBgorBgEE
** SIG ** AYI3AgEMMQIwADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGC
** SIG ** NwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIB
** SIG ** FTAjBgkqhkiG9w0BCQQxFgQUznZZYwta1knx/qCWsLrQ
** SIG ** xhI/iSEwDQYJKoZIhvcNAQEBBQAEggEAPYeqftDHUS31
** SIG ** QK3yXnFhEGCzEifnj47Z5hsIsCj64g2Mawryh2SQqzke
** SIG ** /lwJQYdR8ZHnnitm8oIM2dQ+duCm6/7b452yRQmlW+bm
** SIG ** PfKUYAntHYtFiBvPDXFFcd/vC/wKQN7/IoX1xHUmIJCL
** SIG ** PpoUDf8luTRknl2wLpevQg6RyDL1ra1TfE2m3vovmiQE
** SIG ** vWjmnebUzbReg6eDp8uqpSkWX6sl3CkjS7Du4K1vyIuQ
** SIG ** z3Y1NEKTp0sc1OPReAyI8IIMZFiv4B+aIozloZKLCZlX
** SIG ** RX/7WV4poxy07HL2D0eSpKU/E5sGx3WPQJspmfCSgVpW
** SIG ** LB0gOEdADx1qXjT8SmhGcqGCDiwwgg4oBgorBgEEAYI3
** SIG ** AwMBMYIOGDCCDhQGCSqGSIb3DQEHAqCCDgUwgg4BAgED
** SIG ** MQ0wCwYJYIZIAWUDBAIBMIH/BgsqhkiG9w0BCRABBKCB
** SIG ** 7wSB7DCB6QIBAQYLYIZIAYb4RQEHFwMwITAJBgUrDgMC
** SIG ** GgUABBRK+KyXCF2Tf00Aw6jImyGktIi+hwIVAPP8EMTA
** SIG ** f5W0fbcFV9uvT/3tRGNxGA8yMDE3MTIyMjA5MjMxMlow
** SIG ** AwIBHqCBhqSBgzCBgDELMAkGA1UEBhMCVVMxHTAbBgNV
** SIG ** BAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8wHQYDVQQL
** SIG ** ExZTeW1hbnRlYyBUcnVzdCBOZXR3b3JrMTEwLwYDVQQD
** SIG ** EyhTeW1hbnRlYyBTSEEyNTYgVGltZVN0YW1waW5nIFNp
** SIG ** Z25lciAtIEcyoIIKizCCBTgwggQgoAMCAQICEHsFsdRJ
** SIG ** aFFE98mJ0pwZnRIwDQYJKoZIhvcNAQELBQAwgb0xCzAJ
** SIG ** BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5j
** SIG ** LjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29y
** SIG ** azE6MDgGA1UECxMxKGMpIDIwMDggVmVyaVNpZ24sIElu
** SIG ** Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE4MDYG
** SIG ** A1UEAxMvVmVyaVNpZ24gVW5pdmVyc2FsIFJvb3QgQ2Vy
** SIG ** dGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTYwMTEyMDAw
** SIG ** MDAwWhcNMzEwMTExMjM1OTU5WjB3MQswCQYDVQQGEwJV
** SIG ** UzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24x
** SIG ** HzAdBgNVBAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsx
** SIG ** KDAmBgNVBAMTH1N5bWFudGVjIFNIQTI1NiBUaW1lU3Rh
** SIG ** bXBpbmcgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
** SIG ** ggEKAoIBAQC7WZ1ZVU+djHJdGoGi61XzsAGtPHGsMo8F
** SIG ** a4aaJwAyl2pNyWQUSym7wtkpuS7sY7Phzz8LVpD4Yht+
** SIG ** 66YH4t5/Xm1AONSRBudBfHkcy8utG7/YlZHz8O5s+K2W
** SIG ** OS5/wSe4eDnFhKXt7a+Hjs6Nx23q0pi1Oh8eOZ3D9Jqo
** SIG ** 9IThxNF8ccYGKbQ/5IMNJsN7CD5N+Qq3M0n/yjvU9bKb
** SIG ** S+GImRr1wOkzFNbfx4Dbke7+vJJXcnf0zajM/gn1kze+
** SIG ** lYhqxdz0sUvUzugJkV+1hHk1inisGTKPI8EyQRtZDqk+
** SIG ** scz51ivvt9jk1R1tETqS9pPJnONI7rtTDtQ2l4Z4xaE3
** SIG ** AgMBAAGjggF3MIIBczAOBgNVHQ8BAf8EBAMCAQYwEgYD
** SIG ** VR0TAQH/BAgwBgEB/wIBADBmBgNVHSAEXzBdMFsGC2CG
** SIG ** SAGG+EUBBxcDMEwwIwYIKwYBBQUHAgEWF2h0dHBzOi8v
** SIG ** ZC5zeW1jYi5jb20vY3BzMCUGCCsGAQUFBwICMBkaF2h0
** SIG ** dHBzOi8vZC5zeW1jYi5jb20vcnBhMC4GCCsGAQUFBwEB
** SIG ** BCIwIDAeBggrBgEFBQcwAYYSaHR0cDovL3Muc3ltY2Qu
** SIG ** Y29tMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9zLnN5
** SIG ** bWNiLmNvbS91bml2ZXJzYWwtcm9vdC5jcmwwEwYDVR0l
** SIG ** BAwwCgYIKwYBBQUHAwgwKAYDVR0RBCEwH6QdMBsxGTAX
** SIG ** BgNVBAMTEFRpbWVTdGFtcC0yMDQ4LTMwHQYDVR0OBBYE
** SIG ** FK9j1sqjToVy4Ke8QfMpojh/gHViMB8GA1UdIwQYMBaA
** SIG ** FLZ3+mlIR59TEtXC6gcydgfRlwcZMA0GCSqGSIb3DQEB
** SIG ** CwUAA4IBAQB16rAt1TQZXDJF/g7h1E+meMFv1+rd3E/z
** SIG ** ociBiPenjxXmQCmt5l30otlWZIRxMCrdHmEXZiBWBpgZ
** SIG ** jV1x8viXvAn9HJFHyeLojQP7zJAv1gpsTjPs1rSTyEyQ
** SIG ** Y0g5QCHE3dZuiZg8tZiX6KkGtwnJj1NXQZAv4R5NTtzK
** SIG ** EHhsQm7wtsX4YVxS9U72a433Snq+8839A9fZ9gOoD+NT
** SIG ** 9wp17MZ1LqpmhQSZt/gGV+HGDvbor9rsmxgfqrnjOgC/
** SIG ** zoqUywHbnsc4uw9Sq9HjlANgCk2g/idtFDL8P5dA4b+Z
** SIG ** idvkORS92uTTw+orWrOVWFUEfcea7CMDjYUq0v+uqWGB
** SIG ** MIIFSzCCBDOgAwIBAgIQVFjyqtdB1kS8hKl7oJZS5jAN
** SIG ** BgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJVUzEdMBsG
** SIG ** A1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNV
** SIG ** BAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxKDAmBgNV
** SIG ** BAMTH1N5bWFudGVjIFNIQTI1NiBUaW1lU3RhbXBpbmcg
** SIG ** Q0EwHhcNMTcwMTAyMDAwMDAwWhcNMjgwNDAxMjM1OTU5
** SIG ** WjCBgDELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFu
** SIG ** dGVjIENvcnBvcmF0aW9uMR8wHQYDVQQLExZTeW1hbnRl
** SIG ** YyBUcnVzdCBOZXR3b3JrMTEwLwYDVQQDEyhTeW1hbnRl
** SIG ** YyBTSEEyNTYgVGltZVN0YW1waW5nIFNpZ25lciAtIEcy
** SIG ** MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
** SIG ** mfP82AQJA4b511ymk8BCfOp8Y89dAOKO88CQ348p9Rjq
** SIG ** lLeS5dewoHOB6OkKm0p8Af+dj6Q5pw7qRfQiDDpw7TlF
** SIG ** i+TFG1zwRWhGJAVjdpsc/J5sKrFW5Yp/UnGu8jXVRiMG
** SIG ** HM9ILR20zbjZdiOOHP8+v7sGXGkHpmUO+F6ufS7tTa41
** SIG ** 78nXAEL9KJUOn11yQgm8w9pE0u3MR4Tk/MotrFi+rveu
** SIG ** 2UQNCLfCd9YaQ3DRbgPeUpLEEAhx2boiVfIfvO2bnTvi
** SIG ** Xh1Mg/+XD3sL51WDTtIN677X7K5uR7mf36XWUbwEVe3/
** SIG ** J3BMye0qSxPhsblMD8kB7lVlX2kCeGbLPwIDAQABo4IB
** SIG ** xzCCAcMwDAYDVR0TAQH/BAIwADBmBgNVHSAEXzBdMFsG
** SIG ** C2CGSAGG+EUBBxcDMEwwIwYIKwYBBQUHAgEWF2h0dHBz
** SIG ** Oi8vZC5zeW1jYi5jb20vY3BzMCUGCCsGAQUFBwICMBka
** SIG ** F2h0dHBzOi8vZC5zeW1jYi5jb20vcnBhMEAGA1UdHwQ5
** SIG ** MDcwNaAzoDGGL2h0dHA6Ly90cy1jcmwud3Muc3ltYW50
** SIG ** ZWMuY29tL3NoYTI1Ni10c3MtY2EuY3JsMBYGA1UdJQEB
** SIG ** /wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDB3
** SIG ** BggrBgEFBQcBAQRrMGkwKgYIKwYBBQUHMAGGHmh0dHA6
** SIG ** Ly90cy1vY3NwLndzLnN5bWFudGVjLmNvbTA7BggrBgEF
** SIG ** BQcwAoYvaHR0cDovL3RzLWFpYS53cy5zeW1hbnRlYy5j
** SIG ** b20vc2hhMjU2LXRzcy1jYS5jZXIwKAYDVR0RBCEwH6Qd
** SIG ** MBsxGTAXBgNVBAMTEFRpbWVTdGFtcC0yMDQ4LTUwHQYD
** SIG ** VR0OBBYEFAm1wf6WcpcpQ5rJ4AK6rvj9L7r2MB8GA1Ud
** SIG ** IwQYMBaAFK9j1sqjToVy4Ke8QfMpojh/gHViMA0GCSqG
** SIG ** SIb3DQEBCwUAA4IBAQAXswqI6VxaXiBrOwoVsmzFqYoy
** SIG ** h9Ox9BxTroW+P5v/17y3lIW0x1J+lOi97WGy1KeZ5MPJ
** SIG ** k8E1PQvoaApdVpi9sSI70UR617/wbVEyitUj3zgBN/bi
** SIG ** Uyt6KxGPt01sejMDG3xrCZQXu+TbWNQhE2Xn7NElyix1
** SIG ** mpx//Mm7KmirxH20z6PJbKfZxACciQp3kfRNovsxO4Zu
** SIG ** 9uYfUAOGm7/LQqvmdptyWhEBisbvpW+V592uuuYiZfAY
** SIG ** WRsRyc2At9iXRx9CCPiscR+wRlOz1LLVo6tQdUgSF4Kt
** SIG ** z+BBTzJ+zZUcv5GKCD2kp2cClt8kTKXQQcCCYKOKFzJL
** SIG ** 07zPpLSMMYICWjCCAlYCAQEwgYswdzELMAkGA1UEBhMC
** SIG ** VVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9u
** SIG ** MR8wHQYDVQQLExZTeW1hbnRlYyBUcnVzdCBOZXR3b3Jr
** SIG ** MSgwJgYDVQQDEx9TeW1hbnRlYyBTSEEyNTYgVGltZVN0
** SIG ** YW1waW5nIENBAhBUWPKq10HWRLyEqXugllLmMAsGCWCG
** SIG ** SAFlAwQCAaCBpDAaBgkqhkiG9w0BCQMxDQYLKoZIhvcN
** SIG ** AQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTE3MTIyMjA5MjMx
** SIG ** MlowLwYJKoZIhvcNAQkEMSIEIDjC9lH4vmnVGgUQ3K9/
** SIG ** UJyaFJXcivYDNejbPrRERGkRMDcGCyqGSIb3DQEJEAIv
** SIG ** MSgwJjAkMCIEIM96wXrQR+zV/cNoIgMbEtTvB4tvK0xe
** SIG ** a6Qfj/LPS61nMAsGCSqGSIb3DQEBAQSCAQBQNgf6pNDg
** SIG ** E7O0sqTK8DqO3WPe9wXqJB4uZqR0YyH8VH/ymK3MTiSo
** SIG ** O/4uG0vyAT/t5i5Bvt67lQIgCckpop4u348NUoi9hSNG
** SIG ** br/fMo1jib1sHUpqiOcLnZSKjOE717APXkDw3ADWrFsg
** SIG ** 2SUEX/fPvYvL/DW3YjTG82iuf9x/QQLqn0W6jbdw9m8d
** SIG ** IWbjlTubIjjzuNMVEJIIAuahtqPU+cHW/skzXXoRpvsG
** SIG ** o5ga0X7uGNeGYiSalDcVDktNaaJT41xMgAvs7XKhSUK3
** SIG ** YTfJrwhpf4ph2JbwONzjhboqQy9Jw2A7pcjl/khfMqX0
** SIG ** mRUHJlKxrTA7lM1vbxNkSZIy
</signature>
</package>

View File

@@ -1,12 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0"?>
<!--
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 1991-2021 Amebis
Copyright 1991-2015 Amebis
This file is part of MkLink.
MkLink is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
MkLink is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with MkLink. If not, see <http://www.gnu.org/licenses/>.
-->
<package>
<job id="MkLnk">
<runtime>
<description>Creates shortcut to a program - Amebis, Copyright © 1991-2021</description>
<description>Creates shortcut to a program - Amebis, Copyright © 2015</description>
<unnamed name="&lt;Shortcut.lnk&gt;" required="true" helpstring="Shortcut file to create"/>
<unnamed name="&lt;Target&gt;" required="true" helpstring="Target file the shortcut invokes"/>
<named name="A" type="string" required="false" helpstring="Command line arguments"/>
@@ -68,4 +82,203 @@ MkLnk.wsf &quot;%USERPROFILE%\Desktop\My shortcut.lnk&quot; &quot;%windir%\notep
WScript.Quit(0);
]]></script>
</job>
<signature>
** SIG ** MIIZKwYJKoZIhvcNAQcCoIIZHDCCGRgCAQExCzAJBgUr
** SIG ** DgMCGgUAMGcGCisGAQQBgjcCAQSgWTBXMDIGCisGAQQB
** SIG ** gjcCAR4wJAIBAQQQcAVhGs441BGiowAQS9NQkAIBAAIB
** SIG ** AAIBAAIBAAIBADAhMAkGBSsOAwIaBQAEFMH67hpbFt5K
** SIG ** CSnD9RSD/SRyKRZSoIIUJTCCA+4wggNXoAMCAQICEH6T
** SIG ** 6/t8xk5Z6kuad9QG/DswDQYJKoZIhvcNAQEFBQAwgYsx
** SIG ** CzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENh
** SIG ** cGUxFDASBgNVBAcTC0R1cmJhbnZpbGxlMQ8wDQYDVQQK
** SIG ** EwZUaGF3dGUxHTAbBgNVBAsTFFRoYXd0ZSBDZXJ0aWZp
** SIG ** Y2F0aW9uMR8wHQYDVQQDExZUaGF3dGUgVGltZXN0YW1w
** SIG ** aW5nIENBMB4XDTEyMTIyMTAwMDAwMFoXDTIwMTIzMDIz
** SIG ** NTk1OVowXjELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5
** SIG ** bWFudGVjIENvcnBvcmF0aW9uMTAwLgYDVQQDEydTeW1h
** SIG ** bnRlYyBUaW1lIFN0YW1waW5nIFNlcnZpY2VzIENBIC0g
** SIG ** RzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
** SIG ** AQCxrLNJVEuXHBIK2CV5kSJXKm/cuCbEQ3Nrwr8uUFr7
** SIG ** FMJ2jkMBJUO0oeJF9Oi3e8N0zCLXtJQAAvdN7b+0t0Qk
** SIG ** a81fRTvRRM5DEnMXgotptCvLmR6schsmTXEfsTHd+1Fh
** SIG ** AlOmqvVJLAV4RaUvic7nmef+jOJXPz3GktxK+Hsz5HkK
** SIG ** +/B1iEGc/8UDUZmq12yfk2mHZSmDhcJgFMTIyTsU2sCB
** SIG ** 8B8NdN6SIqvK9/t0fCfm90obf6fDni2uiuqm5qonFn1h
** SIG ** 95hxEbziUKFL5V365Q6nLJ+qZSDT2JboyHylTkhE/xni
** SIG ** RAeSC9dohIBdanhkRc1gRn5UwRN8xXnxycFxAgMBAAGj
** SIG ** gfowgfcwHQYDVR0OBBYEFF+a9W5czMx0mtTdfe8/2+xM
** SIG ** gC7dMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAYYW
** SIG ** aHR0cDovL29jc3AudGhhd3RlLmNvbTASBgNVHRMBAf8E
** SIG ** CDAGAQH/AgEAMD8GA1UdHwQ4MDYwNKAyoDCGLmh0dHA6
** SIG ** Ly9jcmwudGhhd3RlLmNvbS9UaGF3dGVUaW1lc3RhbXBp
** SIG ** bmdDQS5jcmwwEwYDVR0lBAwwCgYIKwYBBQUHAwgwDgYD
** SIG ** VR0PAQH/BAQDAgEGMCgGA1UdEQQhMB+kHTAbMRkwFwYD
** SIG ** VQQDExBUaW1lU3RhbXAtMjA0OC0xMA0GCSqGSIb3DQEB
** SIG ** BQUAA4GBAAMJm495739ZMKrvaLX64wkdu0+CBl03X6ZS
** SIG ** nxaN6hySCURu9W3rWHww6PlpjSNzCxJvR6muORH4KrGb
** SIG ** sBrDjutZlgCtzgxNstAxpghcKnr84nodV0yoZRjpeUBi
** SIG ** JZZux8c3aoMhCI5B6t3ZVz8dd0mHKhYGXqY4aiISo1EZ
** SIG ** g362MIIEozCCA4ugAwIBAgIQDs/0OMj+vzVuBNhqmBsa
** SIG ** UDANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQGEwJVUzEd
** SIG ** MBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xMDAu
** SIG ** BgNVBAMTJ1N5bWFudGVjIFRpbWUgU3RhbXBpbmcgU2Vy
** SIG ** dmljZXMgQ0EgLSBHMjAeFw0xMjEwMTgwMDAwMDBaFw0y
** SIG ** MDEyMjkyMzU5NTlaMGIxCzAJBgNVBAYTAlVTMR0wGwYD
** SIG ** VQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjE0MDIGA1UE
** SIG ** AxMrU3ltYW50ZWMgVGltZSBTdGFtcGluZyBTZXJ2aWNl
** SIG ** cyBTaWduZXIgLSBHNDCCASIwDQYJKoZIhvcNAQEBBQAD
** SIG ** ggEPADCCAQoCggEBAKJjCzlEuLsjp0RJuw7/ofBhClOT
** SIG ** sJjbrSwPSsVu/4Y8U1UPFc4EPyv9qZaW2b5heQtbyUyG
** SIG ** duXgQ0sile7CK0PBn9hotI5AT+6FOLkRxSPyZFjwFTJv
** SIG ** TlehroikAtcqHs1L4d1j1ReJMluwXplaqJ0oUA4X7pbb
** SIG ** YTtFUR3PElYLkkf8q672Zj1HrHBy55LnX80QucSDZJQZ
** SIG ** vSWA4ejSIqXQugJ6oXeTW2XD7hd0vEGGKtwITIySjJEt
** SIG ** nndEH2jWqHR32w5bMotWizO92WPISZ06xcXqMwvS8aMb
** SIG ** 9Iu+2bNXizveBKd6IrIkri7HcMW+ToMmCPsLvalPmQjh
** SIG ** EChyqs0CAwEAAaOCAVcwggFTMAwGA1UdEwEB/wQCMAAw
** SIG ** FgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/
** SIG ** BAQDAgeAMHMGCCsGAQUFBwEBBGcwZTAqBggrBgEFBQcw
** SIG ** AYYeaHR0cDovL3RzLW9jc3Aud3Muc3ltYW50ZWMuY29t
** SIG ** MDcGCCsGAQUFBzAChitodHRwOi8vdHMtYWlhLndzLnN5
** SIG ** bWFudGVjLmNvbS90c3MtY2EtZzIuY2VyMDwGA1UdHwQ1
** SIG ** MDMwMaAvoC2GK2h0dHA6Ly90cy1jcmwud3Muc3ltYW50
** SIG ** ZWMuY29tL3Rzcy1jYS1nMi5jcmwwKAYDVR0RBCEwH6Qd
** SIG ** MBsxGTAXBgNVBAMTEFRpbWVTdGFtcC0yMDQ4LTIwHQYD
** SIG ** VR0OBBYEFEbGaaMOShQe1UzaUmMXP142vA3mMB8GA1Ud
** SIG ** IwQYMBaAFF+a9W5czMx0mtTdfe8/2+xMgC7dMA0GCSqG
** SIG ** SIb3DQEBBQUAA4IBAQB4O7SRKgBM8I9iMDd4o4QnB28Y
** SIG ** st4l3KDUlAOqhk4ln5pAAxzdzuN5yyFoBtq2MrRtv/Qs
** SIG ** JmMz5ElkbQ3mw2cO9wWkNWx8iRbG6bLfsundIMZxD82V
** SIG ** dNy2XN69Nx9DeOZ4tc0oBCCjqvFLxIgpkQ6A0RH83Vx2
** SIG ** bk9eDkVGQW4NsOo4mrE62glxEPwcebSAe6xp9P2ctgwW
** SIG ** K/F/Wwk9m1viFsoTgW0ALjgNqCmPLOGy9FqpAa8VnCwv
** SIG ** SRvbIrvD/niUUcOGsYKIXfA9tFGheTMrLnu53CAJE3Hr
** SIG ** ahlbz+ilMFcsiUk/uc9/yb8+ImhjU5q9aXSsxR08f5Lg
** SIG ** w7wc2AR1MIIFejCCBGKgAwIBAgIQQIeLZ2eQpZcEKJ6U
** SIG ** AwIaGzANBgkqhkiG9w0BAQUFADCBtDELMAkGA1UEBhMC
** SIG ** VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYD
** SIG ** VQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYD
** SIG ** VQQLEzJUZXJtcyBvZiB1c2UgYXQgaHR0cHM6Ly93d3cu
** SIG ** dmVyaXNpZ24uY29tL3JwYSAoYykxMDEuMCwGA1UEAxMl
** SIG ** VmVyaVNpZ24gQ2xhc3MgMyBDb2RlIFNpZ25pbmcgMjAx
** SIG ** MCBDQTAeFw0xMjA5MjYwMDAwMDBaFw0xNTEwMTEyMzU5
** SIG ** NTlaMIG9MQswCQYDVQQGEwJTSTERMA8GA1UECBMIU2xv
** SIG ** dmVuaWExDzANBgNVBAcTBkthbW5pazEWMBQGA1UEChQN
** SIG ** QW1lYmlzIGQuby5vLjE+MDwGA1UECxM1RGlnaXRhbCBJ
** SIG ** RCBDbGFzcyAzIC0gTWljcm9zb2Z0IFNvZnR3YXJlIFZh
** SIG ** bGlkYXRpb24gdjIxGjAYBgNVBAsUEXByb2dyYW1za2Eg
** SIG ** b3ByZW1hMRYwFAYDVQQDFA1BbWViaXMgZC5vLm8uMIIB
** SIG ** IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9QZF
** SIG ** QzscW51y/Ermb72+gkWUJ6ExfOS1UHvNAcefWdFm4yVX
** SIG ** wqi8TRT+P5czX+UjKbh77d00CxODQK7rdLb8+EgKybFT
** SIG ** /bVfT2y8RMtEdG0qI84ZSwh2POazD0PyiHb9XORN2yKH
** SIG ** ykqLiO+6cJvZXjfNpGqf/LxkXVJvyxaemN1XTR91ohhc
** SIG ** 97bNyGCP0M8PNKRZ6Hr5uKlZyr7QLYoYAkaENYdXHrOc
** SIG ** l5CmBAIL56Ngc8vIlLF2lLPmDYf1qWrPpJyXfj7p3iUf
** SIG ** AewtEpbC5FfhCaeHwgg41NfxhRWCXEBTewLHQJtpSo2k
** SIG ** mwv5Q1ZuWMDUjPeuHZ3F/ofBoJTE4wIDAQABo4IBezCC
** SIG ** AXcwCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMCB4AwQAYD
** SIG ** VR0fBDkwNzA1oDOgMYYvaHR0cDovL2NzYzMtMjAxMC1j
** SIG ** cmwudmVyaXNpZ24uY29tL0NTQzMtMjAxMC5jcmwwRAYD
** SIG ** VR0gBD0wOzA5BgtghkgBhvhFAQcXAzAqMCgGCCsGAQUF
** SIG ** BwIBFhxodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBh
** SIG ** MBMGA1UdJQQMMAoGCCsGAQUFBwMDMHEGCCsGAQUFBwEB
** SIG ** BGUwYzAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AudmVy
** SIG ** aXNpZ24uY29tMDsGCCsGAQUFBzAChi9odHRwOi8vY3Nj
** SIG ** My0yMDEwLWFpYS52ZXJpc2lnbi5jb20vQ1NDMy0yMDEw
** SIG ** LmNlcjAfBgNVHSMEGDAWgBTPmanqeyb0S8mOj9fwBSbv
** SIG ** 49KnnTARBglghkgBhvhCAQEEBAMCBBAwFgYKKwYBBAGC
** SIG ** NwIBGwQIMAYBAQABAf8wDQYJKoZIhvcNAQEFBQADggEB
** SIG ** AOMOvRZGpbGuLiIAaqp22r2WAOzxinLpe0O/pJCmBoU0
** SIG ** lK/Es/Jyc4Y90QyvvhoSVKoZ2hMQ2Y6N7oSkhHjKo/n8
** SIG ** WIQwNvaqZu4JpO9IgH1WkfqJWnpVcaVGPA0uHhuDhPe9
** SIG ** gH6Z6I3HC5GL7sc+z4n0kzy1f3AyD+DihQhD0J/i/sgF
** SIG ** iEaFmwwlJHMv6b4xmERMff050y15k875cdRpeFvSjHko
** SIG ** IUbY2bfPlnvhWd/4eidkT3KY5Lpm4cqUO20166p2Cjxf
** SIG ** i9kEGuDPYEYiX94hQmjWwZfIYxdYdD9f+gVcyPpiMspq
** SIG ** n5QwKHOenweisG6BwXs4H5q45SLx1oJ9PUQwggYKMIIE
** SIG ** 8qADAgECAhBSAOWqJVb8GobtlsnUSzPHMA0GCSqGSIb3
** SIG ** DQEBBQUAMIHKMQswCQYDVQQGEwJVUzEXMBUGA1UEChMO
** SIG ** VmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWdu
** SIG ** IFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA2
** SIG ** IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQg
** SIG ** dXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNz
** SIG ** IDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBB
** SIG ** dXRob3JpdHkgLSBHNTAeFw0xMDAyMDgwMDAwMDBaFw0y
** SIG ** MDAyMDcyMzU5NTlaMIG0MQswCQYDVQQGEwJVUzEXMBUG
** SIG ** A1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
** SIG ** cmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRl
** SIG ** cm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2ln
** SIG ** bi5jb20vcnBhIChjKTEwMS4wLAYDVQQDEyVWZXJpU2ln
** SIG ** biBDbGFzcyAzIENvZGUgU2lnbmluZyAyMDEwIENBMIIB
** SIG ** IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9SNL
** SIG ** XqXXirsy6dRX9+/kxyZ+rRmY/qidfZT2NmsQ13WBMH8E
** SIG ** aH/LK3UezR0IjN9plKc3o5x7gOCZ4e43TV/OOxTuhtTQ
** SIG ** 9Sc1vCULOKeMY50Xowilq7D7zWpigkzVIdob2fHjhDuK
** SIG ** Kk+FW5ABT8mndhB/JwN8vq5+fcHd+QW8G0icaefApDw8
** SIG ** QQA+35blxeSUcdZVAccAJkpAPLWhJqkMp22AjpAle8+/
** SIG ** PxzrL5b65Yd3xrVWsno7VDBTG99iNP8e0fRakyiF5UwX
** SIG ** Tn5b/aSTmX/fze+kde/vFfZH5/gZctguNBqmtKdMfr27
** SIG ** Tww9V/Ew1qY2jtaAdtcZLqXNfjQtiQIDAQABo4IB/jCC
** SIG ** AfowEgYDVR0TAQH/BAgwBgEB/wIBADBwBgNVHSAEaTBn
** SIG ** MGUGC2CGSAGG+EUBBxcDMFYwKAYIKwYBBQUHAgEWHGh0
** SIG ** dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9jcHMwKgYIKwYB
** SIG ** BQUHAgIwHhocaHR0cHM6Ly93d3cudmVyaXNpZ24uY29t
** SIG ** L3JwYTAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwE
** SIG ** YTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAHBgUr
** SIG ** DgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0
** SIG ** cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYw
** SIG ** NAYDVR0fBC0wKzApoCegJYYjaHR0cDovL2NybC52ZXJp
** SIG ** c2lnbi5jb20vcGNhMy1nNS5jcmwwNAYIKwYBBQUHAQEE
** SIG ** KDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC52ZXJp
** SIG ** c2lnbi5jb20wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG
** SIG ** AQUFBwMDMCgGA1UdEQQhMB+kHTAbMRkwFwYDVQQDExBW
** SIG ** ZXJpU2lnbk1QS0ktMi04MB0GA1UdDgQWBBTPmanqeyb0
** SIG ** S8mOj9fwBSbv49KnnTAfBgNVHSMEGDAWgBR/02Wnwt3s
** SIG ** u/AwCfNDOfoCrzMxMzANBgkqhkiG9w0BAQUFAAOCAQEA
** SIG ** ViLmNKTEYctIuQGtVqhkD9mMkcS7zAzlrXqgIn/fRzhK
** SIG ** LWzRf3EafOxwqbHwT+QPDFP6FV7+dJhJJIWBJhyRFEew
** SIG ** TGOMu6E01MZF6A2FJnMD0KmMZG3ccZLmRQVgFVlROfxY
** SIG ** FGv+1KTteWsIDEFy5zciBgm+I+k/RJoe6WGdzLGQXPw9
** SIG ** 0o2sQj1lNtS0PUAoj5sQzyMmzEsgy5AfXYxMNMo82OU3
** SIG ** 1m+lIL006ybZrg3nxZr3obQhkTNvhuhYuyV8dA5Y/nUb
** SIG ** Yz/OMXybjxuWnsVTdoRbnK2R+qztk7pdyCFTwoJTY68S
** SIG ** DVCHERs9VFKWiiycPZIaCJoFLseTpUiR0zGCBHIwggRu
** SIG ** AgEBMIHJMIG0MQswCQYDVQQGEwJVUzEXMBUGA1UEChMO
** SIG ** VmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWdu
** SIG ** IFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9m
** SIG ** IHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20v
** SIG ** cnBhIChjKTEwMS4wLAYDVQQDEyVWZXJpU2lnbiBDbGFz
** SIG ** cyAzIENvZGUgU2lnbmluZyAyMDEwIENBAhBAh4tnZ5Cl
** SIG ** lwQonpQDAhobMAkGBSsOAwIaBQCgcDAQBgorBgEEAYI3
** SIG ** AgEMMQIwADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIB
** SIG ** BDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAj
** SIG ** BgkqhkiG9w0BCQQxFgQUo0XIWEliS73GY2JUwO4mY7Vo
** SIG ** A8MwDQYJKoZIhvcNAQEBBQAEggEAE9VEPAaBwp2sFl8I
** SIG ** K/xN2uQFkV70yEWp6yL2vqUC4RXVKL03gNIdjAo2nSD5
** SIG ** /hGnPJfgohxkXYwX856kUpaqBuQg9ipHBdED9VVFvOZt
** SIG ** WbyGa0YKlXMeGmh8tMXbDB2iPxdYpi8/yd94hhH3AOuP
** SIG ** dtp+VIxj9NyXvgVXsZgZxOATw8Lp0tDKu0l8bKUJI3aB
** SIG ** K7kwGqwBpeFRTLxvAKvHVUBB3yh13WSZPJRdLSr3xWZB
** SIG ** Hd9Lgd82tcKQtLtOR+qD9Yiy52EBvztc8KuafJg7zme2
** SIG ** wLjAMqgNqJGJaQBpCckUUwqj0yq6b6jDU0SoXwtpGhBv
** SIG ** UI2hMesTx2W1wNVsP6GCAgswggIHBgkqhkiG9w0BCQYx
** SIG ** ggH4MIIB9AIBATByMF4xCzAJBgNVBAYTAlVTMR0wGwYD
** SIG ** VQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjEwMC4GA1UE
** SIG ** AxMnU3ltYW50ZWMgVGltZSBTdGFtcGluZyBTZXJ2aWNl
** SIG ** cyBDQSAtIEcyAhAOz/Q4yP6/NW4E2GqYGxpQMAkGBSsO
** SIG ** AwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcB
** SIG ** MBwGCSqGSIb3DQEJBTEPFw0xNTAyMjUwODA3NTZaMCMG
** SIG ** CSqGSIb3DQEJBDEWBBSrTeWj/s+8idpt/o21ULaKmPhi
** SIG ** jDANBgkqhkiG9w0BAQEFAASCAQChWhzPUW+SFZWpvasx
** SIG ** s9OtZB+VWXTTA1pCx9m/JkEon9B+kakUVF+X8TyolR2H
** SIG ** YS7Z4k2NNnHg8SW3jOU8+gvbcZBnx/5c6c6N4VWCsg89
** SIG ** BofJ8kMU82zS/bQFQLs/OG82cjgJu52N0T2zGsc5V2LY
** SIG ** e915NPlBo2SdI4VkBimXfgyBeUPom07bqRgM47o4NRiF
** SIG ** DWtEsYzuG9IrwRp/LJcH+lQfh5mFbJ0f895/7Oj9ifG3
** SIG ** YB5XE3BtMfX3kB9skXxmZqQI/YDJdCaIPytWfbX6MKjg
** SIG ** tB2tsnV6MDtG8XvSEzQiLCzeSNvjs8+64Q7E4VS21Hvz
** SIG ** pXI1ABSnlaWUaAhA
</signature>
</package>

View File

@@ -1,7 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0"?>
<!--
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2016-2021 Amebis
Copyright 2016-2017 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
-->
<package>
<job id="CharImport">
@@ -3959,4 +3973,218 @@
WScript.Quit(0);
]]></script>
</job>
<signature>
** SIG ** MIIbHwYJKoZIhvcNAQcCoIIbEDCCGwwCAQExCzAJBgUr
** SIG ** DgMCGgUAMGcGCisGAQQBgjcCAQSgWTBXMDIGCisGAQQB
** SIG ** gjcCAR4wJAIBAQQQcAVhGs441BGiowAQS9NQkAIBAAIB
** SIG ** AAIBAAIBAAIBADAhMAkGBSsOAwIaBQAEFFs8OhUsPi8R
** SIG ** iJN1VrPQnCzD3uneoIIKLzCCBM4wggO2oAMCAQICEDB6
** SIG ** NnqqPmiBpvlPCMs7OWQwDQYJKoZIhvcNAQELBQAwfzEL
** SIG ** MAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENv
** SIG ** cnBvcmF0aW9uMR8wHQYDVQQLExZTeW1hbnRlYyBUcnVz
** SIG ** dCBOZXR3b3JrMTAwLgYDVQQDEydTeW1hbnRlYyBDbGFz
** SIG ** cyAzIFNIQTI1NiBDb2RlIFNpZ25pbmcgQ0EwHhcNMTUx
** SIG ** MDA5MDAwMDAwWhcNMTgxMTA3MjM1OTU5WjBhMQswCQYD
** SIG ** VQQGEwJTSTERMA8GA1UECBMIU2xvdmVuaWExDzANBgNV
** SIG ** BAcTBkthbW5pazEWMBQGA1UEChQNQW1lYmlzIGQuby5v
** SIG ** LjEWMBQGA1UEAxQNQW1lYmlzIGQuby5vLjCCASIwDQYJ
** SIG ** KoZIhvcNAQEBBQADggEPADCCAQoCggEBAJfy6Bdwx2kq
** SIG ** yGhtaYAZgcA8pWLe7EbyLqBHRq/8jIVfUX1CH7fsbEz1
** SIG ** UDgIq74BvilG3BNyjJxh/lbiu2Pr2M0ad3WEy4p0kM9T
** SIG ** SmABC8k3Vc5pmJlNy1++uMpNwAbUmbGcD6Igsvk1xPWb
** SIG ** ApLoAdnO0KfTfzvRI40A0cGZVGt5y6GPemN6jT8JAp9O
** SIG ** KaWIqj3iF00c/FwS7ODZf2w/cMphLjUle+b86GyewVGE
** SIG ** MEVO5ZjS9ksEWBDWn9A6XYshSwbDWnx4xmIl0B4DcWVA
** SIG ** aY+zqEQzQbzEGC/izPDq44RiCtbhi+QqgQ/6fNXm3hbA
** SIG ** GVcYPYa4J5D1UMO+1NC2cPMCAwEAAaOCAWIwggFeMAkG
** SIG ** A1UdEwQCMAAwDgYDVR0PAQH/BAQDAgeAMCsGA1UdHwQk
** SIG ** MCIwIKAeoByGGmh0dHA6Ly9zdi5zeW1jYi5jb20vc3Yu
** SIG ** Y3JsMGYGA1UdIARfMF0wWwYLYIZIAYb4RQEHFwMwTDAj
** SIG ** BggrBgEFBQcCARYXaHR0cHM6Ly9kLnN5bWNiLmNvbS9j
** SIG ** cHMwJQYIKwYBBQUHAgIwGQwXaHR0cHM6Ly9kLnN5bWNi
** SIG ** LmNvbS9ycGEwEwYDVR0lBAwwCgYIKwYBBQUHAwMwVwYI
** SIG ** KwYBBQUHAQEESzBJMB8GCCsGAQUFBzABhhNodHRwOi8v
** SIG ** c3Yuc3ltY2QuY29tMCYGCCsGAQUFBzAChhpodHRwOi8v
** SIG ** c3Yuc3ltY2IuY29tL3N2LmNydDAfBgNVHSMEGDAWgBSW
** SIG ** O1PweTOXr32D7y4rzMq3hh5yZjAdBgNVHQ4EFgQU9we9
** SIG ** loCaLXTEfww9PSfd1JAKn8wwDQYJKoZIhvcNAQELBQAD
** SIG ** ggEBAIpxL0AvtcrbShLKgI7dmLn6WJbpdzkB9e2Cm1Mu
** SIG ** AAIiogLFF1n07l0VXZE+gqxGHB8ji2h33t+o1R8PLyyI
** SIG ** kdnMhHAd78HsqyZzabfmWuCP12TKBv77wiZkpbTo/Av+
** SIG ** z0SlpJRoMpzzXhyPPtHdby80bSu+4RXlewiDCH56aGE4
** SIG ** SSk0i8Xa9JJ/ozPKLX3Szdmg6J58XtDH/tq5K1/ABSCB
** SIG ** z6SF2Y9l9lRJpGXchSDYCPipSVUGP0WPQRTDNobSwCJD
** SIG ** XAz9UFcxWo4Rh8o/gvlLWUH+T3HhmLSRzXqt3JuqJo5x
** SIG ** H8s4vPzcGBZZFob8yRB98KD6ioFK2pjRRSw9FucwggVZ
** SIG ** MIIEQaADAgECAhA9eNf5dklgsmF99PAeyoYqMA0GCSqG
** SIG ** SIb3DQEBCwUAMIHKMQswCQYDVQQGEwJVUzEXMBUGA1UE
** SIG ** ChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
** SIG ** aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAy
** SIG ** MDA2IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6
** SIG ** ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENs
** SIG ** YXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlv
** SIG ** biBBdXRob3JpdHkgLSBHNTAeFw0xMzEyMTAwMDAwMDBa
** SIG ** Fw0yMzEyMDkyMzU5NTlaMH8xCzAJBgNVBAYTAlVTMR0w
** SIG ** GwYDVQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjEfMB0G
** SIG ** A1UECxMWU3ltYW50ZWMgVHJ1c3QgTmV0d29yazEwMC4G
** SIG ** A1UEAxMnU3ltYW50ZWMgQ2xhc3MgMyBTSEEyNTYgQ29k
** SIG ** ZSBTaWduaW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
** SIG ** AQ8AMIIBCgKCAQEAl4MeABavLLHSCMTXaJNRYB5x9uJH
** SIG ** tNtYTSNiarS/WhtR96MNGHdou9g2qy8hUNqe8+dfJ04L
** SIG ** wpfICXCTqdpcDU6kDZGgtOwUzpFyVC7Oo9tE6VIbP0E8
** SIG ** ykrkqsDoOatTzCHQzM9/m+bCzFhqghXuPTbPHMWXBySO
** SIG ** 8Xu+MS09bty1mUKfS2GVXxxw7hd924vlYYl4x2gbrxF4
** SIG ** GpiuxFVHU9mzMtahDkZAxZeSitFTp5lbhTVX0+qTYmEg
** SIG ** CscwdyQRTWKDtrp7aIIx7mXK3/nVjbI13Iwrb2pyXGCE
** SIG ** nPIMlF7AVlIASMzT+KV93i/XE+Q4qITVRrgThsIbnepa
** SIG ** ON2b2wIDAQABo4IBgzCCAX8wLwYIKwYBBQUHAQEEIzAh
** SIG ** MB8GCCsGAQUFBzABhhNodHRwOi8vczIuc3ltY2IuY29t
** SIG ** MBIGA1UdEwEB/wQIMAYBAf8CAQAwbAYDVR0gBGUwYzBh
** SIG ** BgtghkgBhvhFAQcXAzBSMCYGCCsGAQUFBwIBFhpodHRw
** SIG ** Oi8vd3d3LnN5bWF1dGguY29tL2NwczAoBggrBgEFBQcC
** SIG ** AjAcGhpodHRwOi8vd3d3LnN5bWF1dGguY29tL3JwYTAw
** SIG ** BgNVHR8EKTAnMCWgI6Ahhh9odHRwOi8vczEuc3ltY2Iu
** SIG ** Y29tL3BjYTMtZzUuY3JsMB0GA1UdJQQWMBQGCCsGAQUF
** SIG ** BwMCBggrBgEFBQcDAzAOBgNVHQ8BAf8EBAMCAQYwKQYD
** SIG ** VR0RBCIwIKQeMBwxGjAYBgNVBAMTEVN5bWFudGVjUEtJ
** SIG ** LTEtNTY3MB0GA1UdDgQWBBSWO1PweTOXr32D7y4rzMq3
** SIG ** hh5yZjAfBgNVHSMEGDAWgBR/02Wnwt3su/AwCfNDOfoC
** SIG ** rzMxMzANBgkqhkiG9w0BAQsFAAOCAQEAE4UaHmmpN/eg
** SIG ** vaSvfh1hU/6djF4MpnUeeBcj3f3sGgNVOftxlcdlWqeO
** SIG ** MNJEWmHbcG/aIQXCLnO6SfHRk/5dyc1eA+CJnj90Htf3
** SIG ** OIup1s+7NS8zWKiSVtHITTuC5nmEFvwosLFH8x2iPu6H
** SIG ** 2aZ/pFalP62ELinefLyoqqM9BAHqupOiDlAiKRdMh+Q6
** SIG ** EV/WpCWJmwVrL7TJAUwnewusGQUioGAVP9rJ+01Mj/ty
** SIG ** Z3f9J5THujUOiEn+jf0or0oSvQ2zlwXeRAwV+jYrA9zB
** SIG ** UAHxoRFdFOXivSdLVL4rhF4PpsN0BQrvl8OJIrEfd/O9
** SIG ** zUPU8UypP7WLhK9k8tAUITGCEFwwghBYAgEBMIGTMH8x
** SIG ** CzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBD
** SIG ** b3Jwb3JhdGlvbjEfMB0GA1UECxMWU3ltYW50ZWMgVHJ1
** SIG ** c3QgTmV0d29yazEwMC4GA1UEAxMnU3ltYW50ZWMgQ2xh
** SIG ** c3MgMyBTSEEyNTYgQ29kZSBTaWduaW5nIENBAhAwejZ6
** SIG ** qj5ogab5TwjLOzlkMAkGBSsOAwIaBQCgcDAQBgorBgEE
** SIG ** AYI3AgEMMQIwADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGC
** SIG ** NwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIB
** SIG ** FTAjBgkqhkiG9w0BCQQxFgQU2eBWVkRbhnnHifFZIhKx
** SIG ** bEgmVv0wDQYJKoZIhvcNAQEBBQAEggEAk6gWLo+shFOF
** SIG ** dbjla3CfPVrklhzPvNkuqx9qUDQiJ5lKXW0xRi8gpd/T
** SIG ** biUQO14E7Fop2pzmlC1bE2F0BAgBHzeNr+k1kEajizKH
** SIG ** 6fOVRKrw7ntuPeom3yiSHDqcw8U+8QsqY9IHpwxq90do
** SIG ** 0fuU1MKvfsf/ga4suqPew5AXRzU7Fvhid4cYZKCSMf1x
** SIG ** UtWJh6pZCacKFmj9Vd2GOGXj3H2nR9ytYi/H3WjKBwdn
** SIG ** r0k+AMnC5GnPdrb1w26l740ndh+aPcZ9sLNc3pAlBKhJ
** SIG ** s9K9yVDafTzf3J7ycElkSwVpiETsx5yDwFWnjWMxYVn+
** SIG ** uVLD/l22/SuIuuGCEy2C/aGCDiswgg4nBgorBgEEAYI3
** SIG ** AwMBMYIOFzCCDhMGCSqGSIb3DQEHAqCCDgQwgg4AAgED
** SIG ** MQ0wCwYJYIZIAWUDBAIBMIH+BgsqhkiG9w0BCRABBKCB
** SIG ** 7gSB6zCB6AIBAQYLYIZIAYb4RQEHFwMwITAJBgUrDgMC
** SIG ** GgUABBRt9cmH/lzRtb1mRxSGk38J0Yz6OAIUTaVmB7fQ
** SIG ** bxZqRR2QkM+CJH/mCS4YDzIwMTcxMjIyMDkyMzE2WjAD
** SIG ** AgEeoIGGpIGDMIGAMQswCQYDVQQGEwJVUzEdMBsGA1UE
** SIG ** ChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNVBAsT
** SIG ** FlN5bWFudGVjIFRydXN0IE5ldHdvcmsxMTAvBgNVBAMT
** SIG ** KFN5bWFudGVjIFNIQTI1NiBUaW1lU3RhbXBpbmcgU2ln
** SIG ** bmVyIC0gRzKgggqLMIIFODCCBCCgAwIBAgIQewWx1Elo
** SIG ** UUT3yYnSnBmdEjANBgkqhkiG9w0BAQsFADCBvTELMAkG
** SIG ** A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMu
** SIG ** MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3Jr
** SIG ** MTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5j
** SIG ** LiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYD
** SIG ** VQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0
** SIG ** aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNjAxMTIwMDAw
** SIG ** MDBaFw0zMTAxMTEyMzU5NTlaMHcxCzAJBgNVBAYTAlVT
** SIG ** MR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjEf
** SIG ** MB0GA1UECxMWU3ltYW50ZWMgVHJ1c3QgTmV0d29yazEo
** SIG ** MCYGA1UEAxMfU3ltYW50ZWMgU0hBMjU2IFRpbWVTdGFt
** SIG ** cGluZyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
** SIG ** AQoCggEBALtZnVlVT52Mcl0agaLrVfOwAa08cawyjwVr
** SIG ** hponADKXak3JZBRLKbvC2Sm5Luxjs+HPPwtWkPhiG37r
** SIG ** pgfi3n9ebUA41JEG50F8eRzLy60bv9iVkfPw7mz4rZY5
** SIG ** Ln/BJ7h4OcWEpe3tr4eOzo3HberSmLU6Hx45ncP0mqj0
** SIG ** hOHE0XxxxgYptD/kgw0mw3sIPk35CrczSf/KO9T1sptL
** SIG ** 4YiZGvXA6TMU1t/HgNuR7v68kldyd/TNqMz+CfWTN76V
** SIG ** iGrF3PSxS9TO6AmRX7WEeTWKeKwZMo8jwTJBG1kOqT6x
** SIG ** zPnWK++32OTVHW0ROpL2k8mc40juu1MO1DaXhnjFoTcC
** SIG ** AwEAAaOCAXcwggFzMA4GA1UdDwEB/wQEAwIBBjASBgNV
** SIG ** HRMBAf8ECDAGAQH/AgEAMGYGA1UdIARfMF0wWwYLYIZI
** SIG ** AYb4RQEHFwMwTDAjBggrBgEFBQcCARYXaHR0cHM6Ly9k
** SIG ** LnN5bWNiLmNvbS9jcHMwJQYIKwYBBQUHAgIwGRoXaHR0
** SIG ** cHM6Ly9kLnN5bWNiLmNvbS9ycGEwLgYIKwYBBQUHAQEE
** SIG ** IjAgMB4GCCsGAQUFBzABhhJodHRwOi8vcy5zeW1jZC5j
** SIG ** b20wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL3Muc3lt
** SIG ** Y2IuY29tL3VuaXZlcnNhbC1yb290LmNybDATBgNVHSUE
** SIG ** DDAKBggrBgEFBQcDCDAoBgNVHREEITAfpB0wGzEZMBcG
** SIG ** A1UEAxMQVGltZVN0YW1wLTIwNDgtMzAdBgNVHQ4EFgQU
** SIG ** r2PWyqNOhXLgp7xB8ymiOH+AdWIwHwYDVR0jBBgwFoAU
** SIG ** tnf6aUhHn1MS1cLqBzJ2B9GXBxkwDQYJKoZIhvcNAQEL
** SIG ** BQADggEBAHXqsC3VNBlcMkX+DuHUT6Z4wW/X6t3cT/Oh
** SIG ** yIGI96ePFeZAKa3mXfSi2VZkhHEwKt0eYRdmIFYGmBmN
** SIG ** XXHy+Je8Cf0ckUfJ4uiNA/vMkC/WCmxOM+zWtJPITJBj
** SIG ** SDlAIcTd1m6JmDy1mJfoqQa3CcmPU1dBkC/hHk1O3MoQ
** SIG ** eGxCbvC2xfhhXFL1TvZrjfdKer7zzf0D19n2A6gP41P3
** SIG ** CnXsxnUuqmaFBJm3+AZX4cYO9uiv2uybGB+queM6AL/O
** SIG ** ipTLAduexzi7D1Kr0eOUA2AKTaD+J20UMvw/l0Dhv5mJ
** SIG ** 2+Q5FL3a5NPD6itas5VYVQR9x5rsIwONhSrS/66pYYEw
** SIG ** ggVLMIIEM6ADAgECAhBUWPKq10HWRLyEqXugllLmMA0G
** SIG ** CSqGSIb3DQEBCwUAMHcxCzAJBgNVBAYTAlVTMR0wGwYD
** SIG ** VQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjEfMB0GA1UE
** SIG ** CxMWU3ltYW50ZWMgVHJ1c3QgTmV0d29yazEoMCYGA1UE
** SIG ** AxMfU3ltYW50ZWMgU0hBMjU2IFRpbWVTdGFtcGluZyBD
** SIG ** QTAeFw0xNzAxMDIwMDAwMDBaFw0yODA0MDEyMzU5NTla
** SIG ** MIGAMQswCQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50
** SIG ** ZWMgQ29ycG9yYXRpb24xHzAdBgNVBAsTFlN5bWFudGVj
** SIG ** IFRydXN0IE5ldHdvcmsxMTAvBgNVBAMTKFN5bWFudGVj
** SIG ** IFNIQTI1NiBUaW1lU3RhbXBpbmcgU2lnbmVyIC0gRzIw
** SIG ** ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCZ
** SIG ** 8/zYBAkDhvnXXKaTwEJ86nxjz10A4o7zwJDfjyn1GOqU
** SIG ** t5Ll17Cgc4Ho6QqbSnwB/52PpDmnDupF9CIMOnDtOUWL
** SIG ** 5MUbXPBFaEYkBWN2mxz8nmwqsVblin9Sca7yNdVGIwYc
** SIG ** z0gtHbTNuNl2I44c/z6/uwZcaQemZQ74Xq59Lu1NrjXv
** SIG ** ydcAQv0olQ6fXXJCCbzD2kTS7cxHhOT8yi2sWL6u967Z
** SIG ** RA0It8J31hpDcNFuA95SksQQCHHZuiJV8h+87ZudO+Je
** SIG ** HUyD/5cPewvnVYNO0g3rvtfsrm5HuZ/fpdZRvARV7f8n
** SIG ** cEzJ7SpLE+GxuUwPyQHuVWVfaQJ4Zss/AgMBAAGjggHH
** SIG ** MIIBwzAMBgNVHRMBAf8EAjAAMGYGA1UdIARfMF0wWwYL
** SIG ** YIZIAYb4RQEHFwMwTDAjBggrBgEFBQcCARYXaHR0cHM6
** SIG ** Ly9kLnN5bWNiLmNvbS9jcHMwJQYIKwYBBQUHAgIwGRoX
** SIG ** aHR0cHM6Ly9kLnN5bWNiLmNvbS9ycGEwQAYDVR0fBDkw
** SIG ** NzA1oDOgMYYvaHR0cDovL3RzLWNybC53cy5zeW1hbnRl
** SIG ** Yy5jb20vc2hhMjU2LXRzcy1jYS5jcmwwFgYDVR0lAQH/
** SIG ** BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQDAgeAMHcG
** SIG ** CCsGAQUFBwEBBGswaTAqBggrBgEFBQcwAYYeaHR0cDov
** SIG ** L3RzLW9jc3Aud3Muc3ltYW50ZWMuY29tMDsGCCsGAQUF
** SIG ** BzAChi9odHRwOi8vdHMtYWlhLndzLnN5bWFudGVjLmNv
** SIG ** bS9zaGEyNTYtdHNzLWNhLmNlcjAoBgNVHREEITAfpB0w
** SIG ** GzEZMBcGA1UEAxMQVGltZVN0YW1wLTIwNDgtNTAdBgNV
** SIG ** HQ4EFgQUCbXB/pZylylDmsngArqu+P0vuvYwHwYDVR0j
** SIG ** BBgwFoAUr2PWyqNOhXLgp7xB8ymiOH+AdWIwDQYJKoZI
** SIG ** hvcNAQELBQADggEBABezCojpXFpeIGs7ChWybMWpijKH
** SIG ** 07H0HFOuhb4/m//XvLeUhbTHUn6U6L3tYbLUp5nkw8mT
** SIG ** wTU9C+hoCl1WmL2xIjvRRHrXv/BtUTKK1SPfOAE39uJT
** SIG ** K3orEY+3TWx6MwMbfGsJlBe75NtY1CETZefs0SXKLHWa
** SIG ** nH/8ybsqaKvEfbTPo8lsp9nEAJyJCneR9E2i+zE7hm72
** SIG ** 5h9QA4abv8tCq+Z2m3JaEQGKxu+lb5Xn3a665iJl8BhZ
** SIG ** GxHJzYC32JdHH0II+KxxH7BGU7PUstWjq1B1SBIXgq3P
** SIG ** 4EFPMn7NlRy/kYoIPaSnZwKW3yRMpdBBwIJgo4oXMkvT
** SIG ** vM+ktIwxggJaMIICVgIBATCBizB3MQswCQYDVQQGEwJV
** SIG ** UzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24x
** SIG ** HzAdBgNVBAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsx
** SIG ** KDAmBgNVBAMTH1N5bWFudGVjIFNIQTI1NiBUaW1lU3Rh
** SIG ** bXBpbmcgQ0ECEFRY8qrXQdZEvISpe6CWUuYwCwYJYIZI
** SIG ** AWUDBAIBoIGkMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0B
** SIG ** CRABBDAcBgkqhkiG9w0BCQUxDxcNMTcxMjIyMDkyMzE2
** SIG ** WjAvBgkqhkiG9w0BCQQxIgQgh6iyk0Har2MEw9zXTWSm
** SIG ** UOWAoxD7/AdxP04ivLw8slIwNwYLKoZIhvcNAQkQAi8x
** SIG ** KDAmMCQwIgQgz3rBetBH7NX9w2giAxsS1O8Hi28rTF5r
** SIG ** pB+P8s9LrWcwCwYJKoZIhvcNAQEBBIIBAB8Cmh1gdqFS
** SIG ** fcBY06p1vqBjMZ2KB0Bcp5shE0u9I/ec/y+nEoPwEeoz
** SIG ** /1LMWUCG/NEVu9oNotl7gpotBrhjI099+/nBMBvXDfAe
** SIG ** OnKR2mRtq8+GTkhbeJncFduzDfomOJHgzMwPqf/D1xrD
** SIG ** xjLrjOfcjcDqNctMCtGQ0moHR57Z3c1F6uBOLQaxPGrg
** SIG ** RpwMNsB64iBtiYavDUjfSYQALPO+p9tLpdJDlH0rvo0s
** SIG ** qtczy028q9iRnVVgXOKU3vKcKiq+xenfhE3OaIda29+e
** SIG ** Hc5Ao2yIebivZ1+kT/tj5ZYhrv1wDxqSHmK5XpiAkZiD
** SIG ** ii4KGN8WABXfV/wf52XoG30=
</signature>
</package>

View File

@@ -1,12 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<!--
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2016-2021 Amebis
Copyright 2016-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets">
<Import Project="common.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_PropertySheetDisplayName>ZRCola ARM64</_PropertySheetDisplayName>
<LibraryPath>$(WXWIN)\lib\vc$(PlatformToolsetVersion)_arm64_lib;$(LibraryPath)</LibraryPath>
@@ -24,4 +39,5 @@
<AdditionalDependencies>advapi32.lib;ole32.lib;shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup />
</Project>

View File

@@ -1,10 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<!--
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2016-2021 Amebis
Copyright 2016-2018 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_PropertySheetDisplayName>ZRCola Debug</_PropertySheetDisplayName>
</PropertyGroup>
@@ -22,9 +37,16 @@
<EnableCOMDATFolding>false</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup />
<Target Name="Sign" Condition="'$(ManifestCertificateThumbprint)' != '' and ('$(ConfigurationType)' == 'Application' or '$(ConfigurationType)' == 'DynamicLibrary')" AfterTargets="_Manifest" BeforeTargets="RegisterOutput" Inputs="$(OutDir)$(TargetName)$(TargetExt)" Outputs="$(IntDir)$(TargetName).sign">
<Message Text="Signing output file..." />
<Exec Command="signtool.exe sign /du &quot;https://www.amebis.si&quot; /sha1 &quot;%ManifestCertificateThumbprint%&quot; /fd sha256 /q &quot;$(TargetPath)&quot;" />
<!--
To make Windows XP and Vista compliant signatures, the binaries have to be signed using SHA1.
<SignFile> switches to SHA256 if the signing certificate is SHA256.
Reverted to signtool.exe until we can drop Windows XP and Vista support.
-->
<!--<SignFile CertificateThumbprint="$(ManifestCertificateThumbprint)" SigningTarget="$(OutDir)$(TargetName)$(TargetExt)" />-->
<Exec Command="signtool.exe sign /du &quot;https://www.amebis.si&quot; /sha1 &quot;%ManifestCertificateThumbprint%&quot; /fd sha1 /q &quot;$(TargetPath)&quot;" />
<Touch Files="$(IntDir)$(TargetName).sign" AlwaysCreate="true" />
</Target>
</Project>

Binary file not shown.

View File

@@ -1,10 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<!--
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2016-2021 Amebis
Copyright 2016-2017 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_PropertySheetDisplayName>ZRCola Release</_PropertySheetDisplayName>
</PropertyGroup>
@@ -18,15 +33,21 @@
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup />
<Target Name="Sign" Condition="'$(ManifestCertificateThumbprint)' != '' and ('$(ConfigurationType)' == 'Application' or '$(ConfigurationType)' == 'DynamicLibrary')" AfterTargets="_Manifest" BeforeTargets="RegisterOutput" Inputs="$(OutDir)$(TargetName)$(TargetExt)" Outputs="$(IntDir)$(TargetName).sign">
<Message Text="Signing output file..." />
<Exec Command="signtool.exe sign /sha1 &quot;%ManifestCertificateThumbprint%&quot; /fd sha256 /tr &quot;%ManifestTimestampRFC3161Url%&quot; /td sha256 /q &quot;$(TargetPath)&quot;" />
<!--
To make Windows XP and Vista compliant signatures, the binaries have to be signed using SHA1.
<SignFile> switches to SHA256 if the signing certificate is SHA256.
Reverted to signtool.exe until we can drop Windows XP and Vista support.
-->
<!--<SignFile CertificateThumbprint="$(ManifestCertificateThumbprint)" TimestampUrl="$(ManifestTimestampUrl)" SigningTarget="$(OutDir)$(TargetName)$(TargetExt)" />-->
<Exec Command="signtool.exe sign /du &quot;https://www.amebis.si&quot; /sha1 &quot;%ManifestCertificateThumbprint%&quot; /fd sha1 /t &quot;%ManifestTimestampUrl%&quot; /q &quot;$(TargetPath)&quot;" />
<Touch Files="$(IntDir)$(TargetName).sign" AlwaysCreate="true" />
</Target>
</Project>

View File

@@ -1,15 +1,10 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2021 Amebis
*/
#include "version.h"
//
// Update server(s)
// Zero delimited list of update servers
//
#define UPDATER_HTTP_SERVER "prenos.amebis.si\0"
#define UPDATER_HTTP_SERVER "www.amebis.si\0"
//
// Update server port
@@ -19,22 +14,4 @@
//
// Update server catalog location
//
#define UPDATER_HTTP_PATH "/ZRCola/catalog-0001.xml"
//
// Hash for publishing packages and signing catalog
//
#define wxUpdaterHashGen wxCryptoHashSHA256
//
// Hash for verifying catalog signature and packages
//
#define wxUpdaterHashChk wxCryptoHashSHA256
//
// When changing the hash algorithm:
//
// 1. Bump UPDATER_HTTP_PATH and set wxUpdaterHashChk to new hash class.
// 2. Publish the updated product using the old catalog and old wxUpdaterHashGen hash.
// 3. Set wxUpdaterHashGen to new hash class, update Makefile to publish future updates to the new catalog.
//
#define UPDATER_HTTP_PATH "/prenos/ZRCola/catalog-0000.xml"

View File

@@ -1,12 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<!--
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2016-2021 Amebis
Copyright 2016-2017 Amebis
This file is part of ZRCola.
ZRCola is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZRCola is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets">
<Import Project="common.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_PropertySheetDisplayName>ZRCola Win32</_PropertySheetDisplayName>
<LibraryPath>$(WXWIN)\lib\vc$(PlatformToolsetVersion)_lib;$(LibraryPath)</LibraryPath>
@@ -20,4 +35,5 @@
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup />
</Project>

Some files were not shown because too many files have changed in this diff Show More