diff --git a/mozilla/content/base/public/nsIDocument.h b/mozilla/content/base/public/nsIDocument.h index 59e691e6db2..e479cc31810 100644 --- a/mozilla/content/base/public/nsIDocument.h +++ b/mozilla/content/base/public/nsIDocument.h @@ -153,8 +153,6 @@ public: NS_IMETHOD RemoveCharSetObserver(nsIObserver* aObserver) = 0; #ifdef IBMBIDI - NS_IMETHOD SetDocumentBidi(const PRUint8 member, const PRUint8 value) = 0; - NS_IMETHOD GetDocumentBidi(const PRUint8 member, PRUint8 * value) = 0; NS_IMETHOD SetBidi(nsBidiOptions Source) = 0; NS_IMETHOD GetBidi(nsBidiOptions * Dist) = 0; diff --git a/mozilla/content/base/src/nsDocument.cpp b/mozilla/content/base/src/nsDocument.cpp index f354242ac3c..697516c3782 100644 --- a/mozilla/content/base/src/nsDocument.cpp +++ b/mozilla/content/base/src/nsDocument.cpp @@ -1122,112 +1122,6 @@ NS_IMETHODIMP nsDocument::RemoveCharSetObserver(nsIObserver* aObserver) #ifdef IBMBIDI -//***************************************************************************** -// nsDocument::SetDocumentBidi -//***************************************************************************** - -NS_IMETHODIMP -nsDocument::SetDocumentBidi(const PRUint8 member, const PRUint8 value) -{ - // ------------------------------------- - // IBM Bidi prefs - // ------------------------------------- - // IBMBIDI_TEXTDIRECTION (1,2) - // IBMBIDI_TEXTTYPE (1,2,3) - // IBMBIDI_CONTROLSTEXTMODE (1,2,3) - // IBMBIDI_CLIPBOARDTEXTMODE (1,2,3) - // IBMBIDI_NUMERAL (1,2,3,4) - // IBMBIDI_SUPPORTMODE (1,2,3) - // IBMBIDI_CHARSET (1,2) - switch (member) - { - case IBMBIDI_TEXTDIRECTION: - this->mBidi.mdirection = value; - break; - case IBMBIDI_TEXTTYPE: - this->mBidi.mtexttype = value; - break; - case IBMBIDI_CONTROLSTEXTMODE: - this->mBidi.mcontrolstextmode = value; - break; - case IBMBIDI_CLIPBOARDTEXTMODE: - this->mBidi.mclipboardtextmode = value; - break; - case IBMBIDI_NUMERAL: - this->mBidi.mnumeral = value; - break; - case IBMBIDI_SUPPORTMODE: - this->mBidi.msupport = value; - break; - case IBMBIDI_CHARSET: - this->mBidi.mcharacterset = value; - break; - } - - PRInt32 i; - PRInt32 ns = this->GetNumberOfShells(); - for (i = 0; i < ns; i++) - { - nsCOMPtr shell(dont_AddRef(this->GetShellAt(i))); - if (shell) - { - //nsCOMPtr documentViewer; - // Resize-reflow this time - //nsCOMPtr docViewer = do_QueryInterface(mRootContent);//documentViewer - //if (!docViewer) { return NS_ERROR_OUT_OF_MEMORY; } - nsCOMPtr presContext = nsnull; - //NS_ENSURE_SUCCESS(docViewer->GetPresContext(*(getter_AddRefs(presContext))), NS_ERROR_FAILURE); - NS_ENSURE_SUCCESS(shell->GetPresContext(getter_AddRefs(presContext)), NS_ERROR_FAILURE); - if (!presContext) { return NS_ERROR_OUT_OF_MEMORY; } - - presContext->SetDocumentBidi(member, value); - } - } - - return NS_OK; -} - -NS_IMETHODIMP -nsDocument::GetDocumentBidi(const PRUint8 member, PRUint8 * value) -{ - // ------------------------------------- - // IBM Bidi prefs - // ------------------------------------- - // IBMBIDI_TEXTDIRECTION (1,2) - // IBMBIDI_TEXTTYPE (1,2,3) - // IBMBIDI_CONTROLSTEXTMODE (1,2,3) - // IBMBIDI_CLIPBOARDTEXTMODE (1,2,3) - // IBMBIDI_NUMERAL (1,2,3,4) - // IBMBIDI_SUPPORTMODE (1,2,3) - // IBMBIDI_CHARSET (1,2) - switch (member) - { - case IBMBIDI_TEXTDIRECTION: - *value = this->mBidi.mdirection; - break; - case IBMBIDI_TEXTTYPE: - *value = this->mBidi.mtexttype; - break; - case IBMBIDI_CONTROLSTEXTMODE: - *value = this->mBidi.mcontrolstextmode; - break; - case IBMBIDI_CLIPBOARDTEXTMODE: - *value = this->mBidi.mclipboardtextmode; - break; - case IBMBIDI_NUMERAL: - *value = this->mBidi.mnumeral; - break; - case IBMBIDI_SUPPORTMODE: - *value = this->mBidi.msupport; - break; - case IBMBIDI_CHARSET: - *value = this->mBidi.mcharacterset; - break; - } - return NS_OK; -} - - NS_IMETHODIMP nsDocument::SetBidi(nsBidiOptions Source) { this->mBidi.mdirection = Source.mdirection; diff --git a/mozilla/content/base/src/nsDocument.h b/mozilla/content/base/src/nsDocument.h index d50f313250a..7efcb59750b 100644 --- a/mozilla/content/base/src/nsDocument.h +++ b/mozilla/content/base/src/nsDocument.h @@ -210,8 +210,6 @@ public: NS_IMETHOD RemoveCharSetObserver(nsIObserver* aObserver); #ifdef IBMBIDI - NS_IMETHOD SetDocumentBidi(const PRUint8 member, const PRUint8 value); - NS_IMETHOD GetDocumentBidi(const PRUint8 member, PRUint8 * value); NS_IMETHOD SetBidi(nsBidiOptions Source); NS_IMETHOD GetBidi(nsBidiOptions * Dist); /** diff --git a/mozilla/content/base/src/nsStyleContext.cpp b/mozilla/content/base/src/nsStyleContext.cpp index 9e9898d31fd..5fcec815dae 100644 --- a/mozilla/content/base/src/nsStyleContext.cpp +++ b/mozilla/content/base/src/nsStyleContext.cpp @@ -1211,17 +1211,10 @@ void StyleDisplayImpl::ResetFrom(const nsStyleDisplay* aParent, nsIPresContext* } else { #ifdef IBMBIDI - // ------------------------------ - // IBM Bidi prefs - // ------------------------------ - // IBMBIDI_TEXTDIRECTION - // -------- Valid Valus ------- - // IBMBIDI_TEXTDIRECTION_LTR - // IBMBIDI_TEXTDIRECTION_RTL - // - PRUint8 value; - aPresContext->GetDocumentBidi(IBMBIDI_TEXTDIRECTION, &value); - if (value == IBMBIDI_TEXTDIRECTION_RTL) mDirection = NS_STYLE_DIRECTION_RTL; + nsBidiOptions mBidioptions; + aPresContext->GetBidi(&mBidioptions); + if (mBidioptions.mdirection == IBMBIDI_TEXTDIRECTION_RTL) + mDirection = NS_STYLE_DIRECTION_RTL; else mDirection = NS_STYLE_DIRECTION_LTR; #else // ifndef IBMBIDI aPresContext->GetDefaultDirection(&mDirection); diff --git a/mozilla/content/html/document/src/nsHTMLDocument.cpp b/mozilla/content/html/document/src/nsHTMLDocument.cpp index c89d57068b6..ffd3bcb32bf 100644 --- a/mozilla/content/html/document/src/nsHTMLDocument.cpp +++ b/mozilla/content/html/document/src/nsHTMLDocument.cpp @@ -805,17 +805,10 @@ nsHTMLDocument::StartDocumentLoad(const char* aCommand, #ifdef IBMBIDI // Check if 864 but in Implicit mode ! - PRUint8 TextType = 0; - // ------------------ - // Text Type - // ------------------ - // bidi.texttype - // 1 = charsettexttypeBidi * - // 2 = logicaltexttypeBidi - // 3 = visualtexttypeBidi - this->GetDocumentBidi(IBMBIDI_TEXTTYPE, &TextType); - if (TextType == IBMBIDI_TEXTTYPE_LOGICAL) - if (charset.RFind("864", PR_TRUE )) + nsBidiOptions mBidioptions; + this->GetBidi(&mBidioptions); + if (mBidioptions.mtexttype == IBMBIDI_TEXTTYPE_LOGICAL) + if (charset.RFind("864", PR_TRUE )) //charset = "IBM864i"; //nsAutoString ibm8641str("IBM864i"); charset.AssignWithConversion("IBM864i"); diff --git a/mozilla/content/xul/document/src/nsXULDocument.cpp b/mozilla/content/xul/document/src/nsXULDocument.cpp index 828092d2be1..8bd3d4e0ec0 100644 --- a/mozilla/content/xul/document/src/nsXULDocument.cpp +++ b/mozilla/content/xul/document/src/nsXULDocument.cpp @@ -878,18 +878,6 @@ nsXULDocument::SetDocumentCharacterSet(const nsString& aCharSetID) #ifdef IBMBIDI //In nsWebShell doc->SetBidi() is once casted as nsXULDocument, and nsDocument //looking into removing these.... -NS_IMETHODIMP -nsXULDocument::SetDocumentBidi(const PRUint8 member, const PRUint8 value) -{ - return NS_OK; -} - -NS_IMETHODIMP -nsXULDocument::GetDocumentBidi(const PRUint8 member, PRUint8 * value) -{ - return NS_OK; -} - NS_IMETHODIMP nsXULDocument::SetBidi(nsBidiOptions Source) { return NS_OK; diff --git a/mozilla/content/xul/document/src/nsXULDocument.h b/mozilla/content/xul/document/src/nsXULDocument.h index a899e0b98b5..f8dfc5af853 100644 --- a/mozilla/content/xul/document/src/nsXULDocument.h +++ b/mozilla/content/xul/document/src/nsXULDocument.h @@ -148,8 +148,6 @@ public: NS_IMETHOD SetDocumentCharacterSet(const nsString& aCharSetID); #ifdef IBMBIDI - NS_IMETHOD SetDocumentBidi(const PRUint8 member, const PRUint8 value); - NS_IMETHOD GetDocumentBidi(const PRUint8 member, PRUint8 * value); NS_IMETHOD SetBidi(nsBidiOptions Source); NS_IMETHOD GetBidi(nsBidiOptions * Dist); diff --git a/mozilla/docshell/base/nsWebShell.cpp b/mozilla/docshell/base/nsWebShell.cpp index 1ac30341b58..a553748bc20 100644 --- a/mozilla/docshell/base/nsWebShell.cpp +++ b/mozilla/docshell/base/nsWebShell.cpp @@ -614,76 +614,6 @@ nsWebShell::SetURL(const PRUnichar* aURL) } #ifdef IBMBIDI - - -NS_IMETHODIMP -nsWebShell::SetDocumentBidi(const PRUint8 member, const PRUint8 value) -{ - switch (member) - { - case IBMBIDI_TEXTDIRECTION: - this->mBidi.mdirection = value; - break; - case IBMBIDI_TEXTTYPE: - this->mBidi.mtexttype = value; - break; - case IBMBIDI_CONTROLSTEXTMODE: - this->mBidi.mcontrolstextmode = value; - break; - case IBMBIDI_CLIPBOARDTEXTMODE: - this->mBidi.mclipboardtextmode = value; - break; - case IBMBIDI_NUMERAL: - this->mBidi.mnumeral = value; - break; - case IBMBIDI_SUPPORTMODE: - this->mBidi.msupport = value; - break; - case IBMBIDI_CHARSET: - this->mBidi.mcharacterset = value; - break; - } - //ahmed - nsCOMPtr CurrentPresContext; - if (mContentViewer != nsnull) this->GetPresContext(getter_AddRefs(CurrentPresContext)); - if (CurrentPresContext != nsnull) { - CurrentPresContext->SetDocumentBidi(member,value); - } - return NS_OK; -} - -NS_IMETHODIMP -nsWebShell::GetDocumentBidi(const PRUint8 member, PRUint8 * value) -{ - switch (member) - { - case IBMBIDI_TEXTDIRECTION: - *value = this->mBidi.mdirection; - break; - case IBMBIDI_TEXTTYPE: - *value = this->mBidi.mtexttype; - break; - case IBMBIDI_CONTROLSTEXTMODE: - *value = this->mBidi.mcontrolstextmode; - break; - case IBMBIDI_CLIPBOARDTEXTMODE: - *value = this->mBidi.mclipboardtextmode; - break; - case IBMBIDI_NUMERAL: - *value = this->mBidi.mnumeral; - break; - case IBMBIDI_SUPPORTMODE: - *value = this->mBidi.msupport; - break; - case IBMBIDI_CHARSET: - *value = this->mBidi.mcharacterset; - break; - } - return NS_OK; -} - - - NS_IMETHODIMP nsWebShell::SetBidi(nsBidiOptions Source) { this->mBidi.mdirection = Source.mdirection; diff --git a/mozilla/docshell/base/nsWebShell.h b/mozilla/docshell/base/nsWebShell.h index 2aec7bdcced..5cd0df2fad1 100644 --- a/mozilla/docshell/base/nsWebShell.h +++ b/mozilla/docshell/base/nsWebShell.h @@ -51,8 +51,6 @@ public: NS_IMETHOD GetReferrer(nsIURI **aReferrer); #ifdef IBMBIDI - NS_IMETHOD SetDocumentBidi(const PRUint8 member, const PRUint8 value); - NS_IMETHOD GetDocumentBidi(const PRUint8 member, PRUint8 * value); NS_IMETHOD SetBidi(nsBidiOptions Source); NS_IMETHOD GetBidi(nsBidiOptions * Dist); #endif // IBMBIDI diff --git a/mozilla/gfx/src/windows/nsRenderingContextWin.cpp b/mozilla/gfx/src/windows/nsRenderingContextWin.cpp index 9bb43048e39..89e8def84c9 100644 --- a/mozilla/gfx/src/windows/nsRenderingContextWin.cpp +++ b/mozilla/gfx/src/windows/nsRenderingContextWin.cpp @@ -2020,48 +2020,19 @@ FoundFont: HebrewReordering(&pstr[start], i-start, buf, len); } #endif - if (BidiEngine->NeedComplexScriptHandling(&pstr[start], i-start, + //ahmed + if (IsNeedShaping() &&(BidiEngine->NeedComplexScriptHandling(&pstr[start], i-start, HAS_HEBREW_GLYPH(prevFont), &bHebrew, - HAS_ARABIC_PRESENTATION_FORM_B(prevFont), &bArabic) ) { + HAS_ARABIC_PRESENTATION_FORM_B(prevFont), &bArabic) )) { //XXX TODO: Handle BDO for both Arabic and Hebrew here - //ahmed: changes here to follow the user pref. disabling system shaping or mozilla shaping - // in this part enable or disable mozilla shape & revrse - nsresult rv = NS_OK; - nsCOMPtr prefs; - PRInt8 prefInt = 0; - rv = nsServiceManager::GetService(kPrefCID, - NS_GET_IID(nsIPref), - (nsISupports**)&prefs); - if (NS_SUCCEEDED(rv) && prefs) - { - NS_SUCCEEDED(prefs->GetIntPref(IBMBIDI_SUPPORTMODE_STR , ((PRInt32*)&prefInt))); - // Support Mode - // ------------------ - // bidi.support - // 1 = mozillaBidisupport * - // 2 = OsBidisupport - // 3 = disableBidisupport - if((IBMBIDI_SUPPORTMODE_MOZILLA==prefInt)&& (bArabic)) - { - //reverse the arabic buffer - PRUnichar aRevBuf [8192]; - PRInt32 aRevBufLen = 8192,j; - nsresult rv1 = NS_OK; - NS_WITH_SERVICE(nsIBidi, BidiEngine2, kBidiCID, &rv1); - BidiEngine2->writeReverse(pstr,i-start, aRevBuf, UBIDI_KEEP_BASE_COMBINING|UBIDI_DO_MIRRORING, &aRevBufLen); - for(j=0;jArabicShaping(&pstr[start], i-start, buf, len, prevFont->mMap); } - } - } - //end ahmed - if (len > 0) { + } + if (len > 0) { width += prevFont->GetWidth(mDC, buf, len); } else @@ -2094,42 +2065,18 @@ FoundFont: HebrewReordering(&pstr[start], i-start, buf, len); } #endif - if (BidiEngine->NeedComplexScriptHandling(&pstr[start], i-start, + //ahmed + if (IsNeedShaping() && (BidiEngine->NeedComplexScriptHandling(&pstr[start], i-start, HAS_HEBREW_GLYPH(prevFont), &bHebrew, - HAS_ARABIC_PRESENTATION_FORM_B(prevFont), &bArabic) ) { + HAS_ARABIC_PRESENTATION_FORM_B(prevFont), &bArabic) ) ){ //XXX TODO: Handle BDO for both Arabic and Hebrew here - //ahmed:changes here to follow the user pref. disabling system shaping or mozilla shaping - //in this part enable or disable mozilla shape & revrse - - nsresult rv = NS_OK; - nsCOMPtr prefs; - PRInt8 prefInt = 0; - rv = nsServiceManager::GetService(kPrefCID, - NS_GET_IID(nsIPref), - (nsISupports**)&prefs); - if (NS_SUCCEEDED(rv) && prefs) - { - NS_SUCCEEDED(prefs->GetIntPref(IBMBIDI_SUPPORTMODE_STR , ((PRInt32*)&prefInt))); - - if((IBMBIDI_SUPPORTMODE_MOZILLA==prefInt)&& (bArabic)) - { - // reverse the arabic buffer - PRUnichar aRevBuf [8192]; - PRInt32 aRevBufLen = 8192,j; - nsresult rv1 = NS_OK; - NS_WITH_SERVICE(nsIBidi, BidiEngine2, kBidiCID, &rv1); - BidiEngine2->writeReverse(pstr,i-start, aRevBuf, UBIDI_KEEP_BASE_COMBINING|UBIDI_DO_MIRRORING, &aRevBufLen); - for(j=0;jArabicShaping(&pstr[start], i-start, buf, len, prevFont->mMap); } } - } if (len > 0) { width += prevFont->GetWidth(mDC, buf, len); } @@ -2566,39 +2513,19 @@ FoundFont: HebrewReordering(&pstr[start], i-start, buf, len); } #endif - if (BidiEngine->NeedComplexScriptHandling(&pstr[start], i-start, + //ahmed + if (IsNeedShaping() && (BidiEngine->NeedComplexScriptHandling(&pstr[start], i-start, HAS_HEBREW_GLYPH(prevFont), &bHebrew, - HAS_ARABIC_PRESENTATION_FORM_B(prevFont), &bArabic) ) { + HAS_ARABIC_PRESENTATION_FORM_B(prevFont), &bArabic) ) ){ //XXX TODO: Handle BDO for both Arabic and Hebrew here - //ahmed: changes here to follow the user pref. disabling system shaping or mozilla shaping - // in this part enable or disable mozilla shape & revrse - nsresult rv = NS_OK; - nsCOMPtr prefs; - PRInt8 prefInt = 0; - rv = nsServiceManager::GetService(kPrefCID, - NS_GET_IID(nsIPref), - (nsISupports**)&prefs); - if (NS_SUCCEEDED(rv) && prefs) - { - NS_SUCCEEDED(prefs->GetIntPref(IBMBIDI_SUPPORTMODE_STR , ((PRInt32*)&prefInt))); - if((IBMBIDI_SUPPORTMODE_MOZILLA==prefInt)&& (bArabic)) - { - //reverse the arabic buffer - PRUnichar aRevBuf [8192]; - PRInt32 aRevBufLen = 8192,j; - nsresult rv1 = NS_OK; - NS_WITH_SERVICE(nsIBidi, BidiEngine2, kBidiCID, &rv1); - BidiEngine2->writeReverse(pstr,i-start, aRevBuf, UBIDI_KEEP_BASE_COMBINING|UBIDI_DO_MIRRORING, &aRevBufLen); - for(j=0;jArabicShaping(&pstr[start], i-start, buf, len, prevFont->mMap); } } - } + if (len > 0) { prevFont->DrawString(mDC, x, y, buf, len); x += prevFont->GetWidth(mDC, buf, len); @@ -2655,39 +2582,18 @@ FoundFont: HebrewReordering(&pstr[start], i-start, buf, len); } #endif - if (BidiEngine->NeedComplexScriptHandling(&pstr[start], i-start, + //ahmed + if (IsNeedShaping() &&(BidiEngine->NeedComplexScriptHandling(&pstr[start], i-start, HAS_HEBREW_GLYPH(prevFont), &bHebrew, - HAS_ARABIC_PRESENTATION_FORM_B(prevFont), &bArabic) ) { + HAS_ARABIC_PRESENTATION_FORM_B(prevFont), &bArabic) ) ){ //XXX TODO: Handle BDO for both Arabic and Hebrew here - //ahmed: changes here to follow the user pref. disabling system shaping or mozilla shaping - //in this part enable or disable mozilla shape & revrse - nsresult rv = NS_OK; - nsCOMPtr prefs; - PRInt8 prefInt = 0; - rv = nsServiceManager::GetService(kPrefCID, - NS_GET_IID(nsIPref), - (nsISupports**)&prefs); - if (NS_SUCCEEDED(rv) && prefs) - { - NS_SUCCEEDED(prefs->GetIntPref(IBMBIDI_SUPPORTMODE_STR , ((PRInt32*)&prefInt))); - if((IBMBIDI_SUPPORTMODE_MOZILLA==prefInt)&& (bArabic)) - { - //reverse the arabic buffer before shaping - PRUnichar aRevBuf [8192]; - PRInt32 aRevBufLen = 8192,j; - nsresult rv1 = NS_OK; - NS_WITH_SERVICE(nsIBidi, BidiEngine2, kBidiCID, &rv1); - BidiEngine2->writeReverse(pstr,i-start, aRevBuf, UBIDI_KEEP_BASE_COMBINING|UBIDI_DO_MIRRORING, &aRevBufLen); - for(j=0;jArabicShaping(&pstr[start], i-start, buf, len, prevFont->mMap); } } - } + if (len > 0) { prevFont->DrawString(mDC, x, y, buf, len); } @@ -3942,7 +3848,16 @@ nsresult nsRenderingContextWin::IsBidiSystem(PRBool& aIsBidi) aIsBidi = IS_BIDI_SYSTEM; return NS_OK; } - +//ahmed +PRBool nsRenderingContextWin::IsNeedShaping() +{ + PRBool rv = PR_FALSE; + PRBool aIsBidi; + IsBidiSystem(aIsBidi); + // rv= !IsBidiSystem() && !mContext->mIsVisual; + rv= !aIsBidi && !mContext->mIsVisual; + return rv; +} /** * Let the device context know whether we want RTL reading * diff --git a/mozilla/gfx/src/windows/nsRenderingContextWin.h b/mozilla/gfx/src/windows/nsRenderingContextWin.h index 3e7bd241a30..e5af70b5fa6 100644 --- a/mozilla/gfx/src/windows/nsRenderingContextWin.h +++ b/mozilla/gfx/src/windows/nsRenderingContextWin.h @@ -186,6 +186,8 @@ public: #ifdef IBMBIDI NS_IMETHOD IsBidiSystem(PRBool& aIsBidi); NS_IMETHOD SetRTLReading(PRBool aIsRTL); + //ahmed + NS_IMETHOD_(PRBool) IsNeedShaping(void); #endif // IBMBIDI // nsIRenderingContextWin diff --git a/mozilla/layout/base/public/nsIDocument.h b/mozilla/layout/base/public/nsIDocument.h index 59e691e6db2..e479cc31810 100644 --- a/mozilla/layout/base/public/nsIDocument.h +++ b/mozilla/layout/base/public/nsIDocument.h @@ -153,8 +153,6 @@ public: NS_IMETHOD RemoveCharSetObserver(nsIObserver* aObserver) = 0; #ifdef IBMBIDI - NS_IMETHOD SetDocumentBidi(const PRUint8 member, const PRUint8 value) = 0; - NS_IMETHOD GetDocumentBidi(const PRUint8 member, PRUint8 * value) = 0; NS_IMETHOD SetBidi(nsBidiOptions Source) = 0; NS_IMETHOD GetBidi(nsBidiOptions * Dist) = 0; diff --git a/mozilla/layout/base/public/nsIPresContext.h b/mozilla/layout/base/public/nsIPresContext.h index da7d0662e83..88cbc9ca978 100644 --- a/mozilla/layout/base/public/nsIPresContext.h +++ b/mozilla/layout/base/public/nsIPresContext.h @@ -329,8 +329,6 @@ public: NS_IMETHOD IsVisualMode(PRBool& aIsVisual) const = 0; NS_IMETHOD SetVisualMode(PRBool aIsVisual) = 0; NS_IMETHOD GetBidiUtils(nsBidiPresUtils** aBidiUtils) = 0; - NS_IMETHOD SetDocumentBidi(const PRUint8 member, const PRUint8 value) = 0; - NS_IMETHOD GetDocumentBidi(const PRUint8 member, PRUint8 * value) = 0; NS_IMETHOD SetBidi(nsBidiOptions Source) = 0; NS_IMETHOD GetBidi(nsBidiOptions * Dist) = 0; #endif // IBMBIDI diff --git a/mozilla/layout/base/src/nsBidiPresUtils.cpp b/mozilla/layout/base/src/nsBidiPresUtils.cpp index c5a9f4af99e..1e711898289 100644 --- a/mozilla/layout/base/src/nsBidiPresUtils.cpp +++ b/mozilla/layout/base/src/nsBidiPresUtils.cpp @@ -672,20 +672,21 @@ nsBidiPresUtils::FormatUnicodeText(nsIPresContext* aPresContext, } mUnicodeUtils = bidiUtils; } - PRUint8 value; - aPresContext->GetDocumentBidi(IBMBIDI_NUMERAL, &value); - - if ( (U_EUROPEAN_NUMBER == aTextClass) && (IBMBIDI_NUMERAL_HINDI == value) ) { - mUnicodeUtils->HandleNumbers(aText, aTextLength, IBMBIDI_NUMERAL_HINDI); - } - else if (U_ARABIC_NUMBER == aTextClass) { - if (IBMBIDI_NUMERAL_ARABIC == value) { - mUnicodeUtils->HandleNumbers(aText, aTextLength, IBMBIDI_NUMERAL_ARABIC); - } - else { - mUnicodeUtils->HandleNumbers(aText, aTextLength, IBMBIDI_NUMERAL_HINDI); - } - } +// ahmed + //adjusted for correct numeral shaping + nsBidiOptions mBidioptions; + aPresContext->GetBidi(&mBidioptions); + if (IBMBIDI_NUMERAL_HINDI == mBidioptions.mnumeral) + mUnicodeUtils->HandleNumbers(aText,aTextLength,IBMBIDI_NUMERAL_HINDI); + else if (IBMBIDI_NUMERAL_ARABIC == mBidioptions.mnumeral) + mUnicodeUtils->HandleNumbers(aText,aTextLength,IBMBIDI_NUMERAL_ARABIC); + else if ( (IBMBIDI_NUMERAL_REGULAR == mBidioptions.mnumeral) || (IBMBIDI_NUMERAL_HINDICONTEXT == mBidioptions.mnumeral) ) { + if (U_EUROPEAN_NUMBER == aTextClass) + mUnicodeUtils->HandleNumbers(aText,aTextLength,IBMBIDI_NUMERAL_ARABIC); + else if (U_ARABIC_NUMBER == aTextClass) + mUnicodeUtils->HandleNumbers(aText,aTextLength,IBMBIDI_NUMERAL_HINDI); + } + PRInt32 newLen; PRUnichar* buffer = (PRUnichar*) mBuffer.GetUnicode(); // buffer can't be shorter than aText, since it was created from entire block diff --git a/mozilla/layout/base/src/nsDocument.cpp b/mozilla/layout/base/src/nsDocument.cpp index f354242ac3c..697516c3782 100644 --- a/mozilla/layout/base/src/nsDocument.cpp +++ b/mozilla/layout/base/src/nsDocument.cpp @@ -1122,112 +1122,6 @@ NS_IMETHODIMP nsDocument::RemoveCharSetObserver(nsIObserver* aObserver) #ifdef IBMBIDI -//***************************************************************************** -// nsDocument::SetDocumentBidi -//***************************************************************************** - -NS_IMETHODIMP -nsDocument::SetDocumentBidi(const PRUint8 member, const PRUint8 value) -{ - // ------------------------------------- - // IBM Bidi prefs - // ------------------------------------- - // IBMBIDI_TEXTDIRECTION (1,2) - // IBMBIDI_TEXTTYPE (1,2,3) - // IBMBIDI_CONTROLSTEXTMODE (1,2,3) - // IBMBIDI_CLIPBOARDTEXTMODE (1,2,3) - // IBMBIDI_NUMERAL (1,2,3,4) - // IBMBIDI_SUPPORTMODE (1,2,3) - // IBMBIDI_CHARSET (1,2) - switch (member) - { - case IBMBIDI_TEXTDIRECTION: - this->mBidi.mdirection = value; - break; - case IBMBIDI_TEXTTYPE: - this->mBidi.mtexttype = value; - break; - case IBMBIDI_CONTROLSTEXTMODE: - this->mBidi.mcontrolstextmode = value; - break; - case IBMBIDI_CLIPBOARDTEXTMODE: - this->mBidi.mclipboardtextmode = value; - break; - case IBMBIDI_NUMERAL: - this->mBidi.mnumeral = value; - break; - case IBMBIDI_SUPPORTMODE: - this->mBidi.msupport = value; - break; - case IBMBIDI_CHARSET: - this->mBidi.mcharacterset = value; - break; - } - - PRInt32 i; - PRInt32 ns = this->GetNumberOfShells(); - for (i = 0; i < ns; i++) - { - nsCOMPtr shell(dont_AddRef(this->GetShellAt(i))); - if (shell) - { - //nsCOMPtr documentViewer; - // Resize-reflow this time - //nsCOMPtr docViewer = do_QueryInterface(mRootContent);//documentViewer - //if (!docViewer) { return NS_ERROR_OUT_OF_MEMORY; } - nsCOMPtr presContext = nsnull; - //NS_ENSURE_SUCCESS(docViewer->GetPresContext(*(getter_AddRefs(presContext))), NS_ERROR_FAILURE); - NS_ENSURE_SUCCESS(shell->GetPresContext(getter_AddRefs(presContext)), NS_ERROR_FAILURE); - if (!presContext) { return NS_ERROR_OUT_OF_MEMORY; } - - presContext->SetDocumentBidi(member, value); - } - } - - return NS_OK; -} - -NS_IMETHODIMP -nsDocument::GetDocumentBidi(const PRUint8 member, PRUint8 * value) -{ - // ------------------------------------- - // IBM Bidi prefs - // ------------------------------------- - // IBMBIDI_TEXTDIRECTION (1,2) - // IBMBIDI_TEXTTYPE (1,2,3) - // IBMBIDI_CONTROLSTEXTMODE (1,2,3) - // IBMBIDI_CLIPBOARDTEXTMODE (1,2,3) - // IBMBIDI_NUMERAL (1,2,3,4) - // IBMBIDI_SUPPORTMODE (1,2,3) - // IBMBIDI_CHARSET (1,2) - switch (member) - { - case IBMBIDI_TEXTDIRECTION: - *value = this->mBidi.mdirection; - break; - case IBMBIDI_TEXTTYPE: - *value = this->mBidi.mtexttype; - break; - case IBMBIDI_CONTROLSTEXTMODE: - *value = this->mBidi.mcontrolstextmode; - break; - case IBMBIDI_CLIPBOARDTEXTMODE: - *value = this->mBidi.mclipboardtextmode; - break; - case IBMBIDI_NUMERAL: - *value = this->mBidi.mnumeral; - break; - case IBMBIDI_SUPPORTMODE: - *value = this->mBidi.msupport; - break; - case IBMBIDI_CHARSET: - *value = this->mBidi.mcharacterset; - break; - } - return NS_OK; -} - - NS_IMETHODIMP nsDocument::SetBidi(nsBidiOptions Source) { this->mBidi.mdirection = Source.mdirection; diff --git a/mozilla/layout/base/src/nsDocument.h b/mozilla/layout/base/src/nsDocument.h index d50f313250a..7efcb59750b 100644 --- a/mozilla/layout/base/src/nsDocument.h +++ b/mozilla/layout/base/src/nsDocument.h @@ -210,8 +210,6 @@ public: NS_IMETHOD RemoveCharSetObserver(nsIObserver* aObserver); #ifdef IBMBIDI - NS_IMETHOD SetDocumentBidi(const PRUint8 member, const PRUint8 value); - NS_IMETHOD GetDocumentBidi(const PRUint8 member, PRUint8 * value); NS_IMETHOD SetBidi(nsBidiOptions Source); NS_IMETHOD GetBidi(nsBidiOptions * Dist); /** diff --git a/mozilla/layout/base/src/nsPresContext.cpp b/mozilla/layout/base/src/nsPresContext.cpp index 987a5a13af9..2409d9e2dca 100644 --- a/mozilla/layout/base/src/nsPresContext.cpp +++ b/mozilla/layout/base/src/nsPresContext.cpp @@ -371,13 +371,12 @@ nsPresContext::SetShell(nsIPresShell* aShell) GetFontPreferences(); #ifdef IBMBIDI PRBool isVisual = PR_FALSE; - PRUint8 textType; - GetDocumentBidi(IBMBIDI_TEXTTYPE, &textType); - - if (IBMBIDI_TEXTTYPE_VISUAL == textType) { + nsBidiOptions mBidioptions; + GetBidi(&mBidioptions); + if (IBMBIDI_TEXTTYPE_VISUAL == mBidioptions.mtexttype) { isVisual = PR_TRUE; } - else if (textType != IBMBIDI_TEXTTYPE_LOGICAL) { + else if (mBidioptions.mtexttype != IBMBIDI_TEXTTYPE_LOGICAL) { // XXX shouldn't be hard-coded. if ( (charset.EqualsIgnoreCase("visual") ) || (charset.EqualsIgnoreCase("ibm-864") ) // Arabic @@ -1230,70 +1229,6 @@ nsPresContext::GetBidiUtils(nsBidiPresUtils** aBidiUtils) return rv; } -//***************************************************************************** -// nsPresContext::SetDocumentBidi -//***************************************************************************** - -NS_IMETHODIMP -nsPresContext::SetDocumentBidi(const PRUint8 member, const PRUint8 value) -{ - switch (member) - { - case IBMBIDI_TEXTDIRECTION: - this->mBidi.mdirection = value; - break; - case IBMBIDI_TEXTTYPE: - this->mBidi.mtexttype = value; - break; - case IBMBIDI_CONTROLSTEXTMODE: - this->mBidi.mcontrolstextmode = value; - break; - case IBMBIDI_CLIPBOARDTEXTMODE: - this->mBidi.mclipboardtextmode = value; - break; - case IBMBIDI_NUMERAL: - this->mBidi.mnumeral = value; - break; - case IBMBIDI_SUPPORTMODE: - this->mBidi.msupport = value; - break; - case IBMBIDI_CHARSET: - this->mBidi.mcharacterset = value; - break; - } - return NS_OK; -} - -NS_IMETHODIMP -nsPresContext::GetDocumentBidi(const PRUint8 member, PRUint8 * value) -{ - switch (member) - { - case IBMBIDI_TEXTDIRECTION: - *value = this->mBidi.mdirection; - break; - case IBMBIDI_TEXTTYPE: - *value = this->mBidi.mtexttype; - break; - case IBMBIDI_CONTROLSTEXTMODE: - *value = this->mBidi.mcontrolstextmode; - break; - case IBMBIDI_CLIPBOARDTEXTMODE: - *value = this->mBidi.mclipboardtextmode; - break; - case IBMBIDI_NUMERAL: - *value = this->mBidi.mnumeral; - break; - case IBMBIDI_SUPPORTMODE: - *value = this->mBidi.msupport; - break; - case IBMBIDI_CHARSET: - *value = this->mBidi.mcharacterset; - break; - } - return NS_OK; -} - NS_IMETHODIMP nsPresContext::SetBidi(nsBidiOptions Source) { this->mBidi.mdirection = Source.mdirection; diff --git a/mozilla/layout/base/src/nsPresContext.h b/mozilla/layout/base/src/nsPresContext.h index 55d1c90f4fa..3d225b04ebb 100644 --- a/mozilla/layout/base/src/nsPresContext.h +++ b/mozilla/layout/base/src/nsPresContext.h @@ -153,10 +153,6 @@ public: NS_IMETHOD IsVisualMode(PRBool& aIsVisual) const; NS_IMETHOD SetVisualMode(PRBool aIsVisual); NS_IMETHOD GetBidiUtils(nsBidiPresUtils** aBidiUtils); - - NS_IMETHOD SetDocumentBidi(const PRUint8 member, const PRUint8 value); - NS_IMETHOD GetDocumentBidi(const PRUint8 member, PRUint8 * value); - NS_IMETHOD SetBidi(nsBidiOptions Source); NS_IMETHOD GetBidi(nsBidiOptions * Dist); #endif // IBMBIDI diff --git a/mozilla/layout/base/src/nsStyleContext.cpp b/mozilla/layout/base/src/nsStyleContext.cpp index 9e9898d31fd..5fcec815dae 100644 --- a/mozilla/layout/base/src/nsStyleContext.cpp +++ b/mozilla/layout/base/src/nsStyleContext.cpp @@ -1211,17 +1211,10 @@ void StyleDisplayImpl::ResetFrom(const nsStyleDisplay* aParent, nsIPresContext* } else { #ifdef IBMBIDI - // ------------------------------ - // IBM Bidi prefs - // ------------------------------ - // IBMBIDI_TEXTDIRECTION - // -------- Valid Valus ------- - // IBMBIDI_TEXTDIRECTION_LTR - // IBMBIDI_TEXTDIRECTION_RTL - // - PRUint8 value; - aPresContext->GetDocumentBidi(IBMBIDI_TEXTDIRECTION, &value); - if (value == IBMBIDI_TEXTDIRECTION_RTL) mDirection = NS_STYLE_DIRECTION_RTL; + nsBidiOptions mBidioptions; + aPresContext->GetBidi(&mBidioptions); + if (mBidioptions.mdirection == IBMBIDI_TEXTDIRECTION_RTL) + mDirection = NS_STYLE_DIRECTION_RTL; else mDirection = NS_STYLE_DIRECTION_LTR; #else // ifndef IBMBIDI aPresContext->GetDefaultDirection(&mDirection); diff --git a/mozilla/layout/html/base/src/nsBlockFrame.cpp b/mozilla/layout/html/base/src/nsBlockFrame.cpp index e1157b38e15..dc2d29b7bd2 100644 --- a/mozilla/layout/html/base/src/nsBlockFrame.cpp +++ b/mozilla/layout/html/base/src/nsBlockFrame.cpp @@ -1635,7 +1635,6 @@ nsBlockFrame::Reflow(nsIPresContext* aPresContext, NS_BLOCK_MARGIN_ROOT & mState); if (eReflowReason_Resize != aReflowState.reason) { - RenumberLists(aPresContext); #ifdef IBMBIDI PRBool bidiEnabled; aPresContext->BidiEnabled(bidiEnabled); @@ -1652,6 +1651,7 @@ nsBlockFrame::Reflow(nsIPresContext* aPresContext, } } #endif // IBMBIDI + RenumberLists(aPresContext); } nsresult rv = NS_OK; diff --git a/mozilla/layout/html/base/src/nsBlockReflowState.cpp b/mozilla/layout/html/base/src/nsBlockReflowState.cpp index e1157b38e15..dc2d29b7bd2 100644 --- a/mozilla/layout/html/base/src/nsBlockReflowState.cpp +++ b/mozilla/layout/html/base/src/nsBlockReflowState.cpp @@ -1635,7 +1635,6 @@ nsBlockFrame::Reflow(nsIPresContext* aPresContext, NS_BLOCK_MARGIN_ROOT & mState); if (eReflowReason_Resize != aReflowState.reason) { - RenumberLists(aPresContext); #ifdef IBMBIDI PRBool bidiEnabled; aPresContext->BidiEnabled(bidiEnabled); @@ -1652,6 +1651,7 @@ nsBlockFrame::Reflow(nsIPresContext* aPresContext, } } #endif // IBMBIDI + RenumberLists(aPresContext); } nsresult rv = NS_OK; diff --git a/mozilla/layout/html/base/src/nsBlockReflowState.h b/mozilla/layout/html/base/src/nsBlockReflowState.h index e1157b38e15..dc2d29b7bd2 100644 --- a/mozilla/layout/html/base/src/nsBlockReflowState.h +++ b/mozilla/layout/html/base/src/nsBlockReflowState.h @@ -1635,7 +1635,6 @@ nsBlockFrame::Reflow(nsIPresContext* aPresContext, NS_BLOCK_MARGIN_ROOT & mState); if (eReflowReason_Resize != aReflowState.reason) { - RenumberLists(aPresContext); #ifdef IBMBIDI PRBool bidiEnabled; aPresContext->BidiEnabled(bidiEnabled); @@ -1652,6 +1651,7 @@ nsBlockFrame::Reflow(nsIPresContext* aPresContext, } } #endif // IBMBIDI + RenumberLists(aPresContext); } nsresult rv = NS_OK; diff --git a/mozilla/layout/html/base/src/nsPresShell.cpp b/mozilla/layout/html/base/src/nsPresShell.cpp index d835345eb90..1836bef884d 100644 --- a/mozilla/layout/html/base/src/nsPresShell.cpp +++ b/mozilla/layout/html/base/src/nsPresShell.cpp @@ -2909,14 +2909,11 @@ PresShell::DoCopy() #ifdef IBMBIDI_NOT rv = NS_OK; NS_WITH_SERVICE(nsIUBidiUtils, BidiEngine, kUBiDiUtilCID, &rv); - - PRUint8 value; - mPresContext->GetDocumentBiDi(IBMBIDI_CLIPBOARDTEXTMODE,&value); - if (value == IBMBIDI_CLIPBOARDTEXTMODE_LOGICAL) - { - nsString NewBuffer; + nsBidiOptions mBidioptions; + mPresContext->GetBidi(&mBidioptions); + if (mBidioptions.mclipboardtextmode == IBMBIDI_CLIPBOARDTEXTMODE_LOGICAL){ + nsString NewBuffer; PRUint32 txtSizeChange = 0; - BidiEngine->Conv_FE_06 (buffer, NewBuffer); buffer = NewBuffer; } diff --git a/mozilla/layout/html/document/src/nsHTMLDocument.cpp b/mozilla/layout/html/document/src/nsHTMLDocument.cpp index c89d57068b6..ffd3bcb32bf 100644 --- a/mozilla/layout/html/document/src/nsHTMLDocument.cpp +++ b/mozilla/layout/html/document/src/nsHTMLDocument.cpp @@ -805,17 +805,10 @@ nsHTMLDocument::StartDocumentLoad(const char* aCommand, #ifdef IBMBIDI // Check if 864 but in Implicit mode ! - PRUint8 TextType = 0; - // ------------------ - // Text Type - // ------------------ - // bidi.texttype - // 1 = charsettexttypeBidi * - // 2 = logicaltexttypeBidi - // 3 = visualtexttypeBidi - this->GetDocumentBidi(IBMBIDI_TEXTTYPE, &TextType); - if (TextType == IBMBIDI_TEXTTYPE_LOGICAL) - if (charset.RFind("864", PR_TRUE )) + nsBidiOptions mBidioptions; + this->GetBidi(&mBidioptions); + if (mBidioptions.mtexttype == IBMBIDI_TEXTTYPE_LOGICAL) + if (charset.RFind("864", PR_TRUE )) //charset = "IBM864i"; //nsAutoString ibm8641str("IBM864i"); charset.AssignWithConversion("IBM864i"); diff --git a/mozilla/rdf/content/src/nsXULDocument.cpp b/mozilla/rdf/content/src/nsXULDocument.cpp index 828092d2be1..8bd3d4e0ec0 100644 --- a/mozilla/rdf/content/src/nsXULDocument.cpp +++ b/mozilla/rdf/content/src/nsXULDocument.cpp @@ -878,18 +878,6 @@ nsXULDocument::SetDocumentCharacterSet(const nsString& aCharSetID) #ifdef IBMBIDI //In nsWebShell doc->SetBidi() is once casted as nsXULDocument, and nsDocument //looking into removing these.... -NS_IMETHODIMP -nsXULDocument::SetDocumentBidi(const PRUint8 member, const PRUint8 value) -{ - return NS_OK; -} - -NS_IMETHODIMP -nsXULDocument::GetDocumentBidi(const PRUint8 member, PRUint8 * value) -{ - return NS_OK; -} - NS_IMETHODIMP nsXULDocument::SetBidi(nsBidiOptions Source) { return NS_OK; diff --git a/mozilla/rdf/content/src/nsXULDocument.h b/mozilla/rdf/content/src/nsXULDocument.h index a899e0b98b5..f8dfc5af853 100644 --- a/mozilla/rdf/content/src/nsXULDocument.h +++ b/mozilla/rdf/content/src/nsXULDocument.h @@ -148,8 +148,6 @@ public: NS_IMETHOD SetDocumentCharacterSet(const nsString& aCharSetID); #ifdef IBMBIDI - NS_IMETHOD SetDocumentBidi(const PRUint8 member, const PRUint8 value); - NS_IMETHOD GetDocumentBidi(const PRUint8 member, PRUint8 * value); NS_IMETHOD SetBidi(nsBidiOptions Source); NS_IMETHOD GetBidi(nsBidiOptions * Dist); diff --git a/mozilla/webshell/public/nsIWebShell.h b/mozilla/webshell/public/nsIWebShell.h index 40a9dd225aa..13ccd95107f 100644 --- a/mozilla/webshell/public/nsIWebShell.h +++ b/mozilla/webshell/public/nsIWebShell.h @@ -153,8 +153,6 @@ public: NS_IMETHOD SetURL(const PRUnichar* aURL) = 0; #ifdef IBMBIDI - NS_IMETHOD SetDocumentBidi(const PRUint8 member, const PRUint8 value) = 0; - NS_IMETHOD GetDocumentBidi(const PRUint8 member, PRUint8 * value) = 0; NS_IMETHOD SetBidi(nsBidiOptions Source) = 0; NS_IMETHOD GetBidi(nsBidiOptions * Dist) = 0; #endif // IBMBIDI diff --git a/mozilla/xpfe/appshell/public/nsIWebShellWindow.h b/mozilla/xpfe/appshell/public/nsIWebShellWindow.h index 7f15d4efba6..45f740562f1 100644 --- a/mozilla/xpfe/appshell/public/nsIWebShellWindow.h +++ b/mozilla/xpfe/appshell/public/nsIWebShellWindow.h @@ -47,8 +47,6 @@ public: static const nsIID& GetIID() { static nsIID iid = NS_IWEBSHELL_WINDOW_IID; return iid; } #ifdef IBMBIDI - NS_IMETHOD SetDocumentBidi(const PRUint8 member, const PRUint8 value) = 0; - NS_IMETHOD GetDocumentBidi(const PRUint8 member, PRUint8 * value) = 0; NS_IMETHOD SetBidi(nsBidiOptions Source) = 0; NS_IMETHOD GetBidi(nsBidiOptions * Dist) = 0; #endif // IBMBIDI diff --git a/mozilla/xpfe/appshell/src/nsWebShellWindow.cpp b/mozilla/xpfe/appshell/src/nsWebShellWindow.cpp index 0af63e18949..481fcb752bd 100644 --- a/mozilla/xpfe/appshell/src/nsWebShellWindow.cpp +++ b/mozilla/xpfe/appshell/src/nsWebShellWindow.cpp @@ -349,98 +349,35 @@ nsresult nsWebShellWindow::Initialize(nsIXULWindow* aParent, NS_ENSURE_TRUE(webNav, NS_ERROR_FAILURE); NS_ENSURE_SUCCESS(webNav->LoadURI(urlString.GetUnicode()), NS_ERROR_FAILURE); } - -#ifdef IBMBIDI + #ifdef IBMBIDI PRInt8 prefInt; nsIPref *prefs; rv = nsServiceManager::GetService(kPrefCID, NS_GET_IID(nsIPref), (nsISupports **)&prefs); + //ahmed if (NS_SUCCEEDED(rv)) { - // Set the prefs in the outermost webshell. - // -------------------------------------------------- - // IBMBIDI - // -------------------------------------------------- - // Don't bather with IBMBIDI_* they R mapped to - // bidi.* Prefs in nsBidi.h - // - // ------------------------------------- - // IBM Bidi prefs - // ------------------------------------- - // IBMBIDI_TEXTDIRECTION (1,2) - // IBMBIDI_TEXTTYPE (1,2,3) - // IBMBIDI_CONTROLSTEXTMODE (1,2,3) - // IBMBIDI_CLIPBOARDTEXTMODE (1,2,3) - // IBMBIDI_NUMERAL (1,2,3,4) - // IBMBIDI_SUPPORTMODE (1,2,3) - // IBMBIDI_CHARSET (1,2) - - // ------------------ - // Text Direction - // ------------------ - // bidi.direction - // 1 = directionLTRBidi * - // 2 = directionRTLBidi - NS_SUCCEEDED(prefs->GetIntPref(IBMBIDI_TEXTDIRECTION_STR, ((PRInt32*)&prefInt))); - this->SetDocumentBidi(IBMBIDI_TEXTDIRECTION, prefInt); - // ------------------ - // Text Type - // ------------------ - // bidi.texttype - // 1 = charsettexttypeBidi * - // 2 = logicaltexttypeBidi - // 3 = visualtexttypeBidi + NS_SUCCEEDED(prefs->GetIntPref(IBMBIDI_TEXTDIRECTION_STR, ((PRInt32*)&prefInt))); + this->mBidi.mdirection= prefInt; NS_SUCCEEDED(prefs->GetIntPref(IBMBIDI_TEXTTYPE_STR, ((PRInt32*)&prefInt))); - this->SetDocumentBidi(IBMBIDI_TEXTTYPE, prefInt); - // ------------------ - // Controls Text Mode - // ------------------ - // bidi.controlstextmode - // 1 = logicalcontrolstextmodeBidiCmd - // 2 = visiualcontrolstextmodeBidi - // 3 = containercontrolstextmodeBidi * + this->mBidi.mtexttype= prefInt; NS_SUCCEEDED(prefs->GetIntPref(IBMBIDI_CONTROLSTEXTMODE_STR, ((PRInt32*)&prefInt))); - this->SetDocumentBidi(IBMBIDI_CONTROLSTEXTMODE, prefInt); - // ------------------ - // Clipboard Text Mode - // ------------------ - // bidi.clipboardtextmode - // 1 = logicalclipboardtextmodeBidi - // 2 = visiualclipboardtextmodeBidi - // 3 = sourceclipboardtextmodeBidi * + this->mBidi.mcontrolstextmode= prefInt; NS_SUCCEEDED(prefs->GetIntPref(IBMBIDI_CLIPBOARDTEXTMODE_STR, ((PRInt32*)&prefInt))); - this->SetDocumentBidi(IBMBIDI_CLIPBOARDTEXTMODE, prefInt); - // ------------------ - // Numeral Style - // ------------------ - // bidi.numeral - // 1 = regularcontextnumeralBidi * - // 2 = hindicontextnumeralBidi - // 3 = arabicnumeralBidi - // 4 = hindinumeralBidi - NS_SUCCEEDED(prefs->GetIntPref(IBMBIDI_NUMERAL_STR, ((PRInt32*)&prefInt))); - this->SetDocumentBidi(IBMBIDI_NUMERAL, prefInt); - // ------------------ - // Support Mode - // ------------------ - // bidi.support - // 1 = mozillaBidisupport * - // 2 = OsBidisupport - // 3 = disableBidisupport + this->mBidi.mclipboardtextmode= prefInt; + NS_SUCCEEDED(prefs->GetIntPref(IBMBIDI_NUMERAL_STR, ((PRInt32*)&prefInt))); + this->mBidi.mnumeral= prefInt; NS_SUCCEEDED(prefs->GetIntPref(IBMBIDI_SUPPORTMODE_STR, ((PRInt32*)&prefInt))); - this->SetDocumentBidi(IBMBIDI_SUPPORTMODE, prefInt); - // ------------------ - // Charset Mode - // ------------------ - // bidi.characterset - // 1 = doccharactersetBidi * - // 2 = defaultcharactersetBidi - NS_SUCCEEDED(prefs->GetIntPref(IBMBIDI_CHARSET_STR, ((PRInt32*)&prefInt))); - this->SetDocumentBidi(IBMBIDI_CHARSET, prefInt); + this->mBidi.msupport= prefInt; + NS_SUCCEEDED(prefs->GetIntPref(IBMBIDI_CHARSET_STR, ((PRInt32*)&prefInt))); + this->mBidi.mcharacterset= prefInt; + if (mWebShell != nsnull) + mWebShell->SetBidi(mBidi); + } #endif // IBMBIDI - + return rv; } @@ -652,93 +589,6 @@ nsWebShellWindow::HandleEvent(nsGUIEvent *aEvent) } #ifdef IBMBIDI -//***************************************************************************** -// nsWebShellWindow::SetDocumentBidi -//***************************************************************************** - -NS_IMETHODIMP -nsWebShellWindow::SetDocumentBidi(const PRUint8 member, const PRUint8 value) -{ - // ------------------------------------- - // IBM Bidi prefs - // ------------------------------------- - // IBMBIDI_TEXTDIRECTION (1,2) - // IBMBIDI_TEXTTYPE (1,2,3) - // IBMBIDI_CONTROLSTEXTMODE (1,2,3) - // IBMBIDI_CLIPBOARDTEXTMODE (1,2,3) - // IBMBIDI_NUMERAL (1,2,3,4) - // IBMBIDI_SUPPORTMODE (1,2,3) - // IBMBIDI_CHARSET (1,2) - switch (member) - { - case IBMBIDI_TEXTDIRECTION: - this->mBidi.mdirection = value; - break; - case IBMBIDI_TEXTTYPE: - this->mBidi.mtexttype = value; - break; - case IBMBIDI_CONTROLSTEXTMODE: - this->mBidi.mcontrolstextmode = value; - break; - case IBMBIDI_CLIPBOARDTEXTMODE: - this->mBidi.mclipboardtextmode = value; - break; - case IBMBIDI_NUMERAL: - this->mBidi.mnumeral = value; - break; - case IBMBIDI_SUPPORTMODE: - this->mBidi.msupport = value; - break; - case IBMBIDI_CHARSET: - this->mBidi.mcharacterset = value; - break; - } - if (mWebShell != nsnull) - mWebShell->SetDocumentBidi(member,value); - - return NS_OK; -} - -NS_IMETHODIMP -nsWebShellWindow::GetDocumentBidi(const PRUint8 member, PRUint8 * value) -{ -// ------------------------------------- -// IBM Bidi prefs -// ------------------------------------- -// IBMBIDI_TEXTDIRECTION (1,2) -// IBMBIDI_TEXTTYPE (1,2,3) -// IBMBIDI_CONTROLSTEXTMODE (1,2,3) -// IBMBIDI_CLIPBOARDTEXTMODE (1,2,3) -// IBMBIDI_NUMERAL (1,2,3,4) -// IBMBIDI_SUPPORTMODE (1,2,3) -// IBMBIDI_CHARSET (1,2) - switch (member) - { - case IBMBIDI_TEXTDIRECTION: - *value = this->mBidi.mdirection; - break; - case IBMBIDI_TEXTTYPE: - *value = this->mBidi.mtexttype; - break; - case IBMBIDI_CONTROLSTEXTMODE: - *value = this->mBidi.mcontrolstextmode; - break; - case IBMBIDI_CLIPBOARDTEXTMODE: - *value = this->mBidi.mclipboardtextmode; - break; - case IBMBIDI_NUMERAL: - *value = this->mBidi.mnumeral; - break; - case IBMBIDI_SUPPORTMODE: - *value = this->mBidi.msupport; - break; - case IBMBIDI_CHARSET: - *value = this->mBidi.mcharacterset; - break; - } - return NS_OK; -} - NS_IMETHODIMP nsWebShellWindow::SetBidi(nsBidiOptions Source) { this->mBidi.mdirection = Source.mdirection; diff --git a/mozilla/xpfe/appshell/src/nsWebShellWindow.h b/mozilla/xpfe/appshell/src/nsWebShellWindow.h index 9bc1b9d992e..53caaa018de 100644 --- a/mozilla/xpfe/appshell/src/nsWebShellWindow.h +++ b/mozilla/xpfe/appshell/src/nsWebShellWindow.h @@ -83,8 +83,6 @@ public: // nsIWebShellWindow methods... #ifdef IBMBIDI - NS_IMETHOD SetDocumentBidi(const PRUint8 member, const PRUint8 value); - NS_IMETHOD GetDocumentBidi(const PRUint8 member, PRUint8 * value); NS_IMETHOD SetBidi(nsBidiOptions Source); NS_IMETHOD GetBidi(nsBidiOptions * Dist); #endif // IBMBIDI