From 81ff20eeeb59aa2c72b737d7c6e18baa1a2478d5 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sun, 3 Jun 2012 20:59:43 +0000 Subject: MS_LANGPACK_RELOAD - dynamically reloads a language pack git-svn-id: http://svn.miranda-ng.org/main/trunk@290 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- src/modules/langpack/langpack.cpp | 19 +++++++++++++++---- src/modules/langpack/lpservices.cpp | 11 +++++++++++ 2 files changed, 26 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/modules/langpack/langpack.cpp b/src/modules/langpack/langpack.cpp index 8950bc61c5..cec6511386 100644 --- a/src/modules/langpack/langpack.cpp +++ b/src/modules/langpack/langpack.cpp @@ -539,10 +539,9 @@ int LoadLangPackModule(void) void UnloadLangPackModule() { - int i; - if ( !bModuleInitialized ) return; + int i; for ( i=0; i < lMuuids.getCount(); i++ ) mir_free( lMuuids[i] ); lMuuids.destroy(); @@ -555,8 +554,7 @@ void UnloadLangPackModule() mir_free( p2->local); mir_free( p2->wlocal); mir_free( p2 ); - } - } + } } mir_free( p->local ); mir_free( p->wlocal ); @@ -567,3 +565,16 @@ void UnloadLangPackModule() langPack.entry=0; langPack.entryCount=0; } } + +///////////////////////////////////////////////////////////////////////////////////////// + +INT_PTR ReloadLangpack(WPARAM wParam, LPARAM lParam) +{ + TCHAR* pszStr = ( TCHAR* )lParam; + if ( pszStr == NULL ) + pszStr = langPack.filename; + + UnloadLangPackModule(); + LoadLangPack(pszStr); + return 0; +} diff --git a/src/modules/langpack/lpservices.cpp b/src/modules/langpack/lpservices.cpp index 3f7ae689e6..48c0aea155 100644 --- a/src/modules/langpack/lpservices.cpp +++ b/src/modules/langpack/lpservices.cpp @@ -124,16 +124,22 @@ static INT_PTR LPRegister(WPARAM wParam, LPARAM lParam) return 0; } +///////////////////////////////////////////////////////////////////////////////////////// + static INT_PTR GetDefaultCodePage(WPARAM,LPARAM) { return LangPackGetDefaultCodePage(); } +///////////////////////////////////////////////////////////////////////////////////////// + static INT_PTR GetDefaultLocale(WPARAM, LPARAM) { return LangPackGetDefaultLocale(); } +///////////////////////////////////////////////////////////////////////////////////////// + static INT_PTR PcharToTchar(WPARAM wParam, LPARAM lParam) { char* pszStr = ( char* )lParam; @@ -154,6 +160,10 @@ static INT_PTR PcharToTchar(WPARAM wParam, LPARAM lParam) #endif } +///////////////////////////////////////////////////////////////////////////////////////// + +INT_PTR ReloadLangpack(WPARAM wParam, LPARAM lParam); + int LoadLangPackServices(void) { CreateServiceFunction(MS_LANGPACK_TRANSLATESTRING,TranslateString); @@ -163,6 +173,7 @@ int LoadLangPackServices(void) CreateServiceFunction(MS_LANGPACK_GETLOCALE,GetDefaultLocale); CreateServiceFunction(MS_LANGPACK_PCHARTOTCHAR,PcharToTchar); CreateServiceFunction(MS_LANGPACK_REGISTER,LPRegister); + CreateServiceFunction(MS_LANGPACK_RELOAD,ReloadLangpack); return 0; } -- cgit v1.2.3