summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorMathias Bauer <mba@openoffice.org>2010-10-28 23:02:10 +0200
committerMathias Bauer <mba@openoffice.org>2010-10-28 23:02:10 +0200
commit91f418099eccc7e1d15d7fcd9ebaea75cb69a716 (patch)
tree53dcb7e3db56ac4644ae21097c8250ca617bb9bd /sc
parentc939a66ccb5bfe0c84992a6fab09aa7df46e76cd (diff)
parent5cb1bf1e0b4ad3d395c84bb24eb87c1a95954f8d (diff)
CWS gnumake: resync to m91; conflicts unresolved
Diffstat (limited to 'sc')
-rw-r--r--sc/addin/inc/addin.h7
-rw-r--r--sc/inc/ViewSettingsSequenceDefines.hxx2
-rw-r--r--sc/inc/addincol.hxx7
-rw-r--r--sc/inc/address.hxx6
-rw-r--r--sc/inc/callform.hxx6
-rw-r--r--sc/inc/docpool.hxx1
-rw-r--r--sc/inc/document.hxx15
-rw-r--r--sc/inc/dpobject.hxx4
-rw-r--r--sc/inc/dpsave.hxx1
-rw-r--r--sc/inc/funcdesc.hxx4
-rw-r--r--sc/inc/helpids.h692
-rw-r--r--sc/inc/pivot.hxx1
-rw-r--r--sc/inc/sc.hrc380
-rw-r--r--sc/inc/scabstdlg.hxx6
-rw-r--r--sc/inc/sccommands.h336
-rw-r--r--sc/inc/scdll.hxx1
-rw-r--r--sc/inc/scextopt.hxx8
-rw-r--r--sc/inc/scfuncs.hrc290
-rw-r--r--sc/inc/scmatrix.hxx11
-rw-r--r--sc/inc/scmod.hxx1
-rw-r--r--[-rwxr-xr-x]sc/inc/sheetevents.hxx2
-rw-r--r--sc/inc/table.hxx48
-rw-r--r--sc/inc/unoguard.hxx2
-rw-r--r--sc/inc/unonames.hxx1
-rw-r--r--[-rwxr-xr-x]sc/prj/build.lst7
-rw-r--r--sc/prj/d.lst3
-rw-r--r--sc/qa/complex/calcPreview/TestDocument.java39
-rwxr-xr-xsc/qa/complex/calcPreview/ViewForwarder.java501
-rwxr-xr-xsc/qa/complex/calcPreview/makefile.mk140
-rwxr-xr-xsc/qa/complex/cellRanges/CheckXCellRangesQuery.java157
-rwxr-xr-xsc/qa/complex/cellRanges/makefile.mk62
-rw-r--r--sc/qa/complex/dataPilot/CheckDataPilot.java198
-rw-r--r--sc/qa/complex/dataPilot/_XDataPilotDescriptor.java (renamed from sc/qa/complex/dataPilot/interfaceTests/sheet/_XDataPilotDescriptor.java)135
-rw-r--r--sc/qa/complex/dataPilot/_XDataPilotTable.java (renamed from sc/qa/complex/dataPilot/interfaceTests/sheet/_XDataPilotTable.java)26
-rw-r--r--sc/qa/complex/dataPilot/_XNamed.java (renamed from sc/qa/complex/dataPilot/interfaceTests/container/_XNamed.java)46
-rw-r--r--sc/qa/complex/dataPilot/_XPropertySet.java (renamed from sc/qa/complex/dataPilot/interfaceTests/beans/_XPropertySet.java)164
-rw-r--r--sc/qa/complex/dataPilot/interfaceTests/beans/makefile.mk6
-rw-r--r--sc/qa/complex/dataPilot/interfaceTests/container/makefile.mk6
-rw-r--r--sc/qa/complex/dataPilot/interfaceTests/sheet/makefile.mk6
-rw-r--r--sc/qa/complex/dataPilot/makefile.mk45
-rw-r--r--sc/qa/complex/sc/CalcRTL.java238
-rw-r--r--sc/qa/complex/sc/makefile.mk44
-rw-r--r--sc/sdi/tabvwsh.sdi1
-rw-r--r--sc/source/core/data/bcaslot.cxx12
-rw-r--r--sc/source/core/data/docpool.cxx20
-rw-r--r--[-rwxr-xr-x]sc/source/core/data/documen2.cxx10
-rw-r--r--sc/source/core/data/documen3.cxx119
-rw-r--r--sc/source/core/data/documen7.cxx2
-rw-r--r--sc/source/core/data/document.cxx73
-rw-r--r--[-rwxr-xr-x]sc/source/core/data/dpobject.cxx75
-rw-r--r--sc/source/core/data/dpsave.cxx5
-rw-r--r--[-rwxr-xr-x]sc/source/core/data/dptabsrc.cxx6
-rw-r--r--sc/source/core/data/fillinfo.cxx20
-rw-r--r--sc/source/core/data/global.cxx9
-rw-r--r--sc/source/core/data/markdata.cxx62
-rw-r--r--sc/source/core/data/pivot2.cxx1
-rw-r--r--[-rwxr-xr-x]sc/source/core/data/sheetevents.cxx35
-rw-r--r--sc/source/core/data/table1.cxx63
-rw-r--r--sc/source/core/data/table2.cxx121
-rw-r--r--sc/source/core/data/table5.cxx68
-rw-r--r--sc/source/core/inc/addinhelpid.hxx4
-rw-r--r--sc/source/core/tool/addincol.cxx14
-rw-r--r--sc/source/core/tool/addinhelpid.cxx10
-rw-r--r--sc/source/core/tool/chartpos.cxx23
-rw-r--r--sc/source/core/tool/compiler.cxx37
-rw-r--r--sc/source/core/tool/interpr1.cxx116
-rw-r--r--sc/source/core/tool/interpr2.cxx8
-rwxr-xr-x[-rw-r--r--]sc/source/core/tool/interpr4.cxx13
-rw-r--r--sc/source/core/tool/interpr5.cxx19
-rw-r--r--sc/source/core/tool/scmatrix.cxx5
-rw-r--r--sc/source/filter/excel/excdoc.cxx8
-rw-r--r--sc/source/filter/excel/excimp8.cxx29
-rw-r--r--sc/source/filter/excel/impop.cxx2
-rw-r--r--sc/source/filter/excel/xeescher.cxx2
-rw-r--r--sc/source/filter/excel/xiescher.cxx6
-rw-r--r--sc/source/filter/excel/xiname.cxx6
-rw-r--r--sc/source/filter/excel/xiroot.cxx2
-rw-r--r--sc/source/filter/excel/xlescher.cxx2
-rw-r--r--sc/source/filter/inc/excdoc.hxx6
-rw-r--r--sc/source/filter/inc/excimp8.hxx1
-rw-r--r--sc/source/filter/lotus/lotimpop.cxx2
-rw-r--r--sc/source/filter/lotus/op.cxx2
-rw-r--r--sc/source/filter/xml/XMLExportDataPilot.cxx10
-rw-r--r--sc/source/filter/xml/XMLStylesExportHelper.cxx27
-rw-r--r--sc/source/filter/xml/XMLStylesExportHelper.hxx1
-rw-r--r--sc/source/filter/xml/xmlcelli.cxx32
-rw-r--r--sc/source/filter/xml/xmlexprt.cxx9
-rw-r--r--sc/source/filter/xml/xmlstyle.cxx18
-rw-r--r--sc/source/filter/xml/xmlstyle.hxx2
-rw-r--r--sc/source/filter/xml/xmlstyli.cxx19
-rwxr-xr-x[-rw-r--r--]sc/source/ui/app/inputwin.cxx6
-rw-r--r--sc/source/ui/app/scdll.cxx54
-rw-r--r--sc/source/ui/app/scmod.cxx62
-rw-r--r--sc/source/ui/attrdlg/scdlgfact.cxx12
-rw-r--r--sc/source/ui/attrdlg/scdlgfact.hxx6
-rw-r--r--sc/source/ui/cctrl/dpcontrol.cxx72
-rw-r--r--sc/source/ui/dbgui/asciiopt.src17
-rw-r--r--sc/source/ui/dbgui/consdlg.src16
-rw-r--r--sc/source/ui/dbgui/dapitype.src11
-rw-r--r--sc/source/ui/dbgui/dpgroupdlg.src16
-rw-r--r--sc/source/ui/dbgui/imoptdlg.src6
-rw-r--r--sc/source/ui/dbgui/pivot.src16
-rw-r--r--sc/source/ui/dbgui/pvfundlg.cxx5
-rw-r--r--sc/source/ui/dbgui/pvfundlg.src23
-rw-r--r--sc/source/ui/dbgui/pvlaydlg.cxx57
-rw-r--r--sc/source/ui/dbgui/scendlg.src11
-rw-r--r--sc/source/ui/dbgui/scuiasciiopt.cxx5
-rw-r--r--sc/source/ui/dbgui/textimportoptions.src35
-rw-r--r--sc/source/ui/dbgui/validate.src20
-rw-r--r--sc/source/ui/docshell/docfunc.cxx9
-rw-r--r--[-rwxr-xr-x]sc/source/ui/docshell/docsh.cxx181
-rw-r--r--[-rwxr-xr-x]sc/source/ui/docshell/docsh4.cxx6
-rw-r--r--sc/source/ui/docshell/externalrefmgr.cxx12
-rw-r--r--sc/source/ui/drawfunc/drformsh.src18
-rw-r--r--sc/source/ui/drawfunc/drtxtob.cxx9
-rw-r--r--sc/source/ui/drawfunc/fuins2.cxx6
-rw-r--r--sc/source/ui/drawfunc/futext2.cxx4
-rw-r--r--sc/source/ui/drawfunc/objdraw.src896
-rw-r--r--sc/source/ui/formdlg/dwfunctr.src4
-rw-r--r--[-rwxr-xr-x]sc/source/ui/inc/docsh.hxx1
-rw-r--r--sc/source/ui/inc/dpcontrol.hxx8
-rw-r--r--sc/source/ui/inc/miscdlgs.hrc1
-rw-r--r--sc/source/ui/inc/pvlaydlg.hxx1
-rw-r--r--sc/source/ui/inc/shtabdlg.hxx2
-rw-r--r--sc/source/ui/inc/strindlg.hxx2
-rw-r--r--sc/source/ui/inc/tabbgcolordlg.hxx9
-rw-r--r--sc/source/ui/inc/tabvwsh.hxx1
-rw-r--r--sc/source/ui/inc/viewdata.hxx18
-rw-r--r--sc/source/ui/miscdlgs/acredlin.src4
-rw-r--r--sc/source/ui/miscdlgs/anyrefdg.cxx2
-rw-r--r--sc/source/ui/miscdlgs/conflictsdlg.src4
-rw-r--r--sc/source/ui/miscdlgs/highred.src7
-rw-r--r--sc/source/ui/miscdlgs/instbdlg.src10
-rw-r--r--sc/source/ui/miscdlgs/linkarea.src6
-rw-r--r--sc/source/ui/miscdlgs/protectiondlg.src4
-rw-r--r--sc/source/ui/miscdlgs/retypepassdlg.src12
-rw-r--r--sc/source/ui/miscdlgs/scuiautofmt.cxx4
-rw-r--r--sc/source/ui/miscdlgs/sharedocdlg.src3
-rw-r--r--sc/source/ui/miscdlgs/shtabdlg.cxx6
-rw-r--r--sc/source/ui/miscdlgs/strindlg.cxx24
-rw-r--r--sc/source/ui/miscdlgs/tabbgcolordlg.cxx27
-rw-r--r--sc/source/ui/pagedlg/hfedtdlg.src49
-rw-r--r--sc/source/ui/pagedlg/pagedlg.src26
-rw-r--r--sc/source/ui/src/attrdlg.src4
-rw-r--r--sc/source/ui/src/autofmt.src12
-rw-r--r--sc/source/ui/src/condfrmt.src27
-rw-r--r--sc/source/ui/src/crnrdlg.src9
-rw-r--r--sc/source/ui/src/dbnamdlg.src12
-rw-r--r--sc/source/ui/src/filter.src58
-rw-r--r--sc/source/ui/src/hdrcont.src40
-rw-r--r--sc/source/ui/src/miscdlgs.src113
-rw-r--r--sc/source/ui/src/namedlg.src12
-rw-r--r--sc/source/ui/src/opredlin.src6
-rw-r--r--sc/source/ui/src/optdlg.src63
-rw-r--r--sc/source/ui/src/optsolver.src37
-rw-r--r--sc/source/ui/src/popup.src106
-rw-r--r--sc/source/ui/src/scfuncs.src3
-rw-r--r--sc/source/ui/src/simpref.src2
-rw-r--r--sc/source/ui/src/solveroptions.src4
-rw-r--r--sc/source/ui/src/solvrdlg.src7
-rw-r--r--sc/source/ui/src/sortdlg.src24
-rw-r--r--sc/source/ui/src/subtdlg.src8
-rw-r--r--sc/source/ui/src/tabopdlg.src8
-rw-r--r--sc/source/ui/src/toolbox.src130
-rw-r--r--sc/source/ui/undo/undoblk.cxx2
-rw-r--r--sc/source/ui/undo/undostyl.cxx4
-rw-r--r--sc/source/ui/undo/undotab.cxx12
-rw-r--r--sc/source/ui/unoobj/appluno.cxx120
-rw-r--r--sc/source/ui/unoobj/confuno.cxx13
-rw-r--r--sc/source/ui/unoobj/detreg.cxx21
-rw-r--r--sc/source/ui/unoobj/docuno.cxx59
-rw-r--r--sc/source/ui/unoobj/servuno.cxx66
-rw-r--r--sc/source/ui/unoobj/styleuno.cxx8
-rw-r--r--sc/source/ui/unoobj/viewuno.cxx141
-rw-r--r--sc/source/ui/vba/excelvbahelper.cxx50
-rw-r--r--sc/source/ui/vba/excelvbahelper.hxx8
-rw-r--r--sc/source/ui/vba/makefile.mk92
-rw-r--r--sc/source/ui/vba/service.cxx43
-rw-r--r--sc/source/ui/vba/vbaapplication.cxx687
-rw-r--r--sc/source/ui/vba/vbaapplication.hxx7
-rw-r--r--sc/source/ui/vba/vbachartobjects.cxx5
-rw-r--r--sc/source/ui/vba/vbacomments.cxx6
-rwxr-xr-xsc/source/ui/vba/vbaeventshelper.cxx753
-rwxr-xr-xsc/source/ui/vba/vbaeventshelper.hxx88
-rw-r--r--sc/source/ui/vba/vbaformatconditions.cxx6
-rw-r--r--sc/source/ui/vba/vbaglobals.cxx29
-rw-r--r--sc/source/ui/vba/vbaglobals.hxx3
-rw-r--r--sc/source/ui/vba/vbaname.cxx4
-rw-r--r--sc/source/ui/vba/vbanames.cxx7
-rw-r--r--sc/source/ui/vba/vbapivottables.cxx4
-rwxr-xr-x[-rw-r--r--]sc/source/ui/vba/vbarange.cxx170
-rw-r--r--sc/source/ui/vba/vbarange.hxx1
-rw-r--r--sc/source/ui/vba/vbaworkbook.cxx19
-rw-r--r--sc/source/ui/vba/vbaworkbooks.cxx101
-rw-r--r--sc/source/ui/vba/vbaworksheet.cxx66
-rw-r--r--sc/source/ui/vba/vbaworksheet.hxx7
-rw-r--r--sc/source/ui/vba/vbaworksheets.cxx51
-rw-r--r--sc/source/ui/view/formatsh.cxx4
-rw-r--r--sc/source/ui/view/gridwin.cxx76
-rw-r--r--sc/source/ui/view/gridwin2.cxx32
-rw-r--r--sc/source/ui/view/gridwin4.cxx46
-rw-r--r--sc/source/ui/view/output.cxx14
-rw-r--r--sc/source/ui/view/output2.cxx56
-rw-r--r--sc/source/ui/view/prevwsh.cxx4
-rw-r--r--sc/source/ui/view/prevwsh2.cxx4
-rw-r--r--sc/source/ui/view/scextopt.cxx21
-rw-r--r--sc/source/ui/view/tabview3.cxx1
-rw-r--r--sc/source/ui/view/tabvwsh.cxx4
-rw-r--r--sc/source/ui/view/tabvwsh3.cxx14
-rw-r--r--sc/source/ui/view/tabvwsh4.cxx8
-rw-r--r--sc/source/ui/view/tabvwshb.cxx9
-rw-r--r--sc/source/ui/view/tabvwshf.cxx16
-rw-r--r--sc/source/ui/view/viewdata.cxx161
-rw-r--r--sc/source/ui/view/viewfun2.cxx2
-rw-r--r--sc/source/ui/view/viewfun3.cxx4
-rw-r--r--sc/uiconfig/scalc/menubar/menubar.xml1
-rw-r--r--sc/uiconfig/scalc/toolbar/findbar.xml8
-rw-r--r--sc/util/hidother.src34
-rw-r--r--sc/util/makefile.mk20
-rw-r--r--sc/util/sc.component97
-rw-r--r--sc/util/scd.component34
-rw-r--r--sc/util/vbaobj.component58
222 files changed, 6249 insertions, 4435 deletions
diff --git a/sc/addin/inc/addin.h b/sc/addin/inc/addin.h
index 419d0e3a59db..82b84b402294 100644
--- a/sc/addin/inc/addin.h
+++ b/sc/addin/inc/addin.h
@@ -67,18 +67,11 @@ typedef enum
NONE
} ParamType;
-#ifndef WIN
#ifdef WNT
#define CALLTYPE __cdecl
#else
#define CALLTYPE
#endif
-#else
-#define PASCAL _pascal
-#define FAR _far
-#define CALLTYPE FAR PASCAL
-#endif
-
#ifdef __cplusplus
diff --git a/sc/inc/ViewSettingsSequenceDefines.hxx b/sc/inc/ViewSettingsSequenceDefines.hxx
index f23229d31a43..07c3d2b375e0 100644
--- a/sc/inc/ViewSettingsSequenceDefines.hxx
+++ b/sc/inc/ViewSettingsSequenceDefines.hxx
@@ -103,6 +103,6 @@
#define SC_PAGEVIEWZOOMVALUE "PageViewZoomValue"
#define SC_SHOWPAGEBREAKPREVIEW "ShowPageBreakPreview"
#define SC_VIEWID "ViewId"
-#define SC_VIEW "View"
+#define SC_VIEW "view"
#endif
diff --git a/sc/inc/addincol.hxx b/sc/inc/addincol.hxx
index fbc1444cc6de..f8c47ab24446 100644
--- a/sc/inc/addincol.hxx
+++ b/sc/inc/addincol.hxx
@@ -40,6 +40,7 @@
#include <i18npool/lang.h>
#include <rtl/ustring.h>
#include "scdllapi.h"
+#include <rtl/ustring.hxx>
#ifndef SC_SCMATRIX_HXX
#include "scmatrix.hxx"
@@ -99,14 +100,14 @@ private:
ScAddInArgDesc* pArgDescs;
long nCallerPos;
USHORT nCategory;
- USHORT nHelpId;
+ rtl::OString sHelpId;
mutable com::sun::star::uno::Sequence< com::sun::star::sheet::LocalizedName> aCompNames;
mutable BOOL bCompInitialized;
public:
ScUnoAddInFuncData( const String& rNam, const String& rLoc,
const String& rDesc,
- USHORT nCat, USHORT nHelp,
+ USHORT nCat, const rtl::OString&,
const com::sun::star::uno::Reference<
com::sun::star::reflection::XIdlMethod>& rFunc,
const com::sun::star::uno::Any& rO,
@@ -126,7 +127,7 @@ public:
long GetCallerPos() const { return nCallerPos; }
const String& GetDescription() const { return aDescription; }
USHORT GetCategory() const { return nCategory; }
- USHORT GetHelpId() const { return nHelpId; }
+ const rtl::OString GetHelpId() const { return sHelpId; }
const com::sun::star::uno::Sequence< com::sun::star::sheet::LocalizedName>& GetCompNames() const;
BOOL GetExcelName( LanguageType eDestLang, String& rRetExcelName ) const;
diff --git a/sc/inc/address.hxx b/sc/inc/address.hxx
index c5d49632292e..64dd9e3e7ea6 100644
--- a/sc/inc/address.hxx
+++ b/sc/inc/address.hxx
@@ -133,12 +133,6 @@ const SCROW SCROWS64K = 65536;
// === old stuff defines =====================================================
-#ifdef WIN
-// Under 16bit Windows rows still had to be limited to 8192.
-// (define manually for testing)
-#define SC_LIMIT_ROWS
-#endif
-
#define MAXROW_30 8191
#define MAXROW_40 31999
diff --git a/sc/inc/callform.hxx b/sc/inc/callform.hxx
index 58962ea18c03..1e78f0a951be 100644
--- a/sc/inc/callform.hxx
+++ b/sc/inc/callform.hxx
@@ -35,17 +35,11 @@
#define MAXARRSIZE 0xfffe
//------------------------------------------------------------------------
-#ifndef WIN
#ifndef WNT
#define CALLTYPE
#else
#define CALLTYPE __cdecl
#endif
-#else
-#define PASCAL _pascal
-#define FAR _far
-#define CALLTYPE FAR PASCAL
-#endif
extern "C" {
typedef void (CALLTYPE* AdvData)( double& nHandle, void* pData );
diff --git a/sc/inc/docpool.hxx b/sc/inc/docpool.hxx
index d366ef1ec25a..59bd70592725 100644
--- a/sc/inc/docpool.hxx
+++ b/sc/inc/docpool.hxx
@@ -65,6 +65,7 @@ public:
static void CheckRef( const SfxPoolItem& );
void StyleDeleted( ScStyleSheet* pStyle ); // Loeschen von Vorlagen im Organizer
+ void CellStyleCreated( const String& rName );
virtual SfxItemPresentation GetPresentation(
const SfxPoolItem& rItem,
SfxItemPresentation ePresentation,
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index f7ae5e63f165..5c4685223281 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -161,6 +161,9 @@ namespace com { namespace sun { namespace star {
namespace embed {
class XEmbeddedObject;
}
+ namespace script { namespace vba {
+ class XVBAEventProcessor;
+ } }
namespace sheet {
struct TablePageBreakData;
}
@@ -334,6 +337,9 @@ private:
Timer aTrackTimer;
+ com::sun::star::uno::Reference< com::sun::star::script::vba::XVBAEventProcessor >
+ mxVbaEvents;
+
public:
ScTabOpList aTableOpList; // list of ScInterpreterTableOpParams currently in use
ScInterpreterTableOpParams aLastTableOpParams; // remember last params
@@ -739,7 +745,8 @@ public:
const ScSheetEvents* GetSheetEvents( SCTAB nTab ) const;
void SetSheetEvents( SCTAB nTab, const ScSheetEvents* pNew );
- bool HasSheetEventScript( sal_Int32 nEvent ) const; // on any sheet
+ bool HasSheetEventScript( SCTAB nTab, sal_Int32 nEvent, bool bWithVbaEvents = false ) const;
+ bool HasAnySheetEventScript( sal_Int32 nEvent, bool bWithVbaEvents = false ) const; // on any sheet
BOOL HasCalcNotification( SCTAB nTab ) const;
void SetCalcNotification( SCTAB nTab );
@@ -1276,6 +1283,7 @@ public:
SC_DLLPUBLIC USHORT GetColWidth( SCCOL nCol, SCTAB nTab ) const;
SC_DLLPUBLIC USHORT GetRowHeight( SCROW nRow, SCTAB nTab, bool bHiddenAsZero = true ) const;
+ SC_DLLPUBLIC USHORT GetRowHeight( SCROW nRow, SCTAB nTab, SCROW* pStartRow, SCROW* pEndRow, bool bHiddenAsZero = true ) const;
SC_DLLPUBLIC ULONG GetRowHeight( SCROW nStartRow, SCROW nEndRow, SCTAB nTab ) const;
SCROW GetRowForHeight( SCTAB nTab, ULONG nHeight ) const;
ULONG GetScaledRowHeight( SCROW nStartRow, SCROW nEndRow, SCTAB nTab, double fScale ) const;
@@ -1783,6 +1791,11 @@ public:
void GetSortParam( ScSortParam& rParam, SCTAB nTab );
void SetSortParam( ScSortParam& rParam, SCTAB nTab );
+ inline void SetVbaEventProcessor( const com::sun::star::uno::Reference< com::sun::star::script::vba::XVBAEventProcessor >& rxVbaEvents )
+ { mxVbaEvents = rxVbaEvents; }
+ inline com::sun::star::uno::Reference< com::sun::star::script::vba::XVBAEventProcessor >
+ GetVbaEventProcessor() const { return mxVbaEvents; }
+
/** Should only be GRAM_PODF or GRAM_ODFF. */
void SetStorageGrammar( formula::FormulaGrammar::Grammar eGrammar );
formula::FormulaGrammar::Grammar GetStorageGrammar() const
diff --git a/sc/inc/dpobject.hxx b/sc/inc/dpobject.hxx
index 44aa1daa9a92..e1b88919dad6 100644
--- a/sc/inc/dpobject.hxx
+++ b/sc/inc/dpobject.hxx
@@ -186,7 +186,7 @@ public:
bool IsDataDescriptionCell(const ScAddress& rPos);
bool IsDimNameInUse(const ::rtl::OUString& rName) const;
- String GetDimName( long nDim, BOOL& rIsDataLayout );
+ String GetDimName( long nDim, BOOL& rIsDataLayout, sal_Int32* pFlags = NULL );
BOOL IsDuplicated( long nDim );
long GetDimCount();
void GetHeaderPositionData(const ScAddress& rPos, ::com::sun::star::sheet::DataPilotTableHeaderData& rData);
@@ -259,6 +259,8 @@ public:
PivotField* pRefColFields = NULL, SCSIZE nRefColCount = 0,
PivotField* pRefRowFields = NULL, SCSIZE nRefRowCount = 0,
PivotField* pRefPageFields = NULL, SCSIZE nRefPageCount = 0 );
+
+ static bool IsOrientationAllowed( USHORT nOrient, sal_Int32 nDimFlags );
};
diff --git a/sc/inc/dpsave.hxx b/sc/inc/dpsave.hxx
index bfff0b97a168..8272b850b27e 100644
--- a/sc/inc/dpsave.hxx
+++ b/sc/inc/dpsave.hxx
@@ -140,6 +140,7 @@ public:
void SetSubTotals(long nCount, const USHORT* pFuncs);
long GetSubTotalsCount() const { return nSubTotalCount; }
USHORT GetSubTotalFunc(long nIndex) const { return pSubTotalFuncs[nIndex]; }
+ bool HasShowEmpty() const;
void SetShowEmpty(BOOL bSet);
BOOL GetShowEmpty() const { return BOOL(nShowEmptyMode); }
void SetFunction(USHORT nNew); // enum GeneralFunction
diff --git a/sc/inc/funcdesc.hxx b/sc/inc/funcdesc.hxx
index a8f495440554..a46b8f52a638 100644
--- a/sc/inc/funcdesc.hxx
+++ b/sc/inc/funcdesc.hxx
@@ -57,7 +57,7 @@ public:
virtual void fillVisibleArgumentMapping(::std::vector<USHORT>& _rArguments) const ;
virtual void initArgumentInfo() const;
virtual ::rtl::OUString getSignature() const ;
- virtual long getHelpId() const ;
+ virtual rtl::OString getHelpId() const ;
// parameter
virtual sal_uInt32 getParameterCount() const ;
@@ -100,7 +100,7 @@ public:
USHORT nFIndex; // Unique function index
USHORT nCategory; // Function category
USHORT nArgCount; // All parameter count, suppressed and unsuppressed
- USHORT nHelpId; // HelpID of function
+ rtl::OString sHelpId; // HelpID of function
bool bIncomplete :1; // Incomplete argument info (set for add-in info from configuration)
bool bHasSuppressedArgs :1; // Whether there is any suppressed parameter.
};
diff --git a/sc/inc/helpids.h b/sc/inc/helpids.h
new file mode 100644
index 000000000000..f1803639cba2
--- /dev/null
+++ b/sc/inc/helpids.h
@@ -0,0 +1,692 @@
+/*************************************************************************
+ *
+ * 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/sfxcommands.h"
+#include "svx/svxcommands.h"
+#include "sccommands.h"
+
+#define HID_INSWIN_POS "SC_HID_INSWIN_POS"
+#define HID_INSWIN_CALC "SC_HID_INSWIN_CALC"
+#define HID_INSWIN_CANCEL "SC_HID_INSWIN_CANCEL"
+#define HID_INSWIN_OK "SC_HID_INSWIN_OK"
+#define HID_INSWIN_SUMME "SC_HID_INSWIN_SUMME"
+#define HID_INSWIN_FUNC "SC_HID_INSWIN_FUNC"
+#define HID_INSWIN_INPUT "SC_HID_INSWIN_INPUT"
+
+// Hilfe IDs fuer Dokumentfenster --------------------------------------------
+#define HID_SC_WIN_GRIDWIN "SC_HID_SC_WIN_GRIDWIN"
+#define HID_SC_WIN_PREVIEW "SC_HID_SC_WIN_PREVIEW"
+
+// Hilfe IDs fuer einzelne Controls (max.30) ---------------------------------
+// Kopf/Fusszeilen Editfenster: Header/Footer links/rechts links/mitte/rechts
+#define HID_SC_HF_HLL "SC_HID_SC_HF_HLL"
+#define HID_SC_HF_HLC "SC_HID_SC_HF_HLC"
+#define HID_SC_HF_HLR "SC_HID_SC_HF_HLR"
+#define HID_SC_HF_HRL "SC_HID_SC_HF_HRL"
+#define HID_SC_HF_HRC "SC_HID_SC_HF_HRC"
+#define HID_SC_HF_HRR "SC_HID_SC_HF_HRR"
+#define HID_SC_HF_FLL "SC_HID_SC_HF_FLL"
+#define HID_SC_HF_FLC "SC_HID_SC_HF_FLC"
+#define HID_SC_HF_FLR "SC_HID_SC_HF_FLR"
+#define HID_SC_HF_FRL "SC_HID_SC_HF_FRL"
+#define HID_SC_HF_FRC "SC_HID_SC_HF_FRC"
+#define HID_SC_HF_FRR "SC_HID_SC_HF_FRR"
+// "Spalten" in Teilergebnissen: Gruppe 1/2/3 - nicht mehr!
+#define HID_SC_SUBT_COLS_1 "SC_HID_SC_SUBT_COLS_1"
+#define HID_SC_SUBT_COLS_2 "SC_HID_SC_SUBT_COLS_2"
+#define HID_SC_SUBT_COLS_3 "SC_HID_SC_SUBT_COLS_3"
+// Eintraege im Navigator
+#define HID_SC_NAVIPI_ENTRIES "SC_HID_SC_NAVIPI_ENTRIES"
+#define HID_SC_NAVIPI_ROW "SC_HID_SC_NAVIPI_ROW"
+#define HID_SC_NAVIPI_COL "SC_HID_SC_NAVIPI_COL"
+#define HID_SC_NAVIPI_DOC "SC_HID_SC_NAVIPI_DOC"
+#define HID_SC_NAVIPI_DATA "SC_HID_SC_NAVIPI_DATA"
+#define HID_SC_NAVIPI_UP "SC_HID_SC_NAVIPI_UP"
+#define HID_SC_NAVIPI_DOWN "SC_HID_SC_NAVIPI_DOWN"
+#define HID_SC_NAVIPI_ZOOM "SC_HID_SC_NAVIPI_ZOOM"
+#define HID_SC_NAVIPI_ROOT "SC_HID_SC_NAVIPI_ROOT"
+#define HID_SC_NAVIPI_SCEN "SC_HID_SC_NAVIPI_SCEN"
+#define HID_SC_NAVIPI_DROP "SC_HID_SC_NAVIPI_DROP"
+// Teilergebnisse
+#define HID_SC_SUBT_GROUP "SC_HID_SC_SUBT_GROUP"
+#define HID_SC_SUBT_COLS "SC_HID_SC_SUBT_COLS"
+#define HID_SC_SUBT_FUNC "SC_HID_SC_SUBT_FUNC"
+//
+#define HID_SC_NAVIPI_TOOLBOX "SC_HID_SC_NAVIPI_TOOLBOX"
+// Bereich ist voll!
+
+// Hilfe IDs fuer Dialoge / Pages (max.70) -----------------------------------
+#define HID_SC_AUTOFORMAT "SC_HID_SC_AUTOFORMAT"
+#define HID_SC_PIVOTFILTER "SC_HID_SC_PIVOTFILTER"
+#define HID_SC_INPORTOPT "SC_HID_SC_INPORTOPT"
+#define HID_SC_PIVOTSUBT "SC_HID_SC_PIVOTSUBT"
+#define HID_SC_FORM_ARGS "SC_HID_SC_FORM_ARGS"
+#define HID_SCPAGE_SORT_FIELDS "SC_HID_SCPAGE_SORT_FIELDS"
+#define HID_SCPAGE_SORT_OPTIONS "SC_HID_SCPAGE_SORT_OPTIONS"
+#define HID_SCPAGE_SUBT_OPTIONS "SC_HID_SCPAGE_SUBT_OPTIONS"
+#define HID_SCPAGE_SUBT_GROUP "SC_HID_SCPAGE_SUBT_GROUP"
+#define HID_SCPAGE_PROTECTION "SC_HID_SCPAGE_PROTECTION"
+#define HID_SCPAGE_VIEW "SC_HID_SCPAGE_VIEW"
+#define HID_SCPAGE_CALC "SC_HID_SCPAGE_CALC"
+#define HID_SCPAGE_USERLISTS "SC_HID_SCPAGE_USERLISTS"
+#define HID_SCPAGE_HFEDIT "SC_HID_SCPAGE_HFEDIT"
+#define HID_SCPAGE_AREAS "SC_HID_SCPAGE_AREAS"
+#define HID_SCPAGE_TABLE "SC_HID_SCPAGE_TABLE"
+#define HID_SCPAGE_PRINT "SC_HID_SCPAGE_PRINT"
+
+#define HID_SCPAGE_SUBT_GROUP1 "SC_HID_SCPAGE_SUBT_GROUP1"
+#define HID_SCPAGE_SUBT_GROUP2 "SC_HID_SCPAGE_SUBT_GROUP2"
+#define HID_SCPAGE_SUBT_GROUP3 "SC_HID_SCPAGE_SUBT_GROUP3"
+
+#define HID_SCPAGE_HFED_HL "SC_HID_SCPAGE_HFED_HL"
+#define HID_SCPAGE_HFED_HR "SC_HID_SCPAGE_HFED_HR"
+#define HID_SCPAGE_HFED_FL "SC_HID_SCPAGE_HFED_FL"
+#define HID_SCPAGE_HFED_FR "SC_HID_SCPAGE_HFED_FR"
+
+#define HID_SCPAGE_CONTENT "SC_HID_SCPAGE_CONTENT"
+#define HID_SCPAGE_LAYOUT "SC_HID_SCPAGE_LAYOUT"
+#define HID_SCPAGE_INPUT "SC_HID_SCPAGE_INPUT"
+
+#define HID_SC_NAVIGATOR "SC_HID_SC_NAVIGATOR"
+
+#define HID_SC_MTRIN_VAL "SC_HID_SC_MTRIN_VAL"
+#define HID_SC_MTRIN_DEF "SC_HID_SC_MTRIN_DEF"
+#define HID_SC_SELENTRY_LIST "SC_HID_SC_SELENTRY_LIST"
+#define HID_SC_GROUP_COLS "SC_HID_SC_GROUP_COLS"
+#define HID_SC_GROUP_ROWS "SC_HID_SC_GROUP_ROWS"
+
+#define HID_SC_HF_TEXT "SC_HID_SC_HF_TEXT"
+#define HID_SC_HF_FILE "SC_HID_SC_HF_FILE"
+#define HID_SC_HF_TABLE "SC_HID_SC_HF_TABLE"
+#define HID_SC_HF_PAGE "SC_HID_SC_HF_PAGE"
+#define HID_SC_HF_PAGES "SC_HID_SC_HF_PAGES"
+#define HID_SC_HF_DATE "SC_HID_SC_HF_DATE"
+#define HID_SC_HF_TIME "SC_HID_SC_HF_TIME"
+
+#define HID_SC_HEADER_EDIT "SC_HID_SC_HEADER_EDIT"
+#define HID_SC_FOOTER_EDIT "SC_HID_SC_FOOTER_EDIT"
+
+#define HID_SC_SCENWIN_TOP "SC_HID_SC_SCENWIN_TOP"
+#define HID_SC_SCENWIN_BOTTOM "SC_HID_SC_SCENWIN_BOTTOM"
+
+#define HID_SC_INPUTWIN "SC_HID_SC_INPUTWIN"
+
+#define HID_SC_RENAME_NAME "SC_HID_SC_RENAME_NAME"
+#define HID_SC_APPEND_NAME "SC_HID_SC_APPEND_NAME"
+
+// Funktionsautopilot: nur als Unique-IDs
+#define HID_SC_FAP_PAGE "SC_HID_SC_FAP_PAGE"
+#define HID_SC_FAP_EDIT1 "SC_HID_SC_FAP_EDIT1"
+#define HID_SC_FAP_EDIT2 "SC_HID_SC_FAP_EDIT2"
+#define HID_SC_FAP_EDIT3 "SC_HID_SC_FAP_EDIT3"
+#define HID_SC_FAP_EDIT4 "SC_HID_SC_FAP_EDIT4"
+
+#define HID_SC_ADD_AUTOFMT "SC_HID_SC_ADD_AUTOFMT"
+#define HID_SC_AUTOFMT_NAME "SC_HID_SC_AUTOFMT_NAME"
+
+#define HID_SC_DROPMODE_URL "SC_HID_SC_DROPMODE_URL"
+#define HID_SC_DROPMODE_LINK "SC_HID_SC_DROPMODE_LINK"
+#define HID_SC_DROPMODE_COPY "SC_HID_SC_DROPMODE_COPY"
+
+#define HID_SC_FAP_STRUCT "SC_HID_SC_FAP_STRUCT"
+#define HID_SC_ASCII_TABCTR "SC_HID_SC_ASCII_TABCTR"
+
+#define HID_SC_SCENARIO_DELETE "SC_HID_SC_SCENARIO_DELETE"
+#define HID_SC_SCENARIO_EDIT "SC_HID_SC_SCENARIO_EDIT"
+
+#define HID_SCDLG_FORMULA "SC_HID_SCDLG_FORMULA"
+#define HID_SCDLG_CONDFORMAT "SC_HID_SCDLG_CONDFORMAT"
+#define HID_COLROWNAMERANGES "SC_HID_COLROWNAMERANGES"
+
+#define HID_FUNCTION_BOX "SC_HID_FUNCTION_BOX"
+#define HID_SCPAGE_OPREDLINE "SC_HID_SCPAGE_OPREDLINE"
+#define HID_SC_REDLIN_CTR "SC_HID_SC_REDLIN_CTR"
+
+//Kopf/FusszeilenDlg: Contextmenue fuer Dateiname
+#define HID_FCOMMAND_TITEL "SC_HID_FCOMMAND_TITEL"
+#define HID_FCOMMAND_FILENAME "SC_HID_FCOMMAND_FILENAME"
+#define HID_FCOMMAND_PATH "SC_HID_FCOMMAND_PATH"
+
+
+// Hilfe IDs fuer Objekt- und Werkzeugleisten (max.10) -----------------------
+
+#define HID_SC_TOOLBOX_TOOLS "SC_HID_SC_TOOLBOX_TOOLS"
+#define HID_SC_TOOLBOX_TABLE "SC_HID_SC_TOOLBOX_TABLE"
+#define HID_SC_TOOLBOX_DRAW "SC_HID_SC_TOOLBOX_DRAW"
+#define HID_SC_TOOLBOX_DRTEXT "SC_HID_SC_TOOLBOX_DRTEXT"
+#define HID_SC_TOOLBOX_PREVIEW "SC_HID_SC_TOOLBOX_PREVIEW"
+
+// wrong group - HID_SC_DLG_START is full
+#define HID_SC_RENAME_AUTOFMT "SC_HID_SC_RENAME_AUTOFMT"
+#define HID_SC_REN_AFMT_NAME "SC_HID_SC_REN_AFMT_NAME"
+
+#define HID_SC_TOOLBOX_GRAPHIC "SC_HID_SC_TOOLBOX_GRAPHIC"
+
+#define HID_CHG_PROTECT "SC_HID_CHG_PROTECT"
+
+#define HID_SC_RENAME_OBJECT "SC_HID_SC_RENAME_OBJECT"
+
+#define HID_SC_REN_AFMT_DLG "SC_HID_SC_REN_AFMT_DLG"
+
+// Hilfe IDs fuer Submenus (max.50) ------------------------------------------
+#define HID_SCMENU_EDIT "SC_HID_SCMENU_EDIT"
+#define HID_SCMENU_FILL "SC_HID_SCMENU_FILL"
+#define HID_SCMENU_DELBREAK "SC_HID_SCMENU_DELBREAK"
+#define HID_SCMENU_VIEW "SC_HID_SCMENU_VIEW"
+#define HID_SCMENU_TOOLBARS "SC_HID_SCMENU_TOOLBARS"
+#define HID_SCMENU_INSERT "SC_HID_SCMENU_INSERT"
+#define HID_SCMENU_INSBREAK "SC_HID_SCMENU_INSBREAK"
+#define HID_SCMENU_NAME "SC_HID_SCMENU_NAME"
+#define HID_SCMENU_GRAPHIC "SC_HID_SCMENU_GRAPHIC"
+#define HID_SCMENU_DATA "SC_HID_SCMENU_DATA"
+#define HID_SCMENU_FILTER "SC_HID_SCMENU_FILTER"
+#define HID_SCMENU_OUTLINE "SC_HID_SCMENU_OUTLINE"
+#define HID_SCMENU_PIVOT "SC_HID_SCMENU_PIVOT"
+#define HID_SCMENU_EXTRA "SC_HID_SCMENU_EXTRA"
+#define HID_SCMENU_SPELLING "SC_HID_SCMENU_SPELLING"
+#define HID_SCMENU_AUDIT "SC_HID_SCMENU_AUDIT"
+#define HID_SCMENU_PROTECT "SC_HID_SCMENU_PROTECT"
+#define HID_SCMENU_CELLCONT "SC_HID_SCMENU_CELLCONT"
+#define HID_SCMENU_ROW "SC_HID_SCMENU_ROW"
+#define HID_SCMENU_COL "SC_HID_SCMENU_COL"
+#define HID_SCMENU_TAB "SC_HID_SCMENU_TAB"
+#define HID_SCMENU_MERGE "SC_HID_SCMENU_MERGE"
+#define HID_SCMENU_AREA "SC_HID_SCMENU_AREA"
+#define HID_SCMENU_OBJMIRROR "SC_HID_SCMENU_OBJMIRROR"
+#define HID_SCMENU_OBJARRANGE "SC_HID_SCMENU_OBJARRANGE"
+#define HID_SCMENU_ANCHOR "SC_HID_SCMENU_ANCHOR"
+#define HID_SCMENU_SENDTO "SC_HID_SCMENU_SENDTO"
+#define HID_SCMENU_CHANGES "SC_HID_SCMENU_CHANGES"
+
+#define HID_SC_FAP_BTN_FX1 "SC_HID_SC_FAP_BTN_FX1"
+#define HID_SC_FAP_BTN_FX2 "SC_HID_SC_FAP_BTN_FX2"
+#define HID_SC_FAP_BTN_FX3 "SC_HID_SC_FAP_BTN_FX3"
+#define HID_SC_FAP_BTN_FX4 "SC_HID_SC_FAP_BTN_FX4"
+#define HID_SC_FAP_BTN_REF1 "SC_HID_SC_FAP_BTN_REF1"
+#define HID_SC_FAP_BTN_REF2 "SC_HID_SC_FAP_BTN_REF2"
+#define HID_SC_FAP_BTN_REF3 "SC_HID_SC_FAP_BTN_REF3"
+#define HID_SC_FAP_BTN_REF4 "SC_HID_SC_FAP_BTN_REF4"
+#define HID_SC_FAP_FORMULA "SC_HID_SC_FAP_FORMULA"
+
+#define HID_SC_SORT_ACTION "SC_HID_SC_SORT_ACTION"
+#define HID_SC_SORT_AUTHOR "SC_HID_SC_SORT_AUTHOR"
+#define HID_SC_SORT_DATE "SC_HID_SC_SORT_DATE"
+#define HID_SC_SORT_COMMENT "SC_HID_SC_SORT_COMMENT"
+#define HID_SORT_POSITION "SC_HID_SORT_POSITION"
+#define HID_SC_CHANGES_COMMENT "SC_HID_SC_CHANGES_COMMENT"
+#define HID_SC_FUNCTIONLIST "SC_HID_SC_FUNCTIONLIST"
+#define HID_SCPAGE_OPTLOAD "SC_HID_SCPAGE_OPTLOAD"
+#define HID_PASSWD_TABLE "SC_HID_PASSWD_TABLE"
+#define HID_PASSWD_DOC "SC_HID_PASSWD_DOC"
+
+#define HID_DATAPILOT_TYPE "SC_HID_DATAPILOT_TYPE"
+#define HID_DATAPILOT_DATABASE "SC_HID_DATAPILOT_DATABASE"
+#define HID_DATAPILOT_SERVICE "SC_HID_DATAPILOT_SERVICE"
+
+// Other help IDs (max.70) ---------------------------------------------------
+#define HID_SCDLG_LINKAREAURL "SC_HID_SCDLG_LINKAREAURL"
+#define HID_SCMENU_EDIT_TABLE "SC_HID_SCMENU_EDIT_TABLE"
+
+#define HID_SELECTTABLES "SC_HID_SELECTTABLES"
+#define HID_SC_REPLCELLSWARN "SC_HID_SC_REPLCELLSWARN"
+
+// data pilot layout dialog
+#define HID_SC_DPLAY_PAGE "SC_HID_SC_DPLAY_PAGE"
+#define HID_SC_DPLAY_COLUMN "SC_HID_SC_DPLAY_COLUMN"
+#define HID_SC_DPLAY_ROW "SC_HID_SC_DPLAY_ROW"
+#define HID_SC_DPLAY_DATA "SC_HID_SC_DPLAY_DATA"
+#define HID_SC_DPLAY_SELECT "SC_HID_SC_DPLAY_SELECT"
+
+#define HID_SC_DRAW_RENAME "SC_HID_SC_DRAW_RENAME"
+
+#define HID_SC_DPDATAFIELD "SC_HID_SC_DPDATAFIELD"
+#define HID_SC_DPSUBT_OPT "SC_HID_SC_DPSUBT_OPT"
+#define HID_SC_DPSUBT_HIDE "SC_HID_SC_DPSUBT_HIDE"
+#define HID_SC_DPNUMGROUP "SC_HID_SC_DPNUMGROUP"
+#define HID_SC_DPDATEGROUP "SC_HID_SC_DPDATEGROUP"
+#define HID_SC_DPDATEGROUP_LB "SC_HID_SC_DPDATEGROUP_LB"
+#define HID_SC_DPSHOWDETAIL "SC_HID_SC_DPSHOWDETAIL"
+
+// #i68101#
+#define HID_SC_TITLE_DESCRIPTION_OBJECT "SC_HID_SC_TITLE_DESCRIPTION_OBJECT"
+
+#define HID_SC_SOLVEROPTIONS "SC_HID_SC_SOLVEROPTIONS"
+#define HID_SC_SOLVEROPTIONS_LB "SC_HID_SC_SOLVEROPTIONS_LB"
+#define HID_SC_SOLVER_INTEGER "SC_HID_SC_SOLVER_INTEGER"
+#define HID_SC_SOLVER_DOUBLE "SC_HID_SC_SOLVER_DOUBLE"
+#define HID_SC_SOLVER_PROGRESS "SC_HID_SC_SOLVER_PROGRESS"
+#define HID_SC_SOLVER_NOSOLUTION "SC_HID_SC_SOLVER_NOSOLUTION"
+#define HID_SC_SOLVER_SUCCESS "SC_HID_SC_SOLVER_SUCCESS"
+
+#define HID_SCDLG_CONFLICTS "SC_HID_SCDLG_CONFLICTS"
+
+#define HID_SC_HF_HL_DEFINED "SC_HID_SC_HF_HL_DEFINED"
+#define HID_SC_HF_HR_DEFINED "SC_HID_SC_HF_HR_DEFINED"
+#define HID_SC_HF_FL_DEFINED "SC_HID_SC_HF_FL_DEFINED"
+#define HID_SC_HF_FR_DEFINED "SC_HID_SC_HF_FR_DEFINED"
+
+// Analysis Addin Functions (max.120) ----------------------------------------
+#define HID_AAI_FUNC_WORKDAY "SC_HID_AAI_FUNC_WORKDAY"
+#define HID_AAI_FUNC_YEARFRAC "SC_HID_AAI_FUNC_YEARFRAC"
+#define HID_AAI_FUNC_EDATE "SC_HID_AAI_FUNC_EDATE"
+#define HID_AAI_FUNC_WEEKNUM "SC_HID_AAI_FUNC_WEEKNUM"
+#define HID_AAI_FUNC_EOMONTH "SC_HID_AAI_FUNC_EOMONTH"
+#define HID_AAI_FUNC_NETWORKDAYS "SC_HID_AAI_FUNC_NETWORKDAYS"
+#define HID_AAI_FUNC_AMORDEGRC "SC_HID_AAI_FUNC_AMORDEGRC"
+#define HID_AAI_FUNC_AMORLINC "SC_HID_AAI_FUNC_AMORLINC"
+#define HID_AAI_FUNC_ACCRINT "SC_HID_AAI_FUNC_ACCRINT"
+#define HID_AAI_FUNC_ACCRINTM "SC_HID_AAI_FUNC_ACCRINTM"
+#define HID_AAI_FUNC_RECEIVED "SC_HID_AAI_FUNC_RECEIVED"
+#define HID_AAI_FUNC_DISC "SC_HID_AAI_FUNC_DISC"
+#define HID_AAI_FUNC_DURATION "SC_HID_AAI_FUNC_DURATION"
+#define HID_AAI_FUNC_EFFECT "SC_HID_AAI_FUNC_EFFECT"
+#define HID_AAI_FUNC_CUMPRINC "SC_HID_AAI_FUNC_CUMPRINC"
+#define HID_AAI_FUNC_CUMIPMT "SC_HID_AAI_FUNC_CUMIPMT"
+#define HID_AAI_FUNC_PRICE "SC_HID_AAI_FUNC_PRICE"
+#define HID_AAI_FUNC_PRICEDISC "SC_HID_AAI_FUNC_PRICEDISC"
+#define HID_AAI_FUNC_PRICEMAT "SC_HID_AAI_FUNC_PRICEMAT"
+#define HID_AAI_FUNC_MDURATION "SC_HID_AAI_FUNC_MDURATION"
+#define HID_AAI_FUNC_NOMINAL "SC_HID_AAI_FUNC_NOMINAL"
+#define HID_AAI_FUNC_DOLLARFR "SC_HID_AAI_FUNC_DOLLARFR"
+#define HID_AAI_FUNC_DOLLARDE "SC_HID_AAI_FUNC_DOLLARDE"
+#define HID_AAI_FUNC_YIELD "SC_HID_AAI_FUNC_YIELD"
+#define HID_AAI_FUNC_YIELDDISC "SC_HID_AAI_FUNC_YIELDDISC"
+#define HID_AAI_FUNC_YIELDMAT "SC_HID_AAI_FUNC_YIELDMAT"
+#define HID_AAI_FUNC_TBILLEQ "SC_HID_AAI_FUNC_TBILLEQ"
+#define HID_AAI_FUNC_TBILLPRICE "SC_HID_AAI_FUNC_TBILLPRICE"
+#define HID_AAI_FUNC_TBILLYIELD "SC_HID_AAI_FUNC_TBILLYIELD"
+#define HID_AAI_FUNC_ODDFPRICE "SC_HID_AAI_FUNC_ODDFPRICE"
+#define HID_AAI_FUNC_ODDFYIELD "SC_HID_AAI_FUNC_ODDFYIELD"
+#define HID_AAI_FUNC_ODDLPRICE "SC_HID_AAI_FUNC_ODDLPRICE"
+#define HID_AAI_FUNC_ODDLYIELD "SC_HID_AAI_FUNC_ODDLYIELD"
+#define HID_AAI_FUNC_XIRR "SC_HID_AAI_FUNC_XIRR"
+#define HID_AAI_FUNC_XNPV "SC_HID_AAI_FUNC_XNPV"
+#define HID_AAI_FUNC_INTRATE "SC_HID_AAI_FUNC_INTRATE"
+#define HID_AAI_FUNC_COUPNCD "SC_HID_AAI_FUNC_COUPNCD"
+#define HID_AAI_FUNC_COUPDAYS "SC_HID_AAI_FUNC_COUPDAYS"
+#define HID_AAI_FUNC_COUPDAYSNC "SC_HID_AAI_FUNC_COUPDAYSNC"
+#define HID_AAI_FUNC_COUPDAYBS "SC_HID_AAI_FUNC_COUPDAYBS"
+#define HID_AAI_FUNC_COUPPCD "SC_HID_AAI_FUNC_COUPPCD"
+#define HID_AAI_FUNC_COUPNUM "SC_HID_AAI_FUNC_COUPNUM"
+#define HID_AAI_FUNC_FVSCHEDULE "SC_HID_AAI_FUNC_FVSCHEDULE"
+#define HID_AAI_FUNC_ISEVEN "SC_HID_AAI_FUNC_ISEVEN"
+#define HID_AAI_FUNC_ISODD "SC_HID_AAI_FUNC_ISODD"
+#define HID_AAI_FUNC_GCD "SC_HID_AAI_FUNC_GCD"
+#define HID_AAI_FUNC_LCM "SC_HID_AAI_FUNC_LCM"
+#define HID_AAI_FUNC_MULTINOMIAL "SC_HID_AAI_FUNC_MULTINOMIAL"
+#define HID_AAI_FUNC_SERIESSUM "SC_HID_AAI_FUNC_SERIESSUM"
+#define HID_AAI_FUNC_QUOTIENT "SC_HID_AAI_FUNC_QUOTIENT"
+#define HID_AAI_FUNC_MROUND "SC_HID_AAI_FUNC_MROUND"
+#define HID_AAI_FUNC_SQRTPI "SC_HID_AAI_FUNC_SQRTPI"
+#define HID_AAI_FUNC_RANDBETWEEN "SC_HID_AAI_FUNC_RANDBETWEEN"
+#define HID_AAI_FUNC_BESSELI "SC_HID_AAI_FUNC_BESSELI"
+#define HID_AAI_FUNC_BESSELJ "SC_HID_AAI_FUNC_BESSELJ"
+#define HID_AAI_FUNC_BESSELK "SC_HID_AAI_FUNC_BESSELK"
+#define HID_AAI_FUNC_BESSELY "SC_HID_AAI_FUNC_BESSELY"
+#define HID_AAI_FUNC_BIN2DEC "SC_HID_AAI_FUNC_BIN2DEC"
+#define HID_AAI_FUNC_BIN2HEX "SC_HID_AAI_FUNC_BIN2HEX"
+#define HID_AAI_FUNC_BIN2OCT "SC_HID_AAI_FUNC_BIN2OCT"
+#define HID_AAI_FUNC_DELTA "SC_HID_AAI_FUNC_DELTA"
+#define HID_AAI_FUNC_DEC2BIN "SC_HID_AAI_FUNC_DEC2BIN"
+#define HID_AAI_FUNC_DEC2HEX "SC_HID_AAI_FUNC_DEC2HEX"
+#define HID_AAI_FUNC_DEC2OCT "SC_HID_AAI_FUNC_DEC2OCT"
+#define HID_AAI_FUNC_ERF "SC_HID_AAI_FUNC_ERF"
+#define HID_AAI_FUNC_ERFC "SC_HID_AAI_FUNC_ERFC"
+#define HID_AAI_FUNC_GESTEP "SC_HID_AAI_FUNC_GESTEP"
+#define HID_AAI_FUNC_HEX2BIN "SC_HID_AAI_FUNC_HEX2BIN"
+#define HID_AAI_FUNC_HEX2DEC "SC_HID_AAI_FUNC_HEX2DEC"
+#define HID_AAI_FUNC_HEX2OCT "SC_HID_AAI_FUNC_HEX2OCT"
+#define HID_AAI_FUNC_IMABS "SC_HID_AAI_FUNC_IMABS"
+#define HID_AAI_FUNC_IMAGINARY "SC_HID_AAI_FUNC_IMAGINARY"
+#define HID_AAI_FUNC_IMPOWER "SC_HID_AAI_FUNC_IMPOWER"
+#define HID_AAI_FUNC_IMARGUMENT "SC_HID_AAI_FUNC_IMARGUMENT"
+#define HID_AAI_FUNC_IMCOS "SC_HID_AAI_FUNC_IMCOS"
+#define HID_AAI_FUNC_IMDIV "SC_HID_AAI_FUNC_IMDIV"
+#define HID_AAI_FUNC_IMEXP "SC_HID_AAI_FUNC_IMEXP"
+#define HID_AAI_FUNC_IMCONJUGATE "SC_HID_AAI_FUNC_IMCONJUGATE"
+#define HID_AAI_FUNC_IMLN "SC_HID_AAI_FUNC_IMLN"
+#define HID_AAI_FUNC_IMLOG10 "SC_HID_AAI_FUNC_IMLOG10"
+#define HID_AAI_FUNC_IMLOG2 "SC_HID_AAI_FUNC_IMLOG2"
+#define HID_AAI_FUNC_IMPRODUCT "SC_HID_AAI_FUNC_IMPRODUCT"
+#define HID_AAI_FUNC_IMREAL "SC_HID_AAI_FUNC_IMREAL"
+#define HID_AAI_FUNC_IMSIN "SC_HID_AAI_FUNC_IMSIN"
+#define HID_AAI_FUNC_IMSUB "SC_HID_AAI_FUNC_IMSUB"
+#define HID_AAI_FUNC_IMSUM "SC_HID_AAI_FUNC_IMSUM"
+#define HID_AAI_FUNC_IMSQRT "SC_HID_AAI_FUNC_IMSQRT"
+#define HID_AAI_FUNC_COMPLEX "SC_HID_AAI_FUNC_COMPLEX"
+#define HID_AAI_FUNC_OCT2BIN "SC_HID_AAI_FUNC_OCT2BIN"
+#define HID_AAI_FUNC_OCT2DEZ "SC_HID_AAI_FUNC_OCT2DEZ"
+#define HID_AAI_FUNC_OCT2HEX "SC_HID_AAI_FUNC_OCT2HEX"
+#define HID_AAI_FUNC_CONVERT "SC_HID_AAI_FUNC_CONVERT"
+#define HID_AAI_FUNC_FACTDOUBLE "SC_HID_AAI_FUNC_FACTDOUBLE"
+
+// DateFunc Addin Functions (max.20) -----------------------------------------
+#define HID_DAI_FUNC_DAYSINMONTH "SC_HID_DAI_FUNC_DAYSINMONTH"
+#define HID_DAI_FUNC_DAYSINYEAR "SC_HID_DAI_FUNC_DAYSINYEAR"
+#define HID_DAI_FUNC_WEEKSINYEAR "SC_HID_DAI_FUNC_WEEKSINYEAR"
+#define HID_DAI_FUNC_DIFFMONTHS "SC_HID_DAI_FUNC_DIFFMONTHS"
+#define HID_DAI_FUNC_DIFFWEEKS "SC_HID_DAI_FUNC_DIFFWEEKS"
+#define HID_DAI_FUNC_DIFFYEARS "SC_HID_DAI_FUNC_DIFFYEARS"
+#define HID_DAI_FUNC_ROT13 "SC_HID_DAI_FUNC_ROT13"
+
+#define HID_SCPAGE_OPREDLINBE_FT_CONTENT "SC_HID_SCPAGE_OPREDLINBE_FT_CONTENT"
+#define HID_MN_FORMAT_STYLE "SC_HID_MN_FORMAT_STYLE"
+#define HID_MN_FORMAT_ALGN "SC_HID_MN_FORMAT_ALGN"
+#define HID_MN_FORMAT_LINESPACE "SC_HID_MN_FORMAT_LINESPACE"
+
+
+// Ende Hilfe IDs ------------------------------------------------------------
+
+#define HID_SC_FUNC_DUMMY "SC_HID_SC_FUNC_DUMMY"
+
+#define HID_FUNC_DBANZAHL "SC_HID_FUNC_DBANZAHL"
+#define HID_FUNC_DBANZAHL2 "SC_HID_FUNC_DBANZAHL2"
+#define HID_FUNC_DBMITTELWERT "SC_HID_FUNC_DBMITTELWERT"
+#define HID_FUNC_DBAUSZUG "SC_HID_FUNC_DBAUSZUG"
+#define HID_FUNC_DBMAX "SC_HID_FUNC_DBMAX"
+#define HID_FUNC_DBMIN "SC_HID_FUNC_DBMIN"
+#define HID_FUNC_DBPRODUKT "SC_HID_FUNC_DBPRODUKT"
+#define HID_FUNC_DBSTDABW "SC_HID_FUNC_DBSTDABW"
+#define HID_FUNC_DBSTDABWN "SC_HID_FUNC_DBSTDABWN"
+#define HID_FUNC_DBSUMME "SC_HID_FUNC_DBSUMME"
+#define HID_FUNC_DBVARIANZ "SC_HID_FUNC_DBVARIANZ"
+#define HID_FUNC_DBVARIANZEN "SC_HID_FUNC_DBVARIANZEN"
+
+#define HID_FUNC_DATUM "SC_HID_FUNC_DATUM"
+#define HID_FUNC_DATWERT "SC_HID_FUNC_DATWERT"
+#define HID_FUNC_TAG "SC_HID_FUNC_TAG"
+#define HID_FUNC_TAGE360 "SC_HID_FUNC_TAGE360"
+#define HID_FUNC_STUNDE "SC_HID_FUNC_STUNDE"
+#define HID_FUNC_MINUTE "SC_HID_FUNC_MINUTE"
+#define HID_FUNC_MONAT "SC_HID_FUNC_MONAT"
+#define HID_FUNC_JETZT "SC_HID_FUNC_JETZT"
+#define HID_FUNC_SEKUNDE "SC_HID_FUNC_SEKUNDE"
+#define HID_FUNC_ZEIT "SC_HID_FUNC_ZEIT"
+#define HID_FUNC_ZEITWERT "SC_HID_FUNC_ZEITWERT"
+#define HID_FUNC_HEUTE "SC_HID_FUNC_HEUTE"
+#define HID_FUNC_WOCHENTAG "SC_HID_FUNC_WOCHENTAG"
+#define HID_FUNC_JAHR "SC_HID_FUNC_JAHR"
+#define HID_FUNC_TAGE "SC_HID_FUNC_TAGE"
+#define HID_FUNC_KALENDERWOCHE "SC_HID_FUNC_KALENDERWOCHE"
+#define HID_FUNC_OSTERSONNTAG "SC_HID_FUNC_OSTERSONNTAG"
+
+#define HID_FUNC_BW "SC_HID_FUNC_BW"
+#define HID_FUNC_ZW "SC_HID_FUNC_ZW"
+#define HID_FUNC_ZZR "SC_HID_FUNC_ZZR"
+#define HID_FUNC_RMZ "SC_HID_FUNC_RMZ"
+#define HID_FUNC_ZINS "SC_HID_FUNC_ZINS"
+#define HID_FUNC_ZINSZ "SC_HID_FUNC_ZINSZ"
+#define HID_FUNC_KAPZ "SC_HID_FUNC_KAPZ"
+#define HID_FUNC_KUMKAPITAL "SC_HID_FUNC_KUMKAPITAL"
+#define HID_FUNC_KUMZINSZ "SC_HID_FUNC_KUMZINSZ"
+#define HID_FUNC_DIA "SC_HID_FUNC_DIA"
+#define HID_FUNC_LIA "SC_HID_FUNC_LIA"
+#define HID_FUNC_GDA "SC_HID_FUNC_GDA"
+#define HID_FUNC_GDA2 "SC_HID_FUNC_GDA2"
+#define HID_FUNC_VDB "SC_HID_FUNC_VDB"
+#define HID_FUNC_EFFEKTIV "SC_HID_FUNC_EFFEKTIV"
+#define HID_FUNC_NOMINAL "SC_HID_FUNC_NOMINAL"
+#define HID_FUNC_NBW "SC_HID_FUNC_NBW"
+#define HID_FUNC_IKV "SC_HID_FUNC_IKV"
+#define HID_FUNC_LAUFZEIT "SC_HID_FUNC_LAUFZEIT"
+#define HID_FUNC_ZGZ "SC_HID_FUNC_ZGZ"
+#define HID_FUNC_QIKV "SC_HID_FUNC_QIKV"
+#define HID_FUNC_ISPMT "SC_HID_FUNC_ISPMT"
+
+#define HID_FUNC_ISTBEZUG "SC_HID_FUNC_ISTBEZUG"
+#define HID_FUNC_ISTFEHL "SC_HID_FUNC_ISTFEHL"
+#define HID_FUNC_ISTFEHLER "SC_HID_FUNC_ISTFEHLER"
+#define HID_FUNC_ISTLEER "SC_HID_FUNC_ISTLEER"
+#define HID_FUNC_ISTLOG "SC_HID_FUNC_ISTLOG"
+#define HID_FUNC_ISTNV "SC_HID_FUNC_ISTNV"
+#define HID_FUNC_ISTKTEXT "SC_HID_FUNC_ISTKTEXT"
+#define HID_FUNC_ISTTEXT "SC_HID_FUNC_ISTTEXT"
+#define HID_FUNC_ISTZAHL "SC_HID_FUNC_ISTZAHL"
+#define HID_FUNC_ISTFORMEL "SC_HID_FUNC_ISTFORMEL"
+#define HID_FUNC_N "SC_HID_FUNC_N"
+#define HID_FUNC_NV "SC_HID_FUNC_NV"
+#define HID_FUNC_TYP "SC_HID_FUNC_TYP"
+#define HID_FUNC_AKTUELL "SC_HID_FUNC_AKTUELL"
+#define HID_FUNC_FORMEL "SC_HID_FUNC_FORMEL"
+#define HID_FUNC_ZELLE "SC_HID_FUNC_ZELLE"
+#define HID_FUNC_INFO "SC_HID_FUNC_INFO"
+
+
+#define HID_FUNC_FALSCH "SC_HID_FUNC_FALSCH"
+#define HID_FUNC_NICHT "SC_HID_FUNC_NICHT"
+#define HID_FUNC_WAHR "SC_HID_FUNC_WAHR"
+#define HID_FUNC_WENN "SC_HID_FUNC_WENN"
+#define HID_FUNC_ODER "SC_HID_FUNC_ODER"
+#define HID_FUNC_UND "SC_HID_FUNC_UND"
+
+#define HID_FUNC_ABS "SC_HID_FUNC_ABS"
+#define HID_FUNC_POTENZ "SC_HID_FUNC_POTENZ"
+#define HID_FUNC_ANZAHLLEEREZELLEN "SC_HID_FUNC_ANZAHLLEEREZELLEN"
+#define HID_FUNC_PI "SC_HID_FUNC_PI"
+#define HID_FUNC_SUMME "SC_HID_FUNC_SUMME"
+#define HID_FUNC_QUADRATESUMME "SC_HID_FUNC_QUADRATESUMME"
+#define HID_FUNC_PRODUKT "SC_HID_FUNC_PRODUKT"
+#define HID_FUNC_SUMMEWENN "SC_HID_FUNC_SUMMEWENN"
+#define HID_FUNC_ZAEHLENWENN "SC_HID_FUNC_ZAEHLENWENN"
+#define HID_FUNC_WURZEL "SC_HID_FUNC_WURZEL"
+#define HID_FUNC_ZUFALLSZAHL "SC_HID_FUNC_ZUFALLSZAHL"
+#define HID_FUNC_ISTGERADE "SC_HID_FUNC_ISTGERADE"
+#define HID_FUNC_ISTUNGERADE "SC_HID_FUNC_ISTUNGERADE"
+#define HID_FUNC_KOMBINATIONEN "SC_HID_FUNC_KOMBINATIONEN"
+#define HID_FUNC_KOMBINATIONEN2 "SC_HID_FUNC_KOMBINATIONEN2"
+#define HID_FUNC_ARCCOS "SC_HID_FUNC_ARCCOS"
+#define HID_FUNC_ARCSIN "SC_HID_FUNC_ARCSIN"
+#define HID_FUNC_ARCOSHYP "SC_HID_FUNC_ARCOSHYP"
+#define HID_FUNC_ARSINHYP "SC_HID_FUNC_ARSINHYP"
+#define HID_FUNC_ARCCOT "SC_HID_FUNC_ARCCOT"
+#define HID_FUNC_ARCTAN "SC_HID_FUNC_ARCTAN"
+#define HID_FUNC_ARCOTHYP "SC_HID_FUNC_ARCOTHYP"
+#define HID_FUNC_ARTANHYP "SC_HID_FUNC_ARTANHYP"
+#define HID_FUNC_COS "SC_HID_FUNC_COS"
+#define HID_FUNC_SIN "SC_HID_FUNC_SIN"
+#define HID_FUNC_COT "SC_HID_FUNC_COT"
+#define HID_FUNC_TAN "SC_HID_FUNC_TAN"
+#define HID_FUNC_COSHYP "SC_HID_FUNC_COSHYP"
+#define HID_FUNC_SINHYP "SC_HID_FUNC_SINHYP"
+#define HID_FUNC_COTHYP "SC_HID_FUNC_COTHYP"
+#define HID_FUNC_TANHYP "SC_HID_FUNC_TANHYP"
+#define HID_FUNC_ARCTAN2 "SC_HID_FUNC_ARCTAN2"
+#define HID_FUNC_DEG "SC_HID_FUNC_DEG"
+#define HID_FUNC_RAD "SC_HID_FUNC_RAD"
+#define HID_FUNC_EXP "SC_HID_FUNC_EXP"
+#define HID_FUNC_LOG "SC_HID_FUNC_LOG"
+#define HID_FUNC_LN "SC_HID_FUNC_LN"
+#define HID_FUNC_LOG10 "SC_HID_FUNC_LOG10"
+#define HID_FUNC_FAKULTAET "SC_HID_FUNC_FAKULTAET"
+#define HID_FUNC_REST "SC_HID_FUNC_REST"
+#define HID_FUNC_VORZEICHEN "SC_HID_FUNC_VORZEICHEN"
+#define HID_FUNC_TEILERGEBNIS "SC_HID_FUNC_TEILERGEBNIS"
+#define HID_FUNC_GANZZAHL "SC_HID_FUNC_GANZZAHL"
+#define HID_FUNC_KUERZEN "SC_HID_FUNC_KUERZEN"
+#define HID_FUNC_RUNDEN "SC_HID_FUNC_RUNDEN"
+#define HID_FUNC_AUFRUNDEN "SC_HID_FUNC_AUFRUNDEN"
+#define HID_FUNC_ABRUNDEN "SC_HID_FUNC_ABRUNDEN"
+#define HID_FUNC_GERADE "SC_HID_FUNC_GERADE"
+#define HID_FUNC_UNGERADE "SC_HID_FUNC_UNGERADE"
+#define HID_FUNC_OBERGRENZE "SC_HID_FUNC_OBERGRENZE"
+#define HID_FUNC_UNTERGRENZE "SC_HID_FUNC_UNTERGRENZE"
+#define HID_FUNC_GGT "SC_HID_FUNC_GGT"
+#define HID_FUNC_KGV "SC_HID_FUNC_KGV"
+#define HID_FUNC_UMRECHNEN "SC_HID_FUNC_UMRECHNEN"
+#define HID_FUNC_EUROCONVERT "SC_HID_FUNC_EUROCONVERT"
+
+#define HID_FUNC_MTRANS "SC_HID_FUNC_MTRANS"
+#define HID_FUNC_MMULT "SC_HID_FUNC_MMULT"
+#define HID_FUNC_MDET "SC_HID_FUNC_MDET"
+#define HID_FUNC_MINV "SC_HID_FUNC_MINV"
+#define HID_FUNC_EINHEITSMATRIX "SC_HID_FUNC_EINHEITSMATRIX"
+#define HID_FUNC_SUMMENPRODUKT "SC_HID_FUNC_SUMMENPRODUKT"
+#define HID_FUNC_SUMMEX2MY2 "SC_HID_FUNC_SUMMEX2MY2"
+#define HID_FUNC_SUMMEX2PY2 "SC_HID_FUNC_SUMMEX2PY2"
+#define HID_FUNC_SUMMEXMY2 "SC_HID_FUNC_SUMMEXMY2"
+#define HID_FUNC_HAEUFIGKEIT "SC_HID_FUNC_HAEUFIGKEIT"
+#define HID_FUNC_RGP "SC_HID_FUNC_RGP"
+#define HID_FUNC_RKP "SC_HID_FUNC_RKP"
+#define HID_FUNC_TREND "SC_HID_FUNC_TREND"
+#define HID_FUNC_VARIATION "SC_HID_FUNC_VARIATION"
+
+#define HID_FUNC_ANZAHL "SC_HID_FUNC_ANZAHL"
+#define HID_FUNC_ANZAHL2 "SC_HID_FUNC_ANZAHL2"
+#define HID_FUNC_MAX "SC_HID_FUNC_MAX"
+#define HID_FUNC_MIN "SC_HID_FUNC_MIN"
+#define HID_FUNC_VARIANZ "SC_HID_FUNC_VARIANZ"
+#define HID_FUNC_VARIANZEN "SC_HID_FUNC_VARIANZEN"
+#define HID_FUNC_STABW "SC_HID_FUNC_STABW"
+#define HID_FUNC_STABWN "SC_HID_FUNC_STABWN"
+#define HID_FUNC_MITTELWERT "SC_HID_FUNC_MITTELWERT"
+#define HID_FUNC_SUMQUADABW "SC_HID_FUNC_SUMQUADABW"
+#define HID_FUNC_MITTELABW "SC_HID_FUNC_MITTELABW"
+#define HID_FUNC_SCHIEFE "SC_HID_FUNC_SCHIEFE"
+#define HID_FUNC_KURT "SC_HID_FUNC_KURT"
+#define HID_FUNC_GEOMITTEL "SC_HID_FUNC_GEOMITTEL"
+#define HID_FUNC_HARMITTEL "SC_HID_FUNC_HARMITTEL"
+#define HID_FUNC_MODALWERT "SC_HID_FUNC_MODALWERT"
+#define HID_FUNC_MEDIAN "SC_HID_FUNC_MEDIAN"
+#define HID_FUNC_QUANTIL "SC_HID_FUNC_QUANTIL"
+#define HID_FUNC_QUARTILE "SC_HID_FUNC_QUARTILE"
+#define HID_FUNC_KGROESSTE "SC_HID_FUNC_KGROESSTE"
+#define HID_FUNC_KKLEINSTE "SC_HID_FUNC_KKLEINSTE"
+#define HID_FUNC_QUANTILSRANG "SC_HID_FUNC_QUANTILSRANG"
+#define HID_FUNC_RANG "SC_HID_FUNC_RANG"
+#define HID_FUNC_GESTUTZTMITTEL "SC_HID_FUNC_GESTUTZTMITTEL"
+#define HID_FUNC_WAHRSCHBEREICH "SC_HID_FUNC_WAHRSCHBEREICH"
+#define HID_FUNC_B "SC_HID_FUNC_B"
+#define HID_FUNC_PHI "SC_HID_FUNC_PHI"
+#define HID_FUNC_GAUSS "SC_HID_FUNC_GAUSS"
+#define HID_FUNC_FISHER "SC_HID_FUNC_FISHER"
+#define HID_FUNC_FISHERINV "SC_HID_FUNC_FISHERINV"
+#define HID_FUNC_BINOMVERT "SC_HID_FUNC_BINOMVERT"
+#define HID_FUNC_NEGBINOMVERT "SC_HID_FUNC_NEGBINOMVERT"
+#define HID_FUNC_KRITBINOM "SC_HID_FUNC_KRITBINOM"
+#define HID_FUNC_POISSON "SC_HID_FUNC_POISSON"
+#define HID_FUNC_NORMVERT "SC_HID_FUNC_NORMVERT"
+#define HID_FUNC_NORMINV "SC_HID_FUNC_NORMINV"
+#define HID_FUNC_STANDNORMVERT "SC_HID_FUNC_STANDNORMVERT"
+#define HID_FUNC_STANDNORMINV "SC_HID_FUNC_STANDNORMINV"
+#define HID_FUNC_LOGNORMVERT "SC_HID_FUNC_LOGNORMVERT"
+#define HID_FUNC_LOGINV "SC_HID_FUNC_LOGINV"
+#define HID_FUNC_EXPONVERT "SC_HID_FUNC_EXPONVERT"
+#define HID_FUNC_GAMMAVERT "SC_HID_FUNC_GAMMAVERT"
+#define HID_FUNC_GAMMAINV "SC_HID_FUNC_GAMMAINV"
+#define HID_FUNC_GAMMALN "SC_HID_FUNC_GAMMALN"
+#define HID_FUNC_BETAVERT "SC_HID_FUNC_BETAVERT"
+#define HID_FUNC_BETAINV "SC_HID_FUNC_BETAINV"
+#define HID_FUNC_WEIBULL "SC_HID_FUNC_WEIBULL"
+#define HID_FUNC_HYPGEOMVERT "SC_HID_FUNC_HYPGEOMVERT"
+#define HID_FUNC_TVERT "SC_HID_FUNC_TVERT"
+#define HID_FUNC_TINV "SC_HID_FUNC_TINV"
+#define HID_FUNC_FVERT "SC_HID_FUNC_FVERT"
+#define HID_FUNC_FINV "SC_HID_FUNC_FINV"
+#define HID_FUNC_CHIVERT "SC_HID_FUNC_CHIVERT"
+#define HID_FUNC_CHIINV "SC_HID_FUNC_CHIINV"
+#define HID_FUNC_STANDARDISIERUNG "SC_HID_FUNC_STANDARDISIERUNG"
+#define HID_FUNC_VARIATIONEN "SC_HID_FUNC_VARIATIONEN"
+#define HID_FUNC_VARIATIONEN2 "SC_HID_FUNC_VARIATIONEN2"
+#define HID_FUNC_KONFIDENZ "SC_HID_FUNC_KONFIDENZ"
+#define HID_FUNC_GTEST "SC_HID_FUNC_GTEST"
+#define HID_FUNC_CHITEST "SC_HID_FUNC_CHITEST"
+#define HID_FUNC_FTEST "SC_HID_FUNC_FTEST"
+#define HID_FUNC_TTEST "SC_HID_FUNC_TTEST"
+#define HID_FUNC_BESTIMMTHEITSMASS "SC_HID_FUNC_BESTIMMTHEITSMASS"
+#define HID_FUNC_ACHSENABSCHNITT "SC_HID_FUNC_ACHSENABSCHNITT"
+#define HID_FUNC_STEIGUNG "SC_HID_FUNC_STEIGUNG"
+#define HID_FUNC_STFEHLERYX "SC_HID_FUNC_STFEHLERYX"
+#define HID_FUNC_PEARSON "SC_HID_FUNC_PEARSON"
+#define HID_FUNC_KORREL "SC_HID_FUNC_KORREL"
+#define HID_FUNC_KOVAR "SC_HID_FUNC_KOVAR"
+#define HID_FUNC_SCHAETZER "SC_HID_FUNC_SCHAETZER"
+#define HID_FUNC_MINA "SC_HID_FUNC_MINA"
+#define HID_FUNC_MAXA "SC_HID_FUNC_MAXA"
+#define HID_FUNC_MITTELWERTA "SC_HID_FUNC_MITTELWERTA"
+#define HID_FUNC_STABWA "SC_HID_FUNC_STABWA"
+#define HID_FUNC_STABWNA "SC_HID_FUNC_STABWNA"
+#define HID_FUNC_VARIANZA "SC_HID_FUNC_VARIANZA"
+#define HID_FUNC_VARIANZENA "SC_HID_FUNC_VARIANZENA"
+#define HID_FUNC_CHISQDIST "SC_HID_FUNC_CHISQDIST"
+#define HID_FUNC_CHISQINV "SC_HID_FUNC_CHISQINV"
+#define HID_FUNC_GAMMA "SC_HID_FUNC_GAMMA"
+
+#define HID_FUNC_ADRESSE "SC_HID_FUNC_ADRESSE"
+#define HID_FUNC_BEREICHE "SC_HID_FUNC_BEREICHE"
+#define HID_FUNC_WAHL "SC_HID_FUNC_WAHL"
+#define HID_FUNC_SPALTE "SC_HID_FUNC_SPALTE"
+#define HID_FUNC_ZEILE "SC_HID_FUNC_ZEILE"
+#define HID_FUNC_SPALTEN "SC_HID_FUNC_SPALTEN"
+#define HID_FUNC_ZEILEN "SC_HID_FUNC_ZEILEN"
+#define HID_FUNC_WVERWEIS "SC_HID_FUNC_WVERWEIS"
+#define HID_FUNC_SVERWEIS "SC_HID_FUNC_SVERWEIS"
+#define HID_FUNC_INDEX "SC_HID_FUNC_INDEX"
+#define HID_FUNC_INDIREKT "SC_HID_FUNC_INDIREKT"
+#define HID_FUNC_VERWEIS "SC_HID_FUNC_VERWEIS"
+#define HID_FUNC_VERGLEICH "SC_HID_FUNC_VERGLEICH"
+#define HID_FUNC_VERSCHIEBUNG "SC_HID_FUNC_VERSCHIEBUNG"
+#define HID_FUNC_FEHLERTYP "SC_HID_FUNC_FEHLERTYP"
+#define HID_FUNC_VORLAGE "SC_HID_FUNC_VORLAGE"
+#define HID_FUNC_DDE "SC_HID_FUNC_DDE"
+#define HID_FUNC_TABELLE "SC_HID_FUNC_TABELLE"
+#define HID_FUNC_TABELLEN "SC_HID_FUNC_TABELLEN"
+#define HID_FUNC_HYPERLINK "SC_HID_FUNC_HYPERLINK"
+#define HID_FUNC_GETPIVOTDATA "SC_HID_FUNC_GETPIVOTDATA"
+
+#define HID_FUNC_CODE "SC_HID_FUNC_CODE"
+#define HID_FUNC_DM "SC_HID_FUNC_DM"
+#define HID_FUNC_ZEICHEN "SC_HID_FUNC_ZEICHEN"
+#define HID_FUNC_SAEUBERN "SC_HID_FUNC_SAEUBERN"
+#define HID_FUNC_VERKETTEN "SC_HID_FUNC_VERKETTEN"
+#define HID_FUNC_IDENTISCH "SC_HID_FUNC_IDENTISCH"
+#define HID_FUNC_FINDEN "SC_HID_FUNC_FINDEN"
+#define HID_FUNC_SUCHEN "SC_HID_FUNC_SUCHEN"
+#define HID_FUNC_GLAETTEN "SC_HID_FUNC_GLAETTEN"
+#define HID_FUNC_GROSS2 "SC_HID_FUNC_GROSS2"
+#define HID_FUNC_GROSS "SC_HID_FUNC_GROSS"
+#define HID_FUNC_KLEIN "SC_HID_FUNC_KLEIN"
+#define HID_FUNC_WERT "SC_HID_FUNC_WERT"
+#define HID_FUNC_TEXT "SC_HID_FUNC_TEXT"
+#define HID_FUNC_T "SC_HID_FUNC_T"
+#define HID_FUNC_ERSETZEN "SC_HID_FUNC_ERSETZEN"
+#define HID_FUNC_FEST "SC_HID_FUNC_FEST"
+#define HID_FUNC_LAENGE "SC_HID_FUNC_LAENGE"
+#define HID_FUNC_LINKS "SC_HID_FUNC_LINKS"
+#define HID_FUNC_RECHTS "SC_HID_FUNC_RECHTS"
+#define HID_FUNC_TEIL "SC_HID_FUNC_TEIL"
+#define HID_FUNC_WIEDERHOLEN "SC_HID_FUNC_WIEDERHOLEN"
+#define HID_FUNC_WECHSELN "SC_HID_FUNC_WECHSELN"
+#define HID_FUNC_BASIS "SC_HID_FUNC_BASIS"
+#define HID_FUNC_DEZIMAL "SC_HID_FUNC_DEZIMAL"
+#define HID_FUNC_ROEMISCH "SC_HID_FUNC_ROEMISCH"
+#define HID_FUNC_ARABISCH "SC_HID_FUNC_ARABISCH"
+#define HID_FUNC_BAHTTEXT "SC_HID_FUNC_BAHTTEXT"
+#define HID_FUNC_JIS "SC_HID_FUNC_JIS"
+#define HID_FUNC_ASC "SC_HID_FUNC_ASC"
+#define HID_FUNC_UNICODE "SC_HID_FUNC_UNICODE"
+#define HID_FUNC_UNICHAR "SC_HID_FUNC_UNICHAR"
+#define HID_FUNC_NUMBERVALUE "SC_HID_FUNC_NUMBERVALUE"
diff --git a/sc/inc/pivot.hxx b/sc/inc/pivot.hxx
index 915a311411c4..489f272bc8ba 100644
--- a/sc/inc/pivot.hxx
+++ b/sc/inc/pivot.hxx
@@ -141,6 +141,7 @@ struct ScDPLabelData
SCsCOL mnCol;
USHORT mnFuncMask; /// Page/Column/Row subtotal function.
sal_Int32 mnUsedHier; /// Used hierarchy.
+ sal_Int32 mnFlags; /// Flags from the DataPilotSource dimension
bool mbShowAll; /// true = Show all (also empty) results.
bool mbIsValue; /// true = Sum or count in data field.
diff --git a/sc/inc/sc.hrc b/sc/inc/sc.hrc
index 4a697dc57558..159da72a34d2 100644
--- a/sc/inc/sc.hrc
+++ b/sc/inc/sc.hrc
@@ -35,6 +35,11 @@
#include <svx/dialogs.hrc> // ->Svx-IDs
#endif
+#include "sfx2/sfxcommands.h"
+#include "svx/svxcommands.h"
+#include "sccommands.h"
+#include "helpids.h"
+
#define VAR_ARGS 30 // variable Parameter in scfuncs.src
#define RID_HANDLEBITMAP 10005
@@ -59,29 +64,11 @@
// Calc hat einen Bereich von 2000 IDs
// Die Funktionen brauchen 11*90 = 990 IDs
-#define HID_SC_FUNC_START (HID_SC_START + 0)
-#define HID_INSWIN_START (HID_SC_START + 1000)
#define HID_SC_SHEET_START (HID_SC_START + 1010)
#define HID_SC_SHELL_START (HID_SC_START + 1030)
-#define HID_SC_WIN_START (HID_SC_START + 1050)
-#define HID_SC_CONTROL_START (HID_SC_START + 1070)
-#define HID_SC_DLG_START (HID_SC_START + 1100)
-#define HID_SC_TOOLBOX_START (HID_SC_START + 1170)
-#define HID_SC_MENU_START (HID_SC_START + 1180)
-#define HID_SC_OTHER_START (HID_SC_START + 1230)
-#define HID_SC_AAI_FUNCS_START (HID_SC_START + 1300) // Analysis Addin Functions
-#define HID_SC_DAI_FUNCS_START (HID_SC_START + 1420) // DateFunc Addin Functions
// ---------------------------------------------------------------------------
-#define HID_INSWIN_POS (HID_INSWIN_START + 0 )
-#define HID_INSWIN_CALC (HID_INSWIN_START + 1 )
-#define HID_INSWIN_CANCEL (HID_INSWIN_START + 2 )
-#define HID_INSWIN_OK (HID_INSWIN_START + 3 )
-#define HID_INSWIN_SUMME (HID_INSWIN_START + 4 )
-#define HID_INSWIN_FUNC (HID_INSWIN_START + 5 )
-#define HID_INSWIN_INPUT (HID_INSWIN_START + 6 )
-
// Hilfe IDs fuer Vorlagen ---------------------------------------------------
#define HID_SC_SHEET_CELL_STD (HID_SC_SHEET_START +0 )
#define HID_SC_SHEET_CELL_ERG (HID_SC_SHEET_START +1 )
@@ -109,363 +96,6 @@
#define HID_SCSHELL_PAGEBREAK (HID_SC_SHELL_START +14)
#define HID_SCSHELL_MEDIA (HID_SC_SHELL_START +15)
-// Hilfe IDs fuer Dokumentfenster --------------------------------------------
-#define HID_SC_WIN_GRIDWIN ( HID_SC_WIN_START )
-#define HID_SC_WIN_PREVIEW ( HID_SC_WIN_START + 1 )
-
-// Hilfe IDs fuer einzelne Controls (max.30) ---------------------------------
-// Kopf/Fusszeilen Editfenster: Header/Footer links/rechts links/mitte/rechts
-#define HID_SC_HF_HLL ( HID_SC_CONTROL_START + 0 )
-#define HID_SC_HF_HLC ( HID_SC_CONTROL_START + 1 )
-#define HID_SC_HF_HLR ( HID_SC_CONTROL_START + 2 )
-#define HID_SC_HF_HRL ( HID_SC_CONTROL_START + 3 )
-#define HID_SC_HF_HRC ( HID_SC_CONTROL_START + 4 )
-#define HID_SC_HF_HRR ( HID_SC_CONTROL_START + 5 )
-#define HID_SC_HF_FLL ( HID_SC_CONTROL_START + 6 )
-#define HID_SC_HF_FLC ( HID_SC_CONTROL_START + 7 )
-#define HID_SC_HF_FLR ( HID_SC_CONTROL_START + 8 )
-#define HID_SC_HF_FRL ( HID_SC_CONTROL_START + 9 )
-#define HID_SC_HF_FRC ( HID_SC_CONTROL_START + 10 )
-#define HID_SC_HF_FRR ( HID_SC_CONTROL_START + 11 )
-// "Spalten" in Teilergebnissen: Gruppe 1/2/3 - nicht mehr!
-//#define HID_SC_SUBT_COLS_1 ( HID_SC_CONTROL_START + 12 )
-//#define HID_SC_SUBT_COLS_2 ( HID_SC_CONTROL_START + 13 )
-//#define HID_SC_SUBT_COLS_3 ( HID_SC_CONTROL_START + 14 )
-// Eintraege im Navigator
-#define HID_SC_NAVIPI_ENTRIES ( HID_SC_CONTROL_START + 15 )
-#define HID_SC_NAVIPI_ROW ( HID_SC_CONTROL_START + 16 )
-#define HID_SC_NAVIPI_COL ( HID_SC_CONTROL_START + 17 )
-#define HID_SC_NAVIPI_DOC ( HID_SC_CONTROL_START + 18 )
-#define HID_SC_NAVIPI_DATA ( HID_SC_CONTROL_START + 19 )
-#define HID_SC_NAVIPI_UP ( HID_SC_CONTROL_START + 20 )
-#define HID_SC_NAVIPI_DOWN ( HID_SC_CONTROL_START + 21 )
-#define HID_SC_NAVIPI_ZOOM ( HID_SC_CONTROL_START + 22 )
-#define HID_SC_NAVIPI_ROOT ( HID_SC_CONTROL_START + 23 )
-#define HID_SC_NAVIPI_SCEN ( HID_SC_CONTROL_START + 24 )
-#define HID_SC_NAVIPI_DROP ( HID_SC_CONTROL_START + 25 )
-// Teilergebnisse
-#define HID_SC_SUBT_GROUP ( HID_SC_CONTROL_START + 26 )
-#define HID_SC_SUBT_COLS ( HID_SC_CONTROL_START + 27 )
-#define HID_SC_SUBT_FUNC ( HID_SC_CONTROL_START + 28 )
-//
-#define HID_SC_NAVIPI_TOOLBOX ( HID_SC_CONTROL_START + 29 )
-// Bereich ist voll!
-
-// Hilfe IDs fuer Dialoge / Pages (max.70) -----------------------------------
-#define HID_SC_AUTOFORMAT (HID_SC_DLG_START )
-#define HID_SC_PIVOTFILTER (HID_SC_DLG_START +1 )
-#define HID_SC_INPORTOPT (HID_SC_DLG_START +2 )
-#define HID_SC_PIVOTSUBT (HID_SC_DLG_START +3 )
-#define HID_SC_FORM_ARGS (HID_SC_DLG_START +4 )
-#define HID_SCPAGE_SORT_FIELDS (HID_SC_DLG_START +5 )
-#define HID_SCPAGE_SORT_OPTIONS (HID_SC_DLG_START +6 )
-#define HID_SCPAGE_SUBT_OPTIONS (HID_SC_DLG_START +7 )
-#define HID_SCPAGE_SUBT_GROUP (HID_SC_DLG_START +8 )
-#define HID_SCPAGE_PROTECTION (HID_SC_DLG_START +9 )
-#define HID_SCPAGE_VIEW (HID_SC_DLG_START +10 )
-#define HID_SCPAGE_CALC (HID_SC_DLG_START +11 )
-#define HID_SCPAGE_USERLISTS (HID_SC_DLG_START +12 )
-#define HID_SCPAGE_HFEDIT (HID_SC_DLG_START +13 )
-#define HID_SCPAGE_AREAS (HID_SC_DLG_START +14 )
-#define HID_SCPAGE_TABLE (HID_SC_DLG_START +15 )
-#define HID_SCPAGE_PRINT (HID_SC_DLG_START +16 )
-
-#define HID_SCPAGE_SUBT_GROUP1 (HID_SC_DLG_START +17 )
-#define HID_SCPAGE_SUBT_GROUP2 (HID_SC_DLG_START +18 )
-#define HID_SCPAGE_SUBT_GROUP3 (HID_SC_DLG_START +19 )
-
-#define HID_SCPAGE_HFED_HL (HID_SC_DLG_START +20 )
-#define HID_SCPAGE_HFED_HR (HID_SC_DLG_START +21 )
-#define HID_SCPAGE_HFED_FL (HID_SC_DLG_START +22 )
-#define HID_SCPAGE_HFED_FR (HID_SC_DLG_START +23 )
-
-#define HID_SCPAGE_CONTENT (HID_SC_DLG_START +24 )
-#define HID_SCPAGE_LAYOUT (HID_SC_DLG_START +25 )
-#define HID_SCPAGE_INPUT (HID_SC_DLG_START +26 )
-
-#define HID_SC_NAVIGATOR (HID_SC_DLG_START +27 )
-
-#define HID_SC_MTRIN_VAL (HID_SC_DLG_START +28 )
-#define HID_SC_MTRIN_DEF (HID_SC_DLG_START +29 )
-#define HID_SC_SELENTRY_LIST (HID_SC_DLG_START +30 )
-#define HID_SC_GROUP_COLS (HID_SC_DLG_START +31 )
-#define HID_SC_GROUP_ROWS (HID_SC_DLG_START +32 )
-
-#define HID_SC_HF_TEXT (HID_SC_DLG_START +33 )
-#define HID_SC_HF_FILE (HID_SC_DLG_START +34 )
-#define HID_SC_HF_TABLE (HID_SC_DLG_START +35 )
-#define HID_SC_HF_PAGE (HID_SC_DLG_START +36 )
-#define HID_SC_HF_PAGES (HID_SC_DLG_START +37 )
-#define HID_SC_HF_DATE (HID_SC_DLG_START +38 )
-#define HID_SC_HF_TIME (HID_SC_DLG_START +39 )
-
-#define HID_SC_HEADER_EDIT (HID_SC_DLG_START +40 )
-#define HID_SC_FOOTER_EDIT (HID_SC_DLG_START +41 )
-
-#define HID_SC_SCENWIN_TOP (HID_SC_DLG_START +42 )
-#define HID_SC_SCENWIN_BOTTOM (HID_SC_DLG_START +43 )
-
-#define HID_SC_INPUTWIN (HID_SC_DLG_START +44 )
-
-#define HID_SC_RENAME_NAME (HID_SC_DLG_START +45 )
-#define HID_SC_APPEND_NAME (HID_SC_DLG_START +46 )
-
-// Funktionsautopilot: nur als Unique-IDs
-#define HID_SC_FAP_PAGE (HID_SC_DLG_START +47 )
-#define HID_SC_FAP_EDIT1 (HID_SC_DLG_START +48 )
-#define HID_SC_FAP_EDIT2 (HID_SC_DLG_START +49 )
-#define HID_SC_FAP_EDIT3 (HID_SC_DLG_START +50 )
-#define HID_SC_FAP_EDIT4 (HID_SC_DLG_START +51 )
-
-#define HID_SC_ADD_AUTOFMT (HID_SC_DLG_START +52 )
-#define HID_SC_AUTOFMT_NAME (HID_SC_DLG_START +53 )
-
-#define HID_SC_DROPMODE_URL (HID_SC_DLG_START +54 )
-#define HID_SC_DROPMODE_LINK (HID_SC_DLG_START +55 )
-#define HID_SC_DROPMODE_COPY (HID_SC_DLG_START +56 )
-
-#define HID_SC_FAP_STRUCT (HID_SC_DLG_START +57 )
-#define HID_SC_ASCII_TABCTR (HID_SC_DLG_START +58 )
-
-#define HID_SC_SCENARIO_DELETE (HID_SC_DLG_START +59 )
-#define HID_SC_SCENARIO_EDIT (HID_SC_DLG_START +60 )
-
-#define HID_SCDLG_FORMULA (HID_SC_DLG_START +61 )
-#define HID_SCDLG_CONDFORMAT (HID_SC_DLG_START +62 )
-#define HID_COLROWNAMERANGES (HID_SC_DLG_START +63 )
-
-#define HID_FUNCTION_BOX (HID_SC_DLG_START +64 )
-#define HID_SCPAGE_OPREDLINE (HID_SC_DLG_START +65 )
-#define HID_SC_REDLIN_CTR (HID_SC_DLG_START +66 )
-
-//Kopf/FusszeilenDlg: Contextmenue fuer Dateiname
-#define HID_FCOMMAND_TITEL (HID_SC_DLG_START +67 )
-#define HID_FCOMMAND_FILENAME (HID_SC_DLG_START +68 )
-#define HID_FCOMMAND_PATH (HID_SC_DLG_START +69 )
-
-
-// Hilfe IDs fuer Objekt- und Werkzeugleisten (max.10) -----------------------
-
-#define HID_SC_TOOLBOX_TOOLS ( HID_SC_TOOLBOX_START )
-#define HID_SC_TOOLBOX_TABLE ( HID_SC_TOOLBOX_START + 1 )
-#define HID_SC_TOOLBOX_DRAW ( HID_SC_TOOLBOX_START + 2 )
-#define HID_SC_TOOLBOX_DRTEXT ( HID_SC_TOOLBOX_START + 3 )
-#define HID_SC_TOOLBOX_PREVIEW ( HID_SC_TOOLBOX_START + 4 )
-
-// wrong group - HID_SC_DLG_START is full
-#define HID_SC_RENAME_AUTOFMT ( HID_SC_TOOLBOX_START + 5 )
-#define HID_SC_REN_AFMT_NAME ( HID_SC_TOOLBOX_START + 6 )
-
-#define HID_SC_TOOLBOX_GRAPHIC ( HID_SC_TOOLBOX_START + 7 )
-
-#define HID_CHG_PROTECT ( HID_SC_TOOLBOX_START + 8 )
-
-#define HID_SC_RENAME_OBJECT ( HID_SC_TOOLBOX_START + 9 )
-
-#define HID_SC_REN_AFMT_DLG ( HID_SC_TOOLBOX_START + 10 )
-
-// Hilfe IDs fuer Submenus (max.50) ------------------------------------------
-#define HID_SCMENU_EDIT ( HID_SC_MENU_START )
-#define HID_SCMENU_FILL ( HID_SC_MENU_START + 1 )
-#define HID_SCMENU_DELBREAK ( HID_SC_MENU_START + 2 )
-#define HID_SCMENU_VIEW ( HID_SC_MENU_START + 3 )
-#define HID_SCMENU_TOOLBARS ( HID_SC_MENU_START + 4 )
-#define HID_SCMENU_INSERT ( HID_SC_MENU_START + 5 )
-#define HID_SCMENU_INSBREAK ( HID_SC_MENU_START + 6 )
-#define HID_SCMENU_NAME ( HID_SC_MENU_START + 7 )
-#define HID_SCMENU_GRAPHIC ( HID_SC_MENU_START + 8 )
-#define HID_SCMENU_DATA ( HID_SC_MENU_START + 9 )
-#define HID_SCMENU_FILTER ( HID_SC_MENU_START + 10 )
-#define HID_SCMENU_OUTLINE ( HID_SC_MENU_START + 11 )
-#define HID_SCMENU_PIVOT ( HID_SC_MENU_START + 12 )
-#define HID_SCMENU_EXTRA ( HID_SC_MENU_START + 13 )
-#define HID_SCMENU_SPELLING ( HID_SC_MENU_START + 14 )
-#define HID_SCMENU_AUDIT ( HID_SC_MENU_START + 15 )
-#define HID_SCMENU_PROTECT ( HID_SC_MENU_START + 16 )
-#define HID_SCMENU_CELLCONT ( HID_SC_MENU_START + 17 )
-#define HID_SCMENU_ROW ( HID_SC_MENU_START + 18 )
-#define HID_SCMENU_COL ( HID_SC_MENU_START + 19 )
-#define HID_SCMENU_TAB ( HID_SC_MENU_START + 20 )
-#define HID_SCMENU_MERGE ( HID_SC_MENU_START + 21 )
-#define HID_SCMENU_AREA ( HID_SC_MENU_START + 22 )
-#define HID_SCMENU_OBJMIRROR ( HID_SC_MENU_START + 23 )
-#define HID_SCMENU_OBJARRANGE ( HID_SC_MENU_START + 24 )
-#define HID_SCMENU_ANCHOR ( HID_SC_MENU_START + 25 )
-#define HID_SCMENU_SENDTO ( HID_SC_MENU_START + 26 )
-#define HID_SCMENU_CHANGES ( HID_SC_MENU_START + 27 )
-
-#define HID_SC_FAP_BTN_FX1 ( HID_SC_MENU_START + 28 )
-#define HID_SC_FAP_BTN_FX2 ( HID_SC_MENU_START + 29 )
-#define HID_SC_FAP_BTN_FX3 ( HID_SC_MENU_START + 30 )
-#define HID_SC_FAP_BTN_FX4 ( HID_SC_MENU_START + 31 )
-#define HID_SC_FAP_BTN_REF1 ( HID_SC_MENU_START + 32 )
-#define HID_SC_FAP_BTN_REF2 ( HID_SC_MENU_START + 33 )
-#define HID_SC_FAP_BTN_REF3 ( HID_SC_MENU_START + 34 )
-#define HID_SC_FAP_BTN_REF4 ( HID_SC_MENU_START + 35 )
-#define HID_SC_FAP_FORMULA ( HID_SC_MENU_START + 36 )
-
-#define HID_SC_SORT_ACTION ( HID_SC_MENU_START + 37 )
-#define HID_SC_SORT_AUTHOR ( HID_SC_MENU_START + 38 )
-#define HID_SC_SORT_DATE ( HID_SC_MENU_START + 39 )
-#define HID_SC_SORT_COMMENT ( HID_SC_MENU_START + 40 )
-#define HID_SORT_POSITION ( HID_SC_MENU_START + 41 )
-#define HID_SC_CHANGES_COMMENT ( HID_SC_MENU_START + 42 )
-#define HID_SC_FUNCTIONLIST ( HID_SC_MENU_START + 43 )
-#define HID_SCPAGE_OPTLOAD ( HID_SC_MENU_START + 44 )
-#define HID_PASSWD_TABLE ( HID_SC_MENU_START + 45 )
-#define HID_PASSWD_DOC ( HID_SC_MENU_START + 46 )
-
-#define HID_DATAPILOT_TYPE ( HID_SC_MENU_START + 47 )
-#define HID_DATAPILOT_DATABASE ( HID_SC_MENU_START + 48 )
-#define HID_DATAPILOT_SERVICE ( HID_SC_MENU_START + 49 )
-
-// Other help IDs (max.70) ---------------------------------------------------
-#define HID_SCDLG_LINKAREAURL ( HID_SC_OTHER_START )
-#define HID_SCMENU_EDIT_TABLE ( HID_SC_OTHER_START + 1 )
-
-#define HID_SELECTTABLES ( HID_SC_OTHER_START + 2 )
-#define HID_SC_REPLCELLSWARN ( HID_SC_OTHER_START + 3 )
-
-// data pilot layout dialog
-#define HID_SC_DPLAY_PAGE ( HID_SC_OTHER_START + 4 )
-#define HID_SC_DPLAY_COLUMN ( HID_SC_OTHER_START + 5 )
-#define HID_SC_DPLAY_ROW ( HID_SC_OTHER_START + 6 )
-#define HID_SC_DPLAY_DATA ( HID_SC_OTHER_START + 7 )
-#define HID_SC_DPLAY_SELECT ( HID_SC_OTHER_START + 8 )
-
-#define HID_SC_DRAW_RENAME ( HID_SC_OTHER_START + 9 )
-
-#define HID_SC_DPDATAFIELD ( HID_SC_OTHER_START + 10 )
-#define HID_SC_DPSUBT_OPT ( HID_SC_OTHER_START + 11 )
-#define HID_SC_DPSUBT_HIDE ( HID_SC_OTHER_START + 12 )
-#define HID_SC_DPNUMGROUP ( HID_SC_OTHER_START + 13 )
-#define HID_SC_DPDATEGROUP ( HID_SC_OTHER_START + 14 )
-#define HID_SC_DPDATEGROUP_LB ( HID_SC_OTHER_START + 15 )
-#define HID_SC_DPSHOWDETAIL ( HID_SC_OTHER_START + 16 )
-
-// #i68101#
-#define HID_SC_TITLE_DESCRIPTION_OBJECT ( HID_SC_OTHER_START + 17 )
-
-#define HID_SC_SOLVEROPTIONS ( HID_SC_OTHER_START + 18 )
-#define HID_SC_SOLVEROPTIONS_LB ( HID_SC_OTHER_START + 19 )
-#define HID_SC_SOLVER_INTEGER ( HID_SC_OTHER_START + 20 )
-#define HID_SC_SOLVER_DOUBLE ( HID_SC_OTHER_START + 21 )
-#define HID_SC_SOLVER_PROGRESS ( HID_SC_OTHER_START + 22 )
-#define HID_SC_SOLVER_NOSOLUTION ( HID_SC_OTHER_START + 23 )
-#define HID_SC_SOLVER_SUCCESS ( HID_SC_OTHER_START + 24 )
-
-#define HID_SCDLG_CONFLICTS ( HID_SC_OTHER_START + 25 )
-
-#define HID_SC_HF_HL_DEFINED ( HID_SC_OTHER_START + 26 )
-#define HID_SC_HF_HR_DEFINED ( HID_SC_OTHER_START + 27 )
-#define HID_SC_HF_FL_DEFINED ( HID_SC_OTHER_START + 28 )
-#define HID_SC_HF_FR_DEFINED ( HID_SC_OTHER_START + 29 )
-
-// Analysis Addin Functions (max.120) ----------------------------------------
-#define HID_AAI_FUNC_WORKDAY ( HID_SC_AAI_FUNCS_START )
-#define HID_AAI_FUNC_YEARFRAC ( HID_SC_AAI_FUNCS_START + 1 )
-#define HID_AAI_FUNC_EDATE ( HID_SC_AAI_FUNCS_START + 2 )
-#define HID_AAI_FUNC_WEEKNUM ( HID_SC_AAI_FUNCS_START + 3 )
-#define HID_AAI_FUNC_EOMONTH ( HID_SC_AAI_FUNCS_START + 4 )
-#define HID_AAI_FUNC_NETWORKDAYS ( HID_SC_AAI_FUNCS_START + 5 )
-#define HID_AAI_FUNC_AMORDEGRC ( HID_SC_AAI_FUNCS_START + 6 )
-#define HID_AAI_FUNC_AMORLINC ( HID_SC_AAI_FUNCS_START + 7 )
-#define HID_AAI_FUNC_ACCRINT ( HID_SC_AAI_FUNCS_START + 8 )
-#define HID_AAI_FUNC_ACCRINTM ( HID_SC_AAI_FUNCS_START + 9 )
-#define HID_AAI_FUNC_RECEIVED ( HID_SC_AAI_FUNCS_START + 10 )
-#define HID_AAI_FUNC_DISC ( HID_SC_AAI_FUNCS_START + 11 )
-#define HID_AAI_FUNC_DURATION ( HID_SC_AAI_FUNCS_START + 12 )
-#define HID_AAI_FUNC_EFFECT ( HID_SC_AAI_FUNCS_START + 13 )
-#define HID_AAI_FUNC_CUMPRINC ( HID_SC_AAI_FUNCS_START + 14 )
-#define HID_AAI_FUNC_CUMIPMT ( HID_SC_AAI_FUNCS_START + 15 )
-#define HID_AAI_FUNC_PRICE ( HID_SC_AAI_FUNCS_START + 16 )
-#define HID_AAI_FUNC_PRICEDISC ( HID_SC_AAI_FUNCS_START + 17 )
-#define HID_AAI_FUNC_PRICEMAT ( HID_SC_AAI_FUNCS_START + 18 )
-#define HID_AAI_FUNC_MDURATION ( HID_SC_AAI_FUNCS_START + 19 )
-#define HID_AAI_FUNC_NOMINAL ( HID_SC_AAI_FUNCS_START + 20 )
-#define HID_AAI_FUNC_DOLLARFR ( HID_SC_AAI_FUNCS_START + 21 )
-#define HID_AAI_FUNC_DOLLARDE ( HID_SC_AAI_FUNCS_START + 22 )
-#define HID_AAI_FUNC_YIELD ( HID_SC_AAI_FUNCS_START + 23 )
-#define HID_AAI_FUNC_YIELDDISC ( HID_SC_AAI_FUNCS_START + 24 )
-#define HID_AAI_FUNC_YIELDMAT ( HID_SC_AAI_FUNCS_START + 25 )
-#define HID_AAI_FUNC_TBILLEQ ( HID_SC_AAI_FUNCS_START + 26 )
-#define HID_AAI_FUNC_TBILLPRICE ( HID_SC_AAI_FUNCS_START + 27 )
-#define HID_AAI_FUNC_TBILLYIELD ( HID_SC_AAI_FUNCS_START + 28 )
-#define HID_AAI_FUNC_ODDFPRICE ( HID_SC_AAI_FUNCS_START + 29 )
-#define HID_AAI_FUNC_ODDFYIELD ( HID_SC_AAI_FUNCS_START + 30 )
-#define HID_AAI_FUNC_ODDLPRICE ( HID_SC_AAI_FUNCS_START + 31 )
-#define HID_AAI_FUNC_ODDLYIELD ( HID_SC_AAI_FUNCS_START + 32 )
-#define HID_AAI_FUNC_XIRR ( HID_SC_AAI_FUNCS_START + 33 )
-#define HID_AAI_FUNC_XNPV ( HID_SC_AAI_FUNCS_START + 34 )
-#define HID_AAI_FUNC_INTRATE ( HID_SC_AAI_FUNCS_START + 35 )
-#define HID_AAI_FUNC_COUPNCD ( HID_SC_AAI_FUNCS_START + 36 )
-#define HID_AAI_FUNC_COUPDAYS ( HID_SC_AAI_FUNCS_START + 37 )
-#define HID_AAI_FUNC_COUPDAYSNC ( HID_SC_AAI_FUNCS_START + 38 )
-#define HID_AAI_FUNC_COUPDAYBS ( HID_SC_AAI_FUNCS_START + 39 )
-#define HID_AAI_FUNC_COUPPCD ( HID_SC_AAI_FUNCS_START + 40 )
-#define HID_AAI_FUNC_COUPNUM ( HID_SC_AAI_FUNCS_START + 41 )
-#define HID_AAI_FUNC_FVSCHEDULE ( HID_SC_AAI_FUNCS_START + 42 )
-#define HID_AAI_FUNC_ISEVEN ( HID_SC_AAI_FUNCS_START + 43 )
-#define HID_AAI_FUNC_ISODD ( HID_SC_AAI_FUNCS_START + 44 )
-#define HID_AAI_FUNC_GCD ( HID_SC_AAI_FUNCS_START + 45 )
-#define HID_AAI_FUNC_LCM ( HID_SC_AAI_FUNCS_START + 46 )
-#define HID_AAI_FUNC_MULTINOMIAL ( HID_SC_AAI_FUNCS_START + 47 )
-#define HID_AAI_FUNC_SERIESSUM ( HID_SC_AAI_FUNCS_START + 48 )
-#define HID_AAI_FUNC_QUOTIENT ( HID_SC_AAI_FUNCS_START + 49 )
-#define HID_AAI_FUNC_MROUND ( HID_SC_AAI_FUNCS_START + 50 )
-#define HID_AAI_FUNC_SQRTPI ( HID_SC_AAI_FUNCS_START + 51 )
-#define HID_AAI_FUNC_RANDBETWEEN ( HID_SC_AAI_FUNCS_START + 52 )
-#define HID_AAI_FUNC_BESSELI ( HID_SC_AAI_FUNCS_START + 53 )
-#define HID_AAI_FUNC_BESSELJ ( HID_SC_AAI_FUNCS_START + 54 )
-#define HID_AAI_FUNC_BESSELK ( HID_SC_AAI_FUNCS_START + 55 )
-#define HID_AAI_FUNC_BESSELY ( HID_SC_AAI_FUNCS_START + 56 )
-#define HID_AAI_FUNC_BIN2DEC ( HID_SC_AAI_FUNCS_START + 57 )
-#define HID_AAI_FUNC_BIN2HEX ( HID_SC_AAI_FUNCS_START + 58 )
-#define HID_AAI_FUNC_BIN2OCT ( HID_SC_AAI_FUNCS_START + 59 )
-#define HID_AAI_FUNC_DELTA ( HID_SC_AAI_FUNCS_START + 60 )
-#define HID_AAI_FUNC_DEC2BIN ( HID_SC_AAI_FUNCS_START + 61 )
-#define HID_AAI_FUNC_DEC2HEX ( HID_SC_AAI_FUNCS_START + 62 )
-#define HID_AAI_FUNC_DEC2OCT ( HID_SC_AAI_FUNCS_START + 63 )
-#define HID_AAI_FUNC_ERF ( HID_SC_AAI_FUNCS_START + 64 )
-#define HID_AAI_FUNC_ERFC ( HID_SC_AAI_FUNCS_START + 65 )
-#define HID_AAI_FUNC_GESTEP ( HID_SC_AAI_FUNCS_START + 66 )
-#define HID_AAI_FUNC_HEX2BIN ( HID_SC_AAI_FUNCS_START + 67 )
-#define HID_AAI_FUNC_HEX2DEC ( HID_SC_AAI_FUNCS_START + 68 )
-#define HID_AAI_FUNC_HEX2OCT ( HID_SC_AAI_FUNCS_START + 69 )
-#define HID_AAI_FUNC_IMABS ( HID_SC_AAI_FUNCS_START + 70 )
-#define HID_AAI_FUNC_IMAGINARY ( HID_SC_AAI_FUNCS_START + 71 )
-#define HID_AAI_FUNC_IMPOWER ( HID_SC_AAI_FUNCS_START + 72 )
-#define HID_AAI_FUNC_IMARGUMENT ( HID_SC_AAI_FUNCS_START + 73 )
-#define HID_AAI_FUNC_IMCOS ( HID_SC_AAI_FUNCS_START + 74 )
-#define HID_AAI_FUNC_IMDIV ( HID_SC_AAI_FUNCS_START + 75 )
-#define HID_AAI_FUNC_IMEXP ( HID_SC_AAI_FUNCS_START + 76 )
-#define HID_AAI_FUNC_IMCONJUGATE ( HID_SC_AAI_FUNCS_START + 77 )
-#define HID_AAI_FUNC_IMLN ( HID_SC_AAI_FUNCS_START + 78 )
-#define HID_AAI_FUNC_IMLOG10 ( HID_SC_AAI_FUNCS_START + 79 )
-#define HID_AAI_FUNC_IMLOG2 ( HID_SC_AAI_FUNCS_START + 80 )
-#define HID_AAI_FUNC_IMPRODUCT ( HID_SC_AAI_FUNCS_START + 81 )
-#define HID_AAI_FUNC_IMREAL ( HID_SC_AAI_FUNCS_START + 82 )
-#define HID_AAI_FUNC_IMSIN ( HID_SC_AAI_FUNCS_START + 83 )
-#define HID_AAI_FUNC_IMSUB ( HID_SC_AAI_FUNCS_START + 84 )
-#define HID_AAI_FUNC_IMSUM ( HID_SC_AAI_FUNCS_START + 85 )
-#define HID_AAI_FUNC_IMSQRT ( HID_SC_AAI_FUNCS_START + 86 )
-#define HID_AAI_FUNC_COMPLEX ( HID_SC_AAI_FUNCS_START + 87 )
-#define HID_AAI_FUNC_OCT2BIN ( HID_SC_AAI_FUNCS_START + 88 )
-#define HID_AAI_FUNC_OCT2DEZ ( HID_SC_AAI_FUNCS_START + 89 )
-#define HID_AAI_FUNC_OCT2HEX ( HID_SC_AAI_FUNCS_START + 90 )
-#define HID_AAI_FUNC_CONVERT ( HID_SC_AAI_FUNCS_START + 91 )
-#define HID_AAI_FUNC_FACTDOUBLE ( HID_SC_AAI_FUNCS_START + 92 )
-
-// DateFunc Addin Functions (max.20) -----------------------------------------
-#define HID_DAI_FUNC_DAYSINMONTH ( HID_SC_DAI_FUNCS_START )
-#define HID_DAI_FUNC_DAYSINYEAR ( HID_SC_DAI_FUNCS_START + 1 )
-#define HID_DAI_FUNC_WEEKSINYEAR ( HID_SC_DAI_FUNCS_START + 2 )
-#define HID_DAI_FUNC_DIFFMONTHS ( HID_SC_DAI_FUNCS_START + 3 )
-#define HID_DAI_FUNC_DIFFWEEKS ( HID_SC_DAI_FUNCS_START + 4 )
-#define HID_DAI_FUNC_DIFFYEARS ( HID_SC_DAI_FUNCS_START + 5 )
-#define HID_DAI_FUNC_ROT13 ( HID_SC_DAI_FUNCS_START + 6 )
-
-// Ende Hilfe IDs ------------------------------------------------------------
// ---------------------------------------------------------------------------
// View-Funktionen (max. 100) ------------------------------------------------
diff --git a/sc/inc/scabstdlg.hxx b/sc/inc/scabstdlg.hxx
index 442e62bdd9cb..40711a200e19 100644
--- a/sc/inc/scabstdlg.hxx
+++ b/sc/inc/scabstdlg.hxx
@@ -275,7 +275,7 @@ class AbstractScShowTabDlg : public VclAbstractDialog //add for ScShowTabDlg
public:
virtual void Insert( const String& rString, BOOL bSelected ) = 0;
virtual USHORT GetSelectEntryCount() const = 0;
- virtual void SetDescription(const String& rTitle, const String& rFixedText,ULONG nDlgHelpId, ULONG nLbHelpId ) = 0;
+ virtual void SetDescription(const String& rTitle, const String& rFixedText, const rtl::OString& nDlgHelpId, const rtl::OString& nLbHelpId ) = 0;
virtual String GetSelectEntry(USHORT nPos) const = 0;
virtual USHORT GetSelectEntryPos(USHORT nPos) const = 0;
};
@@ -439,14 +439,14 @@ public:
const String& rTitle,
const String& rEditTitle,
const String& rDefault,
- ULONG nHelpId ,
+ const rtl::OString& sHelpId, const rtl::OString& sEditHelpId,
int nId ) = 0;
virtual AbstractScTabBgColorDlg * CreateScTabBgColorDlg ( Window* pParent, //add for ScTabBgColorDlg
const String& rTitle, //Dialog Title
const String& rTabBgColorNoColorText, //Label for no tab color
const Color& rDefaultColor, //Currently selected Color
- ULONG nHelpId ,
+ const rtl::OString& ,
int nId ) = 0;
virtual AbstractScImportOptionsDlg * CreateScImportOptionsDlg ( Window* pParent, //add for ScImportOptionsDlg
diff --git a/sc/inc/sccommands.h b/sc/inc/sccommands.h
new file mode 100644
index 000000000000..98c26150305e
--- /dev/null
+++ b/sc/inc/sccommands.h
@@ -0,0 +1,336 @@
+/*************************************************************************
+ *
+ * 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 SC_SCCOMMANDS_HRC
+#define SC_SCCOMMANDS_HRC
+
+#define CMD_FID_CHG_ACCEPT ".uno:AcceptChanges"
+#define CMD_SID_OLE_ACTIVATE ".uno:ActivateOLE"
+#define CMD_SID_TABLE_ACTIVATE ".uno:ActivateTable"
+#define CMD_SID_SC_ACTIVECELL ".uno:ActiveCell"
+#define CMD_SID_SC_ACTIVETAB ".uno:ActiveTable"
+#define CMD_FID_TAB_APPEND ".uno:Add"
+#define CMD_SID_CHART_ADDSOURCE ".uno:AddChartData"
+#define CMD_SID_ADD_IN_MANAGER ".uno:AddInManager"
+#define CMD_SID_ADD_PRINTAREA ".uno:AddPrintArea"
+#define CMD_SID_RANGE_ADDRESS ".uno:Address"
+#define CMD_FID_ADJUST_PRINTZOOM ".uno:AdjustPrintZoom"
+#define CMD_SID_ALIGNBLOCK ".uno:AlignBlock"
+#define CMD_SID_ALIGNBOTTOM ".uno:AlignBottom"
+#define CMD_SID_ALIGNCENTERHOR ".uno:AlignHorizontalCenter"
+#define CMD_SID_ALIGNLEFT ".uno:AlignLeft"
+#define CMD_SID_ALIGNRIGHT ".uno:AlignRight"
+#define CMD_SID_ALIGNTOP ".uno:AlignTop"
+#define CMD_SID_ALIGNCENTERVER ".uno:AlignVCenter"
+#define CMD_FID_APPLY_NAME ".uno:ApplyNames"
+#define CMD_SID_DETECTIVE_FILLMODE ".uno:AuditingFillMode"
+#define CMD_FID_AUTOCOMPLETE ".uno:AutoComplete"
+#define CMD_FID_FILL_AUTO ".uno:AutoFill"
+#define CMD_FID_AUTO_CALC ".uno:AutomaticCalculation"
+#define CMD_SID_AUTO_OUTLINE ".uno:AutoOutline"
+#define CMD_SID_DETECTIVE_AUTO ".uno:AutoRefreshArrows"
+#define CMD_SID_AUTO_STYLE ".uno:AutoStyle"
+#define CMD_FID_RECALC ".uno:Calculate"
+#define CMD_FID_HARD_RECALC ".uno:CalculateHard"
+#define CMD_SID_CANCEL ".uno:Cancel"
+#define CMD_SID_SC_CELLS ".uno:Cells"
+#define CMD_SID_SC_CELLTEXT ".uno:CellText"
+#define CMD_SID_CHART_SOURCE ".uno:ChangeChartData"
+#define CMD_SID_CHANGE_PRINTAREA ".uno:ChangePrintArea"
+#define CMD_SID_CHOOSE_DESIGN ".uno:ChooseDesign"
+#define CMD_SID_DETECTIVE_DEL_SUCC ".uno:ClearArrowDependents"
+#define CMD_SID_DETECTIVE_DEL_PRED ".uno:ClearArrowPrecedents"
+#define CMD_SID_DETECTIVE_DEL_ALL ".uno:ClearArrows"
+#define CMD_SID_DELETE_CONTENTS ".uno:ClearContents"
+#define CMD_SID_RANGE_COL ".uno:Column"
+#define CMD_FID_COL_WIDTH ".uno:ColumnWidth"
+#define CMD_FID_CHG_COMMENT ".uno:CommentChange"
+#define CMD_FID_CONDITIONAL_FORMAT ".uno:ConditionalFormat"
+#define CMD_SID_OPENDLG_CONDFRMT ".uno:ConditionalFormatDialog"
+#define CMD_SID_CONSOLIDATE ".uno:ConsolidateExec"
+#define CMD_FID_USE_NAME ".uno:CreateNames"
+#define CMD_SID_CREATE_SW_DRAWVIEW ".uno:CreateSWDrawView"
+#define CMD_SID_RANGE_REGION ".uno:CurrentRegion"
+#define CMD_SID_REFRESH_DBAREA ".uno:DataAreaRefresh"
+#define CMD_SID_OPENDLG_CONSOLIDATE ".uno:DataConsolidate"
+#define CMD_SID_OPENDLG_PIVOTTABLE ".uno:DataDataPilotRun"
+#define CMD_SID_AUTO_FILTER ".uno:DataFilterAutoFilter"
+#define CMD_SID_AUTOFILTER_HIDE ".uno:DataFilterHideAutoFilter"
+#define CMD_SID_UNFILTER ".uno:DataFilterRemoveFilter"
+#define CMD_SID_SPECIAL_FILTER ".uno:DataFilterSpecialFilter"
+#define CMD_SID_FILTER ".uno:DataFilterStandardFilter"
+#define CMD_SID_IMPORT_DATA ".uno:DataImport"
+#define CMD_SID_PIVOT_CREATE ".uno:DataPilotCreate"
+#define CMD_SID_PIVOT_TABLE ".uno:DataPilotExec"
+#define CMD_SID_PIVOT_GET ".uno:DataPilotTables"
+#define CMD_SID_REIMPORT_DATA ".uno:DataReImport"
+#define CMD_SID_DATA_SELECT ".uno:DataSelect"
+#define CMD_SID_SORT ".uno:DataSort"
+#define CMD_SID_SUBTOTALS ".uno:DataSubTotals"
+#define CMD_SID_OLE_DEACTIVATE ".uno:Deactivate"
+#define CMD_SID_DEFINE_DBNAME ".uno:DefineDBName"
+#define CMD_SID_DEFINE_COLROWNAMERANGES ".uno:DefineLabelRange"
+#define CMD_FID_DEFINE_NAME ".uno:DefineName"
+#define CMD_SID_DEFINE_PRINTAREA ".uno:DefinePrintArea"
+#define CMD_FID_DELETE_CELL ".uno:DeleteCell"
+#define CMD_FID_DEL_MANUALBREAKS ".uno:DeleteAllBreaks"
+#define CMD_FID_DEL_COLBRK ".uno:DeleteColumnbreak"
+#define CMD_SID_DEL_COLS ".uno:DeleteColumns"
+#define CMD_SID_PIVOT_KILL ".uno:DeletePivotTable"
+#define CMD_SID_DELETE_PRINTAREA ".uno:DeletePrintArea"
+#define CMD_FID_DEL_ROWBRK ".uno:DeleteRowbreak"
+#define CMD_SID_DEL_ROWS ".uno:DeleteRows"
+#define CMD_SID_DELETE_SCENARIO ".uno:DeleteScenario"
+#define CMD_SID_SELECT_NONE ".uno:Deselect"
+#define CMD_SID_DRAW_CHART ".uno:DrawChart"
+#define CMD_SID_DRAW_NOTEEDIT ".uno:DrawEditNote"
+#define CMD_SID_HFEDIT ".uno:EditHeaderAndFooter"
+#define CMD_SID_LINKS ".uno:EditLinks"
+#define CMD_SID_SC_EDIT_OBJECT ".uno:EditObject"
+#define CMD_SID_OPENDLG_EDIT_PRINTAREA ".uno:EditPrintArea"
+#define CMD_SID_EDIT_SCENARIO ".uno:EditScenario"
+#define CMD_SID_EURO_CONVERTER ".uno:EuroConverter"
+#define CMD_FID_FILL_TO_BOTTOM ".uno:FillDown"
+#define CMD_FID_FILL_TO_LEFT ".uno:FillLeft"
+#define CMD_SID_FILL_NONE ".uno:FillModeEnd"
+#define CMD_SID_FILL_DEL_PRED ".uno:FillModeRemovePredescessor"
+#define CMD_SID_FILL_DEL_SUCC ".uno:FillModeRemoveSuccessor"
+#define CMD_SID_FILL_SELECT ".uno:FillModeSelect"
+#define CMD_SID_FILL_ADD_PRED ".uno:FillModeTracePredescessor"
+#define CMD_SID_FILL_ADD_SUCC ".uno:FillModeTraceSuccessor"
+#define CMD_FID_FILL_TO_RIGHT ".uno:FillRight"
+#define CMD_FID_FILL_SERIES ".uno:FillSeries"
+#define CMD_FID_FILL_TAB ".uno:FillTable"
+#define CMD_FID_FILL_TO_TOP ".uno:FillUp"
+#define CMD_FID_FILTER_OK ".uno:FilterExecute"
+#define CMD_SID_PREVIEW_FIRST ".uno:FirstPage"
+#define CMD_FID_FOCUS_POSWND ".uno:FocusCellAddress"
+#define CMD_FID_CELL_FORMAT ".uno:FormatCellDialog"
+#define CMD_SID_RANGE_FORMULA ".uno:Formula"
+#define CMD_SID_WINDOW_FIX ".uno:FreezePanes"
+#define CMD_FID_FUNCTION_BOX ".uno:FunctionBox"
+#define CMD_SID_OPENDLG_FUNCTION ".uno:FunctionDialog"
+#define CMD_SID_SOLVE ".uno:GoalSeek"
+#define CMD_SID_OPENDLG_SOLVE ".uno:GoalSeekDialog"
+#define CMD_SID_OPENDLG_OPTSOLVER ".uno:SolverDialog"
+#define CMD_SID_VALIDITY_REFERENCE ".uno:ValidityReference"
+#define CMD_SID_CURSORBLKDOWN ".uno:GoDownToEndOfData"
+#define CMD_SID_CURSORBLKDOWN_SEL ".uno:GoDownToEndOfDataSel"
+#define CMD_SID_CURSORPAGELEFT_ ".uno:GoLeftBlock"
+#define CMD_SID_CURSORBLKLEFT ".uno:GoLeftToStartOfData"
+#define CMD_SID_CURSORBLKLEFT_SEL ".uno:GoLeftToStartOfDataSel"
+#define CMD_SID_CURSORPAGERIGHT_ ".uno:GoRightBlock"
+#define CMD_SID_CURSORPAGERIGHT_SEL ".uno:GoRightBlockSel"
+#define CMD_SID_CURSORBLKRIGHT ".uno:GoRightToEndOfData"
+#define CMD_SID_CURSORBLKRIGHT_SEL ".uno:GoRightToEndOfDataSel"
+#define CMD_SID_CURRENTCELL ".uno:GoToCell"
+#define CMD_SID_ALIGNCURSOR ".uno:GoToCurrentCell"
+#define CMD_SID_CURRENTDOC ".uno:GotoDocument"
+#define CMD_SID_CURRENTOBJECT ".uno:GoToObject"
+#define CMD_SID_CURSORBLKUP ".uno:GoUpToStartOfData"
+#define CMD_SID_CURSORBLKUP_SEL ".uno:GoUpToStartOfDataSel"
+#define CMD_FID_TABLE_HIDE ".uno:Hide"
+#define CMD_FID_COL_HIDE ".uno:HideColumn"
+#define CMD_FID_ROW_HIDE ".uno:HideRow"
+#define CMD_SID_H_ALIGNCELL ".uno:HorizontalAlignment"
+#define CMD_SID_ENABLE_HYPHENATION ".uno:Hyphenate"
+#define CMD_FID_INPUTLINE_BLOCK ".uno:InputLineBlock"
+#define CMD_FID_INPUTLINE_ENTER ".uno:InputLineEnter"
+#define CMD_FID_INPUTLINE_MATRIX ".uno:InputLineMatrix"
+#define CMD_SID_TBXCTL_INSCELLS ".uno:InsCellsCtrl"
+#define CMD_FID_INS_TABLE ".uno:Insert"
+#define CMD_FID_INS_TABLE_EXT ".uno:InsertSheetFromFile"
+#define CMD_FID_INS_CELL ".uno:InsertCell"
+#define CMD_FID_INS_CELLSDOWN ".uno:InsertCellsDown"
+#define CMD_FID_INS_CELLSRIGHT ".uno:InsertCellsRight"
+#define CMD_FID_INS_COLBRK ".uno:InsertColumnBreak"
+#define CMD_FID_INS_COLUMN ".uno:InsertColumns"
+#define CMD_FID_INS_CELL_CONTENTS ".uno:InsertContents"
+#define CMD_SID_TBXCTL_INSERT ".uno:InsertCtrl"
+#define CMD_SID_EXTERNAL_SOURCE ".uno:InsertExternalDataSource"
+#define CMD_FID_INSERT_FILE ".uno:InsertFile"
+#define CMD_SID_INS_FUNCTION ".uno:InsertFunction"
+#define CMD_SID_INSERT_MATRIX ".uno:InsertMatrix"
+#define CMD_FID_INSERT_NAME ".uno:InsertName"
+#define CMD_SID_INSERT_SIMAGE ".uno:InsertObjectStarImage"
+#define CMD_SID_INSERT_SMATH ".uno:InsertObjectStarMath"
+#define CMD_FID_INS_ROWBRK ".uno:InsertRowBreak"
+#define CMD_FID_INS_ROW ".uno:InsertRows"
+#define CMD_SID_TBXCTL_INSOBJ ".uno:InsObjCtrl"
+#define CMD_SID_CURSORENTERDOWN ".uno:JumpToNextCell"
+#define CMD_SID_NEXT_TABLE ".uno:JumpToNextTable"
+#define CMD_SID_NEXT_TABLE_SEL ".uno:JumpToNextTableSel"
+#define CMD_SID_NEXT_UNPROTECT ".uno:JumpToNextUnprotected"
+#define CMD_SID_CURSORENTERUP ".uno:JumpToPreviousCell"
+#define CMD_SID_PREV_UNPROTECT ".uno:JumpToPreviousUnprotected"
+#define CMD_SID_PREV_TABLE ".uno:JumpToPrevTable"
+#define CMD_SID_PREV_TABLE_SEL ".uno:JumpToPrevTableSel"
+#define CMD_SID_CURRENTTAB ".uno:JumpToTable"
+#define CMD_SID_PREVIEW_LAST ".uno:LastPage"
+#define CMD_FID_MERGE_ON ".uno:MergeCells"
+#define CMD_FID_MERGE_TOGGLE ".uno:ToggleMergeCells"
+#define CMD_SID_OBJECT_MIRROR ".uno:Mirror"
+#define CMD_FID_TAB_MOVE ".uno:Move"
+#define CMD_FID_TAB_RENAME ".uno:Name"
+#define CMD_SID_PREVIEW_NEXT ".uno:NextPage"
+#define CMD_SID_RANGE_NOTETEXT ".uno:NoteText"
+#define CMD_FID_NOTE_VISIBLE ".uno:NoteVisible"
+#define CMD_SID_DELETE_NOTE ".uno:DeleteNote"
+#define CMD_SID_NUMBER_FORMAT ".uno:NumberFormat"
+#define CMD_SID_NUMBER_CURRENCY ".uno:NumberFormatCurrency"
+#define CMD_SID_NUMBER_DATE ".uno:NumberFormatDate"
+#define CMD_SID_NUMBER_DECDEC ".uno:NumberFormatDecDecimals"
+#define CMD_SID_NUMBER_TWODEC ".uno:NumberFormatDecimal"
+#define CMD_SID_NUMBER_INCDEC ".uno:NumberFormatIncDecimals"
+#define CMD_SID_NUMBER_PERCENT ".uno:NumberFormatPercent"
+#define CMD_SID_NUMBER_SCIENTIFIC ".uno:NumberFormatScientific"
+#define CMD_SID_NUMBER_STANDARD ".uno:NumberFormatStandard"
+#define CMD_SID_NUMBER_TIME ".uno:NumberFormatTime"
+#define CMD_SID_OBJECT_HEIGHT ".uno:ObjectHeight"
+#define CMD_SID_OBJECT_LEFT ".uno:ObjectLeft"
+#define CMD_SID_MIRROR_HORIZONTAL ".uno:ObjectMirrorHorizontal"
+#define CMD_SID_MIRROR_VERTICAL ".uno:ObjectMirrorVertical"
+#define CMD_SID_OBJECT_TOP ".uno:ObjectTop"
+#define CMD_SID_OBJECT_WIDTH ".uno:ObjectWidth"
+#define CMD_SID_RANGE_OFFSET ".uno:Offset"
+#define CMD_SID_OLE_OBJECT ".uno:OleObject"
+#define CMD_SID_ORIGINALSIZE ".uno:OriginalSize"
+#define CMD_FID_NORMALVIEWMODE ".uno:NormalViewMode"
+#define CMD_FID_PAGEBREAKMODE ".uno:PagebreakMode"
+#define CMD_SID_FORMATPAGE ".uno:PageFormatDialog"
+#define CMD_SID_PREVIEW_PREVIOUS ".uno:PreviousPage"
+#define CMD_FID_PROTECT_TABLE ".uno:Protect"
+#define CMD_SID_CHG_PROTECT ".uno:ProtectTraceChangeMode"
+#define CMD_SID_SC_SETTEXT ".uno:PutCell"
+#define CMD_SID_SC_RANGE ".uno:Range"
+#define CMD_SID_PIVOT_RECALC ".uno:RecalcPivotTable"
+#define CMD_SID_DETECTIVE_REFRESH ".uno:RefreshArrows"
+#define CMD_SID_REIMPORT_AFTER_LOAD ".uno:ReImportAfterLoad"
+#define CMD_FID_DELETE_TABLE ".uno:Remove"
+#define CMD_SID_TITLE_DESCRIPTION_OBJECT ".uno:ObjectTitleDescription"
+#define CMD_SID_RENAME_OBJECT ".uno:RenameObject"
+#define CMD_FID_REPEAT_SEARCH ".uno:RepeatSearch"
+#define CMD_FID_REPLACE ".uno:Replace"
+#define CMD_FID_REPLACE_ALL ".uno:ReplaceAll"
+#define CMD_SID_CELL_FORMAT_RESET ".uno:ResetAttributes"
+#define CMD_FID_RESET_PRINTZOOM ".uno:ResetPrintZoom"
+#define CMD_SID_RANGE_ROW ".uno:Row"
+#define CMD_FID_ROW_HEIGHT ".uno:RowHeight"
+#define CMD_SID_SBA_IMPORT ".uno:SbaImport"
+#define CMD_FID_SCALE ".uno:Scale"
+#define CMD_SID_SCENARIOS ".uno:ScenarioManager"
+#define CMD_FID_SEARCH ".uno:Search"
+#define CMD_FID_SEARCH_ALL ".uno:SearchAll"
+#define CMD_SID_MARKAREA ".uno:SelectArea"
+#define CMD_SID_OLE_SELECT ".uno:SelectOLE"
+#define CMD_SID_SELECT_COL ".uno:SelectColumn"
+#define CMD_SID_MARKDATAAREA ".uno:SelectData"
+#define CMD_SID_SELECT_DB ".uno:SelectDB"
+#define CMD_SID_SC_ACTIVEOBJECT ".uno:SelectedObject"
+#define CMD_SID_ACTIVE_OBJ_NAME ".uno:SelectedObjectName"
+#define CMD_SID_SC_SELECTION ".uno:Selection"
+#define CMD_SID_SELECT_ROW ".uno:SelectRow"
+#define CMD_SID_SELECT_SCENARIO ".uno:SelectScenario"
+#define CMD_SID_ANCHOR_CELL ".uno:SetAnchorToCell"
+#define CMD_SID_ANCHOR_PAGE ".uno:SetAnchorToPage"
+#define CMD_SID_SETINPUTMODE ".uno:SetInputMode"
+#define CMD_FID_COL_OPT_WIDTH ".uno:SetOptimalColumnWidth"
+#define CMD_FID_COL_OPT_DIRECT ".uno:SetOptimalColumnWidthDirect"
+#define CMD_FID_ROW_OPT_HEIGHT ".uno:SetOptimalRowHeight"
+#define CMD_FID_TABLE_SHOW ".uno:Show"
+#define CMD_FID_CHG_SHOW ".uno:ShowChanges"
+#define CMD_FID_COL_SHOW ".uno:ShowColumn"
+#define CMD_SID_DETECTIVE_ADD_SUCC ".uno:ShowDependents"
+#define CMD_SID_DETECTIVE_ADD_ERR ".uno:ShowErrors"
+#define CMD_SID_DETECTIVE_INVALID ".uno:ShowInvalid"
+#define CMD_SID_DETECTIVE_ADD_PRED ".uno:ShowPrecedents"
+#define CMD_FID_ROW_SHOW ".uno:ShowRow"
+#define CMD_WID_SIMPLE_REF ".uno:SimpleReferenz"
+#define CMD_SID_SORT_ASCENDING ".uno:SortAscending"
+#define CMD_SID_SORT_DESCENDING ".uno:SortDescending"
+#define CMD_FID_MERGE_OFF ".uno:SplitCell"
+#define CMD_SID_WINDOW_SPLIT ".uno:SplitWindow"
+#define CMD_SID_STANDARD_FONTS ".uno:StandardFonts"
+#define CMD_SID_TEXT_STANDARD ".uno:StandardTextAttributes"
+#define CMD_SID_PSZ_FUNCTION ".uno:StatusBarFunc"
+#define CMD_SID_STATUS_DOCPOS ".uno:StatusDocPos"
+#define CMD_SID_STATUS_SUM ".uno:StatusFunction"
+#define CMD_FID_INPUTLINE_STATUS ".uno:StatusInputLine"
+#define CMD_SID_STATUS_PAGESTYLE ".uno:StatusPageStyle"
+#define CMD_FID_SCALESTATUS ".uno:StatusScale"
+#define CMD_SID_STATUS_SELMODE ".uno:StatusSelectionMode"
+#define CMD_SID_STATUS_SELMODE_ERG ".uno:StatusSelectionModeExp"
+#define CMD_SID_STATUS_SELMODE_ERW ".uno:StatusSelectionModeExt"
+#define CMD_SID_STATUS_SELMODE_NORM ".uno:StatusSelectionModeNorm"
+#define CMD_SID_RANGE_TABLE ".uno:Table"
+#define CMD_SID_TABLES_COUNT ".uno:TableCount"
+#define CMD_SID_TABOP ".uno:TableOperation"
+#define CMD_SID_OPENDLG_TABOP ".uno:TableOperationDialog"
+#define CMD_FID_TAB_MENU_RENAME ".uno:RenameTable"
+#define CMD_SID_TABLES_GET ".uno:Tables"
+#define CMD_FID_TAB_SELECTALL ".uno:TableSelectAll"
+#define CMD_FID_TAB_DESELECTALL ".uno:TableDeselectAll"
+#define CMD_SID_DRAWTEXT_ATTR_DLG ".uno:TextAttributes"
+#define CMD_SID_ASSIGNMACRO ".uno:AssignMacro"
+#define CMD_SID_TEXT_TO_COLUMNS ".uno:TextToColumns"
+#define CMD_SID_RANGE_TEXTVALUE ".uno:TextValue"
+#define CMD_SID_ANCHOR_TOGGLE ".uno:ToggleAnchorType"
+#define CMD_SID_TOGGLE_REL ".uno:ToggleRelative"
+#define CMD_FID_PROTECT_DOC ".uno:ToolProtectionDocument"
+#define CMD_SID_SCOPTIONS ".uno:ToolsOptions"
+#define CMD_FID_CHG_RECORD ".uno:TraceChangeMode"
+#define CMD_SID_ULINE_VAL_DOTTED ".uno:UnderlineDotted"
+#define CMD_SID_ULINE_VAL_DOUBLE ".uno:UnderlineDouble"
+#define CMD_SID_ULINE_VAL_NONE ".uno:UnderlineNone"
+#define CMD_SID_ULINE_VAL_SINGLE ".uno:UnderlineSingle"
+#define CMD_SID_UPDATECHART ".uno:UpdateChart"
+#define CMD_SID_UPDATETABLINKS ".uno:UpdateTableLinks"
+#define CMD_FID_VALIDATION ".uno:Validation"
+#define CMD_SID_RANGE_VALUE ".uno:Value"
+#define CMD_SID_V_ALIGNCELL ".uno:VerticalAlignment"
+#define CMD_FID_TOGGLEINPUTLINE ".uno:InputLineVisible"
+#define CMD_FID_TOGGLEHEADERS ".uno:ViewRowColumnHeaders"
+#define CMD_FID_TOGGLEFORMULA ".uno:ToggleFormula"
+#define CMD_FID_TOGGLESYNTAX ".uno:ViewValueHighlighting"
+#define CMD_FID_TABLE_VISIBLE ".uno:Visible"
+#define CMD_SID_ATTR_ALIGN_LINEBREAK ".uno:WrapText"
+#define CMD_SID_PREVIEW_ZOOMIN ".uno:ZoomIn"
+#define CMD_SID_PREVIEW_ZOOMOUT ".uno:ZoomOut"
+#define CMD_SID_FOCUS_INPUTLINE ".uno:FocusInputLine"
+#define CMD_SID_PREVIEW_CLOSE ".uno:ClosePreview"
+#define CMD_SID_PREVIEW_MARGIN ".uno:Margins"
+#define CMD_SID_PREVIEW_SCALINGFACTOR ".uno:ScalingFactor"
+#define CMD_SID_SELECT_TABLES ".uno:SelectTables"
+#define CMD_SID_DP_FILTER ".uno:DataPilotFilter"
+#define CMD_SID_SCATTR_PROTECTION ".uno:Protection"
+#define CMD_SID_MARKARRAYFORMULA ".uno:SelectArrayFormula"
+#define CMD_FID_TAB_RTL ".uno:SheetRightToLeft"
+#define CMD_SID_SHARE_DOC ".uno:ShareDocument"
+#define CMD_FID_TAB_EVENTS ".uno:TableEvents"
+#define CMD_FID_TAB_MENU_SET_TAB_BG_COLOR ".uno:SetTabBgColor"
+#define CMD_FID_TAB_SET_TAB_BG_COLOR ".uno:TabBgColor"
+
+#endif
diff --git a/sc/inc/scdll.hxx b/sc/inc/scdll.hxx
index 1d2304c2a0f2..a10c794b9c43 100644
--- a/sc/inc/scdll.hxx
+++ b/sc/inc/scdll.hxx
@@ -67,7 +67,6 @@ public:
static void Init(); // called directly after loading the DLL
static void Exit(); // called directly befor unloading the DLL
-//UNUSED2008-05 static void FillStatusBar(StatusBar &rBar);
static ULONG DetectFilter( SfxMedium& rMedium, const SfxFilter** ppFilter,
SfxFilterFlags nMust, SfxFilterFlags nDont );
};
diff --git a/sc/inc/scextopt.hxx b/sc/inc/scextopt.hxx
index d7586fb8df95..ad3fd4b1b51e 100644
--- a/sc/inc/scextopt.hxx
+++ b/sc/inc/scextopt.hxx
@@ -115,13 +115,11 @@ public:
ScExtTabSettings& GetOrCreateTabSettings( SCTAB nTab );
/** Returns the number of sheet codenames. */
- size_t GetCodeNameCount() const;
+ SCTAB GetCodeNameCount() const;
/** Returns the specified codename (empty string = no codename). */
- const String& GetCodeName( size_t nIdx ) const;
+ const String& GetCodeName( SCTAB nTab ) const;
/** Appends a codename for a sheet. */
- void AppendCodeName( const String& rCodeName );
- void SetCodeName( const String& rCodeName, size_t nIdx );
- void DeleteCodeName( size_t nIdx );
+ void SetCodeName( SCTAB nTab, const String& rCodeName );
private:
::std::auto_ptr< ScExtDocOptionsImpl > mxImpl;
diff --git a/sc/inc/scfuncs.hrc b/sc/inc/scfuncs.hrc
index 8188deca5f40..c44e34fb46cd 100644
--- a/sc/inc/scfuncs.hrc
+++ b/sc/inc/scfuncs.hrc
@@ -40,293 +40,3 @@
#define ID_FUNCTION_OFFSET 90
-// ID zaehlt ab 1, Hilfe-IDs muessen aber bei HID_SC_FUNC_START anfangen
-#define HID_SC_FUNC_DUMMY (HID_SC_FUNC_START-ID_FUNCTION_OFFSET)
-
-#define HID_FUNC_DBANZAHL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+1)
-#define HID_FUNC_DBANZAHL2 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+2)
-#define HID_FUNC_DBMITTELWERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+3)
-#define HID_FUNC_DBAUSZUG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+4)
-#define HID_FUNC_DBMAX (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+5)
-#define HID_FUNC_DBMIN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+6)
-#define HID_FUNC_DBPRODUKT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+7)
-#define HID_FUNC_DBSTDABW (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+8)
-#define HID_FUNC_DBSTDABWN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+9)
-#define HID_FUNC_DBSUMME (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+10)
-#define HID_FUNC_DBVARIANZ (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+11)
-#define HID_FUNC_DBVARIANZEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+12)
-
-#define HID_FUNC_DATUM (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+1)
-#define HID_FUNC_DATWERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+2)
-#define HID_FUNC_TAG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+3)
-#define HID_FUNC_TAGE360 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+4)
-#define HID_FUNC_STUNDE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+5)
-#define HID_FUNC_MINUTE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+6)
-#define HID_FUNC_MONAT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+7)
-#define HID_FUNC_JETZT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+8)
-#define HID_FUNC_SEKUNDE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+9)
-#define HID_FUNC_ZEIT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+10)
-#define HID_FUNC_ZEITWERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+11)
-#define HID_FUNC_HEUTE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+12)
-#define HID_FUNC_WOCHENTAG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+13)
-#define HID_FUNC_JAHR (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+14)
-#define HID_FUNC_TAGE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+15)
-#define HID_FUNC_KALENDERWOCHE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+16)
-#define HID_FUNC_OSTERSONNTAG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+17)
-
-#define HID_FUNC_BW (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+1)
-#define HID_FUNC_ZW (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+2)
-#define HID_FUNC_ZZR (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+3)
-#define HID_FUNC_RMZ (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+4)
-#define HID_FUNC_ZINS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+5)
-#define HID_FUNC_ZINSZ (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+6)
-#define HID_FUNC_KAPZ (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+7)
-#define HID_FUNC_KUMKAPITAL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+8)
-#define HID_FUNC_KUMZINSZ (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+9)
-#define HID_FUNC_DIA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+10)
-#define HID_FUNC_LIA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+11)
-#define HID_FUNC_GDA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+12)
-#define HID_FUNC_GDA2 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+13)
-#define HID_FUNC_VDB (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+14)
-#define HID_FUNC_EFFEKTIV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+15)
-#define HID_FUNC_NOMINAL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+16)
-#define HID_FUNC_NBW (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+17)
-#define HID_FUNC_IKV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+18)
-#define HID_FUNC_LAUFZEIT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+19)
-#define HID_FUNC_ZGZ (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+20)
-#define HID_FUNC_QIKV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+21)
-#define HID_FUNC_ISPMT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+22)
-
-#define HID_FUNC_ISTBEZUG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+1)
-#define HID_FUNC_ISTFEHL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+2)
-#define HID_FUNC_ISTFEHLER (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+3)
-#define HID_FUNC_ISTLEER (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+4)
-#define HID_FUNC_ISTLOG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+5)
-#define HID_FUNC_ISTNV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+6)
-#define HID_FUNC_ISTKTEXT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+7)
-#define HID_FUNC_ISTTEXT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+8)
-#define HID_FUNC_ISTZAHL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+9)
-#define HID_FUNC_ISTFORMEL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+10)
-#define HID_FUNC_N (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+11)
-#define HID_FUNC_NV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+12)
-#define HID_FUNC_TYP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+13)
-#define HID_FUNC_AKTUELL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+14)
-#define HID_FUNC_FORMEL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+15)
-#define HID_FUNC_ZELLE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+16)
-#define HID_FUNC_INFO (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+17)
-
-
-#define HID_FUNC_FALSCH (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_LOGIC*ID_FUNCTION_OFFSET)+1)
-#define HID_FUNC_NICHT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_LOGIC*ID_FUNCTION_OFFSET)+2)
-#define HID_FUNC_WAHR (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_LOGIC*ID_FUNCTION_OFFSET)+3)
-#define HID_FUNC_WENN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_LOGIC*ID_FUNCTION_OFFSET)+4)
-#define HID_FUNC_ODER (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_LOGIC*ID_FUNCTION_OFFSET)+5)
-#define HID_FUNC_UND (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_LOGIC*ID_FUNCTION_OFFSET)+6)
-
-#define HID_FUNC_ABS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+1)
-#define HID_FUNC_POTENZ (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+2)
-#define HID_FUNC_ANZAHLLEEREZELLEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+3)
-#define HID_FUNC_PI (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+4)
-#define HID_FUNC_SUMME (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+5)
-#define HID_FUNC_QUADRATESUMME (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+6)
-#define HID_FUNC_PRODUKT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+7)
-#define HID_FUNC_SUMMEWENN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+8)
-#define HID_FUNC_ZAEHLENWENN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+9)
-#define HID_FUNC_WURZEL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+10)
-#define HID_FUNC_ZUFALLSZAHL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+11)
-#define HID_FUNC_ISTGERADE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+12)
-#define HID_FUNC_ISTUNGERADE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+13)
-#define HID_FUNC_KOMBINATIONEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+14)
-#define HID_FUNC_KOMBINATIONEN2 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+15)
-#define HID_FUNC_ARCCOS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+16)
-#define HID_FUNC_ARCSIN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+17)
-#define HID_FUNC_ARCOSHYP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+18)
-#define HID_FUNC_ARSINHYP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+19)
-#define HID_FUNC_ARCCOT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+20)
-#define HID_FUNC_ARCTAN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+21)
-#define HID_FUNC_ARCOTHYP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+22)
-#define HID_FUNC_ARTANHYP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+23)
-#define HID_FUNC_COS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+24)
-#define HID_FUNC_SIN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+25)
-#define HID_FUNC_COT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+26)
-#define HID_FUNC_TAN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+27)
-#define HID_FUNC_COSHYP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+28)
-#define HID_FUNC_SINHYP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+29)
-#define HID_FUNC_COTHYP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+30)
-#define HID_FUNC_TANHYP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+31)
-#define HID_FUNC_ARCTAN2 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+32)
-#define HID_FUNC_DEG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+33)
-#define HID_FUNC_RAD (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+34)
-#define HID_FUNC_EXP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+35)
-#define HID_FUNC_LOG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+36)
-#define HID_FUNC_LN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+37)
-#define HID_FUNC_LOG10 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+38)
-#define HID_FUNC_FAKULTAET (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+39)
-#define HID_FUNC_REST (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+40)
-#define HID_FUNC_VORZEICHEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+41)
-#define HID_FUNC_TEILERGEBNIS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+42)
-#define HID_FUNC_GANZZAHL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+43)
-#define HID_FUNC_KUERZEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+44)
-#define HID_FUNC_RUNDEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+45)
-#define HID_FUNC_AUFRUNDEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+46)
-#define HID_FUNC_ABRUNDEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+47)
-#define HID_FUNC_GERADE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+48)
-#define HID_FUNC_UNGERADE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+49)
-#define HID_FUNC_OBERGRENZE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+50)
-#define HID_FUNC_UNTERGRENZE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+51)
-#define HID_FUNC_GGT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+52)
-#define HID_FUNC_KGV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+53)
-#define HID_FUNC_UMRECHNEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+54)
-#define HID_FUNC_EUROCONVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+55)
-
-#define HID_FUNC_MTRANS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+1)
-#define HID_FUNC_MMULT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+2)
-#define HID_FUNC_MDET (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+3)
-#define HID_FUNC_MINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+4)
-#define HID_FUNC_EINHEITSMATRIX (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+5)
-#define HID_FUNC_SUMMENPRODUKT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+6)
-#define HID_FUNC_SUMMEX2MY2 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+7)
-#define HID_FUNC_SUMMEX2PY2 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+8)
-#define HID_FUNC_SUMMEXMY2 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+9)
-#define HID_FUNC_HAEUFIGKEIT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+10)
-#define HID_FUNC_RGP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+11)
-#define HID_FUNC_RKP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+12)
-#define HID_FUNC_TREND (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+13)
-#define HID_FUNC_VARIATION (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+14)
-
-#define HID_FUNC_ANZAHL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+1)
-#define HID_FUNC_ANZAHL2 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+2)
-#define HID_FUNC_MAX (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+3)
-#define HID_FUNC_MIN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+4)
-#define HID_FUNC_VARIANZ (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+5)
-#define HID_FUNC_VARIANZEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+6)
-#define HID_FUNC_STABW (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+7)
-#define HID_FUNC_STABWN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+8)
-#define HID_FUNC_MITTELWERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+9)
-#define HID_FUNC_SUMQUADABW (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+10)
-#define HID_FUNC_MITTELABW (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+11)
-#define HID_FUNC_SCHIEFE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+12)
-#define HID_FUNC_KURT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+13)
-#define HID_FUNC_GEOMITTEL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+14)
-#define HID_FUNC_HARMITTEL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+15)
-#define HID_FUNC_MODALWERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+16)
-#define HID_FUNC_MEDIAN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+17)
-#define HID_FUNC_QUANTIL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+18)
-#define HID_FUNC_QUARTILE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+19)
-#define HID_FUNC_KGROESSTE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+20)
-#define HID_FUNC_KKLEINSTE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+21)
-#define HID_FUNC_QUANTILSRANG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+22)
-#define HID_FUNC_RANG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+23)
-#define HID_FUNC_GESTUTZTMITTEL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+24)
-#define HID_FUNC_WAHRSCHBEREICH (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+25)
-#define HID_FUNC_B (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+26)
-#define HID_FUNC_PHI (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+27)
-#define HID_FUNC_GAUSS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+28)
-#define HID_FUNC_FISHER (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+29)
-#define HID_FUNC_FISHERINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+30)
-#define HID_FUNC_BINOMVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+31)
-#define HID_FUNC_NEGBINOMVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+32)
-#define HID_FUNC_KRITBINOM (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+33)
-#define HID_FUNC_POISSON (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+34)
-#define HID_FUNC_NORMVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+35)
-#define HID_FUNC_NORMINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+36)
-#define HID_FUNC_STANDNORMVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+37)
-#define HID_FUNC_STANDNORMINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+38)
-#define HID_FUNC_LOGNORMVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+39)
-#define HID_FUNC_LOGINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+40)
-#define HID_FUNC_EXPONVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+41)
-#define HID_FUNC_GAMMAVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+42)
-#define HID_FUNC_GAMMAINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+43)
-#define HID_FUNC_GAMMALN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+44)
-#define HID_FUNC_BETAVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+45)
-#define HID_FUNC_BETAINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+46)
-#define HID_FUNC_WEIBULL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+47)
-#define HID_FUNC_HYPGEOMVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+48)
-#define HID_FUNC_TVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+49)
-#define HID_FUNC_TINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+50)
-#define HID_FUNC_FVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+51)
-#define HID_FUNC_FINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+52)
-#define HID_FUNC_CHIVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+53)
-#define HID_FUNC_CHIINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+54)
-#define HID_FUNC_STANDARDISIERUNG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+55)
-#define HID_FUNC_VARIATIONEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+56)
-#define HID_FUNC_VARIATIONEN2 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+57)
-#define HID_FUNC_KONFIDENZ (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+58)
-#define HID_FUNC_GTEST (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+59)
-#define HID_FUNC_CHITEST (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+60)
-#define HID_FUNC_FTEST (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+61)
-#define HID_FUNC_TTEST (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+62)
-#define HID_FUNC_BESTIMMTHEITSMASS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+63)
-#define HID_FUNC_ACHSENABSCHNITT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+64)
-#define HID_FUNC_STEIGUNG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+65)
-#define HID_FUNC_STFEHLERYX (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+66)
-#define HID_FUNC_PEARSON (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+67)
-#define HID_FUNC_KORREL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+68)
-#define HID_FUNC_KOVAR (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+69)
-#define HID_FUNC_SCHAETZER (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+70)
-#define HID_FUNC_MINA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+71)
-#define HID_FUNC_MAXA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+72)
-#define HID_FUNC_MITTELWERTA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+73)
-#define HID_FUNC_STABWA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+74)
-#define HID_FUNC_STABWNA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+75)
-#define HID_FUNC_VARIANZA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+76)
-#define HID_FUNC_VARIANZENA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+77)
-#define HID_FUNC_CHISQDIST (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+78)
-#define HID_FUNC_CHISQINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+79)
-#define HID_FUNC_GAMMA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+80)
-
-#define HID_FUNC_ADRESSE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+1)
-#define HID_FUNC_BEREICHE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+2)
-#define HID_FUNC_WAHL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+3)
-#define HID_FUNC_SPALTE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+4)
-#define HID_FUNC_ZEILE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+5)
-#define HID_FUNC_SPALTEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+6)
-#define HID_FUNC_ZEILEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+7)
-#define HID_FUNC_WVERWEIS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+8)
-#define HID_FUNC_SVERWEIS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+9)
-#define HID_FUNC_INDEX (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+10)
-#define HID_FUNC_INDIREKT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+11)
-#define HID_FUNC_VERWEIS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+12)
-#define HID_FUNC_VERGLEICH (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+13)
-#define HID_FUNC_VERSCHIEBUNG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+14)
-#define HID_FUNC_FEHLERTYP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+15)
-#define HID_FUNC_VORLAGE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+16)
-#define HID_FUNC_DDE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+17)
-#define HID_FUNC_TABELLE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+18)
-#define HID_FUNC_TABELLEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+19)
-#define HID_FUNC_HYPERLINK (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+20)
-#define HID_FUNC_GETPIVOTDATA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+21)
-
-#define HID_FUNC_CODE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+1)
-#define HID_FUNC_DM (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+2)
-#define HID_FUNC_ZEICHEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+3)
-#define HID_FUNC_SAEUBERN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+4)
-#define HID_FUNC_VERKETTEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+5)
-#define HID_FUNC_IDENTISCH (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+6)
-#define HID_FUNC_FINDEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+7)
-#define HID_FUNC_SUCHEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+8)
-#define HID_FUNC_GLAETTEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+9)
-#define HID_FUNC_GROSS2 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+10)
-#define HID_FUNC_GROSS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+11)
-#define HID_FUNC_KLEIN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+12)
-#define HID_FUNC_WERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+13)
-#define HID_FUNC_TEXT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+14)
-#define HID_FUNC_T (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+15)
-#define HID_FUNC_ERSETZEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+16)
-#define HID_FUNC_FEST (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+17)
-#define HID_FUNC_LAENGE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+18)
-#define HID_FUNC_LINKS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+19)
-#define HID_FUNC_RECHTS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+20)
-#define HID_FUNC_TEIL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+21)
-#define HID_FUNC_WIEDERHOLEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+22)
-#define HID_FUNC_WECHSELN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+23)
-#define HID_FUNC_BASIS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+24)
-#define HID_FUNC_DEZIMAL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+25)
-#define HID_FUNC_ROEMISCH (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+26)
-#define HID_FUNC_ARABISCH (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+27)
-#define HID_FUNC_BAHTTEXT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+28)
-#define HID_FUNC_JIS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+29)
-#define HID_FUNC_ASC (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+30)
-#define HID_FUNC_UNICODE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+31)
-#define HID_FUNC_UNICHAR (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+32)
-#define HID_FUNC_NUMBERVALUE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+33)
diff --git a/sc/inc/scmatrix.hxx b/sc/inc/scmatrix.hxx
index 9857d675b7ab..b788672aa715 100644
--- a/sc/inc/scmatrix.hxx
+++ b/sc/inc/scmatrix.hxx
@@ -99,6 +99,7 @@ class SC_DLLPUBLIC ScMatrix
mutable ULONG nRefCnt; // reference count
SCSIZE nColCount;
SCSIZE nRowCount;
+ bool mbCloneIfConst; // Whether the matrix is cloned with a CloneIfConst() call.
void ResetIsString();
void DeleteIsString();
@@ -171,11 +172,19 @@ public:
/** If nC*nR results in more than GetElementsMax() entries, a 1x1 matrix is
created instead and a double error value (errStackOverflow) is set.
Compare nC and nR with a GetDimensions() call to check. */
- ScMatrix( SCSIZE nC, SCSIZE nR) : nRefCnt(0) { CreateMatrix( nC, nR); }
+ ScMatrix( SCSIZE nC, SCSIZE nR) : nRefCnt(0), mbCloneIfConst(true) { CreateMatrix( nC, nR); }
/** Clone the matrix. */
ScMatrix* Clone() const;
+ /** Clone the matrix if mbCloneIfConst (immutable) is set, otherwise
+ return _this_ matrix, to be assigned to a ScMatrixRef. */
+ ScMatrix* CloneIfConst();
+
+ /** Set the matrix to (im)mutable for CloneIfConst(), only the interpreter
+ should do this and know the consequences. */
+ inline void SetImmutable( bool bVal ) { mbCloneIfConst = bVal; }
+
/**
* Resize the matrix to specified new dimension. Note that this operation
* clears all stored values.
diff --git a/sc/inc/scmod.hxx b/sc/inc/scmod.hxx
index bd5d40709cd4..e1d9ab0fd4b9 100644
--- a/sc/inc/scmod.hxx
+++ b/sc/inc/scmod.hxx
@@ -155,7 +155,6 @@ public:
ScModule( SfxObjectFactory* pFact );
virtual ~ScModule();
- virtual void FillStatusBar(StatusBar &rBar);
virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
virtual void ConfigurationChanged( utl::ConfigurationBroadcaster*, sal_uInt32 );
void DeleteCfg();
diff --git a/sc/inc/sheetevents.hxx b/sc/inc/sheetevents.hxx
index 8f52efb990f7..bb27f5cf2068 100755..100644
--- a/sc/inc/sheetevents.hxx
+++ b/sc/inc/sheetevents.hxx
@@ -59,6 +59,8 @@ public:
void SetScript(sal_Int32 nEvent, const rtl::OUString* pNew);
static rtl::OUString GetEventName(sal_Int32 nEvent);
+ static sal_Int32 GetVbaSheetEventId(sal_Int32 nEvent);
+ static sal_Int32 GetVbaDocumentEventId(sal_Int32 nEvent);
};
#endif
diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx
index 78e5875b6879..63cefe22626a 100644
--- a/sc/inc/table.hxx
+++ b/sc/inc/table.hxx
@@ -628,12 +628,12 @@ public:
// nPPT fuer Test auf Veraenderung
void SetManualHeight( SCROW nStartRow, SCROW nEndRow, BOOL bManual );
- USHORT GetColWidth( SCCOL nCol );
- SC_DLLPUBLIC USHORT GetRowHeight( SCROW nRow, SCROW* pStartRow = NULL, SCROW* pEndRow = NULL, bool bHiddenAsZero = true );
- ULONG GetRowHeight( SCROW nStartRow, SCROW nEndRow );
- ULONG GetScaledRowHeight( SCROW nStartRow, SCROW nEndRow, double fScale );
- ULONG GetColOffset( SCCOL nCol );
- ULONG GetRowOffset( SCROW nRow );
+ USHORT GetColWidth( SCCOL nCol ) const;
+ SC_DLLPUBLIC USHORT GetRowHeight( SCROW nRow, SCROW* pStartRow = NULL, SCROW* pEndRow = NULL, bool bHiddenAsZero = true ) const;
+ ULONG GetRowHeight( SCROW nStartRow, SCROW nEndRow ) const;
+ ULONG GetScaledRowHeight( SCROW nStartRow, SCROW nEndRow, double fScale ) const;
+ ULONG GetColOffset( SCCOL nCol ) const;
+ ULONG GetRowOffset( SCROW nRow ) const;
/**
* Get the last row such that the height of row 0 to the end row is as
@@ -643,7 +643,7 @@ public:
*
* @return SCROW last row of the range within specified height.
*/
- SCROW GetRowForHeight(ULONG nHeight);
+ SCROW GetRowForHeight(ULONG nHeight) const;
USHORT GetOriginalWidth( SCCOL nCol ) const;
USHORT GetOriginalHeight( SCROW nRow ) const;
@@ -683,6 +683,8 @@ public:
void UpdatePageBreaks( const ScRange* pUserArea );
void RemoveManualBreaks();
BOOL HasManualBreaks() const;
+ void SetRowManualBreaks( const ::std::set<SCROW>& rBreaks );
+ void SetColManualBreaks( const ::std::set<SCCOL>& rBreaks );
void GetAllRowBreaks(::std::set<SCROW>& rBreaks, bool bPage, bool bManual) const;
void GetAllColBreaks(::std::set<SCCOL>& rBreaks, bool bPage, bool bManual) const;
@@ -711,33 +713,33 @@ public:
::com::sun::star::uno::Sequence<
::com::sun::star::sheet::TablePageBreakData> GetRowBreakData() const;
- bool RowHidden(SCROW nRow, SCROW* pFirstRow = NULL, SCROW* pLastRow = NULL);
- bool RowHidden(SCROW nRow, SCROW& rLastRow);
- bool HasHiddenRows(SCROW nStartRow, SCROW nEndRow);
- bool ColHidden(SCCOL nCol, SCCOL& rLastCol);
- bool ColHidden(SCCOL nCol, SCCOL* pFirstCol = NULL, SCCOL* pLastCol = NULL);
+ bool RowHidden(SCROW nRow, SCROW* pFirstRow = NULL, SCROW* pLastRow = NULL) const;
+ bool RowHidden(SCROW nRow, SCROW& rLastRow) const;
+ bool HasHiddenRows(SCROW nStartRow, SCROW nEndRow) const;
+ bool ColHidden(SCCOL nCol, SCCOL& rLastCol) const;
+ bool ColHidden(SCCOL nCol, SCCOL* pFirstCol = NULL, SCCOL* pLastCol = NULL) const;
void SetRowHidden(SCROW nStartRow, SCROW nEndRow, bool bHidden);
void SetColHidden(SCCOL nStartCol, SCCOL nEndCol, bool bHidden);
void CopyColHidden(ScTable& rTable, SCCOL nStartCol, SCCOL nEndCol);
void CopyRowHidden(ScTable& rTable, SCROW nStartRow, SCROW nEndRow);
void CopyRowHeight(ScTable& rSrcTable, SCROW nStartRow, SCROW nEndRow, SCROW nSrcOffset);
- SCROW FirstVisibleRow(SCROW nStartRow, SCROW nEndRow);
- SCROW LastVisibleRow(SCROW nStartRow, SCROW nEndRow);
- SCROW CountVisibleRows(SCROW nStartRow, SCROW nEndRow);
- sal_uInt32 GetTotalRowHeight(SCROW nStartRow, SCROW nEndRow);
+ SCROW FirstVisibleRow(SCROW nStartRow, SCROW nEndRow) const;
+ SCROW LastVisibleRow(SCROW nStartRow, SCROW nEndRow) const;
+ SCROW CountVisibleRows(SCROW nStartRow, SCROW nEndRow) const;
+ sal_uInt32 GetTotalRowHeight(SCROW nStartRow, SCROW nEndRow) const;
- SCCOLROW LastHiddenColRow(SCCOLROW nPos, bool bCol);
+ SCCOLROW LastHiddenColRow(SCCOLROW nPos, bool bCol) const;
- bool RowFiltered(SCROW nRow, SCROW* pFirstRow = NULL, SCROW* pLastRow = NULL);
- bool ColFiltered(SCCOL nCol, SCCOL* pFirstCol = NULL, SCCOL* pLastCol = NULL);
- bool HasFilteredRows(SCROW nStartRow, SCROW nEndRow);
+ bool RowFiltered(SCROW nRow, SCROW* pFirstRow = NULL, SCROW* pLastRow = NULL) const;
+ bool ColFiltered(SCCOL nCol, SCCOL* pFirstCol = NULL, SCCOL* pLastCol = NULL) const;
+ bool HasFilteredRows(SCROW nStartRow, SCROW nEndRow) const;
void CopyColFiltered(ScTable& rTable, SCCOL nStartCol, SCCOL nEndCol);
void CopyRowFiltered(ScTable& rTable, SCROW nStartRow, SCROW nEndRow);
void SetRowFiltered(SCROW nStartRow, SCROW nEndRow, bool bFiltered);
void SetColFiltered(SCCOL nStartCol, SCCOL nEndCol, bool bFiltered);
- SCROW FirstNonFilteredRow(SCROW nStartRow, SCROW nEndRow);
- SCROW LastNonFilteredRow(SCROW nStartRow, SCROW nEndRow);
- SCROW CountNonFilteredRows(SCROW nStartRow, SCROW nEndRow);
+ SCROW FirstNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const;
+ SCROW LastNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const;
+ SCROW CountNonFilteredRows(SCROW nStartRow, SCROW nEndRow) const;
void SyncColRowFlags();
diff --git a/sc/inc/unoguard.hxx b/sc/inc/unoguard.hxx
index 0768eada24d7..e5e57e959e7b 100644
--- a/sc/inc/unoguard.hxx
+++ b/sc/inc/unoguard.hxx
@@ -30,7 +30,7 @@
#include <vos/mutex.hxx>
-class ScUnoGuard : public NAMESPACE_VOS(OGuard)
+class ScUnoGuard : public vos::OGuard
{
public:
ScUnoGuard();
diff --git a/sc/inc/unonames.hxx b/sc/inc/unonames.hxx
index 2d011f425398..1e56743d8129 100644
--- a/sc/inc/unonames.hxx
+++ b/sc/inc/unonames.hxx
@@ -565,6 +565,7 @@
#define SC_UNO_FIELD_SUBTOTALNAME "FieldSubtotalName"
#define SC_UNO_GRANDTOTAL_NAME "GrandTotalName"
#define SC_UNO_HAS_HIDDEN_MEMBER "HasHiddenMember"
+#define SC_UNO_FLAGS "Flags"
// (preliminary:)
#define SC_UNO_REFVALUE "ReferenceValue"
diff --git a/sc/prj/build.lst b/sc/prj/build.lst
index afdd953d2274..08d9f97b23f4 100755..100644
--- a/sc/prj/build.lst
+++ b/sc/prj/build.lst
@@ -48,3 +48,10 @@ sc sc\addin\datefunc nmake - all sc_addfu sc_add sc_sdi sc_inc NULL
sc sc\addin\rot13 nmake - all sc_adrot sc_add sc_sdi sc_inc NULL
sc sc\addin\util nmake - all sc_adutil sc_addfu sc_adrot sc_sdi sc_inc NULL
sc sc\util nmake - all sc_util sc_addfu sc_adrot sc_adutil sc_app sc_attr sc_cctrl sc_cosrc sc_data sc_dbgui sc_dif sc_docsh sc_drfnc sc_excel sc_form sc_html sc_lotus sc_qpro sc_misc sc_name sc_nvipi sc_opt sc_page sc_rtf sc_scalc sc_style sc_tool sc_uisrc sc_undo sc_unobj sc_view sc_xcl97 sc_xml sc_acc sc_ftools sc_inc sc_vba NULL
+
+# remarked due to the fact, key press is need in this test.
+# sc sc\qa\complex\calcPreview nmake - all qa_calcpreview NULL
+
+sc sc\qa\complex\cellRanges nmake - all qa_cellranges sc_util NULL
+#sc sc\qa\complex\dataPilot nmake - all qa_datapilot qa_datapilot_ifacetst_beans qa_datapilot_ifacetst_container qa_datapilot_ifacetst_sheet sc_util NULL
+sc sc\qa\complex\sc nmake - all qa_sc sc_util NULL
diff --git a/sc/prj/d.lst b/sc/prj/d.lst
index 6f4e95203bed..a0d4c1290bf9 100644
--- a/sc/prj/d.lst
+++ b/sc/prj/d.lst
@@ -32,3 +32,6 @@ mkdir: %_DEST%\xml%_EXT%\uiconfig\modules\scalc\statusbar
..\uiconfig\scalc\statusbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\scalc\statusbar\*.xml
..\%__SRC%\bin\*-layout.zip %_DEST%\pck%_EXT%\*.*
+..\%__SRC%\misc\sc.component %_DEST%\xml%_EXT%\sc.component
+..\%__SRC%\misc\scd.component %_DEST%\xml%_EXT%\scd.component
+..\%__SRC%\misc\vbaobj.component %_DEST%\xml%_EXT%\vbaobj.component
diff --git a/sc/qa/complex/calcPreview/TestDocument.java b/sc/qa/complex/calcPreview/TestDocument.java
new file mode 100644
index 000000000000..a568556e62f4
--- /dev/null
+++ b/sc/qa/complex/calcPreview/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.calcPreview;
+
+import java.io.File;
+import org.openoffice.test.OfficeFileUrl;
+
+final class TestDocument {
+ public static String getUrl(String name) {
+ return OfficeFileUrl.getAbsolute(new File("test_documents", name));
+ }
+
+ private TestDocument() {}
+}
diff --git a/sc/qa/complex/calcPreview/ViewForwarder.java b/sc/qa/complex/calcPreview/ViewForwarder.java
index 160dc1ebd20a..1065e94295a6 100755
--- a/sc/qa/complex/calcPreview/ViewForwarder.java
+++ b/sc/qa/complex/calcPreview/ViewForwarder.java
@@ -27,7 +27,7 @@
package complex.calcPreview;
-import complexlib.ComplexTestCase;
+// import complexlib.ComplexTestCase;
import com.sun.star.awt.XWindow;
import com.sun.star.container.XIndexAccess;
@@ -35,13 +35,13 @@ import com.sun.star.frame.XController;
import com.sun.star.frame.XDispatch;
import com.sun.star.frame.XDispatchProvider;
import com.sun.star.frame.XModel;
-import com.sun.star.lang.XComponent;
+// import com.sun.star.lang.XComponent;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.sheet.XSpreadsheet;
-import com.sun.star.sheet.XSpreadsheetDocument;
+// import com.sun.star.sheet.XSpreadsheetDocument;
import com.sun.star.sheet.XSpreadsheets;
import com.sun.star.table.XCell;
-import com.sun.star.uno.Any;
+// import com.sun.star.uno.Any;
import com.sun.star.uno.AnyConverter;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XInterface;
@@ -59,7 +59,7 @@ import util.SOfficeFactory;
import util.utils;
import com.sun.star.beans.XPropertySet;
-import com.sun.star.beans.XPropertySetInfo;
+// import com.sun.star.beans.XPropertySetInfo;
import com.sun.star.container.XNameAccess;
import com.sun.star.lang.XComponent;
import com.sun.star.sheet.XHeaderFooterContent;
@@ -67,20 +67,30 @@ import com.sun.star.sheet.XSpreadsheetDocument;
import com.sun.star.style.XStyle;
import com.sun.star.style.XStyleFamiliesSupplier;
import com.sun.star.text.XText;
-import com.sun.star.drawing.XDrawPageSupplier;
-import com.sun.star.drawing.XDrawPage;
-import com.sun.star.drawing.XShape;
-import com.sun.star.drawing.XShapes;
+// import com.sun.star.drawing.XDrawPageSupplier;
+// import com.sun.star.drawing.XDrawPage;
+// import com.sun.star.drawing.XShape;
+// import com.sun.star.drawing.XShapes;
+
+// import com.sun.star.beans.Property;
+// import com.sun.star.lang.XServiceInfo;
-import com.sun.star.beans.Property;
-import com.sun.star.lang.XServiceInfo;
+
+
+// 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.*;
/**
* A complex test for the preview of Calc documents. This complex test
* needs interaction from the user: documents have to be resized and moved.
*/
-public class ViewForwarder extends ComplexTestCase {
+public class ViewForwarder {
/** The MultiServiceFactory **/
private XMultiServiceFactory mXMSF = null;
@@ -88,34 +98,40 @@ public class ViewForwarder extends ComplexTestCase {
/** Get all test methods.
* @return The test methods.
*/
- public String[] getTestMethodNames() {
- return new String[]{"checkPositiveViewForwarder",
- "checkNegativeViewForwarder",
- "checkPreviewHeaderCells",
- "checkPreviewShape"
- };
- }
+// public String[] getTestMethodNames() {
+// return new String[]{"checkPositiveViewForwarder",
+// "checkNegativeViewForwarder",
+// "checkPreviewHeaderCells",
+// "checkPreviewShape"
+// };
+// }
/**
* Get a MultiServiceFactory from the Office before the test.
*/
- public void before() {
- mXMSF = (XMultiServiceFactory)param.getMSF();
+ @Before public void before()
+ {
+ mXMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ // SOfficeFactory SOF = SOfficeFactory.getFactory(mXMSF);
+
+ // param = new TestParameters();
+ // param.put("ServiceFactory", xMsf);
+ // mXMSF = (XMultiServiceFactory)param.getMSF();
}
/** Create a spreadsheet document, insert some text, header and footer.
* Let the user resize the document and check the contents.
*/
- public void checkPositiveViewForwarder() {
+ @Test public void checkPositiveViewForwarder() {
SOfficeFactory SOF = SOfficeFactory.getFactory( mXMSF );
XSpreadsheetDocument xSpreadsheetDoc = null;
try {
- log.println("Creating a spreadsheet document");
+ System.out.println("Creating a spreadsheet document");
xSpreadsheetDoc = SOF.createCalcDoc(null);
} catch (com.sun.star.uno.Exception e) {
- failed(e.getMessage());
+ fail(e.getMessage());
return;
}
@@ -125,7 +141,7 @@ public class ViewForwarder extends ComplexTestCase {
XCell xCell = null;
try {
XSpreadsheets oSheets = xSpreadsheetDoc.getSheets() ;
- XIndexAccess oIndexSheets = (XIndexAccess)
+ XIndexAccess oIndexSheets =
UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
Object o = oIndexSheets.getByIndex(0);
XSpreadsheet oSheet = (XSpreadsheet)AnyConverter.toObject(
@@ -138,23 +154,23 @@ public class ViewForwarder extends ComplexTestCase {
xCell = oSheet.getCellByPosition(0, 2) ;
xCell.setFormula("Cell 2");
} catch(com.sun.star.lang.IllegalArgumentException e) {
- log.println("Exception ceating relation :");
- failed(e.getMessage());
+ System.out.println("Exception ceating relation :");
+ fail(e.getMessage());
} catch(com.sun.star.lang.WrappedTargetException e) {
- log.println("Exception ceating relation :");
- failed(e.getMessage());
+ System.out.println("Exception ceating relation :");
+ fail(e.getMessage());
} catch(com.sun.star.lang.IndexOutOfBoundsException e) {
- log.println("Exception ceating relation :");
- failed(e.getMessage());
+ System.out.println("Exception ceating relation :");
+ fail(e.getMessage());
}
- XModel aModel = (XModel)
+ XModel aModel =
UnoRuntime.queryInterface(XModel.class, xSpreadsheetDoc);
XController xController = aModel.getCurrentController();
// get page styles
- XStyleFamiliesSupplier StyleFam = (XStyleFamiliesSupplier)
+ XStyleFamiliesSupplier StyleFam =
UnoRuntime.queryInterface(
XStyleFamiliesSupplier.class,
xSpreadsheetDoc );
@@ -170,17 +186,17 @@ public class ViewForwarder extends ComplexTestCase {
StdStyle = (XStyle)AnyConverter.toObject(
new com.sun.star.uno.Type(XStyle.class), o);
} catch(com.sun.star.lang.IllegalArgumentException e) {
- failed(e.getMessage());
+ fail(e.getMessage());
} catch(com.sun.star.lang.WrappedTargetException e){
- failed(e.getMessage());
+ fail(e.getMessage());
return;
} catch(com.sun.star.container.NoSuchElementException e){
- failed(e.getMessage());
+ fail(e.getMessage());
return;
}
//get the property-set
- final XPropertySet PropSet = (XPropertySet)
+ final XPropertySet PropSet =
UnoRuntime.queryInterface(XPropertySet.class, StdStyle);
XHeaderFooterContent RPHFC = null;
@@ -192,12 +208,12 @@ public class ViewForwarder extends ComplexTestCase {
new com.sun.star.uno.Type(XHeaderFooterContent.class), o);
} catch(com.sun.star.lang.IllegalArgumentException e) {
- failed(e.getMessage());
+ fail(e.getMessage());
} catch(com.sun.star.lang.WrappedTargetException e){
- failed(e.getMessage());
+ fail(e.getMessage());
return;
} catch(com.sun.star.beans.UnknownPropertyException e){
- failed(e.getMessage());
+ fail(e.getMessage());
return;
}
@@ -218,12 +234,12 @@ public class ViewForwarder extends ComplexTestCase {
RPHFC = (XHeaderFooterContent)AnyConverter.toObject(
new com.sun.star.uno.Type(XHeaderFooterContent.class), o);
} catch(com.sun.star.lang.IllegalArgumentException e) {
- failed(e.getMessage());
+ fail(e.getMessage());
} catch(com.sun.star.lang.WrappedTargetException e){
- failed(e.getMessage());
+ fail(e.getMessage());
return;
} catch(com.sun.star.beans.UnknownPropertyException e){
- failed(e.getMessage());
+ fail(e.getMessage());
return;
}
@@ -239,9 +255,9 @@ public class ViewForwarder extends ComplexTestCase {
// switching to 'Page Preview' mode
try {
- XDispatchProvider xDispProv = (XDispatchProvider)
+ XDispatchProvider xDispProv =
UnoRuntime.queryInterface(XDispatchProvider.class, xController);
- XURLTransformer xParser = (com.sun.star.util.XURLTransformer)
+ XURLTransformer xParser =
UnoRuntime.queryInterface(XURLTransformer.class,
mXMSF.createInstance("com.sun.star.util.URLTransformer"));
// Because it's an in/out parameter we must use an
@@ -253,9 +269,11 @@ public class ViewForwarder extends ComplexTestCase {
URL aURL = aParseURL[0];
XDispatch xDispatcher = xDispProv.queryDispatch(aURL, "", 0);
if(xDispatcher != null)
+ {
xDispatcher.dispatch( aURL, null );
+ }
} catch (com.sun.star.uno.Exception e) {
- failed("Couldn't change mode");
+ fail("Couldn't change mode");
return;
}
@@ -263,7 +281,7 @@ public class ViewForwarder extends ComplexTestCase {
Thread.sleep(500);
} catch (InterruptedException ex) {}
- log.println("Press any key after resizing ");
+ System.out.println("Press any key after resizing ");
try{
byte[]b = new byte[16];
System.in.read(b);
@@ -283,34 +301,34 @@ public class ViewForwarder extends ComplexTestCase {
(xRoot, AccessibleRole.HEADER, "").getAccessibleChild(0);
oObj = parent.getAccessibleContext().getAccessibleChild(0);
} catch (com.sun.star.lang.IndexOutOfBoundsException iabe) {
- failed(iabe.getMessage());
+ fail(iabe.getMessage());
return;
}
- log.println("ImplementationName " + utils.getImplName(oObj));
+ System.out.println("ImplementationName " + utils.getImplName(oObj));
- XAccessibleComponent accPC = (XAccessibleComponent)
+ XAccessibleComponent accPC =
UnoRuntime.queryInterface(XAccessibleComponent.class, parent);
- log.println("Parent-BoundsX= "+accPC.getBounds().X);
- log.println("Parent-BoundsY= "+accPC.getBounds().Y);
- log.println("Parent-BoundsWidth= "+accPC.getBounds().Width);
- log.println("Parent-BoundsHeight= "+accPC.getBounds().Height);
+ System.out.println("Parent-BoundsX= "+accPC.getBounds().X);
+ System.out.println("Parent-BoundsY= "+accPC.getBounds().Y);
+ System.out.println("Parent-BoundsWidth= "+accPC.getBounds().Width);
+ System.out.println("Parent-BoundsHeight= "+accPC.getBounds().Height);
- XAccessibleComponent accPPC = (XAccessibleComponent)
+ XAccessibleComponent accPPC =
UnoRuntime.queryInterface(XAccessibleComponent.class,
parent.getAccessibleContext().getAccessibleParent());
- log.println("P-Parent-BoundsX= "+accPPC.getBounds().X);
- log.println("P-Parent-BoundsY= "+accPPC.getBounds().Y);
- log.println("P-Parent-BoundsWidth= "+accPPC.getBounds().Width);
- log.println("P-Parent-BoundsHeight= "+accPPC.getBounds().Height);
+ System.out.println("P-Parent-BoundsX= "+accPPC.getBounds().X);
+ System.out.println("P-Parent-BoundsY= "+accPPC.getBounds().Y);
+ System.out.println("P-Parent-BoundsWidth= "+accPPC.getBounds().Width);
+ System.out.println("P-Parent-BoundsHeight= "+accPPC.getBounds().Height);
try {
Thread.sleep(500);
} catch (InterruptedException ex) {}
- log.println("Press any key when the second line is on top");
+ System.out.println("Press any key when the second line is on top");
try{
byte[]b = new byte[16];
System.in.read(b);
@@ -319,46 +337,46 @@ public class ViewForwarder extends ComplexTestCase {
}
try {
- log.println("ChildCount: "+
+ System.out.println("ChildCount: "+
parent.getAccessibleContext().getAccessibleChildCount());
- log.println("Getting child 0 again");
+ System.out.println("Getting child 0 again");
oObj = parent.getAccessibleContext().getAccessibleChild(0);
} catch (com.sun.star.lang.IndexOutOfBoundsException iabe) {
- failed(iabe.getMessage());
+ fail(iabe.getMessage());
return;
}
- XAccessibleText accT = (XAccessibleText)
+ XAccessibleText accT =
UnoRuntime.queryInterface(XAccessibleText.class, oObj);
- log.println("Getting the text: "+accT.getText());
+ System.out.println("Getting the text: "+accT.getText());
- XAccessibleComponent accC = (XAccessibleComponent)
+ XAccessibleComponent accC =
UnoRuntime.queryInterface(XAccessibleComponent.class, oObj);
- log.println("BoundsX= "+accC.getBounds().X);
- log.println("BoundsY= "+accC.getBounds().Y);
- log.println("BoundsWidth= "+accC.getBounds().Width);
- log.println("BoundsHeight= "+accC.getBounds().Height);
+ System.out.println("BoundsX= "+accC.getBounds().X);
+ System.out.println("BoundsY= "+accC.getBounds().Y);
+ System.out.println("BoundsWidth= "+accC.getBounds().Width);
+ System.out.println("BoundsHeight= "+accC.getBounds().Height);
- accPC = (XAccessibleComponent)
+ accPC =
UnoRuntime.queryInterface(XAccessibleComponent.class, parent);
- log.println("Parent-BoundsX= "+accPC.getBounds().X);
- log.println("Parent-BoundsY= "+accPC.getBounds().Y);
- log.println("Parent-BoundsWidth= "+accPC.getBounds().Width);
- log.println("Parent-BoundsHeight= "+accPC.getBounds().Height);
+ System.out.println("Parent-BoundsX= "+accPC.getBounds().X);
+ System.out.println("Parent-BoundsY= "+accPC.getBounds().Y);
+ System.out.println("Parent-BoundsWidth= "+accPC.getBounds().Width);
+ System.out.println("Parent-BoundsHeight= "+accPC.getBounds().Height);
- accPPC = (XAccessibleComponent)
+ accPPC =
UnoRuntime.queryInterface(XAccessibleComponent.class,
parent.getAccessibleContext().getAccessibleParent());
- log.println("P-Parent-BoundsX= "+accPPC.getBounds().X);
- log.println("P-Parent-BoundsY= "+accPPC.getBounds().Y);
- log.println("P-Parent-BoundsWidth= "+accPPC.getBounds().Width);
- log.println("P-Parent-BoundsHeight= "+accPPC.getBounds().Height);
+ System.out.println("P-Parent-BoundsX= "+accPPC.getBounds().X);
+ System.out.println("P-Parent-BoundsY= "+accPPC.getBounds().Y);
+ System.out.println("P-Parent-BoundsWidth= "+accPPC.getBounds().Width);
+ System.out.println("P-Parent-BoundsHeight= "+accPPC.getBounds().Height);
- log.println("Press any key when the footer is visible.");
+ System.out.println("Press any key when the footer is visible.");
try{
byte[]b = new byte[16];
System.in.read(b);
@@ -370,53 +388,53 @@ public class ViewForwarder extends ComplexTestCase {
parent = at.getAccessibleObjectForRole
(xRoot, AccessibleRole.FOOTER, "").getAccessibleChild(0);
} catch (com.sun.star.lang.IndexOutOfBoundsException iabe) {
- failed(iabe.getMessage());
+ fail(iabe.getMessage());
return;
}
- accPC = (XAccessibleComponent)
+ accPC =
UnoRuntime.queryInterface(XAccessibleComponent.class, parent);
try {
- log.println("ChildCount: "+
+ System.out.println("ChildCount: "+
parent.getAccessibleContext().getAccessibleChildCount());
- log.println("Getting child 0 again");
+ System.out.println("Getting child 0 again");
oObj = parent.getAccessibleContext().getAccessibleChild(0);
} catch (com.sun.star.lang.IndexOutOfBoundsException iabe) {
- failed(iabe.getMessage());
+ fail(iabe.getMessage());
return;
}
- accT = (XAccessibleText)
+ accT =
UnoRuntime.queryInterface(XAccessibleText.class, oObj);
- log.println("Getting the text: "+accT.getText());
+ System.out.println("Getting the text: "+accT.getText());
- accC = (XAccessibleComponent)
+ accC =
UnoRuntime.queryInterface(XAccessibleComponent.class, oObj);
- log.println("BoundsX= "+accC.getBounds().X);
- log.println("BoundsY= "+accC.getBounds().Y);
- log.println("BoundsWidth= "+accC.getBounds().Width);
- log.println("BoundsHeight= "+accC.getBounds().Height);
+ System.out.println("BoundsX= "+accC.getBounds().X);
+ System.out.println("BoundsY= "+accC.getBounds().Y);
+ System.out.println("BoundsWidth= "+accC.getBounds().Width);
+ System.out.println("BoundsHeight= "+accC.getBounds().Height);
- accPC = (XAccessibleComponent)
+ accPC =
UnoRuntime.queryInterface(XAccessibleComponent.class, parent);
- log.println("Parent-BoundsX= "+accPC.getBounds().X);
- log.println("Parent-BoundsY= "+accPC.getBounds().Y);
- log.println("Parent-BoundsWidth= "+accPC.getBounds().Width);
- log.println("Parent-BoundsHeight= "+accPC.getBounds().Height);
+ System.out.println("Parent-BoundsX= "+accPC.getBounds().X);
+ System.out.println("Parent-BoundsY= "+accPC.getBounds().Y);
+ System.out.println("Parent-BoundsWidth= "+accPC.getBounds().Width);
+ System.out.println("Parent-BoundsHeight= "+accPC.getBounds().Height);
- accPPC = (XAccessibleComponent)
+ accPPC =
UnoRuntime.queryInterface(XAccessibleComponent.class,
parent.getAccessibleContext().getAccessibleParent());
- log.println("P-Parent-BoundsX= "+accPPC.getBounds().X);
- log.println("P-Parent-BoundsY= "+accPPC.getBounds().Y);
- log.println("P-Parent-BoundsWidth= "+accPPC.getBounds().Width);
- log.println("P-Parent-BoundsHeight= "+accPPC.getBounds().Height);
+ System.out.println("P-Parent-BoundsX= "+accPPC.getBounds().X);
+ System.out.println("P-Parent-BoundsY= "+accPPC.getBounds().Y);
+ System.out.println("P-Parent-BoundsWidth= "+accPPC.getBounds().Width);
+ System.out.println("P-Parent-BoundsHeight= "+accPPC.getBounds().Height);
- log.println("Press any key when the page content is on top");
+ System.out.println("Press any key when the page content is on top");
try{
byte[]b = new byte[16];
System.in.read(b);
@@ -428,22 +446,22 @@ public class ViewForwarder extends ComplexTestCase {
parent = at.getAccessibleObjectForRole
(xRoot, AccessibleRole.DOCUMENT, "").getAccessibleChild(0);
} catch (com.sun.star.lang.IndexOutOfBoundsException iabe) {
- failed(iabe.getMessage());
+ fail(iabe.getMessage());
return;
}
System.out.println("PARENT: " + parent.getAccessibleContext().getAccessibleName());
- accPC = (XAccessibleComponent)
+ accPC =
UnoRuntime.queryInterface(XAccessibleComponent.class, parent);
int cCount = 0;
try {
cCount =
parent.getAccessibleContext().getAccessibleChildCount();
- log.println("ChildCount: "+cCount);
- log.println("Getting child 0 again");
+ System.out.println("ChildCount: "+cCount);
+ System.out.println("Getting child 0 again");
oObj = parent.getAccessibleContext().getAccessibleChild(0);
} catch (com.sun.star.lang.IndexOutOfBoundsException iabe) {
- failed(iabe.getMessage());
+ fail(iabe.getMessage());
return;
}
@@ -452,7 +470,7 @@ public class ViewForwarder extends ComplexTestCase {
XAccessible xA = parent.getAccessibleContext().getAccessibleChild(i);
System.out.println("NAME object " + i + ": " + xA.getAccessibleContext().getAccessibleName());
} catch (com.sun.star.lang.IndexOutOfBoundsException iabe) {
- failed(iabe.getMessage());
+ fail(iabe.getMessage());
return;
}
}
@@ -460,43 +478,47 @@ public class ViewForwarder extends ComplexTestCase {
System.out.println("SERVICES:");
util.dbg.getSuppServices(oObj);
- XAccessibleValue accV = (XAccessibleValue)
+ XAccessibleValue accV =
UnoRuntime.queryInterface(XAccessibleValue.class, oObj);
Object o = accV.getCurrentValue();
if (o instanceof String)
+ {
System.out.println("Value: " + (String)o);
+ }
else
+ {
System.out.println("Name of Object: " + o.getClass().getName());
- log.println("Getting the value: "+accV.getCurrentValue());
+ }
+ System.out.println("Getting the value: "+accV.getCurrentValue());
- accC = (XAccessibleComponent)
+ accC =
UnoRuntime.queryInterface(XAccessibleComponent.class, oObj);
- log.println("BoundsX= "+accC.getBounds().X);
- log.println("BoundsY= "+accC.getBounds().Y);
- log.println("BoundsWidth= "+accC.getBounds().Width);
- log.println("BoundsHeight= "+accC.getBounds().Height);
+ System.out.println("BoundsX= "+accC.getBounds().X);
+ System.out.println("BoundsY= "+accC.getBounds().Y);
+ System.out.println("BoundsWidth= "+accC.getBounds().Width);
+ System.out.println("BoundsHeight= "+accC.getBounds().Height);
- accPC = (XAccessibleComponent)
+ accPC =
UnoRuntime.queryInterface(XAccessibleComponent.class, parent);
- log.println("Parent-BoundsX= "+accPC.getBounds().X);
- log.println("Parent-BoundsY= "+accPC.getBounds().Y);
- log.println("Parent-BoundsWidth= "+accPC.getBounds().Width);
- log.println("Parent-BoundsHeight= "+accPC.getBounds().Height);
+ System.out.println("Parent-BoundsX= "+accPC.getBounds().X);
+ System.out.println("Parent-BoundsY= "+accPC.getBounds().Y);
+ System.out.println("Parent-BoundsWidth= "+accPC.getBounds().Width);
+ System.out.println("Parent-BoundsHeight= "+accPC.getBounds().Height);
- accPPC = (XAccessibleComponent)
+ accPPC =
UnoRuntime.queryInterface(XAccessibleComponent.class,
parent.getAccessibleContext().getAccessibleParent());
- log.println("P-Parent-BoundsX= "+accPPC.getBounds().X);
- log.println("P-Parent-BoundsY= "+accPPC.getBounds().Y);
- log.println("P-Parent-BoundsWidth= "+accPPC.getBounds().Width);
- log.println("P-Parent-BoundsHeight= "+accPPC.getBounds().Height);
+ System.out.println("P-Parent-BoundsX= "+accPPC.getBounds().X);
+ System.out.println("P-Parent-BoundsY= "+accPPC.getBounds().Y);
+ System.out.println("P-Parent-BoundsWidth= "+accPPC.getBounds().Width);
+ System.out.println("P-Parent-BoundsHeight= "+accPPC.getBounds().Height);
- XComponent xComp = (XComponent)UnoRuntime.queryInterface(
+ XComponent xComp = UnoRuntime.queryInterface(
XComponent.class, xSpreadsheetDoc);
xComp.dispose();
}
@@ -512,15 +534,15 @@ public class ViewForwarder extends ComplexTestCase {
* Create a spreadsheet document, insert some text, header and footer.
* Let the user resize the document and check the contents.
*/
- public void checkNegativeViewForwarder() {
+ @Test public void checkNegativeViewForwarder() {
SOfficeFactory SOF = SOfficeFactory.getFactory( mXMSF );
XSpreadsheetDocument xSpreadsheetDoc = null;
try {
- log.println("Creating a spreadsheet document");
+ System.out.println("Creating a spreadsheet document");
xSpreadsheetDoc = SOF.createCalcDoc(null);
} catch (com.sun.star.uno.Exception e) {
- failed(e.getMessage());
+ fail(e.getMessage());
return;
}
@@ -530,7 +552,7 @@ public class ViewForwarder extends ComplexTestCase {
XCell xCell = null;
try {
XSpreadsheets oSheets = xSpreadsheetDoc.getSheets() ;
- XIndexAccess oIndexSheets = (XIndexAccess)
+ XIndexAccess oIndexSheets =
UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
Object o = oIndexSheets.getByIndex(0);
XSpreadsheet oSheet = (XSpreadsheet)AnyConverter.toObject(
@@ -543,23 +565,23 @@ public class ViewForwarder extends ComplexTestCase {
xCell = oSheet.getCellByPosition(0, 2) ;
xCell.setFormula("Cell 2");
} catch(com.sun.star.lang.IllegalArgumentException e) {
- log.println("Exception ceating relation :");
- failed(e.getMessage());
+ System.out.println("Exception ceating relation :");
+ fail(e.getMessage());
} catch(com.sun.star.lang.WrappedTargetException e) {
- log.println("Exception ceating relation :");
- failed(e.getMessage());
+ System.out.println("Exception ceating relation :");
+ fail(e.getMessage());
} catch(com.sun.star.lang.IndexOutOfBoundsException e) {
- log.println("Exception ceating relation :");
- failed(e.getMessage());
+ System.out.println("Exception ceating relation :");
+ fail(e.getMessage());
}
- XModel aModel = (XModel)
+ XModel aModel =
UnoRuntime.queryInterface(XModel.class, xSpreadsheetDoc);
XController xController = aModel.getCurrentController();
// get page styles
- XStyleFamiliesSupplier StyleFam = (XStyleFamiliesSupplier)
+ XStyleFamiliesSupplier StyleFam =
UnoRuntime.queryInterface(
XStyleFamiliesSupplier.class,
xSpreadsheetDoc );
@@ -575,34 +597,34 @@ public class ViewForwarder extends ComplexTestCase {
StdStyle = (XStyle)AnyConverter.toObject(
new com.sun.star.uno.Type(XStyle.class), o);
} catch(com.sun.star.lang.IllegalArgumentException e) {
- failed(e.getMessage());
+ fail(e.getMessage());
} catch(com.sun.star.lang.WrappedTargetException e){
- failed(e.getMessage());
+ fail(e.getMessage());
return;
} catch(com.sun.star.container.NoSuchElementException e){
- failed(e.getMessage());
+ fail(e.getMessage());
return;
}
//get the property-set
- final XPropertySet PropSet = (XPropertySet)
+ final XPropertySet PropSet =
UnoRuntime.queryInterface(XPropertySet.class, StdStyle);
XHeaderFooterContent RPHFC = null;
// get the header
- log.println( "Creating a test environment" );
+ System.out.println( "Creating a test environment" );
try {
Object o = PropSet.getPropertyValue("RightPageHeaderContent");
RPHFC = (XHeaderFooterContent)AnyConverter.toObject(
new com.sun.star.uno.Type(XHeaderFooterContent.class), o);
} catch(com.sun.star.lang.IllegalArgumentException e) {
- failed(e.getMessage());
+ fail(e.getMessage());
} catch(com.sun.star.lang.WrappedTargetException e){
- failed(e.getMessage());
+ fail(e.getMessage());
return;
} catch(com.sun.star.beans.UnknownPropertyException e){
- failed(e.getMessage());
+ fail(e.getMessage());
return;
}
@@ -623,12 +645,12 @@ public class ViewForwarder extends ComplexTestCase {
RPHFC = (XHeaderFooterContent)AnyConverter.toObject(
new com.sun.star.uno.Type(XHeaderFooterContent.class), o);
} catch(com.sun.star.lang.IllegalArgumentException e) {
- failed(e.getMessage());
+ fail(e.getMessage());
} catch(com.sun.star.lang.WrappedTargetException e){
- failed(e.getMessage());
+ fail(e.getMessage());
return;
} catch(com.sun.star.beans.UnknownPropertyException e){
- failed(e.getMessage());
+ fail(e.getMessage());
return;
}
@@ -644,9 +666,9 @@ public class ViewForwarder extends ComplexTestCase {
// switching to 'Page Preview' mode
try {
- XDispatchProvider xDispProv = (XDispatchProvider)
+ XDispatchProvider xDispProv =
UnoRuntime.queryInterface(XDispatchProvider.class, xController);
- XURLTransformer xParser = (com.sun.star.util.XURLTransformer)
+ XURLTransformer xParser =
UnoRuntime.queryInterface(XURLTransformer.class,
mXMSF.createInstance("com.sun.star.util.URLTransformer"));
// Because it's an in/out parameter we must use an
@@ -658,9 +680,11 @@ public class ViewForwarder extends ComplexTestCase {
URL aURL = aParseURL[0];
XDispatch xDispatcher = xDispProv.queryDispatch(aURL, "", 0);
if(xDispatcher != null)
+ {
xDispatcher.dispatch( aURL, null );
+ }
} catch (com.sun.star.uno.Exception e) {
- failed("Couldn't change mode");
+ fail("Couldn't change mode");
return;
}
@@ -668,7 +692,7 @@ public class ViewForwarder extends ComplexTestCase {
Thread.sleep(500);
} catch (InterruptedException ex) {}
- log.println("Press any key after resizing ");
+ System.out.println("Press any key after resizing ");
try{
byte[]b = new byte[16];
System.in.read(b);
@@ -688,34 +712,34 @@ public class ViewForwarder extends ComplexTestCase {
(xRoot, AccessibleRole.HEADER, "").getAccessibleChild(0);
oObj = parent.getAccessibleContext().getAccessibleChild(0);
} catch (com.sun.star.lang.IndexOutOfBoundsException iabe) {
- failed(iabe.getMessage());
+ fail(iabe.getMessage());
return;
}
- log.println("ImplementationName " + utils.getImplName(oObj));
+ System.out.println("ImplementationName " + utils.getImplName(oObj));
- XAccessibleComponent accPC = (XAccessibleComponent)
+ XAccessibleComponent accPC =
UnoRuntime.queryInterface(XAccessibleComponent.class, parent);
- log.println("Parent-BoundsX= "+accPC.getBounds().X);
- log.println("Parent-BoundsY= "+accPC.getBounds().Y);
- log.println("Parent-BoundsWidth= "+accPC.getBounds().Width);
- log.println("Parent-BoundsHeight= "+accPC.getBounds().Height);
+ System.out.println("Parent-BoundsX= "+accPC.getBounds().X);
+ System.out.println("Parent-BoundsY= "+accPC.getBounds().Y);
+ System.out.println("Parent-BoundsWidth= "+accPC.getBounds().Width);
+ System.out.println("Parent-BoundsHeight= "+accPC.getBounds().Height);
- XAccessibleComponent accPPC = (XAccessibleComponent)
+ XAccessibleComponent accPPC =
UnoRuntime.queryInterface(XAccessibleComponent.class,
parent.getAccessibleContext().getAccessibleParent());
- log.println("P-Parent-BoundsX= "+accPPC.getBounds().X);
- log.println("P-Parent-BoundsY= "+accPPC.getBounds().Y);
- log.println("P-Parent-BoundsWidth= "+accPPC.getBounds().Width);
- log.println("P-Parent-BoundsHeight= "+accPPC.getBounds().Height);
+ System.out.println("P-Parent-BoundsX= "+accPPC.getBounds().X);
+ System.out.println("P-Parent-BoundsY= "+accPPC.getBounds().Y);
+ System.out.println("P-Parent-BoundsWidth= "+accPPC.getBounds().Width);
+ System.out.println("P-Parent-BoundsHeight= "+accPPC.getBounds().Height);
try {
Thread.sleep(500);
} catch (InterruptedException ex) {}
- log.println("Press any key when the header is not visible.");
+ System.out.println("Press any key when the header is not visible.");
try{
byte[]b = new byte[16];
System.in.read(b);
@@ -726,24 +750,26 @@ public class ViewForwarder extends ComplexTestCase {
int childCount = 0;
childCount =
parent.getAccessibleContext().getAccessibleChildCount();
- log.println("ChildCount: "+childCount);
+ System.out.println("ChildCount: "+childCount);
if (childCount != 0)
- failed("Could access header although it was not visible on page.");
+ {
+ fail("Could access header although it was not visible on page.");
+ }
try {
parent = at.getAccessibleObjectForRole
(xRoot, AccessibleRole.FOOTER, "").getAccessibleChild(0);
} catch (com.sun.star.lang.IndexOutOfBoundsException iabe) {
- failed(iabe.getMessage());
+ fail(iabe.getMessage());
return;
}
- accPC = (XAccessibleComponent)
+ accPC =
UnoRuntime.queryInterface(XAccessibleComponent.class, parent);
- log.println("Press any key when the footer is not visible.");
+ System.out.println("Press any key when the footer is not visible.");
try{
byte[]b = new byte[16];
System.in.read(b);
@@ -753,12 +779,14 @@ public class ViewForwarder extends ComplexTestCase {
childCount =
parent.getAccessibleContext().getAccessibleChildCount();
- log.println("ChildCount: "+childCount);
+ System.out.println("ChildCount: "+childCount);
if (childCount != 0)
- failed("Could access footer although it was not visible on page.");
+ {
+ fail("Could access footer although it was not visible on page.");
+ }
- XComponent xComp = (XComponent)UnoRuntime.queryInterface(
+ XComponent xComp =UnoRuntime.queryInterface(
XComponent.class, xSpreadsheetDoc);
xComp.dispose();
@@ -770,21 +798,21 @@ public class ViewForwarder extends ComplexTestCase {
/**
* Check the preview of header cells
*/
- public void checkPreviewHeaderCells() {
+ @Test public void checkPreviewHeaderCells() {
XInterface oObj = null;
SOfficeFactory SOF = SOfficeFactory.getFactory( mXMSF);
XSpreadsheetDocument xSpreadsheetDoc = null;
try {
- log.println("Creating a spreadsheet document");
+ System.out.println("Creating a spreadsheet document");
xSpreadsheetDoc = SOF.createCalcDoc(null);
} catch (com.sun.star.uno.Exception e) {
- failed(e.getMessage());
+ fail(e.getMessage());
return;
}
- XModel xModel = (XModel)
+ XModel xModel =
UnoRuntime.queryInterface(XModel.class, xSpreadsheetDoc);
XController xController = xModel.getCurrentController();
@@ -792,70 +820,70 @@ public class ViewForwarder extends ComplexTestCase {
//setting value of cell A1
XCell xCell = null;
try {
- log.println("Getting spreadsheet") ;
+ System.out.println("Getting spreadsheet") ;
XSpreadsheets oSheets = xSpreadsheetDoc.getSheets() ;
- XIndexAccess oIndexSheets = (XIndexAccess)
+ XIndexAccess oIndexSheets =
UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
Object o = oIndexSheets.getByIndex(0);
XSpreadsheet oSheet = (XSpreadsheet)AnyConverter.toObject(
new com.sun.star.uno.Type(XSpreadsheet.class), o);
- log.println("Getting a cell from sheet") ;
+ System.out.println("Getting a cell from sheet") ;
xCell = oSheet.getCellByPosition(0, 0);
} catch(com.sun.star.lang.IllegalArgumentException e) {
- failed(e.getMessage());
+ fail(e.getMessage());
} catch (com.sun.star.lang.WrappedTargetException e) {
- failed(e.getMessage());
+ fail(e.getMessage());
return;
} catch (com.sun.star.lang.IndexOutOfBoundsException e) {
- failed(e.getMessage());
+ fail(e.getMessage());
return;
}
xCell.setFormula("Value");
//setting property 'PrintHeaders' of the style 'Default'
- XStyleFamiliesSupplier xSFS = (XStyleFamiliesSupplier)
+ XStyleFamiliesSupplier xSFS =
UnoRuntime.queryInterface(XStyleFamiliesSupplier.class,
xSpreadsheetDoc);
XNameAccess xNA = xSFS.getStyleFamilies();
XPropertySet xPropSet = null;
try {
Object oPageStyles = xNA.getByName("PageStyles");
- xNA = (XNameAccess)
+ xNA =
UnoRuntime.queryInterface(XNameAccess.class, oPageStyles);
Object oDefStyle = xNA.getByName("Default");
- xPropSet = (XPropertySet)
+ xPropSet =
UnoRuntime.queryInterface(XPropertySet.class, oDefStyle);
} catch(com.sun.star.lang.WrappedTargetException e) {
- failed(e.getMessage());
+ fail(e.getMessage());
return;
} catch(com.sun.star.container.NoSuchElementException e) {
- failed(e.getMessage());
+ fail(e.getMessage());
return;
}
try {
xPropSet.setPropertyValue("PrintHeaders", new Boolean(true));
} catch(com.sun.star.lang.WrappedTargetException e) {
- failed(e.getMessage());
+ fail(e.getMessage());
return;
} catch(com.sun.star.lang.IllegalArgumentException e) {
- failed(e.getMessage());
+ fail(e.getMessage());
return;
} catch(com.sun.star.beans.PropertyVetoException e) {
- failed(e.getMessage());
+ fail(e.getMessage());
return;
} catch(com.sun.star.beans.UnknownPropertyException e) {
- failed(e.getMessage());
+ fail(e.getMessage());
return;
}
//switching to 'Print Preview' mode
try {
- XDispatchProvider xDispProv = (XDispatchProvider)
+ XDispatchProvider xDispProv =
UnoRuntime.queryInterface(XDispatchProvider.class, xController);
- XURLTransformer xParser = (com.sun.star.util.XURLTransformer)
+ XURLTransformer xParser =
UnoRuntime.queryInterface(XURLTransformer.class,
mXMSF.createInstance("com.sun.star.util.URLTransformer"));
URL[] aParseURL = new URL[1];
@@ -865,9 +893,11 @@ public class ViewForwarder extends ComplexTestCase {
URL aURL = aParseURL[0];
XDispatch xDispatcher = xDispProv.queryDispatch(aURL, "", 0);
if(xDispatcher != null)
+ {
xDispatcher.dispatch( aURL, null );
+ }
} catch (com.sun.star.uno.Exception e) {
- failed(e.getMessage());
+ fail(e.getMessage());
return;
}
@@ -882,9 +912,9 @@ public class ViewForwarder extends ComplexTestCase {
XWindow xWindow = at.getCurrentWindow(mXMSF, xModel);
XAccessible xRoot = at.getAccessibleObject(xWindow);
-// log.println("ImplementationName " + utils.getImplName(oObj));
+// System.out.println("ImplementationName " + utils.getImplName(oObj));
- log.println("Press any key when the header cell is on top.");
+ System.out.println("Press any key when the header cell is on top.");
try{
byte[]b = new byte[16];
System.in.read(b);
@@ -905,7 +935,7 @@ public class ViewForwarder extends ComplexTestCase {
oObj = at.getAccessibleObjectForRole
(xRoot, AccessibleRole.TABLE, "").getAccessibleChild(2);
} catch (com.sun.star.lang.IndexOutOfBoundsException iabe) {
- failed(iabe.getMessage());
+ fail(iabe.getMessage());
return;
}
@@ -921,26 +951,26 @@ public class ViewForwarder extends ComplexTestCase {
try {
System.out.println("Children now: " + accCtx.getAccessibleChild(0).getAccessibleContext().getAccessibleChildCount());
} catch (com.sun.star.lang.IndexOutOfBoundsException iabe) {
- failed(iabe.getMessage());
+ fail(iabe.getMessage());
return;
}
*/
- XAccessibleValue accV = (XAccessibleValue)
+ XAccessibleValue accV =
UnoRuntime.queryInterface(XAccessibleValue.class, oObj);
Object o = accV.getCurrentValue();
- log.println("Getting the value: "+o + " is void " + util.utils.isVoid(o));
+ System.out.println("Getting the value: "+o + " is void " + util.utils.isVoid(o));
- XAccessibleComponent accC = (XAccessibleComponent)
+ XAccessibleComponent accC =
UnoRuntime.queryInterface(XAccessibleComponent.class, oObj);
- log.println("BoundsX= "+accC.getBounds().X);
- log.println("BoundsY= "+accC.getBounds().Y);
- log.println("BoundsWidth= "+accC.getBounds().Width);
- log.println("BoundsHeight= "+accC.getBounds().Height);
+ System.out.println("BoundsX= "+accC.getBounds().X);
+ System.out.println("BoundsY= "+accC.getBounds().Y);
+ System.out.println("BoundsWidth= "+accC.getBounds().Width);
+ System.out.println("BoundsHeight= "+accC.getBounds().Height);
- XComponent xComp = (XComponent)UnoRuntime.queryInterface(
+ XComponent xComp = UnoRuntime.queryInterface(
XComponent.class, xSpreadsheetDoc);
xComp.dispose();
@@ -954,7 +984,7 @@ public class ViewForwarder extends ComplexTestCase {
* Check the preview of Shapes: load a document with shapes and see, if they
* are accessible.
*/
- public void checkPreviewShape() {
+ @Test public void checkPreviewShape() {
SOfficeFactory SOF = SOfficeFactory.getFactory( mXMSF );
XSpreadsheetDocument xSpreadsheetDoc = null;
XComponent xComp = null;
@@ -962,14 +992,15 @@ public class ViewForwarder extends ComplexTestCase {
try {
String docName = "calcshapes.sxc";
- log.println("Loading a spreadsheetdocument.");
- String url = utils.getFullURL(
- (String)param.get("TestDocumentPath") + "/" + docName);
- log.println("loading document '" + url + "'");
+ System.out.println("Loading a spreadsheetdocument.");
+ // String url = utils.getFullURL((String)param.get("TestDocumentPath") + "/" + docName);
+ String url = TestDocument.getUrl(docName);
+ System.out.println("loading document '" + url + "'");
xComp = SOF.loadDocument(url);
-
- } catch (com.sun.star.uno.Exception e) {
- failed(e.getMessage());
+ assertNotNull(xComp);
+ }
+ catch (com.sun.star.uno.Exception e) {
+ fail(e.getMessage());
return;
}
@@ -980,22 +1011,22 @@ public class ViewForwarder extends ComplexTestCase {
}
if (xComp == null) {
- failed("loading document failed.");
+ fail("loading document failed.");
return;
}
- xSpreadsheetDoc = (XSpreadsheetDocument)UnoRuntime.queryInterface(
+ xSpreadsheetDoc = UnoRuntime.queryInterface(
XSpreadsheetDocument.class, xComp);
- XModel aModel = (XModel)
+ XModel aModel =
UnoRuntime.queryInterface(XModel.class, xSpreadsheetDoc);
XController xController = aModel.getCurrentController();
// switching to 'Page Preview' mode
try {
- XDispatchProvider xDispProv = (XDispatchProvider)
+ XDispatchProvider xDispProv =
UnoRuntime.queryInterface(XDispatchProvider.class, xController);
- XURLTransformer xParser = (com.sun.star.util.XURLTransformer)
+ XURLTransformer xParser =
UnoRuntime.queryInterface(XURLTransformer.class,
mXMSF.createInstance("com.sun.star.util.URLTransformer"));
// Because it's an in/out parameter we must use an
@@ -1007,9 +1038,11 @@ public class ViewForwarder extends ComplexTestCase {
URL aURL = aParseURL[0];
XDispatch xDispatcher = xDispProv.queryDispatch(aURL, "", 0);
if(xDispatcher != null)
+ {
xDispatcher.dispatch( aURL, null );
+ }
} catch (com.sun.star.uno.Exception e) {
- failed("Couldn't change mode");
+ fail("Couldn't change mode");
return;
}
@@ -1021,7 +1054,7 @@ public class ViewForwarder extends ComplexTestCase {
- log.println("Press any key when a shape is on top.");
+ System.out.println("Press any key when a shape is on top.");
try{
byte[]b = new byte[16];
System.in.read(b);
@@ -1039,19 +1072,31 @@ public class ViewForwarder extends ComplexTestCase {
try {
XAccessibleContext con = at.getAccessibleObjectForRole
(xRoot, AccessibleRole.SHAPE, "");
- log.println("Name of AccessibleContext: " + con.getAccessibleName());
+ System.out.println("Name of AccessibleContext: " + con.getAccessibleName());
oObj = con;
} catch (Exception e) {
- failed(e.getMessage());
+ fail(e.getMessage());
return;
}
- log.println("ImplementationName: " + utils.getImplName(oObj));
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
util.dbg.printInterfaces(oObj);
xComp.dispose();
}
+ @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/sc/qa/complex/calcPreview/makefile.mk b/sc/qa/complex/calcPreview/makefile.mk
index 14f9428678e7..864e14976964 100755
--- a/sc/qa/complex/calcPreview/makefile.mk
+++ b/sc/qa/complex/calcPreview/makefile.mk
@@ -25,69 +25,99 @@
#
#*************************************************************************
-PRJ = ..$/..$/..
-TARGET = ViewForward
-PRJNAME = $(TARGET)
-PACKAGE = complex$/calcPreview
-
-# --- 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 = ViewForwarder.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
+PRJ = ../../..
+PRJNAME = sc
+TARGET = qa_complex_calcpreview
-# set test document path
-CT_TESTDOCS = -tdoc $(PWD)$/test_documents
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = complex/calcPreview
+JAVATESTFILES = \
+ TestDocument.java \
+ ViewForwarder.java
-# test looks something like the.full.package.TestName
-CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar jurt.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
-# start the runner application
-CT_APP = org.openoffice.Runner
-
-# set the timeout to a bigger value
-CT_TIMEOUT = -TimeOut 120000
-
-# --- Targets ------------------------------------------------------
-
-.IF "$(depend)" == ""
-$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLTAR
-.ELSE
-$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLDEP
-.ENDIF
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-.INCLUDE : target.mk
+ALLTAR : javatest
+.END
-RUN:
- +java -cp "$(CLASSPATH)" $(CT_APP) $(CT_APPEXECCOMMAND) $(CT_TESTDOCS) $(CT_TESTBASE) $(CT_WORKDIR) $(CT_TIMEOUT) $(CT_TEST)
-run: RUN
-tst:
- +@echo $(CT_TESTDOCS)
+# PRJ = ..$/..$/..
+# TARGET = ViewForward
+# PRJNAME = $(TARGET)
+# PACKAGE = complex$/calcPreview
+#
+# # --- 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 = ViewForwarder.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 =
+# .ELSE
+# CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
+# .ENDIF
+#
+# # test base is java complex
+# CT_TESTBASE = -TestBase java_complex
+#
+# # set test document path
+# CT_TESTDOCS = -tdoc $(PWD)$/test_documents
+#
+# # test looks something like the.full.package.TestName
+# CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
+#
+# # start the runner application
+# CT_APP = org.openoffice.Runner
+#
+# # set the timeout to a bigger value
+# CT_TIMEOUT = -TimeOut 120000
+#
+# # --- Targets ------------------------------------------------------
+#
+# .IF "$(depend)" == ""
+# $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLTAR
+# .ELSE
+# $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLDEP
+# .ENDIF
+#
+# .INCLUDE : target.mk
+#
+#
+# RUN:
+# +java -cp "$(CLASSPATH)" $(CT_APP) $(CT_APPEXECCOMMAND) $(CT_TESTDOCS) $(CT_TESTBASE) $(CT_WORKDIR) $(CT_TIMEOUT) $(CT_TEST)
+#
+# run: RUN
+#
+# tst:
+# +@echo $(CT_TESTDOCS)
+#
diff --git a/sc/qa/complex/cellRanges/CheckXCellRangesQuery.java b/sc/qa/complex/cellRanges/CheckXCellRangesQuery.java
index b23abe2d6a57..a85cb0483c1c 100755
--- a/sc/qa/complex/cellRanges/CheckXCellRangesQuery.java
+++ b/sc/qa/complex/cellRanges/CheckXCellRangesQuery.java
@@ -28,30 +28,39 @@
package complex.cellRanges;
import com.sun.star.container.XIndexAccess;
-import complexlib.ComplexTestCase;
+// import complexlib.ComplexTestCase;
import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.sheet.CellFlags;
+// import com.sun.star.sheet.CellFlags;
import com.sun.star.sheet.XCellRangesQuery;
import com.sun.star.sheet.XSheetCellRanges;
import com.sun.star.sheet.XSpreadsheet;
import com.sun.star.sheet.XSpreadsheetDocument;
import com.sun.star.sheet.XSpreadsheets;
import com.sun.star.table.CellAddress;
-import com.sun.star.table.XColumnRowRange;
-import com.sun.star.table.XTableColumns;
-import com.sun.star.table.XTableRows;
+// import com.sun.star.table.XColumnRowRange;
+// import com.sun.star.table.XTableColumns;
+// import com.sun.star.table.XTableRows;
import com.sun.star.uno.AnyConverter;
import com.sun.star.uno.Type;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XInterface;
-import java.io.PrintWriter;
+// import java.io.PrintWriter;
+import com.sun.star.util.XCloseable;
import util.SOfficeFactory;
+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.*;
+
/**
* Check the XCellRangesQuery interface on the SheetCell service. test was
* created for bug i20044.
*/
-public class CheckXCellRangesQuery extends ComplexTestCase {
+public class CheckXCellRangesQuery /* extends ComplexTestCase */ {
XSpreadsheetDocument m_xSheetDoc = null;
XCellRangesQuery m_xCell = null;
XSpreadsheet m_xSpreadSheet = null;
@@ -60,50 +69,52 @@ public class CheckXCellRangesQuery extends ComplexTestCase {
* Get all test methods.
* @return The test methods.
*/
- public String[] getTestMethodNames() {
- return new String[] {"checkEmptyCell", "checkFilledCell"};
- }
+// public String[] getTestMethodNames() {
+// return new String[] {"checkEmptyCell", "checkFilledCell"};
+// }
/**
* Creates Spreadsheet document and the test object,
* before the actual test starts.
*/
- public void before() {
+ @Before public void before() {
// create a calc document
- SOfficeFactory SOF = SOfficeFactory.getFactory( (XMultiServiceFactory)param.getMSF() );
+ // SOfficeFactory SOF = SOfficeFactory.getFactory( (XMultiServiceFactory)param.getMSF() );
+ final XMultiServiceFactory xMsf = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ SOfficeFactory SOF = SOfficeFactory.getFactory(xMsf);
try {
- log.println( "creating a Spreadsheet document" );
+ System.out.println( "creating a Spreadsheet document" );
m_xSheetDoc = SOF.createCalcDoc(null);
} catch ( com.sun.star.uno.Exception e ) {
// Some exception occures.FAILED
- e.printStackTrace( (PrintWriter)log );
- failed( "Couldn?t create document");
+ e.printStackTrace( );
+ fail( "Couldn?t create document");
}
XInterface oObj = null;
try {
- log.println("Getting spreadsheet") ;
+ System.out.println("Getting spreadsheet") ;
XSpreadsheets oSheets = m_xSheetDoc.getSheets() ;
- XIndexAccess oIndexSheets = (XIndexAccess)
+ XIndexAccess oIndexSheets =
UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
m_xSpreadSheet = (XSpreadsheet) AnyConverter.toObject(
new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
// get the cell
- log.println("Getting a cell from sheet") ;
+ System.out.println("Getting a cell from sheet") ;
oObj = m_xSpreadSheet.getCellByPosition(2, 3);
- m_xCell = (XCellRangesQuery)UnoRuntime.queryInterface(XCellRangesQuery.class, oObj);
+ m_xCell = UnoRuntime.queryInterface(XCellRangesQuery.class, oObj);
} catch (com.sun.star.lang.WrappedTargetException e) {
- e.printStackTrace((PrintWriter)log);
- failed("Error getting cell object from spreadsheet document");
+ e.printStackTrace();
+ fail("Error getting cell object from spreadsheet document");
} catch (com.sun.star.lang.IndexOutOfBoundsException e) {
- e.printStackTrace((PrintWriter)log);
- failed("Error getting cell object from spreadsheet document");
+ e.printStackTrace();
+ fail("Error getting cell object from spreadsheet document");
} catch (com.sun.star.lang.IllegalArgumentException e) {
- e.printStackTrace((PrintWriter)log);
- failed("Error getting cell object from spreadsheet document");
+ e.printStackTrace();
+ fail("Error getting cell object from spreadsheet document");
}
// set one value for comparison.
@@ -115,12 +126,45 @@ public class CheckXCellRangesQuery extends ComplexTestCase {
m_xSpreadSheet.getCellByPosition(3, 2).setFormula("");
m_xSpreadSheet.getCellByPosition(3, 3).setFormula(""); */
} catch (com.sun.star.lang.IndexOutOfBoundsException e) {
- e.printStackTrace((PrintWriter)log);
- failed("Could not fill cell (1, 1) with a value.");
+ e.printStackTrace();
+ fail("Could not fill cell (1, 1) with a value.");
}
}
+ /*
+ * this method closes a calc document and resets the corresponding class variable xSheetDoc
+ */
+ protected boolean closeSpreadsheetDocument() {
+ boolean worked = true;
+
+ System.out.println(" disposing xSheetDoc ");
+
+ try {
+ XCloseable oCloser = UnoRuntime.queryInterface(
+ XCloseable.class, m_xSheetDoc);
+ oCloser.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ worked = false;
+ System.out.println("Couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ worked = false;
+ System.out.println("Document already disposed");
+ } catch (java.lang.NullPointerException e) {
+ worked = false;
+ System.out.println("Couldn't get XCloseable");
+ }
+
+ m_xSheetDoc = null;
+
+ return worked;
+ }
+
+ @After public void after()
+ {
+ closeSpreadsheetDocument();
+ }
+
/**
* Perform some tests on an empty cell:
* <ol>
@@ -129,15 +173,15 @@ public class CheckXCellRangesQuery extends ComplexTestCase {
* <li>query for empty cells</li>
* <ol>
*/
- public void checkEmptyCell() {
- log.println("Checking an empty cell...");
+ @Test public void checkEmptyCell() {
+ System.out.println("Checking an empty cell...");
// compare an empty cell with a cell with a value
- assure("\tQuery column differences did not return the correct value.", _queryColumnDifferences("Sheet1.C4"), true);
+ assertTrue("\tQuery column differences did not return the correct value.", _queryColumnDifferences("Sheet1.C4"));
// compare an empty cell with a cell with a value
- assure("\tQuery column differences did not return the correct value.", _queryRowDifferences("Sheet1.C4"), true);
+ assertTrue("\tQuery column differences did not return the correct value.", _queryRowDifferences("Sheet1.C4"));
// try to get this cell
- assure("\tQuery empty cells did not return the correct value.", _queryEmptyCells("Sheet1.C4"), true);
- log.println("...done");
+// assertTrue("\tQuery empty cells did not return the correct value.", _queryEmptyCells("Sheet1.C4"));
+ System.out.println("...done");
}
/**
@@ -148,24 +192,24 @@ public class CheckXCellRangesQuery extends ComplexTestCase {
* <li>query for an empty cell.</li>
* <ol>
*/
- public void checkFilledCell() {
- log.println("Checking a filled cell...");
+ @Test public void checkFilledCell() {
+ System.out.println("Checking a filled cell...");
// fill the cell with a value
try {
m_xSpreadSheet.getCellByPosition(2, 3).setValue(15);
} catch (com.sun.star.lang.IndexOutOfBoundsException e) {
- e.printStackTrace((PrintWriter)log);
- failed("Could not fill cell (2, 3) with a value.");
+ e.printStackTrace();
+ fail("Could not fill cell (2, 3) with a value.");
}
// compare an cell with value 5 with a cell with value 15
- assure("\tQuery column differences did not return the correct value.", _queryColumnDifferences("Sheet1.C4"), true);
+ assertTrue("\tQuery column differences did not return the correct value.", _queryColumnDifferences("Sheet1.C4"));
// compare an cell with value 5 with a cell with value 15
- assure("\tQuery column differences did not return the correct value.", _queryRowDifferences("Sheet1.C4"), true);
+ assertTrue("\tQuery column differences did not return the correct value.", _queryRowDifferences("Sheet1.C4"));
// try to get nothing
- assure("\tQuery empty cells did not return the correct value.", _queryEmptyCells(""), true);
- log.println("...done");
+ assertTrue("\tQuery empty cells did not return the correct value.", _queryEmptyCells(""));
+ System.out.println("...done");
}
@@ -175,14 +219,14 @@ public class CheckXCellRangesQuery extends ComplexTestCase {
* @return True, if the result equals the expected result.
*/
public boolean _queryColumnDifferences(String expected) {
- log.println("\tQuery column differences");
+ System.out.println("\tQuery column differences");
XSheetCellRanges ranges = m_xCell.queryColumnDifferences(
new CellAddress((short) 0, 1, 1));
String getting = ranges.getRangeAddressesAsString();
if (!getting.equals(expected)) {
- log.println("\tGetting: " + getting);
- log.println("\tShould have been: " + expected);
+ System.out.println("\tGetting: " + getting);
+ System.out.println("\tShould have been: " + expected);
return false;
}
return true;
@@ -194,13 +238,13 @@ public class CheckXCellRangesQuery extends ComplexTestCase {
* @return True, if the result equals the expected result.
*/
public boolean _queryEmptyCells(String expected) {
- log.println("\tQuery empty cells");
+ System.out.println("\tQuery empty cells");
XSheetCellRanges ranges = m_xCell.queryEmptyCells();
String getting = ranges.getRangeAddressesAsString();
if (!getting.equals(expected)) {
- log.println("\tGetting: " + getting);
- log.println("\tShould have been: " + expected);
+ System.out.println("\tGetting: " + getting);
+ System.out.println("\tShould have been: " + expected);
return false;
}
return true;
@@ -212,18 +256,31 @@ public class CheckXCellRangesQuery extends ComplexTestCase {
* @return True, if the result equals the expected result.
*/
public boolean _queryRowDifferences(String expected) {
- log.println("\tQuery row differences");
+ System.out.println("\tQuery row differences");
XSheetCellRanges ranges = m_xCell.queryRowDifferences(
new CellAddress((short) 0, 1, 1));
String getting = ranges.getRangeAddressesAsString();
if (!getting.equals(expected)) {
- log.println("\tGetting: " + getting);
- log.println("\tShould have been: " + expected);
+ System.out.println("\tGetting: " + getting);
+ System.out.println("\tShould have been: " + expected);
return false;
}
return true;
}
+
+ @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/sc/qa/complex/cellRanges/makefile.mk b/sc/qa/complex/cellRanges/makefile.mk
index fc296fe4f605..a0beb3839924 100755
--- a/sc/qa/complex/cellRanges/makefile.mk
+++ b/sc/qa/complex/cellRanges/makefile.mk
@@ -25,53 +25,27 @@
#
#*************************************************************************
-PRJ = ..$/..$/..
-TARGET = CheckXCellRangesQuery
-PRJNAME = $(TARGET)
-PACKAGE = complex$/cellRanges
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
-JAVAFILES = $(TARGET).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)
+PRJ = ../../..
+PRJNAME = sc
+TARGET = qa_complex_cellRanges
-# start the runner application
-CT_APP = org.openoffice.Runner
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = complex/cellRanges
+JAVATESTFILES = \
+ CheckXCellRangesQuery.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
-RUN: run
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-run:
- +java -cp "$(CLASSPATH)" $(CT_APP) $(CT_APPEXECCOMMAND) $(CT_TESTBASE) $(CT_TEST)
+ALLTAR : javatest
+.END
diff --git a/sc/qa/complex/dataPilot/CheckDataPilot.java b/sc/qa/complex/dataPilot/CheckDataPilot.java
index d013daa24e1f..b042f259072e 100644
--- a/sc/qa/complex/dataPilot/CheckDataPilot.java
+++ b/sc/qa/complex/dataPilot/CheckDataPilot.java
@@ -31,12 +31,12 @@ import com.sun.star.beans.XPropertySet;
import com.sun.star.container.XIndexAccess;
import com.sun.star.container.XNamed;
import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.sheet.TableFilterField;
+// import com.sun.star.sheet.TableFilterField;
import com.sun.star.sheet.XDataPilotDescriptor;
import com.sun.star.sheet.XDataPilotTable;
import com.sun.star.sheet.XDataPilotTables;
import com.sun.star.sheet.XDataPilotTablesSupplier;
-import com.sun.star.sheet.XSheetFilterDescriptor;
+// import com.sun.star.sheet.XSheetFilterDescriptor;
import com.sun.star.sheet.XSpreadsheet;
import com.sun.star.sheet.XSpreadsheetDocument;
import com.sun.star.sheet.XSpreadsheets;
@@ -46,29 +46,47 @@ import com.sun.star.uno.AnyConverter;
import com.sun.star.uno.Type;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XInterface;
-import complex.dataPilot.interfaceTests.beans._XPropertySet;
-import complex.dataPilot.interfaceTests.container._XNamed;
-import complex.dataPilot.interfaceTests.sheet._XDataPilotDescriptor;
-import complex.dataPilot.interfaceTests.sheet._XDataPilotTable;
-import complexlib.ComplexTestCase;
+import com.sun.star.util.XCloseable;
+import complex.dataPilot._XPropertySet;
+import complex.dataPilot._XNamed;
+import complex.dataPilot._XDataPilotDescriptor;
+import complex.dataPilot._XDataPilotTable;
+// import complexlib.ComplexTestCase;
import lib.StatusException;
+import lib.TestParameters;
import util.SOfficeFactory;
+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.*;
+
+
/**
* check the DataPilot of Calc.
*/
-public class CheckDataPilot extends ComplexTestCase {
+public class CheckDataPilot {
/** The data pilot field object **/
private XInterface mDataPilotFieldObject = null;
/** The data pilot table object **/
private XInterface mDataPilotTableObject = null;
+
+ private XSpreadsheetDocument xSheetDoc = null;
+
/**
* A field is filled some values. This integer determines the size of the
* field in x and y direction.
*/
private int mMaxFieldIndex = 6;
+ /**
+ * The test parameters
+ */
+ private static TestParameters param = null;
/**
* Get all test methods
@@ -83,27 +101,27 @@ public class CheckDataPilot extends ComplexTestCase {
* Test the data pilot field object:
* simply execute the interface tests in a row
*/
- public void testDataPilotFieldObject() {
- log.println("Starting 'testDataPilotFieldObject'");
+ @Test public void testDataPilotFieldObject() {
+ System.out.println("Starting 'testDataPilotFieldObject'");
// _XNamed
- XNamed xNamed = (XNamed)UnoRuntime.queryInterface(
+ XNamed xNamed = UnoRuntime.queryInterface(
XNamed.class, mDataPilotFieldObject);
- _XNamed _xNamed = new _XNamed(xNamed, log, param);
- assure("_getName failed.",_xNamed._getName());
- assure("_setName failed.",_xNamed._setName());
+ _XNamed _xNamed = new _XNamed(xNamed/*, log*/, param);
+ assertTrue("_getName failed.",_xNamed._getName());
+ assertTrue("_setName failed.",_xNamed._setName());
// _XPropertySet
- XPropertySet xProp = (XPropertySet)UnoRuntime.queryInterface(
+ XPropertySet xProp = UnoRuntime.queryInterface(
XPropertySet.class, mDataPilotFieldObject);
- _XPropertySet _xProp = new _XPropertySet(xProp, log, param);
- assure("_getPropertySetInfo failed.",_xProp._getPropertySetInfo());
- assure("_addPropertyChangeListener failed.",_xProp._addPropertyChangeListener());
- assure("_addVetoableChangeListener failed.",_xProp._addVetoableChangeListener());
- assure("_setPropertyValue failed.",_xProp._setPropertyValue());
- assure("_getPropertyValue failed.",_xProp._getPropertyValue());
- assure("_removePropertyChangeListener failed.",_xProp._removePropertyChangeListener());
- assure("_removeVetoableChangeListener failed.",_xProp._removeVetoableChangeListener());
+ _XPropertySet _xProp = new _XPropertySet(xProp/*, log*/, param);
+ assertTrue("_getPropertySetInfo failed.",_xProp._getPropertySetInfo());
+ assertTrue("_addPropertyChangeListener failed.",_xProp._addPropertyChangeListener());
+ assertTrue("_addVetoableChangeListener failed.",_xProp._addVetoableChangeListener());
+ assertTrue("_setPropertyValue failed.",_xProp._setPropertyValue());
+ assertTrue("_getPropertyValue failed.",_xProp._getPropertyValue());
+ assertTrue("_removePropertyChangeListener failed.",_xProp._removePropertyChangeListener());
+ assertTrue("_removeVetoableChangeListener failed.",_xProp._removeVetoableChangeListener());
}
@@ -111,53 +129,57 @@ public class CheckDataPilot extends ComplexTestCase {
* Test the data pilot table object:
* simply execute the interface tests in a row
*/
- public void testDataPilotTableObject() {
- log.println("Starting 'testDataPilotTableObject'");
+ @Test public void testDataPilotTableObject() {
+ System.out.println("Starting 'testDataPilotTableObject'");
// _XNamed
- XNamed xNamed = (XNamed)UnoRuntime.queryInterface(
+ XNamed xNamed = UnoRuntime.queryInterface(
XNamed.class, mDataPilotTableObject);
- _XNamed _xNamed = new _XNamed(xNamed, log, param);
- assure("_getName failed.",_xNamed._getName());
- assure("_setName failed.",_xNamed._setName());
+ _XNamed _xNamed = new _XNamed(xNamed/*, log*/, param);
+ assertTrue("_getName failed.",_xNamed._getName());
+ assertTrue("_setName failed.",_xNamed._setName());
// _XDataPilotTable
- XDataPilotTable xDataPilotTable = (XDataPilotTable)
+ XDataPilotTable xDataPilotTable =
UnoRuntime.queryInterface(XDataPilotTable.class,
mDataPilotTableObject);
_XDataPilotTable _xDataPilotTable =
- new _XDataPilotTable(xDataPilotTable, log, param);
- assure("before failed.", _xDataPilotTable.before());
- assure("_getOutputRange failed.", _xDataPilotTable._getOutputRange()) ;
- assure("_refresh failed.", _xDataPilotTable._refresh()) ;
+ new _XDataPilotTable(xDataPilotTable/*, log*/, param);
+ assertTrue("before failed.", _xDataPilotTable.before());
+ assertTrue("_getOutputRange failed.", _xDataPilotTable._getOutputRange()) ;
+// assertTrue("_refresh failed.", _xDataPilotTable._refresh()) ;
// _XDataPilotDescriptor
- XDataPilotDescriptor xDataPilotDescriptor = (XDataPilotDescriptor)
+ XDataPilotDescriptor xDataPilotDescriptor =
UnoRuntime.queryInterface(XDataPilotDescriptor.class,
mDataPilotTableObject);
_XDataPilotDescriptor _xDataPilotDescriptor =
- new _XDataPilotDescriptor(xDataPilotDescriptor, log, param);
- assure("before failed.", _xDataPilotDescriptor.before());
- assure("_setTag failed.", _xDataPilotDescriptor._setTag()) ;
- assure("_getTag failed.", _xDataPilotDescriptor._getTag()) ;
- assure("_getFilterDescriptor failed.", _xDataPilotDescriptor._getFilterDescriptor()) ;
- assure("_getDataPilotFields failed.", _xDataPilotDescriptor._getDataPilotFields()) ;
- assure("_getColumnFields failed.", _xDataPilotDescriptor._getColumnFields()) ;
- assure("_getRowFields failed.", _xDataPilotDescriptor._getRowFields()) ;
- assure("_getDataFields failed.", _xDataPilotDescriptor._getDataFields()) ;
- assure("_getHiddenFields failed.", _xDataPilotDescriptor._getHiddenFields()) ;
- assure("_getPageFields failed.", _xDataPilotDescriptor._getPageFields()) ;
- assure("_setSourceRange failed.", _xDataPilotDescriptor._setSourceRange()) ;
- assure("_getSourceRange failed.", _xDataPilotDescriptor._getSourceRange()) ;
+ new _XDataPilotDescriptor(xDataPilotDescriptor/*, log*/, param);
+ assertTrue("before failed.", _xDataPilotDescriptor.before());
+ assertTrue("_setTag failed.", _xDataPilotDescriptor._setTag()) ;
+ assertTrue("_getTag failed.", _xDataPilotDescriptor._getTag()) ;
+ assertTrue("_getFilterDescriptor failed.", _xDataPilotDescriptor._getFilterDescriptor()) ;
+ assertTrue("_getDataPilotFields failed.", _xDataPilotDescriptor._getDataPilotFields()) ;
+ assertTrue("_getColumnFields failed.", _xDataPilotDescriptor._getColumnFields()) ;
+ assertTrue("_getRowFields failed.", _xDataPilotDescriptor._getRowFields()) ;
+ assertTrue("_getDataFields failed.", _xDataPilotDescriptor._getDataFields()) ;
+ assertTrue("_getHiddenFields failed.", _xDataPilotDescriptor._getHiddenFields()) ;
+ assertTrue("_getPageFields failed.", _xDataPilotDescriptor._getPageFields()) ;
+ assertTrue("_setSourceRange failed.", _xDataPilotDescriptor._setSourceRange()) ;
+ assertTrue("_getSourceRange failed.", _xDataPilotDescriptor._getSourceRange()) ;
}
/**
* create an environment for the test
*/
- public void before() {
- Object oInterface = null;
- XSpreadsheetDocument xSheetDoc = null;
+ @Before public void before() {
+// Object oInterface = null;
+
+ // SOfficeFactory SOF = SOfficeFactory.getFactory( (XMultiServiceFactory)param.getMSF() );
+ final XMultiServiceFactory xMsf = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ SOfficeFactory SOF = SOfficeFactory.getFactory(xMsf);
- SOfficeFactory SOF = SOfficeFactory.getFactory( (XMultiServiceFactory)param.getMSF() );
+ param = new TestParameters();
+ param.put("ServiceFactory", xMsf);
// the cell range
CellRangeAddress sCellRangeAdress = new CellRangeAddress();
@@ -174,7 +196,7 @@ public class CheckDataPilot extends ComplexTestCase {
sCellAdress.Row = 8;
try {
- log.println( "Creating a Spreadsheet document" );
+ System.out.println( "Creating a Spreadsheet document" );
xSheetDoc = SOF.createCalcDoc(null);
} catch (com.sun.star.uno.Exception e) {
// Some exception occures.FAILED
@@ -182,11 +204,11 @@ public class CheckDataPilot extends ComplexTestCase {
throw new StatusException( "Couldn't create document", e );
}
- log.println("Getting a sheet");
- XSpreadsheets xSpreadsheets = (XSpreadsheets)xSheetDoc.getSheets();
+ System.out.println("Getting a sheet");
+ XSpreadsheets xSpreadsheets = xSheetDoc.getSheets();
XSpreadsheet oSheet = null;
XSpreadsheet oSheet2 = null;
- XIndexAccess oIndexAccess = (XIndexAccess)
+ XIndexAccess oIndexAccess =
UnoRuntime.queryInterface(XIndexAccess.class, xSpreadsheets);
try {
@@ -206,7 +228,7 @@ public class CheckDataPilot extends ComplexTestCase {
}
try {
- log.println("Filling a table");
+ System.out.println("Filling a table");
for (int i = 1; i < mMaxFieldIndex; i++) {
oSheet.getCellByPosition(i, 0).setFormula("Col" + i);
oSheet.getCellByPosition(0, i).setFormula("Row" + i);
@@ -215,10 +237,13 @@ public class CheckDataPilot extends ComplexTestCase {
}
for (int i = 1; i < mMaxFieldIndex; i++)
- for (int j = 1; j < mMaxFieldIndex; j++) {
+ {
+ for (int j = 1; j < mMaxFieldIndex; j++)
+ {
oSheet.getCellByPosition(i, j).setValue(i * (j + 1));
oSheet2.getCellByPosition(i, j).setValue(i * (j + 2));
}
+ }
} catch (com.sun.star.lang.IndexOutOfBoundsException e) {
e.printStackTrace();
throw new StatusException("Couldn't fill some cells", e);
@@ -244,8 +269,8 @@ public class CheckDataPilot extends ComplexTestCase {
// create the test objects
- log.println("Getting test objects") ;
- XDataPilotTablesSupplier DPTS = (XDataPilotTablesSupplier)
+ System.out.println("Getting test objects") ;
+ XDataPilotTablesSupplier DPTS =
UnoRuntime.queryInterface(XDataPilotTablesSupplier.class, oSheet);
XDataPilotTables DPT = DPTS.getDataPilotTables();
XDataPilotDescriptor DPDsc = DPT.createDataPilotDescriptor();
@@ -254,7 +279,7 @@ public class CheckDataPilot extends ComplexTestCase {
XPropertySet fieldPropSet = null;
try {
Object oDataPilotField = DPDsc.getDataPilotFields().getByIndex(0);
- fieldPropSet = (XPropertySet)
+ fieldPropSet =
UnoRuntime.queryInterface(XPropertySet.class, oDataPilotField);
} catch (com.sun.star.lang.WrappedTargetException e) {
e.printStackTrace();
@@ -283,7 +308,7 @@ public class CheckDataPilot extends ComplexTestCase {
throw new StatusException("Couldn't create a test environment", e);
}
- log.println("Insert the DataPilotTable");
+ System.out.println("Insert the DataPilotTable");
if (DPT.hasByName("DataPilotTable")) {
DPT.removeByName("DataPilotTable");
}
@@ -326,4 +351,53 @@ public class CheckDataPilot extends ComplexTestCase {
}
+ /*
+ * this method closes a calc document and resets the corresponding class variable xSheetDoc
+ */
+ protected boolean closeSpreadsheetDocument() {
+ boolean worked = true;
+
+ System.out.println(" disposing xSheetDoc ");
+
+ try {
+ XCloseable oCloser = UnoRuntime.queryInterface(
+ XCloseable.class, xSheetDoc);
+ oCloser.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ worked = false;
+ System.out.println("Couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ worked = false;
+ System.out.println("Document already disposed");
+ } catch (java.lang.NullPointerException e) {
+ worked = false;
+ System.out.println("Couldn't get XCloseable");
+ }
+
+ xSheetDoc = null;
+
+ return worked;
+ }
+
+ @After public void after()
+ {
+ closeSpreadsheetDocument();
+ }
+
+
+ @BeforeClass public static void setUpConnection() throws Exception {
+ System.out.println("setUpConnection()");
+ connection.setUp();
+ }
+
+ @AfterClass public static void tearDownConnection()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ System.out.println("tearDownConnection()");
+ connection.tearDown();
+ }
+
+ private static final OfficeConnection connection = new OfficeConnection();
+
+
}
diff --git a/sc/qa/complex/dataPilot/interfaceTests/sheet/_XDataPilotDescriptor.java b/sc/qa/complex/dataPilot/_XDataPilotDescriptor.java
index 8358e5bb6106..e611d8f4e147 100644
--- a/sc/qa/complex/dataPilot/interfaceTests/sheet/_XDataPilotDescriptor.java
+++ b/sc/qa/complex/dataPilot/_XDataPilotDescriptor.java
@@ -25,7 +25,7 @@
*
************************************************************************/
-package complex.dataPilot.interfaceTests.sheet;
+package complex.dataPilot;
import com.sun.star.beans.XPropertySet;
import com.sun.star.container.XIndexAccess;
@@ -34,11 +34,11 @@ import com.sun.star.sheet.DataPilotFieldOrientation;
import com.sun.star.sheet.XDataPilotDescriptor;
import com.sun.star.table.CellRangeAddress;
import com.sun.star.uno.UnoRuntime;
-import lib.MultiMethodTest;
-import lib.Status;
+// import lib.MultiMethodTest;
+// import lib.Status;
//import lib.StatusException;
import lib.TestParameters;
-import share.LogWriter;
+// import share.LogWriter;
/**
* Testing <code>com.sun.star.sheet.XDataPilotDescriptor</code>
@@ -81,29 +81,29 @@ public class _XDataPilotDescriptor {
/**
* The log writer
*/
- private LogWriter log = null;
+// private LogWriter log = null;
/**
* Constructor: gets the object to test, a logger and the test parameters
* @param xObj The test object
- * @param log A log writer
* @param param The test parameters
*/
- public _XDataPilotDescriptor(XDataPilotDescriptor xObj,
- LogWriter log, TestParameters param) {
+ public _XDataPilotDescriptor(XDataPilotDescriptor xObj/*,
+ LogWriter log*/, TestParameters param) {
oObj = xObj;
- this.log = log;
+ // this.log = log;
this.param = param;
}
/**
* Retrieves object relations.
- * @throws StatusException If one of relations not found.
- */
+
+ * @return
+ */
public boolean before() {
Integer amount = (Integer)param.get("FIELDSAMOUNT");
if (amount == null) {
- log.println("Relation 'FIELDSAMOUNT' not found");
+ System.out.println("Relation 'FIELDSAMOUNT' not found");
return false;
}
tEnvFieldsAmount = amount.intValue();
@@ -118,7 +118,8 @@ public class _XDataPilotDescriptor {
* <ul>
* <li> <code> setSourceRange() </code> : to have current source range </li>
* </ul>
- */
+ * @return
+ */
public boolean _getSourceRange(){
// requiredMethod("setSourceRange()");
boolean bResult = true;
@@ -144,7 +145,8 @@ public class _XDataPilotDescriptor {
* <li> <code> getHiddenFields() </code> </li>
* <li> <code> getPageFields() </code> </li>
* </ul>
- */
+ * @return
+ */
public boolean _setSourceRange(){
/* executeMethod("getColumnFields()") ;
executeMethod("getRowFields()") ;
@@ -167,7 +169,8 @@ public class _XDataPilotDescriptor {
* <ul>
* <li> <code> setTag() </code> : to have current tag </li>
* </ul>
- */
+ * @return
+ */
public boolean _getTag(){
// requiredMethod("setTag()");
boolean bResult = true;
@@ -181,7 +184,8 @@ public class _XDataPilotDescriptor {
/**
* Test just calls the method. <p>
* Has <b> OK </b> status if the method successfully returns. <p>
- */
+ * @return
+ */
public boolean _setTag(){
oObj.setTag(sTag);
return true;
@@ -195,22 +199,23 @@ public class _XDataPilotDescriptor {
* Has <b> OK </b> status if returned value isn't null, number of fields
* goten from returned value is less than number of fields obtained by relation
* and no exceptions were thrown. <p>
- */
+ * @return
+ */
public boolean _getDataPilotFields(){
boolean bResult = true;
XIndexAccess IA = null;
IA = oObj.getDataPilotFields();
if (IA == null) {
- log.println("Returned value is null.");
+ System.out.println("Returned value is null.");
return false;
- } else {log.println("getDataPilotFields returned not Null value -- OK");}
+ } else {System.out.println("getDataPilotFields returned not Null value -- OK");}
fieldsAmount = IA.getCount();
if (fieldsAmount < tEnvFieldsAmount) {
- log.println("Number of fields is less than number goten by relation.");
+ System.out.println("Number of fields is less than number goten by relation.");
return false;
- } else {log.println("count of returned fields -- OK");}
+ } else {System.out.println("count of returned fields -- OK");}
fieldsNames = new String[tEnvFieldsAmount];
int i = -1 ;
@@ -220,24 +225,23 @@ public class _XDataPilotDescriptor {
try {
field = IA.getByIndex(i);
} catch(com.sun.star.lang.WrappedTargetException e) {
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
return false;
} catch(com.sun.star.lang.IndexOutOfBoundsException e) {
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
return false;
}
- XNamed named = (XNamed)
- UnoRuntime.queryInterface(XNamed.class, field);
+ XNamed named = UnoRuntime.queryInterface(XNamed.class, field);
String name = named.getName();
- log.println("Field : '" + name + "' ... ") ;
+ System.out.println("Field : '" + name + "' ... ") ;
if (!name.equals("Data")) {
fieldsNames[cnt] = name ;
- XPropertySet props = (XPropertySet)
+ XPropertySet props =
UnoRuntime.queryInterface(XPropertySet.class, field);
try {
@@ -245,44 +249,49 @@ public class _XDataPilotDescriptor {
case 0 :
props.setPropertyValue("Orientation",
DataPilotFieldOrientation.COLUMN);
- log.println(" Column") ;
+ System.out.println(" Column") ;
break;
case 1 :
props.setPropertyValue("Orientation",
DataPilotFieldOrientation.ROW);
- log.println(" Row") ;
+ System.out.println(" Row") ;
break;
case 2 :
props.setPropertyValue("Orientation",
DataPilotFieldOrientation.DATA);
- log.println(" Data") ;
+ System.out.println(" Data") ;
break;
case 3 :
props.setPropertyValue("Orientation",
DataPilotFieldOrientation.HIDDEN);
- log.println(" Hidden") ;
+ System.out.println(" Hidden") ;
break;
case 4 :
props.setPropertyValue("Orientation",
DataPilotFieldOrientation.PAGE);
- log.println(" Page") ;
+ System.out.println(" Page") ;
props.setPropertyValue("CurrentPage", "20");
break;
} } catch (com.sun.star.lang.WrappedTargetException e) {
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
return false;
} catch (com.sun.star.lang.IllegalArgumentException e) {
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
return false;
} catch (com.sun.star.beans.PropertyVetoException e) {
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
return false;
} catch (com.sun.star.beans.UnknownPropertyException e) {
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
return false;
}
- if (++cnt > 4) break;
- } else {
+ if (++cnt > 4)
+ {
+ break;
+ }
+ }
+ else
+ {
return false;
}
}
@@ -299,10 +308,11 @@ public class _XDataPilotDescriptor {
* <ul>
* <li> <code> getDataPilotFields() </code> : to have array of field names </li>
* </ul>
- */
+ * @return
+ */
public boolean _getColumnFields(){
// requiredMethod("getDataPilotFields()");
- log.println("getColumnFields") ;
+ System.out.println("getColumnFields") ;
XIndexAccess IA = oObj.getColumnFields();
return CheckNames(IA, 0);
}
@@ -316,10 +326,11 @@ public class _XDataPilotDescriptor {
* <ul>
* <li> <code> getDataPilotFields() </code> : to have array of field names </li>
* </ul>
- */
+ * @return
+ */
public boolean _getDataFields(){
// requiredMethod("getDataPilotFields()");
- log.println("getDataFields") ;
+ System.out.println("getDataFields") ;
XIndexAccess IA = oObj.getDataFields();
return CheckNames(IA, 2);
}
@@ -333,10 +344,11 @@ public class _XDataPilotDescriptor {
* <ul>
* <li> <code> getDataPilotFields() </code> : to have array of field names </li>
* </ul>
- */
+ * @return
+ */
public boolean _getHiddenFields(){
// requiredMethod("getDataPilotFields()");
- log.println("getHiddenFields") ;
+ System.out.println("getHiddenFields") ;
XIndexAccess IA = oObj.getHiddenFields();
return CheckNames(IA, 3);
}
@@ -350,10 +362,11 @@ public class _XDataPilotDescriptor {
* <ul>
* <li> <code> getDataPilotFields() </code> : to have array of field names </li>
* </ul>
- */
+ * @return
+ */
public boolean _getRowFields(){
// requiredMethod("getDataPilotFields()");
- log.println("getRowFields") ;
+ System.out.println("getRowFields") ;
XIndexAccess IA = oObj.getRowFields();
boolean bResult = CheckNames(IA, 1);
return bResult;
@@ -367,10 +380,11 @@ public class _XDataPilotDescriptor {
* <ul>
* <li> <code> getDataPilotFields() </code> : to have array of field names </li>
* </ul>
- */
+ * @return
+ */
public boolean _getPageFields(){
// requiredMethod("getDataPilotFields()");
- log.println("getPageFields") ;
+ System.out.println("getPageFields") ;
XIndexAccess IA = oObj.getPageFields();
boolean bResult = CheckNames(IA, 4);
return bResult;
@@ -380,7 +394,8 @@ public class _XDataPilotDescriptor {
* Test calls the method and checks returned value. <p>
* Has <b> OK </b> status if returned value isn't null
* and no exceptions were thrown. <p>
- */
+ * @return
+ */
public boolean _getFilterDescriptor(){
boolean bResult = oObj.getFilterDescriptor() != null;
return bResult;
@@ -396,46 +411,46 @@ public class _XDataPilotDescriptor {
* false otherwise
* @see com.sun.star.container.XNamed
*/
- boolean CheckNames(XIndexAccess IA, int rem) {
+ private boolean CheckNames(XIndexAccess IA, int rem) {
String name = null;
if (IA == null) {
- log.println("Null retruned.") ;
+ System.out.println("Null retruned.") ;
return false ;
}
if (fieldsNames[rem] == null) {
- log.println("No fields were set to this orientation - cann't check result") ;
+ System.out.println("No fields were set to this orientation - cann't check result") ;
return true ;
}
if (IA.getCount() == 0) {
- log.println("No fields found. Must be at least '"
+ System.out.println("No fields found. Must be at least '"
+ fieldsNames[rem] + "'") ;
return false ;
}
try {
- log.println("Fields returned ") ;
+ System.out.println("Fields returned ") ;
for (int i = 0; i < IA.getCount(); i++) {
Object field = IA.getByIndex(i);
- XNamed named = (XNamed)UnoRuntime.queryInterface
+ XNamed named = UnoRuntime.queryInterface
(XNamed.class, field);
name = named.getName();
- log.println(" " + name) ;
+ System.out.println(" " + name) ;
if (fieldsNames[rem].equals(name)) {
- log.println(" - OK") ;
+ System.out.println(" - OK") ;
return true ;
}
}
} catch (com.sun.star.lang.WrappedTargetException e) {
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
return false ;
} catch (com.sun.star.lang.IndexOutOfBoundsException e) {
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
return false ;
}
- log.println(" - FAILED (field " + fieldsNames[rem] + " was not found.") ;
+ System.out.println(" - FAILED (field " + fieldsNames[rem] + " was not found.") ;
return false ;
}
diff --git a/sc/qa/complex/dataPilot/interfaceTests/sheet/_XDataPilotTable.java b/sc/qa/complex/dataPilot/_XDataPilotTable.java
index d7f6e81b91e5..e27daffab985 100644
--- a/sc/qa/complex/dataPilot/interfaceTests/sheet/_XDataPilotTable.java
+++ b/sc/qa/complex/dataPilot/_XDataPilotTable.java
@@ -25,16 +25,16 @@
*
************************************************************************/
-package complex.dataPilot.interfaceTests.sheet;
+package complex.dataPilot;
import com.sun.star.sheet.XDataPilotTable;
import com.sun.star.table.CellAddress;
import com.sun.star.table.CellRangeAddress;
import com.sun.star.table.XCell;
-import lib.Status;
+// import lib.Status;
//import lib.StatusException;
import lib.TestParameters;
-import share.LogWriter;
+// import share.LogWriter;
/**
* Testing <code>com.sun.star.sheet.XDataPilotTable</code>
@@ -71,18 +71,18 @@ public class _XDataPilotTable {
/**
* The log writer
*/
- private LogWriter log = null;
+ // private LogWriter log = null;
/**
* Constructor: gets the object to test, a logger and the test parameters
* @param xObj The test object
- * @param log A log writer
+
* @param param The test parameters
*/
- public _XDataPilotTable(XDataPilotTable xObj,
- LogWriter log, TestParameters param) {
+ public _XDataPilotTable(XDataPilotTable xObj/*,
+ LogWriter log*/, TestParameters param) {
oObj = xObj;
- this.log = log;
+ // this.log = log;
this.param = param;
}
@@ -94,7 +94,7 @@ public class _XDataPilotTable {
if (xCellForChange == null || OutputRange == null ||
xCellForCheck == null) {
- log.println("Relation not found");
+ System.out.println("Relation not found");
return false;
}
return true;
@@ -103,7 +103,8 @@ public class _XDataPilotTable {
* Test calls the method and checks returned value using value obtained by
* object relation <code>'OUTPUTRANGE'</code>. <p>
* Has <b> OK </b> status if values are equal. <p>
- */
+ * @return
+ */
public boolean _getOutputRange(){
boolean bResult = true;
CellRangeAddress objRange = oObj.getOutputRange();
@@ -119,13 +120,14 @@ public class _XDataPilotTable {
* relation 'CELLFORCHECK'.<p>
* Has <b>OK</b> status if value of the cell obtained by object relation
* 'CELLFORCHECK' is changed. <p>
- */
+ * @return
+ */
public boolean _refresh(){
xCellForChange.setValue(changeValue);
double oldData = xCellForCheck.getValue();
oObj.refresh();
double newData = xCellForCheck.getValue();
- log.println("Old data:" + oldData + "; new data:" + newData);
+ System.out.println("Old data:" + oldData + "; new data:" + newData);
return oldData != newData;
}
diff --git a/sc/qa/complex/dataPilot/interfaceTests/container/_XNamed.java b/sc/qa/complex/dataPilot/_XNamed.java
index 97763be2b199..ff4c647307d5 100644
--- a/sc/qa/complex/dataPilot/interfaceTests/container/_XNamed.java
+++ b/sc/qa/complex/dataPilot/_XNamed.java
@@ -25,12 +25,12 @@
*
************************************************************************/
-package complex.dataPilot.interfaceTests.container;
+package complex.dataPilot;
import com.sun.star.container.XNamed;
import lib.TestParameters;
-import share.LogWriter;
-import util.utils;
+// import share.LogWriter;
+// import util.utils;
/**
* Testing <code>com.sun.star.container.XNamed</code>
@@ -64,7 +64,7 @@ public class _XNamed {
/**
* The log writer
*/
- private LogWriter log = null;
+ // private LogWriter log = null;
/**
* Constructor: gets the object to test, a logger and the test parameters
@@ -72,9 +72,9 @@ public class _XNamed {
* @param log A log writer
* @param param The test parameters
*/
- public _XNamed(XNamed xObj, LogWriter log, TestParameters param) {
+ public _XNamed(XNamed xObj/*, LogWriter log*/, TestParameters param) {
oObj = xObj;
- this.log = log;
+ // this.log = log;
this.param = param;
}
@@ -87,7 +87,7 @@ public class _XNamed {
public boolean _getName() {
// write to log what we try next
- log.println( "test for getName()" );
+ System.out.println( "test for getName()" );
boolean result = true;
boolean loc_result = true;
@@ -95,10 +95,16 @@ public class _XNamed {
String NewName = null;
loc_result = ((name = oObj.getName()) != null);
- log.println("getting the name \"" + name + "\"");
-
- if (loc_result) log.println("... getName() - OK");
- else log.println("... getName() - FAILED");
+ System.out.println("getting the name \"" + name + "\"");
+
+ if (loc_result)
+ {
+ System.out.println("... getName() - OK");
+ }
+ else
+ {
+ System.out.println("... getName() - FAILED");
+ }
result &= loc_result;
return result;
}
@@ -121,23 +127,29 @@ public class _XNamed {
*/
public boolean _setName(){
// requiredMethod("getName()");
- log.println("testing setName() ... ");
+ System.out.println("testing setName() ... ");
String oldName = oObj.getName();
String NewName = oldName == null ? "XNamed" : oldName + "X" ;
boolean result = true;
boolean loc_result = true;
- log.println("set the name of object to \"" + NewName + "\"");
+ System.out.println("set the name of object to \"" + NewName + "\"");
oObj.setName(NewName);
- log.println("check that container has element with this name");
+ System.out.println("check that container has element with this name");
String name = oObj.getName();
- log.println("getting the name \"" + name + "\"");
+ System.out.println("getting the name \"" + name + "\"");
loc_result = name.equals(NewName);
- if (loc_result) log.println("... setName() - OK");
- else log.println("... setName() - FAILED");
+ if (loc_result)
+ {
+ System.out.println("... setName() - OK");
+ }
+ else
+ {
+ System.out.println("... setName() - FAILED");
+ }
result &= loc_result;
oObj.setName(oldName);
return result;
diff --git a/sc/qa/complex/dataPilot/interfaceTests/beans/_XPropertySet.java b/sc/qa/complex/dataPilot/_XPropertySet.java
index 57d6474f51b8..e598a0c28890 100644
--- a/sc/qa/complex/dataPilot/interfaceTests/beans/_XPropertySet.java
+++ b/sc/qa/complex/dataPilot/_XPropertySet.java
@@ -25,7 +25,7 @@
*
************************************************************************/
-package complex.dataPilot.interfaceTests.beans;
+package complex.dataPilot;
import com.sun.star.beans.Property;
import com.sun.star.beans.PropertyAttribute;
@@ -38,7 +38,7 @@ import com.sun.star.lang.EventObject;
import java.util.Random;
import java.util.StringTokenizer;
import lib.TestParameters;
-import share.LogWriter;
+// import share.LogWriter;
//import lib.MultiMethodTest;
import util.ValueChanger;
import util.utils;
@@ -72,7 +72,7 @@ public class _XPropertySet {
/**
* The log writer
*/
- private LogWriter log = null;
+ // private LogWriter log = null;
/**
* Flag that indicates change listener was called.
@@ -144,9 +144,9 @@ public class _XPropertySet {
* @param log A log writer
* @param param The test parameters
*/
- public _XPropertySet(XPropertySet xObj, LogWriter log, TestParameters param) {
+ public _XPropertySet(XPropertySet xObj/*, LogWriter log*/, TestParameters param) {
oObj = xObj;
- this.log = log;
+ // this.log = log;
this.param = param;
}
@@ -166,7 +166,7 @@ public class _XPropertySet {
XPropertySetInfo propertySetInfo = oObj.getPropertySetInfo();
if (propertySetInfo == null) {
- log.println("getPropertySetInfo() method returned null");
+ System.out.println("getPropertySetInfo() method returned null");
String[] ptt = (String[]) param.get("PTT");
PTT.normal=ptt[0];
PTT.bound=ptt[1];
@@ -197,7 +197,7 @@ public class _XPropertySet {
boolean result = true;
if ( PTT.bound.equals("none") ) {
- log.println("*** No bound properties found ***");
+ System.out.println("*** No bound properties found ***");
} else {
try {
oObj.addPropertyChangeListener(PTT.bound,PClistener);
@@ -205,25 +205,25 @@ public class _XPropertySet {
oObj.setPropertyValue(PTT.bound,
ValueChanger.changePValue(gValue));
} catch (com.sun.star.beans.PropertyVetoException e) {
- log.println("Exception occured while trying to change "+
+ System.out.println("Exception occured while trying to change "+
"property '"+ PTT.bound+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
} catch (com.sun.star.lang.IllegalArgumentException e) {
- log.println("Exception occured while trying to change "+
+ System.out.println("Exception occured while trying to change "+
"property '"+ PTT.bound+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
} catch (com.sun.star.beans.UnknownPropertyException e) {
- log.println("Exception occured while trying to change "+
+ System.out.println("Exception occured while trying to change "+
"property '"+ PTT.bound+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
} catch (com.sun.star.lang.WrappedTargetException e) {
- log.println("Exception occured while trying to change "+
+ System.out.println("Exception occured while trying to change "+
"property '"+ PTT.bound+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
} // end of try-catch
result = propertyChanged;
if (!propertyChanged) {
- log.println("propertyChangeListener wasn't called for '"+
+ System.out.println("propertyChangeListener wasn't called for '"+
PTT.bound+"'");
}
} //endif
@@ -252,7 +252,7 @@ public class _XPropertySet {
boolean result = true;
if ( PTT.constrained.equals("none") ) {
- log.println("*** No constrained properties found ***");
+ System.out.println("*** No constrained properties found ***");
} else {
try {
oObj.addVetoableChangeListener(PTT.constrained,VClistener);
@@ -260,25 +260,25 @@ public class _XPropertySet {
oObj.setPropertyValue(PTT.constrained,
ValueChanger.changePValue(gValue));
} catch (com.sun.star.beans.PropertyVetoException e) {
- log.println("Exception occured while trying to change "+
+ System.out.println("Exception occured while trying to change "+
"property '"+ PTT.constrained+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
} catch (com.sun.star.lang.IllegalArgumentException e) {
- log.println("Exception occured while trying to change "+
+ System.out.println("Exception occured while trying to change "+
"property '"+ PTT.constrained+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
} catch (com.sun.star.beans.UnknownPropertyException e) {
- log.println("Exception occured while trying to change "+
+ System.out.println("Exception occured while trying to change "+
"property '"+ PTT.constrained+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
} catch (com.sun.star.lang.WrappedTargetException e) {
- log.println("Exception occured while trying to change "+
+ System.out.println("Exception occured while trying to change "+
"property '"+ PTT.constrained+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
} // end of try-catch
result = vetoableChanged;
if (!vetoableChanged) {
- log.println("vetoableChangeListener wasn't called for '"+
+ System.out.println("vetoableChangeListener wasn't called for '"+
PTT.constrained+"'");
}
} //endif
@@ -310,7 +310,7 @@ public class _XPropertySet {
boolean result = true;
if ( PTT.normal.equals("none") ) {
- log.println("*** No changeable properties found ***");
+ System.out.println("*** No changeable properties found ***");
} else {
try {
gValue = oObj.getPropertyValue(PTT.normal);
@@ -318,21 +318,21 @@ public class _XPropertySet {
oObj.setPropertyValue(PTT.normal, sValue);
sValue = oObj.getPropertyValue(PTT.normal);
} catch (com.sun.star.beans.PropertyVetoException e) {
- log.println("Exception occured while trying to change "+
+ System.out.println("Exception occured while trying to change "+
"property '"+ PTT.normal+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
} catch (com.sun.star.lang.IllegalArgumentException e) {
- log.println("Exception occured while trying to change "+
+ System.out.println("Exception occured while trying to change "+
"property '"+ PTT.normal+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
} catch (com.sun.star.beans.UnknownPropertyException e) {
- log.println("Exception occured while trying to change "+
+ System.out.println("Exception occured while trying to change "+
"property '"+ PTT.normal+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
} catch (com.sun.star.lang.WrappedTargetException e) {
- log.println("Exception occured while trying to change "+
+ System.out.println("Exception occured while trying to change "+
"property '"+ PTT.normal+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
} // end of try-catch
result = !gValue.equals(sValue);
} //endif
@@ -361,21 +361,21 @@ public class _XPropertySet {
if ( PTT.normal.equals("none") ) {
toCheck = oObj.getPropertySetInfo().getProperties()[0].Name;
- log.println("All properties are Read Only");
- log.println("Using: "+toCheck);
+ System.out.println("All properties are Read Only");
+ System.out.println("Using: "+toCheck);
}
try {
Object gValue = oObj.getPropertyValue(toCheck);
} catch (com.sun.star.beans.UnknownPropertyException e) {
- log.println("Exception occured while trying to get property '"+
+ System.out.println("Exception occured while trying to get property '"+
PTT.normal+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
result = false;
} catch (com.sun.star.lang.WrappedTargetException e) {
- log.println("Exception occured while trying to get property '"+
+ System.out.println("Exception occured while trying to get property '"+
PTT.normal+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
result = false;
} // end of try-catch
@@ -402,7 +402,7 @@ public class _XPropertySet {
boolean result = true;
if ( PTT.bound.equals("none") ) {
- log.println("*** No bound properties found ***");
+ System.out.println("*** No bound properties found ***");
} else {
try {
propertyChanged = false;
@@ -411,26 +411,26 @@ public class _XPropertySet {
oObj.setPropertyValue(PTT.bound,
ValueChanger.changePValue(gValue));
} catch (com.sun.star.beans.PropertyVetoException e) {
- log.println("Exception occured while trying to change "+
+ System.out.println("Exception occured while trying to change "+
"property '"+ PTT.bound+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
} catch (com.sun.star.lang.IllegalArgumentException e) {
- log.println("Exception occured while trying to change "+
+ System.out.println("Exception occured while trying to change "+
"property '"+ PTT.bound+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
} catch (com.sun.star.beans.UnknownPropertyException e) {
- log.println("Exception occured while trying to change "+
+ System.out.println("Exception occured while trying to change "+
"property '"+ PTT.bound+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
} catch (com.sun.star.lang.WrappedTargetException e) {
- log.println("Exception occured while trying to change "+
+ System.out.println("Exception occured while trying to change "+
"property '"+ PTT.bound+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
} // end of try-catch
result = !propertyChanged;
if (propertyChanged) {
- log.println("propertyChangeListener was called after removing"+
+ System.out.println("propertyChangeListener was called after removing"+
" for '"+PTT.bound+"'");
}
} //endif
@@ -460,7 +460,7 @@ public class _XPropertySet {
boolean result = true;
if ( PTT.constrained.equals("none") ) {
- log.println("*** No constrained properties found ***");
+ System.out.println("*** No constrained properties found ***");
} else {
try {
oObj.removeVetoableChangeListener(PTT.constrained,VClistener);
@@ -468,26 +468,26 @@ public class _XPropertySet {
oObj.setPropertyValue(PTT.constrained,
ValueChanger.changePValue(gValue));
} catch (com.sun.star.beans.PropertyVetoException e) {
- log.println("Exception occured while trying to change "+
+ System.out.println("Exception occured while trying to change "+
"property '"+ PTT.constrained+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
} catch (com.sun.star.lang.IllegalArgumentException e) {
- log.println("Exception occured while trying to change "+
+ System.out.println("Exception occured while trying to change "+
"property '"+ PTT.constrained+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
} catch (com.sun.star.beans.UnknownPropertyException e) {
- log.println("Exception occured while trying to change "+
+ System.out.println("Exception occured while trying to change "+
"property '"+ PTT.constrained+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
} catch (com.sun.star.lang.WrappedTargetException e) {
- log.println("Exception occured while trying to change "+
+ System.out.println("Exception occured while trying to change "+
"property '"+ PTT.constrained+"'");
- e.printStackTrace((java.io.PrintWriter)log);
+ e.printStackTrace();
} // end of try-catch
result = !vetoableChanged;
if (vetoableChanged) {
- log.println("vetoableChangeListener was called after "+
+ System.out.println("vetoableChangeListener was called after "+
"removing for '"+PTT.constrained+"'");
}
} //endif
@@ -512,7 +512,7 @@ public class _XPropertySet {
Property property = properties[i];
String name = property.Name;
- log.println("Checking '"+name+"'");
+ System.out.println("Checking '"+name+"'");
boolean isWritable = ((property.Attributes &
PropertyAttribute.READONLY) == 0);
boolean isNotNull = ((property.Attributes &
@@ -523,7 +523,7 @@ public class _XPropertySet {
PropertyAttribute.CONSTRAINED) != 0);
boolean canChange = false;
- if ( !isWritable ) log.println("Property '"+name+"' is READONLY");
+ if ( !isWritable ) System.out.println("Property '"+name+"' is READONLY");
if (name.endsWith("URL")) isWritable = false;
if (name.startsWith("Fill")) isWritable = false;
@@ -552,11 +552,11 @@ public class _XPropertySet {
//get a random bound property
PTT.bound=getRandomString(bound);
- log.println("Bound: "+PTT.bound);
+ System.out.println("Bound: "+PTT.bound);
//get a random constrained property
PTT.constrained=getRandomString(constrained);
- log.println("Constrained: "+PTT.constrained);
+ System.out.println("Constrained: "+PTT.constrained);
//get a random normal property
PTT.normal=getRandomString(normal);
@@ -588,39 +588,39 @@ public class _XPropertySet {
boolean hasChanged = false;
try {
Object getProp = oObj.getPropertyValue(name);
- log.println("Getting: "+getProp);
+ System.out.println("Getting: "+getProp);
Object setValue = null;
if (getProp != null) {
if (!utils.isVoid(getProp))
setValue = ValueChanger.changePValue(getProp);
- else log.println("Property '"+name+
+ else System.out.println("Property '"+name+
"' is void but MAYBEVOID isn't set");
- } else log.println("Property '"+name+"'is null and can't be changed");
+ } else System.out.println("Property '"+name+"'is null and can't be changed");
if (name.equals("LineStyle")) setValue = null;
if (setValue != null) {
oObj.setPropertyValue(name, setValue);
- log.println("Setting to :"+setValue);
+ System.out.println("Setting to :"+setValue);
hasChanged = (! getProp.equals(oObj.getPropertyValue(name)));
- } else log.println("Couldn't change Property '"+name+"'");
+ } else System.out.println("Couldn't change Property '"+name+"'");
} catch (com.sun.star.beans.PropertyVetoException e) {
- log.println("'" + name + "' throws exception '" + e + "'");
- e.printStackTrace((java.io.PrintWriter)log);
+ System.out.println("'" + name + "' throws exception '" + e + "'");
+ e.printStackTrace();
} catch (com.sun.star.lang.IllegalArgumentException e) {
- log.println("'" + name + "' throws exception '" + e + "'");
- e.printStackTrace((java.io.PrintWriter)log);
+ System.out.println("'" + name + "' throws exception '" + e + "'");
+ e.printStackTrace();
} catch (com.sun.star.beans.UnknownPropertyException e) {
- log.println("'" + name + "' throws exception '" + e + "'");
- e.printStackTrace((java.io.PrintWriter)log);
+ System.out.println("'" + name + "' throws exception '" + e + "'");
+ e.printStackTrace();
} catch (com.sun.star.lang.WrappedTargetException e) {
- log.println("'" + name + "' throws exception '" + e + "'");
- e.printStackTrace((java.io.PrintWriter)log);
+ System.out.println("'" + name + "' throws exception '" + e + "'");
+ e.printStackTrace();
} catch (com.sun.star.uno.RuntimeException e) {
- log.println("'" + name + "' throws exception '" + e + "'");
- e.printStackTrace((java.io.PrintWriter)log);
+ System.out.println("'" + name + "' throws exception '" + e + "'");
+ e.printStackTrace();
} catch (java.lang.ArrayIndexOutOfBoundsException e) {
- log.println("'" + name + "' throws exception '" + e + "'");
- e.printStackTrace((java.io.PrintWriter)log);
+ System.out.println("'" + name + "' throws exception '" + e + "'");
+ e.printStackTrace();
}
return hasChanged;
diff --git a/sc/qa/complex/dataPilot/interfaceTests/beans/makefile.mk b/sc/qa/complex/dataPilot/interfaceTests/beans/makefile.mk
index 6ef9f7456cbb..22b29f5e0585 100644
--- a/sc/qa/complex/dataPilot/interfaceTests/beans/makefile.mk
+++ b/sc/qa/complex/dataPilot/interfaceTests/beans/makefile.mk
@@ -25,10 +25,10 @@
#
#*************************************************************************
-PRJ = ..$/..$/..$/..$/..
+PRJ = ../../../../..
TARGET = DataPilotInterfaceBeans
PRJNAME = sc
-PACKAGE = complex$/dataPilot$/interfaceTests$/beans
+PACKAGE = complex/dataPilot/interfaceTests/beans
# --- Settings -----------------------------------------------------
.INCLUDE: settings.mk
@@ -38,7 +38,7 @@ PACKAGE = complex$/dataPilot$/interfaceTests$/beans
JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
JAVAFILES = _XPropertySet.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)/$(PACKAGE)/$(i:b).class)
# --- Targets ------------------------------------------------------
diff --git a/sc/qa/complex/dataPilot/interfaceTests/container/makefile.mk b/sc/qa/complex/dataPilot/interfaceTests/container/makefile.mk
index 675fe7be9a1c..d8b4321f0fd1 100644
--- a/sc/qa/complex/dataPilot/interfaceTests/container/makefile.mk
+++ b/sc/qa/complex/dataPilot/interfaceTests/container/makefile.mk
@@ -25,10 +25,10 @@
#
#*************************************************************************
-PRJ = ..$/..$/..$/..$/..
+PRJ = ../../../../..
TARGET = DataPilotInterfaceContainer
PRJNAME = sc
-PACKAGE = complex$/dataPilot$/interfaceTests$/container
+PACKAGE = complex/dataPilot/interfaceTests/container
# --- Settings -----------------------------------------------------
.INCLUDE: settings.mk
@@ -38,7 +38,7 @@ PACKAGE = complex$/dataPilot$/interfaceTests$/container
JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
JAVAFILES = _XNamed.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)/$(PACKAGE)/$(i:b).class)
# --- Targets ------------------------------------------------------
diff --git a/sc/qa/complex/dataPilot/interfaceTests/sheet/makefile.mk b/sc/qa/complex/dataPilot/interfaceTests/sheet/makefile.mk
index 350e3fcb8f19..f62d17614222 100644
--- a/sc/qa/complex/dataPilot/interfaceTests/sheet/makefile.mk
+++ b/sc/qa/complex/dataPilot/interfaceTests/sheet/makefile.mk
@@ -25,10 +25,10 @@
#
#*************************************************************************
-PRJ = ..$/..$/..$/..$/..
+PRJ = ../../../../..
TARGET = DataPilotInterfaceSheet
PRJNAME = sc
-PACKAGE = complex$/dataPilot$/interfaceTests$/sheet
+PACKAGE = complex/dataPilot/interfaceTests/sheet
# --- Settings -----------------------------------------------------
.INCLUDE: settings.mk
@@ -38,7 +38,7 @@ PACKAGE = complex$/dataPilot$/interfaceTests$/sheet
JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
JAVAFILES = _XDataPilotDescriptor.java _XDataPilotTable.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)/$(PACKAGE)/$(i:b).class)
# --- Targets ------------------------------------------------------
diff --git a/sc/qa/complex/dataPilot/makefile.mk b/sc/qa/complex/dataPilot/makefile.mk
index a0bf1df34d0e..85512f8e5bc4 100644
--- a/sc/qa/complex/dataPilot/makefile.mk
+++ b/sc/qa/complex/dataPilot/makefile.mk
@@ -25,34 +25,35 @@
#
#*************************************************************************
-PRJ = ..$/..$/..
-TARGET = DataPilot
-PRJNAME = sc
-PACKAGE = complex$/dataPilot
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
+PRJ = ../../..
+PRJNAME = sc
+TARGET = qa_complex_datapilot
-#----- compile .java files -----------------------------------------
-
-JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
-JAVAFILES = CheckDataPilot.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = complex/dataPilot
+JAVATESTFILES = \
+ CheckDataPilot.java
-SUBDIRS = interfaceTests$/beans interfaceTests$/container interfaceTests$/sheet
-#----- make a jar from compiled files ------------------------------
+JAVAFILES = $(JAVATESTFILES) \
+ _XDataPilotDescriptor.java \
+ _XDataPilotTable.java \
+ _XNamed.java \
+ _XPropertySet.java
-MAXLINELENGTH = 100000
+JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
-JARCLASSDIRS = $(PACKAGE)
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
+.END
-# --- Targets ------------------------------------------------------
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-.INCLUDE : target.mk
+ALLTAR : javatest
+.END
-run:
- +java -cp $(CLASSPATH) org.openoffice.Runner -TimeOut 0 -tb java_complex -o $(PACKAGE:s#$/#.#).$(JAVAFILES:b)
diff --git a/sc/qa/complex/sc/CalcRTL.java b/sc/qa/complex/sc/CalcRTL.java
index 9528c34b9267..c9fad2fec9c5 100644
--- a/sc/qa/complex/sc/CalcRTL.java
+++ b/sc/qa/complex/sc/CalcRTL.java
@@ -44,23 +44,32 @@ import com.sun.star.sheet.XCellRangeAddressable;
import com.sun.star.sheet.XSpreadsheet;
import com.sun.star.sheet.XSpreadsheetDocument;
import com.sun.star.sheet.XSpreadsheets;
-import com.sun.star.table.XCell;
+// import com.sun.star.table.XCell;
import com.sun.star.uno.Any;
import com.sun.star.uno.AnyConverter;
import com.sun.star.uno.Type;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.util.XCloseable;
-import complexlib.ComplexTestCase;
+// import complexlib.ComplexTestCase;
-import java.io.PrintWriter;
+// import java.io.PrintWriter;
import util.DrawTools;
import util.SOfficeFactory;
import util.ValueComparer;
+// 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 CalcRTL extends ComplexTestCase {
+
+public class CalcRTL /* extends ComplexTestCase */
+{
XSpreadsheetDocument xSheetDoc = null;
/*
@@ -74,12 +83,12 @@ public class CalcRTL extends ComplexTestCase {
* <br>
* 3. A calc document is opened and a shape inserted, afterwards the effect of changing the TableLayout to the shape is checked
*/
- public String[] getTestMethodNames() {
- return new String[] {
- "checkSpreadsheetProperties", "checkShapeProperties",
- "checkInfluenceOfSpreadsheetChange"
- };
- }
+// public String[] getTestMethodNames() {
+// return new String[] {
+// "checkSpreadsheetProperties", "checkShapeProperties",
+// "checkInfluenceOfSpreadsheetChange"
+// };
+// }
/*
* In this method a spreadsheet document is opened<br>
@@ -92,26 +101,26 @@ public class CalcRTL extends ComplexTestCase {
*<li> TableLayout
*</ul>
*/
- public void checkSpreadsheetProperties() {
- assure("Couldn't open document", openSpreadsheetDocument());
+ @Test public void checkSpreadsheetProperties() {
+ assertTrue("Couldn't open document", openSpreadsheetDocument());
- XPropertySet set = (XPropertySet) UnoRuntime.queryInterface(
+ XPropertySet set = UnoRuntime.queryInterface(
XPropertySet.class, getSpreadsheet());
- assure("Problems when setting property 'IsVisible'",
+ assertTrue("Problems when setting property 'IsVisible'",
changeProperty(set, "IsVisible", Boolean.FALSE));
- assure("Problems when setting property 'IsVisible'",
+ assertTrue("Problems when setting property 'IsVisible'",
changeProperty(set, "IsVisible", Boolean.TRUE));
- assure("Problems when setting property 'PageStyle'",
+ assertTrue("Problems when setting property 'PageStyle'",
changeProperty(set, "PageStyle", "Report"));
- assure("Problems when setting property 'PageStyle'",
+ assertTrue("Problems when setting property 'PageStyle'",
changeProperty(set, "PageStyle", "Default"));
- assure("Problems when setting property 'TableLayout'",
+ assertTrue("Problems when setting property 'TableLayout'",
changeProperty(set, "TableLayout",
new Short(com.sun.star.text.WritingMode2.RL_TB)));
- assure("Problems when setting property 'TableLayout'",
+ assertTrue("Problems when setting property 'TableLayout'",
changeProperty(set, "TableLayout",
new Short(com.sun.star.text.WritingMode2.LR_TB)));
- assure("Couldn't close document", closeSpreadsheetDocument());
+ assertTrue("Couldn't close document", closeSpreadsheetDocument());
}
/*
@@ -125,67 +134,69 @@ public class CalcRTL extends ComplexTestCase {
*<li> VertOrientPosition
*</ul>
*/
- public void checkShapeProperties() {
- assure("Couldn't open document", openSpreadsheetDocument());
+ @Test public void checkShapeProperties() {
+ assertTrue("Couldn't open document", openSpreadsheetDocument());
- XPropertySet set = (XPropertySet) UnoRuntime.queryInterface(
+ XPropertySet set = UnoRuntime.queryInterface(
XPropertySet.class, getInsertedShape());
try {
- assure("Problems when setting property 'Anchor'",
+ assertTrue("Problems when setting property 'Anchor'",
changeProperty(set, "Anchor",
getSpreadsheet().getCellByPosition(5, 5)));
} catch (com.sun.star.lang.IndexOutOfBoundsException e) {
- assure("Problems when setting property 'Anchor'", false);
+ // assure("Problems when setting property 'Anchor'", false);
+ fail("Problems when setting property 'Anchor'");
}
- assure("Problems when setting property 'HoriOrientPosition'",
+ assertTrue("Problems when setting property 'HoriOrientPosition'",
changeProperty(set, "HoriOrientPosition", new Integer(1000)));
- assure("Problems when setting property 'VertOrientPosition'",
+ assertTrue("Problems when setting property 'VertOrientPosition'",
changeProperty(set, "VertOrientPosition", new Integer(1000)));
- assure("Couldn't close document", closeSpreadsheetDocument());
+ assertTrue("Couldn't close document", closeSpreadsheetDocument());
}
- public void checkInfluenceOfSpreadsheetChange() {
- assure("Couldn't open document", openSpreadsheetDocument());
+ @Test public void checkInfluenceOfSpreadsheetChange() {
+ assertTrue("Couldn't open document", openSpreadsheetDocument());
XShape oShape = getInsertedShape();
- XPropertySet sheetProps = (XPropertySet) UnoRuntime.queryInterface(
+ XPropertySet sheetProps = UnoRuntime.queryInterface(
XPropertySet.class, getSpreadsheet());
- XPropertySet shapeProps = (XPropertySet) UnoRuntime.queryInterface(
+ XPropertySet shapeProps = UnoRuntime.queryInterface(
XPropertySet.class, oShape);
String[] previous = getShapeProps(shapeProps, oShape);
- assure("Problems when setting property 'TableLayout'",
+ assertTrue("Problems when setting property 'TableLayout'",
changeProperty(sheetProps, "TableLayout",
new Short(com.sun.star.text.WritingMode2.RL_TB)));
String[] RL_TB = getShapeProps(shapeProps, oShape);
- assure("Problems when setting property 'TableLayout'",
+ assertTrue("Problems when setting property 'TableLayout'",
changeProperty(sheetProps, "TableLayout",
new Short(com.sun.star.text.WritingMode2.LR_TB)));
String[] LR_TB = getShapeProps(shapeProps, oShape);
- assure("Anchor has changed",
+ assertTrue("Anchor has changed",
(previous[0].equals(RL_TB[0]) && previous[0].equals(LR_TB[0])));
- assure("HoriOrientPosition has changed",
- (Integer.valueOf(previous[1]).intValue() + Integer.valueOf(
+ assertEquals("HoriOrientPosition has changed",
+ 2100, (Integer.valueOf(previous[1]).intValue() + Integer.valueOf(
RL_TB[1])
.intValue() +
- Integer.valueOf(LR_TB[1]).intValue() == 2099));
- assure("VertOrientPosition has changed",
+ Integer.valueOf(LR_TB[1]).intValue()));
+ assertEquals("VertOrientPosition has changed",
+ 3*Integer.valueOf(previous[2]).intValue(),
(Integer.valueOf(previous[2]).intValue() + Integer.valueOf(
RL_TB[2])
.intValue() +
- Integer.valueOf(LR_TB[2]).intValue() == 3*Integer.valueOf(previous[2]).intValue()));
- assure("x-position hasn't changed",
+ Integer.valueOf(LR_TB[2]).intValue()));
+ assertTrue("x-position hasn't changed",
(previous[3].equals(LR_TB[3]) &&
((Integer.valueOf(previous[3]).intValue() * (-1)) -
oShape.getSize().Width != Integer.valueOf(LR_TB[2])
.intValue())));
- assure("Couldn't close document", closeSpreadsheetDocument());
+ assertTrue("Couldn't close document", closeSpreadsheetDocument());
}
protected String[] getShapeProps(XPropertySet set, XShape oShape) {
@@ -200,10 +211,10 @@ public class CalcRTL extends ComplexTestCase {
} catch (com.sun.star.lang.WrappedTargetException e) {
}
- log.println("\t Anchor :" + reValue[0]);
- log.println("\t HoriOrientPosition :" + reValue[1]);
- log.println("\t VertOrientPosition :" + reValue[2]);
- log.println("\t Shape Position (x,y) : (" + oShape.getPosition().X +
+ System.out.println("\t Anchor :" + reValue[0]);
+ System.out.println("\t HoriOrientPosition :" + reValue[1]);
+ System.out.println("\t VertOrientPosition :" + reValue[2]);
+ System.out.println("\t Shape Position (x,y) : (" + oShape.getPosition().X +
"," + oShape.getPosition().Y + ")");
return reValue;
@@ -213,17 +224,21 @@ public class CalcRTL extends ComplexTestCase {
* this method opens a calc document and sets the corresponding class variable xSheetDoc
*/
protected boolean openSpreadsheetDocument() {
- SOfficeFactory SOF = SOfficeFactory.getFactory(
- (XMultiServiceFactory) param.getMSF());
+ // SOfficeFactory SOF = SOfficeFactory.getFactory(
+ // (XMultiServiceFactory) param.getMSF());
+
+ final XMultiServiceFactory xMsf = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ SOfficeFactory SOF = SOfficeFactory.getFactory(xMsf);
+
boolean worked = true;
try {
- log.println("creating a sheetdocument");
+ System.out.println("creating a sheetdocument");
xSheetDoc = SOF.createCalcDoc(null);
} catch (com.sun.star.uno.Exception e) {
// Some exception occures.FAILED
worked = false;
- e.printStackTrace((PrintWriter) log);
+ e.printStackTrace(/*(PrintWriter) log*/ System.out);
}
return worked;
@@ -235,21 +250,21 @@ public class CalcRTL extends ComplexTestCase {
protected boolean closeSpreadsheetDocument() {
boolean worked = true;
- log.println(" disposing xSheetDoc ");
+ System.out.println(" disposing xSheetDoc ");
try {
- XCloseable oCloser = (XCloseable) UnoRuntime.queryInterface(
+ XCloseable oCloser = UnoRuntime.queryInterface(
XCloseable.class, xSheetDoc);
oCloser.close(true);
} catch (com.sun.star.util.CloseVetoException e) {
worked = false;
- log.println("Couldn't close document");
+ System.out.println("Couldn't close document");
} catch (com.sun.star.lang.DisposedException e) {
worked = false;
- log.println("Document already disposed");
+ System.out.println("Document already disposed");
} catch (java.lang.NullPointerException e) {
worked = false;
- log.println("Couldn't get XCloseable");
+ System.out.println("Couldn't get XCloseable");
}
xSheetDoc = null;
@@ -264,22 +279,22 @@ public class CalcRTL extends ComplexTestCase {
protected XSpreadsheet getSpreadsheet() {
XSpreadsheet oSheet = null;
- log.println("getting sheets");
+ System.out.println("getting sheets");
- XSpreadsheets xSpreadsheets = (XSpreadsheets) xSheetDoc.getSheets();
+ XSpreadsheets xSpreadsheets = xSheetDoc.getSheets();
- log.println("getting a sheet");
+ System.out.println("getting a sheet");
- XIndexAccess oIndexAccess = (XIndexAccess) UnoRuntime.queryInterface(
+ XIndexAccess oIndexAccess = UnoRuntime.queryInterface(
XIndexAccess.class, xSpreadsheets);
try {
- oSheet = (XSpreadsheet) UnoRuntime.queryInterface(
+ oSheet = UnoRuntime.queryInterface(
XSpreadsheet.class, oIndexAccess.getByIndex(0));
} catch (com.sun.star.lang.WrappedTargetException e) {
- e.printStackTrace((PrintWriter) log);
+ e.printStackTrace(System.out);
} catch (com.sun.star.lang.IndexOutOfBoundsException e) {
- e.printStackTrace((PrintWriter) log);
+ e.printStackTrace(System.out);
}
return oSheet;
@@ -361,19 +376,19 @@ public class CalcRTL extends ComplexTestCase {
//check get-set methods
if (maybeVoid) {
- log.println("Property " + propName + " is void");
+ System.out.println("Property " + propName + " is void");
}
if (readOnly) {
- log.println("Property " + propName + " is readOnly");
+ System.out.println("Property " + propName + " is readOnly");
}
if (util.utils.isVoid(oldValue) && !maybeVoid) {
- log.println(propName + " is void, but it's not MAYBEVOID");
+ System.out.println(propName + " is void, but it's not MAYBEVOID");
return false;
} else if (oldValue == null) {
- log.println(propName +
+ System.out.println(propName +
" has null value, and therefore can't be changed");
return true;
@@ -382,26 +397,26 @@ public class CalcRTL extends ComplexTestCase {
if (exception != null) {
if (exception instanceof PropertyVetoException) {
// the change of read only prohibited - OK
- log.println("Property is ReadOnly and wasn't changed");
- log.println("Property '" + propName + "' OK");
+ System.out.println("Property is ReadOnly and wasn't changed");
+ System.out.println("Property '" + propName + "' OK");
return true;
} else if (exception instanceof IllegalArgumentException) {
// the change of read only prohibited - OK
- log.println("Property is ReadOnly and wasn't changed");
- log.println("Property '" + propName + "' OK");
+ System.out.println("Property is ReadOnly and wasn't changed");
+ System.out.println("Property '" + propName + "' OK");
return true;
} else if (exception instanceof UnknownPropertyException) {
// the change of read only prohibited - OK
- log.println("Property is ReadOnly and wasn't changed");
- log.println("Property '" + propName + "' OK");
+ System.out.println("Property is ReadOnly and wasn't changed");
+ System.out.println("Property '" + propName + "' OK");
return true;
} else if (exception instanceof RuntimeException) {
// the change of read only prohibited - OK
- log.println("Property is ReadOnly and wasn't changed");
- log.println("Property '" + propName + "' OK");
+ System.out.println("Property is ReadOnly and wasn't changed");
+ System.out.println("Property '" + propName + "' OK");
return true;
} else {
@@ -411,7 +426,7 @@ public class CalcRTL extends ComplexTestCase {
// if no exception - check that value
// has not changed
if (!ValueComparer.equalValue(resValue, oldValue)) {
- log.println("Read only property '" + propName +
+ System.out.println("Read only property '" + propName +
"' has changed");
try {
@@ -422,17 +437,17 @@ public class CalcRTL extends ComplexTestCase {
oldValue);
}
- log.println("old = " + toString(oldValue));
- log.println("new = " + toString(newValue));
- log.println("result = " + toString(resValue));
+ System.out.println("old = " + toString(oldValue));
+ System.out.println("new = " + toString(newValue));
+ System.out.println("result = " + toString(resValue));
} catch (com.sun.star.lang.IllegalArgumentException iae) {
}
return false;
} else {
- log.println("Read only property '" + propName +
+ System.out.println("Read only property '" + propName +
"' hasn't changed");
- log.println("Property '" + propName + "' OK");
+ System.out.println("Property '" + propName + "' OK");
return true;
}
@@ -443,7 +458,7 @@ public class CalcRTL extends ComplexTestCase {
// check that the new value is set
if ((!ValueComparer.equalValue(resValue, newValue)) ||
(ValueComparer.equalValue(resValue, oldValue))) {
- log.println("Value for '" + propName +
+ System.out.println("Value for '" + propName +
"' hasn't changed as expected");
try {
@@ -454,16 +469,16 @@ public class CalcRTL extends ComplexTestCase {
oldValue);
}
- log.println("old = " + toString(oldValue));
- log.println("new = " + toString(newValue));
- log.println("result = " + toString(resValue));
+ System.out.println("old = " + toString(oldValue));
+ System.out.println("new = " + toString(newValue));
+ System.out.println("result = " + toString(resValue));
} catch (com.sun.star.lang.IllegalArgumentException iae) {
}
if (resValue != null) {
if ((!ValueComparer.equalValue(resValue, oldValue)) ||
(!resValue.equals(oldValue))) {
- log.println("But it has changed.");
+ System.out.println("But it has changed.");
return true;
} else {
@@ -475,7 +490,7 @@ public class CalcRTL extends ComplexTestCase {
//tRes.tested(propName, false);
} else {
- log.println("Property '" + propName + "' OK");
+ System.out.println("Property '" + propName + "' OK");
try {
if (!util.utils.isVoid(oldValue) &&
@@ -485,9 +500,9 @@ public class CalcRTL extends ComplexTestCase {
oldValue);
}
- log.println("old = " + toString(oldValue));
- log.println("new = " + toString(newValue));
- log.println("result = " + toString(resValue));
+ System.out.println("old = " + toString(oldValue));
+ System.out.println("new = " + toString(newValue));
+ System.out.println("result = " + toString(resValue));
} catch (com.sun.star.lang.IllegalArgumentException iae) {
}
@@ -514,7 +529,7 @@ public class CalcRTL extends ComplexTestCase {
Object value = null;
if (UnoRuntime.queryInterface(XCellRangeAddressable.class, obj) != null) {
- XCellRangeAddressable aCell = (XCellRangeAddressable) UnoRuntime.queryInterface(
+ XCellRangeAddressable aCell = UnoRuntime.queryInterface(
XCellRangeAddressable.class,
obj);
value = "Cell in Column " + aCell.getRangeAddress().StartColumn +
@@ -533,35 +548,54 @@ public class CalcRTL extends ComplexTestCase {
XShape insertedShape = null;
try {
- log.println("getting Drawpages");
+ System.out.println("getting Drawpages");
- XDrawPagesSupplier oDPS = (XDrawPagesSupplier) UnoRuntime.queryInterface(
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(
XDrawPagesSupplier.class,
xSheetDoc);
- XDrawPages oDP = (XDrawPages) oDPS.getDrawPages();
- XDrawPage firstDrawPage = (XDrawPage) UnoRuntime.queryInterface(
+ XDrawPages oDP = oDPS.getDrawPages();
+ XDrawPage firstDrawPage = UnoRuntime.queryInterface(
XDrawPage.class,
oDP.getByIndex(0));
- SOfficeFactory SOF = SOfficeFactory.getFactory(
- (XMultiServiceFactory) param.getMSF());
- XComponent xComp = (XComponent) UnoRuntime.queryInterface(
+ final XMultiServiceFactory xMsf = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ SOfficeFactory SOF = SOfficeFactory.getFactory(xMsf);
+
+ // SOfficeFactory SOF = SOfficeFactory.getFactory(
+ // (XMultiServiceFactory) param.getMSF());
+ XComponent xComp = UnoRuntime.queryInterface(
XComponent.class, xSheetDoc);
insertedShape = SOF.createShape(xComp, 5000, 3500, 700, 500,
"Rectangle");
DrawTools.getShapes(firstDrawPage).add(insertedShape);
} catch (com.sun.star.lang.WrappedTargetException e) {
- log.println("Couldn't create instance");
- e.printStackTrace((PrintWriter) log);
+ System.out.println("Couldn't create instance");
+ e.printStackTrace();
return null;
} catch (com.sun.star.lang.IndexOutOfBoundsException e) {
- log.println("Couldn't create instance");
- e.printStackTrace((PrintWriter) log);
+ System.out.println("Couldn't create instance");
+ e.printStackTrace();
return null;
}
return insertedShape;
}
-} \ No newline at end of file
+
+
+
+
+ @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/sc/qa/complex/sc/makefile.mk b/sc/qa/complex/sc/makefile.mk
index 097e6d0c5500..e064f9d3bd43 100644
--- a/sc/qa/complex/sc/makefile.mk
+++ b/sc/qa/complex/sc/makefile.mk
@@ -25,33 +25,27 @@
#
#*************************************************************************
-PRJ = ..$/..$/..
-TARGET = CalcRTL
-PRJNAME = sc
-PACKAGE = complex$/sc
-
-# --- 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 = CalcRTL.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 = sc
+TARGET = qa_complex_sc
-# --- Targets ------------------------------------------------------
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = complex/sc
+JAVATESTFILES = \
+ CalcRTL.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar jurt.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/sc/sdi/tabvwsh.sdi b/sc/sdi/tabvwsh.sdi
index fac67839e656..84c895b8fa3a 100644
--- a/sc/sdi/tabvwsh.sdi
+++ b/sc/sdi/tabvwsh.sdi
@@ -76,7 +76,6 @@ interface BaseSelection
SID_INSERT_PLUGIN [ ExecMethod = ExecDrawIns; StateMethod = GetDrawInsState; ]
SID_INSERT_SOUND [ ExecMethod = ExecDrawIns; StateMethod = GetDrawInsState; ]
SID_INSERT_VIDEO [ ExecMethod = ExecDrawIns; StateMethod = GetDrawInsState; ]
- SID_INSERT_APPLET [ ExecMethod = ExecDrawIns; StateMethod = GetDrawInsState; ]
SID_INSERT_FLOATINGFRAME [ ExecMethod = ExecDrawIns; StateMethod = GetDrawInsState; ]
SID_INSERT_AVMEDIA [ ExecMethod = ExecDrawIns; StateMethod = GetDrawInsState; ]
diff --git a/sc/source/core/data/bcaslot.cxx b/sc/source/core/data/bcaslot.cxx
index 95482b1c624b..540fb577a79b 100644
--- a/sc/source/core/data/bcaslot.cxx
+++ b/sc/source/core/data/bcaslot.cxx
@@ -136,10 +136,16 @@ ScBroadcastAreaSlot::ScBroadcastAreaSlot( ScDocument* pDocument,
ScBroadcastAreaSlot::~ScBroadcastAreaSlot()
{
for ( ScBroadcastAreas::iterator aIter( aBroadcastAreaTbl.begin());
- aIter != aBroadcastAreaTbl.end(); ++aIter)
+ aIter != aBroadcastAreaTbl.end(); /* none */)
{
- if (!(*aIter)->DecRef())
- delete *aIter;
+ // Prevent hash from accessing dangling pointer in case area is
+ // deleted.
+ ScBroadcastArea* pArea = *aIter;
+ // Erase all so no hash will be accessed upon destruction of the
+ // hash_set.
+ aBroadcastAreaTbl.erase( aIter++);
+ if (!pArea->DecRef())
+ delete pArea;
}
}
diff --git a/sc/source/core/data/docpool.cxx b/sc/source/core/data/docpool.cxx
index cd763cfc0787..8b2f48d8a2cc 100644
--- a/sc/source/core/data/docpool.cxx
+++ b/sc/source/core/data/docpool.cxx
@@ -651,6 +651,26 @@ void ScDocumentPool::StyleDeleted( ScStyleSheet* pStyle )
}
}
+void ScDocumentPool::CellStyleCreated( const String& rName )
+{
+ // If a style was created, don't keep any pattern with its name string in the pool,
+ // because it would compare equal to a pattern with a pointer to the new style.
+ // Calling StyleSheetChanged isn't enough because the pool may still contain items
+ // for undo or clipboard content.
+
+ sal_uInt16 nCount = GetItemCount(ATTR_PATTERN);
+ for (sal_uInt16 i=0; i<nCount; i++)
+ {
+ ScPatternAttr* pPattern = (ScPatternAttr*)GetItem(ATTR_PATTERN, i);
+ if ( pPattern && pPattern->GetStyleSheet() == NULL )
+ {
+ const String* pStyleName = pPattern->GetStyleName();
+ if ( pStyleName && *pStyleName == rName )
+ pPattern->UpdateStyleSheet(); // find and store style pointer
+ }
+ }
+}
+
SfxItemPool* __EXPORT ScDocumentPool::Clone() const
{
return new SfxItemPool (*this, TRUE);
diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx
index e8ea10f7cf52..d2c99c75a95e 100755..100644
--- a/sc/source/core/data/documen2.cxx
+++ b/sc/source/core/data/documen2.cxx
@@ -50,6 +50,7 @@
#include <tools/tenccvt.hxx>
#include <tools/list.hxx>
#include <rtl/crc.h>
+#include <basic/basmgr.hxx>
#include "document.hxx"
#include "table.hxx"
@@ -93,7 +94,8 @@
#include "tabprotection.hxx"
#include "formulaparserpool.hxx"
#include "clipparam.hxx"
-#include <basic/basmgr.hxx>
+
+using namespace com::sun::star;
// pImpl because including lookupcache.hxx in document.hxx isn't wanted, and
// dtor plus helpers are convenient.
@@ -1118,11 +1120,11 @@ ULONG ScDocument::TransferTab( ScDocument* pSrcDoc, SCTAB nSrcPos,
String sCodeName;
String sSource;
- com::sun::star::uno::Reference< com::sun::star::script::XLibraryContainer > xLibContainer = pSrcShell->GetBasicContainer();
- com::sun::star::uno::Reference< com::sun::star::container::XNameContainer > xLib;
+ uno::Reference< script::XLibraryContainer > xLibContainer = pSrcShell->GetBasicContainer();
+ uno::Reference< container::XNameContainer > xLib;
if( xLibContainer.is() )
{
- com::sun::star::uno::Any aLibAny = xLibContainer->getByName( aLibName );
+ uno::Any aLibAny = xLibContainer->getByName( aLibName );
aLibAny >>= xLib;
}
diff --git a/sc/source/core/data/documen3.cxx b/sc/source/core/data/documen3.cxx
index 1861988d78aa..8fea4b8af2b9 100644
--- a/sc/source/core/data/documen3.cxx
+++ b/sc/source/core/data/documen3.cxx
@@ -30,6 +30,7 @@
// INCLUDE ---------------------------------------------------------------
+#include <com/sun/star/script/vba/XVBAEventProcessor.hpp>
#include "scitems.hxx"
#include <editeng/langitem.hxx>
#include <svl/srchitem.hxx>
@@ -88,7 +89,6 @@
#include <memory>
using namespace com::sun::star;
-using ::std::auto_ptr;
//------------------------------------------------------------------------
@@ -512,15 +512,35 @@ void ScDocument::SetSheetEvents( SCTAB nTab, const ScSheetEvents* pNew )
pTab[nTab]->SetSheetEvents( pNew );
}
-bool ScDocument::HasSheetEventScript( sal_Int32 nEvent ) const
+bool ScDocument::HasSheetEventScript( SCTAB nTab, sal_Int32 nEvent, bool bWithVbaEvents ) const
{
- for (SCTAB nTab = 0; nTab <= MAXTAB; nTab++)
- if (pTab[nTab])
+ if (pTab[nTab])
+ {
+ // check if any event handler script has been configured
+ const ScSheetEvents* pEvents = pTab[nTab]->GetSheetEvents();
+ if ( pEvents && pEvents->GetScript( nEvent ) )
+ return true;
+ // check if VBA event handlers exist
+ if (bWithVbaEvents && mxVbaEvents.is()) try
{
- const ScSheetEvents* pEvents = pTab[nTab]->GetSheetEvents();
- if ( pEvents && pEvents->GetScript( nEvent ) )
+ uno::Sequence< uno::Any > aArgs( 1 );
+ aArgs[ 0 ] <<= nTab;
+ if (mxVbaEvents->hasVbaEventHandler( ScSheetEvents::GetVbaSheetEventId( nEvent ), aArgs ) ||
+ mxVbaEvents->hasVbaEventHandler( ScSheetEvents::GetVbaDocumentEventId( nEvent ), uno::Sequence< uno::Any >() ))
return true;
}
+ catch( uno::Exception& )
+ {
+ }
+ }
+ return false;
+}
+
+bool ScDocument::HasAnySheetEventScript( sal_Int32 nEvent, bool bWithVbaEvents ) const
+{
+ for (SCTAB nTab = 0; nTab <= MAXTAB; nTab++)
+ if (HasSheetEventScript( nTab, nEvent, bWithVbaEvents ))
+ return true;
return false;
}
@@ -1546,6 +1566,54 @@ void ScDocument::ResetEmbedded()
aEmbedRange = ScRange();
}
+
+/** Similar to ScViewData::AddPixelsWhile(), but add height twips and only
+ while result is less than nStopTwips.
+ @return TRUE if advanced at least one row.
+ */
+bool lcl_AddTwipsWhile( long & rTwips, long nStopTwips, SCROW & rPosY, SCROW nEndRow, const ScTable * pTable )
+{
+ SCROW nRow = rPosY;
+ bool bAdded = false;
+ bool bStop = false;
+ while (rTwips < nStopTwips && nRow <= nEndRow && !bStop)
+ {
+ SCROW nHeightEndRow;
+ USHORT nHeight = pTable->GetRowHeight( nRow, NULL, &nHeightEndRow);
+ if (nHeightEndRow > nEndRow)
+ nHeightEndRow = nEndRow;
+ if (!nHeight)
+ nRow = nHeightEndRow + 1;
+ else
+ {
+ SCROW nRows = nHeightEndRow - nRow + 1;
+ sal_Int64 nAdd = static_cast<sal_Int64>(nHeight) * nRows;
+ if (nAdd + rTwips >= nStopTwips)
+ {
+ sal_Int64 nDiff = nAdd + rTwips - nStopTwips;
+ nRows -= static_cast<SCROW>(nDiff / nHeight);
+ nAdd = nHeight * nRows;
+ // We're looking for a value that satisfies loop condition.
+ if (nAdd + rTwips >= nStopTwips)
+ {
+ --nRows;
+ nAdd -= nHeight;
+ }
+ bStop = true;
+ }
+ rTwips += static_cast<long>(nAdd);
+ nRow += nRows;
+ }
+ }
+ if (nRow > rPosY)
+ {
+ --nRow;
+ bAdded = true;
+ }
+ rPosY = nRow;
+ return bAdded;
+}
+
ScRange ScDocument::GetRange( SCTAB nTab, const Rectangle& rMMRect )
{
ScTable* pTable = pTab[nTab];
@@ -1602,43 +1670,16 @@ ScRange ScDocument::GetRange( SCTAB nTab, const Rectangle& rMMRect )
nTwips = (long) (aPosRect.Top() / HMM_PER_TWIPS);
SCROW nY1 = 0;
- bEnd = FALSE;
- for (SCROW i = nY1; i <= MAXROW && !bEnd; ++i)
- {
- if (pTable->RowHidden(i))
- continue;
-
- nY1 = i;
- nAdd = static_cast<long>(pTable->GetRowHeight(i));
- if (nSize+nAdd <= nTwips+1 && nY1<MAXROW)
- {
- nSize += nAdd;
- ++nY1;
- }
- else
- bEnd = TRUE;
- }
- if (!bEnd)
- nY1 = MAXROW; // all hidden down to the bottom
+ // Was if(nSize+nAdd<=nTwips+1) inside loop => if(nSize+nAdd<nTwips+2)
+ if (lcl_AddTwipsWhile( nSize, nTwips+2, nY1, MAXROW, pTable) && nY1 < MAXROW)
+ ++nY1; // original loop ended on last matched +1 unless that was MAXROW
nTwips = (long) (aPosRect.Bottom() / HMM_PER_TWIPS);
SCROW nY2 = nY1;
- bEnd = FALSE;
- for (SCROW i = nY2; i <= MAXROW && !bEnd; ++i)
- {
- nY2 = i;
- nAdd = static_cast<long>(pTable->GetRowHeight(i));
- if (nSize+nAdd < nTwips && nY2<MAXROW)
- {
- nSize += nAdd;
- ++nY2;
- }
- else
- bEnd = TRUE;
- }
- if (!bEnd)
- nY2 = MAXROW; // all hidden down to the bottom
+ // Was if(nSize+nAdd<nTwips) inside loop => if(nSize+nAdd<nTwips)
+ if (lcl_AddTwipsWhile( nSize, nTwips, nY2, MAXROW, pTable) && nY2 < MAXROW)
+ ++nY2; // original loop ended on last matched +1 unless that was MAXROW
return ScRange( nX1,nY1,nTab, nX2,nY2,nTab );
}
diff --git a/sc/source/core/data/documen7.cxx b/sc/source/core/data/documen7.cxx
index 97aae44f1a7b..d77dc1041d9c 100644
--- a/sc/source/core/data/documen7.cxx
+++ b/sc/source/core/data/documen7.cxx
@@ -454,7 +454,7 @@ void ScDocument::TrackFormulas( ULONG nHintId )
{
erBEEPER();
// outside the loop, check if any sheet has a "calculate" event script
- bool bCalcEvent = HasSheetEventScript( SC_SHEETEVENT_CALCULATE );
+ bool bCalcEvent = HasAnySheetEventScript( SC_SHEETEVENT_CALCULATE, true );
SvtBroadcaster* pBC;
ScFormulaCell* pTrack;
ScFormulaCell* pNext;
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index bef4cbf87396..1efe32446eef 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -51,7 +51,7 @@
#include <tools/tenccvt.hxx>
#include <com/sun/star/text/WritingMode2.hpp>
-#include <com/sun/star/script/XVBACompat.hpp>
+#include <com/sun/star/script/vba/XVBACompatibility.hpp>
#include <com/sun/star/sheet/TablePageBreakData.hpp>
#include "document.hxx"
@@ -3061,6 +3061,19 @@ void ScDocument::CalcAfterLoad()
bCalcingAfterLoad = FALSE;
SetDetectiveDirty(FALSE); // noch keine wirklichen Aenderungen
+
+ // #i112436# If formula cells are already dirty, they don't broadcast further changes.
+ // So the source ranges of charts must be interpreted even if they are not visible,
+ // similar to ScMyShapeResizer::CreateChartListener for loading own files (i104899).
+ if (pChartListenerCollection)
+ {
+ sal_uInt16 nChartCount = pChartListenerCollection->GetCount();
+ for ( sal_uInt16 nIndex = 0; nIndex < nChartCount; nIndex++ )
+ {
+ ScChartListener* pChartListener = static_cast<ScChartListener*>(pChartListenerCollection->At(nIndex));
+ InterpretDirtyCells(*pChartListener->GetRangeList());
+ }
+ }
}
@@ -3161,7 +3174,16 @@ USHORT ScDocument::GetRowHeight( SCROW nRow, SCTAB nTab, bool bHiddenAsZero ) co
{
if ( ValidTab(nTab) && pTab[nTab] )
return pTab[nTab]->GetRowHeight( nRow, NULL, NULL, bHiddenAsZero );
- DBG_ERROR("Falsche Tabellennummer");
+ DBG_ERROR("Wrong sheet number");
+ return 0;
+}
+
+
+USHORT ScDocument::GetRowHeight( SCROW nRow, SCTAB nTab, SCROW* pStartRow, SCROW* pEndRow, bool bHiddenAsZero ) const
+{
+ if ( ValidTab(nTab) && pTab[nTab] )
+ return pTab[nTab]->GetRowHeight( nRow, pStartRow, pEndRow, bHiddenAsZero );
+ DBG_ERROR("Wrong sheet number");
return 0;
}
@@ -3684,24 +3706,35 @@ SCCOL ScDocument::GetNextDifferentChangedCol( SCTAB nTab, SCCOL nStart) const
SCROW ScDocument::GetNextDifferentChangedRow( SCTAB nTab, SCROW nStart, bool bCareManualSize) const
{
- if ( ValidTab(nTab) && pTab[nTab] && pTab[nTab]->GetRowFlagsArray() && pTab[nTab]->mpRowHeights )
- {
- BYTE nStartFlags = pTab[nTab]->GetRowFlags(nStart);
- USHORT nStartHeight = pTab[nTab]->GetOriginalHeight(nStart);
- for (SCROW nRow = nStart + 1; nRow <= MAXROW; nRow++)
+ const ScBitMaskCompressedArray< SCROW, BYTE> * pRowFlagsArray;
+ if ( ValidTab(nTab) && pTab[nTab] && ((pRowFlagsArray = pTab[nTab]->GetRowFlagsArray()) != NULL) &&
+ pTab[nTab]->mpRowHeights && pTab[nTab]->mpHiddenRows )
+ {
+ size_t nIndex; // ignored
+ SCROW nFlagsEndRow;
+ SCROW nHiddenEndRow;
+ SCROW nHeightEndRow;
+ BYTE nFlags;
+ bool bHidden;
+ USHORT nHeight;
+ BYTE nStartFlags = nFlags = pRowFlagsArray->GetValue( nStart, nIndex, nFlagsEndRow);
+ bool bStartHidden = bHidden = pTab[nTab]->RowHidden( nStart, NULL, &nHiddenEndRow);
+ USHORT nStartHeight = nHeight = pTab[nTab]->GetRowHeight( nStart, NULL, &nHeightEndRow, false);
+ SCROW nRow;
+ while ((nRow = std::min( nHiddenEndRow, std::min( nFlagsEndRow, nHeightEndRow)) + 1) <= MAXROW)
{
- size_t nIndex; // ignored
- SCROW nFlagsEndRow;
- SCROW nHeightEndRow;
- BYTE nFlags = pTab[nTab]->GetRowFlagsArray()->GetValue( nRow, nIndex, nFlagsEndRow );
- USHORT nHeight = pTab[nTab]->GetRowHeight(nRow, NULL, &nHeightEndRow);
- if (((nStartFlags & CR_MANUALBREAK) != (nFlags & CR_MANUALBREAK)) ||
- ((nStartFlags & CR_MANUALSIZE) != (nFlags & CR_MANUALSIZE)) ||
- (bCareManualSize && (nStartFlags & CR_MANUALSIZE) && (nStartHeight != nHeight)) ||
- (!bCareManualSize && ((nStartHeight != nHeight))))
+ if (nFlagsEndRow < nRow)
+ nFlags = pRowFlagsArray->GetValue( nRow, nIndex, nFlagsEndRow);
+ if (nHiddenEndRow < nRow)
+ bHidden = pTab[nTab]->RowHidden( nRow, NULL, &nHiddenEndRow);
+ if (nHeightEndRow < nRow)
+ nHeight = pTab[nTab]->GetRowHeight( nRow, NULL, &nHeightEndRow, false);
+ if ( ((nStartFlags & CR_MANUALBREAK) != (nFlags & CR_MANUALBREAK)) ||
+ ((nStartFlags & CR_MANUALSIZE) != (nFlags & CR_MANUALSIZE)) ||
+ (bStartHidden != bHidden) ||
+ (bCareManualSize && (nStartFlags & CR_MANUALSIZE) && (nStartHeight != nHeight)) ||
+ (!bCareManualSize && ((nStartHeight != nHeight))))
return nRow;
-
- nRow = std::min( nFlagsEndRow, nHeightEndRow );
}
return MAXROW+1;
}
@@ -5226,8 +5259,8 @@ bool ScDocument::IsInVBAMode() const
bool bResult = false;
if ( pShell )
{
- com::sun::star::uno::Reference< com::sun::star::script::XVBACompat > xVBA( pShell->GetBasicContainer(), com::sun::star::uno::UNO_QUERY );
- bResult = xVBA->getVBACompatModeOn();
+ com::sun::star::uno::Reference< com::sun::star::script::vba::XVBACompatibility > xVBA( pShell->GetBasicContainer(), com::sun::star::uno::UNO_QUERY );
+ bResult = xVBA.is() && xVBA->getVBACompatibilityMode();
}
return bResult;
}
diff --git a/sc/source/core/data/dpobject.cxx b/sc/source/core/data/dpobject.cxx
index a2a10329cf68..29ba9f15dc92 100755..100644
--- a/sc/source/core/data/dpobject.cxx
+++ b/sc/source/core/data/dpobject.cxx
@@ -65,14 +65,17 @@
#include <com/sun/star/sheet/DataPilotTableHeaderData.hpp>
#include <com/sun/star/sheet/DataPilotTablePositionData.hpp>
#include <com/sun/star/sheet/DataPilotTablePositionType.hpp>
+#include <com/sun/star/sheet/DimensionFlags.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XSingleServiceFactory.hpp>
+#include <com/sun/star/lang/XSingleComponentFactory.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/container/XContentEnumerationAccess.hpp>
#include <com/sun/star/sheet/XDrillDownDataSupplier.hpp>
#include <comphelper/processfactory.hxx>
#include <tools/debug.hxx>
+#include <tools/diagnose_ex.h>
#include <svl/zforlist.hxx> // IsNumberFormat
#include <vector>
@@ -85,6 +88,8 @@ using ::com::sun::star::uno::Sequence;
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::UNO_QUERY;
using ::com::sun::star::uno::Any;
+using ::com::sun::star::uno::Exception;
+using ::com::sun::star::lang::XComponent;
using ::com::sun::star::sheet::DataPilotTableHeaderData;
using ::com::sun::star::sheet::DataPilotTablePositionData;
using ::com::sun::star::beans::XPropertySet;
@@ -215,6 +220,7 @@ ScDPObject::~ScDPObject()
delete pImpDesc;
delete pServDesc;
mnCacheId = -1; // Wang Xu Ming - DataPilot migration
+ InvalidateSource();
}
ScDataObject* ScDPObject::Clone() const
@@ -530,6 +536,18 @@ void ScDPObject::InvalidateData()
void ScDPObject::InvalidateSource()
{
+ Reference< XComponent > xObjectComp( xSource, UNO_QUERY );
+ if ( xObjectComp.is() )
+ {
+ try
+ {
+ xObjectComp->dispose();
+ }
+ catch( const Exception& )
+ {
+ DBG_UNHANDLED_EXCEPTION();
+ }
+ }
xSource = NULL;
mpTableData.reset();
}
@@ -828,7 +846,7 @@ bool ScDPObject::IsDimNameInUse(const OUString& rName) const
return false;
}
-String ScDPObject::GetDimName( long nDim, BOOL& rIsDataLayout )
+String ScDPObject::GetDimName( long nDim, BOOL& rIsDataLayout, sal_Int32* pFlags )
{
rIsDataLayout = FALSE;
String aRet;
@@ -862,6 +880,10 @@ String ScDPObject::GetDimName( long nDim, BOOL& rIsDataLayout )
rIsDataLayout = TRUE;
else
aRet = String( aName );
+
+ if (pFlags)
+ *pFlags = ScUnoHelpFunctions::GetLongProperty( xDimProp,
+ rtl::OUString::createFromAscii(SC_UNO_FLAGS), 0 );
}
}
}
@@ -1986,6 +2008,8 @@ BOOL ScDPObject::FillLabelData(ScPivotParam& rParam)
GetHierarchies(nDim, pNewLabel->maHiers);
GetMembers(nDim, GetUsedHierarchy(nDim), pNewLabel->maMembers);
lcl_FillLabelData(*pNewLabel, xDimProp);
+ pNewLabel->mnFlags = ScUnoHelpFunctions::GetLongProperty( xDimProp,
+ rtl::OUString::createFromAscii(SC_UNO_FLAGS), 0 );
rParam.maLabelArray.push_back(pNewLabel);
}
}
@@ -2214,6 +2238,32 @@ void ScDPObject::ConvertOrientation( ScDPSaveData& rSaveData,
}
}
+// static
+bool ScDPObject::IsOrientationAllowed( USHORT nOrient, sal_Int32 nDimFlags )
+{
+ bool bAllowed = true;
+ switch (nOrient)
+ {
+ case sheet::DataPilotFieldOrientation_PAGE:
+ bAllowed = ( nDimFlags & sheet::DimensionFlags::NO_PAGE_ORIENTATION ) == 0;
+ break;
+ case sheet::DataPilotFieldOrientation_COLUMN:
+ bAllowed = ( nDimFlags & sheet::DimensionFlags::NO_COLUMN_ORIENTATION ) == 0;
+ break;
+ case sheet::DataPilotFieldOrientation_ROW:
+ bAllowed = ( nDimFlags & sheet::DimensionFlags::NO_ROW_ORIENTATION ) == 0;
+ break;
+ case sheet::DataPilotFieldOrientation_DATA:
+ bAllowed = ( nDimFlags & sheet::DimensionFlags::NO_DATA_ORIENTATION ) == 0;
+ break;
+ default:
+ {
+ // allowed to remove from previous orientation
+ }
+ }
+ return bAllowed;
+}
+
// -----------------------------------------------------------------------
// static
@@ -2277,6 +2327,9 @@ uno::Sequence<rtl::OUString> ScDPObject::GetRegisteredSources()
return aSeq;
}
+// use getContext from addincol.cxx
+uno::Reference<uno::XComponentContext> getContext(uno::Reference<lang::XMultiServiceFactory> xMSF);
+
// static
uno::Reference<sheet::XDimensionsSupplier> ScDPObject::CreateSource( const ScDPServiceDesc& rDesc )
{
@@ -2301,12 +2354,26 @@ uno::Reference<sheet::XDimensionsSupplier> ScDPObject::CreateSource( const ScDPS
if ( xIntFac.is() )
{
uno::Reference<lang::XServiceInfo> xInfo( xIntFac, uno::UNO_QUERY );
- uno::Reference<lang::XSingleServiceFactory> xFac( xIntFac, uno::UNO_QUERY );
- if ( xFac.is() && xInfo.is() && xInfo->getImplementationName() == aImplName )
+ if ( xInfo.is() && xInfo->getImplementationName() == aImplName )
{
try
{
- uno::Reference<uno::XInterface> xInterface = xFac->createInstance();
+ // #i113160# try XSingleComponentFactory in addition to (old) XSingleServiceFactory,
+ // passing the context to the component (see ScUnoAddInCollection::Initialize)
+
+ uno::Reference<uno::XInterface> xInterface;
+ uno::Reference<uno::XComponentContext> xCtx = getContext(xManager);
+ uno::Reference<lang::XSingleComponentFactory> xCFac( xIntFac, uno::UNO_QUERY );
+ if (xCtx.is() && xCFac.is())
+ xInterface = xCFac->createInstanceWithContext(xCtx);
+
+ if (!xInterface.is())
+ {
+ uno::Reference<lang::XSingleServiceFactory> xFac( xIntFac, uno::UNO_QUERY );
+ if ( xFac.is() )
+ xInterface = xFac->createInstance();
+ }
+
uno::Reference<lang::XInitialization> xInit( xInterface, uno::UNO_QUERY );
if (xInit.is())
{
diff --git a/sc/source/core/data/dpsave.cxx b/sc/source/core/data/dpsave.cxx
index dd493bb0df6c..bad05968bf72 100644
--- a/sc/source/core/data/dpsave.cxx
+++ b/sc/source/core/data/dpsave.cxx
@@ -410,6 +410,11 @@ void ScDPSaveDimension::SetSubTotals(long nCount, const USHORT* pFuncs)
bSubTotalDefault = FALSE;
}
+bool ScDPSaveDimension::HasShowEmpty() const
+{
+ return nShowEmptyMode != SC_DPSAVEMODE_DONTKNOW;
+}
+
void ScDPSaveDimension::SetShowEmpty(BOOL bSet)
{
nShowEmptyMode = bSet;
diff --git a/sc/source/core/data/dptabsrc.cxx b/sc/source/core/data/dptabsrc.cxx
index da40e6e230c4..b4ca5dbc7330 100755..100644
--- a/sc/source/core/data/dptabsrc.cxx
+++ b/sc/source/core/data/dptabsrc.cxx
@@ -1576,6 +1576,7 @@ uno::Reference<beans::XPropertySetInfo> SAL_CALL ScDPDimension::getPropertySetIn
static SfxItemPropertyMapEntry aDPDimensionMap_Impl[] =
{
{MAP_CHAR_LEN(SC_UNO_FILTER), 0, &getCppuType((uno::Sequence<sheet::TableFilterField>*)0), 0, 0 },
+ {MAP_CHAR_LEN(SC_UNO_FLAGS), 0, &getCppuType((sal_Int32*)0), beans::PropertyAttribute::READONLY, 0 },
{MAP_CHAR_LEN(SC_UNO_FUNCTION), 0, &getCppuType((sheet::GeneralFunction*)0), 0, 0 },
{MAP_CHAR_LEN(SC_UNO_ISDATALA), 0, &getBooleanCppuType(), beans::PropertyAttribute::READONLY, 0 },
{MAP_CHAR_LEN(SC_UNO_NUMBERFO), 0, &getCppuType((sal_Int32*)0), beans::PropertyAttribute::READONLY, 0 },
@@ -1753,6 +1754,11 @@ uno::Any SAL_CALL ScDPDimension::getPropertyValue( const rtl::OUString& aPropert
aRet <<= mpSubtotalName.get() ? *mpSubtotalName : OUString::createFromAscii("");
else if (aNameStr.EqualsAscii(SC_UNO_HAS_HIDDEN_MEMBER))
aRet <<= mbHasHiddenMember;
+ else if (aNameStr.EqualsAscii(SC_UNO_FLAGS))
+ {
+ sal_Int32 nFlags = 0; // tabular data: all orientations are possible
+ aRet <<= nFlags;
+ }
else
{
DBG_ERROR("unknown property");
diff --git a/sc/source/core/data/fillinfo.cxx b/sc/source/core/data/fillinfo.cxx
index 8418cb3c3a25..99da4979a1b6 100644
--- a/sc/source/core/data/fillinfo.cxx
+++ b/sc/source/core/data/fillinfo.cxx
@@ -219,6 +219,8 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX
nArrY=0;
SCROW nYExtra = nY2+1;
+ USHORT nDocHeight = ScGlobal::nStdRowHeight;
+ SCROW nDocHeightEndRow = -1;
for (nSignedY=((SCsROW)nY1)-1; nSignedY<=(SCsROW)nYExtra; nSignedY++)
{
if (nSignedY >= 0)
@@ -226,11 +228,13 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX
else
nY = MAXROW+1; // ungueltig
- USHORT nDocHeight;
- if (ValidRow(nY))
- nDocHeight = GetRowHeight( nY, nTab );
- else
- nDocHeight = ScGlobal::nStdRowHeight;
+ if (nY > nDocHeightEndRow)
+ {
+ if (ValidRow(nY))
+ nDocHeight = GetRowHeight( nY, nTab, NULL, &nDocHeightEndRow );
+ else
+ nDocHeight = ScGlobal::nStdRowHeight;
+ }
if ( nArrY==0 || nDocHeight || nY > MAXROW )
{
@@ -384,11 +388,15 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX
nArrY = 1;
SCSIZE nUIndex;
+ bool bHiddenRow = true;
+ SCROW nHiddenEndRow = -1;
(void) pThisCol->Search( nY1, nUIndex );
while ( nUIndex < pThisCol->nCount &&
(nThisRow=pThisCol->pItems[nUIndex].nRow) <= nY2 )
{
- if ( !RowHidden( nThisRow,nTab ) )
+ if (nThisRow > nHiddenEndRow)
+ bHiddenRow = RowHidden( nThisRow, nTab, nHiddenEndRow);
+ if ( !bHiddenRow )
{
while ( pRowInfo[nArrY].nRowNo < nThisRow )
++nArrY;
diff --git a/sc/source/core/data/global.cxx b/sc/source/core/data/global.cxx
index 48879bcdec93..10aacc678d74 100644
--- a/sc/source/core/data/global.cxx
+++ b/sc/source/core/data/global.cxx
@@ -1123,7 +1123,7 @@ ScFuncRes::ScFuncRes( ResId &aRes, ScFuncDesc* pDesc, bool & rbSuppressed )
{
rbSuppressed = (bool)GetNum();
pDesc->nCategory = GetNum();
- pDesc->nHelpId = GetNum() + 32768; //! Hack, see scfuncs.src
+ pDesc->sHelpId = ReadByteStringRes(); //! Hack, see scfuncs.src
pDesc->nArgCount = GetNum();
USHORT nArgs = pDesc->nArgCount;
if (nArgs >= VAR_ARGS)
@@ -1413,7 +1413,6 @@ ScFuncDesc::ScFuncDesc() :
nFIndex (0),
nCategory (0),
nArgCount (0),
- nHelpId (0),
bIncomplete (false),
bHasSuppressedArgs(false)
{}
@@ -1455,7 +1454,7 @@ void ScFuncDesc::Clear()
nFIndex = 0;
nCategory = 0;
- nHelpId = 0;
+ sHelpId = "";
bIncomplete = false;
bHasSuppressedArgs = false;
}
@@ -1689,9 +1688,9 @@ void ScFuncDesc::initArgumentInfo() const
return GetSignature();
}
// -----------------------------------------------------------------------------
-long ScFuncDesc::getHelpId() const
+rtl::OString ScFuncDesc::getHelpId() const
{
- return nHelpId;
+ return sHelpId;
}
// -----------------------------------------------------------------------------
diff --git a/sc/source/core/data/markdata.cxx b/sc/source/core/data/markdata.cxx
index baf3f4cf3f95..4401ac19d199 100644
--- a/sc/source/core/data/markdata.cxx
+++ b/sc/source/core/data/markdata.cxx
@@ -429,18 +429,28 @@ SCCOLROW ScMarkData::GetMarkColumnRanges( SCCOLROW* pRanges )
if (!bMultiMarked)
return 0;
- DBG_ASSERT(pMultiSel, "bMultiMarked, aber pMultiSel == 0");
+ DBG_ASSERT(pMultiSel, "bMultiMarked, but pMultiSel == 0");
+
+ const SCCOLROW nMultiStart = aMultiRange.aStart.Col();
+ const SCCOLROW nMultiEnd = aMultiRange.aEnd.Col();
+ if (nMultiStart == 0 && nMultiEnd == MAXCOL)
+ {
+ // One or more entire rows.
+ pRanges[0] = 0;
+ pRanges[1] = MAXCOL;
+ return 1;
+ }
SCCOLROW nRangeCnt = 0;
- SCCOLROW nStart = 0;
- while (nStart<=MAXCOL)
+ SCCOLROW nStart = nMultiStart;
+ while (nStart <= nMultiEnd)
{
- while (nStart<MAXCOL && !pMultiSel[nStart].HasMarks())
+ while (nStart < nMultiEnd && !pMultiSel[nStart].HasMarks())
++nStart;
if (pMultiSel[nStart].HasMarks())
{
SCCOLROW nEnd = nStart;
- while (nEnd<MAXCOL && pMultiSel[nEnd].HasMarks())
+ while (nEnd < nMultiEnd && pMultiSel[nEnd].HasMarks())
++nEnd;
if (!pMultiSel[nEnd].HasMarks())
--nEnd;
@@ -450,7 +460,7 @@ SCCOLROW ScMarkData::GetMarkColumnRanges( SCCOLROW* pRanges )
nStart = nEnd+1;
}
else
- nStart = MAXCOL+1;
+ nStart = nMultiEnd+1;
}
return nRangeCnt;
@@ -464,37 +474,51 @@ SCCOLROW ScMarkData::GetMarkRowRanges( SCCOLROW* pRanges )
if (!bMultiMarked)
return 0;
- DBG_ASSERT(pMultiSel, "bMultiMarked, aber pMultiSel == 0");
+ DBG_ASSERT(pMultiSel, "bMultiMarked, but pMultiSel == 0");
- // Welche Zeilen sind markiert?
+ // Which rows are marked?
- BOOL* bRowMarked = new BOOL[MAXROW+1];
+ // Optimized to not loop over MAXCOL*MAXROW as worst case, i.e. Ctrl+A
+
+ const SCCOLROW nMultiStart = aMultiRange.aStart.Row();
+ const SCCOLROW nMultiEnd = aMultiRange.aEnd.Row();
+
+ BOOL* bRowMarked = new BOOL[MAXROWCOUNT];
+ memset( bRowMarked, 0, sizeof(BOOL) * MAXROWCOUNT);
SCROW nRow;
SCCOL nCol;
- for (nRow=0; nRow<=MAXROW; nRow++)
- bRowMarked[nRow] = FALSE;
- SCROW nTop, nBottom;
- for (nCol=0; nCol<=MAXCOL; nCol++)
+ SCROW nTop = -1, nBottom = -1;
+ for (nCol = aMultiRange.aStart.Col(); nCol <= aMultiRange.aEnd.Col(); ++nCol)
{
ScMarkArrayIter aMarkIter( &pMultiSel[nCol] );
while (aMarkIter.Next( nTop, nBottom ))
for (nRow=nTop; nRow<=nBottom; nRow++)
bRowMarked[nRow] = TRUE;
+ if (nTop == nMultiStart && nBottom == nMultiEnd)
+ break; // for, all relevant rows marked
+ }
+
+ if (nTop == nMultiStart && nBottom == nMultiEnd)
+ {
+ pRanges[0] = nTop;
+ pRanges[1] = nBottom;
+ delete[] bRowMarked;
+ return 1;
}
- // zu Bereichen zusammenfassen
+ // Combine to ranges of rows.
SCCOLROW nRangeCnt = 0;
- SCCOLROW nStart = 0;
- while (nStart<=MAXROW)
+ SCCOLROW nStart = nMultiStart;
+ while (nStart <= nMultiEnd)
{
- while (nStart<MAXROW && !bRowMarked[nStart])
+ while (nStart < nMultiEnd && !bRowMarked[nStart])
++nStart;
if (bRowMarked[nStart])
{
SCCOLROW nEnd = nStart;
- while (nEnd<MAXROW && bRowMarked[nEnd])
+ while (nEnd < nMultiEnd && bRowMarked[nEnd])
++nEnd;
if (!bRowMarked[nEnd])
--nEnd;
@@ -504,7 +528,7 @@ SCCOLROW ScMarkData::GetMarkRowRanges( SCCOLROW* pRanges )
nStart = nEnd+1;
}
else
- nStart = MAXROW+1;
+ nStart = nMultiEnd+1;
}
delete[] bRowMarked;
diff --git a/sc/source/core/data/pivot2.cxx b/sc/source/core/data/pivot2.cxx
index 5a6174bc0129..ddac72f0230b 100644
--- a/sc/source/core/data/pivot2.cxx
+++ b/sc/source/core/data/pivot2.cxx
@@ -82,6 +82,7 @@ ScDPLabelData::ScDPLabelData( const String& rName, short nCol, bool bIsValue ) :
mnCol( nCol ),
mnFuncMask( PIVOT_FUNC_NONE ),
mnUsedHier( 0 ),
+ mnFlags( 0 ),
mbShowAll( false ),
mbIsValue( bIsValue )
{
diff --git a/sc/source/core/data/sheetevents.cxx b/sc/source/core/data/sheetevents.cxx
index e9e430ef85d9..e1875b5db15b 100755..100644
--- a/sc/source/core/data/sheetevents.cxx
+++ b/sc/source/core/data/sheetevents.cxx
@@ -33,9 +33,9 @@
// INCLUDE ---------------------------------------------------------------
-#include <tools/debug.hxx>
-
#include "sheetevents.hxx"
+#include <com/sun/star/script/vba/VBAEventId.hpp>
+#include <tools/debug.hxx>
// -----------------------------------------------------------------------
@@ -61,6 +61,37 @@ rtl::OUString ScSheetEvents::GetEventName(sal_Int32 nEvent)
return rtl::OUString::createFromAscii(aEventNames[nEvent]);
}
+// static
+sal_Int32 ScSheetEvents::GetVbaSheetEventId(sal_Int32 nEvent)
+{
+ using namespace ::com::sun::star::script::vba::VBAEventId;
+ if (nEvent<0 || nEvent>=SC_SHEETEVENT_COUNT)
+ {
+ DBG_ERRORFILE("invalid event number");
+ return NO_EVENT;
+ }
+
+ static const sal_Int32 nVbaEventIds[] =
+ {
+ WORKSHEET_ACTIVATE, // SC_SHEETEVENT_FOCUS
+ WORKSHEET_DEACTIVATE, // SC_SHEETEVENT_UNFOCUS
+ WORKSHEET_SELECTIONCHANGE, // SC_SHEETEVENT_SELECT
+ WORKSHEET_BEFOREDOUBLECLICK, // SC_SHEETEVENT_DOUBLECLICK
+ WORKSHEET_BEFORERIGHTCLICK, // SC_SHEETEVENT_RIGHTCLICK
+ WORKSHEET_CHANGE, // SC_SHEETEVENT_CHANGE
+ WORKSHEET_CALCULATE // SC_SHEETEVENT_CALCULATE
+ };
+ return nVbaEventIds[nEvent];
+}
+
+// static
+sal_Int32 ScSheetEvents::GetVbaDocumentEventId(sal_Int32 nEvent)
+{
+ using namespace ::com::sun::star::script::vba::VBAEventId;
+ sal_Int32 nSheetEventId = GetVbaSheetEventId(nEvent);
+ return (nSheetEventId != NO_EVENT) ? (nSheetEventId + USERDEFINED_START) : NO_EVENT;
+}
+
// -----------------------------------------------------------------------
ScSheetEvents::ScSheetEvents() :
diff --git a/sc/source/core/data/table1.cxx b/sc/source/core/data/table1.cxx
index 87561abf1513..e534bb9dfb78 100644
--- a/sc/source/core/data/table1.cxx
+++ b/sc/source/core/data/table1.cxx
@@ -28,67 +28,6 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sc.hxx"
-
-
-//------------------------------------------------------------------------
-
-#ifdef WIN
-
-// SFX
-#define _SFXAPPWIN_HXX
-#define _SFX_SAVEOPT_HXX
-//#define _SFX_CHILDWIN_HXX ***
-#define _SFXCTRLITEM_HXX
-#define _SFXPRNMON_HXX
-#define _INTRO_HXX
-#define _SFXMSGDESCR_HXX
-#define _SFXMSGPOOL_HXX
-#define _SFXFILEDLG_HXX
-#define _PASSWD_HXX
-#define _SFXTBXCTRL_HXX
-#define _SFXSTBITEM_HXX
-#define _SFXMNUITEM_HXX
-#define _SFXIMGMGR_HXX
-#define _SFXTBXMGR_HXX
-#define _SFXSTBMGR_HXX
-#define _SFX_MINFITEM_HXX
-#define _SFXEVENT_HXX
-
-//#define _SI_HXX
-//#define SI_NODRW
-#define _SI_DLL_HXX
-#define _SIDLL_HXX
-#define _SI_NOITEMS
-#define _SI_NOOTHERFORMS
-#define _SI_NOSBXCONTROLS
-#define _SINOSBXCONTROLS
-#define _SI_NODRW //
-#define _SI_NOCONTROL
-#define _VCBRW_HXX
-#define _VCTRLS_HXX
-//#define _VCSBX_HXX
-#define _VCONT_HXX
-#define _VDRWOBJ_HXX
-#define _VCATTR_HXX
-
-
-#define _SVX_DAILDLL_HXX
-#define _SVX_HYPHEN_HXX
-#define _SVX_IMPGRF_HXX
-#define _SVX_OPTITEMS_HXX
-#define _SVX_OPTGERL_HXX
-#define _SVX_OPTSAVE_HXX
-#define _SVX_OPTSPELL_HXX
-#define _SVX_OPTPATH_HXX
-#define _SVX_OPTLINGU_HXX
-#define _SVX_RULER_HXX
-#define _SVX_RULRITEM_HXX
-#define _SVX_SPLWRAP_HXX
-#define _SVX_SPLDLG_HXX
-#define _SVX_THESDLG_HXX
-
-#endif //WIN
-
// INCLUDE ---------------------------------------------------------------
#include "scitems.hxx"
@@ -115,8 +54,6 @@
#include "sheetevents.hxx"
#include "segmenttree.hxx"
-// STATIC DATA -----------------------------------------------------------
-
// -----------------------------------------------------------------------
ScTable::ScTable( ScDocument* pDoc, SCTAB nNewTab, const String& rNewName,
diff --git a/sc/source/core/data/table2.cxx b/sc/source/core/data/table2.cxx
index 9bd5b031fde5..9bb22b68d2ad 100644
--- a/sc/source/core/data/table2.cxx
+++ b/sc/source/core/data/table2.cxx
@@ -155,6 +155,22 @@ void ScTable::InsertRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE
mpFilteredRows->insertSegment(nStartRow, nSize, true);
mpHiddenRows->insertSegment(nStartRow, nSize, true);
+
+ if (!maRowManualBreaks.empty())
+ {
+ std::set<SCROW>::reverse_iterator rit = maRowManualBreaks.rbegin();
+ while (rit != maRowManualBreaks.rend())
+ {
+ SCROW nRow = *rit;
+ if (nRow < nStartRow)
+ break; // while
+ else
+ {
+ maRowManualBreaks.erase( (++rit).base());
+ maRowManualBreaks.insert( static_cast<SCROW>( nRow + nSize));
+ }
+ }
+ }
}
for (SCCOL j=nStartCol; j<=nEndCol; j++)
@@ -185,6 +201,18 @@ void ScTable::DeleteRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE
mpFilteredRows->removeSegment(nStartRow, nStartRow+nSize);
mpHiddenRows->removeSegment(nStartRow, nStartRow+nSize);
+
+ if (!maRowManualBreaks.empty())
+ {
+ std::set<SCROW>::iterator it = maRowManualBreaks.upper_bound( static_cast<SCROW>( nStartRow + nSize - 1));
+ maRowManualBreaks.erase( maRowManualBreaks.lower_bound( nStartRow), it);
+ while (it != maRowManualBreaks.end())
+ {
+ SCROW nRow = *it;
+ maRowManualBreaks.erase( it++);
+ maRowManualBreaks.insert( static_cast<SCROW>( nRow - nSize));
+ }
+ }
}
{ // scope for bulk broadcast
@@ -233,6 +261,22 @@ void ScTable::InsertCol( SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE
mpHiddenCols->insertSegment(nStartCol, static_cast<SCCOL>(nSize), true);
mpFilteredCols->insertSegment(nStartCol, static_cast<SCCOL>(nSize), true);
+
+ if (!maColManualBreaks.empty())
+ {
+ std::set<SCCOL>::reverse_iterator rit = maColManualBreaks.rbegin();
+ while (rit != maColManualBreaks.rend())
+ {
+ SCCOL nCol = *rit;
+ if (nCol < nStartCol)
+ break; // while
+ else
+ {
+ maColManualBreaks.erase( (++rit).base());
+ maColManualBreaks.insert( static_cast<SCCOL>( nCol + nSize));
+ }
+ }
+ }
}
@@ -291,6 +335,18 @@ void ScTable::DeleteCol( SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE
SCCOL nRmSize = nStartCol + static_cast<SCCOL>(nSize);
mpHiddenCols->removeSegment(nStartCol, nRmSize);
mpFilteredCols->removeSegment(nStartCol, nRmSize);
+
+ if (!maColManualBreaks.empty())
+ {
+ std::set<SCCOL>::iterator it = maColManualBreaks.upper_bound( static_cast<SCCOL>( nStartCol + nSize - 1));
+ maColManualBreaks.erase( maColManualBreaks.lower_bound( nStartCol), it);
+ while (it != maColManualBreaks.end())
+ {
+ SCCOL nCol = *it;
+ maColManualBreaks.erase( it++);
+ maColManualBreaks.insert( static_cast<SCCOL>( nCol - nSize));
+ }
+ }
}
@@ -688,6 +744,7 @@ void ScTable::CopyToTable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
pDestTab->IncRecalcLevel();
if (bWidth)
+ {
for (SCCOL i=nCol1; i<=nCol2; i++)
{
bool bThisHidden = ColHidden(i);
@@ -703,6 +760,8 @@ void ScTable::CopyToTable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
if (bChange)
bFlagChange = true;
}
+ pDestTab->SetColManualBreaks( maColManualBreaks);
+ }
if (bHeight)
{
@@ -754,6 +813,7 @@ void ScTable::CopyToTable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
pDestTab->SetRowFiltered(i, nLastRow, bFiltered);
i = nLastRow;
}
+ pDestTab->SetRowManualBreaks( maRowManualBreaks);
}
pDestTab->DecRecalcLevel();
}
@@ -791,11 +851,17 @@ void ScTable::UndoToTable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
if (bWidth||bHeight)
{
if (bWidth)
+ {
for (SCCOL i=nCol1; i<=nCol2; i++)
pDestTab->pColWidth[i] = pColWidth[i];
+ pDestTab->SetColManualBreaks( maColManualBreaks);
+ }
if (bHeight)
+ {
pDestTab->CopyRowHeight(*this, nRow1, nRow2, 0);
- DecRecalcLevel();
+ pDestTab->SetRowManualBreaks( maRowManualBreaks);
+ }
+ DecRecalcLevel();
}
}
}
@@ -2189,7 +2255,9 @@ BOOL ScTable::SetRowHeightRange( SCROW nStartRow, SCROW nEndRow, USHORT nNewHeig
{
if (pDrawLayer)
{
- unsigned long nOldHeights = GetRowHeight(nStartRow, nEndRow);
+ // #i115025# When comparing to nNewHeight for the whole range, the height
+ // including hidden rows has to be used (same behavior as 3.2).
+ unsigned long nOldHeights = mpRowHeights->getSumValue(nStartRow, nEndRow);
// FIXME: should we test for overflows?
long nHeightDif = (long) (unsigned long) nNewHeight *
(nEndRow - nStartRow + 1) - nOldHeights;
@@ -2241,7 +2309,7 @@ void ScTable::SetManualHeight( SCROW nStartRow, SCROW nEndRow, BOOL bManual )
}
-USHORT ScTable::GetColWidth( SCCOL nCol )
+USHORT ScTable::GetColWidth( SCCOL nCol ) const
{
DBG_ASSERT(VALIDCOL(nCol),"Falsche Spaltennummer");
@@ -2315,34 +2383,50 @@ USHORT ScTable::GetCommonWidth( SCCOL nEndCol )
}
-USHORT ScTable::GetRowHeight( SCROW nRow, SCROW* pStartRow, SCROW* pEndRow, bool bHiddenAsZero )
+USHORT ScTable::GetRowHeight( SCROW nRow, SCROW* pStartRow, SCROW* pEndRow, bool bHiddenAsZero ) const
{
- DBG_ASSERT(VALIDROW(nRow),"Falsche Zeilennummer");
+ DBG_ASSERT(VALIDROW(nRow),"Invalid row number");
if (VALIDROW(nRow) && mpRowHeights)
{
- if (bHiddenAsZero && RowHidden(nRow))
+ if (bHiddenAsZero && RowHidden( nRow, pStartRow, pEndRow))
return 0;
else
{
ScFlatUInt16RowSegments::RangeData aData;
if (!mpRowHeights->getRangeData(nRow, aData))
+ {
+ if (pStartRow)
+ *pStartRow = nRow;
+ if (pEndRow)
+ *pEndRow = nRow;
// TODO: What should we return in case the search fails?
return 0;
+ }
+ // If bHiddenAsZero, pStartRow and pEndRow were initialized to
+ // boundaries of a non-hidden segment. Assume that the previous and
+ // next segment are hidden then and limit the current height
+ // segment.
if (pStartRow)
- *pStartRow = aData.mnRow1;
+ *pStartRow = (bHiddenAsZero ? std::max( *pStartRow, aData.mnRow1) : aData.mnRow1);
if (pEndRow)
- *pEndRow = aData.mnRow2;
+ *pEndRow = (bHiddenAsZero ? std::min( *pEndRow, aData.mnRow2) : aData.mnRow2);
return aData.mnValue;
}
}
else
+ {
+ if (pStartRow)
+ *pStartRow = nRow;
+ if (pEndRow)
+ *pEndRow = nRow;
return (USHORT) ScGlobal::nStdRowHeight;
+ }
}
-ULONG ScTable::GetRowHeight( SCROW nStartRow, SCROW nEndRow )
+ULONG ScTable::GetRowHeight( SCROW nStartRow, SCROW nEndRow ) const
{
DBG_ASSERT(VALIDROW(nStartRow) && VALIDROW(nEndRow),"Falsche Zeilennummer");
@@ -2368,7 +2452,7 @@ ULONG ScTable::GetRowHeight( SCROW nStartRow, SCROW nEndRow )
}
-ULONG ScTable::GetScaledRowHeight( SCROW nStartRow, SCROW nEndRow, double fScale )
+ULONG ScTable::GetScaledRowHeight( SCROW nStartRow, SCROW nEndRow, double fScale ) const
{
DBG_ASSERT(VALIDROW(nStartRow) && VALIDROW(nEndRow),"Falsche Zeilennummer");
@@ -3018,10 +3102,13 @@ void ScTable::SetDrawPageSize(bool bResetStreamValid, bool bUpdateNoteCaptionPos
ScDrawLayer* pDrawLayer = pDocument->GetDrawLayer();
if( pDrawLayer )
{
- long x = GetColOffset( MAXCOL + 1 );
- long y = GetRowOffset( MAXROW + 1 );
- x = (long) ((double) x * HMM_PER_TWIPS);
- y = (long) ((double) y * HMM_PER_TWIPS);
+ double fValX = GetColOffset( MAXCOL + 1 ) * HMM_PER_TWIPS;
+ double fValY = GetRowOffset( MAXROW + 1 ) * HMM_PER_TWIPS;
+ const long nMax = ::std::numeric_limits<long>::max();
+ // #i113884# Avoid int32 overflow with possible negative results than can cause bad effects.
+ // If the draw page size is smaller than all rows, only the bottom of the sheet is affected.
+ long x = ( fValX > (double)nMax ) ? nMax : (long) fValX;
+ long y = ( fValY > (double)nMax ) ? nMax : (long) fValY;
if ( IsLayoutRTL() ) // IsNegativePage
x = -x;
@@ -3036,7 +3123,7 @@ void ScTable::SetDrawPageSize(bool bResetStreamValid, bool bUpdateNoteCaptionPos
}
-ULONG ScTable::GetRowOffset( SCROW nRow )
+ULONG ScTable::GetRowOffset( SCROW nRow ) const
{
ULONG n = 0;
if ( mpHiddenRows && mpRowHeights )
@@ -3059,7 +3146,7 @@ ULONG ScTable::GetRowOffset( SCROW nRow )
return n;
}
-SCROW ScTable::GetRowForHeight(ULONG nHeight)
+SCROW ScTable::GetRowForHeight(ULONG nHeight) const
{
sal_uInt32 nSum = 0;
@@ -3086,7 +3173,7 @@ SCROW ScTable::GetRowForHeight(ULONG nHeight)
}
-ULONG ScTable::GetColOffset( SCCOL nCol )
+ULONG ScTable::GetColOffset( SCCOL nCol ) const
{
ULONG n = 0;
if ( pColWidth )
diff --git a/sc/source/core/data/table5.cxx b/sc/source/core/data/table5.cxx
index 2635b5821e4f..7c13756aab38 100644
--- a/sc/source/core/data/table5.cxx
+++ b/sc/source/core/data/table5.cxx
@@ -326,6 +326,22 @@ BOOL ScTable::HasManualBreaks() const
return !maRowManualBreaks.empty() || !maColManualBreaks.empty();
}
+void ScTable::SetRowManualBreaks( const ::std::set<SCROW>& rBreaks )
+{
+ maRowManualBreaks = rBreaks;
+ InvalidatePageBreaks();
+ if (IsStreamValid())
+ SetStreamValid(FALSE);
+}
+
+void ScTable::SetColManualBreaks( const ::std::set<SCCOL>& rBreaks )
+{
+ maColManualBreaks = rBreaks;
+ InvalidatePageBreaks();
+ if (IsStreamValid())
+ SetStreamValid(FALSE);
+}
+
void ScTable::GetAllRowBreaks(set<SCROW>& rBreaks, bool bPage, bool bManual) const
{
if (bPage)
@@ -355,7 +371,7 @@ bool ScTable::HasRowPageBreak(SCROW nRow) const
if (!ValidRow(nRow))
return false;
- return maRowPageBreaks.count(nRow) > 0;
+ return maRowPageBreaks.find(nRow) != maRowPageBreaks.end();
}
bool ScTable::HasColPageBreak(SCCOL nCol) const
@@ -363,7 +379,7 @@ bool ScTable::HasColPageBreak(SCCOL nCol) const
if (!ValidCol(nCol))
return false;
- return maColPageBreaks.count(nCol) > 0;
+ return maColPageBreaks.find(nCol) != maColPageBreaks.end();
}
bool ScTable::HasRowManualBreak(SCROW nRow) const
@@ -371,7 +387,7 @@ bool ScTable::HasRowManualBreak(SCROW nRow) const
if (!ValidRow(nRow))
return false;
- return maRowManualBreaks.count(nRow) > 0;
+ return maRowManualBreaks.find(nRow) != maRowManualBreaks.end();
}
bool ScTable::HasColManualBreak(SCCOL nCol) const
@@ -379,7 +395,7 @@ bool ScTable::HasColManualBreak(SCCOL nCol) const
if (!ValidCol(nCol))
return false;
- return (maColManualBreaks.count(nCol) > 0);
+ return maColManualBreaks.find(nCol) != maColManualBreaks.end();
}
SCROW ScTable::GetNextManualBreak(SCROW nRow) const
@@ -483,15 +499,27 @@ Sequence<TablePageBreakData> ScTable::GetRowBreakData() const
return aSeq;
}
-bool ScTable::RowHidden(SCROW nRow, SCROW* pFirstRow, SCROW* pLastRow)
+bool ScTable::RowHidden(SCROW nRow, SCROW* pFirstRow, SCROW* pLastRow) const
{
if (!ValidRow(nRow))
+ {
+ if (pFirstRow)
+ *pFirstRow = nRow;
+ if (pLastRow)
+ *pLastRow = nRow;
return true;
+ }
ScFlatBoolRowSegments::RangeData aData;
if (!mpHiddenRows->getRangeData(nRow, aData))
+ {
// search failed.
+ if (pFirstRow)
+ *pFirstRow = nRow;
+ if (pLastRow)
+ *pLastRow = nRow;
return true;
+ }
if (pFirstRow)
*pFirstRow = aData.mnRow1;
@@ -502,7 +530,7 @@ bool ScTable::RowHidden(SCROW nRow, SCROW* pFirstRow, SCROW* pLastRow)
}
-bool ScTable::RowHidden(SCROW nRow, SCROW& rLastRow)
+bool ScTable::RowHidden(SCROW nRow, SCROW& rLastRow) const
{
rLastRow = nRow;
if (!ValidRow(nRow))
@@ -517,7 +545,7 @@ bool ScTable::RowHidden(SCROW nRow, SCROW& rLastRow)
return aData.mbValue;
}
-bool ScTable::HasHiddenRows(SCROW nStartRow, SCROW nEndRow)
+bool ScTable::HasHiddenRows(SCROW nStartRow, SCROW nEndRow) const
{
SCROW nRow = nStartRow;
while (nRow <= nEndRow)
@@ -532,7 +560,7 @@ bool ScTable::HasHiddenRows(SCROW nStartRow, SCROW nEndRow)
return false;
}
-bool ScTable::ColHidden(SCCOL nCol, SCCOL& rLastCol)
+bool ScTable::ColHidden(SCCOL nCol, SCCOL& rLastCol) const
{
rLastCol = nCol;
if (!ValidCol(nCol))
@@ -546,7 +574,7 @@ bool ScTable::ColHidden(SCCOL nCol, SCCOL& rLastCol)
return aData.mbValue;
}
-bool ScTable::ColHidden(SCCOL nCol, SCCOL* pFirstCol, SCCOL* pLastCol)
+bool ScTable::ColHidden(SCCOL nCol, SCCOL* pFirstCol, SCCOL* pLastCol) const
{
if (!ValidCol(nCol))
return true;
@@ -627,7 +655,7 @@ void ScTable::CopyRowHeight(ScTable& rSrcTable, SCROW nStartRow, SCROW nEndRow,
}
}
-SCROW ScTable::FirstVisibleRow(SCROW nStartRow, SCROW nEndRow)
+SCROW ScTable::FirstVisibleRow(SCROW nStartRow, SCROW nEndRow) const
{
SCROW nRow = nStartRow;
ScFlatBoolRowSegments::RangeData aData;
@@ -650,7 +678,7 @@ SCROW ScTable::FirstVisibleRow(SCROW nStartRow, SCROW nEndRow)
return ::std::numeric_limits<SCROW>::max();
}
-SCROW ScTable::LastVisibleRow(SCROW nStartRow, SCROW nEndRow)
+SCROW ScTable::LastVisibleRow(SCROW nStartRow, SCROW nEndRow) const
{
SCROW nRow = nEndRow;
ScFlatBoolRowSegments::RangeData aData;
@@ -673,7 +701,7 @@ SCROW ScTable::LastVisibleRow(SCROW nStartRow, SCROW nEndRow)
return ::std::numeric_limits<SCROW>::max();
}
-SCROW ScTable::CountVisibleRows(SCROW nStartRow, SCROW nEndRow)
+SCROW ScTable::CountVisibleRows(SCROW nStartRow, SCROW nEndRow) const
{
SCROW nCount = 0;
SCROW nRow = nStartRow;
@@ -694,7 +722,7 @@ SCROW ScTable::CountVisibleRows(SCROW nStartRow, SCROW nEndRow)
return nCount;
}
-sal_uInt32 ScTable::GetTotalRowHeight(SCROW nStartRow, SCROW nEndRow)
+sal_uInt32 ScTable::GetTotalRowHeight(SCROW nStartRow, SCROW nEndRow) const
{
sal_uInt32 nHeight = 0;
SCROW nRow = nStartRow;
@@ -717,7 +745,7 @@ sal_uInt32 ScTable::GetTotalRowHeight(SCROW nStartRow, SCROW nEndRow)
return nHeight;
}
-SCCOLROW ScTable::LastHiddenColRow(SCCOLROW nPos, bool bCol)
+SCCOLROW ScTable::LastHiddenColRow(SCCOLROW nPos, bool bCol) const
{
if (bCol)
{
@@ -741,7 +769,7 @@ SCCOLROW ScTable::LastHiddenColRow(SCCOLROW nPos, bool bCol)
return ::std::numeric_limits<SCCOLROW>::max();
}
-bool ScTable::RowFiltered(SCROW nRow, SCROW* pFirstRow, SCROW* pLastRow)
+bool ScTable::RowFiltered(SCROW nRow, SCROW* pFirstRow, SCROW* pLastRow) const
{
if (!ValidRow(nRow))
return false;
@@ -759,7 +787,7 @@ bool ScTable::RowFiltered(SCROW nRow, SCROW* pFirstRow, SCROW* pLastRow)
return aData.mbValue;
}
-bool ScTable::ColFiltered(SCCOL nCol, SCCOL* pFirstCol, SCCOL* pLastCol)
+bool ScTable::ColFiltered(SCCOL nCol, SCCOL* pFirstCol, SCCOL* pLastCol) const
{
if (!ValidCol(nCol))
return false;
@@ -777,7 +805,7 @@ bool ScTable::ColFiltered(SCCOL nCol, SCCOL* pFirstCol, SCCOL* pLastCol)
return aData.mbValue;
}
-bool ScTable::HasFilteredRows(SCROW nStartRow, SCROW nEndRow)
+bool ScTable::HasFilteredRows(SCROW nStartRow, SCROW nEndRow) const
{
SCROW nRow = nStartRow;
while (nRow <= nEndRow)
@@ -837,7 +865,7 @@ void ScTable::SetColFiltered(SCCOL nStartCol, SCCOL nEndCol, bool bFiltered)
mpFilteredCols->setFalse(nStartCol, nEndCol);
}
-SCROW ScTable::FirstNonFilteredRow(SCROW nStartRow, SCROW nEndRow)
+SCROW ScTable::FirstNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const
{
SCROW nRow = nStartRow;
ScFlatBoolRowSegments::RangeData aData;
@@ -860,7 +888,7 @@ SCROW ScTable::FirstNonFilteredRow(SCROW nStartRow, SCROW nEndRow)
return ::std::numeric_limits<SCROW>::max();
}
-SCROW ScTable::LastNonFilteredRow(SCROW nStartRow, SCROW nEndRow)
+SCROW ScTable::LastNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const
{
SCROW nRow = nEndRow;
ScFlatBoolRowSegments::RangeData aData;
@@ -883,7 +911,7 @@ SCROW ScTable::LastNonFilteredRow(SCROW nStartRow, SCROW nEndRow)
return ::std::numeric_limits<SCROW>::max();
}
-SCROW ScTable::CountNonFilteredRows(SCROW nStartRow, SCROW nEndRow)
+SCROW ScTable::CountNonFilteredRows(SCROW nStartRow, SCROW nEndRow) const
{
SCROW nCount = 0;
SCROW nRow = nStartRow;
diff --git a/sc/source/core/inc/addinhelpid.hxx b/sc/source/core/inc/addinhelpid.hxx
index b2f085ed64e5..f5186daf0dac 100644
--- a/sc/source/core/inc/addinhelpid.hxx
+++ b/sc/source/core/inc/addinhelpid.hxx
@@ -29,7 +29,7 @@
#define SC_ADDINHELPID_HXX
#include <rtl/ustring.hxx>
-
+#include <rtl/string.hxx>
// ============================================================================
@@ -50,7 +50,7 @@ public:
void SetServiceName( const ::rtl::OUString& rServiceName );
/** @return The help ID of the function with given built-in name or 0 if not found. */
- sal_uInt16 GetHelpId( const ::rtl::OUString& rFuncName ) const;
+ rtl::OString GetHelpId( const ::rtl::OUString& rFuncName ) const;
};
diff --git a/sc/source/core/tool/addincol.cxx b/sc/source/core/tool/addincol.cxx
index 07b79c11b373..aadd3e101d02 100644
--- a/sc/source/core/tool/addincol.cxx
+++ b/sc/source/core/tool/addincol.cxx
@@ -83,7 +83,7 @@ using namespace com::sun::star;
ScUnoAddInFuncData::ScUnoAddInFuncData( const String& rNam, const String& rLoc,
const String& rDesc,
- USHORT nCat, USHORT nHelp,
+ USHORT nCat, const rtl::OString& sHelp,
const uno::Reference<reflection::XIdlMethod>& rFunc,
const uno::Any& rO,
long nAC, const ScAddInArgDesc* pAD,
@@ -98,7 +98,7 @@ ScUnoAddInFuncData::ScUnoAddInFuncData( const String& rNam, const String& rLoc,
nArgCount( nAC ),
nCallerPos( nCP ),
nCategory( nCat ),
- nHelpId( nHelp ),
+ sHelpId( sHelp ),
bCompInitialized( FALSE )
{
if ( nArgCount )
@@ -608,7 +608,7 @@ void ScUnoAddInCollection::ReadConfiguration()
}
}
- USHORT nHelpId = aHelpIdGenerator.GetHelpId( pFuncNameArray[nFuncPos] );
+ rtl::OString sHelpId = aHelpIdGenerator.GetHelpId( pFuncNameArray[nFuncPos] );
uno::Reference<reflection::XIdlMethod> xFunc; // remains empty
uno::Any aObject; // also empty
@@ -617,7 +617,7 @@ void ScUnoAddInCollection::ReadConfiguration()
ScUnoAddInFuncData* pData = new ScUnoAddInFuncData(
aFuncName, aLocalName, aDescription,
- nCategory, nHelpId,
+ nCategory, sHelpId,
xFunc, aObject,
nVisibleCount, pVisibleArgs, nCallerPos );
@@ -936,7 +936,7 @@ void ScUnoAddInCollection::ReadFromAddIn( const uno::Reference<uno::XInterface>&
xAddIn->getProgrammaticCategoryName(
aFuncU ) ) );
- USHORT nHelpId = aHelpIdGenerator.GetHelpId( aFuncU );
+ rtl::OString sHelpId = aHelpIdGenerator.GetHelpId( aFuncU );
rtl::OUString aLocalU;
try
@@ -1015,7 +1015,7 @@ void ScUnoAddInCollection::ReadFromAddIn( const uno::Reference<uno::XInterface>&
ppFuncData[nFuncPos+nOld] = new ScUnoAddInFuncData(
aFuncName, aLocalName, aDescription,
- nCategory, nHelpId,
+ nCategory, sHelpId,
xFunc, aObject,
nVisibleCount, pVisibleArgs, nCallerPos );
@@ -1338,7 +1338,7 @@ BOOL ScUnoAddInCollection::FillFunctionDescFromData( const ScUnoAddInFuncData& r
rDesc.pFuncName = new String( rFuncData.GetUpperLocal() ); //! upper?
rDesc.nCategory = rFuncData.GetCategory();
- rDesc.nHelpId = rFuncData.GetHelpId();
+ rDesc.sHelpId = rFuncData.GetHelpId();
String aDesc = rFuncData.GetDescription();
if (!aDesc.Len())
diff --git a/sc/source/core/tool/addinhelpid.cxx b/sc/source/core/tool/addinhelpid.cxx
index a4de52e27b1b..3f261fd3917c 100644
--- a/sc/source/core/tool/addinhelpid.cxx
+++ b/sc/source/core/tool/addinhelpid.cxx
@@ -37,7 +37,7 @@
struct ScUnoAddInHelpId
{
const sal_Char* pFuncName;
- sal_uInt16 nHelpId;
+ const sal_Char* sHelpId;
};
@@ -189,10 +189,10 @@ void ScUnoAddInHelpIdGenerator::SetServiceName( const ::rtl::OUString& rServiceN
nArrayCount = nSize / sizeof( ScUnoAddInHelpId );
}
-sal_uInt16 ScUnoAddInHelpIdGenerator::GetHelpId( const ::rtl::OUString& rFuncName ) const
+rtl::OString ScUnoAddInHelpIdGenerator::GetHelpId( const ::rtl::OUString& rFuncName ) const
{
if( !pCurrHelpIds || !nArrayCount )
- return 0;
+ return rtl::OString();
const ScUnoAddInHelpId* pFirst = pCurrHelpIds;
const ScUnoAddInHelpId* pLast = pCurrHelpIds + nArrayCount - 1;
@@ -202,14 +202,14 @@ sal_uInt16 ScUnoAddInHelpIdGenerator::GetHelpId( const ::rtl::OUString& rFuncNam
const ScUnoAddInHelpId* pMiddle = pFirst + (pLast - pFirst) / 2;
sal_Int32 nResult = rFuncName.compareToAscii( pMiddle->pFuncName );
if( !nResult )
- return pMiddle->nHelpId;
+ return pMiddle->sHelpId;
else if( nResult < 0 )
pLast = pMiddle - 1;
else
pFirst = pMiddle + 1;
}
- return 0;
+ return rtl::OString();
}
diff --git a/sc/source/core/tool/chartpos.cxx b/sc/source/core/tool/chartpos.cxx
index fc3d9bf51be2..58ee1b06f7f7 100644
--- a/sc/source/core/tool/chartpos.cxx
+++ b/sc/source/core/tool/chartpos.cxx
@@ -175,25 +175,9 @@ void ScChartPositioner::GlueState()
const BYTE nOccu = 1;
const BYTE nFree = 2;
const BYTE nGlue = 3;
-#ifdef WIN
- // we hate 16bit, don't we?
- BYTE huge* p;
- BYTE huge* pA = (BYTE huge*) SvMemAlloc( nCR );
- if ( nCR > (ULONG)((USHORT)~0) )
- { // in 32k Bloecken initialisieren
- ULONG j;
- for ( j=0; j<nCR; j+=0x8000 )
- {
- memset( pA+j, nHole, Min( (ULONG)0x8000, nCR-j ) );
- }
- }
- else
- memset( pA, nHole, nCR * sizeof(BYTE) );
-#else
BYTE* p;
BYTE* pA = new BYTE[ nCR ];
memset( pA, 0, nCR * sizeof(BYTE) );
-#endif
SCCOL nCol, nCol1, nCol2;
SCROW nRow, nRow1, nRow2;
@@ -285,11 +269,7 @@ void ScChartPositioner::GlueState()
eGlue = SC_CHARTGLUE_NONE;
}
-#ifdef WIN
- SvMemFree( pA );
-#else
delete [] pA;
-#endif
}
void ScChartPositioner::CheckColRowHeaders()
@@ -524,9 +504,6 @@ ScChartPositionMap::ScChartPositionMap( SCCOL nChartCols, SCROW nChartRows,
nRowCount( nChartRows )
{
DBG_ASSERT( nColCount && nRowCount, "ScChartPositionMap without dimension" );
-#ifdef WIN
-#error ScChartPositionMap not implemented for 16-bit dumdums
-#endif
ScAddress* pPos;
SCCOL nCol;
diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
index c28d295275ae..828c9ae64c7d 100644
--- a/sc/source/core/tool/compiler.cxx
+++ b/sc/source/core/tool/compiler.cxx
@@ -121,24 +121,6 @@ enum ScanState
ssStop
};
-// ODFF names that are not written in the current mapping but to be recognized.
-// New names will be written in a future relase, then exchange (!) with the
-// names in formula/source/core/resource/core_resource.src to be able to still
-// read the old names as well.
-struct FunctionName
-{
- const sal_Char* pName;
- OpCode eOp;
-};
-static const FunctionName aOdffAliases[] = {
- // Renamed old names:
- // XXX none yet.
- // Renamed new names:
- { "BINOM.DIST.RANGE", ocB }, // B -> BINOM.DIST.RANGE
- { "LEGACY.TDIST", ocTDist } // TDIST -> LEGACY.TDIST
-};
-static const size_t nOdffAliases = sizeof(aOdffAliases) / sizeof(aOdffAliases[0]);
-
static const sal_Char* pInternal[ 1 ] = { "TTT" };
using namespace ::com::sun::star::i18n;
@@ -2524,6 +2506,25 @@ BOOL ScCompiler::IsOpCode( const String& rName, bool bInArray )
}
else if (mxSymbols->isODFF())
{
+ // ODFF names that are not written in the current mapping but to be
+ // recognized. New names will be written in a future relase, then
+ // exchange (!) with the names in
+ // formula/source/core/resource/core_resource.src to be able to still
+ // read the old names as well.
+ struct FunctionName
+ {
+ const sal_Char* pName;
+ OpCode eOp;
+ };
+ static const FunctionName aOdffAliases[] = {
+ // Renamed old names:
+ // XXX none yet.
+ // Renamed new names:
+ { "BINOM.DIST.RANGE", ocB }, // B -> BINOM.DIST.RANGE
+ { "LEGACY.TDIST", ocTDist }, // TDIST -> LEGACY.TDIST
+ { "ORG.OPENOFFICE.EASTERSUNDAY", ocEasterSunday } // EASTERSUNDAY -> ORG.OPENOFFICE.EASTERSUNDAY
+ };
+ static const size_t nOdffAliases = sizeof(aOdffAliases) / sizeof(aOdffAliases[0]);
for (size_t i=0; i<nOdffAliases; ++i)
{
if (rName.EqualsIgnoreCaseAscii( aOdffAliases[i].pName))
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index 30aa0b8aa13e..fcc7a24e7a42 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -2481,22 +2481,13 @@ void ScInterpreter::ScN()
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScN" );
USHORT nErr = nGlobalError;
nGlobalError = 0;
- double fVal;
- if ( GetRawStackType() == svString )
- {
- fVal = 0.0;
- Pop();
- }
- else
- {
- // Temporarily override the ConvertStringToValue() error for
- // GetCellValue() / GetCellValueOrZero()
- USHORT nSErr = mnStringNoValueError;
- mnStringNoValueError = errCellNoValue;
- fVal = GetDouble();
- mnStringNoValueError = nSErr;
- }
- if ( nGlobalError == NOTAVAILABLE || nGlobalError == errIllegalArgument )
+ // Temporarily override the ConvertStringToValue() error for
+ // GetCellValue() / GetCellValueOrZero()
+ USHORT nSErr = mnStringNoValueError;
+ mnStringNoValueError = errCellNoValue;
+ double fVal = GetDouble();
+ mnStringNoValueError = nSErr;
+ if ( nGlobalError == NOTAVAILABLE || nGlobalError == errCellNoValue )
nGlobalError = 0; // N(#NA) and N("text") are ok
if ( !nGlobalError && nErr != NOTAVAILABLE )
nGlobalError = nErr;
@@ -2976,10 +2967,6 @@ void ScInterpreter::ScMin( BOOL bTextAsZero )
PushDouble(nMin);
}
-#if defined(WIN) && defined(MSC)
-#pragma optimize("",off)
-#endif
-
void ScInterpreter::ScMax( BOOL bTextAsZero )
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScMax" );
@@ -3100,10 +3087,6 @@ void ScInterpreter::ScMax( BOOL bTextAsZero )
else
PushDouble(nMax);
}
-#if defined(WIN) && defined(MSC)
-#pragma optimize("",on)
-#endif
-
double ScInterpreter::IterateParameters( ScIterFunc eFunc, BOOL bTextAsZero )
{
@@ -5789,10 +5772,6 @@ void ScInterpreter::ScVLookup()
CalculateLookup(FALSE);
}
-#if defined(WIN) && defined(MSC)
-#pragma optimize("",off)
-#endif
-
void ScInterpreter::ScSubTotal()
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScSubTotal" );
@@ -5832,10 +5811,6 @@ void ScInterpreter::ScSubTotal()
PushDouble( nVal );
}
}
-#if defined(WIN) && defined(MSC)
-#pragma optimize("",on)
-#endif
-
ScDBQueryParamBase* ScInterpreter::GetDBParams( BOOL& rMissingField )
{
@@ -7097,22 +7072,71 @@ void ScInterpreter::ScText()
if ( MustHaveParamCount( GetByte(), 2 ) )
{
String sFormatString = GetString();
- double fVal = GetDouble();
String aStr;
- Color* pColor = NULL;
- LanguageType eCellLang;
- const ScPatternAttr* pPattern = pDok->GetPattern(
- aPos.Col(), aPos.Row(), aPos.Tab() );
- if ( pPattern )
- eCellLang = ((const SvxLanguageItem&)
- pPattern->GetItem( ATTR_LANGUAGE_FORMAT )).GetValue();
- else
- eCellLang = ScGlobal::eLnge;
- if ( !pFormatter->GetPreviewStringGuess( sFormatString, fVal, aStr,
- &pColor, eCellLang ) )
- PushIllegalArgument();
+ bool bString = false;
+ double fVal = 0.0;
+ switch (GetStackType())
+ {
+ case svError:
+ PopError();
+ break;
+ case svDouble:
+ fVal = PopDouble();
+ break;
+ default:
+ {
+ FormulaTokenRef xTok( PopToken());
+ if (!nGlobalError)
+ {
+ PushTempToken( xTok);
+ // Temporarily override the ConvertStringToValue()
+ // error for GetCellValue() / GetCellValueOrZero()
+ USHORT nSErr = mnStringNoValueError;
+ mnStringNoValueError = errNotNumericString;
+ fVal = GetDouble();
+ mnStringNoValueError = nSErr;
+ if (nGlobalError == errNotNumericString)
+ {
+ // Not numeric.
+ nGlobalError = 0;
+ PushTempToken( xTok);
+ aStr = GetString();
+ bString = true;
+ }
+ }
+ }
+ }
+ if (nGlobalError)
+ PushError( nGlobalError);
else
- PushString(aStr);
+ {
+ String aResult;
+ Color* pColor = NULL;
+ LanguageType eCellLang;
+ const ScPatternAttr* pPattern = pDok->GetPattern(
+ aPos.Col(), aPos.Row(), aPos.Tab() );
+ if ( pPattern )
+ eCellLang = ((const SvxLanguageItem&)
+ pPattern->GetItem( ATTR_LANGUAGE_FORMAT )).GetValue();
+ else
+ eCellLang = ScGlobal::eLnge;
+ if (bString)
+ {
+ if (!pFormatter->GetPreviewString( sFormatString, aStr,
+ aResult, &pColor, eCellLang))
+ PushIllegalArgument();
+ else
+ PushString( aResult);
+ }
+ else
+ {
+ if (!pFormatter->GetPreviewStringGuess( sFormatString, fVal,
+ aResult, &pColor, eCellLang))
+ PushIllegalArgument();
+ else
+ PushString( aResult);
+ }
+ }
}
}
diff --git a/sc/source/core/tool/interpr2.cxx b/sc/source/core/tool/interpr2.cxx
index dac5f0c99ac5..404eaf763a51 100644
--- a/sc/source/core/tool/interpr2.cxx
+++ b/sc/source/core/tool/interpr2.cxx
@@ -682,10 +682,6 @@ void ScInterpreter::ScNPV()
}
}
-#if defined(WIN) && defined(MSC)
-#pragma optimize("",off)
-#endif
-
void ScInterpreter::ScIRR()
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScIRR" );
@@ -752,10 +748,6 @@ void ScInterpreter::ScIRR()
else
PushError( errNoConvergence);
}
-#if defined(WIN) && defined(MSC)
-#pragma optimize("",on)
-#endif
-
void ScInterpreter::ScMIRR()
{ // range_of_values ; rate_invest ; rate_reinvest
diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx
index 5c326001ff02..47cde7186067 100644..100755
--- a/sc/source/core/tool/interpr4.cxx
+++ b/sc/source/core/tool/interpr4.cxx
@@ -231,6 +231,12 @@ double ScInterpreter::ConvertStringToValue( const String& rStr )
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ConvertStringToValue" );
double fValue = 0.0;
+ if (mnStringNoValueError == errCellNoValue)
+ {
+ // Requested that all strings result in 0, error handled by caller.
+ SetError( mnStringNoValueError);
+ return fValue;
+ }
::rtl::OUString aStr( rStr);
rtl_math_ConversionStatus eStatus;
sal_Int32 nParseEnd;
@@ -3964,5 +3970,10 @@ StackVar ScInterpreter::Interpret()
while( maxsp-- )
(*p++)->DecRef();
- return xResult->GetType();
+ StackVar eType = xResult->GetType();
+ if (eType == svMatrix)
+ // Results are immutable in case they would be reused as input for new
+ // interpreters.
+ static_cast<ScToken*>(xResult.operator->())->GetMatrix()->SetImmutable( true);
+ return eType;
}
diff --git a/sc/source/core/tool/interpr5.cxx b/sc/source/core/tool/interpr5.cxx
index ba4322a3281a..73794cf15b2d 100644
--- a/sc/source/core/tool/interpr5.cxx
+++ b/sc/source/core/tool/interpr5.cxx
@@ -310,6 +310,9 @@ ScMatrixRef ScInterpreter::GetNewMat(SCSIZE nC, SCSIZE nR)
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::GetNewMat" );
ScMatrix* pMat = new ScMatrix( nC, nR);
pMat->SetErrorInterpreter( this);
+ // A temporary matrix is mutable and ScMatrix::CloneIfConst() returns the
+ // very matrix.
+ pMat->SetImmutable( false);
SCSIZE nCols, nRows;
pMat->GetDimensions( nCols, nRows);
if ( nCols != nC || nRows != nR )
@@ -2069,23 +2072,25 @@ bool ScInterpreter::CheckMatrix(BOOL _bLOG,BOOL _bTrendGrowth,BYTE& nCase,SCSIZE
{
PushIllegalArgument();
return false;
- } // if (!pMatY->IsValue(i))
- } // for ( SCSIZE i = 0; i < nCountY; i++ )
+ }
+ }
+
if ( _bLOG )
{
+ ScMatrixRef pNewY = pMatY->CloneIfConst();
for (SCSIZE nElem = 0; nElem < nCountY; nElem++)
{
- const double fVal = pMatY->GetDouble(nElem);
+ const double fVal = pNewY->GetDouble(nElem);
if (fVal <= 0.0)
{
PushIllegalArgument();
return false;
}
else
- pMatY->PutDouble(log(fVal), nElem);
- } // for (nElem = 0; nElem < nCountY; nElem++)
- } // if ( _bRKP )
-
+ pNewY->PutDouble(log(fVal), nElem);
+ }
+ pMatY = pNewY;
+ }
if (pMatX)
{
diff --git a/sc/source/core/tool/scmatrix.cxx b/sc/source/core/tool/scmatrix.cxx
index fbb859b64ebf..2ecc20f53405 100644
--- a/sc/source/core/tool/scmatrix.cxx
+++ b/sc/source/core/tool/scmatrix.cxx
@@ -81,6 +81,11 @@ ScMatrix* ScMatrix::Clone() const
return pScMat;
}
+ScMatrix* ScMatrix::CloneIfConst()
+{
+ return (mbCloneIfConst || IsEternalRef()) ? Clone() : this;
+}
+
void ScMatrix::Resize( SCSIZE nC, SCSIZE nR)
{
Clear();
diff --git a/sc/source/filter/excel/excdoc.cxx b/sc/source/filter/excel/excdoc.cxx
index 2cf2d8f580c0..458629979172 100644
--- a/sc/source/filter/excel/excdoc.cxx
+++ b/sc/source/filter/excel/excdoc.cxx
@@ -420,7 +420,7 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
}
-void ExcTable::FillAsTable( size_t nCodeNameIdx )
+void ExcTable::FillAsTable( SCTAB nCodeNameIdx )
{
InitializeTable( mnScTab );
@@ -550,7 +550,7 @@ void ExcTable::FillAsTable( size_t nCodeNameIdx )
Add( new ExcEof );
}
-void ExcTable::FillAsXmlTable( size_t nCodeNameIdx )
+void ExcTable::FillAsXmlTable( SCTAB nCodeNameIdx )
{
RootData& rR = GetOldRoot();
@@ -640,7 +640,7 @@ void ExcTable::FillAsXmlTable( size_t nCodeNameIdx )
}
-void ExcTable::FillAsEmptyTable( size_t nCodeNameIdx )
+void ExcTable::FillAsEmptyTable( SCTAB nCodeNameIdx )
{
InitializeTable( mnScTab );
@@ -723,7 +723,7 @@ void ExcDocument::ReadDoc( void )
aHeader.FillAsHeader( maBoundsheetList );
SCTAB nScTab = 0, nScTabCount = GetTabInfo().GetScTabCount();
- size_t nCodeNameIdx = 0, nCodeNameCount = GetExtDocOptions().GetCodeNameCount();
+ SCTAB nCodeNameIdx = 0, nCodeNameCount = GetExtDocOptions().GetCodeNameCount();
for( ; nScTab < nScTabCount; ++nScTab )
{
diff --git a/sc/source/filter/excel/excimp8.cxx b/sc/source/filter/excel/excimp8.cxx
index 9608804da9f9..d75a0e669603 100644
--- a/sc/source/filter/excel/excimp8.cxx
+++ b/sc/source/filter/excel/excimp8.cxx
@@ -56,7 +56,6 @@
#include <svx/xflclit.hxx>
#include <filter/msfilter/svxmsbas.hxx>
#include <basic/basmgr.hxx>
-#include <oox/xls/excelvbaproject.hxx>
#include <vcl/graph.hxx>
#include <vcl/bmpacc.hxx>
@@ -243,17 +242,6 @@ void ImportExcel8::ReadBasic( void )
{
SvxImportMSVBasic aBasicImport( *pShell, *xRootStrg, bLoadCode, bLoadStrg );
bool bAsComment = !bLoadExecutable;
- if ( !bAsComment )
- {
- uno::Any aGlobs;
- uno::Sequence< uno::Any > aArgs(1);
- aArgs[ 0 ] <<= pShell->GetModel();
- aGlobs <<= ::comphelper::getProcessServiceFactory()->createInstanceWithArguments( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ooo.vba.excel.Globals" ) ), aArgs );
- pShell->GetBasicManager()->SetGlobalUNOConstant( "VBAGlobals", aGlobs );
- BasicManager* pAppMgr = SFX_APP()->GetBasicManager();
- if ( pAppMgr )
- pAppMgr->SetGlobalUNOConstant( "ThisExcelDoc", aArgs[ 0 ] );
- }
aBasicImport.Import( EXC_STORAGE_VBA_PROJECT, EXC_STORAGE_VBA, bAsComment );
}
}
@@ -292,8 +280,6 @@ void ImportExcel8::PostDocLoad( void )
// read doc info (no docshell while pasting from clipboard)
LoadDocumentProperties();
- // attach document events to VBA macros
- AttachDocumentEvents();
// #i45843# Pivot tables are now handled outside of PostDocLoad, so they are available
// when formula cells are calculated, for the GETPIVOTDATA function.
@@ -318,21 +304,6 @@ void ImportExcel8::LoadDocumentProperties()
}
}
-void ImportExcel8::AttachDocumentEvents()
-{
- SfxObjectShell* pShell = GetDocShell();
- if( HasBasic() && pShell )
- {
- uno::Reference< lang::XMultiServiceFactory > xGlobalFactory = ::comphelper::getProcessServiceFactory();
- uno::Reference< sheet::XSpreadsheetDocument > xDocument( pShell->GetModel(), uno::UNO_QUERY );
- if( xGlobalFactory.is() && xDocument.is() )
- {
- ::oox::xls::VbaProject aVbaProject( xGlobalFactory, xDocument );
- aVbaProject.attachToEvents();
- }
- }
-}
-
//___________________________________________________________________
// autofilter
diff --git a/sc/source/filter/excel/impop.cxx b/sc/source/filter/excel/impop.cxx
index 209d24ac043d..059f5ba7426b 100644
--- a/sc/source/filter/excel/impop.cxx
+++ b/sc/source/filter/excel/impop.cxx
@@ -87,7 +87,7 @@
#include "excimp8.hxx"
#include "excform.hxx"
-#if defined( WNT ) || defined( WIN )
+#if defined( WNT )
#include <math.h>
#else
#include <stdlib.h>
diff --git a/sc/source/filter/excel/xeescher.cxx b/sc/source/filter/excel/xeescher.cxx
index 0509f2afa5fa..b2801df7f54a 100644
--- a/sc/source/filter/excel/xeescher.cxx
+++ b/sc/source/filter/excel/xeescher.cxx
@@ -841,7 +841,7 @@ void XclExpTbxControlObj::WriteSubRecs( XclExpStream& rStrm )
}
else if( mnObjType == EXC_OBJTYPE_DROPDOWN )
{
- rStrm << sal_uInt16( 0 ) << mnLineCount;
+ rStrm << sal_uInt16( 0 ) << mnLineCount << sal_uInt16( 0 ) << sal_uInt16( 0 );
}
rStrm.EndRecord();
diff --git a/sc/source/filter/excel/xiescher.cxx b/sc/source/filter/excel/xiescher.cxx
index dc87bba4c050..8d09cae60941 100644
--- a/sc/source/filter/excel/xiescher.cxx
+++ b/sc/source/filter/excel/xiescher.cxx
@@ -98,7 +98,6 @@
#include "convuno.hxx"
#include "postit.hxx"
#include "globstr.hrc"
-#include "chartlis.hxx"
#include "fprogressbar.hxx"
#include "xltracer.hxx"
@@ -4056,9 +4055,8 @@ void XclImpObjectManager::ConvertObjects()
for( XclImpSheetDrawingMap::iterator aIt = maSheetDrawings.begin(), aEnd = maSheetDrawings.end(); aIt != aEnd; ++aIt )
aIt->second->ConvertObjects( aDffConv );
- ScChartListenerCollection* pChartListeners = GetDoc().GetChartListenerCollection();
- if( pChartListeners && (pChartListeners->GetCount() > 0) )
- pChartListeners->SetDirty();
+ // #i112436# don't call ScChartListenerCollection::SetDirty here,
+ // instead use InterpretDirtyCells in ScDocument::CalcAfterLoad.
}
String XclImpObjectManager::GetDefaultObjName( const XclImpDrawObjBase& rDrawObj ) const
diff --git a/sc/source/filter/excel/xiname.cxx b/sc/source/filter/excel/xiname.cxx
index 70ff46a0d741..5d21d91c9f53 100644
--- a/sc/source/filter/excel/xiname.cxx
+++ b/sc/source/filter/excel/xiname.cxx
@@ -132,7 +132,8 @@ XclImpName::XclImpName( XclImpStream& rStrm, sal_uInt16 nXclNameIdx ) :
if( nXclTab != EXC_NAME_GLOBAL )
{
sal_uInt16 nUsedTab = (GetBiff() == EXC_BIFF8) ? nXclTab : nExtSheet;
- maScName.Append( '_' ).Append( String::CreateFromInt32( nUsedTab ) );
+ // #163146# do not rename sheet-local names by default, this breaks VBA scripts
+// maScName.Append( '_' ).Append( String::CreateFromInt32( nUsedTab ) );
// TODO: may not work for BIFF5, handle skipped sheets (all BIFF)
mnScTab = static_cast< SCTAB >( nUsedTab - 1 );
}
@@ -208,7 +209,8 @@ XclImpName::XclImpName( XclImpStream& rStrm, sal_uInt16 nXclNameIdx ) :
// 4) *** create a defined name in the Calc document *** ------------------
- if( pTokArr && (bBuiltIn || !::get_flag( nFlags, EXC_NAME_HIDDEN )) && !mbVBName )
+ // #163146# do not ignore hidden names (may be regular names created by VBA scripts)
+ if( pTokArr /*&& (bBuiltIn || !::get_flag( nFlags, EXC_NAME_HIDDEN ))*/ && !mbVBName )
{
// create the Calc name data
ScRangeData* pData = new ScRangeData( GetDocPtr(), maScName, *pTokArr, ScAddress(), nNameType );
diff --git a/sc/source/filter/excel/xiroot.cxx b/sc/source/filter/excel/xiroot.cxx
index 3fd2650cf2ff..5f8bcbd481e5 100644
--- a/sc/source/filter/excel/xiroot.cxx
+++ b/sc/source/filter/excel/xiroot.cxx
@@ -289,7 +289,7 @@ void XclImpRoot::ReadCodeName( XclImpStream& rStrm, bool bGlobals )
}
else
{
- GetExtDocOptions().AppendCodeName( aName );
+ GetExtDocOptions().SetCodeName( GetCurrScTab(), aName );
GetDoc().SetCodeName( GetCurrScTab(), aName );
}
}
diff --git a/sc/source/filter/excel/xlescher.cxx b/sc/source/filter/excel/xlescher.cxx
index bb77fac2be73..153a5d5ed3cc 100644
--- a/sc/source/filter/excel/xlescher.cxx
+++ b/sc/source/filter/excel/xlescher.cxx
@@ -36,8 +36,8 @@
#include "document.hxx"
#include "xestream.hxx"
#include "xistream.hxx"
-#include "xltools.hxx"
#include "xlroot.hxx"
+#include "xltools.hxx"
using ::rtl::OUString;
using ::com::sun::star::uno::Reference;
diff --git a/sc/source/filter/inc/excdoc.hxx b/sc/source/filter/inc/excdoc.hxx
index f00e8d091590..5da6a5d38d83 100644
--- a/sc/source/filter/inc/excdoc.hxx
+++ b/sc/source/filter/inc/excdoc.hxx
@@ -69,7 +69,7 @@ private:
// pRec mit new anlegen und vergessen, delete macht ExcTable selber!
void Add( XclExpRecordBase* pRec );
- void FillAsXmlTable( size_t nCodeNameIdx );
+ void FillAsXmlTable( SCTAB nCodeNameIdx );
public:
ExcTable( const XclExpRoot& rRoot );
@@ -77,8 +77,8 @@ public:
~ExcTable();
void FillAsHeader( ExcBoundsheetList& rBoundsheetList );
- void FillAsTable( size_t nCodeNameIdx );
- void FillAsEmptyTable( size_t nCodeNameIdx );
+ void FillAsTable( SCTAB nCodeNameIdx );
+ void FillAsEmptyTable( SCTAB nCodeNameIdx );
void Write( XclExpStream& );
void WriteXml( XclExpXmlStream& );
diff --git a/sc/source/filter/inc/excimp8.hxx b/sc/source/filter/inc/excimp8.hxx
index 5b2bbe2e7b5d..7e4cca15dfe1 100644
--- a/sc/source/filter/inc/excimp8.hxx
+++ b/sc/source/filter/inc/excimp8.hxx
@@ -81,7 +81,6 @@ protected:
private:
void LoadDocumentProperties();
- void AttachDocumentEvents();
};
diff --git a/sc/source/filter/lotus/lotimpop.cxx b/sc/source/filter/lotus/lotimpop.cxx
index 2f6f81b7279c..33b3c8e30b97 100644
--- a/sc/source/filter/lotus/lotimpop.cxx
+++ b/sc/source/filter/lotus/lotimpop.cxx
@@ -48,7 +48,7 @@
#include "lotattr.hxx"
-static NAMESPACE_VOS( OMutex ) aLotImpSemaphore;
+static vos:: OMutex aLotImpSemaphore;
ImportLotus::ImportLotus( SvStream& aStream, ScDocument* pDoc, CharSet eQ ) :
diff --git a/sc/source/filter/lotus/op.cxx b/sc/source/filter/lotus/op.cxx
index 4ab0c8bb3b14..058898d16547 100644
--- a/sc/source/filter/lotus/op.cxx
+++ b/sc/source/filter/lotus/op.cxx
@@ -73,7 +73,7 @@
#include <string.h>
#include <math.h>
#include <ctype.h>
-#if defined( MAC ) || defined( ICC )
+#if defined( ICC )
#include <stdlib.h>
#endif
diff --git a/sc/source/filter/xml/XMLExportDataPilot.cxx b/sc/source/filter/xml/XMLExportDataPilot.cxx
index e43ff21a114d..f8cba5ecf6c3 100644
--- a/sc/source/filter/xml/XMLExportDataPilot.cxx
+++ b/sc/source/filter/xml/XMLExportDataPilot.cxx
@@ -503,9 +503,13 @@ void ScXMLExportDataPilot::WriteMembers(ScDPSaveDimension* pDim)
void ScXMLExportDataPilot::WriteLevels(ScDPSaveDimension* pDim)
{
- rtl::OUStringBuffer sBuffer;
- SvXMLUnitConverter::convertBool(sBuffer, pDim->GetShowEmpty());
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_SHOW_EMPTY, sBuffer.makeStringAndClear());
+ // #i114202# GetShowEmpty is only valid if HasShowEmpty is true.
+ if (pDim->HasShowEmpty())
+ {
+ rtl::OUStringBuffer sBuffer;
+ SvXMLUnitConverter::convertBool(sBuffer, pDim->GetShowEmpty());
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_SHOW_EMPTY, sBuffer.makeStringAndClear());
+ }
SvXMLElementExport aElemDPL(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_LEVEL, sal_True, sal_True);
WriteSubTotals(pDim);
diff --git a/sc/source/filter/xml/XMLStylesExportHelper.cxx b/sc/source/filter/xml/XMLStylesExportHelper.cxx
index f8bafa32f205..66f3ea613a3a 100644
--- a/sc/source/filter/xml/XMLStylesExportHelper.cxx
+++ b/sc/source/filter/xml/XMLStylesExportHelper.cxx
@@ -1234,10 +1234,31 @@ void ScRowStyles::AddFieldStyleName(const sal_Int32 nTable, const sal_Int32 nFie
const sal_Int32 nStringIndex)
{
DBG_ASSERT(static_cast<size_t>(nTable) < aTables.size(), "wrong table");
- DBG_ASSERT(aTables[nTable].size() >= static_cast<sal_uInt32>(nField), "wrong field");
- if (aTables[nTable].size() == static_cast<sal_uInt32>(nField))
+ DBG_ASSERT(aTables[nTable].size() >= static_cast<size_t>(nField), "wrong field");
+ if (aTables[nTable].size() == static_cast<size_t>(nField))
aTables[nTable].push_back(nStringIndex);
- aTables[nTable][nField] = nStringIndex;
+ else
+ aTables[nTable][nField] = nStringIndex;
+}
+
+void ScRowStyles::AddFieldStyleName(const sal_Int32 nTable, const sal_Int32 nStartField,
+ const sal_Int32 nStringIndex, const sal_Int32 nEndField)
+{
+ DBG_ASSERT( nStartField <= nEndField, "bad field range");
+ DBG_ASSERT(static_cast<size_t>(nTable) < aTables.size(), "wrong table");
+ DBG_ASSERT(aTables[nTable].size() >= static_cast<size_t>(nStartField), "wrong field");
+ ScMysalInt32Vec& rTable = aTables[nTable];
+ size_t nSize = rTable.size();
+ if (nSize == static_cast<size_t>(nStartField))
+ rTable.insert( rTable.end(), static_cast<size_t>(nEndField - nStartField + 1), nStringIndex);
+ else
+ {
+ size_t nField = static_cast<size_t>(nStartField);
+ for ( ; nField < nSize && nField <= static_cast<size_t>(nEndField); ++nField)
+ rTable[nField] = nStringIndex;
+ if (nField <= static_cast<size_t>(nEndField))
+ rTable.insert( rTable.end(), static_cast<size_t>(nEndField - nField + 1), nStringIndex);
+ }
}
rtl::OUString* ScRowStyles::GetStyleName(const sal_Int32 nTable, const sal_Int32 nField)
diff --git a/sc/source/filter/xml/XMLStylesExportHelper.hxx b/sc/source/filter/xml/XMLStylesExportHelper.hxx
index 34672aeef96e..79b19b7ce9ab 100644
--- a/sc/source/filter/xml/XMLStylesExportHelper.hxx
+++ b/sc/source/filter/xml/XMLStylesExportHelper.hxx
@@ -286,6 +286,7 @@ public:
virtual void AddNewTable(const sal_Int32 nTable, const sal_Int32 nFields);
sal_Int32 GetStyleNameIndex(const sal_Int32 nTable, const sal_Int32 nField);
void AddFieldStyleName(const sal_Int32 nTable, const sal_Int32 nField, const sal_Int32 nStringIndex);
+ void AddFieldStyleName(const sal_Int32 nTable, const sal_Int32 nStartField, const sal_Int32 nStringIndex, const sal_Int32 nEndField);
virtual rtl::OUString* GetStyleName(const sal_Int32 nTable, const sal_Int32 nField);
};
diff --git a/sc/source/filter/xml/xmlcelli.cxx b/sc/source/filter/xml/xmlcelli.cxx
index 8e78f64b2090..ae5a7bcebe66 100644
--- a/sc/source/filter/xml/xmlcelli.cxx
+++ b/sc/source/filter/xml/xmlcelli.cxx
@@ -487,21 +487,31 @@ void ScXMLTableRowCellContext::DoMerge(const com::sun::star::table::CellAddress&
uno::Reference<table::XCellRange> xCellRange(rXMLImport.GetTables().GetCurrentXCellRange());
if ( xCellRange.is() )
{
- table::CellRangeAddress aCellAddress;
- if (IsMerged(xCellRange, aCellPos.Column, aCellPos.Row, aCellAddress))
+ // Stored merge range may actually be of a larger extend than what
+ // we support, in which case getCellRangeByPosition() throws
+ // IndexOutOfBoundsException. Do nothing then.
+ try
{
- //unmerge
+ table::CellRangeAddress aCellAddress;
+ if (IsMerged(xCellRange, aCellPos.Column, aCellPos.Row, aCellAddress))
+ {
+ //unmerge
+ uno::Reference <util::XMergeable> xMergeable (xCellRange->getCellRangeByPosition(aCellAddress.StartColumn, aCellAddress.StartRow,
+ aCellAddress.EndColumn, aCellAddress.EndRow), uno::UNO_QUERY);
+ if (xMergeable.is())
+ xMergeable->merge(sal_False);
+ }
+
+ //merge
uno::Reference <util::XMergeable> xMergeable (xCellRange->getCellRangeByPosition(aCellAddress.StartColumn, aCellAddress.StartRow,
- aCellAddress.EndColumn, aCellAddress.EndRow), uno::UNO_QUERY);
+ aCellAddress.EndColumn + nCols, aCellAddress.EndRow + nRows), uno::UNO_QUERY);
if (xMergeable.is())
- xMergeable->merge(sal_False);
+ xMergeable->merge(sal_True);
+ }
+ catch ( lang::IndexOutOfBoundsException & )
+ {
+ DBG_ERRORFILE("ScXMLTableRowCellContext::DoMerge: range to be merged larger than what we support");
}
-
- //merge
- uno::Reference <util::XMergeable> xMergeable (xCellRange->getCellRangeByPosition(aCellAddress.StartColumn, aCellAddress.StartRow,
- aCellAddress.EndColumn + nCols, aCellAddress.EndRow + nRows), uno::UNO_QUERY);
- if (xMergeable.is())
- xMergeable->merge(sal_True);
}
}
}
diff --git a/sc/source/filter/xml/xmlexprt.cxx b/sc/source/filter/xml/xmlexprt.cxx
index 0563f6430063..ca5403e3b18d 100644
--- a/sc/source/filter/xml/xmlexprt.cxx
+++ b/sc/source/filter/xml/xmlexprt.cxx
@@ -2576,14 +2576,13 @@ void ScXMLExport::_ExportAutoStyles()
}
sal_Int32 nOld(nRow);
nRow = pDoc->GetNextDifferentChangedRow(sal::static_int_cast<SCTAB>(nTable), static_cast<SCROW>(nRow), false);
- for (sal_Int32 i = nOld + 1; i < nRow; ++i)
- pRowStyles->AddFieldStyleName(nTable, i, nIndex);
+ if (nRow > nOld + 1)
+ pRowStyles->AddFieldStyleName(nTable, nOld + 1, nIndex, nRow - 1);
}
if (aCellAddress.EndRow > nRows)
{
sal_Int32 nIndex(pRowStyles->GetStyleNameIndex(nTable, nRows));
- for (sal_Int32 i = nRows + 1; i <= aCellAddress.EndRow; ++i)
- pRowStyles->AddFieldStyleName(nTable, i, nIndex);
+ pRowStyles->AddFieldStyleName(nTable, nRows + 1, nIndex, aCellAddress.EndRow);
}
}
}
@@ -4341,7 +4340,7 @@ void ScXMLExport::GetConfigurationSettings(uno::Sequence<beans::PropertyValue>&
uno::Reference <container::XNameAccess> xCodeNameAccess;
DBG_ASSERT( pDoc, "ScXMLExport::GetConfigurationSettings - no ScDocument!" );
- if( pDoc )
+ if( pDoc && pDoc->IsInVBAMode() )
{
xCodeNameAccess = new XMLCodeNameProvider( pDoc );
if( xCodeNameAccess.is() && xCodeNameAccess->hasElements() )
diff --git a/sc/source/filter/xml/xmlstyle.cxx b/sc/source/filter/xml/xmlstyle.cxx
index 4127f5246428..d061ea24b194 100644
--- a/sc/source/filter/xml/xmlstyle.cxx
+++ b/sc/source/filter/xml/xmlstyle.cxx
@@ -81,9 +81,11 @@ const XMLPropertyMapEntry aXMLScCellStylesProperties[] =
MAP( "ConditionalFormatXML", XML_NAMESPACE_STYLE, XML_MAP, XML_TYPE_PROP_TABLE_CELL|XML_TYPE_STRING|MID_FLAG_SPECIAL_ITEM, CTF_SC_IMPORT_MAP ),
MAP( "ConditionalFormatXML", XML_NAMESPACE_STYLE, XML_MAP, XML_TYPE_PROP_TABLE_CELL|XML_TYPE_STRING|MID_FLAG_SPECIAL_ITEM, CTF_SC_MAP ),
MAP( "DiagonalBLTR", XML_NAMESPACE_STYLE, XML_DIAGONAL_BL_TR, XML_TYPE_PROP_TABLE_CELL|XML_TYPE_BORDER, CTF_SC_DIAGONALBLTR ),
- MAP( "DiagonalBLTR", XML_NAMESPACE_STYLE, XML_DIAGONAL_BL_TR_WIDTH, XML_TYPE_PROP_TABLE_CELL|XML_TYPE_BORDER_WIDTH, CTF_SC_DIAGONALBLTRWIDTH ),
+ MAP( "DiagonalBLTR", XML_NAMESPACE_STYLE, XML_DIAGONAL_BL_TR_WIDTH, XML_TYPE_PROP_TABLE_CELL|XML_TYPE_BORDER_WIDTH, CTF_SC_DIAGONALBLTRWIDTH ), // #i102690# for old files
+ MAP( "DiagonalBLTR", XML_NAMESPACE_STYLE, XML_DIAGONAL_BL_TR_WIDTHS, XML_TYPE_PROP_TABLE_CELL|XML_TYPE_BORDER_WIDTH, CTF_SC_DIAGONALBLTRWIDTHS ),
MAP( "DiagonalTLBR", XML_NAMESPACE_STYLE, XML_DIAGONAL_TL_BR, XML_TYPE_PROP_TABLE_CELL|XML_TYPE_BORDER, CTF_SC_DIAGONALTLBR ),
- MAP( "DiagonalTLBR", XML_NAMESPACE_STYLE, XML_DIAGONAL_TL_BR_WIDTH, XML_TYPE_PROP_TABLE_CELL|XML_TYPE_BORDER_WIDTH, CTF_SC_DIAGONALTLBRWIDTH ),
+ MAP( "DiagonalTLBR", XML_NAMESPACE_STYLE, XML_DIAGONAL_TL_BR_WIDTH, XML_TYPE_PROP_TABLE_CELL|XML_TYPE_BORDER_WIDTH, CTF_SC_DIAGONALTLBRWIDTH ), // #i102690# for old files
+ MAP( "DiagonalTLBR", XML_NAMESPACE_STYLE, XML_DIAGONAL_TL_BR_WIDTHS, XML_TYPE_PROP_TABLE_CELL|XML_TYPE_BORDER_WIDTH, CTF_SC_DIAGONALTLBRWIDTHS ),
MAP( "HoriJustify", XML_NAMESPACE_FO, XML_TEXT_ALIGN, XML_TYPE_PROP_PARAGRAPH|XML_SC_TYPE_HORIJUSTIFY|MID_FLAG_MERGE_PROPERTY, 0 ),
MAP( "HoriJustify", XML_NAMESPACE_STYLE, XML_TEXT_ALIGN_SOURCE, XML_TYPE_PROP_TABLE_CELL|XML_SC_TYPE_HORIJUSTIFYSOURCE|MID_FLAG_MERGE_PROPERTY, 0 ),
MAP( "HoriJustify", XML_NAMESPACE_STYLE, XML_REPEAT_CONTENT, XML_TYPE_PROP_TABLE_CELL|XML_SC_TYPE_HORIJUSTIFYREPEAT|MID_FLAG_MERGE_PROPERTY, 0 ),
@@ -490,6 +492,18 @@ void ScXMLCellExportPropertyMapper::ContextFilter(
pParaMarginBottomRel->maValue.clear();
}
+ // #i102690# old diagonal line attribute names without "s" are only read, not written
+ if (pDiagonalTLBRWidthState)
+ {
+ pDiagonalTLBRWidthState->mnIndex = -1;
+ pDiagonalTLBRWidthState->maValue.clear();
+ }
+ if (pDiagonalBLTRWidthState)
+ {
+ pDiagonalBLTRWidthState->mnIndex = -1;
+ pDiagonalBLTRWidthState->maValue.clear();
+ }
+
SvXMLExportPropertyMapper::ContextFilter(rProperties, rPropSet);
}
diff --git a/sc/source/filter/xml/xmlstyle.hxx b/sc/source/filter/xml/xmlstyle.hxx
index 07e7138afc71..f8abf5e6443d 100644
--- a/sc/source/filter/xml/xmlstyle.hxx
+++ b/sc/source/filter/xml/xmlstyle.hxx
@@ -90,6 +90,8 @@ extern const XMLPropertyMapEntry aXMLScTableStylesImportProperties[];
#define CTF_SC_DIAGONALTLBRWIDTH (XML_SC_CTF_START + 26)
#define CTF_SC_DIAGONALBLTR (XML_SC_CTF_START + 27)
#define CTF_SC_DIAGONALBLTRWIDTH (XML_SC_CTF_START + 28)
+#define CTF_SC_DIAGONALTLBRWIDTHS (XML_SC_CTF_START + 29)
+#define CTF_SC_DIAGONALBLTRWIDTHS (XML_SC_CTF_START + 30)
#define CTF_SC_ROWHEIGHT (XML_SC_CTF_START + 50)
#define CTF_SC_ROWOPTIMALHEIGHT (XML_SC_CTF_START + 51)
diff --git a/sc/source/filter/xml/xmlstyli.cxx b/sc/source/filter/xml/xmlstyli.cxx
index 9a04e284bf45..3866bba63239 100644
--- a/sc/source/filter/xml/xmlstyli.cxx
+++ b/sc/source/filter/xml/xmlstyli.cxx
@@ -105,6 +105,7 @@ void ScXMLCellImportPropertyMapper::finished(::std::vector< XMLPropertyState >&
XMLPropertyState* pAllBorderWidthProperty = NULL;
XMLPropertyState* pBorderWidths[4] = { NULL, NULL, NULL, NULL };
XMLPropertyState* pDiagBorders[2] = { 0 };
+ XMLPropertyState* pOldDiagBorderWidths[2] = { 0 }; // old attribute names without "s"
XMLPropertyState* pDiagBorderWidths[2] = { 0 };
::std::vector< XMLPropertyState >::iterator endproperty(rProperties.end());
@@ -134,8 +135,10 @@ void ScXMLCellImportPropertyMapper::finished(::std::vector< XMLPropertyState >&
case CTF_SC_BOTTOMBORDERWIDTH : pBorderWidths[XML_LINE_BOTTOM] = &*property; break;
case CTF_SC_DIAGONALTLBR : pDiagBorders[XML_LINE_TLBR] = &*property; break;
case CTF_SC_DIAGONALBLTR : pDiagBorders[XML_LINE_BLTR] = &*property; break;
- case CTF_SC_DIAGONALTLBRWIDTH : pDiagBorderWidths[XML_LINE_TLBR] = &*property; break;
- case CTF_SC_DIAGONALBLTRWIDTH : pDiagBorderWidths[XML_LINE_BLTR] = &*property; break;
+ case CTF_SC_DIAGONALTLBRWIDTH : pOldDiagBorderWidths[XML_LINE_TLBR] = &*property; break;
+ case CTF_SC_DIAGONALTLBRWIDTHS : pDiagBorderWidths[XML_LINE_TLBR] = &*property; break;
+ case CTF_SC_DIAGONALBLTRWIDTH : pOldDiagBorderWidths[XML_LINE_BLTR] = &*property; break;
+ case CTF_SC_DIAGONALBLTRWIDTHS : pDiagBorderWidths[XML_LINE_BLTR] = &*property; break;
}
}
}
@@ -179,17 +182,23 @@ void ScXMLCellImportPropertyMapper::finished(::std::vector< XMLPropertyState >&
}
for( i = 0; i < 2; ++i )
{
- if( pDiagBorders[i] && pDiagBorderWidths[i] )
+ if( pDiagBorders[i] && ( pDiagBorderWidths[i] || pOldDiagBorderWidths[i] ) )
{
table::BorderLine aBorderLine;
pDiagBorders[i]->maValue >>= aBorderLine;
table::BorderLine aBorderLineWidth;
- pDiagBorderWidths[i]->maValue >>= aBorderLineWidth;
+ if (pDiagBorderWidths[i])
+ pDiagBorderWidths[i]->maValue >>= aBorderLineWidth; // prefer new attribute
+ else
+ pOldDiagBorderWidths[i]->maValue >>= aBorderLineWidth;
aBorderLine.OuterLineWidth = aBorderLineWidth.OuterLineWidth;
aBorderLine.InnerLineWidth = aBorderLineWidth.InnerLineWidth;
aBorderLine.LineDistance = aBorderLineWidth.LineDistance;
pDiagBorders[i]->maValue <<= aBorderLine;
- pDiagBorderWidths[i]->mnIndex = -1;
+ if (pDiagBorderWidths[i])
+ pDiagBorderWidths[i]->mnIndex = -1;
+ if (pOldDiagBorderWidths[i])
+ pOldDiagBorderWidths[i]->mnIndex = -1; // reset mnIndex for old and new attribute if both are present
}
}
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index 2cabe7f9f2d6..b028a0a153ce 100644..100755
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -757,7 +757,11 @@ ScTextWnd::ScTextWnd( Window* pParent )
aTextFont.SetColor (aTxtColor);
aTextFont.SetWeight ( WEIGHT_NORMAL );
- SetSizePixel ( Size(1,TBX_WINDOW_HEIGHT) );
+ Size aSize(1,TBX_WINDOW_HEIGHT);
+ Size aMinEditSize( Edit::GetMinimumEditSize() );
+ if( aMinEditSize.Height() > aSize.Height() )
+ aSize.Height() = aMinEditSize.Height();
+ SetSizePixel ( aSize );
SetBackground ( aBgColor );
SetLineColor ( COL_BLACK );
SetMapMode ( MAP_TWIP );
diff --git a/sc/source/ui/app/scdll.cxx b/sc/source/ui/app/scdll.cxx
index a1b8f05d2918..8051399d06fa 100644
--- a/sc/source/ui/app/scdll.cxx
+++ b/sc/source/ui/app/scdll.cxx
@@ -361,59 +361,5 @@ void ScDLL::Exit()
// ScGlobal::Clear ist schon im Module-dtor
}
-//------------------------------------------------------------------
-// Statusbar
-//------------------------------------------------------------------
-
-#define TEXT_WIDTH(s) rStatusBar.GetTextWidth((s))
-
-//UNUSED2008-05 void ScDLL::FillStatusBar(StatusBar &rStatusBar)
-//UNUSED2008-05 {
-//UNUSED2008-05 // Dokumentposition (Tabelle x / y)
-//UNUSED2008-05 rStatusBar.InsertItem( SID_STATUS_DOCPOS,
-//UNUSED2008-05 TEXT_WIDTH( String().Fill( 10, 'X' ) ),
-//UNUSED2008-05 SIB_LEFT|SIB_AUTOSIZE );
-//UNUSED2008-05
-//UNUSED2008-05 // Seitenvorlage
-//UNUSED2008-05 rStatusBar.InsertItem( SID_STATUS_PAGESTYLE,
-//UNUSED2008-05 TEXT_WIDTH( String().Fill( 15, 'X' ) ),
-//UNUSED2008-05 SIB_LEFT|SIB_AUTOSIZE );
-//UNUSED2008-05
-//UNUSED2008-05 // Ma"sstab
-//UNUSED2008-05 rStatusBar.InsertItem( SID_ATTR_ZOOM,
-//UNUSED2008-05 SvxZoomStatusBarControl::GetDefItemWidth(rStatusBar),
-//UNUSED2008-05 SIB_CENTER );
-//UNUSED2008-05
-//UNUSED2008-05 // Einfuege-/Ueberschreibmodus
-//UNUSED2008-05 rStatusBar.InsertItem( SID_ATTR_INSERT,
-//UNUSED2008-05 SvxInsertStatusBarControl::GetDefItemWidth(rStatusBar),
-//UNUSED2008-05 SIB_CENTER );
-//UNUSED2008-05
-//UNUSED2008-05 // Selektionsmodus
-//UNUSED2008-05 rStatusBar.InsertItem( SID_STATUS_SELMODE,
-//UNUSED2008-05 SvxSelectionModeControl::GetDefItemWidth(rStatusBar),
-//UNUSED2008-05 SIB_CENTER );
-//UNUSED2008-05
-//UNUSED2008-05 // Dokument geaendert
-//UNUSED2008-05 rStatusBar.InsertItem( SID_DOC_MODIFIED,
-//UNUSED2008-05 SvxModifyControl::GetDefItemWidth(rStatusBar));
-//UNUSED2008-05
-//UNUSED2008-05 // signatures
-//UNUSED2008-05 rStatusBar.InsertItem( SID_SIGNATURE, XmlSecStatusBarControl::GetDefItemWidth( rStatusBar ), SIB_USERDRAW );
-//UNUSED2008-05 rStatusBar.SetHelpId(SID_SIGNATURE, SID_SIGNATURE);
-//UNUSED2008-05
-//UNUSED2008-05 // Mail
-//UNUSED2008-05 rStatusBar.InsertItem( SID_MAIL_NOTIFY,
-//UNUSED2008-05 TEXT_WIDTH( String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("Mail")) ),
-//UNUSED2008-05 SIB_CENTER );
-//UNUSED2008-05
-//UNUSED2008-05 // den aktuellen Kontext anzeigen Uhrzeit / FramePos / TabellenInfo / Errors
-//UNUSED2008-05 rStatusBar.InsertItem( SID_ATTR_SIZE,
-//UNUSED2008-05 SvxPosSizeStatusBarControl::GetDefItemWidth(rStatusBar),
-//UNUSED2008-05 SIB_AUTOSIZE|SIB_LEFT|SIB_USERDRAW);
-//UNUSED2008-05 }
-
-#undef TEXT_WIDTH
-
// DetectFilter functionality has moved - please update your bookmarks
// see sc/source/ui/unoobj/scdetect.cxx, have a nice day.
diff --git a/sc/source/ui/app/scmod.cxx b/sc/source/ui/app/scmod.cxx
index 272852efcf71..f7a02e1577f7 100644
--- a/sc/source/ui/app/scmod.cxx
+++ b/sc/source/ui/app/scmod.cxx
@@ -372,68 +372,6 @@ void ScModule::DeleteCfg()
}
//------------------------------------------------------------------
-
-#define TEXT_WIDTH(s) rStatusBar.GetTextWidth((s))
-
-void ScModule::FillStatusBar(StatusBar& rStatusBar)
-{
- // Dokumentposition (Tabelle x / y)
- rStatusBar.InsertItem( SID_STATUS_DOCPOS,
- TEXT_WIDTH( String().Fill( 10, 'X' ) ),
- SIB_LEFT|SIB_AUTOSIZE );
- rStatusBar.SetHelpId( SID_STATUS_DOCPOS, SID_STATUS_DOCPOS );
-
- // Seitenvorlage
- rStatusBar.InsertItem( SID_STATUS_PAGESTYLE,
- TEXT_WIDTH( String().Fill( 15, 'X' ) ),
- SIB_LEFT|SIB_AUTOSIZE );
- rStatusBar.SetHelpId( SID_STATUS_PAGESTYLE, SID_STATUS_PAGESTYLE );
-
- // Einfuege-/Ueberschreibmodus
- rStatusBar.InsertItem( SID_ATTR_INSERT,
- SvxInsertStatusBarControl::GetDefItemWidth(rStatusBar),
- SIB_CENTER );
- rStatusBar.SetHelpId( SID_ATTR_INSERT, SID_ATTR_INSERT );
-
- // Selektionsmodus
- rStatusBar.InsertItem( SID_STATUS_SELMODE,
- SvxSelectionModeControl::GetDefItemWidth(rStatusBar),
- SIB_CENTER );
- rStatusBar.SetHelpId( SID_STATUS_SELMODE, SID_STATUS_SELMODE );
-
- // Dokument geaendert
- rStatusBar.InsertItem( SID_DOC_MODIFIED,
- SvxModifyControl::GetDefItemWidth(rStatusBar));
-
- // signatures
- rStatusBar.InsertItem( SID_SIGNATURE, XmlSecStatusBarControl::GetDefItemWidth( rStatusBar ), SIB_USERDRAW );
- rStatusBar.SetHelpId(SID_SIGNATURE, SID_SIGNATURE);
-
-
- rStatusBar.SetHelpId( SID_DOC_MODIFIED, SID_DOC_MODIFIED );
-
- // den aktuellen Kontext anzeigen Uhrzeit / FramePos / TabellenInfo / Errors
- rStatusBar.InsertItem( SID_ATTR_SIZE,
- SvxPosSizeStatusBarControl::GetDefItemWidth(rStatusBar),
- SIB_AUTOSIZE|SIB_LEFT|SIB_USERDRAW);
- rStatusBar.SetHelpId( SID_ATTR_SIZE, SID_ATTR_SIZE );
-
- // Ma"sstab
- rStatusBar.InsertItem( SID_ATTR_ZOOM,
- SvxZoomStatusBarControl::GetDefItemWidth(rStatusBar),
- SIB_CENTER );
- rStatusBar.SetHelpId( SID_ATTR_ZOOM, SID_ATTR_ZOOM );
-
- // ZoomSlider
- rStatusBar.InsertItem( SID_ATTR_ZOOMSLIDER,
- TEXT_WIDTH( String().Fill( 15, 'X' ) ),
- SIB_CENTER );
- rStatusBar.SetHelpId( SID_ATTR_ZOOMSLIDER, SID_ATTR_ZOOMSLIDER );
-}
-
-#undef TEXT_WIDTH
-
-//------------------------------------------------------------------
//
// von der Applikation verschoben:
//
diff --git a/sc/source/ui/attrdlg/scdlgfact.cxx b/sc/source/ui/attrdlg/scdlgfact.cxx
index 73a5f1a1c4ee..812b43645fc4 100644
--- a/sc/source/ui/attrdlg/scdlgfact.cxx
+++ b/sc/source/ui/attrdlg/scdlgfact.cxx
@@ -599,9 +599,9 @@ USHORT AbstractScShowTabDlg_Impl::GetSelectEntryCount() const
}
void AbstractScShowTabDlg_Impl::SetDescription(
const String& rTitle, const String& rFixedText,
- ULONG nDlgHelpId, ULONG nLbHelpId )
+ const rtl::OString& sDlgHelpId, const rtl::OString& sLbHelpId )
{
- pDlg->SetDescription( rTitle, rFixedText,nDlgHelpId, nLbHelpId );
+ pDlg->SetDescription( rTitle, rFixedText, sDlgHelpId, sLbHelpId );
}
USHORT AbstractScShowTabDlg_Impl::GetSelectEntryPos(USHORT nPos) const
{
@@ -1284,14 +1284,14 @@ AbstractScShowTabDlg * ScAbstractDialogFactory_Impl::CreateScShowTabDlg ( Window
const String& rTitle,
const String& rEditTitle,
const String& rDefault,
- ULONG nHelpId ,
+ const rtl::OString& sHelpId, const rtl::OString& sEditHelpId,
int nId )
{
ScStringInputDlg * pDlg=NULL;
switch ( nId )
{
case RID_SCDLG_STRINPUT :
- pDlg = new ScStringInputDlg( pParent, rTitle, rEditTitle,rDefault, nHelpId );
+ pDlg = new ScStringInputDlg( pParent, rTitle, rEditTitle, rDefault, sHelpId, sEditHelpId );
break;
default:
break;
@@ -1309,14 +1309,14 @@ AbstractScTabBgColorDlg * ScAbstractDialogFactory_Impl::CreateScTabBgColorDlg (
const String& rTitle,
const String& rTabBgColorNoColorText,
const Color& rDefaultColor,
- ULONG nHelpId ,
+ const rtl::OString& sHelpId ,
int nId )
{
ScTabBgColorDlg * pDlg=NULL;
switch ( nId )
{
case RID_SCDLG_TAB_BG_COLOR :
- pDlg = new ScTabBgColorDlg( pParent, rTitle, rTabBgColorNoColorText, rDefaultColor, nHelpId );
+ pDlg = new ScTabBgColorDlg( pParent, rTitle, rTabBgColorNoColorText, rDefaultColor, sHelpId );
break;
default:
break;
diff --git a/sc/source/ui/attrdlg/scdlgfact.hxx b/sc/source/ui/attrdlg/scdlgfact.hxx
index cd0f79dd1598..b121e82cb58d 100644
--- a/sc/source/ui/attrdlg/scdlgfact.hxx
+++ b/sc/source/ui/attrdlg/scdlgfact.hxx
@@ -326,7 +326,7 @@ class AbstractScShowTabDlg_Impl : public AbstractScShowTabDlg //add for ScShowT
DECL_ABSTDLG_BASE(AbstractScShowTabDlg_Impl,ScShowTabDlg)
virtual void Insert( const String& rString, BOOL bSelected );
virtual USHORT GetSelectEntryCount() const;
- virtual void SetDescription(const String& rTitle, const String& rFixedText,ULONG nDlgHelpId, ULONG nLbHelpId );
+ virtual void SetDescription(const String& rTitle, const String& rFixedText, const rtl::OString& sDlgHelpId, const rtl::OString& sLbHelpId );
virtual String GetSelectEntry(USHORT nPos) const;
virtual USHORT GetSelectEntryPos(USHORT nPos) const;
};
@@ -524,14 +524,14 @@ public:
const String& rTitle,
const String& rEditTitle,
const String& rDefault,
- ULONG nHelpId ,
+ const rtl::OString& sHelpId, const rtl::OString& sEditHelpId,
int nId );
virtual AbstractScTabBgColorDlg * CreateScTabBgColorDlg ( Window* pParent, //add for ScStringInputDlg
const String& rTitle, //Dialog Title
const String& rTabBgColorNoColorText, //Label for no tab color
const Color& rDefaultColor, //Currently selected Color
- ULONG nHelpId ,
+ const rtl::OString& sHelpId ,
int nId );
virtual AbstractScImportOptionsDlg * CreateScImportOptionsDlg ( Window* pParent, //add for ScImportOptionsDlg
diff --git a/sc/source/ui/cctrl/dpcontrol.cxx b/sc/source/ui/cctrl/dpcontrol.cxx
index 52aae575b7d7..b90a51ed6bee 100644
--- a/sc/source/ui/cctrl/dpcontrol.cxx
+++ b/sc/source/ui/cctrl/dpcontrol.cxx
@@ -33,12 +33,16 @@
#include "dpcontrol.hxx"
#include "dpcontrol.hrc"
-#include "vcl/outdev.hxx"
-#include "vcl/settings.hxx"
-#include "vcl/wintypes.hxx"
-#include "vcl/decoview.hxx"
+#include <vcl/outdev.hxx>
+#include <vcl/settings.hxx>
+#include <vcl/wintypes.hxx>
+#include <vcl/decoview.hxx>
#include "strload.hxx"
#include "global.hxx"
+#include "scitems.hxx"
+#include "document.hxx"
+#include "docpool.hxx"
+#include "patattr.hxx"
#include "AccessibleFilterMenu.hxx"
#include "AccessibleFilterTopWindow.hxx"
@@ -55,13 +59,15 @@ using ::std::vector;
using ::std::hash_map;
using ::std::auto_ptr;
-ScDPFieldButton::ScDPFieldButton(OutputDevice* pOutDev, const StyleSettings* pStyle, const Fraction* pZoomX, const Fraction* pZoomY) :
+ScDPFieldButton::ScDPFieldButton(OutputDevice* pOutDev, const StyleSettings* pStyle, const Fraction* pZoomX, const Fraction* pZoomY, ScDocument* pDoc) :
+ mpDoc(pDoc),
mpOutDev(pOutDev),
mpStyle(pStyle),
mbBaseButton(true),
mbPopupButton(false),
mbHasHiddenMember(false),
- mbPopupPressed(false)
+ mbPopupPressed(false),
+ mbPopupLeft(false)
{
if (pZoomX)
maZoomX = *pZoomX;
@@ -83,10 +89,15 @@ void ScDPFieldButton::setText(const OUString& rText)
maText = rText;
}
-void ScDPFieldButton::setBoundingBox(const Point& rPos, const Size& rSize)
+void ScDPFieldButton::setBoundingBox(const Point& rPos, const Size& rSize, bool bLayoutRTL)
{
maPos = rPos;
maSize = rSize;
+ if (bLayoutRTL)
+ {
+ // rPos is the logical-left position, adjust maPos to visual-left (inside the cell border)
+ maPos.X() -= maSize.Width() - 1;
+ }
}
void ScDPFieldButton::setDrawBaseButton(bool b)
@@ -109,6 +120,11 @@ void ScDPFieldButton::setPopupPressed(bool b)
mbPopupPressed = b;
}
+void ScDPFieldButton::setPopupLeft(bool b)
+{
+ mbPopupLeft = b;
+}
+
void ScDPFieldButton::draw()
{
const long nMargin = 2;
@@ -135,17 +151,28 @@ void ScDPFieldButton::draw()
Point(maPos.X()+maSize.Width()-1, maPos.Y()+maSize.Height()-1));
// Field name.
- Font aTextFont( mpStyle->GetLabelFont() );
- double fFontHeight = 12.0;
- fFontHeight *= static_cast<double>(maZoomY.GetNumerator()) / static_cast<double>(maZoomY.GetDenominator());
- aTextFont.SetHeight(static_cast<long>(fFontHeight));
+ // Get the font and size the same way as in scenario selection (lcl_DrawOneFrame in gridwin4.cxx)
+ Font aTextFont( mpStyle->GetAppFont() );
+ if ( mpDoc )
+ {
+ // use ScPatternAttr::GetFont only for font size
+ Font aAttrFont;
+ static_cast<const ScPatternAttr&>(mpDoc->GetPool()->GetDefaultItem(ATTR_PATTERN)).
+ GetFont( aAttrFont, SC_AUTOCOL_BLACK, mpOutDev, &maZoomY );
+ aTextFont.SetSize( aAttrFont.GetSize() );
+ }
mpOutDev->SetFont(aTextFont);
+ mpOutDev->SetTextColor(mpStyle->GetButtonTextColor());
Point aTextPos = maPos;
- long nTHeight = static_cast<long>(fFontHeight);
+ long nTHeight = mpOutDev->GetTextHeight();
aTextPos.setX(maPos.getX() + nMargin);
aTextPos.setY(maPos.getY() + (maSize.Height()-nTHeight)/2);
+
+ mpOutDev->Push(PUSH_CLIPREGION);
+ mpOutDev->IntersectClipRegion(aRect);
mpOutDev->DrawText(aTextPos, maText);
+ mpOutDev->Pop();
}
if (mbPopupButton)
@@ -163,7 +190,12 @@ void ScDPFieldButton::getPopupBoundingBox(Point& rPos, Size& rSize) const
if (nH > 18)
nH = 18;
- rPos.setX(maPos.getX() + maSize.getWidth() - nW);
+ // #i114944# AutoFilter button is left-aligned in RTL.
+ // DataPilot button is always right-aligned for now, so text output isn't affected.
+ if (mbPopupLeft)
+ rPos.setX(maPos.getX());
+ else
+ rPos.setX(maPos.getX() + maSize.getWidth() - nW);
rPos.setY(maPos.getY() + maSize.getHeight() - nH);
rSize.setWidth(nW);
rSize.setHeight(nH);
@@ -392,7 +424,7 @@ void ScMenuFloatingWindow::Paint(const Rectangle& /*rRect*/)
{
SetClipRegion();
bNativeDrawn = DrawNativeControl(
- CTRL_MENU_POPUP, PART_ENTIRE_CONTROL, Region(aCtrlRect), CTRL_STATE_ENABLED,
+ CTRL_MENU_POPUP, PART_ENTIRE_CONTROL, aCtrlRect, CTRL_STATE_ENABLED,
ImplControlValue(), OUString());
}
else
@@ -755,7 +787,7 @@ void ScMenuFloatingWindow::highlightMenuItem(size_t nPos, bool bSelected)
Point aPos;
Size aSize;
getMenuItemPosSize(nPos, aPos, aSize);
- Region aRegion(Rectangle(aPos,aSize));
+ Rectangle aRegion(aPos,aSize);
if (IsNativeControlSupported(CTRL_MENU_POPUP, PART_ENTIRE_CONTROL))
{
@@ -763,7 +795,7 @@ void ScMenuFloatingWindow::highlightMenuItem(size_t nPos, bool bSelected)
IntersectClipRegion(Rectangle(aPos, aSize));
Rectangle aCtrlRect(Point(0,0), GetOutputSizePixel());
DrawNativeControl(
- CTRL_MENU_POPUP, PART_ENTIRE_CONTROL, Region(aCtrlRect), CTRL_STATE_ENABLED,
+ CTRL_MENU_POPUP, PART_ENTIRE_CONTROL, aCtrlRect, CTRL_STATE_ENABLED,
ImplControlValue(), OUString());
Pop();
@@ -959,7 +991,7 @@ ScDPFieldPopupWindow::ScDPFieldPopupWindow(Window* pParent, ScDocument* pDoc) :
mnCurTabStop(0),
mpExtendedData(NULL),
mpOKAction(NULL),
- maWndSize(160, 330),
+ maWndSize(240, 330),
mePrevToggleAllState(STATE_DONTKNOW)
{
maTabStopCtrls.reserve(7);
@@ -1032,7 +1064,7 @@ void ScDPFieldPopupWindow::getSectionPosSize(Point& rPos, Size& rSize, SectionTy
const sal_uInt16 nMenuHeight = 60;
const sal_uInt16 nSingleItemBtnAreaHeight = 32; // height of the middle area below the list box where the single-action buttons are.
const sal_uInt16 nBottomBtnAreaHeight = 50; // height of the bottom area where the OK and Cancel buttons are.
- const sal_uInt16 nBtnWidth = 60;
+ const sal_uInt16 nBtnWidth = 90;
const sal_uInt16 nLabelHeight = static_cast< sal_uInt16 >( getLabelFont().GetHeight() );
const sal_uInt16 nBtnHeight = nLabelHeight*2;
const sal_uInt16 nBottomMargin = 10;
@@ -1089,7 +1121,7 @@ void ScDPFieldPopupWindow::getSectionPosSize(Point& rPos, Size& rSize, SectionTy
{
long h = 26;
rPos = Point(nListBoxMargin, nSingleBtnAreaY);
- rPos.X() += 75;
+ rPos.X() += 150;
rPos.Y() += (nSingleItemBtnAreaHeight - h)/2;
rSize = Size(h, h);
}
@@ -1098,7 +1130,7 @@ void ScDPFieldPopupWindow::getSectionPosSize(Point& rPos, Size& rSize, SectionTy
{
long h = 26;
rPos = Point(nListBoxMargin, nSingleBtnAreaY);
- rPos.X() += 75 + h + 10;
+ rPos.X() += 150 + h + 10;
rPos.Y() += (nSingleItemBtnAreaHeight - h)/2;
rSize = Size(h, h);
}
diff --git a/sc/source/ui/dbgui/asciiopt.src b/sc/source/ui/dbgui/asciiopt.src
index 9efbfe0f557f..5ddaba95d4df 100644
--- a/sc/source/ui/dbgui/asciiopt.src
+++ b/sc/source/ui/dbgui/asciiopt.src
@@ -29,6 +29,7 @@
ModalDialog RID_SCDLG_ASCII
{
+ HelpID = "sc:ModalDialog:RID_SCDLG_ASCII";
OutputSize = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 320 , 305 ) ;
@@ -71,6 +72,7 @@ ModalDialog RID_SCDLG_ASCII
ListBox LB_CHARSET
{
+ HelpID = "sc:ListBox:RID_SCDLG_ASCII:LB_CHARSET";
Pos = MAP_APPFONT ( 76 , 14 ) ;
Size = MAP_APPFONT ( 130 , 61 ) ;
TabStop = TRUE ;
@@ -87,6 +89,7 @@ ModalDialog RID_SCDLG_ASCII
ListBox LB_CUSTOMLANG
{
+ HelpID = "sc:ListBox:RID_SCDLG_ASCII:LB_CUSTOMLANG";
Pos = MAP_APPFONT ( 76 , 30 ) ;
Size = MAP_APPFONT ( 130 , 61 ) ;
TabStop = TRUE ;
@@ -103,6 +106,7 @@ ModalDialog RID_SCDLG_ASCII
NumericField NF_AT_ROW
{
+ HelpID = "sc:NumericField:RID_SCDLG_ASCII:NF_AT_ROW";
Border = TRUE ;
SVLook = TRUE ;
Pos = MAP_APPFONT ( 76 , 46 ) ;
@@ -121,6 +125,7 @@ ModalDialog RID_SCDLG_ASCII
};
RadioButton RB_FIXED
{
+ HelpID = "sc:RadioButton:RID_SCDLG_ASCII:RB_FIXED";
Pos = MAP_APPFONT ( 12 , 75 ) ;
Size = MAP_APPFONT ( 243 , 10 ) ;
Text [ en-US ] = "~Fixed width" ;
@@ -128,6 +133,7 @@ ModalDialog RID_SCDLG_ASCII
};
RadioButton RB_SEPARATED
{
+ HelpID = "sc:RadioButton:RID_SCDLG_ASCII:RB_SEPARATED";
Pos = MAP_APPFONT ( 12 , 89 ) ;
Size = MAP_APPFONT ( 243 , 10 ) ;
Text [ en-US ] = "~Separated by" ;
@@ -137,6 +143,7 @@ ModalDialog RID_SCDLG_ASCII
CheckBox CKB_TAB
{
+ HelpID = "sc:CheckBox:RID_SCDLG_ASCII:CKB_TAB";
Pos = MAP_APPFONT ( 20 , 102 ) ;
Size = MAP_APPFONT ( 68 , 10 ) ;
TabStop = TRUE ;
@@ -144,6 +151,7 @@ ModalDialog RID_SCDLG_ASCII
};
CheckBox CKB_COMMA
{
+ HelpID = "sc:CheckBox:RID_SCDLG_ASCII:CKB_COMMA";
Pos = MAP_APPFONT ( 92 , 102 ) ;
Size = MAP_APPFONT ( 68 , 10 ) ;
TabStop = TRUE ;
@@ -151,6 +159,7 @@ ModalDialog RID_SCDLG_ASCII
};
CheckBox CKB_OTHER
{
+ HelpID = "sc:CheckBox:RID_SCDLG_ASCII:CKB_OTHER";
Pos = MAP_APPFONT ( 164 , 102 ) ;
Size = MAP_APPFONT ( 50 , 10 ) ;
TabStop = TRUE ;
@@ -158,6 +167,7 @@ ModalDialog RID_SCDLG_ASCII
};
Edit ED_OTHER
{
+ HelpID = "sc:Edit:RID_SCDLG_ASCII:ED_OTHER";
Border = TRUE ;
Pos = MAP_APPFONT ( 218 , 100 ) ;
Size = MAP_APPFONT ( 37 , 12 ) ;
@@ -167,6 +177,7 @@ ModalDialog RID_SCDLG_ASCII
CheckBox CKB_SEMICOLON
{
+ HelpID = "sc:CheckBox:RID_SCDLG_ASCII:CKB_SEMICOLON";
Pos = MAP_APPFONT ( 20 , 115 ) ;
Size = MAP_APPFONT ( 68 , 10 ) ;
TabStop = TRUE ;
@@ -174,6 +185,7 @@ ModalDialog RID_SCDLG_ASCII
};
CheckBox CKB_SPACE
{
+ HelpID = "sc:CheckBox:RID_SCDLG_ASCII:CKB_SPACE";
Pos = MAP_APPFONT ( 92 , 115 ) ;
Size = MAP_APPFONT ( 68 , 10 ) ;
TabStop = TRUE ;
@@ -182,6 +194,7 @@ ModalDialog RID_SCDLG_ASCII
CheckBox CB_ASONCE
{
+ HelpID = "sc:CheckBox:RID_SCDLG_ASCII:CB_ASONCE";
Pos = MAP_APPFONT ( 20 , 130 ) ;
Size = MAP_APPFONT ( 130 , 10 ) ;
TabStop = TRUE ;
@@ -190,6 +203,7 @@ ModalDialog RID_SCDLG_ASCII
ComboBox CB_TEXTSEP
{
+ HelpID = "sc:ComboBox:RID_SCDLG_ASCII:CB_TEXTSEP";
Pos = MAP_APPFONT ( 218 , 128 ) ;
Size = MAP_APPFONT ( 37 , 94 ) ;
TabStop = TRUE ;
@@ -211,6 +225,7 @@ ModalDialog RID_SCDLG_ASCII
CheckBox CB_QUOTED_AS_TEXT
{
+ HelpID = "sc:CheckBox:RID_SCDLG_ASCII:CB_QUOTED_AS_TEXT";
Pos = MAP_APPFONT ( 12 , 158 ) ;
Size = MAP_APPFONT ( 130 , 10 ) ;
TabStop = TRUE ;
@@ -219,6 +234,7 @@ ModalDialog RID_SCDLG_ASCII
CheckBox CB_DETECT_SPECIAL_NUMBER
{
+ HelpID = "sc:CheckBox:RID_SCDLG_ASCII:CB_DETECT_SPECIAL_NUMBER";
Pos = MAP_APPFONT ( 12 , 171 ) ;
Size = MAP_APPFONT ( 130 , 10 ) ;
TabStop = TRUE ;
@@ -239,6 +255,7 @@ ModalDialog RID_SCDLG_ASCII
};
ListBox LB_TYPE1
{
+ HelpID = "sc:ListBox:RID_SCDLG_ASCII:LB_TYPE1";
Pos = MAP_APPFONT ( 76 , 198 ) ;
Size = MAP_APPFONT ( 60 , 68 ) ;
TabStop = TRUE ;
diff --git a/sc/source/ui/dbgui/consdlg.src b/sc/source/ui/dbgui/consdlg.src
index 5226c22629c6..4dad5dcb3cee 100644
--- a/sc/source/ui/dbgui/consdlg.src
+++ b/sc/source/ui/dbgui/consdlg.src
@@ -28,7 +28,7 @@
ModelessDialog RID_SCDLG_CONSOLIDATE
{
OutputSize = TRUE ;
- HelpId = SID_OPENDLG_CONSOLIDATE ;
+ HelpId = CMD_SID_OPENDLG_CONSOLIDATE ;
Hide = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 280 , 154 ) ;
@@ -37,6 +37,7 @@ ModelessDialog RID_SCDLG_CONSOLIDATE
Closeable = FALSE ;
ListBox LB_FUNC
{
+ HelpID = "sc:ListBox:RID_SCDLG_CONSOLIDATE:LB_FUNC";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 17 ) ;
Size = MAP_APPFONT ( 212 , 90 ) ;
@@ -59,6 +60,7 @@ ModelessDialog RID_SCDLG_CONSOLIDATE
};
Edit ED_DATA_AREA
{
+ HelpID = "sc:Edit:RID_SCDLG_CONSOLIDATE:ED_DATA_AREA";
Border = TRUE ;
Pos = MAP_APPFONT ( 100 , 106 ) ;
Size = MAP_APPFONT ( 104 , 12 ) ;
@@ -66,6 +68,7 @@ ModelessDialog RID_SCDLG_CONSOLIDATE
};
Edit ED_DEST_AREA
{
+ HelpID = "sc:Edit:RID_SCDLG_CONSOLIDATE:ED_DEST_AREA";
Border = TRUE ;
Pos = MAP_APPFONT ( 100 , 135 ) ;
Size = MAP_APPFONT ( 104 , 12 ) ;
@@ -73,6 +76,7 @@ ModelessDialog RID_SCDLG_CONSOLIDATE
};
ImageButton RB_DATA_AREA
{
+ HelpID = "sc:ImageButton:RID_SCDLG_CONSOLIDATE:RB_DATA_AREA";
Pos = MAP_APPFONT ( 206 , 105 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = TRUE ;
@@ -80,6 +84,7 @@ ModelessDialog RID_SCDLG_CONSOLIDATE
};
ImageButton RB_DEST_AREA
{
+ HelpID = "sc:ImageButton:RID_SCDLG_CONSOLIDATE:RB_DEST_AREA";
Pos = MAP_APPFONT ( 206 , 134 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = TRUE ;
@@ -87,6 +92,7 @@ ModelessDialog RID_SCDLG_CONSOLIDATE
};
ListBox LB_DATA_AREA
{
+ HelpID = "sc:ListBox:RID_SCDLG_CONSOLIDATE:LB_DATA_AREA";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 106 ) ;
Size = MAP_APPFONT ( 90 , 90 ) ;
@@ -95,6 +101,7 @@ ModelessDialog RID_SCDLG_CONSOLIDATE
};
ListBox LB_DEST_AREA
{
+ HelpID = "sc:ListBox:RID_SCDLG_CONSOLIDATE:LB_DEST_AREA";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 135 ) ;
Size = MAP_APPFONT ( 90 , 90 ) ;
@@ -103,6 +110,7 @@ ModelessDialog RID_SCDLG_CONSOLIDATE
};
MultiListBox LB_CONSAREAS
{
+ HelpID = "sc:MultiListBox:RID_SCDLG_CONSOLIDATE:LB_CONSAREAS";
SimpleMode = TRUE ;
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 46 ) ;
@@ -135,6 +143,7 @@ ModelessDialog RID_SCDLG_CONSOLIDATE
};
CheckBox BTN_BYROW
{
+ HelpID = "sc:CheckBox:RID_SCDLG_CONSOLIDATE:BTN_BYROW";
Pos = MAP_APPFONT ( 12 , 165 ) ;
Size = MAP_APPFONT ( 94 , 10 ) ;
Text [ en-US ] = "~Row labels" ;
@@ -142,6 +151,7 @@ ModelessDialog RID_SCDLG_CONSOLIDATE
};
CheckBox BTN_BYCOL
{
+ HelpID = "sc:CheckBox:RID_SCDLG_CONSOLIDATE:BTN_BYCOL";
Pos = MAP_APPFONT ( 12 , 179 ) ;
Size = MAP_APPFONT ( 94 , 10 ) ;
TabStop = TRUE ;
@@ -167,6 +177,7 @@ ModelessDialog RID_SCDLG_CONSOLIDATE
};
CheckBox BTN_REFS
{
+ HelpID = "sc:CheckBox:RID_SCDLG_CONSOLIDATE:BTN_REFS";
Pos = MAP_APPFONT ( 121 , 165 ) ;
Size = MAP_APPFONT ( 94 , 10 ) ;
Text [ en-US ] = "~Link to source data" ;
@@ -193,6 +204,7 @@ ModelessDialog RID_SCDLG_CONSOLIDATE
};
MoreButton BTN_MORE
{
+ HelpID = "sc:MoreButton:RID_SCDLG_CONSOLIDATE:BTN_MORE";
Pos = MAP_APPFONT ( 224 , 134 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
@@ -201,6 +213,7 @@ ModelessDialog RID_SCDLG_CONSOLIDATE
};
PushButton BTN_REMOVE
{
+ HelpID = "sc:PushButton:RID_SCDLG_CONSOLIDATE:BTN_REMOVE";
Pos = MAP_APPFONT ( 224 , 114 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
Text [ en-US ] = "~Delete" ;
@@ -208,6 +221,7 @@ ModelessDialog RID_SCDLG_CONSOLIDATE
};
PushButton BTN_ADD
{
+ HelpID = "sc:PushButton:RID_SCDLG_CONSOLIDATE:BTN_ADD";
Pos = MAP_APPFONT ( 224 , 96 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
Text [ en-US ] = "~Add" ;
diff --git a/sc/source/ui/dbgui/dapitype.src b/sc/source/ui/dbgui/dapitype.src
index 5cf1dacad819..84b1c1c6068f 100644
--- a/sc/source/ui/dbgui/dapitype.src
+++ b/sc/source/ui/dbgui/dapitype.src
@@ -58,6 +58,7 @@ ModalDialog RID_SCDLG_DAPITYPE
};
RadioButton BTN_SELECTION
{
+ HelpID = "sc:RadioButton:RID_SCDLG_DAPITYPE:BTN_SELECTION";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 164 , 10 ) ;
TabStop = TRUE ;
@@ -65,6 +66,7 @@ ModalDialog RID_SCDLG_DAPITYPE
};
RadioButton BTN_DATABASE
{
+ HelpID = "sc:RadioButton:RID_SCDLG_DAPITYPE:BTN_DATABASE";
Pos = MAP_APPFONT ( 12 , 28 ) ;
Size = MAP_APPFONT ( 164 , 10 ) ;
TabStop = TRUE ;
@@ -72,6 +74,7 @@ ModalDialog RID_SCDLG_DAPITYPE
};
RadioButton BTN_EXTERNAL
{
+ HelpID = "sc:RadioButton:RID_SCDLG_DAPITYPE:BTN_EXTERNAL";
Pos = MAP_APPFONT ( 12 , 42 ) ;
Size = MAP_APPFONT ( 164 , 10 ) ;
TabStop = TRUE ;
@@ -125,6 +128,7 @@ ModalDialog RID_SCDLG_DAPISERVICE
};
ListBox LB_SERVICE
{
+ HelpID = "sc:ListBox:RID_SCDLG_DAPISERVICE:LB_SERVICE";
Border = TRUE ;
Pos = MAP_APPFONT ( 56 , 12 ) ;
Size = MAP_APPFONT ( 120 , 80 ) ;
@@ -139,6 +143,7 @@ ModalDialog RID_SCDLG_DAPISERVICE
};
Edit ED_SOURCE
{
+ HelpID = "sc:Edit:RID_SCDLG_DAPISERVICE:ED_SOURCE";
Border = TRUE ;
Pos = MAP_APPFONT ( 56 , 28 ) ;
Size = MAP_APPFONT ( 120 , 12 ) ;
@@ -152,6 +157,7 @@ ModalDialog RID_SCDLG_DAPISERVICE
};
Edit ED_NAME
{
+ HelpID = "sc:Edit:RID_SCDLG_DAPISERVICE:ED_NAME";
Border = TRUE ;
Pos = MAP_APPFONT ( 56 , 44 ) ;
Size = MAP_APPFONT ( 120 , 12 ) ;
@@ -165,6 +171,7 @@ ModalDialog RID_SCDLG_DAPISERVICE
};
Edit ED_USER
{
+ HelpID = "sc:Edit:RID_SCDLG_DAPISERVICE:ED_USER";
Border = TRUE ;
Pos = MAP_APPFONT ( 56 , 60 ) ;
Size = MAP_APPFONT ( 120 , 12 ) ;
@@ -178,6 +185,7 @@ ModalDialog RID_SCDLG_DAPISERVICE
};
Edit ED_PASSWD
{
+ HelpID = "sc:Edit:RID_SCDLG_DAPISERVICE:ED_PASSWD";
Border = TRUE ;
Pos = MAP_APPFONT ( 56 , 76 ) ;
Size = MAP_APPFONT ( 120 , 12 ) ;
@@ -233,6 +241,7 @@ ModalDialog RID_SCDLG_DAPIDATA
};
ListBox LB_DATABASE
{
+ HelpID = "sc:ListBox:RID_SCDLG_DAPIDATA:LB_DATABASE";
Border = TRUE ;
Pos = MAP_APPFONT ( 66 , 12 ) ;
Size = MAP_APPFONT ( 110 , 80 ) ;
@@ -248,6 +257,7 @@ ModalDialog RID_SCDLG_DAPIDATA
};
ComboBox CB_OBJECT
{
+ HelpID = "sc:ComboBox:RID_SCDLG_DAPIDATA:CB_OBJECT";
Border = TRUE ;
Pos = MAP_APPFONT ( 66 , 28 ) ;
Size = MAP_APPFONT ( 110 , 80 ) ;
@@ -263,6 +273,7 @@ ModalDialog RID_SCDLG_DAPIDATA
};
ListBox LB_OBJTYPE
{
+ HelpID = "sc:ListBox:RID_SCDLG_DAPIDATA:LB_OBJTYPE";
Border = TRUE ;
Pos = MAP_APPFONT ( 66 , 44 ) ;
Size = MAP_APPFONT ( 110 , 80 ) ;
diff --git a/sc/source/ui/dbgui/dpgroupdlg.src b/sc/source/ui/dbgui/dpgroupdlg.src
index f9a5ac589af5..84a27faf867c 100644
--- a/sc/source/ui/dbgui/dpgroupdlg.src
+++ b/sc/source/ui/dbgui/dpgroupdlg.src
@@ -46,6 +46,7 @@ ModalDialog RID_SCDLG_DPNUMGROUP
};
RadioButton RB_AUTOSTART
{
+ HelpID = "sc:RadioButton:RID_SCDLG_DPNUMGROUP:RB_AUTOSTART";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 80 , 10 ) ;
TabStop = TRUE ;
@@ -53,6 +54,7 @@ ModalDialog RID_SCDLG_DPNUMGROUP
};
RadioButton RB_MANSTART
{
+ HelpID = "sc:RadioButton:RID_SCDLG_DPNUMGROUP:RB_MANSTART";
Pos = MAP_APPFONT ( 12 , 28 ) ;
Size = MAP_APPFONT ( 80 , 10 ) ;
TabStop = TRUE ;
@@ -60,6 +62,7 @@ ModalDialog RID_SCDLG_DPNUMGROUP
};
Edit ED_START
{
+ HelpID = "sc:Edit:RID_SCDLG_DPNUMGROUP:ED_START";
Pos = MAP_APPFONT ( 94 , 26 ) ;
Size = MAP_APPFONT ( 58 , 12 ) ;
TabStop = TRUE ;
@@ -73,6 +76,7 @@ ModalDialog RID_SCDLG_DPNUMGROUP
};
RadioButton RB_AUTOEND
{
+ HelpID = "sc:RadioButton:RID_SCDLG_DPNUMGROUP:RB_AUTOEND";
Pos = MAP_APPFONT ( 12 , 53 ) ;
Size = MAP_APPFONT ( 80 , 10 ) ;
TabStop = TRUE ;
@@ -80,6 +84,7 @@ ModalDialog RID_SCDLG_DPNUMGROUP
};
RadioButton RB_MANEND
{
+ HelpID = "sc:RadioButton:RID_SCDLG_DPNUMGROUP:RB_MANEND";
Pos = MAP_APPFONT ( 12 , 67 ) ;
Size = MAP_APPFONT ( 80 , 10 ) ;
TabStop = TRUE ;
@@ -87,6 +92,7 @@ ModalDialog RID_SCDLG_DPNUMGROUP
};
Edit ED_END
{
+ HelpID = "sc:Edit:RID_SCDLG_DPNUMGROUP:ED_END";
Pos = MAP_APPFONT ( 94 , 65 ) ;
Size = MAP_APPFONT ( 58 , 12 ) ;
TabStop = TRUE ;
@@ -100,6 +106,7 @@ ModalDialog RID_SCDLG_DPNUMGROUP
};
Edit ED_BY
{
+ HelpID = "sc:Edit:RID_SCDLG_DPNUMGROUP:ED_BY";
Pos = MAP_APPFONT ( 94 , 92 ) ;
Size = MAP_APPFONT ( 58 , 12 ) ;
TabStop = TRUE ;
@@ -146,6 +153,7 @@ ModalDialog RID_SCDLG_DPDATEGROUP
};
RadioButton RB_AUTOSTART
{
+ HelpID = "sc:RadioButton:RID_SCDLG_DPDATEGROUP:RB_AUTOSTART";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 80 , 10 ) ;
TabStop = TRUE ;
@@ -153,6 +161,7 @@ ModalDialog RID_SCDLG_DPDATEGROUP
};
RadioButton RB_MANSTART
{
+ HelpID = "sc:RadioButton:RID_SCDLG_DPDATEGROUP:RB_MANSTART";
Pos = MAP_APPFONT ( 12 , 28 ) ;
Size = MAP_APPFONT ( 80 , 10 ) ;
TabStop = TRUE ;
@@ -160,6 +169,7 @@ ModalDialog RID_SCDLG_DPDATEGROUP
};
DateField ED_START
{
+ HelpID = "sc:DateField:RID_SCDLG_DPDATEGROUP:ED_START";
Pos = MAP_APPFONT ( 94 , 26 ) ;
Size = MAP_APPFONT ( 58 , 12 ) ;
TabStop = TRUE ;
@@ -173,6 +183,7 @@ ModalDialog RID_SCDLG_DPDATEGROUP
};
RadioButton RB_AUTOEND
{
+ HelpID = "sc:RadioButton:RID_SCDLG_DPDATEGROUP:RB_AUTOEND";
Pos = MAP_APPFONT ( 12 , 53 ) ;
Size = MAP_APPFONT ( 80 , 10 ) ;
TabStop = TRUE ;
@@ -180,6 +191,7 @@ ModalDialog RID_SCDLG_DPDATEGROUP
};
RadioButton RB_MANEND
{
+ HelpID = "sc:RadioButton:RID_SCDLG_DPDATEGROUP:RB_MANEND";
Pos = MAP_APPFONT ( 12 , 67 ) ;
Size = MAP_APPFONT ( 80 , 10 ) ;
TabStop = TRUE ;
@@ -187,6 +199,7 @@ ModalDialog RID_SCDLG_DPDATEGROUP
};
DateField ED_END
{
+ HelpID = "sc:DateField:RID_SCDLG_DPDATEGROUP:ED_END";
Pos = MAP_APPFONT ( 94 , 65 ) ;
Size = MAP_APPFONT ( 58 , 12 ) ;
TabStop = TRUE ;
@@ -200,6 +213,7 @@ ModalDialog RID_SCDLG_DPDATEGROUP
};
RadioButton RB_NUMDAYS
{
+ HelpID = "sc:RadioButton:RID_SCDLG_DPDATEGROUP:RB_NUMDAYS";
Pos = MAP_APPFONT ( 12 , 94 ) ;
Size = MAP_APPFONT ( 80 , 10 ) ;
TabStop = TRUE ;
@@ -207,6 +221,7 @@ ModalDialog RID_SCDLG_DPDATEGROUP
};
RadioButton RB_UNITS
{
+ HelpID = "sc:RadioButton:RID_SCDLG_DPDATEGROUP:RB_UNITS";
Pos = MAP_APPFONT ( 12 , 110 ) ;
Size = MAP_APPFONT ( 80 , 10 ) ;
TabStop = TRUE ;
@@ -214,6 +229,7 @@ ModalDialog RID_SCDLG_DPDATEGROUP
};
NumericField ED_NUMDAYS
{
+ HelpID = "sc:NumericField:RID_SCDLG_DPDATEGROUP:ED_NUMDAYS";
Pos = MAP_APPFONT ( 94, 92 ) ;
Size = MAP_APPFONT ( 35, 12 ) ;
TabStop = TRUE ;
diff --git a/sc/source/ui/dbgui/imoptdlg.src b/sc/source/ui/dbgui/imoptdlg.src
index 914f2d1fb027..e83f3a9c9dac 100644
--- a/sc/source/ui/dbgui/imoptdlg.src
+++ b/sc/source/ui/dbgui/imoptdlg.src
@@ -45,6 +45,7 @@ ModalDialog RID_SCDLG_IMPORTOPT
};
ComboBox ED_FIELDSEP
{
+ HelpID = "sc:ComboBox:RID_SCDLG_IMPORTOPT:ED_FIELDSEP";
Pos = MAP_APPFONT ( 70 , 30 ) ;
Size = MAP_APPFONT ( 121 , 60 ) ;
DropDown = TRUE ;
@@ -57,6 +58,7 @@ ModalDialog RID_SCDLG_IMPORTOPT
};
ComboBox ED_TEXTSEP
{
+ HelpID = "sc:ComboBox:RID_SCDLG_IMPORTOPT:ED_TEXTSEP";
Pos = MAP_APPFONT ( 70 , 46 ) ;
Size = MAP_APPFONT ( 121 , 60 ) ;
DropDown = TRUE ;
@@ -69,6 +71,7 @@ ModalDialog RID_SCDLG_IMPORTOPT
};
ListBox DDLB_FONT
{
+ HelpID = "sc:ListBox:RID_SCDLG_IMPORTOPT:DDLB_FONT";
Border = TRUE;
Sort = TRUE;
DropDown = TRUE ;
@@ -77,6 +80,7 @@ ModalDialog RID_SCDLG_IMPORTOPT
};
ListBox LB_FONT
{
+ HelpID = "sc:ListBox:RID_SCDLG_IMPORTOPT:LB_FONT";
Border = TRUE;
Sort = TRUE;
DropDown = FALSE ;
@@ -91,6 +95,7 @@ ModalDialog RID_SCDLG_IMPORTOPT
};
CheckBox CB_FIXEDWIDTH
{
+ HelpID = "sc:CheckBox:RID_SCDLG_IMPORTOPT:CB_FIXEDWIDTH";
Pos = MAP_APPFONT( 12, 80 );
Size = MAP_APPFONT( 172, 10 );
Hide = TRUE;
@@ -98,6 +103,7 @@ ModalDialog RID_SCDLG_IMPORTOPT
};
CheckBox CB_SAVESHOWN
{
+ HelpID = "sc:CheckBox:RID_SCDLG_IMPORTOPT:CB_SAVESHOWN";
Pos = MAP_APPFONT( 12, 66 );
Size = MAP_APPFONT( 172, 10 );
TabStop = TRUE;
diff --git a/sc/source/ui/dbgui/pivot.src b/sc/source/ui/dbgui/pivot.src
index 359c8a92d8e5..763f03fe82bf 100644
--- a/sc/source/ui/dbgui/pivot.src
+++ b/sc/source/ui/dbgui/pivot.src
@@ -30,7 +30,7 @@
ModelessDialog RID_SCDLG_PIVOT_LAYOUT
{
OutputSize = TRUE ;
- HelpId = SID_OPENDLG_PIVOTTABLE ;
+ HelpId = CMD_SID_OPENDLG_PIVOTTABLE ;
Size = MAP_APPFONT ( 336 , 190 ) ;
Hide = TRUE ;
SVLook = TRUE ;
@@ -137,6 +137,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
};
PushButton BTN_REMOVE
{
+ HelpID = "sc:PushButton:RID_SCDLG_PIVOT_LAYOUT:BTN_REMOVE";
Pos = MAP_APPFONT ( 280 , 63 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
@@ -144,6 +145,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
};
PushButton BTN_OPTIONS
{
+ HelpID = "sc:PushButton:RID_SCDLG_PIVOT_LAYOUT:BTN_OPTIONS";
Pos = MAP_APPFONT ( 280 , 80 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
@@ -151,6 +153,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
};
MoreButton BTN_MORE
{
+ HelpID = "sc:MoreButton:RID_SCDLG_PIVOT_LAYOUT:BTN_MORE";
Pos = MAP_APPFONT ( 280 , 170 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
@@ -185,6 +188,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
};
Edit ED_INAREA
{
+ HelpID = "sc:Edit:RID_SCDLG_PIVOT_LAYOUT:ED_INAREA";
Border = TRUE ;
Pos = MAP_APPFONT ( 73 , 201 ) ;
Size = MAP_APPFONT ( 100 , 12 ) ;
@@ -193,6 +197,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
};
ImageButton RB_INAREA
{
+ HelpID = "sc:ImageButton:RID_SCDLG_PIVOT_LAYOUT:RB_INAREA";
Pos = MAP_APPFONT ( 177 , 200 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = TRUE ;
@@ -209,6 +214,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
};
ListBox LB_OUTAREA
{
+ HelpID = "sc:ListBox:RID_SCDLG_PIVOT_LAYOUT:LB_OUTAREA";
Border = TRUE ;
Pos = MAP_APPFONT ( 73 , 219 ) ;
Size = MAP_APPFONT ( 75 , 90 ) ;
@@ -218,6 +224,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
};
Edit ED_OUTAREA
{
+ HelpID = "sc:Edit:RID_SCDLG_PIVOT_LAYOUT:ED_OUTAREA";
Border = TRUE ;
Pos = MAP_APPFONT ( 152 , 219 ) ;
Size = MAP_APPFONT ( 100 , 12 ) ;
@@ -226,6 +233,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
};
ImageButton RB_OUTAREA
{
+ HelpID = "sc:ImageButton:RID_SCDLG_PIVOT_LAYOUT:RB_OUTAREA";
Pos = MAP_APPFONT ( 256 , 218 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = TRUE ;
@@ -234,6 +242,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
};
CheckBox BTN_IGNEMPTYROWS
{
+ HelpID = "sc:CheckBox:RID_SCDLG_PIVOT_LAYOUT:BTN_IGNEMPTYROWS";
Pos = MAP_APPFONT ( 12 , 237 ) ;
Size = MAP_APPFONT ( 124 , 10 ) ;
TabStop = TRUE ;
@@ -242,6 +251,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
};
CheckBox BTN_DETECTCAT
{
+ HelpID = "sc:CheckBox:RID_SCDLG_PIVOT_LAYOUT:BTN_DETECTCAT";
Pos = MAP_APPFONT ( 142 , 237 ) ;
Size = MAP_APPFONT ( 124 , 10 ) ;
TabStop = TRUE ;
@@ -250,6 +260,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
};
CheckBox BTN_TOTALCOL
{
+ HelpID = "sc:CheckBox:RID_SCDLG_PIVOT_LAYOUT:BTN_TOTALCOL";
Pos = MAP_APPFONT ( 12 , 251 ) ;
Size = MAP_APPFONT ( 124 , 10 ) ;
TabStop = TRUE ;
@@ -258,6 +269,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
};
CheckBox BTN_TOTALROW
{
+ HelpID = "sc:CheckBox:RID_SCDLG_PIVOT_LAYOUT:BTN_TOTALROW";
Pos = MAP_APPFONT ( 142 , 251 ) ;
Size = MAP_APPFONT ( 124 , 10 ) ;
TabStop = TRUE ;
@@ -266,6 +278,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
};
CheckBox BTN_FILTER
{
+ HelpID = "sc:CheckBox:RID_SCDLG_PIVOT_LAYOUT:BTN_FILTER";
Pos = MAP_APPFONT ( 12 , 265 ) ;
Size = MAP_APPFONT ( 124 , 10 ) ;
TabStop = TRUE ;
@@ -274,6 +287,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
};
CheckBox BTN_DRILLDOWN
{
+ HelpID = "sc:CheckBox:RID_SCDLG_PIVOT_LAYOUT:BTN_DRILLDOWN";
Pos = MAP_APPFONT ( 142 , 265 ) ;
Size = MAP_APPFONT ( 124 , 10 ) ;
TabStop = TRUE ;
diff --git a/sc/source/ui/dbgui/pvfundlg.cxx b/sc/source/ui/dbgui/pvfundlg.cxx
index 6b04993ba0bc..b5a19ef0ec9b 100644
--- a/sc/source/ui/dbgui/pvfundlg.cxx
+++ b/sc/source/ui/dbgui/pvfundlg.cxx
@@ -735,8 +735,9 @@ ScDPShowDetailDlg::ScDPShowDetailDlg( Window* pParent, ScDPObject& rDPObj, USHOR
for (long nDim=0; nDim<nDimCount; nDim++)
{
BOOL bIsDataLayout;
- String aName = rDPObj.GetDimName( nDim, bIsDataLayout );
- if ( !bIsDataLayout && !rDPObj.IsDuplicated( nDim ) )
+ sal_Int32 nDimFlags = 0;
+ String aName = rDPObj.GetDimName( nDim, bIsDataLayout, &nDimFlags );
+ if ( !bIsDataLayout && !rDPObj.IsDuplicated( nDim ) && ScDPObject::IsOrientationAllowed( nOrient, nDimFlags ) )
{
const ScDPSaveDimension* pDimension = pSaveData ? pSaveData->GetExistingDimensionByName(aName) : 0;
if ( !pDimension || (pDimension->GetOrientation() != nOrient) )
diff --git a/sc/source/ui/dbgui/pvfundlg.src b/sc/source/ui/dbgui/pvfundlg.src
index ed00f6a65fa5..d5203f2a89ac 100644
--- a/sc/source/ui/dbgui/pvfundlg.src
+++ b/sc/source/ui/dbgui/pvfundlg.src
@@ -64,6 +64,7 @@ ModalDialog RID_SCDLG_DPDATAFIELD
};
MultiListBox LB_FUNC
{
+ HelpID = "sc:MultiListBox:RID_SCDLG_DPDATAFIELD:LB_FUNC";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 140 , 65 ) ;
@@ -96,6 +97,7 @@ ModalDialog RID_SCDLG_DPDATAFIELD
};
ListBox LB_TYPE
{
+ HelpID = "sc:ListBox:RID_SCDLG_DPDATAFIELD:LB_TYPE";
Pos = MAP_APPFONT( 75, 110 );
Size = MAP_APPFONT( 77, 120 );
TabStop = TRUE;
@@ -122,6 +124,7 @@ ModalDialog RID_SCDLG_DPDATAFIELD
};
ListBox LB_BASEFIELD
{
+ HelpID = "sc:ListBox:RID_SCDLG_DPDATAFIELD:LB_BASEFIELD";
Pos = MAP_APPFONT( 75, 126 );
Size = MAP_APPFONT( 77, 120 );
TabStop = TRUE;
@@ -136,6 +139,7 @@ ModalDialog RID_SCDLG_DPDATAFIELD
};
ListBox LB_BASEITEM
{
+ HelpID = "sc:ListBox:RID_SCDLG_DPDATAFIELD:LB_BASEITEM";
Pos = MAP_APPFONT( 75, 142 );
Size = MAP_APPFONT( 77, 120 );
TabStop = TRUE;
@@ -168,6 +172,7 @@ ModalDialog RID_SCDLG_DPDATAFIELD
};
MoreButton BTN_MORE
{
+ HelpID = "sc:MoreButton:RID_SCDLG_DPDATAFIELD:BTN_MORE";
Pos = MAP_APPFONT ( 164 , 79 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
@@ -191,6 +196,7 @@ ModalDialog RID_SCDLG_PIVOTSUBT
Hide = TRUE ;
RadioButton RB_NONE
{
+ HelpID = "sc:RadioButton:RID_SCDLG_PIVOTSUBT:RB_NONE";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 140 , 10 ) ;
Text [ en-US ] = "~None" ;
@@ -198,6 +204,7 @@ ModalDialog RID_SCDLG_PIVOTSUBT
};
RadioButton RB_AUTO
{
+ HelpID = "sc:RadioButton:RID_SCDLG_PIVOTSUBT:RB_AUTO";
Pos = MAP_APPFONT ( 12 , 28 ) ;
Size = MAP_APPFONT ( 140 , 10 ) ;
Text [ en-US ] = "~Automatic" ;
@@ -205,6 +212,7 @@ ModalDialog RID_SCDLG_PIVOTSUBT
};
RadioButton RB_USER
{
+ HelpID = "sc:RadioButton:RID_SCDLG_PIVOTSUBT:RB_USER";
Pos = MAP_APPFONT ( 12 , 42 ) ;
Size = MAP_APPFONT ( 140 , 10 ) ;
Text [ en-US ] = "~User-defined" ;
@@ -212,6 +220,7 @@ ModalDialog RID_SCDLG_PIVOTSUBT
};
MultiListBox LB_FUNC
{
+ HelpID = "sc:MultiListBox:RID_SCDLG_PIVOTSUBT:LB_FUNC";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 56 ) ;
Size = MAP_APPFONT ( 140 , 65 ) ;
@@ -227,6 +236,7 @@ ModalDialog RID_SCDLG_PIVOTSUBT
};
CheckBox CB_SHOWALL
{
+ HelpID = "sc:CheckBox:RID_SCDLG_PIVOTSUBT:CB_SHOWALL";
Pos = MAP_APPFONT ( 6 , 127 ) ;
Size = MAP_APPFONT ( 152 , 10 ) ;
Text [ en-US ] = "Show it~ems without data";
@@ -264,6 +274,7 @@ ModalDialog RID_SCDLG_PIVOTSUBT
};
PushButton BTN_OPTIONS
{
+ HelpID = "sc:PushButton:RID_SCDLG_PIVOTSUBT:BTN_OPTIONS";
Pos = MAP_APPFONT ( 164 , 135 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
@@ -290,6 +301,7 @@ ModalDialog RID_SCDLG_DPSUBTOTAL_OPT
};
ListBox LB_SORT_BY
{
+ HelpID = "sc:ListBox:RID_SCDLG_DPSUBTOTAL_OPT:LB_SORT_BY";
Pos = MAP_APPFONT( 12, 26 );
Size = MAP_APPFONT( 96, 120 );
TabStop = TRUE;
@@ -298,6 +310,7 @@ ModalDialog RID_SCDLG_DPSUBTOTAL_OPT
};
RadioButton RB_SORT_ASC
{
+ HelpID = "sc:RadioButton:RID_SCDLG_DPSUBTOTAL_OPT:RB_SORT_ASC";
Pos = MAP_APPFONT( 114, 14 );
Size = MAP_APPFONT( 84, 10 );
TabStop = TRUE;
@@ -305,6 +318,7 @@ ModalDialog RID_SCDLG_DPSUBTOTAL_OPT
};
RadioButton RB_SORT_DESC
{
+ HelpID = "sc:RadioButton:RID_SCDLG_DPSUBTOTAL_OPT:RB_SORT_DESC";
Pos = MAP_APPFONT( 114, 28 );
Size = MAP_APPFONT( 84, 10 );
TabStop = TRUE;
@@ -312,6 +326,7 @@ ModalDialog RID_SCDLG_DPSUBTOTAL_OPT
};
RadioButton RB_SORT_MAN
{
+ HelpID = "sc:RadioButton:RID_SCDLG_DPSUBTOTAL_OPT:RB_SORT_MAN";
Pos = MAP_APPFONT( 114, 42 );
Size = MAP_APPFONT( 84, 10 );
TabStop = TRUE;
@@ -331,6 +346,7 @@ ModalDialog RID_SCDLG_DPSUBTOTAL_OPT
};
ListBox LB_LAYOUT
{
+ HelpID = "sc:ListBox:RID_SCDLG_DPSUBTOTAL_OPT:LB_LAYOUT";
Pos = MAP_APPFONT( 84, 67 );
Size = MAP_APPFONT( 114, 120 );
TabStop = TRUE;
@@ -345,6 +361,7 @@ ModalDialog RID_SCDLG_DPSUBTOTAL_OPT
};
CheckBox CB_LAYOUT_EMPTY
{
+ HelpID = "sc:CheckBox:RID_SCDLG_DPSUBTOTAL_OPT:CB_LAYOUT_EMPTY";
Pos = MAP_APPFONT( 12, 85 );
Size = MAP_APPFONT( 186, 10 );
TabStop = TRUE;
@@ -358,6 +375,7 @@ ModalDialog RID_SCDLG_DPSUBTOTAL_OPT
};
CheckBox CB_SHOW
{
+ HelpID = "sc:CheckBox:RID_SCDLG_DPSUBTOTAL_OPT:CB_SHOW";
Pos = MAP_APPFONT( 12, 112 );
Size = MAP_APPFONT( 70, 10 );
TabStop = TRUE;
@@ -365,6 +383,7 @@ ModalDialog RID_SCDLG_DPSUBTOTAL_OPT
};
NumericField NF_SHOW
{
+ HelpID = "sc:NumericField:RID_SCDLG_DPSUBTOTAL_OPT:NF_SHOW";
Pos = MAP_APPFONT( 84, 110 );
Size = MAP_APPFONT( 30, 12 );
TabStop = TRUE;
@@ -390,6 +409,7 @@ ModalDialog RID_SCDLG_DPSUBTOTAL_OPT
};
ListBox LB_SHOW_FROM
{
+ HelpID = "sc:ListBox:RID_SCDLG_DPSUBTOTAL_OPT:LB_SHOW_FROM";
Pos = MAP_APPFONT( 84, 126 );
Size = MAP_APPFONT( 114, 50 );
TabStop = TRUE;
@@ -409,6 +429,7 @@ ModalDialog RID_SCDLG_DPSUBTOTAL_OPT
};
ListBox LB_SHOW_USING
{
+ HelpID = "sc:ListBox:RID_SCDLG_DPSUBTOTAL_OPT:LB_SHOW_USING";
Pos = MAP_APPFONT( 84, 142 );
Size = MAP_APPFONT( 114, 120 );
TabStop = TRUE;
@@ -436,6 +457,7 @@ ModalDialog RID_SCDLG_DPSUBTOTAL_OPT
};
ListBox LB_HIERARCHY
{
+ HelpID = "sc:ListBox:RID_SCDLG_DPSUBTOTAL_OPT:LB_HIERARCHY";
Pos = MAP_APPFONT( 84, 222 );
Size = MAP_APPFONT( 114, 120 );
TabStop = TRUE;
@@ -483,6 +505,7 @@ ModalDialog RID_SCDLG_DPSHOWDETAIL
};
ListBox LB_DIMS
{
+ HelpID = "sc:ListBox:RID_SCDLG_DPSHOWDETAIL:LB_DIMS";
Pos = MAP_APPFONT( 6, 30 );
Size = MAP_APPFONT( 132, 80 );
TabStop = TRUE;
diff --git a/sc/source/ui/dbgui/pvlaydlg.cxx b/sc/source/ui/dbgui/pvlaydlg.cxx
index 1eca44a787ed..56d7e3550cda 100644
--- a/sc/source/ui/dbgui/pvlaydlg.cxx
+++ b/sc/source/ui/dbgui/pvlaydlg.cxx
@@ -567,7 +567,9 @@ void ScDPLayoutDlg::AddField( size_t nFromIndex, ScDPFieldType eToType, const Po
}
}
- if ( (toArr->back().get() == NULL)
+ bool bAllowed = IsOrientationAllowed( fData.mnCol, eToType );
+ if ( bAllowed
+ && (toArr->back().get() == NULL)
&& (!Contains( toArr, fData.mnCol, nAt )) )
{
// ggF. in anderem Fenster entfernen
@@ -714,7 +716,8 @@ void ScDPLayoutDlg::MoveField( ScDPFieldType eFromType, size_t nFromIndex, ScDPF
{
ScDPFuncData fData( *((*fromArr)[nFromIndex]) );
- if ( Contains( fromArr, fData.mnCol, nAt ) )
+ bool bAllowed = IsOrientationAllowed( fData.mnCol, eToType );
+ if ( bAllowed && Contains( fromArr, fData.mnCol, nAt ) )
{
fromWnd->DelField( nAt );
Remove( fromArr, nAt );
@@ -935,21 +938,41 @@ PointerStyle ScDPLayoutDlg::NotifyMouseMove( const Point& rAt )
if ( bIsDrag )
{
Point aPos = ScreenToOutputPixel( rAt );
+ ScDPFieldType eCheckTarget = TYPE_SELECT;
if ( aRectPage.IsInside( aPos ) )
- ePtr = lclGetPointerForField( TYPE_PAGE );
+ eCheckTarget = TYPE_PAGE;
else if ( aRectCol.IsInside( aPos ) )
- ePtr = lclGetPointerForField( TYPE_COL );
+ eCheckTarget = TYPE_COL;
else if ( aRectRow.IsInside( aPos ) )
- ePtr = lclGetPointerForField( TYPE_ROW );
+ eCheckTarget = TYPE_ROW;
else if ( aRectData.IsInside( aPos ) )
- ePtr = lclGetPointerForField( TYPE_DATA );
+ eCheckTarget = TYPE_DATA;
else if ( eDnDFromType != TYPE_SELECT )
ePtr = POINTER_PIVOT_DELETE;
else if ( aRectSelect.IsInside( aPos ) )
ePtr = lclGetPointerForField( TYPE_SELECT );
else
ePtr = POINTER_NOTALLOWED;
+
+ if ( eCheckTarget != TYPE_SELECT )
+ {
+ // check if the target orientation is allowed for this field
+ ScDPFuncDataVec* fromArr = NULL;
+ switch ( eDnDFromType )
+ {
+ case TYPE_PAGE: fromArr = &aPageArr; break;
+ case TYPE_COL: fromArr = &aColArr; break;
+ case TYPE_ROW: fromArr = &aRowArr; break;
+ case TYPE_DATA: fromArr = &aDataArr; break;
+ case TYPE_SELECT: fromArr = &aSelectArr; break;
+ }
+ ScDPFuncData fData( *((*fromArr)[nDnDFromIndex]) );
+ if (IsOrientationAllowed( fData.mnCol, eCheckTarget ))
+ ePtr = lclGetPointerForField( eCheckTarget );
+ else
+ ePtr = POINTER_NOTALLOWED;
+ }
}
return ePtr;
@@ -1218,6 +1241,28 @@ String ScDPLayoutDlg::GetLabelString( SCsCOL nCol )
return String();
}
+//----------------------------------------------------------------------------
+
+bool ScDPLayoutDlg::IsOrientationAllowed( SCsCOL nCol, ScDPFieldType eType )
+{
+ bool bAllowed = true;
+ ScDPLabelData* pData = GetLabelData( nCol );
+ DBG_ASSERT( pData, "LabelData not found" );
+ if (pData)
+ {
+ sheet::DataPilotFieldOrientation eOrient = sheet::DataPilotFieldOrientation_HIDDEN;
+ switch (eType)
+ {
+ case TYPE_PAGE: eOrient = sheet::DataPilotFieldOrientation_PAGE; break;
+ case TYPE_COL: eOrient = sheet::DataPilotFieldOrientation_COLUMN; break;
+ case TYPE_ROW: eOrient = sheet::DataPilotFieldOrientation_ROW; break;
+ case TYPE_DATA: eOrient = sheet::DataPilotFieldOrientation_DATA; break;
+ case TYPE_SELECT: eOrient = sheet::DataPilotFieldOrientation_HIDDEN; break;
+ }
+ bAllowed = ScDPObject::IsOrientationAllowed( (USHORT)eOrient, pData->mnFlags );
+ }
+ return bAllowed;
+}
//----------------------------------------------------------------------------
diff --git a/sc/source/ui/dbgui/scendlg.src b/sc/source/ui/dbgui/scendlg.src
index 40cfeb01b8ff..f7c3d29b8365 100644
--- a/sc/source/ui/dbgui/scendlg.src
+++ b/sc/source/ui/dbgui/scendlg.src
@@ -29,6 +29,7 @@
#include "scendlg.hrc"
ModalDialog RID_SCDLG_NEWSCENARIO
{
+ HelpID = "sc:ModalDialog:RID_SCDLG_NEWSCENARIO";
OutputSize = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 260 , 165 ) ;
@@ -55,6 +56,7 @@ ModalDialog RID_SCDLG_NEWSCENARIO
};
MultiLineEdit ED_COMMENT
{
+ HelpID = "sc:MultiLineEdit:RID_SCDLG_NEWSCENARIO:ED_COMMENT";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 43 ) ;
Size = MAP_APPFONT ( 183 , 46 ) ;
@@ -65,6 +67,7 @@ ModalDialog RID_SCDLG_NEWSCENARIO
};
Edit ED_NAME
{
+ HelpID = "sc:Edit:RID_SCDLG_NEWSCENARIO:ED_NAME";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 183 , 12 ) ;
@@ -72,12 +75,14 @@ ModalDialog RID_SCDLG_NEWSCENARIO
};
CheckBox CB_SHOWFRAME
{
+ HelpID = "sc:CheckBox:RID_SCDLG_NEWSCENARIO:CB_SHOWFRAME";
Pos = MAP_APPFONT ( 12 , 107 ) ;
Size = MAP_APPFONT ( 109 , 10 ) ;
Text [ en-US ] = "~Display border";
};
ListBox LB_COLOR
{
+ HelpID = "sc:ListBox:RID_SCDLG_NEWSCENARIO:LB_COLOR";
Border = TRUE ;
Pos = MAP_APPFONT ( 125 , 105 ) ;
Size = MAP_APPFONT ( 70 , 86 ) ;
@@ -86,6 +91,7 @@ ModalDialog RID_SCDLG_NEWSCENARIO
};
CheckBox CB_PRINTFRAME
{
+ HelpID = "sc:CheckBox:RID_SCDLG_NEWSCENARIO:CB_PRINTFRAME";
Hide = TRUE ;
Pos = MAP_APPFONT ( 121 , 243 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
@@ -93,6 +99,7 @@ ModalDialog RID_SCDLG_NEWSCENARIO
};
CheckBox CB_TWOWAY
{
+ HelpID = "sc:CheckBox:RID_SCDLG_NEWSCENARIO:CB_TWOWAY";
Pos = MAP_APPFONT ( 12 , 121 ) ;
Size = MAP_APPFONT ( 183 , 10 ) ;
/* ### ACHTUNG: Neuer Text in Resource? Zurckkopieren : Zurckkopieren */
@@ -100,6 +107,7 @@ ModalDialog RID_SCDLG_NEWSCENARIO
};
CheckBox CB_ATTRIB
{
+ HelpID = "sc:CheckBox:RID_SCDLG_NEWSCENARIO:CB_ATTRIB";
Hide = TRUE ;
Pos = MAP_APPFONT ( 20 , 243 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
@@ -107,6 +115,7 @@ ModalDialog RID_SCDLG_NEWSCENARIO
};
CheckBox CB_VALUE
{
+ HelpID = "sc:CheckBox:RID_SCDLG_NEWSCENARIO:CB_VALUE";
Hide = TRUE ;
Pos = MAP_APPFONT ( 230 , 243 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
@@ -114,12 +123,14 @@ ModalDialog RID_SCDLG_NEWSCENARIO
};
CheckBox CB_COPYALL
{
+ HelpID = "sc:CheckBox:RID_SCDLG_NEWSCENARIO:CB_COPYALL";
Pos = MAP_APPFONT ( 12 , 135 ) ;
Size = MAP_APPFONT ( 183 , 10 ) ;
Text [ en-US ] = "Copy ~entire sheet" ;
};
CheckBox CB_PROTECT
{
+ HelpID = "sc:CheckBox:RID_SCDLG_NEWSCENARIO:CB_PROTECT";
Pos = MAP_APPFONT ( 12 , 149 ) ;
Size = MAP_APPFONT ( 183 , 10 ) ;
Text [ en-US ] = "~Prevent changes" ;
diff --git a/sc/source/ui/dbgui/scuiasciiopt.cxx b/sc/source/ui/dbgui/scuiasciiopt.cxx
index 171daa0ca882..42f2a2d86933 100644
--- a/sc/source/ui/dbgui/scuiasciiopt.cxx
+++ b/sc/source/ui/dbgui/scuiasciiopt.cxx
@@ -46,13 +46,8 @@
#include <com/sun/star/uno/Sequence.hxx>
#include "miscuno.hxx"
-
//! TODO make dynamic
-#ifdef WIN
-const SCSIZE ASCIIDLG_MAXROWS = 10000;
-#else
const SCSIZE ASCIIDLG_MAXROWS = MAXROWCOUNT;
-#endif
using namespace rtl;
diff --git a/sc/source/ui/dbgui/textimportoptions.src b/sc/source/ui/dbgui/textimportoptions.src
index fff3c4b40749..7305986b3bec 100644
--- a/sc/source/ui/dbgui/textimportoptions.src
+++ b/sc/source/ui/dbgui/textimportoptions.src
@@ -32,43 +32,45 @@
ModalDialog RID_SCDLG_TEXT_IMPORT_OPTIONS
{
+ HelpID = "sc:ModalDialog:RID_SCDLG_TEXT_IMPORT_OPTIONS";
Text [ en-US ] = "Import Options" ;
- Size = MAP_APPFONT ( 190 , 101 ) ;
+ Size = MAP_APPFONT ( 230 , 101 ) ;
Moveable = TRUE ;
Closeable = TRUE ;
OutputSize = TRUE ;
OKButton BTN_OK
{
- Pos = MAP_APPFONT ( 135, 6 ) ;
+ Pos = MAP_APPFONT ( 175, 6 ) ;
Size = MAP_APPFONT ( 50, 14 ) ;
DefButton = TRUE ;
};
CancelButton BTN_CANCEL
{
- Pos = MAP_APPFONT ( 135, 23 ) ;
+ Pos = MAP_APPFONT ( 175, 23 ) ;
Size = MAP_APPFONT ( 50, 14 ) ;
};
HelpButton BTN_HELP
{
- Pos = MAP_APPFONT ( 135, 43 ) ;
+ Pos = MAP_APPFONT ( 175, 43 ) ;
Size = MAP_APPFONT ( 50, 14 ) ;
};
FixedLine FL_CHOOSE_LANG
{
Pos = MAP_APPFONT( 6, 3 ) ;
- Size = MAP_APPFONT( 125, 14 ) ;
+ Size = MAP_APPFONT( 165, 14 ) ;
Text [ en-US ] = "Select the language to use for import" ;
};
RadioButton RB_AUTOMATIC
{
+ HelpID = "sc:RadioButton:RID_SCDLG_TEXT_IMPORT_OPTIONS:RB_AUTOMATIC";
Pos = MAP_APPFONT( 12, 20 ) ;
- Size = MAP_APPFONT( 50, 10 ) ;
+ Size = MAP_APPFONT( 159, 10 ) ;
TabStop = TRUE ;
Text [ en-US ] = "Automatic" ;
@@ -76,8 +78,9 @@ ModalDialog RID_SCDLG_TEXT_IMPORT_OPTIONS
RadioButton RB_CUSTOM
{
+ HelpID = "sc:RadioButton:RID_SCDLG_TEXT_IMPORT_OPTIONS:RB_CUSTOM";
Pos = MAP_APPFONT( 12, 34 ) ;
- Size = MAP_APPFONT( 50, 10 ) ;
+ Size = MAP_APPFONT( 159, 10 ) ;
TabStop = TRUE ;
Text [ en-US ] = "Custom" ;
@@ -85,8 +88,9 @@ ModalDialog RID_SCDLG_TEXT_IMPORT_OPTIONS
ListBox LB_CUSTOM_LANG
{
+ HelpID = "sc:ListBox:RID_SCDLG_TEXT_IMPORT_OPTIONS:LB_CUSTOM_LANG";
Pos = MAP_APPFONT( 20, 50 ) ;
- Size = MAP_APPFONT( 100, 55 ) ;
+ Size = MAP_APPFONT( 140, 120 ) ;
TabStop = TRUE ;
DropDown = TRUE ;
Sort = TRUE ;
@@ -94,19 +98,18 @@ ModalDialog RID_SCDLG_TEXT_IMPORT_OPTIONS
FixedLine FL_OPTION
{
- Pos = MAP_APPFONT( 6, 70 );
- Size = MAP_APPFONT( 125, 14 );
-
- Text [ en-US ] = "Options" ;
+ Pos = MAP_APPFONT( 6, 70 );
+ Size = MAP_APPFONT( 165, 14 );
+ Text [ en-US ] = "Options" ;
};
CheckBox BTN_CONVERT_DATE
{
+ HelpID = "sc:CheckBox:RID_SCDLG_TEXT_IMPORT_OPTIONS:BTN_CONVERT_DATE";
Pos = MAP_APPFONT( 12, 86 );
- Size = MAP_APPFONT( 125, 10 );
- TabStop = TRUE ;
-
- Text [ en-US ] = "Detect special numbers (such as dates)." ;
+ Size = MAP_APPFONT( 159, 10 );
+ TabStop = TRUE ;
+ Text [ en-US ] = "Detect special numbers (such as dates)." ;
};
};
diff --git a/sc/source/ui/dbgui/validate.src b/sc/source/ui/dbgui/validate.src
index c861fbc200cb..9f4b27fb9967 100644
--- a/sc/source/ui/dbgui/validate.src
+++ b/sc/source/ui/dbgui/validate.src
@@ -67,6 +67,7 @@ TabDialog TAB_DLG_VALIDATION
//-->Added by PengYunQuan for Validity Cell Range Picker
TabPage TP_VALIDATION_VALUES
{
+ HelpID = "sc:TabPage:TP_VALIDATION_VALUES";
Hide = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 260 , 185 ) ;
@@ -82,6 +83,7 @@ TabPage TP_VALIDATION_VALUES
};
ListBox LB_ALLOW
{
+ HelpID = "sc:ListBox:TP_VALIDATION_VALUES:LB_ALLOW";
Border = TRUE ;
//<!--Modified by PengYunQuan for Validity Cell Range Picker
//Pos = MAP_APPFONT ( 80 , 14 ) ;
@@ -113,6 +115,7 @@ TabPage TP_VALIDATION_VALUES
};
ListBox LB_VALUE
{
+ HelpID = "sc:ListBox:TP_VALIDATION_VALUES:LB_VALUE";
Border = TRUE ;
//<!--Modified by PengYunQuan for Validity Cell Range Picker
//Pos = MAP_APPFONT ( 80 , 56 ) ;
@@ -145,6 +148,7 @@ TabPage TP_VALIDATION_VALUES
};
Edit EDT_MIN
{
+ HelpID = "sc:Edit:TP_VALIDATION_VALUES:EDT_MIN";
Border = TRUE ;
//<!--Modified by PengYunQuan for Validity Cell Range Picker
//Pos = MAP_APPFONT ( 80 , 74 ) ;
@@ -156,6 +160,7 @@ TabPage TP_VALIDATION_VALUES
};
MultiLineEdit EDT_LIST
{
+ HelpID = "sc:MultiLineEdit:TP_VALIDATION_VALUES:EDT_LIST";
Border = TRUE ;
//<!--Modified by PengYunQuan for Validity Cell Range Picker
//Pos = MAP_APPFONT ( 80 , 74 ) ;
@@ -177,6 +182,7 @@ TabPage TP_VALIDATION_VALUES
};
Edit EDT_MAX
{
+ HelpID = "sc:Edit:TP_VALIDATION_VALUES:EDT_MAX";
Border = TRUE ;
//<!--Modified by PengYunQuan for Validity Cell Range Picker
//Pos = MAP_APPFONT ( 80 , 90 ) ;
@@ -188,6 +194,7 @@ TabPage TP_VALIDATION_VALUES
};
CheckBox TSB_ALLOW_BLANKS
{
+ HelpID = "sc:CheckBox:TP_VALIDATION_VALUES:TSB_ALLOW_BLANKS";
//<!--Modified by PengYunQuan for Validity Cell Range Picker
//Pos = MAP_APPFONT ( 80 , 30 ) ;
Pos = MAP_APPFONT ( 80 - OFFSET_X , 30 ) ;
@@ -198,6 +205,7 @@ TabPage TP_VALIDATION_VALUES
};
CheckBox CB_SHOWLIST
{
+ HelpID = "sc:CheckBox:TP_VALIDATION_VALUES:CB_SHOWLIST";
//<!--Modified by PengYunQuan for Validity Cell Range Picker
//Pos = MAP_APPFONT ( 80 , 44 ) ;
Pos = MAP_APPFONT ( 80 - OFFSET_X , 44 ) ;
@@ -208,6 +216,7 @@ TabPage TP_VALIDATION_VALUES
};
CheckBox CB_SORTLIST
{
+ HelpID = "sc:CheckBox:TP_VALIDATION_VALUES:CB_SORTLIST";
//<!--Modified by PengYunQuan for Validity Cell Range Picker
//Pos = MAP_APPFONT ( 90 , 58 ) ;
Pos = MAP_APPFONT ( 90 - OFFSET_X , 58 ) ;
@@ -226,6 +235,7 @@ TabPage TP_VALIDATION_VALUES
//<!--Added by PengYunQuan for Validity Cell Range Picker
ImageButton RB_VALIDITY_REF
{
+ HelpID = "sc:ImageButton:TP_VALIDATION_VALUES:RB_VALIDITY_REF";
Pos = MAP_APPFONT ( 142 , 73 ) ;
Size = MAP_APPFONT ( 13 , 14 ) ;
TabStop = TRUE ;
@@ -236,12 +246,14 @@ TabPage TP_VALIDATION_VALUES
TabPage TP_VALIDATION_INPUTHELP
{
+ HelpID = "sc:TabPage:TP_VALIDATION_INPUTHELP";
Hide = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 260 , 185 ) ;
Text = "Eingabehilfe" ;
TriStateBox TSB_HELP
{
+ HelpID = "sc:TriStateBox:TP_VALIDATION_INPUTHELP:TSB_HELP";
Pos = MAP_APPFONT ( 6 , 6 ) ;
Size = MAP_APPFONT ( 248 , 10 ) ;
TabStop = TRUE ;
@@ -267,6 +279,7 @@ TabPage TP_VALIDATION_INPUTHELP
};
Edit EDT_TITLE
{
+ HelpID = "sc:Edit:TP_VALIDATION_INPUTHELP:EDT_TITLE";
Border = TRUE ;
Pos = MAP_APPFONT ( 80 , 33 ) ;
Size = MAP_APPFONT ( 171 , 12 ) ;
@@ -274,6 +287,7 @@ TabPage TP_VALIDATION_INPUTHELP
};
MultiLineEdit EDT_INPUTHELP
{
+ HelpID = "sc:MultiLineEdit:TP_VALIDATION_INPUTHELP:EDT_INPUTHELP";
Border = TRUE ;
Pos = MAP_APPFONT ( 80 , 51 ) ;
Size = MAP_APPFONT ( 171 , 128 ) ;
@@ -285,6 +299,7 @@ TabPage TP_VALIDATION_INPUTHELP
TabPage TP_VALIDATION_ERROR
{
+ HelpID = "sc:TabPage:TP_VALIDATION_ERROR";
Hide = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 260 , 185 ) ;
@@ -296,6 +311,7 @@ TabPage TP_VALIDATION_ERROR
};
TriStateBox TSB_SHOW
{
+ HelpID = "sc:TriStateBox:TP_VALIDATION_ERROR:TSB_SHOW";
Pos = MAP_APPFONT ( 6 , 6 ) ;
Size = MAP_APPFONT ( 248 , 10 ) ;
TabStop = TRUE ;
@@ -303,6 +319,7 @@ TabPage TP_VALIDATION_ERROR
};
MultiLineEdit EDT_ERROR
{
+ HelpID = "sc:MultiLineEdit:TP_VALIDATION_ERROR:EDT_ERROR";
Border = TRUE ;
Pos = MAP_APPFONT ( 80 , 69 ) ;
Size = MAP_APPFONT ( 171 , 110 ) ;
@@ -312,6 +329,7 @@ TabPage TP_VALIDATION_ERROR
};
Edit EDT_TITLE
{
+ HelpID = "sc:Edit:TP_VALIDATION_ERROR:EDT_TITLE";
Border = TRUE ;
Pos = MAP_APPFONT ( 80 , 51 ) ;
Size = MAP_APPFONT ( 171 , 12 ) ;
@@ -337,6 +355,7 @@ TabPage TP_VALIDATION_ERROR
};
ListBox LB_ACTION
{
+ HelpID = "sc:ListBox:TP_VALIDATION_ERROR:LB_ACTION";
Border = TRUE ;
Pos = MAP_APPFONT ( 80 , 33 ) ;
Size = MAP_APPFONT ( 107 , 76 ) ;
@@ -353,6 +372,7 @@ TabPage TP_VALIDATION_ERROR
};
PushButton BTN_SEARCH
{
+ HelpID = "sc:PushButton:TP_VALIDATION_ERROR:BTN_SEARCH";
Pos = MAP_APPFONT ( 191 , 32 ) ;
Size = MAP_APPFONT ( 60 , 14 ) ;
TabStop = TRUE ;
diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx
index 27b8eef7bbd6..36b6641d94a6 100644
--- a/sc/source/ui/docshell/docfunc.cxx
+++ b/sc/source/ui/docshell/docfunc.cxx
@@ -50,9 +50,9 @@
#include <basic/sbstar.hxx>
#include <com/sun/star/container/XNameContainer.hpp>
-#include <com/sun/star/script/XLibraryContainer.hpp>
-#include <com/sun/star/script/XVBAModuleInfo.hpp>
#include <com/sun/star/script/ModuleType.hpp>
+#include <com/sun/star/script/XLibraryContainer.hpp>
+#include <com/sun/star/script/vba/XVBAModuleInfo.hpp>
#include <list>
@@ -2605,7 +2605,6 @@ uno::Reference< uno::XInterface > GetDocModuleObject( SfxObjectShell& rDocSh, St
script::ModuleInfo lcl_InitModuleInfo( SfxObjectShell& rDocSh, String& sModule )
{
- ::rtl::OUString sVbaOption( RTL_CONSTASCII_USTRINGPARAM( "Rem Attribute VBA_ModuleType=VBADocumentModule\nOption VBASupport 1\n" ));
script::ModuleInfo sModuleInfo;
sModuleInfo.ModuleType = script::ModuleType::DOCUMENT;
sModuleInfo.ModuleObject = GetDocModuleObject( rDocSh, sModule );
@@ -2648,7 +2647,7 @@ void VBA_InsertModule( ScDocument& rDoc, SCTAB nTab, String& sModuleName, String
if ( sTmpSource.getLength() == 0 )
sTmpSource = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Rem Attribute VBA_ModuleType=VBADocumentModule\nOption VBASupport 1\n" ));
aSourceAny <<= sTmpSource;
- uno::Reference< script::XVBAModuleInfo > xVBAModuleInfo( xLib, uno::UNO_QUERY );
+ uno::Reference< script::vba::XVBAModuleInfo > xVBAModuleInfo( xLib, uno::UNO_QUERY );
if ( xVBAModuleInfo.is() )
{
String sCodeName( genModuleName );
@@ -2679,7 +2678,7 @@ void VBA_DeleteModule( ScDocShell& rDocSh, String& sModuleName )
}
if( xLib.is() )
{
- uno::Reference< script::XVBAModuleInfo > xVBAModuleInfo( xLib, uno::UNO_QUERY );
+ uno::Reference< script::vba::XVBAModuleInfo > xVBAModuleInfo( xLib, uno::UNO_QUERY );
if( xLib->hasByName( sModuleName ) )
xLib->removeByName( sModuleName );
if ( xVBAModuleInfo.is() )
diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx
index a446c86b4d1b..d5d7f6e09292 100755..100644
--- a/sc/source/ui/docshell/docsh.cxx
+++ b/sc/source/ui/docshell/docsh.cxx
@@ -29,15 +29,11 @@
#include "precompiled_sc.hxx"
// System - Includes -----------------------------------------------------
-
-
#include "scitems.hxx"
#include <editeng/eeitem.hxx>
#include <editeng/svxenum.hxx>
#include <svx/algitem.hxx>
-
-
#include <sot/clsids.hxx>
#include <unotools/securityoptions.hxx>
#include <tools/stream.hxx>
@@ -68,11 +64,15 @@
#include "chgtrack.hxx"
#include "chgviset.hxx"
#include <sfx2/request.hxx>
-#include <com/sun/star/document/UpdateDocMode.hpp>
#include <com/sun/star/container/XContentEnumerationAccess.hpp>
+#include <com/sun/star/document/UpdateDocMode.hpp>
+#include <com/sun/star/script/vba/VBAEventId.hpp>
+#include <com/sun/star/script/vba/XVBAEventProcessor.hpp>
#include <com/sun/star/sheet/XSpreadsheetView.hpp>
#include <com/sun/star/task/XJob.hpp>
-
+#include <basic/sbstar.hxx>
+#include <basic/basmgr.hxx>
+#include <vbahelper/vbaaccesshelper.hxx>
#include "scabstdlg.hxx" //CHINA001
#include <sot/formats.hxx>
@@ -127,8 +127,9 @@
#include <rtl/logfile.hxx>
#include <comphelper/processfactory.hxx>
-#include <basic/sbstar.hxx>
-#include <basic/basmgr.hxx>
+#include "uiitems.hxx"
+#include "cellsuno.hxx"
+
using namespace com::sun::star;
using ::rtl::OUString;
using ::rtl::OUStringBuffer;
@@ -374,28 +375,7 @@ void ScDocShell::AfterXMLLoading(sal_Bool bRet)
}
else
aDocument.SetInsertingFromOtherDoc( FALSE );
-#if 0 // disable load of vba related libraries
- // add vba globals ( if they are availabl )
- uno::Any aGlobs;
- uno::Sequence< uno::Any > aArgs(1);
- aArgs[ 0 ] <<= GetModel();
- aGlobs <<= ::comphelper::getProcessServiceFactory()->createInstanceWithArguments( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ooo.vba.excel.Globals" ) ), aArgs );
- GetBasicManager()->SetGlobalUNOConstant( "VBAGlobals", aGlobs );
- // Fake ThisComponent being setup by Activate ( which is a view
- // related thing ),
- // a) if another document is opened then in theory ThisComponent
- // will be reset as before,
- // b) when this document is 'really' Activated then ThisComponent
- // again will be set as before
- // The only wrinkle seems if this document is loaded 'InVisible'
- // but.. I don't see that this is possible from the vba API
- // I could be wrong though
- // There may be implications setting the current component
- // too early :-/ so I will just manually set the Basic Variables
- BasicManager* pAppMgr = SFX_APP()->GetBasicManager();
- if ( pAppMgr )
- pAppMgr->SetGlobalUNOConstant( "ThisExcelDoc", aArgs[ 0 ] );
-#endif
+
aDocument.SetImportingXML( FALSE );
aDocument.EnableExecuteLink( true );
aDocument.EnableUndo( TRUE );
@@ -517,9 +497,70 @@ BOOL __EXPORT ScDocShell::Load( SfxMedium& rMedium )
return bRet;
}
-
void __EXPORT ScDocShell::Notify( SfxBroadcaster&, const SfxHint& rHint )
{
+ uno::Reference< script::vba::XVBAEventProcessor > xVbaEvents = aDocument.GetVbaEventProcessor();
+ if ( xVbaEvents.is() ) try
+ {
+ using namespace ::com::sun::star::script::vba::VBAEventId;
+ if (rHint.ISA(ScTablesHint) )
+ {
+ const ScTablesHint& rScHint = static_cast< const ScTablesHint& >( rHint );
+ if (rScHint.GetId() == SC_TAB_INSERTED)
+ {
+ uno::Sequence< uno::Any > aArgs( 1 );
+ aArgs[0] <<= rScHint.GetTab1();
+ xVbaEvents->processVbaEvent( WORKBOOK_NEWSHEET, aArgs );
+ }
+ }
+ else if ( rHint.ISA( SfxEventHint ) )
+ {
+ ULONG nEventId = static_cast< const SfxEventHint& >( rHint ).GetEventId();
+ switch ( nEventId )
+ {
+ case SFX_EVENT_ACTIVATEDOC:
+ {
+ uno::Sequence< uno::Any > aArgs;
+ xVbaEvents->processVbaEvent( WORKBOOK_ACTIVATE, aArgs );
+ }
+ break;
+ case SFX_EVENT_DEACTIVATEDOC:
+ {
+ uno::Sequence< uno::Any > aArgs;
+ xVbaEvents->processVbaEvent( WORKBOOK_DEACTIVATE, aArgs );
+ }
+ break;
+ case SFX_EVENT_OPENDOC:
+ {
+ uno::Sequence< uno::Any > aArgs;
+ xVbaEvents->processVbaEvent( WORKBOOK_OPEN, aArgs );
+ }
+ break;
+ case SFX_EVENT_SAVEDOCDONE:
+ case SFX_EVENT_SAVEASDOCDONE:
+ case SFX_EVENT_SAVETODOCDONE:
+ {
+ uno::Sequence< uno::Any > aArgs( 1 );
+ aArgs[ 0 ] <<= true;
+ xVbaEvents->processVbaEvent( WORKBOOK_AFTERSAVE, aArgs );
+ }
+ break;
+ case SFX_EVENT_SAVEASDOCFAILED:
+ case SFX_EVENT_SAVEDOCFAILED:
+ case SFX_EVENT_SAVETODOCFAILED:
+ {
+ uno::Sequence< uno::Any > aArgs( 1 );
+ aArgs[ 0 ] <<= false;
+ xVbaEvents->processVbaEvent( WORKBOOK_AFTERSAVE, aArgs );
+ }
+ break;
+ }
+ }
+ }
+ catch( uno::Exception& )
+ {
+ }
+
if (rHint.ISA(SfxSimpleHint)) // ohne Parameter
{
ULONG nSlot = ((const SfxSimpleHint&)rHint).GetId();
@@ -578,6 +619,25 @@ void __EXPORT ScDocShell::Notify( SfxBroadcaster&, const SfxHint& rHint )
SetReadOnlyUI( sal_True );
}
}
+
+ // VBA specific initialization
+ if( aDocument.IsInVBAMode() ) try
+ {
+ uno::Reference< frame::XModel > xModel( GetModel(), uno::UNO_SET_THROW );
+
+ // create VBAGlobals object if not yet done (this also creates the "ThisExcelDoc" symbol)
+ uno::Reference< lang::XMultiServiceFactory > xFactory( xModel, uno::UNO_QUERY_THROW );
+ xFactory->createInstance( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ooo.vba.VBAGlobals" ) ) );
+
+ // create the VBA document event processor
+ uno::Sequence< uno::Any > aArgs( 1 );
+ aArgs[ 0 ] <<= xModel;
+ xVbaEvents.set( ooo::vba::createVBAUnoAPIServiceWithArgs( this, "com.sun.star.script.vba.VBASpreadsheetEventProcessor" , aArgs ), uno::UNO_QUERY );
+ aDocument.SetVbaEventProcessor( xVbaEvents );
+ }
+ catch( uno::Exception& )
+ {
+ }
}
break;
case SFX_EVENT_VIEWCREATED:
@@ -2252,6 +2312,45 @@ BOOL __EXPORT ScDocShell::DoSaveCompleted( SfxMedium * pNewStor )
}
+sal_Bool ScDocShell::QuerySlotExecutable( USHORT nSlotId )
+{
+ // #i112634# ask VBA event handlers whether to save or print the document
+
+ using namespace ::com::sun::star::script::vba;
+
+ sal_Int32 nVbaEventId = VBAEventId::NO_EVENT;
+ uno::Sequence< uno::Any > aArgs;
+ switch( nSlotId )
+ {
+ case SID_SAVEDOC:
+ case SID_SAVEASDOC:
+ nVbaEventId = VBAEventId::WORKBOOK_BEFORESAVE;
+ aArgs.realloc( 1 );
+ aArgs[ 0 ] <<= (nSlotId == SID_SAVEASDOC);
+ break;
+ case SID_PRINTDOC:
+ case SID_PRINTDOCDIRECT:
+ nVbaEventId = VBAEventId::WORKBOOK_BEFOREPRINT;
+ break;
+ }
+
+ sal_Bool bSlotExecutable = sal_True;
+ if( nVbaEventId != VBAEventId::NO_EVENT ) try
+ {
+ uno::Reference< XVBAEventProcessor > xEventProcessor( aDocument.GetVbaEventProcessor(), uno::UNO_QUERY_THROW );
+ xEventProcessor->processVbaEvent( nVbaEventId, aArgs );
+ }
+ catch( util::VetoException& )
+ {
+ bSlotExecutable = sal_False;
+ }
+ catch( uno::Exception& )
+ {
+ }
+ return bSlotExecutable;
+}
+
+
USHORT __EXPORT ScDocShell::PrepareClose( BOOL bUI, BOOL bForBrowsing )
{
if(SC_MOD()->GetCurRefDlgId()>0)
@@ -2278,6 +2377,26 @@ USHORT __EXPORT ScDocShell::PrepareClose( BOOL bUI, BOOL bForBrowsing )
DoEnterHandler();
+ // start 'Workbook_BeforeClose' VBA event handler for possible veto
+ if( !IsInPrepareClose() )
+ {
+ try
+ {
+ uno::Reference< script::vba::XVBAEventProcessor > xVbaEvents( aDocument.GetVbaEventProcessor(), uno::UNO_SET_THROW );
+ uno::Sequence< uno::Any > aArgs;
+ xVbaEvents->processVbaEvent( script::vba::VBAEventId::WORKBOOK_BEFORECLOSE, aArgs );
+ }
+ catch( util::VetoException& )
+ {
+ // if event processor throws VetoException, macro has vetoed close
+ return sal_False;
+ }
+ catch( uno::Exception& )
+ {
+ }
+ }
+ // end handler code
+
USHORT nRet = SfxObjectShell::PrepareClose( bUI, bForBrowsing );
if (nRet == TRUE) // TRUE = schliessen
aDocument.DisableIdle(TRUE); // nicht mehr drin rumpfuschen !!!
diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx
index 0993d2ce4a14..bba756b397cb 100755..100644
--- a/sc/source/ui/docshell/docsh4.cxx
+++ b/sc/source/ui/docshell/docsh4.cxx
@@ -43,7 +43,7 @@ using namespace ::com::sun::star;
#include "scitems.hxx"
#include <sfx2/fcontnr.hxx>
#include <editeng/eeitem.hxx>
-
+#include <sfx2/objface.hxx>
#include <sfx2/app.hxx>
#include <sfx2/bindings.hxx>
#include <sfx2/docfile.hxx>
@@ -1188,7 +1188,7 @@ BOOL ScDocShell::ExecuteChangeProtectionDialog( Window* _pParent, BOOL bJustQuer
_pParent ? _pParent : GetActiveDialogParent(), &aText );
pDlg->SetText( aTitle );
pDlg->SetMinLen( 1 );
- pDlg->SetHelpId( SID_CHG_PROTECT );
+ pDlg->SetHelpId( GetStaticInterface()->GetSlot(SID_CHG_PROTECT)->GetCommand() );
pDlg->SetEditHelpId( HID_CHG_PROTECT );
if ( !bProtected )
pDlg->ShowExtras( SHOWEXTRAS_CONFIRM );
@@ -1293,7 +1293,7 @@ void ScDocShell::DoHardRecalc( BOOL /* bApi */ )
// (might check for the presence of any formulas on each sheet)
SCTAB nTabCount = aDocument.GetTableCount();
SCTAB nTab;
- if (aDocument.HasSheetEventScript( SC_SHEETEVENT_CALCULATE ))
+ if (aDocument.HasAnySheetEventScript( SC_SHEETEVENT_CALCULATE, true )) // search also for VBA hendler
for (nTab=0; nTab<nTabCount; nTab++)
aDocument.SetCalcNotification(nTab);
diff --git a/sc/source/ui/docshell/externalrefmgr.cxx b/sc/source/ui/docshell/externalrefmgr.cxx
index 0569e95605b1..7fa31246275a 100644
--- a/sc/source/ui/docshell/externalrefmgr.cxx
+++ b/sc/source/ui/docshell/externalrefmgr.cxx
@@ -2024,7 +2024,7 @@ SfxObjectShellRef ScExternalRefManager::loadSrcDocument(sal_uInt16 nFileId, Stri
if (!isFileLoadable(aFile))
return NULL;
- String aOptions;
+ String aOptions( pFileData->maFilterOptions );
ScDocumentLoader::GetFilterName(aFile, rFilter, aOptions, true, false);
const SfxFilter* pFilter = ScDocShell::Factory().GetFilterContainer()->GetFilter4FilterName(rFilter);
@@ -2040,9 +2040,6 @@ SfxObjectShellRef ScExternalRefManager::loadSrcDocument(sal_uInt16 nFileId, Stri
setRelativeFileName(nFileId, aStr);
}
- // Update the filter data now that we are loading it again.
- setFilterData(nFileId, rFilter, aOptions);
-
SfxItemSet* pSet = new SfxAllItemSet(SFX_APP()->GetPool());
if (aOptions.Len())
pSet->Put(SfxStringItem(SID_FILE_FILTEROPTIONS, aOptions));
@@ -2077,6 +2074,13 @@ SfxObjectShellRef ScExternalRefManager::loadSrcDocument(sal_uInt16 nFileId, Stri
pExtOptNew->GetDocSettings().mnLinkCnt = nLinkCount + 1;
pNewShell->DoLoad(pMedium.release());
+
+ // with UseInteractionHandler, options may be set by dialog during DoLoad
+ String aNew = ScDocumentLoader::GetOptions(*pNewShell->GetMedium());
+ if (aNew.Len() && aNew != aOptions)
+ aOptions = aNew;
+ setFilterData(nFileId, rFilter, aOptions); // update the filter data, including the new options
+
return aRef;
}
diff --git a/sc/source/ui/drawfunc/drformsh.src b/sc/source/ui/drawfunc/drformsh.src
index 65e98eea7b2c..3fc8699c9dbf 100644
--- a/sc/source/ui/drawfunc/drformsh.src
+++ b/sc/source/ui/drawfunc/drformsh.src
@@ -35,19 +35,19 @@
ToolBoxItem\
{\
Identifier = SID_FRAME_TO_TOP ; \
- HelpID = SID_FRAME_TO_TOP ; \
+ HelpID = CMD_SID_FRAME_TO_TOP ; \
};\
ToolBoxItem\
{\
Identifier = SID_FRAME_TO_BOTTOM ; \
- HelpID = SID_FRAME_TO_BOTTOM ; \
+ HelpID = CMD_SID_FRAME_TO_BOTTOM ; \
};
#define MN_RENAME_OBJECT \
MenuItem\
{\
Identifier = SID_RENAME_OBJECT ; \
- HelpId = SID_RENAME_OBJECT ; \
+ HelpId = CMD_SID_RENAME_OBJECT ; \
Text [ en-US ] = "Name...";\
};
@@ -56,7 +56,7 @@
MenuItem\
{\
Identifier = SID_TITLE_DESCRIPTION_OBJECT; \
- HelpId = SID_TITLE_DESCRIPTION_OBJECT; \
+ HelpId = CMD_SID_TITLE_DESCRIPTION_OBJECT; \
Text [ en-US ] = "Description...";\
};
@@ -77,14 +77,14 @@
MenuItem\
{\
Identifier = SID_FRAME_UP ; \
- HelpId = SID_FRAME_UP ; \
+ HelpId = CMD_SID_FRAME_UP ; \
/* ### ACHTUNG: Neuer Text in Resource? W~eiter nach vorn : Weiter nach vorn */\
Text [ en-US ] = "Bring ~Forward" ; \
};\
MenuItem\
{\
Identifier = SID_FRAME_DOWN ; \
- HelpId = SID_FRAME_DOWN ; \
+ HelpId = CMD_SID_FRAME_DOWN ; \
/* ### ACHTUNG: Neuer Text in Resource? Weiter ~nach hinten : Weiter nach hinten */\
Text [ en-US ] = "Send Back~ward" ; \
};\
@@ -119,14 +119,14 @@
{\
RadioCheck = TRUE ; \
Identifier = SID_ANCHOR_PAGE ; \
- HelpId = SID_ANCHOR_PAGE ; \
+ HelpId = CMD_SID_ANCHOR_PAGE ; \
Text [ en-US ] = "To P~age" ; \
};\
MenuItem\
{\
RadioCheck = TRUE ; \
Identifier = SID_ANCHOR_CELL ; \
- HelpId = SID_ANCHOR_CELL ; \
+ HelpId = CMD_SID_ANCHOR_CELL ; \
Text [ en-US ] = "To ~Cell" ; \
};\
};\
@@ -137,7 +137,7 @@
MenuItem\
{\
Identifier = SID_OBJECT_ALIGN ; \
- HelpId = SID_OBJECT_ALIGN ; \
+ HelpId = CMD_SID_OBJECT_ALIGN ; \
Text [ en-US ] = "A~lignment" ; \
SubMenu = Menu\
{\
diff --git a/sc/source/ui/drawfunc/drtxtob.cxx b/sc/source/ui/drawfunc/drtxtob.cxx
index bfbeba2d1302..a5159d8a8043 100644
--- a/sc/source/ui/drawfunc/drtxtob.cxx
+++ b/sc/source/ui/drawfunc/drtxtob.cxx
@@ -486,11 +486,16 @@ void __EXPORT ScDrawTextObjectBar::GetState( SfxItemSet& rSet )
rSet.GetItemState( SID_THESAURUS ) != SFX_ITEM_UNKNOWN )
{
SdrView * pView = pViewData->GetScDrawView();
- EditView & rEditView = pView->GetTextEditOutlinerView()->GetEditView();
+ OutlinerView* pOutView = pView->GetTextEditOutlinerView();
String aStatusVal;
LanguageType nLang = LANGUAGE_NONE;
- bool bIsLookUpWord = GetStatusValueForThesaurusFromContext( aStatusVal, nLang, rEditView );
+ bool bIsLookUpWord = false;
+ if ( pOutView )
+ {
+ EditView& rEditView = pOutView->GetEditView();
+ bIsLookUpWord = GetStatusValueForThesaurusFromContext( aStatusVal, nLang, rEditView );
+ }
rSet.Put( SfxStringItem( SID_THES, aStatusVal ) );
// disable thesaurus main menu and context menu entry if there is nothing to look up
diff --git a/sc/source/ui/drawfunc/fuins2.cxx b/sc/source/ui/drawfunc/fuins2.cxx
index f648a1484e8e..297e8fa38651 100644
--- a/sc/source/ui/drawfunc/fuins2.cxx
+++ b/sc/source/ui/drawfunc/fuins2.cxx
@@ -54,7 +54,8 @@
#include <svx/svdpagv.hxx>
#include <svx/svdpage.hxx>
#include <svx/svdundo.hxx>
-
+#include <sfx2/msgpool.hxx>
+#include <scmod.hxx>
// BM/IHA --
#include <cppuhelper/component_context.hxx>
@@ -261,12 +262,11 @@ FuInsertOLE::FuInsertOLE(ScTabViewShell* pViewSh, Window* pWin, ScDrawView* pVie
aServerLst.Remove( ScDocShell::Factory().GetClassId() ); // Starcalc nicht anzeigen
//TODO/LATER: currently no inserting of ClassId into SfxRequest!
case SID_INSERT_PLUGIN :
- case SID_INSERT_APPLET :
case SID_INSERT_FLOATINGFRAME :
{
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
SfxAbstractInsertObjectDialog* pDlg =
- pFact->CreateInsertObjectDialog( pViewShell->GetWindow(), nSlot,
+ pFact->CreateInsertObjectDialog( pViewShell->GetWindow(), SC_MOD()->GetSlotPool()->GetSlot(nSlot)->GetCommandString(),
xStorage, &aServerLst );
if ( pDlg )
{
diff --git a/sc/source/ui/drawfunc/futext2.cxx b/sc/source/ui/drawfunc/futext2.cxx
index 340e71faa71c..ef7e0d675162 100644
--- a/sc/source/ui/drawfunc/futext2.cxx
+++ b/sc/source/ui/drawfunc/futext2.cxx
@@ -129,10 +129,6 @@
//#define _GRAPH_HXX
#define _SOUND_HXX
-#if defined WIN
-#define _MENUBTN_HXX
-#endif
-
//svtools
#define _SCRWIN_HXX
#define _RULER_HXX
diff --git a/sc/source/ui/drawfunc/objdraw.src b/sc/source/ui/drawfunc/objdraw.src
index 82649044b38c..4b417b28e59b 100644
--- a/sc/source/ui/drawfunc/objdraw.src
+++ b/sc/source/ui/drawfunc/objdraw.src
@@ -35,7 +35,7 @@
MenuItem\
{\
Identifier = SID_TEXT_STANDARD ; \
- HelpID = SID_TEXT_STANDARD ; \
+ HelpID = CMD_SID_TEXT_STANDARD ; \
Text [ en-US ] = "~Default" ; \
Text [ x-comment ] = " ";\
};
@@ -46,7 +46,7 @@
MenuItem\
{\
Identifier = RID_MN_FORMAT_STYLE ; \
- HelpID = RID_MN_FORMAT_STYLE ; \
+ HelpID = HID_MN_FORMAT_STYLE ; \
Text [ en-US ] = "~Style" ; \
SubMenu = Menu\
{\
@@ -87,14 +87,14 @@
MenuItem\
{\
Identifier = SID_SET_SUPER_SCRIPT ; \
- HelpID = SID_SET_SUPER_SCRIPT ; \
+ HelpID = CMD_SID_SET_SUPER_SCRIPT ; \
Text [ en-US ] = "~Superscript" ; \
Text [ x-comment ] = " ";\
};\
MenuItem\
{\
Identifier = SID_SET_SUB_SCRIPT ; \
- HelpID = SID_SET_SUB_SCRIPT ; \
+ HelpID = CMD_SID_SET_SUB_SCRIPT ; \
Text [ en-US ] = "S~ubscript" ; \
Text [ x-comment ] = " ";\
};\
@@ -105,7 +105,7 @@
MenuItem\
{\
Identifier = RID_MN_FORMAT_ALGN ; \
- HelpID = RID_MN_FORMAT_ALGN ; \
+ HelpID = HID_MN_FORMAT_ALGN ; \
Text [ en-US ] = "~Alignment" ; \
RadioCheck = TRUE ; \
SubMenu = Menu\
@@ -115,7 +115,7 @@
MenuItem\
{\
Identifier = SID_ALIGNLEFT ; \
- HelpID = SID_ATTR_PARA_ADJUST_LEFT ; \
+ HelpID = CMD_SID_ATTR_PARA_ADJUST_LEFT ; \
RadioCheck = TRUE ; \
Text [ en-US ] = "~Left" ;\
Text [ x-comment ] = " "; \
@@ -123,21 +123,21 @@
MenuItem\
{\
Identifier = SID_ALIGNRIGHT ; \
- HelpID = SID_ATTR_PARA_ADJUST_RIGHT ; \
+ HelpID = CMD_SID_ATTR_PARA_ADJUST_RIGHT ; \
RadioCheck = TRUE ; \
Text [ en-US ] = "~Right" ;\
};\
MenuItem\
{\
Identifier = SID_ALIGNCENTERHOR ; \
- HelpID = SID_ATTR_PARA_ADJUST_CENTER ; \
+ HelpID = CMD_SID_ATTR_PARA_ADJUST_CENTER ; \
RadioCheck = TRUE ; \
Text [ en-US ] = "~Centered" ;\
};\
MenuItem\
{\
Identifier = SID_ALIGNBLOCK ; \
- HelpID = SID_ATTR_PARA_ADJUST_BLOCK ; \
+ HelpID = CMD_SID_ATTR_PARA_ADJUST_BLOCK ; \
RadioCheck = TRUE ; \
Text [ en-US ] = "~Justified" ; \
Text [ x-comment ] = " ";\
@@ -149,7 +149,7 @@
MenuItem\
{\
Identifier = RID_MN_FORMAT_LINESPACE ; \
- HelpID = RID_MN_FORMAT_LINESPACE ; \
+ HelpID = HID_MN_FORMAT_LINESPACE ; \
Text [ en-US ] = "~Line Spacing" ; \
_MenuItemFlags = MIB_RADIOCHECK ; \
SubMenu = Menu\
@@ -191,7 +191,7 @@
MenuItem\
{\
Identifier = SID_DRAW_HLINK_EDIT ; \
- HelpID = SID_DRAW_HLINK_EDIT ; \
+ HelpID = CMD_SID_DRAW_HLINK_EDIT ; \
Text [ en-US ] = "~Hyperlink..." ; \
};
@@ -199,7 +199,7 @@
MenuItem\
{\
Identifier = SID_DRAW_HLINK_DELETE ; \
- HelpID = SID_DRAW_HLINK_DELETE ; \
+ HelpID = CMD_SID_DRAW_HLINK_DELETE ; \
Text [ en-US ] = "~Remove Hyperlink" ; \
};
#endif
@@ -208,7 +208,7 @@
MenuItem\
{\
Identifier = SID_DRAWTEXT_ATTR_DLG ; \
- HelpID = SID_DRAWTEXT_ATTR_DLG ; \
+ HelpID = CMD_SID_DRAWTEXT_ATTR_DLG ; \
Text [ en-US ] = "Te~xt..." ; \
/* ### ACHTUNG: Neuer Text in Resource? Textattribute fr die selektierten Textobjekte festlegen : Textattribute fr die selektierten Textobjekte festlegen */\
Text [ x-comment ] = " ";\
@@ -218,7 +218,7 @@
MenuItem\
{\
Identifier = SID_ASSIGNMACRO ; \
- HelpID = SID_ASSIGNMACRO ; \
+ HelpID = CMD_SID_ASSIGNMACRO ; \
Text [ en-US ] = "Assig~n Macro..." ; \
Text [ x-comment ] = " ";\
};
@@ -227,7 +227,7 @@
MenuItem\
{\
Identifier = SID_ORIGINALSIZE ; \
- HelpId = SID_ORIGINALSIZE ; \
+ HelpId = CMD_SID_ORIGINALSIZE ; \
/* ### ACHTUNG: Neuer Text in Resource? Originalgre : Originalgre */\
Text [ en-US ] = "~Original Size" ; \
Text [ x-comment ] = " ";\
@@ -237,7 +237,7 @@
MenuItem\
{\
Identifier = SID_RENAME_OBJECT ; \
- HelpId = SID_RENAME_OBJECT ; \
+ HelpId = CMD_SID_RENAME_OBJECT ; \
Text [ en-US ] = "Name...";\
};
@@ -246,7 +246,7 @@
MenuItem\
{\
Identifier = SID_TITLE_DESCRIPTION_OBJECT; \
- HelpId = SID_TITLE_DESCRIPTION_OBJECT; \
+ HelpId = CMD_SID_TITLE_DESCRIPTION_OBJECT; \
Text [ en-US ] = "Description...";\
};
@@ -263,14 +263,14 @@
MenuItem\
{\
Identifier = SID_MIRROR_VERTICAL ; \
- HelpId = SID_MIRROR_VERTICAL ; \
+ HelpId = CMD_SID_MIRROR_VERTICAL ; \
Text [ en-US ] = "~Vertically" ; \
Text [ x-comment ] = " ";\
};\
MenuItem\
{\
Identifier = SID_MIRROR_HORIZONTAL ; \
- HelpId = SID_MIRROR_HORIZONTAL ; \
+ HelpId = CMD_SID_MIRROR_HORIZONTAL ; \
Text [ en-US ] = "~Horizontal" ; \
Text [ x-comment ] = " ";\
};\
@@ -296,7 +296,7 @@
MenuItem\
{\
Identifier = SID_FRAME_UP ; \
- HelpId = SID_FRAME_UP ; \
+ HelpId = CMD_SID_FRAME_UP ; \
/* ### ACHTUNG: Neuer Text in Resource? W~eiter nach vorn : Weiter nach vorn */\
Text [ en-US ] = "Bring ~Forward" ; \
Text [ x-comment ] = " ";\
@@ -304,7 +304,7 @@
MenuItem\
{\
Identifier = SID_FRAME_DOWN ; \
- HelpId = SID_FRAME_DOWN ; \
+ HelpId = CMD_SID_FRAME_DOWN ; \
/* ### ACHTUNG: Neuer Text in Resource? Weiter ~nach hinten : Weiter nach hinten */\
Text [ en-US ] = "Send Back~ward" ; \
Text [ x-comment ] = " ";\
@@ -341,7 +341,7 @@
{\
RadioCheck = TRUE ; \
Identifier = SID_ANCHOR_PAGE ; \
- HelpId = SID_ANCHOR_PAGE ; \
+ HelpId = CMD_SID_ANCHOR_PAGE ; \
Text [ en-US ] = "To P~age" ; \
Text [ x-comment ] = " ";\
};\
@@ -349,7 +349,7 @@
{\
RadioCheck = TRUE ; \
Identifier = SID_ANCHOR_CELL ; \
- HelpId = SID_ANCHOR_CELL ; \
+ HelpId = CMD_SID_ANCHOR_CELL ; \
Text [ en-US ] = "To ~Cell" ; \
Text [ x-comment ] = " ";\
};\
@@ -362,7 +362,7 @@
MenuItem\
{\
Identifier = SID_OBJECT_ALIGN ; \
- HelpId = SID_OBJECT_ALIGN ; \
+ HelpId = CMD_SID_OBJECT_ALIGN ; \
Text [ en-US ] = "A~lignment" ; \
SubMenu = Menu\
{\
@@ -412,150 +412,6 @@ String RID_DRAW_OBJECTBAR
Text [ en-US ] = "Drawing Object Bar" ;
Text [ x-comment ] = " ";
};
-ToolBox RID_DRAW_OBJECTBAR
-{
- HelpId = HID_SC_TOOLBOX_DRAW ;
- Dockable = TRUE ;
- Moveable = TRUE ;
- Sizeable = TRUE ;
- Closeable = TRUE ;
- Zoomable = TRUE ;
- Customize = TRUE ;
- HideWhenDeactivate = TRUE ;
- LineSpacing = TRUE ;
- Border = TRUE ;
- SVLook = TRUE ;
- MenuStrings = TRUE ;
- ItemList =
- {
- ToolBoxItem
- {
- Identifier = SID_BEZIER_EDIT ;
- HelpID = SID_BEZIER_EDIT ;
-
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- // Linien
- ToolBoxItem
- {
- Identifier = SID_ATTRIBUTES_LINE ;
- HelpId = SID_ATTRIBUTES_LINE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_LINEEND_STYLE ;
- HelpID = SID_ATTR_LINEEND_STYLE ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_ATTR_LINE_STYLE ;
- HelpId = SID_ATTR_LINE_STYLE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_LINE_WIDTH ;
- HelpId = SID_ATTR_LINE_WIDTH ;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_LINE_COLOR ;
- HelpId = SID_ATTR_LINE_COLOR ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_ATTRIBUTES_AREA ;
- HelpId = SID_ATTRIBUTES_AREA ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_ATTR_FILL_STYLE ;
- HelpId = SID_ATTR_FILL_STYLE ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- // Rest
- ToolBoxItem
- {
- Identifier = SID_OBJECT_ROTATE ;
- HelpId = SID_OBJECT_ROTATE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ANCHOR_TOGGLE ;
- HelpId = SID_ANCHOR_TOGGLE ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_FRAME_TO_TOP ;
- HelpId = SID_FRAME_TO_TOP ;
- };
- ToolBoxItem
- {
- Identifier = SID_FRAME_TO_BOTTOM ;
- HelpId = SID_FRAME_TO_BOTTOM ;
- };
- ToolBoxItem
- {
- Identifier = SID_OBJECT_HEAVEN ;
- HelpID = SID_OBJECT_HEAVEN ;
-
- };
- ToolBoxItem
- {
- Identifier = SID_OBJECT_HELL ;
- HelpID = SID_OBJECT_HELL ;
-
- };
-
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
-
- ToolBoxItem
- {
- Identifier = SID_GRID_VISIBLE;
- HelpID = SID_GRID_VISIBLE;
- Hide = TRUE;
- };
- ToolBoxItem
- {
- Identifier = SID_GRID_USE;
- HelpID = SID_GRID_USE;
- Hide = TRUE;
- };
- ToolBoxItem
- {
- Identifier = SID_HELPLINES_MOVE;
- HelpID = SID_HELPLINES_MOVE;
- Hide = TRUE;
- };
-
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_OBJECT_ALIGN ;
- HelpId = SID_OBJECT_ALIGN ;
- };
- };
- Scroll = TRUE ;
-};
//
// Text-Toolbox
//
@@ -564,504 +420,6 @@ String RID_TEXT_TOOLBOX
Text [ en-US ] = "Text Object Bar" ;
Text [ x-comment ] = " ";
};
-ToolBox RID_TEXT_TOOLBOX
-{
- HelpId = HID_SC_TOOLBOX_DRTEXT ;
- LineSpacing = TRUE ;
- Dockable = TRUE ;
- Moveable = TRUE ;
- Sizeable = TRUE ;
- Closeable = TRUE ;
- Zoomable = TRUE ;
- Scroll = TRUE ;
- Customize = TRUE ;
- HideWhenDeactivate = TRUE ;
- Border = TRUE ;
- SVLook = TRUE ;
- Size = MAP_APPFONT ( 0 , 0 ) ;
- Align = BOXALIGN_TOP ;
- MenuStrings = TRUE ;
- ItemList =
- {
- ToolBoxItem
- {
- Identifier = SID_ATTR_CHAR_FONT ;
- HelpId = SID_ATTR_CHAR_FONT ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_ATTR_CHAR_FONTHEIGHT ;
- HelpId = SID_ATTR_CHAR_FONTHEIGHT ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_ATTR_CHAR_WEIGHT ;
- HelpId = SID_ATTR_CHAR_WEIGHT ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_CHAR_POSTURE ;
- HelpId = SID_ATTR_CHAR_POSTURE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_CHAR_UNDERLINE ;
- HelpId = SID_ATTR_CHAR_UNDERLINE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ULINE_VAL_DOUBLE;
- HelpId = SID_ULINE_VAL_DOUBLE;
- AutoCheck = TRUE ;
- Hide=TRUE;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_CHAR_COLOR ;
- HelpId = SID_ATTR_CHAR_COLOR ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_ATTR_PARA_LINESPACE_10 ;
- HelpId = SID_ATTR_PARA_LINESPACE_10 ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_PARA_LINESPACE_15 ;
- HelpId = SID_ATTR_PARA_LINESPACE_15 ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_PARA_LINESPACE_20 ;
- HelpId = SID_ATTR_PARA_LINESPACE_20 ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_ALIGNLEFT ;
- HelpId = SID_ATTR_PARA_ADJUST_LEFT ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ALIGNCENTERHOR ;
- HelpId = SID_ATTR_PARA_ADJUST_CENTER ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ALIGNRIGHT ;
- HelpId = SID_ATTR_PARA_ADJUST_RIGHT ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ALIGNBLOCK ;
- HelpId = SID_ATTR_PARA_ADJUST_BLOCK ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_ATTR_PARA_LEFT_TO_RIGHT;
- HelpID = SID_ATTR_PARA_LEFT_TO_RIGHT;
- RadioCheck = TRUE;
- Hide = TRUE;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_PARA_RIGHT_TO_LEFT;
- HelpID = SID_ATTR_PARA_RIGHT_TO_LEFT;
- RadioCheck = TRUE;
- Hide = TRUE;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_SET_SUPER_SCRIPT ;
- HelpID = SID_SET_SUPER_SCRIPT ;
- };
- ToolBoxItem
- {
- Identifier = SID_SET_SUB_SCRIPT ;
- HelpID = SID_SET_SUB_SCRIPT ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_TEXTDIRECTION_LEFT_TO_RIGHT ;
- HelpID = SID_TEXTDIRECTION_LEFT_TO_RIGHT ;
- };
- ToolBoxItem
- {
- Identifier = SID_TEXTDIRECTION_TOP_TO_BOTTOM ;
- HelpID = SID_TEXTDIRECTION_TOP_TO_BOTTOM ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_CHAR_DLG ;
- HelpID = SID_CHAR_DLG ;
- };
- ToolBoxItem
- {
- Identifier = SID_PARA_DLG ;
- HelpID = SID_PARA_DLG ;
- };
- };
- ItemList[ ar ] =
- {
- ToolBoxItem
- {
- Identifier = SID_ATTR_CHAR_FONT ;
- HelpId = SID_ATTR_CHAR_FONT ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_ATTR_CHAR_FONTHEIGHT ;
- HelpId = SID_ATTR_CHAR_FONTHEIGHT ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_ATTR_CHAR_WEIGHT ;
- HelpId = SID_ATTR_CHAR_WEIGHT ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_CHAR_POSTURE ;
- HelpId = SID_ATTR_CHAR_POSTURE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_CHAR_UNDERLINE ;
- HelpId = SID_ATTR_CHAR_UNDERLINE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ULINE_VAL_DOUBLE;
- HelpId = SID_ULINE_VAL_DOUBLE;
- AutoCheck = TRUE ;
- Hide=TRUE;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_CHAR_COLOR ;
- HelpId = SID_ATTR_CHAR_COLOR ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_ATTR_PARA_LINESPACE_10 ;
- HelpId = SID_ATTR_PARA_LINESPACE_10 ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_PARA_LINESPACE_15 ;
- HelpId = SID_ATTR_PARA_LINESPACE_15 ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_PARA_LINESPACE_20 ;
- HelpId = SID_ATTR_PARA_LINESPACE_20 ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_ALIGNRIGHT ;
- HelpId = SID_ATTR_PARA_ADJUST_RIGHT ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ALIGNCENTERHOR ;
- HelpId = SID_ATTR_PARA_ADJUST_CENTER ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ALIGNLEFT ;
- HelpId = SID_ATTR_PARA_ADJUST_LEFT ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ALIGNBLOCK ;
- HelpId = SID_ATTR_PARA_ADJUST_BLOCK ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_ATTR_PARA_RIGHT_TO_LEFT;
- HelpID = SID_ATTR_PARA_RIGHT_TO_LEFT;
- RadioCheck = TRUE;
- Hide = TRUE;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_PARA_LEFT_TO_RIGHT;
- HelpID = SID_ATTR_PARA_LEFT_TO_RIGHT;
- RadioCheck = TRUE;
- Hide = TRUE;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_SET_SUPER_SCRIPT ;
- HelpID = SID_SET_SUPER_SCRIPT ;
- };
- ToolBoxItem
- {
- Identifier = SID_SET_SUB_SCRIPT ;
- HelpID = SID_SET_SUB_SCRIPT ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_TEXTDIRECTION_LEFT_TO_RIGHT ;
- HelpID = SID_TEXTDIRECTION_LEFT_TO_RIGHT ;
- };
- ToolBoxItem
- {
- Identifier = SID_TEXTDIRECTION_TOP_TO_BOTTOM ;
- HelpID = SID_TEXTDIRECTION_TOP_TO_BOTTOM ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_CHAR_DLG ;
- HelpID = SID_CHAR_DLG ;
- };
- ToolBoxItem
- {
- Identifier = SID_PARA_DLG ;
- HelpID = SID_PARA_DLG ;
- };
- };
- ItemList[ he ] =
- {
- ToolBoxItem
- {
- Identifier = SID_ATTR_CHAR_FONT ;
- HelpId = SID_ATTR_CHAR_FONT ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_ATTR_CHAR_FONTHEIGHT ;
- HelpId = SID_ATTR_CHAR_FONTHEIGHT ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_ATTR_CHAR_WEIGHT ;
- HelpId = SID_ATTR_CHAR_WEIGHT ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_CHAR_POSTURE ;
- HelpId = SID_ATTR_CHAR_POSTURE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_CHAR_UNDERLINE ;
- HelpId = SID_ATTR_CHAR_UNDERLINE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ULINE_VAL_DOUBLE;
- HelpId = SID_ULINE_VAL_DOUBLE;
- AutoCheck = TRUE ;
- Hide=TRUE;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_CHAR_COLOR ;
- HelpId = SID_ATTR_CHAR_COLOR ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_ATTR_PARA_LINESPACE_10 ;
- HelpId = SID_ATTR_PARA_LINESPACE_10 ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_PARA_LINESPACE_15 ;
- HelpId = SID_ATTR_PARA_LINESPACE_15 ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_PARA_LINESPACE_20 ;
- HelpId = SID_ATTR_PARA_LINESPACE_20 ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_ALIGNRIGHT ;
- HelpId = SID_ATTR_PARA_ADJUST_RIGHT ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ALIGNCENTERHOR ;
- HelpId = SID_ATTR_PARA_ADJUST_CENTER ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ALIGNLEFT ;
- HelpId = SID_ATTR_PARA_ADJUST_LEFT ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- ToolBoxItem
- {
- Identifier = SID_ALIGNBLOCK ;
- HelpId = SID_ATTR_PARA_ADJUST_BLOCK ;
- RadioCheck = TRUE ;
- AutoCheck = TRUE ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_ATTR_PARA_RIGHT_TO_LEFT;
- HelpID = SID_ATTR_PARA_RIGHT_TO_LEFT;
- RadioCheck = TRUE;
- Hide = TRUE;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_PARA_LEFT_TO_RIGHT;
- HelpID = SID_ATTR_PARA_LEFT_TO_RIGHT;
- RadioCheck = TRUE;
- Hide = TRUE;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_SET_SUPER_SCRIPT ;
- HelpID = SID_SET_SUPER_SCRIPT ;
- };
- ToolBoxItem
- {
- Identifier = SID_SET_SUB_SCRIPT ;
- HelpID = SID_SET_SUB_SCRIPT ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_TEXTDIRECTION_LEFT_TO_RIGHT ;
- HelpID = SID_TEXTDIRECTION_LEFT_TO_RIGHT ;
- };
- ToolBoxItem
- {
- Identifier = SID_TEXTDIRECTION_TOP_TO_BOTTOM ;
- HelpID = SID_TEXTDIRECTION_TOP_TO_BOTTOM ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_CHAR_DLG ;
- HelpID = SID_CHAR_DLG ;
- };
- ToolBoxItem
- {
- Identifier = SID_PARA_DLG ;
- HelpID = SID_PARA_DLG ;
- };
- };
-};
//
// Graphics toolbox
//
@@ -1069,182 +427,6 @@ String RID_GRAPHIC_OBJECTBAR
{
Text [ en-US ] = "Graphics Object Bar";
};
-ToolBox RID_GRAPHIC_OBJECTBAR
-{
- HelpId = HID_SC_TOOLBOX_GRAPHIC ;
- LineSpacing = TRUE ;
- Dockable = TRUE ;
- Moveable = TRUE ;
- Sizeable = TRUE ;
- Closeable = TRUE ;
- Zoomable = TRUE ;
- Scroll = TRUE ;
- Customize = TRUE ;
- HideWhenDeactivate = TRUE ;
- Border = TRUE ;
- SVLook = TRUE ;
- Size = MAP_APPFONT ( 0 , 0 ) ;
- Align = BOXALIGN_TOP ;
- MenuStrings = TRUE ;
- ItemList =
- {
- ToolBoxItem
- {
- Identifier = SID_GRFFILTER;
- HelpID = SID_GRFFILTER;
- DropDown = TRUE ;
- Checkable = FALSE ;
- RadioCheck = FALSE ;
- };
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- ToolBoxItem
- {
- Identifier = SID_ATTR_GRAF_MODE;
- HelpID = SID_ATTR_GRAF_MODE;
- };
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
-
- ToolBoxItem
- {
- Identifier = SID_ATTR_GRAF_RED;
- HelpID = SID_ATTR_GRAF_RED;
- };
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- ToolBoxItem
- {
- Identifier = SID_ATTR_GRAF_GREEN;
- HelpID = SID_ATTR_GRAF_GREEN;
- };
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- ToolBoxItem
- {
- Identifier = SID_ATTR_GRAF_BLUE;
- HelpID = SID_ATTR_GRAF_BLUE;
- };
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
-
- ToolBoxItem
- {
- Identifier = SID_ATTR_GRAF_LUMINANCE;
- HelpID = SID_ATTR_GRAF_LUMINANCE;
- };
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
-
- ToolBoxItem
- {
- Identifier = SID_ATTR_GRAF_CONTRAST;
- HelpID = SID_ATTR_GRAF_CONTRAST;
- };
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- ToolBoxItem
- {
- Identifier = SID_ATTR_GRAF_GAMMA;
- HelpID = SID_ATTR_GRAF_GAMMA;
- };
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- ToolBoxItem
- {
- Identifier = SID_ATTR_GRAF_TRANSPARENCE;
- HelpID = SID_ATTR_GRAF_TRANSPARENCE;
- };
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
-
- // #i25616#
- ToolBoxItem
- {
- Identifier = SID_ATTRIBUTES_LINE;
- HelpID = SID_ATTRIBUTES_LINE;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTRIBUTES_AREA;
- HelpID = SID_ATTRIBUTES_AREA;
- };
- ToolBoxItem
- {
- Identifier = SID_ATTR_FILL_SHADOW;
- HelpID = SID_ATTR_FILL_SHADOW;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_SEPARATOR ;
- };
-
- ToolBoxItem
- {
- Identifier = SID_ATTR_GRAF_CROP;
- HelpID = SID_ATTR_GRAF_CROP;
- };
-
- // copied from the "normal" drawing toolbar:
-
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_ANCHOR_TOGGLE ;
- HelpId = SID_ANCHOR_TOGGLE ;
- };
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_FRAME_TO_TOP ;
- HelpId = SID_FRAME_TO_TOP ;
- };
- ToolBoxItem
- {
- Identifier = SID_FRAME_TO_BOTTOM ;
- HelpId = SID_FRAME_TO_BOTTOM ;
- };
- ToolBoxItem
- {
- Identifier = SID_OBJECT_HEAVEN ;
- HelpID = SID_OBJECT_HEAVEN ;
-
- };
- ToolBoxItem
- {
- Identifier = SID_OBJECT_HELL ;
- HelpID = SID_OBJECT_HELL ;
-
- };
-
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
-
- ToolBoxItem
- {
- Identifier = SID_GRID_VISIBLE;
- HelpID = SID_GRID_VISIBLE;
- Hide = TRUE;
- };
- ToolBoxItem
- {
- Identifier = SID_GRID_USE;
- HelpID = SID_GRID_USE;
- Hide = TRUE;
- };
- ToolBoxItem
- {
- Identifier = SID_HELPLINES_MOVE;
- HelpID = SID_HELPLINES_MOVE;
- Hide = TRUE;
- };
-
- //---------------------------------------------
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- //---------------------------------------------
- ToolBoxItem
- {
- Identifier = SID_OBJECT_ALIGN ;
- HelpId = SID_OBJECT_ALIGN ;
- };
- };
-};
//
// Popup-Menues ---------------------------------------------------------------------
//
@@ -1415,36 +597,6 @@ Menu RID_POPUP_MEDIA
};
};
-ToolBox RID_MEDIA_OBJECTBAR
-{
- //HelpId = HID_SC_TOOLBOX_MEDIA ;
- LineSpacing = TRUE ;
- Dockable = TRUE ;
- Moveable = TRUE ;
- Sizeable = TRUE ;
- Closeable = TRUE ;
- Zoomable = TRUE ;
- Scroll = TRUE ;
- Customize = TRUE ;
- HideWhenDeactivate = TRUE ;
- Border = TRUE ;
- SVLook = TRUE ;
- Size = MAP_APPFONT ( 0 , 0 ) ;
- Align = BOXALIGN_TOP ;
- MenuStrings = TRUE ;
- ItemList =
- {
- ToolBoxItem
- {
- Identifier = SID_AVMEDIA_TOOLBOX;
- HelpID = SID_AVMEDIA_TOOLBOX;
- DropDown = FALSE ;
- Checkable = FALSE ;
- RadioCheck = FALSE ;
- };
- };
-};
-
//
// Ole-Objekt
//
diff --git a/sc/source/ui/formdlg/dwfunctr.src b/sc/source/ui/formdlg/dwfunctr.src
index 6f8a054dd6ff..d9e77c96c8dc 100644
--- a/sc/source/ui/formdlg/dwfunctr.src
+++ b/sc/source/ui/formdlg/dwfunctr.src
@@ -45,6 +45,7 @@ DockingWindow FID_FUNCTION_BOX
HelpId = HID_FUNCTION_BOX ;
ListBox CB_CAT
{
+ HelpID = "sc:ListBox:FID_FUNCTION_BOX:CB_CAT";
Border = TRUE ;
Pos = MAP_APPFONT ( 20 , 4 ) ;
Size = MAP_APPFONT ( 56 , 80 ) ;
@@ -72,6 +73,7 @@ DockingWindow FID_FUNCTION_BOX
};
ListBox DDLB_FUNC
{
+ HelpID = "sc:ListBox:FID_FUNCTION_BOX:DDLB_FUNC";
Border = TRUE ;
Pos = MAP_APPFONT ( 103 , 4 ) ;
Size = MAP_APPFONT ( 56 , 80 ) ;
@@ -82,6 +84,7 @@ DockingWindow FID_FUNCTION_BOX
};
ListBox LB_FUNC
{
+ HelpID = "sc:ListBox:FID_FUNCTION_BOX:LB_FUNC";
Border = TRUE ;
Pos = MAP_APPFONT ( 3 , 19 ) ;
Size = MAP_APPFONT ( 72 , 90 ) ;
@@ -103,6 +106,7 @@ DockingWindow FID_FUNCTION_BOX
};
ImageButton IMB_INSERT
{
+ HelpID = "sc:ImageButton:FID_FUNCTION_BOX:IMB_INSERT";
Pos = MAP_APPFONT ( 3 , 4 ) ;
Size = MAP_APPFONT ( 13 , 13 ) ;
TabStop = TRUE ;
diff --git a/sc/source/ui/inc/docsh.hxx b/sc/source/ui/inc/docsh.hxx
index 5b4fc6227225..19147cfaf61f 100755..100644
--- a/sc/source/ui/inc/docsh.hxx
+++ b/sc/source/ui/inc/docsh.hxx
@@ -215,6 +215,7 @@ public:
virtual BOOL SaveCompleted( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& ); // SfxInPlaceObject
virtual BOOL DoSaveCompleted( SfxMedium * pNewStor); // SfxObjectShell
+ virtual sal_Bool QuerySlotExecutable( USHORT nSlotId );
virtual void Draw( OutputDevice *, const JobSetup & rSetup,
USHORT nAspect = ASPECT_CONTENT );
diff --git a/sc/source/ui/inc/dpcontrol.hxx b/sc/source/ui/inc/dpcontrol.hxx
index 15f0c9174cc8..25cb3e05acac 100644
--- a/sc/source/ui/inc/dpcontrol.hxx
+++ b/sc/source/ui/inc/dpcontrol.hxx
@@ -64,15 +64,17 @@ class ScAccessibleFilterMenu;
class ScDPFieldButton
{
public:
- ScDPFieldButton(OutputDevice* pOutDev, const StyleSettings* pStyle, const Fraction* pZoomX = NULL, const Fraction* pZoomY = NULL);
+ ScDPFieldButton(OutputDevice* pOutDev, const StyleSettings* pStyle, const Fraction* pZoomX = NULL, const Fraction* pZoomY = NULL,
+ ScDocument* pDoc = NULL);
~ScDPFieldButton();
void setText(const ::rtl::OUString& rText);
- void setBoundingBox(const Point& rPos, const Size& rSize);
+ void setBoundingBox(const Point& rPos, const Size& rSize, bool bLayoutRTL);
void setDrawBaseButton(bool b);
void setDrawPopupButton(bool b);
void setHasHiddenMember(bool b);
void setPopupPressed(bool b);
+ void setPopupLeft(bool b);
void draw();
void getPopupBoundingBox(Point& rPos, Size& rSize) const;
@@ -86,12 +88,14 @@ private:
::rtl::OUString maText;
Fraction maZoomX;
Fraction maZoomY;
+ ScDocument* mpDoc;
OutputDevice* mpOutDev;
const StyleSettings* mpStyle;
bool mbBaseButton;
bool mbPopupButton;
bool mbHasHiddenMember;
bool mbPopupPressed;
+ bool mbPopupLeft;
};
// ============================================================================
diff --git a/sc/source/ui/inc/miscdlgs.hrc b/sc/source/ui/inc/miscdlgs.hrc
index becd05165a4e..00b1658849d6 100644
--- a/sc/source/ui/inc/miscdlgs.hrc
+++ b/sc/source/ui/inc/miscdlgs.hrc
@@ -185,5 +185,4 @@
// Tab Bg Color
#define TAB_BG_COLOR_CT_BORDER 1
#define TAB_BG_COLOR_SET_BGDCOLOR 2
-#define TAB_BG_COLOR_GB_BGDCOLOR 3
diff --git a/sc/source/ui/inc/pvlaydlg.hxx b/sc/source/ui/inc/pvlaydlg.hxx
index c74b9e028d2f..e16c3266510e 100644
--- a/sc/source/ui/inc/pvlaydlg.hxx
+++ b/sc/source/ui/inc/pvlaydlg.hxx
@@ -198,6 +198,7 @@ private:
Point DlgPos2WndPos ( const Point& rPt, Window& rWnd );
ScDPLabelData* GetLabelData ( SCsCOL nCol, size_t* pPos = NULL );
String GetLabelString ( SCsCOL nCol );
+ bool IsOrientationAllowed( SCsCOL nCol, ScDPFieldType eType );
String GetFuncString ( USHORT& rFuncMask, BOOL bIsValue = TRUE );
BOOL Contains ( ScDPFuncDataVec* pArr, SCsCOL nCol, size_t& nAt );
void Remove ( ScDPFuncDataVec* pArr, size_t nAt );
diff --git a/sc/source/ui/inc/shtabdlg.hxx b/sc/source/ui/inc/shtabdlg.hxx
index 6c89c43b3a51..00ebb8a7c480 100644
--- a/sc/source/ui/inc/shtabdlg.hxx
+++ b/sc/source/ui/inc/shtabdlg.hxx
@@ -59,7 +59,7 @@ public:
/** Sets dialog title, fixed text for listbox and help IDs. */
void SetDescription(
const String& rTitle, const String& rFixedText,
- ULONG nDlgHelpId, ULONG nLbHelpId );
+ const ::rtl::OString& nDlgHelpId, const rtl::OString& nLbHelpId );
/** Inserts a string into the ListBox. */
void Insert( const String& rString, BOOL bSelected );
diff --git a/sc/source/ui/inc/strindlg.hxx b/sc/source/ui/inc/strindlg.hxx
index 2def127879d5..a3a99684cddc 100644
--- a/sc/source/ui/inc/strindlg.hxx
+++ b/sc/source/ui/inc/strindlg.hxx
@@ -46,7 +46,7 @@ public:
const String& rTitle,
const String& rEditTitle,
const String& rDefault,
- ULONG nHelpId );
+ const rtl::OString& sHelpId, const rtl::OString& sEditHelpId );
~ScStringInputDlg();
void GetInputString( String& rString ) const;
diff --git a/sc/source/ui/inc/tabbgcolordlg.hxx b/sc/source/ui/inc/tabbgcolordlg.hxx
index 4589efdc2bdb..eb6620a8eae4 100644
--- a/sc/source/ui/inc/tabbgcolordlg.hxx
+++ b/sc/source/ui/inc/tabbgcolordlg.hxx
@@ -32,8 +32,12 @@
#define SC_TABBGCOLORDLG_HXX
#include <vcl/dialog.hxx>
+<<<<<<< local
#include <vcl/fixed.hxx>
#include <vcl/button.hxx>
+=======
+#include <vcl/imagebtn.hxx>
+>>>>>>> other
#include <svtools/valueset.hxx>
//------------------------------------------------------------------------
@@ -45,7 +49,7 @@ public:
const String& rTitle,
const String& rTabBgColorNoColorText,
const Color& rDefaultColor,
- ULONG nHelpId );
+ const rtl::OString& nHelpId );
~ScTabBgColorDlg();
void GetSelectedColor( Color& rColor ) const;
@@ -63,13 +67,12 @@ private:
Control aBorderWin;
ScTabBgColorValueSet aTabBgColorSet;
- FixedLine aTabBgColorBox;
OKButton aBtnOk;
CancelButton aBtnCancel;
HelpButton aBtnHelp;
Color aTabBgColor;
const String aTabBgColorNoColorText;
- ULONG mnHelpId;
+ rtl::OString msHelpId;
void FillColorValueSets_Impl();
diff --git a/sc/source/ui/inc/tabvwsh.hxx b/sc/source/ui/inc/tabvwsh.hxx
index b4313c1d7a32..28cc2a823928 100644
--- a/sc/source/ui/inc/tabvwsh.hxx
+++ b/sc/source/ui/inc/tabvwsh.hxx
@@ -144,7 +144,6 @@ private:
ScNavigatorSettings* pNavSettings;
// used in first Activate
- ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue > aPendingUserData;
BOOL bFirstActivate;
BOOL bActiveDrawSh;
diff --git a/sc/source/ui/inc/viewdata.hxx b/sc/source/ui/inc/viewdata.hxx
index 106d196a8175..fb9c674a4488 100644
--- a/sc/source/ui/inc/viewdata.hxx
+++ b/sc/source/ui/inc/viewdata.hxx
@@ -482,6 +482,24 @@ public:
BOOL IsSelCtrlMouseClick() { return bSelCtrlMouseClick; }
static inline long ToPixel( USHORT nTwips, double nFactor );
+
+ /** while (rScrY <= nEndPixels && rPosY <= nEndRow) add pixels of row
+ heights converted with nPPTY to rScrY, optimized for row height
+ segments. Upon return rPosY is the last row evaluated <= nEndRow, rScrY
+ may be > nEndPixels!
+ */
+ static void AddPixelsWhile( long & rScrY, long nEndPixels,
+ SCROW & rPosY, SCROW nEndRow, double nPPTY,
+ const ScDocument * pDoc, SCTAB nTabNo );
+
+ /** while (rScrY <= nEndPixels && rPosY >= nStartRow) add pixels of row
+ heights converted with nPPTY to rScrY, optimized for row height
+ segments. Upon return rPosY is the last row evaluated >= nStartRow,
+ rScrY may be > nEndPixels!
+ */
+ static void AddPixelsWhileBackward( long & rScrY, long nEndPixels,
+ SCROW & rPosY, SCROW nStartRow, double nPPTY,
+ const ScDocument * pDoc, SCTAB nTabNo );
};
diff --git a/sc/source/ui/miscdlgs/acredlin.src b/sc/source/ui/miscdlgs/acredlin.src
index 4baa9f3d388c..269746cf0fa1 100644
--- a/sc/source/ui/miscdlgs/acredlin.src
+++ b/sc/source/ui/miscdlgs/acredlin.src
@@ -29,7 +29,7 @@
ModelessDialog RID_SCDLG_CHANGES
{
OutputSize = TRUE ;
- HelpId = FID_CHG_ACCEPT ;
+ HelpId = CMD_FID_CHG_ACCEPT ;
Hide = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 282 , 142 ) ;
@@ -60,6 +60,7 @@ ModelessDialog RID_SCDLG_CHANGES
};
Edit ED_ASSIGN
{
+ HelpID = "sc:Edit:RID_SCDLG_CHANGES:ED_ASSIGN";
Hide = TRUE ;
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 119 ) ;
@@ -68,6 +69,7 @@ ModelessDialog RID_SCDLG_CHANGES
};
ImageButton RB_ASSIGN
{
+ HelpID = "sc:ImageButton:RID_SCDLG_CHANGES:RB_ASSIGN";
Hide = TRUE ;
Pos = MAP_APPFONT ( 142 , 118 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
diff --git a/sc/source/ui/miscdlgs/anyrefdg.cxx b/sc/source/ui/miscdlgs/anyrefdg.cxx
index 32b3376da9a7..4c544954b2bc 100644
--- a/sc/source/ui/miscdlgs/anyrefdg.cxx
+++ b/sc/source/ui/miscdlgs/anyrefdg.cxx
@@ -690,7 +690,7 @@ ScRefHandler::ScRefHandler( Window &rWindow, SfxBindings* pB/*, SfxChildWindow*
pActiveWin(NULL)
{
m_aHelper.SetWindow(/*this*/&m_rWindow);
- if(m_rWindow.GetHelpId()==0) //Hack, da im SfxModelessDialog die HelpId
+ if(m_rWindow.GetHelpId().getLength()==0) //Hack, da im SfxModelessDialog die HelpId
m_rWindow.SetHelpId(m_rWindow.GetUniqueId()); //fuer einen ModelessDialog entfernt und
//in eine UniqueId gewandelt wird, machen
//wir das an dieser Stelle rueckgaengig.
diff --git a/sc/source/ui/miscdlgs/conflictsdlg.src b/sc/source/ui/miscdlgs/conflictsdlg.src
index 1facf85da95b..1bdec57067f4 100644
--- a/sc/source/ui/miscdlgs/conflictsdlg.src
+++ b/sc/source/ui/miscdlgs/conflictsdlg.src
@@ -52,12 +52,14 @@ ModalDialog RID_SCDLG_CONFLICTS
};
PushButton BTN_KEEPMINE
{
+ HelpID = "sc:PushButton:RID_SCDLG_CONFLICTS:BTN_KEEPMINE";
Pos = MAP_APPFONT ( 72 , 145 ) ;
Size = MAP_APPFONT ( 76 , 14 ) ;
Text [ en-US ] = "Keep ~Mine" ;
};
PushButton BTN_KEEPOTHER
{
+ HelpID = "sc:PushButton:RID_SCDLG_CONFLICTS:BTN_KEEPOTHER";
Pos = MAP_APPFONT ( 190 , 145 ) ;
Size = MAP_APPFONT ( 76 , 14 ) ;
Text [ en-US ] = "Keep ~Other" ;
@@ -69,12 +71,14 @@ ModalDialog RID_SCDLG_CONFLICTS
};
PushButton BTN_KEEPALLMINE
{
+ HelpID = "sc:PushButton:RID_SCDLG_CONFLICTS:BTN_KEEPALLMINE";
Pos = MAP_APPFONT ( 6 , 172 ) ;
Size = MAP_APPFONT ( 104 , 14 ) ;
Text [ en-US ] = "~Keep All Mine" ;
};
PushButton BTN_KEEPALLOTHERS
{
+ HelpID = "sc:PushButton:RID_SCDLG_CONFLICTS:BTN_KEEPALLOTHERS";
Pos = MAP_APPFONT ( 116 , 172 ) ;
Size = MAP_APPFONT ( 104 , 14 ) ;
Text [ en-US ] = "Keep ~All Others" ;
diff --git a/sc/source/ui/miscdlgs/highred.src b/sc/source/ui/miscdlgs/highred.src
index a244a3e2a44e..dd32eb9b4012 100644
--- a/sc/source/ui/miscdlgs/highred.src
+++ b/sc/source/ui/miscdlgs/highred.src
@@ -29,7 +29,7 @@
ModelessDialog RID_SCDLG_HIGHLIGHT_CHANGES
{
OutputSize = TRUE ;
- HelpId = FID_CHG_ACCEPT ;
+ HelpId = CMD_FID_CHG_ACCEPT ;
Hide = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 318 , 148 ) ;
@@ -38,6 +38,7 @@ ModelessDialog RID_SCDLG_HIGHLIGHT_CHANGES
// Dieser Dialog hat einen Cancel-Button !
CheckBox CB_HIGHLIGHT
{
+ HelpID = "sc:CheckBox:RID_SCDLG_HIGHLIGHT_CHANGES:CB_HIGHLIGHT";
Pos = MAP_APPFONT ( 6 , 6 ) ;
Size = MAP_APPFONT ( 150 , 10 ) ;
TabStop = TRUE ;
@@ -51,6 +52,7 @@ ModelessDialog RID_SCDLG_HIGHLIGHT_CHANGES
};
CheckBox CB_HIGHLIGHT_ACCEPT
{
+ HelpID = "sc:CheckBox:RID_SCDLG_HIGHLIGHT_CHANGES:CB_HIGHLIGHT_ACCEPT";
Pos = MAP_APPFONT ( 12 , 118 ) ;
Size = MAP_APPFONT ( 246 , 10 ) ;
TabStop = TRUE ;
@@ -58,6 +60,7 @@ ModelessDialog RID_SCDLG_HIGHLIGHT_CHANGES
};
CheckBox CB_HIGHLIGHT_REJECT
{
+ HelpID = "sc:CheckBox:RID_SCDLG_HIGHLIGHT_CHANGES:CB_HIGHLIGHT_REJECT";
Pos = MAP_APPFONT ( 12 , 132 ) ;
Size = MAP_APPFONT ( 246 , 10 ) ;
TabStop = TRUE ;
@@ -84,6 +87,7 @@ ModelessDialog RID_SCDLG_HIGHLIGHT_CHANGES
};
Edit ED_ASSIGN
{
+ HelpID = "sc:Edit:RID_SCDLG_HIGHLIGHT_CHANGES:ED_ASSIGN";
Hide = TRUE ;
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 119 ) ;
@@ -92,6 +96,7 @@ ModelessDialog RID_SCDLG_HIGHLIGHT_CHANGES
};
ImageButton RB_ASSIGN
{
+ HelpID = "sc:ImageButton:RID_SCDLG_HIGHLIGHT_CHANGES:RB_ASSIGN";
Hide = TRUE ;
Pos = MAP_APPFONT ( 142 , 118 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
diff --git a/sc/source/ui/miscdlgs/instbdlg.src b/sc/source/ui/miscdlgs/instbdlg.src
index 6f64c0de1d62..86b291547284 100644
--- a/sc/source/ui/miscdlgs/instbdlg.src
+++ b/sc/source/ui/miscdlgs/instbdlg.src
@@ -28,6 +28,7 @@
#include "instbdlg.hrc"
ModalDialog RID_SCDLG_INSERT_TABLE
{
+ HelpID = "sc:ModalDialog:RID_SCDLG_INSERT_TABLE";
OutputSize = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 274 , 190 ) ;
@@ -59,6 +60,7 @@ ModalDialog RID_SCDLG_INSERT_TABLE
};
RadioButton RB_BEFORE
{
+ HelpID = "sc:RadioButton:RID_SCDLG_INSERT_TABLE:RB_BEFORE";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 197 , 10 ) ;
TabStop = TRUE ;
@@ -66,6 +68,7 @@ ModalDialog RID_SCDLG_INSERT_TABLE
};
RadioButton RB_BEHIND
{
+ HelpID = "sc:RadioButton:RID_SCDLG_INSERT_TABLE:RB_BEHIND";
Pos = MAP_APPFONT ( 12 , 28 ) ;
Size = MAP_APPFONT ( 197 , 10 ) ;
TabStop = TRUE ;
@@ -79,6 +82,7 @@ ModalDialog RID_SCDLG_INSERT_TABLE
};
RadioButton RB_NEW
{
+ HelpID = "sc:RadioButton:RID_SCDLG_INSERT_TABLE:RB_NEW";
Pos = MAP_APPFONT ( 12 , 55 ) ;
Size = MAP_APPFONT ( 197 , 10 ) ;
Text [ en-US ] = "~New sheet" ;
@@ -91,6 +95,7 @@ ModalDialog RID_SCDLG_INSERT_TABLE
};
NumericField NF_COUNT
{
+ HelpID = "sc:NumericField:RID_SCDLG_INSERT_TABLE:NF_COUNT";
Border = TRUE ;
Pos = MAP_APPFONT ( 72 , 66 ) ;
Size = MAP_APPFONT ( 30 , 12 ) ;
@@ -109,18 +114,21 @@ ModalDialog RID_SCDLG_INSERT_TABLE
};
Edit ED_TABNAME
{
+ HelpID = "sc:Edit:RID_SCDLG_INSERT_TABLE:ED_TABNAME";
Border = TRUE ;
Pos = MAP_APPFONT ( 72 , 82 ) ;
Size = MAP_APPFONT ( 137 , 12 ) ;
};
RadioButton RB_FROMFILE
{
+ HelpID = "sc:RadioButton:RID_SCDLG_INSERT_TABLE:RB_FROMFILE";
Pos = MAP_APPFONT ( 12 , 100 ) ;
Size = MAP_APPFONT ( 197 , 10 ) ;
Text [ en-US ] = "~From file" ;
};
MultiListBox LB_TABLES
{
+ HelpID = "sc:MultiListBox:RID_SCDLG_INSERT_TABLE:LB_TABLES";
SimpleMode = TRUE ;
Border = TRUE ;
Pos = MAP_APPFONT ( 20 , 113 ) ;
@@ -129,12 +137,14 @@ ModalDialog RID_SCDLG_INSERT_TABLE
};
PushButton BTN_BROWSE
{
+ HelpID = "sc:PushButton:RID_SCDLG_INSERT_TABLE:BTN_BROWSE";
Pos = MAP_APPFONT ( 149 , 113 ) ;
Size = MAP_APPFONT ( 60 , 14 ) ;
Text [ en-US ] = "~Browse..." ;
};
CheckBox CB_LINK
{
+ HelpID = "sc:CheckBox:RID_SCDLG_INSERT_TABLE:CB_LINK";
Pos = MAP_APPFONT ( 149 , 131 ) ;
Size = MAP_APPFONT ( 60 , 10 ) ;
/* ### ACHTUNG: Neuer Text in Resource? Ver~knpfen : Ver~knpfen */
diff --git a/sc/source/ui/miscdlgs/linkarea.src b/sc/source/ui/miscdlgs/linkarea.src
index 715d3fd20766..11780c2995fe 100644
--- a/sc/source/ui/miscdlgs/linkarea.src
+++ b/sc/source/ui/miscdlgs/linkarea.src
@@ -29,6 +29,7 @@
ModalDialog RID_SCDLG_LINKAREA
{
+ HelpID = "sc:ModalDialog:RID_SCDLG_LINKAREA";
OutputSize = TRUE ;
SVLook = TRUE ;
Moveable = TRUE ;
@@ -58,6 +59,7 @@ ModalDialog RID_SCDLG_LINKAREA
};
ComboBox CB_URL
{
+ HelpID = "sc:ComboBox:RID_SCDLG_LINKAREA:CB_URL";
Pos = MAP_APPFONT ( 12 , 15 ) ;
Size = MAP_APPFONT ( 174 , 80 ) ;
TabStop = TRUE ;
@@ -65,6 +67,7 @@ ModalDialog RID_SCDLG_LINKAREA
};
PushButton BTN_BROWSE
{
+ HelpID = "sc:PushButton:RID_SCDLG_LINKAREA:BTN_BROWSE";
Pos = MAP_APPFONT ( 190 , 14 ) ;
Size = MAP_APPFONT ( 14 , 14 ) ;
Text = "~..." ;
@@ -84,6 +87,7 @@ ModalDialog RID_SCDLG_LINKAREA
};
MultiListBox LB_RANGES
{
+ HelpID = "sc:MultiListBox:RID_SCDLG_LINKAREA:LB_RANGES";
SimpleMode = TRUE ;
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 74 ) ;
@@ -92,6 +96,7 @@ ModalDialog RID_SCDLG_LINKAREA
};
CheckBox BTN_RELOAD
{
+ HelpID = "sc:CheckBox:RID_SCDLG_LINKAREA:BTN_RELOAD";
Pos = MAP_APPFONT ( 12 , 168 ) ;
Size = MAP_APPFONT ( 100 , 10 ) ;
TabStop = TRUE ;
@@ -99,6 +104,7 @@ ModalDialog RID_SCDLG_LINKAREA
};
NumericField NF_DELAY
{
+ HelpID = "sc:NumericField:RID_SCDLG_LINKAREA:NF_DELAY";
Border = TRUE ;
Pos = MAP_APPFONT ( 113 , 166 ) ;
Size = MAP_APPFONT ( 32 , 12 ) ;
diff --git a/sc/source/ui/miscdlgs/protectiondlg.src b/sc/source/ui/miscdlgs/protectiondlg.src
index 6b62efb4c784..f46cb6700ded 100644
--- a/sc/source/ui/miscdlgs/protectiondlg.src
+++ b/sc/source/ui/miscdlgs/protectiondlg.src
@@ -29,6 +29,7 @@
ModalDialog RID_SCDLG_TABPROTECTION
{
+ HelpID = "sc:ModalDialog:RID_SCDLG_TABPROTECTION";
Text [ en-US ] = "Protect Sheet" ;
Size = MAP_APPFONT ( 220 , 135 ) ;
Moveable = TRUE ;
@@ -53,6 +54,7 @@ ModalDialog RID_SCDLG_TABPROTECTION
CheckBox BTN_PROTECT
{
+ HelpID = "sc:CheckBox:RID_SCDLG_TABPROTECTION:BTN_PROTECT";
Pos = MAP_APPFONT ( 6 , 6 ) ;
Size = MAP_APPFONT ( 150 , 10 );
@@ -69,6 +71,7 @@ ModalDialog RID_SCDLG_TABPROTECTION
Edit ED_PASSWORD1
{
+ HelpID = "sc:Edit:RID_SCDLG_TABPROTECTION:ED_PASSWORD1";
Border = TRUE;
PassWord = TRUE;
Pos = MAP_APPFONT ( 56, 22 );
@@ -85,6 +88,7 @@ ModalDialog RID_SCDLG_TABPROTECTION
Edit ED_PASSWORD2
{
+ HelpID = "sc:Edit:RID_SCDLG_TABPROTECTION:ED_PASSWORD2";
Border = TRUE;
PassWord = TRUE;
Pos = MAP_APPFONT ( 56, 39 );
diff --git a/sc/source/ui/miscdlgs/retypepassdlg.src b/sc/source/ui/miscdlgs/retypepassdlg.src
index 794af9d43ebd..daf563201587 100644
--- a/sc/source/ui/miscdlgs/retypepassdlg.src
+++ b/sc/source/ui/miscdlgs/retypepassdlg.src
@@ -30,6 +30,7 @@
ModalDialog RID_SCDLG_RETYPEPASS
{
+ HelpID = "sc:ModalDialog:RID_SCDLG_RETYPEPASS";
Text [ en-US ] = "Re-type Password" ;
Size = MAP_APPFONT ( 260 , 165 ) ;
Moveable = TRUE ;
@@ -82,6 +83,7 @@ ModalDialog RID_SCDLG_RETYPEPASS
PushButton BTN_RETYPE_DOC
{
+ HelpID = "sc:PushButton:RID_SCDLG_RETYPEPASS:BTN_RETYPE_DOC";
Pos = MAP_APPFONT ( 158, 59 );
Size = MAP_APPFONT ( 30, 14 );
@@ -114,6 +116,7 @@ ModalDialog RID_SCDLG_RETYPEPASS
PushButton BTN_RETYPE_SHEET1
{
+ HelpID = "sc:PushButton:RID_SCDLG_RETYPEPASS:BTN_RETYPE_SHEET1";
Pos = MAP_APPFONT ( 158, 94 );
Size = MAP_APPFONT ( 30, 14 );
@@ -138,6 +141,7 @@ ModalDialog RID_SCDLG_RETYPEPASS
PushButton BTN_RETYPE_SHEET2
{
+ HelpID = "sc:PushButton:RID_SCDLG_RETYPEPASS:BTN_RETYPE_SHEET2";
Pos = MAP_APPFONT ( 158, 110 );
Size = MAP_APPFONT ( 30, 14 );
@@ -162,6 +166,7 @@ ModalDialog RID_SCDLG_RETYPEPASS
PushButton BTN_RETYPE_SHEET3
{
+ HelpID = "sc:PushButton:RID_SCDLG_RETYPEPASS:BTN_RETYPE_SHEET3";
Pos = MAP_APPFONT ( 158, 126 );
Size = MAP_APPFONT ( 30, 14 );
@@ -186,6 +191,7 @@ ModalDialog RID_SCDLG_RETYPEPASS
PushButton BTN_RETYPE_SHEET4
{
+ HelpID = "sc:PushButton:RID_SCDLG_RETYPEPASS:BTN_RETYPE_SHEET4";
Pos = MAP_APPFONT ( 158, 142 );
Size = MAP_APPFONT ( 30, 14 );
@@ -229,6 +235,7 @@ ModalDialog RID_SCDLG_RETYPEPASS
ModalDialog RID_SCDLG_RETYPEPASS_INPUT
{
+ HelpID = "sc:ModalDialog:RID_SCDLG_RETYPEPASS_INPUT";
Text [ en-US ] = "Re-type Password" ;
Size = MAP_APPFONT ( 230 , 110 ) ;
Moveable = TRUE ;
@@ -255,6 +262,7 @@ ModalDialog RID_SCDLG_RETYPEPASS_INPUT
RadioButton BTN_RETYPE_PASSWORD
{
+ HelpID = "sc:RadioButton:RID_SCDLG_RETYPEPASS_INPUT:BTN_RETYPE_PASSWORD";
Pos = MAP_APPFONT ( 11, 10 );
Size = MAP_APPFONT ( 150, 10 );
@@ -271,6 +279,7 @@ ModalDialog RID_SCDLG_RETYPEPASS_INPUT
Edit ED_PASSWORD1
{
+ HelpID = "sc:Edit:RID_SCDLG_RETYPEPASS_INPUT:ED_PASSWORD1";
Border = TRUE;
PassWord = TRUE;
Pos = MAP_APPFONT ( 65, 29 );
@@ -287,6 +296,7 @@ ModalDialog RID_SCDLG_RETYPEPASS_INPUT
Edit ED_PASSWORD2
{
+ HelpID = "sc:Edit:RID_SCDLG_RETYPEPASS_INPUT:ED_PASSWORD2";
Border = TRUE;
PassWord = TRUE;
Pos = MAP_APPFONT ( 65, 44 );
@@ -295,6 +305,7 @@ ModalDialog RID_SCDLG_RETYPEPASS_INPUT
CheckBox BTN_MATCH_OLD_PASSWORD
{
+ HelpID = "sc:CheckBox:RID_SCDLG_RETYPEPASS_INPUT:BTN_MATCH_OLD_PASSWORD";
Pos = MAP_APPFONT ( 20, 65 );
Size = MAP_APPFONT ( 150, 10 );
@@ -303,6 +314,7 @@ ModalDialog RID_SCDLG_RETYPEPASS_INPUT
RadioButton BTN_REMOVE_PASSWORD
{
+ HelpID = "sc:RadioButton:RID_SCDLG_RETYPEPASS_INPUT:BTN_REMOVE_PASSWORD";
Pos = MAP_APPFONT ( 11, 90 );
Size = MAP_APPFONT ( 150, 10 );
diff --git a/sc/source/ui/miscdlgs/scuiautofmt.cxx b/sc/source/ui/miscdlgs/scuiautofmt.cxx
index 55c11e2e1eda..7594dddd914b 100644
--- a/sc/source/ui/miscdlgs/scuiautofmt.cxx
+++ b/sc/source/ui/miscdlgs/scuiautofmt.cxx
@@ -262,7 +262,7 @@ IMPL_LINK( ScAutoFormatDlg, AddHdl, void *, EMPTYARG )
aStrTitle,
aStrLabel,
aFormatName,
- HID_SC_ADD_AUTOFMT );
+ HID_SC_ADD_AUTOFMT, HID_SC_AUTOFMT_NAME );
if ( pDlg->Execute() == RET_OK )
{
@@ -369,7 +369,7 @@ IMPL_LINK( ScAutoFormatDlg, RenameHdl, void *, EMPTYARG )
aStrRename,
aStrLabel,
aFormatName,
- HID_SC_REN_AFMT_DLG );
+ HID_SC_REN_AFMT_DLG, HID_SC_REN_AFMT_NAME );
if( pDlg->Execute() == RET_OK )
{
BOOL bFmtRenamed = FALSE;
diff --git a/sc/source/ui/miscdlgs/sharedocdlg.src b/sc/source/ui/miscdlgs/sharedocdlg.src
index fe55ee58c8e4..2accd0300bbd 100644
--- a/sc/source/ui/miscdlgs/sharedocdlg.src
+++ b/sc/source/ui/miscdlgs/sharedocdlg.src
@@ -30,7 +30,7 @@
ModalDialog RID_SCDLG_SHAREDOCUMENT
{
OutputSize = TRUE ;
- HelpId = SID_SHARE_DOC ;
+ HelpId = CMD_SID_SHARE_DOC ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 204 , 186 ) ;
Text [ en-US ] = "Share Document" ;
@@ -38,6 +38,7 @@ ModalDialog RID_SCDLG_SHAREDOCUMENT
Closeable = TRUE ;
CheckBox CB_SHARE
{
+ HelpID = "sc:CheckBox:RID_SCDLG_SHAREDOCUMENT:CB_SHARE";
Pos = MAP_APPFONT ( 6 , 6 ) ;
Size = MAP_APPFONT ( 192 , 8 ) ;
Text [ en-US ] = "Share this spreadsheet with other users" ;
diff --git a/sc/source/ui/miscdlgs/shtabdlg.cxx b/sc/source/ui/miscdlgs/shtabdlg.cxx
index 7e57ebbe5d60..99f3ba5ad444 100644
--- a/sc/source/ui/miscdlgs/shtabdlg.cxx
+++ b/sc/source/ui/miscdlgs/shtabdlg.cxx
@@ -62,12 +62,12 @@ ScShowTabDlg::ScShowTabDlg( Window* pParent ) :
void ScShowTabDlg::SetDescription(
const String& rTitle, const String& rFixedText,
- ULONG nDlgHelpId, ULONG nLbHelpId )
+ const rtl::OString& rDlgHelpId, const rtl::OString& sLbHelpId )
{
SetText( rTitle );
aFtLbTitle.SetText( rFixedText );
- SetHelpId( nDlgHelpId );
- aLb.SetHelpId( nLbHelpId );
+ SetHelpId( rDlgHelpId );
+ aLb.SetHelpId( sLbHelpId );
}
void ScShowTabDlg::Insert( const String& rString, BOOL bSelected )
diff --git a/sc/source/ui/miscdlgs/strindlg.cxx b/sc/source/ui/miscdlgs/strindlg.cxx
index b8dc2e13538e..db042d9b3a6d 100644
--- a/sc/source/ui/miscdlgs/strindlg.cxx
+++ b/sc/source/ui/miscdlgs/strindlg.cxx
@@ -55,7 +55,7 @@ ScStringInputDlg::ScStringInputDlg( Window* pParent,
const String& rTitle,
const String& rEditTitle,
const String& rDefault,
- ULONG nHelpId ) :
+ const rtl::OString& sHelpId, const rtl::OString& sEditHelpId ) :
ModalDialog ( pParent, ScResId( RID_SCDLG_STRINPUT ) ),
//
aFtEditTitle ( this, ScResId( FT_LABEL ) ),
@@ -64,30 +64,12 @@ ScStringInputDlg::ScStringInputDlg( Window* pParent,
aBtnCancel ( this, ScResId( BTN_CANCEL ) ),
aBtnHelp ( this, ScResId( BTN_HELP ) )
{
- SetHelpId( nHelpId );
+ SetHelpId( sHelpId );
SetText( rTitle );
aFtEditTitle.SetText( rEditTitle );
aEdInput.SetText( rDefault );
aEdInput.SetSelection(Selection(SELECTION_MIN, SELECTION_MAX));
-
- // HelpId for Edit different for different uses
-
- if ( nHelpId == FID_TAB_APPEND )
- aEdInput.SetHelpId( HID_SC_APPEND_NAME );
- else if ( nHelpId == FID_TAB_RENAME )
- aEdInput.SetHelpId( HID_SC_RENAME_NAME );
- else if ( nHelpId == HID_SC_ADD_AUTOFMT )
- aEdInput.SetHelpId( HID_SC_AUTOFMT_NAME );
- else if ( nHelpId == HID_SC_REN_AFMT_DLG )
- aEdInput.SetHelpId( HID_SC_REN_AFMT_NAME );
- else if ( nHelpId == SID_RENAME_OBJECT )
- aEdInput.SetHelpId( HID_SC_RENAME_OBJECT );
- // #i68101#
- else if ( nHelpId == SID_TITLE_DESCRIPTION_OBJECT )
- aEdInput.SetHelpId( HID_SC_TITLE_DESCRIPTION_OBJECT );
- else
- DBG_ERRORFILE( "unknown ID" );
-
+ aEdInput.SetHelpId( sEditHelpId );
//-------------
FreeResource();
}
diff --git a/sc/source/ui/miscdlgs/tabbgcolordlg.cxx b/sc/source/ui/miscdlgs/tabbgcolordlg.cxx
index fdc4c9fd34bf..1c929ea93f99 100644
--- a/sc/source/ui/miscdlgs/tabbgcolordlg.cxx
+++ b/sc/source/ui/miscdlgs/tabbgcolordlg.cxx
@@ -39,14 +39,15 @@
#include "scresid.hxx"
#include "miscdlgs.hrc"
-#include "tools/debug.hxx"
-#include "tools/color.hxx"
-#include "sfx2/objsh.hxx"
-#include "svx/xtable.hxx"
-#include "svx/drawitem.hxx"
-#include "unotools/pathoptions.hxx"
-#include "tools/resid.hxx"
-#include "editeng/editrids.hrc"
+#include <tools/debug.hxx>
+#include <tools/color.hxx>
+#include <sfx2/objsh.hxx>
+#include <svx/xtable.hxx>
+#include <svx/drawitem.hxx>
+#include <unotools/pathoptions.hxx>
+#include <tools/resid.hxx>
+#include <editeng/editrids.hrc>
+#include <editeng/eerdll.hxx>
#include <boost/scoped_ptr.hpp>
@@ -58,24 +59,22 @@ ScTabBgColorDlg::ScTabBgColorDlg( Window* pParent,
const String& rTitle,
const String& rTabBgColorNoColorText,
const Color& rDefaultColor,
- ULONG nHelpId ) :
+ const rtl::OString& sHelpId ) :
ModalDialog ( pParent, ScResId( RID_SCDLG_TAB_BG_COLOR ) ),
aBorderWin ( this, ScResId( TAB_BG_COLOR_CT_BORDER ) ),
aTabBgColorSet ( &aBorderWin, ScResId( TAB_BG_COLOR_SET_BGDCOLOR ), this ),
- aTabBgColorBox ( this, ScResId( TAB_BG_COLOR_GB_BGDCOLOR ) ),
aBtnOk ( this, ScResId( BTN_OK ) ),
aBtnCancel ( this, ScResId( BTN_CANCEL ) ),
aBtnHelp ( this, ScResId( BTN_HELP ) ),
aTabBgColor ( rDefaultColor ),
aTabBgColorNoColorText ( rTabBgColorNoColorText ),
- mnHelpId ( nHelpId )
+ msHelpId ( sHelpId )
{
- SetHelpId( nHelpId );
+ SetHelpId( sHelpId );
this->SetText( rTitle );
this->SetStyle(GetStyle() | WB_BORDER | WB_STDFLOATWIN | WB_3DLOOK | WB_DIALOGCONTROL | WB_SYSTEMWINDOW | WB_STANDALONE | WB_HIDE);
- aTabBgColorBox.SetText(rTitle);
FillColorValueSets_Impl();
aTabBgColorSet.SetDoubleClickHdl( HDL(TabBgColorDblClickHdl_Impl) );
aBtnOk.SetClickHdl( HDL(TabBgColorOKHdl_Impl) );
@@ -120,7 +119,7 @@ void ScTabBgColorDlg::FillColorValueSets_Impl()
long nCount = pColorTable->Count();
XColorEntry* pEntry = NULL;
Color aColWhite( COL_WHITE );
- String aStrWhite( ScResId( RID_SVXITEMS_COLOR_WHITE ) );
+ String aStrWhite( EditResId( RID_SVXITEMS_COLOR_WHITE ) );
WinBits nBits = ( aTabBgColorSet.GetStyle() | WB_NAMEFIELD | WB_ITEMBORDER | WB_NONEFIELD | WB_3DLOOK | WB_NO_DIRECTSELECT | WB_NOPOINTERFOCUS);
aTabBgColorSet.SetText( aTabBgColorNoColorText );
aTabBgColorSet.SetStyle( nBits );
diff --git a/sc/source/ui/pagedlg/hfedtdlg.src b/sc/source/ui/pagedlg/hfedtdlg.src
index 1445636e8cc6..a0892545f2eb 100644
--- a/sc/source/ui/pagedlg/hfedtdlg.src
+++ b/sc/source/ui/pagedlg/hfedtdlg.src
@@ -70,13 +70,13 @@ TabDialog RID_SCDLG_HFED_HEADER
{
Identifier = 1 ;
HEADER_RIGHT
- PageResID = HID_SCPAGE_HFED_HR ;
+ PageResID = RID_SCPAGE_HFED_HR ;
};
PageItem
{
Identifier = 2 ;
HEADER_LEFT
- PageResID = HID_SCPAGE_HFED_HL ;
+ PageResID = RID_SCPAGE_HFED_HL ;
};
};
};
@@ -101,13 +101,13 @@ TabDialog RID_SCDLG_HFED_FOOTER
{
Identifier = 1 ;
FOOTER_RIGHT
- PageResID = HID_SCPAGE_HFED_FR ;
+ PageResID = RID_SCPAGE_HFED_FR ;
};
PageItem
{
Identifier = 2 ;
FOOTER_LEFT
- PageResID = HID_SCPAGE_HFED_FL ;
+ PageResID = RID_SCPAGE_HFED_FL ;
};
};
};
@@ -135,25 +135,25 @@ TabDialog RID_SCDLG_HFEDIT_ALL
{
Identifier = 1 ;
HEADER_RIGHT
- PageResID = HID_SCPAGE_HFED_HR ;
+ PageResID = RID_SCPAGE_HFED_HR ;
};
PageItem
{
Identifier = 2 ;
HEADER_LEFT
- PageResID = HID_SCPAGE_HFED_HL ;
+ PageResID = RID_SCPAGE_HFED_HL ;
};
PageItem
{
Identifier = 3 ;
FOOTER_RIGHT
- PageResID = HID_SCPAGE_HFED_FR ;
+ PageResID = RID_SCPAGE_HFED_FR ;
};
PageItem
{
Identifier = 4 ;
FOOTER_LEFT
- PageResID = HID_SCPAGE_HFED_FL ;
+ PageResID = RID_SCPAGE_HFED_FL ;
};
};
};
@@ -178,19 +178,19 @@ TabDialog RID_SCDLG_HFEDIT_SHDR
{
Identifier = 1 ;
HEADER
- PageResID = HID_SCPAGE_HFED_HR ;
+ PageResID = RID_SCPAGE_HFED_HR ;
};
PageItem
{
Identifier = 2 ;
FOOTER_RIGHT
- PageResID = HID_SCPAGE_HFED_FR ;
+ PageResID = RID_SCPAGE_HFED_FR ;
};
PageItem
{
Identifier = 3 ;
FOOTER_LEFT
- PageResID = HID_SCPAGE_HFED_FL ;
+ PageResID = RID_SCPAGE_HFED_FL ;
};
};
};
@@ -215,19 +215,19 @@ TabDialog RID_SCDLG_HFEDIT_SFTR
{
Identifier = 1 ;
HEADER_RIGHT
- PageResID = HID_SCPAGE_HFED_HR ;
+ PageResID = RID_SCPAGE_HFED_HR ;
};
PageItem
{
Identifier = 2 ;
HEADER_LEFT
- PageResID = HID_SCPAGE_HFED_HL ;
+ PageResID = RID_SCPAGE_HFED_HL ;
};
PageItem
{
Identifier = 3 ;
FOOTER
- PageResID = HID_SCPAGE_HFED_FR ;
+ PageResID = RID_SCPAGE_HFED_FR ;
};
};
};
@@ -252,13 +252,13 @@ TabDialog RID_SCDLG_HFEDIT
{
Identifier = 1 ;
HEADER
- PageResID = HID_SCPAGE_HFED_HR ;
+ PageResID = RID_SCPAGE_HFED_HR ;
};
PageItem
{
Identifier = 2 ;
FOOTER
- PageResID = HID_SCPAGE_HFED_FR ;
+ PageResID = RID_SCPAGE_HFED_FR ;
};
};
};
@@ -283,13 +283,13 @@ TabDialog RID_SCDLG_HFEDIT_HEADER
{
Identifier = 1 ;
HEADER_RIGHT
- PageResID = HID_SCPAGE_HFED_HR ;
+ PageResID = RID_SCPAGE_HFED_HR ;
};
PageItem
{
Identifier = 2 ;
HEADER_LEFT
- PageResID = HID_SCPAGE_HFED_HL ;
+ PageResID = RID_SCPAGE_HFED_HL ;
};
};
};
@@ -314,13 +314,13 @@ TabDialog RID_SCDLG_HFEDIT_FOOTER
{
Identifier = 1 ;
FOOTER_RIGHT
- PageResID = HID_SCPAGE_HFED_FR ;
+ PageResID = RID_SCPAGE_HFED_FR ;
};
PageItem
{
Identifier = 2 ;
FOOTER_LEFT
- PageResID = HID_SCPAGE_HFED_FL ;
+ PageResID = RID_SCPAGE_HFED_FL ;
};
};
};
@@ -345,7 +345,7 @@ TabDialog RID_SCDLG_HFEDIT_RIGHTHEADER
{
Identifier = 1 ;
HEADER_RIGHT
- PageResID = HID_SCPAGE_HFED_HR ;
+ PageResID = RID_SCPAGE_HFED_HR ;
};
};
};
@@ -370,7 +370,7 @@ TabDialog RID_SCDLG_HFEDIT_LEFTHEADER
{
Identifier = 1 ;
HEADER_LEFT
- PageResID = HID_SCPAGE_HFED_HL ;
+ PageResID = RID_SCPAGE_HFED_HL ;
};
};
};
@@ -395,7 +395,7 @@ TabDialog RID_SCDLG_HFEDIT_RIGHTFOOTER
{
Identifier = 1 ;
FOOTER_RIGHT
- PageResID = HID_SCPAGE_HFED_FR ;
+ PageResID = RID_SCPAGE_HFED_FR ;
};
};
};
@@ -420,7 +420,7 @@ TabDialog RID_SCDLG_HFEDIT_LEFTFOOTER
{
Identifier = 1 ;
FOOTER_LEFT
- PageResID = HID_SCPAGE_HFED_FL ;
+ PageResID = RID_SCPAGE_HFED_FL ;
};
};
};
@@ -489,6 +489,7 @@ TabPage RID_HFBASE
/* #i84123# list box needs own help id, which is set in the derived tab pages
ListBox LB_DEFINED
{
+ HelpID = "sc:ListBox:RID_HFBASE:LB_DEFINED";
Border = TRUE ;
Pos = MAP_APPFONT ( 90 , 100 ) ;
Size = MAP_APPFONT ( 130 , 80 ) ;
diff --git a/sc/source/ui/pagedlg/pagedlg.src b/sc/source/ui/pagedlg/pagedlg.src
index d0f95c3d9f6b..070da19e8076 100644
--- a/sc/source/ui/pagedlg/pagedlg.src
+++ b/sc/source/ui/pagedlg/pagedlg.src
@@ -59,6 +59,7 @@ ModelessDialog RID_SCDLG_AREAS
};
ListBox LB_PRINTAREA
{
+ HelpID = "sc:ListBox:RID_SCDLG_AREAS:LB_PRINTAREA";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 90 , 60 ) ;
@@ -73,12 +74,14 @@ ModelessDialog RID_SCDLG_AREAS
};
Edit ED_PRINTAREA
{
+ HelpID = "sc:Edit:RID_SCDLG_AREAS:ED_PRINTAREA";
Border = TRUE ;
Pos = MAP_APPFONT ( 106 , 14 ) ;
Size = MAP_APPFONT ( 131 , 12 ) ;
};
ImageButton RB_PRINTAREA
{
+ HelpID = "sc:ImageButton:RID_SCDLG_AREAS:RB_PRINTAREA";
Pos = MAP_APPFONT ( 239 , 13 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -92,6 +95,7 @@ ModelessDialog RID_SCDLG_AREAS
};
ListBox LB_REPEATROW
{
+ HelpID = "sc:ListBox:RID_SCDLG_AREAS:LB_REPEATROW";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 43 ) ;
Size = MAP_APPFONT ( 90 , 60 ) ;
@@ -104,12 +108,14 @@ ModelessDialog RID_SCDLG_AREAS
};
Edit ED_REPEATROW
{
+ HelpID = "sc:Edit:RID_SCDLG_AREAS:ED_REPEATROW";
Border = TRUE ;
Pos = MAP_APPFONT ( 106 , 43 ) ;
Size = MAP_APPFONT ( 131 , 12 ) ;
};
ImageButton RB_REPEATROW
{
+ HelpID = "sc:ImageButton:RID_SCDLG_AREAS:RB_REPEATROW";
Pos = MAP_APPFONT ( 239 , 42 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -123,6 +129,7 @@ ModelessDialog RID_SCDLG_AREAS
};
ListBox LB_REPEATCOL
{
+ HelpID = "sc:ListBox:RID_SCDLG_AREAS:LB_REPEATCOL";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 72 ) ;
Size = MAP_APPFONT ( 90 , 60 ) ;
@@ -135,12 +142,14 @@ ModelessDialog RID_SCDLG_AREAS
};
Edit ED_REPEATCOL
{
+ HelpID = "sc:Edit:RID_SCDLG_AREAS:ED_REPEATCOL";
Border = TRUE ;
Pos = MAP_APPFONT ( 106 , 72 ) ;
Size = MAP_APPFONT ( 131 , 12 ) ;
};
ImageButton RB_REPEATCOL
{
+ HelpID = "sc:ImageButton:RID_SCDLG_AREAS:RB_REPEATCOL";
Pos = MAP_APPFONT ( 239 , 71 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -156,6 +165,7 @@ TabPage RID_SCPAGE_TABLE
Size = MAP_APPFONT ( 260 , 185 ) ;
CheckBox BTN_HEADER
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_TABLE:BTN_HEADER";
Pos = MAP_APPFONT ( 12 , 73 ) ;
Size = MAP_APPFONT ( 142 , 10 ) ;
Text [ en-US ] = "~Column and row headers" ;
@@ -163,6 +173,7 @@ TabPage RID_SCPAGE_TABLE
};
CheckBox BTN_GRID
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_TABLE:BTN_GRID";
Pos = MAP_APPFONT ( 12 , 87 ) ;
Size = MAP_APPFONT ( 142 , 10 ) ;
Text [ en-US ] = "~Grid" ;
@@ -170,6 +181,7 @@ TabPage RID_SCPAGE_TABLE
};
CheckBox BTN_NOTES
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_TABLE:BTN_NOTES";
Pos = MAP_APPFONT ( 12 , 101 ) ;
Size = MAP_APPFONT ( 142 , 10 ) ;
Text [ en-US ] = "~Comments" ;
@@ -177,6 +189,7 @@ TabPage RID_SCPAGE_TABLE
};
CheckBox BTN_OBJECTS
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_TABLE:BTN_OBJECTS";
Pos = MAP_APPFONT ( 12 , 115 ) ;
Size = MAP_APPFONT ( 142 , 10 ) ;
Text [ en-US ] = "~Objects/graphics" ;
@@ -184,6 +197,7 @@ TabPage RID_SCPAGE_TABLE
};
CheckBox BTN_CHARTS
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_TABLE:BTN_CHARTS";
Pos = MAP_APPFONT ( 160 , 73 ) ;
Size = MAP_APPFONT ( 91 , 10 ) ;
Text [ en-US ] = "Ch~arts" ;
@@ -191,6 +205,7 @@ TabPage RID_SCPAGE_TABLE
};
CheckBox BTN_DRAWINGS
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_TABLE:BTN_DRAWINGS";
Pos = MAP_APPFONT ( 160 , 87 ) ;
Size = MAP_APPFONT ( 91 , 10 ) ;
Text [ en-US ] = "~Drawing objects" ;
@@ -198,6 +213,7 @@ TabPage RID_SCPAGE_TABLE
};
CheckBox BTN_FORMULAS
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_TABLE:BTN_FORMULAS";
Pos = MAP_APPFONT ( 160 , 101 ) ;
Size = MAP_APPFONT ( 91 , 10 ) ;
Text [ en-US ] = "~Formulas" ;
@@ -205,6 +221,7 @@ TabPage RID_SCPAGE_TABLE
};
CheckBox BTN_NULLVALS
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_TABLE:BTN_NULLVALS";
Pos = MAP_APPFONT ( 160 , 115 ) ;
Size = MAP_APPFONT ( 91 , 10 ) ;
Text [ en-US ] = "Zero ~values" ;
@@ -218,6 +235,7 @@ TabPage RID_SCPAGE_TABLE
};
RadioButton BTN_TOPDOWN
{
+ HelpID = "sc:RadioButton:RID_SCPAGE_TABLE:BTN_TOPDOWN";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 142 , 10 ) ;
Text [ en-US ] = "~Top to bottom, then right" ;
@@ -225,6 +243,7 @@ TabPage RID_SCPAGE_TABLE
};
RadioButton BTN_LEFTRIGHT
{
+ HelpID = "sc:RadioButton:RID_SCPAGE_TABLE:BTN_LEFTRIGHT";
Pos = MAP_APPFONT ( 12 , 28 ) ;
Size = MAP_APPFONT ( 142 , 10 ) ;
Text [ en-US ] = "~Left to right, then down" ;
@@ -257,6 +276,7 @@ TabPage RID_SCPAGE_TABLE
};
CheckBox BTN_PAGENO
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_TABLE:BTN_PAGENO";
Pos = MAP_APPFONT ( 12 , 46 ) ;
Size = MAP_APPFONT ( 90 , 10 ) ;
Text [ en-US ] = "First ~page number" ;
@@ -264,6 +284,7 @@ TabPage RID_SCPAGE_TABLE
};
NumericField ED_PAGENO
{
+ HelpID = "sc:NumericField:RID_SCPAGE_TABLE:ED_PAGENO";
Border = TRUE ;
Pos = MAP_APPFONT ( 106 , 44 ) ;
Size = MAP_APPFONT ( 30 , 12 ) ;
@@ -288,6 +309,7 @@ TabPage RID_SCPAGE_TABLE
};
ListBox LB_SCALEMODE
{
+ HelpID = "sc:ListBox:RID_SCPAGE_TABLE:LB_SCALEMODE";
Border = TRUE;
Pos = MAP_APPFONT( 12, 155 );
Size = MAP_APPFONT( 124, 60 );
@@ -301,6 +323,7 @@ TabPage RID_SCPAGE_TABLE
};
MetricField ED_SCALEALL
{
+ HelpID = "sc:MetricField:RID_SCPAGE_TABLE:ED_SCALEALL";
Border = TRUE ;
Pos = MAP_APPFONT ( 218 , 155 ) ;
Size = MAP_APPFONT ( 30 , 12 ) ;
@@ -317,6 +340,7 @@ TabPage RID_SCPAGE_TABLE
};
NumericField ED_SCALEPAGEWIDTH
{
+ HelpID = "sc:NumericField:RID_SCPAGE_TABLE:ED_SCALEPAGEWIDTH";
Border = TRUE ;
Pos = MAP_APPFONT ( 218 , 144 ) ;
Size = MAP_APPFONT ( 30 , 12 ) ;
@@ -330,6 +354,7 @@ TabPage RID_SCPAGE_TABLE
};
NumericField ED_SCALEPAGEHEIGHT
{
+ HelpID = "sc:NumericField:RID_SCPAGE_TABLE:ED_SCALEPAGEHEIGHT";
Border = TRUE ;
Pos = MAP_APPFONT ( 218 , 160 ) ;
Size = MAP_APPFONT ( 30 , 12 ) ;
@@ -343,6 +368,7 @@ TabPage RID_SCPAGE_TABLE
};
NumericField ED_SCALEPAGENUM
{
+ HelpID = "sc:NumericField:RID_SCPAGE_TABLE:ED_SCALEPAGENUM";
Border = TRUE ;
Pos = MAP_APPFONT ( 218 , 155 ) ;
Size = MAP_APPFONT ( 30 , 12 ) ;
diff --git a/sc/source/ui/src/attrdlg.src b/sc/source/ui/src/attrdlg.src
index ae130f7e8a96..af14f7362cb3 100644
--- a/sc/source/ui/src/attrdlg.src
+++ b/sc/source/ui/src/attrdlg.src
@@ -109,6 +109,7 @@ TabPage RID_SCPAGE_PROTECTION
Size = MAP_APPFONT ( 260 , 185 ) ;
TriStateBox BTN_PROTECTED
{
+ HelpID = "sc:TriStateBox:RID_SCPAGE_PROTECTION:BTN_PROTECTED";
Pos = MAP_APPFONT ( 22 , 28 ) ;
Size = MAP_APPFONT ( 90 , 10 ) ;
Text [ en-US ] = "~Protected" ;
@@ -116,6 +117,7 @@ TabPage RID_SCPAGE_PROTECTION
};
TriStateBox BTN_HIDE_FORMULAR
{
+ HelpID = "sc:TriStateBox:RID_SCPAGE_PROTECTION:BTN_HIDE_FORMULAR";
Pos = MAP_APPFONT ( 22 , 42 ) ;
Size = MAP_APPFONT ( 90 , 10 ) ;
Text [ en-US ] = "Hide ~formula" ;
@@ -123,6 +125,7 @@ TabPage RID_SCPAGE_PROTECTION
};
TriStateBox BTN_HIDE_ALL
{
+ HelpID = "sc:TriStateBox:RID_SCPAGE_PROTECTION:BTN_HIDE_ALL";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 100 , 10 ) ;
Text [ en-US ] = "Hide ~all" ;
@@ -143,6 +146,7 @@ TabPage RID_SCPAGE_PROTECTION
};
TriStateBox BTN_HIDE_PRINT
{
+ HelpID = "sc:TriStateBox:RID_SCPAGE_PROTECTION:BTN_HIDE_PRINT";
Pos = MAP_APPFONT ( 12 , 87 ) ;
Size = MAP_APPFONT ( 100 , 10 ) ;
Text [ en-US ] = "Hide ~when printing" ;
diff --git a/sc/source/ui/src/autofmt.src b/sc/source/ui/src/autofmt.src
index cb56f6ac85a4..2288c96a257c 100644
--- a/sc/source/ui/src/autofmt.src
+++ b/sc/source/ui/src/autofmt.src
@@ -30,7 +30,7 @@
ModalDialog RID_SCDLG_AUTOFORMAT
{
OutputSize = TRUE ;
- HelpId = SID_AUTOFORMAT ;
+ HelpId = CMD_SID_AUTOFORMAT ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 312 , 121 ) ;
/* ### ACHTUNG: Neuer Text in Resource? AutoFormat : Autoformat */
@@ -40,6 +40,7 @@ ModalDialog RID_SCDLG_AUTOFORMAT
Closeable = FALSE ;
ListBox LB_FORMAT
{
+ HelpID = "sc:ListBox:RID_SCDLG_AUTOFORMAT:LB_FORMAT";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 70 , 101 ) ;
@@ -59,6 +60,7 @@ ModalDialog RID_SCDLG_AUTOFORMAT
};
CheckBox BTN_ADJUST
{
+ HelpID = "sc:CheckBox:RID_SCDLG_AUTOFORMAT:BTN_ADJUST";
Hide = TRUE ;
Pos = MAP_APPFONT ( 172 , 146 ) ;
Size = MAP_APPFONT ( 75 , 10 ) ;
@@ -68,6 +70,7 @@ ModalDialog RID_SCDLG_AUTOFORMAT
};
CheckBox BTN_BORDER
{
+ HelpID = "sc:CheckBox:RID_SCDLG_AUTOFORMAT:BTN_BORDER";
Hide = TRUE ;
Pos = MAP_APPFONT ( 12 , 146 ) ;
Size = MAP_APPFONT ( 75 , 10 ) ;
@@ -76,6 +79,7 @@ ModalDialog RID_SCDLG_AUTOFORMAT
};
CheckBox BTN_FONT
{
+ HelpID = "sc:CheckBox:RID_SCDLG_AUTOFORMAT:BTN_FONT";
Hide = TRUE ;
Pos = MAP_APPFONT ( 93 , 132 ) ;
Size = MAP_APPFONT ( 73 , 10 ) ;
@@ -84,6 +88,7 @@ ModalDialog RID_SCDLG_AUTOFORMAT
};
CheckBox BTN_PATTERN
{
+ HelpID = "sc:CheckBox:RID_SCDLG_AUTOFORMAT:BTN_PATTERN";
Hide = TRUE ;
Pos = MAP_APPFONT ( 93 , 146 ) ;
Size = MAP_APPFONT ( 73 , 10 ) ;
@@ -92,6 +97,7 @@ ModalDialog RID_SCDLG_AUTOFORMAT
};
CheckBox BTN_ALIGNMENT
{
+ HelpID = "sc:CheckBox:RID_SCDLG_AUTOFORMAT:BTN_ALIGNMENT";
Hide = TRUE ;
Pos = MAP_APPFONT ( 172 , 132 ) ;
Size = MAP_APPFONT ( 75 , 10 ) ;
@@ -100,6 +106,7 @@ ModalDialog RID_SCDLG_AUTOFORMAT
};
CheckBox BTN_NUMFORMAT
{
+ HelpID = "sc:CheckBox:RID_SCDLG_AUTOFORMAT:BTN_NUMFORMAT";
Hide = TRUE ;
Pos = MAP_APPFONT ( 12 , 132 ) ;
Size = MAP_APPFONT ( 75 , 10 ) ;
@@ -128,6 +135,7 @@ ModalDialog RID_SCDLG_AUTOFORMAT
};
MoreButton BTN_MORE
{
+ HelpID = "sc:MoreButton:RID_SCDLG_AUTOFORMAT:BTN_MORE";
Pos = MAP_APPFONT ( 256 , 101 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
@@ -136,6 +144,7 @@ ModalDialog RID_SCDLG_AUTOFORMAT
};
PushButton BTN_ADD
{
+ HelpID = "sc:PushButton:RID_SCDLG_AUTOFORMAT:BTN_ADD";
Pos = MAP_APPFONT ( 256 , 63 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
/* ### ACHTUNG: Neuer Text in Resource? ~Einfgen... : ~Einfgen... */
@@ -144,6 +153,7 @@ ModalDialog RID_SCDLG_AUTOFORMAT
};
PushButton BTN_REMOVE
{
+ HelpID = "sc:PushButton:RID_SCDLG_AUTOFORMAT:BTN_REMOVE";
Pos = MAP_APPFONT ( 256 , 81 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
/* ### ACHTUNG: Neuer Text in Resource? ~Lschen : ~Lschen */
diff --git a/sc/source/ui/src/condfrmt.src b/sc/source/ui/src/condfrmt.src
index 3018cc867e0d..4cd79a2ffc3d 100644
--- a/sc/source/ui/src/condfrmt.src
+++ b/sc/source/ui/src/condfrmt.src
@@ -37,6 +37,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
Hide = TRUE ;
CheckBox CBX_COND1
{
+ HelpID = "sc:CheckBox:RID_SCDLG_CONDFORMAT:CBX_COND1";
Pos = MAP_APPFONT ( 6 , 6 ) ;
Size = MAP_APPFONT ( 248 , 10 ) ;
TabStop = TRUE ;
@@ -44,6 +45,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
ListBox LB_COND1_1
{
+ HelpID = "sc:ListBox:RID_SCDLG_CONDFORMAT:LB_COND1_1";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 19 ) ;
Size = MAP_APPFONT ( 48 , 40 ) ;
@@ -57,6 +59,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
ListBox LB_COND1_2
{
+ HelpID = "sc:ListBox:RID_SCDLG_CONDFORMAT:LB_COND1_2";
Border = TRUE ;
Pos = MAP_APPFONT ( 58 , 19 ) ;
Size = MAP_APPFONT ( 62 , 88 ) ;
@@ -76,6 +79,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
Edit EDT_COND1_1
{
+ HelpID = "sc:Edit:RID_SCDLG_CONDFORMAT:EDT_COND1_1";
Border = TRUE ;
Pos = MAP_APPFONT ( 124 , 19 ) ;
Size = MAP_APPFONT ( 41 , 12 ) ;
@@ -83,6 +87,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
ImageButton RB_COND1_1
{
+ HelpID = "sc:ImageButton:RID_SCDLG_CONDFORMAT:RB_COND1_1";
Pos = MAP_APPFONT ( 167 , 18 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -97,6 +102,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
Edit EDT_COND1_2
{
+ HelpID = "sc:Edit:RID_SCDLG_CONDFORMAT:EDT_COND1_2";
Border = TRUE ;
Pos = MAP_APPFONT ( 199 , 19 ) ;
Size = MAP_APPFONT ( 41 , 12 ) ;
@@ -104,6 +110,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
ImageButton RB_COND1_2
{
+ HelpID = "sc:ImageButton:RID_SCDLG_CONDFORMAT:RB_COND1_2";
Pos = MAP_APPFONT ( 242 , 18 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -118,6 +125,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
ListBox LB_COND1_TEMPLATE
{
+ HelpID = "sc:ListBox:RID_SCDLG_CONDFORMAT:LB_COND1_TEMPLATE";
Border = TRUE ;
Pos = MAP_APPFONT ( 58 , 35 ) ;
Size = MAP_APPFONT ( 62 , 80 ) ;
@@ -127,6 +135,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
PushButton BTN_COND1_NEW
{
+ HelpID = "sc:PushButton:RID_SCDLG_CONDFORMAT:BTN_COND1_NEW";
Pos = MAP_APPFONT ( 124 , 34 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
@@ -139,6 +148,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
CheckBox CBX_COND2
{
+ HelpID = "sc:CheckBox:RID_SCDLG_CONDFORMAT:CBX_COND2";
Pos = MAP_APPFONT ( 6 , 60 ) ;
Size = MAP_APPFONT ( 248 , 10 ) ;
TabStop = TRUE ;
@@ -146,6 +156,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
ListBox LB_COND2_1
{
+ HelpID = "sc:ListBox:RID_SCDLG_CONDFORMAT:LB_COND2_1";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 73 ) ;
Size = MAP_APPFONT ( 48 , 40 ) ;
@@ -159,6 +170,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
ListBox LB_COND2_2
{
+ HelpID = "sc:ListBox:RID_SCDLG_CONDFORMAT:LB_COND2_2";
Border = TRUE ;
Pos = MAP_APPFONT ( 58 , 73 ) ;
Size = MAP_APPFONT ( 62 , 88 ) ;
@@ -178,6 +190,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
Edit EDT_COND2_1
{
+ HelpID = "sc:Edit:RID_SCDLG_CONDFORMAT:EDT_COND2_1";
Border = TRUE ;
Pos = MAP_APPFONT ( 124 , 73 ) ;
Size = MAP_APPFONT ( 41 , 12 ) ;
@@ -185,6 +198,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
ImageButton RB_COND2_1
{
+ HelpID = "sc:ImageButton:RID_SCDLG_CONDFORMAT:RB_COND2_1";
Pos = MAP_APPFONT ( 167 , 72 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -199,6 +213,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
Edit EDT_COND2_2
{
+ HelpID = "sc:Edit:RID_SCDLG_CONDFORMAT:EDT_COND2_2";
Border = TRUE ;
Pos = MAP_APPFONT ( 199 , 73 ) ;
Size = MAP_APPFONT ( 41 , 12 ) ;
@@ -206,6 +221,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
ImageButton RB_COND2_2
{
+ HelpID = "sc:ImageButton:RID_SCDLG_CONDFORMAT:RB_COND2_2";
Pos = MAP_APPFONT ( 242 , 72 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -220,6 +236,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
ListBox LB_COND2_TEMPLATE
{
+ HelpID = "sc:ListBox:RID_SCDLG_CONDFORMAT:LB_COND2_TEMPLATE";
Border = TRUE ;
Pos = MAP_APPFONT ( 58 , 89 ) ;
Size = MAP_APPFONT ( 62 , 80 ) ;
@@ -229,6 +246,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
PushButton BTN_COND2_NEW
{
+ HelpID = "sc:PushButton:RID_SCDLG_CONDFORMAT:BTN_COND2_NEW";
Pos = MAP_APPFONT ( 124 , 88 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
@@ -241,6 +259,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
CheckBox CBX_COND3
{
+ HelpID = "sc:CheckBox:RID_SCDLG_CONDFORMAT:CBX_COND3";
Pos = MAP_APPFONT ( 6 , 114 ) ;
Size = MAP_APPFONT ( 248 , 10 ) ;
TabStop = TRUE ;
@@ -248,6 +267,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
ListBox LB_COND3_1
{
+ HelpID = "sc:ListBox:RID_SCDLG_CONDFORMAT:LB_COND3_1";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 127 ) ;
Size = MAP_APPFONT ( 48 , 40 ) ;
@@ -261,6 +281,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
ListBox LB_COND3_2
{
+ HelpID = "sc:ListBox:RID_SCDLG_CONDFORMAT:LB_COND3_2";
Border = TRUE ;
Pos = MAP_APPFONT ( 58 , 127 ) ;
Size = MAP_APPFONT ( 62 , 88 ) ;
@@ -280,6 +301,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
Edit EDT_COND3_1
{
+ HelpID = "sc:Edit:RID_SCDLG_CONDFORMAT:EDT_COND3_1";
Border = TRUE ;
Pos = MAP_APPFONT ( 124 , 127 ) ;
Size = MAP_APPFONT ( 41 , 12 ) ;
@@ -287,6 +309,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
ImageButton RB_COND3_1
{
+ HelpID = "sc:ImageButton:RID_SCDLG_CONDFORMAT:RB_COND3_1";
Pos = MAP_APPFONT ( 167 , 126 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -301,6 +324,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
Edit EDT_COND3_2
{
+ HelpID = "sc:Edit:RID_SCDLG_CONDFORMAT:EDT_COND3_2";
Border = TRUE ;
Pos = MAP_APPFONT ( 199 , 127 ) ;
Size = MAP_APPFONT ( 41 , 12 ) ;
@@ -308,6 +332,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
ImageButton RB_COND3_2
{
+ HelpID = "sc:ImageButton:RID_SCDLG_CONDFORMAT:RB_COND3_2";
Pos = MAP_APPFONT ( 242 , 126 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -322,6 +347,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
ListBox LB_COND3_TEMPLATE
{
+ HelpID = "sc:ListBox:RID_SCDLG_CONDFORMAT:LB_COND3_TEMPLATE";
Border = TRUE ;
Pos = MAP_APPFONT ( 58 , 143 ) ;
Size = MAP_APPFONT ( 62 , 80 ) ;
@@ -331,6 +357,7 @@ ModelessDialog RID_SCDLG_CONDFORMAT
};
PushButton BTN_COND3_NEW
{
+ HelpID = "sc:PushButton:RID_SCDLG_CONDFORMAT:BTN_COND3_NEW";
Pos = MAP_APPFONT ( 124 , 142 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
diff --git a/sc/source/ui/src/crnrdlg.src b/sc/source/ui/src/crnrdlg.src
index b16a3506bf7b..7dac2b7e6b81 100644
--- a/sc/source/ui/src/crnrdlg.src
+++ b/sc/source/ui/src/crnrdlg.src
@@ -42,6 +42,7 @@ ModelessDialog RID_SCDLG_COLROWNAMERANGES
};
ListBox LB_RANGE
{
+ HelpID = "sc:ListBox:RID_SCDLG_COLROWNAMERANGES:LB_RANGE";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 179 , 85 ) ;
TabStop = TRUE ;
@@ -50,6 +51,7 @@ ModelessDialog RID_SCDLG_COLROWNAMERANGES
};
Edit ED_AREA
{
+ HelpID = "sc:Edit:RID_SCDLG_COLROWNAMERANGES:ED_AREA";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 105 ) ;
Size = MAP_APPFONT ( 165 , 12 ) ;
@@ -57,6 +59,7 @@ ModelessDialog RID_SCDLG_COLROWNAMERANGES
};
ImageButton RB_AREA
{
+ HelpID = "sc:ImageButton:RID_SCDLG_COLROWNAMERANGES:RB_AREA";
Pos = MAP_APPFONT ( 179 , 104 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -64,6 +67,7 @@ ModelessDialog RID_SCDLG_COLROWNAMERANGES
};
RadioButton BTN_COLHEAD
{
+ HelpID = "sc:RadioButton:RID_SCDLG_COLROWNAMERANGES:BTN_COLHEAD";
Pos = MAP_APPFONT ( 20 , 121 ) ;
Size = MAP_APPFONT ( 171 , 10 ) ;
TabStop = TRUE ;
@@ -71,6 +75,7 @@ ModelessDialog RID_SCDLG_COLROWNAMERANGES
};
RadioButton BTN_ROWHEAD
{
+ HelpID = "sc:RadioButton:RID_SCDLG_COLROWNAMERANGES:BTN_ROWHEAD";
Pos = MAP_APPFONT ( 20 , 135 ) ;
Size = MAP_APPFONT ( 171 , 10 ) ;
TabStop = TRUE ;
@@ -84,6 +89,7 @@ ModelessDialog RID_SCDLG_COLROWNAMERANGES
};
Edit ED_DATA
{
+ HelpID = "sc:Edit:RID_SCDLG_COLROWNAMERANGES:ED_DATA";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 162 ) ;
Size = MAP_APPFONT ( 165 , 12 ) ;
@@ -91,6 +97,7 @@ ModelessDialog RID_SCDLG_COLROWNAMERANGES
};
ImageButton RB_DATA
{
+ HelpID = "sc:ImageButton:RID_SCDLG_COLROWNAMERANGES:RB_DATA";
Pos = MAP_APPFONT ( 179 , 161 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -110,6 +117,7 @@ ModelessDialog RID_SCDLG_COLROWNAMERANGES
};
PushButton BTN_ADD
{
+ HelpID = "sc:PushButton:RID_SCDLG_COLROWNAMERANGES:BTN_ADD";
Pos = MAP_APPFONT ( 200 , 104 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
Text [ en-US ] = "~Add" ;
@@ -118,6 +126,7 @@ ModelessDialog RID_SCDLG_COLROWNAMERANGES
};
PushButton BTN_REMOVE
{
+ HelpID = "sc:PushButton:RID_SCDLG_COLROWNAMERANGES:BTN_REMOVE";
Pos = MAP_APPFONT ( 200 , 122 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
Text [ en-US ] = "~Delete" ;
diff --git a/sc/source/ui/src/dbnamdlg.src b/sc/source/ui/src/dbnamdlg.src
index 50152d95d9d5..fa1c589c88f0 100644
--- a/sc/source/ui/src/dbnamdlg.src
+++ b/sc/source/ui/src/dbnamdlg.src
@@ -28,7 +28,7 @@
ModelessDialog RID_SCDLG_DBNAMES
{
OutputSize = TRUE ;
- HelpId = SID_DEFINE_DBNAME ;
+ HelpId = CMD_SID_DEFINE_DBNAME ;
Hide = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 222 , 142 ) ;
@@ -43,6 +43,7 @@ ModelessDialog RID_SCDLG_DBNAMES
};
ComboBox ED_NAME
{
+ HelpID = "sc:ComboBox:RID_SCDLG_DBNAMES:ED_NAME";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 145 , 92 ) ;
TabStop = TRUE ;
@@ -56,6 +57,7 @@ ModelessDialog RID_SCDLG_DBNAMES
};
Edit ED_DBAREA
{
+ HelpID = "sc:Edit:RID_SCDLG_DBNAMES:ED_DBAREA";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 123 ) ;
Size = MAP_APPFONT ( 131 , 12 ) ;
@@ -63,6 +65,7 @@ ModelessDialog RID_SCDLG_DBNAMES
};
ImageButton RB_DBAREA
{
+ HelpID = "sc:ImageButton:RID_SCDLG_DBNAMES:RB_DBAREA";
Pos = MAP_APPFONT ( 145 , 122 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -77,6 +80,7 @@ ModelessDialog RID_SCDLG_DBNAMES
};
CheckBox BTN_HEADER
{
+ HelpID = "sc:CheckBox:RID_SCDLG_DBNAMES:BTN_HEADER";
Hide = TRUE ;
Pos = MAP_APPFONT ( 12 , 153 ) ;
Size = MAP_APPFONT ( 145 , 10 ) ;
@@ -85,6 +89,7 @@ ModelessDialog RID_SCDLG_DBNAMES
};
CheckBox BTN_SIZE
{
+ HelpID = "sc:CheckBox:RID_SCDLG_DBNAMES:BTN_SIZE";
Hide = TRUE ;
Pos = MAP_APPFONT ( 12 , 167 ) ;
Size = MAP_APPFONT ( 145 , 10 ) ;
@@ -93,6 +98,7 @@ ModelessDialog RID_SCDLG_DBNAMES
};
CheckBox BTN_FORMAT
{
+ HelpID = "sc:CheckBox:RID_SCDLG_DBNAMES:BTN_FORMAT";
Hide = TRUE ;
Pos = MAP_APPFONT ( 12 , 181 ) ;
Size = MAP_APPFONT ( 145 , 10 ) ;
@@ -101,6 +107,7 @@ ModelessDialog RID_SCDLG_DBNAMES
};
CheckBox BTN_STRIPDATA
{
+ HelpID = "sc:CheckBox:RID_SCDLG_DBNAMES:BTN_STRIPDATA";
Hide = TRUE ;
Pos = MAP_APPFONT ( 12 , 195 ) ;
Size = MAP_APPFONT ( 145 , 10 ) ;
@@ -135,6 +142,7 @@ ModelessDialog RID_SCDLG_DBNAMES
};
PushButton BTN_ADD
{
+ HelpID = "sc:PushButton:RID_SCDLG_DBNAMES:BTN_ADD";
Pos = MAP_APPFONT ( 166 , 74 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
Text [ en-US ] = "~Add" ;
@@ -143,6 +151,7 @@ ModelessDialog RID_SCDLG_DBNAMES
};
PushButton BTN_REMOVE
{
+ HelpID = "sc:PushButton:RID_SCDLG_DBNAMES:BTN_REMOVE";
Pos = MAP_APPFONT ( 166 , 92 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
Text [ en-US ] = "~Delete" ;
@@ -156,6 +165,7 @@ ModelessDialog RID_SCDLG_DBNAMES
};
MoreButton BTN_MORE
{
+ HelpID = "sc:MoreButton:RID_SCDLG_DBNAMES:BTN_MORE";
Pos = MAP_APPFONT ( 166 , 122 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
diff --git a/sc/source/ui/src/filter.src b/sc/source/ui/src/filter.src
index 52ce38db1516..eed896330b0e 100644
--- a/sc/source/ui/src/filter.src
+++ b/sc/source/ui/src/filter.src
@@ -28,7 +28,7 @@
ModelessDialog RID_SCDLG_FILTER
{
OutputSize = TRUE ;
- HelpId = SID_FILTER ;
+ HelpId = CMD_SID_FILTER ;
Hide = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 279 , 121 ) ;
@@ -61,6 +61,7 @@ ModelessDialog RID_SCDLG_FILTER
};
ListBox LB_OP1
{
+ HelpID = "sc:ListBox:RID_SCDLG_FILTER:LB_OP1";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 25 ) ;
Size = MAP_APPFONT ( 40 , 46 ) ;
@@ -74,6 +75,7 @@ ModelessDialog RID_SCDLG_FILTER
};
ListBox LB_OP2
{
+ HelpID = "sc:ListBox:RID_SCDLG_FILTER:LB_OP2";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 41 ) ;
Size = MAP_APPFONT ( 40 , 46 ) ;
@@ -87,6 +89,7 @@ ModelessDialog RID_SCDLG_FILTER
};
ListBox LB_OP3
{
+ HelpID = "sc:ListBox:RID_SCDLG_FILTER:LB_OP3";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 57 ) ;
Size = MAP_APPFONT ( 40 , 46 ) ;
@@ -100,6 +103,7 @@ ModelessDialog RID_SCDLG_FILTER
};
ListBox LB_OP4
{
+ HelpID = "sc:ListBox:RID_SCDLG_FILTER:LB_OP4";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 73 ) ;
Size = MAP_APPFONT ( 40 , 46 ) ;
@@ -113,6 +117,7 @@ ModelessDialog RID_SCDLG_FILTER
};
ListBox LB_FIELD1
{
+ HelpID = "sc:ListBox:RID_SCDLG_FILTER:LB_FIELD1";
Border = TRUE ;
Pos = MAP_APPFONT ( 58 , 25 ) ;
Size = MAP_APPFONT ( 60 , 90 ) ;
@@ -121,6 +126,7 @@ ModelessDialog RID_SCDLG_FILTER
};
ListBox LB_FIELD2
{
+ HelpID = "sc:ListBox:RID_SCDLG_FILTER:LB_FIELD2";
Border = TRUE ;
Pos = MAP_APPFONT ( 58 , 41 ) ;
Size = MAP_APPFONT ( 60 , 90 ) ;
@@ -129,6 +135,7 @@ ModelessDialog RID_SCDLG_FILTER
};
ListBox LB_FIELD3
{
+ HelpID = "sc:ListBox:RID_SCDLG_FILTER:LB_FIELD3";
Border = TRUE ;
Pos = MAP_APPFONT ( 58 , 57 ) ;
Size = MAP_APPFONT ( 60 , 90 ) ;
@@ -137,6 +144,7 @@ ModelessDialog RID_SCDLG_FILTER
};
ListBox LB_FIELD4
{
+ HelpID = "sc:ListBox:RID_SCDLG_FILTER:LB_FIELD4";
Border = TRUE ;
Pos = MAP_APPFONT ( 58 , 73 ) ;
Size = MAP_APPFONT ( 60 , 90 ) ;
@@ -145,6 +153,7 @@ ModelessDialog RID_SCDLG_FILTER
};
ListBox LB_COND1
{
+ HelpID = "sc:ListBox:RID_SCDLG_FILTER:LB_COND1";
Border = TRUE ;
Pos = MAP_APPFONT ( 122 , 25 ) ;
Size = MAP_APPFONT ( 75 , 145 ) ;
@@ -172,6 +181,7 @@ ModelessDialog RID_SCDLG_FILTER
};
ListBox LB_COND2
{
+ HelpID = "sc:ListBox:RID_SCDLG_FILTER:LB_COND2";
Border = TRUE ;
Pos = MAP_APPFONT ( 122 , 41 ) ;
Size = MAP_APPFONT ( 75 , 145 ) ;
@@ -199,6 +209,7 @@ ModelessDialog RID_SCDLG_FILTER
};
ListBox LB_COND3
{
+ HelpID = "sc:ListBox:RID_SCDLG_FILTER:LB_COND3";
Border = TRUE ;
Pos = MAP_APPFONT ( 122 , 57 ) ;
Size = MAP_APPFONT ( 75 , 145 ) ;
@@ -226,6 +237,7 @@ ModelessDialog RID_SCDLG_FILTER
};
ListBox LB_COND4
{
+ HelpID = "sc:ListBox:RID_SCDLG_FILTER:LB_COND4";
Border = TRUE ;
Pos = MAP_APPFONT ( 122 , 73 ) ;
Size = MAP_APPFONT ( 75 , 145 ) ;
@@ -253,6 +265,7 @@ ModelessDialog RID_SCDLG_FILTER
};
ComboBox ED_VAL1
{
+ HelpID = "sc:ComboBox:RID_SCDLG_FILTER:ED_VAL1";
Pos = MAP_APPFONT ( 201 , 25 ) ;
Size = MAP_APPFONT ( 60 , 90 ) ;
TabStop = TRUE ;
@@ -260,6 +273,7 @@ ModelessDialog RID_SCDLG_FILTER
};
ComboBox ED_VAL2
{
+ HelpID = "sc:ComboBox:RID_SCDLG_FILTER:ED_VAL2";
Pos = MAP_APPFONT ( 201 , 41 ) ;
Size = MAP_APPFONT ( 60 , 90 ) ;
TabStop = TRUE ;
@@ -267,6 +281,7 @@ ModelessDialog RID_SCDLG_FILTER
};
ComboBox ED_VAL3
{
+ HelpID = "sc:ComboBox:RID_SCDLG_FILTER:ED_VAL3";
Pos = MAP_APPFONT ( 201 , 57 ) ;
Size = MAP_APPFONT ( 60 , 90 ) ;
TabStop = TRUE ;
@@ -274,6 +289,7 @@ ModelessDialog RID_SCDLG_FILTER
};
ComboBox ED_VAL4
{
+ HelpID = "sc:ComboBox:RID_SCDLG_FILTER:ED_VAL4";
Pos = MAP_APPFONT ( 201 , 73 ) ;
Size = MAP_APPFONT ( 60 , 90 ) ;
TabStop = TRUE ;
@@ -295,6 +311,7 @@ ModelessDialog RID_SCDLG_FILTER
};
CheckBox BTN_CASE
{
+ HelpID = "sc:CheckBox:RID_SCDLG_FILTER:BTN_CASE";
Hide = TRUE ;
Pos = MAP_APPFONT ( 12 , 130 ) ;
Size = MAP_APPFONT ( 128 , 10 ) ;
@@ -303,6 +320,7 @@ ModelessDialog RID_SCDLG_FILTER
};
CheckBox BTN_REGEXP
{
+ HelpID = "sc:CheckBox:RID_SCDLG_FILTER:BTN_REGEXP";
Hide = TRUE ;
Pos = MAP_APPFONT ( 142 , 130 ) ;
Size = MAP_APPFONT ( 94 , 10 ) ;
@@ -311,6 +329,7 @@ ModelessDialog RID_SCDLG_FILTER
};
CheckBox BTN_HEADER
{
+ HelpID = "sc:CheckBox:RID_SCDLG_FILTER:BTN_HEADER";
Hide = TRUE ;
Pos = MAP_APPFONT ( 12 , 144 ) ;
Size = MAP_APPFONT ( 128 , 10 ) ;
@@ -319,6 +338,7 @@ ModelessDialog RID_SCDLG_FILTER
};
CheckBox BTN_UNIQUE
{
+ HelpID = "sc:CheckBox:RID_SCDLG_FILTER:BTN_UNIQUE";
Hide = TRUE ;
Pos = MAP_APPFONT ( 142 , 144 ) ;
Size = MAP_APPFONT ( 94 , 10 ) ;
@@ -327,6 +347,7 @@ ModelessDialog RID_SCDLG_FILTER
};
CheckBox BTN_COPY_RESULT
{
+ HelpID = "sc:CheckBox:RID_SCDLG_FILTER:BTN_COPY_RESULT";
Hide = TRUE ;
Pos = MAP_APPFONT ( 12 , 158 ) ;
Size = MAP_APPFONT ( 128 , 10 ) ;
@@ -335,6 +356,7 @@ ModelessDialog RID_SCDLG_FILTER
};
CheckBox BTN_DEST_PERS
{
+ HelpID = "sc:CheckBox:RID_SCDLG_FILTER:BTN_DEST_PERS";
Hide = TRUE ;
Pos = MAP_APPFONT ( 142 , 158 ) ;
Size = MAP_APPFONT ( 94 , 10 ) ;
@@ -343,6 +365,7 @@ ModelessDialog RID_SCDLG_FILTER
};
ListBox LB_COPY_AREA
{
+ HelpID = "sc:ListBox:RID_SCDLG_FILTER:LB_COPY_AREA";
Border = TRUE ;
Hide = TRUE ;
Pos = MAP_APPFONT ( 21 , 170 ) ;
@@ -352,6 +375,7 @@ ModelessDialog RID_SCDLG_FILTER
};
Edit ED_COPY_AREA
{
+ HelpID = "sc:Edit:RID_SCDLG_FILTER:ED_COPY_AREA";
Border = TRUE ;
Hide = TRUE ;
Pos = MAP_APPFONT ( 136 , 170 ) ;
@@ -360,6 +384,7 @@ ModelessDialog RID_SCDLG_FILTER
};
ImageButton RB_COPY_AREA
{
+ HelpID = "sc:ImageButton:RID_SCDLG_FILTER:RB_COPY_AREA";
Pos = MAP_APPFONT ( 248 , 169 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -407,6 +432,7 @@ ModelessDialog RID_SCDLG_FILTER
};
MoreButton BTN_MORE
{
+ HelpID = "sc:MoreButton:RID_SCDLG_FILTER:BTN_MORE";
Pos = MAP_APPFONT ( 6 , 101 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
@@ -423,7 +449,7 @@ ModelessDialog RID_SCDLG_FILTER
ModelessDialog RID_SCDLG_SPEC_FILTER
{
OutputSize = TRUE ;
- HelpId = SID_SPECIAL_FILTER ;
+ HelpId = CMD_SID_SPECIAL_FILTER ;
Hide = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 278 , 83 ) ;
@@ -438,6 +464,7 @@ ModelessDialog RID_SCDLG_SPEC_FILTER
};
ListBox LB_CRITERIA_AREA
{
+ HelpID = "sc:ListBox:RID_SCDLG_SPEC_FILTER:LB_CRITERIA_AREA";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 14 ) ;
Size = MAP_APPFONT ( 90 , 90 ) ;
@@ -446,6 +473,7 @@ ModelessDialog RID_SCDLG_SPEC_FILTER
};
Edit ED_CRITERIA_AREA
{
+ HelpID = "sc:Edit:RID_SCDLG_SPEC_FILTER:ED_CRITERIA_AREA";
Border = TRUE ;
Pos = MAP_APPFONT ( 100 , 14 ) ;
Size = MAP_APPFONT ( 99 , 12 ) ;
@@ -453,6 +481,7 @@ ModelessDialog RID_SCDLG_SPEC_FILTER
};
ImageButton RB_CRITERIA_AREA
{
+ HelpID = "sc:ImageButton:RID_SCDLG_SPEC_FILTER:RB_CRITERIA_AREA";
Pos = MAP_APPFONT ( 201 , 13 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -460,6 +489,7 @@ ModelessDialog RID_SCDLG_SPEC_FILTER
};
CheckBox BTN_CASE
{
+ HelpID = "sc:CheckBox:RID_SCDLG_SPEC_FILTER:BTN_CASE";
Hide = TRUE ;
Pos = MAP_APPFONT ( 12 , 43 ) ;
Size = MAP_APPFONT ( 128 , 10 ) ;
@@ -468,6 +498,7 @@ ModelessDialog RID_SCDLG_SPEC_FILTER
};
CheckBox BTN_REGEXP
{
+ HelpID = "sc:CheckBox:RID_SCDLG_SPEC_FILTER:BTN_REGEXP";
Hide = TRUE ;
Pos = MAP_APPFONT ( 142 , 43 ) ;
Size = MAP_APPFONT ( 74 , 10 ) ;
@@ -476,6 +507,7 @@ ModelessDialog RID_SCDLG_SPEC_FILTER
};
CheckBox BTN_HEADER
{
+ HelpID = "sc:CheckBox:RID_SCDLG_SPEC_FILTER:BTN_HEADER";
Hide = TRUE ;
Pos = MAP_APPFONT ( 12 , 57 ) ;
Size = MAP_APPFONT ( 128 , 10 ) ;
@@ -484,6 +516,7 @@ ModelessDialog RID_SCDLG_SPEC_FILTER
};
CheckBox BTN_UNIQUE
{
+ HelpID = "sc:CheckBox:RID_SCDLG_SPEC_FILTER:BTN_UNIQUE";
Hide = TRUE ;
Pos = MAP_APPFONT ( 142 , 57 ) ;
Size = MAP_APPFONT ( 74 , 10 ) ;
@@ -492,6 +525,7 @@ ModelessDialog RID_SCDLG_SPEC_FILTER
};
CheckBox BTN_COPY_RESULT
{
+ HelpID = "sc:CheckBox:RID_SCDLG_SPEC_FILTER:BTN_COPY_RESULT";
Hide = TRUE ;
Pos = MAP_APPFONT ( 12 , 71 ) ;
Size = MAP_APPFONT ( 128 , 10 ) ;
@@ -500,6 +534,7 @@ ModelessDialog RID_SCDLG_SPEC_FILTER
};
CheckBox BTN_DEST_PERS
{
+ HelpID = "sc:CheckBox:RID_SCDLG_SPEC_FILTER:BTN_DEST_PERS";
Hide = TRUE ;
Pos = MAP_APPFONT ( 142 , 71 ) ;
Size = MAP_APPFONT ( 74 , 10 ) ;
@@ -508,6 +543,7 @@ ModelessDialog RID_SCDLG_SPEC_FILTER
};
ListBox LB_COPY_AREA
{
+ HelpID = "sc:ListBox:RID_SCDLG_SPEC_FILTER:LB_COPY_AREA";
Border = TRUE ;
Hide = TRUE ;
Pos = MAP_APPFONT ( 20 , 83 ) ;
@@ -517,6 +553,7 @@ ModelessDialog RID_SCDLG_SPEC_FILTER
};
Edit ED_COPY_AREA
{
+ HelpID = "sc:Edit:RID_SCDLG_SPEC_FILTER:ED_COPY_AREA";
Border = TRUE ;
Hide = TRUE ;
Pos = MAP_APPFONT ( 100 , 83 ) ;
@@ -525,6 +562,7 @@ ModelessDialog RID_SCDLG_SPEC_FILTER
};
ImageButton RB_COPY_AREA
{
+ HelpID = "sc:ImageButton:RID_SCDLG_SPEC_FILTER:RB_COPY_AREA";
Pos = MAP_APPFONT ( 201 , 82 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -573,6 +611,7 @@ ModelessDialog RID_SCDLG_SPEC_FILTER
};
MoreButton BTN_MORE
{
+ HelpID = "sc:MoreButton:RID_SCDLG_SPEC_FILTER:BTN_MORE";
Pos = MAP_APPFONT ( 223 , 63 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
@@ -617,6 +656,7 @@ ModalDialog RID_SCDLG_PIVOTFILTER
};
ListBox LB_OP1
{
+ HelpID = "sc:ListBox:RID_SCDLG_PIVOTFILTER:LB_OP1";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 41 ) ;
Size = MAP_APPFONT ( 40 , 46 ) ;
@@ -630,6 +670,7 @@ ModalDialog RID_SCDLG_PIVOTFILTER
};
ListBox LB_OP2
{
+ HelpID = "sc:ListBox:RID_SCDLG_PIVOTFILTER:LB_OP2";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 57 ) ;
Size = MAP_APPFONT ( 40 , 46 ) ;
@@ -643,6 +684,7 @@ ModalDialog RID_SCDLG_PIVOTFILTER
};
ListBox LB_FIELD1
{
+ HelpID = "sc:ListBox:RID_SCDLG_PIVOTFILTER:LB_FIELD1";
Border = TRUE ;
Pos = MAP_APPFONT ( 58 , 25 ) ;
Size = MAP_APPFONT ( 60 , 90 ) ;
@@ -651,6 +693,7 @@ ModalDialog RID_SCDLG_PIVOTFILTER
};
ListBox LB_FIELD2
{
+ HelpID = "sc:ListBox:RID_SCDLG_PIVOTFILTER:LB_FIELD2";
Border = TRUE ;
Pos = MAP_APPFONT ( 58 , 41 ) ;
Size = MAP_APPFONT ( 60 , 90 ) ;
@@ -659,6 +702,7 @@ ModalDialog RID_SCDLG_PIVOTFILTER
};
ListBox LB_FIELD3
{
+ HelpID = "sc:ListBox:RID_SCDLG_PIVOTFILTER:LB_FIELD3";
Border = TRUE ;
Pos = MAP_APPFONT ( 58 , 57 ) ;
Size = MAP_APPFONT ( 60 , 90 ) ;
@@ -667,6 +711,7 @@ ModalDialog RID_SCDLG_PIVOTFILTER
};
ListBox LB_COND1
{
+ HelpID = "sc:ListBox:RID_SCDLG_PIVOTFILTER:LB_COND1";
Border = TRUE ;
Pos = MAP_APPFONT ( 122 , 25 ) ;
Size = MAP_APPFONT ( 47 , 65 ) ;
@@ -684,6 +729,7 @@ ModalDialog RID_SCDLG_PIVOTFILTER
};
ListBox LB_COND2
{
+ HelpID = "sc:ListBox:RID_SCDLG_PIVOTFILTER:LB_COND2";
Border = TRUE ;
Pos = MAP_APPFONT ( 122 , 41 ) ;
Size = MAP_APPFONT ( 47 , 65 ) ;
@@ -701,6 +747,7 @@ ModalDialog RID_SCDLG_PIVOTFILTER
};
ListBox LB_COND3
{
+ HelpID = "sc:ListBox:RID_SCDLG_PIVOTFILTER:LB_COND3";
Border = TRUE ;
Pos = MAP_APPFONT ( 122 , 57 ) ;
Size = MAP_APPFONT ( 47 , 65 ) ;
@@ -718,6 +765,7 @@ ModalDialog RID_SCDLG_PIVOTFILTER
};
ComboBox ED_VAL1
{
+ HelpID = "sc:ComboBox:RID_SCDLG_PIVOTFILTER:ED_VAL1";
Pos = MAP_APPFONT ( 173 , 25 ) ;
Size = MAP_APPFONT ( 60 , 90 ) ;
TabStop = TRUE ;
@@ -725,6 +773,7 @@ ModalDialog RID_SCDLG_PIVOTFILTER
};
ComboBox ED_VAL2
{
+ HelpID = "sc:ComboBox:RID_SCDLG_PIVOTFILTER:ED_VAL2";
Pos = MAP_APPFONT ( 173 , 41 ) ;
Size = MAP_APPFONT ( 60 , 90 ) ;
TabStop = TRUE ;
@@ -732,6 +781,7 @@ ModalDialog RID_SCDLG_PIVOTFILTER
};
ComboBox ED_VAL3
{
+ HelpID = "sc:ComboBox:RID_SCDLG_PIVOTFILTER:ED_VAL3";
Pos = MAP_APPFONT ( 173 , 57 ) ;
Size = MAP_APPFONT ( 60 , 90 ) ;
TabStop = TRUE ;
@@ -745,6 +795,7 @@ ModalDialog RID_SCDLG_PIVOTFILTER
};
CheckBox BTN_CASE
{
+ HelpID = "sc:CheckBox:RID_SCDLG_PIVOTFILTER:BTN_CASE";
Hide = TRUE ;
Pos = MAP_APPFONT ( 12 , 86 ) ;
Size = MAP_APPFONT ( 221 , 10 ) ;
@@ -753,6 +804,7 @@ ModalDialog RID_SCDLG_PIVOTFILTER
};
CheckBox BTN_REGEXP
{
+ HelpID = "sc:CheckBox:RID_SCDLG_PIVOTFILTER:BTN_REGEXP";
Hide = TRUE ;
Pos = MAP_APPFONT ( 12 , 100 ) ;
Size = MAP_APPFONT ( 221 , 10 ) ;
@@ -761,6 +813,7 @@ ModalDialog RID_SCDLG_PIVOTFILTER
};
CheckBox BTN_UNIQUE
{
+ HelpID = "sc:CheckBox:RID_SCDLG_PIVOTFILTER:BTN_UNIQUE";
Hide = TRUE ;
Pos = MAP_APPFONT ( 12 , 114 ) ;
Size = MAP_APPFONT ( 221 , 10 ) ;
@@ -810,6 +863,7 @@ ModalDialog RID_SCDLG_PIVOTFILTER
};
MoreButton BTN_MORE
{
+ HelpID = "sc:MoreButton:RID_SCDLG_PIVOTFILTER:BTN_MORE";
Pos = MAP_APPFONT ( 242 , 63 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
diff --git a/sc/source/ui/src/hdrcont.src b/sc/source/ui/src/hdrcont.src
index e4a82d38ec98..c4edc13e2f6f 100644
--- a/sc/source/ui/src/hdrcont.src
+++ b/sc/source/ui/src/hdrcont.src
@@ -32,7 +32,7 @@
MenuItem\
{\
Identifier = FID_CELL_FORMAT ; \
- HelpId = FID_CELL_FORMAT ; \
+ HelpId = CMD_FID_CELL_FORMAT ; \
Text [ en-US ] = "~Format Cells..." ; \
};
@@ -41,20 +41,20 @@
MenuItem\
{\
Identifier = SID_CUT ; \
- HelpId = SID_CUT ; \
+ HelpId = CMD_SID_CUT ; \
Text [ en-US ] = "Cu~t" ; \
/* ### ACHTUNG: Neuer Text in Resource? Die Selektion in die Zwischenablage kopieren und lschen : Die Selektion in die Zwischenablage kopieren und lschen */\
};\
MenuItem\
{\
Identifier = SID_COPY ; \
- HelpId = SID_COPY ; \
+ HelpId = CMD_SID_COPY ; \
Text [ en-US ] = "~Copy" ; \
};\
MenuItem\
{\
Identifier = SID_PASTE ; \
- HelpId = SID_PASTE ; \
+ HelpId = CMD_SID_PASTE ; \
/* ### ACHTUNG: Neuer Text in Resource? Einfgen : Einfgen */\
Text [ en-US ] = "~Paste" ; \
/* ### ACHTUNG: Neuer Text in Resource? Den Inhalt der Zwischenablage einfgen : Den Inhalt der Zwischenablage einfgen */\
@@ -73,14 +73,14 @@ Menu RID_POPUP_ROWHEADER
MenuItem
{
Identifier = FID_ROW_HEIGHT ;
- HelpId = FID_ROW_HEIGHT ;
+ HelpId = CMD_FID_ROW_HEIGHT ;
/* ### ACHTUNG: Neuer Text in Resource? Zeilenhhe... : Zeilenhhe... */
Text [ en-US ] = "Row Hei~ght..." ;
};
MenuItem
{
Identifier = FID_ROW_OPT_HEIGHT ;
- HelpId = FID_ROW_OPT_HEIGHT ;
+ HelpId = CMD_FID_ROW_OPT_HEIGHT ;
/* ### ACHTUNG: Neuer Text in Resource? Optimale Zeilenhhe... : Optimale Zeilenhhe... */
Text [ en-US ] = "Optimal ~Row Height..." ;
/* ### ACHTUNG: Neuer Text in Resource? Optimale Zeilenhhe einstellen : Optimale Zeilenhhe einstellen */
@@ -91,7 +91,7 @@ Menu RID_POPUP_ROWHEADER
MenuItem
{
Identifier = FID_INS_ROW ;
- HelpId = FID_INS_ROW ;
+ HelpId = CMD_FID_INS_ROW ;
/* ### ACHTUNG: Neuer Text in Resource? Zeilen einfgen : Zeilen einfgen */
Text [ en-US ] = "~Insert Rows" ;
/* ### ACHTUNG: Neuer Text in Resource? Ganze Zeilen einfgen : Ganze Zeilen einfgen */
@@ -99,7 +99,7 @@ Menu RID_POPUP_ROWHEADER
MenuItem
{
Identifier = SID_DEL_ROWS ;
- HelpId = SID_DEL_ROWS ;
+ HelpId = CMD_SID_DEL_ROWS ;
/* ### ACHTUNG: Neuer Text in Resource? Zeilen lschen : Zeilen lschen */
Text [ en-US ] = "~Delete Rows" ;
/* ### ACHTUNG: Neuer Text in Resource? Ganze Zeilen lschen : Ganze Zeilen lschen */
@@ -107,7 +107,7 @@ Menu RID_POPUP_ROWHEADER
MenuItem
{
Identifier = SID_DELETE ;
- HelpId = SID_DELETE ;
+ HelpId = CMD_SID_DELETE ;
/* ### ACHTUNG: Neuer Text in Resource? Inhalte l~schen... : Inhalte l~schen... */
Text [ en-US ] = "De~lete Contents..." ;
/* ### ACHTUNG: Neuer Text in Resource? Ausgewhlte Inhalte lschen (Formeln, Formate etc.) : Ausgewhlte Inhalte lschen (Formeln, Formate etc.) */
@@ -118,13 +118,13 @@ Menu RID_POPUP_ROWHEADER
MenuItem
{
Identifier = FID_ROW_HIDE ;
- HelpId = FID_ROW_HIDE ;
+ HelpId = CMD_FID_ROW_HIDE ;
Text [ en-US ] = "~Hide" ;
};
MenuItem
{
Identifier = FID_ROW_SHOW ;
- HelpId = FID_ROW_SHOW ;
+ HelpId = CMD_FID_ROW_SHOW ;
Text [ en-US ] = "~Show" ;
};
//------------------------------
@@ -134,7 +134,7 @@ Menu RID_POPUP_ROWHEADER
MenuItem
{
Identifier = SID_PASTE_SPECIAL ;
- HelpId = SID_PASTE_SPECIAL ;
+ HelpId = CMD_SID_PASTE_SPECIAL ;
Text [ en-US ] = "P~aste Special..." ;
};
};
@@ -153,14 +153,14 @@ Menu RID_POPUP_COLHEADER
MenuItem
{
Identifier = FID_COL_WIDTH ;
- HelpId = FID_COL_WIDTH ;
+ HelpId = CMD_FID_COL_WIDTH ;
Text [ en-US ] = "Col~umn Width..." ;
/* ### ACHTUNG: Neuer Text in Resource? Spaltenbreite ndern : Spaltenbreite ndern */
};
MenuItem
{
Identifier = FID_COL_OPT_WIDTH ;
- HelpId = FID_COL_OPT_WIDTH ;
+ HelpId = CMD_FID_COL_OPT_WIDTH ;
Text [ en-US ] = "O~ptimal Column Width..." ;
};
//------------------------------
@@ -169,7 +169,7 @@ Menu RID_POPUP_COLHEADER
MenuItem
{
Identifier = FID_INS_COLUMN ;
- HelpId = FID_INS_COLUMN ;
+ HelpId = CMD_FID_INS_COLUMN ;
/* ### ACHTUNG: Neuer Text in Resource? Spalten einfgen : Spalten einfgen */
Text [ en-US ] = "~Insert Columns" ;
/* ### ACHTUNG: Neuer Text in Resource? Ganze Spalten einfgen : Ganze Spalten einfgen */
@@ -177,7 +177,7 @@ Menu RID_POPUP_COLHEADER
MenuItem
{
Identifier = SID_DEL_COLS ;
- HelpId = SID_DEL_COLS ;
+ HelpId = CMD_SID_DEL_COLS ;
/* ### ACHTUNG: Neuer Text in Resource? Spalten lschen : Spalten lschen */
Text [ en-US ] = "~Delete Columns" ;
/* ### ACHTUNG: Neuer Text in Resource? Ganze Spalten lschen : Ganze Spalten lschen */
@@ -185,7 +185,7 @@ Menu RID_POPUP_COLHEADER
MenuItem
{
Identifier = SID_DELETE ;
- HelpId = SID_DELETE ;
+ HelpId = CMD_SID_DELETE ;
/* ### ACHTUNG: Neuer Text in Resource? Inhalte l~schen... : Inhalte l~schen... */
Text [ en-US ] = "D~elete Contents..." ;
/* ### ACHTUNG: Neuer Text in Resource? Ausgewhlte Inhalte lschen (Formeln, Formate etc.) : Ausgewhlte Inhalte lschen (Formeln, Formate etc.) */
@@ -196,13 +196,13 @@ Menu RID_POPUP_COLHEADER
MenuItem
{
Identifier = FID_COL_HIDE ;
- HelpId = FID_COL_HIDE ;
+ HelpId = CMD_FID_COL_HIDE ;
Text [ en-US ] = "~Hide" ;
};
MenuItem
{
Identifier = FID_COL_SHOW ;
- HelpId = FID_COL_SHOW ;
+ HelpId = CMD_FID_COL_SHOW ;
Text [ en-US ] = "~Show" ;
};
//------------------------------
@@ -212,7 +212,7 @@ Menu RID_POPUP_COLHEADER
MenuItem
{
Identifier = SID_PASTE_SPECIAL ;
- HelpId = SID_PASTE_SPECIAL ;
+ HelpId = CMD_SID_PASTE_SPECIAL ;
Text [ en-US ] = "Paste ~Special..." ;
};
};
diff --git a/sc/source/ui/src/miscdlgs.src b/sc/source/ui/src/miscdlgs.src
index 6d4761c8589c..c40207e5eaf8 100644
--- a/sc/source/ui/src/miscdlgs.src
+++ b/sc/source/ui/src/miscdlgs.src
@@ -30,7 +30,7 @@
ModalDialog RID_SCDLG_DELCELL
{
OutputSize = TRUE ;
- HelpId = FID_DELETE_CELL ;
+ HelpId = CMD_FID_DELETE_CELL ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 191 , 70 ) ;
Text [ en-US ] = "Delete Cells" ;
@@ -57,6 +57,7 @@ ModalDialog RID_SCDLG_DELCELL
};
RadioButton BTN_DELCOLS
{
+ HelpID = "sc:RadioButton:RID_SCDLG_DELCELL:BTN_DELCOLS";
Pos = MAP_APPFONT ( 12 , 56 ) ;
Size = MAP_APPFONT ( 114 , 10 ) ;
Text [ en-US ] = "Delete entire ~column(s)" ;
@@ -64,6 +65,7 @@ ModalDialog RID_SCDLG_DELCELL
};
RadioButton BTN_DELROWS
{
+ HelpID = "sc:RadioButton:RID_SCDLG_DELCELL:BTN_DELROWS";
Pos = MAP_APPFONT ( 12 , 42 ) ;
Size = MAP_APPFONT ( 114 , 10 ) ;
Text [ en-US ] = "Delete entire ~row(s)" ;
@@ -71,6 +73,7 @@ ModalDialog RID_SCDLG_DELCELL
};
RadioButton BTN_CELLSLEFT
{
+ HelpID = "sc:RadioButton:RID_SCDLG_DELCELL:BTN_CELLSLEFT";
Pos = MAP_APPFONT ( 12 , 28 ) ;
Size = MAP_APPFONT ( 114 , 10 ) ;
Text [ en-US ] = "Shift cells ~left" ;
@@ -78,6 +81,7 @@ ModalDialog RID_SCDLG_DELCELL
};
RadioButton BTN_CELLSUP
{
+ HelpID = "sc:RadioButton:RID_SCDLG_DELCELL:BTN_CELLSUP";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 114 , 10 ) ;
Text [ en-US ] = "Shift cells ~up" ;
@@ -93,7 +97,7 @@ ModalDialog RID_SCDLG_DELCELL
ModalDialog RID_SCDLG_INSCELL
{
OutputSize = TRUE ;
- HelpId = FID_INS_CELL ;
+ HelpId = CMD_FID_INS_CELL ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 191 , 70 ) ;
Text [ en-US ] = "Insert Cells" ;
@@ -120,6 +124,7 @@ ModalDialog RID_SCDLG_INSCELL
};
RadioButton BTN_INSCOLS
{
+ HelpID = "sc:RadioButton:RID_SCDLG_INSCELL:BTN_INSCOLS";
Pos = MAP_APPFONT ( 12 , 56 ) ;
Size = MAP_APPFONT ( 114 , 10 ) ;
Text [ en-US ] = "Entire ~column" ;
@@ -127,6 +132,7 @@ ModalDialog RID_SCDLG_INSCELL
};
RadioButton BTN_INSROWS
{
+ HelpID = "sc:RadioButton:RID_SCDLG_INSCELL:BTN_INSROWS";
Pos = MAP_APPFONT ( 12 , 42 ) ;
Size = MAP_APPFONT ( 114 , 10 ) ;
Text [ en-US ] = "Entire ro~w" ;
@@ -134,6 +140,7 @@ ModalDialog RID_SCDLG_INSCELL
};
RadioButton BTN_CELLSRIGHT
{
+ HelpID = "sc:RadioButton:RID_SCDLG_INSCELL:BTN_CELLSRIGHT";
Pos = MAP_APPFONT ( 12 , 28 ) ;
Size = MAP_APPFONT ( 114 , 10 ) ;
Text [ en-US ] = "Shift cells ~right" ;
@@ -141,6 +148,7 @@ ModalDialog RID_SCDLG_INSCELL
};
RadioButton BTN_CELLSDOWN
{
+ HelpID = "sc:RadioButton:RID_SCDLG_INSCELL:BTN_CELLSDOWN";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 114 , 10 ) ;
Text [ en-US ] = "Shift cells ~down" ;
@@ -157,7 +165,7 @@ ModalDialog RID_SCDLG_INSCELL
ModalDialog RID_SCDLG_DELCONT
{
OutputSize = TRUE ;
- HelpId = SID_DELETE ;
+ HelpId = CMD_SID_DELETE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 161 , 130 ) ;
Text [ en-US ] = "Delete Contents" ;
@@ -184,6 +192,7 @@ ModalDialog RID_SCDLG_DELCONT
};
CheckBox BTN_DELALL
{
+ HelpID = "sc:CheckBox:RID_SCDLG_DELCONT:BTN_DELALL";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
Text [ en-US ] = "Delete ~all" ;
@@ -191,6 +200,7 @@ ModalDialog RID_SCDLG_DELCONT
};
CheckBox BTN_DELSTRINGS
{
+ HelpID = "sc:CheckBox:RID_SCDLG_DELCONT:BTN_DELSTRINGS";
Pos = MAP_APPFONT ( 12 , 30 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
Text [ en-US ] = "~Text" ;
@@ -198,6 +208,7 @@ ModalDialog RID_SCDLG_DELCONT
};
CheckBox BTN_DELNUMBERS
{
+ HelpID = "sc:CheckBox:RID_SCDLG_DELCONT:BTN_DELNUMBERS";
Pos = MAP_APPFONT ( 12 , 44 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
Text [ en-US ] = "~Numbers" ;
@@ -205,6 +216,7 @@ ModalDialog RID_SCDLG_DELCONT
};
CheckBox BTN_DELDATETIME
{
+ HelpID = "sc:CheckBox:RID_SCDLG_DELCONT:BTN_DELDATETIME";
Pos = MAP_APPFONT ( 12 , 58 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
Text [ en-US ] = "~Date & time" ;
@@ -212,6 +224,7 @@ ModalDialog RID_SCDLG_DELCONT
};
CheckBox BTN_DELFORMULAS
{
+ HelpID = "sc:CheckBox:RID_SCDLG_DELCONT:BTN_DELFORMULAS";
Pos = MAP_APPFONT ( 12 , 72 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
Text [ en-US ] = "~Formulas" ;
@@ -219,6 +232,7 @@ ModalDialog RID_SCDLG_DELCONT
};
CheckBox BTN_DELATTRS
{
+ HelpID = "sc:CheckBox:RID_SCDLG_DELCONT:BTN_DELATTRS";
Pos = MAP_APPFONT ( 12 , 100 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
Text [ en-US ] = "For~mats" ;
@@ -226,6 +240,7 @@ ModalDialog RID_SCDLG_DELCONT
};
CheckBox BTN_DELNOTES
{
+ HelpID = "sc:CheckBox:RID_SCDLG_DELCONT:BTN_DELNOTES";
Pos = MAP_APPFONT ( 12 , 86 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
Text [ en-US ] = "~Comments" ;
@@ -233,6 +248,7 @@ ModalDialog RID_SCDLG_DELCONT
};
CheckBox BTN_DELOBJECTS
{
+ HelpID = "sc:CheckBox:RID_SCDLG_DELCONT:BTN_DELOBJECTS";
Pos = MAP_APPFONT ( 12 , 114 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
Text [ en-US ] = "~Objects" ;
@@ -250,7 +266,7 @@ ModalDialog RID_SCDLG_DELCONT
ModalDialog RID_SCDLG_INSCONT
{
OutputSize = TRUE ;
- HelpId = FID_INS_CELL_CONTENTS ;
+ HelpId = CMD_FID_INS_CELL_CONTENTS ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 260 , 187 ) ;
Text [ en-US ] = "Paste Special" ;
@@ -277,6 +293,7 @@ ModalDialog RID_SCDLG_INSCONT
};
CheckBox BTN_INSALL
{
+ HelpID = "sc:CheckBox:RID_SCDLG_INSCONT:BTN_INSALL";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 84 , 10 ) ;
Text [ en-US ] = "~Paste all" ;
@@ -284,6 +301,7 @@ ModalDialog RID_SCDLG_INSCONT
};
CheckBox BTN_INSSTRINGS
{
+ HelpID = "sc:CheckBox:RID_SCDLG_INSCONT:BTN_INSSTRINGS";
Pos = MAP_APPFONT ( 12 , 30 ) ;
Size = MAP_APPFONT ( 84 , 10 ) ;
Text [ en-US ] = "Te~xt" ;
@@ -291,6 +309,7 @@ ModalDialog RID_SCDLG_INSCONT
};
CheckBox BTN_INSNUMBERS
{
+ HelpID = "sc:CheckBox:RID_SCDLG_INSCONT:BTN_INSNUMBERS";
Pos = MAP_APPFONT ( 12 , 44 ) ;
Size = MAP_APPFONT ( 84 , 10 ) ;
Text [ en-US ] = "~Numbers" ;
@@ -298,6 +317,7 @@ ModalDialog RID_SCDLG_INSCONT
};
CheckBox BTN_INSDATETIME
{
+ HelpID = "sc:CheckBox:RID_SCDLG_INSCONT:BTN_INSDATETIME";
Pos = MAP_APPFONT ( 12 , 58 ) ;
Size = MAP_APPFONT ( 84 , 10 ) ;
Text [ en-US ] = "~Date & time" ;
@@ -305,6 +325,7 @@ ModalDialog RID_SCDLG_INSCONT
};
CheckBox BTN_INSFORMULAS
{
+ HelpID = "sc:CheckBox:RID_SCDLG_INSCONT:BTN_INSFORMULAS";
Pos = MAP_APPFONT ( 12 , 72 ) ;
Size = MAP_APPFONT ( 84 , 10 ) ;
Text [ en-US ] = "~Formulas" ;
@@ -312,6 +333,7 @@ ModalDialog RID_SCDLG_INSCONT
};
CheckBox BTN_INSATTRS
{
+ HelpID = "sc:CheckBox:RID_SCDLG_INSCONT:BTN_INSATTRS";
Pos = MAP_APPFONT ( 12 , 100 ) ;
Size = MAP_APPFONT ( 84 , 10 ) ;
Text [ en-US ] = "For~mats" ;
@@ -319,6 +341,7 @@ ModalDialog RID_SCDLG_INSCONT
};
CheckBox BTN_INSOBJECTS
{
+ HelpID = "sc:CheckBox:RID_SCDLG_INSCONT:BTN_INSOBJECTS";
Pos = MAP_APPFONT ( 12 , 114 ) ;
Size = MAP_APPFONT ( 84 , 10 ) ;
Text [ en-US ] = "~Objects" ;
@@ -326,6 +349,7 @@ ModalDialog RID_SCDLG_INSCONT
};
CheckBox BTN_INSNOTES
{
+ HelpID = "sc:CheckBox:RID_SCDLG_INSCONT:BTN_INSNOTES";
Pos = MAP_APPFONT ( 12 , 86 ) ;
Size = MAP_APPFONT ( 84 , 10 ) ;
Text [ en-US ] = "~Comments" ;
@@ -339,30 +363,35 @@ ModalDialog RID_SCDLG_INSCONT
};
RadioButton BTN_OP_NOOP
{
+ HelpID = "sc:RadioButton:RID_SCDLG_INSCONT:BTN_OP_NOOP";
Pos = MAP_APPFONT ( 111 , 14 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
Text [ en-US ] = "Non~e" ;
};
RadioButton BTN_OP_ADD
{
+ HelpID = "sc:RadioButton:RID_SCDLG_INSCONT:BTN_OP_ADD";
Pos = MAP_APPFONT ( 111 , 30 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
Text [ en-US ] = "~Add" ;
};
RadioButton BTN_OP_SUB
{
+ HelpID = "sc:RadioButton:RID_SCDLG_INSCONT:BTN_OP_SUB";
Pos = MAP_APPFONT ( 111 , 44 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
Text [ en-US ] = "~Subtract" ;
};
RadioButton BTN_OP_MUL
{
+ HelpID = "sc:RadioButton:RID_SCDLG_INSCONT:BTN_OP_MUL";
Pos = MAP_APPFONT ( 111 , 58 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
Text [ en-US ] = "Multipl~y" ;
};
RadioButton BTN_OP_DIV
{
+ HelpID = "sc:RadioButton:RID_SCDLG_INSCONT:BTN_OP_DIV";
Pos = MAP_APPFONT ( 111 , 72 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
Text [ en-US ] = "Di~vide" ;
@@ -375,18 +404,21 @@ ModalDialog RID_SCDLG_INSCONT
};
CheckBox BTN_SKIP_EMPTY
{
+ HelpID = "sc:CheckBox:RID_SCDLG_INSCONT:BTN_SKIP_EMPTY";
Pos = MAP_APPFONT ( 12 , 141 ) ;
Size = MAP_APPFONT ( 84 , 10 ) ;
Text [ en-US ] = "S~kip empty cells" ;
};
CheckBox BTN_TRANSPOSE
{
+ HelpID = "sc:CheckBox:RID_SCDLG_INSCONT:BTN_TRANSPOSE";
Pos = MAP_APPFONT ( 12 , 155 ) ;
Size = MAP_APPFONT ( 84 , 10 ) ;
Text [ en-US ] = "~Transpose" ;
};
CheckBox BTN_LINK
{
+ HelpID = "sc:CheckBox:RID_SCDLG_INSCONT:BTN_LINK";
Pos = MAP_APPFONT ( 12 , 169 ) ;
Size = MAP_APPFONT ( 84 , 10 ) ;
Text [ en-US ] = "~Link" ;
@@ -399,18 +431,21 @@ ModalDialog RID_SCDLG_INSCONT
};
RadioButton BTN_MV_NONE
{
+ HelpID = "sc:RadioButton:RID_SCDLG_INSCONT:BTN_MV_NONE";
Pos = MAP_APPFONT ( 111 , 141 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
Text [ en-US ] = "Don't sh~ift" ;
};
RadioButton BTN_MV_DOWN
{
+ HelpID = "sc:RadioButton:RID_SCDLG_INSCONT:BTN_MV_DOWN";
Pos = MAP_APPFONT ( 111 , 155 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
Text [ en-US ] = "Do~wn" ;
};
RadioButton BTN_MV_RIGHT
{
+ HelpID = "sc:RadioButton:RID_SCDLG_INSCONT:BTN_MV_RIGHT";
Pos = MAP_APPFONT ( 111 , 169 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
Text [ en-US ] = "~Right" ;
@@ -435,7 +470,7 @@ ModalDialog RID_SCDLG_INSCONT
ModalDialog RID_SCDLG_MOVETAB
{
OutputSize = TRUE ;
- HelpId = FID_TAB_MOVE ;
+ HelpId = CMD_FID_TAB_MOVE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 168 , 130 ) ;
Text [ en-US ] = "Move/Copy Sheet" ;
@@ -468,6 +503,7 @@ ModalDialog RID_SCDLG_MOVETAB
};
ListBox LB_DEST
{
+ HelpID = "sc:ListBox:RID_SCDLG_MOVETAB:LB_DEST";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 17 ) ;
Size = MAP_APPFONT ( 100 , 60 ) ;
@@ -482,6 +518,7 @@ ModalDialog RID_SCDLG_MOVETAB
};
ListBox LB_INSERT
{
+ HelpID = "sc:ListBox:RID_SCDLG_MOVETAB:LB_INSERT";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 46 ) ;
Size = MAP_APPFONT ( 100 , 62 ) ;
@@ -489,6 +526,7 @@ ModalDialog RID_SCDLG_MOVETAB
};
CheckBox BTN_COPY
{
+ HelpID = "sc:CheckBox:RID_SCDLG_MOVETAB:BTN_COPY";
Pos = MAP_APPFONT ( 6 , 114 ) ;
Size = MAP_APPFONT ( 100 , 10 ) ;
Text [ en-US ] = "~Copy" ;
@@ -501,6 +539,7 @@ ModalDialog RID_SCDLG_MOVETAB
};
ModalDialog RID_SCDLG_STRINPUT
{
+ HelpID = "sc:ModalDialog:RID_SCDLG_STRINPUT";
OutputSize = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 178 , 63 ) ;
@@ -527,6 +566,7 @@ ModalDialog RID_SCDLG_STRINPUT
};
Edit ED_INPUT
{
+ HelpID = "sc:Edit:RID_SCDLG_STRINPUT:ED_INPUT";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 17 ) ;
Size = MAP_APPFONT ( 110 , 12 ) ;
@@ -540,6 +580,7 @@ ModalDialog RID_SCDLG_STRINPUT
};
ModalDialog RID_SCDLG_TAB_BG_COLOR
{
+ HelpID = "sc:ModalDialog:RID_SCDLG_TAB_BG_COLOR";
OutputSize = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 118 , 167 ) ;
@@ -585,6 +626,7 @@ ModalDialog RID_SCDLG_TAB_BG_COLOR
/*
ModalDialog RID_SCDLG_TAB_BG_COLOR
{
+ HelpID = "sc:ModalDialog:RID_SCDLG_TAB_BG_COLOR";
OutputSize = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 180 , 150 ) ;
@@ -631,6 +673,7 @@ ModalDialog RID_SCDLG_TAB_BG_COLOR
/*
ModalDialog RID_SCDLG_MTRINPUT
{
+ HelpID = "sc:ModalDialog:RID_SCDLG_MTRINPUT";
OutputSize = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 190 , 63 ) ;
@@ -673,6 +716,7 @@ ModalDialog RID_SCDLG_MTRINPUT
};
CheckBox BTN_DEFVAL
{
+ HelpID = "sc:CheckBox:RID_SCDLG_MTRINPUT:BTN_DEFVAL";
// HelpID, weil die generierten aus den Ableitungen nicht in die hid.lst kommen
TabStop = TRUE ;
Pos = MAP_APPFONT ( 70 , 24 ) ;
@@ -686,7 +730,7 @@ ModalDialog RID_SCDLG_COL_MAN
{
Text [ en-US ] = "Column Width" ;
- HelpId = FID_COL_WIDTH ;
+ HelpId = CMD_FID_COL_WIDTH ;
OutputSize = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 190 , 63 ) ;
@@ -719,6 +763,7 @@ ModalDialog RID_SCDLG_COL_MAN
};
MetricField ED_VALUE
{
+ HelpID = "sc:MetricField:RID_SCDLG_COL_MAN:ED_VALUE";
Border = TRUE ;
Pos = MAP_APPFONT ( 70 , 6 ) ;
Size = MAP_APPFONT ( 70 , 12 ) ;
@@ -728,6 +773,7 @@ ModalDialog RID_SCDLG_COL_MAN
};
CheckBox BTN_DEFVAL
{
+ HelpID = "sc:CheckBox:RID_SCDLG_COL_MAN:BTN_DEFVAL";
// HelpID, weil die generierten aus den Ableitungen nicht in die hid.lst kommen
TabStop = TRUE ;
Pos = MAP_APPFONT ( 70 , 24 ) ;
@@ -740,7 +786,7 @@ ModalDialog RID_SCDLG_COL_OPT
{
Text [ en-US ] = "Optimal Column Width" ;
- HelpId = FID_COL_OPT_WIDTH ;
+ HelpId = CMD_FID_COL_OPT_WIDTH ;
OutputSize = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 190 , 63 ) ;
@@ -773,6 +819,7 @@ ModalDialog RID_SCDLG_COL_OPT
};
MetricField ED_VALUE
{
+ HelpID = "sc:MetricField:RID_SCDLG_COL_OPT:ED_VALUE";
// HelpID, weil die generierten aus den Ableitungen nicht in die hid.lst kommen
Border = TRUE ;
Pos = MAP_APPFONT ( 70 , 6 ) ;
@@ -783,6 +830,7 @@ ModalDialog RID_SCDLG_COL_OPT
};
CheckBox BTN_DEFVAL
{
+ HelpID = "sc:CheckBox:RID_SCDLG_COL_OPT:BTN_DEFVAL";
// HelpID, weil die generierten aus den Ableitungen nicht in die hid.lst kommen
TabStop = TRUE ;
Pos = MAP_APPFONT ( 70 , 24 ) ;
@@ -795,7 +843,7 @@ ModalDialog RID_SCDLG_ROW_MAN
{
Text [ en-US ] = "Row Height" ;
- HelpId = FID_ROW_HEIGHT ;
+ HelpId = CMD_FID_ROW_HEIGHT ;
OutputSize = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 190 , 63 ) ;
@@ -828,6 +876,7 @@ ModalDialog RID_SCDLG_ROW_MAN
};
MetricField ED_VALUE
{
+ HelpID = "sc:MetricField:RID_SCDLG_ROW_MAN:ED_VALUE";
// HelpID, weil die generierten aus den Ableitungen nicht in die hid.lst kommen
Border = TRUE ;
Pos = MAP_APPFONT ( 70 , 6 ) ;
@@ -838,6 +887,7 @@ ModalDialog RID_SCDLG_ROW_MAN
};
CheckBox BTN_DEFVAL
{
+ HelpID = "sc:CheckBox:RID_SCDLG_ROW_MAN:BTN_DEFVAL";
// HelpID, weil die generierten aus den Ableitungen nicht in die hid.lst kommen
TabStop = TRUE ;
Pos = MAP_APPFONT ( 70 , 24 ) ;
@@ -850,7 +900,7 @@ ModalDialog RID_SCDLG_ROW_OPT
{
Text [ en-US ] = "Optimal Row Height" ;
- HelpId = FID_ROW_OPT_HEIGHT ;
+ HelpId = CMD_FID_ROW_OPT_HEIGHT ;
OutputSize = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 190 , 63 ) ;
@@ -883,6 +933,7 @@ ModalDialog RID_SCDLG_ROW_OPT
};
MetricField ED_VALUE
{
+ HelpID = "sc:MetricField:RID_SCDLG_ROW_OPT:ED_VALUE";
Border = TRUE ;
Pos = MAP_APPFONT ( 70 , 6 ) ;
Size = MAP_APPFONT ( 70 , 12 ) ;
@@ -892,6 +943,7 @@ ModalDialog RID_SCDLG_ROW_OPT
};
CheckBox BTN_DEFVAL
{
+ HelpID = "sc:CheckBox:RID_SCDLG_ROW_OPT:BTN_DEFVAL";
// HelpID, weil die generierten aus den Ableitungen nicht in die hid.lst kommen
TabStop = TRUE ;
Pos = MAP_APPFONT ( 70 , 24 ) ;
@@ -906,7 +958,7 @@ ModalDialog RID_SCDLG_ROW_OPT
ModalDialog RID_SCDLG_SELECTDB
{
- HelpId = SID_SELECT_DB ;
+ HelpId = CMD_SID_SELECT_DB ;
OutputSize = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 168 , 100 ) ;
@@ -951,7 +1003,7 @@ ModalDialog RID_SCDLG_SELECTDB
ModalDialog RID_SCDLG_SHOW_TAB
{
- HelpId = FID_TABLE_SHOW ;
+ HelpId = CMD_FID_TABLE_SHOW ;
OutputSize = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 168 , 100 ) ;
@@ -979,6 +1031,7 @@ ModalDialog RID_SCDLG_SHOW_TAB
};
MultiListBox LB_ENTRYLIST
{
+ HelpID = "sc:MultiListBox:RID_SCDLG_SHOW_TAB:LB_ENTRYLIST";
SimpleMode = TRUE ;
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 19 ) ;
@@ -998,7 +1051,7 @@ ModalDialog RID_SCDLG_SHOW_TAB
ModalDialog RID_SCDLG_FILLSERIES
{
OutputSize = TRUE ;
- HelpId = FID_FILL_SERIES ;
+ HelpId = CMD_FID_FILL_SERIES ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 290 , 122 ) ;
Text [ en-US ] = "Fill Series" ;
@@ -1006,6 +1059,7 @@ ModalDialog RID_SCDLG_FILLSERIES
Closeable = FALSE ;
RadioButton BTN_DAY
{
+ HelpID = "sc:RadioButton:RID_SCDLG_FILLSERIES:BTN_DAY";
Pos = MAP_APPFONT ( 159 , 14 ) ;
Size = MAP_APPFONT ( 66 , 10 ) ;
Text [ en-US ] = "Da~y" ;
@@ -1013,6 +1067,7 @@ ModalDialog RID_SCDLG_FILLSERIES
};
RadioButton BTN_DAY_OF_WEEK
{
+ HelpID = "sc:RadioButton:RID_SCDLG_FILLSERIES:BTN_DAY_OF_WEEK";
Pos = MAP_APPFONT ( 159 , 28 ) ;
Size = MAP_APPFONT ( 66 , 10 ) ;
Text [ en-US ] = "~Weekday" ;
@@ -1020,6 +1075,7 @@ ModalDialog RID_SCDLG_FILLSERIES
};
RadioButton BTN_MONTH
{
+ HelpID = "sc:RadioButton:RID_SCDLG_FILLSERIES:BTN_MONTH";
Pos = MAP_APPFONT ( 159 , 42 ) ;
Size = MAP_APPFONT ( 66 , 10 ) ;
Text [ en-US ] = "~Month" ;
@@ -1027,6 +1083,7 @@ ModalDialog RID_SCDLG_FILLSERIES
};
RadioButton BTN_YEAR
{
+ HelpID = "sc:RadioButton:RID_SCDLG_FILLSERIES:BTN_YEAR";
Pos = MAP_APPFONT ( 159 , 56 ) ;
Size = MAP_APPFONT ( 66 , 10 ) ;
Text [ en-US ] = "Y~ear" ;
@@ -1040,6 +1097,7 @@ ModalDialog RID_SCDLG_FILLSERIES
};
RadioButton BTN_RIGHT
{
+ HelpID = "sc:RadioButton:RID_SCDLG_FILLSERIES:BTN_RIGHT";
Pos = MAP_APPFONT ( 12 , 28 ) ;
Size = MAP_APPFONT ( 51 , 10 ) ;
Text [ en-US ] = "~Right" ;
@@ -1047,6 +1105,7 @@ ModalDialog RID_SCDLG_FILLSERIES
};
RadioButton BTN_LEFT
{
+ HelpID = "sc:RadioButton:RID_SCDLG_FILLSERIES:BTN_LEFT";
Pos = MAP_APPFONT ( 12 , 56 ) ;
Size = MAP_APPFONT ( 51 , 10 ) ;
Text [ en-US ] = "~Left" ;
@@ -1054,6 +1113,7 @@ ModalDialog RID_SCDLG_FILLSERIES
};
RadioButton BTN_TOP
{
+ HelpID = "sc:RadioButton:RID_SCDLG_FILLSERIES:BTN_TOP";
Pos = MAP_APPFONT ( 12 , 42 ) ;
Size = MAP_APPFONT ( 51 , 10 ) ;
Text [ en-US ] = "~Up" ;
@@ -1061,6 +1121,7 @@ ModalDialog RID_SCDLG_FILLSERIES
};
RadioButton BTN_BOTTOM
{
+ HelpID = "sc:RadioButton:RID_SCDLG_FILLSERIES:BTN_BOTTOM";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 51 , 10 ) ;
Text [ en-US ] = "~Down" ;
@@ -1074,6 +1135,7 @@ ModalDialog RID_SCDLG_FILLSERIES
};
RadioButton BTN_ARITHMETIC
{
+ HelpID = "sc:RadioButton:RID_SCDLG_FILLSERIES:BTN_ARITHMETIC";
Pos = MAP_APPFONT ( 78 , 14 ) ;
Size = MAP_APPFONT ( 69 , 10 ) ;
Text [ en-US ] = "Li~near" ;
@@ -1081,6 +1143,7 @@ ModalDialog RID_SCDLG_FILLSERIES
};
RadioButton BTN_GEOMETRIC
{
+ HelpID = "sc:RadioButton:RID_SCDLG_FILLSERIES:BTN_GEOMETRIC";
Pos = MAP_APPFONT ( 78 , 28 ) ;
Size = MAP_APPFONT ( 69 , 10 ) ;
Text [ en-US ] = "~Growth" ;
@@ -1088,6 +1151,7 @@ ModalDialog RID_SCDLG_FILLSERIES
};
RadioButton BTN_DATE
{
+ HelpID = "sc:RadioButton:RID_SCDLG_FILLSERIES:BTN_DATE";
Pos = MAP_APPFONT ( 78 , 42 ) ;
Size = MAP_APPFONT ( 69 , 10 ) ;
Text [ en-US ] = "Da~te" ;
@@ -1095,6 +1159,7 @@ ModalDialog RID_SCDLG_FILLSERIES
};
RadioButton BTN_AUTOFILL
{
+ HelpID = "sc:RadioButton:RID_SCDLG_FILLSERIES:BTN_AUTOFILL";
Pos = MAP_APPFONT ( 78 , 56 ) ;
Size = MAP_APPFONT ( 69 , 10 ) ;
Text [ en-US ] = "~AutoFill" ;
@@ -1124,6 +1189,7 @@ ModalDialog RID_SCDLG_FILLSERIES
};
Edit ED_START_VALUES
{
+ HelpID = "sc:Edit:RID_SCDLG_FILLSERIES:ED_START_VALUES";
Border = TRUE ;
Pos = MAP_APPFONT ( 55 , 72 ) ;
Size = MAP_APPFONT ( 58 , 12 ) ;
@@ -1137,6 +1203,7 @@ ModalDialog RID_SCDLG_FILLSERIES
};
Edit ED_END_VALUES
{
+ HelpID = "sc:Edit:RID_SCDLG_FILLSERIES:ED_END_VALUES";
Border = TRUE ;
Pos = MAP_APPFONT ( 55 , 88 ) ;
Size = MAP_APPFONT ( 58 , 12 ) ;
@@ -1150,6 +1217,7 @@ ModalDialog RID_SCDLG_FILLSERIES
};
Edit ED_INCREMENT
{
+ HelpID = "sc:Edit:RID_SCDLG_FILLSERIES:ED_INCREMENT";
Border = TRUE ;
Pos = MAP_APPFONT ( 55 , 104 ) ;
Size = MAP_APPFONT ( 58 , 12 ) ;
@@ -1190,6 +1258,7 @@ ModalDialog RID_SCDLG_FILLSERIES
ModalDialog RID_SCDLG_GROUP
{
+ HelpID = "sc:ModalDialog:RID_SCDLG_GROUP";
OutputSize = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 148 , 63 ) ;
@@ -1250,13 +1319,14 @@ ModalDialog RID_SCDLG_GROUP
};
// Ableitungen
-ModalDialog RID_SCDLG_GRP_MAKE < RID_SCDLG_GROUP { HelpId = SID_OUTLINE_MAKE ; };
-ModalDialog RID_SCDLG_GRP_KILL < RID_SCDLG_GROUP { HelpId = SID_OUTLINE_REMOVE ; };
+ModalDialog RID_SCDLG_GRP_MAKE < RID_SCDLG_GROUP { HelpId = CMD_SID_OUTLINE_MAKE ; };
+ModalDialog RID_SCDLG_GRP_KILL < RID_SCDLG_GROUP { HelpId = CMD_SID_OUTLINE_REMOVE ; };
// RID_SCDLG_COLORROW wird nur in der Optionen-Sortierlisten-Seite benutzt
ModalDialog RID_SCDLG_COLORROW
{
+ HelpID = "sc:ModalDialog:RID_SCDLG_COLORROW";
OutputSize = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 148 , 63 ) ;
@@ -1283,6 +1353,7 @@ ModalDialog RID_SCDLG_COLORROW
};
RadioButton BTN_GROUP_ROWS
{
+ HelpID = "sc:RadioButton:RID_SCDLG_COLORROW:BTN_GROUP_ROWS";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 71 , 10 ) ;
TXT_ROWS
@@ -1290,6 +1361,7 @@ ModalDialog RID_SCDLG_COLORROW
};
RadioButton BTN_GROUP_COLS
{
+ HelpID = "sc:RadioButton:RID_SCDLG_COLORROW:BTN_GROUP_COLS";
Pos = MAP_APPFONT ( 12 , 28 ) ;
Size = MAP_APPFONT ( 71 , 10 ) ;
TXT_COLS
@@ -1306,11 +1378,12 @@ ModalDialog RID_SCDLG_NAMES_CREATE
{
OutputSize = TRUE ;
SVLook = TRUE ;
- HelpID = FID_USE_NAME ;
+ HelpID = CMD_FID_USE_NAME ;
Size = MAP_APPFONT ( 174 , 72 ) ;
Moveable = TRUE ;
CheckBox BTN_TOP
{
+ HelpID = "sc:CheckBox:RID_SCDLG_NAMES_CREATE:BTN_TOP";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 93 , 10 ) ;
TabStop = TRUE ;
@@ -1318,6 +1391,7 @@ ModalDialog RID_SCDLG_NAMES_CREATE
};
CheckBox BTN_LEFT
{
+ HelpID = "sc:CheckBox:RID_SCDLG_NAMES_CREATE:BTN_LEFT";
Pos = MAP_APPFONT ( 12 , 28 ) ;
Size = MAP_APPFONT ( 93 , 10 ) ;
TabStop = TRUE ;
@@ -1325,6 +1399,7 @@ ModalDialog RID_SCDLG_NAMES_CREATE
};
CheckBox BTN_BOTTOM
{
+ HelpID = "sc:CheckBox:RID_SCDLG_NAMES_CREATE:BTN_BOTTOM";
Pos = MAP_APPFONT ( 12 , 42 ) ;
Size = MAP_APPFONT ( 93 , 10 ) ;
TabStop = TRUE ;
@@ -1332,6 +1407,7 @@ ModalDialog RID_SCDLG_NAMES_CREATE
};
CheckBox BTN_RIGHT
{
+ HelpID = "sc:CheckBox:RID_SCDLG_NAMES_CREATE:BTN_RIGHT";
Pos = MAP_APPFONT ( 12 , 56 ) ;
Size = MAP_APPFONT ( 93 , 10 ) ;
TabStop = TRUE ;
@@ -1368,7 +1444,7 @@ ModalDialog RID_SCDLG_NAMES_CREATE
ModalDialog RID_SCDLG_NAMES_PASTE
{
OutputSize = TRUE ;
- HelpId = FID_INSERT_NAME ;
+ HelpId = CMD_FID_INSERT_NAME ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 228 , 85 ) ;
Moveable = TRUE ;
@@ -1380,6 +1456,7 @@ ModalDialog RID_SCDLG_NAMES_PASTE
};
ListBox LB_ENTRYLIST
{
+ HelpID = "sc:ListBox:RID_SCDLG_NAMES_PASTE:LB_ENTRYLIST";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 14 ) ;
Size = MAP_APPFONT ( 160 , 65 ) ;
@@ -1408,6 +1485,7 @@ ModalDialog RID_SCDLG_NAMES_PASTE
};
PushButton BTN_ADD
{
+ HelpID = "sc:PushButton:RID_SCDLG_NAMES_PASTE:BTN_ADD";
Pos = MAP_APPFONT ( 172 , 66 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
@@ -1418,18 +1496,21 @@ ModalDialog RID_SCDLG_NAMES_PASTE
ModalDialog RID_SCDLG_CHARTCOLROW
{
+ HelpID = "sc:ModalDialog:RID_SCDLG_CHARTCOLROW";
OutputSize = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 191 , 63 ) ;
Moveable = TRUE ;
CheckBox 1
{
+ HelpID = "sc:CheckBox:RID_SCDLG_CHARTCOLROW:1";
Pos = MAP_APPFONT ( 12 , 28 ) ;
Size = MAP_APPFONT ( 114 , 10 ) ;
Text [ en-US ] = "First ~column as label" ;
};
CheckBox 2
{
+ HelpID = "sc:CheckBox:RID_SCDLG_CHARTCOLROW:2";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 114 , 10 ) ;
Text [ en-US ] = "First ~row as label" ;
diff --git a/sc/source/ui/src/namedlg.src b/sc/source/ui/src/namedlg.src
index 38e1271b2959..f5fa0d822b12 100644
--- a/sc/source/ui/src/namedlg.src
+++ b/sc/source/ui/src/namedlg.src
@@ -29,7 +29,7 @@
ModelessDialog RID_SCDLG_NAMES
{
OutputSize = TRUE ;
- HelpId = FID_DEFINE_NAME ;
+ HelpId = CMD_FID_DEFINE_NAME ;
Hide = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 222 , 142 ) ;
@@ -56,6 +56,7 @@ ModelessDialog RID_SCDLG_NAMES
};
PushButton BTN_ADD
{
+ HelpID = "sc:PushButton:RID_SCDLG_NAMES:BTN_ADD";
Pos = MAP_APPFONT ( 166 , 74 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
/* ### ACHTUNG: Neuer Text in Resource? Hinzu~fgen : Hinzu~fgen */
@@ -65,6 +66,7 @@ ModelessDialog RID_SCDLG_NAMES
};
PushButton BTN_REMOVE
{
+ HelpID = "sc:PushButton:RID_SCDLG_NAMES:BTN_REMOVE";
Pos = MAP_APPFONT ( 166 , 92 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
/* ### ACHTUNG: Neuer Text in Resource? ~Lschen : ~Lschen */
@@ -79,6 +81,7 @@ ModelessDialog RID_SCDLG_NAMES
};
ComboBox ED_NAME
{
+ HelpID = "sc:ComboBox:RID_SCDLG_NAMES:ED_NAME";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 145 , 92 ) ;
TabStop = TRUE ;
@@ -93,6 +96,7 @@ ModelessDialog RID_SCDLG_NAMES
};
Edit ED_ASSIGN
{
+ HelpID = "sc:Edit:RID_SCDLG_NAMES:ED_ASSIGN";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 123 ) ;
Size = MAP_APPFONT ( 131 , 12 ) ;
@@ -100,6 +104,7 @@ ModelessDialog RID_SCDLG_NAMES
};
ImageButton RB_ASSIGN
{
+ HelpID = "sc:ImageButton:RID_SCDLG_NAMES:RB_ASSIGN";
Pos = MAP_APPFONT ( 145 , 122 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -107,6 +112,7 @@ ModelessDialog RID_SCDLG_NAMES
};
MoreButton BTN_MORE
{
+ HelpID = "sc:MoreButton:RID_SCDLG_NAMES:BTN_MORE";
Pos = MAP_APPFONT ( 166 , 122 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
@@ -121,6 +127,7 @@ ModelessDialog RID_SCDLG_NAMES
};
CheckBox BTN_PRINTAREA
{
+ HelpID = "sc:CheckBox:RID_SCDLG_NAMES:BTN_PRINTAREA";
Pos = MAP_APPFONT ( 12 , 153 ) ;
Size = MAP_APPFONT ( 60 , 10 ) ;
Text [ en-US ] = "~Print range" ;
@@ -128,6 +135,7 @@ ModelessDialog RID_SCDLG_NAMES
};
CheckBox BTN_CRITERIA
{
+ HelpID = "sc:CheckBox:RID_SCDLG_NAMES:BTN_CRITERIA";
Pos = MAP_APPFONT ( 12 , 167 ) ;
Size = MAP_APPFONT ( 60 , 10 ) ;
Text [ en-US ] = "~Filter" ;
@@ -135,6 +143,7 @@ ModelessDialog RID_SCDLG_NAMES
};
CheckBox BTN_ROWHEADER
{
+ HelpID = "sc:CheckBox:RID_SCDLG_NAMES:BTN_ROWHEADER";
Pos = MAP_APPFONT ( 75 , 167 ) ;
Size = MAP_APPFONT ( 82 , 10 ) ;
Text [ en-US ] = "Repeat ~row" ;
@@ -142,6 +151,7 @@ ModelessDialog RID_SCDLG_NAMES
};
CheckBox BTN_COLHEADER
{
+ HelpID = "sc:CheckBox:RID_SCDLG_NAMES:BTN_COLHEADER";
Pos = MAP_APPFONT ( 75 , 153 ) ;
Size = MAP_APPFONT ( 82 , 10 ) ;
Text [ en-US ] = "Repeat ~column" ;
diff --git a/sc/source/ui/src/opredlin.src b/sc/source/ui/src/opredlin.src
index a8c2daf4892a..8cabbca238f6 100644
--- a/sc/source/ui/src/opredlin.src
+++ b/sc/source/ui/src/opredlin.src
@@ -35,7 +35,7 @@ TabPage RID_SCPAGE_OPREDLINE
Size = MAP_APPFONT ( 260 , 185 ) ;
FixedText FT_CONTENT
{
- HelpID = 1 ;
+ HelpID = HID_SCPAGE_OPREDLINBE_FT_CONTENT ;
Pos = MAP_APPFONT ( 12 , 15 ) ;
Size = MAP_APPFONT ( 70 , 10 ) ;
Text [ en-US ] = "Chan~ges" ;
@@ -66,6 +66,7 @@ TabPage RID_SCPAGE_OPREDLINE
};
ListBox CLB_CONTENT
{
+ HelpID = "sc:ListBox:RID_SCPAGE_OPREDLINE:CLB_CONTENT";
Pos = MAP_APPFONT ( 90 , 14 ) ;
Size = MAP_APPFONT ( 120 , 86 ) ;
TabStop = TRUE ;
@@ -73,6 +74,7 @@ TabPage RID_SCPAGE_OPREDLINE
};
ListBox CLB_REMOVE
{
+ HelpID = "sc:ListBox:RID_SCPAGE_OPREDLINE:CLB_REMOVE";
Pos = MAP_APPFONT ( 90 , 30 ) ;
Size = MAP_APPFONT ( 120 , 86 ) ;
TabStop = TRUE ;
@@ -80,6 +82,7 @@ TabPage RID_SCPAGE_OPREDLINE
};
ListBox CLB_INSERT
{
+ HelpID = "sc:ListBox:RID_SCPAGE_OPREDLINE:CLB_INSERT";
Pos = MAP_APPFONT ( 90 , 46 ) ;
Size = MAP_APPFONT ( 120 , 86 ) ;
TabStop = TRUE ;
@@ -87,6 +90,7 @@ TabPage RID_SCPAGE_OPREDLINE
};
ListBox CLB_MOVE
{
+ HelpID = "sc:ListBox:RID_SCPAGE_OPREDLINE:CLB_MOVE";
Pos = MAP_APPFONT ( 90 , 62 ) ;
Size = MAP_APPFONT ( 120 , 86 ) ;
TabStop = TRUE ;
diff --git a/sc/source/ui/src/optdlg.src b/sc/source/ui/src/optdlg.src
index ea7cabf7716d..9bcc3c71f4f7 100644
--- a/sc/source/ui/src/optdlg.src
+++ b/sc/source/ui/src/optdlg.src
@@ -41,6 +41,7 @@ TabPage RID_SCPAGE_CALC
Size = MAP_APPFONT ( 260 , 185 ) ;
CheckBox BTN_ITERATE
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CALC:BTN_ITERATE";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
Text [ en-US ] = "~Iterations" ;
@@ -60,6 +61,7 @@ TabPage RID_SCPAGE_CALC
};
NumericField ED_STEPS
{
+ HelpID = "sc:NumericField:RID_SCPAGE_CALC:ED_STEPS";
Border = TRUE ;
Pos = MAP_APPFONT ( 82 , 26 ) ;
Size = MAP_APPFONT ( 42 , 12 ) ;
@@ -70,6 +72,7 @@ TabPage RID_SCPAGE_CALC
};
Edit ED_EPS
{
+ HelpID = "sc:Edit:RID_SCPAGE_CALC:ED_EPS";
Border = TRUE ;
Pos = MAP_APPFONT ( 82 , 42 ) ;
Size = MAP_APPFONT ( 42 , 12 ) ;
@@ -82,6 +85,7 @@ TabPage RID_SCPAGE_CALC
};
RadioButton BTN_DATESTD
{
+ HelpID = "sc:RadioButton:RID_SCPAGE_CALC:BTN_DATESTD";
Pos = MAP_APPFONT ( 139 , 14 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
Text [ en-US ] = "12/30/1899 (defa~ult)" ;
@@ -89,6 +93,7 @@ TabPage RID_SCPAGE_CALC
};
RadioButton BTN_DATESC10
{
+ HelpID = "sc:RadioButton:RID_SCPAGE_CALC:BTN_DATESC10";
Pos = MAP_APPFONT ( 139 , 28 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
/* ### ACHTUNG: Neuer Text in Resource? 01.01.1900 ( Star~Calc 1.0 ) : StarCa~lc 1.0 */
@@ -97,6 +102,7 @@ TabPage RID_SCPAGE_CALC
};
RadioButton BTN_DATE1904
{
+ HelpID = "sc:RadioButton:RID_SCPAGE_CALC:BTN_DATE1904";
Pos = MAP_APPFONT ( 139 , 42 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
/* ### ACHTUNG: Neuer Text in Resource? ~01.01.1904 : ~1904 */
@@ -121,49 +127,56 @@ TabPage RID_SCPAGE_CALC
};
CheckBox BTN_CASE
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CALC:BTN_CASE";
Pos = MAP_APPFONT ( 12 , 77 ) ;
Size = MAP_APPFONT ( 130 , 10 ) ;
Text [ en-US ] = "Case se~nsitive" ;
};
CheckBox BTN_CALC
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CALC:BTN_CALC";
Pos = MAP_APPFONT ( 12 , 91 ) ;
Size = MAP_APPFONT ( 239 , 10 ) ;
Text [ en-US ] = "~Precision as shown" ;
};
CheckBox BTN_MATCH
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CALC:BTN_MATCH";
Pos = MAP_APPFONT ( 12 , 105 ) ;
Size = MAP_APPFONT ( 239 , 10 ) ;
Text [ en-US ] = "Search criteria = and <> must apply to ~whole cells" ;
};
CheckBox BTN_REGEX
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CALC:BTN_REGEX";
Pos = MAP_APPFONT ( 12 , 119 ) ;
Size = MAP_APPFONT ( 239 , 10 ) ;
Text [ en-US ] = "~Enable regular expressions in formulas" ;
};
CheckBox BTN_LOOKUP
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CALC:BTN_LOOKUP";
Pos = MAP_APPFONT ( 12 , 133 ) ;
Size = MAP_APPFONT ( 239 , 10 ) ;
Text [ en-US ] = "~Automatically find column and row labels " ;
};
CheckBox BTN_GENERAL_PREC
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CALC:BTN_GENERAL_PREC";
Pos = MAP_APPFONT ( 12 , 147 ) ;
- Size = MAP_APPFONT ( 136 , 10 ) ;
+ Size = MAP_APPFONT ( 148 , 10 ) ;
Text [ en-US ] = "Limit decimals for general number format" ;
};
FixedText FT_PREC
{
- Pos = MAP_APPFONT ( 150 , 148 ) ;
- Size = MAP_APPFONT ( 72 , 8 ) ;
+ Pos = MAP_APPFONT ( 138 , 148 ) ;
+ Size = MAP_APPFONT ( 84 , 8 ) ;
Text [ en-US ] = "~Decimal places" ;
Right = TRUE ;
};
NumericField ED_PREC
{
+ HelpID = "sc:NumericField:RID_SCPAGE_CALC:ED_PREC";
Border = TRUE ;
Pos = MAP_APPFONT ( 226 , 146 ) ;
Size = MAP_APPFONT ( 25 , 12 ) ;
@@ -194,6 +207,7 @@ TabPage RID_SCPAGE_USERLISTS
};
ListBox LB_LISTS
{
+ HelpID = "sc:ListBox:RID_SCPAGE_USERLISTS:LB_LISTS";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 15 ) ;
Size = MAP_APPFONT ( 93 , 148 ) ;
@@ -207,6 +221,7 @@ TabPage RID_SCPAGE_USERLISTS
};
MultiLineEdit ED_ENTRIES
{
+ HelpID = "sc:MultiLineEdit:RID_SCPAGE_USERLISTS:ED_ENTRIES";
Border = TRUE ;
Pos = MAP_APPFONT ( 105 , 15 ) ;
Size = MAP_APPFONT ( 93 , 148 ) ;
@@ -215,6 +230,7 @@ TabPage RID_SCPAGE_USERLISTS
};
Edit ED_COPYFROM
{
+ HelpID = "sc:Edit:RID_SCPAGE_USERLISTS:ED_COPYFROM";
Border = TRUE ;
Pos = MAP_APPFONT ( 70 , 167 ) ;
Size = MAP_APPFONT ( 128 , 12 ) ;
@@ -228,12 +244,14 @@ TabPage RID_SCPAGE_USERLISTS
};
PushButton BTN_NEW
{
+ HelpID = "sc:PushButton:RID_SCPAGE_USERLISTS:BTN_NEW";
Pos = MAP_APPFONT ( 204 , 15 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
Text [ en-US ] = "~New" ;
};
PushButton BTN_ADD
{
+ HelpID = "sc:PushButton:RID_SCPAGE_USERLISTS:BTN_ADD";
Pos = MAP_APPFONT ( 204 , 36 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
/* ### ACHTUNG: Neuer Text in Resource? ~Hinzufgen : ~Hinzufgen */
@@ -242,6 +260,7 @@ TabPage RID_SCPAGE_USERLISTS
};
PushButton BTN_REMOVE
{
+ HelpID = "sc:PushButton:RID_SCPAGE_USERLISTS:BTN_REMOVE";
Pos = MAP_APPFONT ( 204 , 54 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
/* ### ACHTUNG: Neuer Text in Resource? ~Lschen : ~Lschen */
@@ -249,6 +268,7 @@ TabPage RID_SCPAGE_USERLISTS
};
PushButton BTN_COPY
{
+ HelpID = "sc:PushButton:RID_SCPAGE_USERLISTS:BTN_COPY";
Pos = MAP_APPFONT ( 204 , 166 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
Text [ en-US ] = "~Copy" ;
@@ -297,6 +317,7 @@ TabPage RID_SCPAGE_CONTENT
};
CheckBox CB_GRID
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CONTENT:CB_GRID";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
Text [ en-US ] = "~Grid lines" ;
@@ -309,6 +330,7 @@ TabPage RID_SCPAGE_CONTENT
};
ListBox LB_COLOR
{
+ HelpID = "sc:ListBox:RID_SCPAGE_CONTENT:LB_COLOR";
Border = TRUE ;
Pos = MAP_APPFONT ( 54 , 26 ) ;
Size = MAP_APPFONT ( 70 , 86 ) ;
@@ -317,24 +339,28 @@ TabPage RID_SCPAGE_CONTENT
};
CheckBox CB_PAGEBREAKS
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CONTENT:CB_PAGEBREAKS";
Pos = MAP_APPFONT ( 12 , 42 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
Text [ en-US ] = "~Page breaks" ;
};
CheckBox CB_GUIDELINE
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CONTENT:CB_GUIDELINE";
Pos = MAP_APPFONT ( 12 , 56 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
Text [ en-US ] = "Guides ~while moving";
};
CheckBox CB_HANDLES
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CONTENT:CB_HANDLES";
Pos = MAP_APPFONT ( 12 , 70 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
Text [ en-US ] = "~Simple handles";
};
CheckBox CB_BIGHANDLES
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CONTENT:CB_BIGHANDLES";
Pos = MAP_APPFONT ( 12 , 84 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
Text [ en-US ] = "~Large handles";
@@ -352,42 +378,49 @@ TabPage RID_SCPAGE_CONTENT
};
CheckBox CB_FORMULA
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CONTENT:CB_FORMULA";
Pos = MAP_APPFONT ( 139 , 14 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
Text [ en-US ] = "~Formulas" ;
};
CheckBox CB_NIL
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CONTENT:CB_NIL";
Pos = MAP_APPFONT ( 139 , 27 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
Text [ en-US ] = "Zero val~ues" ;
};
CheckBox CB_ANNOT
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CONTENT:CB_ANNOT";
Pos = MAP_APPFONT ( 139 , 40 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
Text [ en-US ] = "~Comment indicator" ;
};
CheckBox CB_VALUE
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CONTENT:CB_VALUE";
Pos = MAP_APPFONT ( 139 , 53 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
Text [ en-US ] = "Value h~ighlighting" ;
};
CheckBox CB_ANCHOR
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CONTENT:CB_ANCHOR";
Pos = MAP_APPFONT ( 139 , 66 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
Text [ en-US ] = "~Anchor" ;
};
CheckBox CB_CLIP
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CONTENT:CB_CLIP";
Pos = MAP_APPFONT ( 139 , 79 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
Text [ en-US ] = "Te~xt overflow" ;
};
CheckBox CB_RFIND
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CONTENT:CB_RFIND";
Pos = MAP_APPFONT ( 139 , 92 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
Text [ en-US ] = "Show references in color" ;
@@ -406,6 +439,7 @@ TabPage RID_SCPAGE_CONTENT
};
ListBox LB_OBJGRF
{
+ HelpID = "sc:ListBox:RID_SCPAGE_CONTENT:LB_OBJGRF";
Pos = MAP_APPFONT ( 84 , 111 ) ;
Size = MAP_APPFONT ( 40 , 46 ) ;
Border = TRUE ;
@@ -424,6 +458,7 @@ TabPage RID_SCPAGE_CONTENT
};
ListBox LB_DIAGRAM
{
+ HelpID = "sc:ListBox:RID_SCPAGE_CONTENT:LB_DIAGRAM";
Pos = MAP_APPFONT ( 84 , 127 ) ;
Size = MAP_APPFONT ( 40 , 46 ) ;
Border = TRUE ;
@@ -443,6 +478,7 @@ TabPage RID_SCPAGE_CONTENT
};
ListBox LB_DRAW
{
+ HelpID = "sc:ListBox:RID_SCPAGE_CONTENT:LB_DRAW";
Pos = MAP_APPFONT ( 84 , 143 ) ;
Size = MAP_APPFONT ( 40 , 46 ) ;
Border = TRUE ;
@@ -462,6 +498,7 @@ TabPage RID_SCPAGE_CONTENT
};
CheckBox CB_SYNCZOOM
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CONTENT:CB_SYNCZOOM";
Pos = MAP_APPFONT ( 12 , 171 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
Text [ en-US ] = "S~ynchronize sheets" ;
@@ -479,30 +516,35 @@ TabPage RID_SCPAGE_CONTENT
};
CheckBox CB_ROWCOLHEADER
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CONTENT:CB_ROWCOLHEADER";
Pos = MAP_APPFONT ( 139 , 119 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
Text [ en-US ] = "Colu~mn/row headers" ;
};
CheckBox CB_HSCROLL
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CONTENT:CB_HSCROLL";
Pos = MAP_APPFONT ( 139 , 132 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
Text [ en-US ] = "Hori~zontal scroll bar" ;
};
CheckBox CB_VSCROLL
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CONTENT:CB_VSCROLL";
Pos = MAP_APPFONT ( 139 , 145 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
Text [ en-US ] = "~Vertical scroll bar" ;
};
CheckBox CB_TBLREG
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CONTENT:CB_TBLREG";
Pos = MAP_APPFONT ( 139 , 158 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
Text [ en-US ] = "Sh~eet tabs" ;
};
CheckBox CB_OUTLINE
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_CONTENT:CB_OUTLINE";
Pos = MAP_APPFONT ( 139 , 171 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
Text [ en-US ] = "~Outline symbols" ;
@@ -537,6 +579,7 @@ TabPage RID_SCPAGE_LAYOUT
};
ListBox LB_UNIT
{
+ HelpID = "sc:ListBox:RID_SCPAGE_LAYOUT:LB_UNIT";
Border = TRUE ;
Pos = MAP_APPFONT ( 72 , 14 ) ;
Size = MAP_APPFONT ( 46 , 52 ) ;
@@ -565,6 +608,7 @@ TabPage RID_SCPAGE_LAYOUT
};
MetricField MF_TAB
{
+ HelpID = "sc:MetricField:RID_SCPAGE_LAYOUT:MF_TAB";
Border = TRUE ;
Pos = MAP_APPFONT ( 72 , 30 ) ;
Size = MAP_APPFONT ( 46 , 12 ) ;
@@ -598,6 +642,7 @@ TabPage RID_SCPAGE_LAYOUT
};
RadioButton RB_ALWAYS
{
+ HelpID = "sc:RadioButton:RID_SCPAGE_LAYOUT:RB_ALWAYS";
Pos = MAP_APPFONT ( 139 , 25 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
TabStop = TRUE ;
@@ -605,6 +650,7 @@ TabPage RID_SCPAGE_LAYOUT
};
RadioButton RB_REQUEST
{
+ HelpID = "sc:RadioButton:RID_SCPAGE_LAYOUT:RB_REQUEST";
Pos = MAP_APPFONT ( 139 , 39 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
TabStop = TRUE ;
@@ -612,6 +658,7 @@ TabPage RID_SCPAGE_LAYOUT
};
RadioButton RB_NEVER
{
+ HelpID = "sc:RadioButton:RID_SCPAGE_LAYOUT:RB_NEVER";
Pos = MAP_APPFONT ( 139 , 53 ) ;
Size = MAP_APPFONT ( 112 , 10 ) ;
TabStop = TRUE ;
@@ -625,12 +672,14 @@ TabPage RID_SCPAGE_LAYOUT
};
CheckBox CB_ALIGN
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_LAYOUT:CB_ALIGN";
Pos = MAP_APPFONT ( 12 , 82 ) ;
Size = MAP_APPFONT ( 175 , 10 ) ;
Text [ en-US ] = "Press Enter to ~move selection" ;
};
ListBox LB_ALIGN
{
+ HelpID = "sc:ListBox:RID_SCPAGE_LAYOUT:LB_ALIGN";
Pos = MAP_APPFONT ( 191 , 80 ) ;
Size = MAP_APPFONT ( 60 , 60 ) ;
Border = TRUE ;
@@ -646,36 +695,42 @@ TabPage RID_SCPAGE_LAYOUT
};
CheckBox CB_EDITMODE
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_LAYOUT:CB_EDITMODE";
Pos = MAP_APPFONT ( 12 , 96 ) ;
Size = MAP_APPFONT ( 239 , 10 ) ;
Text [ en-US ] = "Press Enter to switch to ~edit mode" ;
};
CheckBox CB_FORMAT
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_LAYOUT:CB_FORMAT";
Pos = MAP_APPFONT ( 12 , 110 ) ;
Size = MAP_APPFONT ( 239 , 10 ) ;
Text [ en-US ] = "Expand ~formatting" ;
};
CheckBox CB_EXPREF
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_LAYOUT:CB_EXPREF";
Pos = MAP_APPFONT ( 12 , 124 ) ;
Size = MAP_APPFONT ( 239 , 10 ) ;
Text [ en-US ] = "Expand ~references when new columns/rows are inserted" ;
};
CheckBox CB_MARKHDR
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_LAYOUT:CB_MARKHDR";
Pos = MAP_APPFONT ( 12 , 138 ) ;
Size = MAP_APPFONT ( 239 , 10 ) ;
Text [ en-US ] = "Highlight sele~ction in column/row headers" ;
};
CheckBox CB_TEXTFMT
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_LAYOUT:CB_TEXTFMT";
Pos = MAP_APPFONT ( 12 , 152 ) ;
Size = MAP_APPFONT ( 239 , 10 ) ;
Text [ en-US ] = "Use printer metrics for text formatting";
};
CheckBox CB_REPLWARN
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_LAYOUT:CB_REPLWARN";
Pos = MAP_APPFONT ( 12 , 166 ) ;
Size = MAP_APPFONT ( 239 , 10 ) ;
Text [ en-US ] = "Show overwrite ~warning when pasting data";
@@ -703,6 +758,7 @@ TabPage RID_SCPAGE_PRINT
};
CheckBox BTN_SKIPEMPTYPAGES
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_PRINT:BTN_SKIPEMPTYPAGES";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 239 , 10 ) ;
Text [ en-US ] = "~Suppress output of empty pages";
@@ -715,6 +771,7 @@ TabPage RID_SCPAGE_PRINT
};
CheckBox BTN_SELECTEDSHEETS
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_PRINT:BTN_SELECTEDSHEETS";
Pos = MAP_APPFONT ( 12 , 41 ) ;
Size = MAP_APPFONT ( 239 , 10 ) ;
Text [ en-US ] = "~Print only selected sheets";
diff --git a/sc/source/ui/src/optsolver.src b/sc/source/ui/src/optsolver.src
index 2fc5cf3a3c54..4928c4d7dfa8 100644
--- a/sc/source/ui/src/optsolver.src
+++ b/sc/source/ui/src/optsolver.src
@@ -30,7 +30,7 @@
ModelessDialog RID_SCDLG_OPTSOLVER
{
OutputSize = TRUE ;
- HelpId = SID_OPENDLG_OPTSOLVER ;
+ HelpId = CMD_SID_OPENDLG_OPTSOLVER ;
Hide = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 230 , 210 ) ;
@@ -46,6 +46,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
Edit ED_OBJECTIVECELL
{
+ HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_OBJECTIVECELL";
Border = TRUE ;
Pos = MAP_APPFONT ( 67 , 6 ) ;
Size = MAP_APPFONT ( 130 , 12 ) ;
@@ -53,6 +54,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
ImageButton IB_OBJECTIVECELL
{
+ HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_OBJECTIVECELL";
Pos = MAP_APPFONT ( 199 , 5 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -67,6 +69,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
RadioButton RB_MAX
{
+ HelpID = "sc:RadioButton:RID_SCDLG_OPTSOLVER:RB_MAX";
Pos = MAP_APPFONT ( 67 , 24 ) ;
Size = MAP_APPFONT ( 50 , 10 ) ;
Text [ en-US ] = "Maximum" ;
@@ -74,6 +77,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
RadioButton RB_MIN
{
+ HelpID = "sc:RadioButton:RID_SCDLG_OPTSOLVER:RB_MIN";
Pos = MAP_APPFONT ( 67 , 38 ) ;
Size = MAP_APPFONT ( 50 , 10 ) ;
Text [ en-US ] = "Minimum" ;
@@ -81,6 +85,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
RadioButton RB_VALUE
{
+ HelpID = "sc:RadioButton:RID_SCDLG_OPTSOLVER:RB_VALUE";
Pos = MAP_APPFONT ( 67 , 52 ) ;
Size = MAP_APPFONT ( 59 , 10 ) ;
Text [ en-US ] = "Value of" ;
@@ -88,6 +93,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
Edit ED_TARGET
{
+ HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_TARGET";
Border = TRUE ;
Pos = MAP_APPFONT ( 128 , 50 ) ;
Size = MAP_APPFONT ( 69 , 12 ) ;
@@ -95,6 +101,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
ImageButton IB_TARGET
{
+ HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_TARGET";
Pos = MAP_APPFONT ( 199 , 49 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -109,6 +116,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
Edit ED_VARIABLECELLS
{
+ HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_VARIABLECELLS";
Border = TRUE ;
Pos = MAP_APPFONT ( 67 , 66 ) ;
Size = MAP_APPFONT ( 130 , 12 ) ;
@@ -116,6 +124,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
ImageButton IB_VARIABLECELLS
{
+ HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_VARIABLECELLS";
Pos = MAP_APPFONT ( 199 , 65 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -150,6 +159,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
Edit ED_LEFT1
{
+ HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_LEFT1";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 114 ) ;
Size = MAP_APPFONT ( 53 , 12 ) ;
@@ -157,6 +167,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
ImageButton IB_LEFT1
{
+ HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_LEFT1";
Pos = MAP_APPFONT ( 67 , 113 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -164,6 +175,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
ListBox LB_OP1
{
+ HelpID = "sc:ListBox:RID_SCDLG_OPTSOLVER:LB_OP1";
Border = TRUE ;
Pos = MAP_APPFONT ( 84 , 114 ) ;
Size = MAP_APPFONT ( 38 , 56 ) ;
@@ -180,6 +192,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
Edit ED_RIGHT1
{
+ HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_RIGHT1";
Border = TRUE ;
Pos = MAP_APPFONT ( 128 , 114 ) ;
Size = MAP_APPFONT ( 53 , 12 ) ;
@@ -187,6 +200,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
ImageButton IB_RIGHT1
{
+ HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_RIGHT1";
Pos = MAP_APPFONT ( 183 , 113 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -194,6 +208,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
ImageButton IB_DELETE1
{
+ HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_DELETE1";
Pos = MAP_APPFONT ( 199 , 113 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = TRUE ;
@@ -203,6 +218,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
Edit ED_LEFT2
{
+ HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_LEFT2";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 129 ) ;
Size = MAP_APPFONT ( 53 , 12 ) ;
@@ -210,6 +226,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
ImageButton IB_LEFT2
{
+ HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_LEFT2";
Pos = MAP_APPFONT ( 67 , 128 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -217,6 +234,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
ListBox LB_OP2
{
+ HelpID = "sc:ListBox:RID_SCDLG_OPTSOLVER:LB_OP2";
Border = TRUE ;
Pos = MAP_APPFONT ( 84 , 129 ) ;
Size = MAP_APPFONT ( 38 , 56 ) ;
@@ -233,6 +251,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
Edit ED_RIGHT2
{
+ HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_RIGHT2";
Border = TRUE ;
Pos = MAP_APPFONT ( 128 , 129 ) ;
Size = MAP_APPFONT ( 53 , 12 ) ;
@@ -240,6 +259,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
ImageButton IB_RIGHT2
{
+ HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_RIGHT2";
Pos = MAP_APPFONT ( 183 , 128 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -247,6 +267,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
ImageButton IB_DELETE2
{
+ HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_DELETE2";
Pos = MAP_APPFONT ( 199 , 128 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = TRUE ;
@@ -256,6 +277,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
Edit ED_LEFT3
{
+ HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_LEFT3";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 144 ) ;
Size = MAP_APPFONT ( 53 , 12 ) ;
@@ -263,6 +285,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
ImageButton IB_LEFT3
{
+ HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_LEFT3";
Pos = MAP_APPFONT ( 67 , 143 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -270,6 +293,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
ListBox LB_OP3
{
+ HelpID = "sc:ListBox:RID_SCDLG_OPTSOLVER:LB_OP3";
Border = TRUE ;
Pos = MAP_APPFONT ( 84 , 144 ) ;
Size = MAP_APPFONT ( 38 , 56 ) ;
@@ -286,6 +310,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
Edit ED_RIGHT3
{
+ HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_RIGHT3";
Border = TRUE ;
Pos = MAP_APPFONT ( 128 , 144 ) ;
Size = MAP_APPFONT ( 53 , 12 ) ;
@@ -293,6 +318,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
ImageButton IB_RIGHT3
{
+ HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_RIGHT3";
Pos = MAP_APPFONT ( 183 , 143 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -300,6 +326,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
ImageButton IB_DELETE3
{
+ HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_DELETE3";
Pos = MAP_APPFONT ( 199 , 143 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = TRUE ;
@@ -309,6 +336,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
Edit ED_LEFT4
{
+ HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_LEFT4";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 159 ) ;
Size = MAP_APPFONT ( 53 , 12 ) ;
@@ -316,6 +344,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
ImageButton IB_LEFT4
{
+ HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_LEFT4";
Pos = MAP_APPFONT ( 67 , 158 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -323,6 +352,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
ListBox LB_OP4
{
+ HelpID = "sc:ListBox:RID_SCDLG_OPTSOLVER:LB_OP4";
Border = TRUE ;
Pos = MAP_APPFONT ( 84 , 159 ) ;
Size = MAP_APPFONT ( 38 , 56 ) ;
@@ -339,6 +369,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
Edit ED_RIGHT4
{
+ HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_RIGHT4";
Border = TRUE ;
Pos = MAP_APPFONT ( 128 , 159 ) ;
Size = MAP_APPFONT ( 53 , 12 ) ;
@@ -346,6 +377,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
ImageButton IB_RIGHT4
{
+ HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_RIGHT4";
Pos = MAP_APPFONT ( 183 , 158 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -353,6 +385,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
ImageButton IB_DELETE4
{
+ HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_DELETE4";
Pos = MAP_APPFONT ( 199 , 158 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = TRUE ;
@@ -375,6 +408,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
PushButton BTN_OPTIONS
{
+ HelpID = "sc:PushButton:RID_SCDLG_OPTSOLVER:BTN_OPTIONS";
Pos = MAP_APPFONT ( 6 , 190 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
@@ -395,6 +429,7 @@ ModelessDialog RID_SCDLG_OPTSOLVER
};
PushButton BTN_SOLVE
{
+ HelpID = "sc:PushButton:RID_SCDLG_OPTSOLVER:BTN_SOLVE";
Pos = MAP_APPFONT ( 174 , 190 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
diff --git a/sc/source/ui/src/popup.src b/sc/source/ui/src/popup.src
index 9753aa1590e3..a466823581bf 100644
--- a/sc/source/ui/src/popup.src
+++ b/sc/source/ui/src/popup.src
@@ -43,7 +43,7 @@ Menu RID_POPUP_CELLS
MenuItem
{
Identifier = SID_CELL_FORMAT_RESET ;
- HelpId = SID_CELL_FORMAT_RESET ;
+ HelpId = CMD_SID_CELL_FORMAT_RESET ;
Text [ en-US ] = "~Default Formatting" ;
};
//------------------------------
@@ -52,7 +52,7 @@ Menu RID_POPUP_CELLS
MenuItem
{
Identifier = FID_CELL_FORMAT ;
- HelpId = FID_CELL_FORMAT ;
+ HelpId = CMD_FID_CELL_FORMAT ;
Text [ en-US ] = "~Format Cells..." ;
};
//------------------------------
@@ -61,19 +61,19 @@ Menu RID_POPUP_CELLS
MenuItem
{
Identifier = FID_INS_CELL ;
- HelpId = FID_INS_CELL ;
+ HelpId = CMD_FID_INS_CELL ;
Text [ en-US ] = "~Insert..." ;
};
MenuItem
{
Identifier = FID_DELETE_CELL ;
- HelpId = FID_DELETE_CELL ;
+ HelpId = CMD_FID_DELETE_CELL ;
Text [ en-US ] = "De~lete..." ;
};
MenuItem
{
Identifier = SID_DELETE ;
- HelpId = SID_DELETE ;
+ HelpId = CMD_SID_DELETE ;
Text [ en-US ] = "Delete C~ontents..." ;
};
//------------------------------
@@ -82,19 +82,19 @@ Menu RID_POPUP_CELLS
MenuItem
{
Identifier = SID_INSERT_POSTIT ;
- HelpId = SID_INSERT_POSTIT ;
+ HelpId = CMD_SID_INSERT_POSTIT ;
Text [ en-US ] = "Insert Co~mment" ;
};
MenuItem
{
Identifier = SID_DELETE_NOTE ;
- HelpId = SID_DELETE_NOTE ;
+ HelpId = CMD_SID_DELETE_NOTE ;
Text [ en-US ] = "D~elete Comment" ;
};
MenuItem
{
Identifier = FID_NOTE_VISIBLE ;
- HelpId = FID_NOTE_VISIBLE ;
+ HelpId = CMD_FID_NOTE_VISIBLE ;
Text [ en-US ] = "Sho~w Comment" ;
};
//------------------------------
@@ -104,27 +104,27 @@ Menu RID_POPUP_CELLS
MenuItem
{
Identifier = SID_CUT ;
- HelpId = SID_CUT ;
+ HelpId = CMD_SID_CUT ;
Text [ en-US ] = "Cu~t" ;
};
MenuItem
{
Identifier = SID_COPY ;
- HelpId = SID_COPY ;
+ HelpId = CMD_SID_COPY ;
Text [ en-US ] = "~Copy" ;
};
MenuItem
{
Identifier = SID_PASTE ;
- HelpID = SID_PASTE ;
+ HelpID = CMD_SID_PASTE ;
Text [ en-US ] = "~Paste" ;
};
MenuItem
{
Identifier = SID_PASTE_SPECIAL ;
- HelpId = SID_PASTE_SPECIAL ;
+ HelpId = CMD_SID_PASTE_SPECIAL ;
Text [ en-US ] = "P~aste Special..." ;
};
//------------------------------
@@ -133,7 +133,7 @@ Menu RID_POPUP_CELLS
MenuItem
{
Identifier = SID_DATA_SELECT ;
- HelpId = SID_DATA_SELECT ;
+ HelpId = CMD_SID_DATA_SELECT ;
Text [ en-US ] = "~Selection List..." ;
};
};
@@ -151,49 +151,49 @@ Menu RID_POPUP_TAB
MenuItem
{
Identifier = FID_INS_TABLE ;
- HelpId = FID_INS_TABLE ;
+ HelpId = CMD_FID_INS_TABLE ;
Text [ en-US ] = "~Insert Sheet..." ;
};
MenuItem
{
Identifier = FID_DELETE_TABLE ;
- HelpId = FID_DELETE_TABLE ;
+ HelpId = CMD_FID_DELETE_TABLE ;
Text [ en-US ] = "~Delete Sheet..." ;
};
MenuItem
{
Identifier = FID_TAB_MENU_RENAME ;
- HelpId = FID_TAB_MENU_RENAME ;
+ HelpId = CMD_FID_TAB_MENU_RENAME ;
Text [ en-US ] = "~Rename Sheet..." ;
};
MenuItem
{
Identifier = FID_TAB_MOVE ;
- HelpId = FID_TAB_MOVE ;
+ HelpId = CMD_FID_TAB_MOVE ;
Text [ en-US ] = "~Move/Copy Sheet..." ;
};
MenuItem
{
Identifier = FID_TAB_SELECTALL ;
- HelpId = FID_TAB_SELECTALL ;
+ HelpId = CMD_FID_TAB_SELECTALL ;
Text [ en-US ] = "Select All S~heets" ;
};
MenuItem
{
Identifier = FID_TAB_DESELECTALL ;
- HelpId = FID_TAB_DESELECTALL ;
+ HelpId = CMD_FID_TAB_DESELECTALL ;
Text [ en-US ] = "D~eselect All Sheets" ;
};
MenuItem
{
Identifier = FID_TAB_RTL ;
- HelpId = FID_TAB_RTL ;
+ HelpId = CMD_FID_TAB_RTL ;
Text [ en-US ] = "S~heet Right-To-Left" ;
};
MenuItem
{
Identifier = FID_TAB_EVENTS ;
- HelpId = FID_TAB_EVENTS ;
+ HelpId = CMD_FID_TAB_EVENTS ;
Text [ en-US ] = "Sheet E~vents..." ;
};
//------------------------------
@@ -202,7 +202,7 @@ Menu RID_POPUP_TAB
MenuItem
{
Identifier = FID_TAB_MENU_SET_TAB_BG_COLOR ;
- HelpId = FID_TAB_MENU_SET_TAB_BG_COLOR ;
+ HelpId = CMD_FID_TAB_MENU_SET_TAB_BG_COLOR ;
Text [ en-US ] = "~Tab Color..." ;
};
};
@@ -220,25 +220,25 @@ Menu RID_POPUP_PIVOT
MenuItem
{
Identifier = SID_OPENDLG_PIVOTTABLE ;
- HelpId = SID_OPENDLG_PIVOTTABLE ;
+ HelpId = CMD_SID_OPENDLG_PIVOTTABLE ;
Text [ en-US ] = "~Start..." ;
};
MenuItem
{
Identifier = SID_PIVOT_RECALC ;
- HelpId = SID_PIVOT_RECALC ;
+ HelpId = CMD_SID_PIVOT_RECALC ;
Text [ en-US ] = "~Refresh" ;
};
MenuItem
{
Identifier = SID_DP_FILTER ;
- HelpId = SID_DP_FILTER ;
+ HelpId = CMD_SID_DP_FILTER ;
Text [ en-US ] = "~Filter..." ;
};
MenuItem
{
Identifier = SID_PIVOT_KILL ;
- HelpId = SID_PIVOT_KILL ;
+ HelpId = CMD_SID_PIVOT_KILL ;
Text [ en-US ] = "~Delete" ;
};
};
@@ -256,32 +256,32 @@ Menu RID_POPUP_PREVIEW
MenuItem
{
Identifier = SID_PREVIEW_PREVIOUS ;
- HelpId = SID_PREVIEW_PREVIOUS ;
+ HelpId = CMD_SID_PREVIEW_PREVIOUS ;
Text [ en-US ] = "~Previous Page" ;
};
MenuItem
{
Identifier = SID_PREVIEW_NEXT ;
- HelpId = SID_PREVIEW_NEXT ;
+ HelpId = CMD_SID_PREVIEW_NEXT ;
Text [ en-US ] = "~Next Page" ;
};
MenuItem
{
Identifier = SID_FORMATPAGE ;
- HelpId = SID_FORMATPAGE ;
+ HelpId = CMD_SID_FORMATPAGE ;
Text [ en-US ] = "Pa~ge Layout..." ;
};
MenuItem
{
Identifier = SID_CLOSEWIN ;
- HelpId = SID_CLOSEWIN ;
+ HelpId = CMD_SID_CLOSEWIN ;
Text [ en-US ] = "~Close" ;
};
MenuItem { Separator = TRUE; };
MenuItem
{
Identifier = SID_PREVIEW_CLOSE ;
- HelpId = SID_PRINTPREVIEW ;
+ HelpId = CMD_SID_PRINTPREVIEW ;
Text [ en-US ] = "Close Pre~view" ;
};
};
@@ -300,7 +300,7 @@ Menu RID_POPUP_EDIT
MenuItem
{
Identifier = SID_CELL_FORMAT_RESET ;
- HelpId = SID_CELL_FORMAT_RESET ;
+ HelpId = CMD_SID_CELL_FORMAT_RESET ;
Text [ en-US ] = "~Default" ;
};
//------------------------------
@@ -324,7 +324,7 @@ Menu RID_POPUP_EDIT
{
Text [ en-US ] = "Style" ;
Identifier = RID_MN_FORMAT_STYLE ;
- HelpID = RID_MN_FORMAT_STYLE ;
+ HelpID = HID_MN_FORMAT_STYLE ;
SubMenu = Menu
{
ItemList =
@@ -348,7 +348,7 @@ Menu RID_POPUP_EDIT
MenuItem
{
Identifier = SID_ULINE_VAL_DOUBLE ;
- HelpID = SID_ULINE_VAL_DOUBLE ;
+ HelpID = CMD_SID_ULINE_VAL_DOUBLE ;
Text [ en-US ] = "Do~uble Underline" ;
};
MenuItem
@@ -370,13 +370,13 @@ Menu RID_POPUP_EDIT
MenuItem
{
Identifier = SID_SET_SUPER_SCRIPT ;
- HelpID = SID_SET_SUPER_SCRIPT ;
+ HelpID = CMD_SID_SET_SUPER_SCRIPT ;
Text [ en-US ] = "Su~perscript" ;
};
MenuItem
{
Identifier = SID_SET_SUB_SCRIPT ;
- HelpID = SID_SET_SUB_SCRIPT ;
+ HelpID = CMD_SID_SET_SUB_SCRIPT ;
Text [ en-US ] = "Su~bscript" ;
};
};
@@ -412,37 +412,37 @@ Menu RID_POPUP_AUDIT
MenuItem
{
Identifier = SID_FILL_ADD_PRED ;
- HelpId = SID_FILL_ADD_PRED ;
+ HelpId = CMD_SID_FILL_ADD_PRED ;
Text [ en-US ] = "Trace ~Precedent" ;
};
MenuItem
{
Identifier = SID_FILL_DEL_PRED ;
- HelpId = SID_FILL_DEL_PRED ;
+ HelpId = CMD_SID_FILL_DEL_PRED ;
Text [ en-US ] = "~Remove Precedent" ;
};
MenuItem
{
Identifier = SID_FILL_ADD_SUCC ;
- HelpId = SID_FILL_ADD_SUCC ;
+ HelpId = CMD_SID_FILL_ADD_SUCC ;
Text [ en-US ] = "~Trace Dependent" ;
};
MenuItem
{
Identifier = SID_FILL_DEL_SUCC ;
- HelpId = SID_FILL_DEL_SUCC ;
+ HelpId = CMD_SID_FILL_DEL_SUCC ;
Text [ en-US ] = "Remove Dependent" ;
};
MenuItem
{
Identifier = SID_DETECTIVE_DEL_ALL ;
- HelpId = SID_DETECTIVE_DEL_ALL ;
+ HelpId = CMD_SID_DETECTIVE_DEL_ALL ;
Text [ en-US ] = "Remove ~All Traces" ;
};
MenuItem
{
Identifier = SID_FILL_NONE ;
- HelpId = SID_FILL_NONE ;
+ HelpId = CMD_SID_FILL_NONE ;
Text [ en-US ] = "Exit Fill Mode" ;
};
};
@@ -460,7 +460,7 @@ Menu RID_POPUP_PAGEBREAK
MenuItem
{
Identifier = SID_CELL_FORMAT_RESET ;
- HelpId = SID_CELL_FORMAT_RESET ;
+ HelpId = CMD_SID_CELL_FORMAT_RESET ;
Text [ en-US ] = "~Default" ;
};
//------------------------------
@@ -469,7 +469,7 @@ Menu RID_POPUP_PAGEBREAK
MenuItem
{
Identifier = FID_CELL_FORMAT ;
- HelpId = FID_CELL_FORMAT ;
+ HelpId = CMD_FID_CELL_FORMAT ;
Text [ en-US ] = "~Format Cells..." ;
};
//------------------------------
@@ -478,25 +478,25 @@ Menu RID_POPUP_PAGEBREAK
MenuItem
{
Identifier = FID_INS_ROWBRK ;
- HelpId = FID_INS_ROWBRK ;
+ HelpId = CMD_FID_INS_ROWBRK ;
Text [ en-US ] = "Insert ~Row Break" ;
};
MenuItem
{
Identifier = FID_INS_COLBRK ;
- HelpId = FID_INS_COLBRK ;
+ HelpId = CMD_FID_INS_COLBRK ;
Text [ en-US ] = "Insert ~Column Break" ;
};
MenuItem
{
Identifier = FID_DEL_MANUALBREAKS ;
- HelpId = FID_DEL_MANUALBREAKS ;
+ HelpId = CMD_FID_DEL_MANUALBREAKS ;
Text [ en-US ] = "Delete All Manual Breaks" ;
};
MenuItem
{
Identifier = FID_RESET_PRINTZOOM ;
- HelpId = FID_RESET_PRINTZOOM ;
+ HelpId = CMD_FID_RESET_PRINTZOOM ;
Text [ en-US ] = "Reset Scale" ;
};
//------------------------------
@@ -505,19 +505,19 @@ Menu RID_POPUP_PAGEBREAK
MenuItem
{
Identifier = SID_DEFINE_PRINTAREA ;
- HelpId = SID_DEFINE_PRINTAREA ;
+ HelpId = CMD_SID_DEFINE_PRINTAREA ;
Text [ en-US ] = "Define Print Range" ;
};
MenuItem
{
Identifier = SID_ADD_PRINTAREA ;
- HelpId = SID_ADD_PRINTAREA ;
+ HelpId = CMD_SID_ADD_PRINTAREA ;
Text [ en-US ] = "Add Print Range" ;
};
MenuItem
{
Identifier = SID_DELETE_PRINTAREA ;
- HelpId = SID_DELETE_PRINTAREA ;
+ HelpId = CMD_SID_DELETE_PRINTAREA ;
Text [ en-US ] = "Undo Print Range" ;
};
//------------------------------
@@ -526,7 +526,7 @@ Menu RID_POPUP_PAGEBREAK
MenuItem
{
Identifier = SID_FORMATPAGE ;
- HelpId = SID_FORMATPAGE ;
+ HelpId = CMD_SID_FORMATPAGE ;
Text [ en-US ] = "Page Format..." ;
};
//------------------------------
@@ -535,7 +535,7 @@ Menu RID_POPUP_PAGEBREAK
MenuItem
{
Identifier = FID_NOTE_VISIBLE ;
- HelpId = FID_NOTE_VISIBLE ;
+ HelpId = CMD_FID_NOTE_VISIBLE ;
Text [ en-US ] = "Sho~w Comment" ;
};
};
diff --git a/sc/source/ui/src/scfuncs.src b/sc/source/ui/src/scfuncs.src
index 2f5a2d8c88fb..129ed62a6c15 100644
--- a/sc/source/ui/src/scfuncs.src
+++ b/sc/source/ui/src/scfuncs.src
@@ -72,7 +72,8 @@
*/
// Hack:
-#define U2S(x) ((x)-HID_START)
+//#define U2S(x) ((x)-HID_START)
+#define U2S(x) x
// Macro U2S: unsigned to signed
// is needed because the resource compiler only knows signed short int in
// ExtraData, but the HID_XXX are unsigned and exceed 32k. Code reading the
diff --git a/sc/source/ui/src/simpref.src b/sc/source/ui/src/simpref.src
index 03f41c1a56aa..09e04c76ac14 100644
--- a/sc/source/ui/src/simpref.src
+++ b/sc/source/ui/src/simpref.src
@@ -44,6 +44,7 @@ ModelessDialog RID_SCDLG_SIMPLEREF
};
Edit ED_ASSIGN
{
+ HelpID = "sc:Edit:RID_SCDLG_SIMPLEREF:ED_ASSIGN";
Border = TRUE ;
Pos = MAP_APPFONT ( 48 , 6 ) ;
Size = MAP_APPFONT ( 90 , 12 ) ;
@@ -52,6 +53,7 @@ ModelessDialog RID_SCDLG_SIMPLEREF
};
ImageButton RB_ASSIGN
{
+ HelpID = "sc:ImageButton:RID_SCDLG_SIMPLEREF:RB_ASSIGN";
Pos = MAP_APPFONT ( 142 , 5 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
diff --git a/sc/source/ui/src/solveroptions.src b/sc/source/ui/src/solveroptions.src
index 0a3432344f35..dd1195effc64 100644
--- a/sc/source/ui/src/solveroptions.src
+++ b/sc/source/ui/src/solveroptions.src
@@ -42,6 +42,7 @@ ModalDialog RID_SCDLG_SOLVEROPTIONS
};
ListBox LB_ENGINE
{
+ HelpID = "sc:ListBox:RID_SCDLG_SOLVEROPTIONS:LB_ENGINE";
Border = TRUE ;
Pos = MAP_APPFONT ( 67 , 6 ) ;
Size = MAP_APPFONT ( 145 , 90 ) ;
@@ -63,6 +64,7 @@ ModalDialog RID_SCDLG_SOLVEROPTIONS
};
PushButton BTN_EDIT
{
+ HelpID = "sc:PushButton:RID_SCDLG_SOLVEROPTIONS:BTN_EDIT";
Pos = MAP_APPFONT ( 6 , 108 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
@@ -112,6 +114,7 @@ ModalDialog RID_SCDLG_SOLVER_INTEGER
};
NumericField NF_VALUE
{
+ HelpID = "sc:NumericField:RID_SCDLG_SOLVER_INTEGER:NF_VALUE";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 27 ) ;
Size = MAP_APPFONT ( 30 , 12 ) ;
@@ -161,6 +164,7 @@ ModalDialog RID_SCDLG_SOLVER_DOUBLE
};
Edit ED_VALUE
{
+ HelpID = "sc:Edit:RID_SCDLG_SOLVER_DOUBLE:ED_VALUE";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 27 ) ;
Size = MAP_APPFONT ( 50 , 12 ) ;
diff --git a/sc/source/ui/src/solvrdlg.src b/sc/source/ui/src/solvrdlg.src
index 6a8a3d955644..8956e513734a 100644
--- a/sc/source/ui/src/solvrdlg.src
+++ b/sc/source/ui/src/solvrdlg.src
@@ -29,7 +29,7 @@
ModelessDialog RID_SCDLG_SOLVER
{
OutputSize = TRUE ;
- HelpId = SID_OPENDLG_SOLVE ;
+ HelpId = CMD_SID_OPENDLG_SOLVE ;
Hide = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 222 , 64 ) ;
@@ -44,6 +44,7 @@ ModelessDialog RID_SCDLG_SOLVER
};
Edit ED_FORMULACELL
{
+ HelpID = "sc:Edit:RID_SCDLG_SOLVER:ED_FORMULACELL";
Border = TRUE ;
Pos = MAP_APPFONT ( 64 , 14 ) ;
Size = MAP_APPFONT ( 79 , 12 ) ;
@@ -51,6 +52,7 @@ ModelessDialog RID_SCDLG_SOLVER
};
ImageButton RB_FORMULACELL
{
+ HelpID = "sc:ImageButton:RID_SCDLG_SOLVER:RB_FORMULACELL";
Pos = MAP_APPFONT ( 145 , 13 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -64,6 +66,7 @@ ModelessDialog RID_SCDLG_SOLVER
};
Edit ED_TARGETVAL
{
+ HelpID = "sc:Edit:RID_SCDLG_SOLVER:ED_TARGETVAL";
Border = TRUE ;
Pos = MAP_APPFONT ( 64 , 30 ) ;
Size = MAP_APPFONT ( 93 , 12 ) ;
@@ -77,6 +80,7 @@ ModelessDialog RID_SCDLG_SOLVER
};
Edit ED_VARCELL
{
+ HelpID = "sc:Edit:RID_SCDLG_SOLVER:ED_VARCELL";
Border = TRUE ;
Pos = MAP_APPFONT ( 64 , 46 ) ;
Size = MAP_APPFONT ( 79 , 12 ) ;
@@ -84,6 +88,7 @@ ModelessDialog RID_SCDLG_SOLVER
};
ImageButton RB_VARCELL
{
+ HelpID = "sc:ImageButton:RID_SCDLG_SOLVER:RB_VARCELL";
Pos = MAP_APPFONT ( 145 , 45 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
diff --git a/sc/source/ui/src/sortdlg.src b/sc/source/ui/src/sortdlg.src
index 3aca09211edd..a6b02c729f29 100644
--- a/sc/source/ui/src/sortdlg.src
+++ b/sc/source/ui/src/sortdlg.src
@@ -33,6 +33,7 @@ TabPage RID_SCPAGE_SORT_FIELDS
Size = MAP_APPFONT ( 260 , 185 ) ;
ListBox LB_SORT1
{
+ HelpID = "sc:ListBox:RID_SCPAGE_SORT_FIELDS:LB_SORT1";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 19 ) ;
Size = MAP_APPFONT ( 154 , 90 ) ;
@@ -41,6 +42,7 @@ TabPage RID_SCPAGE_SORT_FIELDS
};
RadioButton BTN_UP1
{
+ HelpID = "sc:RadioButton:RID_SCPAGE_SORT_FIELDS:BTN_UP1";
Pos = MAP_APPFONT ( 172 , 14 ) ;
Size = MAP_APPFONT ( 79 , 10 ) ;
Text [ en-US ] = "~Ascending" ;
@@ -48,6 +50,7 @@ TabPage RID_SCPAGE_SORT_FIELDS
};
RadioButton BTN_DOWN1
{
+ HelpID = "sc:RadioButton:RID_SCPAGE_SORT_FIELDS:BTN_DOWN1";
Pos = MAP_APPFONT ( 172 , 28 ) ;
Size = MAP_APPFONT ( 79 , 10 ) ;
Text [ en-US ] = "~Descending" ;
@@ -61,6 +64,7 @@ TabPage RID_SCPAGE_SORT_FIELDS
};
ListBox LB_SORT2
{
+ HelpID = "sc:ListBox:RID_SCPAGE_SORT_FIELDS:LB_SORT2";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 60 ) ;
Size = MAP_APPFONT ( 154 , 90 ) ;
@@ -69,6 +73,7 @@ TabPage RID_SCPAGE_SORT_FIELDS
};
RadioButton BTN_UP2
{
+ HelpID = "sc:RadioButton:RID_SCPAGE_SORT_FIELDS:BTN_UP2";
Pos = MAP_APPFONT ( 172 , 55 ) ;
Size = MAP_APPFONT ( 79 , 10 ) ;
Text [ en-US ] = "A~scending" ;
@@ -76,6 +81,7 @@ TabPage RID_SCPAGE_SORT_FIELDS
};
RadioButton BTN_DOWN2
{
+ HelpID = "sc:RadioButton:RID_SCPAGE_SORT_FIELDS:BTN_DOWN2";
Pos = MAP_APPFONT ( 172 , 69 ) ;
Size = MAP_APPFONT ( 79 , 10 ) ;
Text [ en-US ] = "D~escending" ;
@@ -89,6 +95,7 @@ TabPage RID_SCPAGE_SORT_FIELDS
};
ListBox LB_SORT3
{
+ HelpID = "sc:ListBox:RID_SCPAGE_SORT_FIELDS:LB_SORT3";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 101 ) ;
Size = MAP_APPFONT ( 154 , 90 ) ;
@@ -97,6 +104,7 @@ TabPage RID_SCPAGE_SORT_FIELDS
};
RadioButton BTN_UP3
{
+ HelpID = "sc:RadioButton:RID_SCPAGE_SORT_FIELDS:BTN_UP3";
Pos = MAP_APPFONT ( 172 , 96 ) ;
Size = MAP_APPFONT ( 79 , 10 ) ;
Text [ en-US ] = "As~cending" ;
@@ -104,6 +112,7 @@ TabPage RID_SCPAGE_SORT_FIELDS
};
RadioButton BTN_DOWN3
{
+ HelpID = "sc:RadioButton:RID_SCPAGE_SORT_FIELDS:BTN_DOWN3";
Pos = MAP_APPFONT ( 172 , 110 ) ;
Size = MAP_APPFONT ( 79 , 10 ) ;
Text [ en-US ] = "Desce~nding" ;
@@ -125,6 +134,7 @@ TabPage RID_SCPAGE_SORT_OPTIONS
Size = MAP_APPFONT ( 260 , 185 ) ;
CheckBox BTN_CASESENSITIVE
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_SORT_OPTIONS:BTN_CASESENSITIVE";
Pos = MAP_APPFONT ( 12 , 6 ) ;
Size = MAP_APPFONT ( 242 , 10 ) ;
Text [ en-US ] = "Case ~sensitive" ;
@@ -132,6 +142,7 @@ TabPage RID_SCPAGE_SORT_OPTIONS
};
CheckBox BTN_LABEL
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_SORT_OPTIONS:BTN_LABEL";
Pos = MAP_APPFONT ( 12 , 20 ) ;
Size = MAP_APPFONT ( 242 , 10 ) ;
TabStop = TRUE ;
@@ -146,6 +157,7 @@ TabPage RID_SCPAGE_SORT_OPTIONS
};
CheckBox BTN_FORMATS
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_SORT_OPTIONS:BTN_FORMATS";
Pos = MAP_APPFONT ( 12 , 34 ) ;
Size = MAP_APPFONT ( 242 , 10 ) ;
Text [ en-US ] = "Include ~formats" ;
@@ -153,6 +165,7 @@ TabPage RID_SCPAGE_SORT_OPTIONS
};
CheckBox BTN_COPYRESULT
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_SORT_OPTIONS:BTN_COPYRESULT";
Pos = MAP_APPFONT ( 12 , 48 ) ;
Size = MAP_APPFONT ( 242 , 10 ) ;
Text [ en-US ] = "~Copy sort results to:" ;
@@ -160,6 +173,7 @@ TabPage RID_SCPAGE_SORT_OPTIONS
};
ListBox LB_OUTAREA
{
+ HelpID = "sc:ListBox:RID_SCPAGE_SORT_OPTIONS:LB_OUTAREA";
Border = TRUE ;
Pos = MAP_APPFONT ( 20 , 59 ) ;
Size = MAP_APPFONT ( 93 , 90 ) ;
@@ -168,6 +182,7 @@ TabPage RID_SCPAGE_SORT_OPTIONS
};
Edit ED_OUTAREA
{
+ HelpID = "sc:Edit:RID_SCPAGE_SORT_OPTIONS:ED_OUTAREA";
Disable = TRUE ;
Border = TRUE ;
Pos = MAP_APPFONT ( 119 , 59 ) ;
@@ -176,6 +191,7 @@ TabPage RID_SCPAGE_SORT_OPTIONS
};
CheckBox BTN_SORT_USER
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_SORT_OPTIONS:BTN_SORT_USER";
Pos = MAP_APPFONT ( 12 , 75 ) ;
Size = MAP_APPFONT ( 242 , 10 ) ;
Text [ en-US ] = "Custom sort ~order" ;
@@ -183,6 +199,7 @@ TabPage RID_SCPAGE_SORT_OPTIONS
};
ListBox LB_SORT_USER
{
+ HelpID = "sc:ListBox:RID_SCPAGE_SORT_OPTIONS:LB_SORT_USER";
Disable = TRUE ;
Border = TRUE ;
Pos = MAP_APPFONT ( 20 , 86 ) ;
@@ -198,6 +215,7 @@ TabPage RID_SCPAGE_SORT_OPTIONS
};
ListBox LB_LANGUAGE
{
+ HelpID = "sc:ListBox:RID_SCPAGE_SORT_OPTIONS:LB_LANGUAGE";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 115 ) ;
Size = MAP_APPFONT ( 101 , 90 ) ;
@@ -213,6 +231,7 @@ TabPage RID_SCPAGE_SORT_OPTIONS
};
ListBox LB_ALGORITHM
{
+ HelpID = "sc:ListBox:RID_SCPAGE_SORT_OPTIONS:LB_ALGORITHM";
Border = TRUE ;
Pos = MAP_APPFONT ( 119 , 115 ) ;
Size = MAP_APPFONT ( 132 , 90 ) ;
@@ -227,6 +246,7 @@ TabPage RID_SCPAGE_SORT_OPTIONS
};
RadioButton BTN_TOP_DOWN
{
+ HelpID = "sc:RadioButton:RID_SCPAGE_SORT_OPTIONS:BTN_TOP_DOWN";
Pos = MAP_APPFONT ( 12 , 144 ) ;
Size = MAP_APPFONT ( 242 , 10 ) ;
Text [ en-US ] = "~Top to bottom (sort rows)" ;
@@ -234,6 +254,7 @@ TabPage RID_SCPAGE_SORT_OPTIONS
};
RadioButton BTN_LEFT_RIGHT
{
+ HelpID = "sc:RadioButton:RID_SCPAGE_SORT_OPTIONS:BTN_LEFT_RIGHT";
Pos = MAP_APPFONT ( 12 , 158 ) ;
Size = MAP_APPFONT ( 242 , 10 ) ;
Text [ en-US ] = "L~eft to right (sort columns)" ;
@@ -303,6 +324,7 @@ TabDialog RID_SCDLG_SORT
ModalDialog RID_SCDLG_SORT_WARNING
{
+ HelpID = "sc:ModalDialog:RID_SCDLG_SORT_WARNING";
OutputSize = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 180 , 91 ) ;
@@ -325,6 +347,7 @@ ModalDialog RID_SCDLG_SORT_WARNING
};
PushButton BTN_EXTSORT
{
+ HelpID = "sc:PushButton:RID_SCDLG_SORT_WARNING:BTN_EXTSORT";
Pos = MAP_APPFONT ( 6 , 39 ) ;
Size = MAP_APPFONT ( 60 , 14 ) ;
TabStop = TRUE ;
@@ -333,6 +356,7 @@ ModalDialog RID_SCDLG_SORT_WARNING
};
PushButton BTN_CURSORT
{
+ HelpID = "sc:PushButton:RID_SCDLG_SORT_WARNING:BTN_CURSORT";
Pos = MAP_APPFONT ( 70 , 39 ) ;
Size = MAP_APPFONT ( 60 , 14 ) ;
TabStop = TRUE ;
diff --git a/sc/source/ui/src/subtdlg.src b/sc/source/ui/src/subtdlg.src
index c0bcfba1b07b..4a7504ce2b15 100644
--- a/sc/source/ui/src/subtdlg.src
+++ b/sc/source/ui/src/subtdlg.src
@@ -41,6 +41,7 @@ TabPage RID_SCPAGE_SUBT_OPTIONS
};
CheckBox BTN_PAGEBREAK
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_SUBT_OPTIONS:BTN_PAGEBREAK";
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 239 , 10 ) ;
Text [ en-US ] = "~Page break between groups" ;
@@ -48,6 +49,7 @@ TabPage RID_SCPAGE_SUBT_OPTIONS
};
CheckBox BTN_CASE
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_SUBT_OPTIONS:BTN_CASE";
Pos = MAP_APPFONT ( 12 , 28 ) ;
Size = MAP_APPFONT ( 239 , 10 ) ;
/* ### ACHTUNG: Neuer Text in Resource? ~Gro-/Kleinschreibung beachten : ~Gro-/Kleinschreibung beachten */
@@ -56,6 +58,7 @@ TabPage RID_SCPAGE_SUBT_OPTIONS
};
CheckBox BTN_SORT
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_SUBT_OPTIONS:BTN_SORT";
Pos = MAP_APPFONT ( 12 , 42 ) ;
Size = MAP_APPFONT ( 239 , 10 ) ;
Text [ en-US ] = "Pre-~sort area according to groups" ;
@@ -63,6 +66,7 @@ TabPage RID_SCPAGE_SUBT_OPTIONS
};
CheckBox BTN_FORMATS
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_SUBT_OPTIONS:BTN_FORMATS";
Pos = MAP_APPFONT ( 12 , 101 ) ;
Size = MAP_APPFONT ( 239 , 10 ) ;
/* ### ACHTUNG: Neuer Text in Resource? ~Formate einschlieen : ~Formate einschlieen */
@@ -71,6 +75,7 @@ TabPage RID_SCPAGE_SUBT_OPTIONS
};
CheckBox BTN_USERDEF
{
+ HelpID = "sc:CheckBox:RID_SCPAGE_SUBT_OPTIONS:BTN_USERDEF";
Pos = MAP_APPFONT ( 12 , 115 ) ;
Size = MAP_APPFONT ( 239 , 10 ) ;
Text [ en-US ] = "C~ustom sort order" ;
@@ -78,6 +83,7 @@ TabPage RID_SCPAGE_SUBT_OPTIONS
};
ListBox LB_USERDEF
{
+ HelpID = "sc:ListBox:RID_SCPAGE_SUBT_OPTIONS:LB_USERDEF";
Border = TRUE ;
Pos = MAP_APPFONT ( 20 , 127 ) ;
Size = MAP_APPFONT ( 231 , 90 ) ;
@@ -86,6 +92,7 @@ TabPage RID_SCPAGE_SUBT_OPTIONS
};
RadioButton BTN_ASCENDING
{
+ HelpID = "sc:RadioButton:RID_SCPAGE_SUBT_OPTIONS:BTN_ASCENDING";
Pos = MAP_APPFONT ( 12 , 69 ) ;
Size = MAP_APPFONT ( 239 , 10 ) ;
Text [ en-US ] = "~Ascending" ;
@@ -93,6 +100,7 @@ TabPage RID_SCPAGE_SUBT_OPTIONS
};
RadioButton BTN_DESCENDING
{
+ HelpID = "sc:RadioButton:RID_SCPAGE_SUBT_OPTIONS:BTN_DESCENDING";
Pos = MAP_APPFONT ( 12 , 83 ) ;
Size = MAP_APPFONT ( 239 , 10 ) ;
Text [ en-US ] = "D~escending" ;
diff --git a/sc/source/ui/src/tabopdlg.src b/sc/source/ui/src/tabopdlg.src
index 25af654f4147..1bda4236942c 100644
--- a/sc/source/ui/src/tabopdlg.src
+++ b/sc/source/ui/src/tabopdlg.src
@@ -29,7 +29,7 @@
ModelessDialog RID_SCDLG_TABOP
{
OutputSize = TRUE ;
- HelpId = SID_OPENDLG_TABOP ;
+ HelpId = CMD_SID_OPENDLG_TABOP ;
Hide = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 240 , 64 ) ;
@@ -44,12 +44,14 @@ ModelessDialog RID_SCDLG_TABOP
};
Edit ED_FORMULARANGE
{
+ HelpID = "sc:Edit:RID_SCDLG_TABOP:ED_FORMULARANGE";
Border = TRUE ;
Pos = MAP_APPFONT ( 82 , 14 ) ;
Size = MAP_APPFONT ( 79 , 12 ) ;
};
ImageButton RB_FORMULARANGE
{
+ HelpID = "sc:ImageButton:RID_SCDLG_TABOP:RB_FORMULARANGE";
Pos = MAP_APPFONT ( 163 , 13 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -63,12 +65,14 @@ ModelessDialog RID_SCDLG_TABOP
};
Edit ED_ROWCELL
{
+ HelpID = "sc:Edit:RID_SCDLG_TABOP:ED_ROWCELL";
Border = TRUE ;
Pos = MAP_APPFONT ( 82 , 30 ) ;
Size = MAP_APPFONT ( 79 , 12 ) ;
};
ImageButton RB_ROWCELL
{
+ HelpID = "sc:ImageButton:RID_SCDLG_TABOP:RB_ROWCELL";
Pos = MAP_APPFONT ( 163 , 29 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -82,12 +86,14 @@ ModelessDialog RID_SCDLG_TABOP
};
Edit ED_COLCELL
{
+ HelpID = "sc:Edit:RID_SCDLG_TABOP:ED_COLCELL";
Border = TRUE ;
Pos = MAP_APPFONT ( 82 , 46 ) ;
Size = MAP_APPFONT ( 79 , 12 ) ;
};
ImageButton RB_COLCELL
{
+ HelpID = "sc:ImageButton:RID_SCDLG_TABOP:RB_COLCELL";
Pos = MAP_APPFONT ( 163 , 45 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
diff --git a/sc/source/ui/src/toolbox.src b/sc/source/ui/src/toolbox.src
index 6e4b89e5faa0..83ab7338970d 100644
--- a/sc/source/ui/src/toolbox.src
+++ b/sc/source/ui/src/toolbox.src
@@ -123,136 +123,6 @@ String SCSTR_QHELP_BTNEQUAL
Text [ en-US ] = "Function" ;
};
- // --------------------------------------------------------------------
- // PopUp's fuer Werkzeugleiste
- // --------------------------------------------------------------------
-
-FloatingWindow RID_TBXCTL_INSERT
-{
- Moveable = TRUE ;
- Closeable = TRUE ;
- Hide = TRUE ;
- SVLook = TRUE ;
- HelpID = RID_TBXCTL_INSERT ;
- /* ### ACHTUNG: Neuer Text in Resource? Einfgen : Einfgen */
- Text [ en-US ] = "Insert" ;
-
- ToolBox RID_TOOLBOX_INSERT
- {
- MenuStrings = TRUE ;
- SVLook = TRUE ;
- HelpID = RID_TOOLBOX_INSERT ;
- ItemList =
- {
- ToolBoxItem
- {
- Identifier = SID_INSERT_GRAPHIC ;
- HelpID = SID_INSERT_GRAPHIC ;
- };
- ToolBoxItem
- {
- Identifier = SID_CHARMAP ;
- HelpId = SID_CHARMAP ;
- };
- };
- };
-};
-
-FloatingWindow RID_TBXCTL_INSCELLS
-{
- Moveable = TRUE ;
- Closeable = TRUE ;
- Hide = TRUE ;
- SVLook = TRUE ;
- HelpID = RID_TBXCTL_INSCELLS ;
- /* ### ACHTUNG: Neuer Text in Resource? Zellen einfgen : Zellen einfgen */
- Text [ en-US ] = "Insert Cells" ;
-
- ToolBox RID_TOOLBOX_INSCELLS
- {
- MenuStrings = TRUE ;
- SVLook = TRUE ;
- HelpID = RID_TOOLBOX_INSCELLS ;
- ItemList =
- {
- ToolBoxItem
- {
- Identifier = FID_INS_CELLSDOWN ;
- HelpId = FID_INS_CELLSDOWN ;
- };
- ToolBoxItem
- {
- Identifier = FID_INS_CELLSRIGHT ;
- HelpId = FID_INS_CELLSRIGHT ;
- };
- ToolBoxItem
- {
- Identifier = FID_INS_ROW ;
- HelpId = FID_INS_ROW ;
- };
- ToolBoxItem
- {
- Identifier = FID_INS_COLUMN ;
- HelpId = FID_INS_COLUMN ;
- };
- };
- };
-};
-
-FloatingWindow RID_TBXCTL_INSOBJ
-{
- Moveable = TRUE ;
- Closeable = TRUE ;
- Hide = TRUE ;
- SVLook = TRUE;
- HelpID = RID_TBXCTL_INSOBJ ;
- /* ### ACHTUNG: Neuer Text in Resource? Objekt einfgen : Objekt einfgen */
- Text [ en-US ] = "Insert Object" ;
- ToolBox RID_TOOLBOX_INSOBJ
- {
- MenuStrings = TRUE ;
- SVLook = TRUE ;
- HelpID = RID_TOOLBOX_INSOBJ ;
- ItemList =
- {
- ToolBoxItem
- {
- // mit Aufziehen des Zielbereichs
- ITEM_TOOLBAR_DRAW_CHART
- };
- ToolBoxItem
- {
- Identifier = SID_INSERT_SMATH ;
- HelpId = SID_INSERT_SMATH ;
- };
- ToolBoxItem
- {
- Identifier = SID_INSERT_FLOATINGFRAME ;
- HelpID = SID_INSERT_FLOATINGFRAME ;
- };
- ToolBoxItem
- {
- Identifier = SID_INSERT_OBJECT ;
- HelpId = SID_INSERT_OBJECT ;
- };
-#ifdef SOLAR_PLUGIN
- ToolBoxItem
- {
- Identifier = SID_INSERT_PLUGIN ;
- HelpId = SID_INSERT_PLUGIN ;
- };
-#endif
-#ifdef SOLAR_JAVA
- ToolBoxItem
- {
- Identifier = SID_INSERT_APPLET ;
- HelpId = SID_INSERT_APPLET ;
- };
-#endif
- };
- };
-};
-
// Don't use this image list for normal toolbar images. We have now our commandimagelist
// folder in default_images. This list is now only used for special toolboxes that are
// used in floating windows.
diff --git a/sc/source/ui/undo/undoblk.cxx b/sc/source/ui/undo/undoblk.cxx
index c284045c5b11..3fb2c74a9954 100644
--- a/sc/source/ui/undo/undoblk.cxx
+++ b/sc/source/ui/undo/undoblk.cxx
@@ -592,7 +592,7 @@ ScUndoDeleteMulti::ScUndoDeleteMulti( ScDocShell* pNewDocShell,
__EXPORT ScUndoDeleteMulti::~ScUndoDeleteMulti()
{
- delete pRanges;
+ delete [] pRanges;
}
String __EXPORT ScUndoDeleteMulti::GetComment() const
diff --git a/sc/source/ui/undo/undostyl.cxx b/sc/source/ui/undo/undostyl.cxx
index 67a91baa38ee..b4ea7f35448c 100644
--- a/sc/source/ui/undo/undostyl.cxx
+++ b/sc/source/ui/undo/undostyl.cxx
@@ -37,6 +37,7 @@
#include "undostyl.hxx"
#include "docsh.hxx"
+#include "docpool.hxx"
#include "stlpool.hxx"
#include "printfun.hxx"
#include "scmod.hxx"
@@ -166,6 +167,9 @@ void ScUndoModifyStyle::DoChange( ScDocShell* pDocSh, const String& rName,
{
// create style (with new name)
pStyle = &pStlPool->Make( aNewName, eStyleFamily, SFXSTYLEBIT_USERDEF );
+
+ if ( eStyleFamily == SFX_STYLE_FAMILY_PARA )
+ pDoc->GetPool()->CellStyleCreated( aNewName );
}
if ( pStyle )
diff --git a/sc/source/ui/undo/undotab.cxx b/sc/source/ui/undo/undotab.cxx
index 2d8340ad030b..70845f6c0bc9 100644
--- a/sc/source/ui/undo/undotab.cxx
+++ b/sc/source/ui/undo/undotab.cxx
@@ -28,18 +28,6 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sc.hxx"
-
-
-//------------------------------------------------------------------
-
-// ?#define _MACRODLG_HXX
-// ? #define _BIGINT_HXX
-// ? #define _SVDXOUT_HXX
-// ? #define _SVDATTR_HXX
-// ? #define _SVDSURO_HXX
-
-// INCLUDE ---------------------------------------------------------------
-
#include <sfx2/app.hxx>
#include <sfx2/bindings.hxx>
#include <sfx2/dispatch.hxx>
diff --git a/sc/source/ui/unoobj/appluno.cxx b/sc/source/ui/unoobj/appluno.cxx
index 8b20d9849f47..437c220ba1c3 100644
--- a/sc/source/ui/unoobj/appluno.cxx
+++ b/sc/source/ui/unoobj/appluno.cxx
@@ -184,21 +184,6 @@ SC_SIMPLE_SERVICE_INFO( ScSpreadsheetSettings, "ScSpreadsheetSettings", SCSPREAD
//------------------------------------------------------------------------
-static void lcl_WriteInfo( registry::XRegistryKey* pRegistryKey,
- const rtl::OUString& rImplementationName,
- const uno::Sequence< rtl::OUString >& rServices )
- throw( registry::InvalidRegistryException )
-{
- rtl::OUString aImpl(rtl::OUString::createFromAscii( "/" ));
- aImpl += rImplementationName;
- aImpl += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
- uno::Reference<registry::XRegistryKey> xNewKey(pRegistryKey->createKey(aImpl));
-
- const rtl::OUString* pArray = rServices.getConstArray();
- for( sal_Int32 i = 0; i < rServices.getLength(); i++ )
- xNewKey->createKey( pArray[i]);
-}
-
extern "C" {
SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
@@ -207,111 +192,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void * /* pServiceManager */, registry::XRegistryKey * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- lcl_WriteInfo( pRegistryKey,
- ScSpreadsheetSettings::getImplementationName_Static(),
- ScSpreadsheetSettings::getSupportedServiceNames_Static() );
-
- lcl_WriteInfo( pRegistryKey,
- ScRecentFunctionsObj::getImplementationName_Static(),
- ScRecentFunctionsObj::getSupportedServiceNames_Static() );
-
- lcl_WriteInfo( pRegistryKey,
- ScFunctionListObj::getImplementationName_Static(),
- ScFunctionListObj::getSupportedServiceNames_Static() );
-
- lcl_WriteInfo( pRegistryKey,
- ScAutoFormatsObj::getImplementationName_Static(),
- ScAutoFormatsObj::getSupportedServiceNames_Static() );
-
- lcl_WriteInfo( pRegistryKey,
- ScFunctionAccess::getImplementationName_Static(),
- ScFunctionAccess::getSupportedServiceNames_Static() );
-
- lcl_WriteInfo( pRegistryKey,
- ScFilterOptionsObj::getImplementationName_Static(),
- ScFilterOptionsObj::getSupportedServiceNames_Static() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLImport_getImplementationName(),
- ScXMLImport_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLImport_Meta_getImplementationName(),
- ScXMLImport_Meta_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLImport_Styles_getImplementationName(),
- ScXMLImport_Styles_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLImport_Content_getImplementationName(),
- ScXMLImport_Content_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLImport_Settings_getImplementationName(),
- ScXMLImport_Settings_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLOOoExport_getImplementationName(),
- ScXMLOOoExport_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLOOoExport_Meta_getImplementationName(),
- ScXMLOOoExport_Meta_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLOOoExport_Styles_getImplementationName(),
- ScXMLOOoExport_Styles_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLOOoExport_Content_getImplementationName(),
- ScXMLOOoExport_Content_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLOOoExport_Settings_getImplementationName(),
- ScXMLOOoExport_Settings_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLOasisExport_getImplementationName(),
- ScXMLOasisExport_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLOasisExport_Meta_getImplementationName(),
- ScXMLOasisExport_Meta_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLOasisExport_Styles_getImplementationName(),
- ScXMLOasisExport_Styles_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLOasisExport_Content_getImplementationName(),
- ScXMLOasisExport_Content_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLOasisExport_Settings_getImplementationName(),
- ScXMLOasisExport_Settings_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScDocument_getImplementationName(),
- ScDocument_getSupportedServiceNames() );
-
- return sal_True;
- }
- catch (registry::InvalidRegistryException&)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /* pRegistryKey */ )
{
diff --git a/sc/source/ui/unoobj/confuno.cxx b/sc/source/ui/unoobj/confuno.cxx
index 75e415b8f018..a680185a1d1c 100644
--- a/sc/source/ui/unoobj/confuno.cxx
+++ b/sc/source/ui/unoobj/confuno.cxx
@@ -193,11 +193,14 @@ void SAL_CALL ScDocumentConfiguration::setPropertyValue(
if (pPrinter)
{
String aString(sPrinterName);
- SfxPrinter* pNewPrinter = new SfxPrinter( pPrinter->GetOptions().Clone(), aString );
- if (pNewPrinter->IsKnown())
- pDocShell->SetPrinter( pNewPrinter, SFX_PRINTER_PRINTER );
- else
- delete pNewPrinter;
+ if (pPrinter->GetName() != aString)
+ {
+ SfxPrinter* pNewPrinter = new SfxPrinter( pPrinter->GetOptions().Clone(), aString );
+ if (pNewPrinter->IsKnown())
+ pDocShell->SetPrinter( pNewPrinter, SFX_PRINTER_PRINTER );
+ else
+ delete pNewPrinter;
+ }
}
else
throw uno::RuntimeException();
diff --git a/sc/source/ui/unoobj/detreg.cxx b/sc/source/ui/unoobj/detreg.cxx
index 498d0fc886ec..e1e77e5deac9 100644
--- a/sc/source/ui/unoobj/detreg.cxx
+++ b/sc/source/ui/unoobj/detreg.cxx
@@ -49,27 +49,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(xKey->createKey( aDelimiter + ScFilterDetect::impl_getStaticImplementationName() +
- aUnoServices ));
-
- Sequence< OUString > aServices(ScFilterDetect::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,
void* /* pRegistryKey */ )
diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index 6d267d4098ff..3d3f0f479601 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -28,14 +28,13 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sc.hxx"
-
-
#include "scitems.hxx"
#include <svx/fmdpage.hxx>
#include <svx/fmview.hxx>
#include <svx/svditer.hxx>
#include <svx/svdpage.hxx>
#include <svx/svxids.hrc>
+#include <svx/unoshape.hxx>
#include <svl/numuno.hxx>
#include <svl/smplhint.hxx>
@@ -49,6 +48,7 @@
#include <tools/multisel.hxx>
#include <tools/resary.hxx>
#include <toolkit/awt/vclxdevice.hxx>
+
#include <ctype.h>
#include <float.h> // DBL_MAX
@@ -61,6 +61,7 @@
#include <com/sun/star/lang/ServiceNotRegisteredException.hpp>
#include <com/sun/star/document/XDocumentEventBroadcaster.hpp>
#include <com/sun/star/script/XInvocation.hpp>
+#include <com/sun/star/script/vba/XVBAEventProcessor.hpp>
#include <com/sun/star/reflection/XIdlClassProvider.hpp>
#include <comphelper/processfactory.hxx>
@@ -100,10 +101,6 @@
#include "sc.hrc"
#include "scresid.hxx"
-#ifndef _SVX_UNOSHAPE_HXX
-#include <svx/unoshape.hxx>
-#endif
-
using namespace com::sun::star;
//------------------------------------------------------------------------
@@ -592,8 +589,8 @@ void ScModelObj::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
DELETEZ( pPrintFuncCache );
- // handle "OnCalculate" sheet events
- if ( pDocShell && pDocShell->GetDocument()->HasSheetEventScript( SC_SHEETEVENT_CALCULATE ) )
+ // handle "OnCalculate" sheet events (search also for VBA event handlers)
+ if ( pDocShell && pDocShell->GetDocument()->HasAnySheetEventScript( SC_SHEETEVENT_CALCULATE, true ) )
HandleCalculateEvents();
}
}
@@ -2156,20 +2153,8 @@ bool ScModelObj::HasChangesListeners() const
if ( maChangesListeners.getLength() > 0 )
return true;
- if ( pDocShell )
- {
- // "change" event set in any sheet?
- ScDocument* pDoc = pDocShell->GetDocument();
- SCTAB nTabCount = pDoc->GetTableCount();
- for (SCTAB nTab = 0; nTab < nTabCount; nTab++)
- {
- const ScSheetEvents* pEvents = pDoc->GetSheetEvents(nTab);
- if (pEvents && pEvents->GetScript(SC_SHEETEVENT_CHANGE))
- return true;
- }
- }
-
- return false;
+ // "change" event set in any sheet?
+ return pDocShell && pDocShell->GetDocument()->HasAnySheetEventScript(SC_SHEETEVENT_CHANGE);
}
void ScModelObj::NotifyChanges( const ::rtl::OUString& rOperation, const ScRangeList& rRanges,
@@ -2283,17 +2268,29 @@ void ScModelObj::HandleCalculateEvents()
SCTAB nTabCount = pDoc->GetTableCount();
for (SCTAB nTab = 0; nTab < nTabCount; nTab++)
{
- const ScSheetEvents* pEvents = pDoc->GetSheetEvents(nTab);
- if (pEvents)
+ if (pDoc->HasCalcNotification(nTab))
{
- const rtl::OUString* pScript = pEvents->GetScript(SC_SHEETEVENT_CALCULATE);
- if (pScript && pDoc->HasCalcNotification(nTab))
+ if (const ScSheetEvents* pEvents = pDoc->GetSheetEvents( nTab ))
+ {
+ if (const rtl::OUString* pScript = pEvents->GetScript(SC_SHEETEVENT_CALCULATE))
+ {
+ uno::Any aRet;
+ uno::Sequence<uno::Any> aParams;
+ uno::Sequence<sal_Int16> aOutArgsIndex;
+ uno::Sequence<uno::Any> aOutArgs;
+ pDocShell->CallXScript( *pScript, aParams, aRet, aOutArgsIndex, aOutArgs );
+ }
+ }
+
+ try
+ {
+ uno::Reference< script::vba::XVBAEventProcessor > xVbaEvents( pDoc->GetVbaEventProcessor(), uno::UNO_SET_THROW );
+ uno::Sequence< uno::Any > aArgs( 1 );
+ aArgs[ 0 ] <<= nTab;
+ xVbaEvents->processVbaEvent( ScSheetEvents::GetVbaSheetEventId( SC_SHEETEVENT_CALCULATE ), aArgs );
+ }
+ catch( uno::Exception& )
{
- uno::Any aRet;
- uno::Sequence<uno::Any> aParams;
- uno::Sequence<sal_Int16> aOutArgsIndex;
- uno::Sequence<uno::Any> aOutArgs;
- pDocShell->CallXScript( *pScript, aParams, aRet, aOutArgsIndex, aOutArgs );
}
}
}
diff --git a/sc/source/ui/unoobj/servuno.cxx b/sc/source/ui/unoobj/servuno.cxx
index 0b3a6f01f9ea..a173e6d1e051 100644
--- a/sc/source/ui/unoobj/servuno.cxx
+++ b/sc/source/ui/unoobj/servuno.cxx
@@ -65,6 +65,7 @@
#include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
#include <com/sun/star/form/XFormsSupplier.hpp>
#include <svx/unomod.hxx>
+#include <vbahelper/vbaaccesshelper.hxx>
#include <comphelper/processfactory.hxx>
#include <basic/basmgr.hxx>
@@ -72,19 +73,6 @@
using namespace ::com::sun::star;
-#ifndef CWS_NPOWER14MISCFIXES
-uno::Reference< uno::XInterface > lcl_createVBAUnoAPIServiceWithArgs( SfxObjectShell* pShell, const sal_Char* _pAsciiName, const uno::Sequence< uno::Any >& aArgs ) throw (uno::RuntimeException)
-{
- uno::Any aUnoVar;
- if ( !pShell || !pShell->GetBasicManager()->GetGlobalUNOConstant( "VBAGlobals", aUnoVar ) )
- throw lang::IllegalArgumentException();
- uno::Reference< lang::XMultiServiceFactory > xVBAFactory( aUnoVar, uno::UNO_QUERY_THROW );
- ::rtl::OUString sVarName( ::rtl::OUString::createFromAscii( _pAsciiName ) );
- uno::Reference< uno::XInterface > xIf = xVBAFactory->createInstanceWithArguments( sVarName, aArgs );
- return xIf;
-}
-#endif
-
class ScVbaObjectForCodeNameProvider : public ::cppu::WeakImplHelper1< container::XNameAccess >
{
uno::Any maWorkbook;
@@ -98,13 +86,10 @@ public:
throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("")), uno::Reference< uno::XInterface >() );
uno::Sequence< uno::Any > aArgs(2);
- aArgs[0] = uno::Any( uno::Reference< uno::XInterface >() );
+ // access the application object ( parent for workbook )
+ aArgs[0] = uno::Any( ooo::vba::createVBAUnoAPIServiceWithArgs( mpDocShell, "ooo.vba.Application", uno::Sequence< uno::Any >() ) );
aArgs[1] = uno::Any( mpDocShell->GetModel() );
-#ifdef CWS_NPOWER14MISCFIXES
maWorkbook <<= ooo::vba::createVBAUnoAPIServiceWithArgs( mpDocShell, "ooo.vba.excel.Workbook", aArgs );
-#else
- maWorkbook <<= lcl_createVBAUnoAPIServiceWithArgs( mpDocShell, "ooo.vba.excel.Workbook", aArgs );
-#endif
}
virtual ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (::com::sun::star::uno::RuntimeException )
@@ -139,13 +124,8 @@ public:
aArgs[0] = maWorkbook;
aArgs[1] = uno::Any( xModel );
aArgs[2] = uno::Any( rtl::OUString( sSheetName ) );
-#ifdef CWS_NPOWER14MISCFIXES
// use the convience function
maCachedObject <<= ooo::vba::createVBAUnoAPIServiceWithArgs( mpDocShell, "ooo.vba.excel.Worksheet", aArgs );
-#else
- // use the temp function
- maCachedObject <<= lcl_createVBAUnoAPIServiceWithArgs( mpDocShell, "ooo.vba.excel.Worksheet", aArgs );
-#endif
break;
}
}
@@ -557,6 +537,7 @@ uno::Reference<uno::XInterface> ScServiceProvider::MakeInstance(
break;
case SC_SERVICE_OPCODEMAPPER:
+ if (pDocShell)
{
ScDocument* pDoc = pDocShell->GetDocument();
ScAddress aAddress;
@@ -566,44 +547,35 @@ uno::Reference<uno::XInterface> ScServiceProvider::MakeInstance(
break;
}
case SC_SERVICE_VBAOBJECTPROVIDER:
- if ( pDocShell )
+ if (pDocShell && pDocShell->GetDocument()->IsInVBAMode())
{
OSL_TRACE("**** creating VBA Object mapper");
xRet.set(static_cast<container::XNameAccess*>(new ScVbaObjectForCodeNameProvider( pDocShell )));
}
break;
case SC_SERVICE_VBACODENAMEPROVIDER:
+ if (pDocShell && pDocShell->GetDocument()->IsInVBAMode())
{
- // Only create the excel faking service for excel docs
- const SfxFilter *pFilt = pDocShell->GetMedium()->GetFilter();
- if ( pFilt && pFilt->IsAlienFormat() )
- {
- // application/vnd.ms-excel is the mime type for Excel
- static const rtl::OUString sExcelMimeType( RTL_CONSTASCII_USTRINGPARAM( "application/vnd.ms-excel" ) );
- if ( sExcelMimeType.equals( pFilt->GetMimeType() ) )
- xRet.set(static_cast<document::XCodeNameQuery*>(new ScVbaCodeNameProvider( pDocShell )));
- }
- break;
+ OSL_TRACE("**** creating VBA Object provider");
+ xRet.set(static_cast<document::XCodeNameQuery*>(new ScVbaCodeNameProvider( pDocShell )));
}
+ break;
case SC_SERVICE_VBAGLOBALS:
+ if (pDocShell)
{
uno::Any aGlobs;
- ScDocument* pDoc = pDocShell->GetDocument();
- if ( pDoc )
+ if ( !pDocShell->GetBasicManager()->GetGlobalUNOConstant( "VBAGlobals", aGlobs ) )
{
- if ( !pDocShell->GetBasicManager()->GetGlobalUNOConstant( "VBAGlobals", aGlobs ) )
- {
- uno::Sequence< uno::Any > aArgs(1);
- aArgs[ 0 ] <<= pDocShell->GetModel();
- aGlobs <<= ::comphelper::getProcessServiceFactory()->createInstanceWithArguments( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ooo.vba.excel.Globals" ) ), aArgs );
- pDocShell->GetBasicManager()->SetGlobalUNOConstant( "VBAGlobals", aGlobs );
- BasicManager* pAppMgr = SFX_APP()->GetBasicManager();
- if ( pAppMgr )
- pAppMgr->SetGlobalUNOConstant( "ThisExcelDoc", aArgs[ 0 ] );
- }
- aGlobs >>= xRet;
+ uno::Sequence< uno::Any > aArgs(1);
+ aArgs[ 0 ] <<= pDocShell->GetModel();
+ xRet = ::comphelper::getProcessServiceFactory()->createInstanceWithArguments( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ooo.vba.excel.Globals" ) ), aArgs );
+ pDocShell->GetBasicManager()->SetGlobalUNOConstant( "VBAGlobals", uno::Any( xRet ) );
+ BasicManager* pAppMgr = SFX_APP()->GetBasicManager();
+ if ( pAppMgr )
+ pAppMgr->SetGlobalUNOConstant( "ThisExcelDoc", aArgs[ 0 ] );
}
}
+ break;
}
return xRet;
diff --git a/sc/source/ui/unoobj/styleuno.cxx b/sc/source/ui/unoobj/styleuno.cxx
index 1ceaa424ecd6..50aecbe7f2e3 100644
--- a/sc/source/ui/unoobj/styleuno.cxx
+++ b/sc/source/ui/unoobj/styleuno.cxx
@@ -68,6 +68,7 @@
#include "docsh.hxx"
#include "attrib.hxx"
#include "stlpool.hxx"
+#include "docpool.hxx"
#include "unoguard.hxx"
#include "miscuno.hxx"
#include "convuno.hxx"
@@ -830,6 +831,9 @@ void SAL_CALL ScStyleFamilyObj::insertByName( const rtl::OUString& aName, const
{
(void)pStylePool->Make( aNameStr, eFamily, SFXSTYLEBIT_USERDEF );
+ if ( eFamily == SFX_STYLE_FAMILY_PARA && !pDoc->IsImportingXML() )
+ pDoc->GetPool()->CellStyleCreated( aNameStr );
+
pStyleObj->InitDoc( pDocShell, aNameStr ); // Objekt kann benutzt werden
pDocShell->SetDocumentModified(); // verwendet wird der neue Style noch nicht
@@ -1287,6 +1291,10 @@ void SAL_CALL ScStyleObj::setName( const rtl::OUString& aNewName )
{
aStyleName = aString; //! notify other objects for this style?
+ ScDocument* pDoc = pDocShell->GetDocument();
+ if ( eFamily == SFX_STYLE_FAMILY_PARA && !pDoc->IsImportingXML() )
+ pDoc->GetPool()->CellStyleCreated( aString );
+
// Zellvorlagen = 2, Seitenvorlagen = 4
UINT16 nId = ( eFamily == SFX_STYLE_FAMILY_PARA ) ?
SID_STYLE_FAMILY2 : SID_STYLE_FAMILY4;
diff --git a/sc/source/ui/unoobj/viewuno.cxx b/sc/source/ui/unoobj/viewuno.cxx
index d10d3ba54f86..fd1e655b8ffb 100644
--- a/sc/source/ui/unoobj/viewuno.cxx
+++ b/sc/source/ui/unoobj/viewuno.cxx
@@ -28,6 +28,10 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sc.hxx"
+#include <com/sun/star/awt/MouseButton.hpp>
+#include <com/sun/star/script/vba/VBAEventId.hpp>
+#include <com/sun/star/script/vba/XVBAEventProcessor.hpp>
+#include <com/sun/star/view/DocumentZoomType.hpp>
#include <editeng/outliner.hxx>
#include <svx/fmdpage.hxx>
@@ -67,8 +71,6 @@
#include "appoptio.hxx"
#include "gridwin.hxx"
#include "sheetevents.hxx"
-#include <com/sun/star/view/DocumentZoomType.hpp>
-#include <com/sun/star/awt/MouseButton.hpp>
#include "AccessibilityHints.hxx"
#include <svx/sdrhittesthelper.hxx>
@@ -468,7 +470,8 @@ void SAL_CALL ScViewPaneObj::release() throw()
//UNUSED2008-05 aPropSet( lcl_GetViewOptPropertyMap() ),
//UNUSED2008-05 aMouseClickHandlers( 0 ),
//UNUSED2008-05 aActivationListeners( 0 ),
-//UNUSED2008-05 bDrawSelModeSet(sal_False)
+//UNUSED2008-05 bDrawSelModeSet(sal_False),
+//UNUSED2008-05 bFilteredRangeSelection(sal_True)
//UNUSED2008-05 {
//UNUSED2008-05 }
@@ -551,10 +554,22 @@ void lcl_CallActivate( ScDocShell* pDocSh, SCTAB nTab, sal_Int32 nEvent )
uno::Sequence<uno::Any> aParams;
uno::Sequence<sal_Int16> aOutArgsIndex;
uno::Sequence<uno::Any> aOutArgs;
-
/*ErrCode eRet =*/ pDocSh->CallXScript( *pScript, aParams, aRet, aOutArgsIndex, aOutArgs );
}
}
+
+ // execute VBA event handlers
+ try
+ {
+ uno::Reference< script::vba::XVBAEventProcessor > xVbaEvents( pDoc->GetVbaEventProcessor(), uno::UNO_SET_THROW );
+ // the parameter is the clicked object, as in the mousePressed call above
+ uno::Sequence< uno::Any > aArgs( 1 );
+ aArgs[ 0 ] <<= nTab;
+ xVbaEvents->processVbaEvent( ScSheetEvents::GetVbaSheetEventId( nEvent ), aArgs );
+ }
+ catch( uno::Exception& )
+ {
+ }
}
void ScTabViewObj::SheetChanged()
@@ -1242,14 +1257,12 @@ bool ScTabViewObj::IsMouseListening() const
return true;
// also include sheet events, because MousePressed must be called for them
- ScTabViewShell* pViewSh = GetViewShell();
- ScViewData* pViewData = pViewSh->GetViewData();
- const ScSheetEvents* pEvents = pViewData->GetDocument()->GetSheetEvents(pViewData->GetTabNo());
- if ( pEvents && ( pEvents->GetScript(SC_SHEETEVENT_RIGHTCLICK) != NULL ||
- pEvents->GetScript(SC_SHEETEVENT_DOUBLECLICK) != NULL ) )
- return true;
-
- return false;
+ ScViewData* pViewData = GetViewShell()->GetViewData();
+ ScDocument* pDoc = pViewData->GetDocument();
+ SCTAB nTab = pViewData->GetTabNo();
+ return
+ pDoc->HasSheetEventScript( nTab, SC_SHEETEVENT_RIGHTCLICK, true ) ||
+ pDoc->HasSheetEventScript( nTab, SC_SHEETEVENT_DOUBLECLICK, true );
}
sal_Bool ScTabViewObj::MousePressed( const awt::MouseEvent& e )
@@ -1257,33 +1270,29 @@ sal_Bool ScTabViewObj::MousePressed( const awt::MouseEvent& e )
{
sal_Bool bReturn(sal_False);
- if (aMouseClickHandlers.Count())
+ uno::Reference< uno::XInterface > xTarget = GetClickedObject(Point(e.X, e.Y));
+ if (aMouseClickHandlers.Count() && xTarget.is())
{
- uno::Reference< uno::XInterface > xTarget = GetClickedObject(Point(e.X, e.Y));
+ awt::EnhancedMouseEvent aMouseEvent;
- if (xTarget.is())
- {
- awt::EnhancedMouseEvent aMouseEvent;
+ aMouseEvent.Buttons = e.Buttons;
+ aMouseEvent.X = e.X;
+ aMouseEvent.Y = e.Y;
+ aMouseEvent.ClickCount = e.ClickCount;
+ aMouseEvent.PopupTrigger = e.PopupTrigger;
+ aMouseEvent.Target = xTarget;
- aMouseEvent.Buttons = e.Buttons;
- aMouseEvent.X = e.X;
- aMouseEvent.Y = e.Y;
- aMouseEvent.ClickCount = e.ClickCount;
- aMouseEvent.PopupTrigger = e.PopupTrigger;
- aMouseEvent.Target = xTarget;
-
- for ( USHORT n=0; n<aMouseClickHandlers.Count(); n++ )
+ for ( USHORT n=0; n<aMouseClickHandlers.Count(); n++ )
+ {
+ try
{
- try
- {
- if (!(*aMouseClickHandlers[n])->mousePressed( aMouseEvent ))
- bReturn = sal_True;
- }
- catch ( uno::Exception& )
- {
- aMouseClickHandlers.DeleteAndDestroy(n);
- --n; // because it will be increased again in the loop
- }
+ if (!(*aMouseClickHandlers[n])->mousePressed( aMouseEvent ))
+ bReturn = sal_True;
+ }
+ catch ( uno::Exception& )
+ {
+ aMouseClickHandlers.DeleteAndDestroy(n);
+ --n; // because it will be increased again in the loop
}
}
}
@@ -1291,7 +1300,7 @@ sal_Bool ScTabViewObj::MousePressed( const awt::MouseEvent& e )
// handle sheet events
bool bDoubleClick = ( e.Buttons == awt::MouseButton::LEFT && e.ClickCount == 2 );
bool bRightClick = ( e.Buttons == awt::MouseButton::RIGHT && e.ClickCount == 1 );
- if ( ( bDoubleClick || bRightClick ) && !bReturn )
+ if ( ( bDoubleClick || bRightClick ) && !bReturn && xTarget.is())
{
sal_Int32 nEvent = bDoubleClick ? SC_SHEETEVENT_DOUBLECLICK : SC_SHEETEVENT_RIGHTCLICK;
@@ -1307,28 +1316,41 @@ sal_Bool ScTabViewObj::MousePressed( const awt::MouseEvent& e )
if (pScript)
{
// the macro parameter is the clicked object, as in the mousePressed call above
- uno::Reference< uno::XInterface > xTarget = GetClickedObject(Point(e.X, e.Y));
- if (xTarget.is())
- {
- uno::Sequence<uno::Any> aParams(1);
- aParams[0] <<= xTarget;
+ uno::Sequence<uno::Any> aParams(1);
+ aParams[0] <<= xTarget;
- uno::Any aRet;
- uno::Sequence<sal_Int16> aOutArgsIndex;
- uno::Sequence<uno::Any> aOutArgs;
+ uno::Any aRet;
+ uno::Sequence<sal_Int16> aOutArgsIndex;
+ uno::Sequence<uno::Any> aOutArgs;
- /*ErrCode eRet =*/ pDocSh->CallXScript( *pScript, aParams, aRet, aOutArgsIndex, aOutArgs );
+ /*ErrCode eRet =*/ pDocSh->CallXScript( *pScript, aParams, aRet, aOutArgsIndex, aOutArgs );
- // look for a boolean return value of true
- sal_Bool bRetValue = sal_False;
- if (aRet >>= bRetValue)
- {
- if (bRetValue)
- bReturn = sal_True;
- }
+ // look for a boolean return value of true
+ sal_Bool bRetValue = sal_False;
+ if (aRet >>= bRetValue)
+ {
+ if (bRetValue)
+ bReturn = sal_True;
}
}
}
+
+ // execute VBA event handler
+ if (!bReturn && xTarget.is()) try
+ {
+ uno::Reference< script::vba::XVBAEventProcessor > xVbaEvents( pDoc->GetVbaEventProcessor(), uno::UNO_SET_THROW );
+ // the parameter is the clicked object, as in the mousePressed call above
+ uno::Sequence< uno::Any > aArgs( 1 );
+ aArgs[ 0 ] <<= xTarget;
+ xVbaEvents->processVbaEvent( ScSheetEvents::GetVbaSheetEventId( nEvent ), aArgs );
+ }
+ catch( util::VetoException& )
+ {
+ bReturn = sal_True;
+ }
+ catch( uno::Exception& )
+ {
+ }
}
return bReturn;
@@ -1820,14 +1842,25 @@ void ScTabViewObj::SelectionChanged()
// the macro parameter is the selection as returned by getSelection
uno::Sequence<uno::Any> aParams(1);
aParams[0] = getSelection();
-
uno::Any aRet;
uno::Sequence<sal_Int16> aOutArgsIndex;
uno::Sequence<uno::Any> aOutArgs;
-
/*ErrCode eRet =*/ pDocSh->CallXScript( *pScript, aParams, aRet, aOutArgsIndex, aOutArgs );
}
}
+
+ // execute VBA event handler
+ try
+ {
+ uno::Reference< script::vba::XVBAEventProcessor > xVbaEvents( pDoc->GetVbaEventProcessor(), uno::UNO_SET_THROW );
+ // the parameter is the clicked object, as in the mousePressed call above
+ uno::Sequence< uno::Any > aArgs( 1 );
+ aArgs[ 0 ] <<= getSelection();
+ xVbaEvents->processVbaEvent( ScSheetEvents::GetVbaSheetEventId( SC_SHEETEVENT_SELECT ), aArgs );
+ }
+ catch( uno::Exception& )
+ {
+ }
}
diff --git a/sc/source/ui/vba/excelvbahelper.cxx b/sc/source/ui/vba/excelvbahelper.cxx
index b1c4db637434..2c39d7154b4b 100644
--- a/sc/source/ui/vba/excelvbahelper.cxx
+++ b/sc/source/ui/vba/excelvbahelper.cxx
@@ -31,6 +31,7 @@
#include "scmod.hxx"
#include "cellsuno.hxx"
#include <comphelper/processfactory.hxx>
+#include <com/sun/star/sheet/XSheetCellRange.hpp>
using namespace ::com::sun::star;
using namespace ::ooo::vba;
@@ -41,6 +42,27 @@ namespace vba
{
namespace excel
{
+
+ScDocShell* GetDocShellFromRange( const uno::Reference< uno::XInterface >& xRange ) throw ( uno::RuntimeException )
+{
+ ScCellRangesBase* pScCellRangesBase = ScCellRangesBase::getImplementation( xRange );
+ if ( !pScCellRangesBase )
+ {
+ throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Failed to access underlying doc shell uno range object" ) ), uno::Reference< uno::XInterface >() );
+ }
+ return pScCellRangesBase->GetDocShell();
+}
+
+ScDocument* GetDocumentFromRange( const uno::Reference< uno::XInterface >& xRange ) throw ( uno::RuntimeException )
+{
+ ScDocShell* pDocShell = GetDocShellFromRange( xRange );
+ if ( !pDocShell )
+ {
+ throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Failed to access underlying document from uno range object" ) ), uno::Reference< uno::XInterface >() );
+ }
+ return pDocShell->GetDocument();
+}
+
void implSetZoom( const uno::Reference< frame::XModel >& xModel, sal_Int16 nZoom, std::vector< SCTAB >& nTabs )
{
ScTabViewShell* pViewSh = excel::getBestViewShell( xModel );
@@ -207,12 +229,40 @@ getViewFrame( const uno::Reference< frame::XModel >& xModel )
return NULL;
}
+uno::Reference< XHelperInterface >
+getUnoSheetModuleObj( const uno::Reference< table::XCellRange >& xRange ) throw ( uno::RuntimeException )
+{
+ uno::Reference< sheet::XSheetCellRange > xSheetRange( xRange, uno::UNO_QUERY_THROW );
+ uno::Reference< beans::XPropertySet > xProps( xSheetRange->getSpreadsheet(), uno::UNO_QUERY_THROW );
+ rtl::OUString sCodeName;
+ xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("CodeName") ) ) >>= sCodeName;
+ // #TODO #FIXME ideally we should 'throw' here if we don't get a valid parent, but... it is possible
+ // to create a module ( and use 'Option VBASupport 1' ) for a calc document, in this scenario there
+ // are *NO* special document module objects ( of course being able to switch between vba/non vba mode at
+ // the document in the future could fix this, especially IF the switching of the vba mode takes care to
+ // create the special document module objects if they don't exist.
+ uno::Reference< XHelperInterface > xParent( ov::getUnoDocModule( sCodeName, GetDocShellFromRange( xRange ) ), uno::UNO_QUERY );
+
+ return xParent;
+}
+
+uno::Reference< XHelperInterface >
+getUnoSheetModuleObj( const uno::Reference< sheet::XSheetCellRangeContainer >& xRanges ) throw ( uno::RuntimeException )
+{
+ uno::Reference< container::XEnumerationAccess > xEnumAccess( xRanges, uno::UNO_QUERY_THROW );
+ uno::Reference< container::XEnumeration > xEnum = xEnumAccess->createEnumeration();
+ uno::Reference< table::XCellRange > xRange( xEnum->nextElement(), uno::UNO_QUERY_THROW );
+
+ return getUnoSheetModuleObj( xRange );
+}
+
SfxItemSet*
ScVbaCellRangeAccess::GetDataSet( ScCellRangesBase* pRangeObj )
{
return pRangeObj ? pRangeObj->GetCurrentDataSet( true ) : 0;
}
+
} //excel
} //vba
} //ooo
diff --git a/sc/source/ui/vba/excelvbahelper.hxx b/sc/source/ui/vba/excelvbahelper.hxx
index 9af804ab169f..da0474e6ceb0 100644
--- a/sc/source/ui/vba/excelvbahelper.hxx
+++ b/sc/source/ui/vba/excelvbahelper.hxx
@@ -29,6 +29,9 @@
#include<vbahelper/vbahelper.hxx>
#include <docsh.hxx>
+#include <com/sun/star/table/XCellRange.hpp>
+#include <com/sun/star/sheet/XSheetCellRangeContainer.hpp>
+#include <ooo/vba/XHelperInterface.hpp>
class ScCellRangesBase;
@@ -48,6 +51,11 @@ namespace ooo
ScDocShell* getDocShell( const css::uno::Reference< css::frame::XModel>& xModel ) ;
ScTabViewShell* getCurrentBestViewShell( const css::uno::Reference< css::uno::XComponentContext >& xContext );
SfxViewFrame* getViewFrame( const css::uno::Reference< css::frame::XModel >& xModel );
+ css::uno::Reference< ooo::vba::XHelperInterface > getUnoSheetModuleObj( const css::uno::Reference< css::sheet::XSheetCellRangeContainer >& xRanges ) throw ( css::uno::RuntimeException );
+ css::uno::Reference< ooo::vba::XHelperInterface > getUnoSheetModuleObj( const css::uno::Reference< css::table::XCellRange >& xRange ) throw ( css::uno::RuntimeException );
+ ScDocShell* GetDocShellFromRange( const css::uno::Reference< css::uno::XInterface >& xRange ) throw ( css::uno::RuntimeException );
+ ScDocument* GetDocumentFromRange( const css::uno::Reference< css::uno::XInterface >& xRange ) throw ( css::uno::RuntimeException );
+ css::uno::Reference< css::frame::XModel > GetModelFromRange( const css::uno::Reference< css::uno::XInterface >& xRange ) throw ( css::uno::RuntimeException );
class ScVbaCellRangeAccess
{
public:
diff --git a/sc/source/ui/vba/makefile.mk b/sc/source/ui/vba/makefile.mk
index c0f0f0879027..5842b90237ff 100644
--- a/sc/source/ui/vba/makefile.mk
+++ b/sc/source/ui/vba/makefile.mk
@@ -47,62 +47,64 @@ INCPRE=$(INCCOM)$/$(TARGET)
# ------------------------------------------------------------------
SLOFILES= \
- $(SLO)$/vbaglobals.obj \
- $(SLO)$/vbaworkbook.obj \
- $(SLO)$/vbaworksheets.obj \
+ $(SLO)$/excelvbahelper.obj \
+ $(SLO)$/service.obj \
$(SLO)$/vbaapplication.obj \
- $(SLO)$/vbarange.obj \
- $(SLO)$/vbaname.obj \
- $(SLO)$/vbanames.obj \
- $(SLO)$/vbacomment.obj \
- $(SLO)$/vbacomments.obj \
- $(SLO)$/vbaworkbooks.obj \
- $(SLO)$/vbaworksheet.obj \
- $(SLO)$/vbaoutline.obj \
- $(SLO)$/vbafont.obj\
- $(SLO)$/excelvbahelper.obj\
- $(SLO)$/vbainterior.obj\
- $(SLO)$/vbawsfunction.obj\
- $(SLO)$/vbawindow.obj\
- $(SLO)$/vbachart.obj\
- $(SLO)$/vbachartobject.obj\
- $(SLO)$/vbachartobjects.obj\
- $(SLO)$/vbaseriescollection.obj\
- $(SLO)$/vbadialogs.obj \
- $(SLO)$/vbadialog.obj \
- $(SLO)$/vbapivottable.obj \
- $(SLO)$/vbapivotcache.obj \
- $(SLO)$/vbapivottables.obj \
- $(SLO)$/vbawindows.obj \
- $(SLO)$/vbapalette.obj \
+ $(SLO)$/vbaassistant.obj \
+ $(SLO)$/vbaaxes.obj \
+ $(SLO)$/vbaaxis.obj \
+ $(SLO)$/vbaaxistitle.obj \
$(SLO)$/vbaborders.obj \
$(SLO)$/vbacharacters.obj \
- $(SLO)$/vbavalidation.obj \
- $(SLO)$/vbasheetobject.obj \
- $(SLO)$/vbasheetobjects.obj \
- $(SLO)$/vbaoleobject.obj \
- $(SLO)$/vbaoleobjects.obj \
- $(SLO)$/vbatextboxshape.obj \
- $(SLO)$/vbapane.obj \
- $(SLO)$/vbatextframe.obj \
- $(SLO)$/vbacharttitle.obj \
+ $(SLO)$/vbachart.obj \
+ $(SLO)$/vbachartobject.obj \
+ $(SLO)$/vbachartobjects.obj \
$(SLO)$/vbacharts.obj \
- $(SLO)$/vbaaxistitle.obj \
- $(SLO)$/vbaaxes.obj \
- $(SLO)$/vbaaxis.obj \
- $(SLO)$/vbaformat.obj \
+ $(SLO)$/vbacharttitle.obj \
+ $(SLO)$/vbacomment.obj \
+ $(SLO)$/vbacomments.obj \
$(SLO)$/vbacondition.obj \
+ $(SLO)$/vbadialog.obj \
+ $(SLO)$/vbadialogs.obj \
+ $(SLO)$/vbaeventshelper.obj \
+ $(SLO)$/vbafont.obj \
+ $(SLO)$/vbaformat.obj \
$(SLO)$/vbaformatcondition.obj \
$(SLO)$/vbaformatconditions.obj \
- $(SLO)$/vbastyle.obj \
- $(SLO)$/vbastyles.obj \
- $(SLO)$/vbaassistant.obj \
+ $(SLO)$/vbaglobals.obj \
$(SLO)$/vbahyperlink.obj \
$(SLO)$/vbahyperlinks.obj \
- $(SLO)$/vbapagesetup.obj \
+ $(SLO)$/vbainterior.obj \
+ $(SLO)$/vbaname.obj \
+ $(SLO)$/vbanames.obj \
+ $(SLO)$/vbaoleobject.obj \
+ $(SLO)$/vbaoleobjects.obj \
+ $(SLO)$/vbaoutline.obj \
$(SLO)$/vbapagebreak.obj \
$(SLO)$/vbapagebreaks.obj \
- $(SLO)$/service.obj
+ $(SLO)$/vbapagesetup.obj \
+ $(SLO)$/vbapalette.obj \
+ $(SLO)$/vbapane.obj \
+ $(SLO)$/vbapivotcache.obj \
+ $(SLO)$/vbapivottable.obj \
+ $(SLO)$/vbapivottables.obj \
+ $(SLO)$/vbarange.obj \
+ $(SLO)$/vbaseriescollection.obj \
+ $(SLO)$/vbasheetobject.obj \
+ $(SLO)$/vbasheetobjects.obj \
+ $(SLO)$/vbastyle.obj \
+ $(SLO)$/vbastyles.obj \
+ $(SLO)$/vbatextboxshape.obj \
+ $(SLO)$/vbatextframe.obj \
+ $(SLO)$/vbavalidation.obj \
+ $(SLO)$/vbawindow.obj \
+ $(SLO)$/vbawindows.obj \
+ $(SLO)$/vbaworkbook.obj \
+ $(SLO)$/vbaworkbooks.obj \
+ $(SLO)$/vbaworksheet.obj \
+ $(SLO)$/vbaworksheets.obj \
+ $(SLO)$/vbawsfunction.obj
+
.ENDIF
# --- Targets ------------------------------------------------------
diff --git a/sc/source/ui/vba/service.cxx b/sc/source/ui/vba/service.cxx
index 8be0f6d9f726..7e986338e7d1 100644
--- a/sc/source/ui/vba/service.cxx
+++ b/sc/source/ui/vba/service.cxx
@@ -66,6 +66,10 @@ namespace application
{
extern sdecl::ServiceDecl const serviceDecl;
}
+namespace vbaeventshelper
+{
+extern sdecl::ServiceDecl const serviceDecl;
+}
namespace textframe
{
extern sdecl::ServiceDecl const serviceDecl;
@@ -80,41 +84,6 @@ extern "C"
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
- SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- lang::XMultiServiceFactory * pServiceManager, registry::XRegistryKey * pRegistryKey )
- {
- OSL_TRACE("In component_writeInfo");
-#if 0
- // Component registration
- if ( component_writeInfoHelper( pServiceManager, pRegistryKey,
- range::serviceDecl, workbook::serviceDecl, worksheet::serviceDecl, globals::serviceDecl, window::serviceDecl, hyperlink::serviceDecl, application::serviceDecl ) )
- {
- // Singleton registration
- try
- {
- registry::XRegistryKey * pKey =
- reinterpret_cast< registry::XRegistryKey * >(pRegistryKey);
-
- Reference< registry::XRegistryKey >xKey = pKey->createKey(
- rtl::OUString::createFromAscii( ("ooo.vba.Globals/UNO/SINGLETONS/ooo.vba.theGlobals") ) );
- xKey->setStringValue( ::rtl::OUString::createFromAscii(
- ("ooo.vba.Globals") ) );
- return sal_True;
- }
- catch( uno::Exception& /*e*/ )
- {
- //recomp & friends will detect false returned and fail
- }
- }
- return sal_False;
-#else
- // Component registration
- return component_writeInfoHelper( pServiceManager, pRegistryKey,
- range::serviceDecl, workbook::serviceDecl, worksheet::serviceDecl, globals::serviceDecl, window::serviceDecl, hyperlink::serviceDecl, application::serviceDecl ) && component_writeInfoHelper( pServiceManager, pRegistryKey, textframe::serviceDecl );
-#endif
-
- }
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplName, lang::XMultiServiceFactory * pServiceManager,
registry::XRegistryKey * pRegistryKey )
@@ -122,8 +91,8 @@ extern "C"
OSL_TRACE("In component_getFactory for %s", pImplName );
void* pRet = component_getFactoryHelper(
pImplName, pServiceManager, pRegistryKey, range::serviceDecl, workbook::serviceDecl, worksheet::serviceDecl, globals::serviceDecl, window::serviceDecl, hyperlink::serviceDecl, application::serviceDecl );
- if( !pRet )
- pRet = component_getFactoryHelper( pImplName, pServiceManager, pRegistryKey, textframe::serviceDecl );
+ if( !pRet )
+ pRet = component_getFactoryHelper( pImplName, pServiceManager, pRegistryKey, vbaeventshelper::serviceDecl, textframe::serviceDecl );
OSL_TRACE("Ret is 0x%x", pRet);
return pRet;
}
diff --git a/sc/source/ui/vba/vbaapplication.cxx b/sc/source/ui/vba/vbaapplication.cxx
index aea8d8bc11d4..f3965393e919 100644
--- a/sc/source/ui/vba/vbaapplication.cxx
+++ b/sc/source/ui/vba/vbaapplication.cxx
@@ -24,14 +24,14 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-#include <stdio.h>
+#include <stdio.h>
-#include<com/sun/star/sheet/XSpreadsheetView.hpp>
+#include <com/sun/star/sheet/XSpreadsheetView.hpp>
#include <com/sun/star/sheet/XSpreadsheets.hpp>
-#include<com/sun/star/view/XSelectionSupplier.hpp>
+#include <com/sun/star/view/XSelectionSupplier.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
-#include<ooo/vba/excel/XlCalculation.hpp>
+#include <ooo/vba/excel/XlCalculation.hpp>
#include <com/sun/star/sheet/XCellRangeReferrer.hpp>
#include <com/sun/star/sheet/XCalculatable.hpp>
#include <com/sun/star/frame/XLayoutManager.hpp>
@@ -88,12 +88,6 @@
using namespace ::ooo::vba;
using namespace ::com::sun::star;
-// Enable our own join detection for Intersection and Union
-// should be more efficient than using ScRangeList::Join ( because
-// we already are testing the same things )
-
-#define OWN_JOIN 1
-
// #TODO is this defined somewhere else?
#if ( defined UNX ) || ( defined OS2 ) //unix
#define FILE_PATH_SEPERATOR "/"
@@ -117,7 +111,8 @@ public:
ScVbaApplication::ScVbaApplication( const uno::Reference<uno::XComponentContext >& xContext ) :
ScVbaApplication_BASE( xContext ),
m_xCalculation( excel::XlCalculation::xlCalculationAutomatic ),
- m_xDisplayAlerts( sal_True)
+ m_bDisplayAlerts( sal_True ),
+ m_bEnableEvents( sal_True )
{
}
@@ -193,18 +188,47 @@ ScVbaApplication::hasProperty( const ::rtl::OUString& Name ) throw(uno::RuntimeE
uno::Reference< excel::XWorkbook >
ScVbaApplication::getActiveWorkbook() throw (uno::RuntimeException)
{
- return new ActiveWorkbook( this, mxContext );
+ uno::Reference< excel::XWorkbook > xWrkbk;
+ ScDocShell* pShell = excel::getDocShell( getCurrentExcelDoc( mxContext ) );
+ if ( pShell )
+ {
+ String aName;
+ if ( pShell->GetDocument() )
+ {
+ aName = pShell->GetDocument()->GetCodeName();
+ xWrkbk.set( getUnoDocModule( aName, pShell ), uno::UNO_QUERY );
+ // fallback ( e.g. it's possible a new document was created via the api )
+ // in that case the document will not have the appropriate Document Modules
+ // #TODO #FIXME ( needs to be fixes as part of providing support for an overall document
+ // vba mode etc. )
+ if ( !xWrkbk.is() )
+ return new ActiveWorkbook( this, mxContext );
+ }
+ }
+ return xWrkbk;
}
uno::Reference< excel::XWorkbook > SAL_CALL
ScVbaApplication::getThisWorkbook() throw (uno::RuntimeException)
{
- uno::Reference< frame::XModel > xModel = getThisExcelDoc(mxContext);
- if( !xModel.is() )
- return uno::Reference< excel::XWorkbook >();
-
- ScVbaWorkbook *pWb = new ScVbaWorkbook( this, mxContext, xModel );
- return uno::Reference< excel::XWorkbook > (pWb);
+ uno::Reference< excel::XWorkbook > xWrkbk;
+ ScDocShell* pShell = excel::getDocShell( getThisExcelDoc( mxContext ) );
+ if ( pShell )
+ {
+ String aName;
+ if ( pShell->GetDocument() )
+ {
+ aName = pShell->GetDocument()->GetCodeName();
+ xWrkbk.set( getUnoDocModule( aName, pShell ), uno::UNO_QUERY );
+ // fallback ( e.g. it's possible a new document was created via the api )
+ // in that case the document will not have the appropriate Document Modules
+ // #TODO #FIXME ( needs to be fixes as part of providing support for an overall document
+ // vba mode etc. )
+ if ( !xWrkbk.is() )
+ return new ActiveWorkbook( this, mxContext );
+ }
+ }
+ return xWrkbk;
}
uno::Reference< XAssistant > SAL_CALL
@@ -246,10 +270,10 @@ ScVbaApplication::getSelection() throw (uno::RuntimeException)
{
uno::Reference< sheet::XSheetCellRangeContainer > xRanges( getCurrentDocument()->getCurrentSelection(), ::uno::UNO_QUERY);
if ( xRanges.is() )
- return uno::makeAny( uno::Reference< excel::XRange >( new ScVbaRange( this, mxContext, xRanges ) ) );
+ return uno::makeAny( uno::Reference< excel::XRange >( new ScVbaRange( excel::getUnoSheetModuleObj( xRanges ), mxContext, xRanges ) ) );
}
- return uno::makeAny( uno::Reference< excel::XRange >(new ScVbaRange( this, mxContext, xRange ) ) );
+ return uno::makeAny( uno::Reference< excel::XRange >(new ScVbaRange( excel::getUnoSheetModuleObj( xRange ), mxContext, xRange ) ) );
}
else
{
@@ -272,7 +296,8 @@ ScVbaApplication::getActiveCell() throw (uno::RuntimeException )
sal_Int32 nCursorX = pTabView->GetCurX();
sal_Int32 nCursorY = pTabView->GetCurY();
- return new ScVbaRange( this, mxContext, xRange->getCellRangeByPosition( nCursorX, nCursorY, nCursorX, nCursorY ) );
+ uno::Reference< XHelperInterface > xParent( excel::getUnoSheetModuleObj( xRange ), uno::UNO_QUERY_THROW );
+ return new ScVbaRange( xParent, mxContext, xRange->getCellRangeByPosition( nCursorX, nCursorY, nCursorX, nCursorY ) );
}
uno::Any SAL_CALL
@@ -531,10 +556,8 @@ ScVbaApplication::GoTo( const uno::Any& Reference, const uno::Any& Scroll ) thro
ScGridWindow* gridWindow = (ScGridWindow*)pShell->GetWindow();
try
{
- // FIXME: pass proper Worksheet parent
uno::Reference< excel::XRange > xVbaSheetRange = ScVbaRange::getRangeObjectForName(
- uno::Reference< XHelperInterface >(), mxContext, sRangeName,
- excel::getDocShell( xModel ), formula::FormulaGrammar::CONV_XL_R1C1 );
+ mxContext, sRangeName, excel::getDocShell( xModel ), formula::FormulaGrammar::CONV_XL_R1C1 );
if( bScroll )
{
@@ -681,14 +704,27 @@ ScVbaApplication::getName() throw (uno::RuntimeException)
void SAL_CALL
ScVbaApplication::setDisplayAlerts(sal_Bool displayAlerts) throw (uno::RuntimeException)
{
- m_xDisplayAlerts = displayAlerts;
+ m_bDisplayAlerts = displayAlerts;
}
sal_Bool SAL_CALL
ScVbaApplication::getDisplayAlerts() throw (uno::RuntimeException)
{
- return m_xDisplayAlerts;
+ return m_bDisplayAlerts;
+}
+
+void SAL_CALL
+ScVbaApplication::setEnableEvents(sal_Bool bEnable) throw (uno::RuntimeException)
+{
+ m_bEnableEvents = bEnable;
+}
+
+sal_Bool SAL_CALL
+ScVbaApplication::getEnableEvents() throw (uno::RuntimeException)
+{
+ return m_bEnableEvents;
}
+
void SAL_CALL
ScVbaApplication::Calculate() throw( script::BasicErrorException , uno::RuntimeException )
{
@@ -764,410 +800,289 @@ ScVbaApplication::PathSeparator( ) throw (script::BasicErrorException, uno::Run
return sPathSep;
}
-typedef std::list< ScRange > Ranges;
-typedef std::list< ScRangeList > RangesList;
+// ----------------------------------------------------------------------------
+// Helpers for Intersect and Union
+
+namespace {
+
+typedef ::std::list< ScRange > ListOfScRange;
-void lcl_addRangesToVec( RangesList& vRanges, const uno::Any& aArg ) throw ( script::BasicErrorException, uno::RuntimeException )
+/** Appends all ranges of a VBA Range object in the passed Any to the list of ranges. */
+void lclAddToListOfScRange( ListOfScRange& rList, const uno::Any& rArg )
+ throw (script::BasicErrorException, uno::RuntimeException)
{
- ScRangeList theRanges;
- uno::Reference< excel::XRange > xRange( aArg, uno::UNO_QUERY_THROW );
- uno::Reference< XCollection > xCol( xRange->Areas( uno::Any() ), uno::UNO_QUERY_THROW );
- sal_Int32 nCount = xCol->getCount();
- for( sal_Int32 i = 1; i <= nCount; ++i )
+ if( rArg.hasValue() )
{
- uno::Reference< excel::XRange > xAreaRange( xCol->Item( uno::makeAny( sal_Int32(i) ), uno::Any() ), uno::UNO_QUERY_THROW );
- uno::Reference< sheet::XCellRangeAddressable > xAddressable( xAreaRange->getCellRange(), uno::UNO_QUERY_THROW );
- table::CellRangeAddress addr = xAddressable->getRangeAddress();
- ScRange refRange;
- ScUnoConversion::FillScRange( refRange, addr );
- theRanges.Append( refRange );
+ uno::Reference< excel::XRange > xRange( rArg, uno::UNO_QUERY_THROW );
+ uno::Reference< XCollection > xCol( xRange->Areas( uno::Any() ), uno::UNO_QUERY_THROW );
+ for( sal_Int32 nIdx = 1, nCount = xCol->getCount(); nIdx <= nCount; ++nIdx )
+ {
+ uno::Reference< excel::XRange > xAreaRange( xCol->Item( uno::Any( nIdx ), uno::Any() ), uno::UNO_QUERY_THROW );
+ uno::Reference< sheet::XCellRangeAddressable > xAddressable( xAreaRange->getCellRange(), uno::UNO_QUERY_THROW );
+ ScRange aScRange;
+ ScUnoConversion::FillScRange( aScRange, xAddressable->getRangeAddress() );
+ rList.push_back( aScRange );
+ }
}
- vRanges.push_back( theRanges );
}
-void lcl_addRangeToVec( Ranges& vRanges, const uno::Any& aArg ) throw ( script::BasicErrorException, uno::RuntimeException )
+/** Returns true, if the passed ranges can be expressed by a single range. The
+ new range will be contained in r1 then, the range r2 can be removed. */
+bool lclTryJoin( ScRange& r1, const ScRange& r2 )
{
- uno::Reference< excel::XRange > xRange( aArg, uno::UNO_QUERY_THROW );
- uno::Reference< XCollection > xCol( xRange->Areas( uno::Any() ), uno::UNO_QUERY_THROW );
- sal_Int32 nCount = xCol->getCount();
- for( sal_Int32 i = 1; i <= nCount; ++i )
+ // 1) r2 is completely inside r1
+ if( r1.In( r2 ) )
+ return true;
+
+ // 2) r1 is completely inside r2
+ if( r2.In( r1 ) )
{
- uno::Reference< excel::XRange > xAreaRange( xCol->Item( uno::makeAny( sal_Int32(i) ), uno::Any() ), uno::UNO_QUERY_THROW );
- uno::Reference< sheet::XCellRangeAddressable > xAddressable( xAreaRange->getCellRange(), uno::UNO_QUERY_THROW );
- table::CellRangeAddress addr = xAddressable->getRangeAddress();
- ScRange refRange;
- ScUnoConversion::FillScRange( refRange, addr );
- vRanges.push_back( refRange );
+ r1 = r2;
+ return true;
}
-}
-bool lcl_canJoin( ScRange& r1, ScRange& r2 )
-{
- bool bCanJoin = false;
- SCCOL startEndColDiff = r2.aStart.Col() - r1.aEnd.Col();
- SCROW startEndRowDiff = r2.aStart.Row() - r1.aEnd.Row();
- SCCOL startColDiff = r2.aStart.Col() - r1.aStart.Col();
- SCCOL endColDiff = r2.aEnd.Col() - r1.aEnd.Col();
- SCROW startRowDiff = r2.aStart.Row() - r1.aStart.Row();
- SCROW endRowDiff = r2.aEnd.Row() - r1.aEnd.Row();
- if ( ( startRowDiff == endRowDiff ) && startRowDiff == 0 && startColDiff >=0 && endColDiff > 0 && ( startEndColDiff <= 1 && startEndColDiff >= -r1.aEnd.Col() ) )
- bCanJoin = true;
- else if ( ( startColDiff == endColDiff ) && startColDiff == 0 && startRowDiff >= 0 && endRowDiff > 0 && ( startEndRowDiff <= 1 && startEndRowDiff >= -r1.aEnd.Row() ) )
- bCanJoin = true;
-#ifdef DEBUG
- String sr1;
- String sr2;
- r1.Format( sr1, SCA_VALID ) ;
- r2.Format( sr2, SCA_VALID ) ;
- OSL_TRACE(" canJoin address %s with %s %s ( startRowDiff(%d), endRowDiff(%d), startColDiff(%d) endColDiff(%d) startEndRowDiff(%d), startEndColDiff(%d) ",
- rtl::OUStringToOString( sr1, RTL_TEXTENCODING_UTF8 ).getStr(),
- rtl::OUStringToOString( sr2, RTL_TEXTENCODING_UTF8 ).getStr(), bCanJoin ? "true" : "false", startRowDiff, endRowDiff, startColDiff, endColDiff, startEndRowDiff, startEndColDiff );
-#endif
- return bCanJoin;
-}
-// strips out ranges that contain other ranges, also
-// if the borders of the intersecting ranges are alligned
-// then the the range is extended to the larger
-// e.g. Range("A4:D10"), Range("B4:E10") would be combined
-// to Range("A4:E10")
-void lcl_strip_containedRanges( Ranges& vRanges )
-{
- // get rid of ranges that are surrounded by other ranges
- Ranges::iterator it_outer = vRanges.begin();
- while( it_outer != vRanges.end() )
+ SCCOL n1L = r1.aStart.Col();
+ SCCOL n1R = r1.aEnd.Col();
+ SCROW n1T = r1.aStart.Row();
+ SCROW n1B = r1.aEnd.Row();
+ SCCOL n2L = r2.aStart.Col();
+ SCCOL n2R = r2.aEnd.Col();
+ SCROW n2T = r2.aStart.Row();
+ SCROW n2B = r2.aEnd.Row();
+
+ // 3) r1 and r2 have equal upper and lower border
+ if( (n1T == n2T) && (n1B == n2B) )
{
- bool it_outer_erased = false; // true = it_outer erased from vRanges
- Ranges::iterator it_inner = vRanges.begin();
- /* Exit the inner loop if outer iterator has been erased in its last
- iteration (this means it has been joined to last it_inner, or that
- the it_inner contains it completely). The inner loop will restart
- with next element of the outer loop, and all elements (from the
- beginning of the list) will be checked against that new element. */
- while( !it_outer_erased && (it_inner != vRanges.end()) )
+ // check that r1 overlaps or touches r2
+ if( ((n1L < n2L) && (n2L - 1 <= n1R)) || ((n2L < n1L) && (n1L - 1 <= n2R)) )
{
- bool it_inner_erased = false; // true = it_inner erased from vRanges
- if ( it_outer != it_inner )
- {
-#ifdef DEBUG
- String r1;
- String r2;
- it_outer->Format( r1, SCA_VALID ) ;
- it_inner->Format( r2, SCA_VALID ) ;
- OSL_TRACE( "try strip/join address %s with %s ",
- rtl::OUStringToOString( r1, RTL_TEXTENCODING_UTF8 ).getStr(),
- rtl::OUStringToOString( r2, RTL_TEXTENCODING_UTF8 ).getStr() );
-#endif
- if ( it_outer->In( *it_inner ) )
- {
- it_inner = vRanges.erase( it_inner );
- it_inner_erased = true;
- }
- else if ( it_inner->In( *it_outer ) )
- {
- it_outer = vRanges.erase( it_outer );
- it_outer_erased = true;
- }
-#ifndef OWN_JOIN
- else if ( (*it_inner).aStart.Row() == (*it_outer).aStart.Row()
- && (*it_inner).aEnd.Row() == (*it_outer).aEnd.Row() )
- {
- it_outer->ExtendTo( *it_inner );
- it_inner = vRanges.erase( it_inner );
- it_inner_erased = true;
- }
-#else
- else if ( lcl_canJoin( *it_outer, *it_inner ) )
- {
- it_outer->ExtendTo( *it_inner );
- it_inner = vRanges.erase( it_inner );
- it_inner_erased = true;
- }
- else if ( lcl_canJoin( *it_inner, *it_outer) )
- {
- it_inner->ExtendTo( *it_outer );
- it_outer = vRanges.erase( it_outer );
- it_outer_erased = true;
- }
-#endif
- }
- /* If it_inner has not been erased from vRanges, continue inner
- loop with next element. Otherwise, it_inner already points to
- the next element (return value of list::erase()). */
- if( !it_inner_erased )
- ++it_inner;
+ r1.aStart.SetCol( ::std::min( n1L, n2L ) );
+ r1.aEnd.SetCol( ::std::max( n1R, n2R ) );
+ return true;
}
- /* If it_outer has not been erased from vRanges, continue outer loop
- with next element. Otherwise, it_outer already points to the next
- element (return value of list::erase()). */
- if( !it_outer_erased )
- ++it_outer;
+ return false;
}
+ // 4) r1 and r2 have equal left and right border
+ if( (n1L == n2L) && (n1R == n2R) )
+ {
+ // check that r1 overlaps or touches r2
+ if( ((n1T < n2T) && (n2T + 1 <= n1B)) || ((n2T < n1T) && (n1T + 1 <= n2B)) )
+ {
+ r1.aStart.SetRow( ::std::min( n1T, n2T ) );
+ r1.aEnd.SetRow( ::std::max( n1B, n2B ) );
+ return true;
+ }
+ return false;
+ }
+
+ // 5) cannot join these ranges
+ return false;
}
-Ranges
-lcl_intersectionImpl( ScRangeList& rl1, ScRangeList& rl2 )
+/** Strips out ranges that are contained by other ranges, joins ranges that can be joined
+ together (aligned borders, e.g. A4:D10 and B4:E10 would be combined to A4:E10. */
+void lclJoinRanges( ListOfScRange& rList )
{
- Ranges intersections;
- for ( USHORT x = 0 ; x < rl1.Count(); ++x )
+ ListOfScRange::iterator aOuterIt = rList.begin();
+ while( aOuterIt != rList.end() )
{
- for ( USHORT y = 0 ; y < rl2.Count(); ++y )
+ bool bAnyErased = false; // true = any range erased from rList
+ ListOfScRange::iterator aInnerIt = rList.begin();
+ while( aInnerIt != rList.end() )
{
-#ifdef DEBUG
- String r1;
- String r2;
- rl1.GetObject( x )->Format( r1, SCA_VALID ) ;
- rl2.GetObject( y )->Format( r2, SCA_VALID ) ;
- OSL_TRACE( "comparing address %s with %s ",
- rtl::OUStringToOString( r1, RTL_TEXTENCODING_UTF8 ).getStr(),
- rtl::OUStringToOString( r2, RTL_TEXTENCODING_UTF8 ).getStr() );
-#endif
- if( rl1.GetObject( x )->Intersects( *rl2.GetObject( y ) ) )
+ bool bInnerErased = false; // true = aInnerIt erased from rList
+ // do not compare a range with itself
+ if( (aOuterIt != aInnerIt) && lclTryJoin( *aOuterIt, *aInnerIt ) )
{
- ScRange aIntersection = ScRange( Max( rl1.GetObject( x )->aStart.Col(), rl2.GetObject( y )->aStart.Col() ),
- Max( rl1.GetObject( x )->aStart.Row(), rl2.GetObject( y )->aStart.Row() ),
- Max( rl1.GetObject( x )->aStart.Tab(), rl2.GetObject( y )->aStart.Tab() ),
- Min( rl1.GetObject( x )->aEnd.Col(), rl2.GetObject( y )->aEnd.Col() ),
- Min( rl1.GetObject( x )->aEnd.Row(), rl2.GetObject( y )->aEnd.Row() ),
- Min( rl1.GetObject( x )->aEnd.Tab(), rl2.GetObject( y )->aEnd.Tab() ) );
- intersections.push_back( aIntersection );
+ // aOuterIt points to joined range, aInnerIt will be removed
+ aInnerIt = rList.erase( aInnerIt );
+ bInnerErased = bAnyErased = true;
}
+ /* If aInnerIt has been erased from rList, it already points to
+ the next element (return value of list::erase()). */
+ if( !bInnerErased )
+ ++aInnerIt;
}
+ // if any range has been erased, repeat outer loop with the same range
+ if( !bAnyErased )
+ ++aOuterIt;
}
- lcl_strip_containedRanges( intersections );
- return intersections;
}
-// Intersection of a set of ranges ( where each range is represented by a ScRangeList e.g.
-// any range can be a multi-area range )
-// An intersection is performed between each range in the set of ranges.
-// The resulting set of intersections is then processed to strip out any
-// intersections that contain other intersections ( and also ranges that directly line up
-// are joined ) ( see lcl_strip_containedRanges )
-RangesList lcl_intersections( RangesList& vRanges )
+/** Intersects the passed list with all ranges of a VBA Range object in the passed Any. */
+void lclIntersectRanges( ListOfScRange& rList, const uno::Any& rArg )
+ throw (script::BasicErrorException, uno::RuntimeException)
{
- RangesList intersections;
- RangesList::iterator it = vRanges.begin();
- while( it != vRanges.end() )
+ // extract the ranges from the passed argument, will throw on invalid data
+ ListOfScRange aList2;
+ lclAddToListOfScRange( aList2, rArg );
+ // do nothing, if the passed list is already empty
+ if( !rList.empty() && !aList2.empty() )
{
- Ranges intermediateList;
- for( RangesList::iterator it_inner = vRanges.begin(); it_inner != vRanges.end(); ++it_inner )
+ // save original list in a local
+ ListOfScRange aList1;
+ aList1.swap( rList );
+ // join ranges from passed argument
+ lclJoinRanges( aList2 );
+ // calculate intersection of the ranges in both lists
+ for( ListOfScRange::const_iterator aOuterIt = aList1.begin(), aOuterEnd = aList1.end(); aOuterIt != aOuterEnd; ++aOuterIt )
{
- if ( it != it_inner )
+ for( ListOfScRange::const_iterator aInnerIt = aList2.begin(), aInnerEnd = aList2.end(); aInnerIt != aInnerEnd; ++aInnerIt )
{
- Ranges ranges = lcl_intersectionImpl( *it, *it_inner );
- for ( Ranges::iterator range_it = ranges.begin(); range_it != ranges.end(); ++range_it )
- intermediateList.push_back( *range_it );
+ if( aOuterIt->Intersects( *aInnerIt ) )
+ {
+ ScRange aIsectRange(
+ Max( aOuterIt->aStart.Col(), aInnerIt->aStart.Col() ),
+ Max( aOuterIt->aStart.Row(), aInnerIt->aStart.Row() ),
+ Max( aOuterIt->aStart.Tab(), aInnerIt->aStart.Tab() ),
+ Min( aOuterIt->aEnd.Col(), aInnerIt->aEnd.Col() ),
+ Min( aOuterIt->aEnd.Row(), aInnerIt->aEnd.Row() ),
+ Min( aOuterIt->aEnd.Tab(), aInnerIt->aEnd.Tab() ) );
+ rList.push_back( aIsectRange );
+ }
}
}
- it = vRanges.erase( it ); // remove it so we don't include it in the next pass.
- // 'it' is removed uncontidionally from vRanges, so the while loop will terminate
-
- ScRangeList argIntersect;
- lcl_strip_containedRanges( intermediateList );
-
- for( Ranges::iterator it_inter = intermediateList.begin(); it_inter != intermediateList.end(); ++it_inter )
-#ifndef OWN_JOIN
- argIntersect.Join( *it_inter );
-#else
- argIntersect.Append( *it_inter );
-#endif
-
- intersections.push_back( argIntersect );
+ // again, join the result ranges
+ lclJoinRanges( rList );
}
- return intersections;
-}
-
-uno::Reference< excel::XRange > SAL_CALL
-ScVbaApplication::Intersect( const uno::Reference< excel::XRange >& Arg1, const uno::Reference< excel::XRange >& Arg2, const uno::Any& Arg3, const uno::Any& Arg4, const uno::Any& Arg5, const uno::Any& Arg6, const uno::Any& Arg7, const uno::Any& Arg8, const uno::Any& Arg9, const uno::Any& Arg10, const uno::Any& Arg11, const uno::Any& Arg12, const uno::Any& Arg13, const uno::Any& Arg14, const uno::Any& Arg15, const uno::Any& Arg16, const uno::Any& Arg17, const uno::Any& Arg18, const uno::Any& Arg19, const uno::Any& Arg20, const uno::Any& Arg21, const uno::Any& Arg22, const uno::Any& Arg23, const uno::Any& Arg24, const uno::Any& Arg25, const uno::Any& Arg26, const uno::Any& Arg27, const uno::Any& Arg28, const uno::Any& Arg29, const uno::Any& Arg30 ) throw (script::BasicErrorException, uno::RuntimeException)
-{
- if ( !Arg1.is() || !Arg2.is() )
- DebugHelper::exception(SbERR_BAD_PARAMETER, rtl::OUString() );
-
- RangesList vRanges;
- lcl_addRangesToVec( vRanges, uno::makeAny( Arg1 ) );
- lcl_addRangesToVec( vRanges, uno::makeAny( Arg2 ) );
-
- if ( Arg3.hasValue() )
- lcl_addRangesToVec( vRanges, Arg3 );
- if ( Arg4.hasValue() )
- lcl_addRangesToVec( vRanges, Arg4 );
- if ( Arg5.hasValue() )
- lcl_addRangesToVec( vRanges, Arg5 );
- if ( Arg6.hasValue() )
- lcl_addRangesToVec( vRanges, Arg6 );
- if ( Arg7.hasValue() )
- lcl_addRangesToVec( vRanges, Arg7 );
- if ( Arg8.hasValue() )
- lcl_addRangesToVec( vRanges, Arg8 );
- if ( Arg9.hasValue() )
- lcl_addRangesToVec( vRanges, Arg9 );
- if ( Arg10.hasValue() )
- lcl_addRangesToVec( vRanges, Arg10 );
- if ( Arg11.hasValue() )
- lcl_addRangesToVec( vRanges, Arg11 );
- if ( Arg12.hasValue() )
- lcl_addRangesToVec( vRanges, Arg12 );
- if ( Arg13.hasValue() )
- lcl_addRangesToVec( vRanges, Arg13 );
- if ( Arg14.hasValue() )
- lcl_addRangesToVec( vRanges, Arg14 );
- if ( Arg15.hasValue() )
- lcl_addRangesToVec( vRanges, Arg15 );
- if ( Arg16.hasValue() )
- lcl_addRangesToVec( vRanges, Arg16 );
- if ( Arg17.hasValue() )
- lcl_addRangesToVec( vRanges, Arg17 );
- if ( Arg18.hasValue() )
- lcl_addRangesToVec( vRanges, Arg18 );
- if ( Arg19.hasValue() )
- lcl_addRangesToVec( vRanges, Arg19 );
- if ( Arg20.hasValue() )
- lcl_addRangesToVec( vRanges, Arg20 );
- if ( Arg21.hasValue() )
- lcl_addRangesToVec( vRanges, Arg21 );
- if ( Arg22.hasValue() )
- lcl_addRangesToVec( vRanges, Arg22 );
- if ( Arg23.hasValue() )
- lcl_addRangesToVec( vRanges, Arg23 );
- if ( Arg24.hasValue() )
- lcl_addRangesToVec( vRanges, Arg24 );
- if ( Arg25.hasValue() )
- lcl_addRangesToVec( vRanges, Arg25 );
- if ( Arg26.hasValue() )
- lcl_addRangesToVec( vRanges, Arg26 );
- if ( Arg27.hasValue() )
- lcl_addRangesToVec( vRanges, Arg27 );
- if ( Arg28.hasValue() )
- lcl_addRangesToVec( vRanges, Arg28 );
- if ( Arg29.hasValue() )
- lcl_addRangesToVec( vRanges, Arg29 );
- if ( Arg30.hasValue() )
- lcl_addRangesToVec( vRanges, Arg30 );
-
- uno::Reference< excel::XRange > xRefRange;
-
- ScRangeList aCellRanges;
- // first pass - gets the set of all possible interections of Arg1..ArgN
- RangesList intersections = lcl_intersections( vRanges );
- // second pass - gets the intersections of the intersections ( don't ask, but this
- // is what seems to happen )
- if ( intersections.size() > 1)
- intersections = lcl_intersections( intersections );
- for( RangesList::iterator it = intersections.begin(); it != intersections.end(); ++it )
- {
- for ( USHORT x = 0 ; x < it->Count(); ++x )
-#ifndef OWN_JOIN
- aCellRanges.Join( *it->GetObject(x) );
-#else
- aCellRanges.Append( *it->GetObject(x) );
-#endif
- }
-
- uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_QUERY_THROW );
- ScDocShell* pDocShell = excel::getDocShell( xModel );
- if ( aCellRanges.Count() == 1 )
- {
- xRefRange = new ScVbaRange( uno::Reference< XHelperInterface >(), mxContext, new ScCellRangeObj( pDocShell, *aCellRanges.First() ) );
- }
- else if ( aCellRanges.Count() > 1 )
- {
- uno::Reference< sheet::XSheetCellRangeContainer > xRanges( new ScCellRangesObj( pDocShell, aCellRanges ) );
- xRefRange = new ScVbaRange( uno::Reference< XHelperInterface >(), mxContext, xRanges );
-
- }
- return xRefRange;
}
-uno::Reference< excel::XRange > SAL_CALL
-ScVbaApplication::Union( const uno::Reference< excel::XRange >& Arg1, const uno::Reference< excel::XRange >& Arg2, const uno::Any& Arg3, const uno::Any& Arg4, const uno::Any& Arg5, const uno::Any& Arg6, const uno::Any& Arg7, const uno::Any& Arg8, const uno::Any& Arg9, const uno::Any& Arg10, const uno::Any& Arg11, const uno::Any& Arg12, const uno::Any& Arg13, const uno::Any& Arg14, const uno::Any& Arg15, const uno::Any& Arg16, const uno::Any& Arg17, const uno::Any& Arg18, const uno::Any& Arg19, const uno::Any& Arg20, const uno::Any& Arg21, const uno::Any& Arg22, const uno::Any& Arg23, const uno::Any& Arg24, const uno::Any& Arg25, const uno::Any& Arg26, const uno::Any& Arg27, const uno::Any& Arg28, const uno::Any& Arg29, const uno::Any& Arg30 ) throw (script::BasicErrorException, uno::RuntimeException)
+/** Creates a VBA Range object from the passed list of ranges. */
+uno::Reference< excel::XRange > lclCreateVbaRange(
+ const uno::Reference< uno::XComponentContext >& rxContext,
+ const uno::Reference< frame::XModel >& rxModel,
+ const ListOfScRange& rList ) throw (uno::RuntimeException)
{
- if ( !Arg1.is() || !Arg2.is() )
- DebugHelper::exception(SbERR_BAD_PARAMETER, rtl::OUString() );
-
- uno::Reference< excel::XRange > xRange;
- Ranges vRanges;
- lcl_addRangeToVec( vRanges, uno::makeAny( Arg1 ) );
- lcl_addRangeToVec( vRanges, uno::makeAny( Arg2 ) );
-
- if ( Arg3.hasValue() )
- lcl_addRangeToVec( vRanges, Arg3 );
- if ( Arg4.hasValue() )
- lcl_addRangeToVec( vRanges, Arg4 );
- if ( Arg5.hasValue() )
- lcl_addRangeToVec( vRanges, Arg5 );
- if ( Arg6.hasValue() )
- lcl_addRangeToVec( vRanges, Arg6 );
- if ( Arg7.hasValue() )
- lcl_addRangeToVec( vRanges, Arg7 );
- if ( Arg8.hasValue() )
- lcl_addRangeToVec( vRanges, Arg8 );
- if ( Arg9.hasValue() )
- lcl_addRangeToVec( vRanges, Arg9 );
- if ( Arg10.hasValue() )
- lcl_addRangeToVec( vRanges, Arg10 );
- if ( Arg11.hasValue() )
- lcl_addRangeToVec( vRanges, Arg11 );
- if ( Arg12.hasValue() )
- lcl_addRangeToVec( vRanges, Arg12 );
- if ( Arg13.hasValue() )
- lcl_addRangeToVec( vRanges, Arg13 );
- if ( Arg14.hasValue() )
- lcl_addRangeToVec( vRanges, Arg14 );
- if ( Arg15.hasValue() )
- lcl_addRangeToVec( vRanges, Arg15 );
- if ( Arg16.hasValue() )
- lcl_addRangeToVec( vRanges, Arg16 );
- if ( Arg17.hasValue() )
- lcl_addRangeToVec( vRanges, Arg17 );
- if ( Arg18.hasValue() )
- lcl_addRangeToVec( vRanges, Arg18 );
- if ( Arg19.hasValue() )
- lcl_addRangeToVec( vRanges, Arg19 );
- if ( Arg20.hasValue() )
- lcl_addRangeToVec( vRanges, Arg20 );
- if ( Arg21.hasValue() )
- lcl_addRangeToVec( vRanges, Arg21 );
- if ( Arg22.hasValue() )
- lcl_addRangeToVec( vRanges, Arg22 );
- if ( Arg23.hasValue() )
- lcl_addRangeToVec( vRanges, Arg23 );
- if ( Arg24.hasValue() )
- lcl_addRangeToVec( vRanges, Arg24 );
- if ( Arg25.hasValue() )
- lcl_addRangeToVec( vRanges, Arg25 );
- if ( Arg26.hasValue() )
- lcl_addRangeToVec( vRanges, Arg26 );
- if ( Arg27.hasValue() )
- lcl_addRangeToVec( vRanges, Arg27 );
- if ( Arg28.hasValue() )
- lcl_addRangeToVec( vRanges, Arg28 );
- if ( Arg29.hasValue() )
- lcl_addRangeToVec( vRanges, Arg29 );
- if ( Arg30.hasValue() )
- lcl_addRangeToVec( vRanges, Arg30 );
+ ScDocShell* pDocShell = excel::getDocShell( rxModel );
+ if( !pDocShell ) throw uno::RuntimeException();
ScRangeList aCellRanges;
- lcl_strip_containedRanges( vRanges );
-
- for( Ranges::iterator it = vRanges.begin(); it != vRanges.end(); ++it )
- aCellRanges.Append( *it );
+ for( ListOfScRange::const_iterator aIt = rList.begin(), aEnd = rList.end(); aIt != aEnd; ++aIt )
+ aCellRanges.Append( *aIt );
- uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_QUERY_THROW );
- ScDocShell* pDocShell = excel::getDocShell( xModel );
- if ( aCellRanges.Count() == 1 )
+ if( aCellRanges.Count() == 1 )
{
- // normal range
- xRange = new ScVbaRange( uno::Reference< XHelperInterface >(), mxContext, new ScCellRangeObj( pDocShell, *aCellRanges.First() ) );
+ uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pDocShell, *aCellRanges.First() ) );
+ return new ScVbaRange( excel::getUnoSheetModuleObj( xRange ), rxContext, xRange );
}
- else if ( aCellRanges.Count() > 1 ) // Multi-Area
+ if( aCellRanges.Count() > 1 )
{
uno::Reference< sheet::XSheetCellRangeContainer > xRanges( new ScCellRangesObj( pDocShell, aCellRanges ) );
- xRange = new ScVbaRange( uno::Reference< XHelperInterface >(), mxContext, xRanges );
+ return new ScVbaRange( excel::getUnoSheetModuleObj( xRanges ), rxContext, xRanges );
}
-
- // #FIXME need proper (WorkSheet) parent
- return xRange;
+ return 0;
+}
+
+} // namespace
+
+// ----------------------------------------------------------------------------
+
+uno::Reference< excel::XRange > SAL_CALL ScVbaApplication::Intersect(
+ const uno::Reference< excel::XRange >& rArg1, const uno::Reference< excel::XRange >& rArg2,
+ const uno::Any& rArg3, const uno::Any& rArg4, const uno::Any& rArg5, const uno::Any& rArg6,
+ const uno::Any& rArg7, const uno::Any& rArg8, const uno::Any& rArg9, const uno::Any& rArg10,
+ const uno::Any& rArg11, const uno::Any& rArg12, const uno::Any& rArg13, const uno::Any& rArg14,
+ const uno::Any& rArg15, const uno::Any& rArg16, const uno::Any& rArg17, const uno::Any& rArg18,
+ const uno::Any& rArg19, const uno::Any& rArg20, const uno::Any& rArg21, const uno::Any& rArg22,
+ const uno::Any& rArg23, const uno::Any& rArg24, const uno::Any& rArg25, const uno::Any& rArg26,
+ const uno::Any& rArg27, const uno::Any& rArg28, const uno::Any& rArg29, const uno::Any& rArg30 )
+ throw (script::BasicErrorException, uno::RuntimeException)
+{
+ if( !rArg1.is() || !rArg2.is() )
+ DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() );
+
+ // initialize the result list with 1st parameter, join its ranges together
+ ListOfScRange aList;
+ lclAddToListOfScRange( aList, uno::Any( rArg1 ) );
+ lclJoinRanges( aList );
+
+ // process all other parameters, this updates the list with intersection
+ lclIntersectRanges( aList, uno::Any( rArg2 ) );
+ lclIntersectRanges( aList, rArg3 );
+ lclIntersectRanges( aList, rArg4 );
+ lclIntersectRanges( aList, rArg5 );
+ lclIntersectRanges( aList, rArg6 );
+ lclIntersectRanges( aList, rArg7 );
+ lclIntersectRanges( aList, rArg8 );
+ lclIntersectRanges( aList, rArg9 );
+ lclIntersectRanges( aList, rArg10 );
+ lclIntersectRanges( aList, rArg11 );
+ lclIntersectRanges( aList, rArg12 );
+ lclIntersectRanges( aList, rArg13 );
+ lclIntersectRanges( aList, rArg14 );
+ lclIntersectRanges( aList, rArg15 );
+ lclIntersectRanges( aList, rArg16 );
+ lclIntersectRanges( aList, rArg17 );
+ lclIntersectRanges( aList, rArg18 );
+ lclIntersectRanges( aList, rArg19 );
+ lclIntersectRanges( aList, rArg20 );
+ lclIntersectRanges( aList, rArg21 );
+ lclIntersectRanges( aList, rArg22 );
+ lclIntersectRanges( aList, rArg23 );
+ lclIntersectRanges( aList, rArg24 );
+ lclIntersectRanges( aList, rArg25 );
+ lclIntersectRanges( aList, rArg26 );
+ lclIntersectRanges( aList, rArg27 );
+ lclIntersectRanges( aList, rArg28 );
+ lclIntersectRanges( aList, rArg29 );
+ lclIntersectRanges( aList, rArg30 );
+
+ // create the VBA Range object
+ return lclCreateVbaRange( mxContext, getCurrentDocument(), aList );
+}
+
+uno::Reference< excel::XRange > SAL_CALL ScVbaApplication::Union(
+ const uno::Reference< excel::XRange >& rArg1, const uno::Reference< excel::XRange >& rArg2,
+ const uno::Any& rArg3, const uno::Any& rArg4, const uno::Any& rArg5, const uno::Any& rArg6,
+ const uno::Any& rArg7, const uno::Any& rArg8, const uno::Any& rArg9, const uno::Any& rArg10,
+ const uno::Any& rArg11, const uno::Any& rArg12, const uno::Any& rArg13, const uno::Any& rArg14,
+ const uno::Any& rArg15, const uno::Any& rArg16, const uno::Any& rArg17, const uno::Any& rArg18,
+ const uno::Any& rArg19, const uno::Any& rArg20, const uno::Any& rArg21, const uno::Any& rArg22,
+ const uno::Any& rArg23, const uno::Any& rArg24, const uno::Any& rArg25, const uno::Any& rArg26,
+ const uno::Any& rArg27, const uno::Any& rArg28, const uno::Any& rArg29, const uno::Any& rArg30 )
+ throw (script::BasicErrorException, uno::RuntimeException)
+{
+ if( !rArg1.is() || !rArg2.is() )
+ DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() );
+
+ ListOfScRange aList;
+ lclAddToListOfScRange( aList, uno::Any( rArg1 ) );
+ lclAddToListOfScRange( aList, uno::Any( rArg2 ) );
+ lclAddToListOfScRange( aList, rArg3 );
+ lclAddToListOfScRange( aList, rArg4 );
+ lclAddToListOfScRange( aList, rArg5 );
+ lclAddToListOfScRange( aList, rArg6 );
+ lclAddToListOfScRange( aList, rArg7 );
+ lclAddToListOfScRange( aList, rArg8 );
+ lclAddToListOfScRange( aList, rArg9 );
+ lclAddToListOfScRange( aList, rArg10 );
+ lclAddToListOfScRange( aList, rArg11 );
+ lclAddToListOfScRange( aList, rArg12 );
+ lclAddToListOfScRange( aList, rArg13 );
+ lclAddToListOfScRange( aList, rArg14 );
+ lclAddToListOfScRange( aList, rArg15 );
+ lclAddToListOfScRange( aList, rArg16 );
+ lclAddToListOfScRange( aList, rArg17 );
+ lclAddToListOfScRange( aList, rArg18 );
+ lclAddToListOfScRange( aList, rArg19 );
+ lclAddToListOfScRange( aList, rArg20 );
+ lclAddToListOfScRange( aList, rArg21 );
+ lclAddToListOfScRange( aList, rArg22 );
+ lclAddToListOfScRange( aList, rArg23 );
+ lclAddToListOfScRange( aList, rArg24 );
+ lclAddToListOfScRange( aList, rArg25 );
+ lclAddToListOfScRange( aList, rArg26 );
+ lclAddToListOfScRange( aList, rArg27 );
+ lclAddToListOfScRange( aList, rArg28 );
+ lclAddToListOfScRange( aList, rArg29 );
+ lclAddToListOfScRange( aList, rArg30 );
+
+ // simply join together all ranges as much as possible, strip out covered ranges etc.
+ lclJoinRanges( aList );
+
+ // create the VBA Range object
+ return lclCreateVbaRange( mxContext, getCurrentDocument(), aList );
}
void
diff --git a/sc/source/ui/vba/vbaapplication.hxx b/sc/source/ui/vba/vbaapplication.hxx
index 96638651bcd1..a7be5feb1d27 100644
--- a/sc/source/ui/vba/vbaapplication.hxx
+++ b/sc/source/ui/vba/vbaapplication.hxx
@@ -43,7 +43,9 @@ class ScVbaApplication : public ScVbaApplication_BASE
{
private:
sal_Int32 m_xCalculation;
- sal_Bool m_xDisplayAlerts;
+ sal_Bool m_bDisplayAlerts;
+ sal_Bool m_bEnableEvents;
+
rtl::OUString getOfficePath( const rtl::OUString& sPath ) throw ( css::uno::RuntimeException );
protected:
@@ -100,6 +102,9 @@ public:
virtual ::sal_Int32 SAL_CALL getCursor() throw (css::uno::RuntimeException);
virtual void SAL_CALL setCursor( ::sal_Int32 _cursor ) throw (css::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL getEnableEvents() throw (css::uno::RuntimeException);
+ virtual void SAL_CALL setEnableEvents( sal_Bool bEnable ) throw (css::uno::RuntimeException);
+
virtual css::uno::Any SAL_CALL Windows( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
virtual void SAL_CALL wait( double time ) throw (css::uno::RuntimeException);
virtual css::uno::Any SAL_CALL Range( const css::uno::Any& Cell1, const css::uno::Any& Cell2 ) throw (css::uno::RuntimeException);
diff --git a/sc/source/ui/vba/vbachartobjects.cxx b/sc/source/ui/vba/vbachartobjects.cxx
index 41b26501f4ad..5117cfd75858 100644
--- a/sc/source/ui/vba/vbachartobjects.cxx
+++ b/sc/source/ui/vba/vbachartobjects.cxx
@@ -47,16 +47,15 @@ using namespace ::ooo::vba;
class ChartObjectEnumerationImpl : public EnumerationHelperImpl
{
uno::Reference< drawing::XDrawPageSupplier > xDrawPageSupplier;
- uno::Reference< XHelperInterface > xParent;
public:
- ChartObjectEnumerationImpl( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration, const uno::Reference< drawing::XDrawPageSupplier >& _xDrawPageSupplier, const uno::Reference< XHelperInterface >& _xParent ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xContext, xEnumeration ), xDrawPageSupplier( _xDrawPageSupplier ), xParent( _xParent ) {}
+ ChartObjectEnumerationImpl( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration, const uno::Reference< drawing::XDrawPageSupplier >& _xDrawPageSupplier, const uno::Reference< XHelperInterface >& _xParent ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( _xParent, xContext, xEnumeration ), xDrawPageSupplier( _xDrawPageSupplier ) {}
virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
{
uno::Reference< table::XTableChart > xTableChart( m_xEnumeration->nextElement(), uno::UNO_QUERY_THROW );
// parent Object is sheet
- return uno::makeAny( uno::Reference< excel::XChartObject > ( new ScVbaChartObject( xParent, m_xContext, xTableChart, xDrawPageSupplier ) ) );
+ return uno::makeAny( uno::Reference< excel::XChartObject > ( new ScVbaChartObject( m_xParent, m_xContext, xTableChart, xDrawPageSupplier ) ) );
}
};
diff --git a/sc/source/ui/vba/vbacomments.cxx b/sc/source/ui/vba/vbacomments.cxx
index a68dd4245741..7a6d3d774937 100644
--- a/sc/source/ui/vba/vbacomments.cxx
+++ b/sc/source/ui/vba/vbacomments.cxx
@@ -50,10 +50,11 @@ class CommentEnumeration : public EnumerationHelperImpl
css::uno::Reference< css::frame::XModel > mxModel;
public:
CommentEnumeration(
+ const uno::Reference< XHelperInterface >& xParent,
const uno::Reference< uno::XComponentContext >& xContext,
const uno::Reference< container::XEnumeration >& xEnumeration,
const uno::Reference< frame::XModel >& xModel ) throw ( uno::RuntimeException ) :
- EnumerationHelperImpl( xContext, xEnumeration ),
+ EnumerationHelperImpl( xParent, xContext, xEnumeration ),
mxModel( xModel, uno::UNO_SET_THROW )
{}
@@ -80,8 +81,7 @@ uno::Reference< container::XEnumeration >
ScVbaComments::createEnumeration() throw (uno::RuntimeException)
{
uno::Reference< container::XEnumerationAccess > xEnumAccess( m_xIndexAccess, uno::UNO_QUERY_THROW );
-
- return new CommentEnumeration( mxContext, xEnumAccess->createEnumeration(), mxModel );
+ return new CommentEnumeration( mxParent, mxContext, xEnumAccess->createEnumeration(), mxModel );
}
uno::Any
diff --git a/sc/source/ui/vba/vbaeventshelper.cxx b/sc/source/ui/vba/vbaeventshelper.cxx
new file mode 100755
index 000000000000..45667adf2f2c
--- /dev/null
+++ b/sc/source/ui/vba/vbaeventshelper.cxx
@@ -0,0 +1,753 @@
+/*************************************************************************
+ *
+ * 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 "vbaeventshelper.hxx"
+
+#include <com/sun/star/awt/XWindowListener.hpp>
+#include <com/sun/star/frame/XBorderResizeListener.hpp>
+#include <com/sun/star/frame/XControllerBorder.hpp>
+#include <com/sun/star/script/vba/VBAEventId.hpp>
+#include <com/sun/star/sheet/XCellRangeAddressable.hpp>
+#include <com/sun/star/sheet/XSheetCellRangeContainer.hpp>
+#include <com/sun/star/table/XCellRange.hpp>
+#include <com/sun/star/util/XChangesListener.hpp>
+#include <com/sun/star/util/XChangesNotifier.hpp>
+#include <com/sun/star/util/XCloseListener.hpp>
+
+#include <ooo/vba/excel/XApplication.hpp>
+
+#include <cppuhelper/implbase4.hxx>
+#include <toolkit/unohlp.hxx>
+#include <vbahelper/helperdecl.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/window.hxx>
+
+#include "cellsuno.hxx"
+#include "convuno.hxx"
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::script::vba::VBAEventId;
+using namespace ::ooo::vba;
+
+// ============================================================================
+
+typedef ::cppu::WeakImplHelper4<
+ awt::XWindowListener, util::XCloseListener, frame::XBorderResizeListener, util::XChangesListener > ScVbaEventsListener_BASE;
+
+// This class is to process Workbook window related event
+class ScVbaEventsListener : public ScVbaEventsListener_BASE
+{
+public :
+ ScVbaEventsListener( ScVbaEventsHelper& rVbaEvents, const uno::Reference< frame::XModel >& rxModel, ScDocShell* pDocShell );
+ virtual ~ScVbaEventsListener();
+
+ void startListening();
+ void stopListening();
+
+ // XWindowListener
+ virtual void SAL_CALL windowResized( const awt::WindowEvent& aEvent ) throw (uno::RuntimeException);
+ virtual void SAL_CALL windowMoved( const awt::WindowEvent& aEvent ) throw (uno::RuntimeException);
+ virtual void SAL_CALL windowShown( const lang::EventObject& aEvent ) throw (uno::RuntimeException);
+ virtual void SAL_CALL windowHidden( const lang::EventObject& aEvent ) throw (uno::RuntimeException);
+ virtual void SAL_CALL disposing( const lang::EventObject& aEvent ) throw (uno::RuntimeException);
+
+ // XCloseListener
+ virtual void SAL_CALL queryClosing( const lang::EventObject& Source, ::sal_Bool GetsOwnership ) throw (util::CloseVetoException, uno::RuntimeException);
+ virtual void SAL_CALL notifyClosing( const lang::EventObject& Source ) throw (uno::RuntimeException);
+
+ // XBorderResizeListener
+ virtual void SAL_CALL borderWidthsChanged( const uno::Reference< uno::XInterface >& aObject, const frame::BorderWidths& aNewSize ) throw (uno::RuntimeException);
+
+ // XChangesListener
+ virtual void SAL_CALL changesOccurred( const util::ChangesEvent& aEvent ) throw (uno::RuntimeException);
+
+private:
+ uno::Reference< frame::XFrame > getFrame();
+ uno::Reference< awt::XWindow > getContainerWindow();
+ bool isMouseReleased();
+ DECL_LINK( fireResizeMacro, void* );
+ void processWindowResizeMacro();
+
+private:
+ ::osl::Mutex maMutex;
+ ScVbaEventsHelper& mrVbaEvents;
+ uno::Reference< frame::XModel > mxModel;
+ ScDocShell* mpDocShell;
+ bool mbWindowResized;
+ bool mbBorderChanged;
+ bool mbDisposed;
+};
+
+// ----------------------------------------------------------------------------
+
+ScVbaEventsListener::ScVbaEventsListener( ScVbaEventsHelper& rVbaEvents, const uno::Reference< frame::XModel >& rxModel, ScDocShell* pDocShell ) :
+ mrVbaEvents( rVbaEvents ),
+ mxModel( rxModel ),
+ mpDocShell( pDocShell ),
+ mbWindowResized( false ),
+ mbBorderChanged( false ),
+ mbDisposed( !rxModel.is() )
+{
+ OSL_TRACE( "ScVbaEventsListener::ScVbaEventsListener( 0x%x ) - ctor ", this );
+}
+
+ScVbaEventsListener::~ScVbaEventsListener()
+{
+ OSL_TRACE( "ScVbaEventsListener::~ScVbaEventsListener( 0x%x ) - dtor ", this );
+ stopListening();
+}
+
+void ScVbaEventsListener::startListening()
+{
+ if( !mbDisposed )
+ {
+ // add window listener
+ try
+ {
+ uno::Reference< awt::XWindow > xWindow( getContainerWindow(), uno::UNO_QUERY_THROW );
+ xWindow->addWindowListener( this );
+ }
+ catch( uno::Exception& )
+ {
+ }
+ // add close listener
+ try
+ {
+ uno::Reference< util::XCloseBroadcaster > xCloseBroadcaster( mxModel, uno::UNO_QUERY_THROW );
+ xCloseBroadcaster->addCloseListener( this );
+ }
+ catch( uno::Exception& )
+ {
+ }
+ // add Border resize listener
+ try
+ {
+ uno::Reference< frame::XControllerBorder > xControllerBorder( mxModel->getCurrentController(), uno::UNO_QUERY_THROW );
+ xControllerBorder->addBorderResizeListener( this );
+ }
+ catch( uno::Exception& )
+ {
+ }
+ // add content change listener
+ try
+ {
+ uno::Reference< util::XChangesNotifier > xChangesNotifier( mxModel, uno::UNO_QUERY_THROW );
+ xChangesNotifier->addChangesListener( this );
+ }
+ catch( uno::Exception& )
+ {
+ }
+ }
+}
+
+void ScVbaEventsListener::stopListening()
+{
+ if( !mbDisposed )
+ {
+ try
+ {
+ uno::Reference< awt::XWindow > xWindow( getContainerWindow(), uno::UNO_QUERY_THROW );
+ xWindow->removeWindowListener( this );
+ }
+ catch( uno::Exception& )
+ {
+ }
+ try
+ {
+ uno::Reference< util::XCloseBroadcaster > xCloseBroadcaster( mxModel, uno::UNO_QUERY_THROW );
+ xCloseBroadcaster->removeCloseListener( this );
+ }
+ catch( uno::Exception& )
+ {
+ }
+ try
+ {
+ uno::Reference< frame::XControllerBorder > xControllerBorder( mxModel->getCurrentController(), uno::UNO_QUERY_THROW );
+ xControllerBorder->removeBorderResizeListener( this );
+ }
+ catch( uno::Exception& )
+ {
+ }
+ try
+ {
+ uno::Reference< util::XChangesNotifier > xChangesNotifier( mxModel, uno::UNO_QUERY_THROW );
+ xChangesNotifier->removeChangesListener( this );
+ }
+ catch( uno::Exception& )
+ {
+ }
+ }
+ mbDisposed = true;
+}
+
+void SAL_CALL ScVbaEventsListener::windowResized( const awt::WindowEvent& /*aEvent*/ ) throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( maMutex );
+ // Workbook_window_resize event
+ mbWindowResized = true;
+ if( !mbDisposed && mbBorderChanged )
+ {
+ if( /*Window* pWindow =*/ VCLUnoHelper::GetWindow( getContainerWindow() ) )
+ {
+ mbBorderChanged = mbWindowResized = false;
+ acquire(); // ensure we don't get deleted before the event is handled
+ Application::PostUserEvent( LINK( this, ScVbaEventsListener, fireResizeMacro ), 0 );
+ }
+ }
+}
+
+void SAL_CALL ScVbaEventsListener::windowMoved( const awt::WindowEvent& /*aEvent*/ ) throw ( uno::RuntimeException )
+{
+ // not interest this time
+}
+
+void SAL_CALL ScVbaEventsListener::windowShown( const lang::EventObject& /*aEvent*/ ) throw ( uno::RuntimeException )
+{
+ // not interest this time
+}
+
+void SAL_CALL ScVbaEventsListener::windowHidden( const lang::EventObject& /*aEvent*/ ) throw ( uno::RuntimeException )
+{
+ // not interest this time
+}
+
+void SAL_CALL ScVbaEventsListener::disposing( const lang::EventObject& /*aEvent*/ ) throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( maMutex );
+ OSL_TRACE( "ScVbaEventsListener::disposing( 0x%x )", this );
+ mbDisposed = true;
+}
+
+void SAL_CALL ScVbaEventsListener::queryClosing( const lang::EventObject& /*Source*/, sal_Bool /*GetsOwnership*/ ) throw (util::CloseVetoException, uno::RuntimeException)
+{
+ // it can cancel the close, but need to throw a CloseVetoException, and it will be transmit to caller.
+}
+
+void SAL_CALL ScVbaEventsListener::notifyClosing( const lang::EventObject& /*Source*/ ) throw (uno::RuntimeException)
+{
+ ::osl::MutexGuard aGuard( maMutex );
+ stopListening();
+}
+
+void SAL_CALL ScVbaEventsListener::borderWidthsChanged( const uno::Reference< uno::XInterface >& /*aObject*/, const frame::BorderWidths& /*aNewSize*/ ) throw (uno::RuntimeException)
+{
+ ::osl::MutexGuard aGuard( maMutex );
+ // work with WindowResized event to guard Window Resize event.
+ mbBorderChanged = true;
+ if( !mbDisposed && mbWindowResized )
+ {
+ if( /*Window* pWindow =*/ VCLUnoHelper::GetWindow( getContainerWindow() ) )
+ {
+ mbWindowResized = mbBorderChanged = false;
+ acquire(); // ensure we don't get deleted before the timer fires.
+ Application::PostUserEvent( LINK( this, ScVbaEventsListener, fireResizeMacro ), 0 );
+ }
+ }
+}
+
+void SAL_CALL ScVbaEventsListener::changesOccurred( const util::ChangesEvent& aEvent ) throw (uno::RuntimeException)
+{
+ sal_Int32 nCount = aEvent.Changes.getLength();
+ if( nCount == 0 )
+ return;
+
+ util::ElementChange aChange = aEvent.Changes[ 0 ];
+ rtl::OUString sOperation;
+ aChange.Accessor >>= sOperation;
+ if( !sOperation.equalsIgnoreAsciiCaseAscii("cell-change") )
+ return;
+
+ if( nCount == 1 )
+ {
+ uno::Reference< table::XCellRange > xRangeObj;
+ aChange.ReplacedElement >>= xRangeObj;
+ if( xRangeObj.is() )
+ {
+ uno::Sequence< uno::Any > aArgs(1);
+ aArgs[0] <<= xRangeObj;
+ mrVbaEvents.processVbaEvent( WORKSHEET_CHANGE, aArgs );
+ }
+ return;
+ }
+
+ ScRangeList aRangeList;
+ for( sal_Int32 nIndex = 0; nIndex < nCount; ++nIndex )
+ {
+ aChange = aEvent.Changes[ nIndex ];
+ aChange.Accessor >>= sOperation;
+ uno::Reference< table::XCellRange > xRangeObj;
+ aChange.ReplacedElement >>= xRangeObj;
+ if( xRangeObj.is() && sOperation.equalsIgnoreAsciiCaseAscii("cell-change") )
+ {
+ uno::Reference< sheet::XCellRangeAddressable > xCellRangeAddressable( xRangeObj, uno::UNO_QUERY );
+ if( xCellRangeAddressable.is() )
+ {
+ ScRange aRange;
+ ScUnoConversion::FillScRange( aRange, xCellRangeAddressable->getRangeAddress() );
+ aRangeList.Append( aRange );
+ }
+ }
+ }
+
+ if( (aRangeList.Count() > 0) && mpDocShell )
+ {
+ uno::Reference< sheet::XSheetCellRangeContainer > xRanges( new ScCellRangesObj( mpDocShell, aRangeList ) );
+ uno::Sequence< uno::Any > aArgs(1);
+ aArgs[0] <<= xRanges;
+ mrVbaEvents.processVbaEvent( WORKSHEET_CHANGE, aArgs );
+ }
+}
+
+// ----------------------------------------------------------------------------
+
+uno::Reference< frame::XFrame > ScVbaEventsListener::getFrame()
+{
+ if( !mbDisposed && mxModel.is() ) try
+ {
+ uno::Reference< frame::XController > xController( mxModel->getCurrentController(), uno::UNO_QUERY_THROW );
+ return xController->getFrame();
+ }
+ catch( uno::Exception& )
+ {
+ }
+ return uno::Reference< frame::XFrame >();
+}
+
+uno::Reference< awt::XWindow > ScVbaEventsListener::getContainerWindow()
+{
+ try
+ {
+ uno::Reference< frame::XFrame > xFrame( getFrame(), uno::UNO_SET_THROW );
+ return xFrame->getContainerWindow();
+ }
+ catch( uno::Exception& )
+ {
+ }
+ return uno::Reference< awt::XWindow >();
+}
+
+bool ScVbaEventsListener::isMouseReleased()
+{
+ if( Window* pWindow = VCLUnoHelper::GetWindow( getContainerWindow() ) )
+ {
+ Window::PointerState aPointerState = pWindow->GetPointerState();
+ return (aPointerState.mnState & ( MOUSE_LEFT | MOUSE_MIDDLE | MOUSE_RIGHT )) == 0;
+ }
+ return false;
+}
+
+IMPL_LINK( ScVbaEventsListener, fireResizeMacro, void*, EMPTYARG )
+{
+ if( !mbDisposed && isMouseReleased() )
+ processWindowResizeMacro();
+ release();
+ return 0;
+}
+
+void ScVbaEventsListener::processWindowResizeMacro()
+{
+ OSL_TRACE( "**** Attempt to FIRE MACRO **** " );
+ if( !mbDisposed )
+ mrVbaEvents.processVbaEvent( WORKBOOK_WINDOWRESIZE, uno::Sequence< uno::Any >() );
+}
+
+// ============================================================================
+
+ScVbaEventsHelper::ScVbaEventsHelper( const uno::Sequence< uno::Any >& rArgs, const uno::Reference< uno::XComponentContext >& xContext ) :
+ VbaEventsHelperBase( rArgs, xContext ),
+ mbOpened( false )
+{
+ mpDocShell = dynamic_cast< ScDocShell* >( mpShell ); // mpShell from base class
+ mpDoc = mpDocShell ? mpDocShell->GetDocument() : 0;
+
+ if( !mxModel.is() || !mpDocShell || !mpDoc )
+ return;
+
+#define REGISTER_EVENT( eventid, eventname, type, cancelindex, worksheet ) \
+ registerEventHandler( eventid, eventname, type, cancelindex, uno::Any( worksheet ) )
+
+#define REGISTER_WORKBOOK_EVENT( eventid, eventname, cancelindex ) \
+ REGISTER_EVENT( WORKBOOK_##eventid, "Workbook_" eventname, EVENTHANDLER_DOCUMENT, cancelindex, false )
+
+#define REGISTER_WORKSHEET_EVENT( eventid, eventname, cancelindex ) \
+ REGISTER_EVENT( WORKSHEET_##eventid, "Worksheet_" eventname, EVENTHANDLER_DOCUMENT, cancelindex, true ); \
+ REGISTER_EVENT( (USERDEFINED_START + WORKSHEET_##eventid), "Workbook_Sheet" eventname, EVENTHANDLER_DOCUMENT, (((cancelindex) >= 0) ? ((cancelindex) + 1) : -1), false )
+
+ // global
+ REGISTER_EVENT( AUTO_OPEN, "Auto_Open", EVENTHANDLER_GLOBAL, -1, false );
+ REGISTER_EVENT( AUTO_CLOSE, "Auto_Close", EVENTHANDLER_GLOBAL, -1, false );
+
+ // Workbook
+ REGISTER_WORKBOOK_EVENT( ACTIVATE, "Activate", -1 );
+ REGISTER_WORKBOOK_EVENT( DEACTIVATE, "Deactivate", -1 );
+ REGISTER_WORKBOOK_EVENT( OPEN, "Open", -1 );
+ REGISTER_WORKBOOK_EVENT( BEFORECLOSE, "BeforeClose", 0 );
+ REGISTER_WORKBOOK_EVENT( BEFOREPRINT, "BeforePrint", 0 );
+ REGISTER_WORKBOOK_EVENT( BEFORESAVE, "BeforeSave", 1 );
+ REGISTER_WORKBOOK_EVENT( AFTERSAVE, "AfterSave", -1 );
+ REGISTER_WORKBOOK_EVENT( NEWSHEET, "NewSheet", -1 );
+ REGISTER_WORKBOOK_EVENT( WINDOWACTIVATE, "WindowActivate", -1 );
+ REGISTER_WORKBOOK_EVENT( WINDOWDEACTIVATE, "WindowDeactivate", -1 );
+ REGISTER_WORKBOOK_EVENT( WINDOWRESIZE, "WindowResize", -1 );
+
+ // Worksheet events. All events have a corresponding workbook event.
+ REGISTER_WORKSHEET_EVENT( ACTIVATE, "Activate", -1 );
+ REGISTER_WORKSHEET_EVENT( DEACTIVATE, "Deactivate", -1 );
+ REGISTER_WORKSHEET_EVENT( BEFOREDOUBLECLICK, "BeforeDoubleClick", 1 );
+ REGISTER_WORKSHEET_EVENT( BEFORERIGHTCLICK, "BeforeRightClick", 1 );
+ REGISTER_WORKSHEET_EVENT( CALCULATE, "Calculate", -1 );
+ REGISTER_WORKSHEET_EVENT( CHANGE, "Change", -1 );
+ REGISTER_WORKSHEET_EVENT( SELECTIONCHANGE, "SelectionChange", -1 );
+ REGISTER_WORKSHEET_EVENT( FOLLOWHYPERLINK, "FollowHyperlink", -1 );
+
+#undef REGISTER_EVENT
+#undef REGISTER_WORKBOOK_EVENT
+#undef REGISTER_WORKSHEET_EVENT
+}
+
+ScVbaEventsHelper::~ScVbaEventsHelper()
+{
+}
+
+void SAL_CALL ScVbaEventsHelper::disposing( const lang::EventObject& rSource ) throw (uno::RuntimeException)
+{
+ mxListener.clear();
+ VbaEventsHelperBase::disposing( rSource );
+}
+
+// protected ------------------------------------------------------------------
+
+bool ScVbaEventsHelper::implEventsEnabled() throw (uno::RuntimeException)
+{
+ // document and document shell are needed during event processing
+ if( !mpDocShell || !mpDoc )
+ throw uno::RuntimeException();
+
+ // get Application object and check if events are enabled (this is an Excel-only attribute)
+ uno::Reference< excel::XApplication > xApplication( mxApplication.get(), uno::UNO_QUERY );
+ if( !xApplication.is() && mpShell )
+ {
+ uno::Any aVBAGlobals;
+ mpShell->GetBasicManager()->GetGlobalUNOConstant( "VBAGlobals", aVBAGlobals );
+ uno::Reference< XHelperInterface > xHelperInterface( aVBAGlobals, uno::UNO_QUERY );
+ if( xHelperInterface.is() )
+ {
+ xApplication.set( xHelperInterface->Application(), uno::UNO_QUERY );
+ mxApplication = xApplication;
+ }
+ }
+ if( !xApplication.is() )
+ throw uno::RuntimeException();
+
+ // return whether event processing is enabled
+ return xApplication->getEnableEvents();
+}
+
+bool ScVbaEventsHelper::implPrepareEvent( EventQueue& rEventQueue,
+ const EventHandlerInfo& rInfo, const uno::Sequence< uno::Any >& rArgs ) throw (uno::RuntimeException)
+{
+ // check preconditions for some events, add more events if needed
+ bool bExecuteEvent = true;
+ switch( rInfo.mnEventId )
+ {
+ case WORKBOOK_ACTIVATE:
+ // while loading, framework fires this before 'opened' event, delay it
+ bExecuteEvent = mbOpened;
+ break;
+ case WORKBOOK_OPEN:
+ bExecuteEvent = !mbOpened;
+ if( bExecuteEvent )
+ {
+ // execute delayed Activate event too (see above)
+ rEventQueue.push_back( WORKBOOK_ACTIVATE );
+ rEventQueue.push_back( WORKBOOK_WINDOWACTIVATE );
+ rEventQueue.push_back( AUTO_OPEN );
+ }
+ break;
+ case WORKSHEET_SELECTIONCHANGE:
+ // if selection is not changed, then do not fire the event
+ bExecuteEvent = mbOpened && isSelectionChanged( rArgs, 0 );
+ break;
+ }
+
+ // add workbook event associated to a sheet event
+ bool bSheetEvent = false;
+ rInfo.maUserData >>= bSheetEvent;
+ if( bSheetEvent && bExecuteEvent )
+ rEventQueue.push_back( EventQueueEntry( rInfo.mnEventId + USERDEFINED_START, rArgs ) );
+
+ return bExecuteEvent;
+}
+
+uno::Sequence< uno::Any > ScVbaEventsHelper::implBuildArgumentList( const EventHandlerInfo& rInfo,
+ const uno::Sequence< uno::Any >& rArgs ) throw (lang::IllegalArgumentException)
+{
+ // fill arguments for workbook events associated to sheet events according to sheet events, sheet will be added below
+ bool bSheetEventAsBookEvent = rInfo.mnEventId > USERDEFINED_START;
+ sal_Int32 nEventId = bSheetEventAsBookEvent ? (rInfo.mnEventId - USERDEFINED_START) : rInfo.mnEventId;
+
+ uno::Sequence< uno::Any > aVbaArgs;
+ switch( nEventId )
+ {
+ // *** Workbook ***
+
+ // no arguments
+ case WORKBOOK_ACTIVATE:
+ case WORKBOOK_DEACTIVATE:
+ case WORKBOOK_OPEN:
+ break;
+ // 1 arg: cancel
+ case WORKBOOK_BEFORECLOSE:
+ case WORKBOOK_BEFOREPRINT:
+ aVbaArgs.realloc( 1 );
+ // current cancel state will be inserted by caller
+ break;
+ // 2 args: saveAs, cancel
+ case WORKBOOK_BEFORESAVE:
+ aVbaArgs.realloc( 2 );
+ checkArgumentType< bool >( rArgs, 0 );
+ aVbaArgs[ 0 ] = rArgs[ 0 ];
+ // current cancel state will be inserted by caller
+ break;
+ // 1 arg: success
+ case WORKBOOK_AFTERSAVE:
+ aVbaArgs.realloc( 1 );
+ checkArgumentType< bool >( rArgs, 0 );
+ aVbaArgs[ 0 ] = rArgs[ 0 ];
+ break;
+ // 1 arg: window
+ case WORKBOOK_WINDOWACTIVATE:
+ case WORKBOOK_WINDOWDEACTIVATE:
+ case WORKBOOK_WINDOWRESIZE:
+ aVbaArgs.realloc( 1 );
+ aVbaArgs[ 0 ] = createWindow();
+ break;
+ // 1 arg: worksheet
+ case WORKBOOK_NEWSHEET:
+ aVbaArgs.realloc( 1 );
+ aVbaArgs[ 0 ] = createWorksheet( rArgs, 0 );
+ break;
+
+ // *** Worksheet ***
+
+ // no arguments
+ case WORKSHEET_ACTIVATE:
+ case WORKSHEET_CALCULATE:
+ case WORKSHEET_DEACTIVATE:
+ break;
+ // 1 arg: range
+ case WORKSHEET_CHANGE:
+ case WORKSHEET_SELECTIONCHANGE:
+ aVbaArgs.realloc( 1 );
+ aVbaArgs[ 0 ] = createRange( rArgs, 0 );
+ break;
+ // 2 args: range, cancel
+ case WORKSHEET_BEFOREDOUBLECLICK:
+ case WORKSHEET_BEFORERIGHTCLICK:
+ aVbaArgs.realloc( 2 );
+ aVbaArgs[ 0 ] = createRange( rArgs, 0 );
+ // current cancel state will be inserted by caller
+ break;
+ // 1 arg: hyperlink
+ case WORKSHEET_FOLLOWHYPERLINK:
+ aVbaArgs.realloc( 1 );
+ aVbaArgs[ 0 ] = createHyperlink( rArgs, 0 );
+ break;
+ }
+
+ /* For workbook events associated to sheet events, the workbook event gets
+ the same arguments but with a Worksheet object in front of them. */
+ if( bSheetEventAsBookEvent )
+ {
+ sal_Int32 nLength = aVbaArgs.getLength();
+ uno::Sequence< uno::Any > aVbaArgs2( nLength + 1 );
+ aVbaArgs2[ 0 ] = createWorksheet( rArgs, 0 );
+ for( sal_Int32 nIndex = 0; nIndex < nLength; ++nIndex )
+ aVbaArgs2[ nIndex + 1 ] = aVbaArgs[ nIndex ];
+ aVbaArgs = aVbaArgs2;
+ }
+
+ return aVbaArgs;
+}
+
+void ScVbaEventsHelper::implPostProcessEvent( EventQueue& rEventQueue,
+ const EventHandlerInfo& rInfo, bool /*bSuccess*/, bool bCancel ) throw (uno::RuntimeException)
+{
+ switch( rInfo.mnEventId )
+ {
+ case WORKBOOK_OPEN:
+ mbOpened = true;
+ // register the listeners
+ if( !mxListener.is() )
+ {
+ mxListener = new ScVbaEventsListener( *this, mxModel, mpDocShell );
+ mxListener->startListening();
+ }
+ break;
+ case WORKBOOK_BEFORECLOSE:
+ /* Execute Auto_Close only if not cancelled by event handler, but
+ before UI asks user whether to cancel closing the document. */
+ if( !bCancel )
+ rEventQueue.push_back( AUTO_CLOSE );
+ break;
+ }
+}
+
+::rtl::OUString ScVbaEventsHelper::implGetDocumentModuleName( const EventHandlerInfo& rInfo,
+ const uno::Sequence< uno::Any >& rArgs ) const throw (lang::IllegalArgumentException)
+{
+ bool bSheetEvent = false;
+ rInfo.maUserData >>= bSheetEvent;
+ SCTAB nTab = bSheetEvent ? getTabFromArgs( rArgs, 0 ) : -1;
+ if( bSheetEvent && (nTab < 0) )
+ throw lang::IllegalArgumentException();
+
+ String aCodeName;
+ if( bSheetEvent )
+ mpDoc->GetCodeName( nTab, aCodeName );
+ else
+ aCodeName = mpDoc->GetCodeName();
+ return aCodeName;
+}
+
+// private --------------------------------------------------------------------
+
+SCTAB ScVbaEventsHelper::getTabFromArgs( const uno::Sequence< uno::Any >& rArgs, sal_Int32 nIndex ) throw (lang::IllegalArgumentException)
+{
+ checkArgument( rArgs, nIndex );
+
+ // first try to extract a sheet index
+ SCTAB nTab = -1;
+ if( rArgs[ nIndex ] >>= nTab )
+ return nTab;
+
+ // next, try single range object
+ uno::Reference< sheet::XCellRangeAddressable > xCellRangeAddressable = getXSomethingFromArgs< sheet::XCellRangeAddressable >( rArgs, nIndex );
+ if( xCellRangeAddressable.is() )
+ return xCellRangeAddressable->getRangeAddress().Sheet;
+
+ // at last, try range list
+ uno::Reference< sheet::XSheetCellRangeContainer > xRanges = getXSomethingFromArgs< sheet::XSheetCellRangeContainer >( rArgs, nIndex );
+ if( xRanges.is() )
+ {
+ uno::Sequence< table::CellRangeAddress > aRangeAddresses = xRanges->getRangeAddresses();
+ if( aRangeAddresses.getLength() > 0 )
+ return aRangeAddresses[ 0 ].Sheet;
+ }
+
+ throw lang::IllegalArgumentException();
+}
+
+bool ScVbaEventsHelper::isSelectionChanged( const uno::Sequence< uno::Any >& rArgs, sal_Int32 nIndex ) throw (lang::IllegalArgumentException, uno::RuntimeException)
+{
+ uno::Reference< uno::XInterface > xNewSelection = getXSomethingFromArgs< uno::XInterface >( rArgs, nIndex, false );
+ if( ScCellRangesBase* pNewCellRanges = ScCellRangesBase::getImplementation( xNewSelection ) )
+ {
+ bool bChanged = maOldSelection != pNewCellRanges->GetRangeList();
+ maOldSelection = pNewCellRanges->GetRangeList();
+ return bChanged;
+ }
+ maOldSelection.Clear();
+ return true;
+}
+
+uno::Any ScVbaEventsHelper::createWorksheet( const uno::Sequence< uno::Any >& rArgs, sal_Int32 nIndex ) const
+ throw (lang::IllegalArgumentException, uno::RuntimeException)
+{
+ // Eventually we will be able to pull the Workbook/Worksheet objects
+ // directly from basic and register them as listeners
+
+ // extract sheet index, will throw, if parameter is invalid
+ SCTAB nTab = getTabFromArgs( rArgs, nIndex );
+
+ // create Workbook
+ uno::Sequence< uno::Any > aArgs( 2 );
+ aArgs[ 0 ] <<= uno::Reference< uno::XInterface >();
+ aArgs[ 1 ] <<= mxModel;
+ uno::Reference< uno::XInterface > xWorkbook( createVBAUnoAPIServiceWithArgs( mpShell, "ooo.vba.excel.Workbook", aArgs ), uno::UNO_SET_THROW );
+
+ // create WorkSheet
+ String aSheetName;
+ mpDoc->GetName( nTab, aSheetName );
+ aArgs = uno::Sequence< uno::Any >( 3 );
+ aArgs[ 0 ] <<= xWorkbook;
+ aArgs[ 1 ] <<= mxModel;
+ aArgs[ 2 ] <<= ::rtl::OUString( aSheetName );
+ uno::Reference< uno::XInterface > xWorksheet( createVBAUnoAPIServiceWithArgs( mpShell, "ooo.vba.excel.Worksheet", aArgs ), uno::UNO_SET_THROW );
+ return uno::Any( xWorksheet );
+}
+
+uno::Any ScVbaEventsHelper::createRange( const uno::Sequence< uno::Any >& rArgs, sal_Int32 nIndex ) const
+ throw (lang::IllegalArgumentException, uno::RuntimeException)
+{
+ uno::Reference< sheet::XSheetCellRangeContainer > xRanges = getXSomethingFromArgs< sheet::XSheetCellRangeContainer >( rArgs, nIndex );
+ uno::Reference< table::XCellRange > xRange = getXSomethingFromArgs< table::XCellRange >( rArgs, nIndex );
+ if ( !xRanges.is() && !xRange.is() )
+ throw lang::IllegalArgumentException();
+
+ uno::Sequence< uno::Any > aArgs( 2 );
+ aArgs[ 0 ] <<= uno::Reference< uno::XInterface >(); // dummy parent
+ if ( xRanges.is() )
+ aArgs[ 1 ] <<= xRanges;
+ else
+ aArgs[ 1 ] <<= xRange;
+ uno::Reference< uno::XInterface > xVbaRange( createVBAUnoAPIServiceWithArgs( mpShell, "ooo.vba.excel.Range", aArgs ), uno::UNO_SET_THROW );
+ return uno::Any( xVbaRange );
+}
+
+uno::Any ScVbaEventsHelper::createHyperlink( const uno::Sequence< uno::Any >& rArgs, sal_Int32 nIndex ) const
+ throw (lang::IllegalArgumentException, uno::RuntimeException)
+{
+ uno::Sequence< uno::Any > aArgs( 2 );
+ aArgs[ 0 ] <<= uno::Reference< uno::XInterface >(); // dummy parent
+ aArgs[ 1 ] <<= getXSomethingFromArgs< table::XCell >( rArgs, nIndex, false );
+ uno::Reference< uno::XInterface > xHyperlink( createVBAUnoAPIServiceWithArgs( mpShell, "ooo.vba.excel.Hyperlink", aArgs ), uno::UNO_SET_THROW );
+ return uno::Any( xHyperlink );
+}
+
+uno::Any ScVbaEventsHelper::createWindow() const throw (uno::RuntimeException)
+{
+ uno::Sequence< uno::Any > aArgs( 2 );
+ aArgs[ 0 ] <<= createVBAUnoAPIService( mpShell, "ooo.vba.Application" );
+ aArgs[ 1 ] <<= mxModel;
+ uno::Reference< uno::XInterface > xWindow( createVBAUnoAPIServiceWithArgs( mpShell, "ooo.vba.excel.Window", aArgs ), uno::UNO_SET_THROW );
+ return uno::Any( xWindow );
+}
+
+// ============================================================================
+
+namespace vbaeventshelper
+{
+namespace sdecl = comphelper::service_decl;
+sdecl::class_<ScVbaEventsHelper, sdecl::with_args<true> > serviceImpl;
+extern sdecl::ServiceDecl const serviceDecl(
+ serviceImpl,
+ "ScVbaEventsHelper",
+ "com.sun.star.script.vba.VBASpreadsheetEventProcessor" );
+}
+
+// ============================================================================
diff --git a/sc/source/ui/vba/vbaeventshelper.hxx b/sc/source/ui/vba/vbaeventshelper.hxx
new file mode 100755
index 000000000000..a77f5128b3e9
--- /dev/null
+++ b/sc/source/ui/vba/vbaeventshelper.hxx
@@ -0,0 +1,88 @@
+/*************************************************************************
+ *
+ * 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 SC_VBAEVENTS_HXX
+#define SC_VBAEVENTS_HXX
+
+#include <rtl/ref.hxx>
+#include <vbahelper/vbaeventshelperbase.hxx>
+#include "excelvbahelper.hxx"
+#include "rangelst.hxx"
+
+namespace ooo { namespace vba { namespace excel { class XApplication; } } }
+
+class ScVbaEventsListener;
+
+// ============================================================================
+
+class ScVbaEventsHelper : public VbaEventsHelperBase
+{
+public:
+ ScVbaEventsHelper(
+ const css::uno::Sequence< css::uno::Any >& rArgs,
+ const css::uno::Reference< css::uno::XComponentContext >& rxContext );
+ virtual ~ScVbaEventsHelper();
+
+ // XEventListener
+ virtual void SAL_CALL disposing( const css::lang::EventObject& rSource ) throw (css::uno::RuntimeException);
+
+protected:
+ virtual bool implEventsEnabled() throw (css::uno::RuntimeException);
+ virtual bool implPrepareEvent( EventQueue& rEventQueue, const EventHandlerInfo& rInfo, const css::uno::Sequence< css::uno::Any >& rArgs ) throw (css::uno::RuntimeException);
+ virtual css::uno::Sequence< css::uno::Any > implBuildArgumentList( const EventHandlerInfo& rInfo, const css::uno::Sequence< css::uno::Any >& rArgs ) throw (css::lang::IllegalArgumentException);
+ virtual void implPostProcessEvent( EventQueue& rEventQueue, const EventHandlerInfo& rInfo, bool bSuccess, bool bCancel ) throw (css::uno::RuntimeException);
+ virtual ::rtl::OUString implGetDocumentModuleName( const EventHandlerInfo& rInfo, const css::uno::Sequence< css::uno::Any >& rArgs ) const throw (css::lang::IllegalArgumentException);
+
+private:
+ /** Extracts a sheet index from the first element of the passed sequence. The
+ element may be an integer, or a Calc range or ranges object. */
+ static SCTAB getTabFromArgs( const css::uno::Sequence< css::uno::Any >& rArgs, sal_Int32 nIndex ) throw (css::lang::IllegalArgumentException);
+ /** Checks if selection has been changed compared to selection of last call.
+ @return true, if the selection has been changed. */
+ bool isSelectionChanged( const css::uno::Sequence< css::uno::Any >& rArgs, sal_Int32 nIndex ) throw (css::lang::IllegalArgumentException, css::uno::RuntimeException);
+
+ /** Creates a VBA Worksheet object (the argument must contain a sheet index). */
+ css::uno::Any createWorksheet( const css::uno::Sequence< css::uno::Any >& rArgs, sal_Int32 nIndex ) const throw (css::lang::IllegalArgumentException, css::uno::RuntimeException);
+ /** Creates a VBA Range object (the argument must contain a UNO range or UNO range list). */
+ css::uno::Any createRange( const css::uno::Sequence< css::uno::Any >& rArgs, sal_Int32 nIndex ) const throw (css::lang::IllegalArgumentException, css::uno::RuntimeException);
+ /** Creates a VBA Hyperlink object (the argument must contain a UNO cell). */
+ css::uno::Any createHyperlink( const css::uno::Sequence< css::uno::Any >& rArgs, sal_Int32 nIndex ) const throw (css::lang::IllegalArgumentException, css::uno::RuntimeException);
+ /** Creates a VBA Window object. */
+ css::uno::Any createWindow() const throw (css::uno::RuntimeException);
+
+private:
+ mutable css::uno::WeakReference< ov::excel::XApplication > mxApplication;
+ ::rtl::Reference< ScVbaEventsListener > mxListener;
+ ScDocShell* mpDocShell;
+ ScDocument* mpDoc;
+ ScRangeList maOldSelection;
+ bool mbOpened;
+};
+
+// ============================================================================
+
+#endif
diff --git a/sc/source/ui/vba/vbaformatconditions.cxx b/sc/source/ui/vba/vbaformatconditions.cxx
index 91d0429326dd..8dd67843ec00 100644
--- a/sc/source/ui/vba/vbaformatconditions.cxx
+++ b/sc/source/ui/vba/vbaformatconditions.cxx
@@ -45,11 +45,11 @@ static rtl::OUString FORMULA2( RTL_CONSTASCII_USTRINGPARAM("Formula2") );
static rtl::OUString STYLENAME( RTL_CONSTASCII_USTRINGPARAM("StyleName") );
static rtl::OUString sStyleNamePrefix( RTL_CONSTASCII_USTRINGPARAM("Excel_CondFormat") );
-ScVbaFormatConditions::ScVbaFormatConditions( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext > & xContext, const uno::Reference< sheet::XSheetConditionalEntries >& _xSheetConditionalEntries, const uno::Reference< frame::XModel >& xModel ) : ScVbaFormatConditions_BASE( xParent, xContext, uno::Reference< container::XIndexAccess >( _xSheetConditionalEntries, uno::UNO_QUERY_THROW ) ), mxSheetConditionalEntries( _xSheetConditionalEntries )
+ScVbaFormatConditions::ScVbaFormatConditions( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext > & xContext, const uno::Reference< sheet::XSheetConditionalEntries >& _xSheetConditionalEntries, const uno::Reference< frame::XModel >& /*xModel*/ ) : ScVbaFormatConditions_BASE( xParent, xContext, uno::Reference< container::XIndexAccess >( _xSheetConditionalEntries, uno::UNO_QUERY_THROW ) ), mxSheetConditionalEntries( _xSheetConditionalEntries )
{
mxRangeParent.set( xParent, uno::UNO_QUERY_THROW );
- uno::Reference< excel::XWorkbook > xWorkbook = new ScVbaWorkbook( uno::Reference< XHelperInterface >( Application(), uno::UNO_QUERY_THROW ), xContext, xModel );
- mxStyles.set( xWorkbook->Styles( uno::Any() ), uno::UNO_QUERY_THROW );
+ uno::Reference< excel::XApplication> xApp( Application(), uno::UNO_QUERY_THROW );
+ mxStyles.set( xApp->getThisWorkbook()->Styles( uno::Any() ), uno::UNO_QUERY_THROW );
uno::Reference< sheet::XCellRangeAddressable > xCellRange( mxRangeParent->getCellRange(), uno::UNO_QUERY_THROW );
mxParentRangePropertySet.set( xCellRange, uno::UNO_QUERY_THROW );
diff --git a/sc/source/ui/vba/vbaglobals.cxx b/sc/source/ui/vba/vbaglobals.cxx
index 0cddacafd194..c70a7f83726d 100644
--- a/sc/source/ui/vba/vbaglobals.cxx
+++ b/sc/source/ui/vba/vbaglobals.cxx
@@ -80,6 +80,15 @@ ScVbaGlobals::getApplication() throw (uno::RuntimeException)
return mxApplication;
}
+
+uno::Reference<excel::XApplication > SAL_CALL
+ScVbaGlobals::getExcel() throw (uno::RuntimeException)
+{
+ return getApplication();
+}
+
+
+
uno::Reference< excel::XWorkbook > SAL_CALL
ScVbaGlobals::getActiveWorkbook() throw (uno::RuntimeException)
{
@@ -219,6 +228,25 @@ ScVbaGlobals::Rows( const uno::Any& aIndex ) throw (uno::RuntimeException)
}
+
+uno::Any SAL_CALL
+ScVbaGlobals::getDebug() throw (uno::RuntimeException)
+{
+ try // return empty object on error
+ {
+ uno::Sequence< uno::Any > aArgs( 1 );
+ aArgs[ 0 ] <<= uno::Reference< XHelperInterface >( this );
+ uno::Reference< lang::XMultiComponentFactory > xServiceManager( mxContext->getServiceManager(), uno::UNO_SET_THROW );
+ uno::Reference< uno::XInterface > xVBADebug = xServiceManager->createInstanceWithArgumentsAndContext(
+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ooo.vba.Debug" ) ), aArgs, mxContext );
+ return uno::Any( xVBADebug );
+ }
+ catch( uno::Exception& )
+ {
+ }
+ return uno::Any();
+}
+
uno::Sequence< ::rtl::OUString > SAL_CALL
ScVbaGlobals::getAvailableServiceNames( ) throw (uno::RuntimeException)
{
@@ -233,6 +261,7 @@ ScVbaGlobals::getAvailableServiceNames( ) throw (uno::RuntimeException)
::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "ooo.vba.excel.Worksheet" ) ),
::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "ooo.vba.excel.Application" ) ),
::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "ooo.vba.excel.Hyperlink" ) ),
+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.script.vba.VBASpreadsheetEventProcessor" ) )
};
sal_Int32 nExcelServices = ( sizeof( names )/ sizeof( names[0] ) );
sal_Int32 startIndex = serviceNames.getLength();
diff --git a/sc/source/ui/vba/vbaglobals.hxx b/sc/source/ui/vba/vbaglobals.hxx
index ae34d710240f..f22e5b19faa4 100644
--- a/sc/source/ui/vba/vbaglobals.hxx
+++ b/sc/source/ui/vba/vbaglobals.hxx
@@ -82,7 +82,8 @@ typedef ::cppu::ImplInheritanceHelper1< VbaGlobalsBase, ov::excel::XGlobals > Sc
virtual css::uno::Any SAL_CALL Names( const css::uno::Any& aIndex ) throw ( css::uno::RuntimeException );
virtual css::uno::Reference< ov::excel::XRange > SAL_CALL Intersect( const css::uno::Reference< ov::excel::XRange >& Arg1, const css::uno::Reference< ov::excel::XRange >& Arg2, const css::uno::Any& Arg3, const css::uno::Any& Arg4, const css::uno::Any& Arg5, const css::uno::Any& Arg6, const css::uno::Any& Arg7, const css::uno::Any& Arg8, const css::uno::Any& Arg9, const css::uno::Any& Arg10, const css::uno::Any& Arg11, const css::uno::Any& Arg12, const css::uno::Any& Arg13, const css::uno::Any& Arg14, const css::uno::Any& Arg15, const css::uno::Any& Arg16, const css::uno::Any& Arg17, const css::uno::Any& Arg18, const css::uno::Any& Arg19, const css::uno::Any& Arg20, const css::uno::Any& Arg21, const css::uno::Any& Arg22, const css::uno::Any& Arg23, const css::uno::Any& Arg24, const css::uno::Any& Arg25, const css::uno::Any& Arg26, const css::uno::Any& Arg27, const css::uno::Any& Arg28, const css::uno::Any& Arg29, const css::uno::Any& Arg30 ) throw (css::script::BasicErrorException, css::uno::RuntimeException);
virtual css::uno::Reference< ov::excel::XRange > SAL_CALL Union( const css::uno::Reference< ov::excel::XRange >& Arg1, const css::uno::Reference< ov::excel::XRange >& Arg2, const css::uno::Any& Arg3, const css::uno::Any& Arg4, const css::uno::Any& Arg5, const css::uno::Any& Arg6, const css::uno::Any& Arg7, const css::uno::Any& Arg8, const css::uno::Any& Arg9, const css::uno::Any& Arg10, const css::uno::Any& Arg11, const css::uno::Any& Arg12, const css::uno::Any& Arg13, const css::uno::Any& Arg14, const css::uno::Any& Arg15, const css::uno::Any& Arg16, const css::uno::Any& Arg17, const css::uno::Any& Arg18, const css::uno::Any& Arg19, const css::uno::Any& Arg20, const css::uno::Any& Arg21, const css::uno::Any& Arg22, const css::uno::Any& Arg23, const css::uno::Any& Arg24, const css::uno::Any& Arg25, const css::uno::Any& Arg26, const css::uno::Any& Arg27, const css::uno::Any& Arg28, const css::uno::Any& Arg29, const css::uno::Any& Arg30 ) throw (css::script::BasicErrorException, css::uno::RuntimeException);
-
+ virtual css::uno::Reference< ov::excel::XApplication > SAL_CALL getExcel() throw (css::uno::RuntimeException);
+ virtual css::uno::Any SAL_CALL getDebug() throw (css::uno::RuntimeException);
// XMultiServiceFactory
diff --git a/sc/source/ui/vba/vbaname.cxx b/sc/source/ui/vba/vbaname.cxx
index a6e8a402425f..464b167df250 100644
--- a/sc/source/ui/vba/vbaname.cxx
+++ b/sc/source/ui/vba/vbaname.cxx
@@ -232,10 +232,8 @@ ScVbaName::setRefersToR1C1Local( const ::rtl::OUString & rRefersTo ) throw (css:
css::uno::Reference< ov::excel::XRange >
ScVbaName::getRefersToRange() throw (css::uno::RuntimeException)
{
- // FIXME: pass proper Worksheet parent
uno::Reference< ov::excel::XRange > xRange = ScVbaRange::getRangeObjectForName(
- uno::Reference< XHelperInterface >(), mxContext,
- mxNamedRange->getName(), excel::getDocShell( mxModel ), formula::FormulaGrammar::CONV_XL_R1C1 );
+ mxContext, mxNamedRange->getName(), excel::getDocShell( mxModel ), formula::FormulaGrammar::CONV_XL_R1C1 );
return xRange;
}
diff --git a/sc/source/ui/vba/vbanames.cxx b/sc/source/ui/vba/vbanames.cxx
index d074f32b689d..9fd22bf89f7a 100644
--- a/sc/source/ui/vba/vbanames.cxx
+++ b/sc/source/ui/vba/vbanames.cxx
@@ -48,7 +48,7 @@ class NamesEnumeration : public EnumerationHelperImpl
uno::WeakReference< XHelperInterface > m_xParent;
uno::Reference< sheet::XNamedRanges > m_xNames;
public:
- NamesEnumeration( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration, const uno::Reference< frame::XModel >& xModel , const uno::Reference< sheet::XNamedRanges >& xNames ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xContext, xEnumeration ), m_xModel( xModel ), m_xParent( xParent ), m_xNames( xNames ) {}
+ NamesEnumeration( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration, const uno::Reference< frame::XModel >& xModel , const uno::Reference< sheet::XNamedRanges >& xNames ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xParent, xContext, xEnumeration ), m_xModel( xModel ), m_xParent( xParent ), m_xNames( xNames ) {}
virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
{
@@ -173,11 +173,6 @@ ScVbaNames::getElementType() throw( css::uno::RuntimeException )
uno::Reference< container::XEnumeration >
ScVbaNames::createEnumeration() throw (uno::RuntimeException)
{
- if ( mxNames.is() )
- {
- uno::Reference< container::XEnumerationAccess > xAccess( m_xIndexAccess, uno::UNO_QUERY_THROW );
- return xAccess->createEnumeration();
- }
uno::Reference< container::XEnumerationAccess > xEnumAccess( mxNames, uno::UNO_QUERY_THROW );
return new NamesEnumeration( this, mxContext, xEnumAccess->createEnumeration(), mxModel , mxNames );
}
diff --git a/sc/source/ui/vba/vbapivottables.cxx b/sc/source/ui/vba/vbapivottables.cxx
index 05a4201da977..fcbf347a3cd4 100644
--- a/sc/source/ui/vba/vbapivottables.cxx
+++ b/sc/source/ui/vba/vbapivottables.cxx
@@ -42,7 +42,7 @@ uno::Any DataPilotToPivotTable( const uno::Any& aSource, uno::Reference< uno::XC
class PivotTableEnumeration : public EnumerationHelperImpl
{
public:
- PivotTableEnumeration( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xContext, xEnumeration ) {}
+ PivotTableEnumeration( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xParent, xContext, xEnumeration ) {}
virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
{
@@ -59,7 +59,7 @@ uno::Reference< container::XEnumeration >
ScVbaPivotTables::createEnumeration() throw (uno::RuntimeException)
{
uno::Reference< container::XEnumerationAccess > xEnumAccess( m_xIndexAccess, uno::UNO_QUERY_THROW );
- return new PivotTableEnumeration( mxContext, xEnumAccess->createEnumeration() );
+ return new PivotTableEnumeration( mxParent, mxContext, xEnumAccess->createEnumeration() );
}
uno::Any
diff --git a/sc/source/ui/vba/vbarange.cxx b/sc/source/ui/vba/vbarange.cxx
index ccf5a3bc5b54..455af075306c 100644..100755
--- a/sc/source/ui/vba/vbarange.cxx
+++ b/sc/source/ui/vba/vbarange.cxx
@@ -202,11 +202,10 @@ double lcl_Round2DecPlaces( double nVal )
return nVal;
}
-uno::Any lcl_makeRange( uno::Reference< uno::XComponentContext >& xContext, const uno::Any aAny, bool bIsRows, bool bIsColumns )
+uno::Any lcl_makeRange( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Any aAny, bool bIsRows, bool bIsColumns )
{
uno::Reference< table::XCellRange > xCellRange( aAny, uno::UNO_QUERY_THROW );
- // #FIXME need proper (WorkSheet) parent
- return uno::makeAny( uno::Reference< excel::XRange >( new ScVbaRange( uno::Reference< XHelperInterface >(), xContext, xCellRange, bIsRows, bIsColumns ) ) );
+ return uno::makeAny( uno::Reference< excel::XRange >( new ScVbaRange( xParent, xContext, xCellRange, bIsRows, bIsColumns ) ) );
}
uno::Reference< excel::XRange > lcl_makeXRangeFromSheetCellRanges( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< sheet::XSheetCellRanges >& xLocSheetCellRanges, ScDocShell* pDoc )
@@ -227,13 +226,11 @@ uno::Reference< excel::XRange > lcl_makeXRangeFromSheetCellRanges( const uno::Re
if ( aCellRanges.First() == aCellRanges.Last() )
{
uno::Reference< table::XCellRange > xTmpRange( new ScCellRangeObj( pDoc, *aCellRanges.First() ) );
- // #FIXME need proper (WorkSheet) parent
xRange = new ScVbaRange( xParent, xContext, xTmpRange );
}
else
{
uno::Reference< sheet::XSheetCellRangeContainer > xRanges( new ScCellRangesObj( pDoc, aCellRanges ) );
- // #FIXME need proper (WorkSheet) parent
xRange = new ScVbaRange( xParent, xContext, xRanges );
}
}
@@ -269,12 +266,13 @@ SfxItemSet* ScVbaRange::getCurrentDataSet( ) throw ( uno::RuntimeException )
class SingleRangeEnumeration : public EnumerationHelper_BASE
{
+ uno::Reference< XHelperInterface > m_xParent;
uno::Reference< table::XCellRange > m_xRange;
uno::Reference< uno::XComponentContext > mxContext;
bool bHasMore;
public:
- SingleRangeEnumeration( const uno::Reference< css::uno::XComponentContext >& xContext, const uno::Reference< table::XCellRange >& xRange ) throw ( uno::RuntimeException ) : m_xRange( xRange ), mxContext( xContext ), bHasMore( true ) { }
+ SingleRangeEnumeration( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< css::uno::XComponentContext >& xContext, const uno::Reference< table::XCellRange >& xRange ) throw ( uno::RuntimeException ) : m_xParent( xParent ), m_xRange( xRange ), mxContext( xContext ), bHasMore( true ) { }
virtual ::sal_Bool SAL_CALL hasMoreElements( ) throw (uno::RuntimeException) { return bHasMore; }
virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
{
@@ -292,11 +290,12 @@ typedef ::cppu::WeakImplHelper2< container::XIndexAccess, container::XEnumeratio
class SingleRangeIndexAccess : public SingleRange_BASE
{
private:
+ uno::Reference< XHelperInterface > mxParent;
uno::Reference< table::XCellRange > m_xRange;
uno::Reference< uno::XComponentContext > mxContext;
SingleRangeIndexAccess(); // not defined
public:
- SingleRangeIndexAccess( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< table::XCellRange >& xRange ):m_xRange( xRange ), mxContext( xContext ) {}
+ SingleRangeIndexAccess( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< table::XCellRange >& xRange ):mxParent( xParent ), m_xRange( xRange ), mxContext( xContext ) {}
// XIndexAccess
virtual ::sal_Int32 SAL_CALL getCount() throw (::uno::RuntimeException) { return 1; }
virtual uno::Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw (lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
@@ -310,7 +309,7 @@ public:
virtual ::sal_Bool SAL_CALL hasElements() throw (uno::RuntimeException) { return sal_True; }
// XEnumerationAccess
- virtual uno::Reference< container::XEnumeration > SAL_CALL createEnumeration() throw (uno::RuntimeException) { return new SingleRangeEnumeration( mxContext, m_xRange ); }
+ virtual uno::Reference< container::XEnumeration > SAL_CALL createEnumeration() throw (uno::RuntimeException) { return new SingleRangeEnumeration( mxParent, mxContext, m_xRange ); }
};
@@ -322,10 +321,10 @@ class RangesEnumerationImpl : public EnumerationHelperImpl
bool mbIsColumns;
public:
- RangesEnumerationImpl( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration, bool bIsRows, bool bIsColumns ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xContext, xEnumeration ), mbIsRows( bIsRows ), mbIsColumns( bIsColumns ) {}
+ RangesEnumerationImpl( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration, bool bIsRows, bool bIsColumns ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xParent, xContext, xEnumeration ), mbIsRows( bIsRows ), mbIsColumns( bIsColumns ) {}
virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
{
- return lcl_makeRange( m_xContext, m_xEnumeration->nextElement(), mbIsRows, mbIsColumns );
+ return lcl_makeRange( m_xParent, m_xContext, m_xEnumeration->nextElement(), mbIsRows, mbIsColumns );
}
};
@@ -335,7 +334,7 @@ class ScVbaRangeAreas : public ScVbaCollectionBaseImpl
bool mbIsRows;
bool mbIsColumns;
public:
- ScVbaRangeAreas( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XIndexAccess >& xIndexAccess, bool bIsRows, bool bIsColumns ) : ScVbaCollectionBaseImpl( uno::Reference< XHelperInterface >(), xContext, xIndexAccess ), mbIsRows( bIsRows ), mbIsColumns( bIsColumns ) {}
+ ScVbaRangeAreas( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XIndexAccess >& xIndexAccess, bool bIsRows, bool bIsColumns ) : ScVbaCollectionBaseImpl( xParent, xContext, xIndexAccess ), mbIsRows( bIsRows ), mbIsColumns( bIsColumns ) {}
// XEnumerationAccess
virtual uno::Reference< container::XEnumeration > SAL_CALL createEnumeration() throw (uno::RuntimeException);
@@ -355,14 +354,13 @@ uno::Reference< container::XEnumeration > SAL_CALL
ScVbaRangeAreas::createEnumeration() throw (uno::RuntimeException)
{
uno::Reference< container::XEnumerationAccess > xEnumAccess( m_xIndexAccess, uno::UNO_QUERY_THROW );
- return new RangesEnumerationImpl( mxContext, xEnumAccess->createEnumeration(), mbIsRows, mbIsColumns );
-
+ return new RangesEnumerationImpl( mxParent, mxContext, xEnumAccess->createEnumeration(), mbIsRows, mbIsColumns );
}
uno::Any
ScVbaRangeAreas::createCollectionObject( const uno::Any& aSource )
{
- return lcl_makeRange( mxContext, aSource, mbIsRows, mbIsColumns );
+ return lcl_makeRange( mxParent, mxContext, aSource, mbIsRows, mbIsColumns );
}
// assume that xIf is infact a ScCellRangesBase
@@ -618,6 +616,7 @@ public:
class CellsEnumeration : public CellsEnumeration_BASE
{
+ uno::WeakReference< XHelperInterface > mxParent;
uno::Reference< uno::XComponentContext > mxContext;
uno::Reference< XCollection > m_xAreas;
vCellPos m_CellPositions;
@@ -645,7 +644,7 @@ class CellsEnumeration : public CellsEnumeration_BASE
}
}
public:
- CellsEnumeration( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< XCollection >& xAreas ): mxContext( xContext ), m_xAreas( xAreas )
+ CellsEnumeration( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< XCollection >& xAreas ): mxParent( xParent ), mxContext( xContext ), m_xAreas( xAreas )
{
sal_Int32 nItems = m_xAreas->getCount();
for ( sal_Int32 index=1; index <= nItems; ++index )
@@ -664,8 +663,7 @@ public:
uno::Reference< table::XCellRange > xRangeArea = getArea( aPos.m_nArea );
uno::Reference< table::XCellRange > xCellRange( xRangeArea->getCellByPosition( aPos.m_nCol, aPos.m_nRow ), uno::UNO_QUERY_THROW );
- // #FIXME need proper (WorkSheet) parent
- return uno::makeAny( uno::Reference< excel::XRange >( new ScVbaRange( uno::Reference< XHelperInterface >(), mxContext, xCellRange ) ) );
+ return uno::makeAny( uno::Reference< excel::XRange >( new ScVbaRange( mxParent, mxContext, xCellRange ) ) );
}
};
@@ -1088,11 +1086,11 @@ public:
return uno::Reference< sheet::XSheetCellCursor >( getSpreadSheet()->createCursorByRange( getSheetCellRange() ), uno::UNO_QUERY_THROW );
}
- static uno::Reference< excel::XRange > createRangeFromRange( const uno::Reference<uno::XComponentContext >& xContext, const uno::Reference< table::XCellRange >& xRange, const uno::Reference< sheet::XCellRangeAddressable >& xCellRangeAddressable, sal_Int32 nStartColOffset = 0, sal_Int32 nStartRowOffset = 0,
- sal_Int32 nEndColOffset = 0, sal_Int32 nEndRowOffset = 0 )
+ static uno::Reference< excel::XRange > createRangeFromRange( const uno::Reference< XHelperInterface >& xParent, const uno::Reference<uno::XComponentContext >& xContext,
+ const uno::Reference< table::XCellRange >& xRange, const uno::Reference< sheet::XCellRangeAddressable >& xCellRangeAddressable,
+ sal_Int32 nStartColOffset = 0, sal_Int32 nStartRowOffset = 0, sal_Int32 nEndColOffset = 0, sal_Int32 nEndRowOffset = 0 )
{
- // #FIXME need proper (WorkSheet) parent
- return uno::Reference< excel::XRange >( new ScVbaRange( uno::Reference< XHelperInterface >(), xContext,
+ return uno::Reference< excel::XRange >( new ScVbaRange( xParent, xContext,
xRange->getCellRangeByPosition(
xCellRangeAddressable->getRangeAddress().StartColumn + nStartColOffset,
xCellRangeAddressable->getRangeAddress().StartRow + nStartRowOffset,
@@ -1178,7 +1176,7 @@ bool getScRangeListForAddress( const rtl::OUString& sName, ScDocShell* pDocSh, S
ScVbaRange*
-getRangeForName( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const rtl::OUString& sName, ScDocShell* pDocSh, table::CellRangeAddress& pAddr, formula::FormulaGrammar::AddressConvention eConv = formula::FormulaGrammar::CONV_XL_A1 ) throw ( uno::RuntimeException )
+getRangeForName( const uno::Reference< uno::XComponentContext >& xContext, const rtl::OUString& sName, ScDocShell* pDocSh, table::CellRangeAddress& pAddr, formula::FormulaGrammar::AddressConvention eConv = formula::FormulaGrammar::CONV_XL_A1 ) throw ( uno::RuntimeException )
{
ScRangeList aCellRanges;
ScRange refRange;
@@ -1189,10 +1187,13 @@ getRangeForName( const uno::Reference< XHelperInterface >& xParent, const uno::R
if ( aCellRanges.First() == aCellRanges.Last() )
{
uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pDocSh, *aCellRanges.First() ) );
- return new ScVbaRange( xParent, xContext, xRange );
+ uno::Reference< XHelperInterface > xFixThisParent = excel::getUnoSheetModuleObj( xRange );
+ return new ScVbaRange( xFixThisParent, xContext, xRange );
}
uno::Reference< sheet::XSheetCellRangeContainer > xRanges( new ScCellRangesObj( pDocSh, aCellRanges ) );
- return new ScVbaRange( xParent, xContext, xRanges );
+
+ uno::Reference< XHelperInterface > xFixThisParent = excel::getUnoSheetModuleObj( xRanges );
+ return new ScVbaRange( xFixThisParent, xContext, xRanges );
}
// ----------------------------------------------------------------------------
@@ -1205,6 +1206,14 @@ inline table::CellRangeAddress lclGetRangeAddress( const uno::Reference< RangeTy
return uno::Reference< sheet::XCellRangeAddressable >( rxCellRange, uno::UNO_QUERY_THROW )->getRangeAddress();
}
+void lclClearRange( const uno::Reference< table::XCellRange >& rxCellRange ) throw (uno::RuntimeException)
+{
+ using namespace ::com::sun::star::sheet::CellFlags;
+ sal_Int32 nFlags = VALUE | DATETIME | STRING | ANNOTATION | FORMULA | HARDATTR | STYLES | EDITATTR | FORMATTED;
+ uno::Reference< sheet::XSheetOperation > xSheetOperation( rxCellRange, uno::UNO_QUERY_THROW );
+ xSheetOperation->clearContents( nFlags );
+}
+
uno::Reference< sheet::XSheetCellRange > lclExpandToMerged( const uno::Reference< table::XCellRange >& rxCellRange, bool bRecursive ) throw (uno::RuntimeException)
{
uno::Reference< sheet::XSheetCellRange > xNewCellRange( rxCellRange, uno::UNO_QUERY_THROW );
@@ -1250,15 +1259,27 @@ void lclExpandAndMerge( const uno::Reference< table::XCellRange >& rxCellRange,
// Calc cannot merge over merged ranges, always unmerge first
xMerge->merge( sal_False );
if( bMerge )
+ {
+ // clear all contents of the covered cells (not the top-left cell)
+ table::CellRangeAddress aRangeAddr = lclGetRangeAddress( rxCellRange );
+ sal_Int32 nLastColIdx = aRangeAddr.EndColumn - aRangeAddr.StartColumn;
+ sal_Int32 nLastRowIdx = aRangeAddr.EndRow - aRangeAddr.StartRow;
+ // clear cells of top row, right of top-left cell
+ if( nLastColIdx > 0 )
+ lclClearRange( rxCellRange->getCellRangeByPosition( 1, 0, nLastColIdx, 0 ) );
+ // clear all rows below top row
+ if( nLastRowIdx > 0 )
+ lclClearRange( rxCellRange->getCellRangeByPosition( 0, 1, nLastColIdx, nLastRowIdx ) );
+ // merge the range
xMerge->merge( sal_True );
- // FIXME need to check whether all the cell contents are retained or lost by popping up a dialog
+ }
}
util::TriState lclGetMergedState( const uno::Reference< table::XCellRange >& rxCellRange ) throw (uno::RuntimeException)
{
/* 1) Check if range is completely inside one single merged range. To do
this, try to extend from top-left cell only (not from entire range).
- This will excude cases where this range consists of several merged
+ This will exclude cases where this range consists of several merged
ranges (or parts of them). */
table::CellRangeAddress aRangeAddr = lclGetRangeAddress( rxCellRange );
uno::Reference< table::XCellRange > xTopLeft( rxCellRange->getCellRangeByPosition( 0, 0, 0, 0 ), uno::UNO_SET_THROW );
@@ -1284,12 +1305,12 @@ util::TriState lclGetMergedState( const uno::Reference< table::XCellRange >& rxC
// ----------------------------------------------------------------------------
css::uno::Reference< excel::XRange >
-ScVbaRange::getRangeObjectForName( const css::uno::Reference< ov::XHelperInterface >& xParent,
+ScVbaRange::getRangeObjectForName(
const uno::Reference< uno::XComponentContext >& xContext, const rtl::OUString& sRangeName,
ScDocShell* pDocSh, formula::FormulaGrammar::AddressConvention eConv ) throw ( uno::RuntimeException )
{
table::CellRangeAddress refAddr;
- return getRangeForName( xParent, xContext, sRangeName, pDocSh, refAddr, eConv );
+ return getRangeForName( xContext, sRangeName, pDocSh, refAddr, eConv );
}
@@ -1348,13 +1369,13 @@ ScVbaRange::ScVbaRange( uno::Sequence< uno::Any> const & args,
uno::Reference< container::XIndexAccess > xIndex;
if ( mxRange.is() )
{
- xIndex = new SingleRangeIndexAccess( mxContext, mxRange );
+ xIndex = new SingleRangeIndexAccess( mxParent, mxContext, mxRange );
}
else if ( mxRanges.is() )
{
xIndex.set( mxRanges, uno::UNO_QUERY_THROW );
}
- m_Areas = new ScVbaRangeAreas( mxContext, xIndex, mbIsRows, mbIsColumns );
+ m_Areas = new ScVbaRangeAreas( mxParent, mxContext, xIndex, mbIsRows, mbIsColumns );
}
ScVbaRange::ScVbaRange( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< table::XCellRange >& xRange, sal_Bool bIsRows, sal_Bool bIsColumns ) throw( lang::IllegalArgumentException )
@@ -1367,8 +1388,8 @@ ScVbaRange::ScVbaRange( const uno::Reference< XHelperInterface >& xParent, const
if ( !xRange.is() )
throw lang::IllegalArgumentException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "range is not set " ) ), uno::Reference< uno::XInterface >() , 1 );
- uno::Reference< container::XIndexAccess > xIndex( new SingleRangeIndexAccess( mxContext, xRange ) );
- m_Areas = new ScVbaRangeAreas( mxContext, xIndex, mbIsRows, mbIsColumns );
+ uno::Reference< container::XIndexAccess > xIndex( new SingleRangeIndexAccess( mxParent, mxContext, xRange ) );
+ m_Areas = new ScVbaRangeAreas( mxParent, mxContext, xIndex, mbIsRows, mbIsColumns );
}
@@ -1377,7 +1398,7 @@ ScVbaRange::ScVbaRange( const uno::Reference< XHelperInterface >& xParent, const
{
uno::Reference< container::XIndexAccess > xIndex( mxRanges, uno::UNO_QUERY_THROW );
- m_Areas = new ScVbaRangeAreas( mxContext, xIndex, mbIsRows, mbIsColumns );
+ m_Areas = new ScVbaRangeAreas( xParent, mxContext, xIndex, mbIsRows, mbIsColumns );
}
@@ -1507,7 +1528,8 @@ ScVbaRange::setValue( const uno::Any &aValue ) throw (uno::RuntimeException)
void
ScVbaRange::Clear() throw (uno::RuntimeException)
{
- sal_Int32 nFlags = sheet::CellFlags::VALUE | sheet::CellFlags::STRING | sheet::CellFlags::HARDATTR | sheet::CellFlags::FORMATTED | sheet::CellFlags::EDITATTR | sheet::CellFlags::FORMULA;
+ using namespace ::com::sun::star::sheet::CellFlags;
+ sal_Int32 nFlags = VALUE | DATETIME | STRING | FORMULA | HARDATTR | EDITATTR | FORMATTED;
ClearContents( nFlags );
}
@@ -1806,11 +1828,11 @@ ScVbaRange::Offset( const ::uno::Any &nRowOff, const uno::Any &nColOff ) throw (
if ( aCellRanges.Count() > 1 ) // Multi-Area
{
uno::Reference< sheet::XSheetCellRangeContainer > xRanges( new ScCellRangesObj( pUnoRangesBase->GetDocShell(), aCellRanges ) );
- return new ScVbaRange( getParent(), mxContext, xRanges );
+ return new ScVbaRange( mxParent, mxContext, xRanges );
}
// normal range
uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pUnoRangesBase->GetDocShell(), *aCellRanges.First() ) );
- return new ScVbaRange( getParent(), mxContext, xRange );
+ return new ScVbaRange( mxParent, mxContext, xRange );
}
uno::Reference< excel::XRange >
@@ -1831,7 +1853,7 @@ ScVbaRange::CurrentRegion() throw (uno::RuntimeException)
helper.getSheetCellCursor();
xSheetCellCursor->collapseToCurrentRegion();
uno::Reference< sheet::XCellRangeAddressable > xCellRangeAddressable(xSheetCellCursor, uno::UNO_QUERY_THROW);
- return RangeHelper::createRangeFromRange( mxContext, helper.getCellRangeFromSheet(), xCellRangeAddressable );
+ return RangeHelper::createRangeFromRange( mxParent, mxContext, helper.getCellRangeFromSheet(), xCellRangeAddressable );
}
uno::Reference< excel::XRange >
@@ -1851,7 +1873,7 @@ ScVbaRange::CurrentArray() throw (uno::RuntimeException)
helper.getSheetCellCursor();
xSheetCellCursor->collapseToCurrentArray();
uno::Reference< sheet::XCellRangeAddressable > xCellRangeAddressable(xSheetCellCursor, uno::UNO_QUERY_THROW);
- return RangeHelper::createRangeFromRange( mxContext, helper.getCellRangeFromSheet(), xCellRangeAddressable );
+ return RangeHelper::createRangeFromRange( mxParent, mxContext, helper.getCellRangeFromSheet(), xCellRangeAddressable );
}
uno::Any
@@ -2069,7 +2091,7 @@ ScVbaRange::Cells( const uno::Any &nRowIndex, const uno::Any &nColumnIndex ) thr
uno::Reference< table::XCellRange > xSheetRange = thisRange.getCellRangeFromSheet();
if( !bIsIndex && !bIsColumnIndex ) // .Cells
// #FIXE needs proper parent ( Worksheet )
- return uno::Reference< excel::XRange >( new ScVbaRange( uno::Reference< XHelperInterface >(), mxContext, mxRange ) );
+ return uno::Reference< excel::XRange >( new ScVbaRange( mxParent, mxContext, mxRange ) );
sal_Int32 nIndex = --nRow;
if( bIsIndex && !bIsColumnIndex ) // .Cells(n)
@@ -2087,7 +2109,7 @@ ScVbaRange::Cells( const uno::Any &nRowIndex, const uno::Any &nColumnIndex ) thr
--nColumn;
nRow = nRow + thisRangeAddress.StartRow;
nColumn = nColumn + thisRangeAddress.StartColumn;
- return new ScVbaRange( getParent(), mxContext, xSheetRange->getCellRangeByPosition( nColumn, nRow, nColumn, nRow ) );
+ return new ScVbaRange( mxParent, mxContext, xSheetRange->getCellRangeByPosition( nColumn, nRow, nColumn, nRow ) );
}
void
@@ -2239,12 +2261,12 @@ ScVbaRange::Rows(const uno::Any& aIndex ) throw (uno::RuntimeException)
throw uno::RuntimeException( rtl::OUString::createFromAscii("Internal failure, illegal param"), uno::Reference< uno::XInterface >() );
// return a normal range ( even for multi-selection
uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pUnoRangesBase->GetDocShell(), aRange ) );
- return new ScVbaRange( getParent(), mxContext, xRange, true );
+ return new ScVbaRange( mxParent, mxContext, xRange, true );
}
// Rows() - no params
if ( m_Areas->getCount() > 1 )
- return new ScVbaRange( getParent(), mxContext, mxRanges, true );
- return new ScVbaRange( getParent(), mxContext, mxRange, true );
+ return new ScVbaRange( mxParent, mxContext, mxRanges, true );
+ return new ScVbaRange( mxParent, mxContext, mxRange, true );
}
uno::Reference< excel::XRange >
@@ -2286,16 +2308,14 @@ ScVbaRange::Columns(const uno::Any& aIndex ) throw (uno::RuntimeException)
throw uno::RuntimeException( rtl::OUString::createFromAscii("Internal failure, illegal param"), uno::Reference< uno::XInterface >() );
}
// Columns() - no params
- //return new ScVbaRange( getParent(), mxContext, mxRange, false, true );
uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pUnoRangesBase->GetDocShell(), aRange ) );
- return new ScVbaRange( getParent(), mxContext, xRange, false, true );
+ return new ScVbaRange( mxParent, mxContext, xRange, false, true );
}
void
ScVbaRange::setMergeCells( const uno::Any& aIsMerged ) throw (script::BasicErrorException, uno::RuntimeException)
{
- bool bMerge = false;
- aIsMerged >>= bMerge;
+ bool bMerge = extractBoolFromAny( aIsMerged );
if( mxRanges.is() )
{
@@ -2473,7 +2493,7 @@ ScVbaRange::Resize( const uno::Any &RowSize, const uno::Any &ColumnSize ) throw
xCursor->collapseToSize( nColumnSize, nRowSize );
uno::Reference< sheet::XCellRangeAddressable > xCellRangeAddressable(xCursor, ::uno::UNO_QUERY_THROW );
uno::Reference< table::XCellRange > xRange( xSheetRange->getSpreadsheet(), ::uno::UNO_QUERY_THROW );
- return new ScVbaRange( getParent(), mxContext,xRange->getCellRangeByPosition(
+ return new ScVbaRange( mxParent, mxContext,xRange->getCellRangeByPosition(
xCellRangeAddressable->getRangeAddress().StartColumn,
xCellRangeAddressable->getRangeAddress().StartRow,
xCellRangeAddressable->getRangeAddress().EndColumn,
@@ -2496,7 +2516,8 @@ ScVbaRange::setWrapText( const uno::Any& aIsWrapped ) throw (script::BasicErrorE
}
uno::Reference< beans::XPropertySet > xProps(mxRange, ::uno::UNO_QUERY_THROW );
- xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsTextWrapped" ) ), aIsWrapped );
+ bool bIsWrapped = extractBoolFromAny( aIsWrapped );
+ xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsTextWrapped" ) ), uno::Any( bIsWrapped ) );
}
uno::Any
@@ -2563,7 +2584,6 @@ ScVbaRange::Range( const uno::Any &Cell1, const uno::Any &Cell2, bool bForceUseI
// xAddressable now for this range
xAddressable.set( xReferrer, uno::UNO_QUERY_THROW );
-
if( !Cell1.hasValue() )
throw uno::RuntimeException(
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( " Invalid Argument " ) ),
@@ -2580,7 +2600,7 @@ ScVbaRange::Range( const uno::Any &Cell1, const uno::Any &Cell2, bool bForceUseI
Cell1 >>= sName;
RangeHelper referRange( xReferrer );
table::CellRangeAddress referAddress = referRange.getCellRangeAddressable()->getRangeAddress();
- return getRangeForName( getParent(), mxContext, sName, getScDocShell(), referAddress );
+ return getRangeForName( mxContext, sName, getScDocShell(), referAddress );
}
else
@@ -2637,7 +2657,7 @@ ScVbaRange::Range( const uno::Any &Cell1, const uno::Any &Cell2, bool bForceUseI
}
}
- return new ScVbaRange( getParent(), mxContext, xCellRange );
+ return new ScVbaRange( mxParent, mxContext, xCellRange );
}
@@ -2772,10 +2792,10 @@ ScVbaRange::getEntireColumnOrRow( bool bColumn ) throw (uno::RuntimeException)
{
uno::Reference< sheet::XSheetCellRangeContainer > xRanges( new ScCellRangesObj( pUnoRangesBase->GetDocShell(), aCellRanges ) );
- return new ScVbaRange( getParent(), mxContext, xRanges, !bColumn, bColumn );
+ return new ScVbaRange( mxParent, mxContext, xRanges, !bColumn, bColumn );
}
uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pUnoRangesBase->GetDocShell(), *aCellRanges.First() ) );
- return new ScVbaRange( getParent(), mxContext, xRange, !bColumn, bColumn );
+ return new ScVbaRange( mxParent, mxContext, xRange, !bColumn, bColumn );
}
uno::Reference< excel::XRange > SAL_CALL
@@ -2876,13 +2896,11 @@ ScVbaRange::setHidden( const uno::Any& _hidden ) throw (uno::RuntimeException)
return;
}
- sal_Bool bHidden = sal_False;
- _hidden >>= bHidden;
-
+ bool bHidden = extractBoolFromAny( _hidden );
try
{
uno::Reference< beans::XPropertySet > xProps = getRowOrColumnProps( mxRange, mbIsRows );
- xProps->setPropertyValue( ISVISIBLE, uno::makeAny( !bHidden ) );
+ xProps->setPropertyValue( ISVISIBLE, uno::Any( !bHidden ) );
}
catch( uno::Exception& e )
{
@@ -2979,7 +2997,7 @@ ScVbaRange::Find( const uno::Any& What, const uno::Any& After, const uno::Any& L
// return a Range object that represents the first cell where that information is found.
rtl::OUString sWhat;
sal_Int32 nWhat = 0;
- float fWhat = 0.0;
+ double fWhat = 0.0;
// string.
if( What >>= sWhat )
@@ -3011,6 +3029,7 @@ ScVbaRange::Find( const uno::Any& What, const uno::Any& After, const uno::Any& L
{
uno::Reference< util::XSearchDescriptor > xDescriptor = xSearch->createSearchDescriptor();
xDescriptor->setSearchString( sSearch );
+ xDescriptor->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SC_UNO_SRCHREGEXP ) ), uno::Any( true ) );
uno::Reference< excel::XRange > xAfterRange;
uno::Reference< table::XCellRange > xStartCell;
@@ -3116,12 +3135,11 @@ ScVbaRange::Find( const uno::Any& What, const uno::Any& After, const uno::Any& L
ScGlobal::SetSearchItem( newOptions );
- uno::Reference< util::XSearchDescriptor > xSearchDescriptor( xDescriptor, uno::UNO_QUERY );
- uno::Reference< uno::XInterface > xInterface = xStartCell.is() ? xSearch->findNext( xStartCell, xSearchDescriptor) : xSearch->findFirst( xSearchDescriptor );
+ uno::Reference< uno::XInterface > xInterface = xStartCell.is() ? xSearch->findNext( xStartCell, xDescriptor) : xSearch->findFirst( xDescriptor );
uno::Reference< table::XCellRange > xCellRange( xInterface, uno::UNO_QUERY );
if ( xCellRange.is() )
{
- uno::Reference< excel::XRange > xResultRange = new ScVbaRange( this, mxContext, xCellRange );
+ uno::Reference< excel::XRange > xResultRange = new ScVbaRange( mxParent, mxContext, xCellRange );
if( xResultRange.is() )
{
xResultRange->Select();
@@ -3148,7 +3166,7 @@ uno::Reference< table::XCellRange > processKey( const uno::Any& Key, uno::Refere
table::CellRangeAddress aRefAddr;
if ( !pDocSh )
throw uno::RuntimeException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Range::Sort no docshell to calculate key param")), uno::Reference< uno::XInterface >() );
- xKeyRange = getRangeForName( uno::Reference< XHelperInterface >(), xContext, sRangeName, pDocSh, aRefAddr );
+ xKeyRange = getRangeForName( xContext, sRangeName, pDocSh, aRefAddr );
}
else
throw uno::RuntimeException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Range::Sort illegal type value for key param")), uno::Reference< uno::XInterface >() );
@@ -3582,7 +3600,7 @@ ScVbaRange::createEnumeration() throw (uno::RuntimeException)
return new ColumnsRowEnumeration( mxContext, xRange, nElems );
}
- return new CellsEnumeration( mxContext, m_Areas );
+ return new CellsEnumeration( mxParent, mxContext, m_Areas );
}
::rtl::OUString SAL_CALL
@@ -4073,15 +4091,14 @@ ScVbaRange::ApplicationRange( const uno::Reference< uno::XComponentContext >& xC
uno::Reference< table::XCellRange > xRange = xReferrer->getReferredCells();
if ( xRange.is() )
{
- // #FIXME need proper (WorkSheet) parent
- uno::Reference< excel::XRange > xVbRange = new ScVbaRange( uno::Reference< XHelperInterface >(), xContext, xRange );
+ uno::Reference< excel::XRange > xVbRange = new ScVbaRange( excel::getUnoSheetModuleObj( xRange ), xContext, xRange );
return xVbRange;
}
}
}
uno::Reference< sheet::XSpreadsheetView > xView( getCurrentExcelDoc(xContext)->getCurrentController(), uno::UNO_QUERY );
uno::Reference< table::XCellRange > xSheetRange( xView->getActiveSheet(), uno::UNO_QUERY_THROW );
- ScVbaRange* pRange = new ScVbaRange( uno::Reference< XHelperInterface >(), xContext, xSheetRange );
+ ScVbaRange* pRange = new ScVbaRange( excel::getUnoSheetModuleObj( xSheetRange ), xContext, xSheetRange );
uno::Reference< excel::XRange > xVbSheetRange( pRange );
return pRange->Range( Cell1, Cell2, true );
}
@@ -4569,7 +4586,7 @@ ScVbaRange::Insert( const uno::Any& Shift, const uno::Any& CopyOrigin ) throw (u
// After the insert ( this range ) actually has moved
ScRange aRange( static_cast< SCCOL >( thisAddress.StartColumn ), static_cast< SCROW >( thisAddress.StartRow ), static_cast< SCTAB >( thisAddress.Sheet ), static_cast< SCCOL >( thisAddress.EndColumn ), static_cast< SCROW >( thisAddress.EndRow ), static_cast< SCTAB >( thisAddress.Sheet ) );
uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( getDocShellFromRange( mxRange ) , aRange ) );
- uno::Reference< excel::XRange > xVbaRange( new ScVbaRange( getParent(), mxContext, xRange, mbIsRows, mbIsColumns ) );
+ uno::Reference< excel::XRange > xVbaRange( new ScVbaRange( mxParent, mxContext, xRange, mbIsRows, mbIsColumns ) );
xVbaRange->PasteSpecial( uno::Any(), uno::Any(), uno::Any(), uno::Any() );
}
}
@@ -4912,8 +4929,7 @@ void ScVbaRange::setShowDetail(const uno::Any& aShowDetail) throw ( css::uno::Ru
if( m_Areas->getCount() > 1 )
throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Can not set Range.ShowDetail attribute ")), uno::Reference< uno::XInterface >() );
- sal_Bool bShowDetail = sal_False;
- aShowDetail >>= bShowDetail;
+ bool bShowDetail = extractBoolFromAny( aShowDetail );
RangeHelper helper( mxRange );
uno::Reference< sheet::XSheetCellCursor > xSheetCellCursor = helper.getSheetCellCursor();
@@ -4955,18 +4971,18 @@ ScVbaRange::MergeArea() throw (script::BasicErrorException, uno::RuntimeExceptio
if( aCellAddress.StartColumn ==0 && aCellAddress.EndColumn==0 &&
aCellAddress.StartRow==0 && aCellAddress.EndRow==0)
{
- return new ScVbaRange( getParent(),mxContext,mxRange );
+ return new ScVbaRange( mxParent,mxContext,mxRange );
}
else
{
ScRange refRange( static_cast< SCCOL >( aCellAddress.StartColumn ), static_cast< SCROW >( aCellAddress.StartRow ), static_cast< SCTAB >( aCellAddress.Sheet ),
static_cast< SCCOL >( aCellAddress.EndColumn ), static_cast< SCROW >( aCellAddress.EndRow ), static_cast< SCTAB >( aCellAddress.Sheet ) );
uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( getScDocShell() , refRange ) );
- return new ScVbaRange( getParent(),mxContext,xRange );
+ return new ScVbaRange( mxParent, mxContext,xRange );
}
}
}
- return new ScVbaRange( getParent(),mxContext,mxRange );
+ return new ScVbaRange( mxParent, mxContext, mxRange );
}
void SAL_CALL
@@ -5359,7 +5375,7 @@ ScVbaRange::PreviousNext( bool bIsPrevious )
uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( getScDocShell() , refRange ) );
- return new ScVbaRange( getParent(), mxContext, xRange );
+ return new ScVbaRange( mxParent, mxContext, xRange );
}
uno::Reference< excel::XRange > SAL_CALL
@@ -5442,13 +5458,11 @@ ScVbaRange::SpecialCells( const uno::Any& _oType, const uno::Any& _oValue) throw
if ( aCellRanges.First() == aCellRanges.Last() )
{
uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( getScDocShell(), *aCellRanges.First() ) );
- // #FIXME need proper (WorkSheet) parent
- return new ScVbaRange( getParent(), mxContext, xRange );
+ return new ScVbaRange( mxParent, mxContext, xRange );
}
uno::Reference< sheet::XSheetCellRangeContainer > xRanges( new ScCellRangesObj( getScDocShell(), aCellRanges ) );
- // #FIXME need proper (WorkSheet) parent
- return new ScVbaRange( getParent(), mxContext, xRanges );
+ return new ScVbaRange( mxParent, mxContext, xRanges );
}
else if ( bIsSingleCell )
{
diff --git a/sc/source/ui/vba/vbarange.hxx b/sc/source/ui/vba/vbarange.hxx
index a9147a0d7840..e7488e434f30 100644
--- a/sc/source/ui/vba/vbarange.hxx
+++ b/sc/source/ui/vba/vbarange.hxx
@@ -145,7 +145,6 @@ public:
bool isSingleCellRange();
static css::uno::Reference< ov::excel::XRange > getRangeObjectForName(
- const css::uno::Reference< ov::XHelperInterface >& xParent,
const css::uno::Reference< css::uno::XComponentContext >& xContext,
const rtl::OUString& sRangeName, ScDocShell* pDocSh,
formula::FormulaGrammar::AddressConvention eConv = formula::FormulaGrammar::CONV_XL_A1 ) throw ( css::uno::RuntimeException );
diff --git a/sc/source/ui/vba/vbaworkbook.cxx b/sc/source/ui/vba/vbaworkbook.cxx
index 365c8b35a00c..28469c4685a2 100644
--- a/sc/source/ui/vba/vbaworkbook.cxx
+++ b/sc/source/ui/vba/vbaworkbook.cxx
@@ -50,6 +50,7 @@
#include "vbanames.hxx" // Amelia Wang
#include "nameuno.hxx"
#include "docoptio.hxx"
+#include "unonames.hxx"
// Much of the impl. for the equivalend UNO module is
// sc/source/ui/unoobj/docuno.cxx, viewuno.cxx
@@ -208,7 +209,6 @@ ScVbaWorkbook::ScVbaWorkbook( const css::uno::Reference< ov::XHelperInterface
ScVbaWorkbook::ScVbaWorkbook( uno::Sequence< uno::Any> const & args,
uno::Reference< uno::XComponentContext> const & xContext ) : ScVbaWorkbook_BASE( args, xContext )
-
{
init();
}
@@ -216,21 +216,24 @@ ScVbaWorkbook::ScVbaWorkbook( uno::Sequence< uno::Any> const & args,
uno::Reference< excel::XWorksheet >
ScVbaWorkbook::getActiveSheet() throw (uno::RuntimeException)
{
- uno::Reference< frame::XModel > xModel( getCurrentExcelDoc( mxContext ) );
- uno::Reference< sheet::XSpreadsheet > xSheet;
+ uno::Reference< frame::XModel > xModel( getCurrentExcelDoc( mxContext ), uno::UNO_SET_THROW );
uno::Reference< sheet::XSpreadsheetView > xView( xModel->getCurrentController(), uno::UNO_QUERY_THROW );
- if ( xView.is() )
- xSheet = xView->getActiveSheet();
- return new ScVbaWorksheet( this, mxContext, xSheet, xModel );
+ uno::Reference< beans::XPropertySet > xSheetProps( xView->getActiveSheet(), uno::UNO_QUERY_THROW );
+ // #162503# return the original document module wrapper object, instead of a new instance
+ ::rtl::OUString aCodeName;
+ xSheetProps->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SC_UNO_CODENAME ) ) ) >>= aCodeName;
+ ScDocShell* pShell = excel::getDocShell( xModel );
+ if( !pShell )
+ throw uno::RuntimeException();
+ return uno::Reference< excel::XWorksheet >( getUnoDocModule( aCodeName, pShell ), uno::UNO_QUERY_THROW );
}
+
uno::Any SAL_CALL
ScVbaWorkbook::Sheets( const uno::Any& aIndex ) throw (uno::RuntimeException)
{
return Worksheets( aIndex );
}
-
-
uno::Any SAL_CALL
ScVbaWorkbook::Worksheets( const uno::Any& aIndex ) throw (uno::RuntimeException)
{
diff --git a/sc/source/ui/vba/vbaworkbooks.cxx b/sc/source/ui/vba/vbaworkbooks.cxx
index 9f9c5dacd796..7efee1505dcb 100644
--- a/sc/source/ui/vba/vbaworkbooks.cxx
+++ b/sc/source/ui/vba/vbaworkbooks.cxx
@@ -46,6 +46,10 @@
#include <com/sun/star/document/XTypeDetection.hpp>
#include <com/sun/star/uri/XUriReference.hpp>
#include <com/sun/star/uri/XUriReferenceFactory.hpp>
+#include <com/sun/star/script/vba/XVBACompatibility.hpp>
+#include <com/sun/star/script/vba/XVBAModuleInfo.hpp>
+#include <com/sun/star/script/ModuleInfo.hpp>
+#include <com/sun/star/script/ModuleType.hpp>
#include <sfx2/objsh.hxx>
#include <tools/urlobj.hxx>
@@ -56,21 +60,100 @@
#include <vbahelper/vbahelper.hxx>
#include <hash_map>
+#include <vector>
#include <osl/file.hxx>
using namespace ::ooo::vba;
using namespace ::com::sun::star;
const sal_Int16 CUSTOM_CHAR = 5;
+void setUpDocumentModules( const uno::Reference< sheet::XSpreadsheetDocument >& xDoc )
+{
+ uno::Reference< frame::XModel > xModel( xDoc, uno::UNO_QUERY );
+ ScDocShell* pShell = excel::getDocShell( xModel );
+ if ( pShell )
+ {
+ uno::Reference<script::XLibraryContainer> xLibContainer = pShell->GetBasicContainer();
+ uno::Reference<script::vba::XVBACompatibility> xVBACompat( xLibContainer, uno::UNO_QUERY_THROW );
+ xVBACompat->setVBACompatibilityMode( sal_True );
+ String aPrjName( RTL_CONSTASCII_USTRINGPARAM( "Standard" ) );
+ pShell->GetBasicManager()->SetName( aPrjName );
+
+ if( xLibContainer.is() )
+ {
+ if( !xLibContainer->hasByName( aPrjName ) )
+ xLibContainer->createLibrary( aPrjName );
+ uno::Any aLibAny = xLibContainer->getByName( aPrjName );
+ uno::Reference< container::XNameContainer > xLib;
+ aLibAny >>= xLib;
+ if( xLib.is() )
+ {
+ uno::Reference< script::vba::XVBAModuleInfo > xVBAModuleInfo( xLib, uno::UNO_QUERY_THROW );
+ uno::Reference< lang::XMultiServiceFactory> xSF( pShell->GetModel(), uno::UNO_QUERY_THROW);
+ // bootstrap vbaglobals
+ xSF->createInstance( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "ooo.vba.VBAGlobals")));
+ uno::Reference< container::XNameAccess > xVBACodeNamedObjectAccess( xSF->createInstance( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "ooo.vba.VBAObjectModuleObjectProvider"))), uno::UNO_QUERY_THROW );
+ // set up the module info for the workbook and sheets in the nealy created
+ // spreadsheet
+ ScDocument* pDoc = pShell->GetDocument();
+ String sCodeName = pDoc->GetCodeName();
+ if ( sCodeName.Len() == 0 )
+ {
+ sCodeName = String( RTL_CONSTASCII_USTRINGPARAM("ThisWorkbook") );
+ pDoc->SetCodeName( sCodeName );
+ }
+
+ std::vector< rtl::OUString > sDocModuleNames;
+ sDocModuleNames.push_back( sCodeName );
+
+ uno::Reference<container::XNameAccess > xSheets( xDoc->getSheets(), uno::UNO_QUERY_THROW );
+ uno::Sequence< rtl::OUString > sSheets( xSheets->getElementNames() );
+
+ for ( sal_Int32 index=0; index < sSheets.getLength() ; ++index )
+ {
+ sDocModuleNames.push_back( sSheets[ index ] );
+ }
+
+ std::vector<rtl::OUString>::iterator it_end = sDocModuleNames.end();
+
+ for ( std::vector<rtl::OUString>::iterator it = sDocModuleNames.begin(); it != it_end; ++it )
+ {
+ script::ModuleInfo sModuleInfo;
+
+ sModuleInfo.ModuleObject.set( xVBACodeNamedObjectAccess->getByName( *it ), uno::UNO_QUERY );
+ sModuleInfo.ModuleType = script::ModuleType::DOCUMENT;
+ xVBAModuleInfo->insertModuleInfo( *it, sModuleInfo );
+ if( xLib->hasByName( *it ) )
+ xLib->replaceByName( *it, uno::makeAny( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "Option VBASupport 1\n") ) ) );
+ else
+ xLib->insertByName( *it, uno::makeAny( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "Option VBASupport 1\n" ) ) ) );
+ }
+ }
+ }
+ }
+}
+
static uno::Any
-getWorkbook( uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< sheet::XSpreadsheetDocument > &xDoc, const uno::Any& aApplication )
+getWorkbook( uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< sheet::XSpreadsheetDocument > &xDoc, const uno::Reference< XHelperInterface >& xParent )
{
// FIXME: fine as long as ScVbaWorkbook is stateless ...
uno::Reference< frame::XModel > xModel( xDoc, uno::UNO_QUERY );
if( !xModel.is() )
return uno::Any();
- ScVbaWorkbook *pWb = new ScVbaWorkbook( uno::Reference< XHelperInterface >( aApplication, uno::UNO_QUERY_THROW ), xContext, xModel );
+ ScDocShell* pShell = excel::getDocShell( xModel );
+ if ( pShell )
+ {
+ String sCodeName = pShell->GetDocument()->GetCodeName();
+ uno::Reference< uno::XInterface > xIf = getUnoDocModule( sCodeName, pShell );
+ if ( xIf.is() )
+ {
+ OSL_TRACE(" *** Returning Module uno Object *** ");
+ return uno::makeAny( xIf );
+ }
+ }
+
+ ScVbaWorkbook *pWb = new ScVbaWorkbook( xParent, xContext, xModel );
return uno::Any( uno::Reference< excel::XWorkbook > (pWb) );
}
@@ -78,12 +161,12 @@ class WorkBookEnumImpl : public EnumerationHelperImpl
{
uno::Any m_aApplication;
public:
- WorkBookEnumImpl( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration, const uno::Any& aApplication ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xContext, xEnumeration ), m_aApplication( aApplication ) {}
+ WorkBookEnumImpl( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration, const uno::Any& aApplication ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xParent, xContext, xEnumeration ), m_aApplication( aApplication ) {}
virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
{
uno::Reference< sheet::XSpreadsheetDocument > xDoc( m_xEnumeration->nextElement(), uno::UNO_QUERY_THROW );
- return getWorkbook( m_xContext, xDoc, m_aApplication );
+ return getWorkbook( m_xContext, xDoc, m_xParent );
}
};
@@ -105,14 +188,14 @@ ScVbaWorkbooks::createEnumeration() throw (uno::RuntimeException)
// safer to create an enumeration based on this objects state
// rather than one effectively based of the desktop component
uno::Reference< container::XEnumerationAccess > xEnumerationAccess( m_xIndexAccess, uno::UNO_QUERY_THROW );
- return new WorkBookEnumImpl( mxContext, xEnumerationAccess->createEnumeration(), Application() );
+ return new WorkBookEnumImpl( mxParent, mxContext, xEnumerationAccess->createEnumeration(), Application() );
}
uno::Any
ScVbaWorkbooks::createCollectionObject( const css::uno::Any& aSource )
{
uno::Reference< sheet::XSpreadsheetDocument > xDoc( aSource, uno::UNO_QUERY_THROW );
- return getWorkbook( mxContext, xDoc, Application() );
+ return getWorkbook( mxContext, xDoc, mxParent );
}
@@ -121,8 +204,10 @@ ScVbaWorkbooks::Add() throw (uno::RuntimeException)
{
uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( VbaDocumentsBase::Add() , uno::UNO_QUERY_THROW );
+ // need to set up the document modules ( and vba mode ) here
+ setUpDocumentModules( xSpreadDoc );
if( xSpreadDoc.is() )
- return getWorkbook( mxContext, xSpreadDoc, Application() );
+ return getWorkbook( mxContext, xSpreadDoc, mxParent );
return uno::Any();
}
@@ -249,7 +334,7 @@ ScVbaWorkbooks::Open( const rtl::OUString& rFileName, const uno::Any& /*UpdateLi
throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Bad Format")), uno::Reference< uno::XInterface >() );
uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( VbaDocumentsBase::Open( rFileName, ReadOnly, sProps ), uno::UNO_QUERY_THROW );
- uno::Any aRet = getWorkbook( mxContext, xSpreadDoc, Application() );
+ uno::Any aRet = getWorkbook( mxContext, xSpreadDoc, mxParent );
uno::Reference< excel::XWorkbook > xWBook( aRet, uno::UNO_QUERY );
if ( xWBook.is() )
xWBook->Activate();
diff --git a/sc/source/ui/vba/vbaworksheet.cxx b/sc/source/ui/vba/vbaworksheet.cxx
index 5b1963e3d242..6ee6fa1f6b19 100644
--- a/sc/source/ui/vba/vbaworksheet.cxx
+++ b/sc/source/ui/vba/vbaworksheet.cxx
@@ -40,6 +40,7 @@
#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
#include <com/sun/star/sheet/XCalculatable.hpp>
#include <com/sun/star/sheet/XCellRangeAddressable.hpp>
+#include <com/sun/star/sheet/XCellRangeReferrer.hpp>
#include <com/sun/star/sheet/XSheetCellRange.hpp>
#include <com/sun/star/sheet/XSheetCellCursor.hpp>
#include <com/sun/star/sheet/XSheetAnnotationsSupplier.hpp>
@@ -60,6 +61,7 @@
#include <com/sun/star/form/FormComponentType.hpp>
#include <com/sun/star/form/XFormsSupplier.hpp>
#include <ooo/vba/excel/XlEnableSelection.hpp>
+#include <ooo/vba/excel/XWorkbook.hpp>
#include <ooo/vba/XControlProvider.hpp>
#include <comphelper/processfactory.hxx>
@@ -318,6 +320,40 @@ ScVbaWorksheet::setEnableSelection( sal_Int32 nSelection ) throw (uno::RuntimeEx
}
+uno::Reference< beans::XPropertySet > ScVbaWorksheet::getFirstDBRangeProperties() throw (uno::RuntimeException)
+{
+ uno::Reference< beans::XPropertySet > xModelProps( mxModel, uno::UNO_QUERY_THROW );
+ uno::Reference< container::XIndexAccess > xDBRangesIA( xModelProps->getPropertyValue(
+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DatabaseRanges" ) ) ), uno::UNO_QUERY_THROW );
+
+ for( sal_Int32 nIndex = 0, nCount = xDBRangesIA->getCount(); nIndex < nCount; ++nIndex )
+ {
+ uno::Reference< sheet::XCellRangeReferrer > xDBRange( xDBRangesIA->getByIndex( nIndex ), uno::UNO_QUERY_THROW );
+ // check if the database area is on this sheet
+ uno::Reference< sheet::XCellRangeAddressable > xRangeAddr( xDBRange->getReferredCells(), uno::UNO_QUERY_THROW );
+ if( getSheetID() == xRangeAddr->getRangeAddress().Sheet )
+ return uno::Reference< beans::XPropertySet >( xDBRange, uno::UNO_QUERY_THROW );
+ }
+ return uno::Reference< beans::XPropertySet >();
+}
+
+sal_Bool SAL_CALL ScVbaWorksheet::getAutoFilterMode() throw (uno::RuntimeException)
+{
+ uno::Reference< beans::XPropertySet > xDBRangeProps = getFirstDBRangeProperties();
+ sal_Bool bAutoFilterMode = sal_False;
+ return
+ xDBRangeProps.is() &&
+ (xDBRangeProps->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "AutoFilter" ) ) ) >>= bAutoFilterMode) &&
+ bAutoFilterMode;
+}
+
+void SAL_CALL ScVbaWorksheet::setAutoFilterMode( sal_Bool bAutoFilterMode ) throw (uno::RuntimeException)
+{
+ uno::Reference< beans::XPropertySet > xDBRangeProps = getFirstDBRangeProperties();
+ if( xDBRangeProps.is() )
+ xDBRangeProps->setPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "AutoFilter" ) ), uno::Any( bAutoFilterMode ) );
+}
+
uno::Reference< excel::XRange >
ScVbaWorksheet::getUsedRange() throw (uno::RuntimeException)
{
@@ -378,7 +414,7 @@ ScVbaWorksheet::getStandardHeight() throw (uno::RuntimeException)
sal_Bool
ScVbaWorksheet::getProtectionMode() throw (uno::RuntimeException)
{
- return false;
+ return sal_False;
}
sal_Bool
@@ -391,7 +427,13 @@ ScVbaWorksheet::getProtectContents()throw (uno::RuntimeException)
sal_Bool
ScVbaWorksheet::getProtectDrawingObjects() throw (uno::RuntimeException)
{
- return false;
+ return sal_False;
+}
+
+sal_Bool
+ScVbaWorksheet::getProtectScenarios() throw (uno::RuntimeException)
+{
+ return sal_False;
}
void
@@ -672,24 +714,26 @@ ScVbaWorksheet::Hyperlinks( const uno::Any& aIndex ) throw (uno::RuntimeExceptio
}
uno::Any SAL_CALL
+ScVbaWorksheet::Names( const css::uno::Any& aIndex ) throw (uno::RuntimeException)
+{
+ uno::Reference< excel::XWorkbook > xWorkbook( getParent(), uno::UNO_QUERY_THROW );
+ return xWorkbook->Names( aIndex );
+}
+
+uno::Any SAL_CALL
ScVbaWorksheet::OLEObjects( const uno::Any& Index ) throw (uno::RuntimeException)
{
- ScVbaOLEObjects* aOleObjects;
uno::Reference< sheet::XSpreadsheet > xSpreadsheet( getSheet(), uno::UNO_QUERY_THROW );
uno::Reference< drawing::XDrawPageSupplier > xDrawPageSupplier( xSpreadsheet, uno::UNO_QUERY_THROW );
uno::Reference< drawing::XDrawPage > xDrawPage( xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY_THROW );
uno::Reference< container::XIndexAccess > xIndexAccess( xDrawPage, uno::UNO_QUERY_THROW );
- aOleObjects = new ScVbaOLEObjects( this, mxContext, xIndexAccess );
+ uno::Reference< excel::XOLEObjects >xOleObjects( new ScVbaOLEObjects( this, mxContext, xIndexAccess ) );
if( Index.hasValue() )
- {
- return aOleObjects->Item( Index, uno::Any() );
- }
- else
- {
- return uno::makeAny( uno::Reference< excel::XOLEObjects> ( aOleObjects ) );
- }
+ return xOleObjects->Item( Index, uno::Any() );
+ return uno::Any( xOleObjects );
}
+
uno::Any SAL_CALL
ScVbaWorksheet::Shapes( const uno::Any& aIndex ) throw (uno::RuntimeException)
{
diff --git a/sc/source/ui/vba/vbaworksheet.hxx b/sc/source/ui/vba/vbaworksheet.hxx
index d07cc1a8d55c..78bcc2503a49 100644
--- a/sc/source/ui/vba/vbaworksheet.hxx
+++ b/sc/source/ui/vba/vbaworksheet.hxx
@@ -68,6 +68,9 @@ class ScVbaWorksheet : public WorksheetImpl_BASE
css::uno::Reference< css::container::XNameAccess > getFormControls();
css::uno::Any getControlShape( const rtl::OUString& sName );
+
+ css::uno::Reference< css::beans::XPropertySet > getFirstDBRangeProperties() throw (css::uno::RuntimeException);
+
protected:
ScVbaWorksheet( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext );
@@ -95,6 +98,7 @@ public:
virtual ::sal_Bool SAL_CALL getProtectionMode() throw (css::uno::RuntimeException);
virtual ::sal_Bool SAL_CALL getProtectContents() throw (css::uno::RuntimeException);
virtual ::sal_Bool SAL_CALL getProtectDrawingObjects() throw (css::uno::RuntimeException);
+ virtual ::sal_Bool SAL_CALL getProtectScenarios() throw (css::uno::RuntimeException);
virtual css::uno::Reference< ov::excel::XRange > SAL_CALL getUsedRange() throw (css::uno::RuntimeException) ;
virtual css::uno::Any SAL_CALL ChartObjects( const css::uno::Any& Index ) throw (css::uno::RuntimeException);
virtual css::uno::Reference< ov::excel::XOutline > SAL_CALL Outline( ) throw (css::uno::RuntimeException);
@@ -106,6 +110,8 @@ public:
virtual sal_Int16 SAL_CALL getIndex() throw (css::uno::RuntimeException);
virtual sal_Int32 SAL_CALL getEnableSelection() throw (css::uno::RuntimeException);
virtual void SAL_CALL setEnableSelection( sal_Int32 nSelection ) throw (css::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL getAutoFilterMode() throw (css::uno::RuntimeException);
+ virtual void SAL_CALL setAutoFilterMode( sal_Bool bAutoFilterMode ) throw (css::uno::RuntimeException);
// Methods
virtual void SAL_CALL Activate() throw (css::uno::RuntimeException);
@@ -129,6 +135,7 @@ public:
virtual css::uno::Any SAL_CALL PivotTables( const css::uno::Any& Index ) throw (css::uno::RuntimeException);
virtual css::uno::Any SAL_CALL Comments( const css::uno::Any& Index ) throw (css::uno::RuntimeException);
virtual css::uno::Any SAL_CALL Hyperlinks( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
+ virtual css::uno::Any SAL_CALL Names( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
virtual css::uno::Any SAL_CALL OLEObjects( const css::uno::Any& Index ) throw (css::uno::RuntimeException);
virtual css::uno::Any SAL_CALL Shapes( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
diff --git a/sc/source/ui/vba/vbaworksheets.cxx b/sc/source/ui/vba/vbaworksheets.cxx
index 60cf7b904026..7fa5196a6b04 100644
--- a/sc/source/ui/vba/vbaworksheets.cxx
+++ b/sc/source/ui/vba/vbaworksheets.cxx
@@ -52,6 +52,7 @@
#include "vbaglobals.hxx"
#include "vbaworksheet.hxx"
#include "vbaworkbook.hxx"
+#include "unonames.hxx"
using namespace ::ooo::vba;
using namespace ::com::sun::star;
@@ -63,6 +64,27 @@ typedef ::cppu::WeakImplHelper3< container::XNameAccess, container::XIndexAccess
// (as added ) of the items
typedef std::vector< uno::Reference< sheet::XSpreadsheet > > SheetMap;
+
+// #FIXME #TODO the implementation of the Sheets collections sucks,
+// e.g. there is no support for tracking sheets added/removed from the collection
+
+uno::Reference< uno::XInterface >
+lcl_getModulAsUnoObject( const uno::Reference< sheet::XSpreadsheet >& xSheet, const uno::Reference< frame::XModel >& xModel ) throw ( uno::RuntimeException )
+{
+ uno::Reference< uno::XInterface > xRet;
+ if ( !xSheet.is() )
+ throw uno::RuntimeException();
+ uno::Reference< beans::XPropertySet > xProps( xSheet, uno::UNO_QUERY_THROW );
+ rtl::OUString sName;
+ xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SC_UNO_CODENAME ) ) ) >>= sName;
+
+ ScDocShell* pShell = excel::getDocShell( xModel );
+
+ if ( pShell )
+ xRet = getUnoDocModule( sName, pShell );
+ return xRet;
+}
+
class WorkSheetsEnumeration : public SheetEnumeration_BASE
{
SheetMap mSheetMap;
@@ -145,14 +167,24 @@ public:
class SheetsEnumeration : public EnumerationHelperImpl
{
uno::Reference< frame::XModel > m_xModel;
- uno::WeakReference< XHelperInterface > m_xParent;
public:
- SheetsEnumeration( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration, const uno::Reference< frame::XModel >& xModel ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xContext, xEnumeration ), m_xModel( xModel ), m_xParent( xParent ) {}
+ SheetsEnumeration( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration, const uno::Reference< frame::XModel >& xModel ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xParent, xContext, xEnumeration ), m_xModel( xModel ) {}
virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
{
uno::Reference< sheet::XSpreadsheet > xSheet( m_xEnumeration->nextElement(), uno::UNO_QUERY_THROW );
- return uno::makeAny( uno::Reference< excel::XWorksheet > ( new ScVbaWorksheet( m_xParent, m_xContext, xSheet, m_xModel ) ) );
+ uno::Reference< uno::XInterface > xIf = lcl_getModulAsUnoObject( xSheet, m_xModel );
+ uno::Any aRet;
+ if ( !xIf.is() )
+ {
+ // if the Sheet is in a document created by the api unfortunately ( at the
+ // moment, it actually wont have the special Document modules
+ uno::Reference< excel::XWorksheet > xNewSheet( new ScVbaWorksheet( m_xParent, m_xContext, xSheet, m_xModel ) );
+ aRet <<= xNewSheet;
+ }
+ else
+ aRet <<= xIf;
+ return aRet;
}
};
@@ -188,7 +220,18 @@ uno::Any
ScVbaWorksheets::createCollectionObject( const uno::Any& aSource )
{
uno::Reference< sheet::XSpreadsheet > xSheet( aSource, uno::UNO_QUERY );
- return uno::makeAny( uno::Reference< excel::XWorksheet > ( new ScVbaWorksheet( getParent(), mxContext, xSheet, mxModel ) ) );
+ uno::Reference< XInterface > xIf = lcl_getModulAsUnoObject( xSheet, mxModel );
+ uno::Any aRet;
+ if ( !xIf.is() )
+ {
+ // if the Sheet is in a document created by the api unfortunately ( at the
+ // moment, it actually wont have the special Document modules
+ uno::Reference< excel::XWorksheet > xNewSheet( new ScVbaWorksheet( getParent(), mxContext, xSheet, mxModel ) );
+ aRet <<= xNewSheet;
+ }
+ else
+ aRet <<= xIf;
+ return aRet;
}
// XWorksheets
diff --git a/sc/source/ui/view/formatsh.cxx b/sc/source/ui/view/formatsh.cxx
index e364705f90b6..12a1bb87211b 100644
--- a/sc/source/ui/view/formatsh.cxx
+++ b/sc/source/ui/view/formatsh.cxx
@@ -551,6 +551,8 @@ void __EXPORT ScFormatShell::ExecuteStyle( SfxRequest& rReq )
if ( bConvertBack )
// Namen zu Style-Pointer
pDoc->UpdStlShtPtrsFrmNms();
+ else
+ pDoc->GetPool()->CellStyleCreated( aStyleName );
// Attribute uebernehmen und Style anwenden
pStyleSheet->GetItemSet().Put( aAttrSet );
@@ -839,6 +841,8 @@ void __EXPORT ScFormatShell::ExecuteStyle( SfxRequest& rReq )
rNewSet.Put( SvxLanguageItem(
pNew->GetLanguage(), ATTR_LANGUAGE_FORMAT ) );
}
+
+ pDoc->GetPool()->CellStyleCreated( pStyleSheet->GetName() );
}
else
{
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index db72d87f30a2..0f07b8772254 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -69,6 +69,8 @@
#include <com/sun/star/sheet/MemberResultFlags.hpp>
#include <com/sun/star/awt/KeyModifier.hpp>
#include <com/sun/star/awt/MouseButton.hpp>
+#include <com/sun/star/script/vba/VBAEventId.hpp>
+#include <com/sun/star/script/vba/XVBAEventProcessor.hpp>
#include "gridwin.hxx"
#include "tabvwsh.hxx"
@@ -119,6 +121,7 @@
#include "tabprotection.hxx"
#include "postit.hxx"
#include "dpcontrol.hxx"
+#include "cellsuno.hxx"
#include "drawview.hxx"
#include <svx/sdrpagewindow.hxx>
@@ -366,6 +369,32 @@ void lcl_UnLockComment( ScDrawView* pView, SdrPageView* pPV, SdrModel* pDrDoc, c
}
}
+sal_Bool lcl_GetHyperlinkCell(ScDocument* pDoc, SCCOL& rPosX, SCROW& rPosY, SCTAB nTab, ScBaseCell*& rpCell )
+{
+ BOOL bFound = FALSE;
+ do
+ {
+ pDoc->GetCell( rPosX, rPosY, nTab, rpCell );
+ if ( !rpCell || rpCell->GetCellType() == CELLTYPE_NOTE )
+ {
+ if ( rPosX <= 0 )
+ return FALSE; // alles leer bis links
+ else
+ --rPosX; // weitersuchen
+ }
+ else if ( rpCell->GetCellType() == CELLTYPE_EDIT)
+ bFound = TRUE;
+ else if (rpCell->GetCellType() == CELLTYPE_FORMULA &&
+ static_cast<ScFormulaCell*>(rpCell)->IsHyperLinkCell())
+ bFound = TRUE;
+ else
+ return FALSE; // andere Zelle
+ }
+ while ( !bFound );
+
+ return bFound;
+}
+
// ---------------------------------------------------------------------------
// WB_DIALOGCONTROL noetig fuer UNO-Controls
ScGridWindow::ScGridWindow( Window* pParent, ScViewData* pData, ScSplitPos eWhichPos )
@@ -2100,6 +2129,30 @@ void __EXPORT ScGridWindow::MouseButtonUp( const MouseEvent& rMEvt )
{
nMouseStatus = SC_GM_NONE; // keinen Doppelklick anfangen
ScGlobal::OpenURL( aUrl, aTarget );
+
+ // fire worksheet_followhyperlink event
+ uno::Reference< script::vba::XVBAEventProcessor > xVbaEvents = pDoc->GetVbaEventProcessor();
+ if( xVbaEvents.is() ) try
+ {
+ Point aPos = rMEvt.GetPosPixel();
+ SCsCOL nPosX;
+ SCsROW nPosY;
+ SCTAB nTab = pViewData->GetTabNo();
+ pViewData->GetPosFromPixel( aPos.X(), aPos.Y(), eWhich, nPosX, nPosY );
+ ScBaseCell* pCell = NULL;
+ if( lcl_GetHyperlinkCell( pDoc, nPosX, nPosY, nTab, pCell ) )
+ {
+ ScAddress aCellPos( nPosX, nPosY, nTab );
+ uno::Reference< table::XCell > xCell( new ScCellObj( pViewData->GetDocShell(), aCellPos ) );
+ uno::Sequence< uno::Any > aArgs(1);
+ aArgs[0] <<= xCell;
+ xVbaEvents->processVbaEvent( script::vba::VBAEventId::WORKSHEET_FOLLOWHYPERLINK, aArgs );
+ }
+ }
+ catch( uno::Exception& )
+ {
+ }
+
return;
}
}
@@ -4818,26 +4871,9 @@ BOOL ScGridWindow::GetEditUrlOrError( BOOL bSpellErr, const Point& rPos,
ScDocument* pDoc = pDocSh->GetDocument();
ScBaseCell* pCell = NULL;
- BOOL bFound = FALSE;
- do
- {
- pDoc->GetCell( nPosX, nPosY, nTab, pCell );
- if ( !pCell || pCell->GetCellType() == CELLTYPE_NOTE )
- {
- if ( nPosX <= 0 )
- return FALSE; // alles leer bis links
- else
- --nPosX; // weitersuchen
- }
- else if ( pCell->GetCellType() == CELLTYPE_EDIT)
- bFound = TRUE;
- else if (pCell->GetCellType() == CELLTYPE_FORMULA &&
- static_cast<ScFormulaCell*>(pCell)->IsHyperLinkCell())
- bFound = TRUE;
- else
- return FALSE; // andere Zelle
- }
- while ( !bFound );
+ BOOL bFound = lcl_GetHyperlinkCell( pDoc, nPosX, nPosY, nTab, pCell );
+ if( !bFound )
+ return FALSE;
ScHideTextCursor aHideCursor( pViewData, eWhich ); // before GetEditArea (MapMode is changed)
diff --git a/sc/source/ui/view/gridwin2.cxx b/sc/source/ui/view/gridwin2.cxx
index f8b5c25c4a70..669f1fda010d 100644
--- a/sc/source/ui/view/gridwin2.cxx
+++ b/sc/source/ui/view/gridwin2.cxx
@@ -144,8 +144,9 @@ bool ScGridWindow::DoAutoFilterButton( SCCOL nCol, SCROW nRow, const MouseEvent&
Size aScrSize(nSizeX-1, nSizeY-1);
// Check if the mouse cursor is clicking on the popup arrow box.
- mpFilterButton.reset(new ScDPFieldButton(this, &GetSettings().GetStyleSettings(), &pViewData->GetZoomX(), &pViewData->GetZoomY()));
- mpFilterButton->setBoundingBox(aScrPos, aScrSize);
+ mpFilterButton.reset(new ScDPFieldButton(this, &GetSettings().GetStyleSettings(), &pViewData->GetZoomX(), &pViewData->GetZoomY(), pDoc));
+ mpFilterButton->setBoundingBox(aScrPos, aScrSize, bLayoutRTL);
+ mpFilterButton->setPopupLeft(bLayoutRTL); // #i114944# AutoFilter button is left-aligned in RTL
Point aPopupPos;
Size aPopupSize;
mpFilterButton->getPopupBoundingBox(aPopupPos, aPopupSize);
@@ -309,10 +310,17 @@ void ScGridWindow::DPTestMouse( const MouseEvent& rMEvt, BOOL bMove )
aPosRect, nOrient, nDimPos );
UpdateDragRect( bHasRange && bMove, aPosRect );
+ BOOL bIsDataLayout;
+ sal_Int32 nDimFlags = 0;
+ String aDimName = pDragDPObj->GetDimName( nDPField, bIsDataLayout, &nDimFlags );
+ bool bAllowed = !bHasRange || ScDPObject::IsOrientationAllowed( nOrient, nDimFlags );
+
if (bMove) // set mouse pointer
{
PointerStyle ePointer = POINTER_PIVOT_DELETE;
- if ( bHasRange )
+ if ( !bAllowed )
+ ePointer = POINTER_NOTALLOWED;
+ else if ( bHasRange )
switch (nOrient)
{
case sheet::DataPilotFieldOrientation_COLUMN: ePointer = POINTER_PIVOT_COL; break;
@@ -327,15 +335,13 @@ void ScGridWindow::DPTestMouse( const MouseEvent& rMEvt, BOOL bMove )
if (!bHasRange)
nOrient = sheet::DataPilotFieldOrientation_HIDDEN;
- BOOL bIsDataLayout;
- String aDimName = pDragDPObj->GetDimName( nDPField, bIsDataLayout );
if ( bIsDataLayout && ( nOrient != sheet::DataPilotFieldOrientation_COLUMN &&
nOrient != sheet::DataPilotFieldOrientation_ROW ) )
{
// removing data layout is not allowed
pViewData->GetView()->ErrorMessage(STR_PIVOT_MOVENOTALLOWED);
}
- else
+ else if ( bAllowed )
{
ScDPSaveData aSaveData( *pDragDPObj->GetSaveData() );
@@ -366,6 +372,8 @@ void ScGridWindow::DPTestMouse( const MouseEvent& rMEvt, BOOL bMove )
bool ScGridWindow::DPTestFieldPopupArrow(const MouseEvent& rMEvt, const ScAddress& rPos, ScDPObject* pDPObj)
{
+ BOOL bLayoutRTL = pViewData->GetDocument()->IsLayoutRTL( pViewData->GetTabNo() );
+
// Get the geometry of the cell.
Point aScrPos = pViewData->GetScrPos(rPos.Col(), rPos.Row(), eWhich);
long nSizeX, nSizeY;
@@ -374,7 +382,8 @@ bool ScGridWindow::DPTestFieldPopupArrow(const MouseEvent& rMEvt, const ScAddres
// Check if the mouse cursor is clicking on the popup arrow box.
ScDPFieldButton aBtn(this, &GetSettings().GetStyleSettings());
- aBtn.setBoundingBox(aScrPos, aScrSize);
+ aBtn.setBoundingBox(aScrPos, aScrSize, bLayoutRTL);
+ aBtn.setPopupLeft(false); // DataPilot popup is always right-aligned for now
Point aPopupPos;
Size aPopupSize;
aBtn.getPopupBoundingBox(aPopupPos, aPopupSize);
@@ -515,9 +524,16 @@ void ScGridWindow::DPLaunchFieldPopupMenu(
}
}
+ BOOL bLayoutRTL = pViewData->GetDocument()->IsLayoutRTL( pViewData->GetTabNo() );
+
Rectangle aCellRect(rScrPos, rScrSize);
const Size& rPopupSize = mpDPFieldPopup->getWindowSize();
- if (rScrSize.getWidth() > rPopupSize.getWidth())
+ if (bLayoutRTL)
+ {
+ // RTL: rScrPos is logical-left (visual right) position, always right-align with that
+ aCellRect.SetPos(Point(rScrPos.X() - rPopupSize.Width() + 1, rScrPos.Y()));
+ }
+ else if (rScrSize.getWidth() > rPopupSize.getWidth())
{
// If the cell width is larger than the popup window width, launch it
// right-aligned with the cell.
diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index d8024e439173..372dcc582a45 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -401,17 +401,13 @@ void __EXPORT ScGridWindow::Paint( const Rectangle& rRect )
nScrX += ScViewData::ToPixel( pDoc->GetColWidth( nX2, nTab ), nPPTX );
}
- long nScrY = ScViewData::ToPixel( pDoc->GetRowHeight( nY1, nTab ), nPPTY );
- while ( nScrY <= aPixRect.Top() && nY1 < MAXROW )
- {
- ++nY1;
- nScrY += ScViewData::ToPixel( pDoc->GetRowHeight( nY1, nTab ), nPPTY );
- }
+ long nScrY = 0;
+ ScViewData::AddPixelsWhile( nScrY, aPixRect.Top(), nY1, MAXROW, nPPTY, pDoc, nTab);
SCROW nY2 = nY1;
- while ( nScrY <= aPixRect.Bottom() && nY2 < MAXROW )
+ if (nScrY <= aPixRect.Bottom() && nY2 < MAXROW)
{
++nY2;
- nScrY += ScViewData::ToPixel( pDoc->GetRowHeight( nY2, nTab ), nPPTY );
+ ScViewData::AddPixelsWhile( nScrY, aPixRect.Bottom(), nY2, MAXROW, nPPTY, pDoc, nTab);
}
Draw( nX1,nY1,nX2,nY2, SC_UPDATE_MARKS ); // nicht weiterzeichnen
@@ -750,6 +746,15 @@ void ScGridWindow::Draw( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, ScUpdateMod
if ( !bLogicText )
aOutputData.DrawStrings(FALSE); // in pixel MapMode
+ // edit cells and printer-metrics text must be before the buttons
+ // (DataPilot buttons contain labels in UI font)
+
+ pContentDev->SetMapMode(pViewData->GetLogicMode(eWhich));
+ if ( bLogicText )
+ aOutputData.DrawStrings(TRUE); // in logic MapMode if bTextWysiwyg is set
+ aOutputData.DrawEdit(TRUE);
+ pContentDev->SetMapMode(MAP_PIXEL);
+
// Autofilter- und Pivot-Buttons
DrawButtons( nX1, nY1, nX2, nY2, aTabInfo, pContentDev ); // Pixel
@@ -759,14 +764,6 @@ void ScGridWindow::Draw( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, ScUpdateMod
if ( rOpts.GetOption( VOPT_NOTES ) )
aOutputData.DrawNoteMarks();
- // Edit-Zellen
-
- pContentDev->SetMapMode(pViewData->GetLogicMode(eWhich));
- if ( bLogicText )
- aOutputData.DrawStrings(TRUE); // in logic MapMode if bTextWysiwyg is set
- aOutputData.DrawEdit(TRUE);
-
- pContentDev->SetMapMode(MAP_PIXEL);
if ( !bGridFirst && ( bGrid || bPage ) )
{
aOutputData.DrawGrid( bGrid, bPage );
@@ -1208,14 +1205,14 @@ void ScGridWindow::DrawButtons( SCCOL nX1, SCROW /*nY1*/, SCCOL nX2, SCROW /*nY2
{
aComboButton.SetOutputDevice( pContentDev );
- ScDPFieldButton aCellBtn(pContentDev, &GetSettings().GetStyleSettings(), &pViewData->GetZoomX(), &pViewData->GetZoomY());
+ ScDocument* pDoc = pViewData->GetDocument();
+ ScDPFieldButton aCellBtn(pContentDev, &GetSettings().GetStyleSettings(), &pViewData->GetZoomX(), &pViewData->GetZoomY(), pDoc);
SCCOL nCol;
SCROW nRow;
SCSIZE nArrY;
SCSIZE nQuery;
SCTAB nTab = pViewData->GetTabNo();
- ScDocument* pDoc = pViewData->GetDocument();
ScDBData* pDBData = NULL;
ScQueryParam* pQueryParam = NULL;
@@ -1294,7 +1291,8 @@ void ScGridWindow::DrawButtons( SCCOL nX1, SCROW /*nY1*/, SCCOL nX2, SCROW /*nY2
pViewData->GetMergeSizePixel( nCol, nRow, nSizeX, nSizeY );
Point aScrPos = pViewData->GetScrPos( nCol, nRow, eWhich );
- aCellBtn.setBoundingBox(aScrPos, Size(nSizeX-1, nSizeY-1));
+ aCellBtn.setBoundingBox(aScrPos, Size(nSizeX-1, nSizeY-1), bLayoutRTL);
+ aCellBtn.setPopupLeft(bLayoutRTL); // #i114944# AutoFilter button is left-aligned in RTL
aCellBtn.setDrawBaseButton(false);
aCellBtn.setDrawPopupButton(true);
aCellBtn.setHasHiddenMember(bArrowState);
@@ -1318,17 +1316,13 @@ void ScGridWindow::DrawButtons( SCCOL nX1, SCROW /*nY1*/, SCCOL nX2, SCROW /*nY2
pViewData->GetMergeSizePixel( nCol, nRow, nSizeX, nSizeY );
long nPosX = aScrPos.X();
long nPosY = aScrPos.Y();
- if ( bLayoutRTL )
- {
- // overwrite the right, not left (visually) grid as long as the
- // left/right colors of the button borders aren't mirrored.
- nPosX -= nSizeX - 2;
- }
+ // bLayoutRTL is handled in setBoundingBox
String aStr;
pDoc->GetString(nCol, nRow, nTab, aStr);
aCellBtn.setText(aStr);
- aCellBtn.setBoundingBox(Point(nPosX, nPosY), Size(nSizeX-1, nSizeY-1));
+ aCellBtn.setBoundingBox(Point(nPosX, nPosY), Size(nSizeX-1, nSizeY-1), bLayoutRTL);
+ aCellBtn.setPopupLeft(false); // DataPilot popup is always right-aligned for now
aCellBtn.setDrawBaseButton(true);
aCellBtn.setDrawPopupButton(pInfo->bPopupButton);
aCellBtn.setHasHiddenMember(pInfo->bFilterActive);
diff --git a/sc/source/ui/view/output.cxx b/sc/source/ui/view/output.cxx
index 961572fc0185..7b27ddf3f8cc 100644
--- a/sc/source/ui/view/output.cxx
+++ b/sc/source/ui/view/output.cxx
@@ -489,6 +489,8 @@ void ScOutputData::DrawGrid( BOOL bGrid, BOOL bPage )
// Horizontale Linien
//
+ bool bHiddenRow = true;
+ SCROW nHiddenEndRow = -1;
nPosY = nScrY;
for (nArrY=1; nArrY+1<nArrCount; nArrY++)
{
@@ -503,9 +505,17 @@ void ScOutputData::DrawGrid( BOOL bGrid, BOOL bPage )
{
for (SCROW i = nYplus1; i <= MAXROW; ++i)
{
+ if (i > nHiddenEndRow)
+ bHiddenRow = pDoc->RowHidden(i, nTab, nHiddenEndRow);
+ /* TODO: optimize the row break thing for large hidden
+ * segments where HasRowBreak() has to be called
+ * nevertheless for each row, as a row break is drawn also
+ * for hidden rows, above them. This needed to be done only
+ * once per hidden segment, maybe giving manual breaks
+ * priority. Something like GetNextRowBreak() and
+ * GetNextManualRowBreak(). */
nBreak = pDoc->HasRowBreak(i, nTab);
- bool bHidden = pDoc->RowHidden(i, nTab);
- if (nBreak || !bHidden)
+ if (!bHiddenRow || nBreak)
break;
}
diff --git a/sc/source/ui/view/output2.cxx b/sc/source/ui/view/output2.cxx
index b0b040f9b5e0..61289cc7f931 100644
--- a/sc/source/ui/view/output2.cxx
+++ b/sc/source/ui/view/output2.cxx
@@ -80,7 +80,7 @@
#include <math.h>
//! Autofilter-Breite mit column.cxx zusammenfassen
-#define DROPDOWN_BITMAP_SIZE 17
+#define DROPDOWN_BITMAP_SIZE 18
#define DRAWTEXT_MAX 32767
@@ -171,12 +171,11 @@ public:
private:
void SetHashText();
- long GetMaxDigitWidth();
+ long GetMaxDigitWidth(); // in logic units
long GetSignWidth();
long GetDotWidth();
long GetExpWidth();
void TextChanged();
- long ConvertWidthLogicToPixel( long nWidth ) const;
};
//==================================================================
@@ -518,6 +517,10 @@ void ScDrawStringsVars::SetHashText()
void ScDrawStringsVars::SetTextToWidthOrHash( ScBaseCell* pCell, long nWidth )
{
+ // #i113045# do the single-character width calculations in logic units
+ if (bPixelToLogic)
+ nWidth = pOutput->pRefDevice->PixelToLogic(Size(nWidth,0)).Width();
+
if (!pCell)
return;
@@ -565,6 +568,12 @@ void ScDrawStringsVars::SetTextToWidthOrHash( ScBaseCell* pCell, long nWidth )
else if (c == sal_Unicode('E'))
++nExpCount;
}
+
+ // #i112250# A small value might be formatted as "0" when only counting the digits,
+ // but fit into the column when considering the smaller width of the decimal separator.
+ if (aString.EqualsAscii("0") && fVal != 0.0)
+ nDecimalCount = 1;
+
if (nDecimalCount)
nWidth += (nMaxDigit - GetDotWidth()) * nDecimalCount;
if (nSignCount)
@@ -582,10 +591,6 @@ void ScDrawStringsVars::SetTextToWidthOrHash( ScBaseCell* pCell, long nWidth )
}
long nActualTextWidth = pOutput->pFmtDevice->GetTextWidth(aString);
-
- if (bPixelToLogic)
- nActualTextWidth = ConvertWidthLogicToPixel(nActualTextWidth);
-
if (nActualTextWidth > nWidth)
{
// Even after the decimal adjustment the text doesn't fit. Give up.
@@ -594,6 +599,7 @@ void ScDrawStringsVars::SetTextToWidthOrHash( ScBaseCell* pCell, long nWidth )
}
TextChanged();
+ pLastCell = NULL; // #i113022# equal cell and format in another column may give different string
}
void ScDrawStringsVars::SetAutoText( const String& rAutoText )
@@ -638,9 +644,6 @@ long ScDrawStringsVars::GetMaxDigitWidth()
long n = pOutput->pFmtDevice->GetTextWidth(String(cDigit));
nMaxDigitWidth = ::std::max(nMaxDigitWidth, n);
}
-
- if (bPixelToLogic)
- nMaxDigitWidth = ConvertWidthLogicToPixel(nMaxDigitWidth);
return nMaxDigitWidth;
}
@@ -650,8 +653,6 @@ long ScDrawStringsVars::GetSignWidth()
return nSignWidth;
nSignWidth = pOutput->pFmtDevice->GetTextWidth(String('-'));
- if (bPixelToLogic)
- nSignWidth = ConvertWidthLogicToPixel(nSignWidth);
return nSignWidth;
}
@@ -662,8 +663,6 @@ long ScDrawStringsVars::GetDotWidth()
const ::rtl::OUString& sep = ScGlobal::GetpLocaleData()->getLocaleItem().decimalSeparator;
nDotWidth = pOutput->pFmtDevice->GetTextWidth(sep);
- if (bPixelToLogic)
- nDotWidth = ConvertWidthLogicToPixel(nDotWidth);
return nDotWidth;
}
@@ -673,8 +672,6 @@ long ScDrawStringsVars::GetExpWidth()
return nExpWidth;
nExpWidth = pOutput->pFmtDevice->GetTextWidth(String('E'));
- if (bPixelToLogic)
- nExpWidth = ConvertWidthLogicToPixel(nExpWidth);
return nExpWidth;
}
@@ -704,13 +701,6 @@ void ScDrawStringsVars::TextChanged()
aTextSize = pRefDevice->LogicToPixel( aTextSize );
}
-long ScDrawStringsVars::ConvertWidthLogicToPixel( long nWidth ) const
-{
- Size aSize(nWidth, pOutput->pFmtDevice->GetTextHeight());
- aSize = pOutput->pRefDevice->LogicToPixel(aSize);
- return aSize.Width();
-}
-
BOOL ScDrawStringsVars::HasEditCharacters() const
{
static const sal_Unicode pChars[] =
@@ -1284,7 +1274,8 @@ void ScOutputData::GetOutputArea( SCCOL nX, SCSIZE nArrY, long nPosX, long nPosY
( static_cast<const ScMergeFlagAttr&>(rPattern.GetItem(ATTR_MERGE_FLAG)).GetValue() & SC_MF_AUTO ) &&
( !bBreak || pRefDevice == pFmtDevice ) )
{
- long nFilter = Min( nMergeSizeY, (long) DROPDOWN_BITMAP_SIZE );
+ // filter drop-down width is now independent from row height
+ const long nFilter = DROPDOWN_BITMAP_SIZE;
BOOL bFit = ( nNeeded + nFilter <= nMergeSizeX );
if ( bFit || bCellIsValue )
{
@@ -3526,20 +3517,11 @@ void ScOutputData::DrawRotated(BOOL bPixelToLogic)
eOrient!=SVX_ORIENTATION_STACKED &&
pInfo && pInfo->bAutoFilter)
{
- if (pRowInfo[nArrY].nHeight < DROPDOWN_BITMAP_SIZE)
- {
- if (bPixelToLogic)
- nAvailWidth -= pRefDevice->PixelToLogic(Size(0,pRowInfo[nArrY].nHeight)).Height();
- else
- nAvailWidth -= pRowInfo[nArrY].nHeight;
- }
+ // filter drop-down width is now independent from row height
+ if (bPixelToLogic)
+ nAvailWidth -= pRefDevice->PixelToLogic(Size(0,DROPDOWN_BITMAP_SIZE)).Height();
else
- {
- if (bPixelToLogic)
- nAvailWidth -= pRefDevice->PixelToLogic(Size(0,DROPDOWN_BITMAP_SIZE)).Height();
- else
- nAvailWidth -= DROPDOWN_BITMAP_SIZE;
- }
+ nAvailWidth -= DROPDOWN_BITMAP_SIZE;
long nComp = nEngineWidth;
if (nAvailWidth<nComp) nAvailWidth=nComp;
}
diff --git a/sc/source/ui/view/prevwsh.cxx b/sc/source/ui/view/prevwsh.cxx
index aedb512bcdaf..bd5d59718873 100644
--- a/sc/source/ui/view/prevwsh.cxx
+++ b/sc/source/ui/view/prevwsh.cxx
@@ -108,7 +108,11 @@ SFX_IMPL_INTERFACE( ScPreviewShell, SfxViewShell, ScResId(SCSTR_PREVIEWSHELL) )
SFX_POPUPMENU_REGISTRATION(ScResId(RID_POPUP_PREVIEW));
}
+<<<<<<< local
SFX_IMPL_VIEWFACTORY( ScPreviewShell )
+=======
+SFX_IMPL_NAMED_VIEWFACTORY( ScPreviewShell, "PrintPreview" )
+>>>>>>> other
{
SFX_VIEW_REGISTRATION(ScDocShell);
}
diff --git a/sc/source/ui/view/prevwsh2.cxx b/sc/source/ui/view/prevwsh2.cxx
index 07af90f797aa..84868b5377de 100644
--- a/sc/source/ui/view/prevwsh2.cxx
+++ b/sc/source/ui/view/prevwsh2.cxx
@@ -126,10 +126,6 @@
//#define _GRAPH_HXX
#define _SOUND_HXX
-#if defined WIN
-#define _MENUBTN_HXX
-#endif
-
//svtools
#define _SCRWIN_HXX
#define _RULER_HXX
diff --git a/sc/source/ui/view/scextopt.cxx b/sc/source/ui/view/scextopt.cxx
index 1faa105d2bd7..d5816ecdd289 100644
--- a/sc/source/ui/view/scextopt.cxx
+++ b/sc/source/ui/view/scextopt.cxx
@@ -197,20 +197,27 @@ ScExtTabSettings& ScExtDocOptions::GetOrCreateTabSettings( SCTAB nTab )
return mxImpl->maTabSett.GetOrCreateTabSettings( nTab );
}
-size_t ScExtDocOptions::GetCodeNameCount() const
+SCTAB ScExtDocOptions::GetCodeNameCount() const
{
- return mxImpl->maCodeNames.size();
+ return static_cast< SCTAB >( mxImpl->maCodeNames.size() );
}
-const String& ScExtDocOptions::GetCodeName( size_t nIdx ) const
+const String& ScExtDocOptions::GetCodeName( SCTAB nTab ) const
{
- DBG_ASSERT( nIdx < GetCodeNameCount(), "ScExtDocOptions::GetCodeName - invalid index" );
- return (nIdx < GetCodeNameCount()) ? mxImpl->maCodeNames[ nIdx ] : EMPTY_STRING;
+ DBG_ASSERT( (0 <= nTab) && (nTab < GetCodeNameCount()), "ScExtDocOptions::GetCodeName - invalid sheet index" );
+ return ((0 <= nTab) && (nTab < GetCodeNameCount())) ? mxImpl->maCodeNames[ static_cast< size_t >( nTab ) ] : EMPTY_STRING;
}
-void ScExtDocOptions::AppendCodeName( const String& rCodeName )
+void ScExtDocOptions::SetCodeName( SCTAB nTab, const String& rCodeName )
{
- mxImpl->maCodeNames.push_back( rCodeName );
+ DBG_ASSERT( nTab >= 0, "ScExtDocOptions::SetCodeName - invalid sheet index" );
+ if( nTab >= 0 )
+ {
+ size_t nIndex = static_cast< size_t >( nTab );
+ if( nIndex >= mxImpl->maCodeNames.size() )
+ mxImpl->maCodeNames.resize( nIndex + 1 );
+ mxImpl->maCodeNames[ nIndex ] = rCodeName;
+ }
}
// ============================================================================
diff --git a/sc/source/ui/view/tabview3.cxx b/sc/source/ui/view/tabview3.cxx
index 86f68a1878cc..90bfe0c24e5c 100644
--- a/sc/source/ui/view/tabview3.cxx
+++ b/sc/source/ui/view/tabview3.cxx
@@ -1682,6 +1682,7 @@ void ScTabView::SetTabNo( SCTAB nTab, BOOL bNew, BOOL bExtendSelection )
}
TabChanged(); // DrawView
+
aViewData.GetViewShell()->WindowChanged(); // falls das aktive Fenster anders ist
if ( !bUnoRefDialog )
aViewData.GetViewShell()->DisconnectAllClients(); // important for floating frames
diff --git a/sc/source/ui/view/tabvwsh.cxx b/sc/source/ui/view/tabvwsh.cxx
index 1fe546b38260..1e647ce88780 100644
--- a/sc/source/ui/view/tabvwsh.cxx
+++ b/sc/source/ui/view/tabvwsh.cxx
@@ -102,7 +102,11 @@ SFX_IMPL_INTERFACE(ScTabViewShell,SfxViewShell,ScResId(SCSTR_TABVIEWSHELL))
//-->Added by PengYunQuan for Validity Cell Range Picker
}
+<<<<<<< local
SFX_IMPL_VIEWFACTORY( ScTabViewShell )
+=======
+SFX_IMPL_NAMED_VIEWFACTORY( ScTabViewShell, "Default" )
+>>>>>>> other
{
SFX_VIEW_REGISTRATION(ScDocShell);
}
diff --git a/sc/source/ui/view/tabvwsh3.cxx b/sc/source/ui/view/tabvwsh3.cxx
index c291d01d71c2..ea06c1fe6c0c 100644
--- a/sc/source/ui/view/tabvwsh3.cxx
+++ b/sc/source/ui/view/tabvwsh3.cxx
@@ -44,7 +44,7 @@
#include <svl/ptitem.hxx>
#include <svl/stritem.hxx>
#include <tools/urlobj.hxx>
-
+#include <sfx2/objface.hxx>
#include <vcl/msgbox.hxx>
#include <vcl/vclenum.hxx>
@@ -818,7 +818,7 @@ void ScTabViewShell::Execute( SfxRequest& rReq )
pDlg->SetDescription(
String( ScResId( STR_DLG_SELECTTABLES_TITLE ) ),
String( ScResId( STR_DLG_SELECTTABLES_LBNAME ) ),
- SID_SELECT_TABLES, HID_SELECTTABLES );
+ GetStaticInterface()->GetSlot(SID_SELECT_TABLES)->GetCommand(), HID_SELECTTABLES );
// fill all table names with selection state
String aTabName;
@@ -1015,7 +1015,7 @@ void ScTabViewShell::Execute( SfxRequest& rReq )
pDlg = new SfxPasswordDialog( GetDialogParent(), &aText );
pDlg->SetText( ScResId(SCSTR_UNPROTECTDOC) );
pDlg->SetMinLen( 0 );
- pDlg->SetHelpId( FID_PROTECT_DOC );
+ pDlg->SetHelpId( GetStaticInterface()->GetSlot(FID_PROTECT_DOC)->GetCommand() );
pDlg->SetEditHelpId( HID_PASSWD_DOC );
if (pDlg->Execute() == RET_OK)
@@ -1038,7 +1038,7 @@ void ScTabViewShell::Execute( SfxRequest& rReq )
pDlg = new SfxPasswordDialog( GetDialogParent(), &aText );
pDlg->SetText( ScResId(SCSTR_PROTECTDOC) );
pDlg->SetMinLen( 0 );
- pDlg->SetHelpId( FID_PROTECT_DOC );
+ pDlg->SetHelpId( GetStaticInterface()->GetSlot(FID_PROTECT_DOC)->GetCommand() );
pDlg->SetEditHelpId( HID_PASSWD_DOC );
pDlg->ShowExtras( SHOWEXTRAS_CONFIRM );
@@ -1089,7 +1089,7 @@ void ScTabViewShell::Execute( SfxRequest& rReq )
auto_ptr<SfxPasswordDialog> pDlg(new SfxPasswordDialog(GetDialogParent(), &aText));
pDlg->SetText( ScResId(SCSTR_UNPROTECTTAB) );
pDlg->SetMinLen( 0 );
- pDlg->SetHelpId( FID_PROTECT_TABLE );
+ pDlg->SetHelpId( GetStaticInterface()->GetSlot(FID_PROTECT_TABLE)->GetCommand() );
pDlg->SetEditHelpId( HID_PASSWD_TABLE );
if (pDlg->Execute() == RET_OK)
@@ -1161,7 +1161,7 @@ void ScTabViewShell::Execute( SfxRequest& rReq )
pDlg.reset(new SfxPasswordDialog(GetDialogParent(), &aText));
pDlg->SetText( ScResId(SCSTR_UNPROTECTTAB) );
pDlg->SetMinLen( 0 );
- pDlg->SetHelpId( FID_PROTECT_TABLE );
+ pDlg->SetHelpId( GetStaticInterface()->GetSlot(FID_PROTECT_TABLE)->GetCommand() );
pDlg->SetEditHelpId( HID_PASSWD_TABLE );
if (pDlg->Execute() == RET_OK)
@@ -1183,7 +1183,7 @@ void ScTabViewShell::Execute( SfxRequest& rReq )
pDlg.reset(new SfxPasswordDialog(GetDialogParent(), &aText));
pDlg->SetText( ScResId(SCSTR_PROTECTTAB) );
pDlg->SetMinLen( 0 );
- pDlg->SetHelpId( FID_PROTECT_TABLE );
+ pDlg->SetHelpId( GetStaticInterface()->GetSlot(FID_PROTECT_TABLE)->GetCommand() );
pDlg->SetEditHelpId( HID_PASSWD_TABLE );
pDlg->ShowExtras( SHOWEXTRAS_CONFIRM );
diff --git a/sc/source/ui/view/tabvwsh4.cxx b/sc/source/ui/view/tabvwsh4.cxx
index ed09ec85ee8c..0835d08de9fd 100644
--- a/sc/source/ui/view/tabvwsh4.cxx
+++ b/sc/source/ui/view/tabvwsh4.cxx
@@ -173,13 +173,6 @@ void __EXPORT ScTabViewShell::Activate(BOOL bMDI)
SFX_APP()->Broadcast( SfxSimpleHint( SC_HINT_NAVIGATOR_UPDATEALL ) );
bFirstActivate = FALSE;
- if ( aPendingUserData.hasElements() )
- {
- // #89897# read user data from print preview now, after ctor
- DoReadUserDataSequence( aPendingUserData );
- aPendingUserData.realloc( 0 );
- }
-
// #116278# ReadExtOptions (view settings from Excel import) must also be done
// after the ctor, because of the potential calls to Window::Show.
// Even after the fix for #104887# (Window::Show no longer notifies the access
@@ -1924,7 +1917,6 @@ ScTabViewShell::ScTabViewShell( SfxViewFrame* pViewFrame,
if ( pOldSh && pOldSh->ISA( ScPreviewShell ) )
{
ScPreviewShell* pPreviewShell = ((ScPreviewShell*)pOldSh);
- aPendingUserData = pPreviewShell->GetSourceData(); // used in Activate
nForceDesignMode = pPreviewShell->GetSourceDesignMode();
}
diff --git a/sc/source/ui/view/tabvwshb.cxx b/sc/source/ui/view/tabvwshb.cxx
index 8f4a203ea14d..c6d9b004b9ba 100644
--- a/sc/source/ui/view/tabvwshb.cxx
+++ b/sc/source/ui/view/tabvwshb.cxx
@@ -312,7 +312,6 @@ void ScTabViewShell::ExecDrawIns(SfxRequest& rReq)
case SID_INSERT_PLUGIN:
case SID_INSERT_SOUND:
case SID_INSERT_VIDEO:
- case SID_INSERT_APPLET:
case SID_INSERT_SMATH:
case SID_INSERT_FLOATINGFRAME:
FuInsertOLE(this, pWin, pView, pDrModel, rReq);
@@ -469,14 +468,6 @@ void ScTabViewShell::GetDrawInsState(SfxItemSet &rSet)
rSet.DisableItem( nWhich );
break;
- case SID_INSERT_APPLET:
- // wenn SOLAR_JAVA nicht definiert ist, immer disablen
-#ifdef SOLAR_JAVA
- if (bOle || bTabProt)
-#endif
- rSet.DisableItem( nWhich );
- break;
-
case SID_INSERT_GRAPHIC:
case SID_INSERT_AVMEDIA:
case SID_FONTWORK_GALLERY_FLOATER:
diff --git a/sc/source/ui/view/tabvwshf.cxx b/sc/source/ui/view/tabvwshf.cxx
index 20a10f149a3a..db1ee8864c7b 100644
--- a/sc/source/ui/view/tabvwshf.cxx
+++ b/sc/source/ui/view/tabvwshf.cxx
@@ -39,6 +39,7 @@
#include <svl/stritem.hxx>
#include <svl/whiter.hxx>
#include <vcl/msgbox.hxx>
+#include <sfx2/objface.hxx>
#include <svx/svxdlg.hxx>
#include <editeng/colritem.hxx>
@@ -59,6 +60,7 @@
#include "tabbgcolor.hxx"
#include "tabbgcolordlg.hxx"
+#include "sccommands.h"
using ::boost::scoped_ptr;
using namespace com::sun::star;
@@ -419,26 +421,23 @@ void ScTabViewShell::ExecuteTable( SfxRequest& rReq )
String aErrMsg ( ScGlobal::GetRscString( STR_INVALIDTABNAME ) );
String aName;
String aDlgTitle;
+ const sal_Char* pHelpId = 0;
switch ( nSlot )
{
case FID_TAB_APPEND:
aDlgTitle = String(ScResId(SCSTR_APDTABLE));
pDoc->CreateValidTabName( aName );
+ pHelpId = HID_SC_APPEND_NAME;
break;
case FID_TAB_RENAME:
aDlgTitle = String(ScResId(SCSTR_RENAMETAB));
pDoc->GetName( pViewData->GetTabNo(), aName );
+ pHelpId = HID_SC_RENAME_NAME;
break;
}
-//CHINA001 ScStringInputDlg* pDlg =
-//CHINA001 new ScStringInputDlg( GetDialogParent(),
-//CHINA001 aDlgTitle,
-//CHINA001 String(ScResId(SCSTR_NAME)),
-//CHINA001 aName,
-//CHINA001 nSlot );
ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
DBG_ASSERT(pFact, "ScAbstractFactory create fail!");//CHINA001
@@ -446,7 +445,7 @@ void ScTabViewShell::ExecuteTable( SfxRequest& rReq )
aDlgTitle,
String(ScResId(SCSTR_NAME)),
aName,
- nSlot,RID_SCDLG_STRINPUT);
+ GetStaticInterface()->GetSlot(nSlot)->GetCommand(), pHelpId, RID_SCDLG_STRINPUT);
DBG_ASSERT(pDlg, "Dialog create fail!");//CHINA001
while ( !bDone && nRet == RET_OK )
@@ -755,7 +754,8 @@ void ScTabViewShell::ExecuteTable( SfxRequest& rReq )
String(ScResId(SCSTR_SET_TAB_BG_COLOR)),
String(ScResId(SCSTR_NO_TAB_BG_COLOR)),
aTabBgColor,
- nSlot,RID_SCDLG_TAB_BG_COLOR);
+ CMD_FID_TAB_SET_TAB_BG_COLOR,
+ RID_SCDLG_TAB_BG_COLOR);
while ( !bDone && nRet == RET_OK )
{
nRet = pDlg->Execute();
diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx
index c034836d4d4a..7b35328f68bb 100644
--- a/sc/source/ui/view/viewdata.cxx
+++ b/sc/source/ui/view/viewdata.cxx
@@ -1696,50 +1696,32 @@ SCROW ScViewData::CellsAtY( SCsROW nPosY, SCsROW nDir, ScVSplitPos eWhichY, USHO
if (pView)
((ScViewData*)this)->aScrSize.Height() = pView->GetGridHeight(eWhichY);
- SCROW nY;
- USHORT nScrPosY = 0;
-
if (nScrSizeY == SC_SIZE_NONE) nScrSizeY = (USHORT) aScrSize.Height();
- if (nDir==1)
- nY = nPosY; // vorwaerts
- else
- nY = nPosY-1; // rueckwaerts
-
- BOOL bOut = FALSE;
- for ( ; nScrPosY<=nScrSizeY && !bOut; nY+=nDir )
- {
- SCsROW nRowNo = nY;
- if ( nRowNo < 0 || nRowNo > MAXROW )
- bOut = TRUE;
- else
- {
- USHORT nTSize = pDoc->GetRowHeight( nRowNo, nTabNo );
- if (nTSize)
- {
- long nSizeYPix = ToPixel( nTSize, nPPTY );
- nScrPosY = sal::static_int_cast<USHORT>( nScrPosY + (USHORT) nSizeYPix );
- }
- else if ( nDir == 1 && nRowNo < MAXROW )
- {
- // skip multiple hidden rows (forward only for now)
- SCROW nNext = pDoc->FirstVisibleRow(nRowNo + 1, MAXROW, nTabNo);
- if ( nNext > MAXROW )
- {
- // same behavior as without the optimization: set bOut with nY=MAXROW+1
- nY = MAXROW+1;
- bOut = TRUE;
- }
- else
- nY = nNext - 1; // +=nDir advances to next visible row
- }
- }
- }
+ SCROW nY;
if (nDir==1)
+ {
+ // forward
+ nY = nPosY;
+ long nScrPosY = 0;
+ AddPixelsWhile( nScrPosY, nScrSizeY, nY, MAXROW, nPPTY, pDoc, nTabNo);
+ // Original loop ended on last evaluated +1 or if that was MAXROW even
+ // on MAXROW+2.
+ nY += (nY == MAXROW ? 2 : 1);
nY -= nPosY;
+ }
else
+ {
+ // backward
+ nY = nPosY-1;
+ long nScrPosY = 0;
+ AddPixelsWhileBackward( nScrPosY, nScrSizeY, nY, 0, nPPTY, pDoc, nTabNo);
+ // Original loop ended on last evaluated -1 or if that was 0 even on
+ // -2.
+ nY -= (nY == 0 ? 2 : 1);
nY = (nPosY-1)-nY;
+ }
if (nY>0) --nY;
return nY;
@@ -1855,16 +1837,10 @@ BOOL ScViewData::GetPosFromPixel( long nClickX, long nClickY, ScSplitPos eWhich,
}
if (nClickY > 0)
- {
- while ( rPosY<=MAXROW && nClickY >= nScrY )
- {
- nScrY += ToPixel( pDoc->GetRowHeight( rPosY, nTabNo ), nPPTY );
- ++rPosY;
- }
- --rPosY;
- }
+ AddPixelsWhile( nScrY, nClickY, rPosY, MAXROW, nPPTY, pDoc, nTabNo );
else
{
+ /* TODO: could need some "SubPixelsWhileBackward" method */
while ( rPosY>0 && nClickY < nScrY )
{
--rPosY;
@@ -1984,20 +1960,24 @@ void ScViewData::SetPosY( ScVSplitPos eWhich, SCROW nNewPosY )
SCROW nOldPosY = pThisTab->nPosY[eWhich];
long nTPosY = pThisTab->nTPosY[eWhich];
long nPixPosY = pThisTab->nPixPosY[eWhich];
- SCROW i;
+ SCROW i, nHeightEndRow;
if ( nNewPosY > nOldPosY )
for ( i=nOldPosY; i<nNewPosY; i++ )
{
- long nThis = pDoc->GetRowHeight( i,nTabNo );
- nTPosY -= nThis;
- nPixPosY -= ToPixel(sal::static_int_cast<USHORT>(nThis), nPPTY);
+ long nThis = pDoc->GetRowHeight( i, nTabNo, NULL, &nHeightEndRow );
+ SCROW nRows = std::min( nNewPosY, nHeightEndRow + 1) - i;
+ i = nHeightEndRow;
+ nTPosY -= nThis * nRows;
+ nPixPosY -= ToPixel(sal::static_int_cast<USHORT>(nThis), nPPTY) * nRows;
}
else
for ( i=nNewPosY; i<nOldPosY; i++ )
{
- long nThis = pDoc->GetRowHeight( i,nTabNo );
- nTPosY += nThis;
- nPixPosY += ToPixel(sal::static_int_cast<USHORT>(nThis), nPPTY);
+ long nThis = pDoc->GetRowHeight( i, nTabNo, NULL, &nHeightEndRow );
+ SCROW nRows = std::min( nOldPosY, nHeightEndRow + 1) - i;
+ i = nHeightEndRow;
+ nTPosY += nThis * nRows;
+ nPixPosY += ToPixel(sal::static_int_cast<USHORT>(nThis), nPPTY) * nRows;
}
pThisTab->nPosY[eWhich] = nNewPosY;
@@ -3118,5 +3098,82 @@ ScAddress ScViewData::GetCurPos() const
}
+// static
+void ScViewData::AddPixelsWhile( long & rScrY, long nEndPixels, SCROW & rPosY,
+ SCROW nEndRow, double nPPTY, const ScDocument * pDoc, SCTAB nTabNo )
+{
+ SCROW nRow = rPosY;
+ while (rScrY <= nEndPixels && nRow <= nEndRow)
+ {
+ SCROW nHeightEndRow;
+ USHORT nHeight = pDoc->GetRowHeight( nRow, nTabNo, NULL, &nHeightEndRow);
+ if (nHeightEndRow > nEndRow)
+ nHeightEndRow = nEndRow;
+ if (!nHeight)
+ nRow = nHeightEndRow + 1;
+ else
+ {
+ SCROW nRows = nHeightEndRow - nRow + 1;
+ sal_Int64 nPixel = ToPixel( nHeight, nPPTY);
+ sal_Int64 nAdd = nPixel * nRows;
+ if (nAdd + rScrY > nEndPixels)
+ {
+ sal_Int64 nDiff = rScrY + nAdd - nEndPixels;
+ nRows -= static_cast<SCROW>(nDiff / nPixel);
+ nAdd = nPixel * nRows;
+ // We're looking for a value that satisfies loop condition.
+ if (nAdd + rScrY <= nEndPixels)
+ {
+ ++nRows;
+ nAdd += nPixel;
+ }
+ }
+ rScrY += static_cast<long>(nAdd);
+ nRow += nRows;
+ }
+ }
+ if (nRow > rPosY)
+ --nRow;
+ rPosY = nRow;
+}
+// static
+void ScViewData::AddPixelsWhileBackward( long & rScrY, long nEndPixels,
+ SCROW & rPosY, SCROW nStartRow, double nPPTY, const ScDocument * pDoc,
+ SCTAB nTabNo )
+{
+ SCROW nRow = rPosY;
+ while (rScrY <= nEndPixels && nRow >= nStartRow)
+ {
+ SCROW nHeightStartRow;
+ USHORT nHeight = pDoc->GetRowHeight( nRow, nTabNo, &nHeightStartRow, NULL);
+ if (nHeightStartRow < nStartRow)
+ nHeightStartRow = nStartRow;
+ if (!nHeight)
+ nRow = nHeightStartRow - 1;
+ else
+ {
+ SCROW nRows = nRow - nHeightStartRow + 1;
+ sal_Int64 nPixel = ToPixel( nHeight, nPPTY);
+ sal_Int64 nAdd = nPixel * nRows;
+ if (nAdd + rScrY > nEndPixels)
+ {
+ sal_Int64 nDiff = nAdd + rScrY - nEndPixels;
+ nRows -= static_cast<SCROW>(nDiff / nPixel);
+ nAdd = nPixel * nRows;
+ // We're looking for a value that satisfies loop condition.
+ if (nAdd + rScrY <= nEndPixels)
+ {
+ ++nRows;
+ nAdd += nPixel;
+ }
+ }
+ rScrY += static_cast<long>(nAdd);
+ nRow -= nRows;
+ }
+ }
+ if (nRow < rPosY)
+ ++nRow;
+ rPosY = nRow;
+}
diff --git a/sc/source/ui/view/viewfun2.cxx b/sc/source/ui/view/viewfun2.cxx
index 34fbbfdad5b5..a125cbea6f50 100644
--- a/sc/source/ui/view/viewfun2.cxx
+++ b/sc/source/ui/view/viewfun2.cxx
@@ -28,8 +28,6 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sc.hxx"
-
-
// INCLUDE ---------------------------------------------------------------
#include "scitems.hxx"
diff --git a/sc/source/ui/view/viewfun3.cxx b/sc/source/ui/view/viewfun3.cxx
index 24fab9ac2eba..3104b7ed8b8f 100644
--- a/sc/source/ui/view/viewfun3.cxx
+++ b/sc/source/ui/view/viewfun3.cxx
@@ -34,10 +34,6 @@
#define _SV_NOXSOUND
-#ifdef WIN
- #define _MENUBTN_HXX
-#endif
-
#define _BASE_DLGS_HXX
#define _BIGINT_HXX
#define _CACHESTR_HXX
diff --git a/sc/uiconfig/scalc/menubar/menubar.xml b/sc/uiconfig/scalc/menubar/menubar.xml
index 855db09ff50c..a6b772cca012 100644
--- a/sc/uiconfig/scalc/menubar/menubar.xml
+++ b/sc/uiconfig/scalc/menubar/menubar.xml
@@ -92,6 +92,7 @@
<menu:menuitem menu:id=".uno:Move"/>
<menu:menuitem menu:id=".uno:SelectTables"/>
<menu:menuitem menu:id=".uno:Remove"/>
+ <menu:menuitem menu:id=".uno:TableEvents"/>
</menu:menupopup>
</menu:menu>
<menu:menu menu:id=".uno:DelBreakMenu">
diff --git a/sc/uiconfig/scalc/toolbar/findbar.xml b/sc/uiconfig/scalc/toolbar/findbar.xml
index 9ef9d8a1a78f..0338d3156195 100644
--- a/sc/uiconfig/scalc/toolbar/findbar.xml
+++ b/sc/uiconfig/scalc/toolbar/findbar.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
- <toolbar:toolbaritem xlink:href=".uno:FindText" toolbar:helpid="helpid:100105" />
- <toolbar:toolbaritem xlink:href=".uno:DownSearch" toolbar:helpid="helpid:100105" />
- <toolbar:toolbaritem xlink:href=".uno:UpSearch" toolbar:helpid="helpid:100105" />
- <toolbar:toolbaritem xlink:href=".uno:SearchDialog" toolbar:text="Find &amp; Replace" toolbar:visible="false" toolbar:helpid="helpid:100105"/>
+ <toolbar:toolbaritem xlink:href=".uno:FindText"/>
+ <toolbar:toolbaritem xlink:href=".uno:DownSearch"/>
+ <toolbar:toolbaritem xlink:href=".uno:UpSearch"/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog" toolbar:visible="false"/>
</toolbar:toolbar>
diff --git a/sc/util/hidother.src b/sc/util/hidother.src
index ffdb5c329399..d575580228bd 100644
--- a/sc/util/hidother.src
+++ b/sc/util/hidother.src
@@ -24,40 +24,13 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-#include "../inc/scfuncs.hrc" // HID_FUNC_XXX
+#include "../inc/helpids.h"
// Help-IDs fuer Dokument-Fenster
hidspecial HID_SC_WIN_GRIDWIN { HelpID = HID_SC_WIN_GRIDWIN; };
hidspecial HID_SC_WIN_PREVIEW { HelpID = HID_SC_WIN_PREVIEW; };
-// Help-IDs fuer Shells (Helferlein)
-
-hidspecial HID_SCSHELL_TABVWSH { HelpID = HID_SCSHELL_TABVWSH; };
-hidspecial HID_SCSHELL_PREVWSH { HelpID = HID_SCSHELL_PREVWSH; };
-hidspecial HID_SCSHELL_AUDIT { HelpID = HID_SCSHELL_AUDIT; };
-hidspecial HID_SCSHELL_PIVOTSH { HelpID = HID_SCSHELL_PIVOTSH; };
-hidspecial HID_SCSHELL_DRAWSH { HelpID = HID_SCSHELL_DRAWSH; };
-hidspecial HID_SCSHELL_DRTXTOB { HelpID = HID_SCSHELL_DRTXTOB; };
-hidspecial HID_SCSHELL_DRAWFORMSH{ HelpID = HID_SCSHELL_DRAWFORMSH ; };
-
-hidspecial HID_SCSHELL_CELLSH { HelpID = HID_SCSHELL_CELLSH ; };
-hidspecial HID_SCSHELL_FORMATSH { HelpID = HID_SCSHELL_FORMATSH ; };
-hidspecial HID_SCSHELL_OLEOBEJCTSH { HelpID = HID_SCSHELL_OLEOBEJCTSH ; };
-hidspecial HID_SCSHELL_CHARTSH { HelpID = HID_SCSHELL_CHARTSH ; };
-hidspecial HID_SCSHELL_GRAPHIC { HelpID = HID_SCSHELL_GRAPHIC ; };
-hidspecial HID_SCSHELL_PAGEBREAK { HelpID = HID_SCSHELL_PAGEBREAK ; };
-
-// Help-IDs fuer Standard-Vorlagen
-
-hidspecial HID_SC_SHEET_CELL_STD { HelpID = HID_SC_SHEET_CELL_STD; };
-hidspecial HID_SC_SHEET_CELL_ERG { HelpID = HID_SC_SHEET_CELL_ERG; };
-hidspecial HID_SC_SHEET_CELL_ERG1 { HelpID = HID_SC_SHEET_CELL_ERG1; };
-hidspecial HID_SC_SHEET_CELL_UEB { HelpID = HID_SC_SHEET_CELL_UEB; };
-hidspecial HID_SC_SHEET_CELL_UEB1 { HelpID = HID_SC_SHEET_CELL_UEB1; };
-hidspecial HID_SC_SHEET_PAGE_STD { HelpID = HID_SC_SHEET_PAGE_STD; };
-hidspecial HID_SC_SHEET_PAGE_REP { HelpID = HID_SC_SHEET_PAGE_REP; };
-
// Elemente in der Eingabezeile
hidspecial HID_INSWIN_POS { HelpID = HID_INSWIN_POS; };
@@ -497,8 +470,3 @@ hidspecial HID_DAI_FUNC_DIFFWEEKS { HelpID = HID_DAI_FUNC_DIFFWEEKS; };
hidspecial HID_DAI_FUNC_DIFFYEARS { HelpID = HID_DAI_FUNC_DIFFYEARS; };
hidspecial HID_DAI_FUNC_ROT13 { HelpID = HID_DAI_FUNC_ROT13; };
-// These HelpIDs do appear in resources, but don't have hid list entries
-// generated from there, because of the use of macros (#95943#):
-
-hidspecial SID_RENAME_OBJECT { HelpID = SID_RENAME_OBJECT; };
-
diff --git a/sc/util/makefile.mk b/sc/util/makefile.mk
index 735ccaf35c85..ff4696409d48 100644
--- a/sc/util/makefile.mk
+++ b/sc/util/makefile.mk
@@ -342,3 +342,23 @@ ALLTAR: $(MISC)$/linkinc.ls $(COMP)
build_extn : $(SHL9TARGETN)
$(PERL) createExtPackage.pl $(COMMONBIN)$/vbaapi.oxt $(SOLARBINDIR)$/oovbaapi.rdb $(LIBCOMPNAME)
+
+ALLTAR : $(MISC)/sc.component $(MISC)/scd.component $(MISC)/vbaobj.component
+
+$(MISC)/sc.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ sc.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt sc.component
+
+$(MISC)/scd.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ scd.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL2TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt scd.component
+
+$(MISC)/vbaobj.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ vbaobj.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL9TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt vbaobj.component
diff --git a/sc/util/sc.component b/sc/util/sc.component
new file mode 100644
index 000000000000..abd05aa579f2
--- /dev/null
+++ b/sc/util/sc.component
@@ -0,0 +1,97 @@
+<?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.Calc.FilterOptionsDialog">
+ <service name="com.sun.star.ui.dialogs.FilterOptionsDialog"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.SpreadsheetDocument">
+ <service name="com.sun.star.sheet.SpreadsheetDocument"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLContentExporter">
+ <service name="com.sun.star.comp.Calc.XMLContentExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLExporter">
+ <service name="com.sun.star.comp.Calc.XMLExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLMetaExporter">
+ <service name="com.sun.star.comp.Calc.XMLMetaExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLOasisContentExporter">
+ <service name="com.sun.star.comp.Calc.XMLOasisContentExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLOasisContentImporter">
+ <service name="com.sun.star.comp.Calc.XMLOasisContentImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLOasisExporter">
+ <service name="com.sun.star.comp.Calc.XMLOasisExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLOasisImporter">
+ <service name="com.sun.star.comp.Calc.XMLOasisImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLOasisMetaExporter">
+ <service name="com.sun.star.comp.Calc.XMLOasisMetaExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLOasisMetaImporter">
+ <service name="com.sun.star.comp.Calc.XMLOasisMetaImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLOasisSettingsExporter">
+ <service name="com.sun.star.comp.Calc.XMLOasisSettingsExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLOasisSettingsImporter">
+ <service name="com.sun.star.comp.Calc.XMLOasisSettingsImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLOasisStylesExporter">
+ <service name="com.sun.star.comp.Calc.XMLOasisStylesExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLOasisStylesImporter">
+ <service name="com.sun.star.comp.Calc.XMLOasisStylesImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLSettingsExporter">
+ <service name="com.sun.star.comp.Calc.XMLSettingsExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLStylesExporter">
+ <service name="com.sun.star.comp.Calc.XMLStylesExporter"/>
+ </implementation>
+ <implementation name="stardiv.StarCalc.ScAutoFormatsObj">
+ <service name="com.sun.star.sheet.TableAutoFormats"/>
+ </implementation>
+ <implementation name="stardiv.StarCalc.ScFunctionAccess">
+ <service name="com.sun.star.sheet.FunctionAccess"/>
+ </implementation>
+ <implementation name="stardiv.StarCalc.ScFunctionListObj">
+ <service name="com.sun.star.sheet.FunctionDescriptions"/>
+ </implementation>
+ <implementation name="stardiv.StarCalc.ScRecentFunctionsObj">
+ <service name="com.sun.star.sheet.RecentFunctions"/>
+ </implementation>
+ <implementation name="stardiv.StarCalc.ScSpreadsheetSettings">
+ <service name="com.sun.star.sheet.GlobalSheetSettings"/>
+ </implementation>
+</component>
diff --git a/sc/util/scd.component b/sc/util/scd.component
new file mode 100644
index 000000000000..df2e2f77e25f
--- /dev/null
+++ b/sc/util/scd.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.calc.FormatDetector">
+ <service name="com.sun.star.frame.ExtendedTypeDetection"/>
+ </implementation>
+</component>
diff --git a/sc/util/vbaobj.component b/sc/util/vbaobj.component
new file mode 100644
index 000000000000..52ad691822d0
--- /dev/null
+++ b/sc/util/vbaobj.component
@@ -0,0 +1,58 @@
+<?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="ScVbaApplication">
+ <service name="ooo.vba.excel.Application"/>
+ </implementation>
+ <implementation name="ScVbaEventsHelper">
+ <service name="com.sun.star.script.vba.VBASpreadsheetEventProcessor"/>
+ </implementation>
+ <implementation name="ScVbaGlobals">
+ <service name="ooo.vba.excel.Globals"/>
+ </implementation>
+ <implementation name="ScVbaHyperlink">
+ <service name="ooo.vba.excel.Hyperlink"/>
+ </implementation>
+ <implementation name="ScVbaTextFrame">
+ <service name="ooo.vba.excel.TextFrame"/>
+ </implementation>
+ <implementation name="ScVbaWindow">
+ <service name="ooo.vba.excel.Window"/>
+ </implementation>
+ <implementation name="ScVbaWorkbook">
+ <service name="ooo.vba.excel.Workbook"/>
+ </implementation>
+ <implementation name="ScVbaWorksheet">
+ <service name="ooo.vba.excel.Worksheet"/>
+ </implementation>
+ <implementation name="SvVbaRange">
+ <service name="ooo.vba.excel.Range"/>
+ </implementation>
+</component>