WindowsXP-SP1/enduser/netmeeting/nmrk/editserver.cpp

225 lines
6.3 KiB
C++

#include "precomp.h"
#include "resource.h"
#include "EditServer.h"
#include "nmakwiz.h"
CEditServer* CEditServer::ms_pThis = NULL;
CEditServer::CEditServer( HWND hwndParent, LPTSTR szServer, size_t cbLen )
: m_hwnd( NULL ), m_hwndParent( hwndParent ), m_cbLen( cbLen )
{
ms_pThis = this;
m_szServerBuffer = new TCHAR[ m_cbLen ];
lstrcpy( m_szServerBuffer, szServer );
}
CEditServer::~CEditServer()
{
ms_pThis = NULL;
delete [] m_szServerBuffer;
}
int CEditServer::ShowDialog()
{
return DialogBox( g_hInstance, // handle to application instance
MAKEINTRESOURCE( IDD_DIALOG_EDIT_SERVERNAME ), // identifies dialog box template
m_hwndParent, // handle to owner window
(DLGPROC) _Proc, // pointer to dialog box procedure
);
}
BOOL CALLBACK CEditServer::_Proc( HWND hwndDlg, // handle to dialog box
UINT uMsg, // message
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
switch( uMsg )
{
case WM_INITDIALOG:
{
HWND hwndEdit = GetDlgItem( hwndDlg, IDC_EDIT_SERVER_NAME );
Edit_SetText( hwndEdit, ms_pThis->m_szServerBuffer );
Edit_LimitText( hwndEdit, ms_pThis->m_cbLen - 1 );
return TRUE;
break;
}
case WM_COMMAND:
{
switch (GET_WM_COMMAND_ID(wParam, lParam))
{
case IDOK:
{
switch (GET_WM_COMMAND_CMD(wParam, lParam))
{
case BN_CLICKED:
{
HWND hwndEdit = GetDlgItem( hwndDlg, IDC_EDIT_SERVER_NAME );
if( Edit_GetTextLength( hwndEdit ) )
{
if( !Edit_GetText( hwndEdit, ms_pThis->m_szServerBuffer, ms_pThis->m_cbLen ) )
{
ErrorMessage( TEXT("Edit_GetText"), GetLastError() );
}
EndDialog( hwndDlg, IDOK );
}
else
{
NmrkMessageBox(
MAKEINTRESOURCE(IDS_REMOVE_SERVER),
MAKEINTRESOURCE(IDS_EMPTY_SERVER),
MB_ICONEXCLAMATION | MB_OK,
hwndDlg);
}
return TRUE;
break;
}
}
break;
}
case IDCANCEL:
{
switch (GET_WM_COMMAND_CMD(wParam, lParam))
{
case BN_CLICKED:
{
EndDialog( hwndDlg, IDCANCEL );
return TRUE;
break;
}
}
break;
}
}
break;
}
}
return 0;
}
CEditWebView* CEditWebView::ms_pThis = NULL;
CEditWebView::CEditWebView( HWND hwndParent, LPCTSTR szServer, LPCTSTR szName, LPCTSTR szURL, size_t cbLen )
: m_hwndParent( hwndParent ), m_cbLen( cbLen ), m_bEditServer(TRUE)
{
ms_pThis = this;
m_szServerBuffer = new TCHAR[ m_cbLen ];
lstrcpy( m_szServerBuffer, szServer );
m_szNameBuffer = new TCHAR[ m_cbLen ];
lstrcpy( m_szNameBuffer, szName );
m_szURLBuffer = new TCHAR[ m_cbLen ];
lstrcpy( m_szURLBuffer, szURL );
}
CEditWebView::~CEditWebView()
{
ms_pThis = NULL;
delete [] m_szServerBuffer;
delete [] m_szNameBuffer;
delete [] m_szURLBuffer;
}
int CEditWebView::ShowDialog()
{
return DialogBox( g_hInstance, // handle to application instance
MAKEINTRESOURCE( IDD_DIALOG_EDIT_WEBVIEW ), // identifies dialog box template
m_hwndParent, // handle to owner window
_Proc, // pointer to dialog box procedure
);
}
BOOL CALLBACK CEditWebView::_Proc( HWND hwndDlg, // handle to dialog box
UINT uMsg, // message
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
switch( uMsg )
{
case WM_INITDIALOG:
{
HWND hwndEdit;
hwndEdit = GetDlgItem( hwndDlg, IDC_EDIT_SERVER_NAME );
Edit_SetText( hwndEdit, ms_pThis->m_szServerBuffer );
Edit_LimitText( hwndEdit, ms_pThis->m_cbLen - 1 );
FORWARD_WM_NEXTDLGCTL(hwndDlg, hwndEdit, TRUE, SendMessage);
if (!ms_pThis->GetEditServer())
{
Edit_SetReadOnly(hwndEdit, TRUE);
FORWARD_WM_NEXTDLGCTL(hwndDlg, FALSE, FALSE, SendMessage);
}
hwndEdit = GetDlgItem( hwndDlg, IDC_EDIT_URL_NAME );
Edit_SetText( hwndEdit, ms_pThis->m_szURLBuffer );
Edit_LimitText( hwndEdit, ms_pThis->m_cbLen - 1 );
hwndEdit = GetDlgItem( hwndDlg, IDC_EDIT_DISPLAY_NAME );
Edit_SetText( hwndEdit, ms_pThis->m_szNameBuffer );
Edit_LimitText( hwndEdit, ms_pThis->m_cbLen - 1 );
// I already set the focus
return FALSE;
break;
}
case WM_COMMAND:
{
switch (GET_WM_COMMAND_ID(wParam, lParam))
{
case IDOK:
{
switch (GET_WM_COMMAND_CMD(wParam, lParam))
{
case BN_CLICKED:
{
if( GetDlgItemText( hwndDlg, IDC_EDIT_SERVER_NAME, ms_pThis->m_szServerBuffer, ms_pThis->m_cbLen )
&& GetDlgItemText( hwndDlg, IDC_EDIT_URL_NAME, ms_pThis->m_szURLBuffer, ms_pThis->m_cbLen )
&& GetDlgItemText( hwndDlg, IDC_EDIT_DISPLAY_NAME, ms_pThis->m_szNameBuffer, ms_pThis->m_cbLen ))
{
EndDialog( hwndDlg, IDOK );
}
else
{
NmrkMessageBox(
MAKEINTRESOURCE(IDS_ERROR_NEEDALLFIELDS),
MAKEINTRESOURCE(IDS_EDIT_WEBVIEW),
MB_ICONEXCLAMATION | MB_OK,
hwndDlg);
}
return TRUE;
break;
}
}
break;
}
case IDCANCEL:
{
switch (GET_WM_COMMAND_CMD(wParam, lParam))
{
case BN_CLICKED:
{
EndDialog( hwndDlg, IDCANCEL );
return TRUE;
break;
}
}
break;
}
}
break;
}
}
return 0;
}