langselectionmenucontroller.cxx (437a6594) langselectionmenucontroller.cxx (aac4b212)
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
22
23
24// MARKER(update_precomp.py): autogen include statement, do not remove
25#include "precompiled_framework.hxx"
26
27#include <uielement/langselectionmenucontroller.hxx>

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

99 IMPLEMENTATIONNAME_LANGUAGESELECTIONMENUCONTROLLER
100 )
101
102DEFINE_INIT_SERVICE ( LanguageSelectionMenuController, {} )
103
104LanguageSelectionMenuController::LanguageSelectionMenuController( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager ) :
105 svt::PopupMenuControllerBase( xServiceManager ),
106 m_bShowMenu( sal_True ),
20 *************************************************************/
21
22
23
24// MARKER(update_precomp.py): autogen include statement, do not remove
25#include "precompiled_framework.hxx"
26
27#include <uielement/langselectionmenucontroller.hxx>

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

99 IMPLEMENTATIONNAME_LANGUAGESELECTIONMENUCONTROLLER
100 )
101
102DEFINE_INIT_SERVICE ( LanguageSelectionMenuController, {} )
103
104LanguageSelectionMenuController::LanguageSelectionMenuController( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager ) :
105 svt::PopupMenuControllerBase( xServiceManager ),
106 m_bShowMenu( sal_True ),
107 m_aLangGuessHelper( xServiceManager )
107 m_aLangGuessHelper( xServiceManager )
108{
109}
110
111LanguageSelectionMenuController::~LanguageSelectionMenuController()
112{
113}
114
115// XEventListener
116void SAL_CALL LanguageSelectionMenuController::disposing( const EventObject& ) throw ( RuntimeException )
117{
108{
109}
110
111LanguageSelectionMenuController::~LanguageSelectionMenuController()
112{
113}
114
115// XEventListener
116void SAL_CALL LanguageSelectionMenuController::disposing( const EventObject& ) throw ( RuntimeException )
117{
118 Reference< css::awt::XMenuListener > xHolder(( OWeakObject *)this, UNO_QUERY );
118 Reference< css::awt::XMenuListener > xHolder(( OWeakObject *)this, UNO_QUERY );
119
119
120 osl::MutexGuard aLock( m_aMutex );
121 m_xFrame.clear();
122 m_xDispatch.clear();
123 m_xLanguageDispatch.clear();
124 m_xServiceManager.clear();
120 osl::MutexGuard aLock( m_aMutex );
121 m_xFrame.clear();
122 m_xDispatch.clear();
123 m_xLanguageDispatch.clear();
124 m_xServiceManager.clear();
125
125
126 if ( m_xPopupMenu.is() )
127 m_xPopupMenu->removeMenuListener( Reference< css::awt::XMenuListener >(( OWeakObject *)this, UNO_QUERY ));
128 m_xPopupMenu.clear();
126 if ( m_xPopupMenu.is() )
127 m_xPopupMenu->removeMenuListener( Reference< css::awt::XMenuListener >(( OWeakObject *)this, UNO_QUERY ));
128 m_xPopupMenu.clear();
129}
130
131// XStatusListener
132void SAL_CALL LanguageSelectionMenuController::statusChanged( const FeatureStateEvent& Event ) throw ( RuntimeException )
133{
129}
130
131// XStatusListener
132void SAL_CALL LanguageSelectionMenuController::statusChanged( const FeatureStateEvent& Event ) throw ( RuntimeException )
133{
134 vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
134 vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
135
135
136 if (rBHelper.bDisposed || rBHelper.bInDispose)
137 return;
136 if (rBHelper.bDisposed || rBHelper.bInDispose)
137 return;
138
139 m_bShowMenu = sal_True;
138
139 m_bShowMenu = sal_True;
140 m_nScriptType = LS_SCRIPT_LATIN | LS_SCRIPT_ASIAN | LS_SCRIPT_COMPLEX; //set the default value
140 m_nScriptType = LS_SCRIPT_LATIN | LS_SCRIPT_ASIAN | LS_SCRIPT_COMPLEX; // set the default value
141
141
142 OUString aStrValue;
143 Sequence< OUString > aSeq;
142 OUString aStrValue;
143 Sequence< OUString > aSeq;
144
144
145 if ( Event.State >>= aSeq )
146 {
147 if ( aSeq.getLength() == 4 )
148 {
149 // Retrieve all other values from the sequence and
150 // store it members!
151 m_aCurLang = aSeq[0];
152 m_nScriptType = static_cast< sal_Int16 >(aSeq[1].toInt32());
153 m_aKeyboardLang = aSeq[2];
154 m_aGuessedTextLang = aSeq[3];
155 }
156 }
157 else if ( !Event.State.hasValue() )
145 if ( Event.State >>= aSeq )
158 {
146 {
159 m_bShowMenu = sal_False; // no language -> no sub-menu entries -> disable menu
147 if ( aSeq.getLength() == 4 )
148 {
149 // Retrieve all other values from the sequence and
150 // store it members!
151 m_aCurLang = aSeq[0];
152 m_nScriptType = static_cast< sal_Int16 >(aSeq[1].toInt32());
153 m_aKeyboardLang = aSeq[2];
154 m_aGuessedTextLang = aSeq[3];
155 }
160 }
156 }
157 else if ( !Event.State.hasValue() )
158 {
159 m_bShowMenu = sal_False; // no language -> no sub-menu entries -> disable menu
160 }
161}
162
163// XMenuListener
164void LanguageSelectionMenuController::impl_select(const Reference< XDispatch >& _xDispatch,const ::com::sun::star::util::URL& aTargetURL)
165{
161}
162
163// XMenuListener
164void LanguageSelectionMenuController::impl_select(const Reference< XDispatch >& _xDispatch,const ::com::sun::star::util::URL& aTargetURL)
165{
166 Reference< XDispatch > xDispatch = _xDispatch;
166 Reference< XDispatch > xDispatch = _xDispatch;
167
168 if ( aTargetURL.Complete == m_aMenuCommandURL_Font )
167
168 if ( aTargetURL.Complete == m_aMenuCommandURL_Font )
169 { //open format/character dialog for current selection
169 { // open format/character dialog for current selection
170 xDispatch = m_xMenuDispatch_Font;
171 }
172 else if ( aTargetURL.Complete == m_aMenuCommandURL_Lang )
170 xDispatch = m_xMenuDispatch_Font;
171 }
172 else if ( aTargetURL.Complete == m_aMenuCommandURL_Lang )
173 { //open language tab-page in tools/options dialog
173 { // open language tab-page in tools/options dialog
174 xDispatch = m_xMenuDispatch_Lang;
175 }
176 else if ( aTargetURL.Complete == m_aMenuCommandURL_CharDlgForParagraph )
174 xDispatch = m_xMenuDispatch_Lang;
175 }
176 else if ( aTargetURL.Complete == m_aMenuCommandURL_CharDlgForParagraph )
177 { //open format/character dialog for current selection
177 { // open format/character dialog for current selection
178 xDispatch = m_xMenuDispatch_CharDlgForParagraph;
179 }
180
181 if ( !xDispatch.is() )
182 {
183 Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY );
184 if ( xDispatchProvider.is() )
185 xDispatch = xDispatchProvider->queryDispatch( aTargetURL, OUString(), 0 );
186 }
187
188 if ( xDispatch.is() )
178 xDispatch = m_xMenuDispatch_CharDlgForParagraph;
179 }
180
181 if ( !xDispatch.is() )
182 {
183 Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY );
184 if ( xDispatchProvider.is() )
185 xDispatch = xDispatchProvider->queryDispatch( aTargetURL, OUString(), 0 );
186 }
187
188 if ( xDispatch.is() )
189 {
190 Sequence<PropertyValue> aArgs;
191 if(::comphelper::UiEventsLogger::isEnabled()) //#i88653#
192 UiEventLogHelper( OUString::createFromAscii("LanguageSelectionMenuController")).log( m_xServiceManager, m_xFrame, aTargetURL, aArgs );
193 xDispatch->dispatch( aTargetURL, aArgs );
189 {
190 Sequence<PropertyValue> aArgs;
191 if(::comphelper::UiEventsLogger::isEnabled()) //#i88653#
192 UiEventLogHelper( OUString::createFromAscii("LanguageSelectionMenuController")).log( m_xServiceManager, m_xFrame, aTargetURL, aArgs );
193 xDispatch->dispatch( aTargetURL, aArgs );
194 }
195}
196
197// XPopupMenuController
198void LanguageSelectionMenuController::impl_setPopupMenu()
199{
194 }
195}
196
197// XPopupMenuController
198void LanguageSelectionMenuController::impl_setPopupMenu()
199{
200 Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY );
200 Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY );
201
201
202 com::sun::star::util::URL aTargetURL;
202 com::sun::star::util::URL aTargetURL;
203
203
204 // Register for language updates
205 aTargetURL.Complete = m_aLangStatusCommandURL;
206 m_xURLTransformer->parseStrict( aTargetURL );
207 m_xLanguageDispatch = xDispatchProvider->queryDispatch( aTargetURL, OUString(), 0 );
204 // Register for language updates
205 aTargetURL.Complete = m_aLangStatusCommandURL;
206 m_xURLTransformer->parseStrict( aTargetURL );
207 m_xLanguageDispatch = xDispatchProvider->queryDispatch( aTargetURL, OUString(), 0 );
208
209 // Register for setting languages and opening language dialog
208
209 // Register for setting languages and opening language dialog
210 aTargetURL.Complete = m_aMenuCommandURL_Lang;
211 m_xURLTransformer->parseStrict( aTargetURL );
212 m_xMenuDispatch_Lang = xDispatchProvider->queryDispatch( aTargetURL, OUString(), 0 );
210 aTargetURL.Complete = m_aMenuCommandURL_Lang;
211 m_xURLTransformer->parseStrict( aTargetURL );
212 m_xMenuDispatch_Lang = xDispatchProvider->queryDispatch( aTargetURL, OUString(), 0 );
213
214 // Register for opening character dialog
213
214 // Register for opening character dialog
215 aTargetURL.Complete = m_aMenuCommandURL_Font;
216 m_xURLTransformer->parseStrict( aTargetURL );
217 m_xMenuDispatch_Font = xDispatchProvider->queryDispatch( aTargetURL, OUString(), 0 );
215 aTargetURL.Complete = m_aMenuCommandURL_Font;
216 m_xURLTransformer->parseStrict( aTargetURL );
217 m_xMenuDispatch_Font = xDispatchProvider->queryDispatch( aTargetURL, OUString(), 0 );
218
219 // Register for opening character dialog with preselected paragraph
218
219 // Register for opening character dialog with preselected paragraph
220 aTargetURL.Complete = m_aMenuCommandURL_CharDlgForParagraph;
221 m_xURLTransformer->parseStrict( aTargetURL );
222 m_xMenuDispatch_CharDlgForParagraph = xDispatchProvider->queryDispatch( aTargetURL, OUString(), 0 );
220 aTargetURL.Complete = m_aMenuCommandURL_CharDlgForParagraph;
221 m_xURLTransformer->parseStrict( aTargetURL );
222 m_xMenuDispatch_CharDlgForParagraph = xDispatchProvider->queryDispatch( aTargetURL, OUString(), 0 );
223}
224
225void LanguageSelectionMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& rPopupMenu , const Mode eMode )
226{
223}
224
225void LanguageSelectionMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& rPopupMenu , const Mode eMode )
226{
227 VCLXPopupMenu* pVCLPopupMenu = (VCLXPopupMenu *)VCLXMenu::GetImplementation( rPopupMenu );
228 PopupMenu* pPopupMenu = 0;
227 VCLXPopupMenu* pVCLPopupMenu = (VCLXPopupMenu *)VCLXMenu::GetImplementation( rPopupMenu );
228 PopupMenu* pPopupMenu = 0;
229
229
230 vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
230 vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
231
231
232 resetPopupMenu( rPopupMenu );
232 resetPopupMenu( rPopupMenu );
233 if (!m_bShowMenu)
234 return;
235
233 if (!m_bShowMenu)
234 return;
235
236 if ( pVCLPopupMenu )
237 pPopupMenu = (PopupMenu *)pVCLPopupMenu->GetMenu();
236 if ( pVCLPopupMenu )
237 pPopupMenu = (PopupMenu *)pVCLPopupMenu->GetMenu();
238
239 String aCmd;
240 String aCmd_Dialog;
241 String aCmd_Language;
238
239 String aCmd;
240 String aCmd_Dialog;
241 String aCmd_Language;
242 if( eMode == MODE_SetLanguageSelectionMenu )
242 if( eMode == MODE_SetLanguageSelectionMenu )
243 {
243 {
244 aCmd_Dialog.AppendAscii(".uno:FontDialog?Language:string=*");
244 aCmd_Dialog.AppendAscii(".uno:FontDialog?Language:string=*");
245 aCmd_Language.AppendAscii(".uno:LanguageStatus?Language:string=Current_");
246 }
247 else if ( eMode == MODE_SetLanguageParagraphMenu )
248 {
249 aCmd_Dialog.AppendAscii(".uno:FontDialogForParagraph");
250 aCmd_Language.AppendAscii(".uno:LanguageStatus?Language:string=Paragraph_");
251 }
245 aCmd_Language.AppendAscii(".uno:LanguageStatus?Language:string=Current_");
246 }
247 else if ( eMode == MODE_SetLanguageParagraphMenu )
248 {
249 aCmd_Dialog.AppendAscii(".uno:FontDialogForParagraph");
250 aCmd_Language.AppendAscii(".uno:LanguageStatus?Language:string=Paragraph_");
251 }
252 else if ( eMode == MODE_SetLanguageAllTextMenu )
253 {
254 aCmd_Dialog.AppendAscii(".uno:LanguageStatus?Language:string=*");
255 aCmd_Language.AppendAscii(".uno:LanguageStatus?Language:string=Default_");
256 }
252 else if ( eMode == MODE_SetLanguageAllTextMenu )
253 {
254 aCmd_Dialog.AppendAscii(".uno:LanguageStatus?Language:string=*");
255 aCmd_Language.AppendAscii(".uno:LanguageStatus?Language:string=Default_");
256 }
257
257
258 SvtLanguageTable aLanguageTable;
258 SvtLanguageTable aLanguageTable;
259
259
260 // get languages to be displayed in the menu
261 std::set< OUString > aLangItems;
262 FillLangItems( aLangItems, aLanguageTable, m_xFrame, m_aLangGuessHelper,
263 m_nScriptType, m_aCurLang, m_aKeyboardLang, m_aGuessedTextLang );
260 // get languages to be displayed in the menu
261 std::set< OUString > aLangItems;
262 FillLangItems( aLangItems, aLanguageTable, m_xFrame, m_aLangGuessHelper,
263 m_nScriptType, m_aCurLang, m_aKeyboardLang, m_aGuessedTextLang );
264
264
265 //
266 // now add menu entries
267 // the different menues purpose will be handled by the different string
268 // for aCmd_Dialog and aCmd_Language
269 //
265 // now add menu entries
266 // the different menu purposes will be handled by the different string
267 // for aCmd_Dialog and aCmd_Language
270
268
271 sal_Int16 nItemId = 1; // in this control the item id is not important for executing the command
272 const OUString sAsterix(RTL_CONSTASCII_USTRINGPARAM("*")); // multiple languages in current selection
273 const OUString sEmpty; // 'no language found' from language guessing
274 std::map< sal_Int16, OUString > aLangMap;
275 std::set< OUString >::const_iterator it;
276 for (it = aLangItems.begin(); it != aLangItems.end(); ++it)
269 sal_Int16 nItemId = 1; // in this control the item id is not important for executing the command
270 const OUString sAsterix(RTL_CONSTASCII_USTRINGPARAM("*")); // multiple languages in current selection
271 const OUString sEmpty; // 'no language found' from language guessing
272 std::map< sal_Int16, OUString > aLangMap;
273 std::set< OUString >::const_iterator it;
274 for (it = aLangItems.begin(); it != aLangItems.end(); ++it)
277 {
275 {
278 const OUString & rStr( *it );
279 if (rStr != OUString( aLanguageTable.GetString( LANGUAGE_NONE ) )&&
280 rStr != sAsterix &&
281 rStr != sEmpty)
276 const OUString & rStr( *it );
277 if (rStr != OUString( aLanguageTable.GetString( LANGUAGE_NONE ) )&&
278 rStr != sAsterix &&
279 rStr != sEmpty)
282 {
283 pPopupMenu->InsertItem( nItemId, rStr );
284 aCmd = aCmd_Language;
285 aCmd += String( rStr );
286 pPopupMenu->SetItemCommand( nItemId, aCmd );
280 {
281 pPopupMenu->InsertItem( nItemId, rStr );
282 aCmd = aCmd_Language;
283 aCmd += String( rStr );
284 pPopupMenu->SetItemCommand( nItemId, aCmd );
287 if (rStr == m_aCurLang && eMode == MODE_SetLanguageSelectionMenu )
285 if (rStr == m_aCurLang && eMode == MODE_SetLanguageSelectionMenu )
288 {
289 //make a sign for the current language
290 pPopupMenu->CheckItem( nItemId, sal_True );
291 }
286 {
287 //make a sign for the current language
288 pPopupMenu->CheckItem( nItemId, sal_True );
289 }
292 aLangMap[ nItemId ] = rStr;
293 ++nItemId;
290 aLangMap[ nItemId ] = rStr;
291 ++nItemId;
294 }
295 }
296
292 }
293 }
294
297 // entry for LANGUAGE_NONE
295 // entry for LANGUAGE_NONE
298 ++nItemId;
299 pPopupMenu->InsertItem( nItemId, String(FwlResId( STR_LANGSTATUS_NONE )) );
300 aCmd=aCmd_Language;
301 aCmd.AppendAscii("LANGUAGE_NONE");
302 pPopupMenu->SetItemCommand( nItemId, aCmd );
303
296 ++nItemId;
297 pPopupMenu->InsertItem( nItemId, String(FwlResId( STR_LANGSTATUS_NONE )) );
298 aCmd=aCmd_Language;
299 aCmd.AppendAscii("LANGUAGE_NONE");
300 pPopupMenu->SetItemCommand( nItemId, aCmd );
301
304 // entry for 'Reset to default language'
302 // entry for 'Reset to default language'
305 ++nItemId;
306 pPopupMenu->InsertItem( nItemId, String(FwlResId( STR_RESET_TO_DEFAULT_LANGUAGE )) );
307 aCmd=aCmd_Language;
308 aCmd.AppendAscii("RESET_LANGUAGES");
309 pPopupMenu->SetItemCommand( nItemId, aCmd );
310
303 ++nItemId;
304 pPopupMenu->InsertItem( nItemId, String(FwlResId( STR_RESET_TO_DEFAULT_LANGUAGE )) );
305 aCmd=aCmd_Language;
306 aCmd.AppendAscii("RESET_LANGUAGES");
307 pPopupMenu->SetItemCommand( nItemId, aCmd );
308
311 // entry for opening the Format/Character dialog
309 // entry for opening the Format/Character dialog
312 ++nItemId;
313 pPopupMenu->InsertItem( nItemId, String(FwlResId( STR_LANGSTATUS_MORE )));
310 ++nItemId;
311 pPopupMenu->InsertItem( nItemId, String(FwlResId( STR_LANGSTATUS_MORE )));
314 pPopupMenu->SetItemCommand( nItemId, aCmd_Dialog );
312 pPopupMenu->SetItemCommand( nItemId, aCmd_Dialog );
315}
316
317
318void SAL_CALL LanguageSelectionMenuController::updatePopupMenu() throw ( ::com::sun::star::uno::RuntimeException )
319{
320 svt::PopupMenuControllerBase::updatePopupMenu();
321
313}
314
315
316void SAL_CALL LanguageSelectionMenuController::updatePopupMenu() throw ( ::com::sun::star::uno::RuntimeException )
317{
318 svt::PopupMenuControllerBase::updatePopupMenu();
319
322 // Force status update to get information about the current languages
323 osl::ClearableMutexGuard aLock( m_aMutex );
324 Reference< XDispatch > xDispatch( m_xLanguageDispatch );
325 com::sun::star::util::URL aTargetURL;
326 aTargetURL.Complete = m_aLangStatusCommandURL;
327 m_xURLTransformer->parseStrict( aTargetURL );
328 aLock.clear();
320 // Force status update to get information about the current languages
321 osl::ClearableMutexGuard aLock( m_aMutex );
322 Reference< XDispatch > xDispatch( m_xLanguageDispatch );
323 com::sun::star::util::URL aTargetURL;
324 aTargetURL.Complete = m_aLangStatusCommandURL;
325 m_xURLTransformer->parseStrict( aTargetURL );
326 aLock.clear();
329
327
330 if ( xDispatch.is() )
331 {
332 xDispatch->addStatusListener( SAL_STATIC_CAST( XStatusListener*, this ), aTargetURL );
333 xDispatch->removeStatusListener( SAL_STATIC_CAST( XStatusListener*, this ), aTargetURL );
334 }
328 if ( xDispatch.is() )
329 {
330 xDispatch->addStatusListener( SAL_STATIC_CAST( XStatusListener*, this ), aTargetURL );
331 xDispatch->removeStatusListener( SAL_STATIC_CAST( XStatusListener*, this ), aTargetURL );
332 }
335
333
336 // TODO: Fill menu with the information retrieved by the status update
334 // TODO: Fill menu with the information retrieved by the status update
337
335
338 if( m_aCommandURL.equalsAscii( ".uno:SetLanguageSelectionMenu" ))
336 if( m_aCommandURL.equalsAscii( ".uno:SetLanguageSelectionMenu" ))
339 {
337 {
340 fillPopupMenu(m_xPopupMenu, MODE_SetLanguageSelectionMenu );
338 fillPopupMenu(m_xPopupMenu, MODE_SetLanguageSelectionMenu );
341 }
342 else if( m_aCommandURL.equalsAscii( ".uno:SetLanguageParagraphMenu" ))
343 {
344 fillPopupMenu(m_xPopupMenu, MODE_SetLanguageParagraphMenu );
345 }
339 }
340 else if( m_aCommandURL.equalsAscii( ".uno:SetLanguageParagraphMenu" ))
341 {
342 fillPopupMenu(m_xPopupMenu, MODE_SetLanguageParagraphMenu );
343 }
346 else if( m_aCommandURL.equalsAscii( ".uno:SetLanguageAllTextMenu" ))
344 else if( m_aCommandURL.equalsAscii( ".uno:SetLanguageAllTextMenu" ))
347 {
345 {
348 fillPopupMenu(m_xPopupMenu, MODE_SetLanguageAllTextMenu );
346 fillPopupMenu(m_xPopupMenu, MODE_SetLanguageAllTextMenu );
349 }
350}
351
352// XInitialization
353void SAL_CALL LanguageSelectionMenuController::initialize( const Sequence< Any >& aArguments ) throw ( Exception, RuntimeException )
354{
347 }
348}
349
350// XInitialization
351void SAL_CALL LanguageSelectionMenuController::initialize( const Sequence< Any >& aArguments ) throw ( Exception, RuntimeException )
352{
355 osl::MutexGuard aLock( m_aMutex );
353 osl::MutexGuard aLock( m_aMutex );
356
354
357 sal_Bool bInitialized( m_bInitialized );
358 if ( !bInitialized )
359 {
355 sal_Bool bInitialized( m_bInitialized );
356 if ( !bInitialized )
357 {
360 svt::PopupMenuControllerBase::initialize(aArguments);
361
358 svt::PopupMenuControllerBase::initialize(aArguments);
359
362 if ( m_bInitialized )
363 {
360 if ( m_bInitialized )
361 {
364 m_aLangStatusCommandURL = OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:LanguageStatus" ));
365 m_aMenuCommandURL_Lang = m_aLangStatusCommandURL;
366 m_aMenuCommandURL_Font = OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FontDialog" ));
367 m_aMenuCommandURL_CharDlgForParagraph = OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FontDialogForParagraph" ));
362 m_aLangStatusCommandURL = OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:LanguageStatus" ));
363 m_aMenuCommandURL_Lang = m_aLangStatusCommandURL;
364 m_aMenuCommandURL_Font = OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FontDialog" ));
365 m_aMenuCommandURL_CharDlgForParagraph = OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FontDialogForParagraph" ));
368 }
369 }
366 }
367 }
370}
371
372}
373
368}
369
370}
371
372/* vim: set noet sw=4 ts=4: */