pjs/cmd/winfe/srchfrm.h

414 строки
11 KiB
C++
Executable File

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
// srchfrm.h : header file
//
#ifndef SEARCHFRM_H
#define SEARCHFRM_H
#include "outliner.h"
#include "mailmisc.h"
#include "statbar.h"
#include "msg_srch.h"
#include "srchobj.h"
#ifndef _WIN32
#include "ctl3d.h"
#endif
/////////////////////////////////////////////////////////////////////////////
// CSearchBar
class CSearchBar : public CDialogBar
{
public:
CSearchBar ( );
~CSearchBar ( );
// Attributes
public:
CMailFolderCombo m_wndScopes;
CSearchObject m_searchObj;
int m_iMoreCount;
BOOL m_bLogicType;
BOOL m_bLDAP;
int m_iOrigFrameHeight;
MSG_ScopeAttribute DetermineScope( DWORD dwData );
void UpdateAttribList();
void UpdateOpList();
void UpdateOpList(int);
int More();
int Fewer();
void OnAndOr();
void Advanced();
int ChangeLogicText();
void InitializeAttributes (MSG_SearchValueWidget widgetValue, MSG_SearchAttribute attribValue);
void BuildQuery (MSG_Pane* searchPane);
int ClearSearch(BOOL bIsLDAPSearch);
protected:
int m_iWidth, m_iHeight;
int GetHeightNeeded();
#ifdef XP_WIN16
CSize m_sizeDefault;
#endif
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CSearchBar)
public:
BOOL Create( CWnd*, UINT, UINT, UINT );
CSize CalcFixedLayout( BOOL, BOOL );
//}}AFX_VIRTUAL
public:
// Generated message map functions
//{{AFX_MSG(CSearchBar)
afx_msg int OnCreate( LPCREATESTRUCT );
afx_msg void OnSize ( UINT, int , int );
//}}AFX_MSG
#ifndef _WIN32
afx_msg LRESULT OnDlgSubclass(WPARAM wParam, LPARAM lParam);
#endif
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
// CSearchFrame frame
class CSearchOutliner;
class IMsgList;
class CAdvSearchOptionsDlg;
class CCustomHeadersDlg;
class CMailQFButton;
class CSearchFrame : public CFrameWnd, public CStubsCX
{
friend class CSearchResultsList;
// Attributes
public:
CNetscapeStatusBar m_barStatus;
protected:
CSearchBar m_barSearch;
CDialogBar m_barAction;
CAdvSearchOptionsDlg *m_pAdvancedOptionsDlg;
CCustomHeadersDlg *m_pCustomHeadersDlg;
XP_List *m_listSearch;
XP_List *m_listResult;
BOOL m_bResultsShowing, m_bSearching, m_bIsLDAPSearch;
int m_iHeight, m_iWidth;
BOOL m_bDragCopying;
int m_iRowSelected;
CSearchOutliner *m_pOutliner;
MSG_Pane *m_pSearchPane;
IMsgList *m_pIMsgList;
MSG_Master *m_pMaster;
int m_iOrigFrameHeight;
char * m_helpString;
void ShowResults( BOOL );
// From CStubsCX
virtual void Progress(MWContext *pContext, const char *pMessage);
virtual void SetProgressBarPercent(MWContext *pContext, int32 lPercent);
virtual void AllConnectionsComplete(MWContext *pContext);
virtual CWnd *GetDialogOwner() const { return (CWnd *) this; }
// Operations
void Create();
void UpdateScopes( CMailNewsFrame *pFrame );
public:
CSearchFrame();
void ModalStatusBegin( int iModalDelay );
void ModalStatusEnd();
#ifndef _WIN32
CWnd *CreateView(CCreateContext* pContext, UINT nID = AFX_IDW_PANE_FIRST);
#endif
static void Open();
static void Open( CMailNewsFrame *pFrame );
static void Close();
protected:
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
virtual BOOL OnCreateClient( LPCREATESTRUCT lpcs, CCreateContext* pContext );
virtual void PostNcDestroy() {}; // Overridden to prevent auto-delete on destroy
//Taken from MailFrm.h : required to get FolderInfo from a Menu ID
//Thanks Will!!
virtual MSG_FolderInfo *FolderInfoFromMenuID( MSG_FolderInfo *mailRoot,
UINT &nBase, UINT nID );
virtual MSG_FolderInfo *FolderInfoFromMenuID( UINT nID );
// IMsgList implementation
virtual void ListChangeStarting( MSG_Pane* pane, XP_Bool asynchronous,
MSG_NOTIFY_CODE notify, MSG_ViewIndex where,
int32 num);
virtual void ListChangeFinished( MSG_Pane* pane, XP_Bool asynchronous,
MSG_NOTIFY_CODE notify, MSG_ViewIndex where,
int32 num);
virtual void GetSelection( MSG_Pane* pane, MSG_ViewIndex **indices, int *count,
int *focus) {}
virtual void SelectItem( MSG_Pane* pane, int item ) {}
// Implementation
protected:
virtual ~CSearchFrame();
#ifndef ON_COMMAND_RANGE
BOOL OnCommand( WPARAM wParam, LPARAM lParam );
#endif
#ifndef ON_UPDATE_COMMAND_UI_RANGE
virtual BOOL OnCmdMsg( UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo );
#endif
BOOL PreTranslateMessage( MSG* pMsg );
void AdjustHeight(int dy);
void EditHeader(int iRow); //Brings up Modeless dialog to edit headers.
afx_msg int OnCreate(LPCREATESTRUCT);
afx_msg void OnClose();
afx_msg void OnDestroy();
afx_msg void OnSize(UINT, int, int);
afx_msg void OnGetMinMaxInfo( MINMAXINFO FAR* lpMMI );
afx_msg void OnMore();
afx_msg void OnUpdateMore( CCmdUI *pCmdUI );
afx_msg void OnFewer();
afx_msg void OnUpdateFewer( CCmdUI *pCmdUI );
afx_msg void OnFind();
afx_msg void OnUpdateFind( CCmdUI *pCmdUI );
afx_msg void OnUpdateQuery( CCmdUI *pCmdUI );
afx_msg void OnScope();
afx_msg void OnSave();
afx_msg void OnTo();
afx_msg void OnUpdateTo( CCmdUI *pCmdUI );
afx_msg void OnHelp();
afx_msg void OnUpdateSave( CCmdUI *pCmdUI );
afx_msg void OnUpdateHelp( CCmdUI *pCmdUI );
afx_msg void OnNew();
afx_msg void OnAdvanced();
afx_msg void OnUpdateAdvanced(CCmdUI *pCmdUI );
afx_msg void OnAttrib1();
afx_msg void OnAttrib2();
afx_msg void OnAttrib3();
afx_msg void OnAttrib4();
afx_msg void OnAttrib5();
afx_msg void OnAndOr();
afx_msg void OnUpdateAndOr(CCmdUI *pCmdUI );
afx_msg void OnFileButton();
afx_msg void OnUpdateFileButton(CCmdUI *pCmdUI );
afx_msg LONG OnFinishedAdvanced( WPARAM wParam, LPARAM lParam );
afx_msg LONG OnFinishedHeaders(WPARAM wParam, LPARAM lParam );
//context menu handlers
afx_msg void OnUpdateDeleteMessage(CCmdUI* pCmdUI);
afx_msg void OnDeleteMessage();
afx_msg void OnFileMessage(UINT nID );
afx_msg void OnUpdateFile( CCmdUI *pCmdUI );
afx_msg void OnOpenMessage();
afx_msg void OnUpdateOpenMessage(CCmdUI *pCmdUI);
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
// CSearchOutliner
class CSearchOutlinerParent;
class CSearchOutliner : public CMSelectOutliner
{
friend class CSearchOutlinerParent;
protected:
MWContext *m_pContext;
MSG_SearchAttribute m_attribSortBy;
XP_Bool m_bSortDescending;
MSG_Pane *m_pSearchPane;
HFONT m_hFont;
int m_iMysticPlane;
CLIPFORMAT m_cfSearchMessages;
virtual void OnSelChanged();
virtual void OnSelDblClk();
public:
CSearchOutliner ( );
~CSearchOutliner ( );
void ChangeResults (int num);
virtual LPCTSTR GetColumnText ( UINT iColumn, void * pLineData );
virtual void * AcquireLineData ( int iLine );
virtual void ReleaseLineData ( void * pLineData );
virtual HFONT GetLineFont( void *pLineData );
virtual void GetTreeInfo ( int iLine, uint32 * pFlags, int * iDepth,
OutlinerAncestorInfo ** pAncestor );
virtual int TranslateIcon ( void *);
virtual int TranslateIconFolder ( void *);
virtual void MysticStuffStarting( XP_Bool asynchronous,
MSG_NOTIFY_CODE notify,
MSG_ViewIndex where,
int32 num);
virtual void MysticStuffFinishing( XP_Bool asynchronous,
MSG_NOTIFY_CODE notify,
MSG_ViewIndex where,
int32 num);
virtual void PropertyMenu ( int iSel, UINT flags );
virtual BOOL DeleteItem ( int iLine );
MWContext *GetContext() { return m_pContext; }
void SetContext( MWContext *pContext ) { m_pContext = pContext; }
void SetPane (MSG_Pane *pPane) { m_pSearchPane = pPane; }
POINT GetHit() const {return m_ptHit;}
//Drad and Drop
virtual void InitializeClipFormats(void);
CLIPFORMAT *GetClipFormatList(void);
virtual COleDataSource * GetDataSource(void);
afx_msg int OnCreate ( LPCREATESTRUCT );
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
// CSearchOutlinerParent
class CSearchOutlinerParent : public COutlinerParent
{
public:
virtual COutliner * GetOutliner ( );
virtual void CreateColumns ( );
virtual BOOL RenderData ( int idColumn, CRect & rect, CDC & dc, const char *);
virtual BOOL ColumnCommand ( int idColumn );
};
/////////////////////////////////////////////////////////////////////////////
// CSearchView
class CSearchView: public COutlinerView {
DECLARE_DYNCREATE(CSearchView)
public:
CSearchView ( ) : COutlinerView ( )
{
m_pOutlinerParent = new CSearchOutlinerParent;
}
};
/////////////////////////////////////////////////////////////////////////////
// CLDAPSearchFrame
class CLDAPSearchFrame : public CSearchFrame
{
protected:
// Operations
void Create();
public:
static void Open();
static void Close();
// Implementation
protected:
virtual BOOL OnCreateClient( LPCREATESTRUCT lpcs, CCreateContext* pContext );
afx_msg int OnCreate(LPCREATESTRUCT);
afx_msg void OnClose();
afx_msg void OnScope();
afx_msg void OnFind();
afx_msg void OnAdd();
afx_msg void OnUpdateAdd( CCmdUI *pCmdUI );
afx_msg void OnTo();
afx_msg void OnUpdateTo( CCmdUI *pCmdUI );
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
// CLDAPSearchOutliner
class CLDAPSearchOutliner: public CSearchOutliner
{
friend class CLDAPSearchOutlinerParent;
public:
virtual int TranslateIcon ( void *);
virtual HFONT GetLineFont( void *);
//Drag and Drop
virtual void InitializeClipFormats(void);
CLIPFORMAT *GetClipFormatList(void);
virtual COleDataSource * GetDataSource(void);
protected:
CLIPFORMAT m_cfAddresses;
CLIPFORMAT m_cfSourceTarget;
// Generated message map functions
//{{AFX_MSG(CLDAPSearchOutliner)
afx_msg int OnCreate ( LPCREATESTRUCT );
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
// CLPADSearchOutlinerParent
class CLDAPSearchOutlinerParent : public CSearchOutlinerParent
{
public:
virtual COutliner * GetOutliner ( );
virtual void CreateColumns ( );
};
/////////////////////////////////////////////////////////////////////////////
// CLDAPSearchView
class CLDAPSearchView: public COutlinerView {
DECLARE_DYNCREATE(CLDAPSearchView)
public:
CLDAPSearchView ( ) : COutlinerView ( )
{
m_pOutlinerParent = new CLDAPSearchOutlinerParent;
}
};
////////////////////////////////////////////////////////////////////////////
#endif