diff options
author | Philipp Lohmann [pl] <Philipp.Lohmann@Oracle.COM> | 2010-10-21 17:32:19 +0200 |
---|---|---|
committer | Philipp Lohmann [pl] <Philipp.Lohmann@Oracle.COM> | 2010-10-21 17:32:19 +0200 |
commit | 812b75c4c0a81f00362fa8232dc20fd6685d519d (patch) | |
tree | a72d7949b6923a726c20ce0ca0f18ab28fc57fd4 | |
parent | 3d341c8efb7aa4784b3341ef752c16e07df5d951 (diff) | |
parent | 40504a99ac475cbab3571a445040ca26b5527b3c (diff) |
rebase to DEV300_m90
84 files changed, 3904 insertions, 5089 deletions
diff --git a/starmath/inc/dialog.hxx b/starmath/inc/dialog.hxx index 75aee6fd2009..7724bc975d54 100644 --- a/starmath/inc/dialog.hxx +++ b/starmath/inc/dialog.hxx @@ -30,9 +30,7 @@ #include <vcl/image.hxx> #include <vcl/dialog.hxx> #include <vcl/fixed.hxx> -#ifndef _SV_BUTTON_HXX //autogen #include <vcl/button.hxx> -#endif #include <vcl/image.hxx> #include <sfx2/tabdlg.hxx> #include <vcl/combobox.hxx> @@ -403,8 +401,8 @@ public: { } - void SetChar(xub_Unicode aChar); - void SetFont(const Font &rFont); + void SetSymbol( const SmSym *pSym ); + void SetSymbol( sal_UCS4 cChar, const Font &rFont ); }; //////////////////////////////////////////////////////////////////////////////// diff --git a/starmath/inc/starmath.hrc b/starmath/inc/starmath.hrc index d73ea27a0d45..1b076fb7bf31 100644 --- a/starmath/inc/starmath.hrc +++ b/starmath/inc/starmath.hrc @@ -35,28 +35,28 @@ #define SID_PREVERR (SID_SMA_START + 2) #define SID_NEXTMARK (SID_SMA_START + 3) #define SID_PREVMARK (SID_SMA_START + 4) -#define SID_SYMBOLS_CATALOGUE (SID_SMA_START + 5) +#define SID_SYMBOLS_CATALOGUE (SID_SMA_START + 5) #define SID_PREFERENCES (SID_SMA_START + 6) #define SID_VIEW050 (SID_SMA_START + 7) #define SID_VIEW100 (SID_SMA_START + 8) #define SID_VIEW200 (SID_SMA_START + 9) -#define SID_ZOOMIN (SID_SMA_START + 10) +#define SID_ZOOMIN (SID_SMA_START + 10) #define SID_ZOOMOUT (SID_SMA_START + 11) -#define SID_DRAW (SID_SMA_START + 12) -#define SID_ADJUST (SID_SMA_START + 13) +#define SID_DRAW (SID_SMA_START + 12) +#define SID_ADJUST (SID_SMA_START + 13) #define SID_TOOLBOX (SID_SMA_START + 14) #define SID_FORMULACURSOR (SID_SMA_START + 15) -#define SID_FONT (SID_SMA_START + 50) +#define SID_FONT (SID_SMA_START + 50) #define SID_FONTSIZE (SID_SMA_START + 51) #define SID_DISTANCE (SID_SMA_START + 52) -#define SID_ALIGN (SID_SMA_START + 53) +#define SID_ALIGN (SID_SMA_START + 53) #define SID_AUTO_REDRAW (SID_SMA_START + 55) #define SID_SYMBOLS (SID_SMA_START + 56) // Muss erstmal wieder aufgenommen werden ! #define SID_TEXTMODE (SID_SMA_START + 57) -#define SID_INSERT_FORMULA (SID_SMA_START + 58) -#define SID_TEXT (SID_SMA_START + 100) -#define SID_GAPHIC_SM (SID_SMA_START + 101) +#define SID_IMPORT_FORMULA (SID_SMA_START + 58) +#define SID_TEXT (SID_SMA_START + 100) +#define SID_GAPHIC_SM (SID_SMA_START + 101) #define SID_FITINWINDOW (SID_SMA_START + 103) #define SID_INSERTTEXT (SID_SMA_START + 104) #define SID_INSERTCOMMAND (SID_SMA_START + 105) @@ -81,7 +81,7 @@ #define SID_CMDBOXWINDOW (SID_SMA_START + 122) #define SID_TOOLBOXWINDOW (SID_SMA_START + 123) #define SID_NO_RIGHT_SPACES (SID_SMA_START + 124) -#define SID_DUMMY (SID_SMA_START + 254) +#define SID_DUMMY (SID_SMA_START + 254) //#define GID_FORMEL (RID_GROUPS_OFFSET + 1) //#define GID_ERROR (RID_GROUPS_OFFSET + 2) @@ -107,7 +107,7 @@ #define RID_READSYMBOLERROR (RID_APP_START + 203) #define RID_NOMATHTYPEFACEWARNING (RID_APP_START + 204) #define RID_OBJECTNAME (RID_APP_START + 501) -#define RID_VIEWNAME (RID_APP_START + 502) + // free #define RID_UNDOEDITNAME (RID_APP_START + 503) #define RID_UNDOFORMATNAME (RID_APP_START + 504) #define RID_APPICO (RID_APP_START + 601) diff --git a/starmath/inc/symbol.hxx b/starmath/inc/symbol.hxx index 51e8ad0b8642..621538790300 100644 --- a/starmath/inc/symbol.hxx +++ b/starmath/inc/symbol.hxx @@ -82,24 +82,24 @@ class SmSym String m_aName; String m_aExportName; String m_aSetName; - sal_Unicode m_cChar; + sal_UCS4 m_cChar; BOOL m_bPredefined; BOOL m_bDocSymbol; public: SmSym(); - SmSym(const String& rName, const Font& rFont, sal_Unicode cChar, + SmSym(const String& rName, const Font& rFont, sal_UCS4 cChar, const String& rSet, BOOL bIsPredefined = FALSE); SmSym(const SmSym& rSymbol); SmSym& operator = (const SmSym& rSymbol); const Font& GetFace() const { return m_aFace; } - sal_Unicode GetCharacter() const { return m_cChar; } + sal_UCS4 GetCharacter() const { return m_cChar; } const String& GetName() const { return m_aName; } void SetFace( const Font& rFont ) { m_aFace = rFont; } - void SetCharacter( sal_Unicode cChar ) { m_cChar = cChar; } + void SetCharacter( sal_UCS4 cChar ) { m_cChar = cChar; } //! since the symbol name is also used as key in the map it should not be possible to change the name //! because ten the key would not be the same as its supposed copy here diff --git a/starmath/inc/toolbox.hxx b/starmath/inc/toolbox.hxx index 1881adc0f845..fcc1b046f2dd 100644 --- a/starmath/inc/toolbox.hxx +++ b/starmath/inc/toolbox.hxx @@ -30,12 +30,10 @@ #include <sfx2/basedlgs.hxx> #include <sfx2/childwin.hxx> #include <vcl/toolbox.hxx> + #include "smmod.hxx" #include "config.hxx" - -#include "dialog.hrc" - -#define NUM_TBX_CATEGORIES 9 +#include "toolbox.hrc" class SmToolBoxWindow : public SfxFloatingWindow { diff --git a/starmath/inc/utility.hxx b/starmath/inc/utility.hxx index e7db51152e25..d01c894af592 100644 --- a/starmath/inc/utility.hxx +++ b/starmath/inc/utility.hxx @@ -42,10 +42,6 @@ class String; #define C2S(cChar) String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM(cChar)) -///////////////////////////////////////////////////////////////// - -const ByteString ExportString( const String& rString ); -const String ImportString( const ByteString& rByteString ); ///////////////////////////////////////////////////////////////// diff --git a/starmath/prj/d.lst b/starmath/prj/d.lst index bc48875e81e6..78bae57498ea 100644 --- a/starmath/prj/d.lst +++ b/starmath/prj/d.lst @@ -19,3 +19,5 @@ mkdir: %_DEST%\inc%_EXT%\starmath ..\uiconfig\smath\menubar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\smath\menubar\*.xml ..\uiconfig\smath\toolbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\smath\toolbar\*.xml ..\uiconfig\smath\statusbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\smath\statusbar\*.xml +..\%__SRC%\misc\sm.component %_DEST%\xml%_EXT%\sm.component +..\%__SRC%\misc\smd.component %_DEST%\xml%_EXT%\smd.component diff --git a/starmath/qa/unoapi/knownissues.xcl b/starmath/qa/unoapi/knownissues.xcl index e11895ef3fe4..f82014a51a33 100644 --- a/starmath/qa/unoapi/knownissues.xcl +++ b/starmath/qa/unoapi/knownissues.xcl @@ -16,3 +16,6 @@ sm.SmGraphicAccessible::com::sun::star::accessibility::XAccessibleText ### i111220 ### sm.XMLMetaExporter::com::sun::star::document::XFilter + +### i112743 ### +sm.XMLSettingsExporter::com::sun::star::document::XFilter diff --git a/starmath/sdi/smath.sdi b/starmath/sdi/smath.sdi index f1f812e6c40b..4b9eaedac599 100644 --- a/starmath/sdi/smath.sdi +++ b/starmath/sdi/smath.sdi @@ -403,8 +403,8 @@ SfxVoidItem InsertConfigName SID_INSERTTEXT ] //-------------------------------------------------------------------------- -SfxBoolItem InsertFormula SID_INSERT_FORMULA -(SfxStringItem Name SID_INSERT_FORMULA,SfxStringItem Filter FN_PARAM_1) +SfxBoolItem ImportFormula SID_IMPORT_FORMULA +(SfxStringItem Name SID_IMPORT_FORMULA,SfxStringItem Filter FN_PARAM_1) [ /* flags: */ AutoUpdate = FALSE, diff --git a/starmath/sdi/smslots.sdi b/starmath/sdi/smslots.sdi index 9e27c7149502..69cecf25f308 100644 --- a/starmath/sdi/smslots.sdi +++ b/starmath/sdi/smslots.sdi @@ -275,12 +275,12 @@ interface FormulaView ExecMethod = Execute ; StateMethod = GetState ; ] - SID_INSERT_FORMULA //idlpp ole : no , status : no - [ - ExecMethod = Execute ; - StateMethod = GetState ; - Export = FALSE ; - ] + SID_IMPORT_FORMULA //idlpp ole : no , status : no + [ + ExecMethod = Execute ; + StateMethod = GetState ; + Export = FALSE ; + ] //idlpp kein Menueeintrag , also keine Texte SID_ATTR_ZOOM //idlpp ole : no , status : no [ diff --git a/starmath/source/cfgitem.cxx b/starmath/source/cfgitem.cxx index 43c0fbe27dd0..21ae6c0e63df 100644 --- a/starmath/source/cfgitem.cxx +++ b/starmath/source/cfgitem.cxx @@ -490,7 +490,7 @@ void SmMathConfig::ReadSymbol( SmSym &rSymbol, { const Any * pValue = aValues.getConstArray(); Font aFont; - sal_Unicode cChar = '\0'; + sal_UCS4 cChar = '\0'; String aSet; BOOL bPredefined = FALSE; @@ -500,7 +500,7 @@ void SmMathConfig::ReadSymbol( SmSym &rSymbol, BOOL bOK = TRUE; if (pValue->hasValue() && (*pValue >>= nTmp32)) - cChar = (sal_Unicode) nTmp32; + cChar = static_cast< sal_UCS4 >( nTmp32 ); else bOK = FALSE; ++pValue; @@ -624,7 +624,7 @@ void SmMathConfig::SetSymbols( const std::vector< SmSym > &rNewSymbols ) // Char pVal->Name = aNodeNameDelim; pVal->Name += *pName++; - pVal->Value <<= (INT32) rSymbol.GetCharacter(); + pVal->Value <<= static_cast< sal_UCS4 >( rSymbol.GetCharacter() ); pVal++; // Set pVal->Name = aNodeNameDelim; diff --git a/starmath/source/detreg.cxx b/starmath/source/detreg.cxx index c79813f994a7..ef4b261ce0b3 100644 --- a/starmath/source/detreg.cxx +++ b/starmath/source/detreg.cxx @@ -48,29 +48,6 @@ void SAL_CALL component_getImplementationEnvironment( *ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ; } -sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, - void* pRegistryKey ) -{ - Reference< ::registry::XRegistryKey > - xKey( reinterpret_cast< ::registry::XRegistryKey* >( pRegistryKey ) ) ; - - OUString aDelimiter( RTL_CONSTASCII_USTRINGPARAM("/") ); - OUString aUnoServices( RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ); - - // Eigentliche Implementierung und ihre Services registrieren - sal_Int32 i; - Reference< ::registry::XRegistryKey > xNewKey; - - xNewKey = xKey->createKey( aDelimiter + SmFilterDetect::impl_getStaticImplementationName() + - aUnoServices ); - - Sequence< OUString > aServices = SmFilterDetect::impl_getStaticSupportedServiceNames(); - for(i = 0; i < aServices.getLength(); i++ ) - xNewKey->createKey( aServices.getConstArray()[i] ); - - return sal_True; -} - void* SAL_CALL component_getFactory( const sal_Char* pImplementationName, void* pServiceManager, void* /*pRegistryKey*/ ) diff --git a/starmath/source/dialog.cxx b/starmath/source/dialog.cxx index 0dc58c8ed640..ee1de4b5dbbb 100644 --- a/starmath/source/dialog.cxx +++ b/starmath/source/dialog.cxx @@ -50,17 +50,18 @@ #include <svx/ucsubset.hxx> -#include "config.hxx" #include "dialog.hxx" -#ifndef _STARMATH_HRC #include "starmath.hrc" -#endif - +#include "config.hxx" #include "dialog.hrc" #include "smmod.hxx" #include "symbol.hxx" #include "view.hxx" #include "document.hxx" +#include "unomodel.hxx" + + +using ::rtl::OUString; //////////////////////////////////////// // @@ -1157,11 +1158,13 @@ void SmShowSymbolSet::Paint(const Rectangle&) SetTextColor( aTxtColor ); int nIV = i - v; - Size aSize(GetTextWidth(aSymbol.GetCharacter()), GetTextHeight()); + sal_UCS4 cChar = aSymbol.GetCharacter(); + String aText( OUString( &cChar, 1 ) ); + Size aSize( GetTextWidth( aText ), GetTextHeight()); DrawText(Point((nIV % nColumns) * nLen + (nLen - aSize.Width()) / 2, (nIV / nColumns) * nLen + (nLen - aSize.Height()) / 2), - aSymbol.GetCharacter()); + aText); } if (nSelectSymbol != SYMBOL_NONE) @@ -1333,7 +1336,7 @@ void SmShowSymbol::Paint(const Rectangle &rRect) Size aTextSize(GetTextWidth(rText), GetTextHeight()); DrawText(Point((GetOutputSize().Width() - aTextSize.Width()) / 2, - (GetOutputSize().Height() - aTextSize.Height()) / 2), rText); + (GetOutputSize().Height() * 7/10)), rText); } @@ -1350,17 +1353,14 @@ void SmShowSymbol::SetSymbol(const SmSym *pSymbol) { if (pSymbol) { - Color aTxtColor( GetTextColor() ); - Font aFont (pSymbol->GetFace()); aFont.SetSize(Size(0, GetOutputSize().Height() - GetOutputSize().Height() / 3)); - aFont.SetAlign(ALIGN_TOP); + aFont.SetAlign(ALIGN_BASELINE); SetFont(aFont); - // keep old text color (font may have different color set) - SetTextColor(aTxtColor); - - SetText(XubString(pSymbol->GetCharacter())); + sal_UCS4 cChar = pSymbol->GetCharacter(); + String aText( OUString( &cChar, 1 ) ); + SetText( aText ); } // 'Invalidate' fuellt den background mit der background-Farbe. @@ -1483,7 +1483,7 @@ IMPL_LINK( SmSymbolDialog, GetClickHdl, Button *, EMPTYARG pButton ) const SmSym *pSym = GetSymbol(); if (pSym) { - XubString aText ('%'); + String aText ('%'); aText += pSym->GetName(); aText += (sal_Unicode)' '; @@ -1644,42 +1644,43 @@ void SmShowChar::Paint(const Rectangle &rRect) { Control::Paint( rRect ); - XubString Text (GetText ()); - if (Text.Len() > 0) + OUString aText( GetText() ); + if (aText.getLength() > 0) { - Size aTextSize(GetTextWidth(Text), GetTextHeight()); +#if OSL_DEBUG_LEVEL > 1 + sal_Int32 nPos = 0; + sal_UCS4 cChar = aText.iterateCodePoints( &nPos ); + (void) cChar; +#endif + Size aTextSize(GetTextWidth(aText), GetTextHeight()); DrawText(Point((GetOutputSize().Width() - aTextSize.Width()) / 2, - (GetOutputSize().Height() - aTextSize.Height()) / 2), Text); + (GetOutputSize().Height() * 7/10)), aText); } } -void SmShowChar::SetChar(xub_Unicode aChar) +void SmShowChar::SetSymbol( const SmSym *pSym ) { - SetText(XubString(aChar)); - Invalidate(); + if (pSym) + SetSymbol( pSym->GetCharacter(), pSym->GetFace() ); } -void SmShowChar::SetFont(const Font &rFont) +void SmShowChar::SetSymbol( sal_UCS4 cChar, const Font &rFont ) { - Color aTxtColor( GetTextColor() ); + Font aFont( rFont ); + aFont.SetSize( Size(0, GetOutputSize().Height() - GetOutputSize().Height() / 3) ); + aFont.SetAlign(ALIGN_BASELINE); + SetFont(aFont); - Font aFont (rFont); - Size aSize (Size(0, GetOutputSize().Height() - GetOutputSize().Height() / 3)); - - aFont.SetSize(aSize); - aFont.SetAlign(ALIGN_TOP); - aFont.SetTransparent(TRUE); - Control::SetFont(aFont); - - // keep text color (new font may have different one) - SetTextColor( aTxtColor ); + String aText( OUString( &cChar, 1) ); + SetText( aText ); Invalidate(); } + //////////////////////////////////////////////////////////////////////////////// void SmSymDefineDialog::FillSymbols(ComboBox &rComboBox, BOOL bDeleteText) @@ -1866,7 +1867,7 @@ IMPL_LINK( SmSymDefineDialog, StyleChangeHdl, ComboBox *, EMPTYARG pComboBox ) IMPL_LINK( SmSymDefineDialog, CharHighlightHdl, Control *, EMPTYARG ) { - sal_UCS4 cChar = aCharsetDisplay.GetSelectCharacter(); + sal_UCS4 cChar = aCharsetDisplay.GetSelectCharacter(); #if OSL_DEBUG_LEVEL > 1 DBG_ASSERT( pSubsetMap, "SubsetMap missing" ); @@ -1880,9 +1881,18 @@ IMPL_LINK( SmSymDefineDialog, CharHighlightHdl, Control *, EMPTYARG ) aFontsSubsetLB.SetNoSelection(); } - // TO_DO_UCS4 (#i74049): get rid of cast without loosing UCS4 functionality - aSymbolDisplay.SetChar( sal::static_int_cast< sal_Unicode >(cChar) ); + aSymbolDisplay.SetSymbol( cChar, aCharsetDisplay.GetFont() ); + UpdateButtons(); + + // display Unicode position as symbol name while iterating over characters + const String aHex( String::CreateFromInt64( cChar, 16 ).ToUpperAscii() ); + const String aPattern( A2OU( aHex.Len() > 4 ? "Ux000000" : "Ux0000" ) ); + String aUnicodePos( aPattern.Copy( 0, aPattern.Len() - aHex.Len() ) ); + aUnicodePos += aHex; + aSymbols.SetText( aUnicodePos ); + aSymbolName.SetText( aUnicodePos ); + return 0; } @@ -1896,16 +1906,13 @@ IMPL_LINK( SmSymDefineDialog, AddClickHdl, Button *, EMPTYARG pButton ) #endif // add symbol - // TO_DO_UCS4 (#i74049): get rid of cast without loosing UCS4 functionality const SmSym aNewSymbol( aSymbols.GetText(), aCharsetDisplay.GetFont(), - sal::static_int_cast< sal_Unicode >( aCharsetDisplay.GetSelectCharacter() ), - aSymbolSets.GetText() ); + aCharsetDisplay.GetSelectCharacter(), aSymbolSets.GetText() ); //DBG_ASSERT( aSymbolMgrCopy.GetSymbolByName(aTmpSymbolName) == NULL, "symbol already exists" ); aSymbolMgrCopy.AddOrReplaceSymbol( aNewSymbol ); // update display of new symbol - aSymbolDisplay.SetChar( aNewSymbol.GetCharacter() ); - aSymbolDisplay.SetFont( aNewSymbol.GetFace() ); + aSymbolDisplay.SetSymbol( &aNewSymbol ); aSymbolName.SetText( aNewSymbol.GetName() ); aSymbolSetName.SetText( aNewSymbol.GetSymbolSetName() ); @@ -1932,10 +1939,8 @@ IMPL_LINK( SmSymDefineDialog, ChangeClickHdl, Button *, EMPTYARG pButton ) // get new Sybol to use //! get font from symbol-disp lay since charset-display does not keep //! the bold attribut. - // TO_DO_UCS4 (#i74049): get rid of cast without loosing UCS4 functionality const SmSym aNewSymbol( aSymbols.GetText(), aCharsetDisplay.GetFont(), - sal::static_int_cast< sal_Unicode >( aCharsetDisplay.GetSelectCharacter() ), - aSymbolSets.GetText() ); + aCharsetDisplay.GetSelectCharacter(), aSymbolSets.GetText() ); // remove old symbol if the name was changed then add new one // const bool bSetNameChanged = aOldSymbolSets.GetText() != aSymbolSets.GetText(); @@ -1949,8 +1954,7 @@ IMPL_LINK( SmSymDefineDialog, ChangeClickHdl, Button *, EMPTYARG pButton ) SetOrigSymbol(NULL, XubString()); // update display of new symbol - aSymbolDisplay.SetChar( aNewSymbol.GetCharacter() ); - aSymbolDisplay.SetFont( aNewSymbol.GetFace() ); + aSymbolDisplay.SetSymbol( &aNewSymbol ); aSymbolName.SetText( aNewSymbol.GetName() ); aSymbolSetName.SetText( aNewSymbol.GetSymbolSetName() ); @@ -2083,8 +2087,8 @@ SmSymDefineDialog::SmSymDefineDialog(Window * pParent, // auto completion is troublesome since that symbols character also gets automatically selected in the // display and if the user previously selected a character to define/redefine that one this is bad - aOldSymbols.EnableAutocomplete( FALSE, TRUE ); - aSymbols .EnableAutocomplete( FALSE, TRUE ); + aOldSymbols.EnableAutocomplete( FALSE, TRUE ); + aSymbols .EnableAutocomplete( FALSE, TRUE ); FillFonts(); if (aFonts.GetEntryCount() > 0) @@ -2270,8 +2274,7 @@ void SmSymDefineDialog::SetOrigSymbol(const SmSym *pSymbol, aSymName = pSymbol->GetName(); aSymSetName = rSymbolSetName; - aOldSymbolDisplay.SetFont(pSymbol->GetFace()); - aOldSymbolDisplay.SetChar(pSymbol->GetCharacter()); + aOldSymbolDisplay.SetSymbol( pSymbol ); } else { // loeschen des angezeigten Symbols @@ -2325,6 +2328,10 @@ BOOL SmSymDefineDialog::SelectSymbol(ComboBox &rComboBox, // das zugehoerige Zeichen auswaehlen SelectChar(pSymbol->GetCharacter()); + + // since SelectChar will also set the unicode point as text in the + // symbols box, we have to set the symbol name again to get that one displayed + aSymbols.SetText( pSymbol->GetName() ); } } @@ -2381,7 +2388,7 @@ void SmSymDefineDialog::SetFont(const XubString &rFontName, const XubString &rSt aFontsSubsetLB.SetEntryData( nPos, (void *) pSubset ); // subset must live at least as long as the selected font !!! if( bFirst ) - aFontsSubsetLB.SelectEntryPos( nPos ); + aFontsSubsetLB.SelectEntryPos( nPos ); bFirst = false; } if( bFirst ) @@ -2401,7 +2408,11 @@ BOOL SmSymDefineDialog::SelectFont(const XubString &rFontName, BOOL bApplyFont) if (aStyles.GetEntryCount() > 0) SelectStyle(aStyles.GetEntry(0)); if (bApplyFont) + { SetFont(aFonts.GetSelectEntry(), aStyles.GetText()); + // update preview to use new font + aSymbolDisplay.SetSymbol( aCharsetDisplay.GetSelectCharacter(), aCharsetDisplay.GetFont() ); + } bRet = TRUE; } else @@ -2428,7 +2439,11 @@ BOOL SmSymDefineDialog::SelectStyle(const XubString &rStyleName, BOOL bApplyFont { aStyles.SetText(aStyles.GetEntry(nPos)); if (bApplyFont) + { SetFont(aFonts.GetSelectEntry(), aStyles.GetText()); + // update preview to use new font + aSymbolDisplay.SetSymbol( aCharsetDisplay.GetSelectCharacter(), aCharsetDisplay.GetFont() ); + } bRet = TRUE; } else @@ -2443,7 +2458,7 @@ BOOL SmSymDefineDialog::SelectStyle(const XubString &rStyleName, BOOL bApplyFont void SmSymDefineDialog::SelectChar(xub_Unicode cChar) { aCharsetDisplay.SelectCharacter( cChar ); - aSymbolDisplay.SetChar( cChar ); + aSymbolDisplay.SetSymbol( cChar, aCharsetDisplay.GetFont() ); UpdateButtons(); } diff --git a/starmath/source/makefile.mk b/starmath/source/makefile.mk index a409e55d2462..0e038bb9c78d 100644 --- a/starmath/source/makefile.mk +++ b/starmath/source/makefile.mk @@ -47,6 +47,7 @@ SMDLL=TRUE SRS2NAME =smres SRC2FILES = smres.src \ symbol.src \ + toolbox.src \ commands.src SLO1FILES = \ diff --git a/starmath/source/node.cxx b/starmath/source/node.cxx index b986a046b205..d8e2586e151e 100755 --- a/starmath/source/node.cxx +++ b/starmath/source/node.cxx @@ -48,10 +48,15 @@ #include <math.h> #include <float.h> + +#define APPEND(str,ascii) str.AppendAscii(RTL_CONSTASCII_STRINGPARAM(ascii)) + // define this to draw rectangles for debugging //#define SM_RECT_DEBUG -#define APPEND(str,ascii) str.AppendAscii(RTL_CONSTASCII_STRINGPARAM(ascii)) + +using ::rtl::OUString; + //////////////////////////////////////// // SmTmpDevice @@ -2471,6 +2476,12 @@ void SmTextNode::Draw(OutputDevice &rDev, const Point& rPosition) const // auf Pixelkoordinaten runden aPos = rDev.PixelToLogic( rDev.LogicToPixel(aPos) ); +#if OSL_DEBUG_LEVEL > 1 + sal_Int32 nPos = 0; + sal_UCS4 cChar = OUString( aText ).iterateCodePoints( &nPos ); + (void) cChar; +#endif + rDev.DrawStretchText(aPos, GetWidth(), aText); #ifdef SM_RECT_DEBUG @@ -2851,7 +2862,9 @@ void SmSpecialNode::Prepare(const SmFormat &rFormat, const SmDocShell &rDocShell String aName( GetToken().aText.Copy(1) ); if (NULL != (pSym = pp->GetSymbolManager().GetSymbolByName( aName ))) { - SetText( pSym->GetCharacter() ); + sal_UCS4 cChar = pSym->GetCharacter(); + String aTmp( OUString( &cChar, 1 ) ); + SetText( aTmp ); GetFont() = pSym->GetFace(); } else diff --git a/starmath/source/register.cxx b/starmath/source/register.cxx index 0983d0a86ee4..a7e7ea2110a6 100644 --- a/starmath/source/register.cxx +++ b/starmath/source/register.cxx @@ -118,92 +118,6 @@ void SAL_CALL component_getImplementationEnvironment( *ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ; } -sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, - void* pRegistryKey ) -{ - Reference< registry::XRegistryKey > - xKey( reinterpret_cast< registry::XRegistryKey* >( pRegistryKey ) ) ; - - OUString aDelimiter( RTL_CONSTASCII_USTRINGPARAM("/") ); - OUString aUnoServices( RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ); - - // Eigentliche Implementierung und ihre Services registrieren - sal_Int32 i; - Reference< registry::XRegistryKey > xNewKey; - - xNewKey = xKey->createKey( aDelimiter + SmXMLImport_getImplementationName() + - aUnoServices ); - - Sequence< OUString > aServices = SmXMLImport_getSupportedServiceNames(); - for(i = 0; i < aServices.getLength(); i++ ) - xNewKey->createKey( aServices.getConstArray()[i] ); - - xNewKey = xKey->createKey( aDelimiter + SmXMLExport_getImplementationName() + - aUnoServices ); - - aServices = SmXMLExport_getSupportedServiceNames(); - for(i = 0; i < aServices.getLength(); i++ ) - xNewKey->createKey( aServices.getConstArray()[i] ); - - xNewKey = xKey->createKey( aDelimiter + SmXMLImportMeta_getImplementationName() + - aUnoServices ); - - aServices = SmXMLImportMeta_getSupportedServiceNames(); - for(i = 0; i < aServices.getLength(); i++ ) - xNewKey->createKey( aServices.getConstArray()[i] ); - - xNewKey = xKey->createKey( aDelimiter + SmXMLExportMetaOOO_getImplementationName() + - aUnoServices ); - - aServices = SmXMLExportMetaOOO_getSupportedServiceNames(); - for(i = 0; i < aServices.getLength(); i++ ) - xNewKey->createKey( aServices.getConstArray()[i] ); - - xNewKey = xKey->createKey( aDelimiter + SmXMLExportMeta_getImplementationName() + - aUnoServices ); - - aServices = SmXMLExportMeta_getSupportedServiceNames(); - for(i = 0; i < aServices.getLength(); i++ ) - xNewKey->createKey( aServices.getConstArray()[i] ); - - xNewKey = xKey->createKey( aDelimiter + SmXMLImportSettings_getImplementationName() + - aUnoServices ); - - aServices = SmXMLImportSettings_getSupportedServiceNames(); - for(i = 0; i < aServices.getLength(); i++ ) - xNewKey->createKey( aServices.getConstArray()[i] ); - - xNewKey = xKey->createKey( aDelimiter + SmXMLExportSettingsOOO_getImplementationName() + - aUnoServices ); - - aServices = SmXMLExportSettingsOOO_getSupportedServiceNames(); - for(i = 0; i < aServices.getLength(); i++ ) - xNewKey->createKey( aServices.getConstArray()[i] ); - - xNewKey = xKey->createKey( aDelimiter + SmXMLExportSettings_getImplementationName() + - aUnoServices ); - - aServices = SmXMLExportSettings_getSupportedServiceNames(); - for(i = 0; i < aServices.getLength(); i++ ) - xNewKey->createKey( aServices.getConstArray()[i] ); - - xNewKey = xKey->createKey( aDelimiter + SmXMLExportContent_getImplementationName() + - aUnoServices ); - - aServices = SmXMLExportContent_getSupportedServiceNames(); - for(i = 0; i < aServices.getLength(); i++ ) - xNewKey->createKey( aServices.getConstArray()[i] ); - - xNewKey = xKey->createKey( aDelimiter + SmDocument_getImplementationName() + - aUnoServices ); - - aServices = SmDocument_getSupportedServiceNames(); - for(i = 0; i < aServices.getLength(); i++ ) - xNewKey->createKey( aServices.getConstArray()[i] ); - - return sal_True; -} - void* SAL_CALL component_getFactory( const sal_Char* pImplementationName, void* pServiceManager, void* /*pRegistryKey*/ ) diff --git a/starmath/source/smres.src b/starmath/source/smres.src index 7d3525bd2a29..b02ad4a0cc6e 100755 --- a/starmath/source/smres.src +++ b/starmath/source/smres.src @@ -30,7 +30,6 @@ #include <svx/globlmn.hrc> #include "starmath.hrc" #include "dialog.hrc" -#include "toolbox.hrc" #define IMAGE_STDBTN_COLOR Color { Red = 0xff00; Green = 0x0000; Blue = 0xff00; } #define IMAGE_STDBTN_COLOR_HC IMAGE_STDBTN_COLOR @@ -1147,7 +1146,7 @@ ModalDialog RID_SYMDEFINEDIALOG ComboBox 1 { Pos = MAP_APPFONT ( 59 , 6 ) ; - Size = MAP_APPFONT ( 80 , 50 ) ; + Size = MAP_APPFONT ( 80 , 100 ) ; TabStop = TRUE ; DropDown = TRUE ; Sort = TRUE ; @@ -1162,7 +1161,7 @@ ModalDialog RID_SYMDEFINEDIALOG ComboBox 2 { Pos = MAP_APPFONT ( 210 , 6 ) ; - Size = MAP_APPFONT ( 80 , 50 ) ; + Size = MAP_APPFONT ( 80 , 100 ) ; TabStop = TRUE ; DropDown = TRUE ; Sort = TRUE ; @@ -1186,7 +1185,7 @@ ModalDialog RID_SYMDEFINEDIALOG ComboBox 4 { Pos = MAP_APPFONT ( 80 , 115 ) ; - Size = MAP_APPFONT ( 100 , 80 ) ; + Size = MAP_APPFONT ( 100 , 100 ) ; TabStop = TRUE ; DropDown = TRUE ; Sort = TRUE ; @@ -1201,7 +1200,7 @@ ModalDialog RID_SYMDEFINEDIALOG ComboBox 5 { Pos = MAP_APPFONT ( 80 , 130 ) ; - Size = MAP_APPFONT ( 100 , 50 ) ; + Size = MAP_APPFONT ( 100 , 100 ) ; TabStop = TRUE ; DropDown = TRUE ; Sort = TRUE ; @@ -1217,7 +1216,7 @@ ModalDialog RID_SYMDEFINEDIALOG { Border = TRUE ; Pos = MAP_APPFONT ( 80 , 145 ) ; - Size = MAP_APPFONT ( 100 , 50 ) ; + Size = MAP_APPFONT ( 100 , 100 ) ; TabStop = TRUE ; Sort = TRUE ; DropDown = TRUE ; @@ -1233,7 +1232,7 @@ ModalDialog RID_SYMDEFINEDIALOG { Border = TRUE ; Pos = MAP_APPFONT ( 80 , 160 ) ; - Size = MAP_APPFONT ( 100 , 50 ) ; + Size = MAP_APPFONT ( 100 , 100 ) ; TabStop = TRUE ; Sort = FALSE ; DropDown = TRUE ; @@ -1249,7 +1248,7 @@ ModalDialog RID_SYMDEFINEDIALOG { Border = TRUE; Pos = MAP_APPFONT ( 80 , 175 ) ; - Size = MAP_APPFONT ( 100 , 50 ) ; + Size = MAP_APPFONT ( 100 , 100 ) ; TabStop = TRUE ; DropDown = TRUE ; Sort = FALSE ; @@ -1379,10 +1378,6 @@ String RID_OBJECTNAME { Text = "SMath3" ; }; -String RID_VIEWNAME -{ - Text = "StarMath" ; -}; String RID_UNDOEDITNAME { Text = "Edit" ; @@ -1546,1420 +1541,6 @@ Menu RID_FONTMENU }; }; -FloatingWindow RID_TOOLBOXWINDOW -{ - HelpId = HID_SMA_OPERATOR_WIN ; - Border = TRUE ; - Moveable = TRUE ; - Closeable = TRUE ; - Hide = TRUE ; - OutputSize = TRUE ; - SVLook = TRUE ; - Size = MAP_APPFONT ( 0 , 0 ) ; - Text [ en-US ] = "Elements" ; - - ToolBox 1 - { - // unary/binary operators - HelpId = HID_SMA_UNBINOPS_TBX ; - Pos = MAP_APPFONT ( 0 , 45 ) ; - Size = MAP_APPFONT ( 65 , 95 ) ; - SVLook = TRUE ; - Hide = TRUE ; - LineCount = 4 ; - - ItemList = - { - ToolBoxItem - { - Identifier = RID_PLUSX ; - HelpId = HID_SMA_PLUSX ; - Text [ en-US ] = "+ Sign" ; - }; - ToolBoxItem - { - Identifier = RID_MINUSX ; - HelpId = HID_SMA_MINUSX ; - Text [ en-US ] = "- Sign" ; - }; - ToolBoxItem - { - Identifier = RID_PLUSMINUSX ; - HelpId = HID_SMA_PLUSMINUSX ; - Text [ en-US ] = "+- Sign" ; - }; - ToolBoxItem - { - Identifier = RID_MINUSPLUSX ; - HelpId = HID_SMA_MINUSPLUSX ; - Text [ en-US ] = "-+ Sign" ; - }; - ToolBoxItem - { - Identifier = RID_NEGX ; - HelpId = HID_SMA_NEGX ; - Text [ en-US ] = "Boolean NOT" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_XPLUSY ; - HelpId = HID_SMA_XPLUSY ; - Text [ en-US ] = "Addition +" ; - }; - ToolBoxItem - { - Identifier = RID_XCDOTY ; - HelpId = HID_SMA_XCDOTY ; - Text [ en-US ] = "Multiplication (Dot )" ; - }; - ToolBoxItem - { - Identifier = RID_XTIMESY ; - HelpId = HID_SMA_XTIMESY ; - Text [ en-US ] = "Multiplication (x)" ; - }; - ToolBoxItem - { - Identifier = RID_XSYMTIMESY ; - HelpId = HID_SMA_XSYMTIMESY ; - Text [ en-US ] = "Multiplication (*)" ; - }; - ToolBoxItem - { - Identifier = RID_XANDY ; - HelpId = HID_SMA_XANDY ; - Text [ en-US ] = "Boolean AND" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_XMINUSY ; - HelpId = HID_SMA_XMINUSY ; - Text [ en-US ] = "Subtraction -" ; - }; - ToolBoxItem - { - Identifier = RID_XOVERY ; - HelpId = HID_SMA_XOVERY ; - Text [ en-US ] = "Division (Fraction)" ; - }; - ToolBoxItem - { - Identifier = RID_XDIVY ; - HelpId = HID_SMA_XDIVY ; - Text [ en-US ] = "Division (÷)" ; - }; - ToolBoxItem - { - Identifier = RID_XSYMDIVIDEY ; - HelpId = HID_SMA_XSYMDIVIDEY ; - Text [ en-US ] = "Division (Slash)" ; - }; - ToolBoxItem - { - Identifier = RID_XORY ; - HelpId = HID_SMA_XORY ; - Text [ en-US ] = "Boolean OR" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_XCIRCY ; - HelpId = HID_SMA_XCIRCY ; - Text [ en-US ] = "Concatenate"; - }; - }; - }; - ToolBox 2 - { - // relations - HelpId = HID_SMA_RELATIONS_TBX ; - Pos = MAP_APPFONT ( 0 , 45 ) ; - Size = MAP_APPFONT ( 65 , 95 ) ; - SVLook = TRUE ; - Hide = TRUE ; - LineCount = 5 ; - ItemList = - { - ToolBoxItem - { - Identifier = RID_XEQY ; - HelpId = HID_SMA_XEQY ; - Text [ en-US ] = "Is Equal" ; - }; - ToolBoxItem - { - Identifier = RID_XNEQY ; - HelpId = HID_SMA_XNEQY ; - Text [ en-US ] = "Is Not Equal" ; - }; - ToolBoxItem - { - Identifier = RID_XAPPROXY ; - HelpId = HID_SMA_XAPPROXY ; - Text [ en-US ] = "Is Approximately Equal" ; - }; - ToolBoxItem - { - Identifier = RID_XDIVIDESY ; - HelpId = HID_SMA_XDIVIDESY ; - Text [ en-US ] = "Divides"; - }; - ToolBoxItem - { - Identifier = RID_XNDIVIDESY ; - HelpId = HID_SMA_XNDIVIDESY ; - Text [ en-US ] = "Does Not Divide"; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_XLTY ; - HelpId = HID_SMA_XLTY ; - Text [ en-US ] = "Is Less Than" ; - }; - ToolBoxItem - { - Identifier = RID_XGTY ; - HelpId = HID_SMA_XGTY ; - Text [ en-US ] = "Is Greater Than" ; - }; - ToolBoxItem - { - Identifier = RID_XSIMEQY ; - HelpId = HID_SMA_XSIMEQY ; - /* ### ACHTUNG: Neuer Text in Resource? ist �hnlich oder gleich : ist �hnlich oder glech */ - Text [ en-US ] = "Is Similar Or Equal" ; - }; - ToolBoxItem - { - Identifier = RID_XPARALLELY ; - HelpId = HID_SMA_XPARALLELY ; - Text [ en-US ] = "Is Parallel To" ; - }; - ToolBoxItem - { - Identifier = RID_XORTHOY ; - HelpId = HID_SMA_XORTHOY ; - Text [ en-US ] = "Is Orthogonal To" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_XLESLANTY ; - HelpId = HID_SMA_XLESLANTY ; - Text [ en-US ] = "Is Less Than Or Equal To" ; - }; - ToolBoxItem - { - Identifier = RID_XGESLANTY ; - HelpId = HID_SMA_XGESLANTY ; - Text [ en-US ] = "Is Greater Than Or Equal To" ; - }; - ToolBoxItem - { - Identifier = RID_XSIMY ; - HelpId = HID_SMA_XSIMY ; - Text [ en-US ] = "Is Similar To" ; - }; - ToolBoxItem - { - Identifier = RID_XEQUIVY ; - HelpId = HID_SMA_XEQUIVY ; - Text [ en-US ] = "Is Congruent To" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SPACE ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_XLEY ; - HelpId = HID_SMA_XLEY ; - Text [ en-US ] = "Is Less Than Or Equal To" ; - }; - ToolBoxItem - { - Identifier = RID_XGEY ; - HelpId = HID_SMA_XGEY ; - Text [ en-US ] = "Is Greater Than Or Equal To" ; - }; - ToolBoxItem - { - Identifier = RID_XPROPY ; - HelpId = HID_SMA_XPROPY ; - Text [ en-US ] = "Is Proportional To" ; - }; - ToolBoxItem - { - Identifier = RID_XTOWARDY ; - HelpId = HID_SMA_XTOWARDY ; - Text [ en-US ] = "Toward" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SPACE ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_DLARROW ; - HelpId = HID_SMA_DLARROW ; - Text [ en-US ] = "Double Arrow Left"; - }; - ToolBoxItem - { - Identifier = RID_DLRARROW ; - HelpId = HID_SMA_DLRARROW ; - Text [ en-US ] = "Double Arrow Left And Right"; - }; - ToolBoxItem - { - Identifier = RID_DRARROW ; - HelpId = HID_SMA_DRARROW ; - Text [ en-US ] = "Double Arrow Right"; - }; - }; - }; - ToolBox 3 - { - // set operations - HelpId = HID_SMA_SETOPERATIONS_TBX ; - Pos = MAP_APPFONT ( 0 , 45 ) ; - Size = MAP_APPFONT ( 65 , 95 ) ; - SVLook = TRUE ; - Hide = TRUE ; - LineCount = 5 ; - ItemList = - { - ToolBoxItem - { - Identifier = RID_XINY ; - HelpId = HID_SMA_XINY ; - Text [ en-US ] = "Is In" ; - }; - ToolBoxItem - { - Identifier = RID_XNOTINY ; - HelpId = HID_SMA_XNOTINY ; - Text [ en-US ] = "Is Not In" ; - }; - ToolBoxItem - { - Identifier = RID_XOWNSY ; - HelpId = HID_SMA_XOWNSY ; - Text [ en-US ] = "Owns" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SPACE ; - }; - ToolBoxItem - { - Identifier = RID_EMPTYSET ; - HelpId = HID_SMA_EMPTYSET ; - Text [ en-US ] = "Empty Set"; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_XINTERSECTIONY ; - HelpId = HID_SMA_XINTERSECTIONY ; - Text [ en-US ] = "Intersection" ; - }; - ToolBoxItem - { - Identifier = RID_XUNIONY ; - HelpId = HID_SMA_XUNIONY ; - Text [ en-US ] = "Union" ; - }; - ToolBoxItem - { - Identifier = RID_XSETMINUSY ; - HelpId = HID_SMA_XSETMINUSY ; - Text [ en-US ] = "Difference" ; - }; - ToolBoxItem - { - Identifier = RID_XSLASHY ; - HelpId = HID_SMA_XSLASHY ; - Text [ en-US ] = "Quotient Set" ; - }; - ToolBoxItem - { - Identifier = RID_ALEPH ; - HelpId = HID_SMA_ALEPH ; - Text [ en-US ] = "Aleph"; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_XSUBSETY ; - HelpId = HID_SMA_XSUBSETY ; - Text [ en-US ] = "Subset" ; - }; - ToolBoxItem - { - Identifier = RID_XSUBSETEQY ; - HelpId = HID_SMA_XSUBSETEQY ; - Text [ en-US ] = "Subset Or Equal To" ; - }; - ToolBoxItem - { - Identifier = RID_XSUPSETY ; - HelpId = HID_SMA_XSUPSETY ; - Text [ en-US ] = "Superset" ; - }; - ToolBoxItem - { - Identifier = RID_XSUPSETEQY ; - HelpId = HID_SMA_XSUPSETEQY ; - Text [ en-US ] = "Superset Or Equal To" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SPACE ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_XNSUBSETY ; - HelpId = HID_SMA_XNSUBSETY ; - Text [ en-US ] = "Not Subset" ; - }; - ToolBoxItem - { - Identifier = RID_XNSUBSETEQY ; - HelpId = HID_SMA_XNSUBSETEQY ; - Text [ en-US ] = "Not Subset Or Equal" ; - }; - ToolBoxItem - { - Identifier = RID_XNSUPSETY ; - HelpId = HID_SMA_XNSUPSETY ; - Text [ en-US ] = "Not Superset" ; - }; - ToolBoxItem - { - Identifier = RID_XNSUPSETEQY ; - HelpId = HID_SMA_XNSUPSETEQY ; - Text [ en-US ] = "Not Superset Or Equal" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SPACE ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_SETN ; - HelpId = HID_SMA_SETN ; - Text [ en-US ] = "Natural Numbers Set"; - }; - ToolBoxItem - { - Identifier = RID_SETZ ; - HelpId = HID_SMA_SETZ ; - Text [ en-US ] = "Integers Set"; - }; - ToolBoxItem - { - Identifier = RID_SETQ ; - HelpId = HID_SMA_SETQ ; - Text [ en-US ] = "Set of Rational Numbers"; - }; - ToolBoxItem - { - Identifier = RID_SETR ; - HelpId = HID_SMA_SETR ; - Text [ en-US ] = "Real Numbers Set"; - }; - ToolBoxItem - { - Identifier = RID_SETC ; - HelpId = HID_SMA_SETC ; - Text [ en-US ] = "Complex Numbers Set"; - }; - }; - }; - ToolBox 4 - { - // functions - HelpId = HID_SMA_FUNCTIONS_TBX ; - Pos = MAP_APPFONT ( 0 , 45 ) ; - Size = MAP_APPFONT ( 65 , 95 ) ; - SVLook = TRUE ; - Hide = TRUE ; - LineCount = 5 ; - ItemList = - { - ToolBoxItem - { - Identifier = RID_EX ; - HelpId = HID_SMA_EX ; - Text [ en-US ] = "Exponential Function" ; - }; - ToolBoxItem - { - Identifier = RID_LNX ; - HelpId = HID_SMA_LNX ; - Text [ en-US ] = "Natural Logarithm" ; - }; - ToolBoxItem - { - Identifier = RID_EXPX ; - HelpId = HID_SMA_EXPX ; - Text [ en-US ] = "Exponential Function" ; - }; - ToolBoxItem - { - Identifier = RID_LOGX ; - HelpId = HID_SMA_LOGX ; - Text [ en-US ] = "Logarithm" ; - }; - ToolBoxItem - { - Identifier = RID_RSUPX ; - HelpId = HID_SMA_RSUPX ; - Text [ en-US ] = "Power"; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_SINX ; - HelpId = HID_SMA_SINX ; - Text [ en-US ] = "Sine" ; - }; - ToolBoxItem - { - Identifier = RID_COSX ; - HelpId = HID_SMA_COSX ; - Text [ en-US ] = "Cosine" ; - }; - ToolBoxItem - { - Identifier = RID_TANX ; - HelpId = HID_SMA_TANX ; - Text [ en-US ] = "Tangent" ; - }; - ToolBoxItem - { - Identifier = RID_COTX ; - HelpId = HID_SMA_COTX ; - Text [ en-US ] = "Cotangent" ; - }; - ToolBoxItem - { - Identifier = RID_SQRTX ; - HelpId = HID_SMA_SQRTX ; - Text [ en-US ] = "Square Root" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_ARCSINX ; - HelpId = HID_SMA_ARCSINX ; - Text [ en-US ] = "Arcsine" ; - }; - ToolBoxItem - { - Identifier = RID_ARCCOSX ; - HelpId = HID_SMA_ARCCOSX ; - Text [ en-US ] = "Arccosine" ; - }; - ToolBoxItem - { - Identifier = RID_ARCTANX ; - HelpId = HID_SMA_ARCTANX ; - Text [ en-US ] = "Arctangent" ; - }; - ToolBoxItem - { - Identifier = RID_ARCCOTX ; - HelpId = HID_SMA_ARCCOTX ; - Text [ en-US ] = "Arccotangent" ; - }; - ToolBoxItem - { - Identifier = RID_NROOTXY ; - HelpId = HID_SMA_NROOTXY ; - Text [ en-US ] = "N-th Root" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_SINHX ; - HelpId = HID_SMA_SINHX ; - Text [ en-US ] = "Hyperbolic Sine" ; - }; - ToolBoxItem - { - Identifier = RID_COSHX ; - HelpId = HID_SMA_COSHX ; - Text [ en-US ] = "Hyperbolic Cosine" ; - }; - ToolBoxItem - { - Identifier = RID_TANHX ; - HelpId = HID_SMA_TANHX ; - Text [ en-US ] = "Hyperbolic Tangent" ; - }; - ToolBoxItem - { - Identifier = RID_COTHX ; - HelpId = HID_SMA_COTHX ; - Text [ en-US ] = "Hyperbolic Cotangent" ; - }; - ToolBoxItem - { - Identifier = RID_ABSX ; - HelpId = HID_SMA_ABSX ; - Text [ en-US ] = "Absolute Value" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_ARSINHX ; - HelpId = HID_SMA_ARSINHX ; - Text [ en-US ] = "Area Hyperbolic Sine" ; - }; - ToolBoxItem - { - Identifier = RID_ARCOSHX ; - HelpId = HID_SMA_ARCOSHX ; - Text [ en-US ] = "Area Hyperbolic Cosine" ; - }; - ToolBoxItem - { - Identifier = RID_ARTANHX ; - HelpId = HID_SMA_ARTANHX ; - Text [ en-US ] = "Area Hyperbolic Tangent" ; - }; - ToolBoxItem - { - Identifier = RID_ARCOTHX ; - HelpId = HID_SMA_ARCOTHX ; - Text [ en-US ] = "Area Hyperbolic Cotangent" ; - }; - ToolBoxItem - { - Identifier = RID_FACTX ; - HelpId = HID_SMA_FACTX ; - Text [ en-US ] = "Factorial" ; - }; - }; - }; - ToolBox 5 - { - // operators - HelpId = HID_SMA_OPERATORS_TBX ; - Pos = MAP_APPFONT ( 0 , 45 ) ; - Size = MAP_APPFONT ( 65 , 95 ) ; - SVLook = TRUE ; - Hide = TRUE ; - LineCount = 3 ; - ItemList = - { - ToolBoxItem - { - Identifier = RID_LIMX ; - HelpId = HID_SMA_LIMX ; - Text [ en-US ] = "Limes" ; - }; - ToolBoxItem - { - Identifier = RID_SUMX ; - HelpId = HID_SMA_SUMX ; - Text [ en-US ] = "Sum" ; - }; - ToolBoxItem - { - Identifier = RID_PRODX ; - HelpId = HID_SMA_PRODX ; - Text [ en-US ] = "Product" ; - }; - ToolBoxItem - { - Identifier = RID_COPRODX ; - HelpId = HID_SMA_COPRODX ; - Text [ en-US ] = "Coproduct" ; - }; - ToolBoxItem - { - Identifier = RID_FROMXTOY ; - HelpId = HID_SMA_FROMXTOY ; - Text [ en-US ] = "Upper And Lower Limit" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_INTX ; - HelpId = HID_SMA_INTX ; - Text [ en-US ] = "Integral" ; - }; - ToolBoxItem - { - Identifier = RID_IINTX ; - HelpId = HID_SMA_IINTX ; - Text [ en-US ] = "Double Integral" ; - }; - ToolBoxItem - { - Identifier = RID_IIINTX ; - HelpId = HID_SMA_IIINTX ; - Text [ en-US ] = "Triple Integral" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SPACE ; - }; - ToolBoxItem - { - Identifier = RID_FROMX ; - HelpId = HID_SMA_FROMX ; - Text [ en-US ] = "Lower Limit" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_LINTX ; - HelpId = HID_SMA_LINTX ; - Text [ en-US ] = "Curve Integral" ; - }; - ToolBoxItem - { - Identifier = RID_LLINTX ; - HelpId = HID_SMA_LLINTX ; - Text [ en-US ] = "Double Curve Integral" ; - }; - ToolBoxItem - { - Identifier = RID_LLLINTX ; - HelpId = HID_SMA_LLLINTX ; - Text [ en-US ] = "Triple Curve Integral" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SPACE ; - }; - ToolBoxItem - { - Identifier = RID_TOX ; - HelpId = HID_SMA_TOX ; - Text [ en-US ] = "Upper Limit" ; - }; - }; - }; - ToolBox 6 - { - // attributs - HelpId = HID_SMA_ATTRIBUTES_TBX ; - Pos = MAP_APPFONT ( 0 , 45 ) ; - Size = MAP_APPFONT ( 65 , 95 ) ; - SVLook = TRUE ; - Hide = TRUE ; - LineCount = 5 ; - ItemList = - { - ToolBoxItem - { - Identifier = RID_ACUTEX ; - HelpId = HID_SMA_ACUTEX ; - Text [ en-US ] = "Acute Accent"; - }; - ToolBoxItem - { - Identifier = RID_GRAVEX ; - HelpId = HID_SMA_GRAVEX ; - Text [ en-US ] = "Grave Accent"; - }; - ToolBoxItem - { - Identifier = RID_CHECKX ; - HelpId = HID_SMA_CHECKX ; - Text [ en-US ] = "Reverse Circumflex" ; - }; - ToolBoxItem - { - Identifier = RID_BREVEX ; - HelpId = HID_SMA_BREVEX ; - Text [ en-US ] = "Breve" ; - }; - ToolBoxItem - { - Identifier = RID_CIRCLEX ; - HelpId = HID_SMA_CIRCLEX ; - Text [ en-US ] = "Circle" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_VECX ; - HelpId = HID_SMA_VECX ; - Text [ en-US ] = "Vector Arrow" ; - }; - ToolBoxItem - { - Identifier = RID_TILDEX ; - HelpId = HID_SMA_TILDEX ; - Text [ en-US ] = "Tilde" ; - }; - ToolBoxItem - { - Identifier = RID_HATX ; - HelpId = HID_SMA_HATX ; - Text [ en-US ] = "Circumflex" ; - }; - ToolBoxItem - { - Identifier = RID_BARX ; - HelpId = HID_SMA_BARX ; - Text [ en-US ] = "Line Above" ; - }; - ToolBoxItem - { - Identifier = RID_DOTX ; - HelpId = HID_SMA_DOTX ; - Text [ en-US ] = "Dot" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_WIDEVECX ; - HelpId = HID_SMA_WIDEVECX ; - Text [ en-US ] = "Large Vector Arrow"; - }; - ToolBoxItem - { - Identifier = RID_WIDETILDEX ; - HelpId = HID_SMA_WIDETILDEX ; - Text [ en-US ] = "Large Tilde"; - }; - ToolBoxItem - { - Identifier = RID_WIDEHATX ; - HelpId = HID_SMA_WIDEHATX ; - Text [ en-US ] = "Large Circumflex"; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SPACE ; - }; - ToolBoxItem - { - Identifier = RID_DDOTX ; - HelpId = HID_SMA_DDOTX ; - Text [ en-US ] = "Double Dot" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_OVERLINEX ; - HelpId = HID_SMA_OVERLINEX ; - Text [ en-US ] = "Line Over" ; - }; - ToolBoxItem - { - Identifier = RID_UNDERLINEX ; - HelpId = HID_SMA_UNDERLINEX ; - Text [ en-US ] = "Line Below" ; - }; - ToolBoxItem - { - Identifier = RID_OVERSTRIKEX ; - HelpId = HID_SMA_OVERSTRIKEX ; - Text [ en-US ] = "Line Through" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SPACE ; - }; - ToolBoxItem - { - Identifier = RID_DDDOTX ; - HelpId = HID_SMA_DDDOTX ; - Text [ en-US ] = "Triple Dot" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_PHANTOMX ; - HelpId = HID_SMA_PHANTOMX ; - Text [ en-US ] = "Transparent" ; - }; - ToolBoxItem - { - Identifier = RID_BOLDX ; - HelpId = HID_SMA_BOLDX ; - Text [ en-US ] = "Bold Font" ; - }; - ToolBoxItem - { - Identifier = RID_ITALX ; - HelpId = HID_SMA_ITALX ; - Text [ en-US ] = "Italic Font" ; - }; - ToolBoxItem - { - Identifier = RID_SIZEXY ; - HelpId = HID_SMA_SIZEXY ; - Text [ en-US ] = "Resize" ; - }; - ToolBoxItem - { - Identifier = RID_FONTXY ; - HelpId = HID_SMA_FONTXY ; - Text [ en-US ] = "Change Font" ; - }; - }; - }; - ToolBox 7 - { - // parentheses - HelpId = HID_SMA_BRACKETS_TBX ; - Pos = MAP_APPFONT ( 0 , 45 ) ; - Size = MAP_APPFONT ( 65 , 95 ) ; - SVLook = TRUE ; - Hide = TRUE ; - LineCount = 5 ; - ItemList = - { - ToolBoxItem - { - Identifier = RID_LRPARENTX ; - HelpId = HID_SMA_LRPARENTX ; - Text [ en-US ] = "Round Brackets" ; - }; - ToolBoxItem - { - Identifier = RID_LRBRACKETX ; - HelpId = HID_SMA_LRBRACKETX ; - Text [ en-US ] = "Square Brackets" ; - }; - ToolBoxItem - { - Identifier = RID_LRDBRACKETX ; - HelpId = HID_SMA_LRDBRACKETX ; - Text [ en-US ] = "Double Square Brackets"; - }; - ToolBoxItem - { - Identifier = RID_LRLINEX ; - HelpId = HID_SMA_LRLINEX ; - Text [ en-US ] = "Single Lines" ; - }; - ToolBoxItem - { - Identifier = RID_LRDLINEX ; - HelpId = HID_SMA_LRDLINEX ; - Text [ en-US ] = "Double Lines" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_LRBRACEX ; - HelpId = HID_SMA_LRBRACEX ; - Text [ en-US ] = "Braces" ; - }; - ToolBoxItem - { - Identifier = RID_LRANGLEX ; - HelpId = HID_SMA_LRANGLEX ; - Text [ en-US ] = "Angle Brackets" ; - }; - ToolBoxItem - { - Identifier = RID_LMRANGLEXY ; - HelpId = HID_SMA_LMRANGLEXY ; - Text [ en-US ] = "Operator Brackets"; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SPACE ; - }; - ToolBoxItem - { - Identifier = RID_LRGROUPX ; - HelpId = HID_SMA_LRGROUPX ; - Text [ en-US ] = "Group Brackets" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_SLRPARENTX ; - HelpId = HID_SMA_SLRPARENTX ; - Text [ en-US ] = "Round Brackets (Scalable)" ; - }; - ToolBoxItem - { - Identifier = RID_SLRBRACKETX ; - HelpId = HID_SMA_SLRBRACKETX ; - Text [ en-US ] = "Square Brackets (Scalable)" ; - }; - ToolBoxItem - { - Identifier = RID_SLRDBRACKETX ; - HelpId = HID_SMA_SLRDBRACKETX ; - Text [ en-US ] = "Double Square Brackets (Scalable)"; - }; - ToolBoxItem - { - Identifier = RID_SLRLINEX ; - HelpId = HID_SMA_SLRLINEX ; - Text [ en-US ] = "Single Lines (Scalable)" ; - }; - ToolBoxItem - { - Identifier = RID_SLRDLINEX ; - HelpId = HID_SMA_SLRDLINEX ; - Text [ en-US ] = "Double Lines (Scalable)" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_SLRBRACEX ; - HelpId = HID_SMA_SLRBRACEX ; - Text [ en-US ] = "Braces (Scalable)" ; - }; - ToolBoxItem - { - Identifier = RID_SLRANGLEX ; - HelpId = HID_SMA_SLRANGLEX ; - Text [ en-US ] = "Angle Brackets (Scalable)" ; - }; - ToolBoxItem - { - Identifier = RID_SLMRANGLEXY ; - HelpId = HID_SMA_SLMRANGLEXY ; - Text [ en-US ] = "Operator Brackets (Scalable)"; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_XOVERBRACEY ; - HelpId = HID_SMA_XOVERBRACEY ; - Text [ en-US ] = "Braces Top (Scalable)"; - }; - ToolBoxItem - { - Identifier = RID_XUNDERBRACEY ; - HelpId = HID_SMA_XUNDERBRACEY ; - Text [ en-US ] = "Braces Bottom (Scalable)"; - }; - }; - }; - ToolBox 8 - { - // format - HelpId = HID_SMA_FORMAT_TBX ; - Pos = MAP_APPFONT ( 0 , 45 ) ; - Size = MAP_APPFONT ( 65 , 95 ) ; - SVLook = TRUE ; - Hide = TRUE ; - LineCount = 3 ; - ItemList = - { - ToolBoxItem - { - Identifier = RID_LSUPX ; - HelpId = HID_SMA_LSUPX ; - Text [ en-US ] = "Superscript Left" ; - }; - ToolBoxItem - { - Identifier = RID_CSUPX ; - HelpId = HID_SMA_CSUPX ; - Text [ en-US ] = "Superscript Top"; - }; - ToolBoxItem - { - Identifier = RID_RSUPX ; - HelpId = HID_SMA_RSUPX ; - Text [ en-US ] = "Superscript Right" ; - }; - ToolBoxItem - { - Identifier = RID_BINOMXY ; - HelpId = HID_SMA_BINOMXY ; - Text [ en-US ] = "Vertical Stack (2 Elements)" ; - }; - ToolBoxItem - { - Identifier = RID_NEWLINE ; - HelpId = HID_SMA_NEWLINE ; - Text [ en-US ] = "New Line" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_LSUBX ; - HelpId = HID_SMA_LSUBX ; - Text [ en-US ] = "Subscript Left" ; - }; - ToolBoxItem - { - Identifier = RID_CSUBX ; - HelpId = HID_SMA_CSUBX ; - Text [ en-US ] = "Subscript Bottom"; - }; - ToolBoxItem - { - Identifier = RID_RSUBX ; - HelpId = HID_SMA_RSUBX ; - Text [ en-US ] = "Subscript Right" ; - }; - ToolBoxItem - { - Identifier = RID_STACK ; - HelpId = HID_SMA_STACK ; - Text [ en-US ] = "Vertical Stack" ; - }; - ToolBoxItem - { - Identifier = RID_SBLANK ; - HelpId = HID_SMA_SBLANK ; - Text [ en-US ] = "Small Gap" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_ALIGNLX ; - HelpId = HID_SMA_ALIGNLX ; - Text [ en-US ] = "Align Left" ; - }; - ToolBoxItem - { - Identifier = RID_ALIGNCX ; - HelpId = HID_SMA_ALIGNCX ; - Text [ en-US ] = "Align Center" ; - }; - ToolBoxItem - { - Identifier = RID_ALIGNRX ; - HelpId = HID_SMA_ALIGNRX ; - Text [ en-US ] = "Align Right" ; - }; - ToolBoxItem - { - Identifier = RID_MATRIX ; - HelpId = HID_SMA_MATRIX ; - Text [ en-US ] = "Matrix Stack" ; - }; - ToolBoxItem - { - Identifier = RID_BLANK ; - HelpId = HID_SMA_BLANK ; - Text [ en-US ] = "Gap" ; - }; - }; - }; - ToolBox 9 - { - // misc - HelpId = HID_SMA_FORMAT_TBX ; - Pos = MAP_APPFONT ( 0 , 45 ) ; - Size = MAP_APPFONT ( 65 , 95 ) ; - SVLook = TRUE ; - Hide = TRUE ; - LineCount = 4 ; - ItemList = - { - ToolBoxItem - { - Identifier = RID_INFINITY ; - HelpId = HID_SMA_INFINITY ; - Text [ en-US ] = "infinite"; - }; - ToolBoxItem - { - Identifier = RID_PARTIAL ; - HelpId = HID_SMA_PARTIAL ; - Text [ en-US ] = "Partial"; - }; - ToolBoxItem - { - Identifier = RID_NABLA ; - HelpId = HID_SMA_NABLA ; - Text [ en-US ] = "Nabla"; - }; - ToolBoxItem - { - Identifier = RID_EXISTS ; - HelpId = HID_SMA_EXISTS ; - Text [ en-US ] = "There Exists"; - }; - ToolBoxItem - { - Identifier = RID_FORALL ; - HelpId = HID_SMA_FORALL ; - Text [ en-US ] = "For All"; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_HBAR ; - HelpId = HID_SMA_HBAR ; - Text [ en-US ] = "h Bar"; - }; - ToolBoxItem - { - Identifier = RID_LAMBDABAR ; - HelpId = HID_SMA_LAMBDABAR ; - Text [ en-US ] = "Lambda Bar"; - }; - ToolBoxItem - { - Identifier = RID_RE ; - HelpId = HID_SMA_RE ; - Text [ en-US ] = "Real Part"; - }; - ToolBoxItem - { - Identifier = RID_IM ; - HelpId = HID_SMA_IM ; - Text [ en-US ] = "Imaginary Part"; - }; - ToolBoxItem - { - Identifier = RID_WP ; - HelpId = HID_SMA_WP ; - Text [ en-US ] = "Weierstrass p"; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_LEFTARROW ; - HelpId = HID_SMA_LEFTARROW ; - Text [ en-US ] = "Left Arrow"; - }; - ToolBoxItem - { - Identifier = RID_RIGHTARROW ; - HelpId = HID_SMA_RIGHTARROW ; - Text [ en-US ] = "Right Arrow"; - }; - ToolBoxItem - { - Identifier = RID_UPARROW ; - HelpId = HID_SMA_UPARROW ; - Text [ en-US ] = "Up Arrow"; - }; - ToolBoxItem - { - Identifier = RID_DOWNARROW ; - HelpId = HID_SMA_DOWNARROW ; - Text [ en-US ] = "Down Arrow"; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SPACE ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_DOTSLOW ; - HelpId = HID_SMA_DOTSLOW ; - Text [ en-US ] = "Dots At Bottom"; - }; - ToolBoxItem - { - Identifier = RID_DOTSAXIS ; - HelpId = HID_SMA_DOTSAXIS ; - Text [ en-US ] = "Dots In Middle"; - }; - ToolBoxItem - { - Identifier = RID_DOTSVERT ; - HelpId = HID_SMA_DOTSVERT ; - Text [ en-US ] = "Dots Vertically"; - }; - ToolBoxItem - { - Identifier = RID_DOTSUP ; - HelpId = HID_SMA_DOTSUP ; - Text [ en-US ] = "Dots To Top"; - }; - ToolBoxItem - { - Identifier = RID_DOTSDOWN ; - HelpId = HID_SMA_DOTSDOWN ; - Text [ en-US ] = "Dots to Bottom"; - }; - }; - }; - ToolBox 10 - { - // main menu of selection-window - HelpId = HID_SMA_SELECTION_TBX ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( 65 , 38 ) ; - SVLook = TRUE ; - LineCount = 2 ; - ItemList = - { - ToolBoxItem - { - Identifier = RID_UNBINOPS_CAT ; - HelpId = HID_SMA_UNBINOPS_CAT ; - Text [ en-US ] = "Unary/Binary Operators" ; - }; - ToolBoxItem - { - Identifier = RID_RELATIONS_CAT ; - HelpId = HID_SMA_RELATIONS_CAT ; - Text [ en-US ] = "Relations" ; - }; - ToolBoxItem - { - Identifier = RID_SETOPERATIONS_CAT ; - HelpId = HID_SMA_SETOPERATIONS_CAT ; - Text [ en-US ] = "Set Operations" ; - }; - ToolBoxItem - { - Identifier = RID_FUNCTIONS_CAT ; - HelpId = HID_SMA_FUNCTIONS_CAT ; - Text [ en-US ] = "Functions" ; - }; - ToolBoxItem - { - Identifier = RID_OPERATORS_CAT ; - HelpId = HID_SMA_OPERATORS_CAT ; - Text [ en-US ] = "Operators" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_BREAK ; - }; - ToolBoxItem - { - Identifier = RID_ATTRIBUTES_CAT ; - HelpId = HID_SMA_ATTRIBUTES_CAT ; - Text [ en-US ] = "Attributes" ; - }; - ToolBoxItem - { - Identifier = RID_MISC_CAT ; - HelpId = HID_SMA_MISC_CAT ; - Text [ en-US ] = "Others"; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SPACE ; - }; - ToolBoxItem - { - Identifier = RID_BRACKETS_CAT ; - HelpId = HID_SMA_BRACKETS_CAT ; - Text [ en-US ] = "Brackets" ; - }; - ToolBoxItem - { - Identifier = RID_FORMAT_CAT ; - HelpId = HID_SMA_FORMAT_CAT ; - Text [ en-US ] = "Formats" ; - }; - }; - }; - FixedLine FL_TOOLBOX_CAT_DELIM - { - Pos = MAP_APPFONT ( 0 , 44 ) ; - Size = MAP_APPFONT ( 65 , 4 ) ; - }; -}; - #define CMDBOXWINDOW_TEXT \ Text [ en-US ] = "Commands" ; \ @@ -2978,380 +1559,6 @@ DockingWindow RID_CMDBOXWINDOW\ }; -#define UNBINOPS_IDLIST \ - IdList = \ - { \ - RID_PLUSX ; \ - RID_MINUSX ; \ - RID_PLUSMINUSX ; \ - RID_MINUSPLUSX ; \ - RID_XPLUSY ; \ - RID_XCDOTY ; \ - RID_XTIMESY ; \ - RID_XSYMTIMESY ; \ - RID_XMINUSY ; \ - RID_XOVERY ; \ - RID_XDIVY ; \ - RID_XSYMDIVIDEY ; \ - RID_NEGX ; \ - RID_XANDY ; \ - RID_XORY ; \ - RID_XCIRCY ; \ - }; \ - IdCount = { 16 ; }; - - ImageList RID_IL_UNBINOPS - { - Prefix = "un"; - MaskColor = IMAGE_STDBTN_COLOR ; - UNBINOPS_IDLIST - }; - ImageList RID_ILH_UNBINOPS - { - Prefix = "unh"; - MaskColor = IMAGE_STDBTN_COLOR_HC ; - UNBINOPS_IDLIST - }; - -#define RELATIONS_IDLIST \ - IdList = \ - { \ - RID_XEQY ; \ - RID_XNEQY ; \ - RID_XEQUIVY ; \ - RID_XORTHOY ; \ - RID_XLTY ; \ - RID_XGTY ; \ - RID_XAPPROXY ; \ - RID_XPARALLELY ; \ - RID_XLESLANTY ; \ - RID_XGESLANTY ; \ - RID_XSIMEQY ; \ - RID_XPROPY ; \ - RID_XLEY ; \ - RID_XGEY ; \ - RID_XSIMY ; \ - RID_XTOWARDY ; \ - RID_XDIVIDESY ; \ - RID_XNDIVIDESY; \ - RID_DLARROW ; \ - RID_DLRARROW ; \ - RID_DRARROW ; \ - }; \ - IdCount ={ 21 ; }; - - ImageList RID_IL_RELATIONS - { - Prefix = "bi"; - MaskColor = IMAGE_STDBTN_COLOR ; - RELATIONS_IDLIST - }; - ImageList RID_ILH_RELATIONS - { - Prefix = "bih"; - MaskColor = IMAGE_STDBTN_COLOR_HC ; - RELATIONS_IDLIST - }; - -#define SETOPERATIONS_IDLIST \ - IdList = \ - { \ - RID_XINY ; \ - RID_XNOTINY ; \ - RID_XOWNSY ; \ - RID_XINTERSECTIONY ; \ - RID_XUNIONY ; \ - RID_XSETMINUSY ; \ - RID_XSLASHY ; \ - RID_XSUBSETY ; \ - RID_XSUBSETEQY ; \ - RID_XSUPSETY ; \ - RID_XSUPSETEQY ; \ - RID_XNSUBSETY ; \ - RID_XNSUBSETEQY ; \ - RID_XNSUPSETY ; \ - RID_XNSUPSETEQY ; \ - RID_EMPTYSET ; \ - RID_ALEPH ; \ - RID_SETN ; \ - RID_SETZ ; \ - RID_SETQ ; \ - RID_SETR ; \ - RID_SETC ; \ - }; \ - IdCount = { 22 ; }; - - ImageList RID_IL_SETOPERATIONS - { - Prefix = "op"; - MaskColor = IMAGE_STDBTN_COLOR ; - SETOPERATIONS_IDLIST - }; - ImageList RID_ILH_SETOPERATIONS - { - Prefix = "oph"; - MaskColor = IMAGE_STDBTN_COLOR_HC ; - SETOPERATIONS_IDLIST - }; - -#define FUNCTIONS_IDLIST \ - IdList = \ - { \ - RID_ABSX ; \ - RID_FACTX ; \ - RID_SQRTX ; \ - RID_NROOTXY ; \ - RID_EX ; \ - RID_LNX ; \ - RID_EXPX ; \ - RID_LOGX ; \ - RID_SINX ; \ - RID_COSX ; \ - RID_TANX ; \ - RID_COTX ; \ - RID_SINHX ; \ - RID_COSHX ; \ - RID_TANHX ; \ - RID_COTHX ; \ - RID_ARCSINX ; \ - RID_ARCCOSX ; \ - RID_ARCTANX ; \ - RID_ARCCOTX ; \ - RID_ARSINHX ; \ - RID_ARCOSHX ; \ - RID_ARTANHX ; \ - RID_ARCOTHX ; \ - RID_RSUPX ; \ - }; \ - IdCount = { 25 ; }; - - ImageList RID_IL_FUNCTIONS - { - Prefix = "fu"; - MaskColor = IMAGE_STDBTN_COLOR ; - FUNCTIONS_IDLIST - }; - ImageList RID_ILH_FUNCTIONS - { - Prefix = "fuh"; - MaskColor = IMAGE_STDBTN_COLOR_HC ; - FUNCTIONS_IDLIST - }; - -#define OPERATORS_IDLIST \ - IdList = \ - { \ - RID_LIMX ; \ - RID_SUMX ; \ - RID_PRODX ; \ - RID_COPRODX ; \ - RID_INTX ; \ - RID_IINTX ; \ - RID_IIINTX ; \ - RID_LINTX ; \ - RID_LLINTX ; \ - RID_LLLINTX ; \ - RID_FROMXTOY ; \ - RID_FROMX ; \ - RID_TOX ; \ - }; \ - IdCount = { 13 ; }; - - ImageList RID_IL_OPERATORS - { - Prefix = "fo"; - MaskColor = IMAGE_STDBTN_COLOR ; - OPERATORS_IDLIST - }; - ImageList RID_ILH_OPERATORS - { - Prefix = "foh"; - MaskColor = IMAGE_STDBTN_COLOR_HC ; - OPERATORS_IDLIST - }; - -#define ATTRIBUTES_IDLIST \ - IdList = \ - { \ - RID_ACUTEX ; \ - RID_GRAVEX ; \ - RID_CHECKX ; \ - RID_BREVEX ; \ - RID_BARX ; \ - RID_VECX ; \ - RID_HATX ; \ - RID_TILDEX ; \ - RID_CIRCLEX ; \ - RID_DOTX ; \ - RID_DDOTX ; \ - RID_DDDOTX ; \ - RID_OVERLINEX ; \ - RID_UNDERLINEX ; \ - RID_OVERSTRIKEX ; \ - RID_PHANTOMX ; \ - RID_BOLDX ; \ - RID_ITALX ; \ - RID_SIZEXY ; \ - RID_FONTXY ; \ - RID_WIDEHATX ; \ - RID_WIDETILDEX ; \ - RID_WIDEVECX ; \ - }; \ - IdCount = { 23 ; }; - - ImageList RID_IL_ATTRIBUTES - { - Prefix = "at"; - MaskColor = IMAGE_STDBTN_COLOR ; - ATTRIBUTES_IDLIST - }; - ImageList RID_ILH_ATTRIBUTES - { - Prefix = "ath"; - MaskColor = IMAGE_STDBTN_COLOR_HC ; - ATTRIBUTES_IDLIST - }; - -#define BRACKETS_IDLIST \ - IdList = \ - { \ - RID_LRPARENTX ; \ - RID_LRBRACKETX ; \ - RID_LRANGLEX ; \ - RID_LRBRACEX ; \ - RID_LRLINEX ; \ - RID_LRDLINEX ; \ - RID_LMRANGLEXY ; \ - RID_LRGROUPX ; \ - RID_SLRPARENTX ; \ - RID_SLRBRACKETX ; \ - RID_SLRANGLEX ; \ - RID_SLRBRACEX ; \ - RID_SLRLINEX ; \ - RID_SLRDLINEX ; \ - RID_SLMRANGLEXY ; \ - RID_LRDBRACKETX ; \ - RID_SLRDBRACKETX ; \ - RID_XOVERBRACEY ; \ - RID_XUNDERBRACEY ; \ - }; \ - IdCount = { 19 ; }; - - ImageList RID_IL_BRACKETS - { - Prefix = "al"; - MaskColor = IMAGE_STDBTN_COLOR ; - BRACKETS_IDLIST - }; - ImageList RID_ILH_BRACKETS - { - Prefix = "alh"; - MaskColor = IMAGE_STDBTN_COLOR_HC ; - BRACKETS_IDLIST - }; - -#define FORMAT_IDLIST \ - IdList = \ - { \ - RID_NEWLINE ; \ - RID_SBLANK ; \ - RID_BLANK ; \ - RID_BINOMXY ; \ - RID_STACK ; \ - RID_MATRIX ; \ - RID_ALIGNLX ; \ - RID_ALIGNCX ; \ - RID_ALIGNRX ; \ - RID_RSUBX ; \ - RID_RSUPX ; \ - RID_LSUBX ; \ - RID_LSUPX ; \ - RID_CSUBX ; \ - RID_CSUPX ; \ - }; \ - IdCount = { 15 ; }; - - ImageList RID_IL_FORMAT - { - Prefix = "co"; - MaskColor = IMAGE_STDBTN_COLOR ; - FORMAT_IDLIST - }; - ImageList RID_ILH_FORMAT - { - Prefix = "coh"; - MaskColor = IMAGE_STDBTN_COLOR_HC ; - FORMAT_IDLIST - }; - -#define MISC_IDLIST \ - IdList = \ - { \ - RID_INFINITY ; \ - RID_PARTIAL ; \ - RID_NABLA ; \ - RID_EXISTS ; \ - RID_FORALL ; \ - RID_HBAR; \ - RID_LAMBDABAR ; \ - RID_RE ; \ - RID_IM ; \ - RID_WP ; \ - RID_LEFTARROW ; \ - RID_RIGHTARROW ; \ - RID_UPARROW ; \ - RID_DOWNARROW ; \ - RID_DOTSLOW ; \ - RID_DOTSAXIS ; \ - RID_DOTSVERT ; \ - RID_DOTSUP ; \ - RID_DOTSDOWN ; \ - }; \ - IdCount = { 19 ; }; - - ImageList RID_IL_MISC - { - Prefix = "mi"; - MaskColor = IMAGE_STDBTN_COLOR ; - MISC_IDLIST - }; - ImageList RID_ILH_MISC - { - Prefix = "mih"; - MaskColor = IMAGE_STDBTN_COLOR_HC ; - MISC_IDLIST - }; - -#define CATALOG_IDLIST \ - IdList = \ - { \ - RID_UNBINOPS_CAT ; \ - RID_RELATIONS_CAT ; \ - RID_SETOPERATIONS_CAT ; \ - RID_FUNCTIONS_CAT ; \ - RID_OPERATORS_CAT ; \ - RID_ATTRIBUTES_CAT ; \ - RID_MISC_CAT ; \ - RID_BRACKETS_CAT ; \ - RID_FORMAT_CAT ; \ - }; \ - IdCount = { 9 ; }; - - ImageList RID_IL_CATALOG - { - Prefix = "im"; - MaskColor = IMAGE_STDBTN_COLOR ; - CATALOG_IDLIST - }; - ImageList RID_ILH_CATALOG - { - Prefix = "imh"; - MaskColor = IMAGE_STDBTN_COLOR_HC ; - CATALOG_IDLIST - }; - - - String STR_CMDBOXWINDOW { CMDBOXWINDOW_TEXT @@ -3572,9 +1779,9 @@ StringArray RID_PRINTUIOPTIONS < "Adjusts the formula to the page format used in the printout."; >; < "~Scaling"; >; < "Reduces or enlarges the size of the printed formula by a specified enlargement factor."; >; - < "Miscellaneous options"; >; - < "Ig~nore ~~ and ` at the end of the line"; >; - < "Specfies that these space wildcards will be removed if they are at the end of a line."; >; +// < "Miscellaneous options"; >; +// < "Ig~nore ~~ and ` at the end of the line"; >; +// < "Specfies that these space wildcards will be removed if they are at the end of a line."; >; }; }; diff --git a/starmath/source/symbol.cxx b/starmath/source/symbol.cxx index 5208ce3644ce..52d0520ae61b 100644 --- a/starmath/source/symbol.cxx +++ b/starmath/source/symbol.cxx @@ -78,7 +78,7 @@ SmSym::SmSym(const SmSym& rSymbol) } -SmSym::SmSym(const String& rName, const Font& rFont, sal_Unicode cChar, +SmSym::SmSym(const String& rName, const Font& rFont, sal_UCS4 cChar, const String& rSet, BOOL bIsPredefined) { m_aName = m_aExportName = rName; diff --git a/starmath/source/toolbox.cxx b/starmath/source/toolbox.cxx index 2de6c97ed5ab..5bcf1448aca0 100644 --- a/starmath/source/toolbox.cxx +++ b/starmath/source/toolbox.cxx @@ -135,7 +135,7 @@ SmToolBoxWindow::SmToolBoxWindow(SfxBindings *pTmpBindings, SfxChildWindow *pChildWindow, Window *pParent) : SfxFloatingWindow(pTmpBindings, pChildWindow, pParent, SmResId(RID_TOOLBOXWINDOW)), - aToolBoxCat(this, SmResId(NUM_TBX_CATEGORIES + 1)), + aToolBoxCat(this, SmResId(TOOLBOX_CATALOG)), aToolBoxCat_Delim(this, SmResId( FL_TOOLBOX_CAT_DELIM )) { RTL_LOGFILE_CONTEXT( aLog, "starmath: SmToolBoxWindow::SmToolBoxWindow" ); @@ -143,14 +143,14 @@ SmToolBoxWindow::SmToolBoxWindow(SfxBindings *pTmpBindings, // allow for cursor travelling between toolbox and sub-categories SetStyle( GetStyle() | WB_DIALOGCONTROL ); - nActiveCategoryRID = sal::static_int_cast< USHORT >(-1); + nActiveCategoryRID = USHRT_MAX; aToolBoxCat.SetClickHdl(LINK(this, SmToolBoxWindow, CategoryClickHdl)); USHORT i; - for (i = 0; i < NUM_TBX_CATEGORIES; i++) + for (i = 0; i < NUM_TBX_CATEGORIES; ++i) { - ToolBox *pBox = new ToolBox(this, SmResId (i+1)); + ToolBox *pBox = new ToolBox(this, SmResId( TOOLBOX_CAT_A + i )); vToolBoxCategories[i] = pBox; pBox->SetSelectHdl(LINK(this, SmToolBoxWindow, CmdSelectHdl)); } @@ -163,15 +163,12 @@ SmToolBoxWindow::SmToolBoxWindow(SfxBindings *pTmpBindings, } FreeResource(); - - ApplyImageLists( RID_UNBINOPS_CAT ); - SetCategory( RID_UNBINOPS_CAT ); } SmToolBoxWindow::~SmToolBoxWindow() { int i; - for (i = 0; i < NUM_TBX_CATEGORIES; i++) + for (i = 0; i < NUM_TBX_CATEGORIES; ++i) { ToolBox *pBox = vToolBoxCategories[i]; delete pBox; @@ -249,11 +246,11 @@ void SmToolBoxWindow::StateChanged( StateChangedType nStateChange ) static BOOL bSetPosition = TRUE; if (STATE_CHANGE_INITSHOW == nStateChange) { + SetCategory( nActiveCategoryRID == USHRT_MAX ? RID_UNBINOPS_CAT : nActiveCategoryRID ); + // calculate initial position to be used after creation of the window... AdjustPosSize( bSetPosition ); bSetPosition = FALSE; - - SetCategory(RID_UNBINOPS_CAT); } //... otherwise the base class will remember the last position of the window SfxFloatingWindow::StateChanged( nStateChange ); @@ -263,7 +260,7 @@ void SmToolBoxWindow::StateChanged( StateChangedType nStateChange ) void SmToolBoxWindow::AdjustPosSize( BOOL bSetPos ) { Size aCatSize( aToolBoxCat.CalcWindowSizePixel( 2 ) ); - Size aCmdSize( pToolBoxCmd->CalcWindowSizePixel( 5 ) ); + Size aCmdSize( pToolBoxCmd->CalcWindowSizePixel( 4 /* see nLines in SetCategory*/ ) ); DBG_ASSERT( aCatSize.Width() == aCmdSize.Width(), "width mismatch" ); // catalog settings @@ -271,14 +268,12 @@ void SmToolBoxWindow::AdjustPosSize( BOOL bSetPos ) aToolBoxCat.SetSizePixel( aCatSize ); // settings for catalog / category delimiter Point aP( aToolBoxCat_Delim.GetPosPixel() ); - aP.X() += 5; + aP.X() = 0; aToolBoxCat_Delim.SetPosPixel( aP ); - Size aS( aCatSize.Width() - 10, 10 ); - aToolBoxCat_Delim.SetSizePixel( aS ); + aToolBoxCat_Delim.SetSizePixel( Size( aCatSize.Width(), aToolBoxCat_Delim.GetSizePixel().Height() ) ); // category settings - aP.X() = 0; aP.Y() += aToolBoxCat_Delim.GetSizePixel().Height(); - for (int i = 0; i < NUM_TBX_CATEGORIES; i++) + for (int i = 0; i < NUM_TBX_CATEGORIES; ++i) { vToolBoxCategories[i]->SetPosPixel( aP ); vToolBoxCategories[i]->SetSizePixel( aCmdSize ); @@ -327,63 +322,60 @@ void SmToolBoxWindow::GetFocus() void SmToolBoxWindow::SetCategory(USHORT nCategoryRID) { if (nCategoryRID != nActiveCategoryRID) - { ApplyImageLists( nCategoryRID ); - USHORT nLines; - // check for valid resource id - switch (nCategoryRID) - { - case RID_UNBINOPS_CAT : nLines = 4; break; - case RID_RELATIONS_CAT: nLines = 5; break; - case RID_SETOPERATIONS_CAT: nLines = 5; break; - case RID_FUNCTIONS_CAT: nLines = 5; break; - case RID_OPERATORS_CAT: nLines = 3; break; - case RID_ATTRIBUTES_CAT: nLines = 5; break; - case RID_MISC_CAT: nLines = 4; break; - case RID_BRACKETS_CAT: nLines = 5; break; - case RID_FORMAT_CAT: nLines = 3; break; - default: - // nothing to be done - return; - } + USHORT nLines; + // check for valid resource id + switch (nCategoryRID) + { + case RID_UNBINOPS_CAT : nLines = 4; break; + case RID_RELATIONS_CAT: nLines = 4; break; + case RID_SETOPERATIONS_CAT: nLines = 4; break; + case RID_FUNCTIONS_CAT: nLines = 4; break; + case RID_OPERATORS_CAT: nLines = 3; break; + case RID_ATTRIBUTES_CAT: nLines = 4; break; + case RID_MISC_CAT: nLines = 4; break; + case RID_BRACKETS_CAT: nLines = 4; break; + case RID_FORMAT_CAT: nLines = 3; break; + default: + // nothing to be done + return; + } - pToolBoxCmd->Hide(); + pToolBoxCmd->Hide(); - sal_Int16 nIdx = GetToolBoxCategoriesIndex( nCategoryRID ); - DBG_ASSERT( nIdx >= 0, "unkown category" ); - if (nIdx >= 0) - pToolBoxCmd = vToolBoxCategories[nIdx]; + sal_Int16 nIdx = GetToolBoxCategoriesIndex( nCategoryRID ); + DBG_ASSERT( nIdx >= 0, "unkown category" ); + if (nIdx >= 0) + pToolBoxCmd = vToolBoxCategories[nIdx]; - // calculate actual size of window to use - Size aCatSize( aToolBoxCat.CalcWindowSizePixel( 2 ) ); - Size aCmdSize( pToolBoxCmd->CalcWindowSizePixel( nLines ) ); - DBG_ASSERT( aCatSize.Width() == aCmdSize.Width(), "width mismatch" ); - // main window settings - Size aWndSize ( aCatSize.Width(), pToolBoxCmd->GetPosPixel().Y() + aCmdSize.Height() + 3); - SetOutputSizePixel( aWndSize ); + // calculate actual size of window to use + Size aCatSize( aToolBoxCat.CalcWindowSizePixel( 2 ) ); + Size aCmdSize( pToolBoxCmd->CalcWindowSizePixel( nLines ) ); + DBG_ASSERT( aCatSize.Width() == aCmdSize.Width(), "width mismatch" ); + // main window settings + Size aWndSize ( aCatSize.Width(), pToolBoxCmd->GetPosPixel().Y() + aCmdSize.Height() + 3); + SetOutputSizePixel( aWndSize ); - if (nActiveCategoryRID) - aToolBoxCat.CheckItem(nActiveCategoryRID, FALSE); - nActiveCategoryRID = nCategoryRID; - aToolBoxCat.CheckItem(nActiveCategoryRID, TRUE); + if (nActiveCategoryRID) + aToolBoxCat.CheckItem(nActiveCategoryRID, FALSE); + nActiveCategoryRID = nCategoryRID; + aToolBoxCat.CheckItem(nActiveCategoryRID, TRUE); - pToolBoxCmd->Show(); - } + pToolBoxCmd->Show(); } -IMPL_LINK_INLINE_START( SmToolBoxWindow, CategoryClickHdl, ToolBox*, pToolBox) +IMPL_LINK( SmToolBoxWindow, CategoryClickHdl, ToolBox*, pToolBox) { int nItemId = pToolBox->GetCurItemId(); if (nItemId != 0) SetCategory( sal::static_int_cast< USHORT >(nItemId) ); return 0; } -IMPL_LINK_INLINE_END( SmToolBoxWindow, CategoryClickHdl, ToolBox*, pToolBox) -IMPL_LINK_INLINE_START( SmToolBoxWindow, CmdSelectHdl, ToolBox*, pToolBox) +IMPL_LINK( SmToolBoxWindow, CmdSelectHdl, ToolBox*, pToolBox) { SmViewShell *pViewSh = GetView(); if (pViewSh) @@ -392,7 +384,6 @@ IMPL_LINK_INLINE_START( SmToolBoxWindow, CmdSelectHdl, ToolBox*, pToolBox) new SfxInt16Item(SID_INSERTCOMMAND, pToolBox->GetCurItemId()), 0L); return 0; } -IMPL_LINK_INLINE_END( SmToolBoxWindow, CmdSelectHdl, ToolBox*, pToolBox) /**************************************************************************/ diff --git a/starmath/source/toolbox.hrc b/starmath/source/toolbox.hrc index 687521d76a32..29adff303a3e 100644 --- a/starmath/source/toolbox.hrc +++ b/starmath/source/toolbox.hrc @@ -28,7 +28,19 @@ #ifndef _TOOLBOX_HRC_ #define _TOOLBOX_HRC_ -#define FL_TOOLBOX_CAT_DELIM 21 +#define FL_TOOLBOX_CAT_DELIM 1 +#define TOOLBOX_CATALOG 10 +#define TOOLBOX_CAT_A 11 +#define TOOLBOX_CAT_B 12 +#define TOOLBOX_CAT_C 13 +#define TOOLBOX_CAT_D 14 +#define TOOLBOX_CAT_E 15 +#define TOOLBOX_CAT_F 16 +#define TOOLBOX_CAT_G 17 +#define TOOLBOX_CAT_H 18 +#define TOOLBOX_CAT_I 19 + +#define NUM_TBX_CATEGORIES (TOOLBOX_CAT_I - TOOLBOX_CAT_A + 1) #endif diff --git a/starmath/source/toolbox.src b/starmath/source/toolbox.src new file mode 100644 index 000000000000..ead1b32810c3 --- /dev/null +++ b/starmath/source/toolbox.src @@ -0,0 +1,1837 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + + +#include <sfx2/sfx.hrc> +#include <svx/globlmn.hrc> +#include "starmath.hrc" +#include "toolbox.hrc" + +#define IMAGE_STDBTN_COLOR Color { Red = 0xff00; Green = 0x0000; Blue = 0xff00; } +#define IMAGE_STDBTN_COLOR_HC IMAGE_STDBTN_COLOR + + +FloatingWindow RID_TOOLBOXWINDOW +{ + HelpId = HID_SMA_OPERATOR_WIN ; + Border = TRUE ; + Moveable = TRUE ; + Closeable = TRUE ; + Hide = TRUE ; + OutputSize = TRUE ; + SVLook = TRUE ; + Size = MAP_APPFONT ( 0 , 0 ) ; // to be calculated programmatically + Text [ en-US ] = "Elements" ; + + ToolBox TOOLBOX_CATALOG + { + // main menu of selection-window + HelpId = HID_SMA_SELECTION_TBX ; + Pos = MAP_APPFONT ( 0 , 0 ) ; + Size = MAP_APPFONT ( 65 , 38 ) ; + SVLook = TRUE ; + LineCount = 2 ; + ItemList = + { + ToolBoxItem + { + Identifier = RID_UNBINOPS_CAT ; + HelpId = HID_SMA_UNBINOPS_CAT ; + Text [ en-US ] = "Unary/Binary Operators" ; + }; + ToolBoxItem + { + Identifier = RID_RELATIONS_CAT ; + HelpId = HID_SMA_RELATIONS_CAT ; + Text [ en-US ] = "Relations" ; + }; + ToolBoxItem + { + Identifier = RID_SETOPERATIONS_CAT ; + HelpId = HID_SMA_SETOPERATIONS_CAT ; + Text [ en-US ] = "Set Operations" ; + }; + ToolBoxItem + { + Identifier = RID_FUNCTIONS_CAT ; + HelpId = HID_SMA_FUNCTIONS_CAT ; + Text [ en-US ] = "Functions" ; + }; + ToolBoxItem + { + Identifier = RID_OPERATORS_CAT ; + HelpId = HID_SMA_OPERATORS_CAT ; + Text [ en-US ] = "Operators" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_ATTRIBUTES_CAT ; + HelpId = HID_SMA_ATTRIBUTES_CAT ; + Text [ en-US ] = "Attributes" ; + }; + ToolBoxItem + { + Identifier = RID_MISC_CAT ; + HelpId = HID_SMA_MISC_CAT ; + Text [ en-US ] = "Others"; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_SPACE ; + }; + ToolBoxItem + { + Identifier = RID_BRACKETS_CAT ; + HelpId = HID_SMA_BRACKETS_CAT ; + Text [ en-US ] = "Brackets" ; + }; + ToolBoxItem + { + Identifier = RID_FORMAT_CAT ; + HelpId = HID_SMA_FORMAT_CAT ; + Text [ en-US ] = "Formats" ; + }; + }; + }; + + FixedLine FL_TOOLBOX_CAT_DELIM + { + Pos = MAP_APPFONT ( 0 , 44 ) ; + Size = MAP_APPFONT ( 65 , 8 ) ; + }; + + ToolBox TOOLBOX_CAT_A + { + // unary/binary operators + HelpId = HID_SMA_UNBINOPS_TBX ; + Pos = MAP_APPFONT ( 0 , 45 ) ; + Size = MAP_APPFONT ( 65 , 95 ) ; + SVLook = TRUE ; + Hide = TRUE ; + LineCount = 4 ; + + ItemList = + { + ToolBoxItem + { + Identifier = RID_PLUSX ; + HelpId = HID_SMA_PLUSX ; + Text [ en-US ] = "+ Sign" ; + }; + ToolBoxItem + { + Identifier = RID_MINUSX ; + HelpId = HID_SMA_MINUSX ; + Text [ en-US ] = "- Sign" ; + }; + ToolBoxItem + { + Identifier = RID_PLUSMINUSX ; + HelpId = HID_SMA_PLUSMINUSX ; + Text [ en-US ] = "+- Sign" ; + }; + ToolBoxItem + { + Identifier = RID_MINUSPLUSX ; + HelpId = HID_SMA_MINUSPLUSX ; + Text [ en-US ] = "-+ Sign" ; + }; + ToolBoxItem + { + Identifier = RID_NEGX ; + HelpId = HID_SMA_NEGX ; + Text [ en-US ] = "Boolean NOT" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_XPLUSY ; + HelpId = HID_SMA_XPLUSY ; + Text [ en-US ] = "Addition +" ; + }; + ToolBoxItem + { + Identifier = RID_XCDOTY ; + HelpId = HID_SMA_XCDOTY ; + Text [ en-US ] = "Multiplication (Dot )" ; + }; + ToolBoxItem + { + Identifier = RID_XTIMESY ; + HelpId = HID_SMA_XTIMESY ; + Text [ en-US ] = "Multiplication (x)" ; + }; + ToolBoxItem + { + Identifier = RID_XSYMTIMESY ; + HelpId = HID_SMA_XSYMTIMESY ; + Text [ en-US ] = "Multiplication (*)" ; + }; + ToolBoxItem + { + Identifier = RID_XANDY ; + HelpId = HID_SMA_XANDY ; + Text [ en-US ] = "Boolean AND" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_XMINUSY ; + HelpId = HID_SMA_XMINUSY ; + Text [ en-US ] = "Subtraction -" ; + }; + ToolBoxItem + { + Identifier = RID_XOVERY ; + HelpId = HID_SMA_XOVERY ; + Text [ en-US ] = "Division (Fraction)" ; + }; + ToolBoxItem + { + Identifier = RID_XDIVY ; + HelpId = HID_SMA_XDIVY ; + Text [ en-US ] = "Division (÷)" ; + }; + ToolBoxItem + { + Identifier = RID_XSYMDIVIDEY ; + HelpId = HID_SMA_XSYMDIVIDEY ; + Text [ en-US ] = "Division (Slash)" ; + }; + ToolBoxItem + { + Identifier = RID_XORY ; + HelpId = HID_SMA_XORY ; + Text [ en-US ] = "Boolean OR" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_XCIRCY ; + HelpId = HID_SMA_XCIRCY ; + Text [ en-US ] = "Concatenate"; + }; + }; + }; + + ToolBox TOOLBOX_CAT_B + { + // relations + HelpId = HID_SMA_RELATIONS_TBX ; + Pos = MAP_APPFONT ( 0 , 45 ) ; + Size = MAP_APPFONT ( 65 , 95 ) ; + SVLook = TRUE ; + Hide = TRUE ; + LineCount = 5 ; + ItemList = + { + ToolBoxItem + { + Identifier = RID_XEQY ; + HelpId = HID_SMA_XEQY ; + Text [ en-US ] = "Is Equal" ; + }; + ToolBoxItem + { + Identifier = RID_XNEQY ; + HelpId = HID_SMA_XNEQY ; + Text [ en-US ] = "Is Not Equal" ; + }; + ToolBoxItem + { + Identifier = RID_XAPPROXY ; + HelpId = HID_SMA_XAPPROXY ; + Text [ en-US ] = "Is Approximately Equal" ; + }; + ToolBoxItem + { + Identifier = RID_XDIVIDESY ; + HelpId = HID_SMA_XDIVIDESY ; + Text [ en-US ] = "Divides"; + }; + ToolBoxItem + { + Identifier = RID_XNDIVIDESY ; + HelpId = HID_SMA_XNDIVIDESY ; + Text [ en-US ] = "Does Not Divide"; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_XLTY ; + HelpId = HID_SMA_XLTY ; + Text [ en-US ] = "Is Less Than" ; + }; + ToolBoxItem + { + Identifier = RID_XGTY ; + HelpId = HID_SMA_XGTY ; + Text [ en-US ] = "Is Greater Than" ; + }; + ToolBoxItem + { + Identifier = RID_XSIMEQY ; + HelpId = HID_SMA_XSIMEQY ; + /* ### ACHTUNG: Neuer Text in Resource? ist �hnlich oder gleich : ist �hnlich oder glech */ + Text [ en-US ] = "Is Similar Or Equal" ; + }; + ToolBoxItem + { + Identifier = RID_XPARALLELY ; + HelpId = HID_SMA_XPARALLELY ; + Text [ en-US ] = "Is Parallel To" ; + }; + ToolBoxItem + { + Identifier = RID_XORTHOY ; + HelpId = HID_SMA_XORTHOY ; + Text [ en-US ] = "Is Orthogonal To" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_XLESLANTY ; + HelpId = HID_SMA_XLESLANTY ; + Text [ en-US ] = "Is Less Than Or Equal To" ; + }; + ToolBoxItem + { + Identifier = RID_XGESLANTY ; + HelpId = HID_SMA_XGESLANTY ; + Text [ en-US ] = "Is Greater Than Or Equal To" ; + }; + ToolBoxItem + { + Identifier = RID_XSIMY ; + HelpId = HID_SMA_XSIMY ; + Text [ en-US ] = "Is Similar To" ; + }; + ToolBoxItem + { + Identifier = RID_XEQUIVY ; + HelpId = HID_SMA_XEQUIVY ; + Text [ en-US ] = "Is Congruent To" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_SPACE ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_XLEY ; + HelpId = HID_SMA_XLEY ; + Text [ en-US ] = "Is Less Than Or Equal To" ; + }; + ToolBoxItem + { + Identifier = RID_XGEY ; + HelpId = HID_SMA_XGEY ; + Text [ en-US ] = "Is Greater Than Or Equal To" ; + }; + ToolBoxItem + { + Identifier = RID_XPROPY ; + HelpId = HID_SMA_XPROPY ; + Text [ en-US ] = "Is Proportional To" ; + }; + ToolBoxItem + { + Identifier = RID_XTOWARDY ; + HelpId = HID_SMA_XTOWARDY ; + Text [ en-US ] = "Toward" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_SPACE ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_DLARROW ; + HelpId = HID_SMA_DLARROW ; + Text [ en-US ] = "Double Arrow Left"; + }; + ToolBoxItem + { + Identifier = RID_DLRARROW ; + HelpId = HID_SMA_DLRARROW ; + Text [ en-US ] = "Double Arrow Left And Right"; + }; + ToolBoxItem + { + Identifier = RID_DRARROW ; + HelpId = HID_SMA_DRARROW ; + Text [ en-US ] = "Double Arrow Right"; + }; + }; + }; + + ToolBox TOOLBOX_CAT_C + { + // set operations + HelpId = HID_SMA_SETOPERATIONS_TBX ; + Pos = MAP_APPFONT ( 0 , 45 ) ; + Size = MAP_APPFONT ( 65 , 95 ) ; + SVLook = TRUE ; + Hide = TRUE ; + LineCount = 5 ; + ItemList = + { + ToolBoxItem + { + Identifier = RID_XINY ; + HelpId = HID_SMA_XINY ; + Text [ en-US ] = "Is In" ; + }; + ToolBoxItem + { + Identifier = RID_XNOTINY ; + HelpId = HID_SMA_XNOTINY ; + Text [ en-US ] = "Is Not In" ; + }; + ToolBoxItem + { + Identifier = RID_XOWNSY ; + HelpId = HID_SMA_XOWNSY ; + Text [ en-US ] = "Owns" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_SPACE ; + }; + ToolBoxItem + { + Identifier = RID_EMPTYSET ; + HelpId = HID_SMA_EMPTYSET ; + Text [ en-US ] = "Empty Set"; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_XINTERSECTIONY ; + HelpId = HID_SMA_XINTERSECTIONY ; + Text [ en-US ] = "Intersection" ; + }; + ToolBoxItem + { + Identifier = RID_XUNIONY ; + HelpId = HID_SMA_XUNIONY ; + Text [ en-US ] = "Union" ; + }; + ToolBoxItem + { + Identifier = RID_XSETMINUSY ; + HelpId = HID_SMA_XSETMINUSY ; + Text [ en-US ] = "Difference" ; + }; + ToolBoxItem + { + Identifier = RID_XSLASHY ; + HelpId = HID_SMA_XSLASHY ; + Text [ en-US ] = "Quotient Set" ; + }; + ToolBoxItem + { + Identifier = RID_ALEPH ; + HelpId = HID_SMA_ALEPH ; + Text [ en-US ] = "Aleph"; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_XSUBSETY ; + HelpId = HID_SMA_XSUBSETY ; + Text [ en-US ] = "Subset" ; + }; + ToolBoxItem + { + Identifier = RID_XSUBSETEQY ; + HelpId = HID_SMA_XSUBSETEQY ; + Text [ en-US ] = "Subset Or Equal To" ; + }; + ToolBoxItem + { + Identifier = RID_XSUPSETY ; + HelpId = HID_SMA_XSUPSETY ; + Text [ en-US ] = "Superset" ; + }; + ToolBoxItem + { + Identifier = RID_XSUPSETEQY ; + HelpId = HID_SMA_XSUPSETEQY ; + Text [ en-US ] = "Superset Or Equal To" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_SPACE ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_XNSUBSETY ; + HelpId = HID_SMA_XNSUBSETY ; + Text [ en-US ] = "Not Subset" ; + }; + ToolBoxItem + { + Identifier = RID_XNSUBSETEQY ; + HelpId = HID_SMA_XNSUBSETEQY ; + Text [ en-US ] = "Not Subset Or Equal" ; + }; + ToolBoxItem + { + Identifier = RID_XNSUPSETY ; + HelpId = HID_SMA_XNSUPSETY ; + Text [ en-US ] = "Not Superset" ; + }; + ToolBoxItem + { + Identifier = RID_XNSUPSETEQY ; + HelpId = HID_SMA_XNSUPSETEQY ; + Text [ en-US ] = "Not Superset Or Equal" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_SPACE ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_SETN ; + HelpId = HID_SMA_SETN ; + Text [ en-US ] = "Natural Numbers Set"; + }; + ToolBoxItem + { + Identifier = RID_SETZ ; + HelpId = HID_SMA_SETZ ; + Text [ en-US ] = "Integers Set"; + }; + ToolBoxItem + { + Identifier = RID_SETQ ; + HelpId = HID_SMA_SETQ ; + Text [ en-US ] = "Set of Rational Numbers"; + }; + ToolBoxItem + { + Identifier = RID_SETR ; + HelpId = HID_SMA_SETR ; + Text [ en-US ] = "Real Numbers Set"; + }; + ToolBoxItem + { + Identifier = RID_SETC ; + HelpId = HID_SMA_SETC ; + Text [ en-US ] = "Complex Numbers Set"; + }; + }; + }; + + ToolBox TOOLBOX_CAT_D + { + // functions + HelpId = HID_SMA_FUNCTIONS_TBX ; + Pos = MAP_APPFONT ( 0 , 45 ) ; + Size = MAP_APPFONT ( 65 , 95 ) ; + SVLook = TRUE ; + Hide = TRUE ; + LineCount = 5 ; + ItemList = + { + ToolBoxItem + { + Identifier = RID_EX ; + HelpId = HID_SMA_EX ; + Text [ en-US ] = "Exponential Function" ; + }; + ToolBoxItem + { + Identifier = RID_LNX ; + HelpId = HID_SMA_LNX ; + Text [ en-US ] = "Natural Logarithm" ; + }; + ToolBoxItem + { + Identifier = RID_EXPX ; + HelpId = HID_SMA_EXPX ; + Text [ en-US ] = "Exponential Function" ; + }; + ToolBoxItem + { + Identifier = RID_LOGX ; + HelpId = HID_SMA_LOGX ; + Text [ en-US ] = "Logarithm" ; + }; + ToolBoxItem + { + Identifier = RID_RSUPX ; + HelpId = HID_SMA_RSUPX ; + Text [ en-US ] = "Power"; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_SINX ; + HelpId = HID_SMA_SINX ; + Text [ en-US ] = "Sine" ; + }; + ToolBoxItem + { + Identifier = RID_COSX ; + HelpId = HID_SMA_COSX ; + Text [ en-US ] = "Cosine" ; + }; + ToolBoxItem + { + Identifier = RID_TANX ; + HelpId = HID_SMA_TANX ; + Text [ en-US ] = "Tangent" ; + }; + ToolBoxItem + { + Identifier = RID_COTX ; + HelpId = HID_SMA_COTX ; + Text [ en-US ] = "Cotangent" ; + }; + ToolBoxItem + { + Identifier = RID_SQRTX ; + HelpId = HID_SMA_SQRTX ; + Text [ en-US ] = "Square Root" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_ARCSINX ; + HelpId = HID_SMA_ARCSINX ; + Text [ en-US ] = "Arcsine" ; + }; + ToolBoxItem + { + Identifier = RID_ARCCOSX ; + HelpId = HID_SMA_ARCCOSX ; + Text [ en-US ] = "Arccosine" ; + }; + ToolBoxItem + { + Identifier = RID_ARCTANX ; + HelpId = HID_SMA_ARCTANX ; + Text [ en-US ] = "Arctangent" ; + }; + ToolBoxItem + { + Identifier = RID_ARCCOTX ; + HelpId = HID_SMA_ARCCOTX ; + Text [ en-US ] = "Arccotangent" ; + }; + ToolBoxItem + { + Identifier = RID_NROOTXY ; + HelpId = HID_SMA_NROOTXY ; + Text [ en-US ] = "N-th Root" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_SINHX ; + HelpId = HID_SMA_SINHX ; + Text [ en-US ] = "Hyperbolic Sine" ; + }; + ToolBoxItem + { + Identifier = RID_COSHX ; + HelpId = HID_SMA_COSHX ; + Text [ en-US ] = "Hyperbolic Cosine" ; + }; + ToolBoxItem + { + Identifier = RID_TANHX ; + HelpId = HID_SMA_TANHX ; + Text [ en-US ] = "Hyperbolic Tangent" ; + }; + ToolBoxItem + { + Identifier = RID_COTHX ; + HelpId = HID_SMA_COTHX ; + Text [ en-US ] = "Hyperbolic Cotangent" ; + }; + ToolBoxItem + { + Identifier = RID_ABSX ; + HelpId = HID_SMA_ABSX ; + Text [ en-US ] = "Absolute Value" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_ARSINHX ; + HelpId = HID_SMA_ARSINHX ; + Text [ en-US ] = "Area Hyperbolic Sine" ; + }; + ToolBoxItem + { + Identifier = RID_ARCOSHX ; + HelpId = HID_SMA_ARCOSHX ; + Text [ en-US ] = "Area Hyperbolic Cosine" ; + }; + ToolBoxItem + { + Identifier = RID_ARTANHX ; + HelpId = HID_SMA_ARTANHX ; + Text [ en-US ] = "Area Hyperbolic Tangent" ; + }; + ToolBoxItem + { + Identifier = RID_ARCOTHX ; + HelpId = HID_SMA_ARCOTHX ; + Text [ en-US ] = "Area Hyperbolic Cotangent" ; + }; + ToolBoxItem + { + Identifier = RID_FACTX ; + HelpId = HID_SMA_FACTX ; + Text [ en-US ] = "Factorial" ; + }; + }; + }; + + ToolBox TOOLBOX_CAT_E + { + // operators + HelpId = HID_SMA_OPERATORS_TBX ; + Pos = MAP_APPFONT ( 0 , 45 ) ; + Size = MAP_APPFONT ( 65 , 95 ) ; + SVLook = TRUE ; + Hide = TRUE ; + LineCount = 3 ; + ItemList = + { + ToolBoxItem + { + Identifier = RID_LIMX ; + HelpId = HID_SMA_LIMX ; + Text [ en-US ] = "Limes" ; + }; + ToolBoxItem + { + Identifier = RID_SUMX ; + HelpId = HID_SMA_SUMX ; + Text [ en-US ] = "Sum" ; + }; + ToolBoxItem + { + Identifier = RID_PRODX ; + HelpId = HID_SMA_PRODX ; + Text [ en-US ] = "Product" ; + }; + ToolBoxItem + { + Identifier = RID_COPRODX ; + HelpId = HID_SMA_COPRODX ; + Text [ en-US ] = "Coproduct" ; + }; + ToolBoxItem + { + Identifier = RID_FROMXTOY ; + HelpId = HID_SMA_FROMXTOY ; + Text [ en-US ] = "Upper And Lower Limit" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_INTX ; + HelpId = HID_SMA_INTX ; + Text [ en-US ] = "Integral" ; + }; + ToolBoxItem + { + Identifier = RID_IINTX ; + HelpId = HID_SMA_IINTX ; + Text [ en-US ] = "Double Integral" ; + }; + ToolBoxItem + { + Identifier = RID_IIINTX ; + HelpId = HID_SMA_IIINTX ; + Text [ en-US ] = "Triple Integral" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_SPACE ; + }; + ToolBoxItem + { + Identifier = RID_FROMX ; + HelpId = HID_SMA_FROMX ; + Text [ en-US ] = "Lower Limit" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_LINTX ; + HelpId = HID_SMA_LINTX ; + Text [ en-US ] = "Curve Integral" ; + }; + ToolBoxItem + { + Identifier = RID_LLINTX ; + HelpId = HID_SMA_LLINTX ; + Text [ en-US ] = "Double Curve Integral" ; + }; + ToolBoxItem + { + Identifier = RID_LLLINTX ; + HelpId = HID_SMA_LLLINTX ; + Text [ en-US ] = "Triple Curve Integral" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_SPACE ; + }; + ToolBoxItem + { + Identifier = RID_TOX ; + HelpId = HID_SMA_TOX ; + Text [ en-US ] = "Upper Limit" ; + }; + }; + }; + + ToolBox TOOLBOX_CAT_F + { + // attributs + HelpId = HID_SMA_ATTRIBUTES_TBX ; + Pos = MAP_APPFONT ( 0 , 45 ) ; + Size = MAP_APPFONT ( 65 , 95 ) ; + SVLook = TRUE ; + Hide = TRUE ; + LineCount = 5 ; + ItemList = + { + ToolBoxItem + { + Identifier = RID_ACUTEX ; + HelpId = HID_SMA_ACUTEX ; + Text [ en-US ] = "Acute Accent"; + }; + ToolBoxItem + { + Identifier = RID_GRAVEX ; + HelpId = HID_SMA_GRAVEX ; + Text [ en-US ] = "Grave Accent"; + }; + ToolBoxItem + { + Identifier = RID_CHECKX ; + HelpId = HID_SMA_CHECKX ; + Text [ en-US ] = "Reverse Circumflex" ; + }; + ToolBoxItem + { + Identifier = RID_BREVEX ; + HelpId = HID_SMA_BREVEX ; + Text [ en-US ] = "Breve" ; + }; + ToolBoxItem + { + Identifier = RID_CIRCLEX ; + HelpId = HID_SMA_CIRCLEX ; + Text [ en-US ] = "Circle" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_VECX ; + HelpId = HID_SMA_VECX ; + Text [ en-US ] = "Vector Arrow" ; + }; + ToolBoxItem + { + Identifier = RID_TILDEX ; + HelpId = HID_SMA_TILDEX ; + Text [ en-US ] = "Tilde" ; + }; + ToolBoxItem + { + Identifier = RID_HATX ; + HelpId = HID_SMA_HATX ; + Text [ en-US ] = "Circumflex" ; + }; + ToolBoxItem + { + Identifier = RID_BARX ; + HelpId = HID_SMA_BARX ; + Text [ en-US ] = "Line Above" ; + }; + ToolBoxItem + { + Identifier = RID_DOTX ; + HelpId = HID_SMA_DOTX ; + Text [ en-US ] = "Dot" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_WIDEVECX ; + HelpId = HID_SMA_WIDEVECX ; + Text [ en-US ] = "Large Vector Arrow"; + }; + ToolBoxItem + { + Identifier = RID_WIDETILDEX ; + HelpId = HID_SMA_WIDETILDEX ; + Text [ en-US ] = "Large Tilde"; + }; + ToolBoxItem + { + Identifier = RID_WIDEHATX ; + HelpId = HID_SMA_WIDEHATX ; + Text [ en-US ] = "Large Circumflex"; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_SPACE ; + }; + ToolBoxItem + { + Identifier = RID_DDOTX ; + HelpId = HID_SMA_DDOTX ; + Text [ en-US ] = "Double Dot" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_OVERLINEX ; + HelpId = HID_SMA_OVERLINEX ; + Text [ en-US ] = "Line Over" ; + }; + ToolBoxItem + { + Identifier = RID_UNDERLINEX ; + HelpId = HID_SMA_UNDERLINEX ; + Text [ en-US ] = "Line Below" ; + }; + ToolBoxItem + { + Identifier = RID_OVERSTRIKEX ; + HelpId = HID_SMA_OVERSTRIKEX ; + Text [ en-US ] = "Line Through" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_SPACE ; + }; + ToolBoxItem + { + Identifier = RID_DDDOTX ; + HelpId = HID_SMA_DDDOTX ; + Text [ en-US ] = "Triple Dot" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_PHANTOMX ; + HelpId = HID_SMA_PHANTOMX ; + Text [ en-US ] = "Transparent" ; + }; + ToolBoxItem + { + Identifier = RID_BOLDX ; + HelpId = HID_SMA_BOLDX ; + Text [ en-US ] = "Bold Font" ; + }; + ToolBoxItem + { + Identifier = RID_ITALX ; + HelpId = HID_SMA_ITALX ; + Text [ en-US ] = "Italic Font" ; + }; + ToolBoxItem + { + Identifier = RID_SIZEXY ; + HelpId = HID_SMA_SIZEXY ; + Text [ en-US ] = "Resize" ; + }; + ToolBoxItem + { + Identifier = RID_FONTXY ; + HelpId = HID_SMA_FONTXY ; + Text [ en-US ] = "Change Font" ; + }; + }; + }; + + ToolBox TOOLBOX_CAT_G + { + // parentheses + HelpId = HID_SMA_BRACKETS_TBX ; + Pos = MAP_APPFONT ( 0 , 45 ) ; + Size = MAP_APPFONT ( 65 , 95 ) ; + SVLook = TRUE ; + Hide = TRUE ; + LineCount = 5 ; + ItemList = + { + ToolBoxItem + { + Identifier = RID_LRPARENTX ; + HelpId = HID_SMA_LRPARENTX ; + Text [ en-US ] = "Round Brackets" ; + }; + ToolBoxItem + { + Identifier = RID_LRBRACKETX ; + HelpId = HID_SMA_LRBRACKETX ; + Text [ en-US ] = "Square Brackets" ; + }; + ToolBoxItem + { + Identifier = RID_LRDBRACKETX ; + HelpId = HID_SMA_LRDBRACKETX ; + Text [ en-US ] = "Double Square Brackets"; + }; + ToolBoxItem + { + Identifier = RID_LRLINEX ; + HelpId = HID_SMA_LRLINEX ; + Text [ en-US ] = "Single Lines" ; + }; + ToolBoxItem + { + Identifier = RID_LRDLINEX ; + HelpId = HID_SMA_LRDLINEX ; + Text [ en-US ] = "Double Lines" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_LRBRACEX ; + HelpId = HID_SMA_LRBRACEX ; + Text [ en-US ] = "Braces" ; + }; + ToolBoxItem + { + Identifier = RID_LRANGLEX ; + HelpId = HID_SMA_LRANGLEX ; + Text [ en-US ] = "Angle Brackets" ; + }; + ToolBoxItem + { + Identifier = RID_LMRANGLEXY ; + HelpId = HID_SMA_LMRANGLEXY ; + Text [ en-US ] = "Operator Brackets"; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_SPACE ; + }; + ToolBoxItem + { + Identifier = RID_LRGROUPX ; + HelpId = HID_SMA_LRGROUPX ; + Text [ en-US ] = "Group Brackets" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_SLRPARENTX ; + HelpId = HID_SMA_SLRPARENTX ; + Text [ en-US ] = "Round Brackets (Scalable)" ; + }; + ToolBoxItem + { + Identifier = RID_SLRBRACKETX ; + HelpId = HID_SMA_SLRBRACKETX ; + Text [ en-US ] = "Square Brackets (Scalable)" ; + }; + ToolBoxItem + { + Identifier = RID_SLRDBRACKETX ; + HelpId = HID_SMA_SLRDBRACKETX ; + Text [ en-US ] = "Double Square Brackets (Scalable)"; + }; + ToolBoxItem + { + Identifier = RID_SLRLINEX ; + HelpId = HID_SMA_SLRLINEX ; + Text [ en-US ] = "Single Lines (Scalable)" ; + }; + ToolBoxItem + { + Identifier = RID_SLRDLINEX ; + HelpId = HID_SMA_SLRDLINEX ; + Text [ en-US ] = "Double Lines (Scalable)" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_SLRBRACEX ; + HelpId = HID_SMA_SLRBRACEX ; + Text [ en-US ] = "Braces (Scalable)" ; + }; + ToolBoxItem + { + Identifier = RID_SLRANGLEX ; + HelpId = HID_SMA_SLRANGLEX ; + Text [ en-US ] = "Angle Brackets (Scalable)" ; + }; + ToolBoxItem + { + Identifier = RID_SLMRANGLEXY ; + HelpId = HID_SMA_SLMRANGLEXY ; + Text [ en-US ] = "Operator Brackets (Scalable)"; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_XOVERBRACEY ; + HelpId = HID_SMA_XOVERBRACEY ; + Text [ en-US ] = "Braces Top (Scalable)"; + }; + ToolBoxItem + { + Identifier = RID_XUNDERBRACEY ; + HelpId = HID_SMA_XUNDERBRACEY ; + Text [ en-US ] = "Braces Bottom (Scalable)"; + }; + }; + }; + + ToolBox TOOLBOX_CAT_H + { + // format + HelpId = HID_SMA_FORMAT_TBX ; + Pos = MAP_APPFONT ( 0 , 45 ) ; + Size = MAP_APPFONT ( 65 , 95 ) ; + SVLook = TRUE ; + Hide = TRUE ; + LineCount = 3 ; + ItemList = + { + ToolBoxItem + { + Identifier = RID_LSUPX ; + HelpId = HID_SMA_LSUPX ; + Text [ en-US ] = "Superscript Left" ; + }; + ToolBoxItem + { + Identifier = RID_CSUPX ; + HelpId = HID_SMA_CSUPX ; + Text [ en-US ] = "Superscript Top"; + }; + ToolBoxItem + { + Identifier = RID_RSUPX ; + HelpId = HID_SMA_RSUPX ; + Text [ en-US ] = "Superscript Right" ; + }; + ToolBoxItem + { + Identifier = RID_BINOMXY ; + HelpId = HID_SMA_BINOMXY ; + Text [ en-US ] = "Vertical Stack (2 Elements)" ; + }; + ToolBoxItem + { + Identifier = RID_NEWLINE ; + HelpId = HID_SMA_NEWLINE ; + Text [ en-US ] = "New Line" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_LSUBX ; + HelpId = HID_SMA_LSUBX ; + Text [ en-US ] = "Subscript Left" ; + }; + ToolBoxItem + { + Identifier = RID_CSUBX ; + HelpId = HID_SMA_CSUBX ; + Text [ en-US ] = "Subscript Bottom"; + }; + ToolBoxItem + { + Identifier = RID_RSUBX ; + HelpId = HID_SMA_RSUBX ; + Text [ en-US ] = "Subscript Right" ; + }; + ToolBoxItem + { + Identifier = RID_STACK ; + HelpId = HID_SMA_STACK ; + Text [ en-US ] = "Vertical Stack" ; + }; + ToolBoxItem + { + Identifier = RID_SBLANK ; + HelpId = HID_SMA_SBLANK ; + Text [ en-US ] = "Small Gap" ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_ALIGNLX ; + HelpId = HID_SMA_ALIGNLX ; + Text [ en-US ] = "Align Left" ; + }; + ToolBoxItem + { + Identifier = RID_ALIGNCX ; + HelpId = HID_SMA_ALIGNCX ; + Text [ en-US ] = "Align Center" ; + }; + ToolBoxItem + { + Identifier = RID_ALIGNRX ; + HelpId = HID_SMA_ALIGNRX ; + Text [ en-US ] = "Align Right" ; + }; + ToolBoxItem + { + Identifier = RID_MATRIX ; + HelpId = HID_SMA_MATRIX ; + Text [ en-US ] = "Matrix Stack" ; + }; + ToolBoxItem + { + Identifier = RID_BLANK ; + HelpId = HID_SMA_BLANK ; + Text [ en-US ] = "Gap" ; + }; + }; + }; + + ToolBox TOOLBOX_CAT_I + { + // misc + HelpId = HID_SMA_FORMAT_TBX ; + Pos = MAP_APPFONT ( 0 , 45 ) ; + Size = MAP_APPFONT ( 65 , 95 ) ; + SVLook = TRUE ; + Hide = TRUE ; + LineCount = 4 ; + ItemList = + { + ToolBoxItem + { + Identifier = RID_INFINITY ; + HelpId = HID_SMA_INFINITY ; + Text [ en-US ] = "infinite"; + }; + ToolBoxItem + { + Identifier = RID_PARTIAL ; + HelpId = HID_SMA_PARTIAL ; + Text [ en-US ] = "Partial"; + }; + ToolBoxItem + { + Identifier = RID_NABLA ; + HelpId = HID_SMA_NABLA ; + Text [ en-US ] = "Nabla"; + }; + ToolBoxItem + { + Identifier = RID_EXISTS ; + HelpId = HID_SMA_EXISTS ; + Text [ en-US ] = "There Exists"; + }; + ToolBoxItem + { + Identifier = RID_FORALL ; + HelpId = HID_SMA_FORALL ; + Text [ en-US ] = "For All"; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_HBAR ; + HelpId = HID_SMA_HBAR ; + Text [ en-US ] = "h Bar"; + }; + ToolBoxItem + { + Identifier = RID_LAMBDABAR ; + HelpId = HID_SMA_LAMBDABAR ; + Text [ en-US ] = "Lambda Bar"; + }; + ToolBoxItem + { + Identifier = RID_RE ; + HelpId = HID_SMA_RE ; + Text [ en-US ] = "Real Part"; + }; + ToolBoxItem + { + Identifier = RID_IM ; + HelpId = HID_SMA_IM ; + Text [ en-US ] = "Imaginary Part"; + }; + ToolBoxItem + { + Identifier = RID_WP ; + HelpId = HID_SMA_WP ; + Text [ en-US ] = "Weierstrass p"; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_LEFTARROW ; + HelpId = HID_SMA_LEFTARROW ; + Text [ en-US ] = "Left Arrow"; + }; + ToolBoxItem + { + Identifier = RID_RIGHTARROW ; + HelpId = HID_SMA_RIGHTARROW ; + Text [ en-US ] = "Right Arrow"; + }; + ToolBoxItem + { + Identifier = RID_UPARROW ; + HelpId = HID_SMA_UPARROW ; + Text [ en-US ] = "Up Arrow"; + }; + ToolBoxItem + { + Identifier = RID_DOWNARROW ; + HelpId = HID_SMA_DOWNARROW ; + Text [ en-US ] = "Down Arrow"; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_SPACE ; + }; + ToolBoxItem + { + Type = TOOLBOXITEM_BREAK ; + }; + ToolBoxItem + { + Identifier = RID_DOTSLOW ; + HelpId = HID_SMA_DOTSLOW ; + Text [ en-US ] = "Dots At Bottom"; + }; + ToolBoxItem + { + Identifier = RID_DOTSAXIS ; + HelpId = HID_SMA_DOTSAXIS ; + Text [ en-US ] = "Dots In Middle"; + }; + ToolBoxItem + { + Identifier = RID_DOTSVERT ; + HelpId = HID_SMA_DOTSVERT ; + Text [ en-US ] = "Dots Vertically"; + }; + ToolBoxItem + { + Identifier = RID_DOTSUP ; + HelpId = HID_SMA_DOTSUP ; + Text [ en-US ] = "Dots To Top"; + }; + ToolBoxItem + { + Identifier = RID_DOTSDOWN ; + HelpId = HID_SMA_DOTSDOWN ; + Text [ en-US ] = "Dots to Bottom"; + }; + }; + }; +}; + + + +#define UNBINOPS_IDLIST \ + IdList = \ + { \ + RID_PLUSX ; \ + RID_MINUSX ; \ + RID_PLUSMINUSX ; \ + RID_MINUSPLUSX ; \ + RID_XPLUSY ; \ + RID_XCDOTY ; \ + RID_XTIMESY ; \ + RID_XSYMTIMESY ; \ + RID_XMINUSY ; \ + RID_XOVERY ; \ + RID_XDIVY ; \ + RID_XSYMDIVIDEY ; \ + RID_NEGX ; \ + RID_XANDY ; \ + RID_XORY ; \ + RID_XCIRCY ; \ + }; \ + IdCount = { 16 ; }; + + ImageList RID_IL_UNBINOPS + { + Prefix = "un"; + MaskColor = IMAGE_STDBTN_COLOR ; + UNBINOPS_IDLIST + }; + ImageList RID_ILH_UNBINOPS + { + Prefix = "unh"; + MaskColor = IMAGE_STDBTN_COLOR_HC ; + UNBINOPS_IDLIST + }; + +#define RELATIONS_IDLIST \ + IdList = \ + { \ + RID_XEQY ; \ + RID_XNEQY ; \ + RID_XEQUIVY ; \ + RID_XORTHOY ; \ + RID_XLTY ; \ + RID_XGTY ; \ + RID_XAPPROXY ; \ + RID_XPARALLELY ; \ + RID_XLESLANTY ; \ + RID_XGESLANTY ; \ + RID_XSIMEQY ; \ + RID_XPROPY ; \ + RID_XLEY ; \ + RID_XGEY ; \ + RID_XSIMY ; \ + RID_XTOWARDY ; \ + RID_XDIVIDESY ; \ + RID_XNDIVIDESY; \ + RID_DLARROW ; \ + RID_DLRARROW ; \ + RID_DRARROW ; \ + }; \ + IdCount ={ 21 ; }; + + ImageList RID_IL_RELATIONS + { + Prefix = "bi"; + MaskColor = IMAGE_STDBTN_COLOR ; + RELATIONS_IDLIST + }; + ImageList RID_ILH_RELATIONS + { + Prefix = "bih"; + MaskColor = IMAGE_STDBTN_COLOR_HC ; + RELATIONS_IDLIST + }; + +#define SETOPERATIONS_IDLIST \ + IdList = \ + { \ + RID_XINY ; \ + RID_XNOTINY ; \ + RID_XOWNSY ; \ + RID_XINTERSECTIONY ; \ + RID_XUNIONY ; \ + RID_XSETMINUSY ; \ + RID_XSLASHY ; \ + RID_XSUBSETY ; \ + RID_XSUBSETEQY ; \ + RID_XSUPSETY ; \ + RID_XSUPSETEQY ; \ + RID_XNSUBSETY ; \ + RID_XNSUBSETEQY ; \ + RID_XNSUPSETY ; \ + RID_XNSUPSETEQY ; \ + RID_EMPTYSET ; \ + RID_ALEPH ; \ + RID_SETN ; \ + RID_SETZ ; \ + RID_SETQ ; \ + RID_SETR ; \ + RID_SETC ; \ + }; \ + IdCount = { 22 ; }; + + ImageList RID_IL_SETOPERATIONS + { + Prefix = "op"; + MaskColor = IMAGE_STDBTN_COLOR ; + SETOPERATIONS_IDLIST + }; + ImageList RID_ILH_SETOPERATIONS + { + Prefix = "oph"; + MaskColor = IMAGE_STDBTN_COLOR_HC ; + SETOPERATIONS_IDLIST + }; + +#define FUNCTIONS_IDLIST \ + IdList = \ + { \ + RID_ABSX ; \ + RID_FACTX ; \ + RID_SQRTX ; \ + RID_NROOTXY ; \ + RID_EX ; \ + RID_LNX ; \ + RID_EXPX ; \ + RID_LOGX ; \ + RID_SINX ; \ + RID_COSX ; \ + RID_TANX ; \ + RID_COTX ; \ + RID_SINHX ; \ + RID_COSHX ; \ + RID_TANHX ; \ + RID_COTHX ; \ + RID_ARCSINX ; \ + RID_ARCCOSX ; \ + RID_ARCTANX ; \ + RID_ARCCOTX ; \ + RID_ARSINHX ; \ + RID_ARCOSHX ; \ + RID_ARTANHX ; \ + RID_ARCOTHX ; \ + RID_RSUPX ; \ + }; \ + IdCount = { 25 ; }; + + ImageList RID_IL_FUNCTIONS + { + Prefix = "fu"; + MaskColor = IMAGE_STDBTN_COLOR ; + FUNCTIONS_IDLIST + }; + ImageList RID_ILH_FUNCTIONS + { + Prefix = "fuh"; + MaskColor = IMAGE_STDBTN_COLOR_HC ; + FUNCTIONS_IDLIST + }; + +#define OPERATORS_IDLIST \ + IdList = \ + { \ + RID_LIMX ; \ + RID_SUMX ; \ + RID_PRODX ; \ + RID_COPRODX ; \ + RID_INTX ; \ + RID_IINTX ; \ + RID_IIINTX ; \ + RID_LINTX ; \ + RID_LLINTX ; \ + RID_LLLINTX ; \ + RID_FROMXTOY ; \ + RID_FROMX ; \ + RID_TOX ; \ + }; \ + IdCount = { 13 ; }; + + ImageList RID_IL_OPERATORS + { + Prefix = "fo"; + MaskColor = IMAGE_STDBTN_COLOR ; + OPERATORS_IDLIST + }; + ImageList RID_ILH_OPERATORS + { + Prefix = "foh"; + MaskColor = IMAGE_STDBTN_COLOR_HC ; + OPERATORS_IDLIST + }; + +#define ATTRIBUTES_IDLIST \ + IdList = \ + { \ + RID_ACUTEX ; \ + RID_GRAVEX ; \ + RID_CHECKX ; \ + RID_BREVEX ; \ + RID_BARX ; \ + RID_VECX ; \ + RID_HATX ; \ + RID_TILDEX ; \ + RID_CIRCLEX ; \ + RID_DOTX ; \ + RID_DDOTX ; \ + RID_DDDOTX ; \ + RID_OVERLINEX ; \ + RID_UNDERLINEX ; \ + RID_OVERSTRIKEX ; \ + RID_PHANTOMX ; \ + RID_BOLDX ; \ + RID_ITALX ; \ + RID_SIZEXY ; \ + RID_FONTXY ; \ + RID_WIDEHATX ; \ + RID_WIDETILDEX ; \ + RID_WIDEVECX ; \ + }; \ + IdCount = { 23 ; }; + + ImageList RID_IL_ATTRIBUTES + { + Prefix = "at"; + MaskColor = IMAGE_STDBTN_COLOR ; + ATTRIBUTES_IDLIST + }; + ImageList RID_ILH_ATTRIBUTES + { + Prefix = "ath"; + MaskColor = IMAGE_STDBTN_COLOR_HC ; + ATTRIBUTES_IDLIST + }; + +#define BRACKETS_IDLIST \ + IdList = \ + { \ + RID_LRPARENTX ; \ + RID_LRBRACKETX ; \ + RID_LRANGLEX ; \ + RID_LRBRACEX ; \ + RID_LRLINEX ; \ + RID_LRDLINEX ; \ + RID_LMRANGLEXY ; \ + RID_LRGROUPX ; \ + RID_SLRPARENTX ; \ + RID_SLRBRACKETX ; \ + RID_SLRANGLEX ; \ + RID_SLRBRACEX ; \ + RID_SLRLINEX ; \ + RID_SLRDLINEX ; \ + RID_SLMRANGLEXY ; \ + RID_LRDBRACKETX ; \ + RID_SLRDBRACKETX ; \ + RID_XOVERBRACEY ; \ + RID_XUNDERBRACEY ; \ + }; \ + IdCount = { 19 ; }; + + ImageList RID_IL_BRACKETS + { + Prefix = "al"; + MaskColor = IMAGE_STDBTN_COLOR ; + BRACKETS_IDLIST + }; + ImageList RID_ILH_BRACKETS + { + Prefix = "alh"; + MaskColor = IMAGE_STDBTN_COLOR_HC ; + BRACKETS_IDLIST + }; + +#define FORMAT_IDLIST \ + IdList = \ + { \ + RID_NEWLINE ; \ + RID_SBLANK ; \ + RID_BLANK ; \ + RID_BINOMXY ; \ + RID_STACK ; \ + RID_MATRIX ; \ + RID_ALIGNLX ; \ + RID_ALIGNCX ; \ + RID_ALIGNRX ; \ + RID_RSUBX ; \ + RID_RSUPX ; \ + RID_LSUBX ; \ + RID_LSUPX ; \ + RID_CSUBX ; \ + RID_CSUPX ; \ + }; \ + IdCount = { 15 ; }; + + ImageList RID_IL_FORMAT + { + Prefix = "co"; + MaskColor = IMAGE_STDBTN_COLOR ; + FORMAT_IDLIST + }; + ImageList RID_ILH_FORMAT + { + Prefix = "coh"; + MaskColor = IMAGE_STDBTN_COLOR_HC ; + FORMAT_IDLIST + }; + +#define MISC_IDLIST \ + IdList = \ + { \ + RID_INFINITY ; \ + RID_PARTIAL ; \ + RID_NABLA ; \ + RID_EXISTS ; \ + RID_FORALL ; \ + RID_HBAR; \ + RID_LAMBDABAR ; \ + RID_RE ; \ + RID_IM ; \ + RID_WP ; \ + RID_LEFTARROW ; \ + RID_RIGHTARROW ; \ + RID_UPARROW ; \ + RID_DOWNARROW ; \ + RID_DOTSLOW ; \ + RID_DOTSAXIS ; \ + RID_DOTSVERT ; \ + RID_DOTSUP ; \ + RID_DOTSDOWN ; \ + }; \ + IdCount = { 19 ; }; + + ImageList RID_IL_MISC + { + Prefix = "mi"; + MaskColor = IMAGE_STDBTN_COLOR ; + MISC_IDLIST + }; + ImageList RID_ILH_MISC + { + Prefix = "mih"; + MaskColor = IMAGE_STDBTN_COLOR_HC ; + MISC_IDLIST + }; + +#define CATALOG_IDLIST \ + IdList = \ + { \ + RID_UNBINOPS_CAT ; \ + RID_RELATIONS_CAT ; \ + RID_SETOPERATIONS_CAT ; \ + RID_FUNCTIONS_CAT ; \ + RID_OPERATORS_CAT ; \ + RID_ATTRIBUTES_CAT ; \ + RID_MISC_CAT ; \ + RID_BRACKETS_CAT ; \ + RID_FORMAT_CAT ; \ + }; \ + IdCount = { 9 ; }; + + ImageList RID_IL_CATALOG + { + Prefix = "im"; + MaskColor = IMAGE_STDBTN_COLOR ; + CATALOG_IDLIST + }; + ImageList RID_ILH_CATALOG + { + Prefix = "imh"; + MaskColor = IMAGE_STDBTN_COLOR_HC ; + CATALOG_IDLIST + }; + + + diff --git a/starmath/source/unomodel.cxx b/starmath/source/unomodel.cxx index 9d008f326d2f..cd3e4b714469 100644..100755 --- a/starmath/source/unomodel.cxx +++ b/starmath/source/unomodel.cxx @@ -81,8 +81,8 @@ using namespace ::com::sun::star::script; SmPrintUIOptions::SmPrintUIOptions() { ResStringArray aLocalizedStrings( SmResId( RID_PRINTUIOPTIONS ) ); - DBG_ASSERT( aLocalizedStrings.Count() >= 18, "resource incomplete" ); - if( aLocalizedStrings.Count() < 18 ) // bad resource ? + DBG_ASSERT( aLocalizedStrings.Count() >= 15, "resource incomplete" ); + if( aLocalizedStrings.Count() < 15 ) // bad resource ? return; SmModule *pp = SM_MOD(); diff --git a/starmath/source/utility.cxx b/starmath/source/utility.cxx index 0000bf5cf766..ff62e1631265 100644 --- a/starmath/source/utility.cxx +++ b/starmath/source/utility.cxx @@ -45,6 +45,8 @@ #include "smdll.hxx" +//////////////////////////////////////////////////////////// + // return pointer to active SmViewShell, if this is not possible // return 0 instead. //!! Since this method is based on the current focus it is somewhat diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx index 0087595703ca..20c235408013 100644..100755 --- a/starmath/source/view.cxx +++ b/starmath/source/view.cxx @@ -749,7 +749,7 @@ SFX_IMPL_INTERFACE(SmViewShell, SfxViewShell, SmResId(0)) } -SFX_IMPL_VIEWFACTORY(SmViewShell, SmResId(RID_VIEWNAME)) +SFX_IMPL_NAMED_VIEWFACTORY(SmViewShell, "Default") { SFX_VIEW_REGISTRATION(SmDocShell); } @@ -1551,7 +1551,7 @@ void SmViewShell::Execute(SfxRequest& rReq) break; } - case SID_INSERT_FORMULA: + case SID_IMPORT_FORMULA: { delete pImpl->pRequest; pImpl->pRequest = new SfxRequest( rReq ); diff --git a/starmath/uiconfig/smath/menubar/menubar.xml b/starmath/uiconfig/smath/menubar/menubar.xml index 63bf72c0cf62..7c82d733fa70 100644 --- a/starmath/uiconfig/smath/menubar/menubar.xml +++ b/starmath/uiconfig/smath/menubar/menubar.xml @@ -83,7 +83,7 @@ <menu:menu menu:id=".uno:ToolsMenu"> <menu:menupopup> <menu:menuitem menu:id=".uno:SymbolCatalogue"/> - <menu:menuitem menu:id=".uno:InsertFormula"/> + <menu:menuitem menu:id=".uno:ImportFormula"/> <menu:menuseparator/> <menu:menu menu:id=".uno:MacrosMenu"> <menu:menupopup> diff --git a/starmath/util/makefile.mk b/starmath/util/makefile.mk index 1ba52411d721..08f673452f3c 100644 --- a/starmath/util/makefile.mk +++ b/starmath/util/makefile.mk @@ -112,3 +112,17 @@ SHL1RES= $(RCTARGET) .INCLUDE : target.mk + +ALLTAR : $(MISC)/sm.component $(MISC)/smd.component + +$(MISC)/sm.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \ + sm.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt sm.component + +$(MISC)/smd.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \ + smd.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL2TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt smd.component diff --git a/starmath/util/sm.component b/starmath/util/sm.component new file mode 100644 index 000000000000..8047662e2915 --- /dev/null +++ b/starmath/util/sm.component @@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* Copyright 2000, 2010 Oracle and/or its affiliates. +* +* OpenOffice.org - a multi-platform office productivity suite +* +* This file is part of OpenOffice.org. +* +* OpenOffice.org is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License version 3 +* only, as published by the Free Software Foundation. +* +* OpenOffice.org is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License version 3 for more details +* (a copy is included in the LICENSE file that accompanied this code). +* +* You should have received a copy of the GNU Lesser General Public License +* version 3 along with OpenOffice.org. If not, see +* <http://www.openoffice.org/license.html> +* for a copy of the LGPLv3 License. +* +**********************************************************************--> + +<component loader="com.sun.star.loader.SharedLibrary" + xmlns="http://openoffice.org/2010/uno-components"> + <implementation name="com.sun.star.comp.Math.FormulaDocument"> + <service name="com.sun.star.formula.FormulaProperties"/> + </implementation> + <implementation name="com.sun.star.comp.Math.XMLContentExporter"> + <service name="com.sun.star.xml.XMLExportFilter"/> + </implementation> + <implementation name="com.sun.star.comp.Math.XMLExporter"> + <service name="com.sun.star.xml.XMLExportFilter"/> + </implementation> + <implementation name="com.sun.star.comp.Math.XMLImporter"> + <service name="com.sun.star.xml.XMLImportFilter"/> + </implementation> + <implementation name="com.sun.star.comp.Math.XMLMetaExporter"> + <service name="com.sun.star.xml.XMLExportFilter"/> + </implementation> + <implementation name="com.sun.star.comp.Math.XMLOasisMetaExporter"> + <service name="com.sun.star.xml.XMLExportFilter"/> + </implementation> + <implementation name="com.sun.star.comp.Math.XMLOasisMetaImporter"> + <service name="com.sun.star.xml.XMLImportFilter"/> + </implementation> + <implementation name="com.sun.star.comp.Math.XMLOasisSettingsExporter"> + <service name="com.sun.star.xml.XMLExportFilter"/> + </implementation> + <implementation name="com.sun.star.comp.Math.XMLOasisSettingsImporter"> + <service name="com.sun.star.xml.XMLImportFilter"/> + </implementation> + <implementation name="com.sun.star.comp.Math.XMLSettingsExporter"> + <service name="com.sun.star.xml.XMLExportFilter"/> + </implementation> +</component> diff --git a/starmath/util/smd.component b/starmath/util/smd.component new file mode 100644 index 000000000000..9f566864482e --- /dev/null +++ b/starmath/util/smd.component @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* Copyright 2000, 2010 Oracle and/or its affiliates. +* +* OpenOffice.org - a multi-platform office productivity suite +* +* This file is part of OpenOffice.org. +* +* OpenOffice.org is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License version 3 +* only, as published by the Free Software Foundation. +* +* OpenOffice.org is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License version 3 for more details +* (a copy is included in the LICENSE file that accompanied this code). +* +* You should have received a copy of the GNU Lesser General Public License +* version 3 along with OpenOffice.org. If not, see +* <http://www.openoffice.org/license.html> +* for a copy of the LGPLv3 License. +* +**********************************************************************--> + +<component loader="com.sun.star.loader.SharedLibrary" + xmlns="http://openoffice.org/2010/uno-components"> + <implementation name="com.sun.star.comp.math.FormatDetector"> + <service name="com.sun.star.frame.ExtendedTypeDetection"/> + </implementation> +</component> diff --git a/sw/inc/undobj.hxx b/sw/inc/undobj.hxx index cf92a707e40f..7f16e4e4d44c 100644 --- a/sw/inc/undobj.hxx +++ b/sw/inc/undobj.hxx @@ -27,9 +27,7 @@ #ifndef SW_UNDOBJ_HXX #define SW_UNDOBJ_HXX -// --> OD 2006-11-01 #130889# #include <vector> -// <-- #include <memory> #include <boost/shared_ptr.hpp> @@ -1718,7 +1716,7 @@ public: struct _UndoTransliterate_Data; class SwUndoTransliterate : public SwUndo, public SwUndRng { - _UndoTransliterate_Data *pData, *pLastData; + std::vector< _UndoTransliterate_Data * > aChanges; sal_uInt32 nType; public: @@ -1732,7 +1730,7 @@ public: void AddChanges( SwTxtNode& rTNd, xub_StrLen nStart, xub_StrLen nLen, ::com::sun::star::uno::Sequence <sal_Int32>& rOffsets ); - BOOL HasData() const {return 0 != pData; } + BOOL HasData() const { return aChanges.size() > 0; } }; //-------------------------------------------------------------------- diff --git a/sw/prj/build.lst b/sw/prj/build.lst index 87d163d72648..8b6cecba92ba 100755..100644 --- a/sw/prj/build.lst +++ b/sw/prj/build.lst @@ -74,4 +74,10 @@ sw sw\source\ui nmake - all sw_ui sw_app sw sw\source\core nmake - all sw_core sw_attr sw_bast sw_crsr sw_dcnd sw_doc sw_draw sw_edit sw_excpt sw_fld sw_frmed sw_grph sw_layo sw_ole sw_para sw_sw3io sw_swg sw_text sw_tox sw_txtnd sw_uco sw_undo sw_view sw_acc sw_objpos sw_NumberTree sw_tablecore NULL sw sw\source\filter nmake - all sw_flt sw_ascii sw_bsflt sw_html sw_rtf sw_wrtr sw_ww1 sw_ww8 sw_xml NULL sw sw\util nmake - all sw_util sw_core sw_flt sw_sdi sw_ui NULL -sw sw\qa\unoapi nmake - all sw_qa_unoapi NULL + +sw sw\qa\complex\accessibility nmake - all sw_qa_complex_accessibility sw_util NULL +sw sw\qa\complex\checkColor nmake - all sw_qa_complex_checkColor sw_util NULL +# fails +# sw sw\qa\complex\indeterminateState nmake - all sw_qa_complex_indeterminateState sw_util NULL +# sw sw\qa\complex\writer nmake - all sw_qa_complex_writer sw_util NULL +sw sw\qa\unoapi nmake - all sw_qa_unoapi sw_util NULL diff --git a/sw/prj/d.lst b/sw/prj/d.lst index d7e75a09564e..0cb261c5f0f1 100644 --- a/sw/prj/d.lst +++ b/sw/prj/d.lst @@ -36,6 +36,7 @@ mkdir: %_DEST%\xml%_EXT%\uiconfig\modules\swreport\statusbar ..\%__SRC%\bin\vbaswobj*.dll %_DEST%\bin%_EXT%\vbaswobj*.dll ..\%__SRC%\bin\sw*.res %_DEST%\bin%_EXT%\sw*.res ..\%__SRC%\lib\lib*.* %_DEST%\lib%_EXT%\lib*.* +..\%__SRC%\misc\swd.component %_DEST%\xml%_EXT%\swd.component ..\uiconfig\swriter\menubar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\swriter\menubar\*.xml ..\uiconfig\swxform\menubar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\swxform\menubar\*.xml @@ -57,3 +58,5 @@ mkdir: %_DEST%\xml%_EXT%\uiconfig\modules\swreport\statusbar ..\uiconfig\swreport\statusbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\swreport\statusbar\*.xml ..\%__SRC%\bin\*-layout.zip %_DEST%\pck%_EXT%\*.* +..\%__SRC%\misc\sw.component %_DEST%\xml%_EXT%\sw.component +..\%__SRC%\misc\vbaswobj.component %_DEST%\xml%_EXT%\vbaswobj.component diff --git a/sw/qa/complex/accessibility/AccessibleRelationSet.java b/sw/qa/complex/accessibility/AccessibleRelationSet.java index b7f45d25db2b..a6da2f29115a 100644 --- a/sw/qa/complex/accessibility/AccessibleRelationSet.java +++ b/sw/qa/complex/accessibility/AccessibleRelationSet.java @@ -27,7 +27,6 @@ package complex.accessibility; -import com.sun.star.accessibility.AccessibleRelation; import com.sun.star.accessibility.AccessibleRole; import com.sun.star.accessibility.XAccessible; import com.sun.star.accessibility.XAccessibleText; @@ -42,68 +41,61 @@ import com.sun.star.text.XText; import com.sun.star.text.XTextCursor; import com.sun.star.text.XTextDocument; import com.sun.star.uno.UnoRuntime; -import com.sun.star.uno.XInterface; -import complexlib.ComplexTestCase; -import java.io.PrintWriter; -import lib.StatusException; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openoffice.test.OfficeConnection; import util.AccessibilityTools; import util.WriterTools; -import util.utils; +import static org.junit.Assert.*; -public class AccessibleRelationSet extends ComplexTestCase { - - private static XAccessible para1 = null; - private static XAccessible para2 = null; - private static XAccessible para3 = null; - private static XTextDocument xTextDoc = null; +public class AccessibleRelationSet { + private XAccessible para1 = null; + private XAccessible para2 = null; + private XAccessible para3 = null; + private XTextDocument xTextDoc = null; private final static String[] types = {"INVALID","CONTENT_FLOWS_FROM","CONTENT_FLOWS_TO","CONTROLLED_BY","CONTROLLER_FOR","LABEL_FOR","LABELED_BY","MEMBER_OF","SUB_WINDOW_OF"}; - public String[] getTestMethodNames() { - return new String[]{"contents_flows_to","contents_flows_from"}; - } - - public void contents_flows_to() { + @Test public void contents_flows_to() { XAccessibleRelationSet set = getAccessibleRelation(para1); - boolean res = true; short firstrelation=-1; XAccessibleText atarget=null; if (set != null) { - log.println("Count of relations "+set.getRelationCount()); - assure("didn't gain correct count of relations", - set.getRelationCount() == 1); + assertEquals( + "didn't gain correct count of relations", 1, + set.getRelationCount()); try { firstrelation = set.getRelation(0).RelationType; Object oTmp = set.getRelation(0).TargetSet[0]; atarget = (XAccessibleText) UnoRuntime.queryInterface(XAccessibleText.class, oTmp); } catch (IndexOutOfBoundsException e) { - log.println("Exception when getting relations "+e); - res = false; + fail("Exception when getting relations "+e); } } - log.println("Expected for paragraph 0 "+types[2]); - log.println("gained for paragraph 0 "+types[firstrelation]); - res = types[2].equals(types[firstrelation]); - assure("didn't gain correct relation type",res); + assertEquals( + "didn't gain correct relation type for paragraph 0", types[2], + types[firstrelation]); - log.println("Text of target paragraph "+atarget.getText()); XAccessibleText paraTxt2 = (XAccessibleText) UnoRuntime.queryInterface(XAccessibleText.class, para2); - assure("didn't gain correct target paragraph", - atarget.getText().equals(paraTxt2.getText()) ); + assertEquals( + "didn't gain correct target paragraph", atarget.getText(), + paraTxt2.getText()); } - public void contents_flows_from() { + @Test public void contents_flows_from() { XAccessibleRelationSet set = getAccessibleRelation(para2); - boolean res = true; short[] relationtypes = new short[2]; XAccessibleText[] atargets = new XAccessibleText[2]; if (set != null) { - log.println("Count of relations "+set.getRelationCount()); - assure("didn't gain correct count of relations", - set.getRelationCount() == 2); + assertEquals( + "didn't gain correct count of relations", 2, + set.getRelationCount()); try { short tmprelation = set.getRelation(0).RelationType; if ( tmprelation == 1 ) @@ -120,7 +112,7 @@ public class AccessibleRelationSet extends ComplexTestCase { } else { - assure("didn't gain correct relation type", false); + fail("didn't gain correct relation type"); } tmprelation = set.getRelation(1).RelationType; if ( tmprelation == 1 ) @@ -137,79 +129,51 @@ public class AccessibleRelationSet extends ComplexTestCase { } else { - assure("didn't gain correct relation type", false); + fail("didn't gain correct relation type"); } } catch (IndexOutOfBoundsException e) { - log.println("Exception when getting relations "+e); - res = false; + fail("Exception when getting relations "+e); } } - log.println("### Checking "+types[1]+" for paragraph 1"); - log.println("Expected for paragraph 1 "+types[1]); - log.println("gained for paragraph 1 "+types[relationtypes[0]]); - res = types[1].equals(types[relationtypes[0]]); - assure("didn't gain correct relation type",res); + assertEquals( + "didn't gain correct relation type for paragraph 1", types[1], + types[relationtypes[0]]); - log.println("Text of target paragraph "+atargets[0].getText()); XAccessibleText paraTxt1 = (XAccessibleText) UnoRuntime.queryInterface(XAccessibleText.class, para1); - assure("didn't gain correct target paragraph", - atargets[0].getText().equals(paraTxt1.getText()) ); + assertEquals( + "didn't gain correct target paragraph", atargets[0].getText(), + paraTxt1.getText()); - log.println("### Checking "+types[2]+" for paragraph 1"); - log.println("Expected for paragraph 1 "+types[2]); - log.println("gained for paragraph 1 "+types[relationtypes[1]]); - res = types[2].equals(types[relationtypes[1]]); - assure("didn't gain correct relation type",res); + assertEquals( + "didn't gain correct relation type for paragraph 3", types[2], + types[relationtypes[1]]); - log.println("Text of target paragraph "+atargets[1].getText()); XAccessibleText paraTxt3 = (XAccessibleText) UnoRuntime.queryInterface(XAccessibleText.class, para3); - assure("didn't gain correct target paragraph", - atargets[1].getText().equals(paraTxt3.getText()) ); + assertEquals( + "didn't gain correct target paragraph", atargets[1].getText(), + paraTxt3.getText()); } - private boolean getResult(XAccessible aPara, short index, int nr) { - XAccessibleRelationSet set = getAccessibleRelation(aPara); - - boolean res = true; - short firstrelation=-1; - if (set != null) { - log.println("Count of relations "+set.getRelationCount()); - try { - firstrelation = set.getRelation(0).RelationType; - } catch (IndexOutOfBoundsException e) { - log.println("Exception when getting relations "+e); - res = false; - } - } + @Before public void before() + throws com.sun.star.lang.IllegalArgumentException, + IndexOutOfBoundsException + { + XMultiServiceFactory factory = UnoRuntime.queryInterface( + XMultiServiceFactory.class, + connection.getComponentContext().getServiceManager()); - - log.println("Expected for paragraph "+nr+" "+types[index]); - log.println("gained for paragraph "+nr+" "+types[firstrelation]); - res = types[index].equals(types[firstrelation]); - return res; - } - - - public void before() { - log.println( "creating a text document" ); - xTextDoc = WriterTools.createTextDoc( (XMultiServiceFactory) param.getMSF()); + xTextDoc = WriterTools.createTextDoc(factory); XText oText = xTextDoc.getText(); XTextCursor oCursor = oText.createTextCursor(); - log.println( "inserting some lines" ); - try { - for (int i=0; i<5; i++){ - oText.insertString( oCursor,"Paragraph Number: " + i, false); - oText.insertControlCharacter( - oCursor, ControlCharacter.PARAGRAPH_BREAK, false ); - } - } catch ( com.sun.star.lang.IllegalArgumentException e ){ - e.printStackTrace((PrintWriter)log); - throw new StatusException( "Couldn't insert lines", e ); + for (int i=0; i<5; i++){ + oText.insertString( oCursor,"Paragraph Number: " + i, false); + oText.insertControlCharacter( + oCursor, ControlCharacter.PARAGRAPH_BREAK, false ); } XModel aModel = (XModel) @@ -217,26 +181,17 @@ public class AccessibleRelationSet extends ComplexTestCase { AccessibilityTools at = new AccessibilityTools(); - XWindow xWindow = at.getCurrentWindow( (XMultiServiceFactory) param.getMSF(), aModel); + XWindow xWindow = at.getCurrentWindow(factory, aModel); XAccessible xRoot = at.getAccessibleObject(xWindow); at.getAccessibleObjectForRole(xRoot, AccessibleRole.DOCUMENT); - try { - para1 = at.SearchedContext.getAccessibleChild(0); - para2 = at.SearchedContext.getAccessibleChild(1); - para3 = at.SearchedContext.getAccessibleChild(2); - } catch(IndexOutOfBoundsException e) { - e.printStackTrace((PrintWriter)log); - throw new StatusException( "Couldn't insert lines", e ); - } - - log.println("ImplementationName (para1)" + utils.getImplName(para1)); - log.println("ImplementationName (para2)" + utils.getImplName(para2)); + para1 = at.SearchedContext.getAccessibleChild(0); + para2 = at.SearchedContext.getAccessibleChild(1); + para3 = at.SearchedContext.getAccessibleChild(2); } - public void after() { - log.println("close text document"); + @After public void after() { util.DesktopTools.closeDoc(xTextDoc); } @@ -248,5 +203,15 @@ public class AccessibleRelationSet extends ComplexTestCase { return set; } + @BeforeClass public static void setUpConnection() throws Exception { + connection.setUp(); + } + + @AfterClass public static void tearDownConnection() + throws InterruptedException, com.sun.star.uno.Exception + { + connection.tearDown(); + } + private static final OfficeConnection connection = new OfficeConnection(); } diff --git a/sw/qa/complex/accessibility/makefile.mk b/sw/qa/complex/accessibility/makefile.mk index e4096829bb22..06e7c6a70408 100644 --- a/sw/qa/complex/accessibility/makefile.mk +++ b/sw/qa/complex/accessibility/makefile.mk @@ -25,33 +25,26 @@ # #************************************************************************* -PRJ = ..$/..$/.. -TARGET = AccessibleRelationSet -PRJNAME = sw -PACKAGE = complex$/accessibility - -# --- Settings ----------------------------------------------------- -.INCLUDE: settings.mk - - -#----- compile .java files ----------------------------------------- +.IF "$(OOO_SUBSEQUENT_TESTS)" == "" +nothing .PHONY: +.ELSE -JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar -JAVAFILES = AccessibleRelationSet.java -JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) - -#----- make a jar from compiled files ------------------------------ - -MAXLINELENGTH = 100000 - -JARCLASSDIRS = $(PACKAGE) -JARTARGET = $(TARGET).jar -JARCOMPRESS = TRUE +PRJ = ../../.. +PRJNAME = sw +TARGET = qa_complex_accessibility -# --- Targets ------------------------------------------------------ +.IF "$(OOO_JUNIT_JAR)" != "" +PACKAGE = complex/accessibility +JAVATESTFILES = AccessibleRelationSet.java +JAVAFILES = $(JAVATESTFILES) +JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar +EXTRAJARFILES = $(OOO_JUNIT_JAR) +.END -.INCLUDE : target.mk +.INCLUDE: settings.mk +.INCLUDE: target.mk +.INCLUDE: installationtest.mk +ALLTAR : javatest -run: - +java -cp $(CLASSPATH) org.openoffice.Runner -TimeOut 0 -tb java_complex -o $(PACKAGE:s#$/#.#).$(JAVAFILES:b) +.END diff --git a/sw/qa/complex/checkColor/CheckChangeColor.java b/sw/qa/complex/checkColor/CheckChangeColor.java index 8a8c563c7eea..a072072e18c8 100755 --- a/sw/qa/complex/checkColor/CheckChangeColor.java +++ b/sw/qa/complex/checkColor/CheckChangeColor.java @@ -1,90 +1,89 @@ package complex.checkColor; -import com.sun.star.awt.Rectangle; import com.sun.star.awt.Size; -import com.sun.star.awt.WindowDescriptor; -import com.sun.star.awt.XControlModel; -import com.sun.star.awt.XToolkit; -import com.sun.star.awt.XWindow; -import com.sun.star.awt.XWindowPeer; -import com.sun.star.beans.PropertyValue; import com.sun.star.beans.XPropertySet; import com.sun.star.container.XNameAccess; import com.sun.star.container.XNameContainer; -import com.sun.star.drawing.XControlShape; -import com.sun.star.drawing.XShape; -import com.sun.star.frame.XComponentLoader; -import com.sun.star.frame.XController; -import com.sun.star.lang.XComponent; import com.sun.star.lang.XMultiServiceFactory; import com.sun.star.style.XStyleFamiliesSupplier; import com.sun.star.text.XTextDocument; +import com.sun.star.uno.Any; +import com.sun.star.uno.Type; import com.sun.star.uno.UnoRuntime; -import com.sun.star.uno.XInterface; -import com.sun.star.view.XControlAccess; -import complexlib.ComplexTestCase; -import java.io.PrintWriter; -import util.FormTools; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openoffice.test.OfficeConnection; +import util.DesktopTools; import util.SOfficeFactory; -import util.WriterTools; +import static org.junit.Assert.*; /** * Created because of complaint on dev@openoffice.org: check the changing of * BackColor and IsLandscape properties on the PageStyle service. */ -public class CheckChangeColor extends ComplexTestCase { - - private XToolkit xToolkit = null; - private XWindowPeer xWinPeer = null; - - /** - * Get all test method names. - * @return The test methods. - */ - public String[] getTestMethodNames() { - return new String[] {"checkChangeColor"}; - } - - +public class CheckChangeColor { /** * Check BackColor and IsLandscape properties, wait for an exception: test * is ok if no exception happened. */ - public void checkChangeColor() { - try { - XMultiServiceFactory m_xMSF_ = (XMultiServiceFactory)param.getMSF(); - XComponentLoader aLoader = (XComponentLoader)UnoRuntime.queryInterface(XComponentLoader.class,m_xMSF_.createInstance( "com.sun.star.frame.Desktop" )); - XComponent xDocument = (XComponent)UnoRuntime.queryInterface(XComponent.class, aLoader.loadComponentFromURL( "private:factory/swriter", "_blank", 0, new PropertyValue[ 0 ] ) ); - // xDocument.addEventListener( this ); + @Test public void checkChangeColor() throws Exception { + // create a supplier to get the Style family collection + XStyleFamiliesSupplier xSupplier = ( XStyleFamiliesSupplier ) UnoRuntime.queryInterface(XStyleFamiliesSupplier.class, document); - XTextDocument oDoc = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, xDocument); - XMultiServiceFactory oDocMSF = (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, oDoc ); + // get the NameAccess interface from the Style family collection + XNameAccess xNameAccess = xSupplier.getStyleFamilies(); - // XInterface xInterface = (XInterface) oDocMSF.createInstance( "com.sun.star.style.PageStyle" ); + XNameContainer xPageStyleCollection = (XNameContainer) UnoRuntime.queryInterface(XNameContainer.class, xNameAccess.getByName( "PageStyles" )); - // create a supplier to get the Style family collection - XStyleFamiliesSupplier xSupplier = ( XStyleFamiliesSupplier ) UnoRuntime.queryInterface(XStyleFamiliesSupplier.class, oDoc ); + // create a PropertySet to set the properties for the new Pagestyle + XPropertySet xPropertySet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xPageStyleCollection.getByName("Standard") ); - // get the NameAccess interface from the Style family collection - XNameAccess xNameAccess = xSupplier.getStyleFamilies(); + assertEquals( + "BackColor", new Any(Type.LONG, 0xFFFFFFFF), + Any.complete(xPropertySet.getPropertyValue("BackColor"))); + assertEquals( + "IsLandscape", new Any(Type.BOOLEAN, false), + Any.complete(xPropertySet.getPropertyValue("IsLandscape"))); + assertEquals( + "Size", new Type(Size.class), + Any.complete(xPropertySet.getPropertyValue("Size")).getType()); - XNameContainer xPageStyleCollection = (XNameContainer) UnoRuntime.queryInterface(XNameContainer.class, xNameAccess.getByName( "PageStyles" )); + xPropertySet.setPropertyValue("BackColor", 0xFF000000); + xPropertySet.setPropertyValue("IsLandscape", true); + assertEquals( + "BackColor", new Any(Type.LONG, 0xFF000000), + Any.complete(xPropertySet.getPropertyValue("BackColor"))); + assertEquals( + "IsLandscape", new Any(Type.BOOLEAN, true), + Any.complete(xPropertySet.getPropertyValue("IsLandscape"))); + } + + @Before public void setUpDocument() throws com.sun.star.uno.Exception { + document = SOfficeFactory.getFactory( + UnoRuntime.queryInterface( + XMultiServiceFactory.class, + connection.getComponentContext().getServiceManager())). + createTextDoc(null); + } - // create a PropertySet to set the properties for the new Pagestyle - XPropertySet xPropertySet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xPageStyleCollection.getByName("Standard") ); + @After public void tearDownDocument() { + DesktopTools.closeDoc(document); + } - log.println("BackColor @ "+xPropertySet.getPropertyValue("BackColor").toString()); - log.println("IsLandscape @ "+xPropertySet.getPropertyValue("IsLandscape").toString()); - log.println("Size @ H:"+((Size)xPropertySet.getPropertyValue("Size")).Height+" W:"+((Size)xPropertySet.getPropertyValue("Size")).Width); + private XTextDocument document = null; - log.println("Set Landscape"); - xPropertySet.setPropertyValue("IsLandscape",new Boolean(true) ); - log.println("Set BackColor"); - xPropertySet.setPropertyValue("BackColor",new Integer((int)255000000) ); - } - catch(Exception e) { - e.printStackTrace(); - failed("Exception."); - } + @BeforeClass public static void setUpConnection() throws Exception { + connection.setUp(); } + + @AfterClass public static void tearDownConnection() + throws InterruptedException, com.sun.star.uno.Exception + { + connection.tearDown(); + } + + private static final OfficeConnection connection = new OfficeConnection(); } diff --git a/sw/qa/complex/checkColor/makefile.mk b/sw/qa/complex/checkColor/makefile.mk index 3048fb8fff95..e5b368083ada 100755 --- a/sw/qa/complex/checkColor/makefile.mk +++ b/sw/qa/complex/checkColor/makefile.mk @@ -25,51 +25,26 @@ # #************************************************************************* -PRJ = ..$/..$/.. -TARGET = CheckChangeColor -PRJNAME = $(TARGET) -PACKAGE = complex$/checkColor - -# --- Settings ----------------------------------------------------- -.INCLUDE: settings.mk - - -#----- compile .java files ----------------------------------------- - -JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar mysql.jar -JAVAFILES = CheckChangeColor.java -JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) - -#----- make a jar from compiled files ------------------------------ - -MAXLINELENGTH = 100000 - -JARCLASSDIRS = $(PACKAGE) -JARTARGET = $(TARGET).jar -JARCOMPRESS = TRUE - -# --- Parameters for the test -------------------------------------- - -# test base is java complex -CT_TESTBASE = -TestBase java_complex - -# test looks something like the.full.package.TestName -CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b) - -# start the runner application -CT_APP = org.openoffice.Runner +.IF "$(OOO_SUBSEQUENT_TESTS)" == "" +nothing .PHONY: +.ELSE -# --- Targets ------------------------------------------------------ +PRJ = ../../.. +PRJNAME = sw +TARGET = qa_complex_checkColor -.IF "$(depend)" == "" -ALL : ALLTAR -.ELSE -ALL: ALLDEP -.ENDIF +.IF "$(OOO_JUNIT_JAR)" != "" +PACKAGE = complex/checkColor +JAVATESTFILES = CheckChangeColor.java +JAVAFILES = $(JAVATESTFILES) +JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar +EXTRAJARFILES = $(OOO_JUNIT_JAR) +.END -.INCLUDE : target.mk +.INCLUDE: settings.mk +.INCLUDE: target.mk +.INCLUDE: installationtest.mk -RUN: run +ALLTAR : javatest -run: - +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_NOOFFICE) $(CT_TEST) +.END diff --git a/sw/qa/complex/indeterminateState/CheckIndeterminateState.java b/sw/qa/complex/indeterminateState/CheckIndeterminateState.java index 7c3bf14f2e01..23a6d89ccf51 100755 --- a/sw/qa/complex/indeterminateState/CheckIndeterminateState.java +++ b/sw/qa/complex/indeterminateState/CheckIndeterminateState.java @@ -27,110 +27,99 @@ package complex.indeterminateState; -import complexlib.ComplexTestCase; -import helper.OfficeProvider; -import util.SOfficeFactory; -import util.AccessibilityTools; +import com.sun.star.accessibility.AccessibleRole; +import com.sun.star.accessibility.AccessibleStateType; +import com.sun.star.accessibility.XAccessible; +import com.sun.star.accessibility.XAccessibleContext; +import com.sun.star.accessibility.XAccessibleStateSet; +import com.sun.star.awt.FontWeight; import com.sun.star.awt.XWindow; -import com.sun.star.awt.XExtendedToolkit; -import com.sun.star.frame.XDispatch; +import com.sun.star.beans.XPropertySet; import com.sun.star.frame.XController; -import com.sun.star.frame.XDesktop; import com.sun.star.frame.XModel; -import com.sun.star.text.XTextDocument; import com.sun.star.lang.XMultiServiceFactory; +import com.sun.star.text.XText; +import com.sun.star.text.XTextDocument; +import com.sun.star.text.XTextRange; +import com.sun.star.text.XTextViewCursorSupplier; import com.sun.star.uno.UnoRuntime; import com.sun.star.uno.XInterface; -import com.sun.star.accessibility.AccessibleRole; -import com.sun.star.accessibility.XAccessible; -import com.sun.star.accessibility.XAccessibleValue; -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.accessibility.XAccessibleStateSet; -import com.sun.star.accessibility.AccessibleStateType; -import com.sun.star.accessibility.XAccessibleAction; -import com.sun.star.awt.XTopWindow; -import com.sun.star.uno.UnoRuntime; -import com.sun.star.frame.XDispatchProvider; -import com.sun.star.util.URL; -import com.sun.star.util.XURLTransformer; - -import java.io.PrintWriter; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openoffice.test.OfficeConnection; +import util.AccessibilityTools; +import util.DesktopTools; +import util.SOfficeFactory; +import static org.junit.Assert.*; /** */ -public class CheckIndeterminateState extends ComplexTestCase { - - /** - * Return all test methods. - * @return The test methods. - */ - public String[] getTestMethodNames() { - return new String[]{"checkToolBoxItem"}; - } - +public class CheckIndeterminateState { /* * Test the indeterminate state of AccessibleToolBarItem * The used tools are in project qadevOOo/runner */ - public void checkToolBoxItem() { - log.println( "creating a test environment" ); - XTextDocument xTextDoc = null; - // get a soffice factory object - SOfficeFactory SOF = SOfficeFactory.getFactory((XMultiServiceFactory) param.getMSF()); - - try { - log.println( "creating a text document" ); - xTextDoc = SOF.createTextDoc(null); - } catch ( com.sun.star.uno.Exception e ) { - // Some exception occures.FAILED - e.printStackTrace( (java.io.PrintWriter)log ); - failed (e.getMessage()); - } - + @Test public void checkToolBoxItem() throws Exception { XModel aModel = (XModel) - UnoRuntime.queryInterface(XModel.class, xTextDoc); + UnoRuntime.queryInterface(XModel.class, document); XController xController = aModel.getCurrentController(); - XInterface oObj = null; + XText text = document.getText(); + text.setString("normal"); + XTextRange end = text.getEnd(); + end.setString("bold"); + UnoRuntime.queryInterface(XPropertySet.class, end).setPropertyValue( + "CharWeight", FontWeight.BOLD); + UnoRuntime.queryInterface(XTextViewCursorSupplier.class, xController). + getViewCursor().gotoRange(text, false); - System.out.println("Press any key after making 'Bold' indeterminate."); - try{ - byte[]b = new byte[16]; - System.in.read(b); - } catch (Exception e) { - e.printStackTrace(); - } + XInterface oObj = null; AccessibilityTools at = new AccessibilityTools(); - XWindow xWindow = at.getCurrentContainerWindow((XMultiServiceFactory)param.getMSF(), aModel); + XWindow xWindow = at.getCurrentContainerWindow(getFactory(), aModel); XAccessible xRoot = at.getAccessibleObject(xWindow); - // uncomment to print the whole accessible tree. -// at.printAccessibleTree((java.io.PrintWriter)log,xRoot); - - oObj = at.getAccessibleObjectForRole(xRoot, - AccessibleRole.PUSH_BUTTON, "Bold"); - System.out.println("Found a PUSH_BUTTON: " + (oObj != null)); - oObj = at.getAccessibleObjectForRole(xRoot, AccessibleRole.TOGGLE_BUTTON, "Bold"); - System.out.println("Found a TOGGLE_BUTTON: " + (oObj != null)); - - log.println("ImplementationName: "+ util.utils.getImplName(oObj)); + assertNotNull("Found a TOGGLE_BUTTON", oObj); XAccessibleContext oContext = (XAccessibleContext) UnoRuntime.queryInterface(XAccessibleContext.class, oObj); XAccessibleStateSet oSet = oContext.getAccessibleStateSet(); - short[]states = oSet.getStates(); - for(int i=0; i<states.length; i++) - System.out.println("State "+i+": "+states[i]); + assertTrue("The 'INDETERMINATE' state is not set.",oSet.contains(AccessibleStateType.INDETERMINATE)); + } - assure("The 'INDETERMINATE' state is not set.",oSet.contains(AccessibleStateType.INDETERMINATE)); + @Before public void setUpDocument() throws com.sun.star.uno.Exception { + document = SOfficeFactory.getFactory(getFactory()).createTextDoc(null); } -} + @After public void tearDownDocument() { + DesktopTools.closeDoc(document); + } + private XTextDocument document = null; + @BeforeClass public static void setUpConnection() throws Exception { + connection.setUp(); + } + + @AfterClass public static void tearDownConnection() + throws InterruptedException, com.sun.star.uno.Exception + { + connection.tearDown(); + } + + private static final OfficeConnection connection = new OfficeConnection(); + + private static final XMultiServiceFactory getFactory() { + return UnoRuntime.queryInterface( + XMultiServiceFactory.class, + connection.getComponentContext().getServiceManager()); + } +} diff --git a/sw/qa/complex/indeterminateState/makefile.mk b/sw/qa/complex/indeterminateState/makefile.mk index 8850da116f5b..d19915b1e2fe 100755 --- a/sw/qa/complex/indeterminateState/makefile.mk +++ b/sw/qa/complex/indeterminateState/makefile.mk @@ -25,58 +25,26 @@ # #************************************************************************* -PRJ = ..$/..$/.. -TARGET = CheckIndexedPropertyValue -PRJNAME = $(TARGET) -PACKAGE = complex$/indeterminateState - -# --- Settings ----------------------------------------------------- -.INCLUDE: settings.mk - - -#----- compile .java files ----------------------------------------- - -JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar -JAVAFILES = CheckIndeterminateState.java -JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) - -#----- make a jar from compiled files ------------------------------ - -MAXLINELENGTH = 100000 - -JARCLASSDIRS = $(PACKAGE) -JARTARGET = $(TARGET).jar -JARCOMPRESS = TRUE - -# --- Parameters for the test -------------------------------------- - -# start an office if the parameter is set for the makefile -.IF "$(OFFICE)" == "" -CT_APPEXECCOMMAND = +.IF "$(OOO_SUBSEQUENT_TESTS)" == "" +nothing .PHONY: .ELSE -CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;" -.ENDIF - -# test base is java complex -CT_TESTBASE = -TestBase java_complex - -# test looks something like the.full.package.TestName -CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b) -# start the runner application -CT_APP = org.openoffice.Runner +PRJ = ../../.. +PRJNAME = sw +TARGET = qa_complex_indeterminateState -# --- Targets ------------------------------------------------------ +.IF "$(OOO_JUNIT_JAR)" != "" +PACKAGE = complex/indeterminateState +JAVATESTFILES = CheckIndeterminateState.java +JAVAFILES = $(JAVATESTFILES) +JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar +EXTRAJARFILES = $(OOO_JUNIT_JAR) +.END -.IF "$(depend)" == "" -ALL: ALLTAR -.ELSE -ALL: ALLDEP -.ENDIF - -.INCLUDE : target.mk +.INCLUDE: settings.mk +.INCLUDE: target.mk +.INCLUDE: installationtest.mk -RUN: - +java -cp $(CLASSPATH) $(CT_APP) $(CT_APPEXECCOMMAND) $(CT_TESTBASE) $(CT_TEST) +ALLTAR : javatest -run: RUN +.END diff --git a/sw/qa/complex/writer/CheckBookmarks.java b/sw/qa/complex/writer/CheckBookmarks.java index 0915db42e6ac..84bfe15ba045 100644 --- a/sw/qa/complex/writer/CheckBookmarks.java +++ b/sw/qa/complex/writer/CheckBookmarks.java @@ -43,9 +43,15 @@ import com.sun.star.text.XTextRange; import com.sun.star.uno.UnoRuntime; import complexlib.ComplexTestCase; import java.math.BigInteger; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openoffice.test.OfficeConnection; +import static org.junit.Assert.*; class BookmarkHashes { - public String m_sName; public BigInteger m_nSetupHash; public BigInteger m_nInsertRandomHash; public BigInteger m_nDeleteRandomHash; @@ -53,40 +59,13 @@ class BookmarkHashes { public BigInteger m_nOdfReloadHash; public BigInteger m_nMsWordReloadHash; - public BookmarkHashes(String sName) { - m_sName = sName; - } - - public String checkExpectationString(BookmarkHashes aExpectation) { - StringBuffer buffer = new StringBuffer(); - buffer.append("Comparing " + m_sName + " to expectations from " + aExpectation.m_sName + "\n"); - buffer.append(compareHashString("after setup", m_nSetupHash, aExpectation.m_nSetupHash)); - buffer.append(compareHashString("after insert random", m_nInsertRandomHash, aExpectation.m_nInsertRandomHash)); - buffer.append(compareHashString("after delete random", m_nDeleteRandomHash, aExpectation.m_nDeleteRandomHash)); - buffer.append(compareHashString("after line breaks", m_nLinebreakHash, aExpectation.m_nLinebreakHash)); - buffer.append(compareHashString("after ODF roundtrip", m_nOdfReloadHash, aExpectation.m_nOdfReloadHash)); - buffer.append(compareHashString("after MsWord roundtrip", m_nMsWordReloadHash, aExpectation.m_nMsWordReloadHash)); - return buffer.toString(); - }; - - public boolean meetsExpectation(BookmarkHashes aExpectation) { - return m_nSetupHash.equals(aExpectation.m_nSetupHash) - && m_nInsertRandomHash.equals(aExpectation.m_nInsertRandomHash) - && m_nDeleteRandomHash.equals(aExpectation.m_nDeleteRandomHash) - && m_nLinebreakHash.equals(aExpectation.m_nLinebreakHash) - && m_nOdfReloadHash.equals(aExpectation.m_nOdfReloadHash) - && m_nMsWordReloadHash.equals(aExpectation.m_nMsWordReloadHash); - } - - private String compareHashString(String sCheckName, BigInteger nActual, BigInteger nExpectation) { - StringBuffer buffer = new StringBuffer(sCheckName); - buffer.append(": "); - if(nActual.equals(nExpectation)) - buffer.append("good (" + nActual.toString(16) + ")"); - else - buffer.append("bad (actual:" + nActual.toString(16) + ", expected: " + nExpectation.toString(16) + ")"); - buffer.append("\n"); - return buffer.toString(); + public void assertExpectation(BookmarkHashes aExpectation) { + assertEquals(aExpectation.m_nSetupHash, m_nSetupHash); + assertEquals(aExpectation.m_nInsertRandomHash, m_nInsertRandomHash); + assertEquals(aExpectation.m_nDeleteRandomHash, m_nDeleteRandomHash); + assertEquals(aExpectation.m_nLinebreakHash, m_nLinebreakHash); + assertEquals(aExpectation.m_nOdfReloadHash, m_nOdfReloadHash); + assertEquals(aExpectation.m_nMsWordReloadHash, m_nMsWordReloadHash); } static public java.math.BigInteger getBookmarksHash(XTextDocument xDoc) @@ -114,18 +93,15 @@ class BookmarkHashes { } } -public class CheckBookmarks extends ComplexTestCase { +public class CheckBookmarks { private XMultiServiceFactory m_xMsf = null; private XTextDocument m_xDoc = null; private XTextDocument m_xOdfReloadedDoc = null; private XTextDocument m_xMsWordReloadedDoc = null; - - public String[] getTestMethodNames() { - return new String[]{"checkBookmarks"}; - } + private final BookmarkHashes actualHashes = new BookmarkHashes(); private BookmarkHashes getDEV300m41Expectations() { - BookmarkHashes result = new BookmarkHashes("DEV300m41"); + BookmarkHashes result = new BookmarkHashes(); result.m_nSetupHash = new BigInteger("-4b0706744e8452fe1ae9d5e1c28cf70fb6194795",16); result.m_nInsertRandomHash = new BigInteger("25aa0fad3f4881832dcdfe658ec2efa8a1a02bc5",16); result.m_nDeleteRandomHash = new BigInteger("-3ec87e810b46d734677c351ad893bbbf9ea10f55",16); @@ -135,42 +111,51 @@ public class CheckBookmarks extends ComplexTestCase { return result; } - public void checkBookmarks() + @Test public void checkBookmarks() throws com.sun.star.uno.Exception, com.sun.star.io.IOException, java.security.NoSuchAlgorithmException { - try { - m_xMsf = (XMultiServiceFactory)param.getMSF(); - m_xDoc = util.WriterTools.createTextDoc(m_xMsf); - BookmarkHashes actualHashes = new BookmarkHashes("actual"); - BookmarkHashes expectedHashes = getDEV300m41Expectations(); - setupBookmarks(); - actualHashes.m_nSetupHash = BookmarkHashes.getBookmarksHash(m_xDoc); - insertRandomParts(200177); - actualHashes.m_nInsertRandomHash = BookmarkHashes.getBookmarksHash(m_xDoc); - deleteRandomParts(4711); - actualHashes.m_nDeleteRandomHash = BookmarkHashes.getBookmarksHash(m_xDoc); - insertLinebreaks(007); - actualHashes.m_nLinebreakHash = BookmarkHashes.getBookmarksHash(m_xDoc); - m_xOdfReloadedDoc = reloadFrom("StarOffice XML (Writer)", "odf"); - actualHashes.m_nOdfReloadHash = BookmarkHashes.getBookmarksHash(m_xOdfReloadedDoc); - m_xMsWordReloadedDoc = reloadFrom("MS Word 97", "doc"); - actualHashes.m_nMsWordReloadHash = BookmarkHashes.getBookmarksHash(m_xMsWordReloadedDoc); - log.println(actualHashes.checkExpectationString(expectedHashes)); - if(!actualHashes.meetsExpectation(expectedHashes)) - failed("CheckBookmark did not meet expectations (" + expectedHashes.m_sName + ")."); - } finally { - // closing test document - if(m_xDoc != null) - util.DesktopTools.closeDoc(m_xDoc); - if(m_xOdfReloadedDoc!= null) - util.DesktopTools.closeDoc(m_xOdfReloadedDoc); - if(m_xMsWordReloadedDoc!= null) - util.DesktopTools.closeDoc(m_xMsWordReloadedDoc); - } + actualHashes.assertExpectation(getDEV300m41Expectations()); } + @Before public void setUpDocuments() throws Exception { + m_xMsf = UnoRuntime.queryInterface( + XMultiServiceFactory.class, + connection.getComponentContext().getServiceManager()); + m_xDoc = util.WriterTools.createTextDoc(m_xMsf); + setupBookmarks(); + actualHashes.m_nSetupHash = BookmarkHashes.getBookmarksHash(m_xDoc); + insertRandomParts(200177); + actualHashes.m_nInsertRandomHash = BookmarkHashes.getBookmarksHash(m_xDoc); + deleteRandomParts(4711); + actualHashes.m_nDeleteRandomHash = BookmarkHashes.getBookmarksHash(m_xDoc); + insertLinebreaks(007); + actualHashes.m_nLinebreakHash = BookmarkHashes.getBookmarksHash(m_xDoc); + m_xOdfReloadedDoc = reloadFrom("StarOffice XML (Writer)", "odf"); + actualHashes.m_nOdfReloadHash = BookmarkHashes.getBookmarksHash(m_xOdfReloadedDoc); + m_xMsWordReloadedDoc = reloadFrom("MS Word 97", "doc"); + actualHashes.m_nMsWordReloadHash = BookmarkHashes.getBookmarksHash(m_xMsWordReloadedDoc); + } + + @After public void tearDownDocuments() { + util.DesktopTools.closeDoc(m_xDoc); + util.DesktopTools.closeDoc(m_xOdfReloadedDoc); + util.DesktopTools.closeDoc(m_xMsWordReloadedDoc); + } + + @BeforeClass public static void setUpConnection() throws Exception { + connection.setUp(); + } + + @AfterClass public static void tearDownConnection() + throws InterruptedException, com.sun.star.uno.Exception + { + connection.tearDown(); + } + + private static final OfficeConnection connection = new OfficeConnection(); + private void setupBookmarks() throws com.sun.star.uno.Exception { diff --git a/sw/qa/complex/writer/CheckCrossReferences.java b/sw/qa/complex/writer/CheckCrossReferences.java index 7b469c0a4afc..cc7fcb1c7e53 100644 --- a/sw/qa/complex/writer/CheckCrossReferences.java +++ b/sw/qa/complex/writer/CheckCrossReferences.java @@ -1,123 +1,96 @@ -/* - * CheckCrossReferences.java - * - * Created on November 1, 2007, 1:49 PM - * - * To change this template, choose Tools | Template Manager - * and open the template in the editor. - */ +/************************************************************************* +* +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* Copyright 2000, 2010 Oracle and/or its affiliates. +* +* OpenOffice.org - a multi-platform office productivity suite +* +* This file is part of OpenOffice.org. +* +* OpenOffice.org is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License version 3 +* only, as published by the Free Software Foundation. +* +* OpenOffice.org is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License version 3 for more details +* (a copy is included in the LICENSE file that accompanied this code). +* +* You should have received a copy of the GNU Lesser General Public License +* version 3 along with OpenOffice.org. If not, see +* <http://www.openoffice.org/license.html> +* for a copy of the LGPLv3 License. +* +************************************************************************/ package complex.writer; -import complexlib.ComplexTestCase; import com.sun.star.lang.XMultiServiceFactory; +import com.sun.star.text.XTextDocument; import com.sun.star.uno.UnoRuntime; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openoffice.test.OfficeConnection; +import static org.junit.Assert.*; /** * * @author od138299 */ -public class CheckCrossReferences extends ComplexTestCase { +public class CheckCrossReferences { - private com.sun.star.text.XTextDocument xDoc; private com.sun.star.container.XEnumeration xParaEnum; private com.sun.star.container.XEnumeration xPortionEnum; private com.sun.star.util.XRefreshable xFldsRefresh; - public String[] getTestMethodNames() { - return new String[]{"checkCrossReferences"}; - } - - public com.sun.star.text.XTextField getNextField() { - - com.sun.star.text.XTextField xField = null; + public com.sun.star.text.XTextField getNextField() + throws com.sun.star.uno.Exception + { if ( xPortionEnum != null ) { - try { - while ( xPortionEnum.hasMoreElements() ) { - com.sun.star.beans.XPropertySet xPortionProps = - (com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface( - com.sun.star.beans.XPropertySet.class , xPortionEnum.nextElement()); - final String sPortionType = - xPortionProps.getPropertyValue( "TextPortionType" ).toString(); - if ( sPortionType.equals( "TextField") ) { - xField = (com.sun.star.text.XTextField)UnoRuntime.queryInterface( - com.sun.star.text.XTextField.class, - xPortionProps.getPropertyValue( "TextField" ) ); - if ( xField == null ) { - System.out.println("Cannot retrieve next field."); - failed("Cannot retrieve next field."); - return null; - } - return xField; - } + while ( xPortionEnum.hasMoreElements() ) { + com.sun.star.beans.XPropertySet xPortionProps = + (com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface( + com.sun.star.beans.XPropertySet.class , xPortionEnum.nextElement()); + final String sPortionType = + xPortionProps.getPropertyValue( "TextPortionType" ).toString(); + if ( sPortionType.equals( "TextField") ) { + com.sun.star.text.XTextField xField = (com.sun.star.text.XTextField)UnoRuntime.queryInterface( + com.sun.star.text.XTextField.class, + xPortionProps.getPropertyValue( "TextField" ) ); + assertNotNull("Cannot retrieve next field.", xField); + return xField; } - } catch (com.sun.star.container.NoSuchElementException e) { - System.out.println("Cannot retrieve next field."); - e.printStackTrace(); - failed(e.getMessage()); - return null; - } catch (com.sun.star.beans.UnknownPropertyException e) { - System.out.println("Cannot retrieve next field."); - e.printStackTrace(); - failed(e.getMessage()); - return null; - } catch (com.sun.star.lang.WrappedTargetException e) { - System.out.println("Cannot retrieve next field."); - e.printStackTrace(); - failed(e.getMessage()); - return null; } } while ( xParaEnum.hasMoreElements() ) { - try { - com.sun.star.container.XEnumerationAccess aPara = - (com.sun.star.container.XEnumerationAccess)UnoRuntime.queryInterface( - com.sun.star.container.XEnumerationAccess.class, xParaEnum.nextElement()); - xPortionEnum = aPara.createEnumeration(); - while ( xPortionEnum.hasMoreElements() ) { - com.sun.star.beans.XPropertySet xPortionProps = - (com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface( - com.sun.star.beans.XPropertySet.class , xPortionEnum.nextElement()); - final String sPortionType = - xPortionProps.getPropertyValue( "TextPortionType" ).toString(); - if ( sPortionType.equals( "TextField") ) { - xField = (com.sun.star.text.XTextField)UnoRuntime.queryInterface( - com.sun.star.text.XTextField.class, - xPortionProps.getPropertyValue( "TextField" ) ); - if ( xField == null ) { - System.out.println("Cannot retrieve next field."); - failed("Cannot retrieve next field."); - return null; - } - return xField; - } + com.sun.star.container.XEnumerationAccess aPara = + (com.sun.star.container.XEnumerationAccess)UnoRuntime.queryInterface( + com.sun.star.container.XEnumerationAccess.class, xParaEnum.nextElement()); + xPortionEnum = aPara.createEnumeration(); + while ( xPortionEnum.hasMoreElements() ) { + com.sun.star.beans.XPropertySet xPortionProps = + (com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface( + com.sun.star.beans.XPropertySet.class , xPortionEnum.nextElement()); + final String sPortionType = + xPortionProps.getPropertyValue( "TextPortionType" ).toString(); + if ( sPortionType.equals( "TextField") ) { + com.sun.star.text.XTextField xField = (com.sun.star.text.XTextField)UnoRuntime.queryInterface( + com.sun.star.text.XTextField.class, + xPortionProps.getPropertyValue( "TextField" ) ); + assertNotNull("Cannot retrieve next field.", xField); + return xField; } - } catch (com.sun.star.container.NoSuchElementException e) { - System.out.println("Cannot retrieve next field."); - e.printStackTrace(); - failed(e.getMessage()); - return null; - } catch (com.sun.star.beans.UnknownPropertyException e) { - System.out.println("Cannot retrieve next field."); - e.printStackTrace(); - failed(e.getMessage()); - return null; - } catch (com.sun.star.lang.WrappedTargetException e) { - System.out.println("Cannot retrieve next field."); - e.printStackTrace(); - failed(e.getMessage()); - return null; } } - if ( xField == null ) { - System.out.println("Cannot retrieve next field."); - failed("Cannot retrieve next field."); - return null; - } - - return xField; + fail("Cannot retrieve next field."); + return null; // unreachable } public com.sun.star.beans.XPropertySet getFieldProps( @@ -126,11 +99,7 @@ public class CheckCrossReferences extends ComplexTestCase { (com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface( com.sun.star.beans.XPropertySet.class, xField ); - if ( xProps == null ) { - System.out.println("Cannot retrieve field properties."); - failed("Cannot retrieve field properties."); - return null; - } + assertNotNull("Cannot retrieve field properties.", xProps); return xProps; } @@ -138,56 +107,26 @@ public class CheckCrossReferences extends ComplexTestCase { public void checkField( com.sun.star.text.XTextField xField, com.sun.star.beans.XPropertySet xProps, short nFormat, - String aExpectedFldResult ) { + String aExpectedFldResult ) + throws com.sun.star.uno.Exception + { // set requested format - try { - xProps.setPropertyValue("ReferenceFieldPart", new Short(nFormat)); - } catch (com.sun.star.lang.IllegalArgumentException e) { - System.out.println("Cannot set ReferenceFieldPart property at field."); - e.printStackTrace(); - failed(e.getMessage()); - return; - } catch (com.sun.star.beans.PropertyVetoException e) { - System.out.println("Cannot set ReferenceFieldPart property at field."); - e.printStackTrace(); - failed(e.getMessage()); - return; - } catch (com.sun.star.lang.WrappedTargetException e) { - System.out.println("Cannot set ReferenceFieldPart property at field."); - e.printStackTrace(); - failed(e.getMessage()); - return; - } catch (com.sun.star.beans.UnknownPropertyException e) { - System.out.println("Cannot set ReferenceFieldPart property at field."); - e.printStackTrace(); - failed(e.getMessage()); - return; - } + xProps.setPropertyValue("ReferenceFieldPart", new Short(nFormat)); + // refresh fields in order to get new format applied xFldsRefresh.refresh(); String aFldResult = xField.getPresentation( false ); - assure( "set reference field format doesn't result in correct field result", - aFldResult.equals(aExpectedFldResult), true ); + assertEquals( "set reference field format doesn't result in correct field result", + aExpectedFldResult, aFldResult); } - public void checkCrossReferences() throws com.sun.star.uno.Exception { - // load test document - try { - XMultiServiceFactory xMSF = (XMultiServiceFactory)param.getMSF(); - xDoc = util.WriterTools.loadTextDoc( xMSF, util.utils.getFullTestURL("CheckCrossReferences.odt")); - } catch(com.sun.star.uno.RuntimeException e) { - System.out.println("Cannot load test document."); - e.printStackTrace(); - failed(e.getMessage()); - return; - } - + @Test public void checkCrossReferences() throws com.sun.star.uno.Exception { // setup paragraph enumeration { com.sun.star.container.XEnumerationAccess xParaEnumAccess = (com.sun.star.container.XEnumerationAccess)UnoRuntime.queryInterface( - com.sun.star.container.XEnumerationAccess.class, xDoc.getText()); + com.sun.star.container.XEnumerationAccess.class, document.getText()); xParaEnum = xParaEnumAccess.createEnumeration(); } @@ -195,7 +134,7 @@ public class CheckCrossReferences extends ComplexTestCase { { com.sun.star.text.XTextFieldsSupplier xFieldSupp = (com.sun.star.text.XTextFieldsSupplier)UnoRuntime.queryInterface( - com.sun.star.text.XTextFieldsSupplier.class, xDoc); + com.sun.star.text.XTextFieldsSupplier.class, document); xFldsRefresh = (com.sun.star.util.XRefreshable)UnoRuntime.queryInterface( com.sun.star.util.XRefreshable.class, xFieldSupp.getTextFields()); } @@ -214,7 +153,6 @@ public class CheckCrossReferences extends ComplexTestCase { com.sun.star.text.XTextField xField = null; com.sun.star.beans.XPropertySet xProps = null; - log.println( "Checking field reference formats NUMBER, NUMBER_NO_CONTEXT and NUMBER_FULL_CONTEXT for existing fields" ); xField = getNextField(); xProps = getFieldProps( xField ); checkField( xField, xProps, com.sun.star.text.ReferenceFieldPart.NUMBER, FldResult2 ); @@ -254,63 +192,36 @@ public class CheckCrossReferences extends ComplexTestCase { // insert a certain cross-reference bookmark and a reference field to this bookmark { - log.println("Checking insert of cross-reference bookmark and corresponding reference field"); // restart paragraph enumeration com.sun.star.container.XEnumerationAccess xParaEnumAccess = (com.sun.star.container.XEnumerationAccess)UnoRuntime.queryInterface( - com.sun.star.container.XEnumerationAccess.class, xDoc.getText()); + com.sun.star.container.XEnumerationAccess.class, document.getText()); xParaEnum = xParaEnumAccess.createEnumeration(); // iterate on the paragraphs to find certain paragraph to insert the bookmark com.sun.star.text.XTextRange xParaTextRange = null; while ( xParaEnum.hasMoreElements() ) { - try { - xParaTextRange = (com.sun.star.text.XTextRange)UnoRuntime.queryInterface( - com.sun.star.text.XTextRange.class, xParaEnum.nextElement()); - if ( xParaTextRange.getString().equals( "J" ) ) { - break; - } - else { - xParaTextRange = null; - } - } catch (com.sun.star.container.NoSuchElementException e) { - System.out.println("Cannot find paragraph to insert cross-reference bookmark."); - e.printStackTrace(); - failed(e.getMessage()); - return; - } catch (com.sun.star.lang.WrappedTargetException e) { - System.out.println("Cannot find paragraph to insert cross-reference bookmark."); - e.printStackTrace(); - failed(e.getMessage()); - return; + xParaTextRange = (com.sun.star.text.XTextRange)UnoRuntime.queryInterface( + com.sun.star.text.XTextRange.class, xParaEnum.nextElement()); + if ( xParaTextRange.getString().equals( "J" ) ) { + break; + } + else { + xParaTextRange = null; } } - if ( xParaTextRange == null ) { - System.out.println("Cannot find paragraph to insert cross-reference bookmark."); - failed("Cannot find paragraph to insert cross-reference bookmark."); - return; - } + assertNotNull( + "Cannot find paragraph to insert cross-reference bookmark.", + xParaTextRange); // insert bookmark XMultiServiceFactory xFac = (XMultiServiceFactory)UnoRuntime.queryInterface( - XMultiServiceFactory.class, xDoc); + XMultiServiceFactory.class, document); final String cBookmarkName = "__RefNumPara__47114711"; - com.sun.star.text.XTextContent xBookmark = null; - try { - xBookmark = (com.sun.star.text.XTextContent)UnoRuntime.queryInterface( - com.sun.star.text.XTextContent.class, - xFac.createInstance( "com.sun.star.text.Bookmark" ) ); - } catch (com.sun.star.lang.IllegalArgumentException e) { - System.out.println("Cannot create bookmark."); - e.printStackTrace(); - failed(e.getMessage()); - return; - } catch (com.sun.star.uno.Exception e) { - System.out.println("Cannot create bookmark."); - e.printStackTrace(); - failed(e.getMessage()); - return; - } + com.sun.star.text.XTextContent xBookmark = + (com.sun.star.text.XTextContent)UnoRuntime.queryInterface( + com.sun.star.text.XTextContent.class, + xFac.createInstance( "com.sun.star.text.Bookmark" ) ); if ( xBookmark != null ) { com.sun.star.container.XNamed xName = (com.sun.star.container.XNamed)UnoRuntime.queryInterface( @@ -320,22 +231,10 @@ public class CheckCrossReferences extends ComplexTestCase { } // insert reference field, which references the inserted bookmark - com.sun.star.text.XTextContent xNewField = null; - try { - xNewField = (com.sun.star.text.XTextContent)UnoRuntime.queryInterface( - com.sun.star.text.XTextContent.class, - xFac.createInstance( "com.sun.star.text.TextField.GetReference" ) ); - } catch (com.sun.star.lang.IllegalArgumentException e) { - System.out.println("Cannot create new field."); - e.printStackTrace(); - failed(e.getMessage()); - return; - } catch (com.sun.star.uno.Exception e) { - System.out.println("Cannot create new field."); - e.printStackTrace(); - failed(e.getMessage()); - return; - } + com.sun.star.text.XTextContent xNewField = + (com.sun.star.text.XTextContent)UnoRuntime.queryInterface( + com.sun.star.text.XTextContent.class, + xFac.createInstance( "com.sun.star.text.TextField.GetReference" ) ); if ( xNewField != null ) { com.sun.star.beans.XPropertySet xFieldProps = (com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface( @@ -354,16 +253,39 @@ public class CheckCrossReferences extends ComplexTestCase { com.sun.star.text.XTextField xField = (com.sun.star.text.XTextField)UnoRuntime.queryInterface( com.sun.star.text.XTextField.class, xNewField ); - assure( "inserted reference field doesn't has correct field result", - xField.getPresentation( false ).equals("J"), true ); + assertEquals( "inserted reference field doesn't has correct field result", + "J", xField.getPresentation( false ) ); xParaTextRange.getStart().setString( "Hallo new bookmark: " ); xFldsRefresh.refresh(); - assure( "inserted reference field doesn't has correct field result. Instead it's: "+xField.getPresentation( false ), - xField.getPresentation( false ).equals("Hallo new bookmark: J"), true ); + assertEquals( "inserted reference field doesn't has correct field result", + "Hallo new bookmark: J", xField.getPresentation( false ) ); } + } + + @Before public void setUpDocument() throws com.sun.star.uno.Exception { + document = util.WriterTools.loadTextDoc( + UnoRuntime.queryInterface( + XMultiServiceFactory.class, + connection.getComponentContext().getServiceManager()), + TestDocument.getUrl("CheckCrossReferences.odt")); + } - // closing test document - util.DesktopTools.closeDoc( xDoc ); + @After public void tearDownDocument() { + util.DesktopTools.closeDoc(document); } + + private XTextDocument document = null; + + @BeforeClass public static void setUpConnection() throws Exception { + connection.setUp(); + } + + @AfterClass public static void tearDownConnection() + throws InterruptedException, com.sun.star.uno.Exception + { + connection.tearDown(); + } + + private static final OfficeConnection connection = new OfficeConnection(); } diff --git a/sw/qa/complex/writer/CheckFlies.java b/sw/qa/complex/writer/CheckFlies.java index 50e94290c5b2..a65c01ec147d 100644 --- a/sw/qa/complex/writer/CheckFlies.java +++ b/sw/qa/complex/writer/CheckFlies.java @@ -38,43 +38,34 @@ import complexlib.ComplexTestCase; import java.math.BigInteger; import java.util.Collection; import java.util.ArrayList; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openoffice.test.OfficeConnection; +import static org.junit.Assert.*; -public class CheckFlies extends ComplexTestCase { - private XMultiServiceFactory m_xMsf = null; - private XTextDocument m_xDoc = null; - - public String[] getTestMethodNames() { - return new String[]{"checkFlies"}; - } - - public void checkFlies() - throws com.sun.star.uno.Exception, - com.sun.star.io.IOException +public class CheckFlies { + @Test public void checkFlies() + throws com.sun.star.uno.Exception { - try { - m_xMsf = (XMultiServiceFactory)param.getMSF(); - m_xDoc = util.WriterTools.loadTextDoc(m_xMsf, util.utils.getFullTestURL("CheckFlies.odt")); - com.sun.star.text.XTextFramesSupplier xTFS = (com.sun.star.text.XTextFramesSupplier)UnoRuntime.queryInterface( - com.sun.star.text.XTextFramesSupplier.class, - m_xDoc); - checkTextFrames(xTFS); - com.sun.star.text.XTextGraphicObjectsSupplier xTGOS = (com.sun.star.text.XTextGraphicObjectsSupplier)UnoRuntime.queryInterface( - com.sun.star.text.XTextGraphicObjectsSupplier.class, - m_xDoc); - checkGraphicFrames(xTGOS); - com.sun.star.text.XTextEmbeddedObjectsSupplier xTEOS = (com.sun.star.text.XTextEmbeddedObjectsSupplier)UnoRuntime.queryInterface( - com.sun.star.text.XTextEmbeddedObjectsSupplier.class, - m_xDoc); - checkEmbeddedFrames(xTEOS); - } finally { - // closing test document - if(m_xDoc != null) - util.DesktopTools.closeDoc(m_xDoc); - } + com.sun.star.text.XTextFramesSupplier xTFS = (com.sun.star.text.XTextFramesSupplier)UnoRuntime.queryInterface( + com.sun.star.text.XTextFramesSupplier.class, + document); + checkTextFrames(xTFS); + com.sun.star.text.XTextGraphicObjectsSupplier xTGOS = (com.sun.star.text.XTextGraphicObjectsSupplier)UnoRuntime.queryInterface( + com.sun.star.text.XTextGraphicObjectsSupplier.class, + document); + checkGraphicFrames(xTGOS); + com.sun.star.text.XTextEmbeddedObjectsSupplier xTEOS = (com.sun.star.text.XTextEmbeddedObjectsSupplier)UnoRuntime.queryInterface( + com.sun.star.text.XTextEmbeddedObjectsSupplier.class, + document); + checkEmbeddedFrames(xTEOS); } private void checkEmbeddedFrames(com.sun.star.text.XTextEmbeddedObjectsSupplier xTGOS) - throws com.sun.star.lang.WrappedTargetException + throws com.sun.star.uno.Exception { Collection<String> vExpectedEmbeddedFrames = new ArrayList<String>(); vExpectedEmbeddedFrames.add("Object1"); @@ -82,51 +73,42 @@ public class CheckFlies extends ComplexTestCase { com.sun.star.container.XNameAccess xEmbeddedFrames = xTGOS.getEmbeddedObjects(); for(String sFrameName : xEmbeddedFrames.getElementNames()) { - if(!vExpectedEmbeddedFrames.remove(sFrameName)) - failed("Unexpected frame name"); - try - { - xEmbeddedFrames.getByName(sFrameName); - } - catch(com.sun.star.container.NoSuchElementException e) - { - failed("Could not get embedded frame by name."); - } - if(!xEmbeddedFrames.hasByName(sFrameName)) - failed("Could not find embedded frame by name."); + assertTrue( + "Unexpected frame name", + vExpectedEmbeddedFrames.remove(sFrameName)); + xEmbeddedFrames.getByName(sFrameName); + assertTrue( + "Could not find embedded frame by name.", + xEmbeddedFrames.hasByName(sFrameName)); } - if(!vExpectedEmbeddedFrames.isEmpty()) - failed("Missing expected embedded frames."); + assertTrue( + "Missing expected embedded frames.", + vExpectedEmbeddedFrames.isEmpty()); try { xEmbeddedFrames.getByName("Nonexisting embedded frame"); - failed("Got nonexisting embedded frame"); + fail("Got nonexisting embedded frame"); } catch(com.sun.star.container.NoSuchElementException e) {} - if(xEmbeddedFrames.hasByName("Nonexisting embedded frame")) - failed("Has nonexisting embedded frame"); + assertFalse( + "Has nonexisting embedded frame", + xEmbeddedFrames.hasByName("Nonexisting embedded frame")); com.sun.star.container.XIndexAccess xEmbeddedFramesIdx = (com.sun.star.container.XIndexAccess)UnoRuntime.queryInterface( com.sun.star.container.XIndexAccess.class, xEmbeddedFrames); - if(xEmbeddedFramesIdx.getCount() != nEmbeddedFrames) - failed("Unexpected number of embedded frames reported."); + assertEquals( + "Unexpected number of embedded frames reported.", nEmbeddedFrames, + xEmbeddedFramesIdx.getCount()); for(int nCurrentFrameIdx = 0; nCurrentFrameIdx < xEmbeddedFramesIdx.getCount(); nCurrentFrameIdx++) { - try - { - xEmbeddedFramesIdx.getByIndex(nCurrentFrameIdx); - } - catch(com.sun.star.lang.IndexOutOfBoundsException e) - { - failed("Could not get embedded frame by index."); - } + xEmbeddedFramesIdx.getByIndex(nCurrentFrameIdx); } } private void checkGraphicFrames(com.sun.star.text.XTextGraphicObjectsSupplier xTGOS) - throws com.sun.star.lang.WrappedTargetException + throws com.sun.star.uno.Exception { Collection<String> vExpectedGraphicFrames = new ArrayList<String>(); vExpectedGraphicFrames.add("graphics1"); @@ -134,51 +116,42 @@ public class CheckFlies extends ComplexTestCase { com.sun.star.container.XNameAccess xGraphicFrames = xTGOS.getGraphicObjects(); for(String sFrameName : xGraphicFrames.getElementNames()) { - if(!vExpectedGraphicFrames.remove(sFrameName)) - failed("Unexpected frame name"); - try - { - xGraphicFrames.getByName(sFrameName); - } - catch(com.sun.star.container.NoSuchElementException e) - { - failed("Could not get graphics frame by name."); - } - if(!xGraphicFrames.hasByName(sFrameName)) - failed("Could not find graphics frame by name."); + assertTrue( + "Unexpected frame name", + vExpectedGraphicFrames.remove(sFrameName)); + xGraphicFrames.getByName(sFrameName); + assertTrue( + "Could not find graphics frame by name.", + xGraphicFrames.hasByName(sFrameName)); } - if(!vExpectedGraphicFrames.isEmpty()) - failed("Missing expected graphics frames."); + assertTrue( + "Missing expected graphics frames.", + vExpectedGraphicFrames.isEmpty()); try { xGraphicFrames.getByName("Nonexisting graphics frame"); - failed("Got nonexisting graphics frame"); + fail("Got nonexisting graphics frame"); } catch(com.sun.star.container.NoSuchElementException e) {} - if(xGraphicFrames.hasByName("Nonexisting graphics frame")) - failed("Has nonexisting graphics frame"); + assertFalse( + "Has nonexisting graphics frame", + xGraphicFrames.hasByName("Nonexisting graphics frame")); com.sun.star.container.XIndexAccess xGraphicFramesIdx = (com.sun.star.container.XIndexAccess)UnoRuntime.queryInterface( com.sun.star.container.XIndexAccess.class, xGraphicFrames); - if(xGraphicFramesIdx.getCount() != nGraphicFrames) - failed("Unexpected number of graphics frames reported."); + assertEquals( + "Unexpected number of graphics frames reported.", nGraphicFrames, + xGraphicFramesIdx.getCount()); for(int nCurrentFrameIdx = 0; nCurrentFrameIdx < xGraphicFramesIdx.getCount(); nCurrentFrameIdx++) { - try - { - xGraphicFramesIdx.getByIndex(nCurrentFrameIdx); - } - catch(com.sun.star.lang.IndexOutOfBoundsException e) - { - failed("Could not get graphics frame by index."); - } + xGraphicFramesIdx.getByIndex(nCurrentFrameIdx); } } private void checkTextFrames(com.sun.star.text.XTextFramesSupplier xTFS) - throws com.sun.star.lang.WrappedTargetException + throws com.sun.star.uno.Exception { Collection<String> vExpectedTextFrames = new ArrayList<String>(); vExpectedTextFrames.add("Frame1"); @@ -188,46 +161,62 @@ public class CheckFlies extends ComplexTestCase { com.sun.star.container.XNameAccess xTextFrames = xTFS.getTextFrames(); for(String sFrameName : xTextFrames.getElementNames()) { - if(!vExpectedTextFrames.remove(sFrameName)) - failed("Unexpected frame name"); - try - { - xTextFrames.getByName(sFrameName); - } - catch(com.sun.star.container.NoSuchElementException e) - { - failed("Could not get text frame by name."); - } - if(!xTextFrames.hasByName(sFrameName)) - failed("Could not find text frame by name."); + assertTrue( + "Unexpected frame name", + vExpectedTextFrames.remove(sFrameName)); + xTextFrames.getByName(sFrameName); + assertTrue( + "Could not find text frame by name.", + xTextFrames.hasByName(sFrameName)); } - if(!vExpectedTextFrames.isEmpty()) - failed("Missing expected text frames."); + assertTrue( + "Missing expected text frames.", vExpectedTextFrames.isEmpty()); try { xTextFrames.getByName("Nonexisting Textframe"); - failed("Got nonexisting text frame."); + fail("Got nonexisting text frame."); } catch(com.sun.star.container.NoSuchElementException e) {} - if(xTextFrames.hasByName("Nonexisting text frame")) - failed("Has nonexisting text frame."); + assertFalse( + "Has nonexisting text frame.", + xTextFrames.hasByName("Nonexisting text frame")); com.sun.star.container.XIndexAccess xTextFramesIdx = (com.sun.star.container.XIndexAccess)UnoRuntime.queryInterface( com.sun.star.container.XIndexAccess.class, xTextFrames); - if(xTextFramesIdx.getCount() != nTextFrames) - failed("Unexpected number of text frames reported."); + assertEquals( + "Unexpected number of text frames reported.", nTextFrames, + xTextFramesIdx.getCount()); for(int nCurrentFrameIdx = 0; nCurrentFrameIdx < xTextFramesIdx.getCount(); nCurrentFrameIdx++) { - try - { - xTextFramesIdx.getByIndex(nCurrentFrameIdx); - } - catch(com.sun.star.lang.IndexOutOfBoundsException e) - { - failed("Could not get text frame by index."); - } + xTextFramesIdx.getByIndex(nCurrentFrameIdx); } } + + @Before public void setUpDocument() throws com.sun.star.uno.Exception { + document = util.WriterTools.loadTextDoc( + UnoRuntime.queryInterface( + XMultiServiceFactory.class, + connection.getComponentContext().getServiceManager()), + TestDocument.getUrl("CheckFlies.odt")); + } + + @After public void tearDownDocument() { + util.DesktopTools.closeDoc(document); + } + + private XTextDocument document = null; + + @BeforeClass public static void setUpConnection() throws Exception { + connection.setUp(); + } + + @AfterClass public static void tearDownConnection() + throws InterruptedException, com.sun.star.uno.Exception + { + connection.tearDown(); + } + + private static final OfficeConnection connection = new OfficeConnection(); } diff --git a/sw/qa/complex/writer/CheckIndexedPropertyValues.java b/sw/qa/complex/writer/CheckIndexedPropertyValues.java index aca4f68c7ec2..c381cd5825c4 100755 --- a/sw/qa/complex/writer/CheckIndexedPropertyValues.java +++ b/sw/qa/complex/writer/CheckIndexedPropertyValues.java @@ -27,53 +27,31 @@ package complex.writer; -import complexlib.ComplexTestCase; -import com.sun.star.lang.XMultiServiceFactory; -import com.sun.star.uno.XInterface; import com.sun.star.beans.PropertyValue; import com.sun.star.container.XIndexContainer; import com.sun.star.uno.UnoRuntime; import com.sun.star.uno.Type; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openoffice.test.OfficeConnection; +import static org.junit.Assert.*; /** * Test the com.sun.star.document.IndexedPropertyValues service */ -public class CheckIndexedPropertyValues extends ComplexTestCase { +public class CheckIndexedPropertyValues { + @Test public void checkIndexedPropertyValues() + throws com.sun.star.uno.Exception + { + XIndexContainer xCont = UnoRuntime.queryInterface( + XIndexContainer.class, + (connection.getComponentContext().getServiceManager(). + createInstanceWithContext( + "com.sun.star.document.IndexedPropertyValues", + connection.getComponentContext()))); - private final String testedServiceName = - "com.sun.star.document.IndexedPropertyValues"; - public String[] getTestMethodNames() { - return new String[]{"checkIndexedPropertyValues"}; - } - -/* public String getTestObjectName() { - return testedServiceName; - } -*/ - public void checkIndexedPropertyValues() { - Object oObj = null; - try { - // print information about the service - XMultiServiceFactory xMSF = (XMultiServiceFactory)param.getMSF(); - oObj = xMSF.createInstance(testedServiceName); - System.out.println("****************"); - System.out.println("Service Name:"); - util.dbg.getSuppServices(oObj); - System.out.println("****************"); - System.out.println("Interfaces:"); - util.dbg.printInterfaces((XInterface)oObj, true); - } - catch(com.sun.star.uno.Exception e) { - System.out.println("Cannot create object."); - e.printStackTrace(); - failed(e.getMessage()); - return; - } - XIndexContainer xCont = (XIndexContainer)UnoRuntime.queryInterface( - XIndexContainer.class, oObj); - - assure("XIndexContainer was queried but returned null.", - (xCont != null)); + assertNotNull("XIndexContainer was queried but returned null.", xCont); PropertyValue[] prop1 = new PropertyValue[1]; prop1[0] = new PropertyValue(); prop1[0].Name = "Jupp"; @@ -84,99 +62,55 @@ public class CheckIndexedPropertyValues extends ComplexTestCase { prop2[0].Name = "Horst"; prop2[0].Value = "BadGuy"; - try { - Type t = xCont.getElementType(); - log.println("Insertable Type: " + t.getTypeName()); - assure("Initial container is not empty: " + xCont.getCount(), xCont.getCount()==0); - log.println("Inserting a PropertyValue."); - xCont.insertByIndex(0, prop1); - PropertyValue[]ret = (PropertyValue[])xCont.getByIndex(0); - assure("Got the wrong PropertyValue: " + - ret[0].Name + " " +(String)ret[0].Value, - ret[0].Name.equals(prop1[0].Name) && - ret[0].Value.equals(prop1[0].Value)); - log.println("Replace the PropertyValue."); - xCont.replaceByIndex(0, prop2); - ret = (PropertyValue[])xCont.getByIndex(0); - assure("Got the wrong PropertyValue: " + - ret[0].Name + " " +(String)ret[0].Value, - ret[0].Name.equals(prop2[0].Name) && - ret[0].Value.equals(prop2[0].Value)); - log.println("Remove the PropertyValue."); - xCont.removeByIndex(0); - assure("Could not remove PropertyValue.", - !xCont.hasElements() && xCont.getCount()==0); - log.println("Insert again."); - xCont.insertByIndex(0, prop1); - xCont.insertByIndex(1, prop2); - assure("Did not insert PropertyValue.", - xCont.hasElements() && xCont.getCount()==2); - - try { - log.println("Insert with wrong index."); - xCont.insertByIndex(25, prop2); - failed("IllegalArgumentException was not thrown."); - } - catch(com.sun.star.lang.IllegalArgumentException e) { - log.println("Wrong exception thrown."); - failed(e.getMessage()); - e.printStackTrace(); - } - catch(com.sun.star.lang.IndexOutOfBoundsException e) { - log.println("Expected exception thrown: "+e); - } - catch(com.sun.star.lang.WrappedTargetException e) { - log.println("Wrong exception thrown."); - failed(e.getMessage()); - e.printStackTrace(); - } - - try { - log.println("Remove non-existing index."); - xCont.removeByIndex(25); - failed("IndexOutOfBoundsException was not thrown."); - } - catch(com.sun.star.lang.IndexOutOfBoundsException e) { - log.println("Expected exception thrown: "+e); - } - catch(com.sun.star.lang.WrappedTargetException e) { - log.println("Wrong exception thrown."); - failed(e.getMessage()); - e.printStackTrace(); - } - - try { - log.println("Insert wrong argument."); - xCont.insertByIndex(2, "Example String"); - failed("IllegalArgumentException was not thrown."); - } - catch(com.sun.star.lang.IllegalArgumentException e) { - log.println("Expected exception thrown: " + e); - } - catch(com.sun.star.lang.IndexOutOfBoundsException e) { - log.println("Wrong exception thrown."); - failed(e.getMessage()); - e.printStackTrace(); - } - catch(com.sun.star.lang.WrappedTargetException e) { - log.println("Wrong exception thrown."); - failed(e.getMessage()); - e.printStackTrace(); - } + Type t = xCont.getElementType(); + assertEquals("Initial container is not empty", 0, xCont.getCount()); + xCont.insertByIndex(0, prop1); + PropertyValue[]ret = (PropertyValue[])xCont.getByIndex(0); + assertEquals(prop1[0].Name, ret[0].Name); + assertEquals(prop1[0].Value, ret[0].Value); + xCont.replaceByIndex(0, prop2); + ret = (PropertyValue[])xCont.getByIndex(0); + assertEquals(prop2[0].Name, ret[0].Name); + assertEquals(prop2[0].Value, ret[0].Value); + xCont.removeByIndex(0); + assertTrue("Could not remove PropertyValue.", + !xCont.hasElements() && xCont.getCount()==0); + xCont.insertByIndex(0, prop1); + xCont.insertByIndex(1, prop2); + assertTrue("Did not insert PropertyValue.", + xCont.hasElements() && xCont.getCount()==2); + try { + xCont.insertByIndex(25, prop2); + fail("IllegalArgumentException was not thrown."); } - catch(com.sun.star.lang.IllegalArgumentException e) { - failed(e.getMessage()); - e.printStackTrace(); + catch(com.sun.star.lang.IndexOutOfBoundsException e) { + } + + try { + xCont.removeByIndex(25); + fail("IndexOutOfBoundsException was not thrown."); } catch(com.sun.star.lang.IndexOutOfBoundsException e) { - failed(e.getMessage()); - e.printStackTrace(); } - catch(com.sun.star.lang.WrappedTargetException e) { - failed(e.getMessage()); - e.printStackTrace(); + + try { + xCont.insertByIndex(2, "Example String"); + fail("IllegalArgumentException was not thrown."); + } + catch(com.sun.star.lang.IllegalArgumentException e) { } } + @BeforeClass public static void setUpConnection() throws Exception { + connection.setUp(); + } + + @AfterClass public static void tearDownConnection() + throws InterruptedException, com.sun.star.uno.Exception + { + connection.tearDown(); + } + + private static final OfficeConnection connection = new OfficeConnection(); } diff --git a/sw/qa/complex/writer/CheckNamedPropertyValues.java b/sw/qa/complex/writer/CheckNamedPropertyValues.java index 851381cf3c24..b2541954ce9f 100755 --- a/sw/qa/complex/writer/CheckNamedPropertyValues.java +++ b/sw/qa/complex/writer/CheckNamedPropertyValues.java @@ -27,53 +27,31 @@ package complex.writer; - -import complexlib.ComplexTestCase; import com.sun.star.beans.PropertyValue; -import com.sun.star.lang.XMultiServiceFactory; -import com.sun.star.uno.XInterface; import com.sun.star.container.XNameContainer; import com.sun.star.uno.UnoRuntime; import com.sun.star.uno.Type; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openoffice.test.OfficeConnection; +import static org.junit.Assert.*; /** * */ -public class CheckNamedPropertyValues extends ComplexTestCase { - - private final String testedServiceName = - "com.sun.star.document.NamedPropertyValues"; - - public String[] getTestMethodNames() { - return new String[]{"checkNamedPropertyValues"}; - } - -/* public String getTestObjectName() { - return "complex.writer.CheckNamedPropertyValues"; - } */ - - public void checkNamedPropertyValues() { - Object oObj = null; - try { - XMultiServiceFactory xMSF = (XMultiServiceFactory)param.getMSF(); - oObj = xMSF.createInstance(testedServiceName); - System.out.println("****************"); - System.out.println("Service Name:"); - util.dbg.getSuppServices(oObj); - System.out.println("****************"); - System.out.println("Interfaces:"); - util.dbg.printInterfaces((XInterface)oObj, true); - } - catch(com.sun.star.uno.Exception e) { - e.printStackTrace(); - failed(e.getMessage()); - return; - } - XNameContainer xCont = (XNameContainer)UnoRuntime.queryInterface( - XNameContainer.class, oObj); - - assure("XNameContainer was queried but returned null.", - (xCont != null)); +public class CheckNamedPropertyValues { + @Test public void checkNamedPropertyValues() + throws com.sun.star.uno.Exception + { + XNameContainer xCont = UnoRuntime.queryInterface( + XNameContainer.class, + (connection.getComponentContext().getServiceManager(). + createInstanceWithContext( + "com.sun.star.document.NamedPropertyValues", + connection.getComponentContext()))); + + assertNotNull("XNameContainer was queried but returned null.", xCont); PropertyValue[] prop1 = new PropertyValue[1]; prop1[0] = new PropertyValue(); prop1[0].Name = "Jupp"; @@ -84,113 +62,61 @@ public class CheckNamedPropertyValues extends ComplexTestCase { prop2[0].Name = "Horst"; prop2[0].Value = "BadGuy"; - try { - Type t = xCont.getElementType(); - log.println("Insertable Type: " + t.getTypeName()); - assure("Initial container is not empty.", !xCont.hasElements()); - - log.println("Insert a PropertyValue."); - xCont.insertByName("prop1", prop1); - PropertyValue[]ret = (PropertyValue[])xCont.getByName("prop1"); - assure("Got the wrong PropertyValue: " + - ret[0].Name + " " +(String)ret[0].Value, - ret[0].Name.equals(prop1[0].Name) && - ret[0].Value.equals(prop1[0].Value)); - log.println("Replace the PropertyValue."); - xCont.replaceByName("prop1", prop2); - ret = (PropertyValue[])xCont.getByName("prop1"); - assure("Got the wrong PropertyValue: " + - ret[0].Name + " " +(String)ret[0].Value, - ret[0].Name.equals(prop2[0].Name) && - ret[0].Value.equals(prop2[0].Value)); - log.println("Remove the PropertyValue."); - xCont.removeByName("prop1"); - assure("Could not remove PropertyValue.", !xCont.hasElements()); - log.println("Insert again."); - xCont.insertByName("prop1", prop1); - xCont.insertByName("prop2", prop2); - assure("Did not insert PropertyValue.", xCont.hasElements()); - String[] names = xCont.getElementNames(); - int count = 0; - for (int i=0; i<names.length; i++) { - if (names[i].equals("prop1") || names[i].equals("prop2")) - count++; - else - failed("Got a wrong element name: "+names[i]); - } - if (count != 2) - failed("Not all element names were returned."); - - try { - log.println("Insert PropertyValue with an existing name."); - xCont.insertByName("prop2", prop1); - failed("ElementExistException was not thrown."); - } - catch(com.sun.star.lang.IllegalArgumentException e) { - log.println("Wrong exception thrown."); - failed(e.getMessage()); - e.printStackTrace(); - } - catch(com.sun.star.container.ElementExistException e) { - log.println("Expected exception thrown: "+e); - } - catch(com.sun.star.lang.WrappedTargetException e) { - log.println("Wrong exception thrown."); - failed(e.getMessage()); - e.printStackTrace(); - } - - try { - log.println("Inserting a wrong argument."); - xCont.insertByName("prop3", "Example String"); - failed("IllegalArgumentException was not thrown."); - } - catch(com.sun.star.lang.IllegalArgumentException e) { - log.println("Expected exception thrown: "+e); - } - catch(com.sun.star.container.ElementExistException e) { - log.println("Wrong exception thrown."); - failed(e.getMessage()); - e.printStackTrace(); - } - catch(com.sun.star.lang.WrappedTargetException e) { - log.println("Wrong exception thrown."); - failed(e.getMessage()); - e.printStackTrace(); - } + Type t = xCont.getElementType(); + assertFalse("Initial container is not empty.", xCont.hasElements()); + + xCont.insertByName("prop1", prop1); + PropertyValue[]ret = (PropertyValue[])xCont.getByName("prop1"); + assertEquals(prop1[0].Name, ret[0].Name); + assertEquals(prop1[0].Value, ret[0].Value); + xCont.replaceByName("prop1", prop2); + ret = (PropertyValue[])xCont.getByName("prop1"); + assertEquals(prop2[0].Name, ret[0].Name); + assertEquals(prop2[0].Value, ret[0].Value); + xCont.removeByName("prop1"); + assertFalse("Could not remove PropertyValue.", xCont.hasElements()); + xCont.insertByName("prop1", prop1); + xCont.insertByName("prop2", prop2); + assertTrue("Did not insert PropertyValue.", xCont.hasElements()); + String[] names = xCont.getElementNames(); + assertEquals("Not all element names were returned.", 2, names.length); + for (int i=0; i<names.length; i++) { + assertTrue( + "Got a wrong element name", + names[i].equals("prop1") || names[i].equals("prop2")); + } - try { - log.println("Remove a non-existing element."); - xCont.removeByName("prop3"); - failed("NoSuchElementException was not thrown."); - } - catch(com.sun.star.container.NoSuchElementException e) { - log.println("Expected exception thrown: "+e); - } - catch(com.sun.star.lang.WrappedTargetException e) { - log.println("Wrong exception thrown."); - failed(e.getMessage()); - e.printStackTrace(); - } + try { + xCont.insertByName("prop2", prop1); + fail("ElementExistException was not thrown."); + } + catch(com.sun.star.container.ElementExistException e) { + } + try { + xCont.insertByName("prop3", "Example String"); + fail("IllegalArgumentException was not thrown."); } catch(com.sun.star.lang.IllegalArgumentException e) { - failed(e.getMessage()); - e.printStackTrace(); } - catch(com.sun.star.container.ElementExistException e) { - failed(e.getMessage()); - e.printStackTrace(); + + try { + xCont.removeByName("prop3"); + fail("NoSuchElementException was not thrown."); } catch(com.sun.star.container.NoSuchElementException e) { - failed(e.getMessage()); - e.printStackTrace(); - } - catch(com.sun.star.lang.WrappedTargetException e) { - failed(e.getMessage()); - e.printStackTrace(); } } + @BeforeClass public static void setUpConnection() throws Exception { + connection.setUp(); + } + + @AfterClass public static void tearDownConnection() + throws InterruptedException, com.sun.star.uno.Exception + { + connection.tearDown(); + } + private static final OfficeConnection connection = new OfficeConnection(); } diff --git a/sw/qa/complex/writer/TestDocument.java b/sw/qa/complex/writer/TestDocument.java new file mode 100644 index 000000000000..25a11338ae5c --- /dev/null +++ b/sw/qa/complex/writer/TestDocument.java @@ -0,0 +1,39 @@ +/************************************************************************* +* +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* Copyright 2000, 2010 Oracle and/or its affiliates. +* +* OpenOffice.org - a multi-platform office productivity suite +* +* This file is part of OpenOffice.org. +* +* OpenOffice.org is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License version 3 +* only, as published by the Free Software Foundation. +* +* OpenOffice.org is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License version 3 for more details +* (a copy is included in the LICENSE file that accompanied this code). +* +* You should have received a copy of the GNU Lesser General Public License +* version 3 along with OpenOffice.org. If not, see +* <http://www.openoffice.org/license.html> +* for a copy of the LGPLv3 License. +* +************************************************************************/ + +package complex.writer; + +import java.io.File; +import org.openoffice.test.OfficeFileUrl; + +final class TestDocument { + public static String getUrl(String name) { + return OfficeFileUrl.getAbsolute(new File("testdocuments", name)); + } + + private TestDocument() {} +} diff --git a/sw/qa/complex/writer/TextPortionEnumerationTest.java b/sw/qa/complex/writer/TextPortionEnumerationTest.java index 2eda02bfa518..114359bc3581 100755 --- a/sw/qa/complex/writer/TextPortionEnumerationTest.java +++ b/sw/qa/complex/writer/TextPortionEnumerationTest.java @@ -27,7 +27,6 @@ package complex.writer; -import complexlib.ComplexTestCase; import com.sun.star.uno.UnoRuntime; import com.sun.star.uno.AnyConverter; import com.sun.star.uno.XComponentContext; @@ -70,6 +69,13 @@ import com.sun.star.rdf.XMetadatable; import com.sun.star.rdf.Statement; import com.sun.star.rdf.XDocumentRepository; import com.sun.star.rdf.XRepositorySupplier; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openoffice.test.OfficeConnection; +import static org.junit.Assert.*; import java.util.Map; import java.util.HashMap; @@ -432,10 +438,8 @@ class FuzzyTester private Stack<Pair<TreeNode, TreeNodeEnum>> m_StackActual; private List<TreeNode> m_BufferExpected; private List<TreeNode> m_BufferActual; - private share.LogWriter m_Log; - FuzzyTester(share.LogWriter log) { - m_Log = log; + FuzzyTester() { m_BufferExpected = new ArrayList<TreeNode>(); m_BufferActual = new ArrayList<TreeNode>(); m_StackExpected = new Stack<Pair<TreeNode, TreeNodeEnum>>(); @@ -444,12 +448,10 @@ class FuzzyTester /** idea: traverse both trees, enumerate nodes, stopping at content nodes. then compare buffers. */ - boolean doTest(TreeNode expected, TreeNode actual) + void doTest(TreeNode expected, TreeNode actual) { - if (!expected.getType().equals("__ROOT__")) - throw new RuntimeException("doTest: expected: root"); - if (!actual.getType().equals("__ROOT__")) - throw new RuntimeException("doTest: actual: root"); + assertEquals("__ROOT__", expected.getType()); + assertEquals("__ROOT__", actual.getType()); m_StackExpected.push(new Pair(expected, expected.createEnumeration())); m_StackActual.push(new Pair(actual, actual.createEnumeration())); do { @@ -459,18 +461,19 @@ class FuzzyTester testBuffer(); } while (!m_StackExpected.empty() || !m_StackActual.empty()); if (m_DiffSequence != 0) { - m_Log.println("warning: " + m_DiffSequence + System.out.println("warning: " + m_DiffSequence + " differences in sequence"); } if (m_DiffSpuriousEmptyText != 0) { - m_Log.println("warning: " + m_DiffSpuriousEmptyText + System.out.println("warning: " + m_DiffSpuriousEmptyText + " spurious empty text nodes"); } if (m_DiffNesting != 0) { - m_Log.println("WARNING: " + m_DiffNesting + System.out.println("WARNING: " + m_DiffNesting + " differences in nesting"); } - return (m_DiffContent == 0) && (m_DiffMissing == 0); + assertEquals(0, m_DiffContent); + assertEquals(0, m_DiffMissing); } private void traverse(Stack<Pair<TreeNode, TreeNodeEnum>> stack, @@ -563,7 +566,7 @@ class FuzzyTester } m_BufferActual.set(j, null); } else { -//m_Log.println("testBuffer:"); +//System.out.println("testBuffer:"); printMissing(node); m_DiffMissing++; } @@ -573,7 +576,7 @@ class FuzzyTester TreeNode node = m_BufferActual.get(j); if (node != null) { -//m_Log.println("testBuffer:"); +//System.out.println("testBuffer:"); printUnexpected(node); if ((node instanceof TextNode) && ((TextNode) node).getContent().length() == 0) { @@ -590,25 +593,25 @@ class FuzzyTester void printDiff(String prefix, String expected, String actual) { - m_Log.println(prefix + + System.out.println(prefix + ":\texpected: " + expected + "\tactual: " + actual); } void printNesting(TreeNode node, TreeNode nesting) { - m_Log.println("node: " + node.toString() + System.out.println("node: " + node.toString() + " possibly moved across nesting " + nesting.toString()); } void printMissing(TreeNode node) { - m_Log.println(" missing node: " + node.toString()); + System.out.println(" missing node: " + node.toString()); } void printUnexpected(TreeNode node) { - m_Log.println("unexpected node: " + node.toString()); + System.out.println("unexpected node: " + node.toString()); } } @@ -619,10 +622,9 @@ class FuzzyTester class EnumConverter { private Stack<TreeNode> m_Stack; - TextPortionEnumerationTest m_T; - EnumConverter(TextPortionEnumerationTest err) { - m_Stack = new Stack<TreeNode>(); m_T = err; + EnumConverter() { + m_Stack = new Stack<TreeNode>(); } TreeNode convert(XEnumeration xEnum) throws Exception @@ -630,7 +632,7 @@ class EnumConverter TreeNode root = new TreeNode(); m_Stack.push(root); TreeNode ret = convertChildren(xEnum); - m_T.assure("EnumConverter.convert: stack", m_Stack.empty()); + assertTrue("EnumConverter.convert: stack", m_Stack.empty()); return ret; } @@ -670,7 +672,7 @@ class EnumConverter xMeta); XEnumeration xEnumChildren = xEA.createEnumeration(); TreeNode node2 = convertChildren(xEnumChildren); - m_T.assure("stack error: meta-field", node == node2); + assertSame("stack error: meta-field", node2, node); } else { XPropertySet xFieldPropSet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xField); @@ -678,7 +680,7 @@ class EnumConverter xFieldPropSet.getPropertyValue("Content"); boolean isFixed = (Boolean) xFieldPropSet.getPropertyValue("IsFixed"); - m_T.assure("field not fixed?", isFixed); + assertTrue("field not fixed?", isFixed); node = new TextFieldNode(content); } } else if (type.equals("Footnote")) { @@ -781,10 +783,8 @@ class EnumConverter continue; } else { node = m_Stack.pop(); - m_T.assure("stack error: Ruby expected; is: " + - node.toString(), node instanceof RubyNode); -// m_T.assure("stack error: ruby", -// ruby.equals(((RubyNode)node).getRubyText())); + assertTrue("stack error: Ruby expected; is: " + + node.toString(), node instanceof RubyNode); } } else if (type.equals("InContentMetadata")) { Object xMeta = xPropSet.getPropertyValue("InContentMetadata"); @@ -797,9 +797,7 @@ class EnumConverter UnoRuntime.queryInterface(XEnumerationAccess.class, xMeta); XEnumeration xEnumChildren = xEA.createEnumeration(); TreeNode node2 = convertChildren(xEnumChildren); - m_T.assure("stack error: meta", node == node2); -// } else if (type.equals("MetadataField")) { -// Object xMeta = xPropSet.getPropertyValue("MetadataField"); + assertSame("stack error: meta", node2, node); } else { throw new RuntimeException("unexpected type: " + type); } @@ -1240,7 +1238,7 @@ class RangeInserter extends Inserter //---------------------------------------------------------------------- -public class TextPortionEnumerationTest extends ComplexTestCase +public class TextPortionEnumerationTest { private XMultiServiceFactory m_xMSF = null; private XComponentContext m_xContext = null; @@ -1249,115 +1247,28 @@ public class TextPortionEnumerationTest extends ComplexTestCase private int m_Count = 1; -// public String[] getTestMethodNames() { return new String[] { "testLoadStore" }; } - public String[] getTestMethodNames() { - return new String[] { - "testText", - "testTextField", -// "testControlChar", -// "testSoftPageBreak", - "testFootnote", - "testFrameAs", - "testFrameAt", - "testBookmarkPoint", - "testBookmark", - "testBookmarkPointXmlId", - "testBookmarkXmlId", - "testRefmarkPoint", - "testRefmark", - "testToxmarkPoint", - "testToxmark", - "testHyperlink", - "testHyperlinkEmpty", - "testRuby", - "testRubyEmpty", - "testMeta", - "testMetaEmpty", - "testMetaField", - "testMetaFieldEmpty", - "testBookmark1", - "testBookmark2", - "testRefMark2", - "testRefMark3", - "testToxMark2", - "testToxMark3", - "testMarks1", - "testMarks2", - "testMarks3", - "testFrameMark1", - "testFrameMark2", - "testFrameMark3", - "testFrameMark4", - "testFrames1", - "testFrames2", - "testFrames3", - "testFrames4", - "testFrames5", - "testRubyHyperlink1", - "testRubyHyperlink2", - "testEnd1", - "testEnd2", - "testEnd3", - "testEnd4", - "testEnd5", - "testEmpty1", - "testEmpty2", - "testEmpty3", - "test1", - "testRange1", - "testRangeHyperlinkHyperlink", - "testRangeHyperlinkRuby", - "testRangeRubyHyperlink", - "testRangeRubyRuby", - "testRangeHyperlinkMeta", - "testRangeRubyMeta", - "testRangeMetaHyperlink", - "testRangeMetaRuby", - "testRangeMetaMeta", - "testRange2", - "testRange3", - "testRange4", - "testRange5", - "testRange6", - "testRange7", - "testMetaXChild", - "testMetaXText", - "testMetaXTextCursor", - "testMetaXTextAttachToxMark", - "testMetaXTextAttachRefMark", - "testMetaXTextAttachTextField", - "testMetaXTextAttachFootnote", - "testMetaXTextAttachMeta", - "testMetaFieldXTextField", - "testMetaFieldXPropertySet", - "testLoadStore", - "testLoadStoreXmlid", - }; - } - - public void before() throws Exception + @Before public void before() throws Exception { - m_xMSF = (XMultiServiceFactory) param.getMSF(); + m_xMSF = UnoRuntime.queryInterface( + XMultiServiceFactory.class, + connection.getComponentContext().getServiceManager()); XPropertySet xPropertySet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, m_xMSF); Object defaultCtx = xPropertySet.getPropertyValue("DefaultContext"); m_xContext = (XComponentContext) UnoRuntime.queryInterface(XComponentContext.class, defaultCtx); - assure("could not get component context.", m_xContext != null); + assertNotNull("could not get component context.", m_xContext); m_xDoc = util.WriterTools.createTextDoc(m_xMSF); m_TmpDir = util.utils.getOfficeTemp/*Dir*/(m_xMSF); - log.println("tempdir: " + m_TmpDir); + System.out.println("tempdir: " + m_TmpDir); } - public void after() + @After public void after() { - if (m_xDoc != null) { - util.DesktopTools.closeDoc(m_xDoc); - m_xDoc = null; - } + util.DesktopTools.closeDoc(m_xDoc); } - public void testText() throws Exception + @Test public void testText() throws Exception { TreeNode root = new TreeNode(); TreeNode text = new TextNode("abc"); @@ -1365,7 +1276,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testTextField() throws Exception + @Test public void testTextField() throws Exception { String name = mkName("ruby"); TreeNode root = new TreeNode(); @@ -1374,7 +1285,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testControlChar() throws Exception + /*@Test*/ public void testControlChar() throws Exception { //FIXME this is converted to a text portion: ControlCharacter is obsolete TreeNode root = new TreeNode(); @@ -1383,7 +1294,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testSoftPageBreak() throws Exception + /*@Test*/ public void testSoftPageBreak() throws Exception { //FIXME: insert a soft page break: not done TreeNode root = new TreeNode(); @@ -1394,7 +1305,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testFootnote() throws Exception + @Test public void testFootnote() throws Exception { String name = mkName("ftn"); TreeNode root = new TreeNode(); @@ -1403,7 +1314,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testFrameAs() throws Exception + @Test public void testFrameAs() throws Exception { String name = mkName("frame"); TreeNode root = new TreeNode(); @@ -1412,7 +1323,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testFrameAt() throws Exception + @Test public void testFrameAt() throws Exception { String name = mkName("frame"); TreeNode root = new TreeNode(); @@ -1423,7 +1334,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testBookmarkPoint() throws Exception + @Test public void testBookmarkPoint() throws Exception { String name = mkName("mark"); TreeNode root = new TreeNode(); @@ -1434,7 +1345,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testBookmark() throws Exception + @Test public void testBookmark() throws Exception { String name = mkName("mark"); TreeNode root = new TreeNode(); @@ -1447,7 +1358,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testBookmarkPointXmlId() throws Exception + @Test public void testBookmarkPointXmlId() throws Exception { String name = mkName("mark"); StringPair id = mkId("id"); @@ -1459,7 +1370,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testBookmarkXmlId() throws Exception + @Test public void testBookmarkXmlId() throws Exception { String name = mkName("mark"); StringPair id = mkId("id"); @@ -1473,7 +1384,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testRefmarkPoint() throws Exception + @Test public void testRefmarkPoint() throws Exception { String name = mkName("refmark"); TreeNode root = new TreeNode(); @@ -1484,7 +1395,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testRefmark() throws Exception + @Test public void testRefmark() throws Exception { String name = mkName("refmark"); TreeNode root = new TreeNode(); @@ -1497,7 +1408,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testToxmarkPoint() throws Exception + @Test public void testToxmarkPoint() throws Exception { String name = mkName("toxmark"); TreeNode root = new TreeNode(); @@ -1508,7 +1419,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testToxmark() throws Exception + @Test public void testToxmark() throws Exception { String name = mkName("toxmark"); TreeNode root = new TreeNode(); @@ -1521,7 +1432,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testHyperlink() throws Exception + @Test public void testHyperlink() throws Exception { String name = mkName("url"); TreeNode root = new TreeNode(); @@ -1532,7 +1443,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testHyperlinkEmpty() throws Exception + @Test public void testHyperlinkEmpty() throws Exception { String name = mkName("url"); TreeNode root = new TreeNode(); @@ -1543,7 +1454,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testRuby() throws Exception + @Test public void testRuby() throws Exception { String name = mkName("ruby"); TreeNode root = new TreeNode(); @@ -1554,7 +1465,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testRubyEmpty() throws Exception + @Test public void testRubyEmpty() throws Exception { // BUG: #i91534# String name = mkName("ruby"); @@ -1564,7 +1475,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testMeta() throws Exception + @Test public void testMeta() throws Exception { StringPair id = new StringPair("content.xml", mkName("id")); TreeNode root = new TreeNode(); @@ -1576,7 +1487,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testMetaEmpty() throws Exception + @Test public void testMetaEmpty() throws Exception { StringPair id = new StringPair("content.xml", mkName("id")); TreeNode root = new TreeNode(); @@ -1587,7 +1498,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testMetaField() throws Exception + @Test public void testMetaField() throws Exception { StringPair id = new StringPair("content.xml", mkName("id")); TreeNode root = new TreeNode(); @@ -1599,7 +1510,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testMetaFieldEmpty() throws Exception + @Test public void testMetaFieldEmpty() throws Exception { StringPair id = new StringPair("content.xml", mkName("id")); TreeNode root = new TreeNode(); @@ -1610,7 +1521,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testBookmark1() throws Exception + @Test public void testBookmark1() throws Exception { String name1 = mkName("mark"); String name2 = mkName("mark"); @@ -1626,7 +1537,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testBookmark2() throws Exception + @Test public void testBookmark2() throws Exception { String name1 = mkName("mark"); String name2 = mkName("mark"); @@ -1642,7 +1553,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testRefMark2() throws Exception + @Test public void testRefMark2() throws Exception { String name1 = mkName("refmark"); TreeNode root = new TreeNode(); @@ -1654,7 +1565,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testRefMark3() throws Exception + @Test public void testRefMark3() throws Exception { // BUG: #i107672# (non-deterministic; depends on pointer ordering) String name1 = mkName("refmark"); @@ -1684,7 +1595,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testToxMark2() throws Exception + @Test public void testToxMark2() throws Exception { String name1 = mkName("toxmark"); TreeNode root = new TreeNode(); @@ -1695,7 +1606,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testToxMark3() throws Exception + @Test public void testToxMark3() throws Exception { // BUG: #i107672# (non-deterministic; depends on pointer ordering) String name1 = mkName("toxmark"); @@ -1725,7 +1636,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testMarks1() throws Exception + @Test public void testMarks1() throws Exception { String name1 = mkName("bookmark"); String name2 = mkName("toxmark"); @@ -1744,7 +1655,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testMarks2() throws Exception + @Test public void testMarks2() throws Exception { String name1 = mkName("bookmark"); String name2 = mkName("refmark"); @@ -1767,7 +1678,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testMarks3() throws Exception + @Test public void testMarks3() throws Exception { String name1 = mkName("bookmark"); String name2 = mkName("refmark"); @@ -1789,7 +1700,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testFrameMark1() throws Exception + @Test public void testFrameMark1() throws Exception { String name1 = mkName("bookmark"); String name2 = mkName("frame"); @@ -1801,7 +1712,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testFrameMark2() throws Exception + @Test public void testFrameMark2() throws Exception { // BUG: #i98530# String name1 = mkName("bookmark"); @@ -1814,7 +1725,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testFrameMark3() throws Exception + @Test public void testFrameMark3() throws Exception { String name1 = mkName("frame"); String name2 = mkName("bookmark"); @@ -1826,7 +1737,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testFrameMark4() throws Exception + @Test public void testFrameMark4() throws Exception { String name1 = mkName("frame"); String name2 = mkName("bookmark"); @@ -1838,7 +1749,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testFrames1() throws Exception + @Test public void testFrames1() throws Exception { String name1 = mkName("frame"); String name2 = mkName("frame"); @@ -1850,7 +1761,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testFrames2() throws Exception + @Test public void testFrames2() throws Exception { String name1 = mkName("frame"); String name2 = mkName("frame"); @@ -1862,7 +1773,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testFrames3() throws Exception + @Test public void testFrames3() throws Exception { String name1 = mkName("frame"); String name2 = mkName("frame"); @@ -1874,7 +1785,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testFrames4() throws Exception + @Test public void testFrames4() throws Exception { String name1 = mkName("frame"); String name2 = mkName("frame"); @@ -1886,7 +1797,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testFrames5() throws Exception + @Test public void testFrames5() throws Exception { String name1 = mkName("frame"); String name2 = mkName("frame"); @@ -1898,7 +1809,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testRubyHyperlink1() throws Exception + @Test public void testRubyHyperlink1() throws Exception { String name1 = mkName("ruby"); String name2 = mkName("url"); @@ -1911,7 +1822,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testRubyHyperlink2() throws Exception + @Test public void testRubyHyperlink2() throws Exception { String name1 = mkName("url"); String name2 = mkName("ruby"); @@ -1924,7 +1835,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testEnd1() throws Exception + @Test public void testEnd1() throws Exception { String name1 = mkName("bookmark"); String name2 = mkName("toxmark"); @@ -1937,7 +1848,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testEnd2() throws Exception + @Test public void testEnd2() throws Exception { String name1 = mkName("bookmark"); String name2 = mkName("frame"); @@ -1954,7 +1865,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testEnd3() throws Exception + @Test public void testEnd3() throws Exception { String name1 = mkName("ftn"); String name2 = mkName("toxmark"); @@ -1965,7 +1876,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testEnd4() throws Exception + @Test public void testEnd4() throws Exception { String name1 = mkName("bookmark"); String name2 = mkName("frame"); @@ -1977,7 +1888,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testEnd5() throws Exception + @Test public void testEnd5() throws Exception { String name1 = mkName("refmark"); String name2 = mkName("ruby"); @@ -1991,7 +1902,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testEmpty1() throws Exception + @Test public void testEmpty1() throws Exception { String name1 = mkName("refmark"); String name2 = mkName("toxmark"); @@ -2013,7 +1924,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testEmpty2() throws Exception + @Test public void testEmpty2() throws Exception { String name3 = mkName("bookmark"); String name4 = mkName("frame"); @@ -2027,7 +1938,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void testEmpty3() throws Exception + @Test public void testEmpty3() throws Exception { String name1 = mkName("refmark"); String name2 = mkName("toxmark"); @@ -2058,7 +1969,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root); } - public void test1() throws Exception + @Test public void test1() throws Exception { String name1 = mkName("frame"); String name2 = mkName("bookmark"); @@ -2085,7 +1996,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase attributes; if these ever become entities, they should not be split! */ - public void testRange1() throws Exception + @Test public void testRange1() throws Exception { String name1 = mkName("url"); RangeInserter inserter = new RangeInserter(m_xDoc); @@ -2100,7 +2011,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root, false); } - public void testRangeHyperlinkHyperlink() throws Exception + @Test public void testRangeHyperlinkHyperlink() throws Exception { RangeInserter inserter = new RangeInserter(m_xDoc); TreeNode text = new TextNode("123456789"); @@ -2159,7 +2070,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root, false); } - public void testRangeHyperlinkRuby() throws Exception + @Test public void testRangeHyperlinkRuby() throws Exception { RangeInserter inserter = new RangeInserter(m_xDoc); TreeNode text = new TextNode("123456789"); @@ -2225,7 +2136,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root, false); } - public void testRangeRubyHyperlink() throws Exception + @Test public void testRangeRubyHyperlink() throws Exception { RangeInserter inserter = new RangeInserter(m_xDoc); TreeNode text = new TextNode("123456789"); @@ -2282,7 +2193,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root, false); } - public void testRangeRubyRuby() throws Exception + @Test public void testRangeRubyRuby() throws Exception { RangeInserter inserter = new RangeInserter(m_xDoc); TreeNode text = new TextNode("123456789"); @@ -2328,7 +2239,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root, false); } - public void testRangeHyperlinkMeta() throws Exception + @Test public void testRangeHyperlinkMeta() throws Exception { RangeInserter inserter = new RangeInserter(m_xDoc); TreeNode text = new TextNode("123456789"); @@ -2394,7 +2305,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root, false); } - public void testRangeRubyMeta() throws Exception + @Test public void testRangeRubyMeta() throws Exception { RangeInserter inserter = new RangeInserter(m_xDoc); TreeNode text = new TextNode("123456789"); @@ -2461,7 +2372,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root, false); } - public void testRangeMetaHyperlink() throws Exception + @Test public void testRangeMetaHyperlink() throws Exception { RangeInserter inserter = new RangeInserter(m_xDoc); TreeNode text = new TextNode("123456789"); @@ -2518,7 +2429,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root, false); } - public void testRangeMetaRuby() throws Exception + @Test public void testRangeMetaRuby() throws Exception { RangeInserter inserter = new RangeInserter(m_xDoc); TreeNode text = new TextNode("123456789"); @@ -2607,7 +2518,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root, false); } - public void testRangeMetaMeta() throws Exception + @Test public void testRangeMetaMeta() throws Exception { RangeInserter inserter = new RangeInserter(m_xDoc); TreeNode text = new TextNode("123456789"); @@ -2618,7 +2529,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase TreeNode met2 = new MetaNode( mkId("id") ); try { inserter.insertRange( new Range(0, 4, met2) ); - assure("testRangeMetaMeta: overlap left allowed", false); + fail("testRangeMetaMeta: overlap left allowed"); } catch (com.sun.star.lang.IllegalArgumentException e) { /* ignore */ } TreeNode root = new TreeNode() .appendChild( new TextNode("123") ) @@ -2629,7 +2540,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase TreeNode met3 = new MetaNode( mkId("id") ); try { inserter.insertRange( new Range(5/*-1*/, 8/*-1*/, met3) ); - assure("testRangeMetaMeta: overlap right allowed", false); + fail("testRangeMetaMeta: overlap right allowed"); } catch (com.sun.star.lang.IllegalArgumentException e) { /* ignore */ } root = new TreeNode() .appendChild( new TextNode("123") ) @@ -2659,7 +2570,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root, false); } - public void testRange2() throws Exception + @Test public void testRange2() throws Exception { RangeInserter inserter = new RangeInserter(m_xDoc); TreeNode text = new TextNode("123456789"); @@ -2729,7 +2640,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root, false); } - public void testRange3() throws Exception + @Test public void testRange3() throws Exception { RangeInserter inserter = new RangeInserter(m_xDoc); TreeNode text = new TextNode("123456789"); @@ -2763,7 +2674,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root, false); } - public void testRange4() throws Exception + @Test public void testRange4() throws Exception { RangeInserter inserter = new RangeInserter(m_xDoc); TreeNode text = new TextNode("123456789"); @@ -2817,7 +2728,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root, false); } - public void testRange5() throws Exception + @Test public void testRange5() throws Exception { RangeInserter inserter = new RangeInserter(m_xDoc); TreeNode text = new TextNode("123456789"); @@ -2866,7 +2777,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root, false); } - public void testRange6() throws Exception + @Test public void testRange6() throws Exception { RangeInserter inserter = new RangeInserter(m_xDoc); TreeNode text = new TextNode("123456789"); @@ -2906,7 +2817,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase doTest(root, false); } - public void testRange7() throws Exception + @Test public void testRange7() throws Exception { RangeInserter inserter = new RangeInserter(m_xDoc); TreeNode text = new TextNode("123456789"); @@ -2947,7 +2858,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase /* TODO: test partial selection, test UNDO/REDO */ // #i109601# NestedTextContent and XChild - public void testMetaXChild() throws Exception + @Test public void testMetaXChild() throws Exception { StringPair id1 = new StringPair("content.xml", mkName("id")); StringPair id2 = new StringPair("content.xml", mkName("id")); @@ -3022,12 +2933,12 @@ public class TextPortionEnumerationTest extends ComplexTestCase XTextContent xNTC = (XTextContent) UnoRuntime.queryInterface(XTextContent.class, oNTC); if (null == nestedTextContent[i]) { - assure("unexpected NestedTextContent at: " + i, null == xNTC); + assertNull("unexpected NestedTextContent at: " + i, xNTC); } else { XMetadatable xMetadatable = (XMetadatable) UnoRuntime.queryInterface(XMetadatable.class, xNTC); StringPair xmlid = xMetadatable.getMetadataReference(); - assure("wrong NestedTextContent at: " + i, + assertTrue("wrong NestedTextContent at: " + i, MetaNode.eq(nestedTextContent[i], xmlid)); } xDocTextCursor.goRight((short)1, false); @@ -3047,37 +2958,37 @@ public class TextPortionEnumerationTest extends ComplexTestCase UnoRuntime.queryInterface(XChild.class, xMeta6); try { xChild1.setParent(xChild4); - assure("setParent(): allowed?", false); + fail("setParent(): allowed?"); } catch (NoSupportException e) { /* expected */ } - assure("getParent(): not null", xChild1.getParent() == null); - assure("getParent(): not null", xChild2.getParent() == null); - assure("getParent(): not null", xChild6.getParent() == null); + assertNull("getParent(): not null", xChild1.getParent()); + assertNull("getParent(): not null", xChild2.getParent()); + assertNull("getParent(): not null", xChild6.getParent()); { Object xParent3 = xChild3.getParent(); - assure("getParent(): null", null != xParent3); + assertNotNull("getParent(): null", xParent3); XMetadatable xMetadatable = (XMetadatable) UnoRuntime.queryInterface(XMetadatable.class, xParent3); StringPair xmlid = xMetadatable.getMetadataReference(); - assure("getParent(): wrong", MetaNode.eq(xmlid, id2)); + assertTrue("getParent(): wrong", MetaNode.eq(xmlid, id2)); }{ Object xParent4 = xChild4.getParent(); - assure("getParent(): null", null != xParent4); + assertNotNull("getParent(): null", xParent4); XMetadatable xMetadatable = (XMetadatable) UnoRuntime.queryInterface(XMetadatable.class, xParent4); StringPair xmlid = xMetadatable.getMetadataReference(); - assure("getParent(): wrong", MetaNode.eq(xmlid, id3)); + assertTrue("getParent(): wrong", MetaNode.eq(xmlid, id3)); }{ Object xParent5 = xChild5.getParent(); - assure("getParent(): null", null != xParent5); + assertNotNull("getParent(): null", xParent5); XMetadatable xMetadatable = (XMetadatable) UnoRuntime.queryInterface(XMetadatable.class, xParent5); StringPair xmlid = xMetadatable.getMetadataReference(); - assure("getParent(): wrong", MetaNode.eq(xmlid, id3)); + assertTrue("getParent(): wrong", MetaNode.eq(xmlid, id3)); } } /** test SwXMeta XText interface */ - public void testMetaXText() throws Exception + @Test public void testMetaXText() throws Exception { RangeInserter inserter = new RangeInserter(m_xDoc); TreeNode text = new TextNode("12AB6789"); @@ -3099,113 +3010,106 @@ public class TextPortionEnumerationTest extends ComplexTestCase XText xText = (XText) UnoRuntime.queryInterface(XText.class, xMeta); XText xParentText = xText.getText(); - assure("getText(): no parent", xParentText != null); + assertNotNull("getText(): no parent", xParentText); XTextRange xStart = xText.getStart(); - assure("getStart(): no start", xStart != null); + assertNotNull("getStart(): no start", xStart); XTextRange xEnd = xText.getEnd(); - assure("getEnd(): no end", xEnd != null); - - /* - String string = xText.getString(); - assure("getString(): invalid string returned", - string != null && "AB".equals(string) ); - */ + assertNotNull("getEnd(): no end", xEnd); xText.setString("45"); { String string = xText.getString(); - assure("getString(): invalid string returned: " + string, - string != null && "45".equals(string) ); + assertEquals("getString(): invalid string returned", + "45", string); } XTextCursor xTextCursor = xText.createTextCursor(); - assure("createTextCursor(): failed", xTextCursor != null); + assertNotNull("createTextCursor(): failed", xTextCursor); try { xText.createTextCursorByRange(null); - assure("createTextCursorByRange(): null allowed?", false); + fail("createTextCursorByRange(): null allowed?"); } catch (RuntimeException e) { /* expected */ } XTextCursor xTextCursorStart = xText.createTextCursorByRange(xStart); - assure("createTextCursorByRange(): failed for start", - xTextCursorStart != null); + assertNotNull("createTextCursorByRange(): failed for start", + xTextCursorStart); XTextCursor xTextCursorEnd = xText.createTextCursorByRange(xEnd); - assure("createTextCursorByRange(): failed for end", - xTextCursorEnd != null); + assertNotNull("createTextCursorByRange(): failed for end", + xTextCursorEnd); // move outside meta xDocTextCursor.gotoStart(false); try { xText.insertString(null, "foo", false); - assure("insertString(): null allowed?", false); + fail("insertString(): null allowed?"); } catch (RuntimeException e) { /* expected */ } try { xText.insertString(xDocTextCursor, "foo", false); - assure("insertString(): cursor outside allowed?", false); + fail("insertString(): cursor outside allowed?"); } catch (RuntimeException e) { /* expected */ } xStart = xText.getStart(); xText.insertString(xStart, "A", false); { String string = xText.getString(); - assure("getString(): invalid string returned: " + string, - string != null && "A45".equals(string) ); + assertEquals("getString(): invalid string returned", + "A45", string); } xText.insertString(xEnd, "B", false); { String string = xText.getString(); - assure("getString(): invalid string returned: " + string, - string != null && "A45B".equals(string) ); + assertEquals("getString(): invalid string returned", + "A45B", string); } try { xText.insertControlCharacter(null, HARD_HYPHEN, false); - assure("insertControlCharacter(): null allowed?", false); + fail("insertControlCharacter(): null allowed?"); } catch (com.sun.star.lang.IllegalArgumentException e) { /* ignore */ } xStart = xText.getStart(); try { xText.insertControlCharacter(xDocTextCursor, HARD_HYPHEN, false); - assure("insertControlCharacter(): cursor outside allowed?", false); + fail("insertControlCharacter(): cursor outside allowed?"); } catch (com.sun.star.lang.IllegalArgumentException e) { /* ignore */ } xText.insertControlCharacter(xStart, HARD_HYPHEN, false); { String string = xText.getString(); - assure("getString(): invalid string returned: " + string, - string != null && ('\u2011' + "A45B").equals(string) ); + assertEquals("getString(): invalid string returned", + '\u2011' + "A45B", string); } xText.insertControlCharacter(xEnd, HARD_HYPHEN, false); { String string = xText.getString(); - assure("getString(): invalid string returned: " + string, - string != null && - ('\u2011' + "A45B" + '\u2011').equals(string) ); + assertEquals("getString(): invalid string returned", + '\u2011' + "A45B" + '\u2011', string); } xText.setString("45"); try { xText.insertTextContent(null, xMeta, false); - assure("insertTextContent(): null range allowed?", false); + fail("insertTextContent(): null range allowed?"); } catch (com.sun.star.lang.IllegalArgumentException e) { /* ignore */ } try { xText.insertTextContent(xStart, null, false); - assure("insertTextContent(): null content allowed?", false); + fail("insertTextContent(): null content allowed?"); } catch (com.sun.star.lang.IllegalArgumentException e) { /* ignore */ } try { xText.insertTextContent(xDocTextCursor, xMeta, false); - assure("insertTextContent(): cursor outside allowed?", false); + fail("insertTextContent(): cursor outside allowed?"); } catch (com.sun.star.lang.IllegalArgumentException e) { /* ignore */ } TextFieldNode field1 = new TextFieldNode( "f1" ); @@ -3237,13 +3141,13 @@ public class TextPortionEnumerationTest extends ComplexTestCase try { xText.removeTextContent(null); - assure("removeTextContent(): null content allowed?", false); + fail("removeTextContent(): null content allowed?"); } catch (RuntimeException e) { /* expected */ } xText.removeTextContent(xField1); XTextRange xAnchor = xMeta.getAnchor(); - assure("getAnchor(): null", xAnchor != null); + assertNotNull("getAnchor(): null", xAnchor); // evil test case: insert ruby around meta RubyNode ruby = new RubyNode( mkName("ruby") ); @@ -3263,31 +3167,31 @@ public class TextPortionEnumerationTest extends ComplexTestCase XEnumerationAccess xEA = (XEnumerationAccess) UnoRuntime.queryInterface(XEnumerationAccess.class, xMeta); XEnumeration xEnum = xEA.createEnumeration(); - assure("createEnumeration(): returns null", xEnum != null); + assertNotNull("createEnumeration(): returns null", xEnum); { - assure("hasNext(): first missing", xEnum.hasMoreElements()); + assertTrue("hasNext(): first missing", xEnum.hasMoreElements()); Object xElement = xEnum.nextElement(); XTextRange xPortion = (XTextRange) UnoRuntime.queryInterface(XTextRange.class, xElement); XPropertySet xPropSet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xPortion); String type = (String) xPropSet.getPropertyValue("TextPortionType"); - assure("first: not text: " + type, type.equals("Text")); + assertEquals("first: not text", "Text", type); String txt = xPortion.getString(); - assure("first: text differs: " + txt, "45".equals(txt)); + assertEquals("first: text differs", "45", txt); } { - assure("hasNext(): second missing", xEnum.hasMoreElements()); + assertTrue("hasNext(): second missing", xEnum.hasMoreElements()); Object xElement = xEnum.nextElement(); XTextRange xPortion = (XTextRange) UnoRuntime.queryInterface(XTextRange.class, xElement); XPropertySet xPropSet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xPortion); String type = (String) xPropSet.getPropertyValue("TextPortionType"); - assure("second: not text", type.equals("TextField")); + assertEquals("second: not text", "TextField", type); } // no ruby end here!!! - assure("hasNext(): more elements?", !xEnum.hasMoreElements()); + assertFalse("hasNext(): more elements?", xEnum.hasMoreElements()); XComponent xComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class, xMeta); @@ -3295,14 +3199,14 @@ public class TextPortionEnumerationTest extends ComplexTestCase try { XTextCursor xCursor = xText.createTextCursor(); - assure("createTextCursor(): succeeds on disposed object?", - xCursor == null); + assertNull("createTextCursor(): succeeds on disposed object?", + xCursor); } catch (RuntimeException e) { /* expected */ } } /** check that cursor move methods move to positions in the meta, but do not move to positions outside the meta. */ - public void testMetaXTextCursor() throws Exception + @Test public void testMetaXTextCursor() throws Exception { RangeInserter inserter = new RangeInserter(m_xDoc); TreeNode text = new TextNode("Text. 12 More text here."); @@ -3323,30 +3227,30 @@ public class TextPortionEnumerationTest extends ComplexTestCase XText xText = (XText) UnoRuntime.queryInterface(XText.class, xMeta); XTextRange xStart = xText.getStart(); - assure("getStart(): no start", xStart != null); + assertNotNull("getStart(): no start", xStart); XTextRange xEnd = xText.getEnd(); - assure("getEnd(): no end", xEnd != null); + assertNotNull("getEnd(): no end", xEnd); XTextCursor xTextCursor = xText.createTextCursor(); - assure("createTextCursor(): no cursor", xTextCursor != null); + assertNotNull("createTextCursor(): no cursor", xTextCursor); // XTextCursor boolean bSuccess = false; xTextCursor.gotoStart(false); xTextCursor.gotoEnd(false); bSuccess = xTextCursor.goLeft((short)1, false); - assure("goLeft(): failed", bSuccess); + assertTrue("goLeft(): failed", bSuccess); bSuccess = xTextCursor.goLeft((short)1000, false); - assure("goLeft(): succeeded", !bSuccess); + assertFalse("goLeft(): succeeded", bSuccess); bSuccess = xTextCursor.goRight((short)1, false); - assure("goRight(): failed", bSuccess); + assertTrue("goRight(): failed", bSuccess); bSuccess = xTextCursor.goRight((short)1000, false); - assure("goRight(): succeeded", !bSuccess); + assertFalse("goRight(): succeeded", bSuccess); xTextCursor.gotoRange(xStart, false); xTextCursor.gotoRange(xEnd, false); try { xTextCursor.gotoRange(xDocTextCursor, false); - assure("gotoRange(): succeeded", false); + fail("gotoRange(): succeeded"); } catch (RuntimeException e) { /* expected */ } // XWordCursor @@ -3356,44 +3260,44 @@ public class TextPortionEnumerationTest extends ComplexTestCase UnoRuntime.queryInterface(XWordCursor.class, xTextCursor); bSuccess = xWordCursor.gotoNextWord(true); - assure("gotoNextWord(): failed", bSuccess); + assertTrue("gotoNextWord(): failed", bSuccess); { String string = xTextCursor.getString(); - assure("gotoNextWord(): wrong string: " + string, - "Two ".equals(string)); + assertEquals("gotoNextWord(): wrong string", + "Two ", string); } bSuccess = xWordCursor.gotoNextWord(false); - assure("gotoNextWord(): succeeded", !bSuccess); + assertFalse("gotoNextWord(): succeeded", bSuccess); xTextCursor.collapseToEnd(); bSuccess = xWordCursor.gotoPreviousWord(true); - assure("gotoPreviousWord(): failed", bSuccess); + assertTrue("gotoPreviousWord(): failed", bSuccess); { String string = xTextCursor.getString(); - assure("gotoPreviousWord(): wrong string: " + string, - "words".equals(string)); + assertEquals("gotoPreviousWord(): wrong string", + "words", string); } bSuccess = xWordCursor.gotoPreviousWord(false); - assure("gotoPreviousWord(): succeeded", !bSuccess); + assertFalse("gotoPreviousWord(): succeeded", bSuccess); bSuccess = xWordCursor.gotoEndOfWord(true); - assure("gotoEndOfWord(): failed", bSuccess); + assertTrue("gotoEndOfWord(): failed", bSuccess); { String string = xTextCursor.getString(); - assure("gotoEndOfWord(): wrong string: " + string, - "Two".equals(string)); + assertEquals("gotoEndOfWord(): wrong string", + "Two", string); } xTextCursor.gotoEnd(false); bSuccess = xWordCursor.gotoStartOfWord(true); - assure("gotoStartOfWord(): failed", bSuccess); + assertTrue("gotoStartOfWord(): failed", bSuccess); { String string = xTextCursor.getString(); - assure("gotoStartOfWord(): wrong string: " + string, - "words".equals(string)); + assertEquals("gotoStartOfWord(): wrong string", + "words", string); } xText.setString(""); bSuccess = xWordCursor.gotoEndOfWord(false); - assure("gotoEndOfWord(): succeeded", !bSuccess); + assertFalse("gotoEndOfWord(): succeeded", bSuccess); bSuccess = xWordCursor.gotoStartOfWord(false); - assure("gotoStartOfWord(): succeeded", !bSuccess); + assertFalse("gotoStartOfWord(): succeeded", bSuccess); // XSentenceCursor xText.setString("This is a sentence. Another sentence."); @@ -3402,60 +3306,60 @@ public class TextPortionEnumerationTest extends ComplexTestCase UnoRuntime.queryInterface(XSentenceCursor.class, xTextCursor); bSuccess = xSentenceCursor.gotoNextSentence(true); - assure("gotoNextSentence(): failed", bSuccess); + assertTrue("gotoNextSentence(): failed", bSuccess); { String string = xTextCursor.getString(); - assure("gotoNextSentence(): wrong string: " + string, - "This is a sentence. ".equals(string)); + assertEquals("gotoNextSentence(): wrong string", + "This is a sentence. ", string); } bSuccess = xSentenceCursor.gotoNextSentence(false); - assure("gotoNextSentence(): succeeded", !bSuccess); + assertFalse("gotoNextSentence(): succeeded", bSuccess); // FIXME: // the sentence cursor seems to work differently than the word cursor xText.setString("This is a sentence. Another sentence. Sentence 3."); xTextCursor.gotoEnd(false); bSuccess = xSentenceCursor.gotoPreviousSentence(true); - assure("gotoPreviousSentence(): failed", bSuccess); + assertTrue("gotoPreviousSentence(): failed", bSuccess); { String string = xTextCursor.getString(); - assure("gotoPreviousSentence(): wrong string: " + string, - "Another sentence. Sentence 3.".equals(string)); + assertEquals("gotoPreviousSentence(): wrong string", + "Another sentence. Sentence 3.", string); } bSuccess = xSentenceCursor.gotoPreviousSentence(false); - assure("gotoPreviousSentence(): succeeded", !bSuccess); + assertFalse("gotoPreviousSentence(): succeeded", bSuccess); bSuccess = xSentenceCursor.gotoEndOfSentence(true); - assure("gotoEndOfSentence(): failed", bSuccess); + assertTrue("gotoEndOfSentence(): failed", bSuccess); { String string = xTextCursor.getString(); - assure("gotoEndOfSentence(): wrong string: " + string, - "This is a sentence.".equals(string)); + assertEquals("gotoEndOfSentence(): wrong string", + "This is a sentence.", string); } xTextCursor.gotoEnd(false); bSuccess = xSentenceCursor.gotoStartOfSentence(true); - assure("gotoStartOfSentence(): failed", bSuccess); + assertTrue("gotoStartOfSentence(): failed", bSuccess); { String string = xTextCursor.getString(); - assure("gotoStartOfSentence(): wrong string: " + string, - "Sentence 3.".equals(string)); + assertEquals("gotoStartOfSentence(): wrong string", + "Sentence 3.", string); } xText.setString(""); bSuccess = xSentenceCursor.gotoEndOfSentence(false); - assure("gotoEndOfSentence(): succeeded", !bSuccess); + assertFalse("gotoEndOfSentence(): succeeded", bSuccess); bSuccess = xSentenceCursor.gotoStartOfSentence(false); - assure("gotoStartOfSentence(): succeeded", !bSuccess); + assertFalse("gotoStartOfSentence(): succeeded", bSuccess); XParagraphCursor xParagraphCursor = (XParagraphCursor) UnoRuntime.queryInterface(XParagraphCursor.class, xTextCursor); // XParagraphCursor (does not make sense) bSuccess = xParagraphCursor.gotoNextParagraph(false); - assure("gotoNextParagraph(): succeeded", !bSuccess); + assertFalse("gotoNextParagraph(): succeeded", bSuccess); bSuccess = xParagraphCursor.gotoPreviousParagraph(false); - assure("gotoPreviousParagraph(): succeeded", !bSuccess); + assertFalse("gotoPreviousParagraph(): succeeded", bSuccess); bSuccess = xParagraphCursor.gotoStartOfParagraph(false); - assure("gotoStartOfParagraph(): succeeded", !bSuccess); + assertFalse("gotoStartOfParagraph(): succeeded", bSuccess); bSuccess = xParagraphCursor.gotoEndOfParagraph(false); - assure("gotoEndOfParagraph(): succeeded", !bSuccess); + assertFalse("gotoEndOfParagraph(): succeeded", bSuccess); } @@ -3469,7 +3373,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase throws Exception { } } - public void testMetaXTextAttachToxMark() throws Exception + @Test public void testMetaXTextAttachToxMark() throws Exception { doMetaXTextAttach( new AttachHelper() { @@ -3485,7 +3389,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase }); } - public void testMetaXTextAttachRefMark() throws Exception + @Test public void testMetaXTextAttachRefMark() throws Exception { doMetaXTextAttach( new AttachHelper() { @@ -3501,7 +3405,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase }); } - public void testMetaXTextAttachTextField() throws Exception + @Test public void testMetaXTextAttachTextField() throws Exception { doMetaXTextAttach( new AttachHelper() { @@ -3517,7 +3421,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase }); } - public void testMetaXTextAttachFootnote() throws Exception + @Test public void testMetaXTextAttachFootnote() throws Exception { doMetaXTextAttach( new AttachHelper() { @@ -3533,7 +3437,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase }); } - public void testMetaXTextAttachMeta() throws Exception + @Test public void testMetaXTextAttachMeta() throws Exception { doMetaXTextAttach( new AttachHelper() { @@ -3783,7 +3687,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase } } - public void testMetaFieldXTextField() throws Exception + @Test public void testMetaFieldXTextField() throws Exception { com.sun.star.rdf.XRepositorySupplier xModel = (com.sun.star.rdf.XRepositorySupplier) UnoRuntime.queryInterface( @@ -3821,12 +3725,12 @@ public class TextPortionEnumerationTest extends ComplexTestCase xGraph.addStatement(xMetadatable, xOdfPrefix, xPrefix); xGraph.addStatement(xMetadatable, xOdfSuffix, xSuffix); - assure("getPresentation(): wrong", - "fooabcbar".equals(xMetaField.getPresentation(false))); + assertEquals("getPresentation(): wrong", + "fooabcbar", xMetaField.getPresentation(false)); inserter.insertRange( new Range(0, 0, text) ); } - public void testMetaFieldXPropertySet() throws Exception + @Test public void testMetaFieldXPropertySet() throws Exception { RangeInserter inserter = new RangeInserter(m_xDoc); TreeNode text = new TextNode("123"); @@ -3842,32 +3746,32 @@ public class TextPortionEnumerationTest extends ComplexTestCase XPropertySet xPropertySet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xMetaField); - assure("PropertySet: not supported?", xPropertySet != null); + assertNotNull("PropertySet: not supported?", xPropertySet); XPropertySetInfo xPropertySetInfo = xPropertySet.getPropertySetInfo(); - assure("hasPropertyByName(\"NumberFormat\"):", - xPropertySetInfo.hasPropertyByName("NumberFormat")); - assure("hasPropertyByName(\"IsFixedLanguage\"):", - xPropertySetInfo.hasPropertyByName("IsFixedLanguage")); + assertTrue("hasPropertyByName(\"NumberFormat\"):", + xPropertySetInfo.hasPropertyByName("NumberFormat")); + assertTrue("hasPropertyByName(\"IsFixedLanguage\"):", + xPropertySetInfo.hasPropertyByName("IsFixedLanguage")); int def = (Integer) xPropertySet.getPropertyValue("NumberFormat"); - log.println("NumberFormat: default is " + def); + System.out.println("NumberFormat: default is " + def); short INT = com.sun.star.i18n.NumberFormatIndex.NUMBER_INT; xPropertySet.setPropertyValue("NumberFormat", INT); xPropertySet.setPropertyValue("IsFixedLanguage", true); int format = (Integer) xPropertySet.getPropertyValue("NumberFormat"); - assure("NumberFormat: failed", format == INT); + assertEquals("NumberFormat: failed", INT, format); boolean isFixed = (Boolean) xPropertySet.getPropertyValue("IsFixedLanguage"); - assure("IsFixedLanguage: failed", isFixed); + assertTrue("IsFixedLanguage: failed", isFixed); } - public void testLoadStore() throws Exception + @Test public void testLoadStore() throws Exception { XTextDocument xComp = null; String filename = "TESTMETA.odt"; String file; try { - file = util.utils.getFullTestURL(filename); + file = TestDocument.getUrl(filename); xComp = doLoad(file); if (xComp != null) { @@ -3885,21 +3789,21 @@ public class TextPortionEnumerationTest extends ComplexTestCase private void doStore(XComponent xComp, String file) throws Exception { - log.println("Storing test document..."); + System.out.println("Storing test document..."); XStorable xStor = (XStorable) UnoRuntime.queryInterface( XStorable.class, xComp); xStor.storeToURL(file, new PropertyValue[0]); - log.println("...done"); + System.out.println("...done"); } public XTextDocument doLoad(String file) throws Exception { XComponent xComp = null; - log.println("Loading test document..."); + System.out.println("Loading test document..."); PropertyValue[] loadProps = new PropertyValue[1]; loadProps[0] = new PropertyValue(); @@ -3912,9 +3816,9 @@ public class TextPortionEnumerationTest extends ComplexTestCase XTextDocument xTextDoc = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, xComp); - assure("cannot load: " + file, xTextDoc != null); + assertNotNull("cannot load: " + file, xTextDoc); - log.println("...done"); + System.out.println("...done"); return xTextDoc; } @@ -3923,7 +3827,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase { XText xText = xTextDoc.getText(); - log.println("Checking meta(-field)s in loaded test document..."); + System.out.println("Checking meta(-field)s in loaded test document..."); TreeNode root = new TreeNode() .appendChild( new RubyNode("ruby1") @@ -3968,16 +3872,16 @@ public class TextPortionEnumerationTest extends ComplexTestCase .appendChild( new TextNode(" X X ") ); doTest(xTextDoc, root, false); - log.println("...done"); + System.out.println("...done"); } - public void testLoadStoreXmlid() throws Exception + @Test public void testLoadStoreXmlid() throws Exception { XTextDocument xComp = null; String filename = "TESTXMLID.odt"; String file; try { - file = util.utils.getFullTestURL(filename); + file = TestDocument.getUrl(filename); xComp = doLoad(file); if (xComp != null) { @@ -3997,7 +3901,7 @@ public class TextPortionEnumerationTest extends ComplexTestCase { XText xText = xTextDoc.getText(); - log.println("Checking bookmarks in loaded test document..."); + System.out.println("Checking bookmarks in loaded test document..."); XRepositorySupplier xRS = (XRepositorySupplier) UnoRuntime.queryInterface(XRepositorySupplier.class, xTextDoc); @@ -4009,14 +3913,14 @@ public class TextPortionEnumerationTest extends ComplexTestCase XNameAccess xBookmarks = xBMS.getBookmarks(); XMetadatable xMark1 = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xBookmarks.getByName("mk1")); - assure("mark1", + assertTrue("mark1", eq(xMark1.getMetadataReference(), new StringPair("content.xml", "id90"))); XMetadatable xMark2 = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xBookmarks.getByName("mk2")); Pair<Statement[], Boolean> result = xRepo.getStatementRDFa(xMark2); - assure("mark2", (result.First.length == 1) + assertTrue("mark2", (result.First.length == 1) && result.First[0].Subject.getStringValue().equals("uri:foo") && result.First[0].Predicate.getStringValue().equals("uri:bar") && result.First[0].Object.getStringValue().contains("a fooish bar") @@ -4024,13 +3928,13 @@ public class TextPortionEnumerationTest extends ComplexTestCase XMetadatable xMark3 = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xBookmarks.getByName("mk3")); - assure("mark3", + assertTrue("mark3", eq(xMark3.getMetadataReference(), new StringPair("content.xml", "id91"))); - log.println("...done"); + System.out.println("...done"); - log.println("Checking sections in loaded test document..."); + System.out.println("Checking sections in loaded test document..."); XTextSectionsSupplier xTSS = (XTextSectionsSupplier) UnoRuntime.queryInterface(XTextSectionsSupplier.class, xTextDoc); @@ -4039,58 +3943,58 @@ public class TextPortionEnumerationTest extends ComplexTestCase XMetadatable xSection1 = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xSections.getByName("Section 1")); - assure("idsection1", eq(xSection1.getMetadataReference(), + assertTrue("idsection1", eq(xSection1.getMetadataReference(), new StringPair("content.xml", "idSection1"))); XMetadatable xSection2 = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xSections.getByName("Section 2")); - assure("idSection2", eq(xSection2.getMetadataReference(), + assertTrue("idSection2", eq(xSection2.getMetadataReference(), new StringPair("content.xml", "idSection2"))); XMetadatable xSection3 = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xSections.getByName("Table of Contents1_Head")); - assure("idTOCTitle", eq(xSection3.getMetadataReference(), + assertTrue("idTOCTitle", eq(xSection3.getMetadataReference(), new StringPair("content.xml", "idTOCTitle"))); XMetadatable xSection4 = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xSections.getByName("Alphabetical Index1_Head")); - assure("idAITitle", eq(xSection4.getMetadataReference(), + assertTrue("idAITitle", eq(xSection4.getMetadataReference(), new StringPair("content.xml", "idAITitle"))); XMetadatable xSection5 = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xSections.getByName("Illustration Index1_Head")); - assure("idIITitle", eq(xSection5.getMetadataReference(), + assertTrue("idIITitle", eq(xSection5.getMetadataReference(), new StringPair("content.xml", "idIITitle"))); XMetadatable xSection6 = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xSections.getByName("Index of Tables1_Head")); - assure("idIOTTitle", eq(xSection6.getMetadataReference(), + assertTrue("idIOTTitle", eq(xSection6.getMetadataReference(), new StringPair("content.xml", "idIOTTitle"))); XMetadatable xSection7 = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xSections.getByName("User-Defined1_Head")); - assure("idUDTitle", eq(xSection7.getMetadataReference(), + assertTrue("idUDTitle", eq(xSection7.getMetadataReference(), new StringPair("content.xml", "idUDTitle"))); XMetadatable xSection8 = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xSections.getByName("Table of Objects1_Head")); - assure("idTOOTitle", eq(xSection8.getMetadataReference(), + assertTrue("idTOOTitle", eq(xSection8.getMetadataReference(), new StringPair("content.xml", "idTOOTitle"))); XMetadatable xSection9 = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xSections.getByName("Bibliography1_Head")); - assure("idBibTitle", eq(xSection9.getMetadataReference(), + assertTrue("idBibTitle", eq(xSection9.getMetadataReference(), new StringPair("content.xml", "idBibTitle"))); - log.println("...done"); + System.out.println("...done"); - log.println("Checking indexes in loaded test document..."); + System.out.println("Checking indexes in loaded test document..."); XDocumentIndexesSupplier xDIS = (XDocumentIndexesSupplier) UnoRuntime.queryInterface(XDocumentIndexesSupplier.class, xTextDoc); @@ -4100,68 +4004,68 @@ public class TextPortionEnumerationTest extends ComplexTestCase XMetadatable xIndex1 = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xIndexes.getByName("Table of Contents1")); - assure("idTOC", eq(xIndex1.getMetadataReference(), + assertTrue("idTOC", eq(xIndex1.getMetadataReference(), new StringPair("content.xml", "idTOC"))); XMetadatable xIndex1s = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xSections.getByName("Table of Contents1")); - assure("idTOC", eq(xIndex1s.getMetadataReference(), + assertTrue("idTOC", eq(xIndex1s.getMetadataReference(), new StringPair("content.xml", "idTOC"))); XMetadatable xIndex2 = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xIndexes.getByName("Alphabetical Index1")); - assure("idAI", eq(xIndex2.getMetadataReference(), + assertTrue("idAI", eq(xIndex2.getMetadataReference(), new StringPair("content.xml", "idAI"))); XMetadatable xIndex2s = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xSections.getByName("Alphabetical Index1")); - assure("idAI", eq(xIndex2s.getMetadataReference(), + assertTrue("idAI", eq(xIndex2s.getMetadataReference(), new StringPair("content.xml", "idAI"))); XMetadatable xIndex3 = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xIndexes.getByName("Illustration Index1")); - assure("idII", eq(xIndex3.getMetadataReference(), + assertTrue("idII", eq(xIndex3.getMetadataReference(), new StringPair("content.xml", "idII"))); XMetadatable xIndex3s = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xSections.getByName("Illustration Index1")); - assure("idII", eq(xIndex3s.getMetadataReference(), + assertTrue("idII", eq(xIndex3s.getMetadataReference(), new StringPair("content.xml", "idII"))); XMetadatable xIndex4 = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xIndexes.getByName("Index of Tables1")); - assure("idIOT", eq(xIndex4.getMetadataReference(), + assertTrue("idIOT", eq(xIndex4.getMetadataReference(), new StringPair("content.xml", "idIOT"))); XMetadatable xIndex4s = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xSections.getByName("Index of Tables1")); - assure("idIOT", eq(xIndex4s.getMetadataReference(), + assertTrue("idIOT", eq(xIndex4s.getMetadataReference(), new StringPair("content.xml", "idIOT"))); XMetadatable xIndex5 = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xIndexes.getByName("User-Defined1")); - assure("idUD", eq(xIndex5.getMetadataReference(), + assertTrue("idUD", eq(xIndex5.getMetadataReference(), new StringPair("content.xml", "idUD"))); XMetadatable xIndex5s = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xSections.getByName("User-Defined1")); - assure("idUD", eq(xIndex5s.getMetadataReference(), + assertTrue("idUD", eq(xIndex5s.getMetadataReference(), new StringPair("content.xml", "idUD"))); XMetadatable xIndex6 = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xIndexes.getByName("Table of Objects1")); - assure("idTOO", eq(xIndex6.getMetadataReference(), + assertTrue("idTOO", eq(xIndex6.getMetadataReference(), new StringPair("content.xml", "idTOO"))); XMetadatable xIndex6s = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xSections.getByName("Table of Objects1")); - assure("idTOO", eq(xIndex6s.getMetadataReference(), + assertTrue("idTOO", eq(xIndex6s.getMetadataReference(), new StringPair("content.xml", "idTOO"))); XMetadatable xIndex7 = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xIndexes.getByName("Bibliography1")); - assure("idBib", eq(xIndex7.getMetadataReference(), + assertTrue("idBib", eq(xIndex7.getMetadataReference(), new StringPair("content.xml", "idBib"))); XMetadatable xIndex7s = (XMetadatable) UnoRuntime.queryInterface( XMetadatable.class, xSections.getByName("Bibliography1")); - assure("idBib", eq(xIndex7s.getMetadataReference(), + assertTrue("idBib", eq(xIndex7s.getMetadataReference(), new StringPair("content.xml", "idBib"))); - log.println("...done"); + System.out.println("...done"); } static void close(XComponent i_comp) @@ -4205,19 +4109,18 @@ public class TextPortionEnumerationTest extends ComplexTestCase XEnumerationAccess xEA = (XEnumerationAccess) UnoRuntime.queryInterface(XEnumerationAccess.class, xElement); XEnumeration xEnum = xEA.createEnumeration(); - TreeNode outtree = new EnumConverter(this).convert(xEnum); + TreeNode outtree = new EnumConverter().convert(xEnum); dumpTree(outtree, "O: "); - boolean success = new FuzzyTester(log).doTest(intree, outtree); - assure("test failed", success); + new FuzzyTester().doTest(intree, outtree); } private void dumpTree(TreeNode tree) { dumpTree(tree, "> "); } private void dumpTree(TreeNode tree, String prefix) { - log.println(prefix + tree.toString()); + System.out.println(prefix + tree.toString()); TreeNodeEnum children = tree.createEnumeration(); while (children.hasNext()) { TreeNode node = children.next(); @@ -4246,6 +4149,16 @@ public class TextPortionEnumerationTest extends ComplexTestCase ((i_Left.Second).equals(i_Right.Second)); } - public void assure(String str, boolean cond) { super.assure(str, cond); } + @BeforeClass public static void setUpConnection() throws Exception { + connection.setUp(); + } + + @AfterClass public static void tearDownConnection() + throws InterruptedException, com.sun.star.uno.Exception + { + connection.tearDown(); + } + + private static final OfficeConnection connection = new OfficeConnection(); } diff --git a/sw/qa/complex/writer/makefile.mk b/sw/qa/complex/writer/makefile.mk index ae2a15f821dd..550e9d64fd82 100755 --- a/sw/qa/complex/writer/makefile.mk +++ b/sw/qa/complex/writer/makefile.mk @@ -25,84 +25,32 @@ # #************************************************************************* -PRJ = ..$/..$/.. -TARGET = PropertyValues -PRJNAME = $(TARGET) -PACKAGE = complex$/writer - -# --- Settings ----------------------------------------------------- -.INCLUDE: settings.mk - - -#----- compile .java files ----------------------------------------- - -JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar -JAVAFILES = CheckIndexedPropertyValues.java CheckNamedPropertyValues.java CheckCrossReferences.java CheckBookmarks.java CheckFlies.java TextPortionEnumerationTest.java -JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) - -#----- make a jar from compiled files ------------------------------ - -MAXLINELENGTH = 100000 - -JARCLASSDIRS = $(PACKAGE) -JARTARGET = $(TARGET).jar -JARCOMPRESS = TRUE - -# --- Parameters for the test -------------------------------------- - -# start an office if the parameter is set for the makefile -.IF "$(OFFICE)" == "" -CT_APPEXECCOMMAND = +.IF "$(OOO_SUBSEQUENT_TESTS)" == "" +nothing .PHONY: .ELSE -CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;" -.ENDIF - -# test base is java complex -CT_TESTBASE = -TestBase java_complex - -# build package name with "." instead of $/ -CT_PACKAGE = -o $(PACKAGE:s\$/\.\) - -# start the runner application -CT_APP = org.openoffice.Runner -# --- Targets ------------------------------------------------------ +PRJ = ../../.. +PRJNAME = sw +TARGET = qa_complex_writer + +.IF "$(OOO_JUNIT_JAR)" != "" +PACKAGE = complex/writer +JAVATESTFILES = \ + CheckBookmarks.java \ + CheckCrossReferences.java \ + CheckFlies.java \ + CheckIndexedPropertyValues.java \ + CheckNamedPropertyValues.java \ + TextPortionEnumerationTest.java +JAVAFILES = $(JAVATESTFILES) TestDocument.java +JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar +EXTRAJARFILES = $(OOO_JUNIT_JAR) +.END -.IF "$(depend)" == "" -ALL: ALLTAR -.ELSE -ALL: ALLDEP -.ENDIF - -.INCLUDE : target.mk - -run: \ - CheckBookmarks \ - CheckCrossReferences \ - CheckIndexedPropertyValues \ - CheckNamedPropertyValues \ - CheckFlies \ - TextPortionEnumerationTest \ - - -RUN: run - -CheckIndexedPropertyValues: - +java -cp $(CLASSPATH) $(CT_APP) $(CT_APPEXECCOMMAND) $(CT_TESTBASE) $(CT_PACKAGE).CheckIndexedPropertyValues - - -CheckNamedPropertyValues: - +java -cp $(CLASSPATH) $(CT_APP) $(CT_APPEXECCOMMAND) $(CT_TESTBASE) $(CT_PACKAGE).CheckNamedPropertyValues - -CheckCrossReferences: - +java -cp $(CLASSPATH) $(CT_APP) $(CT_APPEXECCOMMAND) $(CT_TESTBASE) -tdoc $(PWD)$/testdocuments $(CT_PACKAGE).CheckCrossReferences - -CheckBookmarks: - +java -cp $(CLASSPATH) $(CT_APP) $(CT_APPEXECCOMMAND) $(CT_TESTBASE) -tdoc $(PWD)$/testdocuments $(CT_PACKAGE).CheckBookmarks - -CheckFlies: - +java -cp $(CLASSPATH) $(CT_APP) $(CT_APPEXECCOMMAND) $(CT_TESTBASE) -tdoc $(PWD)$/testdocuments $(CT_PACKAGE).CheckFlies +.INCLUDE: settings.mk +.INCLUDE: target.mk +.INCLUDE: installationtest.mk -TextPortionEnumerationTest: - +java -cp $(CLASSPATH) $(CT_APP) $(CT_APPEXECCOMMAND) $(CT_TESTBASE) -tdoc $(PWD)$/testdocuments $(CT_PACKAGE).TextPortionEnumerationTest +ALLTAR : javatest +.END diff --git a/sw/qa/unoapi/knownissues.xcl b/sw/qa/unoapi/knownissues.xcl index 08e441211cf7..ea5bf843f3ec 100644 --- a/sw/qa/unoapi/knownissues.xcl +++ b/sw/qa/unoapi/knownissues.xcl @@ -173,3 +173,17 @@ sw.SwXTextEmbeddedObject::com::sun::star::document::XEmbeddedObjectSupplier ### i111332 ### sw.XMLStylesExporter::com::sun::star::document::XFilter + +### i113020 ### +sw.SwXTextEmbeddedObject::com::sun::star::beans::XPropertySet +sw.SwXTextGraphicObject::com::sun::star::beans::XPropertySet +sw.SwXTextFrame::com::sun::star::beans::XPropertySet + +### i113136 ### +sw.SwAccessibleParagraphView::com::sun::star::accessibility::XAccessibleEditableText + +### i114205 ### +sw.SwAccessibleParagraphView::com::sun::star::accessibility::XAccessibleText + +### i114889 ### +sw.SwXTextViewCursor::com::sun::star::view::XScreenCursor diff --git a/sw/qa/unoapi/sw.sce b/sw/qa/unoapi/sw.sce index 0f1092af8a51..f6ae766af2d7 100644 --- a/sw/qa/unoapi/sw.sce +++ b/sw/qa/unoapi/sw.sce @@ -5,9 +5,9 @@ #i111197 -o sw.SwAccessibleDocumentPageView #i86751 -o sw.SwAccessibleDocumentView -o sw.SwAccessibleEndnoteView --o sw.SwAccessibleFooterView --o sw.SwAccessibleFootnoteView --o sw.SwAccessibleHeaderView +#i113142 -o sw.SwAccessibleFooterView +#i114637 -o sw.SwAccessibleFootnoteView +#i113142 -o sw.SwAccessibleHeaderView #i89022 -o sw.SwAccessiblePageView -o sw.SwAccessibleParagraphView -o sw.SwAccessibleTableCellView diff --git a/sw/source/core/attr/cellatr.cxx b/sw/source/core/attr/cellatr.cxx index 8032d3506a27..f492696ef8ac 100644 --- a/sw/source/core/attr/cellatr.cxx +++ b/sw/source/core/attr/cellatr.cxx @@ -28,9 +28,10 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" +#include <float.h> +#include <rtl/math.hxx> -#include <float.h> #include <hintids.hxx> // fuer RES_.. #include <cellatr.hxx> #include <calc.hxx> @@ -249,8 +250,12 @@ SwTblBoxValue::SwTblBoxValue( const double nVal ) int SwTblBoxValue::operator==( const SfxPoolItem& rAttr ) const { - ASSERT( SfxPoolItem::operator==( rAttr ), "keine gleichen Attribute" ); - return nValue == ((SwTblBoxValue&)rAttr).nValue; + ASSERT(SfxPoolItem::operator==(rAttr), "SwTblBoxValue: item not equal"); + SwTblBoxValue const& rOther( static_cast<SwTblBoxValue const&>(rAttr) ); + // items with NaN should be equal to enable pooling + return ::rtl::math::isNan(nValue) + ? ::rtl::math::isNan(rOther.nValue) + : (nValue == rOther.nValue); } diff --git a/sw/source/core/doc/doc.cxx b/sw/source/core/doc/doc.cxx index 5ca8cb83d234..2df835f06c12 100755..100644 --- a/sw/source/core/doc/doc.cxx +++ b/sw/source/core/doc/doc.cxx @@ -1714,16 +1714,22 @@ sal_uInt16 SwDoc::GetPageCount() const const Size SwDoc::GetPageSize( sal_uInt16 nPageNum, bool bSkipEmptyPages ) const { Size aSize; - if( GetRootFrm() && nPageNum ) + if ( GetRootFrm() && nPageNum ) { const SwPageFrm* pPage = static_cast<const SwPageFrm*> (GetRootFrm()->Lower()); - while( --nPageNum && pPage->GetNext() ) + while ( --nPageNum && pPage->GetNext() ) + { pPage = static_cast<const SwPageFrm*>( pPage->GetNext() ); + } - if( !bSkipEmptyPages && pPage->IsEmptyPage() && pPage->GetNext() ) + // switch to next page for an empty page, if empty pages are not skipped + // in order to get a sensible page size for an empty page - e.g. for printing. + if ( !bSkipEmptyPages && pPage->IsEmptyPage() && pPage->GetNext() ) + { pPage = static_cast<const SwPageFrm*>( pPage->GetNext() ); + } aSize = pPage->Frm().SSize(); } diff --git a/sw/source/core/doc/docedt.cxx b/sw/source/core/doc/docedt.cxx index 31484ac303dd..bdcf8caaff7b 100644 --- a/sw/source/core/doc/docedt.cxx +++ b/sw/source/core/doc/docedt.cxx @@ -38,6 +38,7 @@ #include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/i18n/WordType.hdl> #include <unotools/charclass.hxx> +#include <unotools/transliterationwrapper.hxx> #include <fmtanchr.hxx> #include <fmtcntnt.hxx> #include <fmtpdsc.hxx> @@ -72,6 +73,8 @@ #include <unoflatpara.hxx> #include <SwGrammarMarkUp.hxx> +#include <vector> + using ::rtl::OUString; using namespace ::com::sun::star; using namespace ::com::sun::star::linguistic2; @@ -2653,8 +2656,9 @@ bool SwDoc::DelFullPara( SwPaM& rPam ) } -void SwDoc::TransliterateText( const SwPaM& rPaM, - utl::TransliterationWrapper& rTrans ) +void SwDoc::TransliterateText( + const SwPaM& rPaM, + utl::TransliterationWrapper& rTrans ) { SwUndoTransliterate* pUndo; if( DoesUndo() ) @@ -2663,15 +2667,17 @@ void SwDoc::TransliterateText( const SwPaM& rPaM, pUndo = 0; const SwPosition* pStt = rPaM.Start(), - * pEnd = pStt == rPaM.GetPoint() ? rPaM.GetMark() - : rPaM.GetPoint(); - ULONG nSttNd = pStt->nNode.GetIndex(), nEndNd = pEnd->nNode.GetIndex(); + * pEnd = rPaM.End(); + ULONG nSttNd = pStt->nNode.GetIndex(), + nEndNd = pEnd->nNode.GetIndex(); xub_StrLen nSttCnt = pStt->nContent.GetIndex(), nEndCnt = pEnd->nContent.GetIndex(); SwTxtNode* pTNd = pStt->nNode.GetNode().GetTxtNode(); - if( pStt == pEnd && pTNd ) // no region ? + if( pStt == pEnd && pTNd ) // no selection? { + // set current word as 'area of effect' + Boundary aBndry; if( pBreakIt->GetBreakIter().is() ) aBndry = pBreakIt->GetBreakIter()->getWordBoundary( @@ -2687,21 +2693,24 @@ void SwDoc::TransliterateText( const SwPaM& rPaM, } } - if( nSttNd != nEndNd ) + if( nSttNd != nEndNd ) // is more than one text node involved? { + // iterate over all effected text nodes, the first and the last one + // may be incomplete because the selection starts and/or ends there + SwNodeIndex aIdx( pStt->nNode ); if( nSttCnt ) { aIdx++; if( pTNd ) - pTNd->TransliterateText( rTrans, nSttCnt, - pTNd->GetTxt().Len(), pUndo ); + pTNd->TransliterateText( rTrans, nSttCnt, pTNd->GetTxt().Len(), pUndo ); } for( ; aIdx.GetIndex() < nEndNd; aIdx++ ) + { if( 0 != ( pTNd = aIdx.GetNode().GetTxtNode() )) - pTNd->TransliterateText( rTrans, 0, pTNd->GetTxt().Len(), - pUndo ); + pTNd->TransliterateText( rTrans, 0, pTNd->GetTxt().Len(), pUndo ); + } if( nEndCnt && 0 != ( pTNd = pEnd->nNode.GetNode().GetTxtNode() )) pTNd->TransliterateText( rTrans, 0, nEndCnt, pUndo ); @@ -2721,6 +2730,8 @@ void SwDoc::TransliterateText( const SwPaM& rPaM, } SetModified(); } + + #define MAX_REDLINE_COUNT 250 // ----------------------------------------------------------------------------- void SwDoc::checkRedlining(RedlineMode_t& _rReadlineMode) diff --git a/sw/source/core/doc/number.cxx b/sw/source/core/doc/number.cxx index 7af292626f06..847c6b229fd1 100644 --- a/sw/source/core/doc/number.cxx +++ b/sw/source/core/doc/number.cxx @@ -101,8 +101,15 @@ const SwNumFmt& SwNumRule::Get( USHORT i ) const const SwNumFmt* SwNumRule::GetNumFmt( USHORT i ) const { + const SwNumFmt * pResult = NULL; + ASSERT_ID( i < MAXLEVEL && eRuleType < RULE_END, ERR_NUMLEVEL); - return aFmts[ i ]; + if ( i < MAXLEVEL && eRuleType < RULE_END) + { + pResult = aFmts[ i ]; + } + + return pResult; } // --> OD 2008-07-08 #i91400# diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx index b213eb1d075d..f0683ae700a5 100644 --- a/sw/source/core/docnode/ndtbl.cxx +++ b/sw/source/core/docnode/ndtbl.cxx @@ -334,7 +334,13 @@ BOOL SwNodes::InsBoxen( SwTableNode* pTblNd, new SwEndNode( aEndIdx, *pSttNd ); pPrvBox = new SwTableBox( pBoxFmt, *pSttNd, pLine ); - pLine->GetTabBoxes().C40_INSERT( SwTableBox, pPrvBox, nInsPos + n ); + + SwTableBoxes & rTabBoxes = pLine->GetTabBoxes(); + USHORT nRealInsPos = nInsPos + n; + if (nRealInsPos > rTabBoxes.Count()) + nRealInsPos = rTabBoxes.Count(); + + rTabBoxes.C40_INSERT( SwTableBox, pPrvBox, nRealInsPos ); //if( NO_NUMBERING == pTxtColl->GetOutlineLevel()//#outline level,zhaojianwei if( ! pTxtColl->IsAssignedToListLevelOfOutlineStyle()//<-end,zhaojianwei diff --git a/sw/source/core/draw/dcontact.cxx b/sw/source/core/draw/dcontact.cxx index 2e19d482fc70..766c3ca86377 100644 --- a/sw/source/core/draw/dcontact.cxx +++ b/sw/source/core/draw/dcontact.cxx @@ -1396,6 +1396,37 @@ void SwDrawContact::_Changed( const SdrObject& rObj, DisconnectFromLayout( false ); break; } + case SDRUSERCALL_CHILD_INSERTED : + case SDRUSERCALL_CHILD_REMOVED : + { + // --> AW, OD 2010-09-13 #i113730# + // force layer of controls for group objects containing control objects + if(dynamic_cast< SdrObjGroup* >(maAnchoredDrawObj.DrawObj())) + { + if(::CheckControlLayer(maAnchoredDrawObj.DrawObj())) + { + const IDocumentDrawModelAccess* pIDDMA = static_cast<SwFrmFmt*>(pRegisteredIn)->getIDocumentDrawModelAccess(); + const SdrLayerID aCurrentLayer(maAnchoredDrawObj.DrawObj()->GetLayer()); + const SdrLayerID aControlLayerID(pIDDMA->GetControlsId()); + const SdrLayerID aInvisibleControlLayerID(pIDDMA->GetInvisibleControlsId()); + + if(aCurrentLayer != aControlLayerID && aCurrentLayer != aInvisibleControlLayerID) + { + if ( aCurrentLayer == pIDDMA->GetInvisibleHellId() || + aCurrentLayer == pIDDMA->GetInvisibleHeavenId() ) + { + maAnchoredDrawObj.DrawObj()->SetLayer(aInvisibleControlLayerID); + } + else + { + maAnchoredDrawObj.DrawObj()->SetLayer(aControlLayerID); + } + } + } + } + // fallthrough intended here + // <-- + } case SDRUSERCALL_MOVEONLY: case SDRUSERCALL_RESIZE: case SDRUSERCALL_CHILD_MOVEONLY : @@ -1403,8 +1434,6 @@ void SwDrawContact::_Changed( const SdrObject& rObj, case SDRUSERCALL_CHILD_CHGATTR : case SDRUSERCALL_CHILD_DELETE : case SDRUSERCALL_CHILD_COPY : - case SDRUSERCALL_CHILD_INSERTED : - case SDRUSERCALL_CHILD_REMOVED : { // --> OD 2004-08-04 #i31698# - improvement: // get instance <SwAnchoredDrawObject> only once diff --git a/sw/source/core/frmedt/feshview.cxx b/sw/source/core/frmedt/feshview.cxx index 17e4b1ed4873..f334ddcaee2f 100644 --- a/sw/source/core/frmedt/feshview.cxx +++ b/sw/source/core/frmedt/feshview.cxx @@ -599,7 +599,7 @@ bool SwFEShell::IsSelContainsControl() const // if we have one marked object, get the SdrObject and check // whether it contains a control const SdrObject* pSdrObject = pMarkList->GetMark( 0 )->GetMarkedSdrObj(); - bRet = CheckControlLayer( pSdrObject ); + bRet = ::CheckControlLayer( pSdrObject ); } return bRet; } @@ -994,8 +994,14 @@ void SwFEShell::ChangeOpaque( SdrLayerID nLayerId ) SdrObject* pObj = rMrkList.GetMark( i )->GetMarkedSdrObj(); // OD 21.08.2003 #i18447# - no change of layer for controls // or group objects containing controls. - const bool bControlObj = ::CheckControlLayer( pObj ); - //if ( pObj->GetLayer() != nLayerId && pObj->GetLayer() != nControls ) + // --> OD 2010-09-14 #i113730# + // consider that a member of a drawing group has been selected. + const SwContact* pContact = ::GetUserCall( pObj ); + ASSERT( pContact && pContact->GetMaster(), "<SwFEShell::ChangeOpaque(..)> - missing contact or missing master object at contact!" ); + const bool bControlObj = ( pContact && pContact->GetMaster() ) + ? ::CheckControlLayer( pContact->GetMaster() ) + : ::CheckControlLayer( pObj ); + // <-- if ( !bControlObj && pObj->GetLayer() != nLayerId ) { pObj->SetLayer( nLayerId ); diff --git a/sw/source/core/layout/fly.cxx b/sw/source/core/layout/fly.cxx index cd590d73ddcc..d69df532682f 100644 --- a/sw/source/core/layout/fly.cxx +++ b/sw/source/core/layout/fly.cxx @@ -51,6 +51,9 @@ #include <layhelp.hxx> #include <ndtxt.hxx> +// --> OD 2010-09-14 #i113730# +#include <svx/svdogrp.hxx> +// <-- // OD 16.04.2003 #i13147# - for <SwFlyFrm::GetContour(..)> #include <ndgrf.hxx> // OD 29.10.2003 #113049# @@ -2250,6 +2253,30 @@ void SwFrm::AppendDrawObj( SwAnchoredObject& _rNewObj ) _rNewObj.ChgAnchorFrm( this ); } + // --> OD 2010-09-14 #i113730# + // Assure the control objects and group objects containing controls are on the control layer + if ( ::CheckControlLayer( _rNewObj.DrawObj() ) ) + { + const IDocumentDrawModelAccess* pIDDMA = GetUpper()->GetFmt()->getIDocumentDrawModelAccess(); + const SdrLayerID aCurrentLayer(_rNewObj.DrawObj()->GetLayer()); + const SdrLayerID aControlLayerID(pIDDMA->GetControlsId()); + const SdrLayerID aInvisibleControlLayerID(pIDDMA->GetInvisibleControlsId()); + + if(aCurrentLayer != aControlLayerID && aCurrentLayer != aInvisibleControlLayerID) + { + if ( aCurrentLayer == pIDDMA->GetInvisibleHellId() || + aCurrentLayer == pIDDMA->GetInvisibleHeavenId() ) + { + _rNewObj.DrawObj()->SetLayer(aInvisibleControlLayerID); + } + else + { + _rNewObj.DrawObj()->SetLayer(aControlLayerID); + } + } + } + // <-- + // no direct positioning needed, but invalidate the drawing object position _rNewObj.InvalidateObjPos(); diff --git a/sw/source/core/txtnode/txtedt.cxx b/sw/source/core/txtnode/txtedt.cxx index 944eb70b2c3d..0630dbd722b6 100644 --- a/sw/source/core/txtnode/txtedt.cxx +++ b/sw/source/core/txtnode/txtedt.cxx @@ -36,6 +36,7 @@ #include <time.h> // clock() #include <tools/stream.hxx> #endif + #include <hintids.hxx> #include <vcl/svapp.hxx> #include <svl/itemiter.hxx> @@ -46,9 +47,6 @@ #include <editeng/hangulhanja.hxx> #include <SwSmartTagMgr.hxx> #include <linguistic/lngprops.hxx> -#include <com/sun/star/beans/XPropertySet.hpp> -#include <com/sun/star/i18n/WordType.hdl> -#include <com/sun/star/i18n/ScriptType.hdl> #include <unotools/transliterationwrapper.hxx> #include <unotools/charclass.hxx> #include <dlelstnr.hxx> @@ -86,6 +84,15 @@ #include <unomid.h> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <com/sun/star/i18n/WordType.hdl> +#include <com/sun/star/i18n/ScriptType.hdl> +#include <com/sun/star/i18n/TransliterationModules.hpp> +#include <com/sun/star/i18n/TransliterationModulesExtra.hpp> + +#include <vector> + + using rtl::OUString; using namespace ::com::sun::star; using namespace ::com::sun::star::frame; @@ -1578,49 +1585,247 @@ void SwLinguStatistik::Flush() #endif + +struct TransliterationChgData +{ + xub_StrLen nStart; + xub_StrLen nLen; + String sChanged; + Sequence< sal_Int32 > aOffsets; +}; + // change text to Upper/Lower/Hiragana/Katagana/... -void SwTxtNode::TransliterateText( utl::TransliterationWrapper& rTrans, - xub_StrLen nStt, xub_StrLen nEnd, SwUndoTransliterate* pUndo ) +void SwTxtNode::TransliterateText( + utl::TransliterationWrapper& rTrans, + xub_StrLen nStt, xub_StrLen nEnd, + SwUndoTransliterate* pUndo ) { - if( nStt < nEnd ) + if (nStt < nEnd && pBreakIt->GetBreakIter().is()) { - SwLanguageIterator* pIter; - if( rTrans.needLanguageForTheMode() ) - pIter = new SwLanguageIterator( *this, nStt ); - else - pIter = 0; + // since we don't use Hiragana/Katakana or half-width/full-width transliterations here + // it is fine to use ANYWORD_IGNOREWHITESPACES. (ANY_WORD btw is broken and will + // occasionaly miss words in consecutive sentences). Also with ANYWORD_IGNOREWHITESPACES + // text like 'just-in-time' will be converted to 'Just-In-Time' which seems to be the + // proper thing to do. + const sal_Int16 nWordType = WordType::ANYWORD_IGNOREWHITESPACES; + + //! In order to have less trouble with changing text size, e.g. because + //! of ligatures or � (German small sz) being resolved, we need to process + //! the text replacements from end to start. + //! This way the offsets for the yet to be changed words will be + //! left unchanged by the already replaced text. + //! For this we temporarily save the changes to be done in this vector + std::vector< TransliterationChgData > aChanges; + TransliterationChgData aChgData; + + if (rTrans.getType() == (sal_uInt32)TransliterationModulesExtra::TITLE_CASE) + { + // for 'capitalize every word' we need to iterate over each word + + Boundary aSttBndry; + Boundary aEndBndry; + aSttBndry = pBreakIt->GetBreakIter()->getWordBoundary( + GetTxt(), nStt, + pBreakIt->GetLocale( GetLang( nStt ) ), + nWordType, + TRUE /*prefer forward direction*/); + aEndBndry = pBreakIt->GetBreakIter()->getWordBoundary( + GetTxt(), nEnd, + pBreakIt->GetLocale( GetLang( nEnd ) ), + nWordType, + FALSE /*prefer backward direction*/); + + // prevent backtracking to the previous word if selection is at word boundary + if (aSttBndry.endPos <= nStt) + { + aSttBndry = pBreakIt->GetBreakIter()->nextWord( + GetTxt(), aSttBndry.endPos, + pBreakIt->GetLocale( GetLang( aSttBndry.endPos ) ), + nWordType); + } + // prevent advancing to the next word if selection is at word boundary + if (aEndBndry.startPos >= nEnd) + { + aEndBndry = pBreakIt->GetBreakIter()->previousWord( + GetTxt(), aEndBndry.startPos, + pBreakIt->GetLocale( GetLang( aEndBndry.startPos ) ), + nWordType); + } - xub_StrLen nEndPos; - sal_uInt16 nLang; - do { - if( pIter ) + Boundary aCurWordBndry( aSttBndry ); + while (aCurWordBndry.startPos <= aEndBndry.startPos) { - nLang = pIter->GetLanguage(); - nEndPos = pIter->GetChgPos(); - if( nEndPos > nEnd ) - nEndPos = nEnd; + nStt = (xub_StrLen)aCurWordBndry.startPos; + nEnd = (xub_StrLen)aCurWordBndry.endPos; + sal_Int32 nLen = nEnd - nStt; + DBG_ASSERT( nLen > 0, "invalid word length of 0" ); +#if OSL_DEBUG_LEVEL > 1 + String aText( GetTxt().Copy( nStt, nLen ) ); +#endif + + Sequence <sal_Int32> aOffsets; + String sChgd( rTrans.transliterate( GetTxt(), GetLang( nStt ), nStt, nLen, &aOffsets )); + + if (!m_Text.Equals( sChgd, nStt, nLen )) + { + aChgData.nStart = nStt; + aChgData.nLen = nLen; + aChgData.sChanged = sChgd; + aChgData.aOffsets = aOffsets; + aChanges.push_back( aChgData ); + } + + aCurWordBndry = pBreakIt->GetBreakIter()->nextWord( + GetTxt(), nEnd, + pBreakIt->GetLocale( GetLang( nEnd ) ), + nWordType); } - else + } + else if (rTrans.getType() == (sal_uInt32)TransliterationModulesExtra::SENTENCE_CASE) + { + // for 'sentence case' we need to iterate sentence by sentence + + sal_Int32 nLastStart = pBreakIt->GetBreakIter()->beginOfSentence( + GetTxt(), nEnd, + pBreakIt->GetLocale( GetLang( nEnd ) ) ); + sal_Int32 nLastEnd = pBreakIt->GetBreakIter()->endOfSentence( + GetTxt(), nLastStart, + pBreakIt->GetLocale( GetLang( nLastStart ) ) ); + + // extend nStt, nEnd to the current sentence boundaries + sal_Int32 nCurrentStart = pBreakIt->GetBreakIter()->beginOfSentence( + GetTxt(), nStt, + pBreakIt->GetLocale( GetLang( nStt ) ) ); + sal_Int32 nCurrentEnd = pBreakIt->GetBreakIter()->endOfSentence( + GetTxt(), nCurrentStart, + pBreakIt->GetLocale( GetLang( nCurrentStart ) ) ); + + // prevent backtracking to the previous sentence if selection starts at end of a sentence + if (nCurrentEnd <= nStt) + { + // now nCurrentStart is probably located on a non-letter word. (unless we + // are in Asian text with no spaces...) + // Thus to get the real sentence start we should locate the next real word, + // that is one found by DICTIONARY_WORD + i18n::Boundary aBndry = pBreakIt->GetBreakIter()->nextWord( + GetTxt(), nCurrentEnd, + pBreakIt->GetLocale( GetLang( nCurrentEnd ) ), + i18n::WordType::DICTIONARY_WORD); + + // now get new current sentence boundaries + nCurrentStart = pBreakIt->GetBreakIter()->beginOfSentence( + GetTxt(), aBndry.startPos, + pBreakIt->GetLocale( GetLang( aBndry.startPos) ) ); + nCurrentEnd = pBreakIt->GetBreakIter()->endOfSentence( + GetTxt(), nCurrentStart, + pBreakIt->GetLocale( GetLang( nCurrentStart) ) ); + } + // prevent advancing to the next sentence if selection ends at start of a sentence + if (nLastStart >= nEnd) { - nLang = LANGUAGE_SYSTEM; - nEndPos = nEnd; + // now nCurrentStart is probably located on a non-letter word. (unless we + // are in Asian text with no spaces...) + // Thus to get the real sentence start we should locate the previous real word, + // that is one found by DICTIONARY_WORD + i18n::Boundary aBndry = pBreakIt->GetBreakIter()->previousWord( + GetTxt(), nLastStart, + pBreakIt->GetLocale( GetLang( nLastStart) ), + i18n::WordType::DICTIONARY_WORD); + nLastEnd = pBreakIt->GetBreakIter()->endOfSentence( + GetTxt(), aBndry.startPos, + pBreakIt->GetLocale( GetLang( aBndry.startPos) ) ); + if (nCurrentEnd > nLastEnd) + nCurrentEnd = nLastEnd; } - xub_StrLen nLen = nEndPos - nStt; - Sequence <sal_Int32> aOffsets; - String sChgd( rTrans.transliterate( m_Text, nLang, nStt, nLen, - &aOffsets )); - if( !m_Text.Equals( sChgd, nStt, nLen ) ) + while (nCurrentStart < nLastEnd) { - if ( pUndo ) + sal_Int32 nLen = nCurrentEnd - nCurrentStart; + DBG_ASSERT( nLen > 0, "invalid word length of 0" ); +#if OSL_DEBUG_LEVEL > 1 + String aText( GetTxt().Copy( nCurrentStart, nLen ) ); +#endif + + Sequence <sal_Int32> aOffsets; + String sChgd( rTrans.transliterate( GetTxt(), + GetLang( nCurrentStart ), nCurrentStart, nLen, &aOffsets )); + + if (!m_Text.Equals( sChgd, nStt, nLen )) { - pUndo->AddChanges( *this, nStt, nLen, aOffsets ); + aChgData.nStart = nCurrentStart; + aChgData.nLen = nLen; + aChgData.sChanged = sChgd; + aChgData.aOffsets = aOffsets; + aChanges.push_back( aChgData ); } - ReplaceTextOnly( nStt, nLen, sChgd, aOffsets ); + + Boundary aFirstWordBndry; + aFirstWordBndry = pBreakIt->GetBreakIter()->nextWord( + GetTxt(), nCurrentEnd, + pBreakIt->GetLocale( GetLang( nCurrentEnd ) ), + nWordType); + nCurrentStart = aFirstWordBndry.startPos; + nCurrentEnd = pBreakIt->GetBreakIter()->endOfSentence( + GetTxt(), nCurrentStart, + pBreakIt->GetLocale( GetLang( nCurrentStart ) ) ); } - nStt = nEndPos; - } while( nEndPos < nEnd && pIter && pIter->Next() ); - delete pIter; + } + else + { + // here we may transliterate over complete language portions... + + SwLanguageIterator* pIter; + if( rTrans.needLanguageForTheMode() ) + pIter = new SwLanguageIterator( *this, nStt ); + else + pIter = 0; + + xub_StrLen nEndPos; + sal_uInt16 nLang; + do { + if( pIter ) + { + nLang = pIter->GetLanguage(); + nEndPos = pIter->GetChgPos(); + if( nEndPos > nEnd ) + nEndPos = nEnd; + } + else + { + nLang = LANGUAGE_SYSTEM; + nEndPos = nEnd; + } + xub_StrLen nLen = nEndPos - nStt; + + Sequence <sal_Int32> aOffsets; + String sChgd( rTrans.transliterate( m_Text, nLang, nStt, nLen, &aOffsets )); + + if (!m_Text.Equals( sChgd, nStt, nLen )) + { + aChgData.nStart = nStt; + aChgData.nLen = nLen; + aChgData.sChanged = sChgd; + aChgData.aOffsets = aOffsets; + aChanges.push_back( aChgData ); + } + + nStt = nEndPos; + } while( nEndPos < nEnd && pIter && pIter->Next() ); + delete pIter; + } + + if (aChanges.size() > 0) + { + // now apply the changes from end to start to leave the offsets of the + // yet unchanged text parts remain the same. + for (size_t i = 0; i < aChanges.size(); ++i) + { + TransliterationChgData &rData = aChanges[ aChanges.size() - 1 - i ]; + if (pUndo) + pUndo->AddChanges( *this, rData.nStart, rData.nLen, rData.aOffsets ); + ReplaceTextOnly( rData.nStart, rData.nLen, rData.sChanged, rData.aOffsets ); + } + } } } diff --git a/sw/source/core/undo/makefile.mk b/sw/source/core/undo/makefile.mk index d6e6766a0fd4..c381761adba1 100644 --- a/sw/source/core/undo/makefile.mk +++ b/sw/source/core/undo/makefile.mk @@ -49,6 +49,7 @@ EXCEPTIONSFILES = \ $(SLO)$/unattr.obj \ $(SLO)$/undobj.obj \ $(SLO)$/undraw.obj \ + $(SLO)$/unovwr.obj \ $(SLO)$/untbl.obj SLOFILES = \ diff --git a/sw/source/core/undo/unovwr.cxx b/sw/source/core/undo/unovwr.cxx index 8254d431b079..91549c84a57e 100644 --- a/sw/source/core/undo/unovwr.cxx +++ b/sw/source/core/undo/unovwr.cxx @@ -352,16 +352,14 @@ SwRewriter SwUndoOverwrite::GetRewriter() const struct _UndoTransliterate_Data { - String sText; - _UndoTransliterate_Data* pNext; - SwHistory* pHistory; - Sequence <sal_Int32>* pOffsets; - ULONG nNdIdx; - xub_StrLen nStart, nLen; - - _UndoTransliterate_Data( ULONG nNd, xub_StrLen nStt, xub_StrLen nStrLen, - const String& rTxt ) - : sText( rTxt ), pNext( 0 ), pHistory( 0 ), pOffsets( 0 ), + String sText; + SwHistory* pHistory; + Sequence< sal_Int32 >* pOffsets; + ULONG nNdIdx; + xub_StrLen nStart, nLen; + + _UndoTransliterate_Data( ULONG nNd, xub_StrLen nStt, xub_StrLen nStrLen, const String& rTxt ) + : sText( rTxt ), pHistory( 0 ), pOffsets( 0 ), nNdIdx( nNd ), nStart( nStt ), nLen( nStrLen ) {} ~_UndoTransliterate_Data() { delete pOffsets; delete pHistory; } @@ -369,22 +367,17 @@ struct _UndoTransliterate_Data void SetChangeAtNode( SwDoc& rDoc ); }; -SwUndoTransliterate::SwUndoTransliterate( const SwPaM& rPam, - const utl::TransliterationWrapper& rTrans ) - : SwUndo( UNDO_TRANSLITERATE ), SwUndRng( rPam ), - pData( 0 ), pLastData( 0 ), nType( rTrans.getType() ) +SwUndoTransliterate::SwUndoTransliterate( + const SwPaM& rPam, + const utl::TransliterationWrapper& rTrans ) + : SwUndo( UNDO_TRANSLITERATE ), SwUndRng( rPam ), nType( rTrans.getType() ) { } SwUndoTransliterate::~SwUndoTransliterate() { - _UndoTransliterate_Data* pD = pData; - while( pD ) - { - pData = pD; - pD = pD->pNext; - delete pData; - } + for (size_t i = 0; i < aChanges.size(); ++i) + delete aChanges[i]; } void SwUndoTransliterate::Undo( SwUndoIter& rUndoIter ) @@ -393,8 +386,12 @@ void SwUndoTransliterate::Undo( SwUndoIter& rUndoIter ) BOOL bUndo = rDoc.DoesUndo(); rDoc.DoUndo( FALSE ); - for( _UndoTransliterate_Data* pD = pData; pD; pD = pD->pNext ) - pD->SetChangeAtNode( rDoc ); + // since the changes were added to the vector from the end of the string/node towards + // the start, we need to revert them from the start towards the end now to keep the + // offset information of the undo data in sync with the changing text. + // Thus we need to iterate from the end of the vector to the start + for (sal_Int32 i = aChanges.size() - 1; i >= 0; --i) + aChanges[i]->SetChangeAtNode( rDoc ); rDoc.DoUndo( bUndo ); SetPaM( rUndoIter, TRUE ); @@ -413,8 +410,7 @@ void SwUndoTransliterate::Repeat( SwUndoIter& rUndoIter ) SwPaM& rPam = *rUndoIter.pAktPam; SwDoc& rDoc = rUndoIter.GetDoc(); - utl::TransliterationWrapper aTrans( - ::comphelper::getProcessServiceFactory(), nType ); + utl::TransliterationWrapper aTrans( ::comphelper::getProcessServiceFactory(), nType ); rDoc.TransliterateText( rPam, aTrans ); rUndoIter.pLastUndoObj = this; @@ -428,67 +424,63 @@ void SwUndoTransliterate::AddChanges( SwTxtNode& rTNd, _UndoTransliterate_Data* pNew = new _UndoTransliterate_Data( rTNd.GetIndex(), nStart, (xub_StrLen)nOffsLen, rTNd.GetTxt().Copy( nStart, nLen )); - if( pData ) - pLastData->pNext = pNew; - else - pData = pNew; - pLastData = pNew; + + aChanges.push_back( pNew ); const sal_Int32* pOffsets = rOffsets.getConstArray(); // where did we need less memory ? const sal_Int32* p = pOffsets; for( long n = 0; n < nOffsLen; ++n, ++p ) - if( *p != ( nStart + n )) + if( *p != ( nStart + n )) + { + // create the Offset array + pNew->pOffsets = new Sequence <sal_Int32> ( nLen ); + sal_Int32* pIdx = pNew->pOffsets->getArray(); + p = pOffsets; + long nMyOff, nNewVal = nStart; + for( n = 0, nMyOff = nStart; n < nOffsLen; ++p, ++n, ++nMyOff ) { - // create the Offset array - pNew->pOffsets = new Sequence <sal_Int32> ( nLen ); - sal_Int32* pIdx = pNew->pOffsets->getArray(); - p = pOffsets; - long nMyOff, nNewVal = nStart; - for( n = 0, nMyOff = nStart; n < nOffsLen; ++p, ++n, ++nMyOff ) + if( *p < nMyOff ) { - if( *p < nMyOff ) - { - // something is deleted - nMyOff = *p; - *(pIdx-1) = nNewVal++; - } - else if( *p > nMyOff ) - { - for( ; *p > nMyOff; ++nMyOff ) - *pIdx++ = nNewVal; - --nMyOff; - --n; - --p; - } - else - *pIdx++ = nNewVal++; + // something is deleted + nMyOff = *p; + *(pIdx-1) = nNewVal++; } - - // and then we need to save the attributes/bookmarks - // but this data must moved every time to the last in the chain! - _UndoTransliterate_Data* pD = pData; - while( pD != pNew ) + else if( *p > nMyOff ) { - if( pD->nNdIdx == pNew->nNdIdx && pD->pHistory ) - { - // same node and have a history? - pNew->pHistory = pD->pHistory; - pD->pHistory = 0; - break; // more can't exist - } - pD = pD->pNext; + for( ; *p > nMyOff; ++nMyOff ) + *pIdx++ = nNewVal; + --nMyOff; + --n; + --p; } + else + *pIdx++ = nNewVal++; + } - if( !pNew->pHistory ) + // and then we need to save the attributes/bookmarks + // but this data must moved every time to the last in the chain! + for (size_t i = 0; i + 1 < aChanges.size(); ++i) // check all changes but not the current one + { + _UndoTransliterate_Data* pD = aChanges[i]; + if( pD->nNdIdx == pNew->nNdIdx && pD->pHistory ) { - pNew->pHistory = new SwHistory; - SwRegHistory aRHst( rTNd, pNew->pHistory ); - pNew->pHistory->CopyAttr( rTNd.GetpSwpHints(), - pNew->nNdIdx, 0, rTNd.GetTxt().Len(), false ); + // same node and have a history? + pNew->pHistory = pD->pHistory; + pD->pHistory = 0; + break; // more can't exist } - break; } + + if( !pNew->pHistory ) + { + pNew->pHistory = new SwHistory; + SwRegHistory aRHst( rTNd, pNew->pHistory ); + pNew->pHistory->CopyAttr( rTNd.GetpSwpHints(), + pNew->nNdIdx, 0, rTNd.GetTxt().Len(), false ); + } + break; + } } void _UndoTransliterate_Data::SetChangeAtNode( SwDoc& rDoc ) diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx index b7098710802b..fdc382ad99d9 100644 --- a/sw/source/core/unocore/unotbl.cxx +++ b/sw/source/core/unocore/unotbl.cxx @@ -1009,12 +1009,9 @@ void SwXCell::setFormula(const OUString& rFormula) throw( uno::RuntimeException double SwXCell::getValue(void) throw( uno::RuntimeException ) { vos::OGuard aGuard(Application::GetSolarMutex()); - double fRet = lcl_getValue( *this ); - //lcl_getValue was changed thus it can return nan values, - //so I make this additional nan check here to not change the behaviour - //but maybe it would even be more correct to just return nan here? ... todo? - if( ::rtl::math::isNan( fRet ) ) - fRet = 0.0; + + double const fRet = lcl_getValue( *this ); + // #i112652# a table cell may contain NaN as a value, do not filter that return fRet; } /*-- 11.12.98 10:56:26--------------------------------------------------- diff --git a/sw/source/filter/rtf/rtfnum.cxx b/sw/source/filter/rtf/rtfnum.cxx index 84719b2f1255..507f35375ed6 100644 --- a/sw/source/filter/rtf/rtfnum.cxx +++ b/sw/source/filter/rtf/rtfnum.cxx @@ -806,8 +806,8 @@ SwNumRule *SwRTFParser::ReadNumSecLevel( int nToken ) // suche die Rule - steht unter Nummer 3 nListNo = 3; bContinus = FALSE; - nLevel = MAXLEVEL <= nTokenValue ? MAXLEVEL - 1 - : BYTE( nTokenValue - 1 ); + nLevel = MAXLEVEL <= (unsigned long) nTokenValue ? MAXLEVEL - 1 + : (!nTokenValue ? 0 : BYTE( nTokenValue - 1 )); } else { @@ -815,9 +815,9 @@ SwNumRule *SwRTFParser::ReadNumSecLevel( int nToken ) { case RTF_PNLVL: nListNo = 3; bContinus = FALSE; - nLevel = MAXLEVEL <= nTokenValue + nLevel = MAXLEVEL <= (unsigned long) nTokenValue ? MAXLEVEL - 1 - : BYTE( nTokenValue-1 ); + : (!nTokenValue ? 0 : BYTE( nTokenValue-1 )); break; case RTF_PNLVLBODY: diff --git a/sw/source/filter/ww8/docxexportfilter.cxx b/sw/source/filter/ww8/docxexportfilter.cxx index 13715fcd2bbe..0da676da99a1 100644 --- a/sw/source/filter/ww8/docxexportfilter.cxx +++ b/sw/source/filter/ww8/docxexportfilter.cxx @@ -127,30 +127,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( const *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; } -SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void* /* pServiceManager */, void* pRegistryKey ) -{ - sal_Bool bRet = sal_False; - - if( pRegistryKey ) - { - try - { - uno::Reference< registry::XRegistryKey > xNewKey1( - static_cast< registry::XRegistryKey* >( pRegistryKey )->createKey( - OUString::createFromAscii( IMPL_NAME "/UNO/SERVICES/" ) ) ); - xNewKey1->createKey( DocxExport_getSupportedServiceNames().getConstArray()[0] ); - - bRet = sal_True; - } - catch( registry::InvalidRegistryException& ) - { - OSL_ENSURE( sal_False, "### InvalidRegistryException!" ); - } - } - - return bRet; -} - // ------------------------ // - component_getFactory - // ------------------------ diff --git a/sw/source/filter/ww8/ww8par3.cxx b/sw/source/filter/ww8/ww8par3.cxx index 75454dddbc58..a9a60a01147a 100644 --- a/sw/source/filter/ww8/ww8par3.cxx +++ b/sw/source/filter/ww8/ww8par3.cxx @@ -1400,7 +1400,9 @@ WW8ListManager::WW8ListManager(SvStream& rSt_, SwWW8ImplReader& rReader_) pLFOInfo->pNumRule->Set(aLFOLVL.nLevel, aNumFmt); } bLVLOk = true; - pLFOInfo->maOverrides[aLFOLVL.nLevel] = aLFOLVL; + + if (nMaxLevel > aLFOLVL.nLevel) + pLFOInfo->maOverrides[aLFOLVL.nLevel] = aLFOLVL; } if( !bLVLOk ) break; diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx index d318522100cf..d64e207313d8 100644 --- a/sw/source/filter/ww8/ww8scan.cxx +++ b/sw/source/filter/ww8/ww8scan.cxx @@ -7179,8 +7179,16 @@ void WW8DopTypography::ReadFromMem(BYTE *&pData) for (i=0; i < nMaxLeading; ++i) rgxchLPunct[i] = Get_Short(pData); - rgxchFPunct[cchFollowingPunct]=0; - rgxchLPunct[cchLeadingPunct]=0; + if (cchFollowingPunct >= 0 && cchFollowingPunct < nMaxFollowing) + rgxchFPunct[cchFollowingPunct]=0; + else + rgxchFPunct[nMaxFollowing - 1]=0; + + if (cchLeadingPunct >= 0 && cchLeadingPunct < nMaxLeading) + rgxchLPunct[cchLeadingPunct]=0; + else + rgxchLPunct[nMaxLeading - 1]=0; + } void WW8DopTypography::WriteToMem(BYTE *&pData) const diff --git a/sw/source/filter/xml/xmlexpit.cxx b/sw/source/filter/xml/xmlexpit.cxx index 5a8f201f7cb0..07a4c911fc7e 100644 --- a/sw/source/filter/xml/xmlexpit.cxx +++ b/sw/source/filter/xml/xmlexpit.cxx @@ -926,9 +926,15 @@ sal_Bool SvXMLExportItemMapper::QueryXMLValue( if( MID_PAGEDESC_PAGENUMOFFSET==nMemberId ) { - - rUnitConverter.convertNumber( - aOut, (sal_Int32)pPageDesc->GetNumOffset() ); + sal_Int32 const number(pPageDesc->GetNumOffset()); + if (0 >= number) + { + aOut.append(GetXMLToken(XML_AUTO)); + } + else // #i114163# positiveInteger only! + { + rUnitConverter.convertNumber(aOut, number); + } bOk = sal_True; } } diff --git a/sw/source/ui/docvw/edtwin.cxx b/sw/source/ui/docvw/edtwin.cxx index 7b5741316cbb..5049220b1b5a 100644 --- a/sw/source/ui/docvw/edtwin.cxx +++ b/sw/source/ui/docvw/edtwin.cxx @@ -193,15 +193,51 @@ class SwAnchorMarker SdrHdl* pHdl; Point aHdlPos; Point aLastPos; + // --> OD 2010-09-16 #i114522# + bool bTopRightHandle; + // <-- public: - SwAnchorMarker( SdrHdl* pH ) : - pHdl( pH ), aHdlPos( pH->GetPos() ), aLastPos( pH->GetPos() ) {} + SwAnchorMarker( SdrHdl* pH ) + : pHdl( pH ) + , aHdlPos( pH->GetPos() ) + , aLastPos( pH->GetPos() ) + // --> OD 2010-09-16 #i114522# + , bTopRightHandle( pH->GetKind() == HDL_ANCHOR_TR ) + // <-- + {} const Point& GetLastPos() const { return aLastPos; } void SetLastPos( const Point& rNew ) { aLastPos = rNew; } void SetPos( const Point& rNew ) { pHdl->SetPos( rNew ); } const Point& GetPos() { return pHdl->GetPos(); } const Point& GetHdlPos() { return aHdlPos; } - void ChgHdl( SdrHdl* pNew ) { pHdl = pNew; } + void ChgHdl( SdrHdl* pNew ) + { + pHdl = pNew; + // --> OD 2010-09-16 #i114522# + if ( pHdl ) + { + bTopRightHandle = (pHdl->GetKind() == HDL_ANCHOR_TR); + } + // <-- + } + // --> OD 2010-09-16 #i114522# + const Point GetPosForHitTest( const OutputDevice& rOut ) + { + Point aHitTestPos( GetPos() ); + aHitTestPos = rOut.LogicToPixel( aHitTestPos ); + if ( bTopRightHandle ) + { + aHitTestPos += Point( -1, 1 ); + } + else + { + aHitTestPos += Point( 1, 1 ); + } + aHitTestPos = rOut.PixelToLogic( aHitTestPos ); + + return aHitTestPos; + } + // <-- }; struct QuickHelpData @@ -3609,7 +3645,10 @@ void SwEditWin::MouseMove(const MouseEvent& _rMEvt) // So the pAnchorMarker has to find the right SdrHdl, if it's // the old one, it will find it with position aOld, if this one // is destroyed, it will find a new one at position GetHdlPos(). - Point aOld = pAnchorMarker->GetPos(); + // --> OD 2010-09-16 #i114522# +// const Point aOld = pAnchorMarker->GetPos(); + const Point aOld = pAnchorMarker->GetPosForHitTest( *(rSh.GetOut()) ); + // <-- Point aNew = rSh.FindAnchorPos( aDocPt ); SdrHdl* pHdl; if( (0!=( pHdl = pSdrView->PickHandle( aOld ) )|| diff --git a/sw/source/ui/lingu/olmenu.cxx b/sw/source/ui/lingu/olmenu.cxx index 281e3ce3fabb..e9bb702b3d66 100644 --- a/sw/source/ui/lingu/olmenu.cxx +++ b/sw/source/ui/lingu/olmenu.cxx @@ -823,7 +823,6 @@ void SwSpellPopup::Execute( USHORT nId ) else if (MN_DICTIONARIES_START <= nId && nId <= MN_DICTIONARIES_END) { OUString aWord( xSpellAlt->getWord() ); -// DBG_ASSERT( nDicIdx < aDics.getLength(), "dictionary index out of range" ); PopupMenu *pMenu = GetPopupMenu(MN_ADD_TO_DIC); String aDicName ( pMenu->GetItemText(nId) ); diff --git a/sw/source/ui/ribbar/inputwin.cxx b/sw/source/ui/ribbar/inputwin.cxx index 9ee5a6e2ffa3..e6d7bf26db80 100755 --- a/sw/source/ui/ribbar/inputwin.cxx +++ b/sw/source/ui/ribbar/inputwin.cxx @@ -103,16 +103,23 @@ SwInputWindow::SwInputWindow( Window* pParent, SfxBindings* pBind ) SetDropdownClickHdl( LINK( this, SwInputWindow, DropdownClickHdl )); Size aSizeTbx = CalcWindowSizePixel(); + Size aEditSize = aEdit.GetSizePixel(); + Rectangle aItemRect( GetItemRect(FN_FORMULA_CALC) ); + long nMaxHeight = (aEditSize.Height() > aItemRect.GetHeight()) ? aEditSize.Height() : aItemRect.GetHeight(); + if( nMaxHeight+2 > aSizeTbx.Height() ) + aSizeTbx.Height() = nMaxHeight+2; Size aSize = GetSizePixel(); aSize.Height() = aSizeTbx.Height(); SetSizePixel( aSize ); - Size aPosSize = aPos.GetSizePixel(); - Size aEditSize = aEdit.GetSizePixel(); - aPosSize.Height() = aEditSize.Height() = GetItemRect(FN_FORMULA_CALC).GetHeight() - 2; - Point aPosPos = aPos.GetPosPixel(); - Point aEditPos= aEdit.GetPosPixel(); - aPosPos.Y() = aEditPos.Y() = GetItemRect( FN_FORMULA_CALC ).TopLeft().Y() + 1; + // align edit and item vcentered + Size aPosSize = aPos.GetSizePixel(); + aPosSize.Height() = nMaxHeight; + aEditSize.Height() = nMaxHeight; + Point aPosPos = aPos.GetPosPixel(); + Point aEditPos = aEdit.GetPosPixel(); + aPosPos.Y() = (aSize.Height() - nMaxHeight)/2 + 1; + aEditPos.Y() = (aSize.Height() - nMaxHeight)/2 + 1; aPos.SetPosSizePixel( aPosPos, aPosSize ); aEdit.SetPosSizePixel( aEditPos, aEditSize ); diff --git a/sw/source/ui/uiview/pview.cxx b/sw/source/ui/uiview/pview.cxx index d499add5ad53..8b6eeb9e7a5e 100644 --- a/sw/source/ui/uiview/pview.cxx +++ b/sw/source/ui/uiview/pview.cxx @@ -108,7 +108,7 @@ using namespace ::com::sun::star; -SFX_IMPL_VIEWFACTORY(SwPagePreView, SW_RES(STR_NONAME)) +SFX_IMPL_NAMED_VIEWFACTORY(SwPagePreView, "PrintPreview") { SFX_VIEW_REGISTRATION(SwDocShell); SFX_VIEW_REGISTRATION(SwWebDocShell); @@ -217,8 +217,7 @@ SwPreViewZoomDlg::SwPreViewZoomDlg( SwPagePreViewWin& rParent ) : Beschreibung: --------------------------------------------------------------------*/ - - SwPreViewZoomDlg::~SwPreViewZoomDlg() {} +SwPreViewZoomDlg::~SwPreViewZoomDlg() {} void SwPreViewZoomDlg::Apply() @@ -228,491 +227,6 @@ void SwPreViewZoomDlg::Apply() BYTE(aColEdit.GetValue()) ); } -/* */ -/* -----------------20.08.98 15:25------------------- - * Vorschau fuer den Seitendruck - * --------------------------------------------------*/ -struct PrintSettingsStruct; -class PrtPrvWindow : public Window -{ - const PrintSettingsStruct& rSettings; - - virtual void Paint(const Rectangle&); -public : - PrtPrvWindow(Window* pParent, const ResId& rResId, const PrintSettingsStruct& rSett) : - Window(pParent, rResId), rSettings(rSett){} -}; -/*-------------------------------------------------------------------- - Beschreibung: Optionen fuer das Drucken der Preview - --------------------------------------------------------------------*/ -struct PrintSettingsStruct -{ - Size aPageMaxSize; // groesste Seite - Size aPrtSize; // Papiergroesse - Size aPrvPrtSize; // Groesse innerhalb der LRTB-Raender - Size aGridSize; // Groesse fuer jede Seite, enthaelt je - // die Haelfte von H- und V-Distance - - long nLeft; - long nRight; - long nTop; - long nBottom; - long nHori; - long nVert; - - USHORT nRows; - USHORT nCols; - - BOOL bPrinterLandscape; // Ausrichtung -}; - -class SwPreviewPrintOptionsDialog : public SvxStandardDialog -{ - FixedLine aRowColFL; - FixedText aRowsFT; - NumericField aRowsNF; - FixedText aColsFT; - NumericField aColsNF; - - FixedLine aMarginFL; - FixedText aLSpaceFT; - MetricField aLSpaceMF; - FixedText aRSpaceFT; - MetricField aRSpaceMF; - FixedText aTSpaceFT; - MetricField aTSpaceMF; - FixedText aBSpaceFT; - MetricField aBSpaceMF; - FixedLine aDistanceFL; - FixedText aHSpaceFT; - MetricField aHSpaceMF; - FixedText aVSpaceFT; - MetricField aVSpaceMF; - - RadioButton aLandscapeRB; - RadioButton aPortraitRB; - FixedLine aOrientationFL; - - PrtPrvWindow aPreviewWin; - - OKButton aOkBtn; - CancelButton aCancelBtn; - HelpButton aHelpBtn; - - PushButton aStandardPB; - - SwPagePreView& rPreView; - SwPagePreViewWin& rParentWin; - PrintSettingsStruct aSettings; -/* Size aPageMaxSize; - Size aPrtSize; - - BOOL bOrientation; -*/ - BOOL bStandard; - - virtual void Apply(); - void FillControls(SwPagePreViewPrtData& rData); - - DECL_LINK( ModifyHdl, Edit* ); - DECL_LINK( StandardHdl, PushButton* ); - -public: - SwPreviewPrintOptionsDialog(SwPagePreViewWin& rParent, SwPagePreView& rView); - ~SwPreviewPrintOptionsDialog(); -}; - -/* -----------------19.08.98 13:35------------------- - * - * --------------------------------------------------*/ -SwPreviewPrintOptionsDialog::SwPreviewPrintOptionsDialog( SwPagePreViewWin& rParent, SwPagePreView& rView ) : - SvxStandardDialog( &rParent, SW_RES(DLG_PAGEPREVIEW_PRINTOPTIONS) ), - aRowColFL(this,SW_RES( FL_ROWCOL)), - aRowsFT(this,SW_RES( FT_ROWS)), - aRowsNF(this,SW_RES( NF_ROWS)), - aColsFT(this,SW_RES( FT_COLS)), - aColsNF(this,SW_RES( NF_COLS)), - aMarginFL(this,SW_RES( FL_MARGINS)), - aLSpaceFT(this,SW_RES( FT_LMARGIN)), - aLSpaceMF(this,SW_RES( MF_LMARGIN)), - aRSpaceFT(this,SW_RES( FT_RMARGIN)), - aRSpaceMF(this,SW_RES( MF_RMARGIN)), - aTSpaceFT(this,SW_RES( FT_TMARGIN)), - aTSpaceMF(this,SW_RES( MF_TMARGIN)), - aBSpaceFT(this,SW_RES( FT_BMARGIN)), - aBSpaceMF(this,SW_RES( MF_BMARGIN)), - aDistanceFL(this,SW_RES(FL_DISTANCE)), - aHSpaceFT(this,SW_RES( FT_HMARGIN)), - aHSpaceMF(this,SW_RES( MF_HMARGIN)), - aVSpaceFT(this,SW_RES( FT_VMARGIN)), - aVSpaceMF(this,SW_RES( MF_VMARGIN)), - aLandscapeRB(this,SW_RES( RB_LANDSCAPE)), - aPortraitRB(this,SW_RES( RB_PORTRAIT)), - aOrientationFL(this,SW_RES( FL_ORIENTATION)), - aPreviewWin(this,SW_RES( WIN_PREVIEW), aSettings), - aOkBtn(this,SW_RES(BT_OK)), - aCancelBtn(this,SW_RES(BT_CANCEL)), - aHelpBtn(this,SW_RES(BT_HELP)), - aStandardPB(this,SW_RES(PB_STANDARD)), - rPreView(rView), - rParentWin(rParent), - bStandard(TRUE) -{ - FreeResource(); - ViewShell& rViewSh = *rPreView.GetViewShell(); - // OD 18.12.2002 #103492# - aSettings.aPageMaxSize = rViewSh.PagePreviewLayout()->GetMaxPageSize(); - SfxPrinter* pPrinter = rViewSh.getIDocumentDeviceAccess()->getPrinter( true ); - aSettings.aPrtSize = pPrinter->GetPaperSize(); - //#97682# make sure that no division by zero occurs - if(!aSettings.aPrtSize.Width() || !aSettings.aPrtSize.Height()) - aSettings.aPrtSize = SvxPaperInfo::GetPaperSize(PAPER_A4); - aSettings.bPrinterLandscape = pPrinter->GetOrientation() == ORIENTATION_LANDSCAPE; - - - SwDocShell* pDocShell = rPreView.GetDocShell(); - const SwMasterUsrPref *pUsrPref = SW_MOD()->GetUsrPref(0 != PTR_CAST(SwWebDocShell, pDocShell)); - FieldUnit eFieldUnit = pUsrPref->GetMetric(); - ::SetFieldUnit( aLSpaceMF, eFieldUnit ); - ::SetFieldUnit( aRSpaceMF, eFieldUnit ); - ::SetFieldUnit( aTSpaceMF, eFieldUnit ); - ::SetFieldUnit( aBSpaceMF, eFieldUnit ); - ::SetFieldUnit( aHSpaceMF, eFieldUnit ); - ::SetFieldUnit( aVSpaceMF, eFieldUnit ); - - SwDoc* pDoc = pDocShell->GetDoc(); - SwPagePreViewPrtData aData; - if(pDoc->GetPreViewPrtData()) - { - aData = *pDoc->GetPreViewPrtData(); - bStandard = FALSE; - } - else - { - // Orientation der PreviewData an den Drucker anpassen - aData.SetLandscape(aSettings.bPrinterLandscape); - aData.SetRow(rParent.GetRow()); - aData.SetCol(rParent.GetCol()); - } - FillControls(aData); - - aLSpaceMF.SaveValue(); - aRSpaceMF.SaveValue(); - aTSpaceMF.SaveValue(); - aBSpaceMF.SaveValue(); - aHSpaceMF.SaveValue(); - aVSpaceMF.SaveValue(); - aRowsNF.SaveValue(); - aColsNF.SaveValue(); - aLandscapeRB.SaveValue(); - aPortraitRB.SaveValue(); - - aStandardPB.SetClickHdl(LINK(this, SwPreviewPrintOptionsDialog, StandardHdl)); - Link aLk = LINK(this, SwPreviewPrintOptionsDialog, ModifyHdl); - aLSpaceMF.SetUpHdl(aLk); - aRSpaceMF.SetUpHdl(aLk); - aTSpaceMF.SetUpHdl(aLk); - aBSpaceMF.SetUpHdl(aLk); - aHSpaceMF.SetUpHdl(aLk); - aVSpaceMF.SetUpHdl(aLk); - aRowsNF.SetUpHdl(aLk); - aColsNF.SetUpHdl(aLk); - aLSpaceMF.SetDownHdl(aLk); - aRSpaceMF.SetDownHdl(aLk); - aTSpaceMF.SetDownHdl(aLk); - aBSpaceMF.SetDownHdl(aLk); - aHSpaceMF.SetDownHdl(aLk); - aVSpaceMF.SetDownHdl(aLk); - aRowsNF.SetDownHdl(aLk); - aColsNF.SetDownHdl(aLk); - aLSpaceMF.SetLoseFocusHdl(aLk); - aRSpaceMF.SetLoseFocusHdl(aLk); - aTSpaceMF.SetLoseFocusHdl(aLk); - aBSpaceMF.SetLoseFocusHdl(aLk); - aHSpaceMF.SetLoseFocusHdl(aLk); - aVSpaceMF.SetLoseFocusHdl(aLk); - aRowsNF.SetLoseFocusHdl(aLk); - aColsNF.SetLoseFocusHdl(aLk); - aLandscapeRB.SetClickHdl(aLk); - aPortraitRB.SetClickHdl(aLk); - - ModifyHdl(0); - if(bStandard) - StandardHdl(&aStandardPB); -} - - -/* -----------------19.08.98 13:36------------------- - * - * --------------------------------------------------*/ -SwPreviewPrintOptionsDialog::~SwPreviewPrintOptionsDialog() -{ -} -/* -----------------12.11.98 11:32------------------- - * - * --------------------------------------------------*/ -void SwPreviewPrintOptionsDialog::FillControls(SwPagePreViewPrtData& rData) -{ - aLSpaceMF.SetValue(aLSpaceMF.Normalize(rData.GetLeftSpace() ), FUNIT_TWIP); - aRSpaceMF.SetValue(aRSpaceMF.Normalize(rData.GetRightSpace() ), FUNIT_TWIP); - aTSpaceMF.SetValue(aTSpaceMF.Normalize(rData.GetTopSpace() ), FUNIT_TWIP); - aBSpaceMF.SetValue(aBSpaceMF.Normalize(rData.GetBottomSpace()), FUNIT_TWIP); - aHSpaceMF.SetValue(aHSpaceMF.Normalize(rData.GetHorzSpace() ), FUNIT_TWIP); - aVSpaceMF.SetValue(aVSpaceMF.Normalize(rData.GetVertSpace() ), FUNIT_TWIP); - aRowsNF.SetValue(rData.GetRow()); - aColsNF.SetValue(rData.GetCol()); - aSettings.bPrinterLandscape ? aLandscapeRB.Check() : aPortraitRB.Check(); - // wenn Drucker und Einstellungen nicht uebereinstimmen, dann Seiten tauschen - if( rData.GetLandscape() != aSettings.bPrinterLandscape ) - { - Size aTmp(aSettings.aPrtSize.Height(), aSettings.aPrtSize.Width()); - aSettings.aPrtSize = aTmp; - aSettings.bPrinterLandscape = !aSettings.bPrinterLandscape; - // nochmal setzen, denn auch wenn nur die Default-Orientierung dem Drucker - // angepasst wurde, sollen die Einstellungen gespeichert werden - aSettings.bPrinterLandscape ? aLandscapeRB.Check() : aPortraitRB.Check(); - } - aLandscapeRB.SaveValue(); - aPortraitRB.SaveValue(); - - aSettings.nLeft = rData.GetLeftSpace() ; - aSettings.nRight = rData.GetRightSpace() ; - aSettings.nTop = rData.GetTopSpace() ; - aSettings.nBottom = rData.GetBottomSpace(); - aSettings.nHori = rData.GetHorzSpace() ; - aSettings.nVert = rData.GetVertSpace() ; - aSettings.nRows = rData.GetRow() ; - aSettings.nCols = rData.GetCol() ; - aSettings.aPrvPrtSize = aSettings.aPrtSize ; -} - -/* -----------------19.08.98 14:31------------------- - * - * --------------------------------------------------*/ -void SwPreviewPrintOptionsDialog::Apply() -{ - - SwDoc* pDoc = rPreView.GetDocShell()->GetDoc(); - if(bStandard) - pDoc->SetPreViewPrtData(0); - else if( aLSpaceMF.GetSavedValue() != aLSpaceMF.GetText() || - aRSpaceMF.GetSavedValue() != aRSpaceMF.GetText() || - aTSpaceMF.GetSavedValue() != aTSpaceMF.GetText() || - aBSpaceMF.GetSavedValue() != aBSpaceMF.GetText() || - aHSpaceMF.GetSavedValue() != aHSpaceMF.GetText() || - aVSpaceMF.GetSavedValue() != aVSpaceMF.GetText() || - aRowsNF.GetSavedValue() != aRowsNF.GetText() || - aColsNF.GetSavedValue() != aColsNF.GetText() || - aLandscapeRB.GetSavedValue() != aLandscapeRB.IsChecked() || - aPortraitRB.GetSavedValue() != aPortraitRB.IsChecked() ) - { - SwPagePreViewPrtData aData; - if(pDoc->GetPreViewPrtData()) - aData = *pDoc->GetPreViewPrtData(); - aData.SetLeftSpace( static_cast< ULONG >(aLSpaceMF.Denormalize(aLSpaceMF.GetValue(FUNIT_TWIP))) ); - aData.SetRightSpace( static_cast< ULONG >(aRSpaceMF.Denormalize(aRSpaceMF.GetValue(FUNIT_TWIP))) ); - aData.SetTopSpace( static_cast< ULONG >(aTSpaceMF.Denormalize(aTSpaceMF.GetValue(FUNIT_TWIP))) ); - aData.SetBottomSpace( static_cast< ULONG >(aBSpaceMF.Denormalize(aBSpaceMF.GetValue(FUNIT_TWIP))) ); - - aData.SetHorzSpace( static_cast< ULONG >(aHSpaceMF.Denormalize(aHSpaceMF.GetValue(FUNIT_TWIP))) ); - aData.SetVertSpace( static_cast< ULONG >(aVSpaceMF.Denormalize(aVSpaceMF.GetValue(FUNIT_TWIP))) ); - aData.SetRow((BYTE)aRowsNF.GetValue()); - aData.SetCol((BYTE)aColsNF.GetValue()); - aData.SetLandscape(aLandscapeRB.IsChecked()); - - ViewShell& rViewSh = *rPreView.GetViewShell(); - SfxPrinter* pPrinter = rViewSh.getIDocumentDeviceAccess()->getPrinter( true ); - if((pPrinter->GetOrientation() == ORIENTATION_LANDSCAPE) - != aData.GetLandscape()) - pPrinter->SetOrientation(aData.GetLandscape() ? ORIENTATION_LANDSCAPE : ORIENTATION_PORTRAIT); - - - pDoc->SetPreViewPrtData(&aData); - - } -} -/* -----------------20.08.98 08:48------------------- - * - * --------------------------------------------------*/ -IMPL_LINK( SwPreviewPrintOptionsDialog, ModifyHdl, Edit*, pEdit ) -{ - if(bStandard && pEdit) - { - aLSpaceMF.SetUserValue(aLSpaceMF.GetValue()); - aRSpaceMF.SetUserValue(aRSpaceMF.GetValue()); - aTSpaceMF.SetUserValue(aTSpaceMF.GetValue()); - aBSpaceMF.SetUserValue(aBSpaceMF.GetValue()); - aHSpaceMF.SetUserValue(aHSpaceMF.GetValue()); - aVSpaceMF.SetUserValue(aVSpaceMF.GetValue()); - aRowsNF. SetUserValue(aRowsNF .GetValue()); - aColsNF. SetUserValue(aColsNF .GetValue()); - - bStandard = FALSE; - } - BOOL bOrientChanged = aSettings.bPrinterLandscape != aLandscapeRB.IsChecked();; - if(pEdit == &aLSpaceMF) - aSettings.nLeft = static_cast< long >(aLSpaceMF.Denormalize(aLSpaceMF.GetValue(FUNIT_TWIP))); - else if(pEdit == &aRSpaceMF) - aSettings.nRight = static_cast< long >(aRSpaceMF.Denormalize(aRSpaceMF.GetValue(FUNIT_TWIP))); - else if(pEdit == &aTSpaceMF) - aSettings.nTop = static_cast< long >(aTSpaceMF.Denormalize(aTSpaceMF.GetValue(FUNIT_TWIP))); - else if(pEdit == &aBSpaceMF) - aSettings.nBottom = static_cast< long >(aBSpaceMF.Denormalize(aBSpaceMF.GetValue(FUNIT_TWIP))); - else if(pEdit == &aHSpaceMF) - aSettings.nHori = static_cast< long >(aHSpaceMF.Denormalize(aHSpaceMF.GetValue(FUNIT_TWIP))); - else if(pEdit == &aVSpaceMF) - aSettings.nVert = static_cast< long >(aVSpaceMF.Denormalize(aVSpaceMF.GetValue(FUNIT_TWIP))); - else if(pEdit == &aRowsNF) - aSettings.nRows = (USHORT)aRowsNF.GetValue(); - else if(pEdit == &aColsNF) - aSettings.nCols = (USHORT)aColsNF.GetValue(); - else if(pEdit == (Edit*)&aLandscapeRB) - aSettings.bPrinterLandscape = aLandscapeRB.IsChecked(); - else if(pEdit == (Edit*)&aPortraitRB) - aSettings.bPrinterLandscape = aLandscapeRB.IsChecked(); - - if(bOrientChanged) - { - Size aTmp(aSettings.aPrtSize.Height(), aSettings.aPrtSize.Width()); - aSettings.aPrtSize = aTmp; - } - - - aSettings.aPrvPrtSize = Size(aSettings.aPrtSize.Width() - aSettings.nRight - aSettings.nLeft, - aSettings.aPrtSize.Height() - aSettings.nTop - aSettings.nBottom); - aSettings.aGridSize = Size(aSettings.aPrvPrtSize.Width() / aSettings.nCols, - aSettings.aPrvPrtSize.Height() / aSettings.nRows ); - // was fehlt noch: Orientation auswerten, minimalrand ausrechnen, Beispiel fuettern - - - //am Ende Maximalwerte setzen - long n20Percent = aSettings.aPrtSize.Width() / 5; - aLSpaceMF.SetMax(aLSpaceMF.Normalize(aSettings.aPrtSize.Width() - aSettings.nRight - n20Percent), FUNIT_TWIP); - aRSpaceMF.SetMax(aRSpaceMF.Normalize(aSettings.aPrtSize.Width() - aSettings.nLeft - n20Percent), FUNIT_TWIP); - n20Percent = aSettings.aPrtSize.Height() / 5; - aTSpaceMF.SetMax(aTSpaceMF.Normalize(aSettings.aPrtSize.Height() - aSettings.nBottom - n20Percent), FUNIT_TWIP); - aBSpaceMF.SetMax(aBSpaceMF.Normalize(aSettings.aPrtSize.Height() - aSettings.nTop - n20Percent), FUNIT_TWIP); - - long n80Percent = aSettings.aPrvPrtSize.Width() * 4 / 5; - aHSpaceMF.SetMax(aHSpaceMF.Normalize(n80Percent / aSettings.nRows), FUNIT_TWIP); - n80Percent = aSettings.aPrvPrtSize.Height()* 4 / 5; - aVSpaceMF.SetMax(aVSpaceMF.Normalize(n80Percent / aSettings.nCols), FUNIT_TWIP); - aHSpaceMF.Enable(aSettings.nCols > 1); - aVSpaceMF.Enable(aSettings.nRows > 1); - aRowsNF.SetMin(1);// nur damit auch nach Standard wieder der Inhalt angezeigt wird - aColsNF.SetMin(1); - - - aPreviewWin.Invalidate(); - return 0; -} -/* -----------------28.08.98 14:59------------------- - * - * --------------------------------------------------*/ -IMPL_LINK( SwPreviewPrintOptionsDialog, StandardHdl, PushButton*, EMPTYARG ) -{ - SetUpdateMode(TRUE); - SwPagePreViewPrtData aData; - aData.SetRow(rParentWin.GetRow()); - aData.SetCol(rParentWin.GetCol()); - FillControls(aData); - bStandard = TRUE; - aLSpaceMF.SetText(aEmptyStr); - aRSpaceMF.SetText(aEmptyStr); - aTSpaceMF.SetText(aEmptyStr); - aBSpaceMF.SetText(aEmptyStr); - aHSpaceMF.SetText(aEmptyStr); - aVSpaceMF.SetText(aEmptyStr); - aPreviewWin.Invalidate(); - SetUpdateMode(FALSE); - return 0; -} -/* -----------------20.08.98 15:28------------------- - * Preview anzeigen - * --------------------------------------------------*/ -void PrtPrvWindow::Paint(const Rectangle&) -{ - Size aWinSize(GetOutputSizePixel()); - long nWidth = rSettings.aPrtSize.Width(); - long nHeight = rSettings.aPrtSize.Height(); - BOOL bHoriValid = (aWinSize.Width() * 100 / aWinSize.Height()) < - (rSettings.aPrtSize.Width() * 100/ rSettings.aPrtSize.Height()); - Fraction aXScale( aWinSize.Width(), Max( nWidth , 1L ) ); - Fraction aYScale( aWinSize.Height(), Max( nHeight, 1L ) ); - MapMode aMapMode( GetMapMode() ); - aMapMode.SetScaleX( bHoriValid ? aXScale : aYScale); - aMapMode.SetScaleY( bHoriValid ? aXScale : aYScale); - SetMapMode( aMapMode ); - - aWinSize = GetOutputSize(); - - Point aOffset(0,0); - if(bHoriValid) - aOffset.Y() = (aWinSize.Height() - rSettings.aPrtSize.Height()) / 2; - else - aOffset.X() = (aWinSize.Width() - rSettings.aPrtSize.Width()) / 2;; - - - BOOL bUseSystemColors = SvtAccessibilityOptions().GetIsForPagePreviews() - && GetSettings().GetStyleSettings().GetHighContrastMode(); - - //der weisse Seitenhintergrund - Rectangle aRect(aOffset, rSettings.aPrtSize); - if(bUseSystemColors) - { - SetFillColor( GetSettings().GetStyleSettings().GetWindowColor() ); - SetLineColor( SwViewOption::GetFontColor() ); - } - else - { - SetFillColor( Color( COL_WHITE ) ); - SetLineColor(Color( COL_BLACK ) ); - } - - DrawRect(aRect); - - Point aTL(aOffset); - aTL.X() += rSettings.nLeft; - aTL.Y() += rSettings.nTop; - - Size aPrvPageSize((rSettings.aPrvPrtSize.Width() - (rSettings.nCols - 1) * rSettings.nHori) / rSettings.nCols, - (rSettings.aPrvPrtSize.Height() - (rSettings.nRows - 1) * rSettings.nVert) / rSettings.nRows); - // jetzt muss noch das unterschiedliche Groessenverhaeltnis berechnet werden, um es an - // der richtigen Seite abzuziehen. - //... - long nSourceScale = rSettings.aPageMaxSize.Width() * 100 / rSettings.aPageMaxSize.Height(); - long nDestScale = aPrvPageSize.Width() * 100 / aPrvPageSize.Height() ; - if(nSourceScale > nDestScale) // die Seite ist relativ breiter als das vorhandene Rechteck - { - aPrvPageSize.Height() = aPrvPageSize.Width() * 100 / nSourceScale; - } - else - { - aPrvPageSize.Width() = aPrvPageSize.Height() * nSourceScale / 100; - } - - if(bUseSystemColors) - SetFillColor( GetSettings().GetStyleSettings().GetWindowColor() ); - else - SetFillColor( Color( COL_GRAY ) ); - - - aRect = Rectangle(aTL, aPrvPageSize); - for(USHORT i = 0; i < rSettings.nRows; i++) - { - for(USHORT j = 0; j < rSettings.nCols; j++) - { - DrawRect(aRect); - aRect.Move(aPrvPageSize.Width() + rSettings.nHori, 0); - } - - aRect.Move( 0, aPrvPageSize.Height() + rSettings.nVert); - aRect.SetPos(Point(aTL.X(), aRect.TopLeft().Y())); - } - //rSettings; -} - -/* */ /*-------------------------------------------------------------------- Beschreibung: --------------------------------------------------------------------*/ diff --git a/sw/source/ui/uiview/pview.src b/sw/source/ui/uiview/pview.src index 53f672dbdb60..1a8833e76b34 100644 --- a/sw/source/ui/uiview/pview.src +++ b/sw/source/ui/uiview/pview.src @@ -29,272 +29,7 @@ #include "pview.hrc" #include "helpid.h" #include "cmdid.h" -ModalDialog DLG_PAGEPREVIEW_PRINTOPTIONS -{ - HelpID = HID_DLG_PRV_PRT_OPTIONS ; - OutputSize = TRUE ; - SVLook = TRUE ; - Moveable = TRUE ; - Size = MAP_APPFONT ( 312 , 131 ) ; - FixedLine FL_ROWCOL - { - Pos = MAP_APPFONT ( 6 , 3 ) ; - Size = MAP_APPFONT ( 150 , 8 ) ; - - Text [ en-US ] = "Distribution"; - }; - FixedText FT_ROWS - { - Pos = MAP_APPFONT ( 12 , 15 ) ; - Size = MAP_APPFONT ( 30 , 10 ) ; - Left = TRUE ; - Text [ en-US ] = "Ro~ws"; - }; - NumericField NF_ROWS - { - Border = TRUE ; - Pos = MAP_APPFONT ( 45 , 14 ) ; - Size = MAP_APPFONT ( 36 , 12 ) ; - TabStop = TRUE ; - Left = TRUE ; - Repeat = TRUE ; - Spin = TRUE ; - Minimum = PVIEW_MIN_ROW ; - Maximum = PVIEW_MAX_ROW ; - Value = 1 ; - First = PVIEW_MIN_COL ; - Last = PVIEW_MAX_COL ; - }; - FixedText FT_COLS - { - Pos = MAP_APPFONT ( 84 , 15 ) ; - Size = MAP_APPFONT ( 30 , 10 ) ; - Left = TRUE ; - Text [ en-US ] = "~Columns"; - }; - NumericField NF_COLS - { - Border = TRUE ; - Pos = MAP_APPFONT ( 117 , 14 ) ; - Size = MAP_APPFONT ( 36 , 12 ) ; - TabStop = TRUE ; - Left = TRUE ; - Repeat = TRUE ; - Spin = TRUE ; - Minimum = PVIEW_MIN_COL ; - Maximum = PVIEW_MAX_COL ; - Value = 1 ; - First = PVIEW_MIN_COL ; - Last = PVIEW_MAX_COL ; - }; - FixedLine FL_MARGINS - { - Pos = MAP_APPFONT ( 6 , 32 ) ; - Size = MAP_APPFONT ( 150 , 8 ) ; - Text [ en-US ] = "Margins"; - }; - FixedText FT_LMARGIN - { - Pos = MAP_APPFONT ( 12 , 44 ) ; - Size = MAP_APPFONT ( 30 , 10 ) ; - Left = TRUE ; - Text [ en-US ] = "L~eft"; - }; - MetricField MF_LMARGIN - { - Border = TRUE ; - Pos = MAP_APPFONT ( 45 , 43 ) ; - Size = MAP_APPFONT ( 36 , 12 ) ; - Left = TRUE ; - Repeat = TRUE ; - Spin = TRUE ; - DecimalDigits = 1 ; - Unit = FUNIT_CM ; - SpinSize = 10 ; - Minimum = 0 ; - Maximum = 9999 ; - First = 0 ; - Last = 2000 ; - }; - FixedText FT_RMARGIN - { - Pos = MAP_APPFONT ( 84 , 44 ) ; - Size = MAP_APPFONT ( 30 , 10 ) ; - Left = TRUE ; - Text [ en-US ] = "~Right"; - }; - MetricField MF_RMARGIN - { - Border = TRUE ; - Pos = MAP_APPFONT ( 117 , 43 ) ; - Size = MAP_APPFONT ( 36 , 12 ) ; - Left = TRUE ; - Repeat = TRUE ; - Spin = TRUE ; - DecimalDigits = 1 ; - Unit = FUNIT_CM ; - SpinSize = 10 ; - Minimum = 0 ; - Maximum = 9999 ; - First = 0 ; - Last = 2000 ; - }; - FixedText FT_TMARGIN - { - Pos = MAP_APPFONT ( 12 , 59 ) ; - Size = MAP_APPFONT ( 30 , 10 ) ; - Left = TRUE ; - Text [ en-US ] = "~Top"; - }; - MetricField MF_TMARGIN - { - Border = TRUE ; - Pos = MAP_APPFONT ( 45 , 58 ) ; - Size = MAP_APPFONT ( 36 , 12 ) ; - Left = TRUE ; - Repeat = TRUE ; - Spin = TRUE ; - DecimalDigits = 1 ; - Unit = FUNIT_CM ; - SpinSize = 10 ; - Minimum = 0 ; - Maximum = 9999 ; - First = 0 ; - Last = 2000 ; - }; - FixedText FT_BMARGIN - { - Pos = MAP_APPFONT ( 84 , 59 ) ; - Size = MAP_APPFONT ( 30 , 10 ) ; - Left = TRUE ; - Text [ en-US ] = "~Bottom"; - }; - MetricField MF_BMARGIN - { - Border = TRUE ; - Pos = MAP_APPFONT ( 117 , 58 ) ; - Size = MAP_APPFONT ( 36 , 12 ) ; - Left = TRUE ; - Repeat = TRUE ; - Spin = TRUE ; - DecimalDigits = 1 ; - Unit = FUNIT_CM ; - SpinSize = 10 ; - Minimum = 0 ; - Maximum = 9999 ; - First = 0 ; - Last = 2000 ; - }; - FixedLine FL_DISTANCE - { - Pos = MAP_APPFONT ( 6 , 76 ) ; - Size = MAP_APPFONT ( 150 , 8 ) ; - - Text [ en-US ] = "Spacing"; - }; - FixedText FT_HMARGIN - { - Pos = MAP_APPFONT ( 12 , 88 ) ; - Size = MAP_APPFONT ( 30 , 10 ) ; - Left = TRUE ; - Text [ en-US ] = "Hori~zontal"; - }; - - MetricField MF_HMARGIN - { - Border = TRUE ; - Pos = MAP_APPFONT ( 45 , 87 ) ; - Size = MAP_APPFONT ( 36 , 12 ) ; - Left = TRUE ; - Repeat = TRUE ; - Spin = TRUE ; - DecimalDigits = 1 ; - Unit = FUNIT_CM ; - SpinSize = 10 ; - Minimum = 0 ; - Maximum = 9999 ; - First = 0 ; - Last = 2000 ; - }; - FixedText FT_VMARGIN - { - Pos = MAP_APPFONT ( 84 , 88 ) ; - Size = MAP_APPFONT ( 32 , 10 ) ; - Left = TRUE ; - Text [ en-US ] = "~Vertically"; - }; - - MetricField MF_VMARGIN - { - Border = TRUE ; - Pos = MAP_APPFONT ( 117 , 87 ) ; - Size = MAP_APPFONT ( 36 , 12 ) ; - Left = TRUE ; - Repeat = TRUE ; - Spin = TRUE ; - DecimalDigits = 1 ; - Unit = FUNIT_CM ; - SpinSize = 10 ; - Minimum = 0 ; - Maximum = 9999 ; - First = 0 ; - Last = 2000 ; - }; - FixedLine FL_ORIENTATION - { - Pos = MAP_APPFONT ( 6 , 102 ) ; - Size = MAP_APPFONT ( 150 , 8 ) ; - Text [ en-US ] = "Format"; - }; - RadioButton RB_LANDSCAPE - { - Pos = MAP_APPFONT ( 12 , 113 ) ; - Size = MAP_APPFONT ( 60 , 12 ) ; - TabStop = TRUE ; - Group = TRUE ; - Text [ en-US ] = "~Landscape"; - }; - RadioButton RB_PORTRAIT - { - Pos = MAP_APPFONT ( 84 , 113 ) ; - Size = MAP_APPFONT ( 60 , 12 ) ; - Text [ en-US ] = "P~ortrait"; - }; - Window WIN_PREVIEW - { - Pos = MAP_APPFONT ( 162 , 7 ) ; - Size = MAP_APPFONT ( 90 , 113 ) ; - }; - - OKButton BT_OK - { - Pos = MAP_APPFONT ( 258 , 6 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - DefButton = TRUE ; - }; - CancelButton BT_CANCEL - { - Pos = MAP_APPFONT ( 258 , 23 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - HelpButton BT_HELP - { - Pos = MAP_APPFONT ( 258 , 49 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - PushButton PB_STANDARD - { - Pos = MAP_APPFONT ( 258 , 66 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - Text [ en-US ] = "~Default"; - }; - Text [ en-US ] = "Print Options"; -}; ModalDialog DLG_PAGEPREVIEW_ZOOM { HelpID = HID_PPREV_ZOOM ; @@ -460,31 +195,3 @@ ToolBox RID_PVIEW_TOOLBOX Scroll = TRUE ; }; - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sw/source/ui/uiview/srcview.cxx b/sw/source/ui/uiview/srcview.cxx index 801ecba22c73..667beb8ab4ca 100644 --- a/sw/source/ui/uiview/srcview.cxx +++ b/sw/source/ui/uiview/srcview.cxx @@ -125,7 +125,7 @@ using ::com::sun::star::util::SearchOptions; -SFX_IMPL_VIEWFACTORY(SwSrcView, SW_RES(STR_NONAME)) +SFX_IMPL_NAMED_VIEWFACTORY(SwSrcView, "SourceView") { SFX_VIEW_REGISTRATION(SwWebDocShell); } diff --git a/sw/source/ui/uiview/view.hrc b/sw/source/ui/uiview/view.hrc index 8697a7e4ed63..d2aa60494801 100644 --- a/sw/source/ui/uiview/view.hrc +++ b/sw/source/ui/uiview/view.hrc @@ -77,7 +77,6 @@ #define DLG_SPECIAL_FORCED (RC_VIEW_BEGIN) #define DLG_PAGEPREVIEW_ZOOM (RC_VIEW_BEGIN + 1) -#define DLG_PAGEPREVIEW_PRINTOPTIONS (RC_VIEW_BEGIN + 2) // Ueberlaufpruefung ----------------------------------------------------- diff --git a/sw/source/ui/uiview/view0.cxx b/sw/source/ui/uiview/view0.cxx index 9d905a4c3443..93a29f699f5a 100644 --- a/sw/source/ui/uiview/view0.cxx +++ b/sw/source/ui/uiview/view0.cxx @@ -105,7 +105,7 @@ using ::rtl::OUString; #include <unomid.h> -SFX_IMPL_VIEWFACTORY(SwView, SW_RES(STR_NONAME)) +SFX_IMPL_NAMED_VIEWFACTORY(SwView, "Default") { if ( SvtModuleOptions().IsWriter() ) { diff --git a/sw/source/ui/uno/SwXDocumentSettings.cxx b/sw/source/ui/uno/SwXDocumentSettings.cxx index b0ad816df4a1..a3ef96d1a613 100644 --- a/sw/source/ui/uno/SwXDocumentSettings.cxx +++ b/sw/source/ui/uno/SwXDocumentSettings.cxx @@ -31,7 +31,6 @@ #include <vos/mutex.hxx> #include <sfx2/sfxbasecontroller.hxx> #include <SwXDocumentSettings.hxx> -#include <SwXPrintPreviewSettings.hxx> #include <comphelper/MasterPropertySetInfo.hxx> #include <com/sun/star/beans/PropertyAttribute.hpp> #include <com/sun/star/i18n/XForbiddenCharacters.hpp> @@ -221,7 +220,6 @@ SwXDocumentSettings::SwXDocumentSettings ( SwXTextDocument * pModel ) , mpPrinter( NULL ) { registerSlave ( new SwXPrintSettings ( PRINT_SETTINGS_DOCUMENT, mpModel->GetDocShell()->GetDoc() ) ); - registerSlave ( new SwXPrintPreviewSettings ( mpModel->GetDocShell()->GetDoc() ) ); } SwXDocumentSettings::~SwXDocumentSettings() diff --git a/sw/source/ui/uno/SwXPrintPreviewSettings.cxx b/sw/source/ui/uno/SwXPrintPreviewSettings.cxx deleted file mode 100644 index a812c39754c9..000000000000 --- a/sw/source/ui/uno/SwXPrintPreviewSettings.cxx +++ /dev/null @@ -1,375 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_sw.hxx" -#include <SwXPrintPreviewSettings.hxx> -#include <comphelper/ChainablePropertySetInfo.hxx> -#include <pvprtdat.hxx> -#include <swtypes.hxx> -#ifndef _COM_SUN_STAR_BEANS_PropertyAttribute_HPP_ -#include <com/sun/star/beans/PropertyAttribute.hpp> -#endif -#ifndef _COM_SUN_STAR_BEANS_PropertyAttribute_HPP_ -#include <com/sun/star/beans/PropertyAttribute.hpp> -#endif -#include <doc.hxx> -#include <vcl/svapp.hxx> -using namespace ::com::sun::star; -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::beans; -using namespace ::com::sun::star::lang; -using namespace ::comphelper; -using ::rtl::OUString; - -enum SwPrintSettingsPropertyHandles -{ - HANDLE_PRINTSET_PREVIEW_LEFT_MARGIN, - HANDLE_PRINTSET_PREVIEW_RIGHT_MARGIN, - HANDLE_PRINTSET_PREVIEW_TOP_MARGIN, - HANDLE_PRINTSET_PREVIEW_BOTTOM_MARGIN, - HANDLE_PRINTSET_PREVIEW_HORIZONTAL_SPACING, - HANDLE_PRINTSET_PREVIEW_VERTICAL_SPACING, - HANDLE_PRINTSET_PREVIEW_NUM_ROWS, - HANDLE_PRINTSET_PREVIEW_NUM_COLUMNS, - HANDLE_PRINTSET_PREVIEW_LANDSCAPE -}; - -static ChainablePropertySetInfo * lcl_createPrintPreviewSettingsInfo() -{ - static PropertyInfo aPrintPreviewSettingsMap_Impl[] = - { - { RTL_CONSTASCII_STRINGPARAM ( "PreviewPrintLeftMargin" ), HANDLE_PRINTSET_PREVIEW_LEFT_MARGIN, CPPUTYPE_INT32, PropertyAttribute::MAYBEVOID, 0 }, - { RTL_CONSTASCII_STRINGPARAM ( "PreviewPrintRightMargin" ), HANDLE_PRINTSET_PREVIEW_RIGHT_MARGIN, CPPUTYPE_INT32, PropertyAttribute::MAYBEVOID, 0 }, - { RTL_CONSTASCII_STRINGPARAM ( "PreviewPrintTopMargin" ), HANDLE_PRINTSET_PREVIEW_TOP_MARGIN, CPPUTYPE_INT32, PropertyAttribute::MAYBEVOID, 0 }, - { RTL_CONSTASCII_STRINGPARAM ( "PreviewPrintBottomMargin" ),HANDLE_PRINTSET_PREVIEW_BOTTOM_MARGIN, CPPUTYPE_INT32, PropertyAttribute::MAYBEVOID, 0 }, - { RTL_CONSTASCII_STRINGPARAM ( "PreviewPrintHorizontalSpacing" ),HANDLE_PRINTSET_PREVIEW_HORIZONTAL_SPACING, CPPUTYPE_INT32, PropertyAttribute::MAYBEVOID, 0 }, - { RTL_CONSTASCII_STRINGPARAM ( "PreviewPrintVerticalSpacing" ), HANDLE_PRINTSET_PREVIEW_VERTICAL_SPACING, CPPUTYPE_INT32, PropertyAttribute::MAYBEVOID, 0 }, - { RTL_CONSTASCII_STRINGPARAM ( "PreviewPrintNumRows" ), HANDLE_PRINTSET_PREVIEW_NUM_ROWS, CPPUTYPE_INT8, PropertyAttribute::MAYBEVOID, 0 }, - { RTL_CONSTASCII_STRINGPARAM ( "PreviewPrintNumColumns" ), HANDLE_PRINTSET_PREVIEW_NUM_COLUMNS, CPPUTYPE_INT8, PropertyAttribute::MAYBEVOID, 0 }, - { RTL_CONSTASCII_STRINGPARAM ( "PreviewPrintLandscape" ), HANDLE_PRINTSET_PREVIEW_LANDSCAPE, CPPUTYPE_BOOLEAN, PropertyAttribute::MAYBEVOID, 0 }, - { 0, 0, 0, CPPUTYPE_UNKNOWN, 0, 0 } - }; - return new ChainablePropertySetInfo ( aPrintPreviewSettingsMap_Impl ); -} -SwXPrintPreviewSettings::SwXPrintPreviewSettings( SwDoc *pDoc) -: ChainablePropertySet ( lcl_createPrintPreviewSettingsInfo (), &Application::GetSolarMutex() ) -, mbPreviewDataChanged( sal_False ) -, mpDoc( pDoc) -{ -} -/*-- 17.12.98 12:54:05--------------------------------------------------- - - -----------------------------------------------------------------------*/ -SwXPrintPreviewSettings::~SwXPrintPreviewSettings() - throw() -{ -} - -Any SAL_CALL SwXPrintPreviewSettings::queryInterface( const Type& rType ) - throw(RuntimeException) -{ - return ::cppu::queryInterface ( rType , - // OWeakObject interfaces - dynamic_cast< XInterface* >( dynamic_cast< OWeakObject* >(this) ) , - dynamic_cast< XWeak* >( this ) , - // my own interfaces - dynamic_cast< XServiceInfo* >( this ) , - dynamic_cast< XPropertySet* >( this ) , - dynamic_cast< XMultiPropertySet* >( this ) ); -} -void SwXPrintPreviewSettings::acquire () - throw () -{ - OWeakObject::acquire(); -} -void SwXPrintPreviewSettings::release () - throw () -{ - OWeakObject::release(); -} - -void SwXPrintPreviewSettings::_preSetValues () - throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException ) -{ - if ( mpDoc ) - { - const SwPagePreViewPrtData *pConstPrtData = mpDoc->GetPreViewPrtData(); - mpPreViewData = new SwPagePreViewPrtData; - if ( pConstPrtData ) - { - mpPreViewData->SetLeftSpace ( pConstPrtData->GetLeftSpace() ); - mpPreViewData->SetRightSpace ( pConstPrtData->GetRightSpace() ); - mpPreViewData->SetTopSpace ( pConstPrtData->GetTopSpace() ); - mpPreViewData->SetBottomSpace ( pConstPrtData->GetBottomSpace() ); - mpPreViewData->SetHorzSpace ( pConstPrtData->GetHorzSpace() ); - mpPreViewData->SetVertSpace ( pConstPrtData->GetVertSpace() ); - mpPreViewData->SetRow ( pConstPrtData->GetRow() ); - mpPreViewData->SetCol ( pConstPrtData->GetCol() ); - mpPreViewData->SetLandscape ( pConstPrtData->GetLandscape() ); - } - } -} - -void SwXPrintPreviewSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, const uno::Any &rValue ) - throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException ) -{ - switch( rInfo.mnHandle ) - { - case HANDLE_PRINTSET_PREVIEW_LEFT_MARGIN: - { - sal_Int32 nVal = 0; - rValue >>= nVal; - nVal = MM100_TO_TWIP( nVal ); - if ( nVal != static_cast < sal_Int32 > (mpPreViewData->GetLeftSpace() ) ) - { - mbPreviewDataChanged = sal_True; - mpPreViewData->SetLeftSpace( nVal ); - } - } - break; - case HANDLE_PRINTSET_PREVIEW_RIGHT_MARGIN: - { - sal_Int32 nVal = 0; - rValue >>= nVal; - nVal = MM100_TO_TWIP( nVal ); - if ( nVal != static_cast < sal_Int32 > (mpPreViewData->GetRightSpace() ) ) - { - mbPreviewDataChanged = sal_True; - mpPreViewData->SetRightSpace( nVal ); - } - } - break; - case HANDLE_PRINTSET_PREVIEW_TOP_MARGIN: - { - sal_Int32 nVal = 0; - rValue >>= nVal; - nVal = MM100_TO_TWIP( nVal ); - if ( nVal != static_cast < sal_Int32 > ( mpPreViewData->GetTopSpace() ) ) - { - mbPreviewDataChanged = sal_True; - mpPreViewData->SetTopSpace( nVal ); - } - } - break; - case HANDLE_PRINTSET_PREVIEW_BOTTOM_MARGIN: - { - sal_Int32 nVal = 0; - rValue >>= nVal; - nVal = MM100_TO_TWIP( nVal ); - if ( nVal != static_cast < sal_Int32 > ( mpPreViewData->GetBottomSpace() ) ) - { - mbPreviewDataChanged = sal_True; - mpPreViewData->SetBottomSpace( nVal ); - } - } - break; - case HANDLE_PRINTSET_PREVIEW_HORIZONTAL_SPACING: - { - sal_Int32 nVal = 0; - rValue >>= nVal; - nVal = MM100_TO_TWIP( nVal ); - if ( nVal != static_cast < sal_Int32 > ( mpPreViewData->GetHorzSpace() ) ) - { - mbPreviewDataChanged = sal_True; - mpPreViewData->SetHorzSpace( nVal ); - } - } - break; - case HANDLE_PRINTSET_PREVIEW_VERTICAL_SPACING: - { - sal_Int32 nVal = 0; - rValue >>= nVal; - nVal = MM100_TO_TWIP( nVal ); - if ( nVal != static_cast < sal_Int32 > ( mpPreViewData->GetVertSpace() ) ) - { - mbPreviewDataChanged = sal_True; - mpPreViewData->SetVertSpace( nVal ); - } - } - break; - case HANDLE_PRINTSET_PREVIEW_NUM_ROWS: - { - sal_Int8 nVal = 0; - rValue >>= nVal; - if ( nVal != mpPreViewData->GetRow() ) - { - mbPreviewDataChanged = sal_True; - mpPreViewData->SetRow( nVal ); - } - } - break; - case HANDLE_PRINTSET_PREVIEW_NUM_COLUMNS: - { - sal_Int8 nVal = 0; - rValue >>= nVal; - if ( nVal != mpPreViewData->GetCol() ) - { - mbPreviewDataChanged = sal_True; - mpPreViewData->SetCol( nVal ); - } - } - break; - case HANDLE_PRINTSET_PREVIEW_LANDSCAPE: - { - sal_Bool bVal = *(sal_Bool*)rValue.getValue(); - if ( bVal != mpPreViewData->GetLandscape() ) - { - mbPreviewDataChanged = sal_True; - mpPreViewData->SetLandscape ( bVal ); - } - } - break; - default: - throw UnknownPropertyException(); - } -} -void SwXPrintPreviewSettings::_postSetValues () - throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException ) -{ - if ( mbPreviewDataChanged ) - { - mpDoc->SetPreViewPrtData ( mpPreViewData ); - mbPreviewDataChanged = sal_False; - } - delete mpPreViewData; - mpPreViewData = NULL; -} - -void SwXPrintPreviewSettings::_preGetValues () - throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException ) -{ - if (mpDoc) - mpConstPreViewData = mpDoc->GetPreViewPrtData(); -} -void SwXPrintPreviewSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, uno::Any & rValue ) - throw(UnknownPropertyException, WrappedTargetException ) -{ - sal_Bool bBool = TRUE; - sal_Bool bBoolVal; - switch( rInfo.mnHandle ) - { - case HANDLE_PRINTSET_PREVIEW_LEFT_MARGIN: - { - bBool = FALSE; - if ( mpConstPreViewData ) - rValue <<= static_cast < sal_Int32 > ( TWIP_TO_MM100_UNSIGNED( mpConstPreViewData->GetLeftSpace() ) ); - } - break; - case HANDLE_PRINTSET_PREVIEW_RIGHT_MARGIN: - { - bBool = FALSE; - if ( mpConstPreViewData ) - rValue <<= static_cast < sal_Int32 > ( TWIP_TO_MM100_UNSIGNED( mpConstPreViewData->GetRightSpace() ) ); - } - break; - case HANDLE_PRINTSET_PREVIEW_TOP_MARGIN: - { - bBool = FALSE; - if ( mpConstPreViewData ) - rValue <<= static_cast < sal_Int32 > ( TWIP_TO_MM100_UNSIGNED( mpConstPreViewData->GetTopSpace() ) ); - } - break; - case HANDLE_PRINTSET_PREVIEW_BOTTOM_MARGIN: - { - bBool = FALSE; - if ( mpConstPreViewData ) - rValue <<= static_cast < sal_Int32 > ( TWIP_TO_MM100_UNSIGNED( mpConstPreViewData->GetBottomSpace() ) ); - } - break; - case HANDLE_PRINTSET_PREVIEW_HORIZONTAL_SPACING: - { - bBool = FALSE; - if ( mpConstPreViewData ) - rValue <<= static_cast < sal_Int32 > ( TWIP_TO_MM100_UNSIGNED( mpConstPreViewData->GetHorzSpace() ) ); - } - break; - case HANDLE_PRINTSET_PREVIEW_VERTICAL_SPACING: - { - bBool = FALSE; - if ( mpConstPreViewData ) - rValue <<= static_cast < sal_Int32 > ( TWIP_TO_MM100_UNSIGNED( mpConstPreViewData->GetVertSpace() ) ); - } - break; - case HANDLE_PRINTSET_PREVIEW_NUM_ROWS: - { - bBool = FALSE; - if ( mpConstPreViewData ) - rValue <<= static_cast < sal_Int8 > ( mpConstPreViewData->GetRow() ); - } - break; - case HANDLE_PRINTSET_PREVIEW_NUM_COLUMNS: - { - bBool = FALSE; - if ( mpConstPreViewData ) - rValue <<= static_cast < sal_Int8 > ( mpConstPreViewData->GetCol() ); - } - break; - case HANDLE_PRINTSET_PREVIEW_LANDSCAPE: - { - if (mpConstPreViewData) - bBoolVal = mpConstPreViewData->GetLandscape(); - else - bBool = FALSE; - } - break; - default: - throw UnknownPropertyException(); - } - if(bBool) - rValue.setValue(&bBoolVal, ::getBooleanCppuType()); -} -void SwXPrintPreviewSettings::_postGetValues () - throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException ) -{ - mpConstPreViewData = NULL; -} -/* -----------------------------06.04.00 11:02-------------------------------- - - ---------------------------------------------------------------------------*/ -OUString SwXPrintPreviewSettings::getImplementationName(void) throw( RuntimeException ) -{ - return OUString( RTL_CONSTASCII_USTRINGPARAM ( "SwXPrintPreviewSettings" ) ); -} -/* -----------------------------06.04.00 11:02-------------------------------- - - ---------------------------------------------------------------------------*/ -sal_Bool SwXPrintPreviewSettings::supportsService(const OUString& rServiceName) throw( RuntimeException ) -{ - return rServiceName.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "com.sun.star.text.PrintPreviewSettings") ); -} -/* -----------------------------06.04.00 11:02-------------------------------- - - ---------------------------------------------------------------------------*/ -Sequence< OUString > SwXPrintPreviewSettings::getSupportedServiceNames(void) throw( RuntimeException ) -{ - Sequence< OUString > aRet(1); - OUString* pArray = aRet.getArray(); - pArray[0] = OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.text.PrintPreviewSettings" ) ); - return aRet; -} - diff --git a/sw/source/ui/uno/SwXPrintPreviewSettings.hxx b/sw/source/ui/uno/SwXPrintPreviewSettings.hxx deleted file mode 100644 index 2b908c453043..000000000000 --- a/sw/source/ui/uno/SwXPrintPreviewSettings.hxx +++ /dev/null @@ -1,89 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef _SW_XPRINTPREVIEWSETTINGS_HXX_ -#define _SW_XPRINTPREVIEWSETTINGS_HXX_ - -#ifdef PRECOMPILED -#include "ui_pch.hxx" -#endif -#include <comphelper/ChainablePropertySet.hxx> -#ifndef _COM_SUN_STAR_TEXT_XTEXTDOCUMENT_HPP -#include <com/sun/star/text/XTextDocument.hpp> -#endif -#include <cppuhelper/weak.hxx> -#include <com/sun/star/lang/XServiceInfo.hpp> - -class SwDoc; -class SwPagePreViewPrtData; - -class SwXPrintPreviewSettings :public comphelper::ChainablePropertySet, - public cppu::OWeakObject, - public com::sun::star::lang::XServiceInfo -{ - friend class SwXDocumentSettings; -protected: - sal_Bool mbPreviewDataChanged; - SwDoc* mpDoc; - SwPagePreViewPrtData *mpPreViewData; - const SwPagePreViewPrtData *mpConstPreViewData; - - virtual void _preSetValues () - throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException ); - virtual void _setSingleValue( const comphelper::PropertyInfo & rInfo, const ::com::sun::star::uno::Any &rValue ) - throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException ); - virtual void _postSetValues () - throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException ); - - virtual void _preGetValues () - throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException ); - virtual void _getSingleValue( const comphelper::PropertyInfo & rInfo, ::com::sun::star::uno::Any & rValue ) - throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException ); - virtual void _postGetValues () - throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException ); - virtual ~SwXPrintPreviewSettings() - throw(); -public: - SwXPrintPreviewSettings(SwDoc *pDoc); - - - // XInterface - virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) - throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL acquire( ) - throw (); - virtual void SAL_CALL release( ) - throw (); - - //XServiceInfo - virtual rtl::OUString SAL_CALL getImplementationName(void) - throw( ::com::sun::star::uno::RuntimeException ); - virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName) - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void) - throw( ::com::sun::star::uno::RuntimeException ); -}; -#endif diff --git a/sw/source/ui/uno/detreg.cxx b/sw/source/ui/uno/detreg.cxx index 8c5e5f0634f8..65f4e6379a17 100644 --- a/sw/source/ui/uno/detreg.cxx +++ b/sw/source/ui/uno/detreg.cxx @@ -43,30 +43,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( *ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ; } -SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( - void* /*pServiceManager*/, - void* pRegistryKey ) -{ - Reference< ::registry::XRegistryKey > - xKey( reinterpret_cast< ::registry::XRegistryKey* >( pRegistryKey ) ) ; - - OUString aDelimiter( RTL_CONSTASCII_USTRINGPARAM("/") ); - OUString aUnoServices( RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ); - - // Eigentliche Implementierung und ihre Services registrieren - sal_Int32 i; - Reference< ::registry::XRegistryKey > xNewKey; - - xNewKey = xKey->createKey( aDelimiter + SwFilterDetect::impl_getStaticImplementationName() + - aUnoServices ); - - Sequence< OUString > aServices = SwFilterDetect::impl_getStaticSupportedServiceNames(); - for(i = 0; i < aServices.getLength(); i++ ) - xNewKey->createKey( aServices.getConstArray()[i] ); - - return sal_True; -} - SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( const sal_Char* pImplementationName, void* pServiceManager, diff --git a/sw/source/ui/uno/makefile.mk b/sw/source/ui/uno/makefile.mk index 0023fd52f55c..ac4b6dde697b 100644 --- a/sw/source/ui/uno/makefile.mk +++ b/sw/source/ui/uno/makefile.mk @@ -55,7 +55,6 @@ SLO1FILES = \ $(SLO)$/dlelstnr.obj \ $(SLO)$/unofreg.obj \ $(SLO)$/SwXDocumentSettings.obj \ - $(SLO)$/SwXPrintPreviewSettings.obj \ $(SLO)$/SwXFilterOptions.obj\ $(SLO)$/RefreshListenerContainer.obj \ $(SLO)$/unomodule.obj \ diff --git a/sw/source/ui/uno/unofreg.cxx b/sw/source/ui/uno/unofreg.cxx index a322b0e677f9..a76aaa3cd0e5 100644 --- a/sw/source/ui/uno/unofreg.cxx +++ b/sw/source/ui/uno/unofreg.cxx @@ -154,99 +154,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; } -static void lcl_uno_writeInfo( - registry::XRegistryKey * pRegistryKey, - const OUString& rImplementationName, - const uno::Sequence< OUString >& rServices ) -{ - uno::Reference< registry::XRegistryKey > xNewKey( - pRegistryKey->createKey( - OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) + rImplementationName + OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) ) ); - - for( sal_Int32 i = 0; i < rServices.getLength(); i++ ) - xNewKey->createKey( rServices.getConstArray()[i]); -} - -SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( - void * /*pServiceManager*/, - void * pRegistryKey ) -{ - if( pRegistryKey ) - { - try - { - registry::XRegistryKey *pKey = - reinterpret_cast< registry::XRegistryKey * >( pRegistryKey ); - - - // xml filter - lcl_uno_writeInfo( pKey, SwXMLImport_getImplementationName(), - SwXMLImport_getSupportedServiceNames() ); - lcl_uno_writeInfo( pKey, SwXMLImportStyles_getImplementationName(), - SwXMLImportStyles_getSupportedServiceNames() ); - lcl_uno_writeInfo( pKey,SwXMLImportContent_getImplementationName(), - SwXMLImportContent_getSupportedServiceNames() ); - lcl_uno_writeInfo( pKey, SwXMLImportMeta_getImplementationName(), - SwXMLImportMeta_getSupportedServiceNames() ); - lcl_uno_writeInfo( pKey, SwXMLImportSettings_getImplementationName(), - SwXMLImportSettings_getSupportedServiceNames() ); - lcl_uno_writeInfo( pKey, SwXMLExportOOO_getImplementationName(), - SwXMLExportOOO_getSupportedServiceNames() ); - lcl_uno_writeInfo( pKey, SwXMLExportStylesOOO_getImplementationName(), - SwXMLExportStylesOOO_getSupportedServiceNames() ); - lcl_uno_writeInfo( pKey,SwXMLExportContentOOO_getImplementationName(), - SwXMLExportContentOOO_getSupportedServiceNames() ); - lcl_uno_writeInfo( pKey, SwXMLExportMetaOOO_getImplementationName(), - SwXMLExportMetaOOO_getSupportedServiceNames() ); - lcl_uno_writeInfo( pKey, SwXMLExportSettingsOOO_getImplementationName(), - SwXMLExportSettingsOOO_getSupportedServiceNames() ); - lcl_uno_writeInfo( pKey, SwXMLExport_getImplementationName(), - SwXMLExport_getSupportedServiceNames() ); - lcl_uno_writeInfo( pKey, SwXMLExportStyles_getImplementationName(), - SwXMLExportStyles_getSupportedServiceNames() ); - lcl_uno_writeInfo( pKey,SwXMLExportContent_getImplementationName(), - SwXMLExportContent_getSupportedServiceNames() ); - lcl_uno_writeInfo( pKey, SwXMLExportMeta_getImplementationName(), - SwXMLExportMeta_getSupportedServiceNames() ); - lcl_uno_writeInfo( pKey, SwXMLExportSettings_getImplementationName(), - SwXMLExportSettings_getSupportedServiceNames() ); - //API objects - lcl_uno_writeInfo( pKey, SwXAutoTextContainer_getImplementationName(), - SwXAutoTextContainer_getSupportedServiceNames() ); - lcl_uno_writeInfo( pKey, SwXModule_getImplementationName(), - SwXModule_getSupportedServiceNames() ); - lcl_uno_writeInfo( pKey, SwXMailMerge_getImplementationName(), - SwXMailMerge_getSupportedServiceNames() ); - //Filter options - lcl_uno_writeInfo( pKey, SwXFilterOptions::getImplementationName_Static(), - SwXFilterOptions::getSupportedServiceNames_Static() ); - - // documents - lcl_uno_writeInfo( pKey, SwTextDocument_getImplementationName(), - SwTextDocument_getSupportedServiceNames() ); - lcl_uno_writeInfo( pKey, SwWebDocument_getImplementationName(), - SwWebDocument_getSupportedServiceNames() ); - lcl_uno_writeInfo( pKey,SwGlobalDocument_getImplementationName(), - SwGlobalDocument_getSupportedServiceNames() ); - - // module - lcl_uno_writeInfo( pKey, SwUnoModule_getImplementationName(), - SwUnoModule_getSupportedServiceNames() ); - // --> OD 2007-05-24 #i73788# - lcl_uno_writeInfo( pKey, - comp_FinalThreadManager::_getImplementationName(), - comp_FinalThreadManager::_getSupportedServiceNames() ); - // <-- - - } - catch (registry::InvalidRegistryException &) - { - OSL_ENSURE( sal_False, "### InvalidRegistryException!" ); - } - } - return sal_True; -} - static ::cppu::ImplementationEntry const entries[] = { { &comp_FinalThreadManager::_create, &comp_FinalThreadManager::_getImplementationName, diff --git a/sw/source/ui/uno/unotxdoc.cxx b/sw/source/ui/uno/unotxdoc.cxx index 0579d180a04c..2bacca54776d 100644 --- a/sw/source/ui/uno/unotxdoc.cxx +++ b/sw/source/ui/uno/unotxdoc.cxx @@ -82,6 +82,7 @@ #include <svx/xmleohlp.hxx> #include <globals.hrc> #include <unomid.h> +#include <unotools/printwarningoptions.hxx> #include <com/sun/star/util/SearchOptions.hpp> #include <com/sun/star/lang/ServiceNotRegisteredException.hpp> @@ -107,7 +108,6 @@ #include <swcont.hxx> #include <unodefaults.hxx> #include <SwXDocumentSettings.hxx> -#include <SwXPrintPreviewSettings.hxx> #include <doc.hxx> #include <editeng/forbiddencharacterstable.hxx> #include <svl/zforlist.hxx> @@ -1809,9 +1809,7 @@ Reference< XInterface > SwXTextDocument::createInstance(const OUString& rServic } else if (sCategory == C2U ("text") ) { - if( 0 == rServiceName.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.text.PrintPreviewSettings") ) ) - xRet = Reference < XInterface > ( *new SwXPrintPreviewSettings ( pDocShell->GetDoc() ) ); - else if( 0 == rServiceName.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.text.DocumentSettings") ) ) + if( 0 == rServiceName.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.text.DocumentSettings") ) ) xRet = Reference < XInterface > ( *new SwXDocumentSettings ( this ) ); } else if (sCategory == C2U ("chart2") ) @@ -2732,10 +2730,21 @@ sal_Int32 SAL_CALL SwXTextDocument::getRendererCount( // since printing now also use the API for PDF export this option // should be set for printing as well ... pWrtShell->SetPDFExportOption( sal_True ); + bool bOrigStatus = pRenderDocShell->IsEnableSetModified(); + // check configuration: shall update of printing information in DocInfo set the document to "modified"? + bool bStateChanged = false; + if ( bOrigStatus && !SvtPrintWarningOptions().IsModifyDocumentOnPrintingAllowed() ) + { + pRenderDocShell->EnableSetModified( sal_False ); + bStateChanged = true; + } + // --> FME 2005-05-23 #122919# Force field update before PDF export: pWrtShell->ViewShell::UpdateFlds(TRUE); // <-- + if( bStateChanged ) + pRenderDocShell->EnableSetModified( sal_True ); // there is some redundancy between those two function calls, but right now // there is no time to sort this out. @@ -2844,7 +2853,14 @@ uno::Sequence< beans::PropertyValue > SAL_CALL SwXTextDocument::getRenderer( uno::Sequence< beans::PropertyValue > aRenderer; if (m_pRenderData) { - const USHORT nPage = nRenderer + 1; + // --> TL, OD 2010-09-07 #i114210# + // determine the correct page number from the renderer index + // --> OD 2010-10-01 #i114875 + // consider brochure print + const USHORT nPage = bPrintProspect + ? nRenderer + 1 + : m_pRenderData->GetPagesToPrint()[ nRenderer ]; + // <-- // get paper tray to use ... sal_Int32 nPrinterPaperTray = -1; diff --git a/sw/source/ui/vba/service.cxx b/sw/source/ui/vba/service.cxx index 9f9cbff204dd..d7779fc653be 100644 --- a/sw/source/ui/vba/service.cxx +++ b/sw/source/ui/vba/service.cxx @@ -66,16 +66,6 @@ extern "C" *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; } - sal_Bool SAL_CALL component_writeInfo( - lang::XMultiServiceFactory * pServiceManager, registry::XRegistryKey * pRegistryKey ) - { - OSL_TRACE("In component_writeInfo"); - - // Component registration - return component_writeInfoHelper( pServiceManager, pRegistryKey, - globals::serviceDecl, document::serviceDecl, wrapformat::serviceDecl, vbaeventshelper::serviceDecl ); - } - void * SAL_CALL component_getFactory( const sal_Char * pImplName, lang::XMultiServiceFactory * pServiceManager, registry::XRegistryKey * pRegistryKey ) diff --git a/sw/source/ui/web/wview.cxx b/sw/source/ui/web/wview.cxx index 9a55aaf94a28..1822ab2de4e8 100644 --- a/sw/source/ui/web/wview.cxx +++ b/sw/source/ui/web/wview.cxx @@ -93,7 +93,7 @@ #include <swslots.hxx> -SFX_IMPL_VIEWFACTORY(SwWebView, SW_RES(STR_NONAME)) +SFX_IMPL_NAMED_VIEWFACTORY(SwWebView, "Default") { SFX_VIEW_REGISTRATION(SwWebDocShell); } diff --git a/sw/util/makefile.mk b/sw/util/makefile.mk index ce1419b34065..6fa4bd5432e2 100644 --- a/sw/util/makefile.mk +++ b/sw/util/makefile.mk @@ -374,3 +374,23 @@ SHL5LIBS=$(SLB)$/$(TARGET_VBA).lib .ENDIF # .IF "$(ENABLE_VBA)" == "YES" .INCLUDE : target.mk + +ALLTAR : $(MISC)/sw.component $(MISC)/swd.component $(MISC)/vbaswobj.component + +$(MISC)/sw.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \ + sw.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt sw.component + +$(MISC)/swd.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \ + swd.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL2TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt swd.component + +$(MISC)/vbaswobj.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \ + vbaswobj.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL5TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt vbaswobj.component diff --git a/sw/util/sw.component b/sw/util/sw.component new file mode 100644 index 000000000000..e76cec637d33 --- /dev/null +++ b/sw/util/sw.component @@ -0,0 +1,104 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* Copyright 2000, 2010 Oracle and/or its affiliates. +* +* OpenOffice.org - a multi-platform office productivity suite +* +* This file is part of OpenOffice.org. +* +* OpenOffice.org is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License version 3 +* only, as published by the Free Software Foundation. +* +* OpenOffice.org is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License version 3 for more details +* (a copy is included in the LICENSE file that accompanied this code). +* +* You should have received a copy of the GNU Lesser General Public License +* version 3 along with OpenOffice.org. If not, see +* <http://www.openoffice.org/license.html> +* for a copy of the LGPLv3 License. +* +**********************************************************************--> + +<component loader="com.sun.star.loader.SharedLibrary" + xmlns="http://openoffice.org/2010/uno-components"> + <implementation name="SwXAutoTextContainer"> + <service name="com.sun.star.text.AutoTextContainer"/> + </implementation> + <implementation name="SwXMailMerge"> + <service name="com.sun.star.sdb.DataAccessDescriptor"/> + <service name="com.sun.star.text.MailMerge"/> + </implementation> + <implementation name="SwXModule"> + <service name="com.sun.star.text.GlobalSettings"/> + </implementation> + <implementation name="com.sun.star.comp.Writer.FilterOptionsDialog"> + <service name="com.sun.star.ui.dialogs.FilterOptionsDialog"/> + </implementation> + <implementation name="com.sun.star.comp.Writer.GlobalDocument"> + <service name="com.sun.star.text.GlobalDocument"/> + </implementation> + <implementation name="com.sun.star.comp.Writer.TextDocument"> + <service name="com.sun.star.text.TextDocument"/> + </implementation> + <implementation name="com.sun.star.comp.Writer.WebDocument"> + <service name="com.sun.star.text.WebDocument"/> + </implementation> + <implementation name="com.sun.star.comp.Writer.WriterModule"> + <service name="com.sun.star.text.ModuleDispatcher"/> + </implementation> + <implementation name="com.sun.star.comp.Writer.XMLContentExporter"> + <service name="com.sun.star.comp.Writer.XMLContentExporter"/> + </implementation> + <implementation name="com.sun.star.comp.Writer.XMLExporter"> + <service name="com.sun.star.comp.Writer.XMLExporter"/> + </implementation> + <implementation name="com.sun.star.comp.Writer.XMLMetaExporter"> + <service name="com.sun.star.comp.Writer.XMLMetaExporter"/> + </implementation> + <implementation name="com.sun.star.comp.Writer.XMLOasisContentExporter"> + <service name="com.sun.star.comp.Writer.XMLOasisContentExporter"/> + </implementation> + <implementation name="com.sun.star.comp.Writer.XMLOasisContentImporter"> + <service name="com.sun.star.comp.Writer.XMLOasisContentImporter"/> + </implementation> + <implementation name="com.sun.star.comp.Writer.XMLOasisExporter"> + <service name="com.sun.star.comp.Writer.XMLOasisExporter"/> + </implementation> + <implementation name="com.sun.star.comp.Writer.XMLOasisImporter"> + <service name="com.sun.star.comp.Writer.XMLOasisImporter"/> + </implementation> + <implementation name="com.sun.star.comp.Writer.XMLOasisMetaExporter"> + <service name="com.sun.star.comp.Writer.XMLOasisMetaExporter"/> + </implementation> + <implementation name="com.sun.star.comp.Writer.XMLOasisMetaImporter"> + <service name="com.sun.star.comp.Writer.XMLOasisMetaImporter"/> + </implementation> + <implementation name="com.sun.star.comp.Writer.XMLOasisSettingsExporter"> + <service name="com.sun.star.comp.Writer.XMLOasisSettingsExporter"/> + </implementation> + <implementation name="com.sun.star.comp.Writer.XMLOasisSettingsImporter"> + <service name="com.sun.star.comp.Writer.XMLOasisSettingsImporter"/> + </implementation> + <implementation name="com.sun.star.comp.Writer.XMLOasisStylesExporter"> + <service name="com.sun.star.comp.Writer.XMLOasisStylesExporter"/> + </implementation> + <implementation name="com.sun.star.comp.Writer.XMLOasisStylesImporter"> + <service name="com.sun.star.comp.Writer.XMLOasisStylesImporter"/> + </implementation> + <implementation name="com.sun.star.comp.Writer.XMLSettingsExporter"> + <service name="com.sun.star.comp.Writer.XMLSettingsExporter"/> + </implementation> + <implementation name="com.sun.star.comp.Writer.XMLStylesExporter"> + <service name="com.sun.star.comp.Writer.XMLStylesExporter"/> + </implementation> + <implementation name="com.sun.star.util.comp.FinalThreadManager"> + <service name="com.sun.star.util.JobManager"/> + </implementation> +</component> diff --git a/sw/util/swd.component b/sw/util/swd.component new file mode 100644 index 000000000000..c89c007ec30a --- /dev/null +++ b/sw/util/swd.component @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* Copyright 2000, 2010 Oracle and/or its affiliates. +* +* OpenOffice.org - a multi-platform office productivity suite +* +* This file is part of OpenOffice.org. +* +* OpenOffice.org is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License version 3 +* only, as published by the Free Software Foundation. +* +* OpenOffice.org is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License version 3 for more details +* (a copy is included in the LICENSE file that accompanied this code). +* +* You should have received a copy of the GNU Lesser General Public License +* version 3 along with OpenOffice.org. If not, see +* <http://www.openoffice.org/license.html> +* for a copy of the LGPLv3 License. +* +**********************************************************************--> + +<component loader="com.sun.star.loader.SharedLibrary" + xmlns="http://openoffice.org/2010/uno-components"> + <implementation name="com.sun.star.comp.writer.FormatDetector"> + <service name="com.sun.star.frame.ExtendedTypeDetection"/> + <service name="com.sun.star.text.FormatDetector"/> + <service name="com.sun.star.text.W4WFormatDetector"/> + </implementation> +</component> diff --git a/sw/util/vbaswobj.component b/sw/util/vbaswobj.component new file mode 100644 index 000000000000..e6c6fe4a4149 --- /dev/null +++ b/sw/util/vbaswobj.component @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* Copyright 2000, 2010 Oracle and/or its affiliates. +* +* OpenOffice.org - a multi-platform office productivity suite +* +* This file is part of OpenOffice.org. +* +* OpenOffice.org is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License version 3 +* only, as published by the Free Software Foundation. +* +* OpenOffice.org is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License version 3 for more details +* (a copy is included in the LICENSE file that accompanied this code). +* +* You should have received a copy of the GNU Lesser General Public License +* version 3 along with OpenOffice.org. If not, see +* <http://www.openoffice.org/license.html> +* for a copy of the LGPLv3 License. +* +**********************************************************************--> + +<component loader="com.sun.star.loader.SharedLibrary" + xmlns="http://openoffice.org/2010/uno-components"> + <implementation name="SwVbaDocument"> + <service name="ooo.vba.word.Document"/> + </implementation> + <implementation name="SwVbaEventsHelper"> + <service name="com.sun.star.document.vba.VBATextEventProcessor"/> + </implementation> + <implementation name="SwVbaGlobals"> + <service name="ooo.vba.word.Globals"/> + </implementation> + <implementation name="SwVbaWrapFormat"> + <service name="ooo.vba.word.WrapFormat"/> + </implementation> +</component> |