You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
327 lines
10 KiB
327 lines
10 KiB
/*****************************************************************************
|
|
*
|
|
* $Workfile: CfgAll.cpp $
|
|
*
|
|
* Copyright (C) 1997 Hewlett-Packard Company.
|
|
* Copyright (c) 1997 Microsoft Corporation.
|
|
* All rights reserved.
|
|
*
|
|
* 11311 Chinden Blvd.
|
|
* Boise, Idaho 83714
|
|
*
|
|
*****************************************************************************/
|
|
|
|
/*
|
|
* Author: Becky Jacobsen
|
|
*
|
|
* This file contains the dialog for configuring an existing port for the port monitor.
|
|
*/
|
|
#include "precomp.h"
|
|
#include "CoreUI.h"
|
|
#include "resource.h" // includes the definitions for the resources
|
|
#include "RTcpData.h"
|
|
#include "CfgAll.h" // includes the application-specific information
|
|
#include "TcpMonUI.h"
|
|
|
|
// Global variables:
|
|
extern HINSTANCE g_hInstance;
|
|
|
|
|
|
//
|
|
// FUNCTION: AllPortsPage(HWND, UINT, UINT, LONG)
|
|
//
|
|
// PURPOSE: To process messages from the page for configuring all
|
|
// the tcp monitor ports in the system.
|
|
//
|
|
// MESSAGES:
|
|
//
|
|
// WM_INITDIALOG - intializes the page
|
|
// WM_COMMAND - handle button clicks
|
|
// WM_NOTIFY - handle reset
|
|
// WM_HSCROLL - handle scroll events from the 2 trackbars
|
|
//
|
|
BOOL APIENTRY AllPortsPage(HWND hDlg,
|
|
UINT message,
|
|
WPARAM wParam,
|
|
LPARAM lParam)
|
|
{
|
|
CAllPortsPage *wndDlg = NULL;
|
|
wndDlg = (CAllPortsPage *)GetWindowLongPtr(hDlg, GWLP_USERDATA);
|
|
|
|
switch(message)
|
|
{
|
|
case WM_INITDIALOG:
|
|
wndDlg = (CAllPortsPage *) new CAllPortsPage;
|
|
if( wndDlg == NULL )
|
|
return( FALSE );
|
|
|
|
SetWindowLongPtr(hDlg, GWLP_USERDATA, (UINT_PTR)wndDlg);
|
|
wndDlg->OnInitDialog(hDlg, wParam, lParam);
|
|
break;
|
|
|
|
case WM_COMMAND:
|
|
wndDlg->OnCommand(hDlg, wParam, lParam);
|
|
break;
|
|
|
|
case WM_NOTIFY:
|
|
return wndDlg->OnWMNotify(hDlg, wParam, lParam);
|
|
break;
|
|
|
|
case WM_HSCROLL:
|
|
wndDlg->OnHscroll(hDlg, wParam, lParam);
|
|
break;
|
|
|
|
case WM_HELP:
|
|
OnHelp(IDD_DIALOG_CONFIG_ALL, hDlg, lParam);
|
|
break;
|
|
|
|
case WM_DESTROY:
|
|
delete wndDlg;
|
|
break;
|
|
|
|
default:
|
|
return FALSE;
|
|
}
|
|
|
|
return TRUE;
|
|
|
|
} // AllPortsPage
|
|
|
|
|
|
//
|
|
// FUNCTION: CAllPortsPage Constructor
|
|
//
|
|
// PURPOSE:
|
|
//
|
|
CAllPortsPage::CAllPortsPage()
|
|
{
|
|
} // Constructor
|
|
|
|
|
|
//
|
|
// FUNCTION: OnInitDialog(HWND hDlg)
|
|
//
|
|
// PURPOSE: To initialize the allports dialog. Calls SetupTrackBar for each dialog
|
|
// and checks or unchecks the Status Update enabled check box as appropriate.
|
|
//
|
|
BOOL CAllPortsPage::OnInitDialog(HWND hDlg,
|
|
WPARAM,
|
|
LPARAM lParam)
|
|
{
|
|
m_pParams = (CFG_PARAM_PACKAGE *) ((PROPSHEETPAGE *) lParam)->lParam;
|
|
|
|
SetupTrackBar(hDlg, IDC_TRACKBAR_FAILURE_TIMEOUT, IDC_TRACKBAR_TOP, FT_MIN, FT_MAX, m_pParams->pData->FailureTimeout, FT_PAGESIZE, IDC_DIGITAL_FAILURE_TIMEOUT);
|
|
SendMessage(GetDlgItem(hDlg, IDC_CHECK_STATUSUPDATE), BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
|
|
|
|
if(m_pParams->pData->SUEnabled == FALSE) {
|
|
// EnableStatusUpdate(hDlg, FALSE);
|
|
CheckDlgButton(hDlg, IDC_CHECK_STATUSUPDATE, BST_UNCHECKED);
|
|
} else {
|
|
CheckDlgButton(hDlg, IDC_CHECK_STATUSUPDATE, BST_CHECKED);
|
|
}
|
|
|
|
return TRUE;
|
|
|
|
} // OnAllPortsInitDialog
|
|
|
|
|
|
//
|
|
// FUNCTION: OnCommand
|
|
//
|
|
// PURPOSE: To process windows WM_COMMAND messages
|
|
//
|
|
BOOL CAllPortsPage::OnCommand(HWND hDlg,
|
|
WPARAM wParam,
|
|
LPARAM lParam)
|
|
{
|
|
if(HIWORD(wParam) == BN_CLICKED) {
|
|
// a button is being clicked.
|
|
OnBnClicked(hDlg, wParam, lParam);
|
|
}
|
|
return TRUE;
|
|
|
|
} // OnCommand
|
|
|
|
|
|
|
|
//
|
|
// FUNCTION: OnWMNotify
|
|
//
|
|
// PURPOSE: This function is called by the page in response to a WM_NOTIFY message.
|
|
//
|
|
// lParam - second message parameter of the WM_NOTIFY message
|
|
//
|
|
BOOL CAllPortsPage::OnWMNotify(HWND hDlg, WPARAM, LPARAM lParam)
|
|
{
|
|
switch(((NMHDR FAR *) lParam)->code) {
|
|
case PSN_APPLY:
|
|
//
|
|
// The settings will be written by the apply in cfgport.cpp
|
|
// OnOk(hDlg);
|
|
break;
|
|
case PSN_SETACTIVE:
|
|
{
|
|
}
|
|
break;
|
|
case PSN_RESET:
|
|
{
|
|
}
|
|
break;
|
|
|
|
case PSN_QUERYCANCEL:
|
|
m_pParams->dwLastError = ERROR_CANCELLED;
|
|
return FALSE;
|
|
break;
|
|
|
|
default:
|
|
break;// do nothing
|
|
}
|
|
|
|
return TRUE;
|
|
|
|
} // OnWMNotify
|
|
|
|
|
|
//
|
|
// FUNCTION: OnHscroll(HWND hDlg, WPARAM wParam, LPARAM lParam)
|
|
//
|
|
// PURPOSE: To set the Digital Readout window text when either of the
|
|
// trackbar thumbs are moved by the user.
|
|
//
|
|
void CAllPortsPage::OnHscroll(HWND hDlg,
|
|
WPARAM wParam,
|
|
LPARAM lParam)
|
|
{
|
|
TCHAR strValue[15] = NULLSTR;
|
|
long idTrackbar = 0;
|
|
long idDigitalReadout = 0;
|
|
|
|
// I need the child window ID of this trackbar to get the id
|
|
// of the corresponding static display control.
|
|
idTrackbar = GetWindowLong((HWND)lParam, GWL_ID);
|
|
|
|
if(idTrackbar == IDC_TRACKBAR_FAILURE_TIMEOUT) {
|
|
idDigitalReadout = IDC_DIGITAL_FAILURE_TIMEOUT;
|
|
}
|
|
|
|
switch(LOWORD(wParam)) // loword of wparam is the notification code.
|
|
{
|
|
case TB_BOTTOM: // VK_END
|
|
case TB_ENDTRACK: // WM_KEYUP (the user released a key that sent a relevant virtual-key code)
|
|
case TB_LINEDOWN: // VK_RIGHT or VK_DOWN
|
|
case TB_LINEUP: // VK_LEFT or VK_UP
|
|
case TB_PAGEDOWN: // VK_NEXT (the user clicked the channel below or to the right of the slider)
|
|
case TB_PAGEUP: // VK_PRIOR (the user clicked the channel above or to the left of the slider)
|
|
case TB_TOP: // VK_HOME
|
|
{
|
|
int iPosition = SendMessage(GetDlgItem(hDlg, idTrackbar), TBM_GETPOS, 0, 0);
|
|
if(idTrackbar == IDC_TRACKBAR_FAILURE_TIMEOUT)
|
|
{
|
|
m_pParams->pData->FailureTimeout = iPosition;
|
|
}
|
|
_stprintf(strValue, TEXT("%d"), iPosition);
|
|
}
|
|
break;
|
|
case TB_THUMBPOSITION: // WM_LBUTTONUP following a TB_THUMBTRACK notification message
|
|
{
|
|
// this is the only case where we don't have to do anything.
|
|
// int iPosition = HIWORD(wParam);
|
|
}
|
|
break;
|
|
case TB_THUMBTRACK: // Slider movement (the user dragged the slider)
|
|
{
|
|
int iPosition = HIWORD(wParam);
|
|
if(idTrackbar == IDC_TRACKBAR_FAILURE_TIMEOUT)
|
|
{
|
|
m_pParams->pData->FailureTimeout = iPosition;
|
|
}
|
|
|
|
_stprintf(strValue, TEXT("%d"), iPosition);
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
SetWindowText(GetDlgItem(hDlg, idDigitalReadout), strValue);
|
|
|
|
|
|
} // OnHscroll
|
|
|
|
|
|
//
|
|
// FUNCTION: OnBnClicked(HWND hDlg, WPARAM wParam, LPARAM lParam)
|
|
//
|
|
// PURPOSE: When the enable Status Update checkbox is checked or unchecked
|
|
// the status update controls are enabled or disabled respectively.
|
|
//
|
|
void CAllPortsPage::OnBnClicked(HWND hDlg, WPARAM wParam, LPARAM lParam)
|
|
{
|
|
if(LOWORD(wParam) == IDC_CHECK_STATUSUPDATE) {
|
|
// the Enable Status Update button was clicked.
|
|
UINT state = IsDlgButtonChecked(hDlg, LOWORD(wParam));
|
|
if(state == BST_UNCHECKED) {
|
|
m_pParams->pData->SUEnabled = FALSE;
|
|
} else {
|
|
m_pParams->pData->SUEnabled = TRUE;
|
|
}
|
|
}
|
|
|
|
} // OnBnClicked
|
|
|
|
|
|
//
|
|
// FUNCTION: SetupTrackBar(...)
|
|
//
|
|
// PURPOSE: To get the window position, create the track bar and setup it's range
|
|
// and current thumb position.
|
|
//
|
|
// Arguments: hDlg is the dialog box that will be the parent of the track bar.
|
|
// iChildWindowID is the id given to the Track Bar
|
|
// iPositionCtrl is the id of a picture frame on the dialog that will
|
|
// be used to position the track bar.
|
|
// iRangeMin is the minimum value the track bar can be set to.
|
|
// iRangeMax is the maximum value the track bar can be set to.
|
|
// lPosition is the current thumb position.
|
|
// lPageSize is the amount the thumb will jump by when the user clicks
|
|
// on the track bar instead of dragging the thumb around.
|
|
// iAssociatedDigitalReadout is the static text control that displays
|
|
// the current value the thumb is indicating.
|
|
// hToolTip is the tool tip control to register a tool tip with.
|
|
//
|
|
void CAllPortsPage::SetupTrackBar(HWND hDlg,
|
|
int iChildWindowID,
|
|
int iPositionCtrl,
|
|
int iRangeMin,
|
|
int iRangeMax,
|
|
long lPosition,
|
|
long lPageSize,
|
|
int iAssociatedDigitalReadout)
|
|
{
|
|
HWND hTrackBar = NULL;
|
|
RECT r;
|
|
POINT pt1;
|
|
POINT pt2;
|
|
|
|
GetWindowRect(GetDlgItem(hDlg, iPositionCtrl), &r);
|
|
pt1.x = r.left;
|
|
pt1.y = r.top;
|
|
pt2.x = r.right;
|
|
pt2.y = r.bottom;
|
|
ScreenToClient(hDlg, &pt1);
|
|
ScreenToClient(hDlg, &pt2);
|
|
|
|
hTrackBar = CreateWindowEx(0, TRACKBAR_CLASS, TEXT(""), WS_VISIBLE | WS_CHILD | WS_GROUP | WS_TABSTOP |
|
|
TBS_HORZ, pt1.x, pt1.y, pt2.x - pt1.x,
|
|
pt2.y - pt1.y, hDlg, (HMENU)iChildWindowID, g_hInstance, NULL);
|
|
|
|
SendMessage(hTrackBar, TBM_SETRANGE, TRUE, MAKELONG(iRangeMin, iRangeMax));
|
|
SendMessage(hTrackBar, TBM_SETPAGESIZE, 0, lPageSize);
|
|
SendMessage(hTrackBar, TBM_SETPOS, TRUE, lPosition);
|
|
|
|
TCHAR strValue[5];
|
|
_stprintf(strValue, TEXT("%d"), lPosition);
|
|
SetWindowText(GetDlgItem(hDlg, iAssociatedDigitalReadout), strValue);
|
|
|
|
} // SetupTrackBar
|
|
|