TextUnderlineControl.cxx (a3586bee) TextUnderlineControl.cxx (6469a737)
1/**************************************************************
1/**************************************************************
2 *
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
19 *
20 *************************************************************/
21
20 *************************************************************/
21
22
23
22#include "precompiled_svx.hxx"
23#include "TextUnderlineControl.hxx"
24#include "TextPropertyPanel.hrc"
25#include <sfx2/sidebar/ResourceDefinitions.hrc>
26#include <svx/dialogs.hrc>
27#include <svx/dialmgr.hxx>
28#include <unotools/viewoptions.hxx>
29#include <editeng/kernitem.hxx>
30#include <sfx2/bindings.hxx>
31#include <sfx2/dispatch.hxx>
32#include <sfx2/sidebar/Theme.hxx>
33#include <editeng/udlnitem.hxx>
34
35namespace svx { namespace sidebar {
36
37TextUnderlineControl::TextUnderlineControl (
24#include "precompiled_svx.hxx"
25#include "TextUnderlineControl.hxx"
26#include "TextPropertyPanel.hrc"
27#include <sfx2/sidebar/ResourceDefinitions.hrc>
28#include <svx/dialogs.hrc>
29#include <svx/dialmgr.hxx>
30#include <unotools/viewoptions.hxx>
31#include <editeng/kernitem.hxx>
32#include <sfx2/bindings.hxx>
33#include <sfx2/dispatch.hxx>
34#include <sfx2/sidebar/Theme.hxx>
35#include <editeng/udlnitem.hxx>
36
37namespace svx { namespace sidebar {
38
39TextUnderlineControl::TextUnderlineControl (
38 Window* pParent,
39 svx::sidebar::TextPropertyPanel& rPanel,
40 SfxBindings* pBindings)
40 Window* pParent,
41 svx::sidebar::TextPropertyPanel& rPanel,
42 SfxBindings* pBindings)
41: svx::sidebar::PopupControl( pParent,SVX_RES(RID_POPUPPANEL_TEXTPAGE_UNDERLINE))
42, mrTextPropertyPanel(rPanel)
43, mpBindings(pBindings)
44, maVSUnderline( this, SVX_RES(VS_UNDERLINE))
45, maPBOptions (this, SVX_RES(PB_OPTIONS) )
46
47, maIMGSingle (SVX_RES(IMG_SINGLE))
48, maIMGDouble (SVX_RES(IMG_DOUBLE))

--- 31 unchanged lines hidden (view full) ---

80
81{
82 initial();
83 FreeResource();
84}
85
86void TextUnderlineControl::initial()
87{
43: svx::sidebar::PopupControl( pParent,SVX_RES(RID_POPUPPANEL_TEXTPAGE_UNDERLINE))
44, mrTextPropertyPanel(rPanel)
45, mpBindings(pBindings)
46, maVSUnderline( this, SVX_RES(VS_UNDERLINE))
47, maPBOptions (this, SVX_RES(PB_OPTIONS) )
48
49, maIMGSingle (SVX_RES(IMG_SINGLE))
50, maIMGDouble (SVX_RES(IMG_DOUBLE))

--- 31 unchanged lines hidden (view full) ---

82
83{
84 initial();
85 FreeResource();
86}
87
88void TextUnderlineControl::initial()
89{
88 maVSUnderline.SetColor(GetSettings().GetStyleSettings().GetHighContrastMode()?
89 GetSettings().GetStyleSettings().GetMenuColor():
90 sfx2::sidebar::Theme::GetColor( sfx2::sidebar::Theme::Paint_PanelBackground ));
91 maVSUnderline.SetBackground(GetSettings().GetStyleSettings().GetHighContrastMode()?
92 GetSettings().GetStyleSettings().GetMenuColor():
93 sfx2::sidebar::Theme::GetColor( sfx2::sidebar::Theme::Paint_PanelBackground ));
90 maVSUnderline.SetColor(GetSettings().GetStyleSettings().GetHighContrastMode()?
91 GetSettings().GetStyleSettings().GetMenuColor():
92 sfx2::sidebar::Theme::GetColor( sfx2::sidebar::Theme::Paint_PanelBackground ));
93 maVSUnderline.SetBackground(GetSettings().GetStyleSettings().GetHighContrastMode()?
94 GetSettings().GetStyleSettings().GetMenuColor():
95 sfx2::sidebar::Theme::GetColor( sfx2::sidebar::Theme::Paint_PanelBackground ));
94
96
95 Link aLink = LINK( this, TextUnderlineControl, PBClickHdl ) ;
96 maPBOptions.SetClickHdl(aLink);
97 Link aLink = LINK( this, TextUnderlineControl, PBClickHdl ) ;
98 maPBOptions.SetClickHdl(aLink);
97
99
98 maVSUnderline.SetStyle( maVSUnderline.GetStyle()| WB_3DLOOK | WB_NO_DIRECTSELECT );
100 maVSUnderline.SetStyle( maVSUnderline.GetStyle()| WB_3DLOOK | WB_NO_DIRECTSELECT );
99
101
100 // 'none' item
101 maVSUnderline.SetStyle( maVSUnderline.GetStyle()| WB_NONEFIELD | WB_MENUSTYLEVALUESET );
102 maVSUnderline.SetText( String(SVX_RES(STR_WITHOUT) ) );
102 // 'none' item
103 maVSUnderline.SetStyle( maVSUnderline.GetStyle()| WB_NONEFIELD | WB_MENUSTYLEVALUESET );
104 maVSUnderline.SetText( String(SVX_RES(STR_WITHOUT) ) );
103
105
104 maVSUnderline.InsertItem(1, maIMGSingle ,String(SVX_RES(STR_SINGLE)));
105 maVSUnderline.SetItemData(1, (void*)(sal_uInt64)UNDERLINE_SINGLE);
106 maVSUnderline.InsertItem(1, maIMGSingle ,String(SVX_RES(STR_SINGLE)));
107 maVSUnderline.SetItemData(1, (void*)(sal_uInt64)UNDERLINE_SINGLE);
106
108
107 maVSUnderline.InsertItem(2, maIMGDouble ,String(SVX_RES(STR_DOUBLE)));
108 maVSUnderline.SetItemData(2, (void*)(sal_uInt64)UNDERLINE_DOUBLE);
109 maVSUnderline.InsertItem(2, maIMGDouble ,String(SVX_RES(STR_DOUBLE)));
110 maVSUnderline.SetItemData(2, (void*)(sal_uInt64)UNDERLINE_DOUBLE);
109
111
110 maVSUnderline.InsertItem(3, maIMGBold, String(SVX_RES(STR_BOLD)));
111 maVSUnderline.SetItemData(3,(void*)(sal_uInt64)UNDERLINE_BOLD);
112 maVSUnderline.InsertItem(3, maIMGBold, String(SVX_RES(STR_BOLD)));
113 maVSUnderline.SetItemData(3,(void*)(sal_uInt64)UNDERLINE_BOLD);
112
114
113 maVSUnderline.InsertItem(4, maIMGDot, String(SVX_RES(STR_DOT)));
114 maVSUnderline.SetItemData(4,(void*)(sal_uInt64)UNDERLINE_DOTTED);
115 maVSUnderline.InsertItem(4, maIMGDot, String(SVX_RES(STR_DOT)));
116 maVSUnderline.SetItemData(4,(void*)(sal_uInt64)UNDERLINE_DOTTED);
115
117
116 maVSUnderline.InsertItem(5, maIMGDotBold, String(SVX_RES(STR_DOT_BOLD)));
117 maVSUnderline.SetItemData(5,(void*)(sal_uInt64)UNDERLINE_BOLDDOTTED);
118 maVSUnderline.InsertItem(5, maIMGDotBold, String(SVX_RES(STR_DOT_BOLD)));
119 maVSUnderline.SetItemData(5,(void*)(sal_uInt64)UNDERLINE_BOLDDOTTED);
118
120
119 maVSUnderline.InsertItem(6, maIMGDash, String(SVX_RES(STR_DASH)));
120 maVSUnderline.SetItemData(6,(void*)(sal_uInt64)UNDERLINE_DASH);
121 maVSUnderline.InsertItem(6, maIMGDash, String(SVX_RES(STR_DASH)));
122 maVSUnderline.SetItemData(6,(void*)(sal_uInt64)UNDERLINE_DASH);
121
123
122 maVSUnderline.InsertItem(7, maIMGDashLong,String(SVX_RES(STR_DASH_LONG)));
123 maVSUnderline.SetItemData(7,(void*)(sal_uInt64)UNDERLINE_LONGDASH);
124 maVSUnderline.InsertItem(7, maIMGDashLong,String(SVX_RES(STR_DASH_LONG)));
125 maVSUnderline.SetItemData(7,(void*)(sal_uInt64)UNDERLINE_LONGDASH);
124
126
125 maVSUnderline.InsertItem(8, maIMGDashDot, String(SVX_RES(STR_DASH_DOT)));
126 maVSUnderline.SetItemData(8,(void*)(sal_uInt64)UNDERLINE_DASHDOT);
127 maVSUnderline.InsertItem(8, maIMGDashDot, String(SVX_RES(STR_DASH_DOT)));
128 maVSUnderline.SetItemData(8,(void*)(sal_uInt64)UNDERLINE_DASHDOT);
127
129
128 maVSUnderline.InsertItem(9, maIMGDashDotDot, String(SVX_RES(STR_DASH_DOT_DOT)));
129 maVSUnderline.SetItemData(9,(void*)(sal_uInt64)UNDERLINE_DASHDOTDOT);
130 maVSUnderline.InsertItem(9, maIMGDashDotDot, String(SVX_RES(STR_DASH_DOT_DOT)));
131 maVSUnderline.SetItemData(9,(void*)(sal_uInt64)UNDERLINE_DASHDOTDOT);
130
132
131 maVSUnderline.InsertItem(10, maIMGWave, String(SVX_RES(STR_WAVE)));
132 maVSUnderline.SetItemData(10,(void*)(sal_uInt64)UNDERLINE_WAVE);
133 maVSUnderline.InsertItem(10, maIMGWave, String(SVX_RES(STR_WAVE)));
134 maVSUnderline.SetItemData(10,(void*)(sal_uInt64)UNDERLINE_WAVE);
133
135
134 maVSUnderline.SetColCount( 1 );
135 aLink = LINK( this, TextUnderlineControl, VSSelectHdl ) ;
136 maVSUnderline.SetSelectHdl(aLink);
136 maVSUnderline.SetColCount( 1 );
137 aLink = LINK( this, TextUnderlineControl, VSSelectHdl ) ;
138 maVSUnderline.SetSelectHdl(aLink);
137
139
138 maVSUnderline.StartSelection();
139 maVSUnderline.Show();
140 maVSUnderline.StartSelection();
141 maVSUnderline.Show();
140}
141
142
143void TextUnderlineControl::Rearrange(FontUnderline eLine)
144{
145 // high contrast
142}
143
144
145void TextUnderlineControl::Rearrange(FontUnderline eLine)
146{
147 // high contrast
146 maVSUnderline.SetItemImage(1, GetDisplayBackground().GetColor().IsDark()? maIMGSingleH :maIMGSingle);
147 maVSUnderline.SetItemImage(2, GetDisplayBackground().GetColor().IsDark()? maIMGDoubleH : maIMGDouble );
148 maVSUnderline.SetItemImage(1, GetDisplayBackground().GetColor().IsDark()? maIMGSingleH :maIMGSingle);
149 maVSUnderline.SetItemImage(2, GetDisplayBackground().GetColor().IsDark()? maIMGDoubleH : maIMGDouble );
148 maVSUnderline.SetItemImage(3, GetDisplayBackground().GetColor().IsDark()? maIMGBoldH : maIMGBold);
149 maVSUnderline.SetItemImage(4, GetDisplayBackground().GetColor().IsDark()? maIMGDotH : maIMGDot);
150 maVSUnderline.SetItemImage(5, GetDisplayBackground().GetColor().IsDark()? maIMGDotBoldH :maIMGDotBold);
150 maVSUnderline.SetItemImage(3, GetDisplayBackground().GetColor().IsDark()? maIMGBoldH : maIMGBold);
151 maVSUnderline.SetItemImage(4, GetDisplayBackground().GetColor().IsDark()? maIMGDotH : maIMGDot);
152 maVSUnderline.SetItemImage(5, GetDisplayBackground().GetColor().IsDark()? maIMGDotBoldH :maIMGDotBold);
151 maVSUnderline.SetItemImage(6, GetDisplayBackground().GetColor().IsDark()? maIMGDashH :maIMGDash);
153 maVSUnderline.SetItemImage(6, GetDisplayBackground().GetColor().IsDark()? maIMGDashH :maIMGDash);
152 maVSUnderline.SetItemImage(7, GetDisplayBackground().GetColor().IsDark()? maIMGDashLongH : maIMGDashLong);
154 maVSUnderline.SetItemImage(7, GetDisplayBackground().GetColor().IsDark()? maIMGDashLongH : maIMGDashLong);
153 maVSUnderline.SetItemImage(8, GetDisplayBackground().GetColor().IsDark()? maIMGDashDotH : maIMGDashDot);
155 maVSUnderline.SetItemImage(8, GetDisplayBackground().GetColor().IsDark()? maIMGDashDotH : maIMGDashDot);
154 maVSUnderline.SetItemImage(9, GetDisplayBackground().GetColor().IsDark()? maIMGDashDotDotH : maIMGDashDotDot);
155 maVSUnderline.SetItemImage(10, GetDisplayBackground().GetColor().IsDark()? maIMGWaveH : maIMGWave);
156
156 maVSUnderline.SetItemImage(9, GetDisplayBackground().GetColor().IsDark()? maIMGDashDotDotH : maIMGDashDotDot);
157 maVSUnderline.SetItemImage(10, GetDisplayBackground().GetColor().IsDark()? maIMGWaveH : maIMGWave);
158
157 switch(eLine)
158 {
159 case UNDERLINE_SINGLE:
160 maVSUnderline.SetItemImage(1, maIMGSingleSel);
161 maVSUnderline.SelectItem(1);
162 maVSUnderline.GrabFocus();
163 break;
164 case UNDERLINE_DOUBLE:
165 maVSUnderline.SetItemImage(2, maIMGDoubleSel);
166 maVSUnderline.SelectItem(2);
167 maVSUnderline.GrabFocus();
168 break;
169 case UNDERLINE_BOLD:
170 maVSUnderline.SetItemImage(3, maIMGBoldSel);
171 maVSUnderline.SelectItem(3);
172 maVSUnderline.GrabFocus();
173 break;
174 case UNDERLINE_DOTTED:
175 maVSUnderline.SetItemImage(4, maIMGDotSel);
176 maVSUnderline.SelectItem(4);
177 maVSUnderline.GrabFocus();
178 break;
179 case UNDERLINE_BOLDDOTTED:
180 maVSUnderline.SetItemImage(5, maIMGDotBoldSel);
181 maVSUnderline.SelectItem(5);
182 maVSUnderline.GrabFocus();
183 break;
184 case UNDERLINE_DASH:
185 maVSUnderline.SetItemImage(6, maIMGDashSel);
186 maVSUnderline.SelectItem(6);
187 maVSUnderline.GrabFocus();
188 break;
189 case UNDERLINE_LONGDASH:
190 maVSUnderline.SetItemImage(7, maIMGDashLongSel);
191 maVSUnderline.SelectItem(7);
192 maVSUnderline.GrabFocus();
193 break;
194 case UNDERLINE_DASHDOT:
195 maVSUnderline.SetItemImage(8, maIMGDashDotSel);
196 maVSUnderline.SelectItem(8);
197 maVSUnderline.GrabFocus();
198 break;
199 case UNDERLINE_DASHDOTDOT:
200 maVSUnderline.SetItemImage(9, maIMGDashDotDotSel);
201 maVSUnderline.SelectItem(9);
202 maVSUnderline.GrabFocus();
203 break;
204 case UNDERLINE_WAVE:
205 maVSUnderline.SetItemImage(10, maIMGWaveSel);
206 maVSUnderline.SelectItem(10);
207 maVSUnderline.GrabFocus();
208 break;
209 case UNDERLINE_NONE:
210 maVSUnderline.SelectItem(0);
211 maVSUnderline.GrabFocus();
212 break;
213 default:
214 maVSUnderline.SelectItem(1);
215 maVSUnderline.SetNoSelection();
216 maPBOptions.GrabFocus();
217 }
218 maVSUnderline.StartSelection();
159 switch(eLine)
160 {
161 case UNDERLINE_SINGLE:
162 maVSUnderline.SetItemImage(1, maIMGSingleSel);
163 maVSUnderline.SelectItem(1);
164 maVSUnderline.GrabFocus();
165 break;
166 case UNDERLINE_DOUBLE:
167 maVSUnderline.SetItemImage(2, maIMGDoubleSel);
168 maVSUnderline.SelectItem(2);
169 maVSUnderline.GrabFocus();
170 break;
171 case UNDERLINE_BOLD:
172 maVSUnderline.SetItemImage(3, maIMGBoldSel);
173 maVSUnderline.SelectItem(3);
174 maVSUnderline.GrabFocus();
175 break;
176 case UNDERLINE_DOTTED:
177 maVSUnderline.SetItemImage(4, maIMGDotSel);
178 maVSUnderline.SelectItem(4);
179 maVSUnderline.GrabFocus();
180 break;
181 case UNDERLINE_BOLDDOTTED:
182 maVSUnderline.SetItemImage(5, maIMGDotBoldSel);
183 maVSUnderline.SelectItem(5);
184 maVSUnderline.GrabFocus();
185 break;
186 case UNDERLINE_DASH:
187 maVSUnderline.SetItemImage(6, maIMGDashSel);
188 maVSUnderline.SelectItem(6);
189 maVSUnderline.GrabFocus();
190 break;
191 case UNDERLINE_LONGDASH:
192 maVSUnderline.SetItemImage(7, maIMGDashLongSel);
193 maVSUnderline.SelectItem(7);
194 maVSUnderline.GrabFocus();
195 break;
196 case UNDERLINE_DASHDOT:
197 maVSUnderline.SetItemImage(8, maIMGDashDotSel);
198 maVSUnderline.SelectItem(8);
199 maVSUnderline.GrabFocus();
200 break;
201 case UNDERLINE_DASHDOTDOT:
202 maVSUnderline.SetItemImage(9, maIMGDashDotDotSel);
203 maVSUnderline.SelectItem(9);
204 maVSUnderline.GrabFocus();
205 break;
206 case UNDERLINE_WAVE:
207 maVSUnderline.SetItemImage(10, maIMGWaveSel);
208 maVSUnderline.SelectItem(10);
209 maVSUnderline.GrabFocus();
210 break;
211 case UNDERLINE_NONE:
212 maVSUnderline.SelectItem(0);
213 maVSUnderline.GrabFocus();
214 break;
215 default:
216 maVSUnderline.SelectItem(1);
217 maVSUnderline.SetNoSelection();
218 maPBOptions.GrabFocus();
219 }
220 maVSUnderline.StartSelection();
219}
220
221
222IMPL_LINK(TextUnderlineControl, VSSelectHdl, void *, pControl)
223{
221}
222
223
224IMPL_LINK(TextUnderlineControl, VSSelectHdl, void *, pControl)
225{
224 if ( pControl == &maVSUnderline )
225 {
226 const sal_uInt16 iPos = maVSUnderline.GetSelectItemId();
227 const FontUnderline eUnderline = ( iPos == 0 )
228 ? UNDERLINE_NONE
229 : (FontUnderline)(sal_uInt64)maVSUnderline.GetItemData( iPos );
226 if ( pControl == &maVSUnderline )
227 {
228 const sal_uInt16 iPos = maVSUnderline.GetSelectItemId();
229 const FontUnderline eUnderline = ( iPos == 0 )
230 ? UNDERLINE_NONE
231 : (FontUnderline)(sal_uInt64)maVSUnderline.GetItemData( iPos );
230
232
231 SvxUnderlineItem aLineItem(eUnderline, SID_ATTR_CHAR_UNDERLINE);
233 SvxUnderlineItem aLineItem(eUnderline, SID_ATTR_CHAR_UNDERLINE);
232
234
233 aLineItem.SetColor(mrTextPropertyPanel.GetUnderlineColor());
234 mpBindings->GetDispatcher()->Execute(SID_ATTR_CHAR_UNDERLINE, SFX_CALLMODE_RECORD, &aLineItem, 0L);
235 aLineItem.SetColor(mrTextPropertyPanel.GetUnderlineColor());
236 mpBindings->GetDispatcher()->Execute(SID_ATTR_CHAR_UNDERLINE, SFX_CALLMODE_RECORD, &aLineItem, 0L);
235
237
236 mrTextPropertyPanel.SetUnderline(eUnderline);
238 mrTextPropertyPanel.SetUnderline(eUnderline);
237
239
238 mrTextPropertyPanel.EndUnderlinePopupMode();
239 }
240 return( 0L );
240 mrTextPropertyPanel.EndUnderlinePopupMode();
241 }
242 return( 0L );
241}
242
243IMPL_LINK(TextUnderlineControl, PBClickHdl, PushButton *, pPBtn)
244{
243}
244
245IMPL_LINK(TextUnderlineControl, PBClickHdl, PushButton *, pPBtn)
246{
245 if(pPBtn == &maPBOptions)
247 if(pPBtn == &maPBOptions)
246 {
247 if (mpBindings)
248 {
249 SfxDispatcher* pDisp = mpBindings->GetDispatcher();
250 pDisp->Execute( SID_CHAR_DLG_EFFECT, SFX_CALLMODE_ASYNCHRON );
251 }
252 mrTextPropertyPanel.EndUnderlinePopupMode();
253 }
254 return 0;
255}
256
257}}
248 {
249 if (mpBindings)
250 {
251 SfxDispatcher* pDisp = mpBindings->GetDispatcher();
252 pDisp->Execute( SID_CHAR_DLG_EFFECT, SFX_CALLMODE_ASYNCHRON );
253 }
254 mrTextPropertyPanel.EndUnderlinePopupMode();
255 }
256 return 0;
257}
258
259}}