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::Toggleable&, 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::Toggleable&, void );
109 
110  void implFillStrings( FieldUnit eUnit );
111  void implSetDepth( double fDepth );
112 
113 public:
115  virtual void GrabFocus() override;
116 
117  virtual void statusChanged( const css::frame::FeatureStateEvent& Event ) override;
118 };
119 
121 {
122 public:
123  explicit ExtrusionDepthController( const css::uno::Reference< css::uno::XComponentContext >& rxContext );
124 
125  virtual std::unique_ptr<WeldToolbarPopup> weldPopupWindow() override;
126  virtual VclPtr<vcl::Window> createVclPopupWindow( vcl::Window* pParent ) override;
127 
128  // XInitialization
129  virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) override;
130 
131  // XServiceInfo
132  virtual OUString SAL_CALL getImplementationName() override;
133  virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
134 };
135 
137 {
138 private:
140  std::unique_ptr<ValueSet> mxLightingSet;
141  std::unique_ptr<weld::CustomWeld> mxLightingSetWin;
142  std::unique_ptr<weld::RadioButton> mxBright;
143  std::unique_ptr<weld::RadioButton> mxNormal;
144  std::unique_ptr<weld::RadioButton> mxDim;
145 
149 
150  void implSetIntensity( int nLevel, bool bEnabled );
151  void implSetDirection( int nDirection, bool bEnabled );
152 
153  DECL_LINK( SelectToolbarMenuHdl, weld::Toggleable&, void );
154  DECL_LINK( SelectValueSetHdl, ValueSet*, void );
155 public:
157  virtual void GrabFocus() override;
158  virtual ~ExtrusionLightingWindow() override;
159 
160  virtual void statusChanged( const css::frame::FeatureStateEvent& Event ) override;
161 };
162 
164 {
165 public:
166  explicit ExtrusionLightingControl( const css::uno::Reference< css::uno::XComponentContext >& rxContext );
167 
168  virtual std::unique_ptr<WeldToolbarPopup> weldPopupWindow() override;
169  virtual VclPtr<vcl::Window> createVclPopupWindow( vcl::Window* pParent ) override;
170 
171  // XInitialization
172  virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) override;
173 
174  // XServiceInfo
175  virtual OUString SAL_CALL getImplementationName() override;
176  virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
177 };
178 
180 {
181 private:
183  std::unique_ptr<weld::RadioButton> mxWireFrame;
184  std::unique_ptr<weld::RadioButton> mxMatt;
185  std::unique_ptr<weld::RadioButton> mxPlastic;
186  std::unique_ptr<weld::RadioButton> mxMetal;
187 
188  DECL_LINK( SelectHdl, weld::Toggleable&, void );
189 
190  void implSetSurface( int nSurface, bool bEnabled );
191 
192 public:
194  virtual void GrabFocus() override;
195 
196  virtual void statusChanged( const css::frame::FeatureStateEvent& Event ) override;
197 };
198 
199 
201 {
202 public:
203  explicit ExtrusionSurfaceControl( const css::uno::Reference< css::uno::XComponentContext >& rxContext );
204 
205  virtual std::unique_ptr<WeldToolbarPopup> weldPopupWindow() override;
206  virtual VclPtr<vcl::Window> createVclPopupWindow( vcl::Window* pParent ) override;
207 
208  // XInitialization
209  virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) override;
210 
211  // XServiceInfo
212  virtual OUString SAL_CALL getImplementationName() override;
213  virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
214 };
215 
216 }
217 #endif
218 
219 /* 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(SelectToolbarMenuHdl, weld::Toggleable &, void)
virtual void statusChanged(const css::frame::FeatureStateEvent &Event) override
DECL_LINK(SelectHdl, weld::Toggleable &, void)
virtual ~ExtrusionLightingWindow() override
void implSetIntensity(int nLevel, bool bEnabled)
virtual void SAL_CALL initialize(const css::uno::Sequence< css::uno::Any > &aArguments) override
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
DECL_LINK(SelectHdl, weld::Toggleable &, void)
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::Toggleable &, 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
void implSetDepth(double fDepth)
void implSetDirection(sal_Int32 nSkew, bool bEnabled)
virtual std::unique_ptr< WeldToolbarPopup > weldPopupWindow() override