home *** CD-ROM | disk | FTP | other *** search
- /* -*- 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
-