winEmbed gets a face lift. sr=rpotts, b=60299
git-svn-id: svn://10.0.0.236/trunk@83603 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -40,10 +40,20 @@ WebBrowserChrome::WebBrowserChrome()
|
||||
{
|
||||
NS_INIT_REFCNT();
|
||||
mNativeWindow = nsnull;
|
||||
mUI = nsnull;
|
||||
}
|
||||
|
||||
WebBrowserChrome::~WebBrowserChrome()
|
||||
{
|
||||
if (mUI)
|
||||
{
|
||||
delete mUI;
|
||||
}
|
||||
}
|
||||
|
||||
void WebBrowserChrome::SetUI(WebBrowserChromeUI *aUI)
|
||||
{
|
||||
mUI = aUI;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
@@ -58,7 +68,7 @@ NS_INTERFACE_MAP_BEGIN(WebBrowserChrome)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIInterfaceRequestor)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIWebBrowserChrome)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIBaseWindow)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIWebProgressListener) //optional
|
||||
NS_INTERFACE_MAP_ENTRY(nsIWebProgressListener) // optional
|
||||
// NS_INTERFACE_MAP_ENTRY(nsIPrompt)
|
||||
NS_INTERFACE_MAP_END
|
||||
|
||||
@@ -77,6 +87,7 @@ NS_IMETHODIMP WebBrowserChrome::GetInterface(const nsIID &aIID, void** aInstance
|
||||
|
||||
NS_IMETHODIMP WebBrowserChrome::SetStatus(PRUint32 aType, const PRUnichar* aStatus)
|
||||
{
|
||||
mUI->UpdateStatusBarText(this, aStatus);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@@ -111,10 +122,6 @@ NS_IMETHODIMP WebBrowserChrome::SetChromeFlags(PRUint32 aChromeMask)
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
|
||||
// in winEmbed.cpp
|
||||
extern nativeWindow CreateNativeWindow(nsIWebBrowserChrome* chrome);
|
||||
|
||||
NS_IMETHODIMP WebBrowserChrome::CreateBrowserWindow(PRUint32 chromeMask, PRInt32 aX, PRInt32 aY, PRInt32 aCX, PRInt32 aCY, nsIWebBrowser **aWebBrowser)
|
||||
{
|
||||
static int gCount = 0;
|
||||
@@ -137,14 +144,14 @@ NS_IMETHODIMP WebBrowserChrome::CreateBrowserWindow(PRUint32 chromeMask, PRInt32
|
||||
|
||||
|
||||
mBaseWindow = do_QueryInterface(mWebBrowser);
|
||||
mNativeWindow = CreateNativeWindow(NS_STATIC_CAST(nsIWebBrowserChrome*, this));
|
||||
mNativeWindow = mUI->CreateNativeWindow(NS_STATIC_CAST(nsIWebBrowserChrome*, this));
|
||||
|
||||
if (!mNativeWindow)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
mBaseWindow->InitWindow( mNativeWindow,
|
||||
nsnull,
|
||||
0, 0, 450, 450);
|
||||
aX, aY, aCX, aCY);
|
||||
mBaseWindow->Create();
|
||||
|
||||
NS_IF_ADDREF(*aWebBrowser = mWebBrowser);
|
||||
@@ -215,17 +222,26 @@ NS_IMETHODIMP WebBrowserChrome::OnProgressChange(nsIWebProgress *progress, nsIRe
|
||||
PRInt32 curSelfProgress, PRInt32 maxSelfProgress,
|
||||
PRInt32 curTotalProgress, PRInt32 maxTotalProgress)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
mUI->UpdateProgress(this, curTotalProgress, maxTotalProgress);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP WebBrowserChrome::OnStateChange(nsIWebProgress *progress, nsIRequest *request,
|
||||
PRInt32 progressStateFlags, PRUint32 status)
|
||||
{
|
||||
|
||||
if ((progressStateFlags & STATE_STOP) && (progressStateFlags & STATE_IS_REQUEST))
|
||||
if ((progressStateFlags & STATE_START) && (progressStateFlags & STATE_IS_DOCUMENT))
|
||||
{
|
||||
mUI->UpdateBusyState(this, PR_TRUE);
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
|
||||
if ((progressStateFlags & STATE_STOP) && (progressStateFlags & STATE_IS_DOCUMENT))
|
||||
{
|
||||
mUI->UpdateBusyState(this, PR_FALSE);
|
||||
mUI->UpdateProgress(this, 0, 100);
|
||||
mUI->UpdateStatusBarText(this, nsnull);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
@@ -233,7 +249,8 @@ NS_IMETHODIMP WebBrowserChrome::OnLocationChange(nsIWebProgress* aWebProgress,
|
||||
nsIRequest* aRequest,
|
||||
nsIURI *location)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
mUI->UpdateCurrentURI(this);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
@@ -242,6 +259,7 @@ WebBrowserChrome::OnStatusChange(nsIWebProgress* aWebProgress,
|
||||
nsresult aStatus,
|
||||
const PRUnichar* aMessage)
|
||||
{
|
||||
mUI->UpdateStatusBarText(this, aMessage);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
@@ -38,7 +38,23 @@
|
||||
#include "nsIWebBrowser.h"
|
||||
#include "nsVoidArray.h"
|
||||
|
||||
class WebBrowserChromeUI
|
||||
{
|
||||
public:
|
||||
virtual nativeWindow CreateNativeWindow(nsIWebBrowserChrome* chrome) = 0;
|
||||
virtual void UpdateStatusBarText(nsIWebBrowserChrome *aChrome, const PRUnichar* aStatusText) = 0;
|
||||
virtual void UpdateCurrentURI(nsIWebBrowserChrome *aChrome) = 0;
|
||||
virtual void UpdateBusyState(nsIWebBrowserChrome *aChrome, PRBool aBusy) = 0;
|
||||
virtual void UpdateProgress(nsIWebBrowserChrome *aChrome, PRInt32 aCurrent, PRInt32 aMax) = 0;
|
||||
};
|
||||
|
||||
#define NS_DECL_WEBBROWSERCHROMEUI \
|
||||
public: \
|
||||
virtual nativeWindow CreateNativeWindow(nsIWebBrowserChrome* chrome); \
|
||||
virtual void UpdateStatusBarText(nsIWebBrowserChrome *aChrome, const PRUnichar* aStatusText); \
|
||||
virtual void UpdateCurrentURI(nsIWebBrowserChrome *aChrome); \
|
||||
virtual void UpdateBusyState(nsIWebBrowserChrome *aChrome, PRBool aBusy); \
|
||||
virtual void UpdateProgress(nsIWebBrowserChrome *aChrome, PRInt32 aCurrent, PRInt32 aMax);
|
||||
|
||||
class WebBrowserChrome : public nsIWebBrowserChrome,
|
||||
public nsIWebProgressListener,
|
||||
@@ -50,6 +66,7 @@ public:
|
||||
WebBrowserChrome();
|
||||
virtual ~WebBrowserChrome();
|
||||
|
||||
void SetUI(WebBrowserChromeUI *aUI);
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIWEBBROWSERCHROME
|
||||
@@ -62,6 +79,7 @@ protected:
|
||||
|
||||
nativeWindow mNativeWindow;
|
||||
|
||||
WebBrowserChromeUI *mUI;
|
||||
nsCOMPtr<nsIWebBrowser> mWebBrowser;
|
||||
nsCOMPtr<nsIBaseWindow> mBaseWindow;
|
||||
nsCOMPtr<nsIWebBrowserChrome> mTopWindow;
|
||||
|
||||
@@ -12,10 +12,22 @@
|
||||
#define IDM_EXIT 105
|
||||
#define IDS_HELLO 106
|
||||
#define IDI_WINEMBED 107
|
||||
#define IDS_ABOUT 107
|
||||
#define IDI_SMALL 108
|
||||
#define IDS_ABOUT_TITLE 108
|
||||
#define IDC_WINEMBED 109
|
||||
#define IDR_MAINFRAME 128
|
||||
#define IDD_BROWSER 130
|
||||
#define MOZ_EDIT_URI 1001
|
||||
#define IDC_GO 1003
|
||||
#define IDC_BROWSER 1004
|
||||
#define IDC_ADDRESS 1005
|
||||
#define IDC_STOP 1006
|
||||
#define IDC_STATUS 1007
|
||||
#define IDC_BACK 1008
|
||||
#define IDC_FORWARD 1009
|
||||
#define IDC_PROGRESS 1010
|
||||
#define IDC_RELOAD 1011
|
||||
#define MOZ_Open 32771
|
||||
#define MOZ_Print 32772
|
||||
#define MOZ_NewBrowser 32773
|
||||
@@ -26,15 +38,20 @@
|
||||
#define MOZ_Paste 32778
|
||||
#define MOZ_Delete 32779
|
||||
#define MOZ_SelectAll 32780
|
||||
#define MOZ_SelectNone 32781
|
||||
#define MOZ_GoBack 32782
|
||||
#define MOZ_GoForward 32783
|
||||
#define MOZ_About 32784
|
||||
#define ID_DEBUG_THISSPACEFORRENT 32786
|
||||
#define IDC_STATIC -1
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 130
|
||||
#define _APS_NEXT_COMMAND_VALUE 32781
|
||||
#define _APS_NEXT_CONTROL_VALUE 1002
|
||||
#define _APS_NEXT_RESOURCE_VALUE 132
|
||||
#define _APS_NEXT_COMMAND_VALUE 32787
|
||||
#define _APS_NEXT_CONTROL_VALUE 1011
|
||||
#define _APS_NEXT_SYMED_VALUE 110
|
||||
#endif
|
||||
#endif
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -44,20 +44,33 @@ BEGIN
|
||||
POPUP "&File"
|
||||
BEGIN
|
||||
MENUITEM "New Browser...", MOZ_NewBrowser
|
||||
MENUITEM "Goto...", MOZ_Open
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Save...", MOZ_Save
|
||||
MENUITEM "&Save As...", MOZ_Save
|
||||
MENUITEM "Print Page", MOZ_Print
|
||||
MENUITEM "E&xit", IDM_EXIT
|
||||
END
|
||||
POPUP "&Edit"
|
||||
BEGIN
|
||||
MENUITEM "Cut", MOZ_Cut
|
||||
MENUITEM "Copy", MOZ_Copy
|
||||
MENUITEM "Paste", MOZ_Paste, GRAYED
|
||||
MENUITEM "Delete", MOZ_Delete, GRAYED
|
||||
MENUITEM "Cu&t", MOZ_Cut
|
||||
MENUITEM "&Copy", MOZ_Copy
|
||||
MENUITEM "&Paste", MOZ_Paste
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Select All", MOZ_SelectAll
|
||||
MENUITEM "Select None", MOZ_SelectNone
|
||||
END
|
||||
POPUP "&Go"
|
||||
BEGIN
|
||||
MENUITEM "&Back", MOZ_GoBack
|
||||
MENUITEM "&Forward", MOZ_GoForward
|
||||
END
|
||||
POPUP "&Debug"
|
||||
BEGIN
|
||||
MENUITEM "&This space for rent", ID_DEBUG_THISSPACEFORRENT
|
||||
, GRAYED
|
||||
END
|
||||
POPUP "&Help"
|
||||
BEGIN
|
||||
MENUITEM "&About winEmbed...", MOZ_About
|
||||
END
|
||||
END
|
||||
|
||||
@@ -67,16 +80,15 @@ END
|
||||
// Dialog
|
||||
//
|
||||
|
||||
MOZ_GetURI DIALOG DISCARDABLE 22, 17, 230, 75
|
||||
MOZ_GetURI DIALOG DISCARDABLE 22, 17, 210, 40
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Enter A URL"
|
||||
FONT 8, "System"
|
||||
CAPTION "New address"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
EDITTEXT MOZ_EDIT_URI,34,33,182,14,ES_AUTOHSCROLL
|
||||
DEFPUSHBUTTON "OK",IDOK,182,55,30,11,WS_GROUP
|
||||
PUSHBUTTON "Cancel",IDNO,146,55,30,11,WS_GROUP
|
||||
ICON IDI_WINEMBED,IDC_MYICON,8,4,20,20
|
||||
LTEXT "URL:",IDC_STATIC,13,34,17,8
|
||||
EDITTEXT MOZ_EDIT_URI,34,6,171,12,ES_AUTOHSCROLL
|
||||
DEFPUSHBUTTON "OK",IDOK,74,23,30,13,WS_GROUP
|
||||
PUSHBUTTON "Cancel",IDNO,109,23,30,13,WS_GROUP
|
||||
LTEXT "Address:",IDC_STATIC,4,7,30,8
|
||||
END
|
||||
|
||||
|
||||
@@ -117,14 +129,73 @@ END
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_APP_TITLE "winEmbed"
|
||||
IDS_HELLO "Embedding Mozilla is fun!!"
|
||||
IDC_WINEMBED "WINEMBED"
|
||||
IDS_HELLO "Embedding Mozilla is so much fun!!"
|
||||
IDS_ABOUT "winEmbed - Gecko embedding sample"
|
||||
IDS_ABOUT_TITLE "About winEmbed"
|
||||
END
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.K.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_BROWSER DIALOG DISCARDABLE 0, 0, 400, 217
|
||||
STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE |
|
||||
WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
|
||||
CAPTION "winEmbed sample"
|
||||
MENU IDC_WINEMBED
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
PUSHBUTTON "Back",IDC_BACK,1,1,21,13
|
||||
PUSHBUTTON "Forward",IDC_FORWARD,23,1,30,13
|
||||
PUSHBUTTON "Reload",IDC_RELOAD,57,1,28,13
|
||||
PUSHBUTTON "Stop",IDC_STOP,86,1,25,13
|
||||
LTEXT "Address:",IDC_STATIC,115,3,28,8
|
||||
COMBOBOX IDC_ADDRESS,145,1,193,52,CBS_DROPDOWN | WS_VSCROLL |
|
||||
WS_TABSTOP
|
||||
DEFPUSHBUTTON "Go",IDC_GO,340,1,25,13
|
||||
CONTROL "Embedded Browser",IDC_BROWSER,"WINEMBED",WS_TABSTOP,0,
|
||||
16,400,192
|
||||
CONTROL "Status",IDC_STATUS,"Static",SS_LEFTNOWORDWRAP |
|
||||
SS_SUNKEN | WS_GROUP,0,208,316,9
|
||||
CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER,
|
||||
316,208,84,9
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO DISCARDABLE
|
||||
BEGIN
|
||||
IDD_BROWSER, DIALOG
|
||||
BEGIN
|
||||
RIGHTMARGIN, 292
|
||||
BOTTOMMARGIN, 216
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
#endif // English (U.K.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user