blob: 4a0bba798fedc3be69227849c8ce1a8dd4a8ced7 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sw.hxx"
#include <swtypes.hxx>
#include <tools/debug.hxx>
#include <unomod.hxx>
#include <unomid.h>
#include <unoprnms.hxx>
#include <unomap.hxx>
#include <prtopt.hxx>
#include <tools/shl.hxx>
#include <swmodule.hxx>
#include <view.hxx>
#include <docsh.hxx>
#include <wrtsh.hxx>
#include <viewopt.hxx>
#include <vos/mutex.hxx>
#include <vcl/svapp.hxx>
#include <com/sun/star/text/NotePrintMode.hpp>
#include <doc.hxx>
#include <comphelper/TypeGeneration.hxx>
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/view/DocumentZoomType.hpp>
#include <comphelper/ChainablePropertySetInfo.hxx>
#include <edtwin.hxx>
#include <rtl/ustrbuf.hxx>
#include <tools/urlobj.hxx>
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::lang;
using namespace ::comphelper;
using ::rtl::OUString;
using ::rtl::OUStringBuffer;
enum SwViewSettingsPropertyHandles
{
HANDLE_VIEWSET_ANNOTATIONS,
HANDLE_VIEWSET_BREAKS,
HANDLE_VIEWSET_DRAWINGS,
HANDLE_VIEWSET_FIELD_COMMANDS,
HANDLE_VIEWSET_FOOTNOTE_BACKGROUND,
HANDLE_VIEWSET_GRAPHICS,
HANDLE_VIEWSET_HIDDEN_CHARACTERS,
HANDLE_VIEWSET_HIDDEN_PARAGRAPHS,
HANDLE_VIEWSET_HIDDEN_TEXT,
HANDLE_VIEWSET_HRULER,
HANDLE_VIEWSET_HSCROLL,
HANDLE_VIEWSET_INDEX_MARK_BACKGROUND,
HANDLE_VIEWSET_NONPRINTING_CHARACTERS,
HANDLE_VIEWSET_ONLINE_LAYOUT,
HANDLE_VIEWSET_PARA_BREAKS,
HANDLE_VIEWSET_PROTECTED_SPACES,
HANDLE_VIEWSET_SOFT_HYPHENS,
HANDLE_VIEWSET_SPACES,
HANDLE_VIEWSET_TABLE_BOUNDARIES,
HANDLE_VIEWSET_TABLES,
HANDLE_VIEWSET_TABSTOPS,
HANDLE_VIEWSET_TEXT_BOUNDARIES,
HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND,
HANDLE_VIEWSET_VRULER,
HANDLE_VIEWSET_VSCROLL,
HANDLE_VIEWSET_SMOOTH_SCROLLING,
HANDLE_VIEWSET_SOLID_MARK_HANDLES,
HANDLE_VIEWSET_ZOOM_TYPE,
HANDLE_VIEWSET_ZOOM,
HANDLE_VIEWSET_SHOW_CONTENT_TIPS,
HANDLE_VIEWSET_HELP_URL,
HANDLE_VIEWSET_VRULER_RIGHT,
HANDLE_VIEWSET_SHOW_RULER,
HANDLE_VIEWSET_IS_RASTER_VISIBLE,
HANDLE_VIEWSET_IS_SNAP_TO_RASTER,
HANDLE_VIEWSET_RASTER_RESOLUTION_X,
HANDLE_VIEWSET_RASTER_RESOLUTION_Y,
HANDLE_VIEWSET_RASTER_SUBDIVISION_X,
HANDLE_VIEWSET_RASTER_SUBDIVISION_Y,
HANDLE_VIEWSET_HORI_RULER_METRIC,
HANDLE_VIEWSET_VERT_RULER_METRIC,
HANDLE_VIEWSET_SCROLLBAR_TIPS
};
enum SwPrintSettingsPropertyHandles
{
HANDLE_PRINTSET_ANNOTATION_MODE,
HANDLE_PRINTSET_BLACK_FONTS,
HANDLE_PRINTSET_CONTROLS,
HANDLE_PRINTSET_DRAWINGS,
HANDLE_PRINTSET_GRAPHICS,
HANDLE_PRINTSET_LEFT_PAGES,
HANDLE_PRINTSET_PAGE_BACKGROUND,
HANDLE_PRINTSET_PROSPECT,
HANDLE_PRINTSET_REVERSED,
HANDLE_PRINTSET_RIGHT_PAGES,
HANDLE_PRINTSET_FAX_NAME,
HANDLE_PRINTSET_PAPER_FROM_SETUP,
HANDLE_PRINTSET_TABLES,
HANDLE_PRINTSET_SINGLE_JOBS,
HANDLE_PRINTSET_EMPTY_PAGES,
HANDLE_PRINTSET_PROSPECT_RTL,
HANDLE_PRINTSET_PLACEHOLDER,
HANDLE_PRINTSET_HIDDEN_TEXT
};
static ChainablePropertySetInfo * lcl_createViewSettingsInfo()
{
static PropertyInfo aViewSettingsMap_Impl[] =
{
{ RTL_CONSTASCII_STRINGPARAM ( "HelpURL" ), HANDLE_VIEWSET_HELP_URL , CPPUTYPE_OUSTRING, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "HorizontalRulerMetric"),HANDLE_VIEWSET_HORI_RULER_METRIC , CPPUTYPE_INT32, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "IsRasterVisible"), HANDLE_VIEWSET_IS_RASTER_VISIBLE, CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "IsSnapToRaster"), HANDLE_VIEWSET_IS_SNAP_TO_RASTER, CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "IsVertRulerRightAligned"),HANDLE_VIEWSET_VRULER_RIGHT , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowContentTips" ), HANDLE_VIEWSET_SHOW_CONTENT_TIPS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "RasterResolutionX"), HANDLE_VIEWSET_RASTER_RESOLUTION_X, CPPUTYPE_INT32, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "RasterResolutionY"), HANDLE_VIEWSET_RASTER_RESOLUTION_Y, CPPUTYPE_INT32, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "RasterSubdivisionX"), HANDLE_VIEWSET_RASTER_SUBDIVISION_X, CPPUTYPE_INT32, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "RasterSubdivisionY"), HANDLE_VIEWSET_RASTER_SUBDIVISION_Y, CPPUTYPE_INT32, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowAnnotations" ), HANDLE_VIEWSET_ANNOTATIONS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowBreaks"), HANDLE_VIEWSET_BREAKS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowDrawings"), HANDLE_VIEWSET_DRAWINGS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowFieldCommands"), HANDLE_VIEWSET_FIELD_COMMANDS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowFootnoteBackground"),HANDLE_VIEWSET_FOOTNOTE_BACKGROUND , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowGraphics"), HANDLE_VIEWSET_GRAPHICS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowHiddenCharacters"), HANDLE_VIEWSET_HIDDEN_CHARACTERS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowHiddenParagraphs"), HANDLE_VIEWSET_HIDDEN_PARAGRAPHS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowHiddenText"), HANDLE_VIEWSET_HIDDEN_TEXT , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowHoriRuler"), HANDLE_VIEWSET_HRULER , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowHoriScrollBar"), HANDLE_VIEWSET_HSCROLL , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowIndexMarkBackground"),HANDLE_VIEWSET_INDEX_MARK_BACKGROUND, CPPUTYPE_BOOLEAN,PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowNonprintingCharacters"),HANDLE_VIEWSET_NONPRINTING_CHARACTERS, CPPUTYPE_BOOLEAN,PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowOnlineLayout"), HANDLE_VIEWSET_ONLINE_LAYOUT , CPPUTYPE_BOOLEAN, PropertyAttribute::MAYBEVOID, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowParaBreaks"), HANDLE_VIEWSET_PARA_BREAKS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowProtectedSpaces"), HANDLE_VIEWSET_PROTECTED_SPACES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowRulers"), HANDLE_VIEWSET_SHOW_RULER , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowScrollBarTips"), HANDLE_VIEWSET_SCROLLBAR_TIPS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowSoftHyphens"), HANDLE_VIEWSET_SOFT_HYPHENS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowSpaces"), HANDLE_VIEWSET_SPACES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowTableBoundaries"), HANDLE_VIEWSET_TABLE_BOUNDARIES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowTables"), HANDLE_VIEWSET_TABLES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowTabstops"), HANDLE_VIEWSET_TABSTOPS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowTextBoundaries"), HANDLE_VIEWSET_TEXT_BOUNDARIES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowTextFieldBackground"),HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND, CPPUTYPE_BOOLEAN,PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowVertRuler"), HANDLE_VIEWSET_VRULER , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ShowVertScrollBar"), HANDLE_VIEWSET_VSCROLL , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "SmoothScrolling"), HANDLE_VIEWSET_SMOOTH_SCROLLING , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "SolidMarkHandles"), HANDLE_VIEWSET_SOLID_MARK_HANDLES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "VerticalRulerMetric"), HANDLE_VIEWSET_VERT_RULER_METRIC , CPPUTYPE_INT32, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ZoomType"), HANDLE_VIEWSET_ZOOM_TYPE , CPPUTYPE_INT16, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "ZoomValue"), HANDLE_VIEWSET_ZOOM , CPPUTYPE_INT16, PROPERTY_NONE, 0},
{ 0, 0, 0, CPPUTYPE_UNKNOWN, 0, 0 }
};
return new ChainablePropertySetInfo ( aViewSettingsMap_Impl );
}
static ChainablePropertySetInfo * lcl_createPrintSettingsInfo()
{
static PropertyInfo aPrintSettingsMap_Impl[] =
{
{ RTL_CONSTASCII_STRINGPARAM ( "PrintAnnotationMode" ), HANDLE_PRINTSET_ANNOTATION_MODE , CPPUTYPE_INT16, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "PrintBlackFonts" ), HANDLE_PRINTSET_BLACK_FONTS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "PrintControls" ), HANDLE_PRINTSET_CONTROLS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "PrintDrawings" ), HANDLE_PRINTSET_DRAWINGS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "PrintGraphics" ), HANDLE_PRINTSET_GRAPHICS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "PrintHiddenText"), HANDLE_PRINTSET_HIDDEN_TEXT , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "PrintLeftPages" ), HANDLE_PRINTSET_LEFT_PAGES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "PrintPageBackground" ), HANDLE_PRINTSET_PAGE_BACKGROUND , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "PrintProspect" ), HANDLE_PRINTSET_PROSPECT , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "PrintProspectRTL" ), HANDLE_PRINTSET_PROSPECT_RTL , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "PrintReversed" ), HANDLE_PRINTSET_REVERSED , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "PrintRightPages" ), HANDLE_PRINTSET_RIGHT_PAGES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "PrintFaxName" ), HANDLE_PRINTSET_FAX_NAME , CPPUTYPE_OUSTRING, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "PrintPaperFromSetup" ), HANDLE_PRINTSET_PAPER_FROM_SETUP , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "PrintTables" ), HANDLE_PRINTSET_TABLES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "PrintTextPlaceholder"), HANDLE_PRINTSET_PLACEHOLDER , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "PrintSingleJobs" ), HANDLE_PRINTSET_SINGLE_JOBS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ RTL_CONSTASCII_STRINGPARAM ( "PrintEmptyPages" ), HANDLE_PRINTSET_EMPTY_PAGES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
{ 0, 0, 0, CPPUTYPE_UNKNOWN, 0, 0 }
};
return new ChainablePropertySetInfo ( aPrintSettingsMap_Impl );
}
/******************************************************************
* SwXModule
******************************************************************/
/* -----------------30.03.99 15:10-------------------
*
* --------------------------------------------------*/
Reference< uno::XInterface > SAL_CALL SwXModule_createInstance(
const Reference< XMultiServiceFactory > & /*rSMgr*/) throw( Exception )
{
static Reference< uno::XInterface > xModule = (cppu::OWeakObject*)new SwXModule();;
return xModule;
}
/* -----------------------------17.04.01 13:11--------------------------------
---------------------------------------------------------------------------*/
Sequence< OUString > SAL_CALL SwXModule_getSupportedServiceNames() throw()
{
OUString sService( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.GlobalSettings"));
const Sequence< OUString > aSeq( &sService, 1 );
return aSeq;
}
/* -----------------------------17.04.01 13:11--------------------------------
---------------------------------------------------------------------------*/
OUString SAL_CALL SwXModule_getImplementationName() throw()
{
return OUString( RTL_CONSTASCII_USTRINGPARAM("SwXModule" ) );
}
/*-- 17.12.98 12:19:01---------------------------------------------------
-----------------------------------------------------------------------*/
SwXModule::SwXModule() :
pxViewSettings(0),
pxPrintSettings(0)
{
}
/*-- 17.12.98 12:19:02---------------------------------------------------
-----------------------------------------------------------------------*/
SwXModule::~SwXModule()
{
delete pxViewSettings;
delete pxPrintSettings;
}
/*-- 17.12.98 12:19:03---------------------------------------------------
-----------------------------------------------------------------------*/
Reference< XPropertySet > SwXModule::getViewSettings(void) throw( uno::RuntimeException )
{
::vos::OGuard aGuard(Application::GetSolarMutex());
if(!pxViewSettings)
{
((SwXModule*)this)->pxViewSettings = new Reference< XPropertySet > ;
DBG_ERROR("Web oder Text?");
*pxViewSettings = static_cast < HelperBaseNoState * > ( new SwXViewSettings( sal_False, 0 ) );
}
return *pxViewSettings;
}
/*-- 17.12.98 12:19:03---------------------------------------------------
-----------------------------------------------------------------------*/
Reference< XPropertySet > SwXModule::getPrintSettings(void) throw( uno::RuntimeException )
{
::vos::OGuard aGuard(Application::GetSolarMutex());
if(!pxPrintSettings)
{
((SwXModule*)this)->pxPrintSettings = new Reference< XPropertySet > ;
DBG_ERROR("Web oder Text?");
*pxPrintSettings = static_cast < HelperBaseNoState * > ( new SwXPrintSettings ( PRINT_SETTINGS_MODULE ) );
}
return *pxPrintSettings;
}
/* -----------------------------06.04.00 10:59--------------------------------
---------------------------------------------------------------------------*/
OUString SwXModule::getImplementationName(void) throw( RuntimeException )
{
return SwXModule_getImplementationName();
}
/* -----------------------------06.04.00 10:59--------------------------------
---------------------------------------------------------------------------*/
sal_Bool SwXModule::supportsService(const OUString& rServiceName) throw( RuntimeException )
{
const Sequence< OUString > aNames = SwXModule_getSupportedServiceNames();
for(sal_Int32 nService = 0; nService < aNames.getLength(); nService++)
{
if(aNames.getConstArray()[nService] == rServiceName)
return sal_True;
}
return sal_False;
}
/* -----------------------------06.04.00 10:59--------------------------------
---------------------------------------------------------------------------*/
Sequence< OUString > SwXModule::getSupportedServiceNames(void) throw( RuntimeException )
{
return SwXModule_getSupportedServiceNames();
}
/******************************************************************
* SwXPrintSettings
******************************************************************/
/*-- 17.12.98 12:54:04---------------------------------------------------
-----------------------------------------------------------------------*/
SwXPrintSettings::SwXPrintSettings(SwXPrintSettingsType eType, SwDoc* pDoc)
: ChainableHelperNoState ( lcl_createPrintSettingsInfo (), &Application::GetSolarMutex() )
, meType(eType)
, mpPrtOpt ( NULL )
, mpDoc ( pDoc )
{
}
/*-- 17.12.98 12:54:05---------------------------------------------------
-----------------------------------------------------------------------*/
SwXPrintSettings::~SwXPrintSettings()
throw()
{
}
void SwXPrintSettings::_preSetValues ()
throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
{
switch (meType)
{
case PRINT_SETTINGS_MODULE:
mpPrtOpt = SW_MOD()->GetPrtOptions( sal_False );
break;
case PRINT_SETTINGS_WEB:
mpPrtOpt = SW_MOD()->GetPrtOptions( sal_True );
break;
case PRINT_SETTINGS_DOCUMENT:
{
if (!mpDoc)
throw IllegalArgumentException ();
mpPrtOpt = const_cast< SwPrintData * >(&mpDoc->getPrintData());
}
break;
}
}
void SwXPrintSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, const uno::Any &rValue )
throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
{
sal_Bool bVal;
if ( rInfo.mnHandle != HANDLE_PRINTSET_ANNOTATION_MODE &&
rInfo.mnHandle != HANDLE_PRINTSET_FAX_NAME )
bVal = *(sal_Bool*)rValue.getValue();
switch( rInfo.mnHandle )
{
case HANDLE_PRINTSET_LEFT_PAGES:
{
bVal = *(sal_Bool*)rValue.getValue();
mpPrtOpt->SetPrintLeftPage(bVal);
}
break;
case HANDLE_PRINTSET_RIGHT_PAGES:
{
bVal = *(sal_Bool*)rValue.getValue();
mpPrtOpt->SetPrintRightPage(bVal);
}
break;
case HANDLE_PRINTSET_REVERSED:
{
bVal = *(sal_Bool*)rValue.getValue();
mpPrtOpt->SetPrintReverse(bVal);
}
break;
case HANDLE_PRINTSET_PROSPECT:
{
bVal = *(sal_Bool*)rValue.getValue();
mpPrtOpt->SetPrintProspect(bVal);
}
break;
case HANDLE_PRINTSET_GRAPHICS:
{
bVal = *(sal_Bool*)rValue.getValue();
mpPrtOpt->SetPrintGraphic(bVal);
}
break;
case HANDLE_PRINTSET_TABLES:
{
bVal = *(sal_Bool*)rValue.getValue();
mpPrtOpt->SetPrintTable(bVal);
}
break;
case HANDLE_PRINTSET_DRAWINGS:
{
bVal = *(sal_Bool*)rValue.getValue();
mpPrtOpt->SetPrintDraw(bVal);
}
break;
case HANDLE_PRINTSET_CONTROLS:
{
bVal = *(sal_Bool*)rValue.getValue();
mpPrtOpt->SetPrintControl(bVal);
}
break;
case HANDLE_PRINTSET_PAGE_BACKGROUND:
{
bVal = *(sal_Bool*)rValue.getValue();
mpPrtOpt->SetPrintPageBackground(bVal);
}
break;
case HANDLE_PRINTSET_BLACK_FONTS:
{
bVal = *(sal_Bool*)rValue.getValue();
mpPrtOpt->SetPrintBlackFont(bVal);
}
break;
case HANDLE_PRINTSET_SINGLE_JOBS:
{
bVal = *(sal_Bool*)rValue.getValue();
mpPrtOpt->SetPrintSingleJobs(bVal);
}
break;
case HANDLE_PRINTSET_PAPER_FROM_SETUP:
{
bVal = *(sal_Bool*)rValue.getValue();
mpPrtOpt->SetPaperFromSetup(bVal);
}
break;
case HANDLE_PRINTSET_ANNOTATION_MODE:
{
sal_Int16 nVal = 0;
rValue >>= nVal;
if(nVal <= text::NotePrintMode_PAGE_END)
mpPrtOpt->SetPrintPostIts(nVal);
else
throw lang::IllegalArgumentException();
}
break;
case HANDLE_PRINTSET_EMPTY_PAGES:
{
bVal = *(sal_Bool*)rValue.getValue();
mpPrtOpt->SetPrintEmptyPages(bVal);
}
break;
case HANDLE_PRINTSET_FAX_NAME:
{
OUString sString;
if ( rValue >>= sString)
mpPrtOpt->SetFaxName(sString);
else
throw lang::IllegalArgumentException();
}
break;
case HANDLE_PRINTSET_PROSPECT_RTL:
{
bVal = *(sal_Bool*)rValue.getValue();
mpPrtOpt->SetPrintProspect_RTL(bVal);
}
break;
case HANDLE_PRINTSET_PLACEHOLDER:
{
bVal = *(sal_Bool*)rValue.getValue();
mpPrtOpt->SetPrintTextPlaceholder(bVal);
}
break;
case HANDLE_PRINTSET_HIDDEN_TEXT:
{
bVal = *(sal_Bool*)rValue.getValue();
mpPrtOpt->SetPrintHiddenText(bVal);
}
break;
default:
throw UnknownPropertyException();
}
}
void SwXPrintSettings::_postSetValues ()
throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
{
mpPrtOpt = NULL;
}
void SwXPrintSettings::_preGetValues ()
throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
{
switch (meType)
{
case PRINT_SETTINGS_MODULE:
mpPrtOpt = SW_MOD()->GetPrtOptions( sal_False );
break;
case PRINT_SETTINGS_WEB:
mpPrtOpt = SW_MOD()->GetPrtOptions( sal_True );
break;
case PRINT_SETTINGS_DOCUMENT:
{
if (!mpDoc)
throw IllegalArgumentException ();
mpPrtOpt = const_cast< SwPrintData * >(&mpDoc->getPrintData());
}
break;
}
}
void SwXPrintSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, uno::Any & rValue )
throw(UnknownPropertyException, WrappedTargetException )
{
switch( rInfo.mnHandle )
{
case HANDLE_PRINTSET_LEFT_PAGES:
rValue <<= mpPrtOpt->IsPrintLeftPage();
break;
case HANDLE_PRINTSET_RIGHT_PAGES:
rValue <<= mpPrtOpt->IsPrintRightPage();
break;
case HANDLE_PRINTSET_REVERSED:
rValue <<= mpPrtOpt->IsPrintReverse();
break;
case HANDLE_PRINTSET_PROSPECT:
rValue <<= mpPrtOpt->IsPrintProspect();
break;
case HANDLE_PRINTSET_GRAPHICS:
rValue <<= mpPrtOpt->IsPrintGraphic();
break;
case HANDLE_PRINTSET_TABLES:
rValue <<= mpPrtOpt->IsPrintTable();
break;
case HANDLE_PRINTSET_DRAWINGS:
rValue <<= mpPrtOpt->IsPrintDraw();
break;
case HANDLE_PRINTSET_CONTROLS:
rValue <<= mpPrtOpt->IsPrintControl();
break;
case HANDLE_PRINTSET_PAGE_BACKGROUND:
rValue <<= mpPrtOpt->IsPrintPageBackground();
break;
case HANDLE_PRINTSET_BLACK_FONTS:
rValue <<= mpPrtOpt->IsPrintBlackFont();
break;
case HANDLE_PRINTSET_SINGLE_JOBS:
rValue <<= mpPrtOpt->IsPrintSingleJobs();
break;
case HANDLE_PRINTSET_EMPTY_PAGES:
rValue <<= mpPrtOpt->IsPrintEmptyPages();
break;
case HANDLE_PRINTSET_PAPER_FROM_SETUP:
rValue <<= mpPrtOpt->IsPaperFromSetup();
break;
case HANDLE_PRINTSET_ANNOTATION_MODE:
{
rValue <<= static_cast < sal_Int16 > ( mpPrtOpt->GetPrintPostIts() );
}
break;
case HANDLE_PRINTSET_FAX_NAME :
{
rValue <<= mpPrtOpt->GetFaxName();
}
break;
case HANDLE_PRINTSET_PROSPECT_RTL:
{
rValue <<= mpPrtOpt->IsPrintProspectRTL();
}
break;
case HANDLE_PRINTSET_PLACEHOLDER:
{
rValue <<= mpPrtOpt->IsPrintTextPlaceholder();
}
break;
case HANDLE_PRINTSET_HIDDEN_TEXT:
{
rValue <<= mpPrtOpt->IsPrintHiddenText();
}
break;
default:
throw UnknownPropertyException();
}
}
void SwXPrintSettings::_postGetValues ()
throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
{
mpPrtOpt = NULL;
}
/* -----------------------------06.04.00 11:02--------------------------------
---------------------------------------------------------------------------*/
OUString SwXPrintSettings::getImplementationName(void) throw( RuntimeException )
{
return C2U("SwXPrintSettings");
}
/* -----------------------------06.04.00 11:02--------------------------------
---------------------------------------------------------------------------*/
sal_Bool SwXPrintSettings::supportsService(const OUString& rServiceName) throw( RuntimeException )
{
return C2U("com.sun.star.text.PrintSettings") == rServiceName;
}
/* -----------------------------06.04.00 11:02--------------------------------
---------------------------------------------------------------------------*/
Sequence< OUString > SwXPrintSettings::getSupportedServiceNames(void) throw( RuntimeException )
{
Sequence< OUString > aRet(1);
OUString* pArray = aRet.getArray();
pArray[0] = C2U("com.sun.star.text.PrintSettings");
return aRet;
}
/******************************************************************
*
******************************************************************/
/*-- 18.12.98 11:01:10---------------------------------------------------
-----------------------------------------------------------------------*/
SwXViewSettings::SwXViewSettings(sal_Bool bWebView, SwView* pVw)
: ChainableHelperNoState( lcl_createViewSettingsInfo (), &Application::GetSolarMutex() )
, pView(pVw)
, mpViewOption ( NULL )
, mpConstViewOption ( NULL )
, bObjectValid(sal_True)
, bWeb(bWebView)
, eHRulerUnit( FUNIT_CM )
, mbApplyHRulerMetric( sal_False )
, eVRulerUnit( FUNIT_CM )
, mbApplyVRulerMetric( sal_False )
{
// This property only exists if we have a view (ie, not at the module )
if ( !pView )
mpInfo->remove ( OUString ( RTL_CONSTASCII_USTRINGPARAM ( "HelpURL" ) ) );
}
/*-- 18.12.98 11:01:10---------------------------------------------------
-----------------------------------------------------------------------*/
SwXViewSettings::~SwXViewSettings()
throw()
{
}
void SwXViewSettings::_preSetValues ()
throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
{
const SwViewOption* pVOpt = 0;
if(pView)
{
if(!IsValid())
return;
pVOpt = pView->GetWrtShell().GetViewOptions();
}
else
pVOpt = SW_MOD()->GetViewOption(bWeb);
mpViewOption = new SwViewOption (*pVOpt);
mbApplyZoom = sal_False;
if(pView)
mpViewOption->SetStarOneSetting(sal_True);
}
void SwXViewSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, const uno::Any &rValue )
throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
{
sal_Bool bVal = HANDLE_VIEWSET_ZOOM != rInfo.mnHandle ?
*(sal_Bool*)rValue.getValue() : sal_False;
// the API flag should not be set to the application's view settings
switch( rInfo.mnHandle )
{
case HANDLE_VIEWSET_SHOW_RULER : mpViewOption->SetViewAnyRuler(bVal); break;
case HANDLE_VIEWSET_HRULER : mpViewOption->SetViewHRuler(bVal); break;
case HANDLE_VIEWSET_VRULER : mpViewOption->SetViewVRuler(bVal);break;
case HANDLE_VIEWSET_VRULER_RIGHT : mpViewOption->SetVRulerRight(bVal);break;
case HANDLE_VIEWSET_HSCROLL : mpViewOption->SetViewHScrollBar(bVal);break;
case HANDLE_VIEWSET_VSCROLL : mpViewOption->SetViewVScrollBar(bVal);break;
case HANDLE_VIEWSET_GRAPHICS : mpViewOption->SetGraphic(bVal);break;
case HANDLE_VIEWSET_TABLES : mpViewOption->SetTable(bVal); break;
case HANDLE_VIEWSET_DRAWINGS : mpViewOption->SetDraw(bVal); break;
case HANDLE_VIEWSET_FIELD_COMMANDS : mpViewOption->SetFldName(bVal); break;
case HANDLE_VIEWSET_ANNOTATIONS : mpViewOption->SetPostIts(bVal); break;
case HANDLE_VIEWSET_INDEX_MARK_BACKGROUND : mpViewOption->SetAppearanceFlag(VIEWOPT_FIELD_SHADINGS, bVal, sal_True); break;
case HANDLE_VIEWSET_NONPRINTING_CHARACTERS: mpViewOption->SetViewMetaChars( bVal ); break;
case HANDLE_VIEWSET_FOOTNOTE_BACKGROUND : mpViewOption->SetAppearanceFlag(VIEWOPT_FIELD_SHADINGS, bVal, sal_True); break;
case HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND : mpViewOption->SetAppearanceFlag(VIEWOPT_FIELD_SHADINGS, bVal, sal_True); break;
case HANDLE_VIEWSET_PARA_BREAKS : mpViewOption->SetParagraph(bVal); break;
case HANDLE_VIEWSET_SOFT_HYPHENS : mpViewOption->SetSoftHyph(bVal); break;
case HANDLE_VIEWSET_SPACES : mpViewOption->SetBlank(bVal); break;
case HANDLE_VIEWSET_PROTECTED_SPACES : mpViewOption->SetHardBlank(bVal); break;
case HANDLE_VIEWSET_TABSTOPS : mpViewOption->SetTab(bVal); break;
case HANDLE_VIEWSET_BREAKS : mpViewOption->SetLineBreak(bVal); break;
case HANDLE_VIEWSET_HIDDEN_TEXT : mpViewOption->SetShowHiddenField(bVal); break;
case HANDLE_VIEWSET_HIDDEN_CHARACTERS : mpViewOption->SetShowHiddenChar(bVal); break;
case HANDLE_VIEWSET_HIDDEN_PARAGRAPHS : mpViewOption->SetShowHiddenPara(bVal); break;
case HANDLE_VIEWSET_TABLE_BOUNDARIES : mpViewOption->SetAppearanceFlag(VIEWOPT_TABLE_BOUNDARIES, bVal, sal_True); break;
case HANDLE_VIEWSET_TEXT_BOUNDARIES : mpViewOption->SetDocBoundaries(bVal); break;
case HANDLE_VIEWSET_SMOOTH_SCROLLING : mpViewOption->SetSmoothScroll(bVal); break;
case HANDLE_VIEWSET_SOLID_MARK_HANDLES : mpViewOption->SetSolidMarkHdl(bVal); break;
case HANDLE_VIEWSET_SHOW_CONTENT_TIPS : mpViewOption->SetShowContentTips(bVal); break;
case HANDLE_VIEWSET_IS_RASTER_VISIBLE : mpViewOption->SetGridVisible(bVal); break;
case HANDLE_VIEWSET_IS_SNAP_TO_RASTER : mpViewOption->SetSnap(bVal); break;
case HANDLE_VIEWSET_SCROLLBAR_TIPS : mpViewOption->SetShowScrollBarTips(bVal); break;
case HANDLE_VIEWSET_RASTER_RESOLUTION_X :
{
sal_Int32 nTmp = 0;
if(!(rValue >>= nTmp) || nTmp < 10)
throw IllegalArgumentException();
Size aSize( mpViewOption->GetSnapSize() );
aSize.Width() = MM100_TO_TWIP( nTmp );
mpViewOption->SetSnapSize( aSize );
}
break;
case HANDLE_VIEWSET_RASTER_RESOLUTION_Y :
{
sal_Int32 nTmp = 0;
if(!(rValue >>= nTmp) || nTmp < 10)
throw IllegalArgumentException();
Size aSize( mpViewOption->GetSnapSize() );
aSize.Height() = MM100_TO_TWIP( nTmp );
mpViewOption->SetSnapSize( aSize );
}
break;
case HANDLE_VIEWSET_RASTER_SUBDIVISION_X :
{
sal_Int32 nTmp = 0;
if(!(rValue >>= nTmp) || !(0 <= nTmp && nTmp < 100))
throw IllegalArgumentException();
mpViewOption->SetDivisionX( (short) nTmp );
}
break;
case HANDLE_VIEWSET_RASTER_SUBDIVISION_Y :
{
sal_Int32 nTmp = 0;
if(!(rValue >>= nTmp) || !(0 <= nTmp && nTmp < 100))
throw IllegalArgumentException();
mpViewOption->SetDivisionY( (short) nTmp );
}
break;
case HANDLE_VIEWSET_ZOOM :
{
sal_Int16 nZoom = 0;
if(!(rValue >>= nZoom) || nZoom > 1000 || nZoom < 5)
throw lang::IllegalArgumentException();
mpViewOption->SetZoom((sal_uInt16)nZoom);
mbApplyZoom = sal_True;
}
break;
case HANDLE_VIEWSET_ZOOM_TYPE:
{
sal_Int16 nZoom = 0;
if(!(rValue >>= nZoom))
throw IllegalArgumentException();
SvxZoomType eZoom = (SvxZoomType)USHRT_MAX;
switch (nZoom)
{
case view::DocumentZoomType::OPTIMAL:
eZoom = SVX_ZOOM_OPTIMAL;
break;
case view::DocumentZoomType::PAGE_WIDTH:
eZoom = SVX_ZOOM_PAGEWIDTH;
break;
case view::DocumentZoomType::ENTIRE_PAGE:
eZoom = SVX_ZOOM_WHOLEPAGE;
break;
case view::DocumentZoomType::BY_VALUE:
eZoom = SVX_ZOOM_PERCENT;
break;
case view::DocumentZoomType::PAGE_WIDTH_EXACT:
eZoom = SVX_ZOOM_PAGEWIDTH_NOBORDER;
break;
default:
throw IllegalArgumentException(
::rtl::OUString::createFromAscii(
"SwXViewSettings: invalid zoom type"), 0, 0);
break;
}
if(eZoom < USHRT_MAX)
{
mpViewOption->SetZoomType( eZoom );
mbApplyZoom = sal_True;
}
}
break;
case HANDLE_VIEWSET_ONLINE_LAYOUT :
{
if( pView && !bVal != !pView->GetWrtShell().GetViewOptions()->getBrowseMode() )
{
SwViewOption aOpt( *pView->GetWrtShell().GetViewOptions() );
aOpt.setBrowseMode( bVal );
pView->GetWrtShell().ApplyViewOptions( aOpt );
pView->RecheckBrowseMode();
// must be set in mpViewOption as this will overwrite settings in _post!
mpViewOption->setBrowseMode( bVal );
// disable multiple layout
pView->GetDocShell()->ToggleBrowserMode(bVal, pView );
}
}
break;
case HANDLE_VIEWSET_HELP_URL :
{
if ( pView )
{
OUString sHelpURL;
if ( ! ( rValue >>= sHelpURL ) )
throw IllegalArgumentException();
INetURLObject aHID( sHelpURL );
if ( aHID.GetProtocol() == INET_PROT_HID )
pView->GetEditWin().SetHelpId( rtl::OUStringToOString( aHID.GetURLPath(), RTL_TEXTENCODING_UTF8 ) );
else
throw IllegalArgumentException ();
}
else
throw UnknownPropertyException();
}
break;
case HANDLE_VIEWSET_HORI_RULER_METRIC:
case HANDLE_VIEWSET_VERT_RULER_METRIC:
{
sal_Int32 nUnit = -1;
if( rValue >>= nUnit )
switch( nUnit )
{
case FUNIT_MM:
case FUNIT_CM:
case FUNIT_POINT:
case FUNIT_PICA:
case FUNIT_INCH:
if( rInfo.mnHandle == HANDLE_VIEWSET_HORI_RULER_METRIC )
{
eHRulerUnit = nUnit;
mbApplyHRulerMetric = sal_True;
}
else
{
eVRulerUnit = nUnit;
mbApplyVRulerMetric = sal_True;
}
break;
default:
throw IllegalArgumentException();
}
}
break;
default:
throw UnknownPropertyException();
}
}
void SwXViewSettings::_postSetValues ()
throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
{
if( pView )
{
if(mbApplyZoom )
pView->SetZoom( (SvxZoomType)mpViewOption->GetZoomType(),
mpViewOption->GetZoom(), sal_True );
if(mbApplyHRulerMetric)
pView->ChangeTabMetric((FieldUnit)eHRulerUnit);
if(mbApplyVRulerMetric)
pView->ChangeVLinealMetric((FieldUnit)eVRulerUnit);
}
else
{
if(mbApplyHRulerMetric)
SW_MOD()->ApplyRulerMetric( (FieldUnit)eHRulerUnit, sal_True, bWeb );
if(mbApplyVRulerMetric)
SW_MOD()->ApplyRulerMetric( (FieldUnit)eVRulerUnit, sal_False, bWeb );
}
SW_MOD()->ApplyUsrPref( *mpViewOption, pView, pView ? VIEWOPT_DEST_VIEW_ONLY
: bWeb ? VIEWOPT_DEST_WEB
: VIEWOPT_DEST_TEXT );
delete mpViewOption;
mpViewOption = NULL;
}
void SwXViewSettings::_preGetValues ()
throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
{
if(pView)
{
if(!IsValid())
return;
mpConstViewOption = pView->GetWrtShell().GetViewOptions();
}
else
mpConstViewOption = SW_MOD()->GetViewOption(bWeb);
}
void SwXViewSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, uno::Any & rValue )
throw(UnknownPropertyException, WrappedTargetException )
{
sal_Bool bBool = sal_True;
sal_Bool bBoolVal;
switch( rInfo.mnHandle )
{
case HANDLE_VIEWSET_SHOW_RULER: bBoolVal = mpConstViewOption->IsViewAnyRuler(); break;
case HANDLE_VIEWSET_HRULER : bBoolVal = mpConstViewOption->IsViewHRuler(sal_True); break;
case HANDLE_VIEWSET_VRULER : bBoolVal = mpConstViewOption->IsViewVRuler(sal_True);break;
case HANDLE_VIEWSET_VRULER_RIGHT : bBoolVal = mpConstViewOption->IsVRulerRight();break;
case HANDLE_VIEWSET_HSCROLL: bBoolVal = mpConstViewOption->IsViewHScrollBar();break;
case HANDLE_VIEWSET_VSCROLL: bBoolVal = mpConstViewOption->IsViewVScrollBar();break;
case HANDLE_VIEWSET_GRAPHICS : bBoolVal = mpConstViewOption->IsGraphic();break;
case HANDLE_VIEWSET_TABLES : bBoolVal = mpConstViewOption->IsTable(); break;
case HANDLE_VIEWSET_DRAWINGS : bBoolVal = mpConstViewOption->IsDraw(); break;
case HANDLE_VIEWSET_FIELD_COMMANDS : bBoolVal = mpConstViewOption->IsFldName(); break;
case HANDLE_VIEWSET_ANNOTATIONS : bBoolVal = mpConstViewOption->IsPostIts(); break;
case HANDLE_VIEWSET_INDEX_MARK_BACKGROUND : bBoolVal = SwViewOption::IsFieldShadings(); break;
case HANDLE_VIEWSET_NONPRINTING_CHARACTERS: bBoolVal = mpConstViewOption->IsViewMetaChars(); break;
case HANDLE_VIEWSET_FOOTNOTE_BACKGROUND : bBoolVal = SwViewOption::IsFieldShadings(); break;
case HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND : bBoolVal = SwViewOption::IsFieldShadings(); break;
case HANDLE_VIEWSET_PARA_BREAKS : bBoolVal = mpConstViewOption->IsParagraph(sal_True); break;
case HANDLE_VIEWSET_SOFT_HYPHENS : bBoolVal = mpConstViewOption->IsSoftHyph(); break;
case HANDLE_VIEWSET_SPACES : bBoolVal = mpConstViewOption->IsBlank(sal_True); break;
case HANDLE_VIEWSET_PROTECTED_SPACES : bBoolVal = mpConstViewOption->IsHardBlank(); break;
case HANDLE_VIEWSET_TABSTOPS : bBoolVal = mpConstViewOption->IsTab(sal_True); break;
case HANDLE_VIEWSET_BREAKS : bBoolVal = mpConstViewOption->IsLineBreak(sal_True); break;
case HANDLE_VIEWSET_HIDDEN_TEXT : bBoolVal = mpConstViewOption->IsShowHiddenField(); break;
case HANDLE_VIEWSET_HIDDEN_CHARACTERS : bBoolVal = mpConstViewOption->IsShowHiddenChar(sal_True); break;
case HANDLE_VIEWSET_HIDDEN_PARAGRAPHS : bBoolVal = mpConstViewOption->IsShowHiddenPara(); break;
case HANDLE_VIEWSET_TABLE_BOUNDARIES : bBoolVal = SwViewOption::IsTableBoundaries(); break;
case HANDLE_VIEWSET_TEXT_BOUNDARIES : bBoolVal = SwViewOption::IsDocBoundaries(); break;
case HANDLE_VIEWSET_SMOOTH_SCROLLING : bBoolVal = mpConstViewOption->IsSmoothScroll(); break;
case HANDLE_VIEWSET_SOLID_MARK_HANDLES : bBoolVal = mpConstViewOption->IsSolidMarkHdl(); break;
case HANDLE_VIEWSET_SHOW_CONTENT_TIPS : bBoolVal = mpConstViewOption->IsShowContentTips(); break;
case HANDLE_VIEWSET_IS_RASTER_VISIBLE : bBoolVal = mpConstViewOption->IsGridVisible(); break;
case HANDLE_VIEWSET_IS_SNAP_TO_RASTER : bBoolVal = mpConstViewOption->IsSnap(); break;
case HANDLE_VIEWSET_SCROLLBAR_TIPS : bBoolVal = mpConstViewOption->IsShowScrollBarTips(); break;
case HANDLE_VIEWSET_RASTER_RESOLUTION_X :
bBool = sal_False;
rValue <<= (sal_Int32) TWIP_TO_MM100(mpConstViewOption->GetSnapSize().Width());
break;
case HANDLE_VIEWSET_RASTER_RESOLUTION_Y :
bBool = sal_False;
rValue <<= (sal_Int32) TWIP_TO_MM100(mpConstViewOption->GetSnapSize().Height());
break;
case HANDLE_VIEWSET_RASTER_SUBDIVISION_X :
bBool = sal_False;
rValue <<= (sal_Int32) mpConstViewOption->GetDivisionX();
break;
case HANDLE_VIEWSET_RASTER_SUBDIVISION_Y :
bBool = sal_False;
rValue <<= (sal_Int32) mpConstViewOption->GetDivisionY();
break;
case HANDLE_VIEWSET_ZOOM :
bBool = sal_False;
rValue <<= (sal_Int16)mpConstViewOption->GetZoom();
break;
case HANDLE_VIEWSET_ZOOM_TYPE:
{
bBool = sal_False;
sal_Int16 nRet(0);
switch (mpConstViewOption->GetZoomType())
{
case SVX_ZOOM_OPTIMAL:
nRet = view::DocumentZoomType::OPTIMAL;
break;
case SVX_ZOOM_PAGEWIDTH:
nRet = view::DocumentZoomType::PAGE_WIDTH;
break;
case SVX_ZOOM_WHOLEPAGE:
nRet = view::DocumentZoomType::ENTIRE_PAGE;
break;
case SVX_ZOOM_PERCENT:
nRet = view::DocumentZoomType::BY_VALUE;
break;
case SVX_ZOOM_PAGEWIDTH_NOBORDER:
nRet = view::DocumentZoomType::PAGE_WIDTH_EXACT;
break;
default:
OSL_ENSURE(false, "SwXViewSettings: invalid zoom type");
break;
}
rValue <<= nRet;
}
break;
case HANDLE_VIEWSET_ONLINE_LAYOUT:
if(pView)
bBoolVal = pView->GetWrtShell().GetViewOptions()->getBrowseMode();
break;
case HANDLE_VIEWSET_HELP_URL :
{
if ( pView )
{
bBool = sal_False;
OUStringBuffer sHelpURL;
sHelpURL.appendAscii ( INET_HID_SCHEME );
SwEditWin &rEditWin = pView->GetEditWin();
sHelpURL.append( rtl::OStringToOUString( rEditWin.GetHelpId(), RTL_TEXTENCODING_UTF8 ) );
rValue <<= sHelpURL.makeStringAndClear();
}
else
throw UnknownPropertyException();
}
break;
case HANDLE_VIEWSET_HORI_RULER_METRIC:
{
if ( pView )
{
FieldUnit eUnit;
pView->GetHLinealMetric( eUnit );
rValue <<= (sal_Int32)eUnit;
}
else
{
const SwMasterUsrPref* pUsrPref = SW_MOD()->GetUsrPref( bWeb );
rValue <<= (sal_Int32)pUsrPref->GetHScrollMetric();
}
bBool = sal_False;
}
break;
case HANDLE_VIEWSET_VERT_RULER_METRIC:
{
if ( pView )
{
FieldUnit eUnit;
pView->GetVLinealMetric( eUnit );
rValue <<= (sal_Int32)eUnit;
}
else
{
const SwMasterUsrPref* pUsrPref = SW_MOD()->GetUsrPref( bWeb );
rValue <<= (sal_Int32)pUsrPref->GetVScrollMetric();
}
bBool = sal_False;
}
break;
default: DBG_ERROR("Diese Id gibt's nicht!");
}
if( bBool )
rValue.setValue(&bBoolVal, ::getBooleanCppuType());
}
void SwXViewSettings::_postGetValues ()
throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
{
mpConstViewOption = NULL;
}
OUString SwXViewSettings::getImplementationName(void) throw( RuntimeException )
{
return C2U("SwXViewSettings");
}
sal_Bool SwXViewSettings::supportsService(const OUString& rServiceName) throw( RuntimeException )
{
return C2U("com.sun.star.text.ViewSettings") == rServiceName;
}
Sequence< OUString > SwXViewSettings::getSupportedServiceNames(void) throw( RuntimeException )
{
Sequence< OUString > aRet(1);
OUString* pArray = aRet.getArray();
pArray[0] = C2U("com.sun.star.text.ViewSettings");
return aRet;
}