diff options
287 files changed, 7031 insertions, 4755 deletions
diff --git a/chart2/prj/build.lst b/chart2/prj/build.lst index 469eb7554d6b..3cdc9a26e3f5 100644 --- a/chart2/prj/build.lst +++ b/chart2/prj/build.lst @@ -24,4 +24,3 @@ ch chart2\source\controller\chartapiwrapper nmake - all ch_source_controlle ch chart2\source\controller\main nmake - all ch_source_controller_main ch_inc NULL ch chart2\source\controller\menus nmake - all ch_source_controller_menus ch_inc NULL ch chart2\prj get - all ch_prj NULL -ch chart2\qa\unoapi nmake - all ch_qa_unoapi NULL diff --git a/chart2/prj/d.lst b/chart2/prj/d.lst index 440e2efbe8c5..bf1085336c05 100644 --- a/chart2/prj/d.lst +++ b/chart2/prj/d.lst @@ -21,3 +21,7 @@ mkdir: %_DEST%\xml%_EXT%\uiconfig\modules\schart\statusbar ..\uiconfig\statusbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\schart\statusbar\*.xml mkdir: %_DEST%\inc%_EXT%\chart2 +..\%__SRC%\misc\chartcontroller.component %_DEST%\xml%_EXT%\chartcontroller.component +..\%__SRC%\misc\chartmodel.component %_DEST%\xml%_EXT%\chartmodel.component +..\%__SRC%\misc\charttools.component %_DEST%\xml%_EXT%\charttools.component +..\%__SRC%\misc\chartview.component %_DEST%\xml%_EXT%\chartview.component diff --git a/chart2/source/controller/chartapiwrapper/Chart2ModelContact.cxx b/chart2/source/controller/chartapiwrapper/Chart2ModelContact.cxx index ffc1e95ca796..1b0d8fb4889c 100644 --- a/chart2/source/controller/chartapiwrapper/Chart2ModelContact.cxx +++ b/chart2/source/controller/chartapiwrapper/Chart2ModelContact.cxx @@ -52,17 +52,6 @@ namespace chart namespace wrapper { -namespace -{ - -rtl::OUString lcl_getCIDForDiagram( const Reference< frame::XModel >& xChartModel ) -{ - uno::Reference< XDiagram > xDiagram( ChartModelHelper::findDiagram( xChartModel ) ); - return ObjectIdentifier::createClassifiedIdentifierForObject( xDiagram, xChartModel ); -} - -} //anonymous namespace - Chart2ModelContact::Chart2ModelContact( const Reference< uno::XComponentContext > & xContext ) : m_xContext( xContext ), diff --git a/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx b/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx index edf8ad2b6209..d6487d425657 100644 --- a/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx +++ b/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx @@ -239,14 +239,14 @@ void lcl_AddPropertiesToVector( Property( C2U( "DisableComplexChartTypes" ), PROP_DOCUMENT_DISABLE_COMPLEX_CHARTTYPES, ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT ) ); + //#i112666# no PropertyChangeEvent is fired on change so far + beans::PropertyAttribute::MAYBEDEFAULT ) ); rOutProperties.push_back( Property( C2U( "DisableDataTableDialog" ), PROP_DOCUMENT_DISABLE_DATATABLE_DIALOG, ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT ) ); + //#i112666# no PropertyChangeEvent is fired on change so far + beans::PropertyAttribute::MAYBEDEFAULT ) ); } const uno::Sequence< Property > & lcl_GetPropertySequence() diff --git a/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx b/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx index eb3c76dd2c40..c0be0ddcbf0d 100644 --- a/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx +++ b/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx @@ -749,20 +749,19 @@ void SAL_CALL DiagramWrapper::setPosition( const awt::Point& aPosition ) Reference< beans::XPropertySet > xProp( this->getInnerPropertySet() ); if( xProp.is() ) { - if( aPosition.X < 0 || aPosition.Y < 0 || aPosition.X > 1 || aPosition.Y > 1 ) - { - DBG_ERROR("DiagramWrapper::setPosition called with a position out of range -> automatic values are taken instead" ); - uno::Any aEmpty; - xProp->setPropertyValue( C2U( "RelativePosition" ), aEmpty ); - return; - } - awt::Size aPageSize( m_spChart2ModelContact->GetPageSize() ); chart2::RelativePosition aRelativePosition; aRelativePosition.Anchor = drawing::Alignment_TOP_LEFT; aRelativePosition.Primary = double(aPosition.X)/double(aPageSize.Width); aRelativePosition.Secondary = double(aPosition.Y)/double(aPageSize.Height); + if( aRelativePosition.Primary < 0 || aRelativePosition.Secondary < 0 || aRelativePosition.Primary > 1 || aRelativePosition.Secondary > 1 ) + { + DBG_ERROR("DiagramWrapper::setPosition called with a position out of range -> automatic values are taken instead" ); + uno::Any aEmpty; + xProp->setPropertyValue( C2U( "RelativePosition" ), aEmpty ); + return; + } xProp->setPropertyValue( C2U( "RelativePosition" ), uno::makeAny(aRelativePosition) ); xProp->setPropertyValue( C2U( "PosSizeExcludeAxes" ), uno::makeAny(false) ); } diff --git a/chart2/source/controller/chartcontroller.component b/chart2/source/controller/chartcontroller.component new file mode 100644 index 000000000000..fc99913b5a74 --- /dev/null +++ b/chart2/source/controller/chartcontroller.component @@ -0,0 +1,56 @@ +<?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.chart.ElementSelectorToolbarController"> + <service name="com.sun.star.frame.ToolbarController"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.ChartController"> + <service name="com.sun.star.chart2.ChartController"/> + <service name="com.sun.star.frame.Controller"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.ChartDocumentWrapper"> + <service name="com.sun.star.beans.PropertySet"/> + <service name="com.sun.star.chart.ChartDocument"/> + <service name="com.sun.star.chart2.ChartDocumentWrapper"/> + <service name="com.sun.star.xml.UserDefinedAttributeSupplier"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.ChartFrameLoader"> + <service name="com.sun.star.frame.SynchronousFrameLoader"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.ChartTypeDialog"> + <service name="com.sun.star.chart2.ChartTypeDialog"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.ShapeToolbarController"> + <service name="com.sun.star.chart2.ShapeToolbarController"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.WizardDialog"> + <service name="com.sun.star.chart2.WizardDialog"/> + </implementation> +</component> diff --git a/chart2/source/controller/dialogs/DataBrowser.cxx b/chart2/source/controller/dialogs/DataBrowser.cxx index 67930fc6f7a7..513d49b6aad8 100644 --- a/chart2/source/controller/dialogs/DataBrowser.cxx +++ b/chart2/source/controller/dialogs/DataBrowser.cxx @@ -241,7 +241,7 @@ SeriesHeader::SeriesHeader( Window * pParent ) : m_spSeriesName->EnableUpdateData( 4 * EDIT_UPDATEDATA_TIMEOUT ); // define is in vcl/edit.hxx m_spSeriesName->SetUpdateDataHdl( LINK( this, SeriesHeader, SeriesNameChanged )); m_spSeriesName->SetModifyHdl( LINK( this, SeriesHeader, SeriesNameEdited )); - m_spSeriesName->SetSmartHelpId( SmartId( HID_SCH_DATA_SERIES_LABEL )); + m_spSeriesName->SetHelpId( HID_SCH_DATA_SERIES_LABEL ); Show(); } diff --git a/chart2/source/controller/dialogs/DialogModel.cxx b/chart2/source/controller/dialogs/DialogModel.cxx index f104045727bb..f32a882aa1e9 100644 --- a/chart2/source/controller/dialogs/DialogModel.cxx +++ b/chart2/source/controller/dialogs/DialogModel.cxx @@ -41,6 +41,7 @@ #include "CommonFunctors.hxx" #include "ControllerLockGuard.hxx" #include "ChartTypeHelper.hxx" +#include "ThreeDHelper.hxx" #include <com/sun/star/util/XCloneable.hpp> #include <com/sun/star/chart2/AxisType.hpp> @@ -525,6 +526,9 @@ Reference< chart2::XDataSeries > DialogModel::insertSeriesAfter( try { + Reference< chart2::XDiagram > xDiagram( m_xChartDocument->getFirstDiagram() ); + ThreeDLookScheme e3DScheme = ThreeDHelper::detectScheme( xDiagram ); + sal_Int32 nSeriesInChartType = 0; const sal_Int32 nTotalSeries = countSeries(); if( xChartType.is()) @@ -540,7 +544,7 @@ Reference< chart2::XDataSeries > DialogModel::insertSeriesAfter( xChartType, nTotalSeries, // new series' index nSeriesInChartType, - m_xChartDocument->getFirstDiagram(), + xDiagram, m_xTemplate, bCreateDataCachedSequences )); @@ -561,6 +565,8 @@ Reference< chart2::XDataSeries > DialogModel::insertSeriesAfter( aSeries.insert( aIt, xNewSeries ); xSeriesCnt->setDataSeries( ContainerToSequence( aSeries )); } + + ThreeDHelper::setScheme( xDiagram, e3DScheme ); } catch( uno::Exception & ex ) { @@ -694,14 +700,19 @@ bool DialogModel::setData( m_xTemplate->getDataInterpreter()); if( xInterpreter.is()) { + Reference< chart2::XDiagram > xDiagram( m_xChartDocument->getFirstDiagram() ); + ThreeDLookScheme e3DScheme = ThreeDHelper::detectScheme( xDiagram ); + ::std::vector< Reference< XDataSeries > > aSeriesToReUse( - DiagramHelper::getDataSeriesFromDiagram( m_xChartDocument->getFirstDiagram())); + DiagramHelper::getDataSeriesFromDiagram( xDiagram )); applyInterpretedData( xInterpreter->interpretDataSource( xDataSource, rArguments, ContainerToSequence( aSeriesToReUse )), aSeriesToReUse, true /* bSetStyles */); + + ThreeDHelper::setScheme( xDiagram, e3DScheme ); } } catch( uno::Exception & ex ) diff --git a/chart2/source/controller/dialogs/dlg_ChartType.src b/chart2/source/controller/dialogs/dlg_ChartType.src index 5523ad8956db..57e1f281a613 100644 --- a/chart2/source/controller/dialogs/dlg_ChartType.src +++ b/chart2/source/controller/dialogs/dlg_ChartType.src @@ -38,7 +38,7 @@ ModalDialog DLG_DIAGRAM_TYPE { - HelpID = SID_DIAGRAM_TYPE ; + HelpID = HID_DIAGRAM_TYPE ; Size = MAP_APPFONT ( CHART_TYPE_DLG_WIDTH , CHART_TYPE_DLG_HEIGHT ) ; diff --git a/chart2/source/controller/dialogs/dlg_CreationWizard.cxx b/chart2/source/controller/dialogs/dlg_CreationWizard.cxx index 5b82e57f7044..e7a7a8bd43d8 100644 --- a/chart2/source/controller/dialogs/dlg_CreationWizard.cxx +++ b/chart2/source/controller/dialogs/dlg_CreationWizard.cxx @@ -117,7 +117,7 @@ CreationWizard::CreationWizard( Window* pParent, const uno::Reference< frame::XM #endif , WZS_INVALID_STATE ); - this->SetRoadmapSmartHelpId( SmartId( HID_SCH_WIZARD_ROADMAP ) ); + this->SetRoadmapHelpId( HID_SCH_WIZARD_ROADMAP ); this->SetRoadmapInteractive( sal_True ); Size aAdditionalRoadmapSize( LogicToPixel( Size( 85, 0 ), MAP_APPFONT ) ); Size aSize( this->GetSizePixel() ); diff --git a/chart2/source/controller/dialogs/dlg_DataEditor.src b/chart2/source/controller/dialogs/dlg_DataEditor.src index dadd1ac3098d..02ccc98b7a82 100644 --- a/chart2/source/controller/dialogs/dlg_DataEditor.src +++ b/chart2/source/controller/dialogs/dlg_DataEditor.src @@ -38,7 +38,7 @@ ModalDialog DLG_DIAGRAM_DATA { - HelpID = SID_DIAGRAM_DATA ; + HelpID = HID_DIAGRAM_DATA ; OutputSize = TRUE ; Hide = TRUE ; SVLook = TRUE ; diff --git a/chart2/source/controller/dialogs/dlg_InsertAxis_Grid.cxx b/chart2/source/controller/dialogs/dlg_InsertAxis_Grid.cxx index e97f15898064..0a250b5bf874 100644 --- a/chart2/source/controller/dialogs/dlg_InsertAxis_Grid.cxx +++ b/chart2/source/controller/dialogs/dlg_InsertAxis_Grid.cxx @@ -88,7 +88,7 @@ SchAxisDlg::SchAxisDlg( Window* pWindow FreeResource(); if(!bAxisDlg) { - SetHelpId( SID_INSERT_GRIDS ); + SetHelpId( HID_INSERT_GRIDS ); SetText( ObjectNameProvider::getName(OBJECTTYPE_GRID,true) ); aCbPrimaryX.SetHelpId( HID_SCH_CB_XGRID ); diff --git a/chart2/source/controller/dialogs/dlg_InsertAxis_Grid.src b/chart2/source/controller/dialogs/dlg_InsertAxis_Grid.src index 11eec47d0996..0ee3f219c12c 100644 --- a/chart2/source/controller/dialogs/dlg_InsertAxis_Grid.src +++ b/chart2/source/controller/dialogs/dlg_InsertAxis_Grid.src @@ -33,7 +33,7 @@ ModalDialog DLG_AXIS_OR_GRID { - HelpID = SID_INSERT_AXIS ; + HelpID = HID_INSERT_AXIS ; OutputSize = TRUE ; SVLook = TRUE ; //Size = MAP_APPFONT ( 160 , 99 ) ; diff --git a/chart2/source/controller/dialogs/dlg_InsertDataLabel.src b/chart2/source/controller/dialogs/dlg_InsertDataLabel.src index 8f8a64485778..24ae2f63fce1 100644 --- a/chart2/source/controller/dialogs/dlg_InsertDataLabel.src +++ b/chart2/source/controller/dialogs/dlg_InsertDataLabel.src @@ -32,7 +32,7 @@ ModalDialog DLG_DATA_DESCR { - HelpID = SID_INSERT_DESCRIPTION ; + HelpID = HID_INSERT_DESCRIPTION ; OutputSize = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 316 , 185 ) ; diff --git a/chart2/source/controller/dialogs/dlg_InsertErrorBars.src b/chart2/source/controller/dialogs/dlg_InsertErrorBars.src index 08230207b007..462c81211011 100644 --- a/chart2/source/controller/dialogs/dlg_InsertErrorBars.src +++ b/chart2/source/controller/dialogs/dlg_InsertErrorBars.src @@ -33,7 +33,7 @@ ModalDialog DLG_DATA_YERRORBAR { -// HelpID = SID_INSERT_STATISTICS ; + HelpID = "chart2:ModalDialog:DLG_DATA_YERRORBAR"; OutputSize = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 300 , 156 ) ; diff --git a/chart2/source/controller/dialogs/dlg_InsertLegend.src b/chart2/source/controller/dialogs/dlg_InsertLegend.src index 95a1d5516ab5..1f768f7c065b 100644 --- a/chart2/source/controller/dialogs/dlg_InsertLegend.src +++ b/chart2/source/controller/dialogs/dlg_InsertLegend.src @@ -36,7 +36,7 @@ ModalDialog DLG_LEGEND { - HelpID = SID_INSERT_CHART_LEGEND ; + HelpID = HID_INSERT_CHART_LEGEND ; OutputSize = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 156 , 80 ) ; diff --git a/chart2/source/controller/dialogs/dlg_InsertTitle.src b/chart2/source/controller/dialogs/dlg_InsertTitle.src index f84ff2c6acd7..446763e93b9e 100644 --- a/chart2/source/controller/dialogs/dlg_InsertTitle.src +++ b/chart2/source/controller/dialogs/dlg_InsertTitle.src @@ -32,7 +32,7 @@ ModalDialog DLG_TITLE { - HelpID = SID_INSERT_TITLE ; + HelpID = HID_INSERT_TITLE ; OutputSize = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 220 , 156 ) ; diff --git a/chart2/source/controller/dialogs/dlg_InsertTrendline.src b/chart2/source/controller/dialogs/dlg_InsertTrendline.src index 54c490d4a2d1..e7abd803fd87 100644 --- a/chart2/source/controller/dialogs/dlg_InsertTrendline.src +++ b/chart2/source/controller/dialogs/dlg_InsertTrendline.src @@ -37,7 +37,7 @@ ModalDialog DLG_DATA_TRENDLINE { - HelpID = SID_INSERT_STATISTICS ; + HelpID = HID_INSERT_STATISTICS ; OutputSize = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT( DLG_DATA_TRENDLINE_RES_WIDTH + DLG_DATA_TRENDLINE_ADD_TO_RES, 172 ); diff --git a/chart2/source/controller/dialogs/dlg_View3D.src b/chart2/source/controller/dialogs/dlg_View3D.src index 5b1802ecfb3d..7be2dd60b324 100644 --- a/chart2/source/controller/dialogs/dlg_View3D.src +++ b/chart2/source/controller/dialogs/dlg_View3D.src @@ -28,10 +28,11 @@ #include "dlg_View3D.hrc" #include "SchSlotIds.hxx" #include "CommonResources.hrc" +#include "HelpIds.hrc" TabDialog DLG_3D_VIEW { - HelpID = SID_3D_VIEW ; + HelpID = HID_3D_VIEW ; OutputSize = TRUE ; SVLook = TRUE ; Moveable = TRUE ; diff --git a/chart2/source/controller/dialogs/hidother.src b/chart2/source/controller/dialogs/hidother.src index 4b006f0f1f93..195115e93bd1 100644 --- a/chart2/source/controller/dialogs/hidother.src +++ b/chart2/source/controller/dialogs/hidother.src @@ -25,9 +25,6 @@ * ************************************************************************/ #include "HelpIds.hrc" -#include "SchSlotIds.hxx" - -hidspecial SID_INSERT_GRIDS {HelpId= SID_INSERT_GRIDS; }; hidspecial HID_SCH_CB_XAXIS {HelpId= HID_SCH_CB_XAXIS; }; hidspecial HID_SCH_CB_YAXIS {HelpId= HID_SCH_CB_YAXIS; }; diff --git a/chart2/source/controller/dialogs/tp_3D_SceneAppearance.src b/chart2/source/controller/dialogs/tp_3D_SceneAppearance.src index df202410109d..47e43e8c45b3 100644 --- a/chart2/source/controller/dialogs/tp_3D_SceneAppearance.src +++ b/chart2/source/controller/dialogs/tp_3D_SceneAppearance.src @@ -51,6 +51,7 @@ TabPage TP_3D_SCENEAPPEARANCE { + HelpID = "chart2:TabPage:TP_3D_SCENEAPPEARANCE"; OutputSize = TRUE ; SVLook = TRUE ; Hide = TRUE ; @@ -64,6 +65,7 @@ TabPage TP_3D_SCENEAPPEARANCE }; ListBox LB_SCHEME { + HelpID = "chart2:ListBox:TP_3D_SCENEAPPEARANCE:LB_SCHEME"; Border = TRUE; TabStop = TRUE; DropDown = TRUE; @@ -78,12 +80,14 @@ TabPage TP_3D_SCENEAPPEARANCE CheckBox CB_SHADING { + HelpID = "chart2:CheckBox:TP_3D_SCENEAPPEARANCE:CB_SHADING"; Pos = MAP_APPFONT ( POS_X_1 , POS_Y_SHADING ) ; Size = MAP_APPFONT ( WIDTH_FL , HEIGHT_LB ) ; Text [ en-US ] = "~Shading" ; }; CheckBox CB_OBJECTLINES { + HelpID = "chart2:CheckBox:TP_3D_SCENEAPPEARANCE:CB_OBJECTLINES"; Pos = MAP_APPFONT ( POS_X_1 , POS_Y_OBJECTLINES ) ; Size = MAP_APPFONT ( WIDTH_FL , HEIGHT_LB ) ; Text [ en-US ] = "~Object borders" ; diff --git a/chart2/source/controller/dialogs/tp_3D_SceneGeometry.src b/chart2/source/controller/dialogs/tp_3D_SceneGeometry.src index 329eb25e0e51..733212e6652a 100644 --- a/chart2/source/controller/dialogs/tp_3D_SceneGeometry.src +++ b/chart2/source/controller/dialogs/tp_3D_SceneGeometry.src @@ -28,6 +28,7 @@ #include "tp_3D_SceneGeometry.hrc" #include "dlg_View3D.hrc" #include "SchSlotIds.hxx" +#include "HelpIds.hrc" #ifndef _SVT_CONTROLDIMS_HRC_ #include <svtools/controldims.hrc> @@ -68,7 +69,7 @@ CustomUnitText [ en-US ] = " degrees" ; TabPage TP_3D_SCENEGEOMETRY { - HelpID = SID_3D_VIEW ; + HelpID = HID_3D_VIEW ; OutputSize = TRUE ; SVLook = TRUE ; Hide = TRUE ; @@ -76,6 +77,7 @@ TabPage TP_3D_SCENEGEOMETRY CheckBox CBX_RIGHT_ANGLED_AXES { + HelpID = "chart2:CheckBox:TP_3D_SCENEGEOMETRY:CBX_RIGHT_ANGLED_AXES"; Pos = MAP_APPFONT ( POS_X_1 , POS_Y_0 ) ; Size = MAP_APPFONT ( (WIDTH_FT+WIDTH_MF) , HEIGHT_FT ) ; TabStop = TRUE ; @@ -101,18 +103,21 @@ TabPage TP_3D_SCENEGEOMETRY }; MetricField MTR_FLD_X_ROTATION { + HelpID = "chart2:MetricField:TP_3D_SCENEGEOMETRY:MTR_FLD_X_ROTATION"; Pos = MAP_APPFONT ( POS_X_2 , POS_Y_1-2 ) ; Size = MAP_APPFONT ( WIDTH_MF , HEIGHT_MF ) ; CUSTOMUNITTEXT_DEGREE }; MetricField MTR_FLD_Y_ROTATION { + HelpID = "chart2:MetricField:TP_3D_SCENEGEOMETRY:MTR_FLD_Y_ROTATION"; Pos = MAP_APPFONT ( POS_X_2 , POS_Y_2-2 ) ; Size = MAP_APPFONT ( WIDTH_MF , HEIGHT_MF ) ; CUSTOMUNITTEXT_DEGREE }; MetricField MTR_FLD_Z_ROTATION { + HelpID = "chart2:MetricField:TP_3D_SCENEGEOMETRY:MTR_FLD_Z_ROTATION"; Pos = MAP_APPFONT ( POS_X_2 , POS_Y_3-2 ) ; Size = MAP_APPFONT ( WIDTH_MF , HEIGHT_MF ) ; CUSTOMUNITTEXT_DEGREE @@ -120,6 +125,7 @@ TabPage TP_3D_SCENEGEOMETRY CheckBox CBX_PERSPECTIVE { + HelpID = "chart2:CheckBox:TP_3D_SCENEGEOMETRY:CBX_PERSPECTIVE"; Pos = MAP_APPFONT ( POS_X_1 , POS_Y_4 ) ; Size = MAP_APPFONT ( WIDTH_FT , HEIGHT_FT ) ; TabStop = TRUE ; @@ -127,6 +133,7 @@ TabPage TP_3D_SCENEGEOMETRY }; MetricField MTR_FLD_PERSPECTIVE { + HelpID = "chart2:MetricField:TP_3D_SCENEGEOMETRY:MTR_FLD_PERSPECTIVE"; Pos = MAP_APPFONT ( POS_X_2 , POS_Y_4-2 ) ; Size = MAP_APPFONT ( WIDTH_MF , HEIGHT_MF ) ; Border = TRUE ; diff --git a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.src b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.src index 57f15a1894d7..0b052f4d00c6 100644 --- a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.src +++ b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.src @@ -59,6 +59,7 @@ TabPage TP_3D_SCENEILLUMINATION { + HelpID = "chart2:TabPage:TP_3D_SCENEILLUMINATION"; OutputSize = TRUE ; SVLook = TRUE ; Hide = TRUE ; @@ -72,46 +73,55 @@ TabPage TP_3D_SCENEILLUMINATION }; ImageButton BTN_LIGHT_1 { + HelpID = "chart2:ImageButton:TP_3D_SCENEILLUMINATION:BTN_LIGHT_1"; Pos = MAP_APPFONT ( POS_X_0 , POS_Y_LIGHTSOURCE_BUTTONS ) ; Size = MAP_APPFONT ( WIDTH_IB , HEIGHT_IB ) ; }; ImageButton BTN_LIGHT_2 { + HelpID = "chart2:ImageButton:TP_3D_SCENEILLUMINATION:BTN_LIGHT_2"; Pos = MAP_APPFONT ( POS_X_0+BUTTON_DISTANCE , POS_Y_LIGHTSOURCE_BUTTONS ) ; Size = MAP_APPFONT ( WIDTH_IB , HEIGHT_IB ) ; }; ImageButton BTN_LIGHT_3 { + HelpID = "chart2:ImageButton:TP_3D_SCENEILLUMINATION:BTN_LIGHT_3"; Pos = MAP_APPFONT ( POS_X_0+2*BUTTON_DISTANCE , POS_Y_LIGHTSOURCE_BUTTONS ) ; Size = MAP_APPFONT ( WIDTH_IB , HEIGHT_IB ) ; }; ImageButton BTN_LIGHT_4 { + HelpID = "chart2:ImageButton:TP_3D_SCENEILLUMINATION:BTN_LIGHT_4"; Pos = MAP_APPFONT ( POS_X_0+3*BUTTON_DISTANCE , POS_Y_LIGHTSOURCE_BUTTONS ) ; Size = MAP_APPFONT ( WIDTH_IB , HEIGHT_IB ) ; }; ImageButton BTN_LIGHT_5 { + HelpID = "chart2:ImageButton:TP_3D_SCENEILLUMINATION:BTN_LIGHT_5"; Pos = MAP_APPFONT ( POS_X_0 , POS_Y_LIGHTSOURCE_BUTTONS_2 ) ; Size = MAP_APPFONT ( WIDTH_IB , HEIGHT_IB ) ; }; ImageButton BTN_LIGHT_6 { + HelpID = "chart2:ImageButton:TP_3D_SCENEILLUMINATION:BTN_LIGHT_6"; Pos = MAP_APPFONT ( POS_X_0+1*BUTTON_DISTANCE , POS_Y_LIGHTSOURCE_BUTTONS_2 ) ; Size = MAP_APPFONT ( WIDTH_IB , HEIGHT_IB ) ; }; ImageButton BTN_LIGHT_7 { + HelpID = "chart2:ImageButton:TP_3D_SCENEILLUMINATION:BTN_LIGHT_7"; Pos = MAP_APPFONT ( POS_X_0+2*BUTTON_DISTANCE , POS_Y_LIGHTSOURCE_BUTTONS_2 ) ; Size = MAP_APPFONT ( WIDTH_IB , HEIGHT_IB ) ; }; ImageButton BTN_LIGHT_8 { + HelpID = "chart2:ImageButton:TP_3D_SCENEILLUMINATION:BTN_LIGHT_8"; Pos = MAP_APPFONT ( POS_X_0+3*BUTTON_DISTANCE , POS_Y_LIGHTSOURCE_BUTTONS_2 ) ; Size = MAP_APPFONT ( WIDTH_IB , HEIGHT_IB ) ; }; ListBox LB_LIGHTSOURCE { + HelpID = "chart2:ListBox:TP_3D_SCENEILLUMINATION:LB_LIGHTSOURCE"; Border = TRUE ; Pos = MAP_APPFONT ( POS_X_0 , POS_Y_LIGHTSOURCE ) ; Size = MAP_APPFONT ( WIDTH_LB , HEIGHT_LB ) ; @@ -120,6 +130,7 @@ TabPage TP_3D_SCENEILLUMINATION }; ImageButton BTN_LIGHTSOURCE_COLOR { + HelpID = "chart2:ImageButton:TP_3D_SCENEILLUMINATION:BTN_LIGHTSOURCE_COLOR"; Pos = MAP_APPFONT ( POS_X_1 , POS_Y_LIGHTSOURCE ) ; Size = MAP_APPFONT ( WIDTH_IB , HEIGHT_IB ) ; TabStop = TRUE ; @@ -136,6 +147,7 @@ TabPage TP_3D_SCENEILLUMINATION }; ListBox LB_AMBIENTLIGHT { + HelpID = "chart2:ListBox:TP_3D_SCENEILLUMINATION:LB_AMBIENTLIGHT"; Border = TRUE ; Pos = MAP_APPFONT ( POS_X_0 , POS_Y_AMBIENT ) ; Size = MAP_APPFONT ( WIDTH_LB , HEIGHT_LB ) ; @@ -144,6 +156,7 @@ TabPage TP_3D_SCENEILLUMINATION }; ImageButton BTN_AMBIENT_COLOR { + HelpID = "chart2:ImageButton:TP_3D_SCENEILLUMINATION:BTN_AMBIENT_COLOR"; Pos = MAP_APPFONT ( POS_X_1 , POS_Y_AMBIENT ) ; Size = MAP_APPFONT ( WIDTH_IB , HEIGHT_IB ) ; TabStop = TRUE ; diff --git a/chart2/source/controller/dialogs/tp_AxisLabel.src b/chart2/source/controller/dialogs/tp_AxisLabel.src index bcba1926c242..75da7dc5e653 100644 --- a/chart2/source/controller/dialogs/tp_AxisLabel.src +++ b/chart2/source/controller/dialogs/tp_AxisLabel.src @@ -35,6 +35,7 @@ TabPage TP_AXIS_LABEL CheckBox CB_AXIS_LABEL_SCHOW_DESCR { + HelpID = "chart2:CheckBox:TP_AXIS_LABEL:CB_AXIS_LABEL_SCHOW_DESCR"; Pos = MAP_APPFONT ( 6 , 6 ) ; Size = MAP_APPFONT ( 248 , 12 ) ; @@ -112,6 +113,7 @@ TabPage TP_AXIS_LABEL }; CheckBox CB_AXIS_LABEL_TEXTOVERLAP { + HelpID = "chart2:CheckBox:TP_AXIS_LABEL:CB_AXIS_LABEL_TEXTOVERLAP"; Pos = MAP_APPFONT ( 139 , 33 ) ; Size = MAP_APPFONT ( 115 , 10 ) ; TabStop = TRUE ; @@ -120,6 +122,7 @@ TabPage TP_AXIS_LABEL }; CheckBox CB_AXIS_LABEL_TEXTBREAK { + HelpID = "chart2:CheckBox:TP_AXIS_LABEL:CB_AXIS_LABEL_TEXTBREAK"; Pos = MAP_APPFONT ( 139 , 47 ) ; Size = MAP_APPFONT ( 115 , 10 ) ; TabStop = TRUE ; @@ -137,6 +140,7 @@ TabPage TP_AXIS_LABEL }; RadioButton RB_AXIS_LABEL_SIDEBYSIDE { + HelpID = "chart2:RadioButton:TP_AXIS_LABEL:RB_AXIS_LABEL_SIDEBYSIDE"; Pos = MAP_APPFONT ( 12 , 33 ) ; Size = MAP_APPFONT ( 112 , 10 ) ; TabStop = TRUE ; @@ -145,6 +149,7 @@ TabPage TP_AXIS_LABEL }; RadioButton RB_AXIS_LABEL_UPDOWN { + HelpID = "chart2:RadioButton:TP_AXIS_LABEL:RB_AXIS_LABEL_UPDOWN"; Pos = MAP_APPFONT ( 12 , 47 ) ; Size = MAP_APPFONT ( 112 , 10 ) ; TabStop = TRUE ; @@ -153,6 +158,7 @@ TabPage TP_AXIS_LABEL }; RadioButton RB_AXIS_LABEL_DOWNUP { + HelpID = "chart2:RadioButton:TP_AXIS_LABEL:RB_AXIS_LABEL_DOWNUP"; Pos = MAP_APPFONT ( 12 , 61 ) ; Size = MAP_APPFONT ( 112 , 10 ) ; TabStop = TRUE ; @@ -161,6 +167,7 @@ TabPage TP_AXIS_LABEL }; RadioButton RB_AXIS_LABEL_AUTOORDER { + HelpID = "chart2:RadioButton:TP_AXIS_LABEL:RB_AXIS_LABEL_AUTOORDER"; Pos = MAP_APPFONT ( 12 , 75 ) ; Size = MAP_APPFONT ( 112 , 10 ) ; TabStop = TRUE ; @@ -176,6 +183,7 @@ TabPage TP_AXIS_LABEL }; ListBox LB_AXIS_TEXTDIR { + HelpID = "chart2:ListBox:TP_AXIS_LABEL:LB_AXIS_TEXTDIR"; Pos = MAP_APPFONT ( 78 , 154 ) ; Size = MAP_APPFONT ( 170 , 100 ) ; Border = TRUE; diff --git a/chart2/source/controller/dialogs/tp_AxisPositions.src b/chart2/source/controller/dialogs/tp_AxisPositions.src index 8ce1ba39056a..1173b841354a 100644 --- a/chart2/source/controller/dialogs/tp_AxisPositions.src +++ b/chart2/source/controller/dialogs/tp_AxisPositions.src @@ -60,6 +60,7 @@ TabPage TP_AXIS_POSITIONS { + HelpID = "chart2:TabPage:TP_AXIS_POSITIONS"; Hide = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 260 , 185 ) ; @@ -79,6 +80,7 @@ TabPage TP_AXIS_POSITIONS }; ListBox LB_CROSSES_OTHER_AXIS_AT { + HelpID = "chart2:ListBox:TP_AXIS_POSITIONS:LB_CROSSES_OTHER_AXIS_AT"; Border = TRUE ; AutoHScroll = TRUE ; Pos = MAP_APPFONT ( X4 , Y1-2 ) ; @@ -98,6 +100,7 @@ TabPage TP_AXIS_POSITIONS }; SpinField EDT_CROSSES_OTHER_AXIS_AT { + HelpID = "chart2:SpinField:TP_AXIS_POSITIONS:EDT_CROSSES_OTHER_AXIS_AT"; Border = TRUE ; SVLook = TRUE ; Pos = MAP_APPFONT ( X5 , Y1-2 ) ; @@ -106,6 +109,7 @@ TabPage TP_AXIS_POSITIONS }; ComboBox EDT_CROSSES_OTHER_AXIS_AT_CATEGORY { + HelpID = "chart2:ComboBox:TP_AXIS_POSITIONS:EDT_CROSSES_OTHER_AXIS_AT_CATEGORY"; Border = TRUE ; SVLook = TRUE ; Pos = MAP_APPFONT ( X5 , Y1-2 ) ; @@ -116,6 +120,7 @@ TabPage TP_AXIS_POSITIONS CheckBox CB_AXIS_BETWEEN_CATEGORIES { + HelpID = "chart2:CheckBox:TP_AXIS_POSITIONS:CB_AXIS_BETWEEN_CATEGORIES"; Hide = TRUE; Pos = MAP_APPFONT ( X2 , Y2 ) ; Size = MAP_APPFONT ( 150 , 10 ) ; @@ -137,6 +142,7 @@ TabPage TP_AXIS_POSITIONS }; ListBox LB_PLACE_LABELS { + HelpID = "chart2:ListBox:TP_AXIS_POSITIONS:LB_PLACE_LABELS"; Border = TRUE ; AutoHScroll = TRUE ; Pos = MAP_APPFONT ( X4 , Y4-2 ) ; @@ -164,6 +170,7 @@ TabPage TP_AXIS_POSITIONS }; SpinField EDT_AXIS_LABEL_DISTANCE { + HelpID = "chart2:SpinField:TP_AXIS_POSITIONS:EDT_AXIS_LABEL_DISTANCE"; Hide = TRUE; Border = TRUE ; SVLook = TRUE ; @@ -186,12 +193,14 @@ TabPage TP_AXIS_POSITIONS }; CheckBox CB_TICKS_INNER { + HelpID = "chart2:CheckBox:TP_AXIS_POSITIONS:CB_TICKS_INNER"; Pos = MAP_APPFONT ( XTICK_2 , Y7 ) ; Size = MAP_APPFONT ( TICKWIDTH , 10 ) ; Text [ en-US ] = "~Inner"; }; CheckBox CB_TICKS_OUTER { + HelpID = "chart2:CheckBox:TP_AXIS_POSITIONS:CB_TICKS_OUTER"; Pos = MAP_APPFONT ( XTICK_3 , Y7 ) ; Size = MAP_APPFONT ( TICKWIDTH , 10 ) ; Text [ en-US ] = "~Outer"; @@ -205,12 +214,14 @@ TabPage TP_AXIS_POSITIONS }; CheckBox CB_MINOR_INNER { + HelpID = "chart2:CheckBox:TP_AXIS_POSITIONS:CB_MINOR_INNER"; Pos = MAP_APPFONT ( XTICK_2 , Y8 ); Size = MAP_APPFONT ( TICKWIDTH , 10 ) ; Text [ en-US ] = "I~nner"; }; CheckBox CB_MINOR_OUTER { + HelpID = "chart2:CheckBox:TP_AXIS_POSITIONS:CB_MINOR_OUTER"; Pos = MAP_APPFONT ( XTICK_3 , Y8 ) ; Size = MAP_APPFONT ( TICKWIDTH , 10 ) ; Text [ en-US ] = "O~uter"; @@ -232,6 +243,7 @@ TabPage TP_AXIS_POSITIONS }; ListBox LB_PLACE_TICKS { + HelpID = "chart2:ListBox:TP_AXIS_POSITIONS:LB_PLACE_TICKS"; Border = TRUE ; AutoHScroll = TRUE ; Pos = MAP_APPFONT ( X3 , Y9-2 ) ; @@ -259,6 +271,7 @@ TabPage TP_AXIS_POSITIONS }; CheckBox CB_MAJOR_GRID { + HelpID = "chart2:CheckBox:TP_AXIS_POSITIONS:CB_MAJOR_GRID"; Hide = TRUE ; Pos = MAP_APPFONT ( X2 , Y11 ) ; Size = MAP_APPFONT ( 150 , 10 ) ; @@ -267,6 +280,7 @@ TabPage TP_AXIS_POSITIONS }; PushButton PB_MAJOR_GRID { + HelpID = "chart2:PushButton:TP_AXIS_POSITIONS:PB_MAJOR_GRID"; Hide = TRUE ; TabStop = TRUE; Pos = MAP_APPFONT ( X3 , Y11-2 ); @@ -275,6 +289,7 @@ TabPage TP_AXIS_POSITIONS }; CheckBox CB_MINOR_GRID { + HelpID = "chart2:CheckBox:TP_AXIS_POSITIONS:CB_MINOR_GRID"; Hide = TRUE ; Pos = MAP_APPFONT ( X2 , Y12 ) ; Size = MAP_APPFONT ( 150 , 10 ) ; @@ -283,6 +298,7 @@ TabPage TP_AXIS_POSITIONS }; PushButton PB_MINOR_GRID { + HelpID = "chart2:PushButton:TP_AXIS_POSITIONS:PB_MINOR_GRID"; Hide = TRUE ; TabStop = TRUE; Pos = MAP_APPFONT ( X3 , Y12-2 ); diff --git a/chart2/source/controller/dialogs/tp_ChartType.src b/chart2/source/controller/dialogs/tp_ChartType.src index a9bb2a039f3c..69c33cd14021 100644 --- a/chart2/source/controller/dialogs/tp_ChartType.src +++ b/chart2/source/controller/dialogs/tp_ChartType.src @@ -69,7 +69,7 @@ TabPage TP_CHARTTYPE { Hide = TRUE ; - HelpID = SID_DIAGRAM_TYPE; + HelpID = HID_DIAGRAM_TYPE; SVLook = TRUE ; Size = MAP_APPFONT ( CHART_WIZARD_PAGEWIDTH , CHART_WIZARD_PAGEHEIGHT ) ; @@ -99,18 +99,21 @@ TabPage TP_CHARTTYPE CheckBox CB_X_AXIS_CATEGORIES { + HelpID = "chart2:CheckBox:TP_CHARTTYPE:CB_X_AXIS_CATEGORIES"; Pos = MAP_APPFONT ( POS_X_IMAGELIST , POS_Y_VALUE_X_AXIS ) ; Size = MAP_APPFONT ( 150 , 10 ) ; Text [ en-US ] = "X axis with Categories" ; }; CheckBox CB_3D_LOOK { + HelpID = "chart2:CheckBox:TP_CHARTTYPE:CB_3D_LOOK"; Pos = MAP_APPFONT ( POS_X_IMAGELIST , POS_Y_3D_LOOK ) ; Size = MAP_APPFONT ( WIDTH_3D , 10 ) ; Text [ en-US ] = "~3D Look" ; }; ListBox LB_3D_SCHEME { + HelpID = "chart2:ListBox:TP_CHARTTYPE:LB_3D_SCHEME"; Border = TRUE; TabStop = TRUE; DropDown = TRUE; @@ -120,12 +123,14 @@ TabPage TP_CHARTTYPE CheckBox CB_STACKED { + HelpID = "chart2:CheckBox:TP_CHARTTYPE:CB_STACKED"; Pos = MAP_APPFONT ( POS_X_IMAGELIST , POS_Y_STACKING ) ; Size = MAP_APPFONT ( 150 , 10 ) ; Text [ en-US ] = "~Stack series" ; }; RadioButton RB_STACK_Y { + HelpID = "chart2:RadioButton:TP_CHARTTYPE:RB_STACK_Y"; Pos = MAP_APPFONT ( POS_X_IMAGELIST+RSC_SP_CHK_TEXTINDENT, POS_Y_STACKING+12 ) ; Size = MAP_APPFONT ( 80 , 10 ) ; TabStop = TRUE ; @@ -135,6 +140,7 @@ TabPage TP_CHARTTYPE }; RadioButton RB_STACK_Y_PERCENT { + HelpID = "chart2:RadioButton:TP_CHARTTYPE:RB_STACK_Y_PERCENT"; Pos = MAP_APPFONT ( POS_X_IMAGELIST+RSC_SP_CHK_TEXTINDENT, POS_Y_STACKING+2*12 ) ; Size = MAP_APPFONT ( 80 , 10 ) ; TabStop = TRUE ; @@ -142,6 +148,7 @@ TabPage TP_CHARTTYPE }; RadioButton RB_STACK_Z { + HelpID = "chart2:RadioButton:TP_CHARTTYPE:RB_STACK_Z"; Pos = MAP_APPFONT ( POS_X_IMAGELIST+RSC_SP_CHK_TEXTINDENT, POS_Y_STACKING+3*12 ) ; Size = MAP_APPFONT ( 80 , 10 ) ; TabStop = TRUE ; @@ -152,6 +159,7 @@ TabPage TP_CHARTTYPE CheckBox CB_SPLINES { + HelpID = "chart2:CheckBox:TP_CHARTTYPE:CB_SPLINES"; Pos = MAP_APPFONT ( POS_X_IMAGELIST , POS_Y_SPLINES ) ; Size = MAP_APPFONT ( 150 , 10 ) ; Text [ en-US ] = "S~mooth lines" ; @@ -159,6 +167,7 @@ TabPage TP_CHARTTYPE PushButton PB_SPLINE_DIALOG { + HelpID = "chart2:PushButton:TP_CHARTTYPE:PB_SPLINE_DIALOG"; TabStop = TRUE ; Pos = MAP_APPFONT ( POS_X_IMAGELIST , POS_Y_SPLINES-6 ) ; Size = MAP_APPFONT ( 12 , 14 ) ; @@ -167,6 +176,7 @@ TabPage TP_CHARTTYPE CheckBox CB_XVALUE_SORTING { + HelpID = "chart2:CheckBox:TP_CHARTTYPE:CB_XVALUE_SORTING"; TabStop = TRUE ; Pos = MAP_APPFONT ( POS_X_IMAGELIST , POS_Y_XVALUE_SORTING ) ; Size = MAP_APPFONT ( WIDTH_XVALUE_SORTING , 10 ) ; @@ -185,6 +195,7 @@ ModalDialog DLG_SPLINE_PROPERTIES Closeable = TRUE; RadioButton RB_SPLINES_CUBIC { + HelpID = "chart2:RadioButton:DLG_SPLINE_PROPERTIES:RB_SPLINES_CUBIC"; Pos = MAP_APPFONT ( POS_X_SPLINES_1, POS_Y_SPLINES_2 ) ; Size = MAP_APPFONT ( SPLINES_WIDTH_RADIO , 10 ) ; TabStop = TRUE ; @@ -192,6 +203,7 @@ ModalDialog DLG_SPLINE_PROPERTIES }; RadioButton RB_SPLINES_B { + HelpID = "chart2:RadioButton:DLG_SPLINE_PROPERTIES:RB_SPLINES_B"; Pos = MAP_APPFONT ( POS_X_SPLINES_1, POS_Y_SPLINES_3 ) ; Size = MAP_APPFONT ( SPLINES_WIDTH_RADIO , 10 ) ; TabStop = TRUE ; @@ -213,6 +225,7 @@ ModalDialog DLG_SPLINE_PROPERTIES }; MetricField MF_SPLINE_RESOLUTION { + HelpID = "chart2:MetricField:DLG_SPLINE_PROPERTIES:MF_SPLINE_RESOLUTION"; Border = TRUE ; Pos = MAP_APPFONT ( POS_X_SPLINE_EXTRAS+SPLINES_WIDTH_METRIC_TEXT+RSC_SP_FLGR_SPACE_X , POS_Y_SPLINES_2-2 ) ; Size = MAP_APPFONT ( 25 , 12 ) ; @@ -236,6 +249,7 @@ ModalDialog DLG_SPLINE_PROPERTIES }; MetricField MF_SPLINE_ORDER { + HelpID = "chart2:MetricField:DLG_SPLINE_PROPERTIES:MF_SPLINE_ORDER"; Border = TRUE ; Pos = MAP_APPFONT ( POS_X_SPLINE_EXTRAS+SPLINES_WIDTH_METRIC_TEXT+RSC_SP_FLGR_SPACE_X , POS_Y_SPLINES_3-2 ) ; Size = MAP_APPFONT ( 25 , 12 ) ; diff --git a/chart2/source/controller/dialogs/tp_DataSource.src b/chart2/source/controller/dialogs/tp_DataSource.src index 3e1f8a51c68a..9173a9c709ab 100644 --- a/chart2/source/controller/dialogs/tp_DataSource.src +++ b/chart2/source/controller/dialogs/tp_DataSource.src @@ -29,6 +29,7 @@ TabPage TP_DATA_SOURCE { + HelpID = "chart2:TabPage:TP_DATA_SOURCE"; Hide = TRUE; Size = MAP_APPFONT ( 248, 140 ); SVLook = TRUE ; @@ -86,6 +87,7 @@ TabPage TP_DATA_SOURCE }; Edit EDT_RANGE { + HelpID = "chart2:Edit:TP_DATA_SOURCE:EDT_RANGE"; Border = TRUE; TabStop = TRUE; Pos = MAP_APPFONT ( 82 , 89 ); @@ -93,6 +95,7 @@ TabPage TP_DATA_SOURCE }; ImageButton IMB_RANGE_MAIN { + HelpID = "chart2:ImageButton:TP_DATA_SOURCE:IMB_RANGE_MAIN"; TabStop = TRUE; Pos = MAP_APPFONT ( 228 , 88 ); Size = MAP_APPFONT ( 14 , 14 ); @@ -118,6 +121,7 @@ TabPage TP_DATA_SOURCE Edit EDT_CATEGORIES { + HelpID = "chart2:Edit:TP_DATA_SOURCE:EDT_CATEGORIES"; Border = TRUE; TabStop = TRUE; Pos = MAP_APPFONT ( 82 , 117 ); @@ -125,6 +129,7 @@ TabPage TP_DATA_SOURCE }; ImageButton IMB_RANGE_CAT { + HelpID = "chart2:ImageButton:TP_DATA_SOURCE:IMB_RANGE_CAT"; TabStop = TRUE; Pos = MAP_APPFONT ( 228 , 116 ); Size = MAP_APPFONT ( 14 , 14 ); @@ -134,6 +139,7 @@ TabPage TP_DATA_SOURCE PushButton BTN_ADD { + HelpID = "chart2:PushButton:TP_DATA_SOURCE:BTN_ADD"; TabStop = TRUE; Disable = FALSE; Pos = MAP_APPFONT ( 6 , 105 ); @@ -143,6 +149,7 @@ TabPage TP_DATA_SOURCE }; PushButton BTN_REMOVE { + HelpID = "chart2:PushButton:TP_DATA_SOURCE:BTN_REMOVE"; TabStop = TRUE; Disable = TRUE; Pos = MAP_APPFONT ( 6 , 121 ); @@ -154,6 +161,7 @@ TabPage TP_DATA_SOURCE // Note: Text is only a black triangle symbol PushButton BTN_UP { + HelpID = "chart2:PushButton:TP_DATA_SOURCE:BTN_UP"; TabStop = TRUE; Disable = TRUE; Pos = MAP_APPFONT ( 64 , 105 ); @@ -163,6 +171,7 @@ TabPage TP_DATA_SOURCE // Note: Text is only a black triangle symbol PushButton BTN_DOWN { + HelpID = "chart2:PushButton:TP_DATA_SOURCE:BTN_DOWN"; TabStop = TRUE; Disable = TRUE; Pos = MAP_APPFONT ( 64 , 121 ); diff --git a/chart2/source/controller/dialogs/tp_ErrorBars.src b/chart2/source/controller/dialogs/tp_ErrorBars.src index 03748914255f..b649cb4474c9 100644 --- a/chart2/source/controller/dialogs/tp_ErrorBars.src +++ b/chart2/source/controller/dialogs/tp_ErrorBars.src @@ -30,8 +30,8 @@ TabPage TP_YERRORBAR { + HelpID = "chart2:TabPage:TP_YERRORBAR"; Hide = TRUE ; -// HelpID = HID_SCH_STAT ; SVLook = TRUE ; Size = MAP_APPFONT ( 260 , 185 ) ; RESOURCE_ERRORBARS( 260 - 12, 0 ) diff --git a/chart2/source/controller/dialogs/tp_LegendPosition.src b/chart2/source/controller/dialogs/tp_LegendPosition.src index d910a5143293..1ac64330108a 100644 --- a/chart2/source/controller/dialogs/tp_LegendPosition.src +++ b/chart2/source/controller/dialogs/tp_LegendPosition.src @@ -56,6 +56,7 @@ TabPage TP_LEGEND_POS }; ListBox LB_LEGEND_TEXTDIR { + HelpID = "chart2:ListBox:TP_LEGEND_POS:LB_LEGEND_TEXTDIR"; Pos = MAP_APPFONT ( 78 , 14 + RESOURCE_LEGENDPOSITION_HEIGHT + 17 ) ; Size = MAP_APPFONT ( 170 , 100 ) ; Border = TRUE; diff --git a/chart2/source/controller/dialogs/tp_Location.src b/chart2/source/controller/dialogs/tp_Location.src index 6a921103f2e4..be0033d436dd 100644 --- a/chart2/source/controller/dialogs/tp_Location.src +++ b/chart2/source/controller/dialogs/tp_Location.src @@ -45,6 +45,7 @@ TabPage TP_LOCATION { + HelpID = "chart2:TabPage:TP_LOCATION"; Hide = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( CHART_WIZARD_PAGEWIDTH , CHART_WIZARD_PAGEHEIGHT ) ; @@ -65,6 +66,7 @@ TabPage TP_LOCATION }; ListBox LB_TABLE { + HelpID = "chart2:ListBox:TP_LOCATION:LB_TABLE"; Border = TRUE ; DropDown = TRUE ; Pos = MAP_APPFONT ( WIZ_POSX3 , WIZ_POSY2 ) ; diff --git a/chart2/source/controller/dialogs/tp_PointGeometry.src b/chart2/source/controller/dialogs/tp_PointGeometry.src index 54c591c0865d..b6862cba3b77 100644 --- a/chart2/source/controller/dialogs/tp_PointGeometry.src +++ b/chart2/source/controller/dialogs/tp_PointGeometry.src @@ -29,8 +29,8 @@ TabPage TP_LAYOUT { + HelpID = "chart2:TabPage:TP_LAYOUT"; Hide = TRUE ; -// HelpID = HID_LAYOUT ; SVLook = TRUE ; Size = MAP_APPFONT ( 260 , 185 ) ; }; diff --git a/chart2/source/controller/dialogs/tp_PolarOptions.src b/chart2/source/controller/dialogs/tp_PolarOptions.src index 237fa027b55f..96463a97341b 100644 --- a/chart2/source/controller/dialogs/tp_PolarOptions.src +++ b/chart2/source/controller/dialogs/tp_PolarOptions.src @@ -30,12 +30,14 @@ TabPage TP_POLAROPTIONS { + HelpID = "chart2:TabPage:TP_POLAROPTIONS"; Hide = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 260 , 185 ) ; CheckBox CB_CLOCKWISE { + HelpID = "chart2:CheckBox:TP_POLAROPTIONS:CB_CLOCKWISE"; Pos = MAP_APPFONT ( 12 , 8 ); Size = MAP_APPFONT ( 248 , 10 ); TabStop = TRUE; @@ -61,6 +63,7 @@ TabPage TP_POLAROPTIONS }; NumericField NF_STARTING_ANGLE { + HelpID = "chart2:NumericField:TP_POLAROPTIONS:NF_STARTING_ANGLE"; Pos = MAP_APPFONT ( 61 , 53 ) ; Size = MAP_APPFONT ( 28 , 12 ) ; Border = TRUE ; @@ -79,6 +82,7 @@ TabPage TP_POLAROPTIONS }; CheckBox CB_INCLUDE_HIDDEN_CELLS_POLAR { + HelpID = "chart2:CheckBox:TP_POLAROPTIONS:CB_INCLUDE_HIDDEN_CELLS_POLAR"; Pos = MAP_APPFONT ( 12 , 104 ) ; Size = MAP_APPFONT ( 200 , 10 ) ; TabStop = TRUE ; diff --git a/chart2/source/controller/dialogs/tp_RangeChooser.src b/chart2/source/controller/dialogs/tp_RangeChooser.src index de07c9763b7d..962722b41c71 100644 --- a/chart2/source/controller/dialogs/tp_RangeChooser.src +++ b/chart2/source/controller/dialogs/tp_RangeChooser.src @@ -37,6 +37,7 @@ TabPage TP_RANGECHOOSER { + HelpID = "chart2:TabPage:TP_RANGECHOOSER"; Hide = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 248, 140 ) ; @@ -55,18 +56,21 @@ TabPage TP_RANGECHOOSER }; Edit ED_RANGE { + HelpID = "chart2:Edit:TP_RANGECHOOSER:ED_RANGE"; Border = TRUE ; Pos = MAP_APPFONT ( 6 , 32 ) ; Size = MAP_APPFONT ( 220 , 12 ) ; }; ImageButton IB_RANGE { + HelpID = "chart2:ImageButton:TP_RANGECHOOSER:IB_RANGE"; Pos = MAP_APPFONT ( 228 , 31 ) ; Size = MAP_APPFONT ( 14 , 14 ) ; TabStop = FALSE ; }; RadioButton RB_DATAROWS { + HelpID = "chart2:RadioButton:TP_RANGECHOOSER:RB_DATAROWS"; Pos = MAP_APPFONT ( 6 , 52 ) ; Size = MAP_APPFONT ( 236 , 10 ) ; TabStop = TRUE ; @@ -74,6 +78,7 @@ TabPage TP_RANGECHOOSER }; RadioButton RB_DATACOLS { + HelpID = "chart2:RadioButton:TP_RANGECHOOSER:RB_DATACOLS"; Pos = MAP_APPFONT ( 6 , 66 ) ; Size = MAP_APPFONT ( 236 , 10 ) ; TabStop = TRUE ; @@ -81,12 +86,14 @@ TabPage TP_RANGECHOOSER }; CheckBox CB_FIRST_ROW_ASLABELS { + HelpID = "chart2:CheckBox:TP_RANGECHOOSER:CB_FIRST_ROW_ASLABELS"; Pos = MAP_APPFONT ( 6 , 84 ) ; Size = MAP_APPFONT ( 236 , 10 ) ; Text [ en-US ] = "~First row as label" ; }; CheckBox CB_FIRST_COLUMN_ASLABELS { + HelpID = "chart2:CheckBox:TP_RANGECHOOSER:CB_FIRST_COLUMN_ASLABELS"; Pos = MAP_APPFONT ( 6 , 98 ) ; Size = MAP_APPFONT ( 236 , 10 ) ; Text [ en-US ] = "F~irst column as label" ; diff --git a/chart2/source/controller/dialogs/tp_Scale.src b/chart2/source/controller/dialogs/tp_Scale.src index b53adeaa512f..9e92e70f6f43 100644 --- a/chart2/source/controller/dialogs/tp_Scale.src +++ b/chart2/source/controller/dialogs/tp_Scale.src @@ -46,6 +46,7 @@ TabPage TP_SCALE { + HelpID = "chart2:TabPage:TP_SCALE"; Hide = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 260 , 185 ) ; @@ -64,6 +65,7 @@ TabPage TP_SCALE }; SpinField EDT_MIN { + HelpID = "chart2:SpinField:TP_SCALE:EDT_MIN"; Border = TRUE ; SVLook = TRUE ; Pos = MAP_APPFONT ( X3 , Y1-2 ) ; @@ -72,6 +74,7 @@ TabPage TP_SCALE }; CheckBox CBX_AUTO_MIN { + HelpID = "chart2:CheckBox:TP_SCALE:CBX_AUTO_MIN"; Pos = MAP_APPFONT ( X4 , Y1-1 ) ; Size = MAP_APPFONT ( AUTOCHECKWIDTH , 10 ) ; TabStop = TRUE ; @@ -86,6 +89,7 @@ TabPage TP_SCALE }; SpinField EDT_MAX { + HelpID = "chart2:SpinField:TP_SCALE:EDT_MAX"; Border = TRUE ; SVLook = TRUE ; Pos = MAP_APPFONT ( X3 , Y2-2 ) ; @@ -94,6 +98,7 @@ TabPage TP_SCALE }; CheckBox CBX_AUTO_MAX { + HelpID = "chart2:CheckBox:TP_SCALE:CBX_AUTO_MAX"; Pos = MAP_APPFONT ( X4 , Y2-1 ) ; Size = MAP_APPFONT ( AUTOCHECKWIDTH , 10 ) ; TabStop = TRUE ; @@ -107,6 +112,7 @@ TabPage TP_SCALE }; SpinField EDT_STEP_MAIN { + HelpID = "chart2:SpinField:TP_SCALE:EDT_STEP_MAIN"; Border = TRUE ; Pos = MAP_APPFONT ( X3 , Y3-2 ) ; Size = MAP_APPFONT ( EDITWIDTH , 12 ) ; @@ -114,6 +120,7 @@ TabPage TP_SCALE }; CheckBox CBX_AUTO_STEP_MAIN { + HelpID = "chart2:CheckBox:TP_SCALE:CBX_AUTO_STEP_MAIN"; Pos = MAP_APPFONT ( X4 , Y3-1 ) ; Size = MAP_APPFONT ( AUTOCHECKWIDTH , 10 ) ; TabStop = TRUE ; @@ -127,6 +134,7 @@ TabPage TP_SCALE }; MetricField MT_STEPHELP { + HelpID = "chart2:MetricField:TP_SCALE:MT_STEPHELP"; Border = TRUE ; Pos = MAP_APPFONT ( X3 , Y4-2 ) ; Size = MAP_APPFONT ( EDITWIDTH , 12 ) ; @@ -143,6 +151,7 @@ TabPage TP_SCALE }; CheckBox CBX_AUTO_STEP_HELP { + HelpID = "chart2:CheckBox:TP_SCALE:CBX_AUTO_STEP_HELP"; Pos = MAP_APPFONT ( X4 , Y4-1 ) ; Size = MAP_APPFONT ( AUTOCHECKWIDTH , 10 ) ; TabStop = TRUE ; @@ -157,6 +166,7 @@ TabPage TP_SCALE }; SpinField EDT_ORIGIN { + HelpID = "chart2:SpinField:TP_SCALE:EDT_ORIGIN"; Border = TRUE ; SVLook = TRUE ; Pos = MAP_APPFONT ( X3 , Y5-2 ) ; @@ -165,6 +175,7 @@ TabPage TP_SCALE }; CheckBox CBX_AUTO_ORIGIN { + HelpID = "chart2:CheckBox:TP_SCALE:CBX_AUTO_ORIGIN"; Pos = MAP_APPFONT ( X4 , Y5-1 ) ; Size = MAP_APPFONT ( AUTOCHECKWIDTH , 10 ) ; TabStop = TRUE ; @@ -173,6 +184,7 @@ TabPage TP_SCALE CheckBox CBX_LOGARITHM { + HelpID = "chart2:CheckBox:TP_SCALE:CBX_LOGARITHM"; Pos = MAP_APPFONT ( X2 , Y6 ) ; Size = MAP_APPFONT ( 244 , 10 ) ; TabStop = TRUE ; @@ -181,6 +193,7 @@ TabPage TP_SCALE CheckBox CBX_REVERSE { + HelpID = "chart2:CheckBox:TP_SCALE:CBX_REVERSE"; Pos = MAP_APPFONT ( X2 , Y7 ) ; Size = MAP_APPFONT ( 244 , 10 ) ; TabStop = TRUE ; diff --git a/chart2/source/controller/dialogs/tp_SeriesToAxis.src b/chart2/source/controller/dialogs/tp_SeriesToAxis.src index bc434be7ef07..844c81bd2e64 100644 --- a/chart2/source/controller/dialogs/tp_SeriesToAxis.src +++ b/chart2/source/controller/dialogs/tp_SeriesToAxis.src @@ -29,8 +29,8 @@ TabPage TP_OPTIONS { + HelpID = "chart2:TabPage:TP_OPTIONS"; Hide = TRUE ; -// HelpID = HID_LAYOUT ; SVLook = TRUE ; Size = MAP_APPFONT ( 260 , 185 ) ; FixedLine 1 @@ -41,6 +41,7 @@ TabPage TP_OPTIONS }; RadioButton RBT_OPT_AXIS_1 { + HelpID = "chart2:RadioButton:TP_OPTIONS:RBT_OPT_AXIS_1"; Pos = MAP_APPFONT ( 12 , 20 ) ; Size = MAP_APPFONT ( 80 , 10 ) ; TabStop = TRUE ; @@ -48,6 +49,7 @@ TabPage TP_OPTIONS }; RadioButton RBT_OPT_AXIS_2 { + HelpID = "chart2:RadioButton:TP_OPTIONS:RBT_OPT_AXIS_2"; Pos = MAP_APPFONT ( 12 , 34 ) ; Size = MAP_APPFONT ( 80 , 10 ) ; TabStop = TRUE ; @@ -69,6 +71,7 @@ TabPage TP_OPTIONS MetricField MT_OVERLAP { + HelpID = "chart2:MetricField:TP_OPTIONS:MT_OVERLAP"; Border = TRUE ; Pos = MAP_APPFONT ( 63 , 78 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -95,6 +98,7 @@ TabPage TP_OPTIONS MetricField MT_GAP { + HelpID = "chart2:MetricField:TP_OPTIONS:MT_GAP"; Border = TRUE ; Pos = MAP_APPFONT ( 63 , 62 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -114,6 +118,7 @@ TabPage TP_OPTIONS CheckBox CB_CONNECTOR { + HelpID = "chart2:CheckBox:TP_OPTIONS:CB_CONNECTOR"; Pos = MAP_APPFONT ( 12 , 97 ) ; Size = MAP_APPFONT ( 200 , 10 ) ; TabStop = TRUE ; @@ -122,6 +127,7 @@ TabPage TP_OPTIONS CheckBox CB_BARS_SIDE_BY_SIDE { + HelpID = "chart2:CheckBox:TP_OPTIONS:CB_BARS_SIDE_BY_SIDE"; Pos = MAP_APPFONT ( 12 , 97 ) ; Size = MAP_APPFONT ( 200 , 10 ) ; TabStop = TRUE ; @@ -144,6 +150,7 @@ TabPage TP_OPTIONS RadioButton RB_DONT_PAINT { + HelpID = "chart2:RadioButton:TP_OPTIONS:RB_DONT_PAINT"; Pos = MAP_APPFONT ( 82 , 127 ) ; Size = MAP_APPFONT ( 80 , 10 ) ; TabStop = TRUE ; @@ -152,6 +159,7 @@ TabPage TP_OPTIONS RadioButton RB_ASSUME_ZERO { + HelpID = "chart2:RadioButton:TP_OPTIONS:RB_ASSUME_ZERO"; Pos = MAP_APPFONT ( 82 , 141 ) ; Size = MAP_APPFONT ( 80 , 10 ) ; TabStop = TRUE ; @@ -160,6 +168,7 @@ TabPage TP_OPTIONS RadioButton RB_CONTINUE_LINE { + HelpID = "chart2:RadioButton:TP_OPTIONS:RB_CONTINUE_LINE"; Pos = MAP_APPFONT ( 82 , 155 ) ; Size = MAP_APPFONT ( 80 , 10 ) ; TabStop = TRUE ; @@ -168,6 +177,7 @@ TabPage TP_OPTIONS CheckBox CB_INCLUDE_HIDDEN_CELLS { + HelpID = "chart2:CheckBox:TP_OPTIONS:CB_INCLUDE_HIDDEN_CELLS"; Pos = MAP_APPFONT ( 12 , 172 ) ; Size = MAP_APPFONT ( 200 , 10 ) ; TabStop = TRUE ; diff --git a/chart2/source/controller/dialogs/tp_Trendline.src b/chart2/source/controller/dialogs/tp_Trendline.src index efa11d3e2d67..1a283844a8d1 100644 --- a/chart2/source/controller/dialogs/tp_Trendline.src +++ b/chart2/source/controller/dialogs/tp_Trendline.src @@ -30,8 +30,8 @@ TabPage TP_TRENDLINE { + HelpID = "chart2:TabPage:TP_TRENDLINE"; Hide = TRUE ; -// HelpID = HID_SCH_STAT ; SVLook = TRUE ; Size = MAP_APPFONT ( 260 , 185 ) ; RESOURCE_TRENDLINE( 260 - 12, 0 ) diff --git a/chart2/source/controller/dialogs/tp_Wizard_TitlesAndObjects.src b/chart2/source/controller/dialogs/tp_Wizard_TitlesAndObjects.src index a17f5655e751..473007f1c32b 100644 --- a/chart2/source/controller/dialogs/tp_Wizard_TitlesAndObjects.src +++ b/chart2/source/controller/dialogs/tp_Wizard_TitlesAndObjects.src @@ -59,6 +59,7 @@ TabPage TP_WIZARD_TITLEANDOBJECTS { + HelpID = "chart2:TabPage:TP_WIZARD_TITLEANDOBJECTS"; Hide = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( CHART_WIZARD_PAGEWIDTH , CHART_WIZARD_PAGEHEIGHT ) ; diff --git a/chart2/source/controller/inc/HelpIds.hrc b/chart2/source/controller/inc/HelpIds.hrc index 1052b7ea962f..5e20b7980c8b 100644 --- a/chart2/source/controller/inc/HelpIds.hrc +++ b/chart2/source/controller/inc/HelpIds.hrc @@ -27,156 +27,136 @@ #ifndef CHART_HELPIDS_HRC #define CHART_HELPIDS_HRC -#include <svl/solar.hrc> -//next is 120 -//free: 20, 21, 22, 30, 31, 32, 33 +#define HID_SCH_ALIGNMENT "CHART2_HID_SCH_ALIGNMENT" +#define HID_SCH_LEGEND_POS "CHART2_HID_SCH_LEGEND_POS" +#define HID_SCH_DATA_DESCR "CHART2_HID_SCH_DATA_DESCR" -//see old chart: schhids.h +#define HID_SCH_STAT "CHART2_HID_SCH_STAT" +#define HID_SCH_WIN_DOCUMENT "CHART2_HID_SCH_WIN_DOCUMENT" +#define HID_SCH_CTL_DATA "CHART2_HID_SCH_CTL_DATA" -/* -#define HID_SCH_DATA_ROW (HID_SCH_START + 0) -#define HID_SCH_DATA_LINE (HID_SCH_START + 1) -#define HID_SCH_DATA_POINT (HID_SCH_START + 2) -#define HID_SCH_DIAGRAM_X_AXIS (HID_SCH_START + 3) -*/ -#define HID_SCH_ALIGNMENT (HID_SCH_START + 4) -#define HID_SCH_LEGEND_POS (HID_SCH_START + 5) -#define HID_SCH_DATA_DESCR (HID_SCH_START + 6) - -#define HID_SCH_STAT (HID_SCH_START + 8) -#define HID_SCH_WIN_DOCUMENT (HID_SCH_START + 9) -#define HID_SCH_CTL_DATA (HID_SCH_START + 10) - -#define HID_SCH_CT_INDICATE (HID_SCH_START + 11) -// #define HID_SCH_CT_REGRESS (HID_SCH_START + 12) +#define HID_SCH_CT_INDICATE "CHART2_HID_SCH_CT_INDICATE" //for chart type dialog: -#define HID_SCH_CTL_TYPE (HID_SCH_START + 13) -#define HID_SCH_CTL_VARIANT (HID_SCH_START + 14) -#define HID_SCH_NUM_OF_LINES (HID_SCH_START + 43) -#define HID_SCH_SERIES_LIST (HID_SCH_START + 15) -#define HID_SCH_DATA_RANGES_LIST (HID_SCH_START + 16) +#define HID_SCH_CTL_TYPE "CHART2_HID_SCH_CTL_TYPE" +#define HID_SCH_CTL_VARIANT "CHART2_HID_SCH_CTL_VARIANT" +#define HID_SCH_NUM_OF_LINES "CHART2_HID_SCH_NUM_OF_LINES" +#define HID_SCH_SERIES_LIST "CHART2_HID_SCH_SERIES_LIST" +#define HID_SCH_DATA_RANGES_LIST "CHART2_HID_SCH_DATA_RANGES_LIST" // -//#define HID_SCH_CTL_LIGHT (HID_SCH_START + 17) -//#define HID_SCH_CT_INDICATE2 (HID_SCH_START + 18) -//#define HID_SCH_CT_REGRESS2 (HID_SCH_START + 19) - -#define HID_SCH_TBI_DATA_INSERT_ROW (HID_SCH_START + 23) -#define HID_SCH_TBI_DATA_INSERT_COL (HID_SCH_START + 24) -#define HID_SCH_TBI_DATA_DELETE_ROW (HID_SCH_START + 25) -#define HID_SCH_TBI_DATA_DELETE_COL (HID_SCH_START + 26) -#define HID_SCH_TBI_DATA_SWAP_COL (HID_SCH_START + 27) -#define HID_SCH_TBI_DATA_SWAP_ROW (HID_SCH_START + 28) -#define HID_SCH_TBI_DATA_INSERT_TEXT_COL (HID_SCH_START + 29) -#define HID_SCH_TBX_DATA (HID_SCH_START + 34) - -#define HID_SCH_ALIGNMENT_CTR_DIAL (HID_SCH_START + 35) -#define HID_SCH_ALIGNMENT_STACKED (HID_SCH_START + 36) -#define HID_SCH_ALIGNMENT_DEGREES (HID_SCH_START + 37) -/* -#define HID_SCH_LAYOUT (HID_SCH_START + 38) - -#define HID_SCH_TBX_EDIT_FIELD (HID_SCH_START + 39) -#define HID_SCH_DIAGRAM_Y_AXIS (HID_SCH_START + 40)//war mal 3 - -#define HID_SCH_DEF_COLOR (HID_SCH_START + 41) -*/ -#define HID_SCH_TP_AXIS_LABEL (HID_SCH_START + 42) - -#define HID_SCH_CHART_AUTO_FORMAT (HID_SCH_START + 44) -#define HID_SCH_LB_BAR_GEOMETRY (HID_SCH_START + 45) -#define HID_SCH_DLG_SPLINE_PROPERTIES (HID_SCH_START + 46) -#define HID_SCH_DLG_RANGES (HID_SCH_START + 47) - -#define HID_SCH_CB_XAXIS (HID_SCH_START + 48) -#define HID_SCH_CB_YAXIS (HID_SCH_START + 49) -#define HID_SCH_CB_ZAXIS (HID_SCH_START + 50) -#define HID_SCH_CB_SECONDARY_XAXIS (HID_SCH_START + 51) -#define HID_SCH_CB_SECONDARY_YAXIS (HID_SCH_START + 52) -#define HID_SCH_CB_SECONDARY_ZAXIS (HID_SCH_START + 53) - -#define HID_SCH_CB_XGRID (HID_SCH_START + 54) -#define HID_SCH_CB_YGRID (HID_SCH_START + 55) -#define HID_SCH_CB_ZGRID (HID_SCH_START + 56) -#define HID_SCH_CB_SECONDARY_XGRID (HID_SCH_START + 57) -#define HID_SCH_CB_SECONDARY_YGRID (HID_SCH_START + 58) -#define HID_SCH_CB_SECONDARY_ZGRID (HID_SCH_START + 59) - -#define HID_SCH_LEGEND_POS_LEFT (HID_SCH_START + 60) -#define HID_SCH_LEGEND_POS_TOP (HID_SCH_START + 61) -#define HID_SCH_LEGEND_POS_RIGHT (HID_SCH_START + 62) -#define HID_SCH_LEGEND_POS_BOTTOM (HID_SCH_START + 63) - -#define HID_SCH_STATISTIK_MEANVALUE (HID_SCH_START + 64) -#define HID_SCH_STATISTIK_NO_ERROR (HID_SCH_START + 65) -#define HID_SCH_STATISTIK_VARIANT (HID_SCH_START + 66) -#define HID_SCH_STATISTIK_SIGMA (HID_SCH_START + 67) -#define HID_SCH_STATISTIK_PERCENT (HID_SCH_START + 68) -#define HID_SCH_STATISTIK_BIGERROR (HID_SCH_START + 69) -#define HID_SCH_STATISTIK_CONSTERROR (HID_SCH_START + 70) -#define HID_SCH_STATISTIK_PERCENT_VALUE (HID_SCH_START + 71) -#define HID_SCH_STATISTIK_BIGERROR_VALUE (HID_SCH_START + 72) -#define HID_SCH_STATISTIK_PLUS_VALUE (HID_SCH_START + 73) -#define HID_SCH_STATISTIK_MINUS_VALUE (HID_SCH_START + 74) - -#define HID_SCH_DATALABEL_VALUE (HID_SCH_START + 75) -#define HID_SCH_DATALABEL_NUMBER (HID_SCH_START + 76) -#define HID_SCH_DATALABEL_PERCENT (HID_SCH_START + 77) -#define HID_SCH_DATALABEL_TEXT (HID_SCH_START + 78) -#define HID_SCH_DATALABEL_SYMBOL (HID_SCH_START + 79) -#define HID_SCH_PB_NUMBERFORMAT (HID_SCH_START + 88) -#define HID_SCH_PB_PERCENT_NUMBERFORMAT (HID_SCH_START + 89) -#define HID_SCH_DATALABEL_SEPARATOR (HID_SCH_START + 90) -#define HID_SCH_DATALABEL_PLACEMENT (HID_SCH_START + 91) -#define HID_SCH_TEXTDIRECTION (HID_SCH_START + 115) -#define HID_SCH_TEXTDIRECTION_TITLE (HID_SCH_START + 116) -#define HID_SCH_TEXTDIRECTION_EQUATION (HID_SCH_START + 117) -#define HID_SCH_DATALABEL_ROTATION_KNOB (HID_SCH_START + 118) -#define HID_SCH_DATALABEL_ROTATION_EDIT (HID_SCH_START + 119) - -#define HID_SCH_TITLE_MAIN (HID_SCH_START + 80) -#define HID_SCH_TITLE_SUB (HID_SCH_START + 81) -#define HID_SCH_TITLE_X (HID_SCH_START + 82) -#define HID_SCH_TITLE_Y (HID_SCH_START + 83) -#define HID_SCH_TITLE_Z (HID_SCH_START + 84) -#define HID_SCH_TITLE_SECONDARY_X (HID_SCH_START + 92) -#define HID_SCH_TITLE_SECONDARY_Y (HID_SCH_START + 93) - -#define HID_SCH_WIZARD_ROADMAP (HID_SCH_START + 85) -#define HID_SCH_LEGEND_SHOW (HID_SCH_START + 86) -#define HID_SCH_DATA_SERIES_LABEL (HID_SCH_START + 87) - -#define HID_SCH_STARTING_ANGLE_DIAL (HID_SCH_START + 94) - -#define HID_SCH_TRENDLINE_RB_NONE (HID_SCH_START + 95) -#define HID_SCH_TRENDLINE_RB_LINEAR (HID_SCH_START + 96) -#define HID_SCH_TRENDLINE_RB_LOGARITHMIC (HID_SCH_START + 97) -#define HID_SCH_TRENDLINE_RB_EXPONENTIAL (HID_SCH_START + 98) -#define HID_SCH_TRENDLINE_RB_POWER (HID_SCH_START + 99) -#define HID_SCH_TRENDLINE_SHOW_EQUATION (HID_SCH_START + 100) -#define HID_SCH_TRENDLINE_SHOW_R_SQUARED (HID_SCH_START + 101) - -#define HID_SCH_STATISTIK_FUNCTION (HID_SCH_START + 102) -#define HID_SCH_STATISTIK_RANGE (HID_SCH_START + 103) -#define HID_SCH_STATISTIK_FUNCTION_LB (HID_SCH_START + 104) -#define HID_SCH_STATISTIK_POSITIVE_VALUE (HID_SCH_START + 105) -#define HID_SCH_STATISTIK_POSITIVE_RANGE (HID_SCH_START + 106) -#define HID_SCH_STATISTIK_POSITIVE_RANGE_CHOOSER (HID_SCH_START + 107) -#define HID_SCH_STATISTIK_NEGATIVE_VALUE (HID_SCH_START + 108) -#define HID_SCH_STATISTIK_NEGATIVE_RANGE (HID_SCH_START + 109) -#define HID_SCH_STATISTIK_NEGATIVE_RANGE_CHOOSER (HID_SCH_START + 110) -#define HID_SCH_STATISTIK_SAME_FOR_BOTH (HID_SCH_START + 111) -#define HID_SCH_STATISTIK_SHOW_BOTH (HID_SCH_START + 112) -#define HID_SCH_STATISTIK_SHOW_POSITIVE (HID_SCH_START + 113) -#define HID_SCH_STATISTIK_SHOW_NEGATIVE (HID_SCH_START + 114) - - -// HID_SCH_START should be 63280 (checked 25.Nov 2002) - -// 453 == SCH_IF_CHARTVIEWSHELL, da SFX_INTERFACE_LIB kein -// Define sondern neuerdings ein Enum ist -//#define HID_SCH_VIEWSHELL_DOCUMENT (453) +#define HID_SCH_TBI_DATA_INSERT_ROW "CHART2_HID_SCH_TBI_DATA_INSERT_ROW" +#define HID_SCH_TBI_DATA_INSERT_COL "CHART2_HID_SCH_TBI_DATA_INSERT_COL" +#define HID_SCH_TBI_DATA_DELETE_ROW "CHART2_HID_SCH_TBI_DATA_DELETE_ROW" +#define HID_SCH_TBI_DATA_DELETE_COL "CHART2_HID_SCH_TBI_DATA_DELETE_COL" +#define HID_SCH_TBI_DATA_SWAP_COL "CHART2_HID_SCH_TBI_DATA_SWAP_COL" +#define HID_SCH_TBI_DATA_SWAP_ROW "CHART2_HID_SCH_TBI_DATA_SWAP_ROW" +#define HID_SCH_TBI_DATA_INSERT_TEXT_COL "CHART2_HID_SCH_TBI_DATA_INSERT_TEXT_COL" +#define HID_SCH_TBX_DATA "CHART2_HID_SCH_TBX_DATA" + +#define HID_SCH_ALIGNMENT_CTR_DIAL "CHART2_HID_SCH_ALIGNMENT_CTR_DIAL" +#define HID_SCH_ALIGNMENT_STACKED "CHART2_HID_SCH_ALIGNMENT_STACKED" +#define HID_SCH_ALIGNMENT_DEGREES "CHART2_HID_SCH_ALIGNMENT_DEGREES" + +#define HID_SCH_TP_AXIS_LABEL "CHART2_HID_SCH_TP_AXIS_LABEL" + +#define HID_SCH_CHART_AUTO_FORMAT "CHART2_HID_SCH_CHART_AUTO_FORMAT" +#define HID_SCH_LB_BAR_GEOMETRY "CHART2_HID_SCH_LB_BAR_GEOMETRY" +#define HID_SCH_DLG_SPLINE_PROPERTIES "CHART2_HID_SCH_DLG_SPLINE_PROPERTIES" +#define HID_SCH_DLG_RANGES "CHART2_HID_SCH_DLG_RANGES" + +#define HID_SCH_CB_XAXIS "CHART2_HID_SCH_CB_XAXIS" +#define HID_SCH_CB_YAXIS "CHART2_HID_SCH_CB_YAXIS" +#define HID_SCH_CB_ZAXIS "CHART2_HID_SCH_CB_ZAXIS" +#define HID_SCH_CB_SECONDARY_XAXIS "CHART2_HID_SCH_CB_SECONDARY_XAXIS" +#define HID_SCH_CB_SECONDARY_YAXIS "CHART2_HID_SCH_CB_SECONDARY_YAXIS" +#define HID_SCH_CB_SECONDARY_ZAXIS "CHART2_HID_SCH_CB_SECONDARY_ZAXIS" + +#define HID_SCH_CB_XGRID "CHART2_HID_SCH_CB_XGRID" +#define HID_SCH_CB_YGRID "CHART2_HID_SCH_CB_YGRID" +#define HID_SCH_CB_ZGRID "CHART2_HID_SCH_CB_ZGRID" +#define HID_SCH_CB_SECONDARY_XGRID "CHART2_HID_SCH_CB_SECONDARY_XGRID" +#define HID_SCH_CB_SECONDARY_YGRID "CHART2_HID_SCH_CB_SECONDARY_YGRID" +#define HID_SCH_CB_SECONDARY_ZGRID "CHART2_HID_SCH_CB_SECONDARY_ZGRID" + +#define HID_SCH_LEGEND_POS_LEFT "CHART2_HID_SCH_LEGEND_POS_LEFT" +#define HID_SCH_LEGEND_POS_TOP "CHART2_HID_SCH_LEGEND_POS_TOP" +#define HID_SCH_LEGEND_POS_RIGHT "CHART2_HID_SCH_LEGEND_POS_RIGHT" +#define HID_SCH_LEGEND_POS_BOTTOM "CHART2_HID_SCH_LEGEND_POS_BOTTOM" + +#define HID_SCH_STATISTIK_MEANVALUE "CHART2_HID_SCH_STATISTIK_MEANVALUE" +#define HID_SCH_STATISTIK_NO_ERROR "CHART2_HID_SCH_STATISTIK_NO_ERROR" +#define HID_SCH_STATISTIK_VARIANT "CHART2_HID_SCH_STATISTIK_VARIANT" +#define HID_SCH_STATISTIK_SIGMA "CHART2_HID_SCH_STATISTIK_SIGMA" +#define HID_SCH_STATISTIK_PERCENT "CHART2_HID_SCH_STATISTIK_PERCENT" +#define HID_SCH_STATISTIK_BIGERROR "CHART2_HID_SCH_STATISTIK_BIGERROR" +#define HID_SCH_STATISTIK_CONSTERROR "CHART2_HID_SCH_STATISTIK_CONSTERROR" +#define HID_SCH_STATISTIK_PERCENT_VALUE "CHART2_HID_SCH_STATISTIK_PERCENT_VALUE" +#define HID_SCH_STATISTIK_BIGERROR_VALUE "CHART2_HID_SCH_STATISTIK_BIGERROR_VALUE" +#define HID_SCH_STATISTIK_PLUS_VALUE "CHART2_HID_SCH_STATISTIK_PLUS_VALUE" +#define HID_SCH_STATISTIK_MINUS_VALUE "CHART2_HID_SCH_STATISTIK_MINUS_VALUE" + +#define HID_SCH_DATALABEL_VALUE "CHART2_HID_SCH_DATALABEL_VALUE" +#define HID_SCH_DATALABEL_NUMBER "CHART2_HID_SCH_DATALABEL_NUMBER" +#define HID_SCH_DATALABEL_PERCENT "CHART2_HID_SCH_DATALABEL_PERCENT" +#define HID_SCH_DATALABEL_TEXT "CHART2_HID_SCH_DATALABEL_TEXT" +#define HID_SCH_DATALABEL_SYMBOL "CHART2_HID_SCH_DATALABEL_SYMBOL" +#define HID_SCH_PB_NUMBERFORMAT "CHART2_HID_SCH_PB_NUMBERFORMAT" +#define HID_SCH_PB_PERCENT_NUMBERFORMAT "CHART2_HID_SCH_PB_PERCENT_NUMBERFORMAT" +#define HID_SCH_DATALABEL_SEPARATOR "CHART2_HID_SCH_DATALABEL_SEPARATOR" +#define HID_SCH_DATALABEL_PLACEMENT "CHART2_HID_SCH_DATALABEL_PLACEMENT" +#define HID_SCH_TEXTDIRECTION "CHART2_HID_SCH_TEXTDIRECTION" +#define HID_SCH_TEXTDIRECTION_TITLE "CHART2_HID_SCH_TEXTDIRECTION_TITLE" +#define HID_SCH_TEXTDIRECTION_EQUATION "CHART2_HID_SCH_TEXTDIRECTION_EQUATION" +#define HID_SCH_DATALABEL_ROTATION_KNOB "CHART2_HID_SCH_DATALABEL_ROTATION_KNOB" +#define HID_SCH_DATALABEL_ROTATION_EDIT "CHART2_HID_SCH_DATALABEL_ROTATION_EDIT" + +#define HID_SCH_TITLE_MAIN "CHART2_HID_SCH_TITLE_MAIN" +#define HID_SCH_TITLE_SUB "CHART2_HID_SCH_TITLE_SUB" +#define HID_SCH_TITLE_X "CHART2_HID_SCH_TITLE_X" +#define HID_SCH_TITLE_Y "CHART2_HID_SCH_TITLE_Y" +#define HID_SCH_TITLE_Z "CHART2_HID_SCH_TITLE_Z" +#define HID_SCH_TITLE_SECONDARY_X "CHART2_HID_SCH_TITLE_SECONDARY_X" +#define HID_SCH_TITLE_SECONDARY_Y "CHART2_HID_SCH_TITLE_SECONDARY_Y" + +#define HID_SCH_WIZARD_ROADMAP "CHART2_HID_SCH_WIZARD_ROADMAP" +#define HID_SCH_LEGEND_SHOW "CHART2_HID_SCH_LEGEND_SHOW" +#define HID_SCH_DATA_SERIES_LABEL "CHART2_HID_SCH_DATA_SERIES_LABEL" + +#define HID_SCH_STARTING_ANGLE_DIAL "CHART2_HID_SCH_STARTING_ANGLE_DIAL" + +#define HID_SCH_TRENDLINE_RB_NONE "CHART2_HID_SCH_TRENDLINE_RB_NONE" +#define HID_SCH_TRENDLINE_RB_LINEAR "CHART2_HID_SCH_TRENDLINE_RB_LINEAR" +#define HID_SCH_TRENDLINE_RB_LOGARITHMIC "CHART2_HID_SCH_TRENDLINE_RB_LOGARITHMIC" +#define HID_SCH_TRENDLINE_RB_EXPONENTIAL "CHART2_HID_SCH_TRENDLINE_RB_EXPONENTIAL" +#define HID_SCH_TRENDLINE_RB_POWER "CHART2_HID_SCH_TRENDLINE_RB_POWER" +#define HID_SCH_TRENDLINE_SHOW_EQUATION "CHART2_HID_SCH_TRENDLINE_SHOW_EQUATION" +#define HID_SCH_TRENDLINE_SHOW_R_SQUARED "CHART2_HID_SCH_TRENDLINE_SHOW_R_SQUARED" + +#define HID_SCH_STATISTIK_FUNCTION "CHART2_HID_SCH_STATISTIK_FUNCTION" +#define HID_SCH_STATISTIK_RANGE "CHART2_HID_SCH_STATISTIK_RANGE" +#define HID_SCH_STATISTIK_FUNCTION_LB "CHART2_HID_SCH_STATISTIK_FUNCTION_LB" +#define HID_SCH_STATISTIK_POSITIVE_VALUE "CHART2_HID_SCH_STATISTIK_POSITIVE_VALUE" +#define HID_SCH_STATISTIK_POSITIVE_RANGE "CHART2_HID_SCH_STATISTIK_POSITIVE_RANGE" +#define HID_SCH_STATISTIK_POSITIVE_RANGE_CHOOSER "CHART2_HID_SCH_STATISTIK_POSITIVE_RANGE_CHOOSER" +#define HID_SCH_STATISTIK_NEGATIVE_VALUE "CHART2_HID_SCH_STATISTIK_NEGATIVE_VALUE" +#define HID_SCH_STATISTIK_NEGATIVE_RANGE "CHART2_HID_SCH_STATISTIK_NEGATIVE_RANGE" +#define HID_SCH_STATISTIK_NEGATIVE_RANGE_CHOOSER "CHART2_HID_SCH_STATISTIK_NEGATIVE_RANGE_CHOOSER" +#define HID_SCH_STATISTIK_SAME_FOR_BOTH "CHART2_HID_SCH_STATISTIK_SAME_FOR_BOTH" +#define HID_SCH_STATISTIK_SHOW_BOTH "CHART2_HID_SCH_STATISTIK_SHOW_BOTH" +#define HID_SCH_STATISTIK_SHOW_POSITIVE "CHART2_HID_SCH_STATISTIK_SHOW_POSITIVE" +#define HID_SCH_STATISTIK_SHOW_NEGATIVE "CHART2_HID_SCH_STATISTIK_SHOW_NEGATIVE" + +#define HID_INSERT_GRIDS "CHART2_HID_INSERT_GRIDS" + +#define HID_DIAGRAM_TYPE "CHART2_HID_DIAGRAM_TYPE" +#define HID_3D_VIEW "CHART2_HID_3D_VIEW" +#define HID_DIAGRAM_DATA "CHART2_HID_DIAGRAM_DATA" +#define HID_INSERT_AXIS "CHART2_HID_INSERT_AXIS" +#define HID_INSERT_STATISTICS "CHART2_HID_INSERT_STATISTICS" +#define HID_INSERT_TITLE "CHART2_HID_INSERT_TITLE" +#define HID_INSERT_CHART_LEGEND "CHART2_HID_INSERT_CHART_LEGEND" +#define HID_INSERT_DESCRIPTION "CHART2_HID_INSERT_DESCRIPTION" #endif diff --git a/chart2/source/controller/main/ChartController_Tools.cxx b/chart2/source/controller/main/ChartController_Tools.cxx index ffe752f43a7a..779e3c32f1e7 100644 --- a/chart2/source/controller/main/ChartController_Tools.cxx +++ b/chart2/source/controller/main/ChartController_Tools.cxx @@ -827,16 +827,14 @@ bool ChartController::executeDispatch_Delete() else { //remove additional shape - uno::Reference< drawing::XShape > xShape( m_aSelection.getSelectedAdditionalShape() ); - if( xShape.is() ) + impl_ClearSelection(); { - impl_ClearSelection(); + ::vos::OGuard aSolarGuard( Application::GetSolarMutex() ); + if ( m_pDrawViewWrapper ) { - ::vos::OGuard aSolarGuard( Application::GetSolarMutex()); - if( m_pDrawViewWrapper ) - m_pDrawViewWrapper->UnmarkAll(); + m_pDrawViewWrapper->DeleteMarked(); + bReturn = true; } - bReturn = DrawModelWrapper::removeShape( xShape ); } } return bReturn; diff --git a/chart2/source/controller/main/ChartWindow.cxx b/chart2/source/controller/main/ChartWindow.cxx index 240b615cf0f6..54add217fb76 100644 --- a/chart2/source/controller/main/ChartWindow.cxx +++ b/chart2/source/controller/main/ChartWindow.cxx @@ -59,7 +59,7 @@ ChartWindow::ChartWindow( WindowController* pWindowController, Window* pParent, , m_pWindowController( pWindowController ) , m_bInPaint(false) { - this->SetSmartHelpId( SmartId( HID_SCH_WIN_DOCUMENT ) ); + this->SetHelpId( HID_SCH_WIN_DOCUMENT ); this->SetMapMode( MapMode(MAP_100TH_MM) ); adjustHighContrastMode(); // chart does not depend on exact pixel painting => enable antialiased drawing diff --git a/chart2/source/controller/main/_serviceregistration_controller.cxx b/chart2/source/controller/main/_serviceregistration_controller.cxx index cf8f5525e624..0371f50f9996 100644 --- a/chart2/source/controller/main/_serviceregistration_controller.cxx +++ b/chart2/source/controller/main/_serviceregistration_controller.cxx @@ -108,13 +108,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, void * pRegistryKey ) -{ - return ::cppu::component_writeInfoHelper( - pServiceManager, pRegistryKey, g_entries_chart2_controller ); -} -//================================================================================================== SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ) { diff --git a/chart2/source/controller/makefile.mk b/chart2/source/controller/makefile.mk index 0eb00bb89615..41d7df24acaa 100644 --- a/chart2/source/controller/makefile.mk +++ b/chart2/source/controller/makefile.mk @@ -125,3 +125,11 @@ RESLIB1DEPN=$(RESLIB1LIST) # --- Targets ----------------------------------------------------------------- .INCLUDE: target.mk + +ALLTAR : $(MISC)/chartcontroller.component + +$(MISC)/chartcontroller.component .ERRREMOVE : \ + $(SOLARENV)/bin/createcomponent.xslt chartcontroller.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt chartcontroller.component diff --git a/chart2/source/inc/exports.dxp b/chart2/source/inc/exports.dxp index 9630d7e06768..f0e1c69934bc 100644 --- a/chart2/source/inc/exports.dxp +++ b/chart2/source/inc/exports.dxp @@ -1,3 +1,2 @@ component_getImplementationEnvironment -component_writeInfo component_getFactory diff --git a/chart2/source/model/chartmodel.component b/chart2/source/model/chartmodel.component new file mode 100644 index 000000000000..fa26e51ac401 --- /dev/null +++ b/chart2/source/model/chartmodel.component @@ -0,0 +1,150 @@ +<?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.chart.AreaChartType"> + <service name="com.sun.star.chart2.AreaChartType"/> + <service name="com.sun.star.chart2.ChartType"/> + </implementation> + <implementation name="com.sun.star.comp.chart.BarChartType"> + <service name="com.sun.star.chart2.BarChartType"/> + <service name="com.sun.star.chart2.ChartType"/> + </implementation> + <implementation name="com.sun.star.comp.chart.BubbleChartType"> + <service name="com.sun.star.beans.PropertySet"/> + <service name="com.sun.star.chart2.BubbleChartType"/> + <service name="com.sun.star.chart2.ChartType"/> + </implementation> + <implementation name="com.sun.star.comp.chart.CandleStickChartType"> + <service name="com.sun.star.beans.PropertySet"/> + <service name="com.sun.star.chart2.CandleStickChartType"/> + <service name="com.sun.star.chart2.ChartType"/> + </implementation> + <implementation name="com.sun.star.comp.chart.ChartTypeManager"> + <service name="com.sun.star.chart2.ChartTypeManager"/> + </implementation> + <implementation name="com.sun.star.comp.chart.ColumnChartType"> + <service name="com.sun.star.chart2.ChartType"/> + <service name="com.sun.star.chart2.ColumnChartType"/> + </implementation> + <implementation name="com.sun.star.comp.chart.DataSeries"> + <service name="com.sun.star.beans.PropertySet"/> + <service name="com.sun.star.chart2.DataPointProperties"/> + <service name="com.sun.star.chart2.DataSeries"/> + </implementation> + <implementation name="com.sun.star.comp.chart.FilledNetChartType"> + <service name="com.sun.star.beans.PropertySet"/> + <service name="com.sun.star.chart2.ChartType"/> + <service name="com.sun.star.chart2.FilledNetChartType"/> + </implementation> + <implementation name="com.sun.star.comp.chart.FormattedString"> + <service name="com.sun.star.beans.PropertySet"/> + <service name="com.sun.star.chart2.FormattedString"/> + </implementation> + <implementation name="com.sun.star.comp.chart.LineChartType"> + <service name="com.sun.star.beans.PropertySet"/> + <service name="com.sun.star.chart2.ChartType"/> + <service name="com.sun.star.chart2.LineChartType"/> + </implementation> + <implementation name="com.sun.star.comp.chart.NetChartType"> + <service name="com.sun.star.beans.PropertySet"/> + <service name="com.sun.star.chart2.ChartType"/> + <service name="com.sun.star.chart2.NetChartType"/> + </implementation> + <implementation name="com.sun.star.comp.chart.PieChartType"> + <service name="com.sun.star.beans.PropertySet"/> + <service name="com.sun.star.chart2.ChartType"/> + <service name="com.sun.star.chart2.PieChartType"/> + </implementation> + <implementation name="com.sun.star.comp.chart.ScatterChartType"> + <service name="com.sun.star.beans.PropertySet"/> + <service name="com.sun.star.chart2.ChartType"/> + <service name="com.sun.star.chart2.ScatterChartType"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.Axis"> + <service name="com.sun.star.beans.PropertySet"/> + <service name="com.sun.star.chart2.Axis"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.CartesianCoordinateSystem2d"> + <service name="com.sun.star.chart2.CartesianCoordinateSystem2d"/> + <service name="com.sun.star.chart2.CoordinateSystems.Cartesian"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.CartesianCoordinateSystem3d"> + <service name="com.sun.star.chart2.CartesianCoordinateSystem3d"/> + <service name="com.sun.star.chart2.CoordinateSystems.Cartesian"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.ChartModel"> + <service name="com.sun.star.chart.ChartDocument"/> + <service name="com.sun.star.chart2.ChartDocument"/> + <service name="com.sun.star.document.OfficeDocument"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.Diagram"> + <service name="com.sun.star.beans.PropertySet"/> + <service name="com.sun.star.chart2.Diagram"/> + <service name="com.sun.star.layout.LayoutElement"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.GridProperties"> + <service name="com.sun.star.beans.PropertySet"/> + <service name="com.sun.star.chart2.GridProperties"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.Legend"> + <service name="com.sun.star.beans.PropertySet"/> + <service name="com.sun.star.chart2.Legend"/> + <service name="com.sun.star.drawing.FillProperties"/> + <service name="com.sun.star.drawing.LineProperties"/> + <service name="com.sun.star.layout.LayoutElement"/> + <service name="com.sun.star.style.CharacterProperties"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.PageBackground"> + <service name="com.sun.star.beans.PropertySet"/> + <service name="com.sun.star.chart2.PageBackground"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.PolarCoordinateSystem2d"> + <service name="com.sun.star.chart2.CoordinateSystems.Polar"/> + <service name="com.sun.star.chart2.PolarCoordinateSystem2d"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.PolarCoordinateSystem3d"> + <service name="com.sun.star.chart2.CoordinateSystems.Polar"/> + <service name="com.sun.star.chart2.PolarCoordinateSystem3d"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.Title"> + <service name="com.sun.star.beans.PropertySet"/> + <service name="com.sun.star.chart2.Title"/> + <service name="com.sun.star.layout.LayoutElement"/> + <service name="com.sun.star.style.ParagraphProperties"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.XMLFilter"> + <service name="com.sun.star.document.ExportFilter"/> + <service name="com.sun.star.document.ImportFilter"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.report.XMLFilter"> + <service name="com.sun.star.document.ExportFilter"/> + <service name="com.sun.star.document.ImportFilter"/> + </implementation> +</component> diff --git a/chart2/source/model/main/ChartModel.cxx b/chart2/source/model/main/ChartModel.cxx index 950169395c95..5a30d97118c5 100644..100755 --- a/chart2/source/model/main/ChartModel.cxx +++ b/chart2/source/model/main/ChartModel.cxx @@ -1043,6 +1043,7 @@ void SAL_CALL ChartModel::setVisualAreaSize( ::sal_Int64 nAspect, const awt::Siz { if( nAspect == embed::Aspects::MSOLE_CONTENT ) { + ControllerLockGuard aLockGuard( this ); bool bChanged = (m_aVisualAreaSize.Width != aSize.Width || m_aVisualAreaSize.Height != aSize.Height); diff --git a/chart2/source/model/main/_serviceregistration_model.cxx b/chart2/source/model/main/_serviceregistration_model.cxx index b0a7739008ad..a8b214aaf124 100644 --- a/chart2/source/model/main/_serviceregistration_model.cxx +++ b/chart2/source/model/main/_serviceregistration_model.cxx @@ -193,16 +193,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, void * pRegistryKey ) -{ - return (::cppu::component_writeInfoHelper( - pServiceManager, pRegistryKey, g_entries_chart2_model ) && - ::cppu::component_writeInfoHelper( - pServiceManager, pRegistryKey, - ChartTypeEntriesForServiceRegistration::getImplementationEntries() )); -} -//================================================================================================== SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ) { diff --git a/chart2/source/model/makefile.mk b/chart2/source/model/makefile.mk index dfb5522a7879..52cc85c10904 100644 --- a/chart2/source/model/makefile.mk +++ b/chart2/source/model/makefile.mk @@ -98,3 +98,11 @@ DEF1NAME= $(SHL1TARGET) # --- Targets ----------------------------------------------------------------- .INCLUDE: target.mk + +ALLTAR : $(MISC)/chartmodel.component + +$(MISC)/chartmodel.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \ + chartmodel.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt chartmodel.component diff --git a/chart2/source/tools/_serviceregistration_tools.cxx b/chart2/source/tools/_serviceregistration_tools.cxx index 387b87dfab5a..3b1271921ede 100644 --- a/chart2/source/tools/_serviceregistration_tools.cxx +++ b/chart2/source/tools/_serviceregistration_tools.cxx @@ -183,13 +183,6 @@ OOO_DLLPUBLIC_CHARTTOOLS void SAL_CALL component_getImplementationEnvironment( *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; } //================================================================================================== -OOO_DLLPUBLIC_CHARTTOOLS sal_Bool SAL_CALL component_writeInfo( - void * pServiceManager, void * pRegistryKey ) -{ - return ::cppu::component_writeInfoHelper( - pServiceManager, pRegistryKey, g_entries_chart2_tools ); -} -//================================================================================================== OOO_DLLPUBLIC_CHARTTOOLS void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ) { diff --git a/chart2/source/tools/charttools.component b/chart2/source/tools/charttools.component new file mode 100644 index 000000000000..7ca499a7ba80 --- /dev/null +++ b/chart2/source/tools/charttools.component @@ -0,0 +1,92 @@ +<?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.chart2.ExponentialScaling"> + <service name="com.sun.star.chart2.ExponentialScaling"/> + </implementation> + <implementation name="com.sun.star.chart2.LinearScaling"> + <service name="com.sun.star.chart2.LinearScaling"/> + </implementation> + <implementation name="com.sun.star.chart2.LogarithmicScaling"> + <service name="com.sun.star.chart2.LogarithmicScaling"/> + </implementation> + <implementation name="com.sun.star.chart2.PowerScaling"> + <service name="com.sun.star.chart2.PowerScaling"/> + </implementation> + <implementation name="com.sun.star.comp.chart.CachedDataSequence"> + <service name="com.sun.star.chart2.data.DataSequence"/> + <service name="com.sun.star.chart2.data.NumericalDataSequence"/> + <service name="com.sun.star.chart2.data.TextualDataSequence"/> + <service name="com.sun.star.comp.chart.CachedDataSequence"/> + </implementation> + <implementation name="com.sun.star.comp.chart.DataSource"> + <service name="com.sun.star.chart2.data.DataSource"/> + </implementation> + <implementation name="com.sun.star.comp.chart.InternalDataProvider"> + <service name="com.sun.star.chart2.data.DataProvider"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.ConfigDefaultColorScheme"> + <service name="com.sun.star.chart2.ColorScheme"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.ErrorBar"> + <service name="com.sun.star.chart2.ErrorBar"/> + <service name="com.sun.star.comp.chart2.ErrorBar"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.ExponentialRegressionCurve"> + <service name="com.sun.star.chart2.ExponentialRegressionCurve"/> + <service name="com.sun.star.chart2.RegressionCurve"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.LabeledDataSequence"> + <service name="com.sun.star.chart2.data.LabeledDataSequence"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.LinearRegressionCurve"> + <service name="com.sun.star.chart2.LinearRegressionCurve"/> + <service name="com.sun.star.chart2.RegressionCurve"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.LogarithmicRegressionCurve"> + <service name="com.sun.star.chart2.LogarithmicRegressionCurve"/> + <service name="com.sun.star.chart2.RegressionCurve"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.MeanValueRegressionCurve"> + <service name="com.sun.star.chart2.MeanValueRegressionCurve"/> + <service name="com.sun.star.chart2.RegressionCurve"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.PotentialRegressionCurve"> + <service name="com.sun.star.chart2.PotentialRegressionCurve"/> + <service name="com.sun.star.chart2.RegressionCurve"/> + </implementation> + <implementation name="com.sun.star.comp.chart2.RegressionEquation"> + <service name="com.sun.star.beans.PropertySet"/> + <service name="com.sun.star.chart2.RegressionEquation"/> + <service name="com.sun.star.drawing.FillProperties"/> + <service name="com.sun.star.drawing.LineProperties"/> + <service name="com.sun.star.style.CharacterProperties"/> + </implementation> +</component> diff --git a/chart2/source/tools/makefile.mk b/chart2/source/tools/makefile.mk index 2f990af7adb0..fd92b894bfab 100644 --- a/chart2/source/tools/makefile.mk +++ b/chart2/source/tools/makefile.mk @@ -187,3 +187,11 @@ $(MISC)$/$(SHL1TARGET).flt: makefile.mk \ exports.flt $(TYPE) exports.flt > $@ + +ALLTAR : $(MISC)/charttools.component + +$(MISC)/charttools.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \ + charttools.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt charttools.component diff --git a/chart2/source/view/chartview.component b/chart2/source/view/chartview.component new file mode 100644 index 000000000000..773666150651 --- /dev/null +++ b/chart2/source/view/chartview.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.chart2.ChartView"> + <service name="com.sun.star.chart2.ChartView"/> + </implementation> +</component> diff --git a/chart2/source/view/main/_serviceregistration_view.cxx b/chart2/source/view/main/_serviceregistration_view.cxx index 26f8b9d7cf7e..2f7e3db441e1 100644 --- a/chart2/source/view/main/_serviceregistration_view.cxx +++ b/chart2/source/view/main/_serviceregistration_view.cxx @@ -54,13 +54,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, void * pRegistryKey ) -{ - return ::cppu::component_writeInfoHelper( - pServiceManager, pRegistryKey, g_entries_chart2_view ); -} -//================================================================================================== SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ) { diff --git a/chart2/source/view/makefile.mk b/chart2/source/view/makefile.mk index aa3c149a768f..0b54ac976ad2 100644 --- a/chart2/source/view/makefile.mk +++ b/chart2/source/view/makefile.mk @@ -118,3 +118,11 @@ DEF1DES= Viewable Component Chart View $(MISC)$/$(SHL1TARGET).flt: makefile.mk \ exports.flt $(TYPE) exports.flt > $@ + +ALLTAR : $(MISC)/chartview.component + +$(MISC)/chartview.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \ + chartview.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt chartview.component 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 & 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> diff --git a/scaddins/prj/d.lst b/scaddins/prj/d.lst index f31644cf5e8c..c1463ef39cbc 100644 --- a/scaddins/prj/d.lst +++ b/scaddins/prj/d.lst @@ -7,3 +7,5 @@ mkdir: %COMMON_DEST%\bin%_EXT%\hid ..\%__SRC%\lib\*.sl %_DEST%\lib%_EXT%\*.sl ..\%__SRC%\bin\*.bin %_DEST%\bin%_EXT%\*.bin ..\%__SRC%\bin\*.res %_DEST%\bin%_EXT%\*.res +..\%__SRC%\misc\analysis.component %_DEST%\xml%_EXT%\analysis.component +..\%__SRC%\misc\date.component %_DEST%\xml%_EXT%\date.component diff --git a/scaddins/source/analysis/analysis.component b/scaddins/source/analysis/analysis.component new file mode 100644 index 000000000000..af4d13fa43b9 --- /dev/null +++ b/scaddins/source/analysis/analysis.component @@ -0,0 +1,35 @@ +<?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.sheet.addin.AnalysisImpl"> + <service name="com.sun.star.sheet.AddIn"/> + <service name="com.sun.star.sheet.addin.Analysis"/> + </implementation> +</component> diff --git a/scaddins/source/analysis/analysis.cxx b/scaddins/source/analysis/analysis.cxx index 0d206d0286dd..2302bd9432c6 100644 --- a/scaddins/source/analysis/analysis.cxx +++ b/scaddins/source/analysis/analysis.cxx @@ -59,37 +59,6 @@ void SAL_CALL component_getImplementationEnvironment( const sal_Char** ppEnvType *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; } - -sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, registry::XRegistryKey* pRegistryKey ) -{ - if( pRegistryKey ) - { - try - { - STRING aImpl = STRFROMASCII( "/" ); - aImpl += AnalysisAddIn::getImplementationName_Static(); - aImpl += STRFROMASCII( "/UNO/SERVICES" ); - - REF( registry::XRegistryKey ) xNewKey( - reinterpret_cast< registry::XRegistryKey* >( pRegistryKey )->createKey( aImpl ) ); - - SEQ( STRING ) aSequ = AnalysisAddIn::getSupportedServiceNames_Static(); - const STRING* pArray = aSequ.getConstArray(); - - for( sal_Int32 i = 0 ; i < aSequ.getLength() ; i++ ) - xNewKey->createKey( pArray[ i ] ); - - return sal_True; - } - catch( registry::InvalidRegistryException& ) - { - OSL_ENSURE( sal_False, "### InvalidRegistryException!" ); - } - } - return sal_False; -} - - void* SAL_CALL component_getFactory( const sal_Char* pImplName, void* pServiceManager, void* /*pRegistryKey*/ ) { void* pRet = 0; diff --git a/scaddins/source/analysis/makefile.mk b/scaddins/source/analysis/makefile.mk index a23f9886b9b1..774e9506b01a 100644 --- a/scaddins/source/analysis/makefile.mk +++ b/scaddins/source/analysis/makefile.mk @@ -133,3 +133,11 @@ $(BIN)$/analysisadd.rdb: $(ALLIDLFILES) touch $@ + +ALLTAR : $(MISC)/analysis.component + +$(MISC)/analysis.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \ + analysis.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt analysis.component diff --git a/scaddins/source/datefunc/date.component b/scaddins/source/datefunc/date.component new file mode 100644 index 000000000000..47e73d891017 --- /dev/null +++ b/scaddins/source/datefunc/date.component @@ -0,0 +1,35 @@ +<?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.sheet.addin.DateFunctionsImpl"> + <service name="com.sun.star.sheet.AddIn"/> + <service name="com.sun.star.sheet.addin.DateFunctions"/> + </implementation> +</component> diff --git a/scaddins/source/datefunc/datefunc.cxx b/scaddins/source/datefunc/datefunc.cxx index 988f132ff9f4..b1c38d83d6b5 100644 --- a/scaddins/source/datefunc/datefunc.cxx +++ b/scaddins/source/datefunc/datefunc.cxx @@ -244,35 +244,6 @@ void SAL_CALL component_getImplementationEnvironment( *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; } -sal_Bool SAL_CALL component_writeInfo( - void * /*pServiceManager*/, registry::XRegistryKey * pRegistryKey ) -{ - if (pRegistryKey) - { - try - { - OUString aImpl = OUString::createFromAscii( "/" ); - aImpl += ScaDateAddIn::getImplementationName_Static(); - aImpl += OUString::createFromAscii( "/UNO/SERVICES" ); - - uno::Reference< registry::XRegistryKey > xNewKey( - reinterpret_cast< registry::XRegistryKey* >( pRegistryKey )->createKey( aImpl ) ); - - uno::Sequence< OUString > aSequ = ScaDateAddIn::getSupportedServiceNames_Static(); - const OUString * pArray = aSequ.getConstArray(); - for( sal_Int32 i = 0; i < aSequ.getLength(); i++ ) - xNewKey->createKey( pArray[i] ); - - return sal_True; - } - catch (registry::InvalidRegistryException&) - { - OSL_ENSURE( sal_False, "### InvalidRegistryException!" ); - } - } - return sal_False; -} - void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ ) { diff --git a/scaddins/source/datefunc/datefunc.def b/scaddins/source/datefunc/datefunc.def index cc1b3562a3ef..17573d6f5e44 100644 --- a/scaddins/source/datefunc/datefunc.def +++ b/scaddins/source/datefunc/datefunc.def @@ -3,5 +3,4 @@ DESCRIPTION 'StarView 3.00 Uno BE Reflection data 551 ' HEAPSIZE 0 EXPORTS component_getImplementationEnvironment -component_writeInfo component_getFactory diff --git a/scaddins/source/datefunc/makefile.mk b/scaddins/source/datefunc/makefile.mk index 8a2805d76f7d..afb221bd3be9 100644 --- a/scaddins/source/datefunc/makefile.mk +++ b/scaddins/source/datefunc/makefile.mk @@ -119,3 +119,11 @@ $(BIN)$/dateadd.rdb: $(ALLIDLFILES) touch $@ + +ALLTAR : $(MISC)/date.component + +$(MISC)/date.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \ + date.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt date.component diff --git a/sccomp/prj/d.lst b/sccomp/prj/d.lst index f31644cf5e8c..2af1e70a9424 100644 --- a/sccomp/prj/d.lst +++ b/sccomp/prj/d.lst @@ -7,3 +7,4 @@ mkdir: %COMMON_DEST%\bin%_EXT%\hid ..\%__SRC%\lib\*.sl %_DEST%\lib%_EXT%\*.sl ..\%__SRC%\bin\*.bin %_DEST%\bin%_EXT%\*.bin ..\%__SRC%\bin\*.res %_DEST%\bin%_EXT%\*.res +..\%__SRC%\misc\solver.component %_DEST%\xml%_EXT%\solver.component diff --git a/sccomp/source/solver/makefile.mk b/sccomp/source/solver/makefile.mk index 6b25f60c8762..b1c65e88c64c 100644 --- a/sccomp/source/solver/makefile.mk +++ b/sccomp/source/solver/makefile.mk @@ -75,3 +75,11 @@ RESLIB1SRSFILES=$(RESLIB1LIST) .INCLUDE : target.mk + +ALLTAR : $(MISC)/solver.component + +$(MISC)/solver.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \ + solver.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt solver.component diff --git a/sccomp/source/solver/solver.component b/sccomp/source/solver/solver.component new file mode 100644 index 000000000000..de9cb3bd511d --- /dev/null +++ b/sccomp/source/solver/solver.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.Solver"> + <service name="com.sun.star.sheet.Solver"/> + </implementation> +</component> diff --git a/sccomp/source/solver/solver.cxx b/sccomp/source/solver/solver.cxx index 6c04f79d7cf5..a4dd69cc4847 100644 --- a/sccomp/source/solver/solver.cxx +++ b/sccomp/source/solver/solver.cxx @@ -603,34 +603,6 @@ extern "C" // ------------------------------------------------------------------------- - SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey ) - { - if (pRegistryKey) - { - try - { - uno::Reference<registry::XRegistryKey> xNewKey; - sal_Int32 nPos; - - xNewKey = reinterpret_cast< registry::XRegistryKey * >( pRegistryKey )->createKey( SolverComponent_getImplementationName() ); - xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) ); - const uno::Sequence< OUString > & rSNL1 = SolverComponent_getSupportedServiceNames(); - const OUString * pArray1 = rSNL1.getConstArray(); - for ( nPos = rSNL1.getLength(); nPos--; ) - xNewKey->createKey( pArray1[nPos] ); - - 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*/ ) { OUString aImplName( OUString::createFromAscii( pImplName ) ); |