From 011b0cb5c208a2eaa2f2f43c856461a79e9944f0 Mon Sep 17 00:00:00 2001 From: jgellman Date: Wed, 3 Jun 1998 06:19:45 +0000 Subject: [PATCH] Merges from OJI_19980528_TEMP_BRANCH git-svn-id: svn://10.0.0.236/trunk@3021 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/cmd/winfe/cfe.cpp | 2 ++ mozilla/cmd/winfe/cxdc.cpp | 37 ++++++++++++--------- mozilla/cmd/winfe/cxdc.h | 2 ++ mozilla/cmd/winfe/cxprint.cpp | 5 +-- mozilla/cmd/winfe/cxstubs.cpp | 2 ++ mozilla/cmd/winfe/cxwin.cpp | 60 ++++++++++++++++++++-------------- mozilla/cmd/winfe/cxwin.h | 8 +++-- mozilla/cmd/winfe/edprops.h | 1 + mozilla/cmd/winfe/feembed.cpp | 44 ++++++++++++------------- mozilla/cmd/winfe/feorphan.cpp | 32 ++++++++++++++---- mozilla/cmd/winfe/feutil.cpp | 24 ++++++++++++-- mozilla/cmd/winfe/gendoc.cpp | 48 +++++++++++++-------------- mozilla/cmd/winfe/genframe.cpp | 54 +++++++++++++++++++++++++----- mozilla/cmd/winfe/genframe.h | 2 +- mozilla/cmd/winfe/intlwin.cpp | 7 +++- mozilla/cmd/winfe/mainfrm.cpp | 4 ++- mozilla/cmd/winfe/mozilla.cpp | 51 +++++++++++++++++------------ mozilla/cmd/winfe/nsapp.cpp | 10 +++--- mozilla/cmd/winfe/popup.cpp | 14 ++++---- mozilla/cmd/winfe/woohoo.cpp | 44 ++++++++++++++++++++----- 20 files changed, 298 insertions(+), 153 deletions(-) diff --git a/mozilla/cmd/winfe/cfe.cpp b/mozilla/cmd/winfe/cfe.cpp index 82b6d87d70e..1430678aca0 100644 --- a/mozilla/cmd/winfe/cfe.cpp +++ b/mozilla/cmd/winfe/cfe.cpp @@ -555,6 +555,7 @@ void CFE_SetDrawable(MWContext *pContext, CL_Drawable *drawable) } #endif +#ifdef TRANSPARENT_APPLET /* java specific functions to allow delayed window creation and transparency */ void CFE_HandleClippingView(MWContext *pContext, LJAppletData *appletD, int x, int y, int width, int height) { if(ABSTRACTCX(pContext)->IsDestroyed()) { @@ -575,6 +576,7 @@ void CFE_DrawJavaApp(MWContext *pContext, int iLocation, LO_JavaAppStruct *pJava WINCX(pContext)->DrawJavaApp(pContext, iLocation, pJava); } +#endif int CFE_FileSortMethod(MWContext *pContext) { if(ABSTRACTCX(pContext)->IsDestroyed()) { diff --git a/mozilla/cmd/winfe/cxdc.cpp b/mozilla/cmd/winfe/cxdc.cpp index dc476cb896a..a2dd99263f7 100644 --- a/mozilla/cmd/winfe/cxdc.cpp +++ b/mozilla/cmd/winfe/cxdc.cpp @@ -33,7 +33,9 @@ #include "prefinfo.h" #include "cxprint.h" -#ifdef JAVA +#if defined(OJI) +#include "jvmmgr.h" +#elif defined(JAVA) #include "java.h" #endif @@ -1177,12 +1179,12 @@ BOOL CDCCX::ResolveElement(LTRB& Rect, LO_EmbedStruct *pEmbed, int iLocation, Bo // and we ignore the layer origin. For windowless embeds, we only // need the layer origin, and not the position of the embed. if (bWindowed) { - Rect.left += pEmbed->x + pEmbed->x_offset + pEmbed->border_width; - Rect.top += pEmbed->y + pEmbed->y_offset + pEmbed->border_width; + Rect.left += pEmbed->objTag.x + pEmbed->objTag.x_offset + pEmbed->objTag.border_width; + Rect.top += pEmbed->objTag.y + pEmbed->objTag.y_offset + pEmbed->objTag.border_width; } - Rect.right = Rect.left + pEmbed->width; - Rect.bottom = Rect.top + pEmbed->height; + Rect.right = Rect.left + pEmbed->objTag.width; + Rect.bottom = Rect.top + pEmbed->objTag.height; if (!bWindowed) ExtendCoord(Rect); @@ -2554,8 +2556,8 @@ void CDCCX::DisplayImageFeedback(MWContext *pContext, int iLocation, LO_Element BOOL CDCCX::IsPluginFullPage(LO_EmbedStruct *pLayoutData) { // 1x1 size is signal that plugin is full page, not embedded - if((pLayoutData->width == Pix2TwipsX(1)) - && (pLayoutData->height == Pix2TwipsX(1))) + if((pLayoutData->objTag.width == Pix2TwipsX(1)) + && (pLayoutData->objTag.height == Pix2TwipsX(1))) return TRUE; return FALSE; } @@ -2662,7 +2664,7 @@ void CDCCX::DisplayPlugin(MWContext *pContext, LO_EmbedStruct *pEmbed, return; if (::IsWindowVisible((HWND)pAppWin->window) && - (pEmbed->ele_attrmask & LO_ELE_INVISIBLE)) + (pEmbed->objTag.ele_attrmask & LO_ELE_INVISIBLE)) ::ShowWindow((HWND)pAppWin->window, SW_HIDE); // If the plugin is embedded we need to make sure the window is @@ -2697,14 +2699,14 @@ void CDCCX::DisplayPlugin(MWContext *pContext, LO_EmbedStruct *pEmbed, } if (!::IsWindowVisible((HWND)pAppWin->window) && - !(pEmbed->ele_attrmask & LO_ELE_INVISIBLE)) + !(pEmbed->objTag.ele_attrmask & LO_ELE_INVISIBLE)) ::ShowWindow((HWND)pAppWin->window, SW_SHOW); } void CDCCX::DisplayEmbed(MWContext *pContext, int iLocation, LO_EmbedStruct *pEmbed) { - NPEmbeddedApp* pEmbeddedApp = (NPEmbeddedApp*)pEmbed->FE_Data; + NPEmbeddedApp* pEmbeddedApp = (NPEmbeddedApp*)pEmbed->objTag.FE_Data; if(pEmbeddedApp == NULL) return; @@ -2733,8 +2735,8 @@ void CDCCX::DisplayEmbed(MWContext *pContext, int iLocation, LO_EmbedStruct *pEm SafeSixteen(Rect); // Draw a border around the embed if needed. - if(pEmbed->border_width != 0) { - DrawRectBorder(Rect, ResolveBorderColor(NULL), pEmbed->border_width); + if(pEmbed->objTag.border_width != 0) { + DrawRectBorder(Rect, ResolveBorderColor(NULL), pEmbed->objTag.border_width); } // Get the embedded item @@ -3796,14 +3798,14 @@ BOOL CDCCX::ResolveTextExtent(int16 wincsid, HDC pDC, LPCTSTR pString, int iLeng #endif } - +#ifdef TRANSPARENT_APPLET // // This function is called only when applet are windowless and force a // paint on the java side // void CDCCX::DrawJavaApp(MWContext *pContext, int iLocation, LO_JavaAppStruct *pJava) { -#ifdef JAVA +#if defined(OJI) || defined(JAVA) RECT rect; HDC hDC = GetContextDC(); @@ -3827,10 +3829,15 @@ void CDCCX::DrawJavaApp(MWContext *pContext, int iLocation, LO_JavaAppStruct *pJ event.event = WM_PAINT; event.wParam = (uint32)hDC; event.lParam = (uint32)▭ - + +#if defined(OJI) + // XXX help +#elif defined(JAVA) LJ_HandleEvent(pContext, pJava, (void *)&event); +#endif ReleaseContextDC(hDC); #endif } +#endif diff --git a/mozilla/cmd/winfe/cxdc.h b/mozilla/cmd/winfe/cxdc.h index d4474d2398b..85a2d36a1e7 100644 --- a/mozilla/cmd/winfe/cxdc.h +++ b/mozilla/cmd/winfe/cxdc.h @@ -731,7 +731,9 @@ public: virtual void ResetFormElement(MWContext *pContext, LO_FormElementStruct *pFormElement); virtual void SetFormElementToggle(MWContext *pContext, LO_FormElementStruct *pFormElement, XP_Bool iState); +#ifdef TRANSPARENT_APPLET virtual void DrawJavaApp(MWContext *pContext, int iLocation, LO_JavaAppStruct *pJava); +#endif protected: void StretchMaskBlt(HDC hTargetDC, HBITMAP theBitmap, HBITMAP theMask, diff --git a/mozilla/cmd/winfe/cxprint.cpp b/mozilla/cmd/winfe/cxprint.cpp index 02d7738e45c..0b0cd65bb7f 100644 --- a/mozilla/cmd/winfe/cxprint.cpp +++ b/mozilla/cmd/winfe/cxprint.cpp @@ -1844,14 +1844,15 @@ void CPrintCX::DisplayEmbed(MWContext *pContext, int iLocation, LO_EmbedStruct * return; else if (GetDisplayMode() == CAPTURE_POSITION) { // Capture the coordinates of this element. - Capture(pEmbed->x + pEmbed->x_offset, pEmbed->y + pEmbed->y_offset, pEmbed->width, pEmbed->height); + Capture(pEmbed->objTag.x + pEmbed->objTag.x_offset, pEmbed->objTag.y + pEmbed->objTag.y_offset, + pEmbed->objTag.width, pEmbed->objTag.height); // We don't actually allow display while we are capturing the area. return; } // Call the base for actual display. - NPEmbeddedApp* pEmbeddedApp = (NPEmbeddedApp*)pEmbed->FE_Data; + NPEmbeddedApp* pEmbeddedApp = (NPEmbeddedApp*)pEmbed->objTag.FE_Data; if (pEmbeddedApp->type == NP_OLE) { CNetscapeCntrItem *pItem = (CNetscapeCntrItem *)pEmbeddedApp->fe_data; pItem->SetPrintDevice( &(m_pcpiPrintJob->m_pPD->m_pd) ); diff --git a/mozilla/cmd/winfe/cxstubs.cpp b/mozilla/cmd/winfe/cxstubs.cpp index 1d8f252d6fd..b3dd3e39764 100755 --- a/mozilla/cmd/winfe/cxstubs.cpp +++ b/mozilla/cmd/winfe/cxstubs.cpp @@ -518,6 +518,7 @@ void CStubsCX::GetDocPosition(MWContext * pContext, int iLoc, int32 * pX, int32 { } +#ifdef TRANSPARENT_APPLET /* java specific functions to allow delayed window creation and transparency */ void CStubsCX::HandleClippingView(MWContext *pContext, LJAppletData *appletD, int x, int y, int width, int height) { @@ -525,6 +526,7 @@ void CStubsCX::HandleClippingView(MWContext *pContext, LJAppletData *appletD, in void CStubsCX::DrawJavaApp(MWContext *pContext, int iLocation, LO_JavaAppStruct *pJava) { } +#endif // URL Exit Routines void CStubsCX::GetUrlExitRoutine(URL_Struct *pUrl, int iStatus, MWContext *pContext) { diff --git a/mozilla/cmd/winfe/cxwin.cpp b/mozilla/cmd/winfe/cxwin.cpp index d317df5b034..7a5f3132ff0 100644 --- a/mozilla/cmd/winfe/cxwin.cpp +++ b/mozilla/cmd/winfe/cxwin.cpp @@ -51,14 +51,23 @@ extern char * EDT_NEW_DOC_NAME; #define EDT_IS_SIZING ( EDT_IS_EDITOR(GetContext()) && EDT_IsSizing(GetContext()) ) -#ifdef JAVA -#include "np.h" +#if defined(OJI) +#include "jvmmgr.h" +#elif defined(JAVA) #include "java.h" +#endif + +#if defined(JAVA) || defined(OJI) + +#include "np.h" #include "prlog.h" + #ifdef DDRAW static DDSURFACEDESC ddsd; #endif + extern "C" { + #ifndef NSPR20 PR_LOG_DEFINE(APPLET); #else @@ -87,7 +96,8 @@ PR_PUBLIC_API(HPALETTE) GET_APPLICATION_PALETTE(void) } return hPal; } -}; + +}; /* extern "C" */ #endif /* JAVA */ // older versions of MFC don't have this #define @@ -605,7 +615,9 @@ void CWinCX::DestroyContext() { #endif ReleaseContextDC(hdc); } -#ifdef JAVA +#if defined(OJI) + // XXX help +#elif defined(JAVA) // // Discard the events pending for the context... // @@ -623,7 +635,7 @@ void CWinCX::OnDeactivateEmbedCX() { CGenericView *pView = GetView(); if(pView != NULL && m_pSelected != NULL) { // Obtain the plugin structure. - NPEmbeddedApp *pPluginShim = (NPEmbeddedApp *)m_pSelected->FE_Data; + NPEmbeddedApp *pPluginShim = (NPEmbeddedApp *)m_pSelected->objTag.FE_Data; // Make sure it is not a plugin, but an OLE container item. if(pPluginShim != NULL && wfe_IsTypePlugin(pPluginShim) == FALSE) { // Get the container item, and deactivate it. @@ -1246,7 +1258,7 @@ BOOL CWinCX::HandleEmbedEvent(LO_EmbedStruct *embed, CL_Event *pEvent) { NPEvent npEvent; fe_EventStruct *pFEEvent = (fe_EventStruct *)pEvent->fe_event; - NPEmbeddedApp *pEmbeddedApp = (NPEmbeddedApp *)embed->FE_Data; + NPEmbeddedApp *pEmbeddedApp = (NPEmbeddedApp *)embed->objTag.FE_Data; if (CL_IS_MOUSE_EVENT(pEvent)) { if (pFEEvent) @@ -1557,7 +1569,7 @@ CWinCX::OnLButtonDblClkForLayerCX(UINT uFlags, CPoint& cpPoint, if(pElement != NULL && pElement->type == LO_EMBED) { // Any previous activated embed was deactivated in the button down event. // However, we should not reactivate an already active item. - NPEmbeddedApp* pEmbeddedApp = (NPEmbeddedApp*)pElement->lo_embed.FE_Data; + NPEmbeddedApp* pEmbeddedApp = (NPEmbeddedApp*)pElement->lo_embed.objTag.FE_Data; ASSERT(pEmbeddedApp); CNetscapeCntrItem *pItem = (CNetscapeCntrItem *)pEmbeddedApp->fe_data; if(pItem != NULL) { @@ -3996,7 +4008,7 @@ void CWinCX::CreateEmbedWindow(MWContext *pContext, NPEmbeddedApp *pApp) HWND hWnd = ::CreateWindow(szClassName, "a Plugin Window", - WS_CHILD | (pEmbed->ele_attrmask & LO_ELE_INVISIBLE ? 0 : WS_VISIBLE), + WS_CHILD | (pEmbed->objTag.ele_attrmask & LO_ELE_INVISIBLE ? 0 : WS_VISIBLE), rect.left, rect.top, rect.right - rect.left, @@ -4131,13 +4143,11 @@ void CWinCX::DestroyEmbedWindow(MWContext *pContext, NPEmbeddedApp *pApp) } - - //////////////////////////////////////////////////////////////////////////////// // Java Stuff //////////////////////////////////////////////////////////////////////////////// -#ifdef JAVA +#if defined(JAVA) && !defined(OJI) void PR_CALLBACK FE_DisplayNoJavaIcon(MWContext *pContext, LO_JavaAppStruct *java_struct) @@ -4150,7 +4160,7 @@ FE_CreateJavaWindow(MWContext *pContext, LO_JavaAppStruct *java_struct, int32 xp, int32 yp, int32 xs, int32 ys) { CWinCX* ctxt = WINCX(pContext); - LJAppletData* ad = (LJAppletData*)java_struct->session_data; + LJAppletData* ad = (LJAppletData*)java_struct->objTag.session_data; HWND parent; PR_ASSERT(ad); @@ -4323,7 +4333,7 @@ FE_FreeJavaWindow(MWContext *context, struct LJAppletData *appletData, void CWinCX::DisplayJavaApp(MWContext *pContext, int iLocation, LO_JavaAppStruct *java_struct) { -#ifdef JAVA +#if defined(JAVA) && !defined(OJI) LJ_DisplayJavaApp(pContext, java_struct, FE_DisplayNoJavaIcon, FE_GetFullWindowSize, @@ -4337,14 +4347,14 @@ void CWinCX::DisplayJavaApp(MWContext *pContext, int iLocation, LO_JavaAppStruct void CWinCX::HideJavaAppElement(MWContext *pContext, LJAppletData * session_data) { -#ifdef JAVA +#if defined(JAVA) && !defined(OJI) LJ_HideJavaAppElement(pContext, session_data, FE_SaveJavaWindow); #endif /* JAVA */ } void CWinCX::FreeJavaAppElement(MWContext *pContext, LJAppletData *ad) { -#ifdef JAVA +#if defined(JAVA) && !defined(OJI) LJ_FreeJavaAppElement(pContext, ad, FE_SaveJavaWindow, FE_FreeJavaWindow); @@ -4354,24 +4364,26 @@ void CWinCX::FreeJavaAppElement(MWContext *pContext, LJAppletData *ad) void CWinCX::GetJavaAppSize(MWContext *pContext, LO_JavaAppStruct *java_struct, NET_ReloadMethod reloadMethod) { -#ifdef JAVA +#if defined(JAVA) && !defined(OJI) LJ_GetJavaAppSize(pContext, java_struct, reloadMethod); #else // jevering: should this be inside ifdef JAVA? // FE_DisplayNoJavaIcon(pContext, java_struct); - java_struct->width = 1; - java_struct->height = 1; + java_struct->objTag.width = 1; + java_struct->objTag.height = 1; #endif /* ! JAVA */ } +#ifdef TRANSPARENT_APPLET +void CWinCX::HandleClippingView(MWContext *pContext, LJAppletData *appletD, int x, int y, int width, int height) +{ +} +#endif + //////////////////////////////////////////////////////////////////////////////// // End of Java Stuff //////////////////////////////////////////////////////////////////////////////// -void CWinCX::HandleClippingView(MWContext *pContext, LJAppletData *appletD, int x, int y, int width, int height) -{ -} - void CWinCX::LayoutNewDocument(MWContext *pContext, URL_Struct *pURL, int32 *pWidth, int32 *pHeight, int32 *pmWidth, int32 *pmHeight) { // Call the base. @@ -6238,8 +6250,8 @@ mouse_over_callback(MWContext * context, LO_Element * lo_element, int32 event, // See if we are over an embedded item. pEmbed = (LO_EmbedStruct *)lo_element; - if(pEmbed && pEmbed->type == LO_EMBED && pEmbed->FE_Data) { - NPEmbeddedApp *pPluginShim = (NPEmbeddedApp *)pEmbed->FE_Data; + if(pEmbed && pEmbed->objTag.type == LO_EMBED && pEmbed->objTag.FE_Data) { + NPEmbeddedApp *pPluginShim = (NPEmbeddedApp *)pEmbed->objTag.FE_Data; if(pPluginShim != NULL && wfe_IsTypePlugin(pPluginShim) == FALSE) { CNetscapeCntrItem *pItem = (CNetscapeCntrItem *)pPluginShim->fe_data; if(pItem != NULL && pItem->m_bLoading == FALSE && pItem->m_bBroken == FALSE && diff --git a/mozilla/cmd/winfe/cxwin.h b/mozilla/cmd/winfe/cxwin.h index 0f0b10ed7ac..001f08993b2 100644 --- a/mozilla/cmd/winfe/cxwin.h +++ b/mozilla/cmd/winfe/cxwin.h @@ -1,4 +1,4 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * 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 @@ -444,8 +444,10 @@ public: virtual void RestoreEmbedWindow(MWContext *pContext, NPEmbeddedApp *pApp); virtual void DestroyEmbedWindow(MWContext *pContext, NPEmbeddedApp *pApp); virtual void DisplayJavaApp(MWContext *pContext, int iLocation, LO_JavaAppStruct *java_struct); - virtual void HandleClippingView(MWContext *pContext, LJAppletData *appletD, int x, int y, int width, int height); - virtual void HideJavaAppElement(MWContext *pContext, LJAppletData * session_data); +#ifdef TRANSPARENT_APPLET + virtual void HandleClippingView(MWContext *pContext, LJAppletData *appletD, int x, int y, int width, int height); +#endif + virtual void HideJavaAppElement(MWContext *pContext, LJAppletData * session_data); virtual void SetDocDimension(MWContext *pContext, int iLocation, int32 lWidth, int32 lLength); virtual void SetDocPosition(MWContext *pContext, int iLocation, int32 lX, int32 lY); virtual void FreeJavaAppElement(MWContext *pContext, LJAppletData *appletD); diff --git a/mozilla/cmd/winfe/edprops.h b/mozilla/cmd/winfe/edprops.h index aff683579c1..900040d4da3 100644 --- a/mozilla/cmd/winfe/edprops.h +++ b/mozilla/cmd/winfe/edprops.h @@ -100,6 +100,7 @@ extern int wfe_FillFontComboBox(CComboBox * pCombo, int * pMaxWidth = NULL); // Total font sizes with Netscape extension -- SHOULD GET THIS FROM A COMMON H FILE! #define MAX_FONT_SIZE 7 +#define MIN_FONT_SIZE 7 // XXX I don't know where this is supposed to come from, but it's breaking my build. // We map {-2 ... +4} onto absolute sizes {1 ... 7} // This is minimum of scale diff --git a/mozilla/cmd/winfe/feembed.cpp b/mozilla/cmd/winfe/feembed.cpp index 4b522de2a8f..7b3cc7f4665 100755 --- a/mozilla/cmd/winfe/feembed.cpp +++ b/mozilla/cmd/winfe/feembed.cpp @@ -159,12 +159,12 @@ void EmbedUrlExit(URL_Struct *pUrl, int iStatus, MWContext *pContext) while(rIndex != NULL && iStatus != MK_INTERRUPTED) { pLayoutData = (LO_EmbedStruct *)pItem->m_cplUnblock.GetNext(rIndex); if ((pEmbeddedApp->type == NP_OLE) && pItem->m_lpObject) { - if ( pLayoutData->width) - csExtents.cx = pLayoutData->width; - if ( pLayoutData->height) - csExtents.cy = pLayoutData->height; - pLayoutData->width = csExtents.cx; - pLayoutData->height = csExtents.cy; + if ( pLayoutData->objTag.width) + csExtents.cx = pLayoutData->objTag.width; + if ( pLayoutData->objTag.height) + csExtents.cy = pLayoutData->objTag.height; + pLayoutData->objTag.width = csExtents.cx; + pLayoutData->objTag.height = csExtents.cy; } LO_ClearEmbedBlock(ABSTRACTCX(pContext)->GetDocumentContext(), pLayoutData); @@ -186,20 +186,20 @@ void EmbedUrlExit(URL_Struct *pUrl, int iStatus, MWContext *pContext) pLayoutData = (LO_EmbedStruct *)pItem->m_cplDisplay.GetNext(rIndex); if ((pEmbeddedApp->type == NP_OLE) && pItem->m_lpObject) { - if ( pLayoutData->width ) - csExtents.cx = pLayoutData->width; - if ( pLayoutData->height) - csExtents.cy = pLayoutData->height; - pLayoutData->width = csExtents.cx; - pLayoutData->height = csExtents.cy; + if ( pLayoutData->objTag.width ) + csExtents.cx = pLayoutData->objTag.width; + if ( pLayoutData->objTag.height) + csExtents.cy = pLayoutData->objTag.height; + pLayoutData->objTag.width = csExtents.cx; + pLayoutData->objTag.height = csExtents.cy; } #ifdef LAYERS if (pContext->compositor) { XP_Rect rect; - CL_GetLayerBbox(pLayoutData->layer, &rect); - CL_UpdateLayerRect(CL_GetLayerCompositor(pLayoutData->layer), - pLayoutData->layer, &rect, PR_FALSE); + CL_GetLayerBbox(pLayoutData->objTag.layer, &rect); + CL_UpdateLayerRect(CL_GetLayerCompositor(pLayoutData->objTag.layer), + pLayoutData->objTag.layer, &rect, PR_FALSE); } else #endif /* LAYERS */ @@ -260,16 +260,16 @@ static void wfe_PluginStream(URL_Struct *pUrlData, MWContext *pContext) /* Convert layer-relative coordinates for element to document coordinates, since that's what the FE uses. */ rect.top = rect.left = rect.right = rect.bottom = 0; - CL_LayerToWindowRect(pContext->compositor, pLayoutData->layer, &rect); + CL_LayerToWindowRect(pContext->compositor, pLayoutData->objTag.layer, &rect); CL_WindowToDocumentRect(pContext->compositor, &rect); /* Save old, layer-relative coordinates */ - lXSave = pLayoutData->x; - lYSave = pLayoutData->y; + lXSave = pLayoutData->objTag.x; + lYSave = pLayoutData->objTag.y; /* Temporarily shift element to document coordinates */ - pLayoutData->x = rect.left - pLayoutData->x_offset; - pLayoutData->y = rect.top - pLayoutData->y_offset; + pLayoutData->objTag.x = rect.left - pLayoutData->objTag.x_offset; + pLayoutData->objTag.y = rect.top - pLayoutData->objTag.y_offset; } #endif /* LAYERS */ @@ -278,8 +278,8 @@ static void wfe_PluginStream(URL_Struct *pUrlData, MWContext *pContext) #ifdef LAYERS if (pContext->compositor) { - pLayoutData->x = lXSave; - pLayoutData->y = lYSave; + pLayoutData->objTag.x = lXSave; + pLayoutData->objTag.y = lYSave; } #endif /* LAYERS */ diff --git a/mozilla/cmd/winfe/feorphan.cpp b/mozilla/cmd/winfe/feorphan.cpp index 9044bb443f3..6e81c04b831 100644 --- a/mozilla/cmd/winfe/feorphan.cpp +++ b/mozilla/cmd/winfe/feorphan.cpp @@ -52,7 +52,7 @@ #endif #endif -#if defined(JAVA) || defined(MOCHA) +#if defined(OJI) || defined(JAVA) || defined(MOCHA) #ifndef XP_PC #define XP_PC @@ -72,17 +72,24 @@ #endif #include "nspr.h" +#include "plevent.h" +#endif /* OJI || JAVA || MOCHA */ + +#if defined(OJI) +#include "jvmmgr.h" +#elif defined(JAVA) #include "java.h" -#endif /* JAVA || MOCHA */ +#endif #if defined(XP_PC) && !defined(_WIN32) -#ifdef JAVA +#if defined(JAVA) || defined(OJI) extern "C" PR_PUBLIC_API(void) SuspendAllJavaThreads(void); #endif #endif // Shared event queue used to pass messages between the java threads and // the main navigator thread... + extern "C" { PREventQueue *mozilla_event_queue; PRThread *mozilla_thread; @@ -623,31 +630,42 @@ static struct PRMethodCallbackStr DLLCallbacks = { #endif /* NSPR20 */ #endif /* XP_WIN16 */ -#if defined(JAVA) || defined(MOCHA) +#if defined(OJI) || defined(JAVA) || defined(MOCHA) #ifndef NSPR20 // Initialize the NSPR library PR_Init( "mozilla", MOZILLA_THREAD_PRIORITY, 1, stackBase); mozilla_thread = PR_CurrentThread(); #else - PR_STDIO_INIT() + PR_STDIO_INIT() mozilla_thread = PR_CurrentThread(); PR_SetThreadGCAble(); PR_SetThreadPriority(mozilla_thread, MOZILLA_THREAD_PRIORITY); PL_InitializeEventsLib("mozilla"); #endif -#endif /* JAVA || MOCHA */ +#endif /* OJI || JAVA || MOCHA */ } BOOL fe_ShutdownJava() { BOOL bRetval = TRUE; -#ifdef JAVA +#if defined(OJI) + + JVMMgr* jvmMgr = JVM_GetJVMMgr(); + if (jvmMgr == NULL) + return FALSE; + bRetval = (jvmMgr->ShutdownJVM() == JVMStatus_Enabled); + // XXX suspend all java threads + jvmMgr->Release(); + +#elif defined(JAVA) + bRetval = (LJ_ShutdownJava() == LJJavaStatus_Enabled); #if defined(XP_PC) && !defined(_WIN32) SuspendAllJavaThreads(); #endif + #endif return(bRetval); diff --git a/mozilla/cmd/winfe/feutil.cpp b/mozilla/cmd/winfe/feutil.cpp index 9f477dee744..6e1e8876775 100755 --- a/mozilla/cmd/winfe/feutil.cpp +++ b/mozilla/cmd/winfe/feutil.cpp @@ -28,9 +28,14 @@ #include "toolbar2.h" #include "VerReg.h" #include "libmocha.h" -#include "java.h" #include "ngdwtrst.h" +#if defined(OJI) +#include "jvmmgr.h" +#elif defined(JAVA) +#include "java.h" +#endif + extern "C" { #include "xpgetstr.h" extern int XP_ALERT_NETCASTER_NO_JS; @@ -1776,9 +1781,22 @@ void FEU_OpenNetcaster(void) if (regErr == REGERR_OK) { - + BOOL javaEnabled = FALSE; +#if defined(OJI) + JVMMgr* jvmMgr = JVM_GetJVMMgr(); + if (jvmMgr) { + NPIJVMPlugin* jvm = jvmMgr->GetJVM(); + if (jvm) { + javaEnabled = jvm->GetJVMEnabled(); + jvm->Release(); + } + jvmMgr->Release(); + } +#elif defined(JAVA) + javaEnabled = LJ_GetJavaEnabled(); +#endif // Now check to see if Java and JS are enabled - if (!LM_GetMochaEnabled() || !LJ_GetJavaEnabled()) { + if (!LM_GetMochaEnabled() || !javaEnabled) { MessageBox(NULL, XP_GetString(XP_ALERT_NETCASTER_NO_JS), szLoadString(AFX_IDS_APP_TITLE), MB_OK | MB_ICONEXCLAMATION); return; } diff --git a/mozilla/cmd/winfe/gendoc.cpp b/mozilla/cmd/winfe/gendoc.cpp index fa7e0f6e9cd..49e5e95ead7 100644 --- a/mozilla/cmd/winfe/gendoc.cpp +++ b/mozilla/cmd/winfe/gendoc.cpp @@ -364,9 +364,9 @@ void CGenericDoc::GetEmbedSize(MWContext *pContext, LO_EmbedStruct *pLayoutData, if (rIndex) { LO_EmbedStruct* pLayoutData = (LO_EmbedStruct *)pItem->m_cplElements.GetNext(rIndex); - ASSERT(pLayoutData && pLayoutData->type == LO_EMBED); + ASSERT(pLayoutData && pLayoutData->objTag.type == LO_EMBED); if (pLayoutData) { - NPEmbeddedApp* pEmbeddedApp = (NPEmbeddedApp*)pLayoutData->FE_Data; + NPEmbeddedApp* pEmbeddedApp = (NPEmbeddedApp*)pLayoutData->objTag.FE_Data; ASSERT(pEmbeddedApp); if (pEmbeddedApp && pEmbeddedApp->type == NP_OLE) @@ -408,11 +408,11 @@ void CGenericDoc::GetEmbedSize(MWContext *pContext, LO_EmbedStruct *pLayoutData, pEmbeddedApp->wdata = pAppWin; // Go ahead and assign it into the layout data for use in other functions. - pLayoutData->FE_Data = (void *)pEmbeddedApp; + pLayoutData->objTag.FE_Data = (void *)pEmbeddedApp; pItem->m_iLock++; // Is layout blocking for this information? - if(pLayoutData->width == 0 || pLayoutData->height == 0) { + if(pLayoutData->objTag.width == 0 || pLayoutData->objTag.height == 0) { if(pItem->m_bLoading == TRUE) { // Add this layout element to those that will be unblocked once loaded. @@ -439,12 +439,12 @@ void CGenericDoc::GetEmbedSize(MWContext *pContext, LO_EmbedStruct *pLayoutData, csExtents.cx = pCX->Metric2TwipsX(csExtents.cx); csExtents.cy = pCX->Metric2TwipsY(csExtents.cy); - if ( pLayoutData->width ) - csExtents.cx = pLayoutData->width; - if ( pLayoutData->height ) - csExtents.cy = pLayoutData->height; - pLayoutData->width = csExtents.cx; - pLayoutData->height = csExtents.cy; + if ( pLayoutData->objTag.width ) + csExtents.cx = pLayoutData->objTag.width; + if ( pLayoutData->objTag.height ) + csExtents.cy = pLayoutData->objTag.height; + pLayoutData->objTag.width = csExtents.cx; + pLayoutData->objTag.height = csExtents.cy; } return; @@ -506,8 +506,8 @@ void CGenericDoc::GetEmbedSize(MWContext *pContext, LO_EmbedStruct *pLayoutData, // // If we're printing we will use a cached app from the session data so we don't // need to do either of these - if ((pLayoutData->ele_attrmask & LO_ELE_HIDDEN) == 0 && !bPrinting) { - if(pLayoutData->width == 0 || pLayoutData->height == 0) { + if ((pLayoutData->objTag.ele_attrmask & LO_ELE_HIDDEN) == 0 && !bPrinting) { + if(pLayoutData->objTag.width == 0 || pLayoutData->objTag.height == 0) { // Layout is blocking, be sure to unblock once loaded. pItem->m_cplUnblock.AddTail(pLayoutData); } @@ -542,19 +542,19 @@ void CGenericDoc::GetEmbedSize(MWContext *pContext, LO_EmbedStruct *pLayoutData, csExtents.cx = pCX->Metric2TwipsX(csExtents.cx); csExtents.cy = pCX->Metric2TwipsY(csExtents.cy); - if ( pLayoutData->width ) - csExtents.cx = pLayoutData->width; - if ( pLayoutData->height ) - csExtents.cy = pLayoutData->height; - pLayoutData->width = csExtents.cx; - pLayoutData->height = csExtents.cy; + if ( pLayoutData->objTag.width ) + csExtents.cx = pLayoutData->objTag.width; + if ( pLayoutData->objTag.height ) + csExtents.cy = pLayoutData->objTag.height; + pLayoutData->objTag.width = csExtents.cx; + pLayoutData->objTag.height = csExtents.cy; // In the printing case, an OLE container is not windowed LO_SetEmbedType(pLayoutData, PR_FALSE); } else { // so layout will not block on us. Since this embed element is missing. - pLayoutData->width = 1; - pLayoutData->height = 1; + pLayoutData->objTag.width = 1; + pLayoutData->objTag.height = 1; } @@ -593,13 +593,13 @@ void CGenericDoc::GetEmbedSize(MWContext *pContext, LO_EmbedStruct *pLayoutData, pItem->m_csAddress = pLayoutAddress; // Go ahead and assign it into the layout data for use in other functions. - pLayoutData->FE_Data = (void *)pEmbeddedApp; + pLayoutData->objTag.FE_Data = (void *)pEmbeddedApp; // Now that we've set the NPEmbeddedApp's fe_data and layout's FE_Data we can start the embed if (NPL_EmbedStart(pContext, pLayoutData, pEmbeddedApp) != NPERR_NO_ERROR) { // Something went wrong. Time to clean up. The XP code has already deleted // the NPEmbeddedApp - pLayoutData->FE_Data = NULL; + pLayoutData->objTag.FE_Data = NULL; pItem->m_bLoading = FALSE; delete pItem; } @@ -609,7 +609,7 @@ void CGenericDoc::GetEmbedSize(MWContext *pContext, LO_EmbedStruct *pLayoutData, void CGenericDoc::FreeEmbedElement(MWContext *pContext, LO_EmbedStruct *pLayoutData) { - NPEmbeddedApp* pEmbeddedApp = (NPEmbeddedApp*)pLayoutData->FE_Data; + NPEmbeddedApp* pEmbeddedApp = (NPEmbeddedApp*)pLayoutData->objTag.FE_Data; CNetscapeCntrItem* pItem = NULL; CNetscapeCntrItem* curItem = NULL; int32 iRefCountIndicator = 0; @@ -643,7 +643,7 @@ void CGenericDoc::FreeEmbedElement(MWContext *pContext, LO_EmbedStruct *pLayoutD curItem = (CNetscapeCntrItem*)pEmbeddedApp->fe_data; NPL_EmbedDelete(pContext, pLayoutData); - pLayoutData->FE_Data = NULL; + pLayoutData->objTag.FE_Data = NULL; // If the item is already gone, bail now. // Also check for npdata->refs being greater or equal 0 diff --git a/mozilla/cmd/winfe/genframe.cpp b/mozilla/cmd/winfe/genframe.cpp index 19c82ff4556..14a61d6eb2d 100644 --- a/mozilla/cmd/winfe/genframe.cpp +++ b/mozilla/cmd/winfe/genframe.cpp @@ -1,4 +1,4 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * 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 @@ -45,7 +45,9 @@ #include "intelli.h" #endif -#ifdef JAVA +#if defined(OJI) +#include "jvmmgr.h" +#elif defined(JAVA) #include "java.h" #endif @@ -756,7 +758,7 @@ BEGIN_MESSAGE_MAP(CGenericFrame, CFrameWnd) ON_COMMAND(ID_OPEN_NEWS_WINDOW, OnOpenNewsWindow) ON_COMMAND(ID_WINDOW_BOOKMARKWINDOW, OnShowBookmarkWindow) ON_COMMAND(ID_WINDOW_ADDRESSBOOK, OnShowAddressBookWindow) -#ifdef JAVA +#if defined(OJI) || defined(JAVA) ON_COMMAND(ID_OPTIONS_SHOWJAVACONSOLE, OnToggleJavaConsole) ON_UPDATE_COMMAND_UI(ID_OPTIONS_SHOWJAVACONSOLE, OnUpdateJavaConsole) #endif @@ -2196,25 +2198,59 @@ void CGenericFrame::OnShowBookmarkWindow() } /////////////////////////////////////////////////////////////////////////////// -#ifdef JAVA + +#if defined(OJI) || defined(JAVA) void CGenericFrame::OnToggleJavaConsole() { - if( LJ_IsConsoleShowing() ) { - LJ_HideConsole(); - } else { - LJ_ShowConsole(); +#ifdef OJI + JVMMgr* jvmMgr = JVM_GetJVMMgr(); + if (jvmMgr == NULL) + return; + NPIJVMPlugin* jvm = jvmMgr->GetJVM(); + if (jvm) { + if (jvm->IsConsoleVisible()) { + jvm->HideConsole(); + } else { + jvm->ShowConsole(); + } + jvm->Release(); } + jvmMgr->Release(); +#else + if( LJ_IsConsoleShowing() ) { + LJ_HideConsole(); + } else { + LJ_ShowConsole(); + } +#endif } void CGenericFrame::OnUpdateJavaConsole(CCmdUI* pCmdUI) { +#ifdef OJI + JVMMgr* jvmMgr = JVM_GetJVMMgr(); + if (jvmMgr == NULL) { + pCmdUI->Enable(FALSE); + } + NPIJVMPlugin* jvm = jvmMgr->GetJVM(); + if (jvm) { + if (jvm->GetJVMStatus() != JVMStatus_Failed) { + pCmdUI->SetCheck(jvm->IsConsoleVisible()); + } else { + pCmdUI->Enable(FALSE); + } + jvm->Release(); + } + jvmMgr->Release(); +#else if (LJJavaStatus_Failed != LJ_GetJavaStatus()) { pCmdUI->SetCheck( LJ_IsConsoleShowing() ); } else { pCmdUI->Enable(FALSE); } +#endif } -#endif /* JAVA */ +#endif /* OJI || JAVA */ void CGenericFrame::OnTaskbar() { diff --git a/mozilla/cmd/winfe/genframe.h b/mozilla/cmd/winfe/genframe.h index 53ef8b69a99..692678a2e3d 100644 --- a/mozilla/cmd/winfe/genframe.h +++ b/mozilla/cmd/winfe/genframe.h @@ -264,7 +264,7 @@ protected: afx_msg void OnFishCam(); afx_msg void OnShowBookmarkWindow(); afx_msg void OnShowAddressBookWindow(); -#ifdef JAVA +#if defined(JAVA) || defined(OJI) afx_msg void OnToggleJavaConsole(); afx_msg void OnUpdateJavaConsole(CCmdUI* pCmdUI); #endif diff --git a/mozilla/cmd/winfe/intlwin.cpp b/mozilla/cmd/winfe/intlwin.cpp index 2fcfa9779fe..32315126b42 100755 --- a/mozilla/cmd/winfe/intlwin.cpp +++ b/mozilla/cmd/winfe/intlwin.cpp @@ -24,11 +24,16 @@ #include "cxsave.h" #include "np.h" -#include "java.h" #include "prlog.h" #include "prlink.h" #include "xpstrsw.h" +#if defined(OJI) +#include "jvmmgr.h" +#elif defined(JAVA) +#include "java.h" +#endif + #include "cuvfs.h" #include "intl_csi.h" #include "edt.h" diff --git a/mozilla/cmd/winfe/mainfrm.cpp b/mozilla/cmd/winfe/mainfrm.cpp index 33bfd6f3168..21b6667edb8 100644 --- a/mozilla/cmd/winfe/mainfrm.cpp +++ b/mozilla/cmd/winfe/mainfrm.cpp @@ -46,7 +46,9 @@ #include "np.h" #include "npapi.h" // for NPWindow -#ifdef JAVA +#if defined(OJI) +#include "jvmmgr.h" +#elif defined(JAVA) #include "java.h" #endif diff --git a/mozilla/cmd/winfe/mozilla.cpp b/mozilla/cmd/winfe/mozilla.cpp index f2a047042d9..ee7a842214c 100644 --- a/mozilla/cmd/winfe/mozilla.cpp +++ b/mozilla/cmd/winfe/mozilla.cpp @@ -28,7 +28,11 @@ void STARTUP_li(void); void SHUTDOWN_li(void); #endif/* MOZ_LOC_INDEP */ +#if defined(OJI) +#include "jvmmgr.h" +#elif defined(JAVA) #include "jri.h" +#endif #define XP_CPLUSPLUS // temporary hack - jsw //#include "secnav.h" @@ -87,7 +91,7 @@ BOOL bIsGold = FALSE; // Full Circle stuff - see http://www.fullsoft.com for more info #include "fullsoft.h" -#ifdef JAVA +#if defined(OJI) || defined(JAVA) // don't include java.h here because the Win16 compiler won't be able to handle this file void WFE_LJ_StartupJava(void); void WFE_LJ_StartDebugger(void); @@ -1358,7 +1362,7 @@ BOOL CNetscapeApp::InitInstance() STARTUP_np(); // if PE mode, start up java too! -#ifdef JAVA +#if defined(OJI) || defined(JAVA) if (m_bAccountSetupStartupJava) { // rhp - Added flags for MAPI startup... @@ -1382,24 +1386,31 @@ BOOL CNetscapeApp::InitInstance() // only show splash if not embedded m_splash.NavDoneIniting(); } - -#ifdef JAVA +#if defined(OJI) || defined(JAVA) // if PE mode, check if java environment is valid if (m_bAccountSetupStartupJava) { - JRIEnv * ee = JRI_GetCurrentEnv(); - - if (ee == NULL) { - - CString szJavaStartupErr = "You are starting up an application that needs java.\nPlease turn on java in your navigator's preference and try again."; - AfxMessageBox(szJavaStartupErr, MB_OK); - - m_bAccountSetupStartupJava = FALSE; - - return FALSE; - } - - m_bAccountSetupStartupJava = FALSE; +#ifdef OJI + JRIEnv* ee = NULL; + JVMMgr* jvmMgr = JVM_GetJVMMgr(); + if (jvmMgr) { + NPIJVMPlugin* jvm = jvmMgr->GetJVM(); + if (jvm) { + ee = jvm->EnsureExecEnv(); + jvm->Release(); + } + jvmMgr->Release(); + } +#else + JRIEnv * ee = JRI_GetCurrentEnv(); +#endif + if (ee == NULL) { + CString szJavaStartupErr = "You are starting up an application that needs java.\nPlease turn on java in your navigator's preference and try again."; + AfxMessageBox(szJavaStartupErr, MB_OK); + m_bAccountSetupStartupJava = FALSE; + return FALSE; + } + m_bAccountSetupStartupJava = FALSE; } #endif // Its now safe to create the frame objects and start this whole thang @@ -1749,7 +1760,7 @@ BOOL CNetscapeApp::InitInstance() #endif /* MOZ_MAIL_NEWS */ -#ifdef JAVA +#if defined(OJI) || defined(JAVA) case STARTUP_JAVA_DEBUG_AGENT: WFE_LJ_StartDebugger(); // stub call because java.h can't be included here break; @@ -2084,7 +2095,7 @@ int CNetscapeApp::ExitInstance() // Free all resources allocated by NSPR... // #if !defined(_WIN32) -#if defined(JAVA) || defined(MOCHA) +#if defined(OJI) || defined(JAVA) || defined(MOCHA) #if defined(NSPR20) /* * XXX SHould PR_CLeanup be called here? @@ -2097,7 +2108,7 @@ int CNetscapeApp::ExitInstance() PR_Shutdown(); #endif #endif -#endif /* JAVA || MOCHA */ +#endif /* OJI || JAVA || MOCHA */ if (theApp.m_bNetworkProfile) { // if we have a network profile command-line we are assuming delete on exit (for now) diff --git a/mozilla/cmd/winfe/nsapp.cpp b/mozilla/cmd/winfe/nsapp.cpp index a2a2d01bb71..bfb030af58e 100644 --- a/mozilla/cmd/winfe/nsapp.cpp +++ b/mozilla/cmd/winfe/nsapp.cpp @@ -408,7 +408,7 @@ void CNetscapeApp::parseCommandLine(char * commandLine) if (IsRuntimeSwitch("-parse_telnet")) m_bParseTelnetURLs = TRUE; -#ifdef JAVA +#if defined(OJI) || defined(JAVA) if(IsRuntimeSwitch("-javadebug",TRUE)) { m_bCreateJavaDebugAgent = TRUE; } @@ -1594,14 +1594,14 @@ int CNetscapeApp::Run() } #ifdef XP_WIN16 -#if defined(JAVA) || defined(MOCHA) +#if defined(OJI) || defined(JAVA) || defined(MOCHA) /* ** On Win16 the only way for another thread to run is to explicitly ** yield... */ extern void fe_yield(void); fe_yield(); -#endif /* JAVA */ +#endif /* OJI || JAVA || MOCHA */ #endif /* XP_WIN16 */ do { @@ -1721,14 +1721,14 @@ BOOL CNetscapeApp::OnIdle(LONG lCount) // already sends a WM_IDLEUPDATECMDUI to each of the frames #ifdef XP_WIN16 -#if defined(JAVA) || defined(MOCHA) +#if defined(OJI) || defined(JAVA) || defined(MOCHA) /* ** On Win16 the only way for another thread to run is to explicitly ** yield... */ extern void fe_yield(void); fe_yield(); -#endif /* JAVA */ +#endif /* OJI || JAVA || MOCHA */ // Update the UI of the frames. if(lCount == 0) { diff --git a/mozilla/cmd/winfe/popup.cpp b/mozilla/cmd/winfe/popup.cpp index eea322f9313..5eed9f4c982 100755 --- a/mozilla/cmd/winfe/popup.cpp +++ b/mozilla/cmd/winfe/popup.cpp @@ -195,7 +195,7 @@ BOOL CNetscapeView::AddEmbedToPopup(CMenu * pMenu, LO_Element * pElement, CL_Lay // Inline CNetscapeCntrItem *pItem = NULL; if(pElement != NULL && pElement->type == LO_EMBED) { - NPEmbeddedApp *pPluginShim = (NPEmbeddedApp *)((LO_EmbedStruct *)pElement)->FE_Data; + NPEmbeddedApp *pPluginShim = (NPEmbeddedApp *)((LO_EmbedStruct *)pElement)->objTag.FE_Data; if(pPluginShim != NULL && wfe_IsTypePlugin(pPluginShim) == FALSE) { pItem = (CNetscapeCntrItem *)pPluginShim->fe_data; } @@ -1228,11 +1228,11 @@ void CNetscapeView::OnPopupActivateEmbed() { CWinCX *pWinCX = GetContext(); if(pWinCX && pWinCX->m_pSelected) { // Figure out the rect that the item covers. - long lLeft = pWinCX->m_pSelected->x + pWinCX->m_pSelected->y_offset - pWinCX->GetOriginX(); - long lRight = lLeft + pWinCX->m_pSelected->width; + long lLeft = pWinCX->m_pSelected->objTag.x + pWinCX->m_pSelected->objTag.y_offset - pWinCX->GetOriginX(); + long lRight = lLeft + pWinCX->m_pSelected->objTag.width; - long lTop = pWinCX->m_pSelected->y + pWinCX->m_pSelected->y_offset - pWinCX->GetOriginY(); - long lBottom = lTop + pWinCX->m_pSelected->height; + long lTop = pWinCX->m_pSelected->objTag.y + pWinCX->m_pSelected->objTag.y_offset - pWinCX->GetOriginY(); + long lBottom = lTop + pWinCX->m_pSelected->objTag.height; HDC pDC = pWinCX->GetContextDC(); RECT crBounds; @@ -1251,7 +1251,7 @@ void CNetscapeView::OnPopupActivateEmbed() { if(m_pRBElement != NULL) { if(m_pRBElement->type == LO_EMBED) { LO_EmbedStruct *pLayoutData = (LO_EmbedStruct *)m_pRBElement; - NPEmbeddedApp *pPluginShim = (NPEmbeddedApp *)pLayoutData->FE_Data; + NPEmbeddedApp *pPluginShim = (NPEmbeddedApp *)pLayoutData->objTag.FE_Data; if(pPluginShim != NULL && wfe_IsTypePlugin(pPluginShim) == FALSE) { CNetscapeCntrItem *pItem = (CNetscapeCntrItem *)pPluginShim->fe_data; @@ -1324,7 +1324,7 @@ void CNetscapeView::OnPopupCopyEmbedToClipboard() { if(m_pRBElement != NULL) { if(m_pRBElement->type == LO_EMBED) { LO_EmbedStruct *pLayoutData = (LO_EmbedStruct *)m_pRBElement; - NPEmbeddedApp *pPluginShim = (NPEmbeddedApp *)pLayoutData->FE_Data; + NPEmbeddedApp *pPluginShim = (NPEmbeddedApp *)pLayoutData->objTag.FE_Data; if(pPluginShim != NULL && wfe_IsTypePlugin(pPluginShim) == FALSE) { CNetscapeCntrItem *pItem = (CNetscapeCntrItem *)pPluginShim->fe_data; diff --git a/mozilla/cmd/winfe/woohoo.cpp b/mozilla/cmd/winfe/woohoo.cpp index a4889d17b9e..fff070681bb 100644 --- a/mozilla/cmd/winfe/woohoo.cpp +++ b/mozilla/cmd/winfe/woohoo.cpp @@ -27,10 +27,14 @@ #include "template.h" #include "mainfrm.h" #include "woohoo.h" -#ifdef JAVA + +#if defined(OJI) +#include "jvmmgr.h" +#elif defined(JAVA) #include "java.h" #endif +void WFE_LJ_StartDebugger(void); // // Parse the command line for component launch arguments @@ -194,7 +198,7 @@ BOOL CNetscapeApp::ExistComponentArguments(char * pszCommandLine) } else if (strcasestr(pszCommandLine,"-PROFILE_MANAGER" )){ m_bProfileManager = TRUE; -#ifdef JAVA +#if defined(OJI) || defined(JAVA) } else if (strcasestr(pszCommandLine,"-javadebug" )){ m_bCreateJavaDebugAgent = TRUE; #endif @@ -252,7 +256,7 @@ BOOL CNetscapeApp::BuildCmdLineList(const char* pszRemoveString, CCmdParse &cmdP if (!pFirst) { //just in case no switch was given - pFirst = strchr(pszCmdLine,'"'); + pFirst = strchr(pszCmdLine,'"'); } else { //jump over the flag since we don't want it on the list @@ -484,13 +488,13 @@ void CNetscapeApp::LaunchComponentWindow(int iStartupMode, char *pszCmdLine) //we do this outside the switch break; -#ifdef JAVA +#if defined(OJI) || defined(JAVA) case STARTUP_NETCASTER: FEU_OpenNetcaster() ; break; case STARTUP_JAVA_DEBUG_AGENT: - LJ_StartDebugger(LJDebugPort_SharedMemory); + WFE_LJ_StartDebugger(); break; case STARTUP_JAVA: @@ -1152,15 +1156,37 @@ inline UINT CMapStringToObNoCase::HashKey(LPCTSTR key) const void WFE_LJ_StartupJava(void) { -#ifdef JAVA - LJ_StartupJava(); +#ifdef OJI + JVMMgr* jvmMgr = JVM_GetJVMMgr(); + if (jvmMgr) { + jvmMgr->StartupJVM(); + jvmMgr->Release(); + } +#else + LJ_StartupJava(); #endif } void WFE_LJ_StartDebugger(void) { -#ifdef JAVA - LJ_StartDebugger(LJDebugPort_SharedMemory); +#ifdef OJI + JVMMgr* jvmMgr = JVM_GetJVMMgr(); + if (jvmMgr) { + NPIJVMPlugin* jvm = jvmMgr->GetJVM(); + if (jvm) { + static NS_DEFINE_IID(kISymantecDebuggerIID, NP_ISYMANTECDEBUGGER_IID); + NPISymantecDebugger* debugger; + if (jvm->QueryInterface(kISymantecDebuggerIID, (void**)&debugger) == NS_OK) { + // XXX should we make sure the vm is started first? + debugger->StartDebugger(NPSymantecDebugPort_SharedMemory); + debugger->Release(); + } + jvm->Release(); + } + jvmMgr->Release(); + } +#else + LJ_StartDebugger(LJDebugPort_SharedMemory); #endif }