From 1f8600fdd53b2d35abc340135e777005b4a75402 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Sun, 29 Jul 2012 21:39:22 +0000 Subject: git-svn-id: http://svn.miranda-ng.org/main/trunk@1258 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/msg_export/src/options.cpp | 1483 ------------------------------------ 1 file changed, 1483 deletions(-) delete mode 100755 plugins/msg_export/src/options.cpp (limited to 'plugins/msg_export/src/options.cpp') diff --git a/plugins/msg_export/src/options.cpp b/plugins/msg_export/src/options.cpp deleted file mode 100755 index 17bc917bb7..0000000000 --- a/plugins/msg_export/src/options.cpp +++ /dev/null @@ -1,1483 +0,0 @@ - -//This file is part of Msg_Export a Miranda IM plugin -//Copyright (C)2002 Kennet Nielsen ( http://sourceforge.net/projects/msg-export/ ) -// -//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. -// -//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. -// -//You should have received a copy of the GNU General Public License -//along with this program; if not, write to the Free Software -//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - -#include -#include -#include "Shlobj.h" - - -#include "Utils.h" -#include "Glob.h" -#include "FileViewer.h" - -#include "resource.h" - -#include -#include -//#include - -#define STRINGIZE(x) #x -#define EVAL_STRINGIZE(x) STRINGIZE(x) -#define __LOC__ __FILE__ "("EVAL_STRINGIZE(__LINE__)") : " - - -#pragma message ( __LOC__ "My warning: STD list contains a bug when sorting lists of more than 32,768 elements, you need to fix this") -/* Change code for VC 6.0 - if (_I == _MAXN) - _A[_I].merge(_X); - SHOULD BE - if (_I == _MAXN) - _A[_I - 1].merge(_X); - - - And - - - if (_I == _MAXN) - _A[_I].merge(_X, _Pr); - SHOULD BE - if (_I == _MAXN) - _A[_I - 1].merge(_X, _Pr); - -You need to change this in the file function sort() and sort(_Pr3 _Pr) -*/ - -using namespace std; - - -// width in pixels of the UIN column in the List Ctrl -const int nUINColWitdh = 80; -// width in pixels of the UIN column in the List Ctrl -const int nProtoColWitdh = 40; - - -// Used to controle the sending of the PSM_CHANGED to miranda -// and to se if the user has unapplyed changes when he presses the -// Export All button -BOOL bUnaplyedChanges = FALSE; - - -///////////////////////////////////////////////////////////////////// -// Class : CLDBEvent -// Superclass : -// Project : Mes_export -// Designer : Kennet Nielsen -// Version : 1.0.0 -// Date : 020422 , 22 April 2002 -// -// -// Description: This class is used to store one DB event dyring the export -// All history function -// -// Version History: -// Ver: Initials: Date: Text: -// 1.0.0 KN 020422 First edition -// -///////////////////////////////////////////////////////////////////// - -class CLDBEvent -{ - DWORD time; - public: - HANDLE hUser; - HANDLE hDbEvent; - - CLDBEvent( HANDLE hU , HANDLE hDBE ) - { - hUser = hU; - hDbEvent = hDBE; - - DBEVENTINFO dbei={0}; //dbei.cbBlob=0; - dbei.cbSize=sizeof(dbei); - CallService(MS_DB_EVENT_GET,(WPARAM)hDbEvent,(LPARAM)&dbei); - time = dbei.timestamp; - } - bool operator <(const CLDBEvent& rOther) const - { - return time < rOther.time; - } -}; - -///////////////////////////////////////////////////////////////////// -// Member Function : CompareFunc -// Type : Global -// Parameters : lParam1 - ? -// lParam2 - ? -// lParamSort - ? -// Returns : int CALLBACK -// Description : Used to sort list view by Nick -// -// References : - -// Remarks : - -// Created : 020422 , 22 April 2002 -// Developer : KN -///////////////////////////////////////////////////////////////////// - -int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) -{ - if( lParamSort == 1 ) - { - return _tcsicmp( NickFromHandle((HANDLE)lParam1) , NickFromHandle((HANDLE)lParam2) ); - } - - if( lParamSort == 2 ) - { - return _DBGetString( (HANDLE)lParam1 , "Protocol" , "p" , _T("") ).compare( - _DBGetString( (HANDLE)lParam2 , "Protocol" , "p" , _T("") ) - ); - } - if( lParamSort == 3 ) - { - DWORD dwUin1 = DBGetContactSettingDword( - (HANDLE)lParam1, - _DBGetStringA( (HANDLE)lParam1 , "Protocol" , "p" , "" ).c_str(), - "UIN", - 0); - DWORD dwUin2 = DBGetContactSettingDword( - (HANDLE)lParam2, - _DBGetStringA( (HANDLE)lParam2 , "Protocol" , "p" , "" ).c_str(), - "UIN", - 0); - - if( dwUin1 == dwUin2 ) - return 0; - if( dwUin1 > dwUin2 ) - return -1; - return 1; - } - return 0; -} - - -///////////////////////////////////////////////////////////////////// -// Member Function : DialogProc -// Type : Global -// Parameters : hwndDlg - ? -// uMsg - ? -// wParam - ? -// parameter - ? -// Returns : INT_PTR CALLBACK -// Description : Progress bar window function -// -// References : - -// Remarks : - -// Created : 020422 , 22 April 2002 -// Developer : KN -///////////////////////////////////////////////////////////////////// - -INT_PTR CALLBACK __stdcall DialogProc( - HWND hwndDlg, // handle to dialog box - UINT uMsg, // message - WPARAM /*wParam*/, // first message parameter - LPARAM /*lParam*/ // second message parameter -) -{ - switch (uMsg) - { - case WM_INITDIALOG: - { - TranslateDialogDefault(hwndDlg); - return TRUE; - } - } - return FALSE; -} - -///////////////////////////////////////////////////////////////////// -// Member Function : nExportCompleatList -// Type : Global -// Parameters : hParent - handle to the parrent, ( Options Dlg ) -// bOnlySelected - Only Export the userges that hase been selected in the list view -// Returns : int not used currently -// Description : -// -// References : - -// Remarks : - -// Created : 020422 , 22 April 2002 -// Developer : KN -///////////////////////////////////////////////////////////////////// - -int nExportCompleatList(HWND hParent , bool bOnlySelected ) -{ - HWND hMapUser = GetDlgItem( hParent , IDC_MAP_USER_LIST ); - - int nTotalContacts = ListView_GetItemCount( hMapUser ); - - int nContacts; - if( bOnlySelected ) - nContacts = ListView_GetSelectedCount( hMapUser ); - else - nContacts = nTotalContacts; - - if( !hMapUser || nContacts <= 0 ) - { - MessageBox( hParent , TranslateTS(_T("No contacts found to export")),MSG_BOX_TITEL,MB_OK ); - return 0; - } - - HWND hDlg = CreateDialog( hInstance, MAKEINTRESOURCE( IDD_EXPORT_ALL_DLG ) , hParent , DialogProc ); - HWND hProg = GetDlgItem( hDlg , IDC_EXPORT_PROGRESS ); - HWND hStatus = GetDlgItem( hDlg , IDC_EXP_ALL_STATUS ); - - SendMessage( hProg , PBM_SETRANGE , 0 , MAKELPARAM( 0 , nContacts ) ); - - SetWindowText( hStatus , TranslateTS(_T("Reading database information ( Phase 1 of 2 )")) ); - - { // position and show proigrassbar dialog - - RECT rParrent; - RECT rDlg; - if( GetWindowRect( hParent , &rParrent ) && GetWindowRect( hDlg , &rDlg ) ) - { - int x = ( (rParrent.right + rParrent.left) / 2 ) - ( (rDlg.right - rDlg.left) / 2 ); - int y = ( (rParrent.bottom + rParrent.top) / 2 ) - ( (rDlg.bottom - rDlg.top) / 2 ); - SetWindowPos( hDlg , 0 , x , y , 0 ,0 , SWP_NOSIZE | SWP_NOZORDER | SWP_SHOWWINDOW ); - } - else - ShowWindow( hDlg , SW_SHOWNORMAL ); - } - - // map with list to stored all DB history before it is exported - map, less > AllEvents; - - { // reading from the database !!! - LVITEM sItem = { 0 }; - sItem.mask = LVIF_PARAM; - - for( int nCur = 0 ; nCur < nTotalContacts ; nCur++ ) - { - if( bOnlySelected ) - { - if( ! (ListView_GetItemState( hMapUser , nCur , LVIS_SELECTED ) & LVIS_SELECTED) ) - continue; - } - - sItem.iItem = nCur; - if( ! ListView_GetItem( hMapUser, &sItem ) ) - { - MessageBox( hParent , TranslateTS(_T("Failed to export at least one contact")),MSG_BOX_TITEL,MB_OK ); - continue; - } - - HANDLE hContact = (HANDLE)sItem.lParam; - - list< CLDBEvent > & rclCurList = AllEvents[ GetFilePathFromUser( hContact ) ]; - - HANDLE hDbEvent = (HANDLE) CallService(MS_DB_EVENT_FINDFIRST,(WPARAM)hContact,0); - while( hDbEvent ) - { - rclCurList.push_back( CLDBEvent( hContact , hDbEvent ) ); - - // Get next event in chain - hDbEvent = (HANDLE) CallService(MS_DB_EVENT_FINDNEXT,(WPARAM)hDbEvent,0); - } - - SendMessage( hProg , PBM_SETPOS , nCur , 0); - RedrawWindow( hDlg , NULL , NULL , RDW_ALLCHILDREN | RDW_UPDATENOW ); - } - -/* - if( hContact ) - MessageBox( hParent , TranslateTS(_T("Failed to export at least one contact")),MSG_BOX_TITEL,MB_OK ); - */ - } - - - { // window text update - - SetWindowText( hStatus , TranslateTS(_T("Sorting and writing database information ( Phase 2 of 2 )")) ); - SendMessage( hProg , PBM_SETRANGE , 0 , MAKELPARAM( 0 , AllEvents.size() ) ); - SendMessage( hProg , PBM_SETPOS , 0 , 0); - } - - { // time to write to files !!! - map, less >::iterator FileIterator; - - int nCur=0; - for( FileIterator = AllEvents.begin() ; FileIterator != AllEvents.end() ; ++FileIterator ) - { - (FileIterator->second).sort(); // Sort is preformed here !! - // events with same time will not be swaped, they will - // remain in there original order - - list< CLDBEvent >::const_iterator iterator; - for( iterator = FileIterator->second.begin() ; iterator != FileIterator->second.end() ; ++iterator ) - { - HANDLE hDbEvent = (*iterator).hDbEvent; - nExportEvent( (WPARAM) (*iterator).hUser , (LPARAM) hDbEvent ); - } - SendMessage( hProg , PBM_SETPOS , ++nCur , 0); - RedrawWindow( hDlg , NULL , NULL , RDW_ALLCHILDREN | RDW_UPDATENOW ); - } - } - - DestroyWindow( hDlg ); - return 0; -} - -///////////////////////////////////////////////////////////////////// -// Member Function : SetToDefault -// Type : Global -// Parameters : hwndDlg - ? -// Returns : void -// Description : -// -// References : - -// Remarks : - -// Created : 021228 , 28 December 2002 -// Developer : KN -///////////////////////////////////////////////////////////////////// - -void SetToDefault( HWND hParent ) -{ - HWND hMapUser = GetDlgItem( hParent , IDC_MAP_USER_LIST ); - - int nContacts = ListView_GetItemCount( hMapUser ); - - if( !hMapUser || nContacts <= 0 ) - { - return; - } - - _TCHAR szTemp[ 500 ]; - if( ! GetDlgItemText( hParent , IDC_DEFAULT_FILE , szTemp , sizeof( szTemp ) ) ) - return; - - LVITEM sItem = { 0 }; - - for( int nCur = 0 ; nCur < nContacts ; nCur++ ) - { - if( ! (ListView_GetItemState( hMapUser , nCur , LVIS_SELECTED ) & LVIS_SELECTED) ) - continue; - - sItem.iItem = nCur; - sItem.mask = LVIF_PARAM; - if( ! ListView_GetItem( hMapUser, &sItem ) ) - continue; - - tstring sFileName = szTemp; - ReplaceDefines( (HANDLE)sItem.lParam , sFileName ); - ReplaceTimeVariables( sFileName ); - - sItem.mask = LVIF_TEXT; - sItem.pszText = (_TCHAR*)sFileName.c_str(); - ListView_SetItem( hMapUser, &sItem ); - - if( ! bUnaplyedChanges ) - { - bUnaplyedChanges = TRUE; - SendMessage(GetParent(hParent), PSM_CHANGED, 0, 0); - } - } -} - -///////////////////////////////////////////////////////////////////// -// Member Function : bApplyChanges -// Type : Global -// Parameters : hwndDlg - handle to the parrent, ( Options Dlg ) -// Returns : Returns true if the changes was applyed -// Description : but since we cant abort an apply opperation , -// this can not currently be used -// References : - -// Remarks : - -// Created : 020422 , 22 April 2002 -// Developer : KN -///////////////////////////////////////////////////////////////////// - -BOOL bApplyChanges( HWND hwndDlg ) -{ - BOOL bTrans; - BOOL bRet = true; - _TCHAR szTemp[500]; - - int nTmp = GetDlgItemInt( hwndDlg , IDC_MAX_CLOUMN_WIDTH , &bTrans , TRUE ); - if( !bTrans || nTmp < 5 ) - { - _sntprintf( szTemp , sizeof( szTemp ) ,CheckedTranslate(_T("Max line width must be at least %d"),1) , 5 ); - MessageBox( hwndDlg , szTemp ,MSG_BOX_TITEL,MB_OK ); - bRet = false; - } - else - { - nMaxLineWidth = nTmp; - } - - GetDlgItemText( hwndDlg , IDC_EXPORT_TIMEFORMAT , szTemp , sizeof( szTemp ) ); - sTimeFormat = szTemp; - - GetDlgItemText( hwndDlg , IDC_EXPORT_DIR , szTemp , sizeof( szTemp ) ); - sExportDir = szTemp; - - GetDlgItemText( hwndDlg , IDC_DEFAULT_FILE , szTemp , sizeof( szTemp ) ); - sDefaultFile = szTemp; - - GetDlgItemText( hwndDlg , IDC_FILE_VIEWER , szTemp , sizeof( szTemp ) ); - sFileViewerPrg = szTemp; - - bUseInternalViewer( IsDlgButtonChecked( hwndDlg , IDC_USE_INTERNAL_VIEWER ) == BST_CHECKED ); - - bool bNewRp = IsDlgButtonChecked( hwndDlg , IDC_REPLACE_MIRANDA_HISTORY ) == BST_CHECKED; - if( bReplaceHistory != bNewRp ) - { - bReplaceHistory = bNewRp; - MessageBox( hwndDlg , TranslateTS(_T("You need to restart miranda to change the history function")) ,MSG_BOX_TITEL,MB_OK ); - } - - bAppendNewLine = IsDlgButtonChecked( hwndDlg , IDC_APPEND_NEWLINE ) == BST_CHECKED; - bUseUtf8InNewFiles = IsDlgButtonChecked( hwndDlg , IDC_USE_UTF8_IN_NEW_FILES ) == BST_CHECKED; - - bUseLessAndGreaterInExport = IsDlgButtonChecked( hwndDlg , IDC_USE_LESS_AND_GREATER_IN_EXPORT ) == BST_CHECKED; - - - HWND hMapUser = GetDlgItem( hwndDlg , IDC_MAP_USER_LIST ); - int nCount = ListView_GetItemCount( hMapUser ); - for( int nCur = 0 ; nCur < nCount ; nCur++ ) - { - LVITEM sItem = { 0 }; - sItem.iItem = nCur; - sItem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_IMAGE; - sItem.pszText = szTemp; - sItem.cchTextMax = sizeof( szTemp ); - - if( ListView_GetItem( hMapUser, &sItem ) ) - { - HANDLE hUser = (HANDLE)sItem.lParam; - if( _tcslen( szTemp ) > 0 ) - DBWriteContactSettingTString( hUser , MODULE , "FileName" , szTemp ); - else - DBDeleteContactSetting( hUser , MODULE , "FileName" ); - - if( sItem.iImage ) - DBDeleteContactSetting( hUser , MODULE , "EnableLog" ); // default is Enabled !! - else - DBWriteContactSettingByte( hUser , MODULE , "EnableLog",0); - } - } - UpdateFileToColWidth(); - - SaveSettings(); - - - bUnaplyedChanges = FALSE; - return bRet; -} - -///////////////////////////////////////////////////////////////////// -// Member Function : ClearAllFileNames -// Type : Global -// Parameters : hwndDlg - handle to the parrent, ( Options Dlg ) -// Returns : void -// Description : Just clear all file name's entered -// -// References : - -// Remarks : - -// Created : 020422 , 23 April 2002 -// Developer : KN -///////////////////////////////////////////////////////////////////// - -void ClearAllFileNames(HWND hwndDlg) -{ - LVITEM sItem = { 0 }; - sItem.mask = LVIF_TEXT; - sItem.pszText = _T(""); - - HWND hMapUser = GetDlgItem( hwndDlg , IDC_MAP_USER_LIST ); - int nCount = ListView_GetItemCount( hMapUser ); - for( int nCur = 0 ; nCur < nCount ; nCur++ ) - { - sItem.iItem = nCur; - ListView_SetItem( hMapUser, &sItem ); - } - if( ! bUnaplyedChanges ) - { - bUnaplyedChanges = TRUE; - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - } -} - -///////////////////////////////////////////////////////////////////// -// Member Function : AutoFindeFileNames -// Type : Global -// Parameters : hwndDlg - handle to the parrent, ( Options Dlg ) -// Returns : void -// Description : Try to finde new file names for user's with 2or more UIN's -// -// References : - -// Remarks : - -// Created : 020422 , 23 April 2002 -// Developer : KN -///////////////////////////////////////////////////////////////////// - -void AutoFindeFileNames(HWND hwndDlg) -{ - - _TCHAR szDefaultFile[500]; - GetDlgItemText( hwndDlg , IDC_DEFAULT_FILE , szDefaultFile , sizeof( szDefaultFile ) ); - - LVITEM sItem = { 0 }; - - HWND hMapUser = GetDlgItem( hwndDlg , IDC_MAP_USER_LIST ); - int nCount = ListView_GetItemCount( hMapUser ); - for( int nCur = 0 ; nCur < nCount ; nCur++ ) - { - _TCHAR szSearch[ 100 ]; - - sItem.mask = LVIF_TEXT; - sItem.iItem = nCur; - sItem.iSubItem = 1; - sItem.pszText = szSearch; - sItem.cchTextMax = sizeof( szSearch ); - - if( ! ListView_GetItem( hMapUser, &sItem ) ) - { - continue; - } - - int nShortestMatch = 0xFFFF; - HANDLE hStortest = 0; - int nStortestIndex = -1; - for( int nSubCur = 0 ; nSubCur < nCount ; nSubCur++ ) - { - if( nSubCur == nCur ) - continue; - _TCHAR szSubCur[ 100 ]; - sItem.mask = LVIF_TEXT | LVIF_PARAM; - sItem.iItem = nSubCur; - sItem.iSubItem = 1; - sItem.pszText = szSubCur; - sItem.cchTextMax = sizeof( szSubCur ); - if( ListView_GetItem( hMapUser, &sItem ) ) - { - int nLen = _tcslen( szSubCur ); - if( _tcsncicmp( szSubCur , szSearch , nLen ) == 0 ) - { - if( nLen < nShortestMatch ) - { - nShortestMatch = nLen; - nStortestIndex = nSubCur; - hStortest = (HANDLE)sItem.lParam; - } - } - } - } - if( nShortestMatch != 0xFFFF ) - { - tstring sFileName; - szSearch[0] = 0; - ListView_GetItemText( hMapUser, nCur , 0 , szSearch , sizeof( szSearch )); - bool bPriHasFileName = szSearch[0] != 0; - if( bPriHasFileName ) - sFileName = szSearch; - - szSearch[0] = 0; - ListView_GetItemText( hMapUser, nStortestIndex , 0 , szSearch , sizeof( szSearch )); - bool bSubHasFileName = szSearch[0] != 0; - if( bSubHasFileName ) - sFileName = szSearch; - - if( sFileName.empty() ) - { - sFileName = szDefaultFile; - ReplaceDefines( hStortest , sFileName ); - ReplaceTimeVariables( sFileName ); - } - - if( !bPriHasFileName ) - ListView_SetItemText( hMapUser, nCur , 0 , (_TCHAR*)sFileName.c_str() ); - - if( !bSubHasFileName ) - ListView_SetItemText( hMapUser, nStortestIndex , 0 , (_TCHAR*)sFileName.c_str() ); - - if( ! bUnaplyedChanges ) - { - bUnaplyedChanges = TRUE; - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - } - } - } -} - - -///////////////////////////////////////////////////////////////////// -// Member Function : OpenHelp -// Type : Global -// Parameters : hwndDlg - handle to the parrent, ( Options Dlg ) -// Returns : void -// Description : -// -// References : - -// Remarks : - -// Created : 020427 , 27 April 2002 -// Developer : KN -///////////////////////////////////////////////////////////////////// - -void OpenHelp(HWND hwndDlg) -{ - _TCHAR szPath[MAX_PATH]; - if( GetModuleFileName( hInstance , szPath , sizeof( szPath ) ) ) - { - int nLen = _tcslen( szPath ); - if( nLen > 3 ) - { - szPath[nLen-1] = 't'; - szPath[nLen-2] = 'x'; - szPath[nLen-3] = 't'; - - SHELLEXECUTEINFO st = {0}; - st.cbSize = sizeof(st); - st.fMask = SEE_MASK_INVOKEIDLIST; - st.hwnd = NULL; - st.lpFile = szPath; - st.nShow = SW_SHOWDEFAULT; - ShellExecuteEx(&st); - - return; - } - } - - MessageBox( hwndDlg , TranslateTS(_T("Failed to get the path to Msg_Export.dll\nPlease locate Msg_Export.txt your self")),MSG_BOX_TITEL,MB_OK ); -} - -///////////////////////////////////////////////////////////////////// -// Member Function : DlgProcMsgExportOpts -// Type : Global -// Parameters : hwndDlg - handle to this dialog -// msg - ? -// wParam - ? -// lParam - ? -// Returns : static BOOL CALLBACK -// Description : Main message prossing fore my options dialog -// -// References : - -// Remarks : - -// Created : 020422 , 22 April 2002 -// Developer : KN -///////////////////////////////////////////////////////////////////// - -static BOOL CALLBACK DlgProcMsgExportOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) -{ -// Used to prevent sending the PSM_CHANGED to miranda -// when initilizing - static BOOL bWindowTextSet = FALSE; - - switch (msg) - { - case WM_INITDIALOG: - { - bWindowTextSet = FALSE; - - HWND hMapUser = GetDlgItem( hwndDlg , IDC_MAP_USER_LIST ); - - { // init adv. win styles - DWORD dw = ListView_GetExtendedListViewStyle( hMapUser ); - dw |= LVS_EX_HEADERDRAGDROP | LVS_EX_FULLROWSELECT; - ListView_SetExtendedListViewStyle( hMapUser , dw /*| LVS_EX_LABELTIP*/); - } - - - int nColumnWidth = 100; - RECT rListSize; - if( GetWindowRect( hMapUser , &rListSize ) ) - { - nColumnWidth = (rListSize.right - rListSize.left- GetSystemMetrics(SM_CXVSCROLL) - 5 - nUINColWitdh - nProtoColWitdh) / 2; - if( nColumnWidth < 10 ) - nColumnWidth = 10; - } - - { // header setup !! - - LVCOLUMN cCol = { 0 }; - cCol.mask = LVCF_TEXT | LVCF_WIDTH; - cCol.cx = nColumnWidth; - cCol.pszText = TranslateTS(_T("File")); - ListView_InsertColumn( hMapUser , 0 , &cCol ); - cCol.pszText = TranslateTS(_T("Nick")); - ListView_InsertColumn( hMapUser , 1 , &cCol ); - cCol.cx = nProtoColWitdh; - cCol.pszText = TranslateTS(_T("Proto")); - ListView_InsertColumn( hMapUser , 2 , &cCol ); - cCol.cx = nUINColWitdh; - cCol.mask |= LVCF_FMT; - cCol.fmt = LVCFMT_RIGHT; - cCol.pszText = TranslateTS(_T("UIN")); - - ListView_InsertColumn( hMapUser , 3 , &cCol ); - - /* - int nOrder[3] = { 1 , 2 , 0 }; - ListView_SetColumnOrderArray( hMapUser , 3 , nOrder );*/ - } - - { - HIMAGELIST hIml; - hIml = ImageList_Create( GetSystemMetrics(SM_CXSMICON) , GetSystemMetrics(SM_CYSMICON),ILC_COLOR4|ILC_MASK,2,2); - ImageList_AddIcon(hIml,LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI_NOTICK))); - ImageList_AddIcon(hIml,LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI_TICK))); - ListView_SetImageList( hMapUser, hIml, LVSIL_SMALL); - } - - { - tstring sTmp; - LVITEM sItem = { 0 }; - HANDLE hContact = (HANDLE) CallService(MS_DB_CONTACT_FINDFIRST, 0, 0); - for( int nUser = 0; /*hContact*/ ; nUser++ ) - { - sItem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_IMAGE; - sItem.iItem = nUser; - sItem.iSubItem = 0; - sItem.iImage = DBGetContactSettingByte(hContact,MODULE,"EnableLog",1); - sItem.lParam = (LPARAM) hContact; - - - sTmp = _DBGetString( hContact , MODULE , "FileName" , _T("") ); - sItem.pszText = (_TCHAR*)sTmp.c_str(); - - ListView_InsertItem( hMapUser , &sItem ); - - sItem.mask = LVIF_TEXT; - sItem.iSubItem = 1; - sItem.pszText = (_TCHAR*)NickFromHandle(hContact); - ListView_SetItem( hMapUser , &sItem ); - - sItem.iSubItem = 2; - - sTmp = _DBGetString( hContact , "Protocol" , "p" , _T("") ); - string sTmpA = _DBGetStringA( hContact , "Protocol" , "p" , "" ); - sItem.pszText = (_TCHAR*)sTmp.c_str(); - ListView_SetItem( hMapUser , &sItem ); - - - DWORD dwUIN = DBGetContactSettingDword(hContact, sTmpA.c_str(), "UIN", 0); - _TCHAR szTmp[50]; - _sntprintf( szTmp , sizeof(szTmp) ,_T("%d") , dwUIN ); - sItem.iSubItem = 3; - sItem.pszText = szTmp; - ListView_SetItem( hMapUser , &sItem ); - - if( ! hContact ) // written like this to add the current user ( handle = 0 ) - break; - - hContact = (HANDLE) CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM) hContact, 0); - } - ListView_SortItems( hMapUser , CompareFunc , 1 ); - - sItem.mask = LVIF_STATE; - sItem.iItem = 0; - sItem.iSubItem = 0; - sItem.state = LVIS_FOCUSED; - sItem.stateMask = LVIS_FOCUSED; - ListView_SetItem( hMapUser , &sItem ); - - } - HWND hComboBox; - - SetDlgItemInt( hwndDlg , IDC_MAX_CLOUMN_WIDTH , nMaxLineWidth , TRUE ); - - {// Export dir - SetDlgItemText( hwndDlg , IDC_EXPORT_DIR , sExportDir.c_str() ); - hComboBox = GetDlgItem( hwndDlg , IDC_EXPORT_DIR ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("%dbpath%\\MsgExport\\") ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("C:\\Backup\\MsgExport\\") ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("%dbpath%\\MsgExport\\%group% - ") ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("%dbpath%\\MsgExport\\%group%\\") ); - } - {// default file - SetDlgItemText( hwndDlg , IDC_DEFAULT_FILE , sDefaultFile.c_str() ); - hComboBox = GetDlgItem( hwndDlg , IDC_DEFAULT_FILE ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("%nick%.txt") ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("%UIN%.txt") ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("%group%.txt") ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("%e-mail%.txt") ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("%identifier%.txt") ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("%year%-%month%-%day%.txt") ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("%group%\\%nick%.txt") ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("%group%\\%UIN%.txt") ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("%group%\\%identifier%.txt") ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("%protocol%\\%nick%.txt") ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("History.txt")); - } - {// time format - SetDlgItemText( hwndDlg , IDC_EXPORT_TIMEFORMAT , sTimeFormat.c_str() ); - hComboBox = GetDlgItem( hwndDlg , IDC_EXPORT_TIMEFORMAT ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("d t") ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("d s") ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("d m") ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("D s") ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("D m :")); - } - {// File viewer - SetDlgItemText( hwndDlg , IDC_FILE_VIEWER , sFileViewerPrg.c_str() ); - hComboBox = GetDlgItem( hwndDlg , IDC_FILE_VIEWER ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("") ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("C:\\Windows\\Notepad.exe") ); - SendMessage( hComboBox , CB_ADDSTRING, 0 , (LPARAM)_T("C:\\WinNT\\Notepad.exe") ); - //EnableWindow( GetDlgItem( hwndDlg , IDC_FILE_VIEWER ) , ! bUseInternalViewer() ); - } - - - CheckDlgButton( hwndDlg , IDC_USE_INTERNAL_VIEWER , bUseInternalViewer() ? BST_CHECKED : BST_UNCHECKED ); - CheckDlgButton( hwndDlg , IDC_REPLACE_MIRANDA_HISTORY , bReplaceHistory ? BST_CHECKED : BST_UNCHECKED ); - CheckDlgButton( hwndDlg , IDC_APPEND_NEWLINE , bAppendNewLine ? BST_CHECKED : BST_UNCHECKED ); - CheckDlgButton( hwndDlg , IDC_USE_UTF8_IN_NEW_FILES , bUseUtf8InNewFiles ? BST_CHECKED : BST_UNCHECKED ); - CheckDlgButton( hwndDlg , IDC_USE_LESS_AND_GREATER_IN_EXPORT , bUseLessAndGreaterInExport ? BST_CHECKED : BST_UNCHECKED ); - - - TranslateDialogDefault(hwndDlg); - - bWindowTextSet = TRUE; - return TRUE; - } - case WM_COMMAND: - { - switch(LOWORD(wParam)) - { - case ID_EXPORTSELECTED: - case IDC_EXPORTALL: - { - if( bUnaplyedChanges ) - { - DWORD res = MessageBox( hwndDlg , TranslateTS(_T("You have unapplyed changes do you wish to apply these first ?")),MSG_BOX_TITEL,MB_YESNOCANCEL ); - if( res == IDCANCEL ) - return TRUE; - if( res == IDYES ) - { - if( ! bApplyChanges( hwndDlg ) ) - { - return TRUE; - } - } - } - nExportCompleatList( hwndDlg , LOWORD(wParam) == ID_EXPORTSELECTED ); - return TRUE; - } - case IDC_EXPORT_DIR: - case IDC_EXPORT_TIMEFORMAT: - case IDC_DEFAULT_FILE: - case IDC_FILE_VIEWER: - { - if( !bWindowTextSet ) - return TRUE; - - if( HIWORD(wParam) == CBN_EDITUPDATE || HIWORD(wParam) == CBN_SELCHANGE ) - { - bUnaplyedChanges = TRUE; - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - } - return TRUE; - } - case IDC_MAX_CLOUMN_WIDTH: - { - if( !bWindowTextSet ) - return TRUE; - - if( HIWORD(wParam) == EN_CHANGE ) - { - bUnaplyedChanges = TRUE; - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - } - return TRUE; - } - case IDC_USE_INTERNAL_VIEWER: -/* { - EnableWindow( - GetDlgItem( hwndDlg , IDC_FILE_VIEWER ) , - !IsDlgButtonChecked( hwndDlg , IDC_USE_INTERNAL_VIEWER ) - ); - }// fall thru here !!*/ - case IDC_REPLACE_MIRANDA_HISTORY: - case IDC_APPEND_NEWLINE: - case IDC_USE_UTF8_IN_NEW_FILES: - case IDC_USE_LESS_AND_GREATER_IN_EXPORT: - { - if( HIWORD(wParam) == BN_CLICKED ) - { - bUnaplyedChanges = TRUE; - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - } - return TRUE; - } - case ID_USERLIST_USERDETAILS: - { - LVITEM sItem = { 0 }; - sItem.mask = LVIF_PARAM; - HWND hMapUser = GetDlgItem( hwndDlg , IDC_MAP_USER_LIST ); - sItem.iItem = ListView_GetNextItem( hMapUser , -1 , LVIS_SELECTED ); - if( sItem.iItem >= 0 && ListView_GetItem( hMapUser, &sItem )) - { - CallService(MS_USERINFO_SHOWDIALOG,(WPARAM)sItem.lParam ,0); - } - return TRUE; - } - case IDC_AUTO_FILENAME: - { - AutoFindeFileNames(hwndDlg); - return TRUE; - } - case IDC_CLEAR_ALL: - { - ClearAllFileNames(hwndDlg); - return TRUE; - - } - case IDC_OPEN_HELP: - { - OpenHelp(hwndDlg); - return TRUE; - } - case ID_SET_TO_DEFAULT: - { - SetToDefault( hwndDlg ); - return TRUE; - } - case IDC_FILE_VIEWER_BROWSE: - { - OPENFILENAME ofn = { 0 }; // common dialog box structure - _TCHAR szFile[260]; // buffer for file name - - GetDlgItemText( hwndDlg , IDC_FILE_VIEWER , szFile , sizeof(szFile)); - // Initialize OPENFILENAME - //ZeroMemory(&ofn, sizeof(OPENFILENAME)); - ofn.lStructSize = sizeof(OPENFILENAME); - ofn.hwndOwner = hwndDlg; - ofn.lpstrFile = szFile; - ofn.nMaxFile = sizeof(szFile); - ofn.lpstrFilter = _T("Executable files (*.exe;*.com;*.bat;*.cmd)\0*.exe;*.com;*.bat;*.cmd\0All files(*.*)\0*.*\0"); - ofn.nFilterIndex = 1; - //ofn.lpstrFileTitle = NULL; - //ofn.nMaxFileTitle = 0; - //ofn.lpstrInitialDir = NULL; - ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; - - // Display the Open dialog box. - - if (GetOpenFileName(&ofn)) - { - SetDlgItemText( hwndDlg , IDC_FILE_VIEWER , szFile ); - bUnaplyedChanges = TRUE; - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - } - // OPENFILENAME - //GetOpenFileName( - return TRUE; - } - case IDC_EXPORT_DIR_BROWSE: - { - LPMALLOC pMalloc; - - //CoInitializeEx(NULL,COINIT_APARTMENTTHREADED ); - // Get the shells allocator - if (FAILED(SHGetMalloc(&pMalloc))) // we need to use this to support old Windows versions - { - MessageBox( hwndDlg , _T("Failed to get the shells allocator !"),MSG_BOX_TITEL,MB_OK ); - return TRUE; // TRUE because we have handled the message , sort of *S* - } - - // Allocate the Dest Dir buffer to receive browse info - _TCHAR * lpDestDir = (_TCHAR * ) pMalloc->Alloc(MAX_PATH+100); - if ( ! lpDestDir ) - { - pMalloc->Release(); - MessageBox( hwndDlg , _T("Failed to Allocate buffer space"),MSG_BOX_TITEL,MB_OK ); - return TRUE; - } - - BROWSEINFO sBrowseInfo; - sBrowseInfo.hwndOwner = hwndDlg; - sBrowseInfo.pidlRoot = NULL; - sBrowseInfo.pszDisplayName = lpDestDir; - sBrowseInfo.lpszTitle = TranslateTS(_T("Select Destination Directory")); - sBrowseInfo.ulFlags = BIF_NEWDIALOGSTYLE | BIF_EDITBOX;; - sBrowseInfo.lpfn = NULL; - sBrowseInfo.lParam = 0; - sBrowseInfo.iImage = 0; - - LPITEMIDLIST psItemIDList = SHBrowseForFolder(&sBrowseInfo); - if( psItemIDList ) - { - SHGetPathFromIDList(psItemIDList, lpDestDir); - int n = _tcslen( lpDestDir ); - if( n > 0 && lpDestDir[n] != '\\' ) - { - lpDestDir[n] = '\\' ; - lpDestDir[n+1] = 0; - } - SetDlgItemText( hwndDlg , IDC_EXPORT_DIR , lpDestDir ); - bUnaplyedChanges = TRUE; - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - // Clean up - pMalloc->Free( psItemIDList ); - } - pMalloc->Free( lpDestDir ); - pMalloc->Release(); - return TRUE; - } - } - break; - } - case WM_CONTEXTMENU: - { - if( wParam != (WPARAM)GetDlgItem( hwndDlg , IDC_MAP_USER_LIST ) ) - return FALSE; - - HMENU hMainMenu = LoadMenu(hInstance ,MAKEINTRESOURCE(IDR_MSG_EXPORT)); - if( hMainMenu ) - { - HMENU hMenu = GetSubMenu(hMainMenu,0); - - POINT pt; - pt.x=(short)LOWORD(lParam); - pt.y=(short)HIWORD(lParam); - if( pt.x == -1 && pt.y == -1 ) - { - HWND hMapUser = GetDlgItem( hwndDlg , IDC_MAP_USER_LIST ); - int nFirst = ListView_GetNextItem( hMapUser , -1 , LVNI_FOCUSED ); - if( nFirst >= 0 ) - { - ListView_GetItemPosition( hMapUser , nFirst , &pt ); - } - - if( pt.y < 16 ) - pt.y = 16; - else - { - RECT rUserList; - GetClientRect( hMapUser , &rUserList ); - if( pt.y > rUserList.bottom - 16 ) - pt.y = rUserList.bottom - 16; - else - pt.y += 8; - } - pt.x = 8; - ClientToScreen(hMapUser,&pt); - } - - CallService(MS_LANGPACK_TRANSLATEMENU,(WPARAM)hMenu,0); - TrackPopupMenu(hMenu,TPM_TOPALIGN|TPM_LEFTALIGN|TPM_RIGHTBUTTON,pt.x,pt.y,0,hwndDlg,NULL); - - DestroyMenu(hMainMenu); - } - return TRUE; - } - case WM_NOTIFY: - { - NMHDR * p = ((LPNMHDR)lParam); - if( p->idFrom == IDC_MAP_USER_LIST ) - { - switch (p->code) - { - case NM_CLICK: - { LVHITTESTINFO hti; - LVITEM lvi; - hti.pt=((NMLISTVIEW*)lParam)->ptAction; - ListView_SubItemHitTest( p->hwndFrom ,&hti); - - if( hti.flags != LVHT_ONITEMICON ) - break; - - lvi.mask=LVIF_IMAGE; - lvi.iItem=hti.iItem; - lvi.iSubItem=0; - ListView_GetItem( p->hwndFrom , &lvi); - lvi.iImage^=1; - ListView_SetItem( p->hwndFrom , &lvi); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - } - case LVN_ENDLABELEDIT: - { - NMLVDISPINFO * pdi = (NMLVDISPINFO *) lParam; - if( pdi->item.mask & LVIF_TEXT ) - { - pdi->item.mask &= LVIF_TEXT; - ListView_SetItem( p->hwndFrom , &pdi->item ); - - bUnaplyedChanges = TRUE; - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - } - return TRUE; - } - case LVN_KEYDOWN: - { - NMLVKEYDOWN * lpnmk = (NMLVKEYDOWN *) lParam; - if( lpnmk->wVKey == 'A' && (GetKeyState( VK_CONTROL ) & 0x8000) ) - { - // select all - int nCount = ListView_GetItemCount( p->hwndFrom ); - for( int nCur = 0 ; nCur < nCount ; nCur++ ) - { - ListView_SetItemState( p->hwndFrom , nCur , LVIS_SELECTED , LVIS_SELECTED ); - } - return TRUE; - } - - - if( lpnmk->wVKey == VK_F2 || - ( lpnmk->wVKey >= 'A' && lpnmk->wVKey <= 'Z') || - ( lpnmk->wVKey >= '1' && lpnmk->wVKey <= '9') || - lpnmk->wVKey == VK_BACK - ) - { - HWND hEdit = ListView_EditLabel( p->hwndFrom , ListView_GetSelectionMark(p->hwndFrom) ); - if( hEdit && lpnmk->wVKey != VK_F2 ) - { - if( isupper( lpnmk->wVKey ) ) - SendMessage( hEdit , WM_CHAR , tolower( lpnmk->wVKey ) , 0 ); - else - SendMessage( hEdit , WM_CHAR , lpnmk->wVKey , 0 ); - } - } - return TRUE; - } - case NM_DBLCLK: - { - NMITEMACTIVATE * pdi = (NMITEMACTIVATE *) lParam; - if( pdi->iItem >= 0 ) - { - ListView_EditLabel( p->hwndFrom , pdi->iItem ); - } - return TRUE; - } - case NM_CUSTOMDRAW: - { - LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)lParam; - switch(lplvcd->nmcd.dwDrawStage) - { - case CDDS_PREPAINT: - { - SetWindowLong(hwndDlg, DWL_MSGRESULT, CDRF_NOTIFYITEMDRAW); - return true; - } - case CDDS_ITEMPREPAINT: - { - if( lplvcd->nmcd.lItemlParam == 0 ) - { - lplvcd->clrText = RGB( 0 , 0 , 255 ); - } - SetWindowLong(hwndDlg, DWL_MSGRESULT, CDRF_NEWFONT); - return true; - } - } - return FALSE; - } - } - } - else - { - switch (p->code) - { - case PSN_APPLY: - { - bApplyChanges( hwndDlg ); - return TRUE; - } - case HDN_ITEMCLICK: - { - NMHEADER * phdr = (LPNMHEADER) p; - if( phdr->iButton == 0 )// 0 => Left button - { - HWND hMapUser = GetDlgItem( hwndDlg , IDC_MAP_USER_LIST ); - ListView_SortItems( hMapUser , CompareFunc , phdr->iItem ); - return TRUE; - } - return FALSE; - } - } - } - break; - } - } - return FALSE; -} - -///////////////////////////////////////////////////////////////////// -// Member Function : bApplyChanges2 -// Type : Global -// Parameters : hwndDlg - ? -// Returns : Returns true if -// Description : -// -// References : - -// Remarks : - -// Created : 050429 , 29 april 2005 -// Developer : KN -///////////////////////////////////////////////////////////////////// - -BOOL bApplyChanges2( HWND hwndDlg ) -{ - if( IsDlgButtonChecked( hwndDlg , IDC_FC_PROMPT ) == BST_CHECKED ) - enRenameAction = eDAPromptUser; - else if( IsDlgButtonChecked( hwndDlg , IDC_FC_RENAME ) == BST_CHECKED ) - enRenameAction = eDAAutomatic; - else if( IsDlgButtonChecked( hwndDlg , IDC_FC_NOTHING ) == BST_CHECKED ) - enRenameAction = eDANothing; - - if( IsDlgButtonChecked( hwndDlg , IDC_FD_PROMPT ) == BST_CHECKED ) - enDeleteAction = eDAPromptUser; - else if( IsDlgButtonChecked( hwndDlg , IDC_FD_DELETE ) == BST_CHECKED ) - enDeleteAction = eDAAutomatic; - else if( IsDlgButtonChecked( hwndDlg , IDC_FD_NOTHING ) == BST_CHECKED ) - enDeleteAction = eDANothing; - - char szTemp[ 500 ]; - strcpy( szTemp , "DisableProt_" ); - - HWND hMapUser = GetDlgItem( hwndDlg , IDC_EXPORT_PROTOS ); - int nCount = ListView_GetItemCount( hMapUser ); - for( int nCur = 0 ; nCur < nCount ; nCur++ ) - { - LVITEMA sItem = { 0 }; - sItem.iItem = nCur; - sItem.mask = LVIF_TEXT | LVIF_IMAGE; - sItem.pszText = &szTemp[12]; - sItem.cchTextMax = sizeof( szTemp )-15; - if( ::SendMessage(hMapUser, LVM_GETITEMA, 0, (LPARAM)&sItem ) ) - { - if( sItem.iImage ) - DBDeleteContactSetting( NULL , MODULE , szTemp ); // default is Enabled !! - else - DBWriteContactSettingByte( NULL , MODULE , szTemp,0); - } - } - SaveSettings(); - return TRUE; -} - -///////////////////////////////////////////////////////////////////// -// Member Function : DlgProcMsgExportOpts2 -// Type : Global -// Parameters : hwndDlg - ? -// msg - ? -// wParam - ? -// lParam - ? -// Returns : static BOOL CALLBACK -// Description : -// -// References : - -// Remarks : - -// Created : 040205 , 05 februar 2004 -// Developer : KN -///////////////////////////////////////////////////////////////////// - -static BOOL CALLBACK DlgProcMsgExportOpts2(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) -{ - static BOOL bWindowTextSet = FALSE; - - switch (msg) - { - case WM_INITDIALOG: - { - bWindowTextSet = FALSE; - switch( enRenameAction ) - { - case eDAPromptUser: - CheckDlgButton( hwndDlg , IDC_FC_PROMPT , true ); - break; - case eDAAutomatic: - CheckDlgButton( hwndDlg , IDC_FC_RENAME , true ); - break; - case eDANothing: - CheckDlgButton( hwndDlg , IDC_FC_NOTHING , true ); - break; - } - switch( enDeleteAction ) - { - case eDAPromptUser: - CheckDlgButton( hwndDlg , IDC_FD_PROMPT , true ); - break; - case eDAAutomatic: - CheckDlgButton( hwndDlg , IDC_FD_DELETE , true ); - break; - case eDANothing: - CheckDlgButton( hwndDlg , IDC_FD_NOTHING , true ); - break; - } - HWND hMapUser = GetDlgItem( hwndDlg , IDC_EXPORT_PROTOS ); -/* - { // init adv. win styles - DWORD dw = ListView_GetExtendedListViewStyle( hMapUser ); - dw |= LVS_EX_HEADERDRAGDROP | LVS_EX_FULLROWSELECT; - ListView_SetExtendedListViewStyle( hMapUser , dw /); - } -*/ - int nColumnWidth = 100; - RECT rListSize; - if( GetWindowRect( hMapUser , &rListSize ) ) - { - nColumnWidth = (rListSize.right - rListSize.left- GetSystemMetrics(SM_CXVSCROLL) - 5 ); - if( nColumnWidth < 10 ) - nColumnWidth = 10; - } - - { // header setup !! - LVCOLUMN cCol = { 0 }; - cCol.mask = LVCF_TEXT | LVCF_WIDTH; - cCol.cx = nColumnWidth; - cCol.pszText = TranslateTS(_T("Export Protocols")); - ListView_InsertColumn( hMapUser , 0 , &cCol ); - } - - { - HIMAGELIST hIml; - hIml = ImageList_Create( GetSystemMetrics(SM_CXSMICON) , GetSystemMetrics(SM_CYSMICON),ILC_COLOR4|ILC_MASK,2,2); - ImageList_AddIcon(hIml,LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI_NOTICK))); - ImageList_AddIcon(hIml,LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI_TICK))); - ListView_SetImageList( hMapUser, hIml, LVSIL_SMALL); - } - - { - PROTOCOLDESCRIPTOR **proto; - int nCount; - LVITEMA sItem = { 0 }; - sItem.mask = LVIF_TEXT | LVIF_IMAGE; - char szTemp[ 500 ]; - - CallService(MS_PROTO_ENUMPROTOCOLS,(WPARAM)&nCount,(LPARAM)&proto); - - for( int i=0 ; i < nCount ; i++) - { - if( proto[i]->type==PROTOTYPE_IGNORE) //PROTOTYPE_PROTOCOL - continue; - _snprintf( szTemp , sizeof( szTemp ) , "DisableProt_%s" , proto[i]->szName ); - sItem.pszText = proto[i]->szName; - sItem.iImage = DBGetContactSettingByte(NULL,MODULE,szTemp,1); - ::SendMessage( hMapUser , LVM_INSERTITEMA , 0 ,(LPARAM)&sItem ); - sItem.iItem++; - } - } - - TranslateDialogDefault(hwndDlg); - - bWindowTextSet = TRUE; - return TRUE; - } - case WM_COMMAND: - { - switch(LOWORD(wParam)) - { - case IDC_FC_PROMPT: - case IDC_FC_RENAME: - case IDC_FC_NOTHING: - case IDC_FD_PROMPT: - case IDC_FD_DELETE: - case IDC_FD_NOTHING: - { - if( !bWindowTextSet ) - return TRUE; - - if( HIWORD(wParam) == BN_CLICKED ) - { - bUnaplyedChanges = TRUE; - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - } - return TRUE; - } - case IDC_DEBUG_INFO: - { - ShowDebugInfo(); - return TRUE; - } - } - break; - } - case WM_NOTIFY: - { - NMHDR * p = ((LPNMHDR)lParam); - if( p->idFrom == IDC_EXPORT_PROTOS ) - { - switch (p->code) - { - case NM_CLICK: - { LVHITTESTINFO hti; - LVITEM lvi; - hti.pt=((NMLISTVIEW*)lParam)->ptAction; - ListView_SubItemHitTest( p->hwndFrom ,&hti); - - if( hti.flags != LVHT_ONITEMICON ) - break; - - lvi.mask=LVIF_IMAGE; - lvi.iItem=hti.iItem; - lvi.iSubItem=0; - ListView_GetItem( p->hwndFrom , &lvi); - lvi.iImage^=1; - ListView_SetItem( p->hwndFrom , &lvi); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - } - } - break; - } - switch (p->code) - { - case PSN_APPLY: - { - bApplyChanges2(hwndDlg); - return TRUE; - } - case HDN_ITEMCLICK: - { - return FALSE; - } - } - break; - } - } - // - return FALSE; -} - - -///////////////////////////////////////////////////////////////////// -// Member Function : OptionsInitialize -// Type : Global -// Parameters : wParam - ? -// lParam - ? -// Returns : int -// Description : Called when the user openes the options dialog -// I need to add my options page. -// References : - -// Remarks : - -// Created : 020422 , 22 April 2002 -// Developer : KN -///////////////////////////////////////////////////////////////////// - -int OptionsInitialize(WPARAM wParam,LPARAM /*lParam*/) -{ - OPTIONSDIALOGPAGE odp; - - bUnaplyedChanges = FALSE; - - ZeroMemory(&odp,sizeof(odp)); - odp.cbSize = sizeof(odp); - odp.position = 100000000; - odp.hInstance = hInstance; - odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_MSGEXPORT); - odp.flags = ODPF_BOLDGROUPS; - odp.pszTitle = Translate("Message export"); - odp.pszGroup = Translate("Plugins"); - odp.groupPosition = 100000000; - odp.pfnDlgProc = DlgProcMsgExportOpts; - Options_AddPage(wParam,&odp); - - - odp.position = 100000001; - odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_MSGEXPORT2); - odp.pszTitle = Translate("Message export2"); - odp.pfnDlgProc = DlgProcMsgExportOpts2; - Options_AddPage(wParam,&odp); - return 0; -} -- cgit v1.2.3