gecko-dev/cmd/winfe/abmldlg.h

162 строки
4.4 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.
*/
#ifndef _abmldlg_h_
#define _abmldlg_h_
// ABMLDLG.H
//
// DESCRIPTION:
// This file contains the declarations of the for the mailing list
// dialog
//
#include "addrfrm.h"
#include "apimsg.h"
#include "xp_core.h"
#include "addrbook.h"
#include "property.h"
#include "apiaddr.h"
#include "mnrccln.h"
class CNSAddressList;
class CABMLDialog;
class CABMLDialogEntryList;
class CMailListDropTarget : public COleDropTarget
{
public:
CABMLDialog* m_pOwner;
//Construction
CMailListDropTarget(CABMLDialog* pOwner) { m_pOwner = pOwner; }
BOOL OnDrop(CWnd *, COleDataObject *, DROPEFFECT, CPoint);
DROPEFFECT OnDragOver(CWnd *, COleDataObject *, DWORD, CPoint);
};
/****************************************************************************
*
* Class: CABMLDialog
*
* DESCRIPTION:
* This class is the address picker from the compose window
*
****************************************************************************/
class CABMLDialog : public CDialog,
public IAddressParent {
// Attributes
public:
friend class CABMLDialogEntryList;
// Dialog Data
//{{AFX_DATA(CABMLDialog)
enum { IDD = IDD_ADDRESS_LIST };
CString m_description;
CString m_name;
CString m_nickname;
//}}AFX_DATA
protected:
LPADDRESSCONTROL m_pIAddressList;
LPUNKNOWN m_pUnkAddress;
int m_iMysticPlane;
HFONT m_pFont;
LPMSGLIST m_pIAddrList;
MLPane *m_addrBookPane;
DIR_Server *m_dir;
ABID m_entryID;
BOOL m_addingEntries;
BOOL m_saved;
int m_errorCode;
BOOL m_changingEntry;
CMailListDropTarget *m_pDropTarget;
// Support loading resources from dll
CMailNewsResourceSwitcher m_MailNewsResourceSwitcher;
// Support for IMsgList Interface (Called by CABMLDialogEntryList)
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);
void CleanupOnClose();
void AddEntriesToList(int index, int num);
// IAddressParent stuff
virtual void AddedItem (HWND hwnd, LONG id,int index);
virtual int ChangedItem (char * pString, int index, HWND hwnd, char** ppFullName, unsigned long* entryID, UINT* bitmapID);
virtual void DeletedItem (HWND hwnd, LONG id,int index);
virtual char * NameCompletion (char *);
// Operations
public:
CABMLDialog(DIR_Server* dir, CWnd* pParent = NULL, ABID listID = NULL, MWContext* context = NULL);
~CABMLDialog();
BOOL Create( CWnd *pParent ) { return CDialog::Create( IDD, pParent ); };
enum { ToolInvalid = -1, ToolText = 0, ToolPictures = 1, ToolBoth = 2 };
static void HandleErrorReturn(int errorID, CWnd* parent = NULL);
MLPane* GetPane() { return m_addrBookPane; }
ABID GetEntryID() { return m_entryID; }
CNSAddressList * GetAddressWidget();
void DoUpdateAddressBook( CCmdUI* pCmdUI, AB_CommandType cmd, BOOL bUseCheck = TRUE );
// Drop
BOOL IsDragInListBox(CPoint *pPoint);
BOOL ProcessVCardData(COleDataObject * pDataObject,CPoint &point);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CABMLDialog)
public:
virtual BOOL OnInitDialog( );
BOOL PreTranslateMessage( MSG* pMsg );
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual void PostNcDestroy( );
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CABMLDialog)
afx_msg int OnCreate( LPCREATESTRUCT );
afx_msg void OnDestroy( );
afx_msg void OnOK();
afx_msg void OnCancel();
afx_msg void OnRemoveEntry();
afx_msg void OnHelp();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#endif