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:
locka%iol.ie
2000-12-13 13:47:16 +00:00
parent bd3b79398d
commit acb2f24052
5 changed files with 864 additions and 283 deletions

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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

View File

@@ -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
/////////////////////////////////////////////////////////////////////////////