diff --git a/embedding/tests/winEmbed/WebBrowser.cpp b/embedding/tests/winEmbed/WebBrowser.cpp index a1bf69ff3854..afcd12c66dbe 100644 --- a/embedding/tests/winEmbed/WebBrowser.cpp +++ b/embedding/tests/winEmbed/WebBrowser.cpp @@ -34,18 +34,42 @@ #include "nsIDocShell.h" #include "nsIContentViewer.h" #include "nsIContentViewerFile.h" +#include "nsIDocShell.h" +#include "nsIWebNavigation.h" +#include "nsIEditorShell.h" +#include "nsIDOMWindow.h" +#include "nsIScriptGlobalObject.h" +#include "nsIInterfaceRequestor.h" -//***************************************************************************** -//*** WebBrowser: Object Management -//***************************************************************************** -WebBrowser::WebBrowser() +nsresult +ConvertDocShellToDOMWindow(nsIDocShell* aDocShell, nsIDOMWindow** aDOMWindow) { - NS_INIT_REFCNT(); + if (!aDOMWindow) + return NS_ERROR_FAILURE; + + *aDOMWindow = nsnull; + + nsCOMPtr scriptGlobalObject(do_GetInterface(aDocShell)); + + nsCOMPtr domWindow(do_QueryInterface(scriptGlobalObject)); + if (!domWindow) + return NS_ERROR_FAILURE; + + *aDOMWindow = domWindow.get(); + NS_ADDREF(*aDOMWindow); + + return NS_OK; } + + +WebBrowser::WebBrowser(){} WebBrowser::~WebBrowser() { + PRBool duh; + if (mEditor) // not good place for it! + mEditor->SaveDocument(PR_FALSE, PR_FALSE, &duh); } nsresult @@ -61,24 +85,18 @@ WebBrowser::Init(nsNativeWidget widget) mBaseWindow = do_QueryInterface(mWebBrowser); rv = mBaseWindow->InitWindow( widget, - nsnull, - 0, - 32, - 450, - 450); + nsnull, + 0, + 0, + 100, + 100); + mWebBrowser->SetTopLevelWindow(nsnull); - mWebBrowser->SetTopLevelWindow(this); - mBaseWindow->Create(); - - nsCOMPtr rootDocShell; - mWebBrowser->GetDocShell(getter_AddRefs(rootDocShell)); - rootDocShell->SetAllowPlugins(PR_TRUE); - mBaseWindow->SetVisibility(PR_TRUE); - return rv; + return rv; } nsresult @@ -89,7 +107,6 @@ WebBrowser::GetIWebBrowser(nsIWebBrowser **outBrowser) return NS_OK; } - nsresult WebBrowser::GoTo(char* url) { @@ -97,6 +114,26 @@ WebBrowser::GoTo(char* url) return webNav->LoadURI(NS_ConvertASCIItoUCS2(url).GetUnicode()); } +nsresult +WebBrowser::Edit(char* url) +{ + nsresult rv; + mEditor = do_CreateInstance("component://netscape/editor/editorshell", &rv); + + if (NS_FAILED(rv)) return rv; + + nsCOMPtr rootDocShell; + mWebBrowser->GetDocShell(getter_AddRefs(rootDocShell)); + + nsCOMPtr domWindow; + ConvertDocShellToDOMWindow(rootDocShell, getter_AddRefs(domWindow)); + + mEditor->Init(); + mEditor->SetEditorType(NS_ConvertASCIItoUCS2("html").GetUnicode()); + mEditor->SetWebShellWindow(domWindow); + mEditor->SetContentWindow(domWindow); + return mEditor->LoadUrl(NS_ConvertASCIItoUCS2(url).GetUnicode()); +} nsresult WebBrowser::Print(void) @@ -118,296 +155,9 @@ WebBrowser::Print(void) } - - - - - - - - - - - - - - - -// an empty implementation. - - -//***************************************************************************** -// WebBrowser::nsISupports -//***************************************************************************** - -NS_IMPL_ADDREF(WebBrowser) -NS_IMPL_RELEASE(WebBrowser) - -NS_INTERFACE_MAP_BEGIN(WebBrowser) - NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIWebBrowserChrome) - NS_INTERFACE_MAP_ENTRY(nsIInterfaceRequestor) - NS_INTERFACE_MAP_ENTRY(nsIWebBrowserChrome) - NS_INTERFACE_MAP_ENTRY(nsIWebProgressListener) - NS_INTERFACE_MAP_ENTRY(nsIBaseWindow) - NS_INTERFACE_MAP_ENTRY(nsIPrompt) -NS_INTERFACE_MAP_END - -//***************************************************************************** -// WebBrowser::nsIInterfaceRequestor -//***************************************************************************** - -NS_IMETHODIMP WebBrowser::GetInterface(const nsIID &aIID, void** aInstancePtr) +nsresult +WebBrowser::SetPositionAndSize(int x, int y, int cx, int cy) { - return QueryInterface(aIID, aInstancePtr); + return mBaseWindow->SetPositionAndSize(x, y, cx, cy, true); } -//***************************************************************************** -// WebBrowser::nsIWebBrowserChrome -//***************************************************************************** - -NS_IMETHODIMP WebBrowser::SetJSStatus(const PRUnichar* aStatus) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::SetJSDefaultStatus(const PRUnichar* aStatus) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::SetOverLink(const PRUnichar* aLink) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::GetWebBrowser(nsIWebBrowser** aWebBrowser) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::SetWebBrowser(nsIWebBrowser* aWebBrowser) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::GetChromeMask(PRUint32* aChromeMask) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::SetChromeMask(PRUint32 aChromeMask) -{ - return NS_OK; -} - -extern nsresult CreateNativeWindowWidget(nsIWebBrowser **outBrowser); - -NS_IMETHODIMP WebBrowser::GetNewBrowser(PRUint32 chromeMask, nsIWebBrowser **outBrowser) -{ - CreateNativeWindowWidget(outBrowser); - return NS_OK; -} - - -NS_IMETHODIMP WebBrowser::FindNamedBrowserItem(const PRUnichar* aName, - nsIDocShellTreeItem ** aWebBrowser) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP WebBrowser::SizeBrowserTo(PRInt32 aCX, PRInt32 aCY) -{ - return NS_OK; -} - - -NS_IMETHODIMP WebBrowser::ShowAsModal(void) -{ - return NS_OK; -} - - -//***************************************************************************** -// WebBrowser::nsIWebProgressListener -//***************************************************************************** - -NS_IMETHODIMP WebBrowser::OnStateChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, PRInt32 aStateFlags, PRUint32 aStatus) -{ - return NS_OK; -} -NS_IMETHODIMP WebBrowser::OnProgressChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, PRInt32 aCurSelfProgress, PRInt32 aMaxSelfProgress, PRInt32 aCurTotalProgress, PRInt32 aMaxTotalProgress) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::OnLocationChange(nsIURI *location) -{ - return NS_OK; -} - - -//***************************************************************************** -// WebBrowser::nsIBaseWindow -//***************************************************************************** - -NS_IMETHODIMP WebBrowser::InitWindow(nativeWindow aParentNativeWindow, - nsIWidget* parentWidget, PRInt32 x, PRInt32 y, PRInt32 cx, PRInt32 cy) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::Create() -{ - return NS_ERROR_UNEXPECTED; -} - -NS_IMETHODIMP WebBrowser::Destroy() -{ - return NS_ERROR_UNEXPECTED; -} - -NS_IMETHODIMP WebBrowser::SetPosition(PRInt32 x, PRInt32 y) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::GetPosition(PRInt32* x, PRInt32* y) -{ - NS_ENSURE_ARG_POINTER(x && y); - - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::SetSize(PRInt32 cx, PRInt32 cy, PRBool fRepaint) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::GetSize(PRInt32* cx, PRInt32* cy) -{ - NS_ENSURE_ARG_POINTER(cx && cy); - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::SetPositionAndSize(PRInt32 x, PRInt32 y, PRInt32 cx, - PRInt32 cy, PRBool fRepaint) -{ - return mBaseWindow->SetPositionAndSize(x, y,cx, cy,fRepaint); -} - -NS_IMETHODIMP WebBrowser::GetPositionAndSize(PRInt32* x, PRInt32* y, PRInt32* cx, - PRInt32* cy) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::Repaint(PRBool aForce) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::GetParentWidget(nsIWidget** aParentWidget) -{ - NS_ENSURE_ARG_POINTER(aParentWidget); - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::SetParentWidget(nsIWidget* aParentWidget) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::GetParentNativeWindow(nativeWindow* aParentNativeWindow) -{ - NS_ENSURE_ARG_POINTER(aParentNativeWindow); - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::SetParentNativeWindow(nativeWindow aParentNativeWindow) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::GetVisibility(PRBool* aVisibility) -{ - NS_ENSURE_ARG_POINTER(aVisibility); - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::SetVisibility(PRBool aVisibility) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::GetMainWidget(nsIWidget** aMainWidget) -{ - NS_ENSURE_ARG_POINTER(aMainWidget); - - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::SetFocus() -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::FocusAvailable(nsIBaseWindow* aCurrentFocus, - PRBool* aTookFocus) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::GetTitle(PRUnichar** aTitle) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::SetTitle(const PRUnichar* aTitle) -{ - return NS_OK; -} - -//***************************************************************************** -// WebBrowser::nsIPrompt -//***************************************************************************** - -NS_IMETHODIMP WebBrowser::Alert(const PRUnichar *dialogTitle, const PRUnichar *text) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::Confirm(const PRUnichar *dialogTitle, const PRUnichar *text, PRBool *_retval) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::ConfirmCheck(const PRUnichar *dialogTitle, const PRUnichar *text, const PRUnichar *checkMsg, PRBool *checkValue, PRBool *_retval) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::Prompt(const PRUnichar *dialogTitle, const PRUnichar *text, const PRUnichar *passwordRealm, PRUint32 savePassword, const PRUnichar *defaultText, PRUnichar **result, PRBool *_retval) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::PromptUsernameAndPassword(const PRUnichar *dialogTitle, const PRUnichar *text, const PRUnichar *passwordRealm, PRUint32 savePassword, PRUnichar **user, PRUnichar **pwd, PRBool *_retval) -{ - return NS_OK; -} - - -NS_IMETHODIMP WebBrowser::PromptPassword(const PRUnichar *dialogTitle, const PRUnichar *text, const PRUnichar *passwordRealm, PRUint32 savePassword, PRUnichar **user, PRBool *_retval) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::Select(const PRUnichar *dialogTitle, const PRUnichar *text, PRUint32 count, const PRUnichar **selectList, PRInt32 *outSelection, PRBool *_retval) -{ - return NS_OK; -} - -NS_IMETHODIMP WebBrowser::UniversalDialog(const PRUnichar *inTitleMessage, const PRUnichar *inDialogTitle, const PRUnichar *inMsg, const PRUnichar *inCheckboxMsg, const PRUnichar *inButton0Text, const PRUnichar *inButton1Text, const PRUnichar *inButton2Text, const PRUnichar *inButton3Text, const PRUnichar *inEditfield1Msg, const PRUnichar *inEditfield2Msg, PRUnichar **inoutEditfield1Value, PRUnichar **inoutEditfield2Value, const PRUnichar *inIConURL, PRBool *inoutCheckboxState, PRInt32 inNumberButtons, PRInt32 inNumberEditfields, PRInt32 inEditField1Password, PRInt32 *outButtonPressed) -{ - return NS_OK; -} \ No newline at end of file diff --git a/embedding/tests/winEmbed/WebBrowser.h b/embedding/tests/winEmbed/WebBrowser.h index 5a58f490c95a..9ad32a2a43ce 100644 --- a/embedding/tests/winEmbed/WebBrowser.h +++ b/embedding/tests/winEmbed/WebBrowser.h @@ -24,49 +24,31 @@ #ifndef __WebBrowser__ #define __WebBrowser__ -// Helper Classes #include "nsCOMPtr.h" - -// Interfaces Needed #include "nsIWidget.h" - -#include "nsIWebBrowser.h" -#include "nsIWebBrowserChrome.h" #include "nsIBaseWindow.h" -#include "nsIWebProgressListener.h" -#include "nsIInterfaceRequestor.h" -#include "nsIPrompt.h" +#include "nsIWebBrowser.h" +#include "nsIEditorShell.h" -class WebBrowser : public nsIWebBrowserChrome, - public nsIWebProgressListener, - public nsIBaseWindow, - public nsIPrompt, - public nsIInterfaceRequestor +class WebBrowser { - public: - - NS_DECL_ISUPPORTS - NS_DECL_NSIWEBBROWSERCHROME - NS_DECL_NSIWEBPROGRESSLISTENER - NS_DECL_NSIBASEWINDOW - NS_DECL_NSIPROMPT - NS_DECL_NSIINTERFACEREQUESTOR - nsresult Init(nsNativeWidget widget); + nsresult SetPositionAndSize(int x, int y, int cx, int cy); nsresult GoTo(char* url); + nsresult Edit(char* url); nsresult Print(void); nsresult GetIWebBrowser(nsIWebBrowser **outBrowser); - + WebBrowser(); virtual ~WebBrowser(); protected: - - nsCOMPtr mWindow; nsCOMPtr mWebBrowser; nsCOMPtr mBaseWindow; + //for editing + nsCOMPtr mEditor; }; #endif /* __WebBrowser__ */ diff --git a/embedding/tests/winEmbed/resource.h b/embedding/tests/winEmbed/resource.h index 5e94810f44ba..79ce42efc7a8 100644 --- a/embedding/tests/winEmbed/resource.h +++ b/embedding/tests/winEmbed/resource.h @@ -8,6 +8,7 @@ #define IDS_APP_TITLE 103 #define IDM_ABOUT 104 #define MOZ_OpenURI 104 +#define MOZ_GetURI 104 #define IDM_EXIT 105 #define IDS_HELLO 106 #define IDI_WINEMBED 107 @@ -17,6 +18,8 @@ #define MOZ_EDIT_URI 1001 #define MOZ_Open 32771 #define MOZ_Print 32772 +#define MOZ_NewBrowser 32773 +#define MOZ_NewEditor 32774 #define IDC_STATIC -1 // Next default values for new objects @@ -24,7 +27,7 @@ #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 129 -#define _APS_NEXT_COMMAND_VALUE 32773 +#define _APS_NEXT_COMMAND_VALUE 32775 #define _APS_NEXT_CONTROL_VALUE 1002 #define _APS_NEXT_SYMED_VALUE 110 #endif diff --git a/embedding/tests/winEmbed/winEmbed.cpp b/embedding/tests/winEmbed/winEmbed.cpp index 1a01dd68ef21..c2cf5b4a43c7 100644 --- a/embedding/tests/winEmbed/winEmbed.cpp +++ b/embedding/tests/winEmbed/winEmbed.cpp @@ -22,25 +22,16 @@ */ #include - #include "stdafx.h" +#include "Windows.h" #include "resource.h" -class nsIWebBrowser; - -#include "nsIDocShell.h" -#include "nsIWebNavigation.h" -#include "nsIEditorShell.h" -#include "nsIDOMWindow.h" -#include "nsIScriptGlobalObject.h" +#include "nsEmbedAPI.h" #include "WebBrowser.h" -WebBrowser *mozBrowser = nsnull; -extern nsresult NS_InitEmbedding(const char *aPath); -extern nsresult NS_TermEmbedding(); +nsresult CreateWebBrowser(WebBrowser **outBrowser); -extern nsresult CreateNativeWindowWidget(nsIWebBrowser **outBrowser); #define MAX_LOADSTRING 100 @@ -53,32 +44,10 @@ TCHAR szWindowClass[MAX_LOADSTRING]; // The title bar text // Foward declarations of functions included in this code module: ATOM MyRegisterClass(HINSTANCE hInstance); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); -LRESULT CALLBACK OpenURI(HWND, UINT, WPARAM, LPARAM); +LRESULT CALLBACK GetURI(HWND, UINT, WPARAM, LPARAM); - -ConvertDocShellToDOMWindow(nsIDocShell* aDocShell, nsIDOMWindow** aDOMWindow) -{ - if (!aDOMWindow) - return NS_ERROR_FAILURE; - - *aDOMWindow = nsnull; - - nsCOMPtr scriptGlobalObject(do_GetInterface(aDocShell)); - - nsCOMPtr domWindow(do_QueryInterface(scriptGlobalObject)); - if (!domWindow) - return NS_ERROR_FAILURE; - - *aDOMWindow = domWindow.get(); - NS_ADDREF(*aDOMWindow); - - return NS_OK; -} - - -#define RUN_EDITOR 1 -nsCOMPtr editor; +char gLastURI[100]; int main () { @@ -93,37 +62,17 @@ int main () LoadString(hInstance, IDC_WINEMBED, szWindowClass, MAX_LOADSTRING); MyRegisterClass(hInstance); - NS_InitEmbedding(nsnull); +// Init Embedding APIs + NS_InitEmbedding(""); - nsCOMPtr theBrowser; - - CreateNativeWindowWidget(getter_AddRefs(theBrowser)); - - -#ifndef RUN_EDITOR - nsCOMPtr webNav(do_QueryInterface(theBrowser)); - webNav->LoadURI(NS_ConvertASCIItoUCS2("http://people.netscape.com/dougt").GetUnicode()); - -#else - - nsresult rv; - editor = do_CreateInstance("component://netscape/editor/editorshell", &rv); - - if (NS_FAILED(rv)) +// put up at lease on browser window .... +///////////////////////////////////////////////////////////// + WebBrowser* newBrowser; + CreateWebBrowser(&newBrowser); + if (!newBrowser) return -1; - - nsCOMPtr rootDocShell; - theBrowser->GetDocShell(getter_AddRefs(rootDocShell)); - - nsCOMPtr domWindow; - ConvertDocShellToDOMWindow(rootDocShell, getter_AddRefs(domWindow)); - - editor->Init(); - editor->SetEditorType(NS_ConvertASCIItoUCS2("html").GetUnicode()); - editor->SetWebShellWindow(domWindow); - editor->SetContentWindow(domWindow); - editor->LoadUrl(NS_ConvertASCIItoUCS2("http://lxr.mozilla.org/").GetUnicode()); -#endif + newBrowser->GoTo("http://people.netscape.com/dougt"); +///////////////////////////////////////////////////////////// // Main message loop: @@ -132,12 +81,8 @@ int main () TranslateMessage(&msg); DispatchMessage(&msg); } - -#ifdef RUN_EDITOR - PRBool duh; - editor->SaveDocument(PR_FALSE, PR_FALSE, &duh); -#endif +// Close down Embedding APIs NS_TermEmbedding(); return msg.wParam; @@ -181,7 +126,7 @@ ATOM MyRegisterClass(HINSTANCE hInstance) -nsresult CreateNativeWindowWidget(nsIWebBrowser **outBrowser) +nsresult CreateWebBrowser(WebBrowser **outBrowser) { STARTUPINFO StartupInfo; @@ -192,9 +137,13 @@ nsresult CreateNativeWindowWidget(nsIWebBrowser **outBrowser) int nCmdShow = StartupInfo.dwFlags & STARTF_USESHOWWINDOW ? StartupInfo.wShowWindow : SW_SHOWDEFAULT; - HWND hWnd; + WebBrowser *browser = new WebBrowser(); + if (! browser) + return NS_ERROR_FAILURE; - hWnd = CreateWindow( szWindowClass, + HWND hWnd; + + hWnd = CreateWindow( szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, 0, @@ -204,33 +153,30 @@ nsresult CreateNativeWindowWidget(nsIWebBrowser **outBrowser) NULL, NULL, hInstance, - NULL); + NULL); - if (!hWnd) - { + if (!hWnd) + { return NS_ERROR_FAILURE; - } + } + + SetWindowLong( hWnd, GWL_USERDATA, (LONG)browser); // save the browser LONG_PTR. - mozBrowser = new WebBrowser(); - if (! mozBrowser) - return NS_ERROR_FAILURE; - NS_ADDREF(mozBrowser); - if ( NS_FAILED( mozBrowser->Init(hWnd) ) ) + if ( NS_FAILED( browser->Init(hWnd) ) ) // this will own hWnd return NS_ERROR_FAILURE; RECT rect; GetClientRect(hWnd, &rect); rect.top += 32; - mozBrowser->SetPositionAndSize(rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, true); + browser->SetPositionAndSize(rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top); ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); - if (outBrowser) - mozBrowser->GetIWebBrowser(outBrowser); + *outBrowser = browser; return NS_OK; } @@ -252,6 +198,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) HDC hdc; TCHAR szHello[MAX_LOADSTRING]; LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING); + WebBrowser *browser = (WebBrowser *) GetWindowLong(hWnd, GWL_USERDATA); switch (message) { @@ -262,19 +209,50 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) switch (wmId) { case IDM_EXIT: - DestroyWindow(hWnd); + if (browser) + delete browser; + DestroyWindow(hWnd); break; - + + case MOZ_NewBrowser: + gLastURI[0] = 0; + if (DialogBox(hInst, (LPCTSTR)MOZ_GetURI, hWnd, (DLGPROC)GetURI)) + { + WebBrowser* newBrowser; + CreateWebBrowser(&newBrowser); + if (!newBrowser) + break; + newBrowser->GoTo(gLastURI); + } + break; + + case MOZ_NewEditor: + gLastURI[0] = 0; + if (DialogBox(hInst, (LPCTSTR)MOZ_GetURI, hWnd, (DLGPROC)GetURI)) + { + WebBrowser* newBrowser; + CreateWebBrowser(&newBrowser); + if (!newBrowser) + break; + newBrowser->Edit(gLastURI); + } + break; + case MOZ_Open: - DialogBox(hInst, (LPCTSTR)MOZ_OpenURI, hWnd, (DLGPROC)OpenURI); - break; + gLastURI[0] = 0; + if (browser && DialogBox(hInst, (LPCTSTR)MOZ_GetURI, hWnd, (DLGPROC)GetURI)) + { + browser->GoTo(gLastURI); + } + break; case MOZ_Print: - //if (mozBrowser) - // mozBrowser->Print(); - editor->SetTextProperty(NS_ConvertASCIItoUCS2("font").GetUnicode(), - NS_ConvertASCIItoUCS2("color").GetUnicode(), - NS_ConvertASCIItoUCS2("BLUE").GetUnicode()); + + if (browser) + browser->Print(); + // editor->SetTextProperty(NS_ConvertASCIItoUCS2("font").GetUnicode(), + // NS_ConvertASCIItoUCS2("color").GetUnicode(), + // NS_ConvertASCIItoUCS2("BLUE").GetUnicode()); break; default: @@ -286,8 +264,8 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) RECT rect; GetClientRect(hWnd, &rect); rect.top += 32; - if (mozBrowser) - mozBrowser->SetPositionAndSize(rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, true); + if (browser) + browser->SetPositionAndSize(rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top); break; case WM_PAINT: @@ -308,7 +286,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) case WM_DESTROY: - PostQuitMessage(0); + PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); @@ -317,7 +295,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) } // Mesage handler for about box. -LRESULT CALLBACK OpenURI(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +LRESULT CALLBACK GetURI(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { @@ -327,19 +305,13 @@ LRESULT CALLBACK OpenURI(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) case WM_COMMAND: if (LOWORD(wParam) == IDOK) { - char szBuf[1000]; - GetDlgItemText(hDlg, MOZ_EDIT_URI, szBuf, 1000); + GetDlgItemText(hDlg, MOZ_EDIT_URI, gLastURI, 100); EndDialog(hDlg, LOWORD(wParam)); - - mozBrowser->GoTo(szBuf); - return TRUE; - } else if (LOWORD(wParam) == IDNO) { EndDialog(hDlg, LOWORD(wParam)); - return TRUE; } break; diff --git a/embedding/tests/winEmbed/winEmbed.rc b/embedding/tests/winEmbed/winEmbed.rc index e0b4b0cbb729..d03d481c3820 100644 --- a/embedding/tests/winEmbed/winEmbed.rc +++ b/embedding/tests/winEmbed/winEmbed.rc @@ -43,7 +43,9 @@ IDC_WINEMBED MENU DISCARDABLE BEGIN POPUP "&File" BEGIN - MENUITEM "Open URL...", MOZ_Open + MENUITEM "New Browser...", MOZ_NewBrowser + MENUITEM "New Editor...", MOZ_NewEditor + MENUITEM "Change Current URL...", MOZ_Open MENUITEM "Print Page", MOZ_Print MENUITEM "E&xit", IDM_EXIT END @@ -55,9 +57,9 @@ END // Dialog // -MOZ_OpenURI DIALOG DISCARDABLE 22, 17, 230, 75 +MOZ_GetURI DIALOG DISCARDABLE 22, 17, 230, 75 STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "Open URL" +CAPTION "Enter A URL" FONT 8, "System" BEGIN ICON IDI_WINEMBED,IDC_MYICON,8,4,20,20