[Miranda-Commits] SF.net SVN: miranda:[8107] trunk/miranda/plugins/modernb

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
LightInTheBox - Buy quality products at wholesale price