Fixed sizing, caret garbage, and prefs bugs for Composer. Initial implementation of 'freeze frame' concept.
This commit is contained in:
Родитель
2f5a10e315
Коммит
dbd232b60c
3917
cmd/winfe/cxdc.cpp
3917
cmd/winfe/cxdc.cpp
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,590 +0,0 @@
|
|||
/* -*- 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.
|
||||
*/
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "secnav.h"
|
||||
#include "frameglu.h"
|
||||
#include "mainfrm.h"
|
||||
#include "ipframe.h"
|
||||
#include "prefapi.h"
|
||||
|
||||
// Our active frame stack.
|
||||
CPtrList CFrameGlue::m_cplActiveFrameStack;
|
||||
|
||||
|
||||
// A way to correctly get the frame glue out of a frame at run time though
|
||||
// the class derivations and casting are not right....
|
||||
CFrameGlue *CFrameGlue::GetFrameGlue(CFrameWnd *pFrame) {
|
||||
// Use IsKindOf to determine the frame's class type.
|
||||
// From there, we can correctly cast the frame window pointer, and
|
||||
// further cast to the abstract base class of CFrameGlue.
|
||||
CFrameGlue *pRetval = NULL;
|
||||
if(pFrame->IsKindOf(RUNTIME_CLASS(CGenericFrame))) {
|
||||
pRetval = (CFrameGlue *)((CGenericFrame *)pFrame);
|
||||
}
|
||||
else if(pFrame->IsKindOf(RUNTIME_CLASS(CInPlaceFrame))) {
|
||||
pRetval = (CFrameGlue *)((CInPlaceFrame *)pFrame);
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
if(pRetval == NULL) {
|
||||
// If you got here, either you need to add appropriate casting statements
|
||||
// in the above if to resolve the CFrameGlue, or you have found a bug.
|
||||
TRACE("Invalid frame window has no frame glue!\n");
|
||||
// ASSERT(0);
|
||||
}
|
||||
#endif // DEBUG
|
||||
|
||||
return(pRetval);
|
||||
}
|
||||
|
||||
|
||||
CFrameGlue::CFrameGlue() {
|
||||
m_pActiveContext = NULL;
|
||||
m_pMainContext = NULL;
|
||||
m_bCanRestoreState = FALSE;
|
||||
m_iCSID = theApp.m_iCSID;
|
||||
m_pChrome = NULL;
|
||||
|
||||
// location bar
|
||||
// note I just changed this from 1.0 version to be more appropriate chouck 24-jan-95
|
||||
XP_Bool bBar;
|
||||
PREF_GetBoolPref("browser.chrome.show_url_bar",&bBar);
|
||||
m_bLocationBar = bBar;
|
||||
|
||||
// show the starter buttons?
|
||||
PREF_GetBoolPref("browser.chrome.show_directory_buttons",&bBar);
|
||||
m_bStarter = bBar;
|
||||
|
||||
PREF_GetBoolPref("browser.chrome.show_toolbar",&bBar);
|
||||
m_bShowToolbar = bBar;
|
||||
|
||||
// No find replace dialog yet.
|
||||
m_pFindReplace = NULL;
|
||||
|
||||
m_pClipChildMap = NULL;
|
||||
m_isBackgroundPalette = FALSE;
|
||||
}
|
||||
|
||||
CFrameGlue::~CFrameGlue() {
|
||||
// Take all entries of this frame in the active frame stack out.
|
||||
POSITION pos;
|
||||
|
||||
while( pos = m_cplActiveFrameStack.Find( (LPVOID) this ) ){
|
||||
m_cplActiveFrameStack.RemoveAt( pos );
|
||||
}
|
||||
|
||||
|
||||
// When the frame goes down, let the window context know.
|
||||
if(GetMainWinContext()) {
|
||||
GetMainWinContext()->ClearFrame();
|
||||
}
|
||||
|
||||
if( m_pClipChildMap != NULL ) {
|
||||
m_pClipChildMap->RemoveAll();
|
||||
|
||||
delete m_pClipChildMap;
|
||||
m_pClipChildMap = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Generic way to get a frame out of the context.
|
||||
CFrameGlue *GetFrame(MWContext *pContext)
|
||||
{
|
||||
CFrameGlue *pRetval = NULL;
|
||||
if(pContext != NULL) {
|
||||
if(ABSTRACTCX(pContext) && ABSTRACTCX(pContext)->IsFrameContext()) {
|
||||
pRetval = ABSTRACTCX(pContext)->GetFrame();
|
||||
}
|
||||
}
|
||||
|
||||
return(pRetval);
|
||||
}
|
||||
|
||||
CAbstractCX *CFrameGlue::GetMainContext() const
|
||||
{
|
||||
return(m_pMainContext);
|
||||
}
|
||||
|
||||
CAbstractCX *CFrameGlue::GetActiveContext() const
|
||||
{
|
||||
return(m_pActiveContext);
|
||||
}
|
||||
|
||||
CWinCX *CFrameGlue::GetMainWinContext() const
|
||||
{
|
||||
if (m_pMainContext && m_pMainContext->IsFrameContext()) {
|
||||
return((CWinCX *) m_pMainContext);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
CWinCX *CFrameGlue::GetActiveWinContext() const
|
||||
{
|
||||
if (m_pActiveContext && m_pActiveContext->IsFrameContext()) {
|
||||
return((CWinCX *) m_pActiveContext);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void CFrameGlue::SetMainContext(CAbstractCX *pContext) {
|
||||
m_pMainContext = pContext;
|
||||
}
|
||||
|
||||
CPtrList CFrameGlue::m_cplActiveContextCBList;
|
||||
|
||||
void CFrameGlue::SetActiveContext(CAbstractCX *pContext)
|
||||
{
|
||||
m_pActiveContext = pContext;
|
||||
|
||||
POSITION rIndex = m_cplActiveContextCBList.GetHeadPosition();
|
||||
while(rIndex != NULL) {
|
||||
ActiveContextCB cb = (ActiveContextCB)m_cplActiveContextCBList.GetNext(rIndex);
|
||||
(cb)(this, pContext);
|
||||
}
|
||||
}
|
||||
|
||||
void CFrameGlue::AddActiveContextCB(ActiveContextCB cb)
|
||||
{
|
||||
m_cplActiveContextCBList.AddTail((LPVOID)cb);
|
||||
}
|
||||
|
||||
void CFrameGlue::RemoveActiveContextCB(ActiveContextCB cb)
|
||||
{
|
||||
POSITION rIndex = m_cplActiveContextCBList.Find((LPVOID)cb);
|
||||
if(rIndex) {
|
||||
m_cplActiveContextCBList.RemoveAt(rIndex);
|
||||
}
|
||||
}
|
||||
|
||||
// Override to test if frame is an editor
|
||||
BOOL CFrameGlue::IsEditFrame()
|
||||
{
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
CPtrList CFrameGlue::m_cplActiveNotifyCBList;
|
||||
|
||||
// Add to the top of the stack of active frames.
|
||||
void CFrameGlue::SetAsActiveFrame()
|
||||
{
|
||||
POSITION rIndex = m_cplActiveNotifyCBList.GetHeadPosition();
|
||||
while(rIndex != NULL) {
|
||||
ActiveNotifyCB cb = (ActiveNotifyCB) m_cplActiveNotifyCBList.GetNext(rIndex);
|
||||
(cb)(this);
|
||||
}
|
||||
|
||||
POSITION pos = m_cplActiveFrameStack.Find( (LPVOID) this );
|
||||
if (pos) {
|
||||
m_cplActiveFrameStack.RemoveAt( pos );
|
||||
}
|
||||
|
||||
TRY {
|
||||
m_cplActiveFrameStack.AddHead((void *)this);
|
||||
|
||||
}
|
||||
CATCH(CException, e) {
|
||||
// didn't work, Silently fail...
|
||||
ASSERT(0);
|
||||
}
|
||||
END_CATCH
|
||||
}
|
||||
|
||||
void CFrameGlue::AddActiveNotifyCB( ActiveNotifyCB cb )
|
||||
{
|
||||
m_cplActiveNotifyCBList.AddTail( (LPVOID) cb );
|
||||
}
|
||||
|
||||
void CFrameGlue::RemoveActiveNotifyCB( ActiveNotifyCB cb )
|
||||
{
|
||||
POSITION rIndex = m_cplActiveNotifyCBList.Find( (LPVOID) cb );
|
||||
if (rIndex) {
|
||||
m_cplActiveNotifyCBList.RemoveAt( rIndex );
|
||||
}
|
||||
}
|
||||
|
||||
// Find a browser window in the active stack, only use cxType types.
|
||||
// Default is to NOT find editor windows when cxType = MWContextBrowser
|
||||
CFrameGlue *CFrameGlue::GetLastActiveFrame(MWContextType cxType, int nFindEditor)
|
||||
{
|
||||
CFrameGlue *pRetval = NULL;
|
||||
|
||||
// Loop through all active frames.
|
||||
POSITION rIndex = m_cplActiveFrameStack.GetHeadPosition();
|
||||
while(rIndex != NULL) {
|
||||
pRetval = (CFrameGlue *)m_cplActiveFrameStack.GetNext(rIndex);
|
||||
|
||||
// See if we can get the type from the context, and verify the type.
|
||||
if(pRetval->GetMainContext() != NULL) {
|
||||
MWContextType cxRetType = pRetval->GetMainContext()->GetContext()->type;
|
||||
if(cxType == MWContextAny || cxRetType == cxType) {
|
||||
// If looking for only Browser, skip an editor frame
|
||||
if (cxType == MWContextBrowser){
|
||||
BOOL bIsEditor = EDT_IS_EDITOR(pRetval->GetMainContext()->GetContext());
|
||||
if((nFindEditor == FEU_FINDBROWSERONLY && bIsEditor) ||
|
||||
(nFindEditor == FEU_FINDEDITORONLY && !bIsEditor)) {
|
||||
|
||||
// Failed the check. clear retval.
|
||||
pRetval = NULL;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// Don't allow Netcaster either
|
||||
if (pRetval->GetMainContext()->GetContext() == theApp.m_pNetcasterWindow
|
||||
|| (pRetval->GetMainContext()->GetContext()->name && (XP_STRCASECMP(pRetval->GetMainContext()->GetContext()->name,"Netscape_Netcaster_Drawer") == 0))) {
|
||||
pRetval = NULL;
|
||||
continue;
|
||||
}
|
||||
|
||||
// Found one.
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Failed the check. clear retval.
|
||||
pRetval = NULL;
|
||||
}
|
||||
|
||||
return(pRetval);
|
||||
}
|
||||
|
||||
CFrameGlue *CFrameGlue::GetLastActiveFrameByCustToolbarType(CString custToolbar, CFrameWnd *pCurrentFrame, BOOL bUseSaveInfo)
|
||||
{
|
||||
|
||||
CFrameGlue *pRetval = NULL;
|
||||
|
||||
// Loop through all active frames.
|
||||
POSITION rIndex = m_cplActiveFrameStack.GetHeadPosition();
|
||||
while(rIndex != NULL) {
|
||||
|
||||
pRetval = (CFrameGlue *)m_cplActiveFrameStack.GetNext(rIndex);
|
||||
|
||||
// if it's the current frame, then keep looking because we want the one before it.
|
||||
if(pRetval->GetFrameWnd() == pCurrentFrame) {
|
||||
pRetval = NULL;
|
||||
continue;
|
||||
}
|
||||
// See if we share the same custtoolbar string.
|
||||
if((pRetval->m_pChrome) && (pRetval->m_pChrome->GetCustToolbarString() == custToolbar)){
|
||||
if(bUseSaveInfo){
|
||||
// if customizable toolbar saves its prefs, then break
|
||||
// this is used to ignore windows like View Page Source and View Page Info
|
||||
if(pRetval->m_pChrome->GetCustomizableToolbar()->GetSaveToolbarInfo())
|
||||
break;
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
// Failed the check. clear retval.
|
||||
pRetval = NULL;
|
||||
}
|
||||
|
||||
return(pRetval);
|
||||
}
|
||||
|
||||
CFrameGlue *CFrameGlue::GetBottomFrame(MWContextType cxType, int nFindEditor)
|
||||
{
|
||||
|
||||
CFrameGlue *pRetval = NULL;
|
||||
|
||||
// Loop through all active frames until we reach the bottom.
|
||||
POSITION rIndex = m_cplActiveFrameStack.GetTailPosition();
|
||||
while(rIndex != NULL) {
|
||||
pRetval = (CFrameGlue *)m_cplActiveFrameStack.GetPrev(rIndex);
|
||||
|
||||
|
||||
// See if we can get the type from the context, and verify the type.
|
||||
if(pRetval->GetMainContext() != NULL) {
|
||||
MWContextType cxRetType = pRetval->GetMainContext()->GetContext()->type;
|
||||
if(cxType == MWContextAny || cxRetType == cxType) {
|
||||
// If looking for only Browser, skip an editor frame
|
||||
if (cxType == MWContextBrowser){
|
||||
BOOL bIsEditor = EDT_IS_EDITOR(pRetval->GetMainContext()->GetContext());
|
||||
if((nFindEditor == FEU_FINDBROWSERONLY && bIsEditor) ||
|
||||
(nFindEditor == FEU_FINDEDITORONLY && !bIsEditor)) {
|
||||
// Failed the check. clear retval.
|
||||
continue;
|
||||
}
|
||||
}
|
||||
// Found one
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return(pRetval);
|
||||
|
||||
}
|
||||
|
||||
// Find the number of active frames of type cxType
|
||||
int CFrameGlue::GetNumActiveFrames(MWContextType cxType, int nFindEditor)
|
||||
{
|
||||
int nCount = 0;
|
||||
CFrameGlue *pRetval = NULL;
|
||||
// Loop through all active frames.
|
||||
POSITION rIndex = m_cplActiveFrameStack.GetHeadPosition();
|
||||
while(rIndex != NULL) {
|
||||
pRetval = (CFrameGlue *)m_cplActiveFrameStack.GetNext(rIndex);
|
||||
|
||||
// See if we can get the type from the context, and verify the type.
|
||||
if(pRetval->GetMainContext() != NULL) {
|
||||
MWContextType cxRetType = pRetval->GetMainContext()->GetContext()->type;
|
||||
if(cxType == MWContextAny || cxRetType == cxType) {
|
||||
// If looking for only Browser, skip an editor frame
|
||||
if (cxType == MWContextBrowser){
|
||||
BOOL bIsEditor = EDT_IS_EDITOR(pRetval->GetMainContext()->GetContext());
|
||||
if((nFindEditor == FEU_FINDBROWSERONLY && bIsEditor) ||
|
||||
(nFindEditor == FEU_FINDEDITORONLY && !bIsEditor)) {
|
||||
|
||||
continue;
|
||||
}
|
||||
}
|
||||
// Found one so increase count.
|
||||
|
||||
nCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return(nCount);
|
||||
|
||||
}
|
||||
|
||||
// Find a browser window by context ID....
|
||||
CFrameGlue *CFrameGlue::FindFrameByID(DWORD dwID, MWContextType cxType)
|
||||
{
|
||||
CFrameGlue *pRetval = NULL;
|
||||
|
||||
// Must have a context first.
|
||||
CAbstractCX *pCX = CAbstractCX::FindContextByID(dwID);
|
||||
if(pCX != NULL) {
|
||||
// Must be a window context.
|
||||
if(pCX->IsFrameContext() == TRUE) {
|
||||
// Make sure the context is of the correct type.
|
||||
if(cxType == MWContextAny || cxType == pCX->GetContext()->type) {
|
||||
pRetval = VOID2CX(pCX, CAbstractCX)->GetFrame();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return(pRetval);
|
||||
}
|
||||
|
||||
// Common command handler for all frames.
|
||||
// Call in your OnCommand derivation.
|
||||
BOOL CFrameGlue::CommonCommand(UINT wParam, LONG lParam) {
|
||||
UINT nID = LOWORD(wParam);
|
||||
|
||||
if (IS_PLACESMENU_ID(nID) || IS_HELPMENU_ID(nID)) {
|
||||
char * url = NULL;
|
||||
if (IS_PLACESMENU_ID(nID))
|
||||
PREF_CopyIndexConfigString("menu.places.item",CASTINT(nID-FIRST_PLACES_MENU_ID),"url",&url);
|
||||
else
|
||||
PREF_CopyIndexConfigString("menu.help.item",CASTINT(nID-FIRST_HELP_MENU_ID),"url",&url);
|
||||
if (!url) return FALSE;
|
||||
|
||||
if(!GetMainContext())
|
||||
return(FALSE);
|
||||
// if we are a browser window and NOT an editor just load it locally
|
||||
if(GetMainContext()->GetContext()->type == MWContextBrowser &&
|
||||
!EDT_IS_EDITOR(GetMainContext()->GetContext()) ){
|
||||
GetMainContext()->NormalGetUrl(url);
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
// look for a browser window we can load into
|
||||
CFrameGlue *pFrameGlue = CFrameGlue::GetLastActiveFrame(MWContextBrowser);
|
||||
if(pFrameGlue != NULL && pFrameGlue->GetMainContext() != NULL) {
|
||||
CAbstractCX * pCX = pFrameGlue->GetMainContext();
|
||||
if (pCX != NULL) {
|
||||
CFrameWnd * pWnd = pFrameGlue->GetFrameWnd();
|
||||
if (pWnd->IsIconic())
|
||||
pWnd->ShowWindow(SW_RESTORE);
|
||||
pWnd->BringWindowToTop();
|
||||
pCX->NormalGetUrl(url);
|
||||
}
|
||||
// pFrameGlue->GetMainContext()->NormalGetUrl(szLoadString(nID + LOAD_URL_COUNT));
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
// if we got here we must not have found a viable window --- create a new one
|
||||
MWContext * pContext = CFE_CreateNewDocWindow(NULL, NULL);
|
||||
ABSTRACTCX(pContext)->NormalGetUrl(url);
|
||||
XP_FREE(url);
|
||||
return(TRUE);
|
||||
} else if ( nID == ID_SECURITY_ADVISOR ) {
|
||||
CAbstractCX *pCX = GetMainContext();
|
||||
if (pCX != NULL)
|
||||
{
|
||||
MWContext * pContext = pCX->GetContext();
|
||||
if (pContext != NULL)
|
||||
{
|
||||
URL_Struct * pURL = pCX->CreateUrlFromHist(TRUE);
|
||||
|
||||
SECNAV_SecurityAdvisor(pContext, pURL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
#define CLIP_BIT 0x80000000L
|
||||
#define GET_CLIP_BIT(x) ( (DWORD)(x) & CLIP_BIT )
|
||||
#define CLIP_COUNT(x) ( (DWORD)(x) & 0x0000FFFFL )
|
||||
|
||||
void CFrameGlue::ClipChildren(CWnd *pWnd, BOOL bSet)
|
||||
{
|
||||
|
||||
// ASSERT( GetFrameWnd()->IsChild(pWnd) );
|
||||
#ifdef _DEBUG
|
||||
if (GetFrameWnd() && !GetFrameWnd()->IsChild(pWnd))
|
||||
TRACE("pWnd is not a child of this frame\n");
|
||||
#endif
|
||||
// If the child window hash table does not exist, then create one
|
||||
if( m_pClipChildMap == NULL ) {
|
||||
m_pClipChildMap = new CMapPtrToPtr();
|
||||
}
|
||||
//
|
||||
// For every window in the hierarchy between pWnd and the top level
|
||||
// frame, set or clear its WS_CLIPCHILDREN style bit.
|
||||
//
|
||||
while( (pWnd = pWnd->GetParent()) != NULL ) {
|
||||
DWORD dwStyle;
|
||||
void *item = 0;
|
||||
void *key = (void*)pWnd->m_hWnd;
|
||||
|
||||
dwStyle = ::GetWindowLong(pWnd->m_hWnd, GWL_STYLE);
|
||||
|
||||
// Add the window to the map if necessary...
|
||||
if( m_pClipChildMap->Lookup(key, item) == FALSE && bSet ) {
|
||||
|
||||
item = (void *)((dwStyle & WS_CLIPCHILDREN) ? CLIP_BIT : 0L);
|
||||
m_pClipChildMap->SetAt(key, item);
|
||||
}
|
||||
|
||||
// Setting the WS_CLIPCHILDREN bit...
|
||||
if( bSet ) {
|
||||
// Set the style the first time...
|
||||
if( CLIP_COUNT(item) == 0 ) {
|
||||
::SetWindowLong(pWnd->m_hWnd, GWL_STYLE,(dwStyle|WS_CLIPCHILDREN));
|
||||
}
|
||||
// Increment the count and save the new state...
|
||||
item = (void *) (((DWORD)item) + 1);
|
||||
m_pClipChildMap->SetAt(key, item);
|
||||
}
|
||||
|
||||
// Clearing the WS_CLIPCHILDREN bit...
|
||||
else if (CLIP_COUNT(item)) {
|
||||
// Decrement the count...
|
||||
item = (void *) (((DWORD)item) - 1);
|
||||
|
||||
// Restore the window to its original state and remove it
|
||||
// from the map.
|
||||
if( CLIP_COUNT(item) == 0 ) {
|
||||
if( GET_CLIP_BIT(item) == 0 ) {
|
||||
::SetWindowLong(pWnd->m_hWnd, GWL_STYLE,
|
||||
(dwStyle & ~WS_CLIPCHILDREN) );
|
||||
}
|
||||
m_pClipChildMap->RemoveKey(key);
|
||||
}
|
||||
// Save the new state...
|
||||
else {
|
||||
m_pClipChildMap->SetAt(key, item);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
BOOL CFrameGlue::RealizePalette(CWnd *pWnd, HWND hFocusWnd,BOOL background)
|
||||
{
|
||||
CWinCX *pWinCX = GetMainWinContext();
|
||||
HDC hdc = pWinCX->GetContextDC();
|
||||
if (hdc) {
|
||||
::SelectPalette(hdc, pWinCX->GetPalette(), background);
|
||||
int colorRealized = ::RealizePalette(hdc);
|
||||
int lCount = XP_ListCount(pWinCX->GetContext()->grid_children);
|
||||
if (lCount) {
|
||||
// Go through each child.
|
||||
MWContext *pChild;
|
||||
XP_List *pTraverse = pWinCX->GetContext()->grid_children;
|
||||
while (pChild = (MWContext *)XP_ListNextObject(pTraverse)) {
|
||||
ASSERT(ABSTRACTCX(pChild)->IsWindowContext());
|
||||
::InvalidateRect(PANECX(pChild)->GetPane(), NULL, TRUE);
|
||||
::UpdateWindow(PANECX(pChild)->GetPane());
|
||||
}
|
||||
}
|
||||
SetIsBackgroundPalette(background);
|
||||
::InvalidateRect(pWinCX->GetPane(), NULL, TRUE);
|
||||
::UpdateWindow(pWinCX->GetPane());
|
||||
#ifdef MOZ_TASKBAR
|
||||
if(theApp.GetTaskBarMgr().IsInitialized() && theApp.GetTaskBarMgr().IsFloating())
|
||||
theApp.GetTaskBarMgr().ChangeTaskBarsPalette(hFocusWnd);
|
||||
#endif /* MOZ_TASKBAR */
|
||||
pWnd->SendMessageToDescendants(WM_PALETTECHANGED, (WPARAM)hFocusWnd);
|
||||
return (colorRealized > 0) ? TRUE : FALSE;
|
||||
}
|
||||
else return FALSE;
|
||||
}
|
||||
|
||||
void CFrameGlue::ClearContext(CAbstractCX *pGone) {
|
||||
// Clear out the appropriate context
|
||||
// fields, if set.
|
||||
// Can't have an active without a main.
|
||||
if(GetMainContext() == pGone) {
|
||||
SetActiveContext(NULL);
|
||||
SetMainContext(NULL);
|
||||
}
|
||||
else if(GetActiveContext() == pGone) {
|
||||
SetActiveContext(NULL);
|
||||
}
|
||||
else if(pGone && pGone->IsGridParent()) {
|
||||
// Need to see if pGone is a parent of the active context.
|
||||
// If so, we need to clear our active context as the child
|
||||
// context won't be able to look us up to call this
|
||||
// function due to the recursive implemenation of
|
||||
// CWinCX::GetFrame() which it uses to make this call
|
||||
MWContext *pChild;
|
||||
XP_List *pTraverse = pGone->GetContext()->grid_children;
|
||||
while((pChild = (MWContext*)XP_ListNextObject(pTraverse))) {
|
||||
ClearContext(ABSTRACTCX(pChild));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// NULL frame implementation, for CFrameGlue when there is no frame.
|
||||
CFrameWnd *CNullFrame::GetFrameWnd() {
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
void CNullFrame::UpdateHistoryDialog() {
|
||||
}
|
||||
|
||||
CAbstractCX *CNullFrame::GetMainContext() const {
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
CAbstractCX *CNullFrame::GetActiveContext() const {
|
||||
return(NULL);
|
||||
}
|
|
@ -1,217 +0,0 @@
|
|||
/* -*- 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 __FrameGlue_H
|
||||
// Avoid include redundancy
|
||||
//
|
||||
#define __FrameGlue_H
|
||||
|
||||
// Purpose: Provide a class from which all frame windows are derived from
|
||||
// so that appropriate aggregation can occur between frames.
|
||||
// Comments: Created mainly because In place frames have a different derivation
|
||||
// tree than normal frame windows. The only way to pass around a
|
||||
// common pointer is to introduce a third class which holds a common
|
||||
// API to the frame windows.
|
||||
// Revision History:
|
||||
// 07-31-95 created GAB
|
||||
//
|
||||
|
||||
// Required Includes
|
||||
//
|
||||
#include "apichrom.h"
|
||||
// Constants
|
||||
//
|
||||
|
||||
|
||||
// Structures
|
||||
//
|
||||
class CFrameGlue {
|
||||
|
||||
// Frames have concepts of multiple contexts.
|
||||
// Provide a way to get the active (or last active) context.
|
||||
// Provide a way to get the Main context (frames should always have one context).
|
||||
private:
|
||||
CAbstractCX *m_pMainContext;
|
||||
CAbstractCX *m_pActiveContext;
|
||||
BOOL m_isBackgroundPalette;
|
||||
|
||||
|
||||
// Need a constructor for initializations....
|
||||
protected:
|
||||
CFrameGlue();
|
||||
public:
|
||||
virtual ~CFrameGlue();
|
||||
|
||||
// How to get the frame glue from a frame window.
|
||||
public:
|
||||
static CFrameGlue *GetFrameGlue(CFrameWnd *pFrame);
|
||||
|
||||
protected:
|
||||
friend class CGenericView; // Views can manipulate the frames active context.
|
||||
friend class CInPlaceFrame;
|
||||
|
||||
void SetMainContext(CAbstractCX *pContext);
|
||||
void SetActiveContext(CAbstractCX *pContext);
|
||||
public:
|
||||
virtual CAbstractCX *GetMainContext() const;
|
||||
virtual CAbstractCX *GetActiveContext() const;
|
||||
// For all those routines that think contexts are window contexts
|
||||
virtual CWinCX *GetMainWinContext() const;
|
||||
virtual CWinCX *GetActiveWinContext() const;
|
||||
BOOL IsBackGroundPalette() {return m_isBackgroundPalette;}
|
||||
void SetIsBackgroundPalette(BOOL flag) {m_isBackgroundPalette = flag;}
|
||||
BOOL RealizePalette(CWnd *pWnd, HWND hFocusWnd,BOOL background);
|
||||
|
||||
void ClearContext(CAbstractCX *pGone);
|
||||
|
||||
// Override this in Editors to return TRUE. Default = FALSE
|
||||
virtual BOOL IsEditFrame();
|
||||
|
||||
protected:
|
||||
IChrome *m_pChrome;
|
||||
|
||||
private:
|
||||
|
||||
BOOL m_bCanRestoreState;
|
||||
int m_iSaveToolBarStyle;
|
||||
BOOL m_bSaveToolBarVisible;
|
||||
BOOL m_bSaveLocationBarVisible;
|
||||
BOOL m_bSaveStarterBarVisible;
|
||||
|
||||
public:
|
||||
void SaveBarState() {
|
||||
m_bCanRestoreState = TRUE;
|
||||
m_bSaveToolBarVisible = m_pChrome->GetToolbarVisible(ID_NAVIGATION_TOOLBAR);
|
||||
m_bSaveLocationBarVisible = m_pChrome->GetToolbarVisible(ID_LOCATION_TOOLBAR) ||
|
||||
m_pChrome->GetToolbarVisible(ID_MESSENGER_INFOBAR);
|
||||
m_bSaveStarterBarVisible = m_pChrome->GetToolbarVisible(ID_PERSONAL_TOOLBAR);
|
||||
}
|
||||
void RestoreBarState() {
|
||||
if(m_bCanRestoreState == TRUE) {
|
||||
m_pChrome->ShowToolbar(ID_NAVIGATION_TOOLBAR, m_bSaveToolBarVisible);
|
||||
m_pChrome->ShowToolbar(ID_LOCATION_TOOLBAR, m_bSaveLocationBarVisible);
|
||||
m_pChrome->ShowToolbar(ID_MESSENGER_INFOBAR, m_bSaveLocationBarVisible);
|
||||
m_pChrome->ShowToolbar(ID_PERSONAL_TOOLBAR, m_bSaveStarterBarVisible);
|
||||
}
|
||||
}
|
||||
|
||||
IChrome *GetChrome() const { return m_pChrome; }
|
||||
|
||||
// You don't necessarily have to use these, but here they are.
|
||||
public:
|
||||
int m_iCSID;
|
||||
|
||||
// Mostly shared prefs.
|
||||
public:
|
||||
XP_Bool m_bShowToolbar;
|
||||
XP_Bool m_bLocationBar;
|
||||
XP_Bool m_bStarter;
|
||||
|
||||
// Keep track of the find replace dialog.
|
||||
// There can be only one.
|
||||
private:
|
||||
CNetscapeFindReplaceDialog *m_pFindReplace;
|
||||
public:
|
||||
BOOL CanFindReplace() const {
|
||||
return(m_pFindReplace == NULL);
|
||||
}
|
||||
void SetFindReplace(CNetscapeFindReplaceDialog *pDialog) {
|
||||
ASSERT(m_pFindReplace == NULL);
|
||||
m_pFindReplace = pDialog;
|
||||
}
|
||||
CNetscapeFindReplaceDialog *GetFindReplace() {
|
||||
return m_pFindReplace;
|
||||
}
|
||||
void ClearFindReplace() {
|
||||
m_pFindReplace = NULL;
|
||||
}
|
||||
|
||||
// Keeping track of the last active frame...
|
||||
protected:
|
||||
static CPtrList m_cplActiveFrameStack;
|
||||
static CPtrList m_cplActiveNotifyCBList;
|
||||
static CPtrList m_cplActiveContextCBList;
|
||||
|
||||
void SetAsActiveFrame();
|
||||
|
||||
public:
|
||||
typedef void (*ActiveNotifyCB)(CFrameGlue *);
|
||||
typedef void (*ActiveContextCB)(CFrameGlue *, CAbstractCX *);
|
||||
|
||||
static void AddActiveNotifyCB( ActiveNotifyCB cb );
|
||||
static void RemoveActiveNotifyCB( ActiveNotifyCB cb );
|
||||
static void AddActiveContextCB( ActiveContextCB cb );
|
||||
static void RemoveActiveContextCB( ActiveContextCB cb );
|
||||
|
||||
static CFrameGlue *GetLastActiveFrame(MWContextType cxType = MWContextAny, int nFindEditor = FEU_FINDBROWSERONLY);
|
||||
|
||||
// bUseSaveInfo is true if custToolbar's save info field should be used to disregard frames if save info is FALSE
|
||||
static CFrameGlue *GetLastActiveFrameByCustToolbarType(CString custToolbar, CFrameWnd *pCurrentFrame, BOOL bUseSaveInfo);
|
||||
static CFrameGlue *GetBottomFrame(MWContextType cxType = MWContextAny, int nFindEditor = FEU_FINDBROWSERONLY);
|
||||
|
||||
static int GetNumActiveFrames(MWContextType cxType = MWContextAny, int nFindEditor = FEU_FINDBROWSERONLY);
|
||||
|
||||
// How to look up a frame window via context ID.
|
||||
|
||||
static CFrameGlue *FindFrameByID(DWORD dwID, MWContextType cxType = MWContextAny);
|
||||
|
||||
// A common command ID handler for all frames.
|
||||
// Should be called by your derived OnCommand implementation.
|
||||
protected:
|
||||
// This is a quick hack until the full security advisor is done.
|
||||
void SecurityDialog();
|
||||
public:
|
||||
BOOL CommonCommand(UINT wParam, LONG lParam);
|
||||
|
||||
// Helper funtion to toggle WS_CLIPCHILDREN for a branch of the frame heirarchy
|
||||
protected:
|
||||
CMapPtrToPtr * m_pClipChildMap;
|
||||
public:
|
||||
void ClipChildren(CWnd *pWnd, BOOL bSet);
|
||||
|
||||
// Pure virtual APIs, must be correctly defined by the deriving frame window class.
|
||||
public:
|
||||
// Access to the CFrameWnd pointer.
|
||||
// This could possibly return NULL if someone is not really a frame window, but
|
||||
// wants to act like one via deriving from CFrameGlue....
|
||||
virtual CFrameWnd *GetFrameWnd() = 0;
|
||||
|
||||
// Updating of the history window, if around.
|
||||
virtual void UpdateHistoryDialog() = 0;
|
||||
virtual void SetSecurityStatus(int) {}
|
||||
};
|
||||
|
||||
class CNullFrame : public CFrameGlue {
|
||||
virtual CAbstractCX *GetMainContext() const;
|
||||
virtual CAbstractCX *GetActiveContext() const;
|
||||
virtual CFrameWnd *GetFrameWnd();
|
||||
virtual void UpdateHistoryDialog();
|
||||
};
|
||||
|
||||
// Global variables
|
||||
//
|
||||
|
||||
// Macros
|
||||
//
|
||||
|
||||
// Function declarations
|
||||
//
|
||||
CFrameGlue *GetFrame(MWContext *pContext);
|
||||
|
||||
|
||||
#endif // __FrameGlue_H
|
|
@ -213,6 +213,7 @@ CGenericFrame::CGenericFrame()
|
|||
else
|
||||
capStyle = DT_LEFT; // for NT 4.0 and Win95
|
||||
#endif
|
||||
m_bFreezeFrame = FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
@ -880,7 +881,6 @@ BEGIN_MESSAGE_MAP(CGenericFrame, CFrameWnd)
|
|||
ON_COMMAND(ID_COMMAND_PAGE_FROM_WIZARD, OnPageFromWizard)
|
||||
ON_REGISTERED_MESSAGE(WM_HELPMSG, OnHelpMsg)
|
||||
|
||||
|
||||
#ifdef ON_COMMAND_RANGE
|
||||
ON_COMMAND_RANGE(ID_OPTIONS_ENCODING_1, ID_OPTIONS_ENCODING_70, OnToggleEncoding)
|
||||
ON_UPDATE_COMMAND_UI_RANGE(ID_OPTIONS_ENCODING_1, ID_OPTIONS_ENCODING_70, OnUpdateEncoding)
|
||||
|
@ -927,6 +927,8 @@ BEGIN_MESSAGE_MAP(CGenericFrame, CFrameWnd)
|
|||
#ifdef DEBUG_WHITEBOX
|
||||
ON_COMMAND(IDS_WHITEBOX_MENU, OnWhiteBox)
|
||||
#endif
|
||||
ON_COMMAND(ID_TOGGLE_FREEZE_FRAME, OnToggleFreezeFrame)
|
||||
ON_UPDATE_COMMAND_UI(ID_TOGGLE_FREEZE_FRAME, OnUpdateToggleFreezeFrame)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -3391,6 +3393,17 @@ LONG CGenericFrame::OnHackedMouseWheel(WPARAM wParam, LPARAM lParam)
|
|||
}
|
||||
#endif
|
||||
|
||||
void CGenericFrame::OnToggleFreezeFrame()
|
||||
{
|
||||
m_bFreezeFrame = !m_bFreezeFrame;
|
||||
}
|
||||
|
||||
void CGenericFrame::OnUpdateToggleFreezeFrame( CCmdUI *pCmdUI )
|
||||
{
|
||||
pCmdUI->SetCheck(m_bFreezeFrame);
|
||||
pCmdUI->Enable(TRUE);
|
||||
}
|
||||
|
||||
// Call to start a new Browser window with supplied URL
|
||||
// or load homepage if none supplied
|
||||
|
||||
|
@ -3411,5 +3424,3 @@ MWContext * wfe_CreateNavigator(char * pUrl)
|
|||
// Always create a new context
|
||||
return CFE_CreateNewDocWindow(NULL, pUrlStruct );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -389,8 +389,15 @@ protected:
|
|||
#ifdef DEBUG_WHITEBOX
|
||||
afx_msg void OnWhiteBox();
|
||||
#endif
|
||||
afx_msg void OnToggleFreezeFrame();
|
||||
afx_msg void OnUpdateToggleFreezeFrame( CCmdUI *pCmdUI );
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
public:
|
||||
BOOL IsFrozenFrame() {return m_bFreezeFrame; }
|
||||
private:
|
||||
BOOL m_bFreezeFrame;
|
||||
|
||||
#ifdef EDITOR
|
||||
public:
|
||||
// Load a URL into a new edit window,
|
||||
|
|
|
@ -1,334 +0,0 @@
|
|||
/* -*- 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.
|
||||
*/
|
||||
|
||||
#include "pch.h"
|
||||
#include "edpref.h"
|
||||
#include "pages.h"
|
||||
#include "edprefid.h"
|
||||
#include "prefuiid.h"
|
||||
#include "isppageo.h"
|
||||
#include <assert.h>
|
||||
#define NUM_EDITOR_PAGES 3
|
||||
|
||||
// Create a new instance of our derived class and return it.
|
||||
CComDll *
|
||||
DLL_ConsumerCreateInstance()
|
||||
{
|
||||
return new CEditorPrefsDll;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Global new/delete operators
|
||||
|
||||
// Override the global new/delete operators to allocate memory owned by the
|
||||
// application and not by the DLL; _fmalloc calls GlobalAlloc with GMEM_SHARE
|
||||
// for DLLs and that means the memory will not be freed until the DLL is
|
||||
// unloaded. _fmalloc only maintains one heap for a DLL which is shared by
|
||||
// all applications that use the DLL
|
||||
#ifndef _WIN32
|
||||
void *
|
||||
operator new (size_t size)
|
||||
{
|
||||
return CoTaskMemAlloc(size);
|
||||
}
|
||||
|
||||
void
|
||||
operator delete (void *lpMem)
|
||||
{
|
||||
CoTaskMemFree(lpMem);
|
||||
}
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CSpecifyPropertyPageObjects
|
||||
|
||||
class CSpecifyPropertyPageObjects : public ISpecifyPropertyPageObjects {
|
||||
public:
|
||||
CSpecifyPropertyPageObjects();
|
||||
|
||||
// IUnknown methods
|
||||
STDMETHODIMP QueryInterface(REFIID riid, LPVOID FAR* ppvObj);
|
||||
STDMETHODIMP_(ULONG) AddRef();
|
||||
STDMETHODIMP_(ULONG) Release();
|
||||
|
||||
private:
|
||||
ULONG m_uRef;
|
||||
};
|
||||
|
||||
CSpecifyPropertyPageObjects::CSpecifyPropertyPageObjects()
|
||||
{
|
||||
m_uRef = 0;
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
CSpecifyPropertyPageObjects::QueryInterface(REFIID riid, LPVOID FAR* ppvObj)
|
||||
{
|
||||
*ppvObj = NULL;
|
||||
|
||||
if (riid == IID_IUnknown || riid == IID_ISpecifyPropertyPageObjects)
|
||||
*ppvObj = (LPVOID)this;
|
||||
|
||||
if (*ppvObj) {
|
||||
AddRef();
|
||||
return NOERROR;
|
||||
}
|
||||
|
||||
return ResultFromScode(E_NOINTERFACE);
|
||||
}
|
||||
|
||||
STDMETHODIMP_(ULONG)
|
||||
CSpecifyPropertyPageObjects::AddRef()
|
||||
{
|
||||
return ++m_uRef;
|
||||
}
|
||||
|
||||
STDMETHODIMP_(ULONG)
|
||||
CSpecifyPropertyPageObjects::Release()
|
||||
{
|
||||
if (--m_uRef == 0) {
|
||||
#ifdef _DEBUG
|
||||
OutputDebugString("Destroying CSpecifyPropertyPageObjects object.\n");
|
||||
#endif
|
||||
delete this;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return m_uRef;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CEditorCategory
|
||||
|
||||
class CEditorCategory : public CSpecifyPropertyPageObjects {
|
||||
public:
|
||||
// ISpecifyPropertyPageObjects methods
|
||||
STDMETHODIMP GetPageObjects(CAPPAGE *pPages);
|
||||
};
|
||||
|
||||
STDMETHODIMP
|
||||
CEditorCategory::GetPageObjects(CAPPAGE *pPages)
|
||||
{
|
||||
if (!pPages)
|
||||
return ResultFromScode(E_POINTER);
|
||||
|
||||
pPages->cElems = NUM_EDITOR_PAGES;
|
||||
pPages->pElems = (LPPROPERTYPAGE *)CoTaskMemAlloc(pPages->cElems * sizeof(LPPROPERTYPAGE));
|
||||
if (!pPages->pElems)
|
||||
return ResultFromScode(E_OUTOFMEMORY);
|
||||
|
||||
pPages->pElems[0] = new CEditorPrefs;
|
||||
pPages->pElems[1] = new CPublishPrefs;
|
||||
pPages->pElems[2] = new CEditorPrefs2;
|
||||
|
||||
for (ULONG i = 0; i < pPages->cElems; i++)
|
||||
pPages->pElems[i]->AddRef();
|
||||
|
||||
return NOERROR;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Class CPropertyPageFactory
|
||||
|
||||
// Class factory for our property pages. We use the same C++ class
|
||||
// to handle all of our CLSIDs
|
||||
class CPropertyPageFactory : public IClassFactory {
|
||||
public:
|
||||
CPropertyPageFactory(REFCLSID rClsid);
|
||||
|
||||
// *** IUnknown methods ***
|
||||
STDMETHODIMP QueryInterface(REFIID, LPVOID FAR*);
|
||||
STDMETHODIMP_(ULONG) AddRef();
|
||||
STDMETHODIMP_(ULONG) Release();
|
||||
|
||||
// *** IClassFactory methods ***
|
||||
STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID FAR*);
|
||||
STDMETHODIMP LockServer(BOOL bLock);
|
||||
|
||||
private:
|
||||
CRefDll m_refDll;
|
||||
ULONG m_uRef;
|
||||
CLSID m_clsid;
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CPropertyPageFactory implementation
|
||||
|
||||
CPropertyPageFactory::CPropertyPageFactory(REFCLSID rClsid)
|
||||
{
|
||||
m_uRef = 0;
|
||||
m_clsid = rClsid;
|
||||
}
|
||||
|
||||
// *** IUnknown methods ***
|
||||
STDMETHODIMP CPropertyPageFactory::QueryInterface(REFIID riid, LPVOID FAR* ppvObj)
|
||||
{
|
||||
*ppvObj = NULL;
|
||||
|
||||
if (riid == IID_IUnknown || riid == IID_IClassFactory)
|
||||
*ppvObj = (LPVOID)this;
|
||||
|
||||
if (*ppvObj) {
|
||||
AddRef();
|
||||
return NOERROR;
|
||||
}
|
||||
|
||||
return ResultFromScode(E_NOINTERFACE);
|
||||
}
|
||||
|
||||
|
||||
STDMETHODIMP_(ULONG) CPropertyPageFactory::AddRef()
|
||||
{
|
||||
return ++m_uRef;
|
||||
}
|
||||
|
||||
|
||||
STDMETHODIMP_(ULONG) CPropertyPageFactory::Release(void)
|
||||
{
|
||||
if (--m_uRef == 0) {
|
||||
#ifdef _DEBUG
|
||||
OutputDebugString("Destroying CPropertyPageFactory class object.\n");
|
||||
#endif
|
||||
delete this;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return m_uRef;
|
||||
}
|
||||
|
||||
|
||||
// *** IClassFactory methods ***
|
||||
STDMETHODIMP CPropertyPageFactory::CreateInstance(LPUNKNOWN pUnkOuter, REFIID riid, LPVOID FAR* ppvObj)
|
||||
{
|
||||
// We do not support aggregation
|
||||
if (pUnkOuter)
|
||||
return ResultFromScode(CLASS_E_NOAGGREGATION);
|
||||
|
||||
#ifdef _DEBUG
|
||||
OutputDebugString("CPropertyPageFactory::CreateInstance() called.\n");
|
||||
#endif
|
||||
LPSPECIFYPROPERTYPAGEOBJECTS pCategory;
|
||||
|
||||
if (m_clsid == CLSID_EditorPrefs)
|
||||
pCategory = new CEditorCategory;
|
||||
|
||||
if (!pCategory)
|
||||
return ResultFromScode(E_OUTOFMEMORY);
|
||||
|
||||
pCategory->AddRef();
|
||||
HRESULT hRes = pCategory->QueryInterface(riid, ppvObj);
|
||||
pCategory->Release();
|
||||
return hRes;
|
||||
}
|
||||
|
||||
|
||||
STDMETHODIMP CPropertyPageFactory::LockServer(BOOL bLock)
|
||||
{
|
||||
CComDll *pDll = CProcess::GetProcessDll();
|
||||
HRESULT hres;
|
||||
|
||||
assert(pDll);
|
||||
hres = CoLockObjectExternal(pDll, bLock, TRUE);
|
||||
pDll->Release();
|
||||
return hres;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CEditorPrefsDll implementation
|
||||
|
||||
HRESULT
|
||||
CEditorPrefsDll::GetClassObject(REFCLSID rClsid, REFIID riid, LPVOID *ppObj)
|
||||
{
|
||||
HRESULT hres = ResultFromScode(E_UNEXPECTED);
|
||||
*ppObj = NULL;
|
||||
|
||||
#ifdef _DEBUG
|
||||
OutputDebugString("CEditorPrefsDll::GetClassObject() called.\n");
|
||||
#endif
|
||||
|
||||
// See if we have that particular class object.
|
||||
if (rClsid == CLSID_EditorPrefs) {
|
||||
// Create a class object
|
||||
CPropertyPageFactory *pFactory = new CPropertyPageFactory(rClsid);
|
||||
|
||||
if (!pFactory)
|
||||
return ResultFromScode(E_OUTOFMEMORY);
|
||||
|
||||
// Get the desired interface. Note if the QueryInterface fails, the Release
|
||||
// will delete the class object
|
||||
pFactory->AddRef();
|
||||
hres = pFactory->QueryInterface(riid, ppObj);
|
||||
pFactory->Release();
|
||||
|
||||
} else {
|
||||
hres = ResultFromScode(CLASS_E_CLASSNOTAVAILABLE);
|
||||
}
|
||||
|
||||
return hres;
|
||||
}
|
||||
|
||||
// Return array of implemented CLSIDs by this DLL. Allocated
|
||||
// memory freed by caller.
|
||||
const CLSID **
|
||||
CEditorPrefsDll::GetCLSIDs()
|
||||
{
|
||||
const CLSID **ppRetval = (const CLSID **)CoTaskMemAlloc(sizeof(CLSID *) * 2);
|
||||
|
||||
if (ppRetval) {
|
||||
ppRetval[0] = &CLSID_EditorPrefs;
|
||||
ppRetval[1] = NULL;
|
||||
}
|
||||
|
||||
return ppRetval;
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
BOOL WINAPI
|
||||
DllMain(HINSTANCE hInstance, DWORD fdwReason, LPVOID lpvReserved)
|
||||
{
|
||||
switch (fdwReason) {
|
||||
case DLL_PROCESS_ATTACH:
|
||||
// The DLL is being loaded for the first time by a given process
|
||||
CComDll::m_hInstance = hInstance;
|
||||
break;
|
||||
|
||||
case DLL_PROCESS_DETACH:
|
||||
// The DLL is being unloaded by a given process
|
||||
break;
|
||||
|
||||
case DLL_THREAD_ATTACH:
|
||||
// A thread is being created in a process that has already loaded
|
||||
// this DLL
|
||||
break;
|
||||
|
||||
case DLL_THREAD_DETACH:
|
||||
// A thread is exiting cleanly in a process that has already
|
||||
// loaded this DLL
|
||||
break;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
#else
|
||||
extern "C" int CALLBACK
|
||||
LibMain(HINSTANCE hInstance, WORD wDataSeg, WORD cbHeapSize, LPSTR)
|
||||
{
|
||||
CComDll::m_hInstance = hInstance;
|
||||
return TRUE;
|
||||
}
|
||||
#endif
|
||||
|
|
@ -1,197 +0,0 @@
|
|||
/* -*- 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.
|
||||
*/
|
||||
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
#if !defined(_WIN32)
|
||||
#define ES_NUMBER 0
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"#if !defined(_WIN32)\r\n"
|
||||
"#define ES_NUMBER 0\r\n"
|
||||
"#endif\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_PREF_EDITOR DIALOG DISCARDABLE 0, 0, 256, 190
|
||||
STYLE WS_CHILD | WS_CLIPSIBLINGS
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
GROUPBOX "",IDC_STATIC,7,7,241,47,WS_GROUP
|
||||
LTEXT "Author &Name:",IDC_STATIC,17,19,49,8
|
||||
EDITTEXT IDC_EDIT_AUTHOR,68,17,162,12,ES_AUTOHSCROLL
|
||||
CONTROL "&Automatically save page every",IDC_AUTO_SAVE,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,17,36,116,10
|
||||
LTEXT "&minutes",IDC_STATIC,165,37,48,8
|
||||
EDITTEXT IDC_AUTO_SAVE_MINUTES,136,35,25,12,ES_AUTOHSCROLL
|
||||
GROUPBOX "External Editors ",IDC_STATIC,7,57,241,70
|
||||
LTEXT "&HTML Source:",IDC_STATIC,17,68,52,9
|
||||
EDITTEXT IDC_HTML_EDITOR,16,79,159,12,ES_AUTOHSCROLL
|
||||
PUSHBUTTON "&Choose...",IDC_CHOOSE_HTML_EDITOR,182,79,52,14
|
||||
LTEXT "&Images:",IDC_STATIC,17,95,52,9
|
||||
EDITTEXT IDC_IMAGE_EDITOR,16,106,159,12,ES_AUTOHSCROLL
|
||||
PUSHBUTTON "Ch&oose",IDC_CHOOSE_IMAGE_EDITOR,182,106,52,14
|
||||
GROUPBOX "Font Size Mode ",IDC_STATIC,7,131,241,55
|
||||
CONTROL "Show relative size as points based on your Navigator font sizes",
|
||||
IDC_FONTSIZE_MODE,"Button",BS_AUTORADIOBUTTON | WS_GROUP |
|
||||
WS_TABSTOP,17,143,225,10
|
||||
CONTROL "Show relative HTML font scale: -2, -1, 0, +1, +2, +3, +4",
|
||||
IDC_FONTSIZE_MODE2,"Button",BS_AUTORADIOBUTTON,17,156,
|
||||
224,10
|
||||
CONTROL "Show relative HTML scale and absolute ""point-size"" attributes",
|
||||
IDC_FONTSIZE_MODE3,"Button",BS_AUTORADIOBUTTON,17,169,
|
||||
224,10
|
||||
END
|
||||
|
||||
IDD_PREF_PUBLISH DIALOG DISCARDABLE 0, 0, 256, 190
|
||||
STYLE WS_CHILD | WS_CLIPSIBLINGS
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
GROUPBOX "Links and images ",IDC_STATIC,7,7,241,108,WS_GROUP
|
||||
LTEXT "When saving remote pages...",IDC_STATIC,17,18,194,8
|
||||
CONTROL "&Maintain links",IDC_AUTOADJUST_LINKS,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,27,30,182,10
|
||||
CONTROL "&Keep images with page",IDC_KEEP_IMAGE_WITH_DOC,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,27,63,119,10
|
||||
LTEXT "Adjust links to work from the page's location. (Links to local pages will work when local versions exist.)",
|
||||
IDC_STATIC,40,40,202,18
|
||||
LTEXT "Save copies of images to the page's location.\nImages will always appear in local version of the page and when page is published.",
|
||||
IDC_STATIC,40,73,206,25
|
||||
LTEXT "Tip: Check both options if you will be using remote publishing.",
|
||||
IDC_STATIC,17,102,219,9
|
||||
GROUPBOX "Default publishing location ",IDC_STATIC,7,121,241,67
|
||||
LTEXT "Enter a FTP or HTTP site address to &Publish to:",
|
||||
IDC_STATIC,17,132,201,8
|
||||
EDITTEXT IDC_PUBLISH_FTP,17,142,224,12,ES_AUTOHSCROLL
|
||||
LTEXT "If publishing to a FTP site, enter the HTTP address to &browse to:",
|
||||
IDC_STATIC,17,160,223,9
|
||||
EDITTEXT IDC_PUBLISH_HTTP,17,170,224,12,ES_AUTOHSCROLL
|
||||
END
|
||||
|
||||
IDD_PREF_EDITOR2 DIALOG DISCARDABLE 0, 0, 186, 94
|
||||
STYLE WS_CHILD | WS_CLIPSIBLINGS
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
CONTROL "Page Up/Down Moves Cursor",IDC_PAGEUPDOWN,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,7,7,111,10
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO DISCARDABLE
|
||||
BEGIN
|
||||
IDD_PREF_EDITOR, DIALOG
|
||||
BEGIN
|
||||
RIGHTMARGIN, 248
|
||||
BOTTOMMARGIN, 186
|
||||
END
|
||||
|
||||
IDD_PREF_EDITOR2, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 179
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 87
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Table
|
||||
//
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDD_PREF_EDITOR "Composer\nSet general preferences for authoring Web pages"
|
||||
IDD_PREF_PUBLISH "Publishing\nDesignate the default publishing location"
|
||||
IDS_APP_FILTER "Executable (*.exe)\n*.exe\nAll Files (*.*)\n*.*\n\n"
|
||||
IDS_CHOOSE_HTML_EDITOR "Choose HTML Editor Application"
|
||||
IDS_CHOOSE_IMAGE_EDITOR "Choose Image Editor Application"
|
||||
IDD_PREF_EDITOR2 "Navigational\nSet general navigational preferences for authoring Web pages"
|
||||
END
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
|
@ -1,818 +0,0 @@
|
|||
/* -*- 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 EDITOR
|
||||
#define EDITOR
|
||||
#endif
|
||||
|
||||
//
|
||||
// EDITOR.RC2 - resources App Studio does not edit directly
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#error this file is not editable by App Studio
|
||||
#endif //APSTUDIO_INVOKED
|
||||
|
||||
|
||||
#ifdef EDITOR
|
||||
#include "..\..\..\lib\libparse\pa_tags.h" // interface to layout tag defines
|
||||
#include "..\edres2.h"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Page Composer Menu
|
||||
//
|
||||
|
||||
IDR_EDITFRAME MENU PRELOAD DISCARDABLE
|
||||
BEGIN
|
||||
POPUP "&File"
|
||||
BEGIN
|
||||
POPUP "&New"
|
||||
BEGIN
|
||||
MENUITEM "&Navigator Window\tCtrl+N", ID_NEW_FRAME
|
||||
MENUITEM "&Message\tCtrl+M", ID_FILE_MAILNEW
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Blank &Page\tCtrl+Shift+N", ID_EDT_NEW_DOC_BLANK
|
||||
MENUITEM "Page From &Template...", ID_EDT_NEW_DOC_FROM_TEMPLATE
|
||||
MENUITEM "Page From &Wizard..." ID_COMMAND_PAGE_FROM_WIZARD
|
||||
END
|
||||
MENUITEM "&Open Page...\tCtrl+O", ID_FILE_OPENURL
|
||||
POPUP "Open &Recent"
|
||||
BEGIN
|
||||
MENUITEM "{URL list}" ID_EDIT_HISTORY_BASE
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Save\tCtrl+S", ID_EDT_FILE_SAVE
|
||||
MENUITEM "Save &As...", ID_EDT_FILE_SAVEAS
|
||||
MENUITEM "P&ublish...", ID_FILE_PUBLISH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Sen&d Page", ID_FILE_MAILTO
|
||||
MENUITEM "Preview in &Browser" ID_OPEN_NAV_WINDOW
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Page Se&tup...", ID_FILE_PAGE_SETUP
|
||||
MENUITEM "Print Pre&view", ID_FILE_PRINT_PREVIEW
|
||||
MENUITEM "&Print...", ID_FILE_PRINT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Close\tCtrl+W", ID_FILE_CLOSE
|
||||
MENUITEM "E&xit\tCtrl+Q", ID_APP_EXIT
|
||||
END
|
||||
POPUP "&Edit"
|
||||
BEGIN
|
||||
MENUITEM "{&U&R}", ID_EDIT_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Cu&t\tCtrl+X", ID_EDIT_CUT
|
||||
MENUITEM "&Copy\tCtrl+C", ID_EDIT_COPY
|
||||
MENUITEM "&Paste\tCtrl+V", ID_EDIT_PASTE
|
||||
MENUITEM "Paste Charater St&yle\tCtrl+Shift+V" ID_PASTE_CHARACTER_STYLE
|
||||
MENUITEM "&Delete\tDel" ID_EDIT_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Remove Lin&k", ID_REMOVE_LINKS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Select &All\tCtrl+A", ID_EDIT_SELECTALL
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Find in Page...\tCtrl+F", ID_EDIT_FINDINCURRENT
|
||||
MENUITEM "Find A&gain\tF3", ID_EDIT_FINDAGAIN
|
||||
// Restore when implemented:
|
||||
// MENUITEM "&Replace...", ID_EDT_FINDREPLACE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&HTML Source", ID_FILE_EDITSOURCE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Pr&eferences...", ID_OPTIONS_PREFERENCES
|
||||
END
|
||||
POPUP "&View"
|
||||
BEGIN
|
||||
// Filled in at runtime - MNEMONIC IS SHOWN
|
||||
MENUITEM "{&C}", ID_OPT_EDITBAR_TOGGLE
|
||||
MENUITEM "{&F}", ID_OPT_CHARBAR_TOGGLE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "{&P}", ID_EDIT_DISPLAY_PARAGRAPH_MARKS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Reload", ID_NAVIGATE_RELOAD
|
||||
MENUITEM "Show &Images", ID_VIEW_LOADIMAGES
|
||||
MENUITEM "Refres&h", ID_NAVIGATE_REPAINT
|
||||
MENUITEM "&Stop Loading\t<Esc>", ID_NAVIGATE_INTERRUPT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Page So&urce", ID_FILE_VIEWSOURCE
|
||||
MENUITEM "Page I&nfo", ID_FILE_DOCINFO
|
||||
POPUP "C&haracter Set"
|
||||
BEGIN
|
||||
MENUITEM "Western (ISO-8859-1)", ID_OPTIONS_ENCODING_1
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Central European (ISO-8859-2)", ID_OPTIONS_ENCODING_2
|
||||
MENUITEM "Central European (Windows-1250)", ID_OPTIONS_ENCODING_11
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Japanese (Auto-Detect)", ID_OPTIONS_ENCODING_3
|
||||
MENUITEM "Japanese (Shift_JIS)", ID_OPTIONS_ENCODING_4
|
||||
MENUITEM "Japanese (EUC-JP)", ID_OPTIONS_ENCODING_5
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Traditional Chinese (Big5)", ID_OPTIONS_ENCODING_6
|
||||
MENUITEM "Traditional Chinese (EUC-TW)", ID_OPTIONS_ENCODING_7
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Simplified Chinese (GB2312)", ID_OPTIONS_ENCODING_8
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Korean (Auto-Detect)", ID_OPTIONS_ENCODING_9
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Cyrillic (KOI8-R)", ID_OPTIONS_ENCODING_14
|
||||
MENUITEM "Cyrillic (ISO-8859-5)", ID_OPTIONS_ENCODING_13
|
||||
MENUITEM "Cyrillic (Windows-1251)", ID_OPTIONS_ENCODING_12
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Armenian (ArmSCII-8)", ID_OPTIONS_ENCODING_21
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Thai (TIS-620)", ID_OPTIONS_ENCODING_22
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Greek (Windows-1253)", ID_OPTIONS_ENCODING_16
|
||||
MENUITEM "Greek (ISO-8859-7)", ID_OPTIONS_ENCODING_15
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Turkish (ISO-8859-9)", ID_OPTIONS_ENCODING_17
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Vietnamese (VISCII)", ID_OPTIONS_ENCODING_23
|
||||
MENUITEM "Vietnamese (VIQR)", ID_OPTIONS_ENCODING_26
|
||||
MENUITEM "Vietnamese (VPS)", ID_OPTIONS_ENCODING_24
|
||||
MENUITEM "Vietnamese (TCVN)", ID_OPTIONS_ENCODING_25
|
||||
MENUITEM "Vietnamese (VNI)", ID_OPTIONS_ENCODING_27
|
||||
MENUITEM "Vietnamese (Windows-1258)", ID_OPTIONS_ENCODING_28
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Unicode (UTF-8)", ID_OPTIONS_ENCODING_18
|
||||
MENUITEM "Unicode (UTF-7)", ID_OPTIONS_ENCODING_20
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "User-Defined" ID_OPTIONS_ENCODING_10
|
||||
END
|
||||
END
|
||||
POPUP "&Insert"
|
||||
BEGIN
|
||||
MENUITEM "&Link...\tCtrl+Shift+L", ID_INSERT_LINK
|
||||
MENUITEM "T&arget...", ID_INSERT_TARGET
|
||||
MENUITEM "&Image...", ID_INSERT_IMAGE
|
||||
MENUITEM "H&orizontal Line", ID_INSERT_HRULE
|
||||
MENUITEM "&Table..." ID_INSERT_TABLE
|
||||
MENUITEM "&HTML Tag...", ID_INSERT_TAG
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&New Line Break\tShift+Enter" ID_INSERT_LINE_BREAK
|
||||
MENUITEM "&Break below Image(s)" ID_INSERT_BREAK_BOTH
|
||||
END
|
||||
POPUP "F&ormat"
|
||||
BEGIN
|
||||
// Font face items are added at runtime
|
||||
POPUP "&Font"
|
||||
BEGIN
|
||||
MENUITEM "{}" ID_FORMAT_FONTFACE_BASE
|
||||
END
|
||||
// All of these items are added at runtime
|
||||
POPUP "Si&ze"
|
||||
BEGIN
|
||||
MENUITEM "{}" ID_FORMAT_FONTSIZE_BASE
|
||||
END
|
||||
POPUP "&Style"
|
||||
BEGIN
|
||||
MENUITEM "&Bold\tCtrl+B" ID_FORMAT_CHAR_BOLD
|
||||
MENUITEM "&Italic\tCtrl+I" ID_FORMAT_CHAR_ITALIC
|
||||
MENUITEM "&Underline\tCtrl+U" ID_FORMAT_CHAR_UNDERLINE
|
||||
MENUITEM "S&trikethrough" ID_FORMAT_CHAR_STRIKEOUT
|
||||
MENUITEM "Su&perscript" ID_FORMAT_CHAR_SUPER
|
||||
MENUITEM "&Subscript" ID_FORMAT_CHAR_SUB
|
||||
MENUITEM "Blin&king" ID_FORMAT_CHAR_BLINK
|
||||
MENUITEM "&Nonbreaking" ID_FORMAT_CHAR_NOBREAKS
|
||||
END
|
||||
MENUITEM "Text &Color...", ID_GET_COLOR // ID_FORMAT_FONTCOLOR
|
||||
MENUITEM "Apply Last-Copied &Style\tCtrl+Y" ID_PASTE_CHARACTER_STYLE
|
||||
MENUITEM "&Remove All Styles\tCtrl+K" ID_FORMAT_CHAR_NONE
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "&Heading"
|
||||
BEGIN
|
||||
MENUITEM "&1", ID_FORMAT_PARAGRAPH_BASE+P_HEADER_1
|
||||
MENUITEM "&2", ID_FORMAT_PARAGRAPH_BASE+P_HEADER_2
|
||||
MENUITEM "&3", ID_FORMAT_PARAGRAPH_BASE+P_HEADER_3
|
||||
MENUITEM "&4", ID_FORMAT_PARAGRAPH_BASE+P_HEADER_4
|
||||
MENUITEM "&5", ID_FORMAT_PARAGRAPH_BASE+P_HEADER_5
|
||||
MENUITEM "&6", ID_FORMAT_PARAGRAPH_BASE+P_HEADER_6
|
||||
END
|
||||
POPUP "&Paragraph"
|
||||
BEGIN
|
||||
MENUITEM "&Normal", ID_FORMAT_PARAGRAPH_BASE+P_NSDT
|
||||
MENUITEM "&Address", ID_FORMAT_PARAGRAPH_BASE+P_ADDRESS
|
||||
MENUITEM "&Formatted", ID_FORMAT_PARAGRAPH_BASE+P_PREFORMAT
|
||||
MENUITEM "&Term Name" ID_FORMAT_PARAGRAPH_BASE+P_DESC_TITLE
|
||||
MENUITEM "&Definition" ID_FORMAT_PARAGRAPH_BASE+P_DESC_TEXT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Blockquote" ID_FORMAT_PARAGRAPH_BASE+P_BLOCKQUOTE
|
||||
END
|
||||
POPUP "&List"
|
||||
BEGIN
|
||||
MENUITEM "N&one" ID_REMOVE_LIST
|
||||
MENUITEM "&Bulletted" ID_FORMAT_PARAGRAPH_BASE+P_UNUM_LIST
|
||||
MENUITEM "&Numbered" ID_FORMAT_PARAGRAPH_BASE+P_NUM_LIST
|
||||
MENUITEM "&Definition" ID_FORMAT_PARAGRAPH_BASE+P_DESC_LIST
|
||||
END
|
||||
POPUP "&Align"
|
||||
BEGIN
|
||||
MENUITEM "&Left\tCtrl+L", ID_ALIGN_LEFT
|
||||
MENUITEM "&Center\tCtrl+E", ID_ALIGN_CENTER
|
||||
MENUITEM "&Right\tCtrl+R", ID_ALIGN_RIGHT
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Increase Indent\tCtrl =" ID_FORMAT_INDENT
|
||||
MENUITEM "&Decrease Indent\tCtrl -" ID_FORMAT_OUTDENT
|
||||
MENUITEM SEPARATOR
|
||||
// <object> Pr&operties
|
||||
MENUITEM "{&o}" ID_PROPS_LOCAL
|
||||
MENUITEM "Page &Title and Properties" ID_PROPS_DOCUMENT
|
||||
MENUITEM "&Background and Page Colors" ID_PROPS_DOC_COLOR
|
||||
END
|
||||
POPUP "T&able"
|
||||
BEGIN
|
||||
// Will be replaced with IDM_COMPOSER_TABLE_INSERTMENU
|
||||
MENUITEM "{&I}" ID_INSERT_TABLE
|
||||
// Will be replaced with IDM_COMPOSER_TABLE_DELETEMENU
|
||||
MENUITEM "{&D}" ID_DELETE_TABLE
|
||||
// Will be replaced with IDM_COMPOSER_TABLE_SELECTMENU
|
||||
MENUITEM "{&S}" ID_SELECT_TABLE
|
||||
// Will be replaced with IDM_COMPOSER_TABLE_PASTEMENU
|
||||
MENUITEM "{&P}" ID_PASTE_TABLE
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "&Align Table"
|
||||
BEGIN
|
||||
MENUITEM "&Left", ID_ALIGN_TABLE_LEFT
|
||||
MENUITEM "&Center", ID_ALIGN_TABLE_CENTER
|
||||
MENUITEM "&Right", ID_ALIGN_TABLE_RIGHT
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
// Join selected cells or with cell to the right
|
||||
MENUITEM "{&J}" ID_MERGE_TABLE_CELLS
|
||||
MENUITEM "Spli&t Cell" ID_SPLIT_TABLE_CELL
|
||||
// "&Convert Text To Table" or "&Convert Table To Text"
|
||||
MENUITEM "{&C}" ID_TABLE_TEXT_CONVERT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Properties" ID_PROPS_TABLE
|
||||
END
|
||||
// Translate this menu group string and the string IDS_TOOLS_MENU(in editor.rc) identically.
|
||||
// The code tries to find this menu entry using the string resource.
|
||||
POPUP "&Tools"
|
||||
BEGIN
|
||||
MENUITEM "Check &Spelling..." ID_CHECK_SPELLING
|
||||
|
||||
// Don't translate this entry. It is replaced at runtime.
|
||||
MENUITEM "{Editor Plug-ins}" ID_EDITOR_PLUGINS_BASE
|
||||
MENUITEM "Stop Active &Plug-in" ID_STOP_EDITOR_PLUGIN
|
||||
END
|
||||
#ifndef MOZ_COMMUNICATOR_NAME
|
||||
POPUP "&Window"
|
||||
#else
|
||||
POPUP "&Communicator"
|
||||
#endif /* MOZ_COMMUNICATOR_NAME */
|
||||
BEGIN
|
||||
MENUITEM "&Navigator\tCtrl+1", ID_TOOLS_WEB
|
||||
#ifdef MOZ_MAIL_NEWS
|
||||
MENUITEM "&Messenger\tCtrl+2", ID_TOOLS_INBOX
|
||||
#endif /* MOZ_MAIL_NEWS */
|
||||
#ifdef EDITOR
|
||||
MENUITEM "&Page Composer\tCtrl+4", ID_TOOLS_EDITOR
|
||||
#endif /* EDITOR */
|
||||
#ifdef MOZ_MAIL_NEWS
|
||||
MENUITEM "&Conference\tCtrl+5", ID_WINDOW_LIVECALL
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Messa&ge Center\tCtrl+Shift+1", ID_TOOLS_MAIL
|
||||
MENUITEM "&Address Book\tCtrl+Shift+2", ID_TOOLS_ADDRESSBOOK
|
||||
#endif /* MOZ_MAIL_NEWS */
|
||||
POPUP "&Bookmarks"
|
||||
BEGIN
|
||||
MENUITEM "Ad&d Bookmark\tCtrl+D", ID_HOTLIST_ADDCURRENTTOHOTLIST
|
||||
POPUP "&File Bookmark"
|
||||
BEGIN
|
||||
MENUITEM "Root", ID_BOOKMARKS_FILEROOT
|
||||
END
|
||||
MENUITEM "Edit &Bookmarks...", ID_HOTLIST_VIEW
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "&Places"
|
||||
BEGIN
|
||||
MENUITEM "PLACEHOLDER" IDC_FIRST_PLACES_MENU_ID
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM "&History\tCtrl+H", ID_GO_HISTORY
|
||||
|
||||
#if defined(JAVA) || defined(OJI)
|
||||
MENUITEM "&Java Console", ID_OPTIONS_SHOWJAVACONSOLE
|
||||
#endif
|
||||
#ifdef MOZ_SECURITY
|
||||
MENUITEM "&Security Info\tCtrl+Shift+I", ID_SECURITY
|
||||
#endif
|
||||
#ifdef MOZ_MAIL_NEWS
|
||||
MENUITEM "Migration Tools", ID_MIGRATION_TOOLS
|
||||
#endif //MOZ_MAIL_NEWS
|
||||
POPUP "&Privacy Tools"
|
||||
BEGIN
|
||||
MENUITEM "&Anonymous Mode", ID_PRIVACY_ANONYMOUS
|
||||
#ifdef TRANSACTION_RECEIPTS
|
||||
MENUITEM "&Make Receipt", ID_PRIVACY_RECEIPT
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Display Privacy &Policy", ID_PRIVACY_DISPLAY_POLICY
|
||||
MENUITEM "Display &Cookies", ID_PRIVACY_DISPLAY_COOKIES
|
||||
MENUITEM "Display &Signons", ID_PRIVACY_DISPLAY_SIGNONS
|
||||
#ifdef TRANSACTION_RECEIPTS
|
||||
MENUITEM "Display &Receipts", ID_PRIVACY_DISPLAY_RECEIPTS
|
||||
#endif
|
||||
MENUITEM "Display Site &Info", ID_PRIVACY_DISPLAY_SITEINFO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "A&bout Privacy", ID_PRIVACY_DISPLAY_TUTORIAL
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
#ifdef XP_WIN16
|
||||
MENUITEM "New Window" ID_WINDOW_WINDOW_0
|
||||
#endif
|
||||
END
|
||||
POPUP "&Help"
|
||||
BEGIN
|
||||
MENUITEM "PLACEHOLDER" IDC_FIRST_HELP_MENU_ID
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
IDM_COMPOSER_TABLE_SELECTMENU MENU DISCARDABLE
|
||||
BEGIN
|
||||
MENUITEM "&Table" ID_SELECT_TABLE
|
||||
MENUITEM "&Row" ID_SELECT_TABLE_ROW
|
||||
MENUITEM "C&olumn" ID_SELECT_TABLE_COLUMN
|
||||
MENUITEM "&Cell" ID_SELECT_TABLE_CELL
|
||||
MENUITEM "&All Cells" ID_SELECT_TABLE_ALL_CELLS
|
||||
END
|
||||
|
||||
IDM_COMPOSER_TABLE_INSERTMENU MENU DISCARDABLE
|
||||
BEGIN
|
||||
MENUITEM "&Table..." ID_INSERT_TABLE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Row Above" ID_INSERT_TABLE_ROW_ABOVE
|
||||
MENUITEM "Row &Below" ID_INSERT_TABLE_ROW
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "C&olumn Before" ID_INSERT_TABLE_COLUMN_BEFORE
|
||||
MENUITEM "Co&lumn After" ID_INSERT_TABLE_COLUMN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Cell Before" ID_INSERT_TABLE_CELL_BEFORE
|
||||
MENUITEM "C&ell After" ID_INSERT_TABLE_CELL
|
||||
END
|
||||
|
||||
IDM_COMPOSER_TABLE_PASTEMENU MENU DISCARDABLE
|
||||
BEGIN
|
||||
MENUITEM "Nested &Table..." ID_PASTE_BASE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Above current Row" ID_PASTE_BASE+1
|
||||
MENUITEM "&Below current Row" ID_PASTE_BASE+2
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "B&efore current Column" ID_PASTE_BASE+3
|
||||
MENUITEM "A&fter current Column" ID_PASTE_BASE+4
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Replace cells" ID_PASTE_TABLE_REPLACE // MUST = ID_PASTE_BASE+5 in edres2.h
|
||||
END
|
||||
// Optional menu when both text and image are on clipboard together
|
||||
IDM_COMPOSER_PASTEMENU MENU DISCARDABLE
|
||||
BEGIN
|
||||
MENUITEM "&Table" ID_PASTE_BASE,
|
||||
MENUITEM "Te&xt" ID_PASTE_TEXT, // ID_PASTE_BASE+6
|
||||
MENUITEM "&Image" ID_PASTE_IMAGE // ID_PASTE_BASE+7
|
||||
END
|
||||
|
||||
IDM_COMPOSER_TABLE_DELETEMENU MENU DISCARDABLE
|
||||
BEGIN
|
||||
MENUITEM "&Table" ID_DELETE_TABLE
|
||||
MENUITEM "&Row" ID_DELETE_TABLE_ROW
|
||||
MENUITEM "C&olumn" ID_DELETE_TABLE_COLUMN
|
||||
MENUITEM "&Cell" ID_DELETE_TABLE_CELL
|
||||
END
|
||||
|
||||
// A clone of some items from the Insert Menu to put on right-mouse popup
|
||||
IDM_COMPOSER_INSERTMENU MENU DISCARDABLE
|
||||
BEGIN
|
||||
MENUITEM "&Link...\tCtrl+Shift+L", ID_INSERT_LINK
|
||||
MENUITEM "T&arget...", ID_INSERT_TARGET
|
||||
MENUITEM "&Image...", ID_INSERT_IMAGE
|
||||
MENUITEM "&Table..." ID_INSERT_TABLE
|
||||
MENUITEM "H&orizontal Line", ID_INSERT_HRULE
|
||||
MENUITEM "&HTML Tag...", ID_INSERT_TAG
|
||||
END
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Message Composer Menu
|
||||
//
|
||||
// NO MAIL COMPOSER IN 5.0
|
||||
// Keep and maintain for possible future integration
|
||||
#ifdef MOZ_MAIL_NEWS
|
||||
IDR_COMPOSEFRAME MENU DISCARDABLE
|
||||
BEGIN
|
||||
POPUP "&File"
|
||||
BEGIN
|
||||
POPUP "&New"
|
||||
BEGIN
|
||||
MENUITEM "&Navigator Window\tCtrl+N", ID_NEW_FRAME
|
||||
MENUITEM "&Message\tCtrl+M", ID_FILE_NEWMESSAGE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Blank &Page\tCtrl+Shift+N", ID_EDT_NEW_DOC_BLANK
|
||||
MENUITEM "Page From &Template...", ID_EDT_NEW_DOC_FROM_TEMPLATE
|
||||
MENUITEM "Page From &Wizard...", ID_COMMAND_PAGE_FROM_WIZARD
|
||||
END
|
||||
POPUP "Save &As"
|
||||
BEGIN
|
||||
MENUITEM "&File...", IDM_SAVEAS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Draft\tCtrl+S", IDM_SAVEASDRAFT
|
||||
MENUITEM "&Template\tCtrl+T", IDM_SAVEASTEMPLATE
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Sen&d Now\tCtrl+Enter", IDM_SENDNOW
|
||||
MENUITEM "Send &Later", IDM_SENDLATER
|
||||
MENUITEM "&Quote Original Text", IDM_QUOTEORIGINAL
|
||||
MENUITEM "Selec&t Addresses...", IDM_ADDRESSPICKER
|
||||
POPUP "A&ttach"
|
||||
BEGIN
|
||||
MENUITEM "&File...", IDM_ATTACHFILE
|
||||
MENUITEM "&Web Page...", IDM_ATTACHWEBPAGE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&My Address Book Card", IDM_ATTACHMYCARD
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Sen&d Now\tCtrl+Enter", IDM_SENDNOW
|
||||
MENUITEM "Send &Later", IDM_SENDLATER
|
||||
MENUITEM "&Quote Original Text", IDM_QUOTEORIGINAL
|
||||
MENUITEM "Selec&t Addresses...", IDM_ADDRESSPICKER
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Pa&ge Setup...", ID_FILE_PAGE_SETUP
|
||||
MENUITEM "Print Pre&view", ID_FILE_PRINT_PREVIEW
|
||||
MENUITEM "&Print...\tCtrl+P", ID_FILE_PRINT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Close\tCtrl+W", ID_FILE_CLOSE
|
||||
MENUITEM "E&xit\tCtrl+Q", ID_APP_EXIT
|
||||
END
|
||||
POPUP "&Edit"
|
||||
BEGIN
|
||||
MENUITEM "{&U&R}", ID_EDIT_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Cu&t\tCtrl+X", ID_EDIT_CUT
|
||||
MENUITEM "&Copy\tCtrl+C", ID_EDIT_COPY
|
||||
MENUITEM "&Paste\tCtrl+V", ID_EDIT_PASTE
|
||||
MENUITEM "Paste as &Quotation", IDM_PASTEASQUOTE
|
||||
MENUITEM "&Delete\tDel" ID_EDIT_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Remove Lin&k", ID_REMOVE_LINKS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Select &All\tCtrl+A", ID_EDIT_SELECTALL
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Find in Message\tCtrl+F", ID_EDIT_FINDINCURRENT
|
||||
MENUITEM "Find A&gain\tCtrl+G", ID_EDIT_FINDAGAIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Name Completion", ID_TOGGLENAMECOMPLETION
|
||||
MENUITEM "Show Name Picker\tCtrl+J" ID_SHOW_NAME_PICKER
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Pr&eferences...", ID_OPTIONS_PREFERENCES
|
||||
END
|
||||
POPUP "&View"
|
||||
BEGIN
|
||||
MENUITEM "{&M}", IDM_OPT_MESSAGEBAR_TOGGLE
|
||||
MENUITEM "{&A}", IDM_MESSAGEBODYONLY
|
||||
MENUITEM "{&F}", ID_OPT_CHARBAR_TOGGLE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "A&ddress", IDM_ADDRESSES
|
||||
MENUITEM "Attachmen&ts" IDM_ATTACHMENTS
|
||||
MENUITEM "&Options", IDM_OPTIONS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "{&P}" ID_EDIT_DISPLAY_PARAGRAPH_MARKS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Page So&urce", ID_FILE_VIEWSOURCE
|
||||
MENUITEM "Page &Info", ID_FILE_DOCINFO
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "C&haracter Set"
|
||||
BEGIN
|
||||
MENUITEM "Western (ISO-8859-1)", ID_OPTIONS_ENCODING_1
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Central European (ISO-8859-2)", ID_OPTIONS_ENCODING_2
|
||||
MENUITEM "Central European (Windows-1250)", ID_OPTIONS_ENCODING_11
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Japanese (Auto-Detect)", ID_OPTIONS_ENCODING_3
|
||||
MENUITEM "Japanese (Shift_JIS)", ID_OPTIONS_ENCODING_4
|
||||
MENUITEM "Japanese (EUC-JP)", ID_OPTIONS_ENCODING_5
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Traditional Chinese (Big5)", ID_OPTIONS_ENCODING_6
|
||||
MENUITEM "Traditional Chinese (EUC-TW)", ID_OPTIONS_ENCODING_7
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Simplified Chinese (GB2312)", ID_OPTIONS_ENCODING_8
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Korean (Auto-Detect)", ID_OPTIONS_ENCODING_9
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Cyrillic (KOI8-R)", ID_OPTIONS_ENCODING_14
|
||||
MENUITEM "Cyrillic (ISO-8859-5)", ID_OPTIONS_ENCODING_13
|
||||
MENUITEM "Cyrillic (Windows-1251)", ID_OPTIONS_ENCODING_12
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Armenian (ArmSCII-8)", ID_OPTIONS_ENCODING_21
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Thai (TIS-620)", ID_OPTIONS_ENCODING_22
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Greek (Windows-1253)", ID_OPTIONS_ENCODING_16
|
||||
MENUITEM "Greek (ISO-8859-7)", ID_OPTIONS_ENCODING_15
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Turkish (ISO-8859-9)", ID_OPTIONS_ENCODING_17
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Vietnamese (VISCII)", ID_OPTIONS_ENCODING_23
|
||||
MENUITEM "Vietnamese (VIQR)", ID_OPTIONS_ENCODING_26
|
||||
MENUITEM "Vietnamese (VPS)", ID_OPTIONS_ENCODING_24
|
||||
MENUITEM "Vietnamese (TCVN)", ID_OPTIONS_ENCODING_25
|
||||
MENUITEM "Vietnamese (VNI)", ID_OPTIONS_ENCODING_27
|
||||
MENUITEM "Vietnamese (Windows-1258)", ID_OPTIONS_ENCODING_28
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Unicode (UTF-8)", ID_OPTIONS_ENCODING_18
|
||||
MENUITEM "Unicode (UTF-7)", ID_OPTIONS_ENCODING_20
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "User-Defined", ID_OPTIONS_ENCODING_10
|
||||
END
|
||||
END
|
||||
// Insert and Format must be same as those in EDITOR menu
|
||||
POPUP "&Insert"
|
||||
BEGIN
|
||||
MENUITEM "&Link...\tCtrl+Shift+L", ID_INSERT_LINK
|
||||
MENUITEM "T&arget...", ID_INSERT_TARGET
|
||||
MENUITEM "&Image...", ID_INSERT_IMAGE
|
||||
MENUITEM "H&orizontal Line", ID_INSERT_HRULE
|
||||
MENUITEM "&Table..." ID_INSERT_TABLE
|
||||
MENUITEM "&HTML Tag...", ID_INSERT_TAG
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&New Line Break\tShift+Enter" ID_INSERT_LINE_BREAK
|
||||
MENUITEM "&Break below Image(s)" ID_INSERT_BREAK_BOTH
|
||||
END
|
||||
POPUP "F&ormat"
|
||||
BEGIN
|
||||
// Font face items are added at runtime
|
||||
POPUP "&Font"
|
||||
BEGIN
|
||||
MENUITEM "{}" ID_FORMAT_FONTFACE_BASE
|
||||
END
|
||||
// All of these items are added at runtime
|
||||
POPUP "Si&ze"
|
||||
BEGIN
|
||||
MENUITEM "{}" ID_FORMAT_FONTSIZE_BASE
|
||||
END
|
||||
POPUP "&Style"
|
||||
BEGIN
|
||||
MENUITEM "&Bold\tCtrl+B" ID_FORMAT_CHAR_BOLD
|
||||
MENUITEM "&Italic\tCtrl+I" ID_FORMAT_CHAR_ITALIC
|
||||
MENUITEM "&Underline\tCtrl+U" ID_FORMAT_CHAR_UNDERLINE
|
||||
MENUITEM "S&trikethrough" ID_FORMAT_CHAR_STRIKEOUT
|
||||
MENUITEM "Su&perscript" ID_FORMAT_CHAR_SUPER
|
||||
MENUITEM "&Subscript" ID_FORMAT_CHAR_SUB
|
||||
MENUITEM "Blin&king" ID_FORMAT_CHAR_BLINK
|
||||
MENUITEM "&Nonbreaking" ID_FORMAT_CHAR_NOBREAKS
|
||||
END
|
||||
MENUITEM "Text &Color...", ID_GET_COLOR // ID_FORMAT_FONTCOLOR
|
||||
MENUITEM "Apply Last-Copied St&yle\tCtrl+Y" ID_PASTE_CHARACTER_STYLE
|
||||
MENUITEM "&Remove All Styles\tCtrl+K" ID_FORMAT_CHAR_NONE
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "&Heading"
|
||||
BEGIN
|
||||
MENUITEM "&1", ID_FORMAT_PARAGRAPH_BASE+P_HEADER_1
|
||||
MENUITEM "&2", ID_FORMAT_PARAGRAPH_BASE+P_HEADER_2
|
||||
MENUITEM "&3", ID_FORMAT_PARAGRAPH_BASE+P_HEADER_3
|
||||
MENUITEM "&4", ID_FORMAT_PARAGRAPH_BASE+P_HEADER_4
|
||||
MENUITEM "&5", ID_FORMAT_PARAGRAPH_BASE+P_HEADER_5
|
||||
MENUITEM "&6", ID_FORMAT_PARAGRAPH_BASE+P_HEADER_6
|
||||
END
|
||||
POPUP "&Paragraph"
|
||||
BEGIN
|
||||
MENUITEM "&Normal", ID_FORMAT_PARAGRAPH_BASE+P_NSDT
|
||||
MENUITEM "&Address", ID_FORMAT_PARAGRAPH_BASE+P_ADDRESS
|
||||
MENUITEM "&Formatted", ID_FORMAT_PARAGRAPH_BASE+P_PREFORMAT
|
||||
MENUITEM "&Term Name" ID_FORMAT_PARAGRAPH_BASE+P_DESC_TITLE
|
||||
MENUITEM "&Definition" ID_FORMAT_PARAGRAPH_BASE+P_DESC_TEXT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Blockquote" ID_FORMAT_PARAGRAPH_BASE+P_BLOCKQUOTE
|
||||
END
|
||||
POPUP "&List"
|
||||
BEGIN
|
||||
MENUITEM "N&one" ID_REMOVE_LIST
|
||||
MENUITEM "&Bulletted" ID_FORMAT_PARAGRAPH_BASE+P_UNUM_LIST
|
||||
MENUITEM "&Numbered" ID_FORMAT_PARAGRAPH_BASE+P_NUM_LIST
|
||||
MENUITEM "&Definition" ID_FORMAT_PARAGRAPH_BASE+P_DESC_LIST
|
||||
END
|
||||
POPUP "&Align"
|
||||
BEGIN
|
||||
MENUITEM "&Left\tCtrl+L", ID_ALIGN_LEFT
|
||||
MENUITEM "&Center\tCtrl+E", ID_ALIGN_CENTER
|
||||
MENUITEM "&Right\tCtrl+R", ID_ALIGN_RIGHT
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Increase Indent\tCtrl =" ID_FORMAT_INDENT
|
||||
MENUITEM "&Decrease Indent\tCtrl -" ID_FORMAT_OUTDENT
|
||||
MENUITEM SEPARATOR
|
||||
// <object> Pr&operties
|
||||
MENUITEM "{&o}" ID_PROPS_LOCAL
|
||||
// No "Page Title" in message composer
|
||||
MENUITEM "&Background and Page Colors" ID_PROPS_DOC_COLOR
|
||||
END
|
||||
POPUP "T&able"
|
||||
BEGIN
|
||||
// Will be replaced with IDM_COMPOSER_TABLE_INSERTMENU
|
||||
MENUITEM "{&I}" ID_INSERT_TABLE
|
||||
// Will be replaced with IDM_COMPOSER_TABLE_DELETEMENU
|
||||
MENUITEM "{&D}" ID_DELETE_TABLE
|
||||
// Will be replaced with IDM_COMPOSER_TABLE_SELECTMENU
|
||||
MENUITEM "{&S}" ID_SELECT_TABLE
|
||||
// Will be replaced with IDM_COMPOSER_TABLE_PASTEMENU
|
||||
MENUITEM "{&P}" ID_PASTE_TABLE
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "&Align Table"
|
||||
BEGIN
|
||||
MENUITEM "&Left", ID_ALIGN_TABLE_LEFT
|
||||
MENUITEM "&Center", ID_ALIGN_TABLE_CENTER
|
||||
MENUITEM "&Right", ID_ALIGN_TABLE_RIGHT
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
// Join selected cells or with cell to the right
|
||||
MENUITEM "{&J}" ID_MERGE_TABLE_CELLS
|
||||
MENUITEM "Spli&t Cell" ID_SPLIT_TABLE_CELL
|
||||
// "&Convert Text To Table" or "&Convert Table To Text"
|
||||
MENUITEM "{&C}" ID_TABLE_TEXT_CONVERT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Properties" ID_PROPS_TABLE
|
||||
END
|
||||
// Translate this menu group string and the string IDS_TOOLS_MENU(in editor.rc) identically.
|
||||
// The code tries to find this menu entry using the string resource.
|
||||
POPUP "&Tools"
|
||||
BEGIN
|
||||
MENUITEM "Check &Spelling..." ID_CHECK_SPELLING
|
||||
|
||||
// Don't translate this entry. It is replaced at runtime.
|
||||
MENUITEM "{Editor Plug-ins}" ID_EDITOR_PLUGINS_BASE
|
||||
MENUITEM "Stop Active &Plug-in" ID_STOP_EDITOR_PLUGIN
|
||||
END
|
||||
POPUP "&Communicator"
|
||||
BEGIN
|
||||
MENUITEM "&Navigator\tCtrl+1", ID_TOOLS_WEB
|
||||
MENUITEM "&Messenger Mailbox\tCtrl+2", ID_TOOLS_INBOX
|
||||
MENUITEM "Collabra &Discussion Groups\tCtrl+3", ID_TOOLS_NEWS
|
||||
MENUITEM "&Page Composer\tCtrl+4", ID_TOOLS_EDITOR
|
||||
MENUITEM "&Conference\tCtrl+5", ID_WINDOW_LIVECALL
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Show Componen&t Bar", ID_WINDOW_TASKBAR
|
||||
MENUITEM "Messa&ge Center\tCtrl+Shift+1", ID_TOOLS_MAIL
|
||||
MENUITEM "&Address Book\tCtrl+Shift+2", ID_TOOLS_ADDRESSBOOK
|
||||
POPUP "&Bookmarks"
|
||||
BEGIN
|
||||
MENUITEM "&Add Bookmark\tCtrl+D", ID_HOTLIST_ADDCURRENTTOHOTLIST
|
||||
|
||||
POPUP "&File Bookmark"
|
||||
BEGIN
|
||||
MENUITEM "Root", ID_BOOKMARKS_FILEROOT
|
||||
|
||||
END
|
||||
MENUITEM "&Edit Bookmarks...", ID_HOTLIST_VIEW
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "&Places"
|
||||
BEGIN
|
||||
MENUITEM "PLACEHOLDER", IDC_FIRST_PLACES_MENU_ID
|
||||
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM "&History\tCtrl+H", ID_GO_HISTORY
|
||||
MENUITEM "&Java Console", ID_OPTIONS_SHOWJAVACONSOLE
|
||||
MENUITEM "&Security Info\tCtrl+Shift+I", ID_SECURITY
|
||||
MENUITEM "Migration Tools", ID_MIGRATION_TOOLS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "{}", ID_WINDOW_WINDOW_0
|
||||
END
|
||||
POPUP "&Help"
|
||||
BEGIN
|
||||
MENUITEM "PLACEHOLDER", IDC_FIRST_HELP_MENU_ID
|
||||
END
|
||||
END
|
||||
#endif
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Accelerator
|
||||
//
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Tables
|
||||
//
|
||||
|
||||
// Mostly status line and tooltip text
|
||||
STRINGTABLE PRELOAD DISCARDABLE
|
||||
BEGIN
|
||||
ID_GET_COLOR "Change the current text color\nText Color"
|
||||
END
|
||||
|
||||
// Paragraph and Character Listboxes and submenu text
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
|
||||
// LTNOTE: If you make a change here, you must also make a change in
|
||||
// FEED_nParagraphTags array in EDVIEW2.CPP.
|
||||
// These are used in toolbar's Paragraph Combobox
|
||||
ID_LIST_TEXT_PARAGRAPH_BASE+P_NSDT "Normal"
|
||||
ID_LIST_TEXT_PARAGRAPH_BASE+P_HEADER_1 "Heading 1"
|
||||
ID_LIST_TEXT_PARAGRAPH_BASE+P_HEADER_2 "Heading 2"
|
||||
ID_LIST_TEXT_PARAGRAPH_BASE+P_HEADER_3 "Heading 3"
|
||||
ID_LIST_TEXT_PARAGRAPH_BASE+P_HEADER_4 "Heading 4"
|
||||
ID_LIST_TEXT_PARAGRAPH_BASE+P_HEADER_5 "Heading 5"
|
||||
ID_LIST_TEXT_PARAGRAPH_BASE+P_HEADER_6 "Heading 6"
|
||||
ID_LIST_TEXT_PARAGRAPH_BASE+P_ADDRESS "Address"
|
||||
ID_LIST_TEXT_PARAGRAPH_BASE+P_PREFORMAT "Formatted"
|
||||
ID_LIST_TEXT_PARAGRAPH_BASE+P_LIST_ITEM "List Item"
|
||||
ID_LIST_TEXT_PARAGRAPH_BASE+P_DESC_TITLE "Term Name"
|
||||
ID_LIST_TEXT_PARAGRAPH_BASE+P_DESC_TEXT "Definition"
|
||||
ID_LIST_TEXT_PARAGRAPH_BASE+P_BLOCKQUOTE "Blockquote"
|
||||
// End of Paragraph combobox list
|
||||
ID_LIST_TEXT_CHARACTER_BASE+P_BOLD "Bold\tCtrl+B"
|
||||
ID_LIST_TEXT_CHARACTER_BASE+P_ITALIC "Italic\tCtrl+I"
|
||||
ID_LIST_TEXT_CHARACTER_BASE+P_STRIKEOUT "Strikethrough"
|
||||
ID_LIST_TEXT_CHARACTER_BASE+P_FIXED "Fixed Width\tCtrl+T"
|
||||
ID_LIST_TEXT_CHARACTER_BASE+P_EMPHASIZED "Empahsized"
|
||||
ID_LIST_TEXT_CHARACTER_BASE+P_STRONG "Strong"
|
||||
ID_LIST_TEXT_CHARACTER_BASE+P_CODE "Code"
|
||||
ID_LIST_TEXT_CHARACTER_BASE+P_SAMPLE "Sample"
|
||||
ID_LIST_TEXT_CHARACTER_BASE+P_KEYBOARD "Keyboard"
|
||||
ID_LIST_TEXT_CHARACTER_BASE+P_VARIABLE "Variable"
|
||||
ID_LIST_TEXT_CHARACTER_BASE+P_CITATION "Citation"
|
||||
ID_LIST_TEXT_CHARACTER_BASE+P_BLINK "Blink"
|
||||
ID_LIST_TEXT_CHARACTER_BASE+P_BIG "Big"
|
||||
ID_LIST_TEXT_CHARACTER_BASE+P_SMALL "Small"
|
||||
ID_LIST_TEXT_CHARACTER_BASE+P_SUPER "Superscript"
|
||||
ID_LIST_TEXT_CHARACTER_BASE+P_SUB "Subscript"
|
||||
ID_LIST_TEXT_PARAGRAPH_BASE+P_SERVER "LiveScript (Server)"
|
||||
ID_LIST_TEXT_PARAGRAPH_BASE+P_SCRIPT "LiveScript (Client)"
|
||||
END
|
||||
|
||||
// Status line and tooltip text for formating
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
ID_FORMAT_PARAGRAPH_BASE+P_NSDT "Set the style to Normal\nNormal"
|
||||
ID_FORMAT_PARAGRAPH_BASE+P_HEADER_1 "Set the style to Heading 1\nHeading 1"
|
||||
ID_FORMAT_PARAGRAPH_BASE+P_HEADER_2 "Set the style to Heading 2\nHeading 2"
|
||||
ID_FORMAT_PARAGRAPH_BASE+P_HEADER_3 "Set the style to Heading 3\nHeading 3"
|
||||
ID_FORMAT_PARAGRAPH_BASE+P_HEADER_4 "Set the style to Heading 4\nHeading 4"
|
||||
ID_FORMAT_PARAGRAPH_BASE+P_HEADER_5 "Set the style to Heading 5\nHeading 5"
|
||||
ID_FORMAT_PARAGRAPH_BASE+P_HEADER_6 "Set the style to Heading 6\nHeading 6"
|
||||
ID_FORMAT_PARAGRAPH_BASE+P_ADDRESS "Set the style to Address\nAddress"
|
||||
ID_FORMAT_PARAGRAPH_BASE+P_PREFORMAT "Set the style to Preformat\nPreformat"
|
||||
ID_FORMAT_PARAGRAPH_BASE+P_UNUM_LIST "Start, change to, or clear an Unnumbered (Bulleted) List\nBullet List"
|
||||
ID_FORMAT_PARAGRAPH_BASE+P_NUM_LIST "Start, change to, or clear a Numbered List\nNumbered List"
|
||||
ID_FORMAT_PARAGRAPH_BASE+P_DESC_LIST "Start, change to, or clear a Definition List\nDefinition List"
|
||||
ID_FORMAT_PARAGRAPH_BASE+P_LIST_ITEM "Set the style to List Item\nList Item"
|
||||
ID_FORMAT_PARAGRAPH_BASE+P_DESC_TITLE "Set the style to Term Name (an item to be defined)\nTerm Name"
|
||||
ID_FORMAT_PARAGRAPH_BASE+P_DESC_TEXT "Set the style to Term Definition\nDefinition"
|
||||
ID_FORMAT_PARAGRAPH_BASE+P_BLOCKQUOTE "Set or remove the Blockquote style (same as indenting or outdenting a non-list paragraph)\nBlockquote"
|
||||
ID_FORMAT_CHAR_NONE "Remove all character styles and link(s)\nRemove All Styles (Ctrl+K)"
|
||||
ID_FORMAT_CHAR_BOLD "Set the style to Bold\nBold (Ctrl+B)"
|
||||
ID_FORMAT_CHAR_ITALIC "Set the style to Italic\nItalic (Ctrl+I)"
|
||||
ID_FORMAT_CHAR_UNDERLINE "Set the style to Underline\nUnderline (Ctrl+U)"
|
||||
ID_FORMAT_CHAR_NOBREAKS "Set the style to not break between words (no word wrap)\nNonbreaking"
|
||||
ID_FORMAT_CHAR_SUPER "Set the style to Superscript\nSuperscript"
|
||||
ID_FORMAT_CHAR_SUB "Set the style to Subscript\nSubscript"
|
||||
ID_FORMAT_CHAR_STRIKEOUT "Set the style to Strikethrough\nStrikethrough"
|
||||
ID_FORMAT_CHAR_BLINK "Set the style to Blink\nBlink"
|
||||
ID_DISPLAY_TABLES "Display formated tables while editing"
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
ID_PASTE_BASE "Paste a new table at the insert point"
|
||||
ID_PASTE_BASE+1 "Paste new rows above the current row"
|
||||
ID_PASTE_BASE+2 "Paste new rows below the current row"
|
||||
ID_PASTE_BASE+3 "Paste new column before the current column"
|
||||
ID_PASTE_BASE+4 "Paste new column after the current column"
|
||||
ID_PASTE_BASE+5 "Paste cells over selected cells or cells starting with current cell"
|
||||
ID_PASTE_BASE+6 "Paste the text version of clipboard data"
|
||||
ID_PASTE_BASE+7 "Paste the image version of clipboard data"
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
ID_CHECK_SPELLING "Check spelling errors in the page\nCheck Spelling\nSpelling"
|
||||
IDS_ERR_ADD_WORD "Error adding word to dictionary file %1%2."
|
||||
|
||||
ID_STOP_EDITOR_PLUGIN "Stop currently running editor plug-in\nStop active plug-in"
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
ID_FORMAT_FONTSIZE_BASE "Decrease font size by 2 levels"
|
||||
ID_FORMAT_FONTSIZE_BASE+1 "Decrease font size by 1 level"
|
||||
ID_FORMAT_FONTSIZE_BASE+2 "Remove font size (display text in viewer's font size)"
|
||||
ID_FORMAT_FONTSIZE_BASE+3 "Increase font size by 1 level"
|
||||
ID_FORMAT_FONTSIZE_BASE+4 "Increase font size by 2 levels"
|
||||
ID_FORMAT_FONTSIZE_BASE+5 "Increase font size by 3 levels"
|
||||
ID_FORMAT_FONTSIZE_BASE+6 "Increase font size by 4 levels"
|
||||
END
|
||||
|
||||
#endif
|
|
@ -702,7 +702,10 @@ BEGIN
|
|||
MENUITEM SEPARATOR
|
||||
MENUITEM "A&bout Privacy", ID_PRIVACY_DISPLAY_TUTORIAL
|
||||
END
|
||||
|
||||
#ifdef DEBUG_cmanske
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Freeze Window Contents" ID_TOGGLE_FREEZE_FRAME
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
#ifdef XP_WIN16
|
||||
MENUITEM "New Window" ID_WINDOW_WINDOW_0
|
||||
|
|
|
@ -193,6 +193,7 @@
|
|||
#define IDS_INVALID_EMAIL 178
|
||||
#define IDS_READNEWS_STATIC2 179
|
||||
#define IDS_PE_ACCT_SETUP 180
|
||||
#define ID_TOGGLE_FREEZE_FRAME 181
|
||||
#define IDB_IMAGE_DELAYED 184
|
||||
#define IDB_IMAGE_BAD 185
|
||||
#define IDB_IMAGE_NOTFOUND 186
|
||||
|
|
Загрузка…
Ссылка в новой задаче