parent
ab3ef08a5f
commit
4fba54bdb2
@ -270,6 +270,12 @@
|
|||||||
<event name="OnMenuSelection"></event>
|
<event name="OnMenuSelection"></event>
|
||||||
<event name="OnUpdateUI"></event>
|
<event name="OnUpdateUI"></event>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="submenu" expanded="1">
|
||||||
|
<property name="bitmap"></property>
|
||||||
|
<property name="label">&Language</property>
|
||||||
|
<property name="name">m_menuDecompLanguage</property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="wxMenu" expanded="1">
|
<object class="wxMenu" expanded="1">
|
||||||
<property name="label">&Help</property>
|
<property name="label">&Help</property>
|
||||||
@ -479,6 +485,167 @@
|
|||||||
<event name="OnToolRClicked"></event>
|
<event name="OnToolRClicked"></event>
|
||||||
<event name="OnUpdateUI"></event>
|
<event name="OnUpdateUI"></event>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="wxStaticText" expanded="1">
|
||||||
|
<property name="BottomDockable">1</property>
|
||||||
|
<property name="LeftDockable">1</property>
|
||||||
|
<property name="RightDockable">1</property>
|
||||||
|
<property name="TopDockable">1</property>
|
||||||
|
<property name="aui_layer"></property>
|
||||||
|
<property name="aui_name"></property>
|
||||||
|
<property name="aui_position"></property>
|
||||||
|
<property name="aui_row"></property>
|
||||||
|
<property name="best_size"></property>
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="caption"></property>
|
||||||
|
<property name="caption_visible">1</property>
|
||||||
|
<property name="center_pane">0</property>
|
||||||
|
<property name="close_button">1</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="context_menu">1</property>
|
||||||
|
<property name="default_pane">0</property>
|
||||||
|
<property name="dock">Dock</property>
|
||||||
|
<property name="dock_fixed">0</property>
|
||||||
|
<property name="docking">Left</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="floatable">1</property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="gripper">0</property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="label">Language:</property>
|
||||||
|
<property name="max_size"></property>
|
||||||
|
<property name="maximize_button">0</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="min_size"></property>
|
||||||
|
<property name="minimize_button">0</property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="moveable">1</property>
|
||||||
|
<property name="name">m_toolDecompLanguageLbl</property>
|
||||||
|
<property name="pane_border">1</property>
|
||||||
|
<property name="pane_position"></property>
|
||||||
|
<property name="pane_size"></property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pin_button">1</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="resize">Resizable</property>
|
||||||
|
<property name="show">1</property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style">wxALIGN_RIGHT</property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="toolbar_pane">0</property>
|
||||||
|
<property name="tooltip"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<property name="wrap">-1</property>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
<object class="wxChoice" expanded="1">
|
||||||
|
<property name="BottomDockable">1</property>
|
||||||
|
<property name="LeftDockable">1</property>
|
||||||
|
<property name="RightDockable">1</property>
|
||||||
|
<property name="TopDockable">1</property>
|
||||||
|
<property name="aui_layer"></property>
|
||||||
|
<property name="aui_name"></property>
|
||||||
|
<property name="aui_position"></property>
|
||||||
|
<property name="aui_row"></property>
|
||||||
|
<property name="best_size"></property>
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="caption"></property>
|
||||||
|
<property name="caption_visible">1</property>
|
||||||
|
<property name="center_pane">0</property>
|
||||||
|
<property name="choices"></property>
|
||||||
|
<property name="close_button">1</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="context_menu">1</property>
|
||||||
|
<property name="default_pane">0</property>
|
||||||
|
<property name="dock">Dock</property>
|
||||||
|
<property name="dock_fixed">0</property>
|
||||||
|
<property name="docking">Left</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="floatable">1</property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="gripper">0</property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="max_size"></property>
|
||||||
|
<property name="maximize_button">0</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="min_size"></property>
|
||||||
|
<property name="minimize_button">0</property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="moveable">1</property>
|
||||||
|
<property name="name">m_toolDecompLanguage</property>
|
||||||
|
<property name="pane_border">1</property>
|
||||||
|
<property name="pane_position"></property>
|
||||||
|
<property name="pane_size"></property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pin_button">1</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="resize">Resizable</property>
|
||||||
|
<property name="selection">0</property>
|
||||||
|
<property name="show">1</property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="toolbar_pane">0</property>
|
||||||
|
<property name="tooltip"></property>
|
||||||
|
<property name="validator_data_type"></property>
|
||||||
|
<property name="validator_style">wxFILTER_NONE</property>
|
||||||
|
<property name="validator_type">wxDefaultValidator</property>
|
||||||
|
<property name="validator_variable"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnChoice">OnDecompLanguageChoice</event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="wxBoxSizer" expanded="0">
|
<object class="wxBoxSizer" expanded="0">
|
||||||
<property name="minimum_size"></property>
|
<property name="minimum_size"></property>
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: ZRCola\n"
|
"Project-Id-Version: ZRCola\n"
|
||||||
"POT-Creation-Date: 2016-04-08 13:13+0200\n"
|
"POT-Creation-Date: 2016-04-13 10:50+0200\n"
|
||||||
"PO-Revision-Date: 2016-04-08 13:13+0200\n"
|
"PO-Revision-Date: 2016-04-13 10:50+0200\n"
|
||||||
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
|
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
|
||||||
"Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n"
|
"Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n"
|
||||||
"Language: sl_SI\n"
|
"Language: sl_SI\n"
|
||||||
@ -17,7 +17,12 @@ msgstr ""
|
|||||||
"X-Poedit-KeywordsList: _\n"
|
"X-Poedit-KeywordsList: _\n"
|
||||||
"X-Poedit-SearchPath-0: .\n"
|
"X-Poedit-SearchPath-0: .\n"
|
||||||
|
|
||||||
#: zrcolafrm.cpp:61
|
#: zrcolafrm.cpp:69
|
||||||
|
#, c-format
|
||||||
|
msgid "Select %s language for decomposition"
|
||||||
|
msgstr "Izberi jezik %s za razstavljanje"
|
||||||
|
|
||||||
|
#: zrcolafrm.cpp:81
|
||||||
msgid ""
|
msgid ""
|
||||||
"ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality "
|
"ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality "
|
||||||
"will not be available."
|
"will not be available."
|
||||||
@ -25,11 +30,11 @@ msgstr ""
|
|||||||
"ZRColine bližnjice na tipkovnici Win+F5 ni mogoče registrirati. Nekaj "
|
"ZRColine bližnjice na tipkovnici Win+F5 ni mogoče registrirati. Nekaj "
|
||||||
"funkcionalnosti ne bo na voljo."
|
"funkcionalnosti ne bo na voljo."
|
||||||
|
|
||||||
#: zrcolafrm.cpp:61 zrcolafrm.cpp:63
|
#: zrcolafrm.cpp:81 zrcolafrm.cpp:83
|
||||||
msgid "Warning"
|
msgid "Warning"
|
||||||
msgstr "Opozorilo"
|
msgstr "Opozorilo"
|
||||||
|
|
||||||
#: zrcolafrm.cpp:63
|
#: zrcolafrm.cpp:83
|
||||||
msgid ""
|
msgid ""
|
||||||
"ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality "
|
"ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality "
|
||||||
"will not be available."
|
"will not be available."
|
||||||
@ -37,7 +42,7 @@ msgstr ""
|
|||||||
"ZRColine bližnjice na tipkovnici Win+F6 ni mogoče registrirati. Nekaj "
|
"ZRColine bližnjice na tipkovnici Win+F6 ni mogoče registrirati. Nekaj "
|
||||||
"funkcionalnosti ne bo na voljo."
|
"funkcionalnosti ne bo na voljo."
|
||||||
|
|
||||||
#: zrcolafrm.cpp:144
|
#: zrcolafrm.cpp:205
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"ZRCola v%s\n"
|
"ZRCola v%s\n"
|
||||||
@ -46,7 +51,7 @@ msgstr ""
|
|||||||
"ZRCola v%s\n"
|
"ZRCola v%s\n"
|
||||||
"Vse pravice pridržane 2015-%s Amebis"
|
"Vse pravice pridržane 2015-%s Amebis"
|
||||||
|
|
||||||
#: zrcolafrm.cpp:144
|
#: zrcolafrm.cpp:205
|
||||||
msgid "About ZRCola"
|
msgid "About ZRCola"
|
||||||
msgstr "O ZRColi"
|
msgstr "O ZRColi"
|
||||||
|
|
||||||
@ -74,7 +79,7 @@ msgstr "Izberi celotno besedilo"
|
|||||||
msgid "&Send Composed"
|
msgid "&Send Composed"
|
||||||
msgstr "Pošlji &sestavljeno"
|
msgstr "Pošlji &sestavljeno"
|
||||||
|
|
||||||
#: zrcolagui.cpp:74 zrcolagui.cpp:121
|
#: zrcolagui.cpp:74 zrcolagui.cpp:125
|
||||||
msgid "Send composed text to source window"
|
msgid "Send composed text to source window"
|
||||||
msgstr "Pošlji sestavljeno besedilo izvornemu oknu"
|
msgstr "Pošlji sestavljeno besedilo izvornemu oknu"
|
||||||
|
|
||||||
@ -82,7 +87,7 @@ msgstr "Pošlji sestavljeno besedilo izvornemu oknu"
|
|||||||
msgid "Send &Decomposed"
|
msgid "Send &Decomposed"
|
||||||
msgstr "Pošlji &razstavljeno"
|
msgstr "Pošlji &razstavljeno"
|
||||||
|
|
||||||
#: zrcolagui.cpp:83 zrcolagui.cpp:123
|
#: zrcolagui.cpp:83 zrcolagui.cpp:127
|
||||||
msgid "Send decomposed text to source window"
|
msgid "Send decomposed text to source window"
|
||||||
msgstr "Pošlji razstavljeno besedilo izvornemu oknu"
|
msgstr "Pošlji razstavljeno besedilo izvornemu oknu"
|
||||||
|
|
||||||
@ -94,47 +99,55 @@ msgstr "Prekini raz/sestavljanje"
|
|||||||
msgid "Abort composition and return focus to source window"
|
msgid "Abort composition and return focus to source window"
|
||||||
msgstr "Prekini sestavljanje in vrni fokus nazaj izvornemu oknu"
|
msgstr "Prekini sestavljanje in vrni fokus nazaj izvornemu oknu"
|
||||||
|
|
||||||
#: zrcolagui.cpp:100
|
#: zrcolagui.cpp:101
|
||||||
|
msgid "&Language"
|
||||||
|
msgstr "&Jezik"
|
||||||
|
|
||||||
|
#: zrcolagui.cpp:104
|
||||||
msgid "&Edit"
|
msgid "&Edit"
|
||||||
msgstr "Ur&edi"
|
msgstr "Ur&edi"
|
||||||
|
|
||||||
#: zrcolagui.cpp:107
|
#: zrcolagui.cpp:111
|
||||||
msgid "&Help"
|
msgid "&Help"
|
||||||
msgstr "&Pomoč"
|
msgstr "&Pomoč"
|
||||||
|
|
||||||
#: zrcolagui.cpp:113
|
#: zrcolagui.cpp:117
|
||||||
msgid "Cut"
|
msgid "Cut"
|
||||||
msgstr "Izreži"
|
msgstr "Izreži"
|
||||||
|
|
||||||
#: zrcolagui.cpp:113
|
#: zrcolagui.cpp:117
|
||||||
msgid "Cut selection"
|
msgid "Cut selection"
|
||||||
msgstr "Izreži izbor"
|
msgstr "Izreži izbor"
|
||||||
|
|
||||||
#: zrcolagui.cpp:115
|
#: zrcolagui.cpp:119
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Kopiraj"
|
msgstr "Kopiraj"
|
||||||
|
|
||||||
#: zrcolagui.cpp:115
|
#: zrcolagui.cpp:119
|
||||||
msgid "Copy selection"
|
msgid "Copy selection"
|
||||||
msgstr "Kopiraj izbor"
|
msgstr "Kopiraj izbor"
|
||||||
|
|
||||||
#: zrcolagui.cpp:117
|
#: zrcolagui.cpp:121
|
||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Prilepi"
|
msgstr "Prilepi"
|
||||||
|
|
||||||
#: zrcolagui.cpp:117
|
#: zrcolagui.cpp:121
|
||||||
msgid "Paste selection"
|
msgid "Paste selection"
|
||||||
msgstr "Prilepi izbor"
|
msgstr "Prilepi izbor"
|
||||||
|
|
||||||
#: zrcolagui.cpp:121
|
#: zrcolagui.cpp:125
|
||||||
msgid "Send Composed"
|
msgid "Send Composed"
|
||||||
msgstr "Pošlji sestavljeno"
|
msgstr "Pošlji sestavljeno"
|
||||||
|
|
||||||
#: zrcolagui.cpp:123
|
#: zrcolagui.cpp:127
|
||||||
msgid "Send Decomposed"
|
msgid "Send Decomposed"
|
||||||
msgstr "Pošlji razstavljeno"
|
msgstr "Pošlji razstavljeno"
|
||||||
|
|
||||||
#: zrcolagui.h:64 MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
#: zrcolagui.cpp:129
|
||||||
|
msgid "Language:"
|
||||||
|
msgstr "Jezik:"
|
||||||
|
|
||||||
|
#: zrcolagui.h:73 MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||||
#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:4
|
#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:4
|
||||||
#: MSIBuild/En.x64.Release.Feature-2.idtx:4
|
#: MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||||
#: MSIBuild/En.x64.Release.Shortcut-2.idtx:4
|
#: MSIBuild/En.x64.Release.Shortcut-2.idtx:4
|
||||||
|
@ -84,6 +84,23 @@ bool ZRColaApp::OnInit()
|
|||||||
m_t_db.idxDecomp.clear();
|
m_t_db.idxDecomp.clear();
|
||||||
m_t_db.data .clear();
|
m_t_db.data .clear();
|
||||||
}
|
}
|
||||||
|
} else if (id == ZRCola::langchar_rec::id) {
|
||||||
|
dat >> ZRCola::langchar_rec(m_lc_db);
|
||||||
|
if (!dat.good()) {
|
||||||
|
wxFAIL_MSG(wxT("Error reading language character data from ZRCola.zrcdb."));
|
||||||
|
m_lc_db.idxChr.clear();
|
||||||
|
#ifdef ZRCOLA_LANGCHAR_LANG_IDX
|
||||||
|
m_lc_db.idxLng.clear();
|
||||||
|
#endif
|
||||||
|
m_lc_db.data .clear();
|
||||||
|
}
|
||||||
|
} else if (id == ZRCola::language_rec::id) {
|
||||||
|
dat >> ZRCola::language_rec(m_lang_db);
|
||||||
|
if (!dat.good()) {
|
||||||
|
wxFAIL_MSG(wxT("Error reading language character data from ZRCola.zrcdb."));
|
||||||
|
m_lang_db.idxLng.clear();
|
||||||
|
m_lang_db.data .clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,7 +112,7 @@ bool ZRColaApp::OnInit()
|
|||||||
}
|
}
|
||||||
|
|
||||||
wxZRColaFrame* mainFrame = new wxZRColaFrame();
|
wxZRColaFrame* mainFrame = new wxZRColaFrame();
|
||||||
wxPersistentRegisterAndRestore<wxTopLevelWindow>(mainFrame);
|
wxPersistentRegisterAndRestore<wxZRColaFrame>(mainFrame);
|
||||||
mainFrame->Show();
|
mainFrame->Show();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -28,6 +28,7 @@ class ZRColaApp;
|
|||||||
#include <wx/app.h>
|
#include <wx/app.h>
|
||||||
#include <wx/config.h>
|
#include <wx/config.h>
|
||||||
#include <wx/intl.h>
|
#include <wx/intl.h>
|
||||||
|
#include <zrcola/language.h>
|
||||||
#include <zrcola/translate.h>
|
#include <zrcola/translate.h>
|
||||||
|
|
||||||
|
|
||||||
@ -57,6 +58,8 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
ZRCola::translation_db m_t_db; ///< Translation database
|
ZRCola::translation_db m_t_db; ///< Translation database
|
||||||
|
ZRCola::langchar_db m_lc_db; ///< Language character database
|
||||||
|
ZRCola::language_db m_lang_db; ///< Language database
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
wxLocale m_locale; ///< Current locale
|
wxLocale m_locale; ///< Current locale
|
||||||
|
@ -118,8 +118,13 @@ void wxZRColaComposerPanel::OnComposedText(wxCommandEvent& event)
|
|||||||
wxString src(m_composed->GetValue());
|
wxString src(m_composed->GetValue());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
ZRColaApp *app = (ZRColaApp*)wxTheApp;
|
||||||
std::wstring dst;
|
std::wstring dst;
|
||||||
((ZRColaApp*)wxTheApp)->m_t_db.Decompose(src.data(), src.size(), dst, &m_mapping);
|
wxZRColaFrame *mainWnd = dynamic_cast<wxZRColaFrame*>(wxGetActiveWindow());
|
||||||
|
if (mainWnd)
|
||||||
|
app->m_t_db.Decompose(src.data(), src.size(), &app->m_lc_db, mainWnd->m_lang, dst, &m_mapping);
|
||||||
|
else
|
||||||
|
app->m_t_db.Decompose(src.data(), src.size(), dst, &m_mapping);
|
||||||
|
|
||||||
long from, to;
|
long from, to;
|
||||||
m_composed->GetSelection(&from, &to);
|
m_composed->GetSelection(&from, &to);
|
||||||
|
@ -35,6 +35,9 @@ wxBEGIN_EVENT_TABLE(wxZRColaFrame, wxZRColaFrameBase)
|
|||||||
EVT_MENU(wxID_SEND_DECOMPOSED, wxZRColaFrame::OnSendDecomposed )
|
EVT_MENU(wxID_SEND_DECOMPOSED, wxZRColaFrame::OnSendDecomposed )
|
||||||
EVT_MENU(wxID_SEND_ABORT , wxZRColaFrame::OnSendAbort )
|
EVT_MENU(wxID_SEND_ABORT , wxZRColaFrame::OnSendAbort )
|
||||||
|
|
||||||
|
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_MENU(wxID_EXIT , wxZRColaFrame::OnExit )
|
EVT_MENU(wxID_EXIT , wxZRColaFrame::OnExit )
|
||||||
EVT_MENU(wxID_ABOUT, wxZRColaFrame::OnAbout)
|
EVT_MENU(wxID_ABOUT, wxZRColaFrame::OnAbout)
|
||||||
wxEND_EVENT_TABLE()
|
wxEND_EVENT_TABLE()
|
||||||
@ -54,6 +57,23 @@ wxZRColaFrame::wxZRColaFrame() :
|
|||||||
SetIcon(wxICON(00_zrcola.ico));
|
SetIcon(wxICON(00_zrcola.ico));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Populate language lists.
|
||||||
|
memcpy(m_lang, ZRCOLA_LANG_VOID, sizeof(m_lang));
|
||||||
|
ZRColaApp *app = ((ZRColaApp*)wxTheApp);
|
||||||
|
m_toolDecompLanguage->Clear();
|
||||||
|
if (!app->m_lang_db.idxLng.empty()) {
|
||||||
|
for (size_t i = 0, n = app->m_lang_db.idxLng.size(); i < n; i++) {
|
||||||
|
const ZRCola::language_db::language &lang = app->m_lang_db.idxLng[i];
|
||||||
|
wxString label(wxString::FromAscii(lang.id, strnlen(lang.id, sizeof(lang.id))));
|
||||||
|
if (i < wxID_DECOMP_LANGUAGE_END - wxID_DECOMP_LANGUAGE_START + 1)
|
||||||
|
m_menuDecompLanguage->Insert(i, wxID_DECOMP_LANGUAGE_START + i, label, wxString::Format(_("Select %s language for decomposition"), (const wxStringCharType*)label), wxITEM_RADIO);
|
||||||
|
m_toolDecompLanguage->Insert(label, i);
|
||||||
|
if (memcmp(m_lang, lang.id, sizeof(m_lang)) == 0)
|
||||||
|
m_toolDecompLanguage->Select(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set focus.
|
||||||
m_panel->m_decomposed->SetFocus();
|
m_panel->m_decomposed->SetFocus();
|
||||||
|
|
||||||
// Register global hotkey(s).
|
// Register global hotkey(s).
|
||||||
@ -75,7 +95,7 @@ wxZRColaFrame::~wxZRColaFrame()
|
|||||||
void wxZRColaFrame::OnForwardEventUpdate(wxUpdateUIEvent& event)
|
void wxZRColaFrame::OnForwardEventUpdate(wxUpdateUIEvent& event)
|
||||||
{
|
{
|
||||||
wxControl *focusWnd = wxDynamicCast(FindFocus(), wxControl);
|
wxControl *focusWnd = wxDynamicCast(FindFocus(), wxControl);
|
||||||
if (focusWnd)
|
if (focusWnd && !m_toolbar->IsDescendant(focusWnd))
|
||||||
focusWnd->GetEventHandler()->ProcessEvent(event);
|
focusWnd->GetEventHandler()->ProcessEvent(event);
|
||||||
else
|
else
|
||||||
event.Enable(false);
|
event.Enable(false);
|
||||||
@ -133,6 +153,47 @@ void wxZRColaFrame::OnSendAbort(wxCommandEvent& event)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void wxZRColaFrame::OnDecomposedLanguageUpdate(wxUpdateUIEvent& event)
|
||||||
|
{
|
||||||
|
ZRColaApp *app = ((ZRColaApp*)wxTheApp);
|
||||||
|
const ZRCola::language_db::language &lang = app->m_lang_db.idxLng[event.GetId() - wxID_DECOMP_LANGUAGE_START];
|
||||||
|
event.Check(memcmp(m_lang, lang.id, sizeof(m_lang)) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void wxZRColaFrame::OnDecomposedLanguage(wxCommandEvent& event)
|
||||||
|
{
|
||||||
|
ZRColaApp *app = ((ZRColaApp*)wxTheApp);
|
||||||
|
size_t i = event.GetId() - wxID_DECOMP_LANGUAGE_START;
|
||||||
|
const ZRCola::language_db::language &lang = app->m_lang_db.idxLng[i];
|
||||||
|
|
||||||
|
if (memcmp(m_lang, lang.id, sizeof(m_lang)) != 0) {
|
||||||
|
memcpy(m_lang, lang.id, sizeof(m_lang));
|
||||||
|
m_toolDecompLanguage->Select(i);
|
||||||
|
|
||||||
|
// Notify composed text something changed and should re-decompose.
|
||||||
|
wxCommandEvent event2(wxEVT_COMMAND_TEXT_UPDATED);
|
||||||
|
m_panel->m_composed->ProcessWindowEvent(event2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void wxZRColaFrame::OnDecompLanguageChoice(wxCommandEvent& event)
|
||||||
|
{
|
||||||
|
ZRColaApp *app = ((ZRColaApp*)wxTheApp);
|
||||||
|
size_t i = event.GetSelection();
|
||||||
|
const ZRCola::language_db::language &lang = app->m_lang_db.idxLng[i];
|
||||||
|
|
||||||
|
if (memcmp(m_lang, lang.id, sizeof(m_lang)) != 0) {
|
||||||
|
memcpy(m_lang, lang.id, sizeof(m_lang));
|
||||||
|
|
||||||
|
// Notify composed text something changed and should re-decompose.
|
||||||
|
wxCommandEvent event2(wxEVT_COMMAND_TEXT_UPDATED);
|
||||||
|
m_panel->m_composed->ProcessWindowEvent(event2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void wxZRColaFrame::OnExit(wxCommandEvent& event)
|
void wxZRColaFrame::OnExit(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
Close();
|
Close();
|
||||||
@ -224,3 +285,47 @@ WXLRESULT wxZRColaFrame::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM
|
|||||||
} else
|
} else
|
||||||
return wxZRColaFrameBase::MSWWindowProc(message, wParam, lParam);
|
return wxZRColaFrameBase::MSWWindowProc(message, wParam, lParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
// wxPersistentZRColaFrame
|
||||||
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
wxPersistentZRColaFrame::wxPersistentZRColaFrame(wxZRColaFrame *wnd) : wxPersistentTLW(wnd)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void wxPersistentZRColaFrame::Save() const
|
||||||
|
{
|
||||||
|
//
|
||||||
|
const wxZRColaFrame * const wnd = static_cast<const wxZRColaFrame*>(GetWindow());
|
||||||
|
|
||||||
|
SaveValue(wxT("lang"), wxString::FromAscii(wnd->m_lang, sizeof(wnd->m_lang)));
|
||||||
|
wxPersistentTLW::Save();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool wxPersistentZRColaFrame::Restore()
|
||||||
|
{
|
||||||
|
const bool r = wxPersistentTLW::Restore();
|
||||||
|
|
||||||
|
wxZRColaFrame * const wnd = static_cast<wxZRColaFrame*>(GetWindow());
|
||||||
|
|
||||||
|
wxString lang;
|
||||||
|
if (RestoreValue(wxT("lang"), &lang) && lang.Length() == 3) {
|
||||||
|
memcpy(wnd->m_lang, (const char*)lang.c_str(), sizeof(wnd->m_lang));
|
||||||
|
wnd->m_toolDecompLanguage->SetStringSelection(wxString::FromAscii(wnd->m_lang, sizeof(wnd->m_lang)));
|
||||||
|
} else {
|
||||||
|
ZRColaApp *app = ((ZRColaApp*)wxTheApp);
|
||||||
|
if (!app->m_lang_db.idxLng.empty()) {
|
||||||
|
const ZRCola::language_db::language &lang = app->m_lang_db.idxLng[0];
|
||||||
|
memcpy(wnd->m_lang, lang.id, sizeof(wnd->m_lang));
|
||||||
|
wnd->m_toolDecompLanguage->Select(0);
|
||||||
|
} else {
|
||||||
|
memcpy(wnd->m_lang, ZRCOLA_LANG_VOID, sizeof(wnd->m_lang));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
@ -27,6 +27,8 @@ class wxZRColaFrame;
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "zrcolagui.h"
|
#include "zrcolagui.h"
|
||||||
|
#include <zrcola/language.h>
|
||||||
|
#include <wx/persist/toplevel.h>
|
||||||
|
|
||||||
|
|
||||||
///
|
///
|
||||||
@ -42,6 +44,12 @@ class wxZRColaFrame;
|
|||||||
class wxZRColaFrame : public wxZRColaFrameBase
|
class wxZRColaFrame : public wxZRColaFrameBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
wxID_DECOMP_LANGUAGE_START = 6000,
|
||||||
|
wxID_DECOMP_LANGUAGE_END = 6099,
|
||||||
|
};
|
||||||
|
|
||||||
wxZRColaFrame();
|
wxZRColaFrame();
|
||||||
virtual ~wxZRColaFrame();
|
virtual ~wxZRColaFrame();
|
||||||
|
|
||||||
@ -52,10 +60,16 @@ protected:
|
|||||||
void OnSendComposed(wxCommandEvent& event);
|
void OnSendComposed(wxCommandEvent& event);
|
||||||
void OnSendDecomposed(wxCommandEvent& event);
|
void OnSendDecomposed(wxCommandEvent& event);
|
||||||
void OnSendAbort(wxCommandEvent& event);
|
void OnSendAbort(wxCommandEvent& event);
|
||||||
|
void OnDecomposedLanguageUpdate(wxUpdateUIEvent& event);
|
||||||
|
void OnDecomposedLanguage(wxCommandEvent& event);
|
||||||
|
virtual void OnDecompLanguageChoice(wxCommandEvent& event);
|
||||||
void OnExit(wxCommandEvent& event);
|
void OnExit(wxCommandEvent& event);
|
||||||
void OnAbout(wxCommandEvent& event);
|
void OnAbout(wxCommandEvent& event);
|
||||||
wxDECLARE_EVENT_TABLE();
|
wxDECLARE_EVENT_TABLE();
|
||||||
|
|
||||||
|
friend class wxPersistentZRColaFrame;
|
||||||
|
friend class wxZRColaComposerPanel;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void DoSend(const wxString& str);
|
void DoSend(const wxString& str);
|
||||||
|
|
||||||
@ -63,5 +77,25 @@ protected:
|
|||||||
virtual WXLRESULT MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
|
virtual WXLRESULT MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
ZRCola::langid_t m_lang; ///< Language for decomposing
|
||||||
WXHWND m_hWndSource; ///< handle of the active window, when the ZRCola hotkey was pressed
|
WXHWND m_hWndSource; ///< handle of the active window, when the ZRCola hotkey was pressed
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Supports saving/restoring wxZRColaFrame GUI state
|
||||||
|
///
|
||||||
|
class wxPersistentZRColaFrame : public wxPersistentTLW
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxPersistentZRColaFrame(wxZRColaFrame *wnd);
|
||||||
|
|
||||||
|
virtual void Save() const;
|
||||||
|
virtual bool Restore();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
inline wxPersistentObject *wxCreatePersistentObject(wxZRColaFrame *wnd)
|
||||||
|
{
|
||||||
|
return new wxPersistentZRColaFrame(wnd);
|
||||||
|
}
|
||||||
|
@ -97,6 +97,10 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
|
|||||||
#endif
|
#endif
|
||||||
m_menuEdit->Append( m_menuItemSendAbort );
|
m_menuEdit->Append( m_menuItemSendAbort );
|
||||||
|
|
||||||
|
m_menuDecompLanguage = new wxMenu();
|
||||||
|
wxMenuItem* m_menuDecompLanguageItem = new wxMenuItem( m_menuEdit, wxID_ANY, _("&Language"), wxEmptyString, wxITEM_NORMAL, m_menuDecompLanguage );
|
||||||
|
m_menuEdit->Append( m_menuDecompLanguageItem );
|
||||||
|
|
||||||
m_menubar->Append( m_menuEdit, _("&Edit") );
|
m_menubar->Append( m_menuEdit, _("&Edit") );
|
||||||
|
|
||||||
m_menuHelp = new wxMenu();
|
m_menuHelp = new wxMenu();
|
||||||
@ -122,6 +126,13 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
|
|||||||
|
|
||||||
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_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_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->SetSelection( 0 );
|
||||||
|
m_toolbar->AddControl( m_toolDecompLanguage );
|
||||||
m_toolbar->Realize();
|
m_toolbar->Realize();
|
||||||
|
|
||||||
wxBoxSizer* bSizerMain;
|
wxBoxSizer* bSizerMain;
|
||||||
@ -137,10 +148,16 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
|
|||||||
m_statusBar = this->CreateStatusBar( 1, wxST_SIZEGRIP, wxID_ANY );
|
m_statusBar = this->CreateStatusBar( 1, wxST_SIZEGRIP, wxID_ANY );
|
||||||
|
|
||||||
this->Centre( wxBOTH );
|
this->Centre( wxBOTH );
|
||||||
|
|
||||||
|
// Connect Events
|
||||||
|
m_toolDecompLanguage->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( wxZRColaFrameBase::OnDecompLanguageChoice ), NULL, this );
|
||||||
}
|
}
|
||||||
|
|
||||||
wxZRColaFrameBase::~wxZRColaFrameBase()
|
wxZRColaFrameBase::~wxZRColaFrameBase()
|
||||||
{
|
{
|
||||||
|
// Disconnect Events
|
||||||
|
m_toolDecompLanguage->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( wxZRColaFrameBase::OnDecompLanguageChoice ), NULL, this );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wxZRColaComposerPanelBase::wxZRColaComposerPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style )
|
wxZRColaComposerPanelBase::wxZRColaComposerPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style )
|
||||||
|
@ -21,6 +21,8 @@
|
|||||||
#include <wx/font.h>
|
#include <wx/font.h>
|
||||||
#include <wx/colour.h>
|
#include <wx/colour.h>
|
||||||
#include <wx/settings.h>
|
#include <wx/settings.h>
|
||||||
|
#include <wx/stattext.h>
|
||||||
|
#include <wx/choice.h>
|
||||||
#include <wx/toolbar.h>
|
#include <wx/toolbar.h>
|
||||||
#include "zrcolacomppnl.h"
|
#include "zrcolacomppnl.h"
|
||||||
#include <wx/sizer.h>
|
#include <wx/sizer.h>
|
||||||
@ -49,6 +51,7 @@ class wxZRColaFrameBase : public wxFrame
|
|||||||
wxMenuBar* m_menubar;
|
wxMenuBar* m_menubar;
|
||||||
wxMenu* m_menuProgram;
|
wxMenu* m_menuProgram;
|
||||||
wxMenu* m_menuEdit;
|
wxMenu* m_menuEdit;
|
||||||
|
wxMenu* m_menuDecompLanguage;
|
||||||
wxMenu* m_menuHelp;
|
wxMenu* m_menuHelp;
|
||||||
wxToolBar* m_toolbar;
|
wxToolBar* m_toolbar;
|
||||||
wxToolBarToolBase* m_toolEditCut;
|
wxToolBarToolBase* m_toolEditCut;
|
||||||
@ -56,9 +59,15 @@ class wxZRColaFrameBase : public wxFrame
|
|||||||
wxToolBarToolBase* m_toolEditPaste;
|
wxToolBarToolBase* m_toolEditPaste;
|
||||||
wxToolBarToolBase* m_toolSendComposed;
|
wxToolBarToolBase* m_toolSendComposed;
|
||||||
wxToolBarToolBase* m_toolSendDecomposed;
|
wxToolBarToolBase* m_toolSendDecomposed;
|
||||||
|
wxStaticText* m_toolDecompLanguageLbl;
|
||||||
|
wxChoice* m_toolDecompLanguage;
|
||||||
wxZRColaComposerPanel* m_panel;
|
wxZRColaComposerPanel* m_panel;
|
||||||
wxStatusBar* m_statusBar;
|
wxStatusBar* m_statusBar;
|
||||||
|
|
||||||
|
// Virtual event handlers, overide them in your derived class
|
||||||
|
virtual void OnDecompLanguageChoice( wxCommandEvent& event ) { event.Skip(); }
|
||||||
|
|
||||||
|
|
||||||
public:
|
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") );
|
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") );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user