summaryrefslogtreecommitdiff
path: root/framework
diff options
context:
space:
mode:
authorKurt Zenker <kz@openoffice.org>2008-04-04 14:21:05 +0000
committerKurt Zenker <kz@openoffice.org>2008-04-04 14:21:05 +0000
commit60cf1c03a5b0e62c1376bdb80eac9e7a49dfb0cf (patch)
tree0022440f0bb16af5772155f537b31d8830ad14d7 /framework
parenta82a14f0b70201e36afcdd54c4ef6970670010b5 (diff)
INTEGRATION: CWS titles02 (1.4.82); FILE MERGED
2008/02/12 13:27:21 as 1.4.82.2: RESYNC: (1.4-1.5); FILE MERGED 2007/10/12 13:06:39 as 1.4.82.1: #116375# support new title feature
Diffstat (limited to 'framework')
-rw-r--r--framework/source/services/taskcreatorsrv.cxx34
1 files changed, 32 insertions, 2 deletions
diff --git a/framework/source/services/taskcreatorsrv.cxx b/framework/source/services/taskcreatorsrv.cxx
index 04ebeca290a3..25abda37bafb 100644
--- a/framework/source/services/taskcreatorsrv.cxx
+++ b/framework/source/services/taskcreatorsrv.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: taskcreatorsrv.cxx,v $
*
- * $Revision: 1.6 $
+ * $Revision: 1.7 $
*
- * last change: $Author: kz $ $Date: 2008-03-05 17:24:14 $
+ * last change: $Author: kz $ $Date: 2008-04-04 15:21:05 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -51,6 +51,10 @@
#include <helper/tagwindowasmodified.hxx>
#endif
+#ifndef __FRAMEWORK_HELPER_TITLEBARUPDATE_HXX_
+#include <helper/titlebarupdate.hxx>
+#endif
+
#ifndef __FRAMEWORK_THREADHELP_READGUARD_HXX_
#include <threadhelp/readguard.hxx>
#endif
@@ -135,6 +139,7 @@ const ::rtl::OUString TaskCreatorService::ARGUMENT_CREATETOPWINDOW
const ::rtl::OUString TaskCreatorService::ARGUMENT_POSSIZE = ::rtl::OUString::createFromAscii("PosSize" ); // Rectangle
const ::rtl::OUString TaskCreatorService::ARGUMENT_CONTAINERWINDOW = ::rtl::OUString::createFromAscii("ContainerWindow" ); // XWindow
const ::rtl::OUString TaskCreatorService::ARGUMENT_SUPPORTPERSISTENTWINDOWSTATE = ::rtl::OUString::createFromAscii("SupportPersistentWindowState" ); // sal_Bool
+const ::rtl::OUString TaskCreatorService::ARGUMENT_ENABLE_TITLEBARUPDATE = ::rtl::OUString::createFromAscii("EnableTitleBarUpdate" ); // sal_Bool
//-----------------------------------------------
DEFINE_XINTERFACE_3(TaskCreatorService ,
@@ -198,6 +203,7 @@ css::uno::Reference< css::uno::XInterface > SAL_CALL TaskCreatorService::createI
static sal_Bool DEFAULTVAL_CREATETOPWINDOW = sal_True;
static css::awt::Rectangle DEFAULTVAL_POSSIZE = css::awt::Rectangle(0, 0, 0, 0); // only possize=[0,0,0,0] triggers default handling of vcl !
static sal_Bool DEFAULTVAL_SUPPORTPERSSISTENTWINDOWSTATE = sal_False;
+ static sal_Bool DEFAULTVAL_ENABLE_TITLEBARUPDATE = sal_True;
::comphelper::SequenceAsHashMap lArgs(lArguments);
@@ -208,6 +214,7 @@ css::uno::Reference< css::uno::XInterface > SAL_CALL TaskCreatorService::createI
css::awt::Rectangle aPosSize = lArgs.getUnpackedValueOrDefault(TaskCreatorService::ARGUMENT_POSSIZE , DEFAULTVAL_POSSIZE );
css::uno::Reference< css::awt::XWindow > xContainerWindow = lArgs.getUnpackedValueOrDefault(TaskCreatorService::ARGUMENT_CONTAINERWINDOW , css::uno::Reference< css::awt::XWindow >() );
sal_Bool bSupportPersistentWindowState = lArgs.getUnpackedValueOrDefault(TaskCreatorService::ARGUMENT_SUPPORTPERSISTENTWINDOWSTATE , DEFAULTVAL_SUPPORTPERSSISTENTWINDOWSTATE );
+ sal_Bool bEnableTitleBarUpdate = lArgs.getUnpackedValueOrDefault(TaskCreatorService::ARGUMENT_ENABLE_TITLEBARUPDATE , DEFAULTVAL_ENABLE_TITLEBARUPDATE );
/* SAFE { */
ReadGuard aReadLock( m_aLock );
@@ -268,6 +275,12 @@ css::uno::Reference< css::uno::XInterface > SAL_CALL TaskCreatorService::createI
if (bTopLevelDocumentWindow)
implts_establishDocModifyListener (xFrame);
+ // special freature:
+ // A special listener will update title bar (text and icon)
+ // if component of frame will be changed.
+ if (bEnableTitleBarUpdate)
+ implts_establishTitleBarUpdate(xFrame);
+
// Make it visible directly here ...
// if its required from outside.
if (bVisible)
@@ -428,6 +441,23 @@ void TaskCreatorService::implts_establishDocModifyListener( const css::uno::Refe
}
//-----------------------------------------------
+void TaskCreatorService::implts_establishTitleBarUpdate( const css::uno::Reference< css::frame::XFrame >& xFrame )
+{
+ // SAFE ->
+ ReadGuard aReadLock( m_aLock );
+ css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR = m_xSMGR;
+ aReadLock.unlock();
+ // <- SAFE
+
+ TitleBarUpdate* pHelper = new TitleBarUpdate (xSMGR);
+ css::uno::Reference< css::lang::XInitialization > xInit(static_cast< ::cppu::OWeakObject* >(pHelper), css::uno::UNO_QUERY_THROW);
+
+ css::uno::Sequence< css::uno::Any > lInitData(1);
+ lInitData[0] <<= xFrame;
+ xInit->initialize(lInitData);
+}
+
+//-----------------------------------------------
::rtl::OUString TaskCreatorService::impl_filterNames( const ::rtl::OUString& sName )
{
::rtl::OUString sFiltered;