added wxLocale::IsAvailable() (extended patch 1547191)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41147 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2006-09-10 23:28:20 +00:00
parent 6ea0cc70f7
commit cec5ffc46d
5 changed files with 87 additions and 7 deletions

View File

@@ -57,8 +57,10 @@ public:
MyFrame(wxLocale& m_locale);
public:
void OnQuit(wxCommandEvent& event);
void OnTestLocaleAvail(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
void OnQuit(wxCommandEvent& event);
void OnPlay(wxCommandEvent& event);
void OnOpen(wxCommandEvent& event);
void OnTest1(wxCommandEvent& event);
@@ -77,8 +79,8 @@ public:
// ID for the menu commands
enum
{
INTERNAT_TEXT = wxID_HIGHEST + 1,
INTERNAT_TEST,
INTERNAT_TEST = wxID_HIGHEST + 1,
INTERNAT_PLAY,
INTERNAT_TEST_1,
INTERNAT_TEST_2,
INTERNAT_TEST_3
@@ -140,9 +142,11 @@ wxCOMPILE_TIME_ASSERT( WXSIZEOF(langNames) == WXSIZEOF(langIds),
// ----------------------------------------------------------------------------
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(wxID_EXIT, MyFrame::OnQuit)
EVT_MENU(INTERNAT_TEST, MyFrame::OnTestLocaleAvail)
EVT_MENU(wxID_ABOUT, MyFrame::OnAbout)
EVT_MENU(INTERNAT_TEST, MyFrame::OnPlay)
EVT_MENU(wxID_EXIT, MyFrame::OnQuit)
EVT_MENU(INTERNAT_PLAY, MyFrame::OnPlay)
EVT_MENU(wxID_OPEN, MyFrame::OnOpen)
EVT_MENU(INTERNAT_TEST_1, MyFrame::OnTest1)
EVT_MENU(INTERNAT_TEST_2, MyFrame::OnTest2)
@@ -221,13 +225,15 @@ bool MyApp::OnInit()
// Make a menubar
wxMenu *file_menu = new wxMenu;
file_menu->Append(INTERNAT_TEST, _("&Test locale availability...\tCtrl-T"));
file_menu->AppendSeparator();
file_menu->Append(wxID_ABOUT, _("&About..."));
file_menu->AppendSeparator();
file_menu->Append(wxID_EXIT, _("E&xit"));
wxMenu *test_menu = new wxMenu;
test_menu->Append(wxID_OPEN, _("&Open bogus file"));
test_menu->Append(INTERNAT_TEST, _("&Play a game"));
test_menu->Append(INTERNAT_PLAY, _("&Play a game"));
test_menu->AppendSeparator();
test_menu->Append(INTERNAT_TEST_1, _("&1 _() (gettext)"));
test_menu->Append(INTERNAT_TEST_2, _("&2 _N() (ngettext)"));
@@ -339,7 +345,34 @@ void MyFrame::OnPlay(wxCommandEvent& WXUNUSED(event))
wxMessageBox(str, _("Result"), wxOK | wxICON_INFORMATION);
}
void MyFrame::OnOpen(wxCommandEvent&)
void MyFrame::OnTestLocaleAvail(wxCommandEvent& WXUNUSED(event))
{
static wxString s_locale;
wxString locale = wxGetTextFromUser
(
_("Enter the locale to test"),
wxGetTextFromUserPromptStr,
s_locale,
this
);
if ( locale.empty() )
return;
s_locale = locale;
const wxLanguageInfo * const info = wxLocale::FindLanguageInfo(s_locale);
if ( !info )
{
wxLogError(_("Locale \"%s\" is unknown."), s_locale.c_str());
return;
}
if ( wxLocale::IsAvailable(info->Language) )
wxLogMessage(_("Locale \"%s\" is available."), s_locale.c_str());
else
wxLogWarning(_("Locale \"%s\" is not available."), s_locale.c_str());
}
void MyFrame::OnOpen(wxCommandEvent& WXUNUSED(event))
{
// open a bogus file -- the error message should be also translated if
// you've got wxstd.mo somewhere in the search path