diff options
author | Vadim Dashevskiy <watcherhd@gmail.com> | 2012-07-29 21:39:22 +0000 |
---|---|---|
committer | Vadim Dashevskiy <watcherhd@gmail.com> | 2012-07-29 21:39:22 +0000 |
commit | 1f8600fdd53b2d35abc340135e777005b4a75402 (patch) | |
tree | cdc7b4f1a8eed5e2b3ae968931e54360f0735021 /plugins/msg_export/src/options.cpp | |
parent | 315349055c8d157fcbf82122f3b56d40892fd073 (diff) |
git-svn-id: http://svn.miranda-ng.org/main/trunk@1258 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/msg_export/src/options.cpp')
-rwxr-xr-x | plugins/msg_export/src/options.cpp | 1483 |
1 files changed, 0 insertions, 1483 deletions
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 <windows.h>
-#include <commctrl.h>
-#include "Shlobj.h"
-
-
-#include "Utils.h"
-#include "Glob.h"
-#include "FileViewer.h"
-
-#include "resource.h"
-
-#include <stdio.h>
-#include <list>
-//#include <algorithm>
-
-#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 <list> 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<tstring, list< CLDBEvent >, less<tstring> > 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<tstring, list< CLDBEvent >, less<tstring> >::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;
-}
|