|
View:
New views
1 Messages
—
Rating Filter:
Alert me
|
|
|
[Miranda-Commits] SF.net SVN: miranda:[8107] trunk/miranda/plugins/modernb
by ashpynov
::
Rate this Message:
Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message Revision: 8107
http://miranda.svn.sourceforge.net/miranda/?rev=8107&view=rev Author: ashpynov Date: 2008-07-22 10:52:55 +0000 (Tue, 22 Jul 2008) Log Message: ----------- one more step to be more unicode-friendly. now in skin selection window Modified Paths: -------------- trunk/miranda/plugins/modernb/clist_modern.vcproj trunk/miranda/plugins/modernb/hdr/modern_commonheaders.h trunk/miranda/plugins/modernb/hdr/modern_commonprototypes.h trunk/miranda/plugins/modernb/hdr/modern_skinengine.h trunk/miranda/plugins/modernb/modern_commonheaders.cpp trunk/miranda/plugins/modernb/modern_skinengine.cpp trunk/miranda/plugins/modernb/modern_skinopt.cpp Modified: trunk/miranda/plugins/modernb/clist_modern.vcproj =================================================================== --- trunk/miranda/plugins/modernb/clist_modern.vcproj 2008-07-22 05:52:26 UTC (rev 8106) +++ trunk/miranda/plugins/modernb/clist_modern.vcproj 2008-07-22 10:52:55 UTC (rev 8107) @@ -269,7 +269,7 @@ IgnoreImportLibrary="TRUE" AdditionalOptions="/MACHINE:I386" AdditionalDependencies="vc7to6.lib eh7.lib MSImg32.Lib comctl32.lib shlwapi.lib gdiplus.lib Delayimp.lib" - OutputFile="p:/miranda im/plugins/$(ProjectName).dll" + OutputFile="$(OutDir)/$(ProjectName).dll" AdditionalLibraryDirectories="../../lib" IgnoreAllDefaultLibraries="TRUE" IgnoreDefaultLibraryNames="" @@ -587,10 +587,10 @@ RelativePath="..\..\include\m_clistint.h"> </File> <File - RelativePath=".\m_api\m_clui.h"> + RelativePath="..\..\include\m_clui.h"> </File> <File - RelativePath="..\..\include\m_clui.h"> + RelativePath=".\m_api\m_clui.h"> </File> <File RelativePath=".\m_api\m_cluiframes.h"> Modified: trunk/miranda/plugins/modernb/hdr/modern_commonheaders.h =================================================================== --- trunk/miranda/plugins/modernb/hdr/modern_commonheaders.h 2008-07-22 05:52:26 UTC (rev 8106) +++ trunk/miranda/plugins/modernb/hdr/modern_commonheaders.h 2008-07-22 10:52:55 UTC (rev 8107) @@ -440,8 +440,15 @@ }; }; +#ifdef _UNICODE +#define ModernGetStringT ModernGetStringW +#else +#define ModernGetStringT ModernGetStringA +#endif -char * ModernGetStringA ( HANDLE hContact, const char *szModule, const char *szSetting ); +char * ModernGetStringA ( HANDLE hContact, const char *szModule, const char *szSetting ); +wchar_t * ModernGetStringW ( HANDLE hContact, const char *szModule, const char *szSetting ); + WORD ModernGetSettingRangedWord ( HANDLE hContact, const char *szModule, const char *szSetting, WORD errorValue, WORD minValue, WORD maxValue); Modified: trunk/miranda/plugins/modernb/hdr/modern_commonprototypes.h =================================================================== --- trunk/miranda/plugins/modernb/hdr/modern_commonprototypes.h 2008-07-22 05:52:26 UTC (rev 8106) +++ trunk/miranda/plugins/modernb/hdr/modern_commonprototypes.h 2008-07-22 10:52:55 UTC (rev 8107) @@ -170,7 +170,7 @@ HBITMAP ske_LoadGlyphImage(char * szFileName); HRESULT SkinEngineLoadModule(); void ske_LoadSkinFromDB(void); -int ske_LoadSkinFromIniFile(char*, BOOL); +int ske_LoadSkinFromIniFile(TCHAR*, BOOL); TCHAR* ske_ParseText(TCHAR *stzText); int ske_PrepeareImageButDontUpdateIt(RECT * r); int ske_ReCreateBackImage(BOOL Erase,RECT *w); Modified: trunk/miranda/plugins/modernb/hdr/modern_skinengine.h =================================================================== --- trunk/miranda/plugins/modernb/hdr/modern_skinengine.h 2008-07-22 05:52:26 UTC (rev 8106) +++ trunk/miranda/plugins/modernb/hdr/modern_skinengine.h 2008-07-22 10:52:55 UTC (rev 8107) @@ -98,7 +98,7 @@ HRESULT Parse( ParserCallback_t pLineCallBackProc, LPARAM lParam ); static HRESULT WriteStrToDb( const char * szSection, const char * szKey, const char * szValue, LPARAM lParam ); - static int GetSkinFolder( IN const char * szFileName, OUT char * pszFolderName ); + static int GetSkinFolder( IN const TCHAR * szFileName, OUT TCHAR * pszFolderName ); private: Modified: trunk/miranda/plugins/modernb/modern_commonheaders.cpp =================================================================== --- trunk/miranda/plugins/modernb/modern_commonheaders.cpp 2008-07-22 05:52:26 UTC (rev 8106) +++ trunk/miranda/plugins/modernb/modern_commonheaders.cpp 2008-07-22 10:52:55 UTC (rev 8107) @@ -72,6 +72,18 @@ ModernDBFreeVariant(&dbv); return str; } + +wchar_t* __cdecl ModernGetStringW( HANDLE hContact, const char *szModule, const char *szSetting ) +{ + wchar_t *str=NULL; + DBVARIANT dbv={0}; + DBGetContactSettingWString(hContact,szModule,szSetting,&dbv); + if(dbv.type==DBVT_WCHAR) + str=mir_wstrdup(dbv.pwszVal); + DBFreeVariant(&dbv); + return str; +} + WORD __cdecl ModernGetSettingRangedWord(HANDLE hContact, const char *szModule, const char *szSetting, WORD errorValue, WORD minValue, WORD maxValue) { return DBGetContactSettingRangedWord( hContact, szModule, szSetting, errorValue, minValue, maxValue); Modified: trunk/miranda/plugins/modernb/modern_skinengine.cpp =================================================================== --- trunk/miranda/plugins/modernb/modern_skinengine.cpp 2008-07-22 05:52:26 UTC (rev 8106) +++ trunk/miranda/plugins/modernb/modern_skinengine.cpp 2008-07-22 10:52:55 UTC (rev 8107) @@ -240,31 +240,31 @@ } return S_OK; } -int IniParser::GetSkinFolder( IN const char * szFileName, OUT char * pszFolderName ) +int IniParser::GetSkinFolder( IN const TCHAR * szFileName, OUT TCHAR * pszFolderName ) { - char *pszPos; - char *szBuff; + TCHAR *pszPos; + TCHAR *szBuff; - szBuff = mir_strdup( szFileName ); - pszPos = szBuff + mir_strlen( szBuff ); - while ( pszPos > szBuff && *pszPos!='.') { pszPos--; } - *pszPos='\0'; - strcpy( pszFolderName, szBuff ); + szBuff = mir_tstrdup( szFileName ); + pszPos = szBuff + _tcslen( szBuff ); + while ( pszPos > szBuff && *pszPos!= _T('.') ) { pszPos--; } + *pszPos=_T('\0'); + _tcscpy( pszFolderName, szBuff ); - char custom_folder[MAX_PATH]; - char cus[MAX_PATH]; - char *b3; - strcpy( custom_folder, pszFolderName ); - b3=custom_folder + mir_strlen( custom_folder ); - while ( b3 > custom_folder && *b3!='\\' ) { b3--; } - *b3='\0'; + TCHAR custom_folder[MAX_PATH]; + TCHAR cus[MAX_PATH]; + TCHAR *b3; + _tcscpy( custom_folder, pszFolderName ); + b3=custom_folder + _tcslen( custom_folder ); + while ( b3 > custom_folder && *b3!= _T('\\') ) { b3--; } + *b3=_T('\0'); - GetPrivateProfileStringA("Skin_Description_Section","SkinFolder","",cus,sizeof(custom_folder),szFileName); - if (mir_strlen(cus)>0) - _snprintf(pszFolderName,MAX_PATH,"%s\\%s",custom_folder,cus); + GetPrivateProfileString(_T("Skin_Description_Section"),_T("SkinFolder"),_T(""),cus,SIZEOF(custom_folder),szFileName); + if ( cus && _tcslen(cus)>0) + _sntprintf(pszFolderName,MAX_PATH,_T("%s\\%s"),custom_folder,cus); mir_free_and_nill(szBuff); - CallService(MS_UTILS_PATHTORELATIVE, (WPARAM)pszFolderName, (LPARAM)pszFolderName); + CallService(MS_UTILS_PATHTORELATIVET, (WPARAM)pszFolderName, (LPARAM)pszFolderName); return 0; } @@ -2612,23 +2612,22 @@ } //Load data from ini file -int ske_LoadSkinFromIniFile(char * szFileName, BOOL bOnlyObjects) +int ske_LoadSkinFromIniFile(TCHAR * szFileName, BOOL bOnlyObjects) { - char skinFolder[MAX_PATH]={0}; - char skinFile[MAX_PATH]={0}; - if (strchr(szFileName,'%')) + TCHAR skinFolder[MAX_PATH]={0}; + TCHAR skinFile[MAX_PATH]={0}; + if (_tcschr(szFileName,_T('%'))) return ske_LoadSkinFromResource( bOnlyObjects ); - TCHAR * tcsFileName = mir_a2t ( szFileName ); - IniParser parser( tcsFileName ); + IniParser parser( szFileName ); if ( !parser.CheckOK() ) return 0; ske_DeleteAllSettingInSection("ModernSkin"); IniParser::GetSkinFolder(szFileName,skinFolder); - CallService(MS_UTILS_PATHTORELATIVE, (WPARAM)szFileName, (LPARAM)skinFile); + CallService(MS_UTILS_PATHTORELATIVET, (WPARAM)szFileName, (LPARAM)skinFile); - ModernWriteSettingString(NULL,SKIN,"SkinFolder",skinFolder); - ModernWriteSettingString(NULL,SKIN,"SkinFile",skinFile); + ModernWriteSettingTString(NULL,SKIN,"SkinFolder", skinFolder); + ModernWriteSettingTString(NULL,SKIN,"SkinFile", skinFile); parser.Parse( IniParser::WriteStrToDb, 1 ); Modified: trunk/miranda/plugins/modernb/modern_skinopt.cpp =================================================================== --- trunk/miranda/plugins/modernb/modern_skinopt.cpp 2008-07-22 05:52:26 UTC (rev 8106) +++ trunk/miranda/plugins/modernb/modern_skinopt.cpp 2008-07-22 10:52:55 UTC (rev 8107) @@ -9,9 +9,9 @@ This program 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 2 -of the License, or (at your option) any later version. +of the License, or ( at your option ) any later version. -This program is distributed in the hope that it will be useful, +This program 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. @@ -27,232 +27,231 @@ #include "io.h" #include "hdr/modern_commonprototypes.h" #include "hdr/modern_sync.h" +#include <m_utils.h> +#include <m_database.h> - /*******************************/ // Main skin selection routine // /*******************************/ #define MAX_NAME 100 typedef struct _SkinListData { - char Name[MAX_NAME]; - char File[MAX_PATH]; + TCHAR Name[MAX_NAME]; + TCHAR File[MAX_PATH]; } SkinListData; -HBITMAP hPreviewBitmap=NULL; - int AddItemToTree(HWND hTree, char * folder, char * itemName, void * data); +HBITMAP hPreviewBitmap = NULL; +int AddItemToTree( HWND hTree, TCHAR * folder, TCHAR * itemName, void * data ); +int AddSkinToListFullName( HWND hwndDlg, TCHAR * fullName ); +int AddSkinToList( HWND hwndDlg, TCHAR * path, TCHAR* file ); +int FillAvailableSkinList( HWND hwndDlg ); -int AddSkinToListFullName(HWND hwndDlg,char * fullName); -int AddSkinToList(HWND hwndDlg,char * path, char* file); -int FillAvailableSkinList(HWND hwndDlg); +BOOL CALLBACK DlgSkinOpts( HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam ); - BOOL CALLBACK DlgSkinOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); - -int SkinOptInit(WPARAM wParam,LPARAM lParam) +int SkinOptInit( WPARAM wParam, LPARAM lParam ) { OPTIONSDIALOGPAGE odp; - if (!g_CluiData.fDisableSkinEngine) + if ( !g_CluiData.fDisableSkinEngine ) { //Tabbed settings - ZeroMemory(&odp,sizeof(odp)); - odp.cbSize=sizeof(odp); - odp.position=-200000000; - odp.hInstance=g_hInst; - odp.pfnDlgProc=DlgSkinOpts; - odp.pszTemplate=MAKEINTRESOURCEA(IDD_OPT_SKIN); - odp.pszGroup=LPGEN("Customize"); - odp.pszTitle=LPGEN("Contact list skin"); - odp.flags=ODPF_BOLDGROUPS; - odp.pszTab=LPGEN("Load/Save"); - CallService(MS_OPT_ADDPAGE,wParam,(LPARAM)&odp); + ZeroMemory( &odp, sizeof( odp ) ); + odp.cbSize = sizeof( odp ); + odp.position = -200000000; + odp.hInstance = g_hInst; + odp.pfnDlgProc = DlgSkinOpts; + odp.pszTemplate = MAKEINTRESOURCEA( IDD_OPT_SKIN ); + odp.ptszGroup = LPGENT( "Customize" ); + odp.ptszTitle = LPGENT( "Contact list skin" ); + odp.flags = ODPF_BOLDGROUPS|ODPF_TCHAR; + odp.ptszTab = LPGENT( "Load/Save" ); + CallService( MS_OPT_ADDPAGE, wParam, ( LPARAM )&odp ); - if (ModernGetSettingByte(NULL, "ModernData", "EnableSkinEditor",SETTING_ENABLESKINEDITOR_DEFAULT)) + if ( ModernGetSettingByte( NULL, "ModernData", "EnableSkinEditor", SETTING_ENABLESKINEDITOR_DEFAULT ) ) { - odp.flags|=ODPF_EXPERTONLY; - odp.pfnDlgProc=DlgSkinEditorOpts; - odp.pszTemplate=MAKEINTRESOURCEA(IDD_OPT_SKINEDITOR); - odp.pszTab=LPGEN("Object Editor"); - CallService(MS_OPT_ADDPAGE,wParam,(LPARAM)&odp); + odp.flags |= ODPF_EXPERTONLY; + odp.pfnDlgProc = DlgSkinEditorOpts; + odp.pszTemplate = MAKEINTRESOURCEA( IDD_OPT_SKINEDITOR ); + odp.ptszTab = LPGENT( "Object Editor" ); + CallService( MS_OPT_ADDPAGE, wParam, ( LPARAM )&odp ); } } return 0; } - BOOL CALLBACK DlgSkinOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) +BOOL CALLBACK DlgSkinOpts( HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam ) { - switch (msg) + switch ( msg ) { case WM_DESTROY: { - if (hPreviewBitmap) ske_UnloadGlyphImage(hPreviewBitmap); + if ( hPreviewBitmap ) ske_UnloadGlyphImage( hPreviewBitmap ); break; } case WM_INITDIALOG: { int it; - TranslateDialogDefault(hwndDlg); - it=FillAvailableSkinList(hwndDlg); + TranslateDialogDefault( hwndDlg ); + it = FillAvailableSkinList( hwndDlg ); { /* Text Colors */ - DWORD c1,c2,c3,c4; - c1=ModernGetSettingDword(NULL,"Menu", "TextColour", CLCDEFAULT_TEXTCOLOUR); - c2=ModernGetSettingDword(NULL,"Menu", "SelTextColour", CLCDEFAULT_MODERN_SELTEXTCOLOUR); - c3=ModernGetSettingDword(NULL,"FrameTitleBar", "TextColour", CLCDEFAULT_TEXTCOLOUR); - c4=ModernGetSettingDword(NULL,"StatusBar", "TextColour", CLCDEFAULT_TEXTCOLOUR); - SendDlgItemMessage(hwndDlg,IDC_COLOUR_MENUNORMAL,CPM_SETCOLOUR,0,c1); - SendDlgItemMessage(hwndDlg,IDC_COLOUR_MENUSELECTED,CPM_SETCOLOUR,0,c2); - SendDlgItemMessage(hwndDlg,IDC_COLOUR_FRAMES,CPM_SETCOLOUR,0,c3); - SendDlgItemMessage(hwndDlg,IDC_COLOUR_STATUSBAR,CPM_SETCOLOUR,0,c4); + DWORD c1, c2, c3, c4; + c1 = ModernGetSettingDword( NULL, "Menu", "TextColour", CLCDEFAULT_TEXTCOLOUR ); + c2 = ModernGetSettingDword( NULL, "Menu", "SelTextColour", CLCDEFAULT_MODERN_SELTEXTCOLOUR ); + c3 = ModernGetSettingDword( NULL, "FrameTitleBar", "TextColour", CLCDEFAULT_TEXTCOLOUR ); + c4 = ModernGetSettingDword( NULL, "StatusBar", "TextColour", CLCDEFAULT_TEXTCOLOUR ); + SendDlgItemMessage( hwndDlg, IDC_COLOUR_MENUNORMAL, CPM_SETCOLOUR, 0, c1 ); + SendDlgItemMessage( hwndDlg, IDC_COLOUR_MENUSELECTED, CPM_SETCOLOUR, 0, c2 ); + SendDlgItemMessage( hwndDlg, IDC_COLOUR_FRAMES, CPM_SETCOLOUR, 0, c3 ); + SendDlgItemMessage( hwndDlg, IDC_COLOUR_STATUSBAR, CPM_SETCOLOUR, 0, c4 ); - SendDlgItemMessage(hwndDlg,IDC_COLOUR_MENUNORMAL,CPM_SETDEFAULTCOLOUR,0,c1); - SendDlgItemMessage(hwndDlg,IDC_COLOUR_MENUSELECTED,CPM_SETDEFAULTCOLOUR,0,c2); - SendDlgItemMessage(hwndDlg,IDC_COLOUR_FRAMES,CPM_SETDEFAULTCOLOUR,0,c3); - SendDlgItemMessage(hwndDlg,IDC_COLOUR_STATUSBAR,CPM_SETDEFAULTCOLOUR,0,c4); + SendDlgItemMessage( hwndDlg, IDC_COLOUR_MENUNORMAL, CPM_SETDEFAULTCOLOUR, 0, c1 ); + SendDlgItemMessage( hwndDlg, IDC_COLOUR_MENUSELECTED, CPM_SETDEFAULTCOLOUR, 0, c2 ); + SendDlgItemMessage( hwndDlg, IDC_COLOUR_FRAMES, CPM_SETDEFAULTCOLOUR, 0, c3 ); + SendDlgItemMessage( hwndDlg, IDC_COLOUR_STATUSBAR, CPM_SETDEFAULTCOLOUR, 0, c4 ); /* End of Text colors */ } { - HWND wnd=GetDlgItem(hwndDlg,IDC_TREE1); - TreeView_SelectItem(wnd,(HTREEITEM)it); + HWND wnd = GetDlgItem( hwndDlg, IDC_TREE1 ); + TreeView_SelectItem( wnd, ( HTREEITEM )it ); } - + } return 0; case WM_COMMAND: { - int isLoad=0; - switch (LOWORD(wParam)) + int isLoad = 0; + switch ( LOWORD( wParam ) ) { case IDC_COLOUR_MENUNORMAL: case IDC_COLOUR_MENUSELECTED: case IDC_COLOUR_FRAMES: case IDC_COLOUR_STATUSBAR: - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + SendMessage( GetParent( hwndDlg ), PSM_CHANGED, 0, 0 ); break; case IDC_BUTTON_INFO: { - char Author[255]; - char URL[MAX_PATH]; - char Contact[255]; - char Description[400]; - char text[2000]; - SkinListData *sd=NULL; - HTREEITEM hti=TreeView_GetSelection(GetDlgItem(hwndDlg,IDC_TREE1)); - if (hti==0) return 0; + TCHAR Author[255]; + TCHAR URL[MAX_PATH]; + TCHAR Contact[255]; + TCHAR Description[400]; + TCHAR text[2000]; + SkinListData *sd = NULL; + HTREEITEM hti = TreeView_GetSelection( GetDlgItem( hwndDlg, IDC_TREE1 ) ); + if ( hti == 0 ) return 0; { - TVITEMA tvi={0}; - tvi.hItem=hti; - tvi.mask=TVIF_HANDLE|TVIF_PARAM; - TreeView_GetItem(GetDlgItem(hwndDlg,IDC_TREE1),&tvi); - sd=(SkinListData*)(tvi.lParam); + TVITEM tvi = {0}; + tvi.hItem = hti; + tvi.mask = TVIF_HANDLE|TVIF_PARAM; + TreeView_GetItem( GetDlgItem( hwndDlg, IDC_TREE1 ), &tvi ); + sd = ( SkinListData* )( tvi.lParam ); } - if (!sd) return 0; - if (sd->File && !strchr(sd->File,'%')) + if ( !sd ) return 0; + if ( sd->File && !_tcschr( sd->File, _T('%') ) ) { - GetPrivateProfileStringA("Skin_Description_Section","Author","(unknown)",Author,sizeof(Author),sd->File); - GetPrivateProfileStringA("Skin_Description_Section","URL","",URL,sizeof(URL),sd->File); - GetPrivateProfileStringA("Skin_Description_Section","Contact","",Contact,sizeof(Contact),sd->File); - GetPrivateProfileStringA("Skin_Description_Section","Description","",Description,sizeof(Description),sd->File); - _snprintf(text,sizeof(text),Translate("%s\n\n%s\n\nAuthor(s):\t %s\nContact:\t %s\nWeb:\t %s\n\nFile:\t %s"), - sd->Name,Description,Author,Contact,URL,sd->File); + GetPrivateProfileString( _T( "Skin_Description_Section" ), _T( "Author" ), TranslateT( "( unknown )" ), Author, SIZEOF( Author ), sd->File ); + GetPrivateProfileString( _T( "Skin_Description_Section" ), _T( "URL" ), _T( "" ), URL, SIZEOF( URL ), sd->File ); + GetPrivateProfileString( _T( "Skin_Description_Section" ), _T( "Contact" ), _T( "" ), Contact, SIZEOF( Contact ), sd->File ); + GetPrivateProfileString( _T( "Skin_Description_Section" ), _T( "Description" ), _T( "" ), Description, SIZEOF( Description ), sd->File ); + _sntprintf( text, SIZEOF( text ), TranslateT( "%s\n\n%s\n\nAuthor(s):\t %s\nContact:\t %s\nWeb:\t %s\n\nFile:\t %s" ), + sd->Name, Description, Author, Contact, URL, sd->File ); } else { - _snprintf(text,sizeof(text),Translate("%s\n\n%s\n\nAuthor(s): %s\nContact:\t %s\nWeb:\t %s\n\nFile:\t %s"), - "reVista for Modern v0.5", - Translate("This is second default Modern Contact list skin in Vista Aero style"), - "Angeli-Ka (graphics), FYR (template)", - "JID: fyr@...", - "fyr.mirandaim.ru", - Translate("Inside library")); + _sntprintf( text, SIZEOF( text ), TranslateT( "%s\n\n%s\n\nAuthor(s): %s\nContact:\t %s\nWeb:\t %s\n\nFile:\t %s" ), + TranslateT( "reVista for Modern v0.5" ), + TranslateT( "This is second default Modern Contact list skin in Vista Aero style" ), + TranslateT( "Angeli-Ka (graphics), FYR (template)" ), + _T( "JID: fyr@..." ), + _T("fyr.mirandaim.ru"), + TranslateT( "Inside library" ) ); } - MessageBoxA(hwndDlg,text,"Skin Information",MB_OK|MB_ICONINFORMATION); + MessageBox( hwndDlg, text, TranslateT( "Skin Information" ), MB_OK|MB_ICONINFORMATION ); } break; case IDC_BUTTON_APPLY_SKIN: - if (HIWORD(wParam)==BN_CLICKED) + if ( HIWORD( wParam ) == BN_CLICKED ) { - SkinListData *sd=NULL; - HTREEITEM hti=TreeView_GetSelection(GetDlgItem(hwndDlg,IDC_TREE1)); - if (hti==0) return 0; + SkinListData *sd = NULL; + HTREEITEM hti = TreeView_GetSelection( GetDlgItem( hwndDlg, IDC_TREE1 ) ); + if ( hti == 0 ) return 0; { - TVITEM tvi={0}; - tvi.hItem=hti; - tvi.mask=TVIF_HANDLE|TVIF_PARAM; - TreeView_GetItem(GetDlgItem(hwndDlg,IDC_TREE1),&tvi); - sd=(SkinListData*)(tvi.lParam); + TVITEM tvi = {0}; + tvi.hItem = hti; + tvi.mask = TVIF_HANDLE|TVIF_PARAM; + TreeView_GetItem( GetDlgItem( hwndDlg, IDC_TREE1 ), &tvi ); + sd = ( SkinListData* )( tvi.lParam ); } - if (!sd) return 0; - if (glSkinWasModified>0) + if ( !sd ) return 0; + if ( glSkinWasModified>0 ) { - int res=0; - if (glSkinWasModified==1) - res=MessageBoxA(hwndDlg,Translate("Skin editor contains not stored changes.\n\nAll changes will be lost.\n\n Continue to load new skin?"),Translate("Warning!"),MB_OKCANCEL|MB_ICONWARNING|MB_DEFBUTTON2|MB_TOPMOST); + int res = 0; + if ( glSkinWasModified == 1 ) + res = MessageBox( hwndDlg, TranslateT( "Skin editor contains not stored changes.\n\nAll changes will be lost.\n\n Continue to load new skin?" ), TranslateT( "Warning!" ), MB_OKCANCEL|MB_ICONWARNING|MB_DEFBUTTON2|MB_TOPMOST ); else - res=MessageBoxA(hwndDlg,Translate("Current skin was not saved to file.\n\nAll changes will be lost.\n\n Continue to load new skin?"),Translate("Warning!"),MB_OKCANCEL|MB_ICONWARNING|MB_DEFBUTTON2|MB_TOPMOST); - if (res!=IDOK) return 0; + res = MessageBox( hwndDlg, TranslateT( "Current skin was not saved to file.\n\nAll changes will be lost.\n\n Continue to load new skin?" ), TranslateT( "Warning!" ), MB_OKCANCEL|MB_ICONWARNING|MB_DEFBUTTON2|MB_TOPMOST ); + if ( res!= IDOK ) return 0; } - ske_LoadSkinFromIniFile(sd->File, FALSE); - ske_LoadSkinFromDB(); - glOtherSkinWasLoaded=TRUE; - pcli->pfnClcBroadcast( INTM_RELOADOPTIONS,0,0); - Sync(CLUIFrames_OnClistResize_mod,0,0); - ske_RedrawCompleteWindow(); - Sync(CLUIFrames_OnClistResize_mod,0,0); + ske_LoadSkinFromIniFile( sd->File, FALSE ); + ske_LoadSkinFromDB( ); + glOtherSkinWasLoaded = TRUE; + pcli->pfnClcBroadcast( INTM_RELOADOPTIONS, 0, 0 ); + Sync( CLUIFrames_OnClistResize_mod, 0, 0 ); + ske_RedrawCompleteWindow( ); + Sync( CLUIFrames_OnClistResize_mod, 0, 0 ); { - HWND hwnd=pcli->hwndContactList; - RECT rc={0}; - GetWindowRect(hwnd, &rc); - Sync(CLUIFrames_OnMoving,hwnd,&rc); + HWND hwnd = pcli->hwndContactList; + RECT rc = {0}; + GetWindowRect( hwnd, &rc ); + Sync( CLUIFrames_OnMoving, hwnd, &rc ); } - if (g_hCLUIOptionsWnd) + if ( g_hCLUIOptionsWnd ) { - SendDlgItemMessage(g_hCLUIOptionsWnd,IDC_LEFTMARGINSPIN,UDM_SETPOS,0,ModernGetSettingByte(NULL,"CLUI","LeftClientMargin",SETTING_LEFTCLIENTMARIGN_DEFAULT)); - SendDlgItemMessage(g_hCLUIOptionsWnd,IDC_RIGHTMARGINSPIN,UDM_SETPOS,0,ModernGetSettingByte(NULL,"CLUI","RightClientMargin",SETTING_RIGHTCLIENTMARIGN_DEFAULT)); - SendDlgItemMessage(g_hCLUIOptionsWnd,IDC_TOPMARGINSPIN,UDM_SETPOS,0,ModernGetSettingByte(NULL,"CLUI","TopClientMargin",SETTING_TOPCLIENTMARIGN_DEFAULT)); - SendDlgItemMessage(g_hCLUIOptionsWnd,IDC_BOTTOMMARGINSPIN,UDM_SETPOS,0,ModernGetSettingByte(NULL,"CLUI","BottomClientMargin",SETTING_BOTTOMCLIENTMARIGN_DEFAULT)); + SendDlgItemMessage( g_hCLUIOptionsWnd, IDC_LEFTMARGINSPIN, UDM_SETPOS, 0, ModernGetSettingByte( NULL, "CLUI", "LeftClientMargin", SETTING_LEFTCLIENTMARIGN_DEFAULT ) ); + SendDlgItemMessage( g_hCLUIOptionsWnd, IDC_RIGHTMARGINSPIN, UDM_SETPOS, 0, ModernGetSettingByte( NULL, "CLUI", "RightClientMargin", SETTING_RIGHTCLIENTMARIGN_DEFAULT ) ); + SendDlgItemMessage( g_hCLUIOptionsWnd, IDC_TOPMARGINSPIN, UDM_SETPOS, 0, ModernGetSettingByte( NULL, "CLUI", "TopClientMargin", SETTING_TOPCLIENTMARIGN_DEFAULT ) ); + SendDlgItemMessage( g_hCLUIOptionsWnd, IDC_BOTTOMMARGINSPIN, UDM_SETPOS, 0, ModernGetSettingByte( NULL, "CLUI", "BottomClientMargin", SETTING_BOTTOMCLIENTMARIGN_DEFAULT ) ); } } break; case IDC_BUTTON_LOAD: - isLoad=1; - if (HIWORD(wParam)==BN_CLICKED) + isLoad = 1; + if ( HIWORD( wParam ) == BN_CLICKED ) { { - char str[MAX_PATH]={0}; - OPENFILENAMEA ofn={0}; - char filter[512]={0}; - int res=0; + TCHAR str[MAX_PATH] = {0}; + OPENFILENAME ofn = {0}; + TCHAR filter[512] = {0}; + int res = 0; ofn.lStructSize = OPENFILENAME_SIZE_VERSION_400; ofn.hwndOwner = hwndDlg; ofn.hInstance = NULL; - sprintf(filter,"%s",Translate("Miranda skin file")); - memmove(filter+mir_strlen(filter)," (*.msf)\0*.MSF\0\0",sizeof(" (*.msf)\0*.MSF\0\0")); + _sntprintf( filter, SIZEOF( filter ), _T( "%s ( *.msf )\0*.MSF\0\0" ), TranslateT( "Miranda skin file" ) ); ofn.lpstrFilter = filter; ofn.lpstrFile = str; - ofn.Flags = isLoad?(OFN_FILEMUSTEXIST | OFN_HIDEREADONLY) : (OFN_OVERWRITEPROMPT|OFN_HIDEREADONLY); - ofn.nMaxFile = sizeof(str); + ofn.Flags = isLoad?( OFN_FILEMUSTEXIST | OFN_HIDEREADONLY ) : ( OFN_OVERWRITEPROMPT|OFN_HIDEREADONLY ); + ofn.nMaxFile = sizeof( str ); ofn.nMaxFileTitle = MAX_PATH; - ofn.lpstrDefExt = "msf"; + ofn.lpstrDefExt = _T( "msf" ); { - DWORD tick=GetTickCount(); - res=GetOpenFileNameA(&ofn); - if(!res) - if (GetTickCount()-tick<100) + DWORD tick = GetTickCount( ); + res = GetOpenFileName( &ofn ); + if( !res ) + if ( GetTickCount( )-tick<100 ) { - res=GetOpenFileNameA(&ofn); - if(!res) break; + res = GetOpenFileName( &ofn ); + if( !res ) break; } else break; } - if (res) + if ( res ) { - int it=AddSkinToListFullName(hwndDlg,ofn.lpstrFile); - TreeView_SelectItem(GetDlgItem(hwndDlg,IDC_TREE1),(HTREEITEM)it); - //SendDlgItemMessage(hwndDlg,IDC_SKINS_LIST,LB_SETCURSEL,it,0); - //SendMessage(hwndDlg,WM_COMMAND,MAKEWPARAM(IDC_SKINS_LIST,LBN_SELCHANGE),0); + int it = AddSkinToListFullName( hwndDlg, ofn.lpstrFile ); + TreeView_SelectItem( GetDlgItem( hwndDlg, IDC_TREE1 ), ( HTREEITEM )it ); + //SendDlgItemMessage( hwndDlg, IDC_SKINS_LIST, LB_SETCURSEL, it, 0 ); + //SendMessage( hwndDlg, WM_COMMAND, MAKEWPARAM( IDC_SKINS_LIST, LBN_SELCHANGE ), 0 ); } } } @@ -260,424 +259,425 @@ break; } case WM_DRAWITEM: - if (wParam==IDC_PREVIEW) + if ( wParam == IDC_PREVIEW ) { //TODO:Draw hPreviewBitmap here HDC memDC, imgDC; - HBITMAP hbmp,holdbmp,imgOldbmp; + HBITMAP hbmp, holdbmp, imgOldbmp; int mWidth, mHeight; - RECT workRect={0}; - HBRUSH hbr=CreateSolidBrush(GetSysColor(COLOR_3DFACE)); - DRAWITEMSTRUCT *dis=(DRAWITEMSTRUCT *)lParam; - mWidth=dis->rcItem.right-dis->rcItem.left; - mHeight=dis->rcItem.bottom-dis->rcItem.top; - memDC=CreateCompatibleDC(dis->hDC); - hbmp=ske_CreateDIB32(mWidth,mHeight); - holdbmp=(HBITMAP)SelectObject(memDC,hbmp); - workRect=dis->rcItem; - OffsetRect(&workRect,-workRect.left,-workRect.top); - FillRect(memDC,&workRect,hbr); - DeleteObject(hbr); - if (hPreviewBitmap) + RECT workRect = {0}; + HBRUSH hbr = CreateSolidBrush( GetSysColor( COLOR_3DFACE ) ); + DRAWITEMSTRUCT *dis = ( DRAWITEMSTRUCT * )lParam; + mWidth = dis->rcItem.right-dis->rcItem.left; + mHeight = dis->rcItem.bottom-dis->rcItem.top; + memDC = CreateCompatibleDC( dis->hDC ); + hbmp = ske_CreateDIB32( mWidth, mHeight ); + holdbmp = ( HBITMAP )SelectObject( memDC, hbmp ); + workRect = dis->rcItem; + OffsetRect( &workRect, -workRect.left, -workRect.top ); + FillRect( memDC, &workRect, hbr ); + DeleteObject( hbr ); + if ( hPreviewBitmap ) { //variables - BITMAP bmp={0}; - POINT imgPos={0}; - int wWidth,wHeight; - int dWidth,dHeight; - float xScale=1, yScale=1; + BITMAP bmp = {0}; + POINT imgPos = {0}; + int wWidth, wHeight; + int dWidth, dHeight; + float xScale = 1, yScale = 1; //GetSize - GetObject(hPreviewBitmap,sizeof(BITMAP),&bmp); - wWidth=workRect.right-workRect.left; - wHeight=workRect.bottom-workRect.top; - if (wWidth<bmp.bmWidth) xScale=(float)wWidth/bmp.bmWidth; - if (wHeight<bmp.bmHeight) yScale=(float)wHeight/bmp.bmHeight; - xScale=min(xScale,yScale); - yScale=xScale; - dWidth=(int)(xScale*bmp.bmWidth); - dHeight=(int)(yScale*bmp.bmHeight); + GetObject( hPreviewBitmap, sizeof( BITMAP ), &bmp ); + wWidth = workRect.right-workRect.left; + wHeight = workRect.bottom-workRect.top; + if ( wWidth<bmp.bmWidth ) xScale = ( float )wWidth/bmp.bmWidth; + if ( wHeight<bmp.bmHeight ) yScale = ( float )wHeight/bmp.bmHeight; + xScale = min( xScale, yScale ); + yScale = xScale; + dWidth = ( int )( xScale*bmp.bmWidth ); + dHeight = ( int )( yScale*bmp.bmHeight ); //CalcPosition - imgPos.x=workRect.left+((wWidth-dWidth)>>1); - imgPos.y=workRect.top+((wHeight-dHeight)>>1); + imgPos.x = workRect.left+( ( wWidth-dWidth )>>1 ); + imgPos.y = workRect.top+( ( wHeight-dHeight )>>1 ); //DrawImage - if (!g_CluiData.fGDIPlusFail) //Use gdi+ engine + if ( !g_CluiData.fGDIPlusFail ) //Use gdi+ engine { - DrawAvatarImageWithGDIp(memDC,imgPos.x,imgPos.y,dWidth,dHeight,hPreviewBitmap,0,0,bmp.bmWidth,bmp.bmHeight,8,255); + DrawAvatarImageWithGDIp( memDC, imgPos.x, imgPos.y, dWidth, dHeight, hPreviewBitmap, 0, 0, bmp.bmWidth, bmp.bmHeight, 8, 255 ); } else { - BLENDFUNCTION bf={AC_SRC_OVER, 0, 255, AC_SRC_ALPHA }; - imgDC=CreateCompatibleDC(dis->hDC); - imgOldbmp=(HBITMAP)SelectObject(imgDC,hPreviewBitmap); - ske_AlphaBlend(memDC,imgPos.x,imgPos.y,dWidth,dHeight,imgDC,0,0,bmp.bmWidth,bmp.bmHeight,bf); - SelectObject(imgDC,imgOldbmp); - mod_DeleteDC(imgDC); + BLENDFUNCTION bf = {AC_SRC_OVER, 0, 255, AC_SRC_ALPHA }; + imgDC = CreateCompatibleDC( dis->hDC ); + imgOldbmp = ( HBITMAP )SelectObject( imgDC, hPreviewBitmap ); + ske_AlphaBlend( memDC, imgPos.x, imgPos.y, dWidth, dHeight, imgDC, 0, 0, bmp.bmWidth, bmp.bmHeight, bf ); + SelectObject( imgDC, imgOldbmp ); + mod_DeleteDC( imgDC ); } } - BitBlt(dis->hDC,dis->rcItem.left,dis->rcItem.top,mWidth,mHeight,memDC,0,0,SRCCOPY); - SelectObject(memDC,holdbmp); - DeleteObject(hbmp); - mod_DeleteDC(memDC); + BitBlt( dis->hDC, dis->rcItem.left, dis->rcItem.top, mWidth, mHeight, memDC, 0, 0, SRCCOPY ); + SelectObject( memDC, holdbmp ); + DeleteObject( hbmp ); + mod_DeleteDC( memDC ); } break; case WM_NOTIFY: - switch (((LPNMHDR)lParam)->idFrom) + switch ( ( ( LPNMHDR )lParam )->idFrom ) { case IDC_TREE1: { - NMTREEVIEWA * nmtv = (NMTREEVIEWA *) lParam; - if (!nmtv) return 0; - if (nmtv->hdr.code==TVN_SELCHANGEDA - || nmtv->hdr.code==TVN_SELCHANGEDW) + NMTREEVIEW * nmtv = ( NMTREEVIEW * ) lParam; + if ( !nmtv ) return 0; + if ( nmtv->hdr.code == TVN_SELCHANGEDA + || nmtv->hdr.code == TVN_SELCHANGEDW ) { - SkinListData * sd=NULL; - if (hPreviewBitmap) + SkinListData * sd = NULL; + if ( hPreviewBitmap ) { - ske_UnloadGlyphImage(hPreviewBitmap); - hPreviewBitmap=NULL; + ske_UnloadGlyphImage( hPreviewBitmap ); + hPreviewBitmap = NULL; } - if (nmtv->itemNew.lParam) + if ( nmtv->itemNew.lParam ) { - //char sdFile[MAX_PATH]={0}; - sd=(SkinListData*)nmtv->itemNew.lParam; - //PathCompactPathExA(sdFile,sd->File,60,0); + sd = ( SkinListData* )nmtv->itemNew.lParam; { - char buf[MAX_PATH]; - CallService(MS_UTILS_PATHTORELATIVE, (WPARAM)sd->File, (LPARAM)buf); - SendDlgItemMessageA(hwndDlg,IDC_EDIT_SKIN_FILENAME,WM_SETTEXT,0,(LPARAM)buf); //TODO made filepath unicode + TCHAR buf[MAX_PATH]; + CallService( MS_UTILS_PATHTORELATIVET, ( WPARAM )sd->File, ( LPARAM )buf ); + SendDlgItemMessage( hwndDlg, IDC_EDIT_SKIN_FILENAME, WM_SETTEXT, 0, ( LPARAM )buf ); } { - char prfn[MAX_PATH]={0}; - char imfn[MAX_PATH]={0}; - char skinfolder[MAX_PATH]={0}; - GetPrivateProfileStringA("Skin_Description_Section","Preview","",imfn,sizeof(imfn),sd->File); - IniParser::GetSkinFolder(sd->File, skinfolder); - _snprintf(prfn,sizeof(prfn),"%s\\%s",skinfolder,imfn); - CallService(MS_UTILS_PATHTOABSOLUTE,(WPARAM)prfn,(LPARAM) imfn); - hPreviewBitmap=ske_LoadGlyphImage(imfn); + TCHAR prfn[MAX_PATH] = {0}; + TCHAR imfn[MAX_PATH] = {0}; + TCHAR skinfolder[MAX_PATH] = {0}; + GetPrivateProfileString( _T( "Skin_Description_Section" ), _T( "Preview" ), _T( "" ), imfn, SIZEOF( imfn ), sd->File ); + IniParser::GetSkinFolder( sd->File, skinfolder ); + _sntprintf( prfn, SIZEOF( prfn ), _T("%s\\%s"), skinfolder, imfn ); + CallService( MS_UTILS_PATHTOABSOLUTET, ( WPARAM )prfn, ( LPARAM ) imfn ); + char * imfn_ch = mir_t2a( imfn ); + hPreviewBitmap = ske_LoadGlyphImage( imfn_ch ); + mir_free( imfn_ch ); } - EnableWindow(GetDlgItem(hwndDlg,IDC_BUTTON_APPLY_SKIN),TRUE); - EnableWindow(GetDlgItem(hwndDlg,IDC_BUTTON_INFO),TRUE); - if (hPreviewBitmap) - InvalidateRect(GetDlgItem(hwndDlg,IDC_PREVIEW),NULL,TRUE); - else //prepeare text + EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_APPLY_SKIN ), TRUE ); + EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_INFO ), TRUE ); + if ( hPreviewBitmap ) + InvalidateRect( GetDlgItem( hwndDlg, IDC_PREVIEW ), NULL, TRUE ); + else //prepare text { - char Author[255]; - char URL[MAX_PATH]; - char Contact[255]; - char Description[400]; - char text[2000]; - SkinListData* sd=NULL; - HTREEITEM hti=TreeView_GetSelection(GetDlgItem(hwndDlg,IDC_TREE1)); - if (hti==0) return 0; + TCHAR Author[255]; + TCHAR URL[MAX_PATH]; + TCHAR Contact[255]; + TCHAR Description[400]; + TCHAR text[2000]; + SkinListData* sd = NULL; + HTREEITEM hti = TreeView_GetSelection( GetDlgItem( hwndDlg, IDC_TREE1 ) ); + if ( hti == 0 ) return 0; { - TVITEM tvi={0}; - tvi.hItem=hti; - tvi.mask=TVIF_HANDLE|TVIF_PARAM; - TreeView_GetItem(GetDlgItem(hwndDlg,IDC_TREE1),&tvi); - sd=(SkinListData*)(tvi.lParam); + TVITEM tvi = {0}; + tvi.hItem = hti; + tvi.mask = TVIF_HANDLE|TVIF_PARAM; + TreeView_GetItem( GetDlgItem( hwndDlg, IDC_TREE1 ), &tvi ); + sd = ( SkinListData* )( tvi.lParam ); } - if (!sd) return 0; + if ( !sd ) return 0; - if(sd->File && !strchr(sd->File,'%')) + if( sd->File && !_tcschr( sd->File, _T('%') ) ) { - GetPrivateProfileStringA("Skin_Description_Section","Author","(unknown)",Author,sizeof(Author),sd->File); - GetPrivateProfileStringA("Skin_Description_Section","URL","",URL,sizeof(URL),sd->File); - GetPrivateProfileStringA("Skin_Description_Section","Contact","",Contact,sizeof(Contact),sd->File); - GetPrivateProfileStringA("Skin_Description_Section","Description","",Description,sizeof(Description),sd->File); - _snprintf(text,sizeof(text),Translate("Preview is not available\n\n%s\n----------------------\n\n%s\n\nAUTHOR(S):\n%s\n\nCONTACT:\n%s\n\nHOMEPAGE:\n%s"), - sd->Name,Description,Author,Contact,URL); + GetPrivateProfileString( _T( "Skin_Description_Section" ), _T( "Author" ), TranslateT( "( unknown )" ), Author, SIZEOF( Author ), sd->File ); + GetPrivateProfileString( _T( "Skin_Description_Section" ), _T( "URL" ), _T( "" ), URL, SIZEOF( URL ), sd->File ); + GetPrivateProfileString( _T( "Skin_Description_Section" ), _T( "Contact" ), _T( "" ), Contact, SIZEOF( Contact ), sd->File ); + GetPrivateProfileString( _T( "Skin_Description_Section" ), _T( "Description" ), _T( "" ), Description, SIZEOF( Description ), sd->File ); + _sntprintf( text, SIZEOF( text ), TranslateT( "Preview is not available\n\n%s\n----------------------\n\n%s\n\nAUTHOR(S):\n%s\n\nCONTACT:\n%s\n\nHOMEPAGE:\n%s" ), + sd->Name, Description, Author, Contact, URL ); } else { - _snprintf(text,sizeof(text),Translate("%s\n\n%s\n\nAUTHORS:\n%s\n\nCONTACT:\n%s\n\nWEB:\n%s\n\n\n"), - "reVista for Modern v0.5", - Translate("This is second default Modern Contact list skin in Vista Aero style"), - "graphics by Angeli-Ka\ntemplate by FYR", - "JID: fyr@...", - "fyr.mirandaim.ru" - ); + _sntprintf( text, SIZEOF( text ), TranslateT( "%s\n\n%s\n\nAUTHORS:\n%s\n\nCONTACT:\n%s\n\nWEB:\n%s\n\n\n" ), + TranslateT( "reVista for Modern v0.5" ), + TranslateT( "This is second default Modern Contact list skin in Vista Aero style" ), + TranslateT( "graphics by Angeli-Ka\ntemplate by FYR" ), + _T("JID: fyr@..."), + _T("fyr.mirandaim.ru") ); } - ShowWindow(GetDlgItem(hwndDlg,IDC_PREVIEW),SW_HIDE); - ShowWindow(GetDlgItem(hwndDlg,IDC_STATIC_INFO),SW_SHOW); - SendDlgItemMessageA(hwndDlg,IDC_STATIC_INFO,WM_SETTEXT,0,(LPARAM)text); - } - } - else + ShowWindow( GetDlgItem( hwndDlg, IDC_PREVIEW ), SW_HIDE ); + ShowWindow( GetDlgItem( hwndDlg, IDC_STATIC_INFO ), SW_SHOW ); + SendDlgItemMessage( hwndDlg, IDC_STATIC_INFO, WM_SETTEXT, 0, ( LPARAM )text ); + } + } + else + { + //no selected + SendDlgItemMessage( hwndDlg, IDC_EDIT_SKIN_FILENAME, WM_SETTEXT, 0, ( LPARAM )TranslateT( "Select skin from list" ) ); + EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_APPLY_SKIN ), FALSE ); + EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_INFO ), FALSE ); + SendDlgItemMessage( hwndDlg, IDC_STATIC_INFO, WM_SETTEXT, 0, ( LPARAM )TranslateT( "Please select skin to apply" ) ); + ShowWindow( GetDlgItem( hwndDlg, IDC_PREVIEW ), SW_HIDE ); + } + ShowWindow( GetDlgItem( hwndDlg, IDC_PREVIEW ), hPreviewBitmap?SW_SHOW:SW_HIDE ); + return 0; + } + else if ( nmtv->hdr.code == TVN_DELETEITEMA || nmtv->hdr.code == TVN_DELETEITEMW ) { - //no selected - SendDlgItemMessage(hwndDlg,IDC_EDIT_SKIN_FILENAME,WM_SETTEXT,0,(LPARAM)TranslateT("Select skin from list")); - EnableWindow(GetDlgItem(hwndDlg,IDC_BUTTON_APPLY_SKIN),FALSE); - EnableWindow(GetDlgItem(hwndDlg,IDC_BUTTON_INFO),FALSE); - SendDlgItemMessageA(hwndDlg,IDC_STATIC_INFO,WM_SETTEXT,0,(LPARAM)Translate("Please select skin to apply")); - ShowWindow(GetDlgItem(hwndDlg,IDC_PREVIEW),SW_HIDE); - } - ShowWindow(GetDlgItem(hwndDlg,IDC_PREVIEW),hPreviewBitmap?SW_SHOW:SW_HIDE); - return 0; - } - else if (nmtv->hdr.code==TVN_DELETEITEMA || nmtv->hdr.code==TVN_DELETEITEMW) - { - if (nmtv->itemOld.lParam) - mir_free_and_nill(nmtv->itemOld.lParam); + if ( nmtv->itemOld.lParam ) + mir_free_and_nill( nmtv->itemOld.lParam ); return 0; } - break; + break; } - case 0: - switch (((LPNMHDR)lParam)->code) - { - case PSN_APPLY: + case 0: + switch ( ( ( LPNMHDR )lParam )->code ) { + case PSN_APPLY: { - DWORD tick=GetTickCount(); { - /* Text Colors */ - DWORD c1,c2,c3,c4; - c1=SendDlgItemMessage(hwndDlg,IDC_COLOUR_MENUNORMAL,CPM_GETCOLOUR,0,0); - c2=SendDlgItemMessage(hwndDlg,IDC_COLOUR_MENUSELECTED,CPM_GETCOLOUR,0,0); - c3=SendDlgItemMessage(hwndDlg,IDC_COLOUR_FRAMES,CPM_GETCOLOUR,0,0); - c4=SendDlgItemMessage(hwndDlg,IDC_COLOUR_STATUSBAR,CPM_GETCOLOUR,0,0); - ModernWriteSettingDword(NULL,"Menu", "TextColour", c1); - ModernWriteSettingDword(NULL,"Menu", "SelTextColour", c2); - ModernWriteSettingDword(NULL,"FrameTitleBar", "TextColour", c3); - ModernWriteSettingDword(NULL,"StatusBar", "TextColour", c4); - /* End of Text colors */ + DWORD tick = GetTickCount( ); + { + /* Text Colors */ + DWORD c1, c2, c3, c4; + c1 = SendDlgItemMessage( hwndDlg, IDC_COLOUR_MENUNORMAL, CPM_GETCOLOUR, 0, 0 ); + c2 = SendDlgItemMessage( hwndDlg, IDC_COLOUR_MENUSELECTED, CPM_GETCOLOUR, 0, 0 ); + c3 = SendDlgItemMessage( hwndDlg, IDC_COLOUR_FRAMES, CPM_GETCOLOUR, 0, 0 ); + c4 = SendDlgItemMessage( hwndDlg, IDC_COLOUR_STATUSBAR, CPM_GETCOLOUR, 0, 0 ); + ModernWriteSettingDword( NULL, "Menu", "TextColour", c1 ); + ModernWriteSettingDword( NULL, "Menu", "SelTextColour", c2 ); + ModernWriteSettingDword( NULL, "FrameTitleBar", "TextColour", c3 ); + ModernWriteSettingDword( NULL, "StatusBar", "TextColour", c4 ); + /* End of Text colors */ + } + pcli->pfnClcBroadcast( INTM_RELOADOPTIONS, 0, 0 ); + NotifyEventHooks( g_CluiData.hEventBkgrChanged, 0, 0 ); + pcli->pfnClcBroadcast( INTM_INVALIDATE, 0, 0 ); + RedrawWindow( GetParent( pcli->hwndContactTree ), NULL, NULL, RDW_INVALIDATE|RDW_FRAME|RDW_ALLCHILDREN ); } - pcli->pfnClcBroadcast( INTM_RELOADOPTIONS,0,0); - NotifyEventHooks(g_CluiData.hEventBkgrChanged,0,0); - pcli->pfnClcBroadcast( INTM_INVALIDATE,0,0); - RedrawWindow(GetParent(pcli->hwndContactTree),NULL,NULL,RDW_INVALIDATE|RDW_FRAME|RDW_ALLCHILDREN); + return 0; } - return 0; + break; } break; } - break; } + return 0; } -return 0; -} -int SearchSkinFiles(HWND hwndDlg, char * Folder) +int SearchSkinFiles( HWND hwndDlg, TCHAR * Folder ) { - struct _finddata_t fd={0}; - char mask[MAX_PATH]; + struct _tfinddata_t fd = {0}; + TCHAR mask[MAX_PATH]; long hFile; - _snprintf(mask,sizeof(mask),"%s\\*.msf",Folder); - //fd.attrib=_A_SUBDIR; - hFile=_findfirst(mask,&fd); - if (hFile!=-1) + _sntprintf( mask, SIZEOF( mask ), _T("%s\\*.msf"), Folder ); + //fd.attrib = _A_SUBDIR; + hFile = _tfindfirst( mask, &fd ); + if ( hFile!= -1 ) { do { - AddSkinToList(hwndDlg,Folder,fd.name); - }while (!_findnext(hFile,&fd)); - _findclose(hFile); + AddSkinToList( hwndDlg, Folder, fd.name ); + }while ( !_tfindnext( hFile, &fd ) ); + _findclose( hFile ); } - _snprintf(mask,sizeof(mask),"%s\\*",Folder); - hFile=_findfirst(mask,&fd); + _sntprintf( mask, SIZEOF( mask ), _T("%s\\*"), Folder ); + hFile = _tfindfirst( mask, &fd ); { do { - if (fd.attrib&_A_SUBDIR && !(mir_bool_strcmpi(fd.name,".")||mir_bool_strcmpi(fd.name,".."))) + if ( fd.attrib&_A_SUBDIR && !( _tcsicmp( fd.name, _T(".")) ==0 ||_tcsicmp( fd.name, _T("..") )==0 ) ) {//Next level of subfolders - char path[MAX_PATH]; - _snprintf(path,sizeof(path),"%s\\%s",Folder,fd.name); - SearchSkinFiles(hwndDlg,path); + TCHAR path[MAX_PATH]; + _sntprintf( path, SIZEOF( path ), _T("%s\\%s"), Folder, fd.name ); + SearchSkinFiles( hwndDlg, path ); } - }while (!_findnext(hFile,&fd)); - _findclose(hFile); + }while ( !_tfindnext( hFile, &fd ) ); + _findclose( hFile ); } return 0; } -int FillAvailableSkinList(HWND hwndDlg) +int FillAvailableSkinList( HWND hwndDlg ) { - struct _finddata_t fd={0}; + struct _finddata_t fd = {0}; //long hFile; - int res=-1; - char path[MAX_PATH];//,mask[MAX_PATH]; + int res = -1; + TCHAR path[MAX_PATH];//, mask[MAX_PATH]; int attrib; - char *SkinsFolder= ModernGetStringA(NULL,"ModernData","SkinsFolder"); - if (!SkinsFolder) SkinsFolder=mir_strdup("Skins"); - CallService(MS_UTILS_PATHTOABSOLUTE, (WPARAM)SkinsFolder, (LPARAM)path); - mir_free_and_nill(SkinsFolder); - AddSkinToList(hwndDlg,Translate("Default Skin"),"%Default Skin%"); - attrib = GetFileAttributesA(path); - if (attrib != INVALID_FILE_ATTRIBUTES && (attrib & FILE_ATTRIBUTE_DIRECTORY)) - SearchSkinFiles(hwndDlg,path); + TCHAR *SkinsFolder = ModernGetStringT( NULL, "ModernData", "SkinsFolder" ); + if ( !SkinsFolder ) SkinsFolder = mir_tstrdup( _T("Skins") ); + + CallService( MS_UTILS_PATHTOABSOLUTET, ( WPARAM )SkinsFolder, ( LPARAM )path ); + mir_free_and_nill( SkinsFolder ); + + AddSkinToList( hwndDlg, TranslateT( "Default Skin" ), _T("%Default Skin%") ); + attrib = GetFileAttributes( path ); + if ( attrib != INVALID_FILE_ATTRIBUTES && ( attrib & FILE_ATTRIBUTE_DIRECTORY ) ) + SearchSkinFiles( hwndDlg, path ); { - char * skinfile; - char skinfull[MAX_PATH]; - skinfile= ModernGetStringA(NULL,SKIN,"SkinFile"); - if (skinfile) + TCHAR * skinfile; + TCHAR skinfull[MAX_PATH]; + skinfile = ModernGetStringT( NULL, SKIN, "SkinFile" ); + if ( skinfile ) { - CallService(MS_UTILS_PATHTOABSOLUTE, (WPARAM)skinfile, (LPARAM)skinfull); - res=AddSkinToListFullName(hwndDlg,skinfull); + CallService( MS_UTILS_PATHTOABSOLUTET, ( WPARAM )skinfile, ( LPARAM )skinfull ); + res = AddSkinToListFullName( hwndDlg, skinfull ); - mir_free_and_nill(skinfile); + mir_free_and_nill( skinfile ); } } return res; } -int AddSkinToListFullName(HWND hwndDlg,char * fullName) +int AddSkinToListFullName( HWND hwndDlg, TCHAR * fullName ) { - char path[MAX_PATH]={0}; - char file[MAX_PATH]={0}; - char *buf; - strcpy(path,fullName); - buf=path+mir_strlen(path); - while (buf>path) + TCHAR path[MAX_PATH] = {0}; + TCHAR file[MAX_PATH] = {0}; + TCHAR *buf; + _tcsncpy( path, fullName, SIZEOF( path ) ); + buf = path + _tcslen( path ); + while ( buf > path ) { - if (*buf=='\\') + if ( *buf == _T( '\\' ) ) { - *buf='\0'; + *buf = _T( '\0' ); break; } buf--; } buf++; - strcpy(file,buf); - return AddSkinToList(hwndDlg,path,file); + _tcsncpy( file, buf, SIZEOF( file ) ); + return AddSkinToList( hwndDlg, path, file ); } -int AddSkinToList(HWND hwndDlg,char * path, char* file) +int AddSkinToList( HWND hwndDlg, TCHAR * path, TCHAR* file ) { { - char buf[MAX_PATH]; - _snprintf(buf,sizeof(buf),"%s\\%s",path,file); + TCHAR buf[MAX_PATH]; + _sntprintf( buf, SIZEOF( buf ), _T("%s\\%s"), path, file ); } { - char fullName[MAX_PATH]={0}; - char defskinname[MAX_PATH]={0}; - SkinListData * sd=NULL; - sd=(SkinListData *)mir_alloc(sizeof(SkinListData)); - if (!sd) return 0; - _snprintf(fullName,sizeof(fullName),"%s\\%s",path,file); - memmove(defskinname,file,mir_strlen(file)-4); - defskinname[mir_strlen(file)+1]='\0'; - if (!file || strchr(file,'%')) + TCHAR fullName[MAX_PATH] = {0}; + TCHAR defskinname[MAX_PATH] = {0}; + SkinListData * sd = NULL; + sd = ( SkinListData * )mir_alloc( sizeof( SkinListData ) ); + if ( !sd ) return 0; + _sntprintf( fullName, SIZEOF( fullName ), _T("%s\\%s"), path, file ); + memmove( defskinname, file, (_tcslen( file )-4) * sizeof(TCHAR) ); + defskinname[_tcslen( file )+1] = _T('\0'); + if ( !file || _tcschr( file, _T('%') ) ) { - //sd->File="%Default Skin%"; - _snprintf(sd->File,MAX_PATH,"%%Default Skin%%"); - _snprintf(sd->Name,100,Translate("%Default Skin%")); - return AddItemToTree(GetDlgItem(hwndDlg,IDC_TREE1),Translate("Default Skin"),sd->Name,sd); + //sd->File = "%Default Skin%"; + _sntprintf( sd->File, MAX_PATH, _T("%%Default Skin%%") ); + _sntprintf( sd->Name, 100, TranslateT( "%Default Skin%" ) ); + return AddItemToTree( GetDlgItem( hwndDlg, IDC_TREE1 ), TranslateT( "Default Skin" ), sd->Name, sd ); } else { - GetPrivateProfileStringA("Skin_Description_Section","Name",defskinname,sd->Name,sizeof(sd->Name),fullName); - strcpy(sd->File,fullName); + GetPrivateProfileString( _T("Skin_Description_Section"), _T("Name"), defskinname, sd->Name, SIZEOF( sd->Name ), fullName ); + _tcscpy( sd->File, fullName ); } - return AddItemToTree(GetDlgItem(hwndDlg,IDC_TREE1),fullName,sd->Name,sd); + return AddItemToTree( GetDlgItem( hwndDlg, IDC_TREE1 ), fullName, sd->Name, sd ); } return -1; } - HTREEITEM FindChild(HWND hTree, HTREEITEM Parent, char * Caption, void * data) +HTREEITEM FindChild( HWND hTree, HTREEITEM Parent, TCHAR * Caption, void * data ) { - HTREEITEM res=NULL, tmp=NULL; - if (Parent) - tmp=TreeView_GetChild(hTree,Parent); + HTREEITEM res = NULL, tmp = NULL; + if ( Parent ) + tmp = TreeView_GetChild( hTree, Parent ); else - tmp=TreeView_GetRoot(hTree); - while (tmp) + tmp = TreeView_GetRoot( hTree ); + while ( tmp ) { - TVITEMA tvi; - char buf[255]; - tvi.hItem=tmp; - tvi.mask=TVIF_TEXT|TVIF_HANDLE; - tvi.pszText=(LPSTR)&buf; - tvi.cchTextMax=254; - TreeView_GetItemA(hTree,&tvi); - if (mir_bool_strcmpi(Caption,tvi.pszText)) + TVITEM tvi; + TCHAR buf[255]; + tvi.hItem = tmp; + tvi.mask = TVIF_TEXT|TVIF_HANDLE; + tvi.pszText = (LPTSTR)&buf; + tvi.cchTextMax = 254; + TreeView_GetItem( hTree, &tvi ); + if ( _tcsicmp( Caption, tvi.pszText )==0 ) { - if (data) + if ( data ) { - SkinListData * sd=NULL; - TVITEM tvi={0}; - tvi.hItem=tmp; - tvi.mask=TVIF_HANDLE|TVIF_PARAM; - TreeView_GetItem(hTree,&tvi); - sd=(SkinListData*)(tvi.lParam); - if (sd) - if (!_strcmpi(sd->File,((SkinListData*)data)->File)) + SkinListData * sd = NULL; + TVITEM tvi = {0}; + tvi.hItem = tmp; + tvi.mask = TVIF_HANDLE|TVIF_PARAM; + TreeView_GetItem( hTree, &tvi ); + sd = ( SkinListData* )( tvi.lParam ); + if ( sd ) + if ( !_tcsicmp( sd->File, ( ( SkinListData* )data )->File ) ) return tmp; } else return tmp; } - tmp=TreeView_GetNextSibling(hTree,tmp); + tmp = TreeView_GetNextSibling( hTree, tmp ); } return tmp; } - int AddItemToTree(HWND hTree, char * folder, char * itemName, void * data) +int AddItemToTree( HWND hTree, TCHAR * folder, TCHAR * itemName, void * data ) { - HTREEITEM rootItem=NULL; - HTREEITEM cItem=NULL; - char path[MAX_PATH];//,mask[MAX_PATH]; - char * ptr; - char * ptrE; - BOOL ext=FALSE; - CallService(MS_UTILS_PATHTORELATIVE, (WPARAM)folder, (LPARAM)path); - ptrE=path; - while (*ptrE!='\\' && *ptrE!='\0' && *ptrE!=':') ptrE++; - if (*ptrE=='\\') + HTREEITEM rootItem = NULL; + HTREEITEM cItem = NULL; + TCHAR path[MAX_PATH];//, mask[MAX_PATH]; + TCHAR * ptr; + TCHAR * ptrE; + BOOL ext = FALSE; + CallService( MS_UTILS_PATHTORELATIVET, ( WPARAM )folder, ( LPARAM )path ); + ptrE = path; + while ( *ptrE != _T('\\') && *ptrE != _T('\0') && *ptrE != _T(':') ) ptrE++; + if ( *ptrE == _T('\\') ) { - *ptrE='\0'; + *ptrE = _T('\0'); ptrE++; } - else ptrE=path; - ptr=ptrE; + else ptrE = path; + ptr = ptrE; do { - while (*ptrE!='\\' && *ptrE!='\0') ptrE++; - if (*ptrE=='\\') + while ( *ptrE!= _T('\\') && *ptrE!= _T('\0') ) ptrE++; + if ( *ptrE == _T('\\') ) { - *ptrE='\0'; + *ptrE = _T('\0'); ptrE++; // find item if not - create; { - cItem=FindChild(hTree,rootItem,ptr,NULL); - if (!cItem) // not found - create node + cItem = FindChild( hTree, rootItem, ptr, NULL ); + if ( !cItem ) // not found - create node { - TVINSERTSTRUCTA tvis; - tvis.hParent=rootItem; - tvis.hInsertAfter=TVI_ROOT; - tvis.item.mask=TVIF_PARAM|TVIF_TEXT|TVIF_PARAM; - tvis.item.pszText=ptr; + TVINSERTSTRUCT tvis; + tvis.hParent = rootItem; + tvis.hInsertAfter = TVI_ROOT; + tvis.item.mask = TVIF_PARAM|TVIF_TEXT|TVIF_PARAM; + tvis.item.pszText = ptr; { - tvis.item.lParam=(LPARAM)NULL; + tvis.item.lParam = ( LPARAM )NULL; } - cItem=TreeView_InsertItemA(hTree,&tvis); + cItem = TreeView_InsertItem( hTree, &tvis ); } - rootItem=cItem; + rootItem = cItem; } - ptr=ptrE; + ptr = ptrE; } - else ext=TRUE; - }while (!ext); + else ext = TRUE; + }while ( !ext ); //Insert item node - cItem=FindChild(hTree,rootItem,itemName,data); - if (!cItem) + cItem = FindChild( hTree, rootItem, itemName, data ); + if ( !cItem ) { - TVINSERTSTRUCTA tvis; - tvis.hParent=rootItem; - tvis.hInsertAfter=TVI_SORT; - tvis.item.mask=TVIF_PARAM|TVIF_TEXT|TVIF_PARAM; - tvis.item.pszText=itemName; - tvis.item.lParam=(LPARAM)data; - return (int)TreeView_InsertItemA(hTree,&tvis); + TVINSERTSTRUCT tvis; + tvis.hParent = rootItem; + tvis.hInsertAfter = TVI_SORT; + tvis.item.mask = TVIF_PARAM|TVIF_TEXT|TVIF_PARAM; + tvis.item.pszText = itemName; + tvis.item.lParam = ( LPARAM )data; + return ( int )TreeView_InsertItem( hTree, &tvis ); } else { - mir_free_and_nill(data); //need to free otherwise memory leak - return (int)cItem; + mir_free_and_nill( data ); //need to free otherwise memory leak + return ( int )cItem; } return 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Miranda-Commits mailing list Miranda-Commits@... https://lists.sourceforge.net/lists/listinfo/miranda-commits |
| Free Forum Powered by Nabble | Forum Help |