diff options
Diffstat (limited to 'chart2/source/controller/dialogs/tp_3D_SceneGeometry.hxx')
-rw-r--r-- | chart2/source/controller/dialogs/tp_3D_SceneGeometry.hxx | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/chart2/source/controller/dialogs/tp_3D_SceneGeometry.hxx b/chart2/source/controller/dialogs/tp_3D_SceneGeometry.hxx new file mode 100644 index 000000000000..57e96cd02cdc --- /dev/null +++ b/chart2/source/controller/dialogs/tp_3D_SceneGeometry.hxx @@ -0,0 +1,113 @@ +/* -*- 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. + * + ************************************************************************/ +#ifndef _CHART2_TP_3D_SCENE_GEOMETRY_HXX +#define _CHART2_TP_3D_SCENE_GEOMETRY_HXX + +#include <com/sun/star/beans/XPropertySet.hpp> +#include <basegfx/matrix/b3dhommatrix.hxx> + +// header for class TabPage +#include <vcl/tabpage.hxx> +// header for class FixedLine +#include <vcl/fixed.hxx> +// header for class MetricField +#include <vcl/field.hxx> +// header for class OKButton +#include <vcl/button.hxx> + +#include "ControllerLockGuard.hxx" + +//............................................................................. +namespace chart +{ +//............................................................................. + +class ThreeD_SceneGeometry_TabPage : public TabPage +{ +public: + ThreeD_SceneGeometry_TabPage( Window* pWindow, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertySet > & xSceneProperties, + ControllerLockHelper & rControllerLockHelper ); + virtual ~ThreeD_SceneGeometry_TabPage(); + + // has to be called in case the dialog was closed with OK + void commitPendingChanges(); + + // is called by timer to apply changes to model + DECL_LINK( AngleChanged, void* ); + // is called immediately when a field changes + DECL_LINK( AngleEdited, void* ); + + // is called by timer to apply changes to model + DECL_LINK( PerspectiveChanged, void* ); + // is called immediately when a field changes + DECL_LINK( PerspectiveEdited, void* ); + DECL_LINK( PerspectiveToggled, void* ); + DECL_LINK( RightAngledAxesToggled, void* ); + +private: + void fillDialogAnglesFromModel() const; + void applyAnglesToModel(); + void applyPerspectiveToModel(); + + ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertySet > m_xSceneProperties; + + CheckBox m_aCbxRightAngledAxes; + + FixedText m_aFtXRotation; + MetricField m_aMFXRotation; + + FixedText m_aFtYRotation; + MetricField m_aMFYRotation; + + FixedText m_aFtZRotation; + MetricField m_aMFZRotation; + + CheckBox m_aCbxPerspective; + MetricField m_aMFPerspective; + + //to keep old values when switching to right angled axes + sal_Int64 m_nXRotation; + sal_Int64 m_nYRotation; + sal_Int64 m_nZRotation; + + bool m_bAngleChangePending; + bool m_bPerspectiveChangePending; + + ControllerLockHelper & m_rControllerLockHelper; +}; + +//............................................................................. +} //namespace chart +//............................................................................. + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |