зеркало из https://github.com/mozilla/pjs.git
Fixed Composer bugs in Publishing. Added history lists to Open Page dialog
This commit is contained in:
Родитель
d1c5c97eee
Коммит
1a7fc1c3e5
|
@ -2331,8 +2331,11 @@ win_click_callback(MWContext * pContext, LO_Element * pEle, int32 event,
|
|||
|
||||
#ifdef EDITOR
|
||||
if( EDT_IS_EDITOR(pWin->GetContext()) ){
|
||||
// Ctrl Click = edit the URL
|
||||
FE_LoadUrl((char*)LPCSTR(csAnchor), LOAD_URL_COMPOSER);
|
||||
// Ctrl Click: Scroll to a target or load the URL into another editor
|
||||
char *pAnchor = (char*)LPCSTR(csAnchor);
|
||||
if( !EDT_ScrollToTarget(pWin->GetContext(), pAnchor) )
|
||||
FE_LoadUrl(pAnchor, LOAD_URL_COMPOSER);
|
||||
|
||||
goto done;
|
||||
}
|
||||
#endif // EDITOR
|
||||
|
@ -2648,6 +2651,7 @@ CWinCX::OnLButtonUpForLayerCX(UINT uFlags, CPoint& cpPoint, XY& Point,
|
|||
#ifdef EDITOR
|
||||
if((uFlags & MK_CONTROL) == 0 && EDT_IS_EDITOR(GetContext())){
|
||||
m_pLastImageObject = NULL;
|
||||
// Ctrl is NOT pressed in an editor - we are done
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
@ -6361,7 +6365,7 @@ mouse_over_callback(MWContext * context, LO_Element * lo_element, int32 event,
|
|||
// pressing Ctrl + mouse click will edit the link
|
||||
CString csStatus = (char*)text_struct->anchor_href->anchor;
|
||||
WFE_CondenseURL(csStatus, 40, FALSE);
|
||||
csStatus += szLoadString(IDS_EDIT_LINK_HINT);
|
||||
csStatus += XP_GetString(XP_EDT_LINK_HINT);
|
||||
wfe_Progress(context, csStatus);
|
||||
if( bCtrlPressed )
|
||||
{
|
||||
|
@ -6523,14 +6527,15 @@ mouse_over_callback(MWContext * context, LO_Element * lo_element, int32 event,
|
|||
PA_UNLOCK(image_struct->alt);
|
||||
}
|
||||
}
|
||||
if( !bCursorSet ){
|
||||
// Set special status and cursor for images that are NOT icons
|
||||
if( !bCursorSet )
|
||||
{
|
||||
// Image can be dragged from a Browser or from an Editor after it is selected,
|
||||
// so if no cursor set above,
|
||||
// use Open Hand with arrow to indicate "draggability" of the image
|
||||
// Do this for a Browser window ONLY if we have a Composer Window available
|
||||
// to drag into
|
||||
// If no cursor set above, use Open Hand with arrow to indicate "draggability" of the image
|
||||
// Do this for a Browser window ONLY if we have a Composer Window available to drag into
|
||||
BOOL bHaveEditorWindow = bIsEditor;
|
||||
if( !bHaveEditorWindow )
|
||||
|
||||
if( !image_struct->is_icon && !bHaveEditorWindow )
|
||||
{
|
||||
// Check if there are any editor windows open (either Mail or Page Composer)
|
||||
CGenericFrame * f;
|
||||
|
@ -6545,18 +6550,17 @@ mouse_over_callback(MWContext * context, LO_Element * lo_element, int32 event,
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
UINT nID = 0;
|
||||
if( !bIsEditor && bHaveEditorWindow ||
|
||||
(bIsEditor && (image_struct->ele_attrmask & LO_ELE_SELECTED) != 0) )
|
||||
(bIsEditor && (image_struct->ele_attrmask & LO_ELE_SELECTED) != 0
|
||||
&& !image_struct->is_icon ) )
|
||||
{
|
||||
SetCursor(theApp.LoadCursor(IDC_ARROW_HAND));
|
||||
bCursorSet = TRUE;
|
||||
// Display some help on the status line
|
||||
// NOTE: In Browser, there is no Image selection,
|
||||
// so image can be dragged upon first mouse down
|
||||
wfe_Progress(context, XP_GetString(XP_EDT_CLICK_AND_DRAG_IMAGE));
|
||||
bTextSet = TRUE;
|
||||
nID = XP_EDT_CLICK_AND_DRAG_IMAGE;
|
||||
}
|
||||
else if( bIsEditor )
|
||||
{
|
||||
|
@ -6564,10 +6568,26 @@ mouse_over_callback(MWContext * context, LO_Element * lo_element, int32 event,
|
|||
bCursorSet = TRUE;
|
||||
// Tell user how to select image
|
||||
// NOTE: Image must be selected before dragging when in Composer
|
||||
wfe_Progress(context, XP_GetString(XP_EDT_CLICK_TO_SELECT_IMAGE));
|
||||
nID = XP_EDT_CLICK_TO_SELECT_IMAGE;
|
||||
}
|
||||
// Show status for image only if not an internal icon
|
||||
if( nID && !image_struct->is_icon )
|
||||
{
|
||||
wfe_Progress(context, XP_GetString(nID));
|
||||
bTextSet = TRUE;
|
||||
}
|
||||
}
|
||||
if( bIsEditor && image_struct->is_icon )
|
||||
{
|
||||
// Display the target name on the status line
|
||||
char *pName = EDT_GetTargetNameFromIcon(image_struct);
|
||||
if( pName )
|
||||
{
|
||||
wfe_Progress(context, pName);
|
||||
bTextSet = TRUE;
|
||||
XP_FREE(pName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// See if we are over an embedded item.
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
|
||||
#include "nsIDefaultBrowser.h"
|
||||
#include "prefapi.h"
|
||||
#include "edt.h" // For EDT_GetEditHistory and MAX_EDT_HISTORY_LOCATIONS
|
||||
|
||||
#ifdef _DEBUG
|
||||
#undef THIS_FILE
|
||||
|
@ -33,10 +34,9 @@ static char BASED_CODE THIS_FILE[] = __FILE__;
|
|||
|
||||
extern "C" void sample_exit_routine(URL_Struct *URL_s,int status,MWContext *window_id);
|
||||
|
||||
// Last URL entered in the Open Page dialog
|
||||
static CString url_string = "";
|
||||
// Retain radio button setting across dialog calls
|
||||
// 0 = Load URL into Browser, 1 = Editor
|
||||
static int browse_or_edit = 0;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CDialogURL dialog
|
||||
|
||||
|
@ -49,38 +49,115 @@ CDialogURL::CDialogURL(CWnd* pParent, MWContext * context)
|
|||
//}}AFX_DATA_INIT
|
||||
ASSERT(context);
|
||||
m_Context = context;
|
||||
m_bInitNavComboBox = FALSE;
|
||||
m_bInternalChange = FALSE;
|
||||
|
||||
#ifdef EDITOR
|
||||
m_bInitComposerComboBox = FALSE;
|
||||
#endif
|
||||
}
|
||||
|
||||
CDialogURL::~CDialogURL()
|
||||
{
|
||||
for( int i = 0; i < MAX_HISTORY_LOCATIONS; i++ )
|
||||
XP_FREEIF(m_pNavTitleList[i]);
|
||||
|
||||
// Note: Composer history list points to other static strings,
|
||||
// don't delete here
|
||||
}
|
||||
|
||||
|
||||
#ifndef EDITOR
|
||||
#define MOVE_CONTROL_AMOUNT 30
|
||||
static void wfe_MoveControl(CDialog *pDialog, UINT nID)
|
||||
{
|
||||
CRect cRect;
|
||||
CWnd *pWnd = pDialog->GetDlgItem(nID);
|
||||
if( pWnd )
|
||||
{
|
||||
pWnd->GetWindowRect(&cRect);
|
||||
pDialog->ScreenToClient(&cRect);
|
||||
pWnd->SetWindowPos(0, cRect.left, cRect.top-MOVE_CONTROL_AMOUNT, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
BOOL CDialogURL::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
CComboBox *pNavBox = (CComboBox*)GetDlgItem(IDC_URL);
|
||||
if( !pNavBox )
|
||||
return(1);
|
||||
|
||||
CEdit * pBox = (CEdit *) GetDlgItem(IDC_URL);
|
||||
// Used a separate define in dialog.h to avoid having to include edt.h for MAX_EDIT_HISTORY_LOCATIONS
|
||||
XP_ASSERT(MAX_HISTORY_LOCATIONS <= MAX_EDIT_HISTORY_LOCATIONS);
|
||||
|
||||
if(pBox) {
|
||||
pBox->SetWindowText((const char *) url_string);
|
||||
pBox->SetFocus();
|
||||
pBox->SetSel(0, -1);
|
||||
#ifdef EDITOR
|
||||
// Communicator version has radio buttons to select
|
||||
// loading URL into a browser or editor
|
||||
if ( EDT_IS_EDITOR(m_Context) ){
|
||||
((CButton *)GetDlgItem(IDC_OPEN_URL_EDITOR))->SetCheck(1);
|
||||
} else {
|
||||
((CButton *)GetDlgItem(IDC_OPEN_URL_BROWSER))->SetCheck(1);
|
||||
}
|
||||
CComboBox *pComposerBox = (CComboBox *) GetDlgItem(IDC_URL_EDITOR);
|
||||
if( !pComposerBox )
|
||||
return(1);
|
||||
|
||||
if( EDT_IS_EDITOR(m_Context) )
|
||||
{
|
||||
// Default is to open into Composer
|
||||
((CButton *)GetDlgItem(IDC_OPEN_URL_EDITOR))->SetCheck(1);
|
||||
// Hide Navigator's editbox
|
||||
pNavBox->ShowWindow(SW_HIDE);
|
||||
|
||||
// This will init the dropdown list
|
||||
GetComposerComboBox();
|
||||
|
||||
pComposerBox->SetFocus();
|
||||
pComposerBox->SetEditSel(0, -1);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Default is open in Navigator
|
||||
((CButton *)GetDlgItem(IDC_OPEN_URL_BROWSER))->SetCheck(1);
|
||||
// Hide the editor's combobox
|
||||
pComposerBox->ShowWindow(SW_HIDE);
|
||||
|
||||
// This will init the dropdown list
|
||||
GetNavComboBox();
|
||||
|
||||
pNavBox->SetFocus();
|
||||
pNavBox->SetEditSel(0, -1);
|
||||
}
|
||||
return(0);
|
||||
#else
|
||||
GetNavComboBox();
|
||||
pNavBox->SetFocus();
|
||||
pNavBox->SetSel(0, -1);
|
||||
|
||||
// Move all controls up and resize the dialog as well
|
||||
// We could have made a different dialog, but that makes it more difficult
|
||||
// for I18N, so just move the controls instead
|
||||
wfe_MoveControl(this, IDC_ENTER_URL_MSG);
|
||||
wfe_MoveControl(this, IDC_URL);
|
||||
wfe_MoveControl(this, IDC_BROWSE_FILE);
|
||||
wfe_MoveControl(this, IDOK);
|
||||
wfe_MoveControl(this, IDCANCEL);
|
||||
wfe_MoveControl(this, ID_HELP);
|
||||
CRect cRect;
|
||||
GetWindowRect(&cRect);
|
||||
SetWindowPos(0, 0, 0, cRect.Width(), cRect.Height()-MOVE_CONTROL_AMOUNT, SWP_NOMOVE | SWP_NOZORDER);
|
||||
#endif // EDITOR
|
||||
return(0);
|
||||
}
|
||||
return(1);
|
||||
return(0);
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CDialogURL, CDialog)
|
||||
//{{AFX_MSG_MAP(CDialogURL)
|
||||
ON_BN_CLICKED(IDC_BROWSE_FILE, OnBrowseForFile)
|
||||
ON_COMMAND(ID_HELP, OnHelp)
|
||||
ON_CBN_EDITCHANGE(IDC_URL, OnChangeNavLocation)
|
||||
ON_CBN_SELCHANGE(IDC_URL, OnSelchangeNavList)
|
||||
//}}AFX_MSG_MAP
|
||||
#ifdef EDITOR
|
||||
ON_BN_CLICKED(IDC_OPEN_URL_BROWSER, OnOpenInBrowser)
|
||||
ON_BN_CLICKED(IDC_OPEN_URL_EDITOR, OnOpenInEditor)
|
||||
ON_CBN_SELCHANGE(IDC_URL_EDITOR, OnSelchangeComposerList)
|
||||
ON_CBN_EDITCHANGE(IDC_URL_EDITOR, OnChangeComposerLocation)
|
||||
#endif
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -98,11 +175,10 @@ void CDialogURL::OnBrowseForFile()
|
|||
#endif
|
||||
char * pName = wfe_GetExistingFileName( this->m_hWnd, szLoadString(IDS_OPEN), type, TRUE, NULL);
|
||||
if( pName ){
|
||||
GetDlgItem(IDC_URL)->SetWindowText(pName);
|
||||
GetDlgItem(EDT_IS_EDITOR(m_Context) ? IDC_URL_EDITOR: IDC_URL)->SetWindowText(pName);
|
||||
XP_FREE(pName);
|
||||
// Set focus to Open button so Enter can be used
|
||||
// immediately after choosing file
|
||||
GotoDlgCtrl(GetDlgItem(IDOK));
|
||||
// New behavior - immediately end dialog with filename selected
|
||||
OnOK();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -115,11 +191,19 @@ void CDialogURL::OnHelp()
|
|||
void CDialogURL::OnOK()
|
||||
{
|
||||
|
||||
CEdit * pBox = (CEdit *) GetDlgItem(IDC_URL);
|
||||
CWnd *pNavBox = GetNavComboBox();
|
||||
|
||||
if(pBox) {
|
||||
pBox->GetWindowText(url_string);
|
||||
#ifdef EDITOR
|
||||
BOOL bEdit = ((CButton *)GetDlgItem(IDC_OPEN_URL_EDITOR))->GetCheck() != 0;
|
||||
CWnd *pComposerBox = GetComposerComboBox();
|
||||
if( bEdit ) {
|
||||
pComposerBox->GetWindowText(url_string);
|
||||
} else
|
||||
#else
|
||||
if(pNavBox) {
|
||||
pNavBox->GetWindowText(url_string);
|
||||
}
|
||||
#endif
|
||||
|
||||
CDialog::OnOK();
|
||||
#ifdef XP_WIN32
|
||||
|
@ -152,21 +236,268 @@ void CDialogURL::OnOK()
|
|||
}
|
||||
|
||||
#ifdef EDITOR
|
||||
BOOL bEdit = ((CButton *)GetDlgItem(IDC_OPEN_URL_EDITOR))->GetCheck() != 0;
|
||||
|
||||
if (bEdit || EDT_IS_EDITOR(m_Context)) {
|
||||
FE_LoadUrl(/*pAbsoluteURL*/(char *)LPCSTR(url_string), bEdit);
|
||||
// This creates a new edit or browser window
|
||||
FE_LoadUrl((char *)LPCSTR(url_string), bEdit);
|
||||
} else
|
||||
#endif
|
||||
// Load the URL into the same window only if called from an existing browser
|
||||
ABSTRACTCX(m_Context)->NormalGetUrl(/*pAbsoluteURL*/ url_string);
|
||||
ABSTRACTCX(m_Context)->NormalGetUrl(url_string);
|
||||
|
||||
if( pAbsoluteURL && bFreeString )
|
||||
XP_FREE(pAbsoluteURL);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
CComboBox *CDialogURL::GetNavComboBox()
|
||||
{
|
||||
CComboBox *pComboBox = (CComboBox*)GetDlgItem(IDC_URL);
|
||||
|
||||
// Use flag to init once only when we need to
|
||||
if( m_bInitNavComboBox )
|
||||
return pComboBox;
|
||||
|
||||
XP_MEMSET(m_pNavTitleList, 0, MAX_HISTORY_LOCATIONS*sizeof(char*));
|
||||
|
||||
m_bInitNavComboBox = TRUE;
|
||||
|
||||
CDC *pDC = pComboBox->GetDC();
|
||||
// Get the size of the strings added in the dropdown...
|
||||
CSize cSize;
|
||||
int iMaxWidth = 0;
|
||||
int wincsid = INTL_CharSetNameToID(INTL_ResourceCharSet());
|
||||
|
||||
// Fill the combobox with Composer's "Recent Files" list
|
||||
char * pUrl = NULL;
|
||||
int j = 0; // Separate counter for title array
|
||||
|
||||
// We would like to get Browser history items from the new history system (RDF store?)
|
||||
|
||||
// Use this for the current Browser History (same as in the Go menu)
|
||||
// Get the session history list
|
||||
XP_List* pList = SHIST_GetList(m_Context);
|
||||
if( pList )
|
||||
{
|
||||
// Get the pointer to the current history entry
|
||||
for( int i = 0; i < MAX_HISTORY_LOCATIONS; i++, pList = pList->prev )
|
||||
{
|
||||
//pList = pList->prev;
|
||||
if( !pList )
|
||||
break;
|
||||
|
||||
History_entry* pEntry = (History_entry*)pList->object;
|
||||
//ASSERT(pEntry);
|
||||
if( !pEntry )
|
||||
continue;
|
||||
|
||||
// Don't include current page's URL
|
||||
if( pEntry == m_Context->hist.cur_doc_ptr )
|
||||
continue;
|
||||
|
||||
pComboBox->AddString(pEntry->address);
|
||||
m_pNavTitleList[j] = XP_STRDUP(pEntry->title);
|
||||
|
||||
CString csTemp(pUrl);
|
||||
if ( pDC )
|
||||
{
|
||||
cSize = CIntlWin::GetTextExtent(wincsid, pDC->GetSafeHdc(), csTemp, csTemp.GetLength());
|
||||
pDC->LPtoDP(&cSize);
|
||||
if ( cSize.cx > iMaxWidth )
|
||||
iMaxWidth = cSize.cx;
|
||||
}
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
||||
iMaxWidth += 4;
|
||||
if( pComboBox->GetDroppedWidth() < iMaxWidth )
|
||||
pComboBox->SetDroppedWidth(iMaxWidth);
|
||||
|
||||
// Initialize the edit field with the first history item
|
||||
// or last-used global string
|
||||
if( pComboBox->GetCount() > 0 )
|
||||
{
|
||||
pComboBox->SetCurSel(0);
|
||||
SetCaption(m_pNavTitleList[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
pComboBox->SetWindowText((const char*)url_string);
|
||||
SetCaption();
|
||||
}
|
||||
return pComboBox;
|
||||
}
|
||||
|
||||
void CDialogURL::SetCaption(char *pPageTitle)
|
||||
{
|
||||
CString csCaption(szLoadString(pPageTitle ? IDS_OPEN_FILE : IDS_OPEN_PAGE));
|
||||
if( pPageTitle )
|
||||
{
|
||||
// Append the page title so caption is "Open: My Page Title"
|
||||
csCaption += pPageTitle;
|
||||
}
|
||||
SetWindowText((const char*)csCaption);
|
||||
}
|
||||
|
||||
void CDialogURL::OnChangeNavLocation()
|
||||
{
|
||||
// Any text typed in the edit box invalidates the page title
|
||||
// show in the dialog caption,
|
||||
// but search the title list to find a match
|
||||
if( !m_bInternalChange )
|
||||
{
|
||||
CString csString;
|
||||
CComboBox *pComboBox = GetNavComboBox();
|
||||
pComboBox->GetWindowText(csString);
|
||||
csString.TrimLeft();
|
||||
csString.TrimRight();
|
||||
char *pCaption = NULL;
|
||||
if( !csString.IsEmpty() )
|
||||
{
|
||||
// Find user-typed string in the combobox
|
||||
// and set corresponding title
|
||||
int nIndex = pComboBox->FindStringExact(0,csString);
|
||||
if( nIndex >= 0 )
|
||||
pCaption = m_pNavTitleList[nIndex];
|
||||
}
|
||||
SetCaption(pCaption);
|
||||
}
|
||||
}
|
||||
|
||||
void CDialogURL::OnSelchangeNavList()
|
||||
{
|
||||
if( !m_bInternalChange )
|
||||
SetCaption(m_pNavTitleList[GetNavComboBox()->GetCurSel()]);
|
||||
}
|
||||
|
||||
|
||||
#ifdef EDITOR
|
||||
CComboBox *CDialogURL::GetComposerComboBox()
|
||||
{
|
||||
CComboBox *pComboBox = (CComboBox*)GetDlgItem(IDC_URL_EDITOR);
|
||||
|
||||
// Use flag to init once only when we need to
|
||||
if( m_bInitComposerComboBox )
|
||||
return pComboBox;
|
||||
|
||||
m_bInitComposerComboBox = TRUE;
|
||||
|
||||
CDC *pDC = pComboBox->GetDC();
|
||||
// Get the size of the strings added in the dropdown...
|
||||
CSize cSize;
|
||||
int iMaxWidth = 0;
|
||||
int wincsid = INTL_CharSetNameToID(INTL_ResourceCharSet());
|
||||
|
||||
// Fill the combobox with Composer's "Recent Files" list
|
||||
char * pUrl = NULL;
|
||||
char * pTitle = NULL;
|
||||
int j = 0; // Separate counter for title array
|
||||
for( int i = 0; i < MAX_EDIT_HISTORY_LOCATIONS; i++ )
|
||||
{
|
||||
// Save the Page Title for each URL as well
|
||||
// NOTE: We don't have to free these - static list is in xp edit code
|
||||
m_pComposerTitleList[i] = 0;
|
||||
if(EDT_GetEditHistory(m_Context, i, &pUrl, &m_pComposerTitleList[j]))
|
||||
{
|
||||
pComboBox->AddString(pUrl);
|
||||
CString csTemp(pUrl);
|
||||
if ( pDC ){
|
||||
cSize = CIntlWin::GetTextExtent(wincsid, pDC->GetSafeHdc(), csTemp, csTemp.GetLength());
|
||||
pDC->LPtoDP(&cSize);
|
||||
if ( cSize.cx > iMaxWidth ){
|
||||
iMaxWidth = cSize.cx;
|
||||
}
|
||||
}
|
||||
j++;
|
||||
}
|
||||
}
|
||||
// ...so we can be sure it's visible by using wider dropdown width
|
||||
iMaxWidth += 4;
|
||||
if( pComboBox->GetDroppedWidth() < iMaxWidth )
|
||||
pComboBox->SetDroppedWidth(iMaxWidth);
|
||||
|
||||
// Initialize the edit field with the first history item
|
||||
// or last-used global string (shared with Navigator)
|
||||
if( pComboBox->GetCount() > 0 )
|
||||
{
|
||||
pComboBox->SetCurSel(0);
|
||||
SetCaption(m_pComposerTitleList[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
pComboBox->SetWindowText((const char*)url_string);
|
||||
SetCaption();
|
||||
}
|
||||
|
||||
return pComboBox;
|
||||
}
|
||||
|
||||
void CDialogURL::OnSelchangeComposerList()
|
||||
{
|
||||
if( !m_bInternalChange )
|
||||
SetCaption(m_pComposerTitleList[GetComposerComboBox()->GetCurSel()]);
|
||||
}
|
||||
|
||||
void CDialogURL::OnChangeComposerLocation()
|
||||
{
|
||||
// Any text typed in the edit box invalidates the page title
|
||||
// show in the dialog caption, but search the title list
|
||||
if( !m_bInternalChange )
|
||||
{
|
||||
CString csString;
|
||||
CComboBox *pComboBox = GetComposerComboBox();
|
||||
pComboBox->GetWindowText(csString);
|
||||
csString.TrimLeft();
|
||||
csString.TrimRight();
|
||||
char *pCaption = NULL;
|
||||
if( !csString.IsEmpty() )
|
||||
{
|
||||
// Find user-typed string in the combobox
|
||||
// and set corresponding title
|
||||
int nIndex = pComboBox->FindStringExact(0,csString);
|
||||
if( nIndex >= 0 )
|
||||
pCaption = m_pComposerTitleList[nIndex];
|
||||
}
|
||||
SetCaption(pCaption);
|
||||
}
|
||||
}
|
||||
|
||||
void CDialogURL::OnOpenInBrowser()
|
||||
{
|
||||
CComboBox *pComposerComboBox = GetComposerComboBox();
|
||||
CWnd *pNavComboBox = GetNavComboBox();
|
||||
CString csString;
|
||||
pComposerComboBox->GetWindowText(csString);
|
||||
csString.TrimLeft();
|
||||
csString.TrimRight();
|
||||
if( !csString.IsEmpty() )
|
||||
{
|
||||
m_bInternalChange = TRUE;
|
||||
pNavComboBox->SetWindowText(csString);
|
||||
m_bInternalChange = FALSE;
|
||||
}
|
||||
pComposerComboBox->ShowWindow(SW_HIDE);
|
||||
pNavComboBox->ShowWindow(SW_SHOW);
|
||||
}
|
||||
|
||||
void CDialogURL::OnOpenInEditor()
|
||||
{
|
||||
CComboBox *pComposerComboBox = GetComposerComboBox();
|
||||
CWnd *pNavComboBox = GetNavComboBox();
|
||||
CString csString;
|
||||
pNavComboBox->GetWindowText(csString);
|
||||
csString.TrimLeft();
|
||||
csString.TrimRight();
|
||||
if( !csString.IsEmpty() )
|
||||
{
|
||||
m_bInternalChange = TRUE;
|
||||
pComposerComboBox->SetWindowText(csString);
|
||||
m_bInternalChange = FALSE;
|
||||
}
|
||||
pNavComboBox->ShowWindow(SW_HIDE);
|
||||
pComposerComboBox->ShowWindow(SW_SHOW);
|
||||
}
|
||||
#endif //EDITOR
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -472,7 +803,6 @@ char * CDialogPASS::DoModal(const char * Msg)
|
|||
return(NULL);
|
||||
}
|
||||
|
||||
|
||||
int CDialogPASS::OnInitDialog()
|
||||
{
|
||||
|
||||
|
|
|
@ -1,422 +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 _DIALOG_H_
|
||||
#define _DIALOG_H_
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CDialogURL dialog
|
||||
|
||||
class FAR CDialogURL : public CDialog
|
||||
{
|
||||
|
||||
protected:
|
||||
MWContext * m_Context;
|
||||
|
||||
public:
|
||||
CDialogURL(CWnd *pParent, MWContext * context = NULL);
|
||||
void SetContext(MWContext * context) {m_Context = context;}
|
||||
|
||||
enum { IDD = IDD_OPENURL_BOX };
|
||||
|
||||
CString m_csURL;
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
CWnd * m_Parent;
|
||||
|
||||
virtual void OnOK();
|
||||
|
||||
afx_msg void OnBrowseForFile();
|
||||
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CDialogURL)
|
||||
// NOTE: the ClassWizard will add member functions here
|
||||
afx_msg void OnHelp();
|
||||
//}}AFX_MSG
|
||||
|
||||
BOOL OnInitDialog();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CDialogLicense dialog
|
||||
|
||||
class FAR CDialogLicense : public CDialog
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CDialogLicense(CWnd* pParent = NULL); // standard constructor
|
||||
int DoModal();
|
||||
|
||||
// Dialog Data
|
||||
enum { IDD = IDD_LICENSE };
|
||||
|
||||
// Text Font
|
||||
CFont m_cfTextFont;
|
||||
// Implementation
|
||||
protected:
|
||||
afx_msg int OnInitDialog();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CDialogSecurity dialog
|
||||
|
||||
class FAR CDialogSecurity : public CDialog
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
int m_Type;
|
||||
XP_Bool *returnpref;
|
||||
CDialogSecurity(int myType, XP_Bool *returnPref, CWnd* pParent = NULL); // standard constructor
|
||||
int DoModal();
|
||||
|
||||
// Dialog Data
|
||||
enum { IDD = IDD_SECURITY };
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
afx_msg int OnInitDialog();
|
||||
afx_msg void OnOK();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CDialogPRMT dialog
|
||||
|
||||
class FAR CDialogPRMT : public CDialog
|
||||
{
|
||||
protected:
|
||||
CString m_csCaption;
|
||||
|
||||
// Construction
|
||||
public:
|
||||
CDialogPRMT(CWnd* pParent = NULL); // standard constructor
|
||||
char * DoModal(const char * Msg, const char * Dflt, const char *pszCaption = NULL);
|
||||
|
||||
void SetSecureTitle( CString &csTitle ) { m_csTitle = csTitle; }
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CDialogPRMT)
|
||||
enum { IDD = IDD_PROMPT };
|
||||
CString m_csAsk;
|
||||
CString m_csAns;
|
||||
//}}AFX_DATA
|
||||
|
||||
CString m_csTitle;
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
afx_msg int OnInitDialog();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CDialogPASS dialog
|
||||
|
||||
class FAR CDialogPASS : public CDialog
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CDialogPASS(CWnd* pParent = NULL); // standard constructor
|
||||
char * DoModal(const char * Msg);
|
||||
|
||||
void SetSecureTitle( CString &csTitle ) { m_csTitle = csTitle; }
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CDialogPASS)
|
||||
enum { IDD = IDD_PROMPT_PASSWD };
|
||||
CString m_csAsk;
|
||||
CString m_csAns;
|
||||
//}}AFX_DATA
|
||||
|
||||
CString m_csTitle;
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
BOOL OnInitDialog();
|
||||
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CDialogPASS)
|
||||
// NOTE: the ClassWizard will add member functions here
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CDialogUPass dialog
|
||||
|
||||
class CDialogUPass : public CDialog
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CDialogUPass(CWnd* pParent = NULL); // standard constructor
|
||||
int DoModal(char * message, char ** user, char ** passwd);
|
||||
|
||||
void SetSecureTitle( CString &csTitle ) { m_csTitle = csTitle; }
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CDialogUPass)
|
||||
enum { IDD = IDD_USERPASS };
|
||||
// NOTE: the ClassWizard will add data members here
|
||||
//}}AFX_DATA
|
||||
|
||||
CString m_csTitle;
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
|
||||
CString m_csUser, m_csPasswd, m_csMessage;
|
||||
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CDialogUPass)
|
||||
// NOTE: the ClassWizard will add member functions here
|
||||
//}}AFX_MSG
|
||||
afx_msg int OnInitDialog();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CUnknownTypeDlg dialog
|
||||
|
||||
class CUnknownTypeDlg : public CDialog
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CUnknownTypeDlg(CWnd* pParent = NULL, char * filetype = NULL, CHelperApp * app = NULL);
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CUnknownTypeDlg)
|
||||
enum { IDD = IDD_UNKNOWNTYPE };
|
||||
CString m_FileType;
|
||||
//}}AFX_DATA
|
||||
CHelperApp * m_app;
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CUnknownTypeDlg)
|
||||
afx_msg void OnConfigureviewer();
|
||||
afx_msg void OnSavetodisk();
|
||||
afx_msg void OnMoreInfo();
|
||||
virtual void OnCancel();
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CNewMimeType dialog
|
||||
|
||||
class CNewMimeType : public CDialog
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CNewMimeType(CWnd* pParent = NULL); // standard constructor
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CNewMimeType)
|
||||
enum { IDD = IDD_NEWMIMETYPE };
|
||||
CString m_MimeSubtype;
|
||||
CString m_MimeType;
|
||||
//}}AFX_DATA
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CNewMimeType)
|
||||
// NOTE: the ClassWizard will add member functions here
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CConfigureViewerSmall dialog
|
||||
|
||||
class CConfigureViewerSmall : public CDialog
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CConfigureViewerSmall(CWnd* pParent = NULL, const char * filetype = NULL,CHelperApp * app = NULL);
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CConfigureViewerSmall)
|
||||
enum { IDD = IDD_CONFIGUREVIEWER_SMALL };
|
||||
CString m_MimeType;
|
||||
CString m_AppName;
|
||||
//}}AFX_DATA
|
||||
CHelperApp * m_app;
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CConfigureViewerSmall)
|
||||
afx_msg void OnHelperBrowse();
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
*
|
||||
* Class: CDefaultBrowserDlg
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* This provides a dialog for notifying the user that another application
|
||||
* has made themselves the "default browser" by changing our registry
|
||||
* entries.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#define CDefaultBrowserDlgBase CDialog
|
||||
|
||||
class nsIDefaultBrowser;
|
||||
|
||||
class CDefaultBrowserDlg : public CDefaultBrowserDlgBase
|
||||
{
|
||||
public:
|
||||
CDefaultBrowserDlg(CWnd* pParent = NULL, nsIDefaultBrowser* pDefaultBrowser = NULL);
|
||||
CDefaultBrowserDlg(nsIDefaultBrowser* pDefaultBrowser);
|
||||
~CDefaultBrowserDlg();
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CDefaultBrowserDlg)
|
||||
enum { IDD = IDD_DEFAULT_BROWSER };
|
||||
BOOL m_bPerformCheck;
|
||||
CListBox m_Listbox;
|
||||
//}}AFX_DATA
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CDefaultBrowserDlg)
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX);
|
||||
virtual BOOL OnInitDialog();
|
||||
virtual void OnOK( );
|
||||
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
protected:
|
||||
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CDefaultBrowserDlg)
|
||||
afx_msg void OnNo();
|
||||
afx_msg void OnDetails();
|
||||
afx_msg void OnPaint();
|
||||
//}}AFX_MSG
|
||||
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
private:
|
||||
nsIDefaultBrowser* m_pDefaultBrowser; // nsIDefaultBrowser interface pointer.
|
||||
|
||||
}; // END OF CLASS CDefaultBrowserDlg()
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// basic dialog that knows how to adjust itself to fit its contents
|
||||
|
||||
class FAR CSelfAdjustingDialog : public CDialog
|
||||
{
|
||||
public:
|
||||
CSelfAdjustingDialog(UINT nIDTemplate, CWnd *pParent);
|
||||
protected:
|
||||
virtual void RectForText(CWnd *window, const char *text, LPRECT wrect, LPPOINT diff);
|
||||
virtual void ResizeItemToFitText(CWnd *window, const char *text,
|
||||
LPPOINT diff);
|
||||
virtual void BumpItemIfAfter(CWnd *item, CWnd *afterWind, LPPOINT diff);
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CheckConfirm dialog
|
||||
|
||||
class FAR CCheckConfirmDialog : public CSelfAdjustingDialog
|
||||
{
|
||||
public:
|
||||
CCheckConfirmDialog(CWnd *pParent, const char *pMessage, const char *pCheckMessage,
|
||||
const char *pOKMessage, const char *pCancelMessage, BOOL checked);
|
||||
|
||||
enum { IDD = IDD_CHECKCONFIRM_BOX };
|
||||
|
||||
BOOL DoModal(XP_Bool *checkboxSet);
|
||||
|
||||
protected:
|
||||
CString mMessage,
|
||||
mCheckMessage,
|
||||
mOKMessage,
|
||||
mCancelMessage;
|
||||
int mCheckState;
|
||||
|
||||
void AdjustButtons(CWnd *okButton, CWnd *cancelButton, LONG expectedMargin);
|
||||
void AdjustForItemSize(CWnd *afterWind, LPPOINT diff);
|
||||
void CheckOverallSize(LPPOINT diff, BOOL adjust);
|
||||
|
||||
virtual BOOL OnInitDialog();
|
||||
virtual void OnOK();
|
||||
virtual void OnCancel();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Single User Signon User Selection Dialog
|
||||
|
||||
class FAR CUserSelectionDialog : public CDialog
|
||||
{
|
||||
public:
|
||||
CUserSelectionDialog(CWnd *pParent, const char *pMessage,
|
||||
const char **pUserList, int16 nUserListCount);
|
||||
~CUserSelectionDialog();
|
||||
|
||||
enum { IDD = IDD_SELECT_BOX };
|
||||
|
||||
BOOL DoModal(int16 *nSelection);
|
||||
|
||||
protected:
|
||||
CString mMessage;
|
||||
char **mList;
|
||||
int16 mListCount;
|
||||
int16 mSelection;
|
||||
|
||||
virtual BOOL OnInitDialog();
|
||||
virtual void OnOK();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
#endif /* _DIALOG_H_ */
|
|
@ -535,8 +535,9 @@ BOOL CPublishDlg::OnInitDialog()
|
|||
CString csURL = m_pCurrentFile ? m_pCurrentFile : m_pCurrentUrl;
|
||||
WFE_CondenseURL(csURL, 50, FALSE);
|
||||
|
||||
CString csCaption;
|
||||
csCaption.Format(szLoadString(IDS_PUBLISH_CAPTION), csURL);
|
||||
CString csCaption = szLoadString(IDS_PUBLISH_CAPTION);
|
||||
csCaption += csURL;
|
||||
|
||||
// Display the main filepath (or URL) in dialog Caption
|
||||
SetWindowText(csCaption);
|
||||
|
||||
|
@ -768,11 +769,11 @@ void CPublishDlg::OnOK()
|
|||
m_csLocation.TrimLeft();
|
||||
m_csLocation.TrimRight();
|
||||
|
||||
int type = NET_URL_Type((char*)LPCSTR(m_csLocation));
|
||||
if( type == FTP_TYPE_URL ||
|
||||
type == HTTP_TYPE_URL ||
|
||||
type == SECURE_HTTP_TYPE_URL ){
|
||||
|
||||
// int type = NET_URL_Type((char*)LPCSTR(m_csLocation));
|
||||
// if( type == FTP_TYPE_URL ||
|
||||
// type == HTTP_TYPE_URL ||
|
||||
// type == SECURE_HTTP_TYPE_URL ){
|
||||
{
|
||||
m_csUserName.TrimLeft();
|
||||
m_csUserName.TrimRight();
|
||||
m_csPassword.TrimLeft();
|
||||
|
@ -785,20 +786,28 @@ void CPublishDlg::OnOK()
|
|||
NET_MakeUploadURL( &pLocation, (char*)LPCSTR(m_csLocation),
|
||||
(char*)LPCSTR(m_csUserName),
|
||||
(char*)LPCSTR(m_csPassword) );
|
||||
|
||||
int iFilenameOffset = XP_STRLEN(pLocation);
|
||||
|
||||
XP_FREEIF(m_pFullLocation);
|
||||
// Add filename to end of location URL for validation
|
||||
// This is final string used by Publishing
|
||||
m_pFullLocation = EDT_ReplaceFilename(pLocation, (char*)LPCSTR(m_csFilename), TRUE);
|
||||
m_pFullLocation = EDT_ReplaceFilename(pLocation, (char*)LPCSTR(m_csFilename), FALSE);
|
||||
XP_FREEIF(pLocation);
|
||||
|
||||
// HARDTS:
|
||||
// Tell user the URL they are publishing looks like it might be wrong.
|
||||
// e.g. ends in a slash or does not have a file extension.
|
||||
// Give the user the option of attempting to publish to the
|
||||
// specified URL even if it looks suspicious.
|
||||
if (!EDT_CheckPublishURL(m_pMWContext,m_pFullLocation)) {
|
||||
// Give the user the option of replacing bad characters with '_'
|
||||
// ot attempting to publish to the specified URL anyway
|
||||
BOOL bResult = EDT_CheckPublishURL(m_pMWContext, &m_pFullLocation);
|
||||
|
||||
// Reset filename in case we replaced any bad characters
|
||||
// FALSE = strip filename even if there's no extension
|
||||
// since that may have been the error and we know we appended it
|
||||
SetPublishingControls(m_pFullLocation, FALSE);
|
||||
|
||||
// If user selected "Cancel", then don't publish
|
||||
if( !bResult )
|
||||
return;
|
||||
}
|
||||
|
||||
CListBox * pIncludeListBox = (CListBox*)GetDlgItem(IDC_PUBLISH_OTHER_FILES);
|
||||
int iCount = pIncludeListBox->GetSelCount();
|
||||
|
@ -815,12 +824,15 @@ void CPublishDlg::OnOK()
|
|||
|
||||
// Construct an array of included files
|
||||
// from just the selected items in listbox
|
||||
if( iCount ){
|
||||
if( iCount )
|
||||
{
|
||||
int *pIndexes = (int*)XP_ALLOC(iCount * sizeof(int));
|
||||
if( pIndexes ){
|
||||
if( pIndexes )
|
||||
{
|
||||
pIncludeListBox->GetSelItems(iCount, pIndexes);
|
||||
CString csItem;
|
||||
for( int i=0; i < iCount; i++ ){
|
||||
for( int i=0; i < iCount; i++ )
|
||||
{
|
||||
if( bUseImageList ){
|
||||
// Copy the URL from the original, sorted list of image URLs
|
||||
csItem = m_ppImageList[pIndexes[i]];
|
||||
|
@ -837,12 +849,17 @@ void CPublishDlg::OnOK()
|
|||
|
||||
// Don't use CDialog::OnOK() -- it will overwrite our changed m_csLocation
|
||||
EndDialog(IDOK);
|
||||
} else {
|
||||
}
|
||||
#if 0
|
||||
// Let XP put up error messages
|
||||
else
|
||||
{
|
||||
// Tell user they must use "ftp://" or "http://"
|
||||
MessageBox(szLoadString(IDS_BAD_PUBLISH_URL),
|
||||
szLoadString(IDS_PUBLISH_FILES),
|
||||
MB_ICONEXCLAMATION | MB_OK);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void CPublishDlg::OnHelp()
|
||||
|
@ -1046,6 +1063,69 @@ void CPublishDlg::OnSelchangePublishLocation()
|
|||
}
|
||||
}
|
||||
|
||||
void CPublishDlg::SetPublishingControls(char *pFullLocation, BOOL bMustHaveExt)
|
||||
{
|
||||
char *pUserName = NULL;
|
||||
char *pPassword = NULL;
|
||||
char *pLocation = NULL;
|
||||
char *pFilename = NULL;
|
||||
|
||||
NET_ParseUploadURL( pFullLocation, &pLocation,
|
||||
&pUserName, &pPassword );
|
||||
if( pUserName )
|
||||
{
|
||||
CString csUser = pUserName;
|
||||
csUser.TrimLeft();
|
||||
csUser.TrimRight();
|
||||
if( !csUser.IsEmpty() )
|
||||
m_csUserName = csUser;
|
||||
XP_FREE(pUserName);
|
||||
}
|
||||
if( pPassword )
|
||||
{
|
||||
CString csPassword = pPassword;
|
||||
csPassword.TrimLeft();
|
||||
csPassword.TrimRight();
|
||||
if( !csPassword.IsEmpty() )
|
||||
{
|
||||
m_csPassword = csPassword;
|
||||
PadPassword();
|
||||
}
|
||||
XP_FREE(pPassword);
|
||||
}
|
||||
if( pLocation )
|
||||
{
|
||||
// Extract filename at end of Location
|
||||
// If bMustHaveExt is FALSE, then we are correcting errors,
|
||||
// so allow filenames without an extension.
|
||||
pFilename = EDT_GetFilename(pLocation, bMustHaveExt);
|
||||
|
||||
char * pDot = pFilename ? strchr(pFilename, '.') : NULL;
|
||||
if( !bMustHaveExt ||
|
||||
(pFilename && *pFilename && pDot &&
|
||||
(0 == stricmp(".htm", pDot) || 0 == stricmp(".html", pDot) || 0 == stricmp(".shtml", pDot))) )
|
||||
{
|
||||
m_csFilename = pFilename;
|
||||
XP_FREE(pFilename);
|
||||
|
||||
// Save version with filename stripped off
|
||||
char * pURL = EDT_ReplaceFilename(pLocation, NULL, bMustHaveExt);
|
||||
m_csLocation = pURL;
|
||||
XP_FREEIF(pURL);
|
||||
} else {
|
||||
m_csLocation = pLocation;
|
||||
}
|
||||
XP_FREE(pLocation);
|
||||
|
||||
// We don't use DDX for this
|
||||
GetDlgItem(IDC_PUBLISH_LOCATION_LIST)->SetWindowText((char*)LPCSTR(m_csLocation));
|
||||
}
|
||||
|
||||
|
||||
// Update Filename, username, and password controls
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
// Parse editfield location into URL, Filename, UserName, and Password
|
||||
// NOTE: Anything found in this Location will override contents of
|
||||
// individual Filename, UserName, and Password edit boxes
|
||||
|
@ -1054,59 +1134,12 @@ void CPublishDlg::OnKillfocusPublishLocationList()
|
|||
// If user included a filename, user name, or password within location string,
|
||||
// use that instead of current edit fields
|
||||
UpdateData(TRUE);
|
||||
|
||||
char *pUserName = NULL;
|
||||
char *pPassword = NULL;
|
||||
char *pLocation = NULL;
|
||||
char *pFilename = NULL;
|
||||
GetDlgItem(IDC_PUBLISH_LOCATION_LIST)->GetWindowText(m_csLocation);
|
||||
m_csLocation.TrimLeft();
|
||||
m_csLocation.TrimRight();
|
||||
|
||||
NET_ParseUploadURL( (char*)LPCSTR(m_csLocation), &pLocation,
|
||||
&pUserName, &pPassword );
|
||||
if( pUserName ){
|
||||
CString csUser = pUserName;
|
||||
csUser.TrimLeft();
|
||||
csUser.TrimRight();
|
||||
if( !csUser.IsEmpty() ){
|
||||
m_csUserName = csUser;
|
||||
}
|
||||
XP_FREE(pUserName);
|
||||
}
|
||||
if( pPassword ){
|
||||
CString csPassword = pPassword;
|
||||
csPassword.TrimLeft();
|
||||
csPassword.TrimRight();
|
||||
if( !csPassword.IsEmpty() ){
|
||||
m_csPassword = csPassword;
|
||||
}
|
||||
XP_FREE(pPassword);
|
||||
}
|
||||
if( pLocation ){
|
||||
// Extract filename at end of Location
|
||||
// ONLY if it ends in ".htm" or ".html" or ".shtml"
|
||||
pFilename = EDT_GetFilename(pLocation, TRUE);
|
||||
// Put in check for pFilename to be NULL. hardts
|
||||
char * pDot = pFilename ? strchr(pFilename, '.') : NULL;
|
||||
if( pFilename && *pFilename && pDot &&
|
||||
(0 == stricmp(".htm", pDot) || 0 == stricmp(".html", pDot) || 0 == stricmp(".shtml", pDot)) ){
|
||||
m_csFilename = pFilename;
|
||||
XP_FREE(pFilename);
|
||||
|
||||
// Save version with filename stripped off
|
||||
char * pURL = EDT_ReplaceFilename(pLocation, NULL, TRUE);
|
||||
m_csLocation = pURL;
|
||||
GetDlgItem(IDC_PUBLISH_LOCATION_LIST)->SetWindowText(pURL);
|
||||
XP_FREEIF(pURL);
|
||||
} else {
|
||||
m_csLocation = pLocation;
|
||||
}
|
||||
XP_FREE(pLocation);
|
||||
}
|
||||
|
||||
// Update Filename, User name, and password controls
|
||||
UpdateData(FALSE);
|
||||
|
||||
// TRUE = remove a filename ONLY if it has an extension
|
||||
SetPublishingControls((char*)LPCSTR(m_csLocation), TRUE);
|
||||
}
|
||||
|
||||
void CPublishDlg::OnGetNetcenterLocation()
|
||||
|
|
|
@ -291,6 +291,7 @@ protected:
|
|||
#endif
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
void SetPublishingControls(char *pFullLocation, BOOL bMustHaveExt);
|
||||
void PadPassword();
|
||||
};
|
||||
|
||||
|
|
|
@ -81,7 +81,7 @@ static UINT BASED_CODE nIDEditBarArray[] =
|
|||
{
|
||||
// same order as in the bitmap for toolbar
|
||||
ID_EDT_NEW_DOC_BLANK,
|
||||
ID_FILE_OPEN,
|
||||
ID_FILE_OPENURL,
|
||||
ID_EDT_FILE_SAVE,
|
||||
ID_FILE_PUBLISH,
|
||||
ID_OPEN_NAV_WINDOW,
|
||||
|
@ -447,7 +447,7 @@ BOOL CEditToolBarController::CreateEditBars(MWContext *pMWContext, CView *pComma
|
|||
pIToolBar->SetButtons( nIDEditBarArray, EDITBAR_ID_COUNT );
|
||||
// Set menu/toolbar popup styles for specific buttons:
|
||||
pIToolBar->SetButtonStyle(ID_EDT_NEW_DOC_BLANK, TB_HAS_TIMED_MENU);
|
||||
pIToolBar->SetButtonStyle(ID_FILE_OPEN, TB_HAS_TIMED_MENU);
|
||||
pIToolBar->SetButtonStyle(ID_FILE_OPENURL, TB_HAS_TIMED_MENU);
|
||||
pIToolBar->SetButtonStyle(ID_FILE_PRINT, TB_HAS_TIMED_MENU);
|
||||
|
||||
// First pair are actually ignored! Second is bitmap size
|
||||
|
|
|
@ -148,7 +148,6 @@ public:
|
|||
|
||||
protected:
|
||||
void DockControlBarLeftOf(CToolBar* Bar,CToolBar* LeftOf);
|
||||
//void BuildRecentFilesMenu(CMenu * pMenu);
|
||||
|
||||
// Prompts user to supply required URL if missing from preferences.
|
||||
// Allows selecting a local file
|
||||
|
|
|
@ -637,7 +637,6 @@ BEGIN
|
|||
IDS_SELECT_HTML_EDITOR "Choose HTML Editor Application"
|
||||
IDS_OTHER_HREF_ATTRIBUTES
|
||||
"Enter any additional attributes, such as Java Script, for the HREF tag. Carriage returns are ignored."
|
||||
IDS_BAD_PUBLISH_URL "Publish destination must begin with ""ftp://"" or ""http://"""
|
||||
IDS_TARGETS_IN_CURRENT_DOC
|
||||
"Select a named target in current page (optional):"
|
||||
IDS_TARGETS_IN_FILE "Select a named target in the specified file (optional):"
|
||||
|
@ -723,7 +722,8 @@ BEGIN
|
|||
IDS_SELECT_BROWSETO_CAPTION "Choose ""Browse To"" File"
|
||||
IDS_NEW_PAGE_TEMPLATE "New Page From Template"
|
||||
IDS_EDITING_TEMPLATE "You are already editing the chosen template page.\nYour new page will not have the latest changes\nyou made in the template page."
|
||||
IDS_PUBLISH_CAPTION "Publish: %s"
|
||||
IDS_PUBLISH_CAPTION "Publish: "
|
||||
IDS_PUBLISH_PAGE "Publish Page"
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
@ -750,7 +750,6 @@ END
|
|||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_PUBLISH_FILES "Publish Files"
|
||||
IDS_FILE_COUNT_FORMAT "File %d of %d"
|
||||
IDS_UPLOADING_FILE "Uploading file to remote server:"
|
||||
IDS_SAVING_FILE "Saving file to local disk:"
|
||||
|
@ -864,8 +863,6 @@ BEGIN
|
|||
ID_FORMAT_INCREASE_FONTSIZE "Increase font size 1 unit\nIncrease font size"
|
||||
ID_FORMAT_DECREASE_FONTSIZE "Decrease font size 1 unit\nDecrease font size"
|
||||
IDS_8_PTS "8 pts"
|
||||
IDS_EDIT_LINK_HINT " [Press Ctrl and click to edit link]"
|
||||
|
||||
END
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -4467,12 +4467,12 @@ LRESULT CNetscapeEditView::OnButtonMenuOpen(WPARAM wParam, LPARAM lParam)
|
|||
idArray = idArrayNewDoc;
|
||||
strArray = strArrayNewDoc;
|
||||
}
|
||||
else if( nCommand == ID_FILE_OPEN )
|
||||
else if( nCommand == ID_FILE_OPENURL )
|
||||
{
|
||||
// Menu length is dynamic - don't use fixed arrays
|
||||
// First 2 items are always the same
|
||||
AppendMenu(hMenu, MF_STRING, ID_FILE_OPEN, szLoadString(IDS_FILE_OPEN));
|
||||
AppendMenu(hMenu, MF_STRING, ID_FILE_OPENURL, szLoadString(IDS_FILE_OPENURL));
|
||||
AppendMenu(hMenu, MF_STRING, ID_FILE_OPEN, szLoadString(IDS_FILE_OPEN));
|
||||
AppendMenu(hMenu, MF_SEPARATOR, 0, 0);
|
||||
|
||||
// The rest of the menu comes from the history list of recently-edited URLs
|
||||
|
|
|
@ -3475,6 +3475,8 @@ BEGIN
|
|||
IDS_LOAD_PLUGINS "Loading plugins..."
|
||||
IDS_DRAG_THIS_URL_TIP "Drag this location"
|
||||
IDS_OPEN "Open"
|
||||
IDS_OPEN_PAGE "Open Page"
|
||||
IDS_OPEN_FILE "Open: "
|
||||
IDS_PROXIE_FOLDERS "Drag this icon to create a link to this window"
|
||||
IDS_LOAD_JAVA "Starting java..."
|
||||
IDS_LANGUAGE_GREEK "Greek"
|
||||
|
|
|
@ -1076,25 +1076,27 @@ BEGIN
|
|||
EDITTEXT IDC_PROMPT_ANS,5,39,233,12,ES_PASSWORD | ES_AUTOHSCROLL
|
||||
END
|
||||
|
||||
IDD_OPENURL_BOX DIALOG DISCARDABLE 0, 0, 319, 77
|
||||
IDD_OPENURL_BOX DIALOG DISCARDABLE 0, 0, 319, 76
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Open Page"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
LTEXT "Enter the World Wide Web location (URL) or specify the local file you would like to open:",
|
||||
IDC_STATIC,6,6,243,18
|
||||
EDITTEXT IDC_URL,6,26,245,12,ES_AUTOHSCROLL | WS_GROUP
|
||||
PUSHBUTTON "Choose &File...",IDC_BROWSE_FILE,255,25,50,14
|
||||
#ifdef EDITOR
|
||||
LTEXT "Open location or file in:",IDC_STATIC,6,43,80,8
|
||||
LTEXT "Open page in:",IDC_STATIC,6,7,61,8
|
||||
CONTROL "&Navigator",IDC_OPEN_URL_BROWSER,"Button",
|
||||
BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,85,56,49,10
|
||||
BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,79,7,58,10
|
||||
CONTROL "&Composer",IDC_OPEN_URL_EDITOR,"Button",
|
||||
BS_AUTORADIOBUTTON,85,43,56,10
|
||||
#endif // EDITOR
|
||||
DEFPUSHBUTTON "Open",IDOK,145,49,50,14,WS_GROUP
|
||||
PUSHBUTTON "Cancel",IDCANCEL,201,49,50,14
|
||||
PUSHBUTTON "Help",ID_HELP,255,49,50,14
|
||||
BS_AUTORADIOBUTTON,143,7,56,10
|
||||
COMBOBOX IDC_URL_EDITOR,6,34,245,115,CBS_DROPDOWN | WS_VSCROLL | CBS_AUTOHSCROLL | WS_TABSTOP
|
||||
#endif
|
||||
LTEXT "Enter the World Wide Web location or the local file you would like to open:",
|
||||
IDC_ENTER_URL_MSG,6,23,301,11
|
||||
COMBOBOX IDC_URL,6,34,245,115,CBS_DROPDOWN | WS_VSCROLL | CBS_AUTOHSCROLL | WS_TABSTOP
|
||||
// EDITTEXT IDC_URL,6,34,245,12,ES_AUTOHSCROLL | WS_GROUP
|
||||
PUSHBUTTON "Open &File...",IDC_BROWSE_FILE,255,33,56,14
|
||||
DEFPUSHBUTTON "Open",IDOK,78,56,50,14,WS_GROUP
|
||||
PUSHBUTTON "Cancel",IDCANCEL,134,56,50,14
|
||||
PUSHBUTTON "Help",ID_HELP,190,56,50,14
|
||||
END
|
||||
|
||||
IDD_CHECKCONFIRM_BOX DIALOG DISCARDABLE 0, 0, 186, 95
|
||||
|
|
|
@ -67,6 +67,8 @@
|
|||
#define IDD_PROMPT 109
|
||||
#define IDD_PROMPT_PASSWD 110
|
||||
#define IDR_SEARCHFRAME 111
|
||||
#define IDC_ENTER_URL_MSG 109
|
||||
#define IDC_URL_EDITOR 110
|
||||
#define IDC_URL 112
|
||||
#define IDD_URLTITLEBAR 112
|
||||
#define IDC_TITLE 113
|
||||
|
@ -2417,7 +2419,6 @@
|
|||
#define ID_VIEW_FRAME_INFO 34487
|
||||
#define ID_MAIL_WRAPLONGLINES 34496
|
||||
#define ID_HOTLIST_ADDCURRENTTOHOTLIST2 34497
|
||||
#define IDS_PUBLISH_FILES 34503
|
||||
#define IDS_FILE_COUNT_FORMAT 34504
|
||||
#define IDS_UPLOADING_FILE 34505
|
||||
#define IDS_SAVING_FILE 34506
|
||||
|
@ -2792,7 +2793,6 @@
|
|||
#define IDS_SELECT_HTML_EDITOR 42256
|
||||
#define IDS_OTHER_HREF_ATTRIBUTES 42257
|
||||
#define IDS_EDIT_HTML_ATTRIB_CAPTION 42258
|
||||
#define IDS_BAD_PUBLISH_URL 42261
|
||||
#define IDS_TARGETS_IN_CURRENT_DOC 42263
|
||||
#define IDS_TARGETS_IN_FILE 42264
|
||||
#define IDS_NO_TARGETS 42265
|
||||
|
@ -3119,7 +3119,6 @@
|
|||
#define ID_FORMAT_INCREASE_FONTSIZE 42764
|
||||
#define ID_FORMAT_DECREASE_FONTSIZE 42765
|
||||
#define IDS_8_PTS 42766
|
||||
#define IDS_EDIT_LINK_HINT 42767
|
||||
#define ID_HISTORY_LOPCONTAINS 43000
|
||||
#define ID_HISTORY_LOPNOTCONTAINS 43001
|
||||
#define ID_HISTORY_LOPIS 43002
|
||||
|
@ -3610,11 +3609,13 @@
|
|||
#define IDS_FRAME_MAILPREF 62287
|
||||
#define IDS_FRAME_EDITORPREF 62288
|
||||
#define IDS_USER_PROMPT 62289
|
||||
#define IDS_LOAD_PREFS 62292
|
||||
#define IDS_LOAD_BOOKMARKS 62293
|
||||
#define IDS_LOAD_PLUGINS 62294
|
||||
#define IDS_DRAG_THIS_URL_TIP 62295
|
||||
#define IDS_OPEN 62296
|
||||
#define IDS_LOAD_PREFS 62290
|
||||
#define IDS_LOAD_BOOKMARKS 62291
|
||||
#define IDS_LOAD_PLUGINS 62292
|
||||
#define IDS_DRAG_THIS_URL_TIP 62293
|
||||
#define IDS_OPEN 62294
|
||||
#define IDS_OPEN_PAGE 62295
|
||||
#define IDS_OPEN_FILE 62296
|
||||
#define IDS_PROXIE_FOLDERS 62297
|
||||
#define IDS_BROWSE_TO_PUB_LOC_CAPTION 62298
|
||||
#define IDS_LOAD_JAVA 62298
|
||||
|
|
Загрузка…
Ссылка в новой задаче