diff --git a/MSI/MSM/wxMSW_wxmsw30u_aui_vc100.lst b/MSI/MSM/wxMSW_wxmsw30u_aui_vc100.lst
new file mode 100644
index 0000000..f489e2e
--- /dev/null
+++ b/MSI/MSM/wxMSW_wxmsw30u_aui_vc100.lst
@@ -0,0 +1 @@
+System Folder\wxmsw30u_aui_vc100.dll
diff --git a/MSI/MSM/wxMSW_wxmsw30u_aui_vc100.msm b/MSI/MSM/wxMSW_wxmsw30u_aui_vc100.msm
new file mode 100644
index 0000000..1c6d4a9
Binary files /dev/null and b/MSI/MSM/wxMSW_wxmsw30u_aui_vc100.msm differ
diff --git a/MSI/MSM/wxMSW_wxmsw30u_aui_vc100.msmcfg b/MSI/MSM/wxMSW_wxmsw30u_aui_vc100.msmcfg
new file mode 100644
index 0000000..efed822
--- /dev/null
+++ b/MSI/MSM/wxMSW_wxmsw30u_aui_vc100.msmcfg
@@ -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 .
+#
+
+[splosno]
+jezik=0
+deli=featZRCola
+
+[parametri]
diff --git a/MSI/MSM/wxMSW_wxmsw30u_aui_vc100_x64.lst b/MSI/MSM/wxMSW_wxmsw30u_aui_vc100_x64.lst
new file mode 100644
index 0000000..45b2122
--- /dev/null
+++ b/MSI/MSM/wxMSW_wxmsw30u_aui_vc100_x64.lst
@@ -0,0 +1 @@
+System (64-bit) Folder\wxmsw30u_aui_vc100_x64.dll
diff --git a/MSI/MSM/wxMSW_wxmsw30u_aui_vc100_x64.msm b/MSI/MSM/wxMSW_wxmsw30u_aui_vc100_x64.msm
new file mode 100644
index 0000000..fa04153
Binary files /dev/null and b/MSI/MSM/wxMSW_wxmsw30u_aui_vc100_x64.msm differ
diff --git a/MSI/MSM/wxMSW_wxmsw30u_aui_vc100_x64.msmcfg b/MSI/MSM/wxMSW_wxmsw30u_aui_vc100_x64.msmcfg
new file mode 100644
index 0000000..efed822
--- /dev/null
+++ b/MSI/MSM/wxMSW_wxmsw30u_aui_vc100_x64.msmcfg
@@ -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 .
+#
+
+[splosno]
+jezik=0
+deli=featZRCola
+
+[parametri]
diff --git a/MSI/MSM/wxMSW_wxmsw30ud_aui_vc100.lst b/MSI/MSM/wxMSW_wxmsw30ud_aui_vc100.lst
new file mode 100644
index 0000000..0c6d477
--- /dev/null
+++ b/MSI/MSM/wxMSW_wxmsw30ud_aui_vc100.lst
@@ -0,0 +1 @@
+System Folder\wxmsw30ud_aui_vc100.dll
diff --git a/MSI/MSM/wxMSW_wxmsw30ud_aui_vc100.msm b/MSI/MSM/wxMSW_wxmsw30ud_aui_vc100.msm
new file mode 100644
index 0000000..0b8d3f9
Binary files /dev/null and b/MSI/MSM/wxMSW_wxmsw30ud_aui_vc100.msm differ
diff --git a/MSI/MSM/wxMSW_wxmsw30ud_aui_vc100.msmcfg b/MSI/MSM/wxMSW_wxmsw30ud_aui_vc100.msmcfg
new file mode 100644
index 0000000..efed822
--- /dev/null
+++ b/MSI/MSM/wxMSW_wxmsw30ud_aui_vc100.msmcfg
@@ -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 .
+#
+
+[splosno]
+jezik=0
+deli=featZRCola
+
+[parametri]
diff --git a/MSI/MSM/wxMSW_wxmsw30ud_aui_vc100_x64.lst b/MSI/MSM/wxMSW_wxmsw30ud_aui_vc100_x64.lst
new file mode 100644
index 0000000..49ec4c7
--- /dev/null
+++ b/MSI/MSM/wxMSW_wxmsw30ud_aui_vc100_x64.lst
@@ -0,0 +1 @@
+System (64-bit) Folder\wxmsw30ud_aui_vc100_x64.dll
diff --git a/MSI/MSM/wxMSW_wxmsw30ud_aui_vc100_x64.msm b/MSI/MSM/wxMSW_wxmsw30ud_aui_vc100_x64.msm
new file mode 100644
index 0000000..061cc90
Binary files /dev/null and b/MSI/MSM/wxMSW_wxmsw30ud_aui_vc100_x64.msm differ
diff --git a/MSI/MSM/wxMSW_wxmsw30ud_aui_vc100_x64.msmcfg b/MSI/MSM/wxMSW_wxmsw30ud_aui_vc100_x64.msmcfg
new file mode 100644
index 0000000..efed822
--- /dev/null
+++ b/MSI/MSM/wxMSW_wxmsw30ud_aui_vc100_x64.msmcfg
@@ -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 .
+#
+
+[splosno]
+jezik=0
+deli=featZRCola
+
+[parametri]
diff --git a/ZRCola/ZRCola.fbp b/ZRCola/ZRCola.fbp
index eba6b92..8f1a4ac 100644
--- a/ZRCola/ZRCola.fbp
+++ b/ZRCola/ZRCola.fbp
@@ -27,7 +27,7 @@
1
0
+
-
+
+ 1
+ 0
+ 0
+ 1
+ 0
+ toolbarCompose
+
+ 1
+
+
+ -1,-1
+ Compose
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Top
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+ 0
+
+
+ 0
+
+ -1,-1
+ 0
+
+ 1
+ m_toolbarCompose
+ 1
+ 1
+ -1,-1
+ -1,-1
+ protected
+ 1
+
+ Resizable
+ 5
+ 1
+
+ wxAUI_TB_HORZ_LAYOUT
+
+
+ 1
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Load From Icon Resource; send_composed.ico; [24; 24]
0
@@ -523,83 +641,8 @@
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- Language:
-
- 0
-
-
- 0
-
- 1
- m_toolDecompLanguageLbl
- 1
-
-
+
protected
- 1
-
- Resizable
- 1
-
- wxALIGN_RIGHT
-
- 0
-
-
-
-
- -1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
1
@@ -685,96 +728,85 @@
-
+
+ 1
+ 1
+ 1
+ 1
+
+ composerPanel
+
+
+
+
+ (De)Composer
+ 0
+ 0
+ wxZRColaComposerPanel
+ 0
+ m_panel = new wxZRColaComposerPanel( this );
+
+ 1
+ wxZRColaComposerPanel* m_panel;
+ 0
+ Dock
+ 0
+ Center
+ 1
+
+ 0
+
+ 0
+ 0
+ wxID_ANY
+ #include "zrcolacomppnl.h"
+
+ 0
+
+
+ 0
- bSizerMain
- wxVERTICAL
- none
-
- 5
- wxEXPAND
- 100
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- wxZRColaComposerPanel
- 1
- m_panel = new wxZRColaComposerPanel( this );
-
- 1
- wxZRColaComposerPanel* m_panel;
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- #include "zrcolacomppnl.h"
-
- 0
-
-
- 0
-
- 1
- m_panel
- 1
-
-
- protected
- 1
-
- Resizable
-
- 1
-
-
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ 1
+ m_panel
+ 0
+
+
+ protected
+ 0
+
+ Resizable
+
+ 1
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ZRCola/locale/sl_SI.po b/ZRCola/locale/sl_SI.po
index 4cf107d..a4939ea 100644
--- a/ZRCola/locale/sl_SI.po
+++ b/ZRCola/locale/sl_SI.po
@@ -1,8 +1,8 @@
msgid ""
msgstr ""
"Project-Id-Version: ZRCola\n"
-"POT-Creation-Date: 2016-04-29 12:50+0200\n"
-"PO-Revision-Date: 2016-04-29 12:50+0200\n"
+"POT-Creation-Date: 2016-05-03 13:27+0200\n"
+"PO-Revision-Date: 2016-05-03 13:27+0200\n"
"Last-Translator: Simon Rozman \n"
"Language-Team: Amebis, d. o. o., Kamnik \n"
"Language: sl_SI\n"
@@ -17,12 +17,12 @@ msgstr ""
"X-Poedit-KeywordsList: _\n"
"X-Poedit-SearchPath-0: .\n"
-#: zrcolafrm.cpp:76
+#: zrcolafrm.cpp:93
#, c-format
msgid "Select %s language for decomposition"
msgstr "Izberi jezik %s za razstavljanje"
-#: zrcolafrm.cpp:87
+#: zrcolafrm.cpp:104
msgid ""
"ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality "
"will not be available."
@@ -30,11 +30,11 @@ msgstr ""
"ZRColine bližnjice na tipkovnici Win+F5 ni mogoče registrirati. Nekaj "
"funkcionalnosti ne bo na voljo."
-#: zrcolafrm.cpp:87 zrcolafrm.cpp:89
+#: zrcolafrm.cpp:104 zrcolafrm.cpp:106
msgid "Warning"
msgstr "Opozorilo"
-#: zrcolafrm.cpp:89
+#: zrcolafrm.cpp:106
msgid ""
"ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality "
"will not be available."
@@ -42,11 +42,11 @@ msgstr ""
"ZRColine bližnjice na tipkovnici Win+F6 ni mogoče registrirati. Nekaj "
"funkcionalnosti ne bo na voljo."
-#: zrcolafrm.cpp:151
+#: zrcolafrm.cpp:174
msgid "Start ZRCola automatically on logon"
msgstr "Samodejno zaženi ZRColo ob prijavi"
-#: zrcolafrm.cpp:309
+#: zrcolafrm.cpp:360
#, c-format
msgid ""
"ZRCola v%s\n"
@@ -55,156 +55,191 @@ msgstr ""
"ZRCola v%s\n"
"Vse pravice pridržane 2015-%s Amebis"
-#: zrcolafrm.cpp:309
+#: zrcolafrm.cpp:360
msgid "About ZRCola"
msgstr "O ZRColi"
-#: zrcolagui.cpp:32
+#: zrcolagui.cpp:34
msgid "&Start on Logon"
msgstr "Z&aženi ob prijavi"
-#: zrcolagui.cpp:32
+#: zrcolagui.cpp:34
msgid "Start this program automatically on logon"
msgstr "Samodejno zaženi ta program ob prijavi"
-#: zrcolagui.cpp:38
+#: zrcolagui.cpp:40
msgid "E&xit"
msgstr "I&zhod"
-#: zrcolagui.cpp:38
+#: zrcolagui.cpp:40
msgid "Quit this program"
msgstr "Zapri ta program"
-#: zrcolagui.cpp:41
+#: zrcolagui.cpp:43
msgid "&Program"
msgstr "&Program"
-#: zrcolagui.cpp:74
+#: zrcolagui.cpp:76
msgid "Select &All"
msgstr "Izberi &vse"
-#: zrcolagui.cpp:74
+#: zrcolagui.cpp:76
msgid "Select all text"
msgstr "Izberi celotno besedilo"
-#: zrcolagui.cpp:80
+#: zrcolagui.cpp:82
msgid "&Send Composed"
msgstr "Pošlji &sestavljeno"
-#: zrcolagui.cpp:80 zrcolagui.cpp:137
+#: zrcolagui.cpp:82 zrcolagui.cpp:151
msgid "Send composed text to source window"
msgstr "Pošlji sestavljeno besedilo izvornemu oknu"
-#: zrcolagui.cpp:89
+#: zrcolagui.cpp:91
msgid "Send &Decomposed"
msgstr "Pošlji &razstavljeno"
-#: zrcolagui.cpp:89 zrcolagui.cpp:139
+#: zrcolagui.cpp:91 zrcolagui.cpp:153
msgid "Send decomposed text to source window"
msgstr "Pošlji razstavljeno besedilo izvornemu oknu"
-#: zrcolagui.cpp:98
+#: zrcolagui.cpp:100
msgid "Abort (De)composition"
msgstr "Prekini raz/sestavljanje"
-#: zrcolagui.cpp:98
+#: zrcolagui.cpp:100
msgid "Abort composition and return focus to source window"
msgstr "Prekini sestavljanje in vrni fokus nazaj izvornemu oknu"
-#: zrcolagui.cpp:107
+#: zrcolagui.cpp:109
msgid "&Language"
msgstr "&Jezik"
-#: zrcolagui.cpp:109
+#: zrcolagui.cpp:111
msgid "&Automatic"
msgstr "S&amodejno"
-#: zrcolagui.cpp:109
+#: zrcolagui.cpp:111
msgid "Set language according to keyboard layout automatically"
msgstr "Samodejno nastavi jezik glede na izbrano tipkovnico"
-#: zrcolagui.cpp:116
+#: zrcolagui.cpp:118
msgid "&Edit"
msgstr "Ur&edi"
-#: zrcolagui.cpp:123
-msgid "&Help"
-msgstr "&Pomoč"
+#: zrcolagui.cpp:122
+msgid "Edit Toolbar"
+msgstr "Orodna vrstica za urejanje"
+
+#: zrcolagui.cpp:122
+msgid "Toggle edit toolbar"
+msgstr "Prikaži/skrij orodno vrstico za urejanje"
+
+#: zrcolagui.cpp:126
+msgid "Compose Toolbar"
+msgstr "Orodna vrstica za sestavljanje"
+
+#: zrcolagui.cpp:126
+msgid "Toggle compose toolbar"
+msgstr "Prikaži/skrij orodno vrstico za sestavljanje"
#: zrcolagui.cpp:129
+msgid "&View"
+msgstr "Po&gled"
+
+#: zrcolagui.cpp:136
+msgid "&Help"
+msgstr "Po&moč"
+
+#: zrcolagui.cpp:141
msgid "Cut"
msgstr "Izreži"
-#: zrcolagui.cpp:129
+#: zrcolagui.cpp:141
msgid "Cut selection"
msgstr "Izreži izbor"
-#: zrcolagui.cpp:131
+#: zrcolagui.cpp:143
msgid "Copy"
msgstr "Kopiraj"
-#: zrcolagui.cpp:131
+#: zrcolagui.cpp:143
msgid "Copy selection"
msgstr "Kopiraj izbor"
-#: zrcolagui.cpp:133
+#: zrcolagui.cpp:145
msgid "Paste"
msgstr "Prilepi"
-#: zrcolagui.cpp:133
+#: zrcolagui.cpp:145
msgid "Paste selection"
msgstr "Prilepi izbor"
-#: zrcolagui.cpp:137
+#: zrcolagui.cpp:148
+msgid "Edit"
+msgstr "Urejanje"
+
+#: zrcolagui.cpp:151
msgid "Send Composed"
msgstr "Pošlji sestavljeno"
-#: zrcolagui.cpp:139
+#: zrcolagui.cpp:153
msgid "Send Decomposed"
msgstr "Pošlji razstavljeno"
-#: zrcolagui.cpp:141
-msgid "Language:"
-msgstr "Jezik:"
+#: zrcolagui.cpp:162
+msgid "Compose"
+msgstr "Sestavljanje"
-#: zrcolagui.cpp:190
+#: zrcolagui.cpp:166
+msgid "(De)Composer"
+msgstr "Raz/Sestavljalnik"
+
+#: zrcolagui.cpp:201
msgid "Decomposed Text"
msgstr "Razstavljeno besedilo"
-#: zrcolagui.cpp:210
+#: zrcolagui.cpp:221
msgid "Decomposed Unicode Dump"
msgstr "Unicode razstavljenega"
-#: zrcolagui.cpp:237
+#: zrcolagui.cpp:248
msgid "Composed Text"
msgstr "Sestavljeno besedilo"
-#: zrcolagui.cpp:257
+#: zrcolagui.cpp:268
msgid "Composed Unicode Dump"
msgstr "Unicode sestavljenega"
-#: zrcolagui.h:77 MSIBuild/En.Win32.Release.Feature-2.idtx:4
-#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:4
-#: MSIBuild/En.x64.Release.Feature-2.idtx:4
-#: MSIBuild/En.x64.Release.Shortcut-2.idtx:4
+#: zrcolakeyhndlr.cpp:65 zrcolakeyhndlr.cpp:74
+msgid "INS"
+msgstr "INS"
+
+#: zrcolagui.h:80 MSIBuild/En.Win32.Debug.Feature-2.idtx:4
+#: MSIBuild/En.Win32.Debug.Shortcut-2.idtx:4
+#: MSIBuild/En.x64.Debug.Feature-2.idtx:4
+#: MSIBuild/En.x64.Debug.Shortcut-2.idtx:4
msgid "ZRCola"
msgstr "ZRCola"
# Windows charset for this language (decimal)
-#: MSIBuild/En.Win32.Release.Feature-2.idtx:3
-#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:3
-#: MSIBuild/En.x64.Release.Feature-2.idtx:3
-#: MSIBuild/En.x64.Release.Shortcut-2.idtx:3
+#: MSIBuild/En.Win32.Debug.Feature-2.idtx:3
+#: MSIBuild/En.Win32.Debug.Shortcut-2.idtx:3
+#: MSIBuild/En.x64.Debug.Feature-2.idtx:3
+#: MSIBuild/En.x64.Debug.Shortcut-2.idtx:3
msgid "1252"
msgstr "1250"
-#: MSIBuild/En.Win32.Release.Feature-2.idtx:4
-#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:4
-#: MSIBuild/En.x64.Release.Feature-2.idtx:4
-#: MSIBuild/En.x64.Release.Shortcut-2.idtx:4
+#: MSIBuild/En.Win32.Debug.Feature-2.idtx:4
+#: MSIBuild/En.Win32.Debug.Shortcut-2.idtx:4
+#: MSIBuild/En.x64.Debug.Feature-2.idtx:4
+#: MSIBuild/En.x64.Debug.Shortcut-2.idtx:4
msgid "Input system for linguistic use"
msgstr "Vnašalni sistem za jezikoslovno rabo"
+#~ msgid "Language:"
+#~ msgstr "Jezik:"
+
#~ msgid "&About"
#~ msgstr "O progr&amu"
diff --git a/ZRCola/stdafx.h b/ZRCola/stdafx.h
index 0aadbd9..1551680 100644
--- a/ZRCola/stdafx.h
+++ b/ZRCola/stdafx.h
@@ -30,6 +30,7 @@
#include
#include
#include
+#include
#include
#include
diff --git a/ZRCola/zrcolafrm.cpp b/ZRCola/zrcolafrm.cpp
index 0814990..4ba60e4 100644
--- a/ZRCola/zrcolafrm.cpp
+++ b/ZRCola/zrcolafrm.cpp
@@ -44,6 +44,11 @@ wxBEGIN_EVENT_TABLE(wxZRColaFrame, wxZRColaFrameBase)
EVT_UPDATE_UI_RANGE(wxID_DECOMP_LANGUAGE_START, wxID_DECOMP_LANGUAGE_END, wxZRColaFrame::OnDecomposedLanguageUpdate )
EVT_MENU_RANGE (wxID_DECOMP_LANGUAGE_START, wxID_DECOMP_LANGUAGE_END, wxZRColaFrame::OnDecomposedLanguage )
+ EVT_UPDATE_UI (wxID_TOOLBAR_EDIT , wxZRColaFrame::OnToolbarEditUpdate )
+ EVT_MENU (wxID_TOOLBAR_EDIT , wxZRColaFrame::OnToolbarEdit )
+ EVT_UPDATE_UI (wxID_TOOLBAR_COMPOSE , wxZRColaFrame::OnToolbarComposeUpdate )
+ EVT_MENU (wxID_TOOLBAR_COMPOSE , wxZRColaFrame::OnToolbarCompose )
+
EVT_MENU (wxID_ABOUT , wxZRColaFrame::OnAbout )
wxEND_EVENT_TABLE()
@@ -53,6 +58,18 @@ wxZRColaFrame::wxZRColaFrame() :
m_hWndSource(NULL),
wxZRColaFrameBase(NULL)
{
+ {
+ // wxFrameBuilder 3.5 does not support wxAUI_TB_HORIZONTAL flag. Add it manually.
+ wxAuiPaneInfo &paneInfo = m_mgr.GetPane(m_toolbarCompose);
+ paneInfo.LeftDockable(false);
+ paneInfo.RightDockable(false);
+ m_toolbarCompose->SetWindowStyleFlag(m_toolbarCompose->GetWindowStyleFlag() | wxAUI_TB_HORIZONTAL);
+ }
+
+ // Restore the wxAuiManager's state here to keep symmetric with save in the destructor below.
+ // See the comment in destructor why.
+ wxPersistentAuiManager(&m_mgr).Restore();
+
// Load main window icons.
#ifdef __WINDOWS__
wxIconBundle icons;
@@ -122,6 +139,10 @@ wxZRColaFrame::~wxZRColaFrame()
// Unregister global hotkey(s).
UnregisterHotKey(wxZRColaHKID_INVOKE_DECOMPOSE);
UnregisterHotKey(wxZRColaHKID_INVOKE_COMPOSE);
+
+ // Save wxAuiManager's state before return to parent's destructor.
+ // Since the later calls m_mgr.UnInit() the regular persistence mechanizm is useless to save wxAuiManager's state.
+ wxPersistentAuiManager((wxAuiManager*)&m_mgr).Save();
}
@@ -179,7 +200,7 @@ void wxZRColaFrame::OnExit(wxCommandEvent& event)
void wxZRColaFrame::OnForwardEventUpdate(wxUpdateUIEvent& event)
{
wxControl *focusWnd = wxDynamicCast(FindFocus(), wxControl);
- if (focusWnd && !m_toolbar->IsDescendant(focusWnd))
+ if (focusWnd && !m_toolbarCompose->IsDescendant(focusWnd))
focusWnd->GetEventHandler()->ProcessEvent(event);
else
event.Enable(false);
@@ -306,6 +327,34 @@ void wxZRColaFrame::OnDecompLanguageChoice(wxCommandEvent& event)
}
+void wxZRColaFrame::OnToolbarEditUpdate(wxUpdateUIEvent& event)
+{
+ event.Check(m_mgr.GetPane(m_toolbarEdit).IsShown());
+}
+
+
+void wxZRColaFrame::OnToolbarEdit(wxCommandEvent& event)
+{
+ wxAuiPaneInfo &paneInfo = m_mgr.GetPane(m_toolbarEdit);
+ paneInfo.Show(!paneInfo.IsShown());
+ m_mgr.Update();
+}
+
+
+void wxZRColaFrame::OnToolbarComposeUpdate(wxUpdateUIEvent& event)
+{
+ event.Check(m_mgr.GetPane(m_toolbarCompose).IsShown());
+}
+
+
+void wxZRColaFrame::OnToolbarCompose(wxCommandEvent& event)
+{
+ wxAuiPaneInfo &paneInfo = m_mgr.GetPane(m_toolbarCompose);
+ paneInfo.Show(!paneInfo.IsShown());
+ m_mgr.Update();
+}
+
+
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);
diff --git a/ZRCola/zrcolafrm.h b/ZRCola/zrcolafrm.h
index 0aba720..12636c2 100644
--- a/ZRCola/zrcolafrm.h
+++ b/ZRCola/zrcolafrm.h
@@ -78,6 +78,10 @@ protected:
void OnDecomposedLanguageUpdate(wxUpdateUIEvent& event);
void OnDecomposedLanguage(wxCommandEvent& event);
virtual void OnDecompLanguageChoice(wxCommandEvent& event);
+ void OnToolbarEditUpdate(wxUpdateUIEvent& event);
+ void OnToolbarEdit(wxCommandEvent& event);
+ void OnToolbarComposeUpdate(wxUpdateUIEvent& event);
+ void OnToolbarCompose(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
wxDECLARE_EVENT_TABLE();
diff --git a/ZRCola/zrcolagui.cpp b/ZRCola/zrcolagui.cpp
index adb8950..a5ff875 100644
--- a/ZRCola/zrcolagui.cpp
+++ b/ZRCola/zrcolagui.cpp
@@ -25,6 +25,8 @@ static wxFBContextSensitiveHelpSetter s_wxFBSetTheHelpProvider;
wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxFrame( parent, id, title, pos, size, style, name )
{
this->SetSizeHints( wxSize( 150,150 ), wxDefaultSize );
+ m_mgr.SetManagedWindow(this);
+ m_mgr.SetFlags(wxAUI_MGR_DEFAULT);
m_menubar = new wxMenuBar( 0 );
m_menuProgram = new wxMenu();
@@ -115,6 +117,17 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
m_menubar->Append( m_menuEdit, _("&Edit") );
+ m_menuView = new wxMenu();
+ wxMenuItem* m_menuItemToolbarEdit;
+ m_menuItemToolbarEdit = new wxMenuItem( m_menuView, wxID_TOOLBAR_EDIT, wxString( _("Edit Toolbar") ) , _("Toggle edit toolbar"), wxITEM_CHECK );
+ m_menuView->Append( m_menuItemToolbarEdit );
+
+ wxMenuItem* m_menuItemToolbarCompose;
+ m_menuItemToolbarCompose = new wxMenuItem( m_menuView, wxID_TOOLBAR_COMPOSE, wxString( _("Compose Toolbar") ) , _("Toggle compose toolbar"), wxITEM_CHECK );
+ m_menuView->Append( m_menuItemToolbarCompose );
+
+ m_menubar->Append( m_menuView, _("&View") );
+
m_menuHelp = new wxMenu();
wxMenuItem* m_menuItemAbout;
m_menuItemAbout = new wxMenuItem( m_menuHelp, wxID_ABOUT, wxString( wxEmptyString ) , wxEmptyString, wxITEM_NORMAL );
@@ -124,41 +137,37 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
this->SetMenuBar( m_menubar );
- m_toolbar = this->CreateToolBar( wxTB_HORIZONTAL, wxID_ANY );
- m_toolbar->SetToolBitmapSize( wxSize( 16,16 ) );
- m_toolEditCut = m_toolbar->AddTool( wxID_CUT, _("Cut"), wxIcon( wxT("edit_cut.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Cut"), _("Cut selection"), NULL );
+ m_toolbarEdit = new wxAuiToolBar( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_TB_HORZ_LAYOUT );
+ m_toolEditCut = m_toolbarEdit->AddTool( wxID_CUT, _("Cut"), wxIcon( wxT("edit_cut.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Cut"), _("Cut selection"), NULL );
- m_toolEditCopy = m_toolbar->AddTool( wxID_COPY, _("Copy"), wxIcon( wxT("edit_copy.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Copy"), _("Copy selection"), NULL );
+ m_toolEditCopy = m_toolbarEdit->AddTool( wxID_COPY, _("Copy"), wxIcon( wxT("edit_copy.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Copy"), _("Copy selection"), NULL );
- m_toolEditPaste = m_toolbar->AddTool( wxID_PASTE, _("Paste"), wxIcon( wxT("edit_paste.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Paste"), _("Paste selection"), NULL );
+ m_toolEditPaste = m_toolbarEdit->AddTool( wxID_PASTE, _("Paste"), wxIcon( wxT("edit_paste.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Paste"), _("Paste selection"), NULL );
- m_toolbar->AddSeparator();
+ m_toolbarEdit->Realize();
+ m_mgr.AddPane( m_toolbarEdit, wxAuiPaneInfo().Name( wxT("toolbarEdit") ).Top().Caption( _("Edit") ).PinButton( true ).Dock().Resizable().FloatingSize( wxSize( -1,-1 ) ).LeftDockable( false ).RightDockable( false ).Row( 1 ).Layer( 0 ).ToolbarPane() );
- m_toolSendComposed = m_toolbar->AddTool( wxID_SEND_COMPOSED, _("Send Composed"), wxIcon( wxT("send_composed.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Send Composed"), _("Send composed text to source window"), NULL );
+ m_toolbarCompose = new wxAuiToolBar( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_TB_HORZ_LAYOUT );
+ m_toolSendComposed = m_toolbarCompose->AddTool( wxID_SEND_COMPOSED, _("Send Composed"), wxIcon( wxT("send_composed.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Send Composed"), _("Send composed text to source window"), NULL );
- m_toolSendDecomposed = m_toolbar->AddTool( wxID_SEND_DECOMPOSED, _("Send Decomposed"), wxIcon( wxT("send_decomposed.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Send Decomposed"), _("Send decomposed text to source window"), NULL );
+ m_toolSendDecomposed = m_toolbarCompose->AddTool( wxID_SEND_DECOMPOSED, _("Send Decomposed"), wxIcon( wxT("send_decomposed.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Send Decomposed"), _("Send decomposed text to source window"), NULL );
+
+ m_toolbarCompose->AddSeparator();
- m_toolDecompLanguageLbl = new wxStaticText( m_toolbar, wxID_ANY, _("Language:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );
- m_toolDecompLanguageLbl->Wrap( -1 );
- m_toolbar->AddControl( m_toolDecompLanguageLbl );
wxArrayString m_toolDecompLanguageChoices;
- m_toolDecompLanguage = new wxChoice( m_toolbar, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_toolDecompLanguageChoices, 0 );
+ m_toolDecompLanguage = new wxChoice( m_toolbarCompose, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_toolDecompLanguageChoices, 0 );
m_toolDecompLanguage->SetSelection( 0 );
- m_toolbar->AddControl( m_toolDecompLanguage );
- m_toolbar->Realize();
-
- wxBoxSizer* bSizerMain;
- bSizerMain = new wxBoxSizer( wxVERTICAL );
+ m_toolbarCompose->AddControl( m_toolDecompLanguage );
+ m_toolbarCompose->Realize();
+ m_mgr.AddPane( m_toolbarCompose, wxAuiPaneInfo().Name( wxT("toolbarCompose") ).Top().Caption( _("Compose") ).PinButton( true ).Dock().Resizable().FloatingSize( wxSize( -1,-1 ) ).LeftDockable( false ).RightDockable( false ).Row( 1 ).Layer( 0 ).ToolbarPane() );
m_panel = new wxZRColaComposerPanel( this );
- bSizerMain->Add( m_panel, 100, wxEXPAND, 5 );
+ m_mgr.AddPane( m_panel, wxAuiPaneInfo() .Name( wxT("composerPanel") ).Center() .Caption( _("(De)Composer") ).CaptionVisible( false ).CloseButton( false ).PaneBorder( false ).Dock().Resizable().FloatingSize( wxDefaultSize ).Floatable( false ) );
-
- this->SetSizer( bSizerMain );
- this->Layout();
m_statusBar = this->CreateStatusBar( 1, wxST_SIZEGRIP, wxID_ANY );
+ m_mgr.Update();
this->Centre( wxBOTH );
// Connect Events
@@ -170,6 +179,8 @@ wxZRColaFrameBase::~wxZRColaFrameBase()
// Disconnect Events
m_toolDecompLanguage->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( wxZRColaFrameBase::OnDecompLanguageChoice ), NULL, this );
+ m_mgr.UnInit();
+
}
wxZRColaComposerPanelBase::wxZRColaComposerPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name )
diff --git a/ZRCola/zrcolagui.h b/ZRCola/zrcolagui.h
index 4ef271d..17465a9 100644
--- a/ZRCola/zrcolagui.h
+++ b/ZRCola/zrcolagui.h
@@ -21,14 +21,14 @@
#include
#include
#include
-#include
+#include
+#include
#include
-#include
#include "zrcolacomppnl.h"
-#include
#include
#include
#include
+#include
#include
#include
#include
@@ -49,21 +49,24 @@ class wxZRColaFrameBase : public wxFrame
wxID_SEND_COMPOSED,
wxID_SEND_DECOMPOSED,
wxID_SEND_ABORT,
- wxID_DECOMP_LANG_AUTO
+ wxID_DECOMP_LANG_AUTO,
+ wxID_TOOLBAR_EDIT,
+ wxID_TOOLBAR_COMPOSE
};
wxMenuBar* m_menubar;
wxMenu* m_menuProgram;
wxMenu* m_menuEdit;
wxMenu* m_menuDecompLanguage;
+ wxMenu* m_menuView;
wxMenu* m_menuHelp;
- wxToolBar* m_toolbar;
- wxToolBarToolBase* m_toolEditCut;
- wxToolBarToolBase* m_toolEditCopy;
- wxToolBarToolBase* m_toolEditPaste;
- wxToolBarToolBase* m_toolSendComposed;
- wxToolBarToolBase* m_toolSendDecomposed;
- wxStaticText* m_toolDecompLanguageLbl;
+ wxAuiToolBar* m_toolbarEdit;
+ wxAuiToolBarItem* m_toolEditCut;
+ wxAuiToolBarItem* m_toolEditCopy;
+ wxAuiToolBarItem* m_toolEditPaste;
+ wxAuiToolBar* m_toolbarCompose;
+ wxAuiToolBarItem* m_toolSendComposed;
+ wxAuiToolBarItem* m_toolSendDecomposed;
wxChoice* m_toolDecompLanguage;
wxZRColaComposerPanel* m_panel;
wxStatusBar* m_statusBar;
@@ -75,6 +78,7 @@ class wxZRColaFrameBase : public wxFrame
public:
wxZRColaFrameBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("ZRCola"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 600,400 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL, const wxString& name = wxT("ZRCola") );
+ wxAuiManager m_mgr;
~wxZRColaFrameBase();
diff --git a/include/MSIBuildCfg.mak b/include/MSIBuildCfg.mak
index 59e32c4..269f0a2 100644
Binary files a/include/MSIBuildCfg.mak and b/include/MSIBuildCfg.mak differ
diff --git a/lib/wxExtend b/lib/wxExtend
index 7627cab..5a372f9 160000
--- a/lib/wxExtend
+++ b/lib/wxExtend
@@ -1 +1 @@
-Subproject commit 7627cabc1bd12eb295e6ad6b0984475c6163f190
+Subproject commit 5a372f955bac3d61beab94585a28038b97d7dae6