summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
Diffstat (limited to 'sw')
-rw-r--r--sw/AllLangResTarget_sw.mk1
-rw-r--r--sw/Library_sw.mk1
-rw-r--r--sw/inc/crsrsh.hxx8
-rw-r--r--sw/inc/rcid.hrc5
-rw-r--r--sw/inc/view.hxx2
-rw-r--r--sw/source/core/crsr/crsrsh.cxx11
-rw-r--r--sw/source/uibase/inc/stmenu.hxx72
-rw-r--r--sw/source/uibase/smartmenu/stmenu.cxx167
-rw-r--r--sw/source/uibase/smartmenu/stmenu.hrc33
-rw-r--r--sw/source/uibase/smartmenu/stmenu.src37
-rw-r--r--sw/source/uibase/uiview/view.cxx2
-rw-r--r--sw/source/uibase/uiview/viewling.cxx42
12 files changed, 31 insertions, 350 deletions
diff --git a/sw/AllLangResTarget_sw.mk b/sw/AllLangResTarget_sw.mk
index c95c16a2241f..ef8d7ea14836 100644
--- a/sw/AllLangResTarget_sw.mk
+++ b/sw/AllLangResTarget_sw.mk
@@ -75,7 +75,6 @@ $(eval $(call gb_SrsTarget_add_files,sw/res,\
sw/source/uibase/misc/redlndlg.src \
sw/source/uibase/ribbar/inputwin.src \
sw/source/uibase/ribbar/workctrl.src \
- sw/source/uibase/smartmenu/stmenu.src \
sw/source/uibase/uiview/view.src \
sw/source/uibase/utlui/attrdesc.src \
sw/source/uibase/utlui/navipi.src \
diff --git a/sw/Library_sw.mk b/sw/Library_sw.mk
index b4af6e57c547..789a777746c6 100644
--- a/sw/Library_sw.mk
+++ b/sw/Library_sw.mk
@@ -684,7 +684,6 @@ $(eval $(call gb_Library_add_exception_objects,sw,\
sw/source/uibase/sidebar/WrapPropertyPanel \
sw/source/uibase/sidebar/ThemePanel \
sw/source/uibase/sidebar/SwPanelFactory \
- sw/source/uibase/smartmenu/stmenu \
sw/source/uibase/table/chartins \
sw/source/uibase/table/swtablerep \
sw/source/uibase/table/tablemgr \
diff --git a/sw/inc/crsrsh.hxx b/sw/inc/crsrsh.hxx
index d53a61064cc0..13d8c0c9b219 100644
--- a/sw/inc/crsrsh.hxx
+++ b/sw/inc/crsrsh.hxx
@@ -768,12 +768,8 @@ public:
const SwPostItField* GetPostItFieldAtCursor() const;
- // get smart tags at point position
- void GetSmartTagTerm( const Point& rPt,
- SwRect& rSelectRect,
- css::uno::Sequence< OUString >& rSmartTagTypes,
- css::uno::Sequence< css::uno::Reference< css::container::XStringKeyMap > >& rStringKeyMaps,
- css::uno::Reference<css::text::XTextRange>& rRange );
+ // get smart tags rectangle for the given point
+ void GetSmartTagRect( const Point& rPt, SwRect& rSelectRect );
// get smart tags at current cursor position
void GetSmartTagTerm( css::uno::Sequence< OUString >& rSmartTagTypes,
diff --git a/sw/inc/rcid.hrc b/sw/inc/rcid.hrc
index 0af476262780..f80958807599 100644
--- a/sw/inc/rcid.hrc
+++ b/sw/inc/rcid.hrc
@@ -235,10 +235,7 @@
#define RC_ACCESS_END (RC_ACCESS + 99)
// free: RC_UNDO to (RC_UNDO + 199)
-
-// Smarttags
-#define RC_SMARTTAG_BEGIN RC_SMARTTAG
-// RC_SMARTTAG_END (RC_SMARTTAG + 99)
+// free: RC_SMARTTAG to (RC_SMARTTAG + 99)
// unocore
#define RC_UNOCORE_BEGIN RC_UNOCORE
diff --git a/sw/inc/view.hxx b/sw/inc/view.hxx
index a757d79a0234..bfb7b3d4bcd6 100644
--- a/sw/inc/view.hxx
+++ b/sw/inc/view.hxx
@@ -428,7 +428,7 @@ public:
void SpellError(LanguageType eLang);
bool ExecSpellPopup( const Point& rPt );
void ExecFieldPopup( const Point& rPt, sw::mark::IFieldmark *fieldBM );
- bool ExecSmartTagPopup( const Point& rPt );
+ void ExecSmartTagPopup( const Point& rPt );
DECL_LINK_TYPED( OnlineSpellCallback, SpellCallbackInfo&, void );
bool ExecDrwTextSpellPopup(const Point& rPt);
diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx
index a3375beceeb0..22afa5177178 100644
--- a/sw/source/core/crsr/crsrsh.cxx
+++ b/sw/source/core/crsr/crsrsh.cxx
@@ -3460,14 +3460,8 @@ void SwCursorShell::GetSmartTagTerm( uno::Sequence< OUString >& rSmartTagTypes,
}
// see also SwEditShell::GetCorrection( const Point* pPt, SwRect& rSelectRect )
-void SwCursorShell::GetSmartTagTerm( const Point& rPt, SwRect& rSelectRect,
- uno::Sequence< OUString >& rSmartTagTypes,
- uno::Sequence< uno::Reference< container::XStringKeyMap > >& rStringKeyMaps,
- uno::Reference<text::XTextRange>& rRange )
+void SwCursorShell::GetSmartTagRect( const Point& rPt, SwRect& rSelectRect )
{
- if ( !SwSmartTagMgr::Get().IsSmartTagsEnabled() )
- return;
-
SwPaM* pCursor = GetCursor();
SwPosition aPos( *pCursor->GetPoint() );
Point aPt( rPt );
@@ -3496,9 +3490,6 @@ void SwCursorShell::GetSmartTagTerm( const Point& rPt, SwRect& rSelectRect,
nCurrent = eTmpState.m_pSpecialPos->nCharOfst;
}
- lcl_FillRecognizerData( rSmartTagTypes, rStringKeyMaps, *pSmartTagList, nCurrent );
- lcl_FillTextRange( rRange, *pNode, nBegin, nLen );
-
// get smarttag word
OUString aText( pNode->GetText().copy(nBegin, nLen) );
diff --git a/sw/source/uibase/inc/stmenu.hxx b/sw/source/uibase/inc/stmenu.hxx
deleted file mode 100644
index 6c6073895ee0..000000000000
--- a/sw/source/uibase/inc/stmenu.hxx
+++ /dev/null
@@ -1,72 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef INCLUDED_SW_SOURCE_UIBASE_INC_STMENU_HXX
-#define INCLUDED_SW_SOURCE_UIBASE_INC_STMENU_HXX
-
-#include <vcl/menu.hxx>
-
-#include <vector>
-#include <com/sun/star/smarttags/XSmartTagAction.hpp>
-
-#include <com/sun/star/container/XStringKeyMap.hpp>
-#include <com/sun/star/text/XTextRange.hpp>
-
-class SwView;
-
-/** Class: SwSmartTagPopup
-
- This class contains the implementation of the smarttag popup
- menu that is opened if a user clicks on an underlined word.
-
- The menu is built in the constructor and the actions for each
- menu entry are invoked in the execute-method.
-*/
-
-class SwSmartTagPopup : public PopupMenu
-{
- SwView* mpSwView;
- css::uno::Reference< css::text::XTextRange > mxTextRange;
-
- struct InvokeAction
- {
- css::uno::Reference< css::smarttags::XSmartTagAction > mxAction;
- css::uno::Reference< css::container::XStringKeyMap > mxSmartTagProperties;
- sal_uInt32 mnActionID;
- InvokeAction( css::uno::Reference< css::smarttags::XSmartTagAction > xAction,
- css::uno::Reference< css::container::XStringKeyMap > xSmartTagProperties,
- sal_uInt32 nActionID ) : mxAction( xAction ), mxSmartTagProperties( xSmartTagProperties ), mnActionID( nActionID ) {}
- };
-
- std::vector< InvokeAction > maInvokeActions;
-
- using PopupMenu::Execute;
-
-public:
- SwSmartTagPopup( SwView* _pSwView,
- css::uno::Sequence< OUString >& rSmartTagTypes,
- css::uno::Sequence< css::uno::Reference< css::container::XStringKeyMap > >& rStringKeyMaps,
- css::uno::Reference< css::text::XTextRange > xTextRange );
-
- sal_uInt16 Execute( const Rectangle& rPopupPos, vcl::Window* pWin );
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/uibase/smartmenu/stmenu.cxx b/sw/source/uibase/smartmenu/stmenu.cxx
deleted file mode 100644
index 42751cfc507d..000000000000
--- a/sw/source/uibase/smartmenu/stmenu.cxx
+++ /dev/null
@@ -1,167 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include <stmenu.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <svl/eitem.hxx>
-#include <sfx2/dispatch.hxx>
-
-#include <SwSmartTagMgr.hxx>
-
-#include <stmenu.hrc>
-#include <view.hxx>
-#include <breakit.hxx>
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-
-SwSmartTagPopup::SwSmartTagPopup( SwView* pSwView,
- Sequence< OUString >& rSmartTagTypes,
- Sequence< Reference< container::XStringKeyMap > >& rStringKeyMaps,
- Reference< text::XTextRange > xTextRange ) :
- PopupMenu( SW_RES(MN_SMARTTAG_POPUP) ),
- mpSwView ( pSwView ),
- mxTextRange( xTextRange )
-{
- Reference <frame::XController> xController = mpSwView->GetController();
- const lang::Locale aLocale( SW_BREAKITER()->GetLocale( GetAppLanguageTag() ) );
-
- sal_uInt16 nMenuPos = 0;
- sal_uInt16 nMenuId = 1;
- sal_uInt16 nSubMenuId = MN_ST_INSERT_START;
-
- const OUString aRangeText = mxTextRange->getString();
-
- SmartTagMgr& rSmartTagMgr = SwSmartTagMgr::Get();
- const OUString aApplicationName( rSmartTagMgr.GetApplicationName() );
-
- Sequence < Sequence< Reference< smarttags::XSmartTagAction > > > aActionComponentsSequence;
- Sequence < Sequence< sal_Int32 > > aActionIndicesSequence;
-
- rSmartTagMgr.GetActionSequences( rSmartTagTypes,
- aActionComponentsSequence,
- aActionIndicesSequence );
-
- InsertSeparator(OString(), 0);
-
- for ( sal_Int32 j = 0; j < aActionComponentsSequence.getLength(); ++j )
- {
- Reference< container::XStringKeyMap > xSmartTagProperties = rStringKeyMaps[j];
-
- // Get all actions references associated with the current smart tag type:
- const Sequence< Reference< smarttags::XSmartTagAction > >& rActionComponents = aActionComponentsSequence[j];
- const Sequence< sal_Int32 >& rActionIndices = aActionIndicesSequence[j];
-
- if ( 0 == rActionComponents.getLength() || 0 == rActionIndices.getLength() )
- continue;
-
- // Ask first entry for the smart tag type caption:
- Reference< smarttags::XSmartTagAction > xAction = rActionComponents[0];
-
- if ( !xAction.is() )
- continue;
-
- const sal_Int32 nSmartTagIndex = rActionIndices[0];
- const OUString aSmartTagType = xAction->getSmartTagName( nSmartTagIndex );
- const OUString aSmartTagCaption = xAction->getSmartTagCaption( nSmartTagIndex, aLocale );
-
- // no sub-menus if there's only one smart tag type listed:
- PopupMenu* pSbMenu = this;
- if ( 1 < aActionComponentsSequence.getLength() )
- {
- InsertItem(nMenuId, aSmartTagCaption, MenuItemBits::NONE, OString(), nMenuPos++);
- pSbMenu = new PopupMenu;
- SetPopupMenu( nMenuId++, pSbMenu );
- }
-
- // sub-menu starts with smart tag caption and separator
- const OUString aSmartTagCaption2 = aSmartTagCaption + ": " + aRangeText;
- sal_uInt16 nSubMenuPos = 0;
- pSbMenu->InsertItem(nMenuId++, aSmartTagCaption2, MenuItemBits::NOSELECT, OString(), nSubMenuPos++);
- pSbMenu->InsertSeparator(OString(), nSubMenuPos++);
-
- // Add subitem for every action reference for the current smart tag type:
- for ( sal_Int32 i = 0; i < rActionComponents.getLength(); ++i )
- {
- xAction = rActionComponents[i];
-
- for ( sal_Int32 k = 0; k < xAction->getActionCount( aSmartTagType, xController, xSmartTagProperties ); ++k )
- {
- const sal_uInt32 nActionID = xAction->getActionID( aSmartTagType, k, xController );
- OUString aActionCaption = xAction->getActionCaptionFromID( nActionID,
- aApplicationName,
- aLocale,
- xSmartTagProperties,
- aRangeText,
- OUString(),
- xController,
- mxTextRange );
-
- pSbMenu->InsertItem(nSubMenuId++, aActionCaption, MenuItemBits::NONE, OString(), nSubMenuPos++);
- InvokeAction aEntry( xAction, xSmartTagProperties, nActionID );
- maInvokeActions.push_back( aEntry );
- }
- }
- }
-}
-
-/** Function: Execute
-
- executes actions by calling the invoke function of the appropriate
- smarttag library.
-
-*/
-sal_uInt16 SwSmartTagPopup::Execute( const Rectangle& rWordPos, vcl::Window* pWin )
-{
- sal_uInt16 nId = PopupMenu::Execute(pWin, pWin->LogicToPixel(rWordPos));
-
- if ( nId == MN_SMARTTAG_OPTIONS )
- {
- SfxBoolItem aBool(SID_OPEN_SMARTTAGOPTIONS, true);
- mpSwView->GetViewFrame()->GetDispatcher()->Execute( SID_AUTO_CORRECT_DLG, SfxCallMode::ASYNCHRON, &aBool, 0L );
- }
-
- if ( nId < MN_ST_INSERT_START) return nId;
- nId -= MN_ST_INSERT_START;
-
- // compute smarttag lib index and action index
- if ( nId < maInvokeActions.size() )
- {
- Reference< smarttags::XSmartTagAction > xSmartTagAction = maInvokeActions[ nId ].mxAction;
-
- // execute action
- if ( xSmartTagAction.is() )
- {
- SmartTagMgr& rSmartTagMgr = SwSmartTagMgr::Get();
-
- xSmartTagAction->invokeAction( maInvokeActions[ nId ].mnActionID,
- rSmartTagMgr.GetApplicationName(),
- mpSwView->GetController(),
- mxTextRange,
- maInvokeActions[ nId ].mxSmartTagProperties,
- mxTextRange->getString(),
- OUString(),
- SW_BREAKITER()->GetLocale( GetAppLanguageTag() ) );
- }
- }
-
- return nId;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/uibase/smartmenu/stmenu.hrc b/sw/source/uibase/smartmenu/stmenu.hrc
deleted file mode 100644
index 315fb3535af5..000000000000
--- a/sw/source/uibase/smartmenu/stmenu.hrc
+++ /dev/null
@@ -1,33 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef _STMENU_HRC
-#define _STMENU_HRC
-
-#include "rcid.hrc"
-
-#define MN_SMARTTAG_POPUP (RC_SMARTTAG_BEGIN + 1)
-
-#define MN_SMARTTAG_OPTIONS 105
-
-#define MN_ST_INSERT_START 500
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/uibase/smartmenu/stmenu.src b/sw/source/uibase/smartmenu/stmenu.src
deleted file mode 100644
index 326c13b8841e..000000000000
--- a/sw/source/uibase/smartmenu/stmenu.src
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-/* StarView resource file */
-
-#include "stmenu.hrc"
-#include "helpid.h"
-
-Menu MN_SMARTTAG_POPUP
-{
- ItemList =
- {
- MenuItem
- {
- Identifier = MN_SMARTTAG_OPTIONS ;
- HelpID = HID_SMARTTAG_MAIN ;
- Text [ en-US ] = "Smart Tag Options..." ;
- };
- };
-};
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/uibase/uiview/view.cxx b/sw/source/uibase/uiview/view.cxx
index 0cd0cc34ee14..27d48f5b7eb2 100644
--- a/sw/source/uibase/uiview/view.cxx
+++ b/sw/source/uibase/uiview/view.cxx
@@ -135,7 +135,7 @@ bool SwView::m_bJustOpened = false;
SearchAttrItemList* SwView::m_pSrchList = nullptr;
SearchAttrItemList* SwView::m_pReplList = nullptr;
-inline SfxDispatcher &SwView::GetDispatcher()
+SfxDispatcher &SwView::GetDispatcher()
{
return *GetViewFrame()->GetDispatcher();
}
diff --git a/sw/source/uibase/uiview/viewling.cxx b/sw/source/uibase/uiview/viewling.cxx
index 4b4c2a230a3d..f72e370256cc 100644
--- a/sw/source/uibase/uiview/viewling.cxx
+++ b/sw/source/uibase/uiview/viewling.cxx
@@ -25,10 +25,12 @@
#include <com/sun/star/i18n/TextConversionOption.hpp>
#include <linguistic/lngprops.hxx>
#include <comphelper/processfactory.hxx>
+#include <comphelper/propertyvalue.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <vcl/msgbox.hxx>
#include <svtools/ehdl.hxx>
#include <svl/stritem.hxx>
+#include <sfx2/dispatch.hxx>
#include <sfx2/viewfrm.hxx>
#include <sfx2/request.hxx>
#include <svx/dlgutil.hxx>
@@ -68,6 +70,8 @@
#include <com/sun/star/frame/XDispatch.hpp>
#include <com/sun/star/frame/XDispatchProvider.hpp>
#include <com/sun/star/frame/XFrame.hpp>
+#include <com/sun/star/frame/XPopupMenuController.hpp>
+#include <com/sun/star/awt/PopupMenuDirection.hpp>
#include <com/sun/star/util/URL.hpp>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/util/URLTransformer.hpp>
@@ -77,7 +81,6 @@
#include <rtl/ustring.hxx>
#include <cppuhelper/bootstrap.hxx>
-#include "stmenu.hxx"
#include <svx/dialogs.hrc>
#include <svtools/langtab.hxx>
#include <unomid.h>
@@ -93,7 +96,6 @@ using namespace ::com::sun::star;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::linguistic2;
-using namespace ::com::sun::star::smarttags;
// Lingu-Dispatcher
@@ -788,33 +790,39 @@ bool SwView::ExecSpellPopup(const Point& rPt)
This function shows the popup menu for smarttag
actions.
*/
-bool SwView::ExecSmartTagPopup( const Point& rPt )
+void SwView::ExecSmartTagPopup( const Point& rPt )
{
- bool bRet = false;
const bool bOldViewLock = m_pWrtShell->IsViewLocked();
m_pWrtShell->LockView( true );
m_pWrtShell->Push();
- // get word that was clicked on
- // This data structure maps a smart tag type string to the property bag
- SwRect aToFill;
- Sequence< OUString > aSmartTagTypes;
- Sequence< Reference< container::XStringKeyMap > > aStringKeyMaps;
- Reference<text::XTextRange> xRange;
+ css::uno::Sequence< css::uno::Any > aArgs( 2 );
+ aArgs[0] <<= comphelper::makePropertyValue( "Frame", GetDispatcher().GetFrame()->GetFrame().GetFrameInterface() );
+ aArgs[1] <<= comphelper::makePropertyValue( "CommandURL", OUString( ".uno:OpenSmartTagMenuOnCursor" ) );
+
+ css::uno::Reference< css::uno::XComponentContext > xContext = comphelper::getProcessComponentContext();
+ css::uno::Reference< css::frame::XPopupMenuController > xPopupController(
+ xContext->getServiceManager()->createInstanceWithArgumentsAndContext(
+ "com.sun.star.comp.svx.SmartTagMenuController", aArgs, xContext ), css::uno::UNO_QUERY );
- m_pWrtShell->GetSmartTagTerm( rPt, aToFill, aSmartTagTypes, aStringKeyMaps, xRange);
- if ( xRange.is() && aSmartTagTypes.getLength() )
+ css::uno::Reference< css::awt::XPopupMenu > xPopupMenu( xContext->getServiceManager()->createInstanceWithContext(
+ "com.sun.star.awt.PopupMenu", xContext ), css::uno::UNO_QUERY );
+
+ if ( xPopupController.is() && xPopupMenu.is() )
{
- bRet = true;
+ xPopupController->setPopupMenu( xPopupMenu );
+
+ SwRect aToFill;
+ m_pWrtShell->GetSmartTagRect( rPt, aToFill );
m_pWrtShell->SttSelect();
- SwSmartTagPopup aPopup( this, aSmartTagTypes, aStringKeyMaps, xRange );
- aPopup.Execute( aToFill.SVRect(), m_pEditWin );
+
+ if ( aToFill.HasArea() )
+ xPopupMenu->execute( m_pEditWin->GetComponentInterface(),
+ VCLUnoHelper::ConvertToAWTRect( m_pEditWin->LogicToPixel( aToFill.SVRect() ) ), css::awt::PopupMenuDirection::EXECUTE_DOWN );
}
m_pWrtShell->Pop( false );
m_pWrtShell->LockView( bOldViewLock );
-
- return bRet;
}
class SwFieldDialog : public FloatingWindow