summaryrefslogtreecommitdiff
path: root/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx')
-rw-r--r--chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx658
1 files changed, 0 insertions, 658 deletions
diff --git a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx
deleted file mode 100644
index 77e590ef9..000000000
--- a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx
+++ /dev/null
@@ -1,658 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_chart2.hxx"
-
-#include "tp_3D_SceneIllumination.hxx"
-#include "tp_3D_SceneIllumination.hrc"
-#include "ResId.hxx"
-#include "Strings.hrc"
-#include "Bitmaps.hrc"
-#include "CommonConverters.hxx"
-#include "NoWarningThisInCTOR.hxx"
-
-#include "svx/dialogs.hrc"
-// header for define SVX_RES
-#include <svx/dialmgr.hxx>
-#include <rtl/math.hxx>
-
-// header for class SvColorDialog
-#include <svtools/colrdlg.hxx>
-
-// header for define RET_OK
-#include <vcl/msgbox.hxx>
-
-#include <svx/svx3ditems.hxx>
-#include <svx/svddef.hxx>
-
-//.............................................................................
-namespace chart
-{
-//.............................................................................
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::chart2;
-
-LightButton::LightButton( Window* pParent, const ResId& rResId, sal_Int32 nLightNumber )
- : ImageButton( pParent, rResId )
- , m_bLightOn(false)
-{
- SetModeImage( Image( SVX_RES(RID_SVXIMAGE_LIGHT_OFF) ) );
-
- String aTipHelpStr( SchResId(STR_TIP_LIGHTSOURCE_X) );
- rtl::OUString aTipHelp( aTipHelpStr );
- const rtl::OUString aReplacementStr( RTL_CONSTASCII_USTRINGPARAM( "%LIGHTNUMBER" ));
- sal_Int32 nIndex = aTipHelp.indexOf( aReplacementStr );
- if( nIndex != -1 )
- {
- aTipHelp = aTipHelp.replaceAt(nIndex, aReplacementStr.getLength(),
- rtl::OUString::valueOf( nLightNumber ) );
- }
- this->SetQuickHelpText( String( aTipHelp ) );
-}
-
-LightButton::~LightButton()
-{
-}
-
-void LightButton::switchLightOn(bool bOn)
-{
- if( m_bLightOn==bOn )
- return;
- m_bLightOn = bOn;
- if(m_bLightOn)
- {
- SetModeImage( Image( SVX_RES(RID_SVXIMAGE_LIGHT_ON) ) );
- }
- else
- {
- SetModeImage( Image( SVX_RES(RID_SVXIMAGE_LIGHT_OFF) ) );
- }
-}
-
-bool LightButton::isLightOn() const
-{
- return m_bLightOn;
-}
-
-//-----------------------------------------------------------------------------
-
-ColorButton::ColorButton( Window* pParent, const ResId& rResId )
- : ImageButton( pParent, rResId )
-{
- SetModeImage( Image( SVX_RES(RID_SVXIMAGE_COLORDLG) ) );
- this->SetQuickHelpText( String( SchResId(STR_TIP_CHOOSECOLOR) ) );
-}
-
-ColorButton::~ColorButton()
-{
-}
-
-//-----------------------------------------------------------------------------
-
-struct LightSource
-{
- long nDiffuseColor;
- ::com::sun::star::drawing::Direction3D aDirection;
- bool bIsEnabled;
-
- LightSource() :
- nDiffuseColor( 0xcccccc ),
- aDirection( 1.0, 1.0, -1.0 ),
- bIsEnabled( false )
- {}
-};
-
-struct LightSourceInfo
-{
- LightButton* pButton;
- LightSource aLightSource;
-
- LightSourceInfo();
- void initButtonFromSource();
-};
-
-LightSourceInfo::LightSourceInfo()
- : pButton(0)
- , aLightSource()
-{
- aLightSource.nDiffuseColor = 0xffffff; // white
- aLightSource.aDirection = drawing::Direction3D(1,1,1);
- aLightSource.bIsEnabled = sal_False;
-}
-
-void LightSourceInfo::initButtonFromSource()
-{
- if(!pButton)
- return;
- pButton->SetModeImage( Image( SVX_RES(
- aLightSource.bIsEnabled ? RID_SVXIMAGE_LIGHT_ON : RID_SVXIMAGE_LIGHT_OFF
- ) ) );
-}
-
-//-----------------------------------------------------------------------------
-
-namespace
-{
- rtl::OUString lcl_makeColorName( Color rColor )
- {
- String aStr(SVX_RES(RID_SVXFLOAT3D_FIX_R));
- aStr += String::CreateFromInt32((sal_Int32)rColor.GetRed());
- aStr += sal_Unicode(' ');
- aStr += String(SVX_RES(RID_SVXFLOAT3D_FIX_G));
- aStr += String::CreateFromInt32((sal_Int32)rColor.GetGreen());
- aStr += sal_Unicode(' ');
- aStr += String(SVX_RES(RID_SVXFLOAT3D_FIX_B));
- aStr += String::CreateFromInt32((sal_Int32)rColor.GetBlue());
- return aStr;
- }
- void lcl_selectColor( ColorListBox& rListBox, const Color& rColor )
- {
- rListBox.SetNoSelection();
- rListBox.SelectEntry( rColor );
- if( rListBox.GetSelectEntryCount() == 0 )
- {
- sal_uInt16 nPos = rListBox.InsertEntry( rColor, lcl_makeColorName( rColor ) );
- rListBox.SelectEntryPos( nPos );
- }
- }
-
- ::chart::LightSource lcl_getLightSourceFromProperties(
- const uno::Reference< beans::XPropertySet > & xSceneProperties,
- sal_Int32 nIndex )
- {
- ::chart::LightSource aResult;
- if( 0 <= nIndex && nIndex < 8 )
- {
- ::rtl::OUString aColorPropertyPrefix( RTL_CONSTASCII_USTRINGPARAM("D3DSceneLightColor"));
- ::rtl::OUString aDirectionPropertyPrefix( RTL_CONSTASCII_USTRINGPARAM("D3DSceneLightDirection"));
- ::rtl::OUString aEnabledPropertyPrefix( RTL_CONSTASCII_USTRINGPARAM("D3DSceneLightOn"));
- ::rtl::OUString aIndex( ::rtl::OUString::valueOf( nIndex + 1 ));
-
- try
- {
- xSceneProperties->getPropertyValue( aColorPropertyPrefix + aIndex ) >>= aResult.nDiffuseColor;
- xSceneProperties->getPropertyValue( aDirectionPropertyPrefix + aIndex ) >>= aResult.aDirection;
- xSceneProperties->getPropertyValue( aEnabledPropertyPrefix + aIndex ) >>= aResult.bIsEnabled;
- }
- catch( const uno::Exception & ex )
- {
- (void)(ex); // no warning in non-debug builds
- OSL_FAIL( ::rtl::OUStringToOString(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Property Exception caught. Message: " )) +
- ex.Message, RTL_TEXTENCODING_ASCII_US ).getStr());
- }
- }
- return aResult;
- }
-
- void lcl_setLightSource(
- const uno::Reference< beans::XPropertySet > & xSceneProperties,
- const ::chart::LightSource & rLightSource,
- sal_Int32 nIndex )
- {
- if( 0 <= nIndex && nIndex < 8 )
- {
- ::rtl::OUString aColorPropertyPrefix( RTL_CONSTASCII_USTRINGPARAM("D3DSceneLightColor"));
- ::rtl::OUString aDirectionPropertyPrefix( RTL_CONSTASCII_USTRINGPARAM("D3DSceneLightDirection"));
- ::rtl::OUString aEnabledPropertyPrefix( RTL_CONSTASCII_USTRINGPARAM("D3DSceneLightOn"));
- ::rtl::OUString aIndex( ::rtl::OUString::valueOf( nIndex + 1 ));
-
- try
- {
- xSceneProperties->setPropertyValue( aColorPropertyPrefix + aIndex,
- uno::makeAny( rLightSource.nDiffuseColor ));
- xSceneProperties->setPropertyValue( aDirectionPropertyPrefix + aIndex,
- uno::makeAny( rLightSource.aDirection ));
- xSceneProperties->setPropertyValue( aEnabledPropertyPrefix + aIndex,
- uno::makeAny( rLightSource.bIsEnabled ));
- }
- catch( const uno::Exception & ex )
- {
- (void)(ex); // no warning in non-debug builds
- OSL_FAIL( ::rtl::OUStringToOString(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Property Exception caught. Message: " )) +
- ex.Message, RTL_TEXTENCODING_ASCII_US ).getStr());
- }
- }
- }
-
- Color lcl_getAmbientColor(
- const uno::Reference< beans::XPropertySet > & xSceneProperties )
- {
- sal_Int32 nResult = 0x000000;
- try
- {
- xSceneProperties->getPropertyValue(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("D3DSceneAmbientColor"))) >>= nResult;
- }
- catch( const uno::Exception & ex )
- {
- (void)(ex); // no warning in non-debug builds
- OSL_FAIL( ::rtl::OUStringToOString(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Property Exception caught. Message: " )) +
- ex.Message, RTL_TEXTENCODING_ASCII_US ).getStr());
- }
- return Color( nResult );
- }
-
- void lcl_setAmbientColor(
- const uno::Reference< beans::XPropertySet > & xSceneProperties,
- const Color & rColor )
- {
- try
- {
- xSceneProperties->setPropertyValue(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("D3DSceneAmbientColor")),
- uno::makeAny( rColor.GetColor()));
- }
- catch( const uno::Exception & ex )
- {
- (void)(ex); // no warning in non-debug builds
- OSL_FAIL( ::rtl::OUStringToOString(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Property Exception caught. Message: " )) +
- ex.Message, RTL_TEXTENCODING_ASCII_US ).getStr());
- }
- }
-}
-
-//-----------------------------------------------------------------------------
-
-ThreeD_SceneIllumination_TabPage::ThreeD_SceneIllumination_TabPage( Window* pWindow
- , const uno::Reference< beans::XPropertySet > & xSceneProperties
- , const uno::Reference< frame::XModel >& xChartModel
- , XColorTable* pColorTable )
- : TabPage ( pWindow, SchResId( TP_3D_SCENEILLUMINATION ) )
- , m_aFT_LightSource( this, SchResId( FT_LIGHTSOURCE ) )
- , m_aBtn_Light1( this, SchResId( BTN_LIGHT_1 ), 1 )
- , m_aBtn_Light2( this, SchResId( BTN_LIGHT_2 ), 2 )
- , m_aBtn_Light3( this, SchResId( BTN_LIGHT_3 ), 3 )
- , m_aBtn_Light4( this, SchResId( BTN_LIGHT_4 ), 4 )
- , m_aBtn_Light5( this, SchResId( BTN_LIGHT_5 ), 5 )
- , m_aBtn_Light6( this, SchResId( BTN_LIGHT_6 ), 6 )
- , m_aBtn_Light7( this, SchResId( BTN_LIGHT_7 ), 7 )
- , m_aBtn_Light8( this, SchResId( BTN_LIGHT_8 ), 8 )
- , m_aLB_LightSource( this, SchResId( LB_LIGHTSOURCE ) )
- , m_aBtn_LightSource_Color( this, SchResId( BTN_LIGHTSOURCE_COLOR ) )
- , m_aFT_AmbientLight( this, SchResId( FT_AMBIENTLIGHT ) )
- , m_aLB_AmbientLight( this, SchResId( LB_AMBIENTLIGHT ) )
- , m_aBtn_AmbientLight_Color( this, SchResId( BTN_AMBIENT_COLOR ) )
- , m_aCtl_Preview( this, SchResId( CTL_LIGHT_PREVIEW ) )
- , m_pLightSourceInfoList(0)
- , m_xSceneProperties( xSceneProperties )
- , m_aTimerTriggeredControllerLock( xChartModel )
- , m_bInCommitToModel( false )
- , m_aModelChangeListener( LINK( this, ThreeD_SceneIllumination_TabPage, fillControlsFromModel ) )
- , m_xChartModel( xChartModel )
-{
- FreeResource();
-
- if(pColorTable)
- {
- m_aLB_AmbientLight.Fill( pColorTable );
- m_aLB_LightSource.Fill( pColorTable );
- }
- m_aLB_AmbientLight.SetDropDownLineCount(10);
- m_aLB_LightSource.SetDropDownLineCount(10);
-
- m_pLightSourceInfoList = new LightSourceInfo[8];
- m_pLightSourceInfoList[0].pButton = &m_aBtn_Light1;
- m_pLightSourceInfoList[1].pButton = &m_aBtn_Light2;
- m_pLightSourceInfoList[2].pButton = &m_aBtn_Light3;
- m_pLightSourceInfoList[3].pButton = &m_aBtn_Light4;
- m_pLightSourceInfoList[4].pButton = &m_aBtn_Light5;
- m_pLightSourceInfoList[5].pButton = &m_aBtn_Light6;
- m_pLightSourceInfoList[6].pButton = &m_aBtn_Light7;
- m_pLightSourceInfoList[7].pButton = &m_aBtn_Light8;
-
- fillControlsFromModel(0);
-
- m_aBtn_Light1.SetClickHdl( LINK( this, ThreeD_SceneIllumination_TabPage, ClickLightSourceButtonHdl ) );
- m_aBtn_Light2.SetClickHdl( LINK( this, ThreeD_SceneIllumination_TabPage, ClickLightSourceButtonHdl ) );
- m_aBtn_Light3.SetClickHdl( LINK( this, ThreeD_SceneIllumination_TabPage, ClickLightSourceButtonHdl ) );
- m_aBtn_Light4.SetClickHdl( LINK( this, ThreeD_SceneIllumination_TabPage, ClickLightSourceButtonHdl ) );
- m_aBtn_Light5.SetClickHdl( LINK( this, ThreeD_SceneIllumination_TabPage, ClickLightSourceButtonHdl ) );
- m_aBtn_Light6.SetClickHdl( LINK( this, ThreeD_SceneIllumination_TabPage, ClickLightSourceButtonHdl ) );
- m_aBtn_Light7.SetClickHdl( LINK( this, ThreeD_SceneIllumination_TabPage, ClickLightSourceButtonHdl ) );
- m_aBtn_Light8.SetClickHdl( LINK( this, ThreeD_SceneIllumination_TabPage, ClickLightSourceButtonHdl ) );
-
- m_aLB_AmbientLight.SetSelectHdl( LINK( this, ThreeD_SceneIllumination_TabPage, SelectColorHdl ) );
- m_aLB_LightSource.SetSelectHdl( LINK( this, ThreeD_SceneIllumination_TabPage, SelectColorHdl ) );
-
- m_aBtn_AmbientLight_Color.SetClickHdl( LINK( this, ThreeD_SceneIllumination_TabPage, ColorDialogHdl ) );
- m_aBtn_LightSource_Color.SetClickHdl( LINK( this, ThreeD_SceneIllumination_TabPage, ColorDialogHdl ) );
-
- m_aCtl_Preview.SetUserInteractiveChangeCallback( LINK( this, ThreeD_SceneIllumination_TabPage, PreviewChangeHdl ) );
- m_aCtl_Preview.SetUserSelectionChangeCallback( LINK( this, ThreeD_SceneIllumination_TabPage, PreviewSelectHdl ) );
-
- ClickLightSourceButtonHdl(&m_aBtn_Light2);
-
- m_aModelChangeListener.startListening( uno::Reference< util::XModifyBroadcaster >(m_xSceneProperties, uno::UNO_QUERY) );
- m_aBtn_Light1.SetAccessibleRelationLabeledBy(&m_aFT_LightSource);
- m_aBtn_Light2.SetAccessibleRelationLabeledBy(&m_aFT_LightSource);
- m_aBtn_Light3.SetAccessibleRelationLabeledBy(&m_aFT_LightSource);
- m_aBtn_Light4.SetAccessibleRelationLabeledBy(&m_aFT_LightSource);
- m_aBtn_Light5.SetAccessibleRelationLabeledBy(&m_aFT_LightSource);
- m_aBtn_Light6.SetAccessibleRelationLabeledBy(&m_aFT_LightSource);
- m_aBtn_Light7.SetAccessibleRelationLabeledBy(&m_aFT_LightSource);
- m_aBtn_Light8.SetAccessibleRelationLabeledBy(&m_aFT_LightSource);
- m_aCtl_Preview.SetAccessibleName(String(SchResId( STR_LIGHT_PREVIEW )));
-}
-
-ThreeD_SceneIllumination_TabPage::~ThreeD_SceneIllumination_TabPage()
-{
- delete[] m_pLightSourceInfoList;
-}
-
-void ThreeD_SceneIllumination_TabPage::commitPendingChanges()
-{
-}
-
-IMPL_LINK( ThreeD_SceneIllumination_TabPage, fillControlsFromModel, void *, EMPTYARG )
-{
- if( m_bInCommitToModel )//don't read own changes
- return 0;
-
- sal_Int32 nL=0;
- for( nL=0; nL<8; nL++)
- m_pLightSourceInfoList[nL].aLightSource = lcl_getLightSourceFromProperties( m_xSceneProperties, nL );
- for( nL=0; nL<8; nL++)
- m_pLightSourceInfoList[nL].initButtonFromSource();
-
- lcl_selectColor( m_aLB_AmbientLight, lcl_getAmbientColor( m_xSceneProperties ));
-
- this->updatePreview();
-
- return 0;
-}
-
-void ThreeD_SceneIllumination_TabPage::applyLightSourceToModel( sal_uInt32 nLightNumber )
-{
- ControllerLockGuard aGuard( m_xChartModel );
- m_bInCommitToModel = true;
- sal_Int32 nIndex( nLightNumber );
- lcl_setLightSource( m_xSceneProperties, m_pLightSourceInfoList[nIndex].aLightSource, nIndex );
- m_bInCommitToModel = false;
-}
-
-void ThreeD_SceneIllumination_TabPage::applyLightSourcesToModel()
-{
- m_aTimerTriggeredControllerLock.startTimer();
- ControllerLockGuard aGuard( m_xChartModel );
- for( sal_Int32 nL=0; nL<8; nL++)
- applyLightSourceToModel( nL );
- m_aTimerTriggeredControllerLock.startTimer();
-}
-
-IMPL_LINK( ThreeD_SceneIllumination_TabPage, PreviewChangeHdl, void*, EMPTYARG )
-{
- m_aTimerTriggeredControllerLock.startTimer();
-
- //update m_pLightSourceInfoList from preview
- const SfxItemSet a3DLightAttributes(m_aCtl_Preview.GetSvx3DLightControl().Get3DAttributes());
- LightSourceInfo* pInfo = &m_pLightSourceInfoList[0];
-
- pInfo->aLightSource.nDiffuseColor = ((const Svx3DLightcolor1Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTCOLOR_1)).GetValue().GetColor();
- pInfo->aLightSource.bIsEnabled = ((const Svx3DLightOnOff1Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTON_1)).GetValue();
- pInfo->aLightSource.aDirection = B3DVectorToDirection3D(((const Svx3DLightDirection1Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTDIRECTION_1)).GetValue());
-
- pInfo = &m_pLightSourceInfoList[1];
- pInfo->aLightSource.nDiffuseColor = ((const Svx3DLightcolor2Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTCOLOR_2)).GetValue().GetColor();
- pInfo->aLightSource.bIsEnabled = ((const Svx3DLightOnOff2Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTON_2)).GetValue();
- pInfo->aLightSource.aDirection = B3DVectorToDirection3D(((const Svx3DLightDirection2Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTDIRECTION_2)).GetValue());
-
- pInfo = &m_pLightSourceInfoList[2];
- pInfo->aLightSource.nDiffuseColor = ((const Svx3DLightcolor3Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTCOLOR_3)).GetValue().GetColor();
- pInfo->aLightSource.bIsEnabled = ((const Svx3DLightOnOff3Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTON_3)).GetValue();
- pInfo->aLightSource.aDirection = B3DVectorToDirection3D(((const Svx3DLightDirection3Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTDIRECTION_3)).GetValue());
-
- pInfo = &m_pLightSourceInfoList[3];
- pInfo->aLightSource.nDiffuseColor = ((const Svx3DLightcolor4Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTCOLOR_4)).GetValue().GetColor();
- pInfo->aLightSource.bIsEnabled = ((const Svx3DLightOnOff4Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTON_4)).GetValue();
- pInfo->aLightSource.aDirection = B3DVectorToDirection3D(((const Svx3DLightDirection4Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTDIRECTION_4)).GetValue());
-
- pInfo = &m_pLightSourceInfoList[4];
- pInfo->aLightSource.nDiffuseColor = ((const Svx3DLightcolor5Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTCOLOR_5)).GetValue().GetColor();
- pInfo->aLightSource.bIsEnabled = ((const Svx3DLightOnOff5Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTON_5)).GetValue();
- pInfo->aLightSource.aDirection = B3DVectorToDirection3D(((const Svx3DLightDirection5Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTDIRECTION_5)).GetValue());
-
- pInfo = &m_pLightSourceInfoList[5];
- pInfo->aLightSource.nDiffuseColor = ((const Svx3DLightcolor6Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTCOLOR_6)).GetValue().GetColor();
- pInfo->aLightSource.bIsEnabled = ((const Svx3DLightOnOff6Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTON_6)).GetValue();
- pInfo->aLightSource.aDirection = B3DVectorToDirection3D(((const Svx3DLightDirection6Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTDIRECTION_6)).GetValue());
-
- pInfo = &m_pLightSourceInfoList[6];
- pInfo->aLightSource.nDiffuseColor = ((const Svx3DLightcolor7Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTCOLOR_7)).GetValue().GetColor();
- pInfo->aLightSource.bIsEnabled = ((const Svx3DLightOnOff7Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTON_7)).GetValue();
- pInfo->aLightSource.aDirection = B3DVectorToDirection3D(((const Svx3DLightDirection7Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTDIRECTION_7)).GetValue());
-
- pInfo = &m_pLightSourceInfoList[7];
- pInfo->aLightSource.nDiffuseColor = ((const Svx3DLightcolor8Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTCOLOR_8)).GetValue().GetColor();
- pInfo->aLightSource.bIsEnabled = ((const Svx3DLightOnOff8Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTON_8)).GetValue();
- pInfo->aLightSource.aDirection = B3DVectorToDirection3D(((const Svx3DLightDirection8Item&)a3DLightAttributes.Get(SDRATTR_3DSCENE_LIGHTDIRECTION_8)).GetValue());
-
- applyLightSourcesToModel();
-
- return 0;
-}
-
-IMPL_LINK( ThreeD_SceneIllumination_TabPage, PreviewSelectHdl, void*, EMPTYARG )
-{
- sal_uInt32 nLightNumber = m_aCtl_Preview.GetSvx3DLightControl().GetSelectedLight();
- if(nLightNumber<8)
- {
- LightButton* pButton = m_pLightSourceInfoList[nLightNumber].pButton;
- if(!pButton->IsChecked())
- ClickLightSourceButtonHdl(pButton);
-
- applyLightSourcesToModel();
- }
- return 0;
-}
-
-IMPL_LINK( ThreeD_SceneIllumination_TabPage, ColorDialogHdl, Button*, pButton )
-{
- bool bIsAmbientLight = (pButton==&m_aBtn_AmbientLight_Color);
- ColorLB* pListBox = ( bIsAmbientLight ? &m_aLB_AmbientLight : &m_aLB_LightSource);
-
- SvColorDialog aColorDlg( this );
- aColorDlg.SetColor( pListBox->GetSelectEntryColor() );
- if( aColorDlg.Execute() == RET_OK )
- {
- Color aColor( aColorDlg.GetColor());
- lcl_selectColor( *pListBox, aColor );
- if( bIsAmbientLight )
- {
- m_bInCommitToModel = true;
- lcl_setAmbientColor( m_xSceneProperties, aColor );
- m_bInCommitToModel = false;
- }
- else
- {
- //get active lightsource:
- LightSourceInfo* pInfo = 0;
- sal_Int32 nL=0;
- for( nL=0; nL<8; nL++)
- {
- pInfo = &m_pLightSourceInfoList[nL];
- if(pInfo->pButton->IsChecked())
- break;
- pInfo = 0;
- }
- if(pInfo)
- applyLightSourceToModel( nL );
- }
- SelectColorHdl( pListBox );
- }
- return 0;
-}
-
-IMPL_LINK( ThreeD_SceneIllumination_TabPage, SelectColorHdl, ColorLB*, pListBox )
-{
- if(pListBox==&m_aLB_AmbientLight)
- {
- m_bInCommitToModel = true;
- lcl_setAmbientColor( m_xSceneProperties, pListBox->GetSelectEntryColor().GetColor());
- m_bInCommitToModel = false;
- }
- else if(pListBox==&m_aLB_LightSource)
- {
- //get active lightsource:
- LightSourceInfo* pInfo = 0;
- sal_Int32 nL=0;
- for( nL=0; nL<8; nL++)
- {
- pInfo = &m_pLightSourceInfoList[nL];
- if(pInfo->pButton->IsChecked())
- break;
- pInfo = 0;
- }
- if(pInfo)
- {
- pInfo->aLightSource.nDiffuseColor = pListBox->GetSelectEntryColor().GetColor();
- applyLightSourceToModel( nL );
- }
- }
- this->updatePreview();
- return 0;
-}
-
-IMPL_LINK( ThreeD_SceneIllumination_TabPage, ClickLightSourceButtonHdl, LightButton*, pButton )
-{
- if( !pButton )
- return 0;
-
- LightSourceInfo* pInfo = 0;
- sal_Int32 nL=0;
- for( nL=0; nL<8; nL++)
- {
- if( m_pLightSourceInfoList[nL].pButton == pButton )
- {
- pInfo = &m_pLightSourceInfoList[nL];
- break;
- }
- }
-
- //update light button
- bool bIsChecked = pButton->IsChecked();
- if(bIsChecked)
- {
- pButton->switchLightOn(!pButton->isLightOn());
- if(pInfo)
- {
- pInfo->aLightSource.bIsEnabled=pButton->isLightOn();
- applyLightSourceToModel( nL );
- }
- }
- else
- {
- ControllerLockGuard aGuard( m_xChartModel );
- for( nL=0; nL<8; nL++)
- {
- LightButton* pLightButton = m_pLightSourceInfoList[nL].pButton;
- pLightButton->Check( pLightButton == pButton );
- }
- }
-
- //update color list box
- if(pInfo)
- {
- lcl_selectColor( m_aLB_LightSource, pInfo->aLightSource.nDiffuseColor );
- }
- this->updatePreview();
- return 0;
-}
-
-void ThreeD_SceneIllumination_TabPage::updatePreview()
-{
- SfxItemSet aItemSet(m_aCtl_Preview.GetSvx3DLightControl().Get3DAttributes());
- LightSourceInfo* pInfo = &m_pLightSourceInfoList[0];
-
- // AmbientColor
- aItemSet.Put(Svx3DAmbientcolorItem(m_aLB_AmbientLight.GetSelectEntryColor()));
-
- aItemSet.Put(Svx3DLightcolor1Item(pInfo->aLightSource.nDiffuseColor));
- aItemSet.Put(Svx3DLightOnOff1Item(pInfo->aLightSource.bIsEnabled));
- aItemSet.Put(Svx3DLightDirection1Item(Direction3DToB3DVector(pInfo->aLightSource.aDirection)));
-
- pInfo = &m_pLightSourceInfoList[1];
- aItemSet.Put(Svx3DLightcolor2Item(pInfo->aLightSource.nDiffuseColor));
- aItemSet.Put(Svx3DLightOnOff2Item(pInfo->aLightSource.bIsEnabled));
- aItemSet.Put(Svx3DLightDirection2Item(Direction3DToB3DVector(pInfo->aLightSource.aDirection)));
-
- pInfo = &m_pLightSourceInfoList[2];
- aItemSet.Put(Svx3DLightcolor3Item(pInfo->aLightSource.nDiffuseColor));
- aItemSet.Put(Svx3DLightOnOff3Item(pInfo->aLightSource.bIsEnabled));
- aItemSet.Put(Svx3DLightDirection3Item(Direction3DToB3DVector(pInfo->aLightSource.aDirection)));
-
- pInfo = &m_pLightSourceInfoList[3];
- aItemSet.Put(Svx3DLightcolor4Item(pInfo->aLightSource.nDiffuseColor));
- aItemSet.Put(Svx3DLightOnOff4Item(pInfo->aLightSource.bIsEnabled));
- aItemSet.Put(Svx3DLightDirection4Item(Direction3DToB3DVector(pInfo->aLightSource.aDirection)));
-
- pInfo = &m_pLightSourceInfoList[4];
- aItemSet.Put(Svx3DLightcolor5Item(pInfo->aLightSource.nDiffuseColor));
- aItemSet.Put(Svx3DLightOnOff5Item(pInfo->aLightSource.bIsEnabled));
- aItemSet.Put(Svx3DLightDirection5Item(Direction3DToB3DVector(pInfo->aLightSource.aDirection)));
-
- pInfo = &m_pLightSourceInfoList[5];
- aItemSet.Put(Svx3DLightcolor6Item(pInfo->aLightSource.nDiffuseColor));
- aItemSet.Put(Svx3DLightOnOff6Item(pInfo->aLightSource.bIsEnabled));
- aItemSet.Put(Svx3DLightDirection6Item(Direction3DToB3DVector(pInfo->aLightSource.aDirection)));
-
- pInfo = &m_pLightSourceInfoList[6];
- aItemSet.Put(Svx3DLightcolor7Item(pInfo->aLightSource.nDiffuseColor));
- aItemSet.Put(Svx3DLightOnOff7Item(pInfo->aLightSource.bIsEnabled));
- aItemSet.Put(Svx3DLightDirection7Item(Direction3DToB3DVector(pInfo->aLightSource.aDirection)));
-
- pInfo = &m_pLightSourceInfoList[7];
- aItemSet.Put(Svx3DLightcolor8Item(pInfo->aLightSource.nDiffuseColor));
- aItemSet.Put(Svx3DLightOnOff8Item(pInfo->aLightSource.bIsEnabled));
- aItemSet.Put(Svx3DLightDirection8Item(Direction3DToB3DVector(pInfo->aLightSource.aDirection)));
-
- // set lights and ambient light
- m_aCtl_Preview.GetSvx3DLightControl().Set3DAttributes(aItemSet);
-
- // select light
- for(sal_uInt32 a(0); a < 8; a++)
- {
- if(m_pLightSourceInfoList[a].pButton->IsChecked())
- {
- m_aCtl_Preview.GetSvx3DLightControl().SelectLight(a);
- m_aCtl_Preview.CheckSelection();
- break;
- }
- }
-}
-
-//.............................................................................
-} //namespace chart
-//.............................................................................
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */