LibreOffice Module svx (master)  1
extrusioncontrols.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 #ifndef INCLUDED_SVX_SOURCE_TBXCTRLS_EXTRUSIONCONTROLS_HXX
20 #define INCLUDED_SVX_SOURCE_TBXCTRLS_EXTRUSIONCONTROLS_HXX
21 
22 #include <svtools/toolbarmenu.hxx>
24 #include <svtools/valueset.hxx>
25 #include <vcl/customweld.hxx>
26 
27 // enum to index light images
28 #define FROM_TOP_LEFT 0
29 #define FROM_TOP 1
30 #define FROM_TOP_RIGHT 2
31 #define FROM_LEFT 3
32 #define FROM_FRONT 4
33 #define FROM_RIGHT 5
34 #define FROM_BOTTOM_LEFT 6
35 #define FROM_BOTTOM 7
36 #define FROM_BOTTOM_RIGHT 8
37 
38 #define DIRECTION_NW 0
39 #define DIRECTION_N 1
40 #define DIRECTION_NE 2
41 #define DIRECTION_W 3
42 #define DIRECTION_NONE 4
43 #define DIRECTION_E 5
44 #define DIRECTION_SW 6
45 #define DIRECTION_S 7
46 #define DIRECTION_SE 8
47 
48 namespace svx
49 {
51 {
52 public:
54  virtual void GrabFocus() override;
55  virtual ~ExtrusionDirectionWindow() override;
56 
57  virtual void statusChanged( const css::frame::FeatureStateEvent& Event ) override;
58 
59 private:
61  std::unique_ptr<ValueSet> mxDirectionSet;
62  std::unique_ptr<weld::CustomWeld> mxDirectionSetWin;
63  std::unique_ptr<weld::RadioButton> mxPerspective;
64  std::unique_ptr<weld::RadioButton> mxParallel;
65 
67 
68  DECL_LINK( SelectToolbarMenuHdl, weld::Button&, void );
69  DECL_LINK( SelectValueSetHdl, ValueSet*, void );
70 
71  void implSetDirection( sal_Int32 nSkew, bool bEnabled );
72  void implSetProjection( sal_Int32 nProjection, bool bEnabled );
73 
74 };
75 
77 {
78 public:
79  explicit ExtrusionDirectionControl( const css::uno::Reference< css::uno::XComponentContext >& rxContext );
80 
81  virtual std::unique_ptr<WeldToolbarPopup> weldPopupWindow() override;
82  virtual VclPtr<vcl::Window> createVclPopupWindow( vcl::Window* pParent ) override;
83 
84  // XInitialization
85  virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) override;
86 
87  // XServiceInfo
88  virtual OUString SAL_CALL getImplementationName() override;
89  virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
90 };
91 
93 {
94 private:
96  std::unique_ptr<weld::RadioButton> mxDepth0;
97  std::unique_ptr<weld::RadioButton> mxDepth1;
98  std::unique_ptr<weld::RadioButton> mxDepth2;
99  std::unique_ptr<weld::RadioButton> mxDepth3;
100  std::unique_ptr<weld::RadioButton> mxDepth4;
101  std::unique_ptr<weld::RadioButton> mxInfinity;
102  std::unique_ptr<weld::RadioButton> mxCustom;
103 
105  double mfDepth;
107 
108  DECL_LINK( SelectHdl, weld::ToggleButton&, void );
109  DECL_LINK( ClickHdl, weld::Button&, void );
110 
111  void implFillStrings( FieldUnit eUnit );
112  void implSetDepth( double fDepth );
113 
114 public:
116  virtual void GrabFocus() override;
117 
118  virtual void statusChanged( const css::frame::FeatureStateEvent& Event ) override;
119 };
120 
122 {
123 public:
124  explicit ExtrusionDepthController( const css::uno::Reference< css::uno::XComponentContext >& rxContext );
125 
126  virtual std::unique_ptr<WeldToolbarPopup> weldPopupWindow() override;
127  virtual VclPtr<vcl::Window> createVclPopupWindow( vcl::Window* pParent ) override;
128 
129  // XInitialization
130  virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) override;
131 
132  // XServiceInfo
133  virtual OUString SAL_CALL getImplementationName() override;
134  virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
135 };
136 
138 {
139 private:
141  std::unique_ptr<ValueSet> mxLightingSet;
142  std::unique_ptr<weld::CustomWeld> mxLightingSetWin;
143  std::unique_ptr<weld::RadioButton> mxBright;
144  std::unique_ptr<weld::RadioButton> mxNormal;
145  std::unique_ptr<weld::RadioButton> mxDim;
146 
150 
151  void implSetIntensity( int nLevel, bool bEnabled );
152  void implSetDirection( int nDirection, bool bEnabled );
153 
154  DECL_LINK( SelectToolbarMenuHdl, weld::Button&, void );
155  DECL_LINK( SelectValueSetHdl, ValueSet*, void );
156 public:
158  virtual void GrabFocus() override;
159  virtual ~ExtrusionLightingWindow() override;
160 
161  virtual void statusChanged( const css::frame::FeatureStateEvent& Event ) override;
162 };
163 
165 {
166 public:
167  explicit ExtrusionLightingControl( const css::uno::Reference< css::uno::XComponentContext >& rxContext );
168 
169  virtual std::unique_ptr<WeldToolbarPopup> weldPopupWindow() override;
170  virtual VclPtr<vcl::Window> createVclPopupWindow( vcl::Window* pParent ) override;
171 
172  // XInitialization
173  virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) override;
174 
175  // XServiceInfo
176  virtual OUString SAL_CALL getImplementationName() override;
177  virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
178 };
179 
181 {
182 private:
184  std::unique_ptr<weld::RadioButton> mxWireFrame;
185  std::unique_ptr<weld::RadioButton> mxMatt;
186  std::unique_ptr<weld::RadioButton> mxPlastic;
187  std::unique_ptr<weld::RadioButton> mxMetal;
188 
189  DECL_LINK( SelectHdl, weld::Button&, void );
190 
191  void implSetSurface( int nSurface, bool bEnabled );
192 
193 public:
195  virtual void GrabFocus() override;
196 
197  virtual void statusChanged( const css::frame::FeatureStateEvent& Event ) override;
198 };
199 
200 
202 {
203 public:
204  explicit ExtrusionSurfaceControl( const css::uno::Reference< css::uno::XComponentContext >& rxContext );
205 
206  virtual std::unique_ptr<WeldToolbarPopup> weldPopupWindow() override;
207  virtual VclPtr<vcl::Window> createVclPopupWindow( vcl::Window* pParent ) override;
208 
209  // XInitialization
210  virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) override;
211 
212  // XServiceInfo
213  virtual OUString SAL_CALL getImplementationName() override;
214  virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
215 };
216 
217 }
218 #endif
219 
220 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
std::unique_ptr< weld::RadioButton > mxCustom
virtual OUString SAL_CALL getImplementationName() override
virtual void statusChanged(const css::frame::FeatureStateEvent &Event) override
FieldUnit
virtual void SAL_CALL initialize(const css::uno::Sequence< css::uno::Any > &aArguments) override
DECL_LINK(SelectHdl, weld::Button &, void)
virtual void statusChanged(const css::frame::FeatureStateEvent &Event) override
virtual ~ExtrusionLightingWindow() override
void implSetIntensity(int nLevel, bool bEnabled)
virtual void SAL_CALL initialize(const css::uno::Sequence< css::uno::Any > &aArguments) override
DECL_LINK(SelectToolbarMenuHdl, weld::Button &, void)
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
ExtrusionLightingControl(const css::uno::Reference< css::uno::XComponentContext > &rxContext)
rtl::Reference< svt::PopupWindowController > mxControl
std::unique_ptr< weld::RadioButton > mxPlastic
std::unique_ptr< weld::RadioButton > mxWireFrame
virtual std::unique_ptr< WeldToolbarPopup > weldPopupWindow() override
virtual void statusChanged(const css::frame::FeatureStateEvent &Event) override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
rtl::Reference< svt::PopupWindowController > mxControl
virtual VclPtr< vcl::Window > createVclPopupWindow(vcl::Window *pParent) override
std::unique_ptr< weld::RadioButton > mxMatt
std::unique_ptr< ValueSet > mxDirectionSet
virtual void SAL_CALL initialize(const css::uno::Sequence< css::uno::Any > &aArguments) override
Sequence< PropertyValue > aArguments
virtual void GrabFocus() override
virtual void GrabFocus() override
virtual OUString SAL_CALL getImplementationName() override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual std::unique_ptr< WeldToolbarPopup > weldPopupWindow() override
std::unique_ptr< weld::RadioButton > mxDepth1
std::unique_ptr< weld::RadioButton > mxDepth2
ExtrusionSurfaceControl(const css::uno::Reference< css::uno::XComponentContext > &rxContext)
virtual void GrabFocus() override
virtual OUString SAL_CALL getImplementationName() override
virtual void statusChanged(const css::frame::FeatureStateEvent &Event) override
std::unique_ptr< weld::RadioButton > mxDepth3
std::unique_ptr< weld::RadioButton > mxPerspective
std::unique_ptr< weld::RadioButton > mxParallel
ExtrusionLightingWindow(svt::PopupWindowController *pControl, weld::Widget *pParentWindow)
virtual ~ExtrusionDirectionWindow() override
virtual VclPtr< vcl::Window > createVclPopupWindow(vcl::Window *pParent) override
std::unique_ptr< weld::RadioButton > mxDepth0
std::unique_ptr< weld::RadioButton > mxDim
ExtrusionDirectionWindow(svt::PopupWindowController *pControl, weld::Widget *pParentWindow)
std::unique_ptr< weld::RadioButton > mxBright
virtual std::unique_ptr< WeldToolbarPopup > weldPopupWindow() override
virtual void GrabFocus() override
DECL_LINK(SelectToolbarMenuHdl, weld::Button &, void)
ExtrusionDepthWindow(svt::PopupWindowController *pControl, weld::Widget *pParentWindow)
rtl::Reference< svt::PopupWindowController > mxControl
std::unique_ptr< weld::RadioButton > mxNormal
virtual VclPtr< vcl::Window > createVclPopupWindow(vcl::Window *pParent) override
ExtrusionDepthController(const css::uno::Reference< css::uno::XComponentContext > &rxContext)
ExtrusionSurfaceWindow(svt::PopupWindowController *pControl, weld::Widget *pParentWindow)
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
rtl::Reference< svt::PopupWindowController > mxControl
std::unique_ptr< weld::RadioButton > mxInfinity
void implSetProjection(sal_Int32 nProjection, bool bEnabled)
std::unique_ptr< ValueSet > mxLightingSet
std::unique_ptr< weld::RadioButton > mxDepth4
std::unique_ptr< weld::CustomWeld > mxDirectionSetWin
virtual void SAL_CALL initialize(const css::uno::Sequence< css::uno::Any > &aArguments) override
virtual OUString SAL_CALL getImplementationName() override
std::unique_ptr< weld::RadioButton > mxMetal
ExtrusionDirectionControl(const css::uno::Reference< css::uno::XComponentContext > &rxContext)
std::unique_ptr< weld::CustomWeld > mxLightingSetWin
void implSetDirection(int nDirection, bool bEnabled)
void implSetSurface(int nSurface, bool bEnabled)
void implFillStrings(FieldUnit eUnit)
virtual VclPtr< vcl::Window > createVclPopupWindow(vcl::Window *pParent) override
DECL_LINK(SelectHdl, weld::ToggleButton &, void)
void implSetDepth(double fDepth)
void implSetDirection(sal_Int32 nSkew, bool bEnabled)
virtual std::unique_ptr< WeldToolbarPopup > weldPopupWindow() override