www.pudn.com > uoth_src.zip > FilterDlg.h


#ifndef DSSI_FILTERDLG_H 
#define DSSI_FILTERDLG_H 
 
//----------------------------------------------------------------------------- 
//  
// @doc 
// 
// @module	FilterDlg.h - Allow user to modify his filter | 
// 
// This module contains the definition for the filter configuration. 
// 
// Copyright (c) 2002 - Descartes Systems Sciences, Inc. 
// 
// All rights reserved. 
// 
// Redistribution and use in source and binary forms, with or without  
// modification, are permitted provided that the following conditions are  
// met: 
//  
// 1. Redistributions of source code must retain the above copyright notice,  
//    this list of conditions and the following disclaimer.  
// 2. Neither the name of Descartes Systems Sciences, Inc nor the names of  
//    its contributors may be used to endorse or promote products derived  
//    from this software without specific prior written permission. 
// 
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS  
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT  
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR  
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,  
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED  
// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR  
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF  
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING  
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS  
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
// 
// @end 
// 
// $History: FilterDlg.h $ 
//       
//----------------------------------------------------------------------------- 
 
//----------------------------------------------------------------------------- 
// 
// Required include files 
// 
//----------------------------------------------------------------------------- 
 
#include "Filter.h" 
 
//----------------------------------------------------------------------------- 
// 
// Forward definitions 
// 
//----------------------------------------------------------------------------- 
 
//----------------------------------------------------------------------------- 
// 
// Class definition 
// 
//----------------------------------------------------------------------------- 
 
class CFilterDlg :  
	public CDialogImpl  
{ 
// @access Constructors and destructors 
public: 
 
	// @cmember General constructor 
 
	CFilterDlg (CFilter *pFilter); 
 
	// @cmember General destructor 
 
	~CFilterDlg (); 
 
// @access Public methods 
public: 
 
	// @cmember Create a modeless version of the dialog 
 
	HWND Create (HWND hWndParent, LPARAM dwInitParam = NULL); 
 
// @access COM interface list 
public: 
	enum { IDD = IDD_FILTER }; 
	BEGIN_MSG_MAP (CFilterDlg) 
	    MESSAGE_HANDLER (WM_INITDIALOG, OnInitDialog) 
 
	    COMMAND_ID_HANDLER (IDCANCEL, OnCancel) 
	    COMMAND_ID_HANDLER (IDOK, OnOk) 
 
	    COMMAND_HANDLER (IDC_FILTER_ADD, BN_CLICKED, OnAdd) 
	    COMMAND_HANDLER (IDC_FILTER_REMOVE, BN_CLICKED, OnRemove) 
 
	    COMMAND_HANDLER (IDC_FILTER_DONT_SHOW, LBN_DBLCLK, OnAdd) 
	    COMMAND_HANDLER (IDC_FILTER_DONT_SHOW, LBN_SELCHANGE, OnSelChange) 
	    COMMAND_HANDLER (IDC_FILTER_DONT_SHOW, LBN_SELCANCEL, OnSelChange) 
 
	    COMMAND_HANDLER (IDC_FILTER_SHOW, LBN_DBLCLK, OnRemove) 
	    COMMAND_HANDLER (IDC_FILTER_SHOW, LBN_SELCHANGE, OnSelChange) 
	    COMMAND_HANDLER (IDC_FILTER_SHOW, LBN_SELCANCEL, OnSelChange) 
 
		COMMAND_ID_HANDLER (IDC_FILTER_LEVEL_ENABLE, OnSelChange) 
		COMMAND_ID_HANDLER (IDC_FILTER_MINE, OnSelChange) 
		COMMAND_ID_HANDLER (IDC_FILTER_TACK, OnSelChange) 
 
	END_MSG_MAP () 
 
// @access Command handlers 
public: 
 
	// @cmember Handle the Ok button 
 
	LRESULT OnOk (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); 
 
	// @cmember Handle the Cancel button 
 
	LRESULT OnCancel (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); 
 
	// @cmember Add a filter level 
	 
	LRESULT OnAdd (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled); 
 
	// @cmember Remove a filter level 
	 
	LRESULT OnRemove (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled); 
 
	// @cmember Handle a change in the selection 
 
	LRESULT OnSelChange (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled) 
	{ 
		UpdateWindow (); 
		return 0; 
	} 
 
// @access Message handlers 
protected: 
 
	// @cmember Initialize the dialog box 
 
	LRESULT OnInitDialog (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled); 
 
// @access Protected methods 
protected: 
 
	// @cmember Update the state of the windows 
 
    void UpdateWindow (); 
 
	// @cmember Get all the current settings 
 
    void GetSettings (); 
 
	// @cmember add a level to the listbox 
 
    void AddLevel (CListBox &lb, LPCTSTR pszLevel); 
 
// @access Public members 
public: 
 
	// @cmember Filter being edited 
 
	CFilter				*m_pFilter; 
 
	// @cmember Current filter settings 
 
	CFilter				m_sFilter; 
 
// @access Protected members 
protected: 
 
	// @cmember Show list box 
 
	CListBox			m_lbShow; 
 
	// @cmember Don't show 
 
	CListBox			m_lbDontShow; 
 
	// @cmember Add button 
 
	CButton				m_btnAdd; 
 
	// @cmember Remove button 
 
	CButton				m_btnRemove; 
 
	// @cmember Filter level enabled 
 
	CButton				m_btnEnableLevel; 
 
	// @cmember Tack filter 
 
	CButton				m_btnEnableTack; 
 
	// @cmember Tack filter 
 
	CButton				m_btnEnableMine; 
}; 
 
#endif // DSSI_FILTERDLG_H