mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-01 06:35:42 +00:00
137 lines
3.4 KiB
C++
137 lines
3.4 KiB
C++
|
/* -*- 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.
|
||
|
*/
|
||
|
|
||
|
/* COMPFRM.CPP - Compose Window Frame. This module contains code for the
|
||
|
* compose window frame class. Handles all menu and tool commands.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#include "stdafx.h"
|
||
|
#include "edt.h"
|
||
|
#include "compbar.h"
|
||
|
#include "compfrm.h"
|
||
|
#include "prefapi.h"
|
||
|
#include "addrdlg.h"
|
||
|
#include "intl_csi.h"
|
||
|
|
||
|
extern "C" {
|
||
|
#include "xpgetstr.h"
|
||
|
extern int MK_MSG_SAVE_AS;
|
||
|
extern int MK_MSG_CANT_OPEN;
|
||
|
extern int MK_MSG_MISSING_SUBJECT;
|
||
|
};
|
||
|
|
||
|
#ifdef XP_WIN32
|
||
|
#include "postal.h"
|
||
|
#endif
|
||
|
#include "netsvw.h"
|
||
|
|
||
|
void CComposeFrame::SetEditorParent(CWnd * pWnd)
|
||
|
{
|
||
|
CWinCX * pWinCX = (CWinCX*)GetMainContext();
|
||
|
|
||
|
// after the window is created, tell the browser view to resize the
|
||
|
// parent which resizes the editor.
|
||
|
if (pWinCX)
|
||
|
{
|
||
|
CNetscapeView * pView = (CNetscapeView*)pWinCX->GetView();
|
||
|
if (pView)
|
||
|
pView->SetChild (pWnd);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void CComposeFrame::SetHtmlMode(BOOL bMode)
|
||
|
{
|
||
|
m_bUseHtml = bMode;
|
||
|
}
|
||
|
|
||
|
void CComposeFrame::SetQuoteSelection(void)
|
||
|
{
|
||
|
int32 eReplyOnTop = 0;
|
||
|
|
||
|
if (PREF_NOERROR == PREF_GetIntPref("mailnews.reply_on_top", &eReplyOnTop) &&
|
||
|
eReplyOnTop != 0) {
|
||
|
// call backend with insertion call-back
|
||
|
if (UseHtml())
|
||
|
{
|
||
|
int32 offset = EDT_GetInsertPointOffset( GetMainContext()->GetContext() );
|
||
|
SetQuoteSel(offset);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
int tmpStartSel, tmpEndSel;
|
||
|
GetEditor()->GetSel(tmpStartSel, tmpEndSel);
|
||
|
// we only care about start position
|
||
|
SetQuoteSel((int32) tmpStartSel);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
CWnd * CComposeFrame::GetEditorWnd(void)
|
||
|
{
|
||
|
if (m_bUseHtml)
|
||
|
{
|
||
|
CWinCX * pWinCX = (CWinCX*)GetMainContext();
|
||
|
HWND hwnd = pWinCX->GetPane();
|
||
|
return CWnd::FromHandle(hwnd);
|
||
|
}
|
||
|
return (CWnd *)&m_Editor;
|
||
|
}
|
||
|
|
||
|
void CComposeFrame::UpdateAttachmentInfo(void)
|
||
|
{
|
||
|
ASSERT(m_pComposeBar);
|
||
|
m_pComposeBar->UpdateAttachmentInfo(MSG_GetAttachmentList(GetMsgPane()) ? 1 : 0);
|
||
|
}
|
||
|
|
||
|
BOOL CComposeFrame::PreTranslateMessage( MSG* pMsg )
|
||
|
{
|
||
|
if (pMsg->message == WM_KEYDOWN)
|
||
|
{
|
||
|
if (pMsg->wParam == VK_TAB)
|
||
|
{
|
||
|
BOOL bControl = GetKeyState(VK_CONTROL) & 0x8000;
|
||
|
BOOL bShift = GetKeyState(VK_SHIFT) & 0x8000;
|
||
|
CWnd * pWnd = CWnd::FromHandle(pMsg->hwnd);
|
||
|
if (GetComposeBar()->TabControl(bShift, bControl, pWnd))
|
||
|
return TRUE;
|
||
|
}
|
||
|
}
|
||
|
else if (pMsg->message == WM_COMMAND)
|
||
|
{
|
||
|
int ID = (int)LOWORD(pMsg->wParam);
|
||
|
if (ID == ID_CHECK_SPELLING)
|
||
|
{
|
||
|
OnCheckSpelling();
|
||
|
return TRUE;
|
||
|
}
|
||
|
}
|
||
|
return CGenericFrame::PreTranslateMessage(pMsg);
|
||
|
}
|
||
|
|
||
|
void CComposeFrame::OnSelectAddresses()
|
||
|
{
|
||
|
CAddrDialog AddressDialog(this);
|
||
|
GetComposeBar()->OnAddressTab();
|
||
|
GetComposeBar()->UpdateWindow();
|
||
|
CWnd * pWnd = GetFocus();
|
||
|
AddressDialog.DoModal();
|
||
|
pWnd->SetFocus();
|
||
|
}
|
||
|
|