summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2018-06-12 16:16:26 +0300
committerTor Lillqvist <tml@collabora.com>2018-06-12 17:14:07 +0200
commit524cfd3ea06070dd3219c20bcbfc6bf347f13926 (patch)
tree089979428f25defdf4ab1bbaed3cc432cfa102c5
parent170d7dccf10eedcddb2a4eab714ec0da9817255c (diff)
Add ooo.vba.word.XWindow.Caption property
Change-Id: Ifa94b95d935975a87322afebfe604a4016f5a53f Reviewed-on: https://gerrit.libreoffice.org/55692 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
-rw-r--r--oovbaapi/ooo/vba/word/XWindow.idl1
-rw-r--r--sw/source/ui/vba/vbawindow.cxx31
-rw-r--r--sw/source/ui/vba/vbawindow.hxx2
3 files changed, 34 insertions, 0 deletions
diff --git a/oovbaapi/ooo/vba/word/XWindow.idl b/oovbaapi/ooo/vba/word/XWindow.idl
index 9ad98654cfff..649cad3415f7 100644
--- a/oovbaapi/ooo/vba/word/XWindow.idl
+++ b/oovbaapi/ooo/vba/word/XWindow.idl
@@ -32,6 +32,7 @@ interface XWindow : com::sun::star::uno::XInterface
{
[attribute] any View;
[attribute] any WindowState;
+ [attribute] string Caption;
void Activate();
void Close([in] any SaveChanges, [in] any RouteDocument);
any Panes( [in] any Index ); // this is a fake api for it seems not support in Write
diff --git a/sw/source/ui/vba/vbawindow.cxx b/sw/source/ui/vba/vbawindow.cxx
index 458fb400d758..aba495a199b8 100644
--- a/sw/source/ui/vba/vbawindow.cxx
+++ b/sw/source/ui/vba/vbawindow.cxx
@@ -113,6 +113,37 @@ SwVbaWindow::setWindowState( const uno::Any& _windowstate )
}
}
+OUString SAL_CALL
+SwVbaWindow::getCaption()
+{
+ SwView* pView = word::getView( m_xModel );
+ if( !pView )
+ return OUString("");
+
+ uno::Reference< css::beans::XPropertySet > xFrameProps( pView->GetViewFrame()->GetFrame().GetFrameInterface()->getController()->getFrame(), uno::UNO_QUERY );
+ if( !xFrameProps.is() )
+ return OUString("");
+
+ OUString sTitle;
+ xFrameProps->getPropertyValue( "Title" ) >>= sTitle;
+
+ return sTitle;
+}
+
+void SAL_CALL
+SwVbaWindow::setCaption( const OUString& _caption )
+{
+ SwView* pView = word::getView( m_xModel );
+ if( !pView )
+ return;
+
+ uno::Reference< css::beans::XPropertySet > xFrameProps( pView->GetViewFrame()->GetFrame().GetFrameInterface()->getController()->getFrame(), uno::UNO_QUERY );
+ if( !xFrameProps.is() )
+ return;
+
+ xFrameProps->setPropertyValue( "Title", uno::makeAny( _caption ) );
+}
+
uno::Any SAL_CALL
SwVbaWindow::Panes( const uno::Any& aIndex )
{
diff --git a/sw/source/ui/vba/vbawindow.hxx b/sw/source/ui/vba/vbawindow.hxx
index e5f7296a8ba5..ee435b1505ac 100644
--- a/sw/source/ui/vba/vbawindow.hxx
+++ b/sw/source/ui/vba/vbawindow.hxx
@@ -42,6 +42,8 @@ public:
virtual void SAL_CALL setView( const css::uno::Any& _view ) override;
virtual css::uno::Any SAL_CALL getWindowState() override;
virtual void SAL_CALL setWindowState( const css::uno::Any& _windowstate ) override;
+ virtual OUString SAL_CALL getCaption() override;
+ virtual void SAL_CALL setCaption( const OUString& _caption ) override;
// Methods
virtual void SAL_CALL Activate( ) override;
virtual void SAL_CALL Close( const css::uno::Any& SaveChanges, const css::uno::Any& RouteDocument ) override;