Compare commits

...

106 Commits

Author SHA1 Message Date
Simon Rozman
06dae56c66 Shortcut monitor handles raw keyboard events now to get untranslated key codes 2016-04-04 14:22:33 +02:00
Simon Rozman
31869a9094 Comment fixed 2016-04-04 14:21:28 +02:00
Simon Rozman
799ef2da6b Sending capital Latin letters as lowercase issue fixed 2016-04-04 13:43:36 +02:00
Simon Rozman
80941d968f Cleanup 2016-04-04 13:21:40 +02:00
Simon Rozman
041ce03f09 Keyboard shortcuts changed to:
- ZRCola Compose: Win+Z => Win+F5
- Send composed: Ctrl+Enter => F5
- ZRCola Decompose: Win+Shift+Z => Win+F6
- Send decomposed: Ctrl+Enter => F6
- Cancel (de)composition: Esc
2016-04-04 13:15:26 +02:00
Simon Rozman
06c0ee790d Version set to 2.0-alpha1 2016-04-04 10:05:06 +02:00
Simon Rozman
e9535d5ee4 Cleanup 2016-04-04 10:03:57 +02:00
Simon Rozman
7af2b3da0a Publishing added 2016-04-01 19:43:12 +02:00
Simon Rozman
30a2027707 Sub-module update 2016-04-01 19:42:33 +02:00
Simon Rozman
39ec4750f4 Cleanup 2016-04-01 14:02:39 +02:00
Simon Rozman
d446c50ed0 Key generation for Updater module removed 2016-04-01 14:01:34 +02:00
Simon Rozman
9d6a4d2f1f Update publish URL changed 2016-04-01 13:33:06 +02:00
Simon Rozman
1d46968076 Sub-module update 2016-04-01 13:28:23 +02:00
Simon Rozman
c1e9819446 MSIBuildCfg.mak moved 2016-03-30 15:09:59 +02:00
Simon Rozman
7b27a14505 Sub-module update 2016-03-30 14:30:11 +02:00
Simon Rozman
b07ba1671c Friendlier parameter names 2016-03-30 13:17:09 +02:00
Simon Rozman
2308403400 8.3 file name confusion resolved 2016-03-30 12:01:09 +02:00
Simon Rozman
b863abd319 UpdCheck added to MSI package 2016-03-30 11:44:07 +02:00
Simon Rozman
fd36ffdc1f wxbase30u*_net and wxbase30u*_xml merge modules added 2016-03-30 11:43:05 +02:00
Simon Rozman
45ea582e59 ZRCola shortcut is registered for all users now (same as MSI install) 2016-03-30 10:11:01 +02:00
Simon Rozman
111db1ef21 Obsolete UPDATER_LOG_FILE setting removed 2016-03-29 15:33:57 +02:00
Simon Rozman
fa4460213d Sub-module update 2016-03-29 15:33:31 +02:00
Simon Rozman
5c032295d5 Sub-module update 2016-03-25 13:27:41 +01:00
Simon Rozman
301f218098 Updater integration continues 2016-03-25 13:15:54 +01:00
Simon Rozman
0ee6d6b4b2 Sub-module update 2016-03-24 12:45:27 +01:00
Simon Rozman
4650f8244b Localization issues fixed 2016-03-24 12:37:01 +01:00
Simon Rozman
f61d6f8a4b Sub-module update 2016-03-24 11:37:08 +01:00
Simon Rozman
18b9bf3750 Updater path changed to allow future expansion 2016-03-24 10:29:01 +01:00
Simon Rozman
aa6ceacee1 Merge branch 'master' of https://github.com/Amebis/ZRCola 2016-03-24 10:28:28 +01:00
Simon Rozman
64046a60c3 Microsoft Visual Studio 2010 C++ run-time libraries added to setup 2016-03-24 10:28:07 +01:00
Simon Rozman
6bec2894ed Microsoft Visual Studio 2010 C++ run-time libraries added to setup 2016-03-24 10:27:02 +01:00
Simon Rozman
e5711cc6b5 ZRCola.zrcdb installation added 2016-03-18 15:10:07 +01:00
Simon Rozman
54802ec29a Language of localization file fixed 2016-03-18 15:07:09 +01:00
Simon Rozman
08808db8c8 Submodule updated 2016-03-18 15:06:01 +01:00
Simon Rozman
4121239e9b 00 ZRCola font setup added 2016-03-18 14:40:33 +01:00
Simon Rozman
3a0dc3a41a TTF fonts moved to avoid ICE07 validation fail 2016-03-18 14:28:52 +01:00
Simon Rozman
fdcc7c682a Font installation script added 2016-03-18 13:53:27 +01:00
Simon Rozman
e92291de98 LocalizationRepositoryPath registered for 32 and 64-bit registry, and inside HKLM instead of HKCU 2016-03-18 13:52:19 +01:00
Simon Rozman
cb90f05ed2 Font (un)installation added 2016-03-18 13:51:20 +01:00
Simon Rozman
dfd429d14c 00 ZRCola fonts added 2016-03-18 13:04:48 +01:00
Simon Rozman
75ca79a466 Keys and configuration for Updater module added 2016-03-18 12:49:50 +01:00
Simon Rozman
50e49f9a8c Updater submodule added 2016-03-15 11:48:49 +01:00
Simon Rozman
f58d91bcc1 Includes inheritance fixed 2016-03-15 10:48:12 +01:00
Simon Rozman
7f28cdecae Minor modifications 2016-03-15 10:24:48 +01:00
Simon Rozman
4b40c0c31c Public key is published in Git now 2016-03-15 10:24:30 +01:00
Simon Rozman
044fdd331a Git ignore fixes 2016-03-15 10:22:42 +01:00
Simon Rozman
17c63556ad RSA key pair for signing publications added 2016-03-15 10:19:21 +01:00
Simon Rozman
41c1fd2328 ZRColaUtils cleanup added 2016-03-14 17:34:53 +01:00
Simon Rozman
b94d2b6b82 Localization files added to setup 2016-03-14 17:31:53 +01:00
Simon Rozman
732b8afdf7 Translations updated 2016-03-14 17:30:38 +01:00
Simon Rozman
f46f38d0e3 Submodules updated 2016-03-14 17:29:44 +01:00
Simon Rozman
f96213691b sl locale specialized to sl_SI 2016-03-14 17:09:32 +01:00
Simon Rozman
5edfe17fae Localization setup modified 2016-03-14 17:06:26 +01:00
Simon Rozman
3e3e311a62 sl locale specialized to sl_SI 2016-03-14 17:02:23 +01:00
Simon Rozman
690109c5a6 Localization settings are read from configuration now 2016-03-12 15:49:17 +01:00
Simon Rozman
b82e4e9b22 Settings registration added 2016-03-12 15:47:53 +01:00
Simon Rozman
5511625e5e Main MSI module split into submodules 2016-03-12 14:48:25 +01:00
Simon Rozman
8f66e85cee Copyright year updated 2016-03-12 14:22:39 +01:00
Simon Rozman
71b85d9213 Localization folder renamed 2016-03-12 14:20:32 +01:00
Simon Rozman
96acb87852 Submodules updated 2016-03-12 14:14:14 +01:00
Simon Rozman
417acc5418 Git ignores fixed 2016-03-12 14:13:58 +01:00
Simon Rozman
d9e0489a34 MSI building added 2016-03-12 13:57:35 +01:00
Simon Rozman
a8c7c4ab89 wxMSM submodule removed 2016-03-12 13:29:50 +01:00
Simon Rozman
8c0421c231 Image border hidden 2016-03-12 12:35:55 +01:00
Simon Rozman
3d4bdb4453 wxMSM submodule added 2016-03-12 12:18:19 +01:00
Simon Rozman
04a89d9f86 Slovenian translations updated 2016-03-12 11:45:00 +01:00
Simon Rozman
d4c0d0ca12 Submodule update 2016-03-12 09:24:12 +01:00
Simon Rozman
f4531bdf20 atlex and MSICALib submodules added 2016-03-12 08:50:48 +01:00
Simon Rozman
18b71b6ee9 MSIBuild and MSICA submodules added 2016-03-11 14:12:55 +01:00
Simon Rozman
b9199f9a7b size_type data type changed to best matching class 2016-03-08 14:44:48 +01:00
Simon Rozman
0e70075c78 Missing ATL namespace identifiers added 2016-03-08 14:18:54 +01:00
Simon Rozman
e13133d0e4 Indexes redesigned to return data reference directly for cleaner code 2016-03-08 14:09:23 +01:00
Simon Rozman
4d72a5bc4c Support for separate search-sort comparison added 2016-03-08 14:02:28 +01:00
Simon Rozman
74d076861b Support for multi-stage keyboard sequences added 2016-03-08 13:26:16 +01:00
Simon Rozman
87b80bb8c4 Dynamic keyboard entries moved to wxZRColaKeyHandler 2016-03-03 16:24:30 +01:00
Simon Rozman
70990846e1 Compare methods changed to compare index relevant fields only, to make reusable for search purposes 2016-03-03 16:08:07 +01:00
Simon Rozman
0ec73e44ca Index search method added 2016-03-03 16:06:59 +01:00
Simon Rozman
48e0fc9639 Index reorganization 2016-03-03 14:48:27 +01:00
Simon Rozman
3e6c535f42 Index comparison logic is part of indexes now 2016-03-03 13:42:37 +01:00
Simon Rozman
c6f1e8a251 Temporary special character insertion replaced with a first version of a dynamic one 2016-03-02 14:44:32 +01:00
Simon Rozman
72c03af0c5 Key sequence length check added 2016-03-02 14:03:27 +01:00
Simon Rozman
775d6611b2 Duplicate key sequences detection added 2016-03-02 13:30:21 +01:00
Simon Rozman
5398ccbd5e Support for dynamic keyboard shortcuts added 2016-03-02 12:29:54 +01:00
Simon Rozman
f3c0e83d04 Database element is generic 16-bit unsigned integer now 2016-03-02 12:29:41 +01:00
Simon Rozman
0501a5c7ca Indexes simplified to save space and add flexibility 2016-03-02 11:20:45 +01:00
Simon Rozman
4e5811803a Accessing translation data standardized 2016-03-02 10:45:22 +01:00
Simon Rozman
c44b449a36 Translation block ID changed 2016-03-02 10:19:24 +01:00
Simon Rozman
8e9a7d0fa9 Merged libZRColaUI back 2016-03-02 09:56:47 +01:00
Simon Rozman
8b86afeb5d Error output revision 2016-03-01 15:44:14 +01:00
Simon Rozman
6bb0cd7b89 (De)composition is not static any more 2016-03-01 15:36:21 +01:00
Simon Rozman
ce89d26373 ZRCola.zrcdb loading added 2016-03-01 14:49:32 +01:00
Simon Rozman
81e88a82e4 ZRCola.zrcdb added 2016-03-01 14:07:02 +01:00
Simon Rozman
cf49ef6fb7 <iostream> support for translation database added 2016-03-01 14:03:38 +01:00
Simon Rozman
628c9b6884 Merge branch 'master' of https://github.com/Amebis/ZRCola
# Conflicts:
#	ZRColaCompile/dbsource.cpp
#	ZRColaCompile/dbsource.h
#	ZRColaCompile/main.cpp
#	ZRColaCompile/stdafx.h
#	lib/libZRCola/include/zrcola/common.h
#	lib/libZRCola/include/zrcola/compose.h
2016-02-29 17:09:12 +01:00
Simon Rozman
215e03a705 Migration to dynamic translation tables continues... 2016-02-29 17:05:35 +01:00
Simon Rozman
7e6bc01b8a Migration to dynamic translation tables continues... 2016-02-29 15:28:17 +01:00
Simon Rozman
9d7cd76520 stdex library added to workspace 2016-02-29 11:11:45 +01:00
Simon Rozman
c32475c8ac Work continues... 2016-02-26 14:27:29 +01:00
Simon Rozman
a5454cb537 Cleanup 2016-02-26 13:32:26 +01:00
Simon Rozman
b31e796049 wxExtend switched to master 2016-02-26 12:50:14 +01:00
Simon Rozman
795bddcdc3 Back to master 2016-02-26 12:20:45 +01:00
Simon Rozman
866fceb081 Work continues 2016-02-26 12:20:08 +01:00
Simon Rozman
0e17c9d4dc ZRColaCompile utility introduced 2016-02-25 15:15:42 +01:00
Simon Rozman
1afc37c916 Empty libZRColaUI project added 2016-02-25 14:24:54 +01:00
Simon Rozman
4c91b8582a Output DLL filename changed 2016-02-25 12:43:04 +01:00
Simon Rozman
811778bd4e API version suffix added to DLL file name 2016-02-22 09:22:05 +01:00
151 changed files with 9382 additions and 12294 deletions

11
.gitignore vendored
View File

@@ -1,13 +1,6 @@
/ipch
/output/Win32.Debug
/output/Win32.Release
/output/x64.Debug
/output/x64.Release
/*.opensdf
/*.sdf
/*.suo
/ipch
*.user
temp
/*.opensdf
/ZRCola/locale/*.mo
/output/locale/sl/ZRCola.mo
/output/locale/sl/wxExtend.mo

18
.gitmodules vendored
View File

@@ -1,3 +1,21 @@
[submodule "lib/wxExtend"]
path = lib/wxExtend
url = https://github.com/Amebis/wxExtend.git
[submodule "lib/stdex"]
path = lib/stdex
url = https://github.com/Amebis/stdex.git
[submodule "MSI/MSIBuild"]
path = MSI/MSIBuild
url = https://github.com/Amebis/MSIBuild.git
[submodule "MSI/MSICA"]
path = MSI/MSICA
url = https://github.com/Amebis/MSICA.git
[submodule "lib/atlex"]
path = lib/atlex
url = https://github.com/Amebis/atlex.git
[submodule "lib/MSICALib"]
path = lib/MSICALib
url = https://github.com/Amebis/MSICALib.git
[submodule "Updater"]
path = Updater
url = https://github.com/Amebis/Updater.git

1
MSI/MSIBuild Submodule

Submodule MSI/MSIBuild added at 7806ac219a

1
MSI/MSICA Submodule

Submodule MSI/MSICA added at ca828f691e

5
MSI/MSM/.gitignore vendored Normal file
View File

@@ -0,0 +1,5 @@
/*.log
/Microsoft_VC100_CRT_x64.msm
/Microsoft_VC100_CRT_x86.msm
/Microsoft_VC100_DebugCRT_x64.msm
/Microsoft_VC100_DebugCRT_x86.msm

View File

@@ -0,0 +1,2 @@
Win\System64\msvcp100.dll
Win\System64\msvcr100.dll

View File

@@ -0,0 +1,24 @@
#
# Copyright 1991-2016 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/>.
#
[splosno]
jezik=0
deli=featZRCola featUpdCheck
[parametri]

View File

@@ -0,0 +1,2 @@
Win\System\msvcp100.dll
Win\System\msvcr100.dll

View File

@@ -0,0 +1,24 @@
#
# Copyright 1991-2016 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/>.
#
[splosno]
jezik=0
deli=featZRCola featUpdCheck
[parametri]

View File

@@ -0,0 +1,2 @@
Win\System64\msvcp100d.dll
Win\System64\msvcr100d.dll

View File

@@ -0,0 +1,24 @@
#
# Copyright 1991-2016 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/>.
#
[splosno]
jezik=0
deli=featZRCola featUpdCheck
[parametri]

View File

@@ -0,0 +1,2 @@
Win\System\msvcp100d.dll
Win\System\msvcr100d.dll

View File

@@ -0,0 +1,24 @@
#
# Copyright 1991-2016 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/>.
#
[splosno]
jezik=0
deli=featZRCola featUpdCheck
[parametri]

View File

@@ -0,0 +1 @@
System Folder\wxbase30u_net_vc100.dll

Binary file not shown.

View File

@@ -0,0 +1,24 @@
#
# Copyright 1991-2016 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/>.
#
[splosno]
jezik=0
deli=featUpdCheck
[parametri]

View File

@@ -0,0 +1 @@
System (64-bit) Folder\wxbase30u_net_vc100_x64.dll

Binary file not shown.

View File

@@ -0,0 +1,24 @@
#
# Copyright 1991-2016 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/>.
#
[splosno]
jezik=0
deli=featUpdCheck
[parametri]

View File

@@ -0,0 +1 @@
System Folder\wxbase30u_vc100.dll

Binary file not shown.

View File

@@ -0,0 +1,24 @@
#
# Copyright 1991-2016 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/>.
#
[splosno]
jezik=0
deli=featZRCola featUpdCheck
[parametri]

View File

@@ -0,0 +1 @@
System (64-bit) Folder\wxbase30u_vc100_x64.dll

Binary file not shown.

View File

@@ -0,0 +1,24 @@
#
# Copyright 1991-2016 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/>.
#
[splosno]
jezik=0
deli=featZRCola featUpdCheck
[parametri]

View File

@@ -0,0 +1 @@
System Folder\wxbase30u_xml_vc100.dll

Binary file not shown.

View File

@@ -0,0 +1,24 @@
#
# Copyright 1991-2016 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/>.
#
[splosno]
jezik=0
deli=featUpdCheck
[parametri]

View File

@@ -0,0 +1 @@
System (64-bit) Folder\wxbase30u_xml_vc100_x64.dll

Binary file not shown.

View File

@@ -0,0 +1,24 @@
#
# Copyright 1991-2016 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/>.
#
[splosno]
jezik=0
deli=featUpdCheck
[parametri]

View File

@@ -0,0 +1 @@
System Folder\wxbase30ud_net_vc100.dll

Binary file not shown.

View File

@@ -0,0 +1,24 @@
#
# Copyright 1991-2016 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/>.
#
[splosno]
jezik=0
deli=featUpdCheck
[parametri]

View File

@@ -0,0 +1 @@
System (64-bit) Folder\wxbase30ud_net_vc100_x64.dll

Binary file not shown.

View File

@@ -0,0 +1,24 @@
#
# Copyright 1991-2016 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/>.
#
[splosno]
jezik=0
deli=featUpdCheck
[parametri]

View File

@@ -0,0 +1 @@
System Folder\wxbase30ud_vc100.dll

Binary file not shown.

View File

@@ -0,0 +1,24 @@
#
# Copyright 1991-2016 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/>.
#
[splosno]
jezik=0
deli=featZRCola featUpdCheck
[parametri]

View File

@@ -0,0 +1 @@
System (64-bit) Folder\wxbase30ud_vc100_x64.dll

Binary file not shown.

View File

@@ -0,0 +1,24 @@
#
# Copyright 1991-2016 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/>.
#
[splosno]
jezik=0
deli=featZRCola featUpdCheck
[parametri]

View File

@@ -0,0 +1 @@
System Folder\wxbase30ud_xml_vc100.dll

Binary file not shown.

View File

@@ -0,0 +1,24 @@
#
# Copyright 1991-2016 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/>.
#
[splosno]
jezik=0
deli=featUpdCheck
[parametri]

View File

@@ -0,0 +1 @@
System (64-bit) Folder\wxbase30ud_xml_vc100_x64.dll

Binary file not shown.

View File

@@ -0,0 +1,24 @@
#
# Copyright 1991-2016 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/>.
#
[splosno]
jezik=0
deli=featUpdCheck
[parametri]

View File

@@ -0,0 +1 @@
System Folder\wxmsw30u_core_vc100.dll

Binary file not shown.

View File

@@ -0,0 +1,24 @@
#
# Copyright 1991-2016 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/>.
#
[splosno]
jezik=0
deli=featZRCola
[parametri]

View File

@@ -0,0 +1 @@
System (64-bit) Folder\wxmsw30u_core_vc100_x64.dll

Binary file not shown.

View File

@@ -0,0 +1,24 @@
#
# Copyright 1991-2016 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/>.
#
[splosno]
jezik=0
deli=featZRCola
[parametri]

View File

@@ -0,0 +1 @@
System Folder\wxmsw30ud_core_vc100.dll

Binary file not shown.

View File

@@ -0,0 +1,24 @@
#
# Copyright 1991-2016 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/>.
#
[splosno]
jezik=0
deli=featZRCola
[parametri]

View File

@@ -0,0 +1 @@
System (64-bit) Folder\wxmsw30ud_core_vc100_x64.dll

Binary file not shown.

View File

@@ -0,0 +1,24 @@
#
# Copyright 1991-2016 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/>.
#
[splosno]
jezik=0
deli=featZRCola
[parametri]

9
MSI/ZRCola/Main/.gitignore vendored Normal file
View File

@@ -0,0 +1,9 @@
/*-1.idt
/*-2.idt
/*-2.idtx
/*.Binary-1
/*.Binary-2
/*.Icon-1
/*.Icon-2
/*.lst
/*.msm

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

File diff suppressed because it is too large Load Diff

365
MSI/ZRCola/Main/Makefile Normal file

File diff suppressed because one or more lines are too long

21
MSI/ZRCola/Makefile Normal file
View File

@@ -0,0 +1,21 @@
#
# Copyright 1991-2016 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"

1
MSI/ZRCola/locale/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/*.mo

File diff suppressed because one or more lines are too long

1527
MSI/ZRCola/locale/sl_SI.po Normal file

File diff suppressed because one or more lines are too long

384
Makefile Normal file
View File

@@ -0,0 +1,384 @@
#
# Copyright 1991-2016 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/>.
#
OUTPUT_DIR=output
PUBLISH_DIR=\\amebis.doma\Splet\WWW\Apache\www.amebis.si-prenos\ZRCola
!IF "$(PROCESSOR_ARCHITECTURE)" == "AMD64"
PLAT=x64
REG_FLAGS=/f /reg:64
REG_FLAGS32=/f /reg:32
!ELSE
PLAT=Win32
REG_FLAGS=/f
!ENDIF
All ::
Clean ::
cd "MSI\MSIBuild\Version"
$(MAKE) /f "Makefile" /$(MAKEFLAGS) Clean
cd "$(MAKEDIR)"
cd "MSI\ZRCola"
$(MAKE) /f "Makefile" /$(MAKEFLAGS) Clean LANG=En PLAT=Win32 CFG=Release
$(MAKE) /f "Makefile" /$(MAKEFLAGS) Clean LANG=En PLAT=Win32 CFG=Debug
$(MAKE) /f "Makefile" /$(MAKEFLAGS) Clean LANG=En PLAT=x64 CFG=Release
$(MAKE) /f "Makefile" /$(MAKEFLAGS) Clean LANG=En PLAT=x64 CFG=Debug
$(MAKE) /f "Makefile" /$(MAKEFLAGS) Clean LANG=Sl PLAT=Win32 CFG=Release
$(MAKE) /f "Makefile" /$(MAKEFLAGS) Clean LANG=Sl PLAT=Win32 CFG=Debug
$(MAKE) /f "Makefile" /$(MAKEFLAGS) Clean LANG=Sl PLAT=x64 CFG=Release
$(MAKE) /f "Makefile" /$(MAKEFLAGS) Clean LANG=Sl PLAT=x64 CFG=Debug
cd "$(MAKEDIR)"
devenv.com "ZRCola.sln" /clean "Release|Win32"
devenv.com "ZRCola.sln" /clean "Debug|Win32"
devenv.com "ZRCola.sln" /clean "Release|x64"
devenv.com "ZRCola.sln" /clean "Debug|x64"
devenv.com "ZRColaUtils.sln" /clean "Release|Win32"
devenv.com "ZRColaUtils.sln" /clean "Debug|Win32"
devenv.com "MSI\MSICA\MSICA.sln" /clean "Release|Win32"
devenv.com "MSI\MSICA\MSICA.sln" /clean "Debug|Win32"
devenv.com "MSI\MSICA\MSICA.sln" /clean "Release|x64"
devenv.com "MSI\MSICA\MSICA.sln" /clean "Debug|x64"
devenv.com "Updater\Updater.sln" /clean "Release|Win32"
devenv.com "Updater\Updater.sln" /clean "Debug|Win32"
devenv.com "Updater\Updater.sln" /clean "Release|x64"
devenv.com "Updater\Updater.sln" /clean "Debug|x64"
-if exist "$(OUTPUT_DIR)\Setup\ZRColaEn32.msi" del /f /q "$(OUTPUT_DIR)\Setup\ZRColaEn32.msi"
-if exist "$(OUTPUT_DIR)\Setup\ZRColaEn32D.msi" del /f /q "$(OUTPUT_DIR)\Setup\ZRColaEn32D.msi"
-if exist "$(OUTPUT_DIR)\Setup\ZRColaEn64.msi" del /f /q "$(OUTPUT_DIR)\Setup\ZRColaEn64.msi"
-if exist "$(OUTPUT_DIR)\Setup\ZRColaEn64D.msi" del /f /q "$(OUTPUT_DIR)\Setup\ZRColaEn64D.msi"
-if exist "$(OUTPUT_DIR)\Setup\ZRColaSl32.msi" del /f /q "$(OUTPUT_DIR)\Setup\ZRColaSl32.msi"
-if exist "$(OUTPUT_DIR)\Setup\ZRColaSl32D.msi" del /f /q "$(OUTPUT_DIR)\Setup\ZRColaSl32D.msi"
-if exist "$(OUTPUT_DIR)\Setup\ZRColaSl64.msi" del /f /q "$(OUTPUT_DIR)\Setup\ZRColaSl64.msi"
-if exist "$(OUTPUT_DIR)\Setup\ZRColaSl64D.msi" del /f /q "$(OUTPUT_DIR)\Setup\ZRColaSl64D.msi"
-if exist "$(OUTPUT_DIR)\catalog.xml" del /f /q "$(OUTPUT_DIR)\catalog.xml"
!IFNDEF HAS_VERSION
######################################################################
# 1st Phase
# - Version info parsing
######################################################################
All \
Setup \
SetupDebug \
Register \
Unregister \
Publish :: "MSI\MSIBuild\Version\Version.mak"
$(MAKE) /f "Makefile" /$(MAKEFLAGS) HAS_VERSION=1 $@
"MSI\MSIBuild\Version\Version.mak" ::
cd "MSI\MSIBuild\Version"
$(MAKE) /f "Makefile" /$(MAKEFLAGS) Version
cd "$(MAKEDIR)"
!ELSE
######################################################################
# 2nd Phase
# - The version is known, do the rest.
######################################################################
!INCLUDE "MSI\MSIBuild\Version\Version.mak"
!INCLUDE "include\MSIBuildCfg.mak"
PUBLISH_PACKAGE_DIR=$(PUBLISH_DIR)\$(MSIBUILD_VERSION_STR)
PUBLISH_PACKAGE_URL=http://www.amebis.si/prenos/ZRCola/$(MSIBUILD_VERSION_STR)
REDIST_EN_WIN32="$(PUBLISH_PACKAGE_DIR)\ZRColaEn32.msi"
REDIST_EN_X64="$(PUBLISH_PACKAGE_DIR)\ZRColaEn64.msi"
REDIST_SL_WIN32="$(PUBLISH_PACKAGE_DIR)\ZRColaSl32.msi"
REDIST_SL_X64="$(PUBLISH_PACKAGE_DIR)\ZRColaSl64.msi"
######################################################################
# Main targets
######################################################################
All :: \
Setup
Setup :: \
"$(OUTPUT_DIR)\Setup" \
"$(OUTPUT_DIR)\Setup\ZRColaEn32.msi" \
"$(OUTPUT_DIR)\Setup\ZRColaEn64.msi" \
"$(OUTPUT_DIR)\Setup\ZRColaSl32.msi" \
"$(OUTPUT_DIR)\Setup\ZRColaSl64.msi"
SetupDebug :: \
"$(OUTPUT_DIR)\Setup" \
"$(OUTPUT_DIR)\Setup\ZRColaEn32D.msi" \
"$(OUTPUT_DIR)\Setup\ZRColaEn64D.msi" \
"$(OUTPUT_DIR)\Setup\ZRColaSl32D.msi" \
"$(OUTPUT_DIR)\Setup\ZRColaSl64D.msi"
Register :: \
RegisterSettings \
InstallFonts \
RegisterShortcuts
Unregister :: \
UnregisterShortcuts \
UninstallFonts \
UnregisterSettings
RegisterSettings ::
reg.exe add "HKLM\Software\Amebis\ZRCola" /v "LocalizationRepositoryPath" /t REG_SZ /d "$(MAKEDIR)\$(OUTPUT_DIR)\locale" $(REG_FLAGS) > NUL
reg.exe add "HKLM\Software\Amebis\ZRCola" /v "DatabasePath" /t REG_SZ /d "$(MAKEDIR)\$(OUTPUT_DIR)\data" $(REG_FLAGS) > NUL
!IF "$(PROCESSOR_ARCHITECTURE)" == "AMD64"
reg.exe add "HKLM\Software\Amebis\ZRCola" /v "LocalizationRepositoryPath" /t REG_SZ /d "$(MAKEDIR)\$(OUTPUT_DIR)\locale" $(REG_FLAGS32) > NUL
reg.exe add "HKLM\Software\Amebis\ZRCola" /v "DatabasePath" /t REG_SZ /d "$(MAKEDIR)\$(OUTPUT_DIR)\data" $(REG_FLAGS32) > NUL
!ENDIF
UnregisterSettings ::
-reg.exe delete "HKLM\Software\Amebis\ZRCola" /v "LocalizationRepositoryPath" $(REG_FLAGS) > NUL
-reg.exe delete "HKLM\Software\Amebis\ZRCola" /v "DatabasePath" $(REG_FLAGS) > NUL
!IF "$(PROCESSOR_ARCHITECTURE)" == "AMD64"
-reg.exe delete "HKLM\Software\Amebis\ZRCola" /v "LocalizationRepositoryPath" $(REG_FLAGS32) > NUL
-reg.exe delete "HKLM\Software\Amebis\ZRCola" /v "DatabasePath" $(REG_FLAGS32) > NUL
!ENDIF
InstallFonts :: \
"$(WINDIR)\Fonts\00_ZRCola_Re.ttf" \
"$(WINDIR)\Fonts\00_ZRCola_It.ttf" \
"$(WINDIR)\Fonts\00_ZRCola_Bd.ttf" \
"$(WINDIR)\Fonts\00_ZRCola_BI.ttf"
reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "00 ZRCola (TrueType)" /t REG_SZ /d "00_ZRCola_Re.ttf" $(REG_FLAGS) > NUL
reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "00 ZRCola Italic (TrueType)" /t REG_SZ /d "00_ZRCola_It.ttf" $(REG_FLAGS) > NUL
reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "00 ZRCola Bold (TrueType)" /t REG_SZ /d "00_ZRCola_Bd.ttf" $(REG_FLAGS) > NUL
reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "00 ZRCola Bold Italic (TrueType)" /t REG_SZ /d "00_ZRCola_BI.ttf" $(REG_FLAGS) > NUL
UninstallFonts::
-reg.exe delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "00 ZRCola (TrueType)" $(REG_FLAGS) > NUL
-reg.exe delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "00 ZRCola Italic (TrueType)" $(REG_FLAGS) > NUL
-reg.exe delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "00 ZRCola Bold (TrueType)" $(REG_FLAGS) > NUL
-reg.exe delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "00 ZRCola Bold Italic (TrueType)" $(REG_FLAGS) > NUL
-if exist "$(WINDIR)\Fonts\00_ZRCola_Re.ttf" rd /s /q "$(WINDIR)\Fonts\00_ZRCola_Re.ttf"
-if exist "$(WINDIR)\Fonts\00_ZRCola_It.ttf" rd /s /q "$(WINDIR)\Fonts\00_ZRCola_It.ttf"
-if exist "$(WINDIR)\Fonts\00_ZRCola_Bd.ttf" rd /s /q "$(WINDIR)\Fonts\00_ZRCola_Bd.ttf"
-if exist "$(WINDIR)\Fonts\00_ZRCola_BI.ttf" rd /s /q "$(WINDIR)\Fonts\00_ZRCola_BI.ttf"
RegisterShortcuts :: \
"$(PROGRAMDATA)\Microsoft\Windows\Start Menu\Programs\ZRCola" \
"$(PROGRAMDATA)\Microsoft\Windows\Start Menu\Programs\ZRCola\ZRCola.lnk"
UnregisterShortcuts ::
-if exist "$(PROGRAMDATA)\Microsoft\Windows\Start Menu\Programs\ZRCola" rd /s /q "$(PROGRAMDATA)\Microsoft\Windows\Start Menu\Programs\ZRCola"
Publish :: \
"$(PUBLISH_PACKAGE_DIR)" \
$(REDIST_EN_WIN32) \
$(REDIST_EN_X64) \
$(REDIST_SL_WIN32) \
$(REDIST_SL_X64) \
"$(PUBLISH_DIR)\catalog-0000.xml"
######################################################################
# Folder creation
######################################################################
"$(OUTPUT_DIR)" \
"$(OUTPUT_DIR)\Keys" \
"$(OUTPUT_DIR)\Setup" \
"$(PUBLISH_DIR)" \
"$(PUBLISH_PACKAGE_DIR)" \
"$(PROGRAMDATA)\Microsoft\Windows\Start Menu\Programs\ZRCola" :
if not exist $@ md $@
"$(OUTPUT_DIR)\Keys" \
"$(OUTPUT_DIR)\Setup" : "$(OUTPUT_DIR)"
"$(PUBLISH_PACKAGE_DIR)" : "$(PUBLISH_DIR)"
######################################################################
# File copy
######################################################################
"$(OUTPUT_DIR)\Setup\ZRColaEn32.msi" \
$(REDIST_EN_WIN32) : "$(OUTPUT_DIR)\ZRColaEn32.3.msi"
copy /y $** $@ > NUL
"$(OUTPUT_DIR)\Setup\ZRColaEn32D.msi" : "$(OUTPUT_DIR)\ZRColaEn32D.3.msi"
copy /y $** $@ > NUL
"$(OUTPUT_DIR)\Setup\ZRColaEn64.msi" \
$(REDIST_EN_X64) : "$(OUTPUT_DIR)\ZRColaEn64.3.msi"
copy /y $** $@ > NUL
"$(OUTPUT_DIR)\Setup\ZRColaEn64D.msi" : "$(OUTPUT_DIR)\ZRColaEn64D.3.msi"
copy /y $** $@ > NUL
"$(OUTPUT_DIR)\Setup\ZRColaSl32.msi" \
$(REDIST_SL_WIN32) : "$(OUTPUT_DIR)\ZRColaSl32.3.msi"
copy /y $** $@ > NUL
"$(OUTPUT_DIR)\Setup\ZRColaSl32D.msi" : "$(OUTPUT_DIR)\ZRColaSl32D.3.msi"
copy /y $** $@ > NUL
"$(OUTPUT_DIR)\Setup\ZRColaSl64.msi" \
$(REDIST_SL_X64) : "$(OUTPUT_DIR)\ZRColaSl64.3.msi"
copy /y $** $@ > NUL
"$(OUTPUT_DIR)\Setup\ZRColaSl64D.msi" : "$(OUTPUT_DIR)\ZRColaSl64D.3.msi"
copy /y $** $@ > NUL
"$(WINDIR)\Fonts\00_ZRCola_Re.ttf" : "$(OUTPUT_DIR)\00_ZRCola_Re.ttf"
copy /y $** $@ > NUL
"$(WINDIR)\Fonts\00_ZRCola_It.ttf" : "$(OUTPUT_DIR)\00_ZRCola_It.ttf"
copy /y $** $@ > NUL
"$(WINDIR)\Fonts\00_ZRCola_Bd.ttf" : "$(OUTPUT_DIR)\00_ZRCola_Bd.ttf"
copy /y $** $@ > NUL
"$(WINDIR)\Fonts\00_ZRCola_BI.ttf" : "$(OUTPUT_DIR)\00_ZRCola_BI.ttf"
copy /y $** $@ > NUL
######################################################################
# Shortcut creation
######################################################################
"$(PROGRAMDATA)\Microsoft\Windows\Start Menu\Programs\ZRCola\ZRCola.lnk" : "$(OUTPUT_DIR)\$(PLAT).Debug\ZRCola.exe"
cscript.exe "bin\MkLnk.wsf" //Nologo $@ "$(MAKEDIR)\$(OUTPUT_DIR)\$(PLAT).Debug\ZRCola.exe"
######################################################################
# Building
######################################################################
"$(OUTPUT_DIR)\Win32.Release\libZRCola10u_vc100.dll" \
"$(OUTPUT_DIR)\Win32.Release\libZRColaUI10u_vc100.dll" \
"$(OUTPUT_DIR)\Win32.Release\stdex10u_vc100.dll" \
"$(OUTPUT_DIR)\Win32.Release\wxExtend10u_vc100.dll" \
"$(OUTPUT_DIR)\Win32.Release\ZRCola.exe" \
"$(OUTPUT_DIR)\ZRColaEn32.3.msi" \
"$(OUTPUT_DIR)\ZRColaSl32.3.msi" ::
devenv.com "ZRCola.sln" /build "Release|Win32"
"$(OUTPUT_DIR)\Win32.Debug\libZRCola10ud_vc100.dll" \
"$(OUTPUT_DIR)\Win32.Debug\libZRColaUI10ud_vc100.dll" \
"$(OUTPUT_DIR)\Win32.Debug\stdex10ud_vc100.dll" \
"$(OUTPUT_DIR)\Win32.Debug\wxExtend10ud_vc100.dll" \
"$(OUTPUT_DIR)\Win32.Debug\ZRCola.exe" \
"$(OUTPUT_DIR)\ZRColaEn32D.3.msi" \
"$(OUTPUT_DIR)\ZRColaSl32D.3.msi" ::
devenv.com "ZRCola.sln" /build "Debug|Win32"
"$(OUTPUT_DIR)\x64.Release\libZRCola10u_vc100.dll" \
"$(OUTPUT_DIR)\x64.Release\libZRColaUI10u_vc100.dll" \
"$(OUTPUT_DIR)\x64.Release\stdex10u_vc100.dll" \
"$(OUTPUT_DIR)\x64.Release\wxExtend10u_vc100.dll" \
"$(OUTPUT_DIR)\x64.Release\ZRCola.exe" \
"$(OUTPUT_DIR)\ZRColaEn64.3.msi" \
"$(OUTPUT_DIR)\ZRColaSl64.3.msi" ::
devenv.com "ZRCola.sln" /build "Release|x64"
"$(OUTPUT_DIR)\x64.Debug\libZRCola10ud_vc100.dll" \
"$(OUTPUT_DIR)\x64.Debug\libZRColaUI10ud_vc100.dll" \
"$(OUTPUT_DIR)\x64.Debug\stdex10ud_vc100.dll" \
"$(OUTPUT_DIR)\x64.Debug\wxExtend10ud_vc100.dll" \
"$(OUTPUT_DIR)\x64.Debug\ZRCola.exe" \
"$(OUTPUT_DIR)\ZRColaEn64D.3.msi" \
"$(OUTPUT_DIR)\ZRColaSl64D.3.msi" ::
devenv.com "ZRCola.sln" /build "Debug|x64"
"$(OUTPUT_DIR)\ZRColaEn32.3.msi" \
"$(OUTPUT_DIR)\ZRColaSl32.3.msi" ::
devenv.com "MSI\MSICA\MSICA.sln" /build "Release|Win32"
devenv.com "Updater\Updater.sln" /build "Release|Win32"
"$(OUTPUT_DIR)\ZRColaEn32D.3.msi" \
"$(OUTPUT_DIR)\ZRColaSl32D.3.msi" ::
devenv.com "MSI\MSICA\MSICA.sln" /build "Debug|Win32"
devenv.com "Updater\Updater.sln" /build "Debug|Win32"
"$(OUTPUT_DIR)\ZRColaEn64.3.msi" \
"$(OUTPUT_DIR)\ZRColaSl64.3.msi" ::
devenv.com "MSI\MSICA\MSICA.sln" /build "Release|x64"
devenv.com "Updater\Updater.sln" /build "Release|x64"
"$(OUTPUT_DIR)\ZRColaEn64D.3.msi" \
"$(OUTPUT_DIR)\ZRColaSl64D.3.msi" ::
devenv.com "MSI\MSICA\MSICA.sln" /build "Debug|x64"
devenv.com "Updater\Updater.sln" /build "Debug|x64"
"$(OUTPUT_DIR)\ZRColaEn32.3.msi" ::
cd "MSI\ZRCola"
$(MAKE) /f "Makefile" /$(MAKEFLAGS) LANG=En PLAT=Win32 CFG=Release
cd "$(MAKEDIR)"
"$(OUTPUT_DIR)\ZRColaEn32D.3.msi" ::
cd "MSI\ZRCola"
$(MAKE) /f "Makefile" /$(MAKEFLAGS) LANG=En PLAT=Win32 CFG=Debug
cd "$(MAKEDIR)"
"$(OUTPUT_DIR)\ZRColaEn64.3.msi" ::
cd "MSI\ZRCola"
$(MAKE) /f "Makefile" /$(MAKEFLAGS) LANG=En PLAT=x64 CFG=Release
cd "$(MAKEDIR)"
"$(OUTPUT_DIR)\ZRColaEn64D.3.msi" ::
cd "MSI\ZRCola"
$(MAKE) /f "Makefile" /$(MAKEFLAGS) LANG=En PLAT=x64 CFG=Debug
cd "$(MAKEDIR)"
"$(OUTPUT_DIR)\ZRColaSl32.3.msi" ::
cd "MSI\ZRCola"
$(MAKE) /f "Makefile" /$(MAKEFLAGS) LANG=Sl PLAT=Win32 CFG=Release
cd "$(MAKEDIR)"
"$(OUTPUT_DIR)\ZRColaSl32D.3.msi" ::
cd "MSI\ZRCola"
$(MAKE) /f "Makefile" /$(MAKEFLAGS) LANG=Sl PLAT=Win32 CFG=Debug
cd "$(MAKEDIR)"
"$(OUTPUT_DIR)\ZRColaSl64.3.msi" ::
cd "MSI\ZRCola"
$(MAKE) /f "Makefile" /$(MAKEFLAGS) LANG=Sl PLAT=x64 CFG=Release
cd "$(MAKEDIR)"
"$(OUTPUT_DIR)\ZRColaSl64D.3.msi" ::
cd "MSI\ZRCola"
$(MAKE) /f "Makefile" /$(MAKEFLAGS) LANG=Sl PLAT=x64 CFG=Debug
cd "$(MAKEDIR)"
"$(PUBLISH_DIR)\catalog-0000.xml" : "$(OUTPUT_DIR)\catalog.xml"
if exist $@ del /f /q $@
output\$(PLAT).Release\UpdSignXML.exe $** $@
"$(OUTPUT_DIR)\catalog.xml" : \
"$(OUTPUT_DIR)\ZRColaEn32.3.msi" \
"$(OUTPUT_DIR)\ZRColaEn64.3.msi" \
"$(OUTPUT_DIR)\ZRColaSl32.3.msi" \
"$(OUTPUT_DIR)\ZRColaSl64.3.msi"
-if exist $@ del /f /q $@
-if exist "$(@:"=).tmp" del /f /q "$(@:"=).tmp"
copy /y "$(PUBLISH_DIR)\catalog-0000.xml" "$(@:"=).tmp" > NUL
output\$(PLAT).Release\UpdPublish.exe "$(@:"=).tmp" "$(@:"=).tmp" win-x86 en_US "$(PUBLISH_PACKAGE_URL)/ZRColaEn32.msi" -f "$(OUTPUT_DIR)\ZRColaEn32.3.msi"
output\$(PLAT).Release\UpdPublish.exe "$(@:"=).tmp" "$(@:"=).tmp" win-amd64 en_US "$(PUBLISH_PACKAGE_URL)/ZRColaEn64.msi" -f "$(OUTPUT_DIR)\ZRColaEn64.3.msi"
output\$(PLAT).Release\UpdPublish.exe "$(@:"=).tmp" "$(@:"=).tmp" win-x86 sl_SI "$(PUBLISH_PACKAGE_URL)/ZRColaSl32.msi" -f "$(OUTPUT_DIR)\ZRColaSl32.3.msi"
output\$(PLAT).Release\UpdPublish.exe "$(@:"=).tmp" "$(@:"=).tmp" win-amd64 sl_SI "$(PUBLISH_PACKAGE_URL)/ZRColaSl64.msi" -f "$(OUTPUT_DIR)\ZRColaSl64.3.msi"
move /y "$(@:"=).tmp" $@ > NUL
!ENDIF

1
Updater Submodule

Submodule Updater added at e88f1b429f

View File

@@ -14,6 +14,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libZRCola", "lib\libZRCola\build\libZRCola.vcxproj", "{3C61929E-7289-4101-8D0A-DA22D6E1AEA8}"
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}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -46,6 +50,22 @@ Global
{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
{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}.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
{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}.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
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -53,5 +73,7 @@ Global
GlobalSection(NestedProjects) = preSolution
{A3A36689-AC35-4026-93DA-A3BA0C0E767C} = {6D85AD6A-69D6-40EB-BF0C-7495479DDCE5}
{3C61929E-7289-4101-8D0A-DA22D6E1AEA8} = {6D85AD6A-69D6-40EB-BF0C-7495479DDCE5}
{C0A84BD2-3870-4CD6-B281-0AB322E3C579} = {6D85AD6A-69D6-40EB-BF0C-7495479DDCE5}
{518777CC-0A59-4415-A12A-82751ED75343} = {6D85AD6A-69D6-40EB-BF0C-7495479DDCE5}
EndGlobalSection
EndGlobal

9
ZRCola/MSIBuild/.gitignore vendored Normal file
View File

@@ -0,0 +1,9 @@
/*-1.idt
/*-2.idt
/*-2.idtx
/*.Binary-1
/*.Binary-2
/*.Icon-1
/*.Icon-2
/*.lst
/*.msm

216
ZRCola/MSIBuild/Makefile Normal file
View File

@@ -0,0 +1,216 @@
#
# Copyright 1991-2016 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"
MSIBUILD_IS_LOCALIZEABLE=1
######################################################################
# AppSearch
All :: "$(LANG).$(PLAT).$(CFG).AppSearch-1.idt"
"$(LANG).$(PLAT).$(CFG).AppSearch-1.idt" : "Makefile" "..\..\include\MSIBuildCfg.mak"
-if exist $@ del /f /q $@
move /y << $@ > NUL
Property Signature_
s$(MSIBUILD_LENGTH_ID) s$(MSIBUILD_LENGTH_ID)
AppSearch Property Signature_
OLDZRCOLADIR clZRCola.exe.$(PLAT)
<<NOKEEP
######################################################################
# CompLocator
All :: "$(LANG).$(PLAT).$(CFG).CompLocator-1.idt"
"$(LANG).$(PLAT).$(CFG).CompLocator-1.idt" : "Makefile" "..\..\include\MSIBuildCfg.mak"
-if exist $@ del /f /q $@
move /y << $@ > NUL
Signature_ ComponentId Type
s$(MSIBUILD_LENGTH_ID) s38 I2
CompLocator Signature_
!IF "$(PLAT)" == "Win32"
clZRCola.exe.Win32 {F30B6545-6203-4B7D-8575-85245A0F90E5} 1
!ENDIF
!IF "$(PLAT)" == "x64"
clZRCola.exe.x64 {D45B105D-2303-459A-AF4B-52AC3AAD5510} 1
!ENDIF
<<NOKEEP
######################################################################
# Component
All :: "$(LANG).$(PLAT).$(CFG).Component-1.idt"
"$(LANG).$(PLAT).$(CFG).Component-1.idt" : "Makefile" "..\..\include\MSIBuildCfg.mak"
-if exist $@ del /f /q $@
move /y << $@ > NUL
Component ComponentId Directory_ Attributes Condition KeyPath
s$(MSIBUILD_LENGTH_ID) S38 s$(MSIBUILD_LENGTH_ID) i2 S255 S$(MSIBUILD_LENGTH_ID)
Component Component
!IF "$(PLAT)" == "Win32"
compZRCola.exe.Win32 {F30B6545-6203-4B7D-8575-85245A0F90E5} ZRCOLABINDIR 0 fileZRCola.exe.Win32
!ENDIF
!IF "$(PLAT)" == "x64"
compZRCola.exe.x64 {D45B105D-2303-459A-AF4B-52AC3AAD5510} ZRCOLABINDIR 256 fileZRCola.exe.x64
!ENDIF
compZRCola.mo.sl_SI {7FF95C71-D8DE-4D2B-A26D-FEB5A1F54D63} ZRCOLALOCSLSIDIR $(MSIBUILD_COMPONENT_ATTRIB_FILE) fileZRCola.mo.sl_SI
<<NOKEEP
######################################################################
# Feature
All :: "$(LANG).$(PLAT).$(CFG).Feature-2.idt"
"En.$(PLAT).$(CFG).Feature-2.idtx" : "Makefile" "..\..\include\MSIBuildCfg.mak"
-if exist $@ del /f /q $@
move /y << $@ > NUL
Feature Feature_Parent Title Description Display Level Directory_ Attributes
s$(MSIBUILD_LENGTH_ID) S$(MSIBUILD_LENGTH_ID) L64 L255 I2 i2 S$(MSIBUILD_LENGTH_ID) i2
1252 Feature Feature
featZRCola ZRCola Input system for linguistic use 1 1 ZRCOLADIR 8
<<NOKEEP
"De.$(PLAT).$(CFG).Feature-2.idt" : "En.$(PLAT).$(CFG).Feature-2.idtx" "..\locale\de_DE.po"
rcxgettext.exe idtp $@ $**
"En.$(PLAT).$(CFG).Feature-2.idt" : "En.$(PLAT).$(CFG).Feature-2.idtx"
copy /y $** $@ > NUL
"It.$(PLAT).$(CFG).Feature-2.idt" : "En.$(PLAT).$(CFG).Feature-2.idtx" "..\locale\it_IT.po"
rcxgettext.exe idtp $@ $**
"Sl.$(PLAT).$(CFG).Feature-2.idt" : "En.$(PLAT).$(CFG).Feature-2.idtx" "..\locale\sl_SI.po"
rcxgettext.exe idtp $@ $**
######################################################################
# FeatureComponents
All :: "$(LANG).$(PLAT).$(CFG).FeatureComponents-1.idt"
"$(LANG).$(PLAT).$(CFG).FeatureComponents-1.idt" : "Makefile" "..\..\include\MSIBuildCfg.mak"
-if exist $@ del /f /q $@
move /y << $@ > NUL
Feature_ Component_
s$(MSIBUILD_LENGTH_ID) s$(MSIBUILD_LENGTH_ID)
FeatureComponents Feature_ Component_
featZRCola compZRCola.exe.$(PLAT)
featZRCola compZRCola.mo.sl_SI
featZRCola complibZRCola.dll.$(PLAT)
featZRCola complibZRColaUI.dll.$(PLAT)
featZRCola compwxExtend.dll.$(PLAT)
featZRCola compwxExtend.mo.sl_SI
featZRCola compwxstd.mo.sl_SI
featZRCola compLocalizationRepositoryPath
featZRCola compLanguage
featZRCola compDatabasePath
featZRCola compZRCola.zrcdb
featZRCola comp00_ZRCola_Re.ttf
<<NOKEEP
######################################################################
# File
All :: "$(LANG).$(PLAT).$(CFG).File-1.idt"
"$(LANG).$(PLAT).$(CFG).File-1.idt" : "Makefile" "..\..\include\MSIBuildCfg.mak"
-if exist $@ del /f /q $@
move /y << $@ > NUL
File Component_ FileName FileSize Version Language Attributes Sequence
s$(MSIBUILD_LENGTH_ID) s$(MSIBUILD_LENGTH_ID) l255 i4 S$(MSIBUILD_LENGTH_ID) S20 I2 i2
File File
fileZRCola.exe.$(PLAT) compZRCola.exe.$(PLAT) ZRCola.exe 0 0 1536 1
fileZRCola.mo.sl_SI compZRCola.mo.sl_SI ZRCola.mo 0 1060 0 1
<<NOKEEP
######################################################################
# Icon
All :: \
"$(LANG).$(PLAT).$(CFG).Icon-1.idt" \
"$(LANG).$(PLAT).$(CFG).Icon-1\ZRCola.ico"
"$(LANG).$(PLAT).$(CFG).Icon-1.idt" : "Makefile" "..\..\include\MSIBuildCfg.mak" "$(LANG).$(PLAT).$(CFG).Icon-1"
-if exist $@ del /f /q $@
move /y << $@ > NUL
Name Data
s$(MSIBUILD_LENGTH_ID) v0
Icon Name
iconZRCola.ico ZRCola.ico
<<NOKEEP
"$(LANG).$(PLAT).$(CFG).Icon-1\ZRCola.ico" : "..\res\zrcola.ico"
copy /y $** $@ > NUL
######################################################################
# RemoveFile
All :: "$(LANG).$(PLAT).$(CFG).RemoveFile-1.idt"
"$(LANG).$(PLAT).$(CFG).RemoveFile-1.idt" : "Makefile" "..\..\include\MSIBuildCfg.mak"
-if exist $@ del /f /q $@
move /y << $@ > NUL
FileKey Component_ FileName DirProperty InstallMode
s$(MSIBUILD_LENGTH_ID) s$(MSIBUILD_LENGTH_ID) L255 s$(MSIBUILD_LENGTH_ID) i2
RemoveFile FileKey
rmfiZRCola compZRCola.exe.$(PLAT) ZRColaShortcutDir 2
<<NOKEEP
######################################################################
# Shortcut
All :: "$(LANG).$(PLAT).$(CFG).Shortcut-2.idt"
"En.$(PLAT).$(CFG).Shortcut-2.idtx" : "Makefile" "..\..\include\MSIBuildCfg.mak"
-if exist $@ del /f /q $@
move /y << $@ > NUL
Shortcut Directory_ Name Component_ Target Arguments Description Hotkey Icon_ IconIndex ShowCmd WkDir
s$(MSIBUILD_LENGTH_ID) s$(MSIBUILD_LENGTH_ID) l128 s$(MSIBUILD_LENGTH_ID) s$(MSIBUILD_LENGTH_ID) S255 L255 I2 S$(MSIBUILD_LENGTH_ID) I2 I2 S$(MSIBUILD_LENGTH_ID)
1252 Shortcut Shortcut
shctZRCola ZRColaShortcutDir ZRCola compZRCola.exe.$(PLAT) featZRCola Input system for linguistic use iconZRCola.ico ZRCOLABINDIR
<<NOKEEP
"De.$(PLAT).$(CFG).Shortcut-2.idt" : "En.$(PLAT).$(CFG).Shortcut-2.idtx" "..\locale\de_DE.po"
rcxgettext.exe idtp $@ $**
"En.$(PLAT).$(CFG).Shortcut-2.idt" : "En.$(PLAT).$(CFG).Shortcut-2.idtx"
copy /y $** $@ > NUL
"It.$(PLAT).$(CFG).Shortcut-2.idt" : "En.$(PLAT).$(CFG).Shortcut-2.idtx" "..\locale\it_IT.po"
rcxgettext.exe idtp $@ $**
"Sl.$(PLAT).$(CFG).Shortcut-2.idt" : "En.$(PLAT).$(CFG).Shortcut-2.idtx" "..\locale\sl_SI.po"
rcxgettext.exe idtp $@ $**
######################################################################
# Build MSM module!
######################################################################
!INCLUDE "..\..\MSI\MSIBuild\MSM.mak"

View File

@@ -153,75 +153,6 @@
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="wxMenu" expanded="1">
<property name="label">&amp;Accents</property>
<property name="name">m_menuAccents</property>
<property name="permission">protected</property>
<object class="wxMenuItem" expanded="1">
<property name="bitmap"></property>
<property name="checked">0</property>
<property name="enabled">1</property>
<property name="help"></property>
<property name="id">wxID_INSERT_GRAVE</property>
<property name="kind">wxITEM_NORMAL</property>
<property name="label">Grave&#x09;&amp;7</property>
<property name="name">m_menuItemGrave</property>
<property name="permission">none</property>
<property name="shortcut"></property>
<property name="unchecked_bitmap"></property>
<event name="OnMenuSelection"></event>
<event name="OnUpdateUI"></event>
</object>
<object class="wxMenuItem" expanded="1">
<property name="bitmap"></property>
<property name="checked">0</property>
<property name="enabled">1</property>
<property name="help"></property>
<property name="id">wxID_INSERT_ACUTE</property>
<property name="kind">wxITEM_NORMAL</property>
<property name="label">Acute&#x09;&amp;9</property>
<property name="name">m_menuItemAcute</property>
<property name="permission">none</property>
<property name="shortcut"></property>
<property name="unchecked_bitmap"></property>
<event name="OnMenuSelection"></event>
<event name="OnUpdateUI"></event>
</object>
<object class="wxMenuItem" expanded="1">
<property name="bitmap"></property>
<property name="checked">0</property>
<property name="enabled">1</property>
<property name="help"></property>
<property name="id">wxID_INSERT_CIRCUMFLEX</property>
<property name="kind">wxITEM_NORMAL</property>
<property name="label">Circumflex&#x09;&amp;3</property>
<property name="name">m_menuItemCircumflex</property>
<property name="permission">none</property>
<property name="shortcut"></property>
<property name="unchecked_bitmap"></property>
<event name="OnMenuSelection"></event>
<event name="OnUpdateUI"></event>
</object>
<object class="separator" expanded="1">
<property name="name">m_separator2</property>
<property name="permission">none</property>
</object>
<object class="wxMenuItem" expanded="1">
<property name="bitmap"></property>
<property name="checked">0</property>
<property name="enabled">1</property>
<property name="help"></property>
<property name="id">wxID_INSERT_INV_BREVE_BELOW</property>
<property name="kind">wxITEM_NORMAL</property>
<property name="label">Inverted &amp;breve</property>
<property name="name">m_menuItemInvBreveBelow</property>
<property name="permission">none</property>
<property name="shortcut"></property>
<property name="unchecked_bitmap"></property>
<event name="OnMenuSelection"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="wxMenu" expanded="1">
<property name="label">&amp;Help</property>
<property name="name">m_menuHelp</property>

View File

@@ -7,7 +7,7 @@
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>..\lib\wxExtend\include;..\lib\libZRCola\include</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\lib\wxExtend\include;..\lib\stdex\include;..\lib\libZRCola\include;..\lib\libZRColaUI\include</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup />

Binary file not shown.

View File

@@ -84,6 +84,7 @@
<ClCompile Include="zrcolacomppnl.cpp" />
<ClCompile Include="zrcolafrm.cpp" />
<ClCompile Include="zrcolagui.cpp" />
<ClCompile Include="zrcolakeyhndlr.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h" />
@@ -91,8 +92,12 @@
<ClInclude Include="zrcolacomppnl.h" />
<ClInclude Include="zrcolafrm.h" />
<ClInclude Include="zrcolagui.h" />
<ClInclude Include="zrcolakeyhndlr.h" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\lib\libZRColaUI\build\libZRColaUI.vcxproj">
<Project>{c0a84bd2-3870-4cd6-b281-0ab322e3c579}</Project>
</ProjectReference>
<ProjectReference Include="..\lib\libZRCola\build\libZRCola.vcxproj">
<Project>{3c61929e-7289-4101-8d0a-da22d6e1aea8}</Project>
</ProjectReference>
@@ -101,14 +106,13 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="res\send.ico" />
<None Include="res\zrcola.ico" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="ZRCola.rc" />
</ItemGroup>
<ItemGroup>
<POCompile Include="locale\sl.po" />
<POCompile Include="locale\sl_SI.po" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">

View File

@@ -34,6 +34,9 @@
<ClCompile Include="zrcolafrm.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="zrcolakeyhndlr.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h">
@@ -51,11 +54,11 @@
<ClInclude Include="zrcolafrm.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="zrcolakeyhndlr.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="res\send.ico">
<Filter>Resource Files</Filter>
</None>
<None Include="res\zrcola.ico">
<Filter>Resource Files</Filter>
</None>
@@ -66,7 +69,7 @@
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<POCompile Include="locale\sl.po">
<POCompile Include="locale\sl_SI.po">
<Filter>Resource Files\Localization</Filter>
</POCompile>
</ItemGroup>

1
ZRCola/locale/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/*.mo

View File

@@ -1,121 +0,0 @@
msgid ""
msgstr ""
"Project-Id-Version: ZRCola\n"
"POT-Creation-Date: 2016-02-09 18:56+0100\n"
"PO-Revision-Date: 2016-02-09 18:56+0100\n"
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
"Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n"
"Language: sl_SI\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.6\n"
"X-Poedit-Basepath: ..\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3);\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: _\n"
"X-Poedit-SearchPath-0: .\n"
#: zrcolafrm.cpp:62
msgid ""
"ZRCola keyboard shortcut Ctrl+Alt+Z could not be registered. Some "
"functionality will not be available."
msgstr ""
"ZRColine bližnjice na tipkovnici Ctrl+Alt+Z ni mogoče registrirati. Nekaj "
"funkcionalnosti ne bo na voljo."
#: zrcolafrm.cpp:62 zrcolafrm.cpp:64
msgid "Warning"
msgstr "Opozorilo"
#: zrcolafrm.cpp:64
msgid ""
"ZRCola keyboard shortcut Ctrl+Alt+Shift+Z could not be registered. Some "
"functionality will not be available."
msgstr ""
"ZRColine bližnjice na tipkovnici Ctrl+Alt+Shift+Z ni mogoče registrirati. "
"Nekaj funkcionalnosti ne bo na voljo."
#: zrcolafrm.cpp:222
#, c-format
msgid ""
"ZRCola v%s\n"
"Copyright 2015-%s Amebis"
msgstr ""
"ZRCola v%s\n"
"Vse pravice pridržane 2015-%s Amebis"
#: zrcolafrm.cpp:222
msgid "About ZRCola"
msgstr "O ZRColi"
#: zrcolagui.cpp:32
msgid "E&xit"
msgstr "I&zhod"
#: zrcolagui.cpp:35
msgid "&File"
msgstr "&Datoteka"
#: zrcolagui.cpp:39
msgid "Grave\t&7"
msgstr "Krativec\t&7"
#: zrcolagui.cpp:43
msgid "Acute\t&9"
msgstr "Ostrivec\t&9"
#: zrcolagui.cpp:47
msgid "Circumflex\t&3"
msgstr "Cirkumfleks\t&3"
#: zrcolagui.cpp:53
msgid "Inverted &breve"
msgstr "O&brnjen polkrog"
#: zrcolagui.cpp:56
msgid "&Accents"
msgstr "N&aglasi"
#: zrcolagui.cpp:60
msgid "&About"
msgstr "O progr&amu"
#: zrcolagui.cpp:63
msgid "&Help"
msgstr "&Pomoč"
#: zrcolagui.h:56
msgid "ZRCola"
msgstr "ZRCola"
#~ msgid ""
#~ "There is already an auto hidden bar on this edge.\n"
#~ "Only one auto hidden bar is allowed on each edge.\n"
#~ "Auto-hide feature is now off."
#~ msgstr ""
#~ "Ob tem robu je že samodejno skrita pasica.\n"
#~ "Na vsakem robu je lahko samo ena samodejno skrita pasica.\n"
#~ "Samodejno skrivanje je zdaj izklopljeno."
#~ msgid "Hello World"
#~ msgstr "Zdravo svet"
#~ msgid "&Hello...\tCtrl+H"
#~ msgstr "&Pozdrav ...\tCtrl+H"
#~ msgid "Help string shown in status bar for this menu item"
#~ msgstr "Niz s pomočjo prikazan v statusni vrstici za to točko menija"
#~ msgid "This is a wxWidgets' Hello world sample"
#~ msgstr "To je primer Zdravo svet v wxWidgets"
#~ msgid "About Hello World"
#~ msgstr "O Zdravo svet"
#~ msgid "Hello world from wxWidgets!"
#~ msgstr "Zdravo svet iz wxWidgets!"
#~ msgid "Welcome to wxWidgets!"
#~ msgstr "Dobrodošli v wxWidgets!"

150
ZRCola/locale/sl_SI.po Normal file
View File

@@ -0,0 +1,150 @@
msgid ""
msgstr ""
"Project-Id-Version: ZRCola\n"
"POT-Creation-Date: 2016-03-14 17:18+0100\n"
"PO-Revision-Date: 2016-03-14 17:18+0100\n"
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
"Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n"
"Language: sl_SI\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.7\n"
"X-Poedit-Basepath: ..\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3);\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: _\n"
"X-Poedit-SearchPath-0: .\n"
#: zrcolafrm.cpp:58
msgid ""
"ZRCola keyboard shortcut Win+Z could not be registered. Some functionality "
"will not be available."
msgstr ""
"ZRColine bližnjice na tipkovnici Win+Z ni mogoče registrirati. Nekaj "
"funkcionalnosti ne bo na voljo."
#: zrcolafrm.cpp:58 zrcolafrm.cpp:60
msgid "Warning"
msgstr "Opozorilo"
#: zrcolafrm.cpp:60
msgid ""
"ZRCola keyboard shortcut Win+Shift+Z could not be registered. Some "
"functionality will not be available."
msgstr ""
"ZRColine bližnjice na tipkovnici Win+Shift+Z ni mogoče registrirati. Nekaj "
"funkcionalnosti ne bo na voljo."
#: zrcolafrm.cpp:140
#, c-format
msgid ""
"ZRCola v%s\n"
"Copyright 2015-%s Amebis"
msgstr ""
"ZRCola v%s\n"
"Vse pravice pridržane 2015-%s Amebis"
#: zrcolafrm.cpp:140
msgid "About ZRCola"
msgstr "O ZRColi"
#: zrcolagui.cpp:32
msgid "E&xit"
msgstr "I&zhod"
#: zrcolagui.cpp:35
msgid "&File"
msgstr "&Datoteka"
#: zrcolagui.cpp:39
msgid "&About"
msgstr "O progr&amu"
#: zrcolagui.cpp:42
msgid "&Help"
msgstr "&Pomoč"
#: zrcolagui.h:47 MSIBuild/En.Win32.Debug.Feature-2.idtx:4
#: MSIBuild/En.Win32.Debug.Shortcut-2.idtx:4
#: MSIBuild/En.Win32.Release.Feature-2.idtx:4
#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:4
#: MSIBuild/En.x64.Debug.Feature-2.idtx:4
#: MSIBuild/En.x64.Debug.Shortcut-2.idtx:4
#: MSIBuild/En.x64.Release.Feature-2.idtx:4
#: MSIBuild/En.x64.Release.Shortcut-2.idtx:4
msgid "ZRCola"
msgstr "ZRCola"
# Windows charset for this language (decimal)
#: MSIBuild/En.Win32.Debug.Feature-2.idtx:3
#: MSIBuild/En.Win32.Debug.Shortcut-2.idtx:3
#: MSIBuild/En.Win32.Release.Feature-2.idtx:3
#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:3
#: MSIBuild/En.x64.Debug.Feature-2.idtx:3
#: MSIBuild/En.x64.Debug.Shortcut-2.idtx:3
#: MSIBuild/En.x64.Release.Feature-2.idtx:3
#: MSIBuild/En.x64.Release.Shortcut-2.idtx:3
msgid "1252"
msgstr "1250"
#: MSIBuild/En.Win32.Debug.Feature-2.idtx:4
#: MSIBuild/En.Win32.Debug.Shortcut-2.idtx:4
#: MSIBuild/En.Win32.Release.Feature-2.idtx:4
#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:4
#: MSIBuild/En.x64.Debug.Feature-2.idtx:4
#: MSIBuild/En.x64.Debug.Shortcut-2.idtx:4
#: MSIBuild/En.x64.Release.Feature-2.idtx:4
#: MSIBuild/En.x64.Release.Shortcut-2.idtx:4
msgid "Input system for linguistic use"
msgstr "Vnašalni sistem za jezikoslovno rabo"
#, fuzzy
#~ msgid "Authentication progress real time monitor"
#~ msgstr "Nadzira postopek overovljanja v realnem času"
#~ msgid "Grave\t&7"
#~ msgstr "Krativec\t&7"
#~ msgid "Acute\t&9"
#~ msgstr "Ostrivec\t&9"
#~ msgid "Circumflex\t&3"
#~ msgstr "Cirkumfleks\t&3"
#~ msgid "Inverted &breve"
#~ msgstr "O&brnjen polkrog"
#~ msgid "&Accents"
#~ msgstr "N&aglasi"
#~ msgid ""
#~ "There is already an auto hidden bar on this edge.\n"
#~ "Only one auto hidden bar is allowed on each edge.\n"
#~ "Auto-hide feature is now off."
#~ msgstr ""
#~ "Ob tem robu je že samodejno skrita pasica.\n"
#~ "Na vsakem robu je lahko samo ena samodejno skrita pasica.\n"
#~ "Samodejno skrivanje je zdaj izklopljeno."
#~ msgid "Hello World"
#~ msgstr "Zdravo svet"
#~ msgid "&Hello...\tCtrl+H"
#~ msgstr "&Pozdrav ...\tCtrl+H"
#~ msgid "Help string shown in status bar for this menu item"
#~ msgstr "Niz s pomočjo prikazan v statusni vrstici za to točko menija"
#~ msgid "This is a wxWidgets' Hello world sample"
#~ msgstr "To je primer Zdravo svet v wxWidgets"
#~ msgid "About Hello World"
#~ msgstr "O Zdravo svet"
#~ msgid "Hello world from wxWidgets!"
#~ msgstr "Zdravo svet iz wxWidgets!"
#~ msgid "Welcome to wxWidgets!"
#~ msgstr "Dobrodošli v wxWidgets!"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

File diff suppressed because one or more lines are too long

View File

@@ -23,12 +23,13 @@
#include "zrcolaapp.h"
#include "zrcolacomppnl.h"
#include "zrcolafrm.h"
#include <zrcola/compose.h>
#include <zrcola/decompose.h>
#include "zrcolakeyhndlr.h"
#include <wx/msgdlg.h>
#include <wxex/common.h>
#include <fstream>
#include <string>
#include <vector>
#include <stdex/idrec.h>

View File

@@ -27,13 +27,28 @@
wxIMPLEMENT_APP(ZRColaApp);
ZRColaApp::ZRColaApp() :
m_config(wxT(ZRCOLA_CFG_APPLICATION), wxT(ZRCOLA_CFG_VENDOR)),
wxApp()
{
}
bool ZRColaApp::OnInit()
{
if (!wxAppEx::OnInit())
if (!wxApp::OnInit())
return false;
if (wxLocale::IsAvailable(wxLANGUAGE_SLOVENIAN))
// Set desired locale.
wxLanguage language = (wxLanguage)m_config.Read(wxT("Language"), wxLANGUAGE_DEFAULT);
if (wxLocale::IsAvailable(language)) {
wxString sPath;
if (m_config.Read(wxT("LocalizationRepositoryPath"), &sPath))
m_locale.AddCatalogLookupPathPrefix(sPath);
wxVERIFY(m_locale.Init(language));
wxVERIFY(m_locale.AddCatalog(wxT("wxExtend")));
wxVERIFY(m_locale.AddCatalog(wxT("ZRCola")));
}
wxZRColaFrame* mainFrame = new wxZRColaFrame();

View File

@@ -25,20 +25,55 @@ class ZRColaApp;
#pragma once
#include <wxex/appex.h>
#include <wx/app.h>
#include <wx/config.h>
#include <wx/intl.h>
///
/// ZRCola application
///
class ZRColaApp : public wxAppEx
class ZRColaApp : public wxApp
{
public:
ZRColaApp();
///
/// Called when application initializes.
///
/// \returns
/// - true if initialization succeeded
/// - false otherwise
///
virtual bool OnInit();
///
/// \returns Path to ZRCola.zrcdb file
///
inline wxString GetDatabasePath() const;
protected:
wxConfig m_config; ///< Application configuration
wxLocale m_locale; ///< Current locale
};
wxDECLARE_APP(ZRColaApp);
inline wxString ZRColaApp::GetDatabasePath() const
{
wxString sPath;
if (m_config.Read(wxT("DatabasePath"), &sPath)) {
if (!wxEndsWithPathSeparator(sPath))
sPath << wxFILE_SEP_PATH;
} else {
sPath = wxPathOnly(argv[0]);
sPath << wxT("\\..\\data\\");
}
sPath << wxT("ZRCola.zrcdb");
return sPath;
}

View File

@@ -30,11 +30,35 @@ wxZRColaComposerPanel::wxZRColaComposerPanel(wxWindow* parent) :
m_selComposed(0, 0),
wxZRColaComposerPanelBase(parent)
{
std::fstream dat((LPCTSTR)((ZRColaApp*)wxTheApp)->GetDatabasePath(), std::ios_base::in | std::ios_base::binary);
if (dat.good()) {
if (stdex::idrec::find<ZRCola::recordid_t, ZRCola::recordsize_t, ZRCOLA_RECORD_ALIGN>(dat, ZRCOLA_DB_ID, sizeof(ZRCola::recordid_t))) {
ZRCola::recordsize_t size;
dat.read((char*)&size, sizeof(ZRCola::recordsize_t));
if (dat.good()) {
ZRCola::translation_rec rec(m_t_db);
if (rec.find(dat, size)) {
dat >> rec;
if (!dat.good()) {
wxFAIL_MSG(wxT("Error reading translation data from ZRCola.zrcdb."));
m_t_db.idxComp .clear();
m_t_db.idxDecomp.clear();
m_t_db.data .clear();
}
} else
wxFAIL_MSG(wxT("ZRCola.zrcdb has no translation data."));
}
} else
wxFAIL_MSG(wxT("ZRCola.zrcdb is not a valid ZRCola database."));
}
m_decomposed->PushEventHandler(&m_keyhandler);
}
wxZRColaComposerPanel::~wxZRColaComposerPanel()
{
m_decomposed->PopEventHandler();
}
@@ -70,7 +94,7 @@ void wxZRColaComposerPanel::OnDecomposedText(wxCommandEvent& event)
#endif
std::wstring dst;
ZRCola::Compose(src.data(), src.size(), dst, &m_mapping);
m_t_db.Compose(src.data(), src.size(), dst, &m_mapping);
long from, to;
m_decomposed->GetSelection(&from, &to);
@@ -117,7 +141,7 @@ void wxZRColaComposerPanel::OnComposedText(wxCommandEvent& event)
#endif
std::wstring dst;
ZRCola::Decompose(src.data(), src.size(), dst, &m_mapping);
m_t_db.Decompose(src.data(), src.size(), dst, &m_mapping);
long from, to;
m_composed->GetSelection(&from, &to);

View File

@@ -26,7 +26,8 @@ class wxZRColaComposerPanel;
#pragma once
#include "zrcolagui.h"
#include <zrcola/common.h>
#include "zrcolakeyhndlr.h"
#include <zrcola/translate.h>
#include <utility>
@@ -39,8 +40,7 @@ public:
wxZRColaComposerPanel(wxWindow* parent);
virtual ~wxZRColaComposerPanel();
// Allow main frame direct access to our members.
friend class wxZRColaFrame;
friend class wxZRColaFrame; // Allow main frame direct access to our members.
protected:
virtual void OnDecomposedPaint(wxPaintEvent& event);
@@ -49,9 +49,11 @@ protected:
virtual void OnComposedText(wxCommandEvent& event);
protected:
ZRCola::translation_db m_t_db; ///< Translation database
bool m_progress; ///< Boolean flag to avoid recursive updates of composed and decomposed text controls
ZRCola::mapping_vector m_mapping; ///< Character index mapping vector between composed and decomposed text
std::pair<long, long>
m_selDecomposed, ///< Character index of selected text in decomposed text control
m_selComposed; ///< Character index of selected text in composed text control
wxZRColaKeyHandler m_keyhandler; ///< Key handler for decomposed window
};

View File

@@ -25,24 +25,18 @@
//////////////////////////////////////////////////////////////////////////
wxBEGIN_EVENT_TABLE(wxZRColaFrame, wxZRColaFrameBase)
EVT_UPDATE_UI_RANGE(wxZRColaFrame::wxID_SEND, wxZRColaFrame::wxID_SEND_DECOMPOSED, wxZRColaFrame::OnSendUpdate)
EVT_UPDATE_UI_RANGE(wxZRColaFrame::wxID_SEND_COMPOSED, wxZRColaFrame::wxID_SEND_DECOMPOSED, wxZRColaFrame::OnSendUpdate)
EVT_MENU(wxZRColaFrame::wxID_SEND , wxZRColaFrame::OnSend )
EVT_MENU(wxZRColaFrame::wxID_SEND_COMPOSED , wxZRColaFrame::OnSendComposed )
EVT_MENU(wxZRColaFrame::wxID_SEND_DECOMPOSED , wxZRColaFrame::OnSendDecomposed )
EVT_MENU(wxZRColaFrame::wxID_SEND_ABORT , wxZRColaFrame::OnSendAbort )
EVT_MENU( wxID_EXIT , wxZRColaFrame::OnExit )
EVT_MENU( wxID_INSERT_GRAVE , wxZRColaFrame::OnInsertGrave )
EVT_MENU( wxID_INSERT_ACUTE , wxZRColaFrame::OnInsertAcute )
EVT_MENU( wxID_INSERT_CIRCUMFLEX , wxZRColaFrame::OnInsertCircumflex )
EVT_MENU( wxID_INSERT_INV_BREVE_BELOW, wxZRColaFrame::OnInsertInvertedBreveBelow)
EVT_MENU( wxID_ABOUT , wxZRColaFrame::OnAbout )
wxEND_EVENT_TABLE()
wxZRColaFrame::wxZRColaFrame() :
m_hWndSource(NULL),
m_hotkey(-1),
wxZRColaFrameBase(NULL)
{
// Load main window icons.
@@ -58,16 +52,17 @@ wxZRColaFrame::wxZRColaFrame() :
m_panel->m_decomposed->SetFocus();
// Register global hotkey(s).
if (!RegisterHotKey(wxZRColaHKID_INVOKE_COMPOSE, MOD_WIN, 'Z'))
wxMessageBox(_("ZRCola keyboard shortcut Win+Z could not be registered. Some functionality will not be available."), _("Warning"), wxOK | wxICON_WARNING);
if (!RegisterHotKey(wxZRColaHKID_INVOKE_DECOMPOSE, MOD_WIN | MOD_SHIFT, 'Z'))
wxMessageBox(_("ZRCola keyboard shortcut Win+Shift+Z could not be registered. Some functionality will not be available."), _("Warning"), wxOK | wxICON_WARNING);
if (!RegisterHotKey(wxZRColaHKID_INVOKE_COMPOSE, wxMOD_WIN, VK_F5))
wxMessageBox(_("ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality will not be available."), _("Warning"), wxOK | wxICON_WARNING);
if (!RegisterHotKey(wxZRColaHKID_INVOKE_DECOMPOSE, wxMOD_WIN, VK_F6))
wxMessageBox(_("ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality will not be available."), _("Warning"), wxOK | wxICON_WARNING);
// Register frame specific hotkey(s).
{
wxAcceleratorEntry entries[2];
entries[0].Set(wxACCEL_CTRL , WXK_RETURN, wxID_SEND);
entries[1].Set(wxACCEL_NORMAL, WXK_ESCAPE, wxID_SEND_ABORT);
wxAcceleratorEntry entries[3];
entries[0].Set(wxACCEL_NORMAL, WXK_F5 , wxID_SEND_COMPOSED);
entries[1].Set(wxACCEL_NORMAL, WXK_F6 , wxID_SEND_DECOMPOSED);
entries[2].Set(wxACCEL_NORMAL, WXK_ESCAPE, wxID_SEND_ABORT);
SetAcceleratorTable(wxAcceleratorTable(_countof(entries), entries));
}
}
@@ -87,16 +82,6 @@ void wxZRColaFrame::OnSendUpdate(wxUpdateUIEvent& event)
}
void wxZRColaFrame::OnSend(wxCommandEvent& event)
{
switch (m_hotkey) {
case wxZRColaHKID_INVOKE_COMPOSE : wxZRColaFrame::OnSendComposed (event); break;
case wxZRColaHKID_INVOKE_DECOMPOSE: wxZRColaFrame::OnSendDecomposed(event); break;
default : event.Skip();
}
}
void wxZRColaFrame::OnSendComposed(wxCommandEvent& event)
{
if (m_hWndSource)
@@ -122,7 +107,6 @@ void wxZRColaFrame::OnSendAbort(wxCommandEvent& event)
::SetActiveWindow(m_hWndSource);
::SetForegroundWindow(m_hWndSource);
m_hWndSource = NULL;
m_hotkey = -1;
// Select all input in composer to prepare for the overwrite next time.
m_panel->m_decomposed->SelectAll();
@@ -139,30 +123,6 @@ void wxZRColaFrame::OnExit(wxCommandEvent& event)
}
void wxZRColaFrame::OnInsertGrave(wxCommandEvent& event)
{
m_panel->m_decomposed->WriteText(L"\xE000");
}
void wxZRColaFrame::OnInsertAcute(wxCommandEvent& event)
{
m_panel->m_decomposed->WriteText(L"\xE001");
}
void wxZRColaFrame::OnInsertCircumflex(wxCommandEvent& event)
{
m_panel->m_decomposed->WriteText(L"\xE002");
}
void wxZRColaFrame::OnInsertInvertedBreveBelow(wxCommandEvent& event)
{
m_panel->m_decomposed->WriteText(L"\xE02F");
}
void wxZRColaFrame::OnAbout(wxCommandEvent& event)
{
wxMessageBox(wxString::Format(_("ZRCola v%s\nCopyright 2015-%s Amebis"), wxT(ZRCOLA_VERSION_STR), wxT(ZRCOLA_BUILD_YEAR_STR)), _("About ZRCola"), wxOK | wxICON_INFORMATION);
@@ -186,14 +146,6 @@ void wxZRColaFrame::DoSend(const wxString& str)
// Enter (Return) key is sent as CR virtual key code.
inp.ki.wVk = VK_RETURN;
inp.ki.wScan = L'\r';
} else if (L'a' <= c && c <= L'z') {
// Small letters have the same virtual key code as their uppercase counterparts.
inp.ki.wVk = (WORD)c + L'A' - L'a';
inp.ki.wScan = c;
} else if (L'A' <= c && c <= L'Z' || L'0' <= c && c <= L'0' || c == L' ') {
// Letters and symbols with matching virtual key codes.
inp.ki.wVk = c;
inp.ki.wScan = c;
} else {
inp.ki.wVk = 0;
inp.ki.wScan = c;
@@ -206,7 +158,6 @@ void wxZRColaFrame::DoSend(const wxString& str)
::Sleep(200);
::SendInput(input.size(), input.data(), sizeof(INPUT));
m_hWndSource = NULL;
m_hotkey = -1;
// Select all input in composer and decomposed to prepare for the overwrite next time.
m_panel->m_decomposed->SelectAll();
@@ -234,7 +185,6 @@ WXLRESULT wxZRColaFrame::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM
}
m_hWndSource = hWndSource;
m_hotkey = wParam;
//if (m_state == wxABS_FLOAT) {
if (IsIconized()) {

View File

@@ -43,8 +43,7 @@ class wxZRColaFrame : public wxZRColaFrameBase
{
protected:
enum {
wxID_SEND = wxID_HIGHEST,
wxID_SEND_COMPOSED,
wxID_SEND_COMPOSED = wxID_HIGHEST,
wxID_SEND_DECOMPOSED,
wxID_SEND_ABORT,
};
@@ -55,15 +54,10 @@ public:
protected:
void OnSendUpdate(wxUpdateUIEvent& event);
void OnSend(wxCommandEvent& event);
void OnSendComposed(wxCommandEvent& event);
void OnSendDecomposed(wxCommandEvent& event);
void OnSendAbort(wxCommandEvent& event);
void OnExit(wxCommandEvent& event);
void OnInsertGrave(wxCommandEvent& event);
void OnInsertAcute(wxCommandEvent& event);
void OnInsertCircumflex(wxCommandEvent& event);
void OnInsertInvertedBreveBelow(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
wxDECLARE_EVENT_TABLE();
@@ -75,5 +69,4 @@ protected:
protected:
WXHWND m_hWndSource; ///< handle of the active window, when the ZRCola hotkey was pressed
int m_hotkey; ///< hotkey ID that was pressed
};

View File

@@ -34,27 +34,6 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
m_menubar->Append( m_menuFile, _("&File") );
m_menuAccents = new wxMenu();
wxMenuItem* m_menuItemGrave;
m_menuItemGrave = new wxMenuItem( m_menuAccents, wxID_INSERT_GRAVE, wxString( _("Grave\t&7") ) , wxEmptyString, wxITEM_NORMAL );
m_menuAccents->Append( m_menuItemGrave );
wxMenuItem* m_menuItemAcute;
m_menuItemAcute = new wxMenuItem( m_menuAccents, wxID_INSERT_ACUTE, wxString( _("Acute\t&9") ) , wxEmptyString, wxITEM_NORMAL );
m_menuAccents->Append( m_menuItemAcute );
wxMenuItem* m_menuItemCircumflex;
m_menuItemCircumflex = new wxMenuItem( m_menuAccents, wxID_INSERT_CIRCUMFLEX, wxString( _("Circumflex\t&3") ) , wxEmptyString, wxITEM_NORMAL );
m_menuAccents->Append( m_menuItemCircumflex );
m_menuAccents->AppendSeparator();
wxMenuItem* m_menuItemInvBreveBelow;
m_menuItemInvBreveBelow = new wxMenuItem( m_menuAccents, wxID_INSERT_INV_BREVE_BELOW, wxString( _("Inverted &breve") ) , wxEmptyString, wxITEM_NORMAL );
m_menuAccents->Append( m_menuItemInvBreveBelow );
m_menubar->Append( m_menuAccents, _("&Accents") );
m_menuHelp = new wxMenu();
wxMenuItem* m_menuItemAbout;
m_menuItemAbout = new wxMenuItem( m_menuHelp, wxID_ABOUT, wxString( _("&About") ) , wxEmptyString, wxITEM_NORMAL );

View File

@@ -37,17 +37,8 @@ class wxZRColaFrameBase : public wxFrame
private:
protected:
enum
{
wxID_INSERT_GRAVE = 1000,
wxID_INSERT_ACUTE,
wxID_INSERT_CIRCUMFLEX,
wxID_INSERT_INV_BREVE_BELOW
};
wxMenuBar* m_menubar;
wxMenu* m_menuFile;
wxMenu* m_menuAccents;
wxMenu* m_menuHelp;
wxZRColaComposerPanel* m_panel;

107
ZRCola/zrcolakeyhndlr.cpp Normal file
View File

@@ -0,0 +1,107 @@
/*
Copyright 2015-2016 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"
//////////////////////////////////////////////////////////////////////////
// wxZRColaKeyHandler
//////////////////////////////////////////////////////////////////////////
wxZRColaKeyHandler::wxZRColaKeyHandler() : wxEvtHandler()
{
std::fstream dat((LPCTSTR)((ZRColaApp*)wxTheApp)->GetDatabasePath(), std::ios_base::in | std::ios_base::binary);
if (dat.good()) {
if (stdex::idrec::find<ZRCola::recordid_t, ZRCola::recordsize_t, ZRCOLA_RECORD_ALIGN>(dat, ZRCOLA_DB_ID, sizeof(ZRCola::recordid_t))) {
ZRCola::recordsize_t size;
dat.read((char*)&size, sizeof(ZRCola::recordsize_t));
if (dat.good()) {
ZRCola::keyseq_rec rec(m_ks_db);
if (rec.find(dat, size)) {
dat >> rec;
if (!dat.good()) {
wxFAIL_MSG(wxT("Error reading translation data from ZRCola.zrcdb."));
m_ks_db.idxChr.clear();
m_ks_db.idxKey.clear();
m_ks_db.data .clear();
}
} else
wxFAIL_MSG(wxT("ZRCola.zrcdb has no translation data."));
}
} else
wxFAIL_MSG(wxT("ZRCola.zrcdb is not a valid ZRCola database."));
}
}
bool wxZRColaKeyHandler::ProcessEvent(wxEvent& event)
{
if (event.GetEventType() == wxEVT_KEY_DOWN) {
// The character event occured.
ZRCola::keyseq_db::indexKey::size_type start, end;
bool found;
{
// Parse key event and save it at the end of the key sequence.
wxKeyEvent &e = (wxKeyEvent&)event;
ZRCola::keyseq_db::keyseq::key_t key;
key.key = e.GetKeyCode(); //wxToupper(e.m_uniChar);
key.modifiers =
(e.ShiftDown() ? ZRCola::keyseq_db::keyseq::SHIFT : 0) |
(e.ControlDown() ? ZRCola::keyseq_db::keyseq::CTRL : 0) |
(e.AltDown() ? ZRCola::keyseq_db::keyseq::ALT : 0);
m_seq.push_back(key);
std::vector<ZRCola::keyseq_db::keyseq::key_t>::size_type n = m_seq.size();
ZRCola::keyseq_db::keyseq *ks = (ZRCola::keyseq_db::keyseq*)new char[sizeof(ZRCola::keyseq_db::keyseq) + sizeof(ZRCola::keyseq_db::keyseq::key_t)*n];
ks->chr = 0;
ks->seq_len = n;
memcpy(ks->seq, m_seq.data(), sizeof(ZRCola::keyseq_db::keyseq::key_t)*n);
found = m_ks_db.idxKey.find(*ks, start, end);
delete ks;
}
if (found) {
// The exact key sequence found.
const ZRCola::keyseq_db::keyseq &ks = m_ks_db.idxKey[start];
m_seq.clear();
wxObject *obj = event.GetEventObject();
if (obj && obj->IsKindOf(wxCLASSINFO(wxTextCtrl))) {
// Push text to source control.
((wxTextCtrl*)obj)->WriteText(ks.chr);
// Event is fully processed now.
event.StopPropagation();
return true;
}
} else if (start < m_ks_db.idxKey.size() &&
ZRCola::keyseq_db::keyseq::CompareSequence(m_seq.data(), m_seq.size(), m_ks_db.idxKey[start].seq, std::min<unsigned __int16>(m_ks_db.idxKey[start].seq_len, m_seq.size())) == 0)
{
// The sequence is a partial match. Continue watching.
//event.StopPropagation();
//return true;
} else {
// The key sequence has no future chance to match. Start all over again.
m_seq.clear();
}
}
return wxEvtHandler::ProcessEvent(event);
}

View File

@@ -17,22 +17,30 @@
along with ZRCola. If not, see <http://www.gnu.org/licenses/>.
*/
///
/// Forward declarations
///
class wxZRColaKeyHandler;
#pragma once
#include "common.h"
#include <string>
#include <zrcolaui/keyboard.h>
#include <wx/event.h>
#include <vector>
namespace ZRCola {
///
/// Composes string
///
/// \param[in] input Input string (UTF-16)
/// \param[in] inputMax Length of the input string in characters. Can be (size_t)-1 if \p input is zero terminated.
/// \param[out] output Output string (UTF-16)
/// \param[out] map The vector of source to destination index mappings (optional)
///
void ZRCOLA_API Compose(_In_z_count_(inputMax) const wchar_t* input, _In_ size_t inputMax, _Out_ std::wstring &output, _Out_opt_ std::vector<mapping>* map = NULL);
///
/// ZRCola keyboard event handler
///
class wxZRColaKeyHandler : public wxEvtHandler
{
public:
wxZRColaKeyHandler();
virtual bool ProcessEvent(wxEvent& event);
protected:
ZRCola::keyseq_db m_ks_db; ///< Key sequence database
std::vector<ZRCola::keyseq_db::keyseq::key_t> m_seq; ///< Key sequence
};

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\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

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.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>{87A3ADEC-1BE4-42E4-92B8-B742F3D21BC4}</ProjectGuid>
<RootNamespace>ZRColaCompile</RootNamespace>
</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>
<UseOfAtl>Dynamic</UseOfAtl>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<UseOfAtl>Dynamic</UseOfAtl>
</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="..\include\Win32.props" />
<Import Project="..\include\Debug.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\Win32.props" />
<Import Project="..\include\Release.props" />
<Import Project="ZRColaCompile.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemGroup>
<ClCompile Include="dbsource.cpp" />
<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="dbsource.h" />
<ClInclude Include="stdafx.h" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\lib\libZRColaUI\build\libZRColaUI.vcxproj">
<Project>{c0a84bd2-3870-4cd6-b281-0ab322e3c579}</Project>
</ProjectReference>
<ProjectReference Include="..\lib\libZRCola\build\libZRCola.vcxproj">
<Project>{3c61929e-7289-4101-8d0a-da22d6e1aea8}</Project>
</ProjectReference>
<ProjectReference Include="..\lib\wxExtend\build\wxExtend.vcxproj">
<Project>{a3a36689-ac35-4026-93da-a3ba0c0e767c}</Project>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="ZRColaCompile.rc" />
</ItemGroup>
<ItemGroup>
<POCompile Include="locale\sl_SI.po" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\include\xgettext.targets" />
</ImportGroup>
</Project>

View File

@@ -0,0 +1,50 @@
<?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>
<Filter Include="Resource Files\Localization">
<UniqueIdentifier>{e43059ae-37ac-4b28-84fb-18d1b3972b30}</UniqueIdentifier>
<Extensions>po;pot</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="stdafx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="dbsource.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="dbsource.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="ZRColaCompile.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<POCompile Include="locale\sl_SI.po">
<Filter>Resource Files\Localization</Filter>
</POCompile>
</ItemGroup>
</Project>

303
ZRColaCompile/dbsource.cpp Normal file
View File

@@ -0,0 +1,303 @@
/*
Copyright 2015-2016 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"
ZRCola::DBSource::DBSource()
{
}
ZRCola::DBSource::~DBSource()
{
if (m_db)
m_db->Close();
if (m_locale)
_free_locale(m_locale);
}
bool ZRCola::DBSource::Open(LPCTSTR filename)
{
wxASSERT_MSG(!m_db, wxT("database already open"));
// Create COM object.
HRESULT hr = ::CoCreateInstance(CLSID_CADOConnection, NULL, CLSCTX_ALL, IID_IADOConnection, (LPVOID*)&m_db);
if (SUCCEEDED(hr)) {
// Open the database.
std::wstring cn;
cn = L"Driver={Microsoft Access Driver (*.mdb)};";
cn += L"Dbq=";
cn += filename;
cn += L";Uid=;Pwd=;";
hr = m_db->Open(ATL::CComBSTR(cn.c_str()));
if (SUCCEEDED(hr)) {
// Database open and ready.
m_filename = filename;
m_locale = _create_locale(LC_ALL, "Slovenian_Slovenia.1250");
return true;
} else {
_ftprintf(stderr, wxT("%s: error ZCC0011: Could not open database (0x%x).\n"), (LPCTSTR)filename, hr);
LogErrors();
}
m_db.Release();
} else
_ftprintf(stderr, wxT("%s: error ZCC0012: Creating ADOConnection object failed (0x%x).\n"), (LPCTSTR)filename, hr);
return false;
}
void ZRCola::DBSource::LogErrors() const
{
wxASSERT_MSG(m_db, wxT("database does not exist"));
// Get array of errors.
ADOErrors *errors = NULL;
if (SUCCEEDED(m_db->get_Errors(&errors))) {
// Get number of errors.
long n = 0;
wxVERIFY(SUCCEEDED(errors->get_Count(&n)));
// Iterate the errors.
for (long i = 0; i < n; i++) {
ADOError *err = NULL;
if (SUCCEEDED(errors->get_Item(ATL::CComVariant(i), &err))) {
// Write error number and description to the log.
long num = 0;
wxVERIFY(SUCCEEDED(err->get_Number(&num)));
ATL::CComBSTR desc;
wxVERIFY(SUCCEEDED(err->get_Description(&desc)));
_ftprintf(stderr, wxT(" error ADO%x: %ls\n"), num, (BSTR)desc);
err->Release();
}
}
errors->Release();
}
}
bool ZRCola::DBSource::GetUnicodeCharacter(const ATL::CComPtr<ADOField>& f, wchar_t& chr) const
{
wxASSERT_MSG(f, wxT("field is empty"));
ATL::CComVariant v;
wxVERIFY(SUCCEEDED(f->get_Value(&v)));
// Parse the field. Must be exactly one Unicode code.
wxVERIFY(SUCCEEDED(v.ChangeType(VT_BSTR)));
UINT i = 0, n = ::SysStringLen(V_BSTR(&v));
chr = 0;
for (; i < n && V_BSTR(&v)[i]; i++) {
if (L'0' <= V_BSTR(&v)[i] && V_BSTR(&v)[i] <= L'9') chr = chr*0x10 + (V_BSTR(&v)[i] - L'0');
else if (L'A' <= V_BSTR(&v)[i] && V_BSTR(&v)[i] <= L'F') chr = chr*0x10 + (V_BSTR(&v)[i] - L'A' + 10);
else if (L'a' <= V_BSTR(&v)[i] && V_BSTR(&v)[i] <= L'f') chr = chr*0x10 + (V_BSTR(&v)[i] - L'a' + 10);
else break;
}
if (i <= 0 && 4 < i) {
ATL::CComBSTR fieldname; wxVERIFY(SUCCEEDED(f->get_Name(&fieldname)));
_ftprintf(stderr, wxT("%s: error ZCC0030: Syntax error in \"%.*ls\" field (\"%.*ls\"). Unicode code must be one to four hexadecimal characters long.\n"), m_filename.c_str(), fieldname.Length(), (BSTR)fieldname, n, V_BSTR(&v));
return false;
} else if (i != n) {
ATL::CComBSTR fieldname; wxVERIFY(SUCCEEDED(f->get_Name(&fieldname)));
_ftprintf(stderr, wxT("%s: error ZCC0031: Syntax error in \"%.*ls\" field (\"%.*ls\"). Extra trailing characters.\n"), m_filename.c_str(), fieldname.Length(), (BSTR)fieldname, n, V_BSTR(&v));
return false;
}
return true;
}
bool ZRCola::DBSource::GetUnicodeString(const ATL::CComPtr<ADOField>& f, std::wstring& str) const
{
wxASSERT_MSG(f, wxT("field is empty"));
ATL::CComVariant v;
wxVERIFY(SUCCEEDED(f->get_Value(&v)));
// Parse the field. Must be "xxxx+xxxx+xxxx..." sequence.
wxVERIFY(SUCCEEDED(v.ChangeType(VT_BSTR)));
str.clear();
for (UINT i = 0, n = ::SysStringLen(V_BSTR(&v)); i < n && V_BSTR(&v)[i];) {
// Parse Unicode code.
UINT j = 0;
wchar_t c = 0;
for (; i < n && V_BSTR(&v)[i]; i++, j++) {
if (L'0' <= V_BSTR(&v)[i] && V_BSTR(&v)[i] <= L'9') c = c*0x10 + (V_BSTR(&v)[i] - L'0');
else if (L'A' <= V_BSTR(&v)[i] && V_BSTR(&v)[i] <= L'F') c = c*0x10 + (V_BSTR(&v)[i] - L'A' + 10);
else if (L'a' <= V_BSTR(&v)[i] && V_BSTR(&v)[i] <= L'f') c = c*0x10 + (V_BSTR(&v)[i] - L'a' + 10);
else break;
}
if (j <= 0 || 4 < j) {
ATL::CComBSTR fieldname; wxVERIFY(SUCCEEDED(f->get_Name(&fieldname)));
_ftprintf(stderr, wxT("%s: error ZCC0020: Syntax error in \"%.*ls\" field (\"%.*ls\"). Unicode code must be one to four hexadecimal characters long.\n"), m_filename.c_str(), fieldname.Length(), (BSTR)fieldname, n, V_BSTR(&v));
return false;
}
str += c;
// Skip delimiter(s) and whitespace.
for (; i < n && V_BSTR(&v)[i] && (V_BSTR(&v)[i] == L'+' || _iswspace_l(V_BSTR(&v)[i], m_locale)); i++);
}
return true;
}
bool ZRCola::DBSource::GetKeySequence(const ATL::CComPtr<ADOField>& f, std::vector<keyseq::keycode>& seq) const
{
wxASSERT_MSG(f, wxT("field is empty"));
ATL::CComVariant v;
wxVERIFY(SUCCEEDED(f->get_Value(&v)));
wxVERIFY(SUCCEEDED(v.ChangeType(VT_BSTR)));
// Convert to uppercase.
_wcsupr_l(V_BSTR(&v), m_locale);
// Parse the field. Must be comma delimited sequence of key codes.
seq.clear();
for (UINT i = 0, n = ::SysStringLen(V_BSTR(&v)); i < n && V_BSTR(&v)[i];) {
keyseq::keycode kc = {};
while (i < n && V_BSTR(&v)[i]) {
// Parse key code.
static const wchar_t str_shift[] = L"SHIFT+", str_ctrl[] = L"CTRL+", str_alt[] = L"ALT+";
if (i + _countof(str_shift) <= n && wmemcmp(V_BSTR(&v) + i, str_shift, _countof(str_shift) - 1) == 0) {
kc.shift = true;
i += _countof(str_shift) - 1;
} else if (i + _countof(str_ctrl) <= n && wmemcmp(V_BSTR(&v) + i, str_ctrl, _countof(str_ctrl) - 1) == 0) {
kc.ctrl = true;
i += _countof(str_ctrl) - 1;
} else if (i + _countof(str_alt) <= n && wmemcmp(V_BSTR(&v) + i, str_alt, _countof(str_alt) - 1) == 0) {
kc.alt = true;
i += _countof(str_alt) - 1;
} else {
kc.key = V_BSTR(&v)[i];
i++;
break;
}
}
if (i < n && V_BSTR(&v)[i] && V_BSTR(&v)[i] != L',' && !_iswspace_l(V_BSTR(&v)[i], m_locale)) {
ATL::CComBSTR fieldname; wxVERIFY(SUCCEEDED(f->get_Name(&fieldname)));
_ftprintf(stderr, wxT("%s: error ZCC0060: Syntax error in \"%.*ls\" field (\"%.*ls\"). Key sequences must be \"Ctrl+Alt+<key>\" formatted, delimited by commas and/or space.\n"), m_filename.c_str(), fieldname.Length(), (BSTR)fieldname, n, V_BSTR(&v));
return false;
}
if (seq.size() > 0xffff) {
_ftprintf(stderr, wxT("%s: warning ZCC0061: Key sequence \"%.*ls...\" too long. Ignored.\n"), (LPCTSTR)m_filename.c_str(), std::min<UINT>(n, 20), V_BSTR(&v));
return false;
}
seq.push_back(kc);
// Skip delimiter(s) and whitespace.
for (; i < n && V_BSTR(&v)[i] && (V_BSTR(&v)[i] == L',' || _iswspace_l(V_BSTR(&v)[i], m_locale)); i++);
}
if (seq.empty()) {
_ftprintf(stderr, wxT("%s: warning ZCC0062: Empty key sequence. Ignored.\n"), (LPCTSTR)m_filename.c_str());
return false;
}
return true;
}
bool ZRCola::DBSource::SelectTranslations(ATL::CComPtr<ADORecordset> &rs) const
{
// Create a new recordset.
if (rs) rs.Release();
wxCHECK(SUCCEEDED(::CoCreateInstance(CLSID_CADORecordset, NULL, CLSCTX_ALL, IID_IADORecordset, (LPVOID*)&rs)), false);
// Open it.
if (FAILED(rs->Open(ATL::CComVariant(L"SELECT [komb], [znak] FROM [VRS_ReplChar] WHERE [rang_komb]=1"), ATL::CComVariant(m_db), adOpenStatic, adLockReadOnly, adCmdText))) {
_ftprintf(stderr, wxT("%s: error ZCC0040: Error loading compositions from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str());
LogErrors();
return false;
}
return true;
}
bool ZRCola::DBSource::GetTranslation(const ATL::CComPtr<ADORecordset>& rs, ZRCola::DBSource::translation& t) const
{
wxASSERT_MSG(rs, wxT("recordset is empty"));
ATL::CComPtr<ADOFields> flds;
wxVERIFY(SUCCEEDED(rs->get_Fields(&flds)));
{
ATL::CComPtr<ADOField> f;
wxVERIFY(SUCCEEDED(flds->get_Item(ATL::CComVariant(L"komb"), &f)));
wxCHECK(GetUnicodeString(f, t.str), false);
}
{
ATL::CComPtr<ADOField> f;
wxVERIFY(SUCCEEDED(flds->get_Item(ATL::CComVariant(L"znak"), &f)));
wxCHECK(GetUnicodeCharacter(f, t.chr), false);
}
return true;
}
bool ZRCola::DBSource::SelectKeySequences(ATL::CComPtr<ADORecordset> &rs) const
{
// Create a new recordset.
if (rs) rs.Release();
wxCHECK(SUCCEEDED(::CoCreateInstance(CLSID_CADORecordset, NULL, CLSCTX_ALL, IID_IADORecordset, (LPVOID*)&rs)), false);
// Open it.
if (FAILED(rs->Open(ATL::CComVariant(L"SELECT DISTINCT [Znak], [tipka] FROM [wrd_KeyCodes]"), ATL::CComVariant(m_db), adOpenStatic, adLockReadOnly, adCmdText))) {
_ftprintf(stderr, wxT("%s: error ZCC0050: Error loading key sequences from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str());
LogErrors();
return false;
}
return true;
}
bool ZRCola::DBSource::GetKeySequence(const ATL::CComPtr<ADORecordset>& rs, ZRCola::DBSource::keyseq& ks) const
{
wxASSERT_MSG(rs, wxT("recordset is empty"));
ATL::CComPtr<ADOFields> flds;
wxVERIFY(SUCCEEDED(rs->get_Fields(&flds)));
{
ATL::CComPtr<ADOField> f;
wxVERIFY(SUCCEEDED(flds->get_Item(ATL::CComVariant(L"Znak"), &f)));
wxCHECK(GetUnicodeCharacter(f, ks.chr), false);
}
{
ATL::CComPtr<ADOField> f;
wxVERIFY(SUCCEEDED(flds->get_Item(ATL::CComVariant(L"tipka"), &f)));
wxCHECK(GetKeySequence(f, ks.seq), false);
}
return true;
}

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