framework/source/dispatch/dispatchprovider.cxx | 187 +++---- framework/source/services/desktop.cxx | 363 +++++++------- framework/source/services/frame.cxx | 610 ++++++++++++------------- 3 files changed, 579 insertions(+), 581 deletions(-)
New commits: commit 2f2f00c07c104b1fb6a523379a5f8ff639b06de5 Author: Ilmari Lauhakangas <ilmari.lauhakan...@libreoffice.org> AuthorDate: Sun Mar 23 21:25:05 2025 +0200 Commit: Ilmari Lauhakangas <ilmari.lauhakan...@libreoffice.org> CommitDate: Wed Apr 30 21:18:48 2025 +0200 framework: improve language in comments for better readability Change-Id: I7a1801f1848869a84ebe3569159175b2ac767567 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183249 Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakan...@libreoffice.org> Tested-by: Jenkins Tested-by: Ilmari Lauhakangas <ilmari.lauhakan...@libreoffice.org> diff --git a/framework/source/dispatch/dispatchprovider.cxx b/framework/source/dispatch/dispatchprovider.cxx index a1125016ce30..53d690e4d14d 100644 --- a/framework/source/dispatch/dispatchprovider.cxx +++ b/framework/source/dispatch/dispatchprovider.cxx @@ -45,8 +45,8 @@ namespace framework{ /** @short standard ctor/dtor @descr These initialize a new instance of this class with needed information for work. - We hold a weakreference to our owner frame which start dispatches at us. - We can't use a normal reference because he hold a reference of us too ... + We hold a weak reference to our owner frame which starts dispatches to us. + We can't use a normal reference because it holds a reference of us, too - nobody can die so ...! @seealso using at owner @@ -65,7 +65,7 @@ DispatchProvider::DispatchProvider( css::uno::Reference< css::uno::XComponentCon /** @short protected(!) dtor for deinitializing - @descr We made it protected to prevent using of us as base class instead as a member. + @descr We made it protected to prevent using us as a base class instead of as a member. */ DispatchProvider::~DispatchProvider() { @@ -74,11 +74,11 @@ DispatchProvider::~DispatchProvider() /** @interface XDispatchProvider @short search a dispatcher for given URL - @descr If no interceptor is set on owner, we search for right frame and dispatch URL to it. + @descr If no interceptor is set on owner, we search for the correct frame and dispatch URL to it. If no frame was found, we do nothing. - But we don't do it directly here. We detect the type of our owner frame and calls - specialized queryDispatch() helper dependen from that. Because a Desktop handle some - requests in another way then a normal frame. + But we don't do it directly here. We detect the type of our owner frame and call + a specialized queryDispatch() helper. Because a Desktop handles some + requests in a different way than a normal frame. @param aURL URL to dispatch. @@ -86,7 +86,7 @@ DispatchProvider::~DispatchProvider() name of searched frame. @param nSearchFlags flags for searching. - @return A reference to a dispatch object for this URL (if someone was found!). + @return A reference to a dispatch object for this URL (if one was found!). @threadsafe yes */ @@ -110,27 +110,27 @@ css::uno::Reference< css::frame::XDispatch > SAL_CALL DispatchProvider::queryDis /** @interface XDispatchProvider - @short do the same like queryDispatch() ... but handle multiple dispatches at the same time - @descr It's an optimism. User give us a list of queries ... and we return a list of dispatcher. - If one of given queries couldn't be solved to a real existing dispatcher ... - we return a list with empty references in it! Order of both lists will be retained! + @short do the same as queryDispatch(), but handle multiple dispatches at the same time + @descr It's optimistic. The user gives us a list of queries and we return a list of dispatchers. + If one of the given queries couldn't be solved to an actually existing dispatcher, + we return an empty reference for that entry. Order of both lists will be retained! @seealso method queryDispatch() @param lDescriptions a list of all dispatch parameters for multiple requests - @return A reference a list of dispatch objects for these URLs - may with some <NULL/> values inside. + @return A reference to a list of dispatch objects for these URLs - may have some <NULL/> values inside. @threadsafe yes */ css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL DispatchProvider::queryDispatches( const css::uno::Sequence< css::frame::DispatchDescriptor >& lDescriptions ) { - // Create return list - which must have same size then the given descriptor + // Create return list - which must have the same size as the given descriptor. // It's not allowed to pack it! sal_Int32 nCount = lDescriptions.getLength(); css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > lDispatcher( nCount ); auto lDispatcherRange = asNonConstRange(lDispatcher); - // Step over all descriptors and try to get any dispatcher for it. + // Step over all descriptors and try to get a dispatcher for it. for( sal_Int32 i=0; i<nCount; ++i ) { lDispatcherRange[i] = queryDispatch( lDescriptions[i].FeatureURL , @@ -143,8 +143,8 @@ css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL Disp /** @short helper for queryDispatch() - @descr Every member of the frame tree (frame, desktop) must handle such request - in another way. So we implement different specialized methods for everyone. + @descr Every member of the frame tree (frame, desktop) may handle such a request + in a different way. So we implement different specialized methods for everyone. @threadsafe yes */ @@ -157,21 +157,21 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryDeskt // ignore wrong requests which are not supported if ( - (sTargetFrameName==SPECIALTARGET_PARENT ) || // we have no parent by definition - (sTargetFrameName==SPECIALTARGET_BEAMER ) // beamer frames are allowed as child of tasks only - - // and they exist more than ones. We have no idea which our sub tasks is the right one + (sTargetFrameName==SPECIALTARGET_PARENT ) || // We have no parent by definition + (sTargetFrameName==SPECIALTARGET_BEAMER ) // Beamer frames are allowed as children of tasks only - + // and they exist more than once. We have no idea which of our sub tasks is the right one ) { return nullptr; } - // I) handle special cases which not right for using findFrame() first + // I) First handle special cases which are not suited for using findFrame() // I.I) "_blank" // It's not the right place to create a new task here - because we are queried for a dispatch object - // only, which can handle such request. Such dispatcher should create the required task on demand. - // Normally the functionality for "_blank" is provided by findFrame() - but that would create it directly - // here. that's why we must "intercept" here. + // only, which can handle such request. Such a dispatcher should create the required task on demand. + // Normally the functionality for "_blank" is provided by findFrame(), but that would create it directly + // here. That's why we must "intercept" here. if (sTargetFrameName==SPECIALTARGET_BLANK) { @@ -180,7 +180,7 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryDeskt } // I.II) "_default" - // This is a combination of search an empty task for recycling - or create a new one. + // This is a combination of searching an empty task for recycling or creating a new one. else if (sTargetFrameName==SPECIALTARGET_DEFAULT) { @@ -192,9 +192,9 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryDeskt } // I.III) "_self", "", "_top" - // The desktop can't load any document - but he can handle some special protocols like "uno", "slot" ... - // Why is "top" here handled too? Because the desktop is the topest frame. Normally it's superfluous - // to use this target - but we can handle it in the same manner then "_self". + // The desktop can't load any document, but it can handle some special protocols like "uno", "slot" ... + // Why is "top" handled here as well? Because the desktop is the topmost frame. Normally it's superfluous + // to use this target, but we can handle it in the same manner as "_self". else if ( (sTargetFrameName==SPECIALTARGET_SELF) || @@ -206,23 +206,23 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryDeskt } // I.IV) no further special targets exist - // Now we have to search for the right target frame by calling findFrame() - but should provide our code - // against creation of a new task if no frame could be found. - // I said it before - it's allowed for dispatch() only. + // Now we have to search for the right target frame by calling findFrame(), but should provide our code + // against the creation of a new task if no frame could be found. + // As mentioned earlier, it's allowed for dispatch() only. else { sal_Int32 nRightFlags = nSearchFlags & ~css::frame::FrameSearchFlag::CREATE; - // try to find any existing target and ask him for his dispatcher + // try to find any existing target and ask it for its dispatcher css::uno::Reference< css::frame::XFrame > xFoundFrame = xDesktop->findFrame(sTargetFrameName, nRightFlags); if (xFoundFrame.is()) { css::uno::Reference< css::frame::XDispatchProvider > xProvider( xFoundFrame, css::uno::UNO_QUERY ); xDispatcher = xProvider->queryDispatch(aURL,SPECIALTARGET_SELF,0); } - // if it couldn't be found - but creation was allowed - // use special dispatcher for creation or forwarding to the browser + // If it couldn't be found, but creation was allowed, + // use a special dispatcher for creation or forwarding to the browser else if (nSearchFlags & css::frame::FrameSearchFlag::CREATE) xDispatcher = implts_getOrCreateDispatchHelper( E_CREATEDISPATCHER, xDesktop, sTargetFrameName, nSearchFlags ); } @@ -238,14 +238,14 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryFrame css::uno::Reference< css::frame::XDispatch > xDispatcher; // 0) Some URLs are dispatched in a generic way (e.g. by the menu) using the default target "". - // But they are specified to use her own fix target. Detect such URLs here and use the correct target. + // But they are specified to use their own fixed target. Detect such URLs here and use the correct target. - // I) handle special cases which not right for using findFrame() first + // I) First handle special cases which are not suited for using findFrame() // I.I) "_blank", "_default" // It's not the right place to create a new task here. Only the desktop can do that. - // Normally the functionality for "_blank" is provided by findFrame() - but that would create it directly - // here. that's why we must "intercept" here. + // Normally the functionality for "_blank" is provided by findFrame(), but that would create it directly + // here. That's why we must "intercept" here. if ( (sTargetFrameName==SPECIALTARGET_BLANK ) || @@ -258,8 +258,8 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryFrame } // I.II) "_beamer" - // Special sub frame of a top frame only. Search or create it. ... OK it's currently a little bit HACKI. - // Only the sfx (means the controller) can create it. + // Special sub frame of a top frame only. Search or create it. It's currently a little bit hacky. + // Only the sfx (meaning the controller) can create it. else if (sTargetFrameName==SPECIALTARGET_BEAMER) { @@ -272,41 +272,41 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryFrame { css::uno::Reference< css::frame::XDispatchProvider > xController( xFrame->getController(), css::uno::UNO_QUERY ); if (xController.is()) - // force using of special target - but use original search flags - // May the caller used the CREATE flag or not! + // Force using of a special target, but use original search flags. + // The caller may or may not use the CREATE flag! xDispatcher = xController->queryDispatch(aURL, SPECIALTARGET_BEAMER, nSearchFlags); } } // I.IV) "_parent" - // Our parent frame (if it exist) should handle this URL. + // Our parent frame (if it exists) should handle this URL. else if (sTargetFrameName==SPECIALTARGET_PARENT) { css::uno::Reference< css::frame::XDispatchProvider > xParent( xFrame->getCreator(), css::uno::UNO_QUERY ); if (xParent.is()) - // SELF => we must address the parent directly... and not his parent or any other parent! + // SELF => we must address the parent directly, and not its parent or any other parent! xDispatcher = xParent->queryDispatch(aURL, SPECIALTARGET_SELF, 0); } // I.V) "_top" - // This request must be forwarded to any parent frame, till we reach a top frame. - // If no parent exist, we can handle itself. + // This request must be forwarded to any parent frame, until we reach a top frame. + // If no parent exists, the frame itself can be handled. else if (sTargetFrameName==SPECIALTARGET_TOP) { if (xFrame->isTop()) { - // If we are this top frame itself (means our owner frame) - // we should call ourself recursiv with a better target "_self". + // If we are this top frame itself (meaning our owner frame), + // we should call ourselves recursively with a better target "_self". // So we can share the same code! (see reaction for "_self" inside this method too.) xDispatcher = queryDispatch(aURL,SPECIALTARGET_SELF,0); } else { css::uno::Reference< css::frame::XDispatchProvider > xParent( xFrame->getCreator(), css::uno::UNO_QUERY ); - // Normally if isTop() returned sal_False ... the parent frame MUST(!) exist ... - // But it seems to be better to check that here to prevent us against an access violation. + // Normally if isTop() returned sal_False, the parent frame MUST(!) exist, + // but it seems to be better to check that here to avoid an access violation. if (xParent.is()) xDispatcher = xParent->queryDispatch(aURL, SPECIALTARGET_TOP, 0); } @@ -314,16 +314,16 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryFrame // I.VI) "_self", "" // Our owner frame should handle this URL. But we can't do it for all of them. - // So we ask the internal set controller first. If he disagree we try to find a registered - // protocol handler. If this failed too - we check for a loadable content and in case of true - // we load it into the frame by returning specialized dispatch object. + // So we ask the internal set controller first. If it disagrees we try to find a registered + // protocol handler. If this failed as well, we check for loadable content and in case of true + // we load it into the frame by returning a specialized dispatch object. else if ( (sTargetFrameName==SPECIALTARGET_SELF) || (sTargetFrameName.isEmpty()) ) { - // There exist a hard coded interception for special URLs. + // There is a hardcoded interception for special URLs. if ( aURL.Complete == ".uno:CloseDoc" || aURL.Complete == ".uno:CloseWin" ) { css::uno::Reference< css::frame::XDispatchProvider > xParent( xFrame->getCreator(), css::uno::UNO_QUERY ); @@ -344,25 +344,25 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryFrame if ( ! xDispatcher.is()) { - // Ask our controller for his agreement for these dispatched URL ... - // because some URLs are internal and can be handled faster by SFX - which most is the current controller! + // Ask our controller for its opinion on these dispatched URLs, + // because some URLs are internal and can be handled faster by SFX - which usually is the current controller! // But in case of e.g. the bibliography not all queries will be handled successfully here. css::uno::Reference< css::frame::XDispatchProvider > xController( xFrame->getController(), css::uno::UNO_QUERY ); if (xController.is()) xDispatcher = xController->queryDispatch(aURL, SPECIALTARGET_SELF, 0); } - // If controller has no fun to dispatch these URL - we must search another right dispatcher. - // Search for any registered protocol handler first. + // If the controller doesn't feel like dispatching these URLs, we must find an appropriate dispatcher. + // Search for any registered protocol handlers first. if (!xDispatcher.is()) xDispatcher = implts_searchProtocolHandler(aURL); - // Not for controller - not for protocol handler - // It should be a loadable content - may be a file. Check it ... - // This check is necessary to found out, that - // support for some protocols isn't installed by user. May be - // "ftp" isn't available. So we suppress creation of our self dispatcher. - // The result will be clear. He can't handle it - but he would try it. + // Not for controller - not for protocol handler. + // It should be a loadable content, maybe a file. Check it. + // This check is necessary for finding out, if + // support for some protocols isn't installed by the user. + // If a protocol is not available, we suppress the creation of our dispatcher. + // The result will be clear. It can't handle it, but will try. if ( ( ! xDispatcher.is() ) && ( implts_isLoadableContent(aURL) ) @@ -372,24 +372,24 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryFrame } } - // I.VII) no further special handlings exist - // Now we have to search for the right target frame by calling findFrame() - but should provide our code - // against creation of a new task if no frame could be found. - // I said it before - it's allowed for dispatch() only. + // I.VII) No further special handlings exist. + // Now we have to search for the right target frame by calling findFrame(), but should provide our code + // against the creation of a new task if no frame could be found. + // As mentioned earlier, it's allowed for dispatch() only. else { sal_Int32 nRightFlags = nSearchFlags & ~css::frame::FrameSearchFlag::CREATE; - // try to find any existing target and ask him for his dispatcher + // try to find any existing target and ask it for its dispatcher css::uno::Reference< css::frame::XFrame > xFoundFrame = xFrame->findFrame(sTargetFrameName, nRightFlags); if (xFoundFrame.is()) { // Attention: Found target is our own owner frame! - // Don't ask him for his dispatcher. We know it already - it's our self dispatch helper. - // Otherwise we can start a never ending recursiv call. Why? - // Somewhere called our owner frame - he called some interceptor objects - and may by this dispatch provider - // is called. If wa use queryDispatch() on our owner frame again - we start this call stack again ... and again. + // Don't ask it for its dispatcher. We know it already - it's our dispatch helper. + // Otherwise we can start a neverending recursive call. Why? + // Our owner frame was called somewhere, it called some interceptor objects and maybe this dispatch provider + // is called. If we use queryDispatch() on our owner frame again, we start this call stack again and again. if (xFoundFrame==xFrame) xDispatcher = implts_getOrCreateDispatchHelper( E_SELFDISPATCHER, xFrame ); else @@ -399,12 +399,12 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryFrame } } else - // if it couldn't be found - but creation was allowed + // If it couldn't be found, but creation was allowed // forward request to the desktop. - // Note: The given target name must be used to set the name on new created task! - // Don't forward request by changing it to a special one e.g _blank. + // Note: The given target name must be used to set the name on a new created task! + // Don't forward the request by changing it to a special one e.g _blank. // Use the CREATE flag only to prevent call against further searches. - // We already know it - the target must be created new. + // We already know it: the target must be created new. if (nSearchFlags & css::frame::FrameSearchFlag::CREATE) { css::uno::Reference< css::frame::XDispatchProvider > xParent( xFrame->getCreator(), css::uno::UNO_QUERY ); @@ -417,16 +417,15 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryFrame } /** - @short search for a registered protocol handler and ask him for a dispatch object + @short search for a registered protocol handler and ask it for a dispatch object @descr We search a suitable handler inside our cfg package org.openoffice.Office.ProtocolHandler. - If we found anyone, we create and initialize it. Initialize means: we set our owner frame on it - as context information. He can use it or leave it. Of course - we are aware of handler implementations, - which doesn't support initialization. It's an optional feature. + If we found any, we create and initialize it. Initializing means: we set our owner frame on it + as context information. It can use it or leave it. Of course - we are aware of handler implementations, which don't support initialization. It's an optional feature. @param aURL - the dispatch URL for which may a handler is registered + the dispatch URL for which a handler may be registered - @return A dispatch object if a handler was found and agree with the given URL or <NULL/> otherwise. + @return A dispatch object if a handler was found and agrees with the given URL or <NULL/> otherwise. @threadsafe yes */ @@ -435,7 +434,7 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_searchProt css::uno::Reference< css::frame::XDispatch > xDispatcher; ProtocolHandler aHandler; - // This member is threadsafe by himself and lives if we live - we don't need any mutex here. + // This member itself is threadsafe and lives if we live - we don't need any mutex here. if (framework::HandlerCache::search(aURL,&aHandler)) { css::uno::Reference< css::frame::XDispatchProvider > xHandler; @@ -470,7 +469,7 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_searchProt } catch(const css::uno::Exception&) {} - // look if initialization is necessary + // check if initialization is necessary css::uno::Reference< css::lang::XInitialization > xInit( xHandler, css::uno::UNO_QUERY ); if (xInit.is() && bInitialize) { @@ -489,7 +488,7 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_searchProt } } - // ask for his (sub)dispatcher for the given URL + // ask for its (sub)dispatcher for the given URL if (xHandler.is()) xDispatcher = xHandler->queryDispatch(aURL,SPECIALTARGET_SELF,0); } @@ -498,14 +497,14 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_searchProt } /** - @short get or create new dispatch helper + @short get or create a new dispatch helper @descr Sometimes we need some helper implementations to support dispatching of special URLs or commands. But it's not a good idea to hold these services for the whole life time of this provider instance. - We should create it on demand... - That's why we implement this method. It return an already existing helper or create a new one otherwise. + We should create it on demand. + That's why we implement this method. It returns an already existing helper or creates a new one otherwise. - @attention The parameter sTarget and nSearchFlags are defaulted to "" and 0! - Mostly it depends from the parameter eHelper is they are required or not. + @attention The parameters sTarget and nSearchFlags are defaulted to "" and 0! + Mostly it depends on the parameter eHelper, if they are required or not. @param eHelper specify the requested dispatch helper @@ -565,12 +564,12 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_getOrCreat /** @short check URL for support by our used loader or handler @descr If we must return our own dispatch helper implementations (self, blank, create dispatcher!) - we should be sure, that URL describe any loadable content. Otherwise slot/uno URLs - will be detected... but there exist nothing for real loading into a target frame! + we should be sure, that the URL describes any loadable content. Otherwise slot/uno URLs + will be detected, but there exists nothing for real loading into a target frame! @param aURL URL which should be "detected" - @return <TRUE/> if somewhere could handle that - <FALSE/> otherwise. + @return <TRUE/> if it could be handled somewhere - <FALSE/> otherwise. @threadsafe yes */ diff --git a/framework/source/services/desktop.cxx b/framework/source/services/desktop.cxx index 42b1505a610d..49115c708172 100644 --- a/framework/source/services/desktop.cxx +++ b/framework/source/services/desktop.cxx @@ -88,18 +88,19 @@ css::uno::Sequence<OUString> SAL_CALL Desktop::getSupportedServiceNames() void Desktop::constructorInit() { // Initialize a new XFrames-helper-object to handle XIndexAccess and XElementAccess. - // We hold member as reference ... not as pointer too! - // Attention: We share our frame container with this helper. Container is threadsafe himself ... So I think we can do that. - // But look on dispose() for right order of deinitialization. + // We only hold the member as reference and not as pointer! + // Attention: we share our frame container with this helper. + // The container itself is threadsafe, so we should be able to do that. + // But look at dispose() for the right order of deinitialization. m_xFramesHelper = new OFrames( this, &m_aChildTaskContainer ); - // Initialize a new dispatchhelper-object to handle dispatches. - // We use these helper as slave for our interceptor helper ... not directly! - // But he is event listener on THIS instance! + // Initialize a new DispatchHelper-object to handle dispatches. + // We use this helper as a slave for our interceptor helper - not directly! + // But the helper is an event listener in THIS instance! rtl::Reference<DispatchProvider> xDispatchProvider = new DispatchProvider( m_xContext, this ); // Initialize a new interception helper object to handle dispatches and implement an interceptor mechanism. - // Set created dispatch provider as slowest slave of it. + // Set created dispatch provider as its slowest slave. // Hold interception helper by reference only - not by pointer! // So it's easier to destroy it. m_xDispatchHelper = new InterceptionHelper( this, xDispatchProvider ); @@ -111,32 +112,32 @@ void Desktop::constructorInit() pNumbers->setOwner ( static_cast< ::cppu::OWeakObject* >(this) ); pNumbers->setUntitledPrefix ( sUntitledPrefix ); - // Safe impossible cases + // Safe impossible cases. // We can't work without this helper! SAL_WARN_IF( !m_xFramesHelper.is(), "fwk.desktop", "Desktop::Desktop(): Frames helper is not valid. XFrames, XIndexAccess and XElementAccess are not supported!"); SAL_WARN_IF( !m_xDispatchHelper.is(), "fwk.desktop", "Desktop::Desktop(): Dispatch helper is not valid. XDispatch will not work correctly!" ); - // Enable object for real working! - // Otherwise all calls will be rejected ... + // Enable object for real work! + // Otherwise all calls will be rejected. m_aTransactionManager.setWorkingMode( E_WORK ); } /*-************************************************************************************************************ @short standard constructor to create instance by factory - @descr This constructor initialize a new instance of this class by valid factory, - and will be set valid values on his member and baseclasses. + @descr This constructor initializes a new instance of this class by valid factory, + and valid values will be set for its member and base classes. @attention a) Don't use your own reference during a UNO-Service-ctor! There is no guarantee, that you - will get over this. (e.g. using of your reference as parameter to initialize some member) + will get over this. (e.g. using your reference as parameter to initialize some member). Do such things in DEFINE_INIT_SERVICE() method, which is called automatically after your ctor!!! - b) Baseclass OBroadcastHelper is a typedef in namespace cppu! - The microsoft compiler has some problems to handle it right BY using namespace explicitly ::cppu::OBroadcastHelper. + b) base class OBroadcastHelper is a typedef in namespace cppu! + The Microsoft compiler has some problems in handling it right when using namespace explicitly ::cppu::OBroadcastHelper. If we write it without a namespace or expand the typedef to OBroadcastHelperVar<...> -> it will be OK!? - I don't know why! (other compiler not tested .. but it works!) + I don't know why! (other compilers not tested, but it works!) @seealso method DEFINE_INIT_SERVICE() - @param "xFactory" is the multi service manager, which create this instance. + @param "xFactory" is the multi service manager, which creates this instance. The value must be different from NULL! @onerror We throw an ASSERT in debug version or do nothing in release version. *//*-*************************************************************************************************************/ @@ -156,7 +157,7 @@ Desktop::Desktop( css::uno::Reference< css::uno::XComponentContext > xContext ) /*-************************************************************************************************************ @short standard destructor - @descr This one do NOTHING! Use dispose() instead of this. + @descr This one does NOTHING! Use dispose() instead of this. @seealso method dispose() *//*-*************************************************************************************************************/ @@ -200,8 +201,8 @@ sal_Bool SAL_CALL Desktop::terminate() const bool bRestartableMainLoop = comphelper::LibreOfficeKit::isActive(); aGuard.clear(); - // Allow using of any UI ... because Desktop.terminate() was designed as UI functionality in the past. - // try to close all open frames + // Allow use of any UI, because Desktop.terminate() was designed as UI functionality in the past. + // Try to close all open frames. bool bFramesClosed = impl_closeFrames(!bRestartableMainLoop); // Ask normal terminate listener. They could veto terminating the process. @@ -218,21 +219,21 @@ sal_Bool SAL_CALL Desktop::terminate() return false; } - // Normal listener had no problem ... - // all frames was closed ... - // now it's time to ask our specialized listener. - // They are handled these way because they wish to hinder the office on termination - // but they wish also closing of all frames. + // Normal listener had no problem. + // All frames were closed. + // Now it's time to ask our specialized listener. + // They are handled in this way because they wish to hinder the office on termination, + // but they also wish to close all frames. - // Note further: + // Note: // We shouldn't ask quicklauncher in case it was allowed from outside only. - // This is special trick to "ignore existing quick starter" for debug purposes. + // This is a special trick to "ignore existing quickstarter" for debug purposes. // Attention: - // Order of called listener is important! - // Some of them are harmless,-) + // Order of called listeners is important! + // Some of them are harmless, // but some can be dangerous. E.g. it would be dangerous if we close our pipe - // and don't terminate in real because another listener throws a veto exception .-) + // and don't terminate for real because another listener throws a veto exception .-) try { @@ -330,7 +331,7 @@ void Desktop::shutdown() xComponentDllListeners.clear(); // Must be really the last listener to be called. - // Because it shuts down the whole process asynchronous! + // Because it shuts down the whole process asynchronously! if (xSfxTerminator.is()) xSfxTerminator->notifyTermination(aEvent); } @@ -404,7 +405,7 @@ void SAL_CALL Desktop::addTerminateListener( const css::uno::Reference< css::fra } } - // No lock required... container is threadsafe by itself. + // No lock required, the container itself is threadsafe. m_aListenerContainer.addInterface( cppu::UnoType<css::frame::XTerminateListener>::get(), xListener ); } @@ -449,7 +450,7 @@ void SAL_CALL Desktop::removeTerminateListener( const css::uno::Reference< css:: } } - // No lock required ... container is threadsafe by itself. + // No lock required, the container itself is threadsafe. m_aListenerContainer.removeInterface( cppu::UnoType<css::frame::XTerminateListener>::get(), xListener ); } @@ -471,7 +472,7 @@ css::uno::Reference< css::container::XEnumerationAccess > SAL_CALL Desktop::getC // Register transaction and reject wrong calls. TransactionGuard aTransaction( m_aTransactionManager, E_HARDEXCEPTIONS ); - // We use a helper class OComponentAccess to have access on all child components. + // We use a helper class OComponentAccess to have access to all child components. // Create it on demand and return it as a reference. return new OComponentAccess( this ); } @@ -512,7 +513,7 @@ css::uno::Reference< css::lang::XComponent > SAL_CALL Desktop::getCurrentCompone @interface XDesktop @short return the current active frame in hierarchy @descr There can be more than one different active paths in our frame hierarchy. But only one of them - could be the most active frame (normal he has the focus). + can be the most active frame (normally it has the focus). Don't mix it with getActiveFrame()! That will return our current active frame, which must be a direct child of us and should be a part(!) of an active path. @@ -529,9 +530,9 @@ css::uno::Reference< css::frame::XFrame > SAL_CALL Desktop::getCurrentFrame() // Register transaction and reject wrong calls. TransactionGuard aTransaction( m_aTransactionManager, E_HARDEXCEPTIONS ); - // Start search with our direct active frame (if it exist!). - // Search on his children for other active frames too. - // Stop if no one could be found and return last of found ones. + // Start search with our direct active frame (if it exists!). + // Search its children for other active frames too. + // Stop if none could be found and return the last of the found ones. css::uno::Reference< css::frame::XFramesSupplier > xLast( getActiveFrame(), css::uno::UNO_QUERY ); if( xLast.is() ) { @@ -550,9 +551,9 @@ css::uno::Reference< css::frame::XFrame > SAL_CALL Desktop::getCurrentFrame() @short try to load given URL into a task @descr You can give us some information about the content, which you will load into a frame. We search or create this target for you, make a type detection of given URL and try to load it. - As result of this operation we return the new created component or nothing, if loading failed. - @param "sURL" , URL, which represent the content - @param "sTargetFrameName" , name of target frame or special value like "_self", "_blank" ... + As a result of this operation we return the new created component or nothing, if loading failed. + @param "sURL" , URL, which represents the content + @param "sTargetFrameName" , name of target frame or special value like "_self", "_blank" @param "nSearchFlags" , optional arguments for frame search, if target isn't a special one @param "lArguments" , optional arguments for loading @return A valid component reference, if loading was successful. @@ -597,19 +598,19 @@ css::uno::Reference< css::lang::XComponent > SAL_CALL Desktop::loadComponentFrom /*-************************************************************************************************************ @interface XTasksSupplier - @short get access to create enumerations of our taskchildren + @short get access to create enumerations of our task children @descr Direct children of desktop are tasks every time. - Call these method to could create enumerations of it. + Calling this method allows to create enumerations of the children. -But; Don't forget - you will be the owner of returned object and must release it! - We use a helper class to implement the access interface. They hold a weakreference to us. - It can be, that the desktop is dead - but not your tasksaccess-object! Then they will do nothing! + But, don't forget - you will be the owner of the returned object and must release it! + We use a helper class to implement the access interface. They hold a weak reference to us. + It can be, that the desktop is dead, but not your TasksAccess-object! Then they will do nothing! You can't create enumerations then. - @attention Normally we don't need any lock here. We don't work on internal member! + @attention Normally we don't need any lock here. We don't work on internal members! @seealso class TasksAccess - @return A reference to an accessobject, which can create enumerations of our childtasks. + @return A reference to an access object, which can create enumerations of our child tasks. @onerror A null reference is returned. @threadsafe yes @@ -624,11 +625,11 @@ css::uno::Reference< css::container::XEnumerationAccess > SAL_CALL Desktop::getT @interface XTasksSupplier @short return current active task of our direct children @descr Desktop children are tasks only ! If we have an active path from desktop - as top to any frame on bottom, we must have an active direct child. His reference is returned here. + as top to any frame on bottom, we must have an active direct child. Its reference is returned here. - @attention a) Do not confuse it with getCurrentFrame()! The current frame don't must one of our direct children. - It can be every frame in subtree and must have the focus (Is the last one of an active path!). - b) We don't need any lock here. Our container is threadsafe himself and live, if we live! + @attention a) Do not confuse it with getCurrentFrame()! The current frame might not be one of our direct children. + It can be every frame in subtree and must have the focus (is the last one of an active path!). + b) We don't need any lock here. Our container itself is threadsafe and lives, if we live! @seealso method getCurrentFrame() @return A reference to our current active taskchild. @@ -646,17 +647,17 @@ css::uno::Reference< css::frame::XTask > SAL_CALL Desktop::getActiveTask() @interface XDispatchProvider @short search a dispatcher for given URL @descr We use a helper implementation (class DispatchProvider) to do so. - So we don't must implement this algorithm twice! + So we don't have to implement this algorithm twice! - @attention We don't need any lock here. Our helper is threadsafe himself and live, if we live! + @attention We don't need any lock here. Our helper itself is threadsafe and lives, if we live! @seealso class DispatchProvider @param "aURL" , URL to dispatch - @param "sTargetFrameName" , name of target frame, who should dispatch these URL + @param "sTargetFrameName" , name of target frame, who should dispatch this URL @param "nSearchFlags" , flags to regulate the search @param "lQueries" , list of queryDispatch() calls! - @return A reference or list of founded dispatch objects for these URL. + @return A reference or list of dispatch objects found for this URL. @onerror A null reference is returned. @threadsafe yes @@ -683,8 +684,8 @@ css::uno::Reference< css::frame::XDispatch > SAL_CALL Desktop::queryDispatch( co return css::uno::Reference< css::frame::XDispatch >(); else { - // We use a helper to support these interface and an interceptor mechanism. - // Our helper is threadsafe by himself! + // We use a helper to support this interface and an interceptor mechanism. + // Our helper itself is threadsafe! return m_xDispatchHelper->queryDispatch( aURL, sTargetFrameName, nSearchFlags ); } } @@ -701,7 +702,7 @@ css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL Desk /*-************************************************************************************************************ @interface XDispatchProviderInterception @short supports registration/deregistration of interception objects, which - are interested on special dispatches. + are interested in special dispatches. @descr It's really provided by an internal helper, which is used inside the dispatch API too. @param xInterceptor @@ -726,11 +727,11 @@ void SAL_CALL Desktop::releaseDispatchProviderInterceptor ( const css::uno::Refe /*-************************************************************************************************************ @interface XFramesSupplier @short return access to append or remove children on desktop - @descr We don't implement these interface directly. We use a helper class to do this. - If you wish to add or delete children to/from the container, call these method to get + @descr We don't implement this interface directly. We use a helper class to do this. + If you wish to add or delete children to/from the container, call this method to get a reference to the helper. - @attention Helper is threadsafe himself. So we don't need any lock here. + @attention The helper itself is threadsafe. So we don't need any lock here. @seealso class OFrames @return A reference to the helper. @@ -754,12 +755,12 @@ css::uno::Reference< css::frame::XFrames > SAL_CALL Desktop::getFrames() We don't save this information directly in this class. We use our container-helper to do that. - @attention Helper is threadsafe himself. So we don't need any lock here. + @attention The helper itself is threadsafe. So we don't need any lock here. @seealso class OFrameContainer @param "xFrame", new active frame (must be valid!) - @return A reference to our current active childtask, if anyone exist. + @return A reference to our current active childtask, if any exists. @onerror A null reference is returned. @threadsafe yes @@ -797,9 +798,9 @@ css::uno::Reference< css::frame::XFrame > SAL_CALL Desktop::getActiveFrame() /* @interface XFrame - @short non implemented methods! - @descr Some method make no sense for our desktop! He has no window or parent or ... - So we should implement it empty and warn programmer, if he use it! + @short unimplemented methods! + @descr Some methods make no sense for our desktop! It has no window or parent or ... + So we should have an empty implementation and warn the programmer, if it is used! */ void SAL_CALL Desktop::initialize( const css::uno::Reference< css::awt::XWindow >& ) { @@ -839,14 +840,14 @@ sal_Bool SAL_CALL Desktop::isTop() void SAL_CALL Desktop::activate() { // Desktop is active always... but sometimes our frames try to activate - // the complete path from bottom to top... And our desktop is the topest frame :-( + // the complete path from bottom to top... And our desktop is the topmost frame :-( // So - please don't show any assertions here. Do nothing! } void SAL_CALL Desktop::deactivate() { // Desktop is active always... but sometimes our frames try to deactivate - // the complete path from bottom to top... And our desktop is the topest frame :-( + // the complete path from bottom to top... And our desktop is the topmost frame :-( // So - please don't show any assertions here. Do nothing! } @@ -900,13 +901,13 @@ void SAL_CALL Desktop::removeFrameActionListener( const css::uno::Reference< css If no Frame with the given name is found until the top frames container, a new top Frame is created, if this is allowed by a special FrameSearchFlag. The new Frame also gets the desired name. - We use a helper to get right search direction and react in a right manner. + We use a helper to get the desired search direction and react in the expected manner. @seealso class TargetFinder @param "sTargetFrameName" , name of searched frame @param "nSearchFlags" , flags to regulate search - @return A reference to an existing frame in hierarchy, if it exist. + @return A reference to an existing frame in hierarchy, if it exists. @onerror A null reference is returned. @threadsafe yes @@ -916,28 +917,28 @@ css::uno::Reference< css::frame::XFrame > SAL_CALL Desktop::findFrame( const OUS { css::uno::Reference< css::frame::XFrame > xTarget; - // 0) Ignore wrong parameter! - // We don't support search for following special targets. - // If we reject these requests, we must not check for such names - // in following code again and again. If we do not, so wrong - // search results can occur! + // 0) Ignore wrong parameters! + // We don't support searching for the following special targets. + // If we reject these requests, we don't have to keep checking for such names + // in the code that follows. If we do not reject them, very wrong + // search results may occur! if ( (sTargetFrameName==SPECIALTARGET_DEFAULT ) || // valid for dispatches - not for findFrame()! (sTargetFrameName==SPECIALTARGET_PARENT ) || // we have no parent by definition - (sTargetFrameName==SPECIALTARGET_BEAMER ) // beamer frames are allowed as child of tasks only - - // and they exist more than ones. We have no idea which our sub tasks is the right one + (sTargetFrameName==SPECIALTARGET_BEAMER ) // beamer frames are allowed as children of tasks only - + // and they exist more than once. We have no idea which of our sub tasks is the right one ) { return nullptr; } - // I) check for special defined targets first which must be handled exclusive. - // force using of "if() else if() ..." + // I) Check for special defined targets first which must be handled exclusively. + // Force using of "if() else if() ..." // I.I) "_blank" - // create a new task as child of this desktop instance - // Note: Used helper TaskCreator use us automatically ... + // Create a new task as child of this desktop instance. + // Note: the used helper TaskCreator uses us automatically. if ( sTargetFrameName==SPECIALTARGET_BLANK ) { @@ -954,7 +955,7 @@ css::uno::Reference< css::frame::XFrame > SAL_CALL Desktop::findFrame( const OUS } // I.III) "_self", "" - // This mean this "frame" in every case. + // This means this "frame" in every case. else if ( ( sTargetFrameName==SPECIALTARGET_SELF ) || @@ -967,15 +968,15 @@ css::uno::Reference< css::frame::XFrame > SAL_CALL Desktop::findFrame( const OUS else { - // II) otherwise use optional given search flags - // force using of combinations of such flags. means no "else" part of use if() statements. - // But we ust break further searches if target was already found. - // Order of using flags is fix: SELF - CHILDREN - SIBLINGS - PARENT - // TASK and CREATE are handled special. - // But note: Such flags are not valid for the desktop - especially SIBLINGS or PARENT. + // II) Otherwise use optional given search flags. + // Force using of combinations of such flags. It means there is no "else" part in the used if() statements. + // But we must break further searches if target was already found. + // The order of using flags is fixed: SELF - CHILDREN - SIBLINGS - PARENT + // TASK and CREATE are handled as special cases. + // But note: such flags are not valid for the desktop - especially SIBLINGS or PARENT. // II.I) SELF - // Check for right name. If it's the searched one return ourself - otherwise + // Check for the right name. If it's the searched one, return ourselves - otherwise // ignore this flag. if ( @@ -987,12 +988,12 @@ css::uno::Reference< css::frame::XFrame > SAL_CALL Desktop::findFrame( const OUS } // II.II) TASKS - // This is a special flag. Normally it regulate search inside tasks and forbid access to parent trees. - // But the desktop exists outside such task trees. They are our sub trees. So the desktop implement - // a special feature: We use it to start search on our direct children only. That means we suppress - // search on ALL child frames. May that can be useful to get access on opened document tasks - // only without filter out all non really required sub frames ... - // Used helper method on our container doesn't create any frame - it's a search only. + // This is a special flag. Normally it regulates search inside tasks and forbids access to parent trees. + // But the desktop exists outside such task trees. They are our sub trees. So the desktop implements + // a special feature: we use it to start searching on our direct children only. That means we suppress + // search on ALL child frames. It may be useful to get access to opened document tasks + // only without filtering out all sub frames that are not really required. + // The helper method used on our container doesn't create any frame - it's only for searching. if ( ( ! xTarget.is() ) && @@ -1003,9 +1004,9 @@ css::uno::Reference< css::frame::XFrame > SAL_CALL Desktop::findFrame( const OUS } // II.III) CHILDREN - // Search on all children for the given target name. + // Search all children for the given target name. // An empty name value can't occur here - because it must be already handled as "_self" - // before. Used helper function of container doesn't create any frame. + // before. The used helper function of the container doesn't create any frame. // It makes a deep search only. if ( @@ -1017,8 +1018,8 @@ css::uno::Reference< css::frame::XFrame > SAL_CALL Desktop::findFrame( const OUS } // II.IV) CREATE - // If we haven't found any valid target frame by using normal flags - but user allowed us to create - // a new one ... we should do that. Used TaskCreator use us automatically as parent! + // If we haven't found any valid target frame by using normal flags, but the user allowed us to create + // a new one, we should do that. The used TaskCreator uses us automatically as parent! if ( ( ! xTarget.is() ) && @@ -1048,15 +1049,15 @@ void SAL_CALL Desktop::disposing() } // Disable this instance for further work. - // This will wait for all current running transactions ... - // and reject all new incoming requests! + // This will wait for all current running transactions + // and rejects all new incoming requests! m_aTransactionManager.setWorkingMode(E_BEFORECLOSE); } - // Following lines of code can be called outside a synchronized block ... - // Because our transaction manager will block all new requests to this object. + // The following lines of code can be called outside a synchronized block, + // because our transaction manager will block all new requests to this object. // So nobody can use us any longer. - // Exception: Only removing of listener will work ... and this code can't be dangerous. + // Exception: only removing of listeners will work and this code can't be dangerous. // First we have to kill all listener connections. // They might rely on our member and can hinder us on releasing them. @@ -1064,8 +1065,8 @@ void SAL_CALL Desktop::disposing() css::lang::EventObject aEvent( xThis ); m_aListenerContainer.disposeAndClear( aEvent ); - // Clear our child task container and forget all task references hardly. - // Normally all open document was already closed by our terminate() function before ... + // Clear our child task container and forcefully forget all task references. + // Normally all open documents were already closed by our terminate() function. // New opened frames will have a problem now .-) m_aChildTaskContainer.clear(); @@ -1089,7 +1090,7 @@ void SAL_CALL Desktop::disposing() m_xSfxTerminator.clear(); m_xCommandOptions.reset(); - // From this point nothing will work further on this object ... + // From this point nothing will do further work on this object, // excepting our dtor() .-) m_aTransactionManager.setWorkingMode( E_CLOSE ); } @@ -1101,15 +1102,15 @@ void SAL_CALL Desktop::disposing() about our dying! You must release this listener reference during your own disposing() method. - @attention Our container is threadsafe himself. So we don't need any lock here. - @param "xListener", reference to valid listener. We don't accept invalid values! + @attention Our container itself is threadsafe. So we don't need any lock here. + @param "xListener", reference to a valid listener. We don't accept invalid values! @threadsafe yes */ void SAL_CALL Desktop::addEventListener( const css::uno::Reference< css::lang::XEventListener >& xListener ) { /* UNSAFE AREA --------------------------------------------------------------------------------------------- */ // Safe impossible cases - // Method not defined for all incoming parameter. + // Method not defined for all incoming parameters. SAL_WARN_IF( !xListener.is(), "fwk.desktop", "Desktop::addEventListener(): Invalid parameter detected!" ); // Register transaction and reject wrong calls. TransactionGuard aTransaction( m_aTransactionManager, E_HARDEXCEPTIONS ); @@ -1121,7 +1122,7 @@ void SAL_CALL Desktop::removeEventListener( const css::uno::Reference< css::lang { /* UNSAFE AREA --------------------------------------------------------------------------------------------- */ // Safe impossible cases - // Method not defined for all incoming parameter. + // Method not defined for all incoming parameters. SAL_WARN_IF( !xListener.is(), "fwk.desktop", "Desktop::removeEventListener(): Invalid parameter detected!" ); // Register transaction and reject wrong calls. TransactionGuard aTransaction( m_aTransactionManager, E_SOFTEXCEPTIONS ); @@ -1132,14 +1133,14 @@ void SAL_CALL Desktop::removeEventListener( const css::uno::Reference< css::lang /*-************************************************************************************************************ @interface XDispatchResultListener @short callback for dispatches - @descr To support our method "loadComponentFromURL()" we are listener on temp. created dispatcher. - They call us back in this method "statusChanged()". As source of given state event, they give us a - reference to the target frame, in which dispatch was loaded! So we can use it to return his component - to caller! If no target exist ... ??!! + @descr To support our method "loadComponentFromURL()" we are a listener on temporarily created dispatchers. + They call us back in this method "statusChanged()". As source of a given state event, they hand us a + reference to the target frame in which dispatch was loaded! So we can use it to return its component + to caller! If no target exists ... ??!! @seealso method loadComponentFromURL() - @param "aEvent", state event which (hopefully) valid information + @param "aEvent", state event with (hopefully) valid information @threadsafe yes *//*-*************************************************************************************************************/ void SAL_CALL Desktop::dispatchFinished( const css::frame::DispatchResultEvent& aEvent ) @@ -1164,8 +1165,8 @@ void SAL_CALL Desktop::dispatchFinished( const css::frame::DispatchResultEvent& /*-************************************************************************************************************ @interface XEventListener @short not implemented! - @descr We are a status listener ... and so we must be an event listener too ... But we don't need it really! - We are a temp. listener only and our lifetime isn't smaller then of our temp. used dispatcher. + @descr We are a status listener and so we must be an event listener, too. But we don't actually need to be! + We are only a temporary listener and our lifetime isn't smaller than our temporarily used dispatcher. @seealso method loadComponentFromURL() *//*-*************************************************************************************************************/ @@ -1176,22 +1177,22 @@ void SAL_CALL Desktop::disposing( const css::lang::EventObject& ) /*-************************************************************************************************************ @interface XInteractionHandler - @short callback for loadComponentFromURL for detected exceptions during load process - @descr In this case we must cancel loading and throw these detected exception again as result + @short callback for loadComponentFromURL for exceptions detected during load process + @descr In this case we must cancel loading and throw this detected exception again as a result of our own called method. @attention a) Normal loop in loadComponentFromURL() breaks on set member m_eLoadState during callback statusChanged(). - But these interaction feature implements second way to do so! So we must look on different callbacks - for same operation ... and live with it. + But this interaction feature implements second way to do so! So we must look at different callbacks + for the same operation and live with it. b) - Search for given continuations too. If any XInteractionAbort exist ... use it to abort further operations - for currently running operation! + Search for given continuations, too. If any XInteractionAbort exists, use it to abort further operations + for the currently running operation! @seealso method loadComponentFromURL() @seealso member m_eLoadState - @param "xRequest", request for interaction - normal a wrapped target exception from bottom services + @param "xRequest", request for interaction - normally a wrapped target exception from lower services @threadsafe yes *//*-*************************************************************************************************************/ void SAL_CALL Desktop::handle( const css::uno::Reference< css::task::XInteractionRequest >& xRequest ) @@ -1201,13 +1202,13 @@ void SAL_CALL Desktop::handle( const css::uno::Reference< css::task::XInteractio TransactionGuard aTransaction( m_aTransactionManager, E_HARDEXCEPTIONS ); // Don't check incoming request! - // If somewhere starts interaction without right parameter - he made something wrong. - // loadComponentFromURL() waits for these event - otherwise it yield for ever! + // If interaction starts somewhere without a correct parameter, a mistake was made. + // loadComponentFromURL() waits for this event - otherwise it yields forever! - // get packed request and work on it first - // Attention: Don't set it on internal member BEFORE interaction is finished - because - // "loadComponentFromURL()" yield tills this member is changed. If we do it before - // interaction finish we can't guarantee right functionality. May be we cancel load process to earlier... + // Get packed request and work on it first. + // Attention: don't set it on internal member BEFORE interaction is finished - because + // "loadComponentFromURL()" yields until this member is changed. If we do it before + // interaction finishes we can't guarantee correct functionality. Maybe we cancel load process to earlier... css::uno::Any aRequest = xRequest->getRequest(); // extract continuations from request @@ -1230,7 +1231,7 @@ void SAL_CALL Desktop::handle( const css::uno::Reference< css::task::XInteractio xFilterSelect.set( lContinuations[nStep], css::uno::UNO_QUERY ); } - // differ between abortable interactions (error, unknown filter...) + // Differ between abortable interactions (error, unknown filter...) // and other ones (ambiguous but not unknown filter...) css::task::ErrorCodeRequest aErrorCodeRequest; if( aRequest >>= aErrorCodeRequest ) @@ -1252,8 +1253,8 @@ void SAL_CALL Desktop::handle( const css::uno::Reference< css::task::XInteractio } // Ok now it's time to break yield loop of loadComponentFromURL(). - // But only for really aborted requests! - // For example warnings will be approved and we wait for any success story ... + // But only for actually aborted requests! + // For example, warnings will be approved and we wait for any success story. if (bAbort) { SolarMutexGuard g; @@ -1287,14 +1288,14 @@ OUString SAL_CALL Desktop::getUntitledPrefix() /*-************************************************************************************************************ @short try to convert a property value - @descr This method is called from helperclass "OPropertySetHelper". + @descr This method is called from helper class "OPropertySetHelper". Don't use this directly! - You must try to convert the value of given PropHandle and - return results of this operation. This will be used to ask vetoable - listener. If no listener has a veto, we will change value really! + You must try to convert the value of a given PropHandle and + return the results of this operation. This will be used to ask vetoable + listeners. If no listener has a veto, we will change the value! ( in method setFastPropertyValue_NoBroadcast(...) ) - @attention Methods of OPropertySethelper are safed by using our shared osl mutex! (see ctor!) + @attention Methods of OPropertySethelper are made safe by using our shared osl mutex (see ctor!). So we must use different locks to make our implementation threadsafe. @seealso class OPropertySetHelper @@ -1304,7 +1305,7 @@ OUString SAL_CALL Desktop::getUntitledPrefix() @param "aOldValue" old value of property @param "nHandle" handle of property @param "aValue" new value of property - @return sal_True if value will be changed, sal_FALSE otherway + @return sal_True if value will be changed, sal_FALSE otherwise @onerror IllegalArgumentException, if you call this with an invalid argument @threadsafe yes @@ -1353,10 +1354,10 @@ sal_Bool SAL_CALL Desktop::convertFastPropertyValue( css::uno::Any& aCon /*-************************************************************************************************************ @short set value of a transient property - @descr This method is calling from helperclass "OPropertySetHelper". + @descr This method is calling from helper class "OPropertySetHelper". Don't use this directly! - Handle and value are valid everyway! You must set the new value only. - After this, baseclass send messages to all listener automatically. + Handle and value are valid in every way! You must set the new value only. + After this, base class sends messages to all listener automatically. @seealso class OPropertySetHelper @@ -1385,10 +1386,10 @@ void SAL_CALL Desktop::setFastPropertyValue_NoBroadcast( sal_Int32 /*-************************************************************************************************************ @short get value of a transient property - @descr This method is calling from helperclass "OPropertySetHelper". + @descr This method is calling from helper class "OPropertySetHelper". Don't use this directly! - @attention We don't need any mutex or lock here ... We use threadsafe container or methods here only! + @attention We don't need any mutex or lock here. We only use threadsafe containers or methods here! @seealso class OPropertySetHelper @@ -1447,12 +1448,12 @@ void SAL_CALL Desktop::getFastPropertyValue( css::uno::Any& aValue , /*-************************************************************************************************************ @short return propertysetinfo - @descr You can call this method to get information about transient properties + @descr You can call this method to get information about the transient properties of this object. - @attention You must use global lock (method use static variable) ... and it must be the shareable osl mutex of it. - Because; our baseclass use this mutex to make his code threadsafe. We use our lock! - So we could have two different mutex/lock mechanism at the same object. + @attention You must use a global lock (method uses a static variable) and it must be its shareable osl mutex. + Because our base class uses this mutex to make its code threadsafe. We use our lock! + So we could have two different mutex/lock mechanisms for the same object. @seealso class OPropertySetHelper @seealso interface XPropertySet @@ -1466,7 +1467,7 @@ css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL Desktop::getPropert // Register transaction and reject wrong calls. TransactionGuard aTransaction( m_aTransactionManager, E_HARDEXCEPTIONS ); - // Create structure of propertysetinfo for baseclass "OPropertySetHelper". + // Create structure of propertysetinfo for base class "OPropertySetHelper". // (Use method "getInfoHelper()".) static css::uno::Reference< css::beans::XPropertySetInfo > xInfo( cppu::OPropertySetHelper::createPropertySetInfo( getInfoHelper() ) ); @@ -1476,17 +1477,17 @@ css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL Desktop::getPropert /*-************************************************************************************************************ @short return current component of current frame - @descr The desktop himself has no component. But every frame in subtree. - If somewhere call getCurrentComponent() at this class, we try to find the right frame and - then we try to become his component. It can be a VCL-component, the model or the controller - of founded frame. + @descr The desktop itself has no component. But every frame in subtree. + If getCurrentComponent() of this class is called somewhere, we try to find the correct frame and + then we try to become its component. It can be a VCL-component, the model or the controller + of the found frame. @attention We don't work on internal member ... so we don't need any lock here. @seealso method getCurrentComponent(); @param "xFrame", reference to valid frame in hierarchy. Method is not defined for invalid values. - But we don't check these. It's an IMPL-method and caller must use it right! + But we don't check these. It's an IMPL-method and caller must use it correctly! @return A reference to found component. @onerror A null reference is returned. @@ -1500,25 +1501,25 @@ css::uno::Reference< css::lang::XComponent > Desktop::impl_getFrameComponent( co // Set default return value, if method failed. css::uno::Reference< css::lang::XComponent > xComponent; - // Does no controller exists? + // Does no controller exist? css::uno::Reference< css::frame::XController > xController = xFrame->getController(); if( !xController.is() ) { - // Controller not exist - use the VCL-component. + // Controller does not exist - use the VCL-component. xComponent = xFrame->getComponentWindow(); } else { - // Does no model exists? + // Does no model exist? css::uno::Reference< css::frame::XModel > xModel = xController->getModel(); if( xModel.is() ) { - // Model exist - use the model as component. + // Model exists - use the model as component. xComponent = xModel; } else { - // Model not exist - use the controller as component. + // Model does not exist - use the controller as component. xComponent = xController; } } @@ -1549,14 +1550,14 @@ bool Desktop::impl_sendQueryTerminationEvent(Desktop::TTerminateListenerList& lC } catch( const css::frame::TerminationVetoException& ) { - // first veto will stop the query loop. + // First veto will stop the query loop. return false; } catch( const css::uno::Exception& ) { - // clean up container. + // Clean up container. // E.g. dead remote listener objects can make trouble otherwise. - // Iterator implementation allows removing objects during it's used ! + // Iterator implementation allows removing objects during use! aIterator.remove(); } } @@ -1614,9 +1615,9 @@ void Desktop::impl_sendTerminateToClipboard() } catch( const css::uno::Exception& ) { - // clean up container. + // Clean up container. // E.g. dead remote listener objects can make trouble otherwise. - // Iterator implementation allows removing objects during it's used ! + // Iterator implementation allows removing objects during use! aIterator.remove(); } } @@ -1641,9 +1642,9 @@ void Desktop::impl_sendNotifyTerminationEvent() } catch( const css::uno::Exception& ) { - // clean up container. + // Clean up container. // E.g. dead remote listener objects can make trouble otherwise. - // Iterator implementation allows removing objects during it's used ! + // Iterator implementation allows removing objects during use! aIterator.remove(); } } @@ -1665,7 +1666,7 @@ bool Desktop::impl_closeFrames(bool bAllowUI) { const css::uno::Reference< css::frame::XFrame >& xFrame = lFrames[i]; - // XController.suspend() will show a UI ... + // XController.suspend() will show a UI. // Use it in case it was allowed from outside only. bool bSuspended = false; css::uno::Reference< css::frame::XController > xController = xFrame->getController(); @@ -1694,35 +1695,35 @@ bool Desktop::impl_closeFrames(bool bAllowUI) } catch(const css::util::CloseVetoException&) { - // Any internal process of this frame disagree with our request. - // Safe this state but don't break these loop. Other frames has to be closed! + // Any internal process of this frame disagrees with our request. + // Save this state but don't break this loop. Other frames have to be closed! ++nNonClosedFrames; // Reactivate controller. - // It can happen that XController.suspend() returned true... but a registered close listener - // threw these veto exception. Then the controller has to be reactivated. Otherwise - // these document doesn't work any more. + // It can happen that XController.suspend() returned true, but a registered closed listener + // threw this veto exception. Then the controller has to be reactivated. Otherwise + // this document doesn't work any more. if ( bSuspended && xController.is()) xController->suspend(false); } - // If interface XClosable interface exists and was used... - // it's not allowed to use XComponent->dispose() also! + // If interface XClosable interface exists and was used, + // it's not allowed to also use XComponent->dispose() ! continue; } // XClosable not supported ? - // Then we have to dispose these frame hardly. + // Then we have to forcefully dispose this frame. if ( xFrame.is() ) xFrame->dispose(); - // Don't remove these frame from our child container! - // A frame do it by itself inside close()/dispose() method. + // Don't remove this frame from our child container! + // A frame does it by itself inside close()/dispose() method. } catch(const css::lang::DisposedException&) { - // Dispose frames are closed frames. - // So we can count it here .-) + // Disposed frames are closed frames. + // So we can count them here .-) } } diff --git a/framework/source/services/frame.cxx b/framework/source/services/frame.cxx index 54c33bb96058..8d1dbb331e01 100644 --- a/framework/source/services/frame.cxx +++ b/framework/source/services/frame.cxx @@ -92,15 +92,15 @@ namespace { // This enum can be used to set different active states of frames enum EActiveState { - E_INACTIVE, // I am not a member of active path in tree and i don't have the focus. - E_ACTIVE, // I am in the middle of an active path in tree and i don't have the focus. - E_FOCUS // I have the focus now. I must a member of an active path! + E_INACTIVE, // I am not a member of active path in tree and I don't have the focus. + E_ACTIVE, // I am in the middle of an active path in tree and I don't have the focus. + E_FOCUS // I have the focus now. I must be a member of an active path! }; /*-************************************************************************************************************ @short implements a normal frame of hierarchy - @descr An instance of these class can be a normal node in frame tree. A frame support influencing of his - subtree, find of subframes, activate- and deactivate-mechanism as well as + @descr An instance of this class can be a normal node in a frame tree. A frame supports influencing its + subtree, finding of subframes, activate- and deactivate-mechanisms as well as set/get of a frame window, component or controller. *//*-*************************************************************************************************************/ class XFrameImpl: @@ -204,7 +204,7 @@ public: virtual css::uno::Sequence < css::frame::DispatchInformation > SAL_CALL getConfigurableDispatchInformation(sal_Int16 nCommandGroup) override; // XWindowListener - // Attention: windowResized() and windowShown() are implement only! All other are empty! + // Attention: only windowResized() and windowShown() are implemented! All others are empty! virtual void SAL_CALL windowResized(const css::awt::WindowEvent & aEvent) override; virtual void SAL_CALL windowMoved(const css::awt::WindowEvent & /*aEvent*/ ) override {}; @@ -218,7 +218,7 @@ public: virtual void SAL_CALL focusLost(const css::awt::FocusEvent & /*aEvent*/ ) override {}; // XTopWindowListener - // Attention: windowActivated(), windowDeactivated() and windowClosing() are implement only! All other are empty! + // Attention: only windowActivated(), windowDeactivated() and windowClosing() are implemented! All others are empty! virtual void SAL_CALL windowActivated(const css::lang::EventObject & aEvent) override; virtual void SAL_CALL windowDeactivated(const css::lang::EventObject & aEvent) override; @@ -323,9 +323,9 @@ private: * if a property with the same name already exists. * * Note: The consistence of the whole set of properties is not checked here. - * Means e.g. ... a handle which exists more than once is not detected. - * The owner of this class has to be sure, that every new property does - * not clash with any existing one. + * Meaning e.g. a handle which exists more than once is not detected. + * The owner of this class has to be sure, that no new property + * clashes with an existing one. */ void impl_addPropertyInfo(const css::beans::Property& aProperty); @@ -339,7 +339,7 @@ private: /*-**************************************************************************************************** @short helper methods - @descr Follow methods are needed at different points of our code (more than ones!). + @descr The following methods are needed at different points in our code (more than once!). @attention Threadsafe methods are signed by "implts_..."! *//*-*****************************************************************************************************/ @@ -369,7 +369,7 @@ private: // variables // -threadsafe by SolarMutex - /// reference to factory, which has create this instance + /// reference to factory, which has created this instance css::uno::Reference< css::uno::XComponentContext > m_xContext; /// reference to factory helper to create status indicator objects css::uno::Reference< css::task::XStatusIndicatorFactory > m_xIndicatorFactoryHelper; @@ -379,7 +379,7 @@ private: rtl::Reference< InterceptionHelper > m_xDispatchHelper; /// helper for XFrames, XIndexAccess and XElementAccess interfaces rtl::Reference< OFrames > m_xFramesHelper; - /// container for ALL Listener + /// container for ALL Listeners comphelper::OMultiTypeInterfaceContainerHelper2 m_aListenerContainer; /// parent of this frame css::uno::Reference< css::frame::XFramesSupplier > m_xParent; @@ -391,7 +391,7 @@ private: css::uno::Reference< css::frame::XController > m_xController; /// listen to drag & drop rtl::Reference< OpenFileDropTargetListener > m_xDropTargetListener; - /// state, if I am a member of active path in tree or I have the focus or... + /// state, if I am a member of an active path in the tree or I have the focus or... EActiveState m_eActiveState; /// name of this frame OUString m_sName; @@ -400,17 +400,17 @@ private: /// due to FrameActionEvent bool m_bConnected; sal_Int16 m_nExternalLockCount; - /// is used for dispatch recording and will be set/get from outside. Frame provide it only! + /// is used for dispatch recording and will be set/get from outside. Only the frame provides it! css::uno::Reference< css::frame::XDispatchRecorderSupplier > m_xDispatchRecorderSupplier; /// ref counted class to support disabling commands defined by configuration file SvtCommandOptions m_aCommandOptions; - /// in case of CloseVetoException on method close() was thrown by ourself - we must close ourself later if no internal processes are running + /// in case of CloseVetoException on method close() was thrown by ourselves, we must close ourselves later if no internal processes are running bool m_bSelfClose; /// indicates, if this frame is used in hidden mode or not bool m_bIsHidden; /// The container window has WindowExtendedStyle::DocHidden set. bool m_bDocHidden = false; - /// is used to layout the child windows of the frame. + /// Is used to layout the child windows of the frame. css::uno::Reference< css::frame::XLayoutManager2 > m_xLayoutManager; rtl::Reference< DispatchInformationProvider > m_xDispatchInfoHelper; rtl::Reference< TitleHelper > m_xTitleHelper; @@ -428,8 +428,7 @@ private: FrameContainer m_aChildFrameContainer; /// array of child frames /** - * URL of the file that is being loaded, when the load already started by we have no controller - * yet. + * URL of the file that is being loaded. During the loading we don't have a controller yet. */ OUString m_aURL; }; @@ -437,16 +436,16 @@ private: /*-**************************************************************************************************** @short standard constructor to create instance by factory - @descr This constructor initialize a new instance of this class by valid factory, - and will be set valid values on his member and baseclasses. + @descr This constructor initializes a new instance of this class by valid factory, + and will be set valid values on its member and base classes. @attention a) Don't use your own reference during a UNO-Service-ctor! There is no guarantee, that you - will get over this. (e.g. using of your reference as parameter to initialize some member) - Do such things in DEFINE_INIT_SERVICE() method, which is called automatically after your ctor!!! - b) Baseclass OBroadcastHelper is a typedef in namespace cppu! - The microsoft compiler has some problems to handle it right BY using namespace explicitly ::cppu::OBroadcastHelper. + will succeed (e.g. using your reference as parameter to initialize some member). + Do such things in the DEFINE_INIT_SERVICE() method, which is called automatically after your ctor!!! + b) Base class OBroadcastHelper is a typedef in namespace cppu! + The Microsoft compiler has some problems to handle it right by using namespace explicitly ::cppu::OBroadcastHelper. If we write it without a namespace or expand the typedef to OBroadcastHelperVar<...> -> it will be OK!? - I don't know why! (other compiler not tested .. but it works!) + I don't know why! (other compilers not tested, but it works!) @seealso method DEFINE_INIT_SERVICE() @@ -460,8 +459,8 @@ XFrameImpl::XFrameImpl( css::uno::Reference< css::uno::XComponentContext > xCon , m_xContext (std::move( xContext )) , m_aListenerContainer ( m_aMutex ) , m_eActiveState ( E_INACTIVE ) - , m_bIsFrameTop ( true ) // I think we are top without a parent ... and there is no parent yet! - , m_bConnected ( false ) // There exist no component inside of use => sal_False, we are not connected! + , m_bIsFrameTop ( true ) // I think we are top without a parent and there is no parent yet! + , m_bConnected ( false ) // There exists no component inside of us => sal_False, we are not connected! , m_nExternalLockCount ( 0 ) , m_bSelfClose ( false ) // Important! , m_bIsHidden ( true ) @@ -474,9 +473,9 @@ void XFrameImpl::initListeners() { css::uno::Reference< css::uno::XInterface > xThis(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY_THROW); - // Initialize a new dispatchhelper-object to handle dispatches. - // We use these helper as slave for our interceptor helper ... not directly! - // But he is event listener on THIS instance! + // Initialize a new DispatchHelper-object to handle dispatches. + // We use this helper as a slave for our interceptor helper, not directly! + // But the helper is an event listener in THIS instance! rtl::Reference<DispatchProvider> xDispatchProvider = new DispatchProvider( m_xContext, this ); m_xDispatchInfoHelper = new DispatchInformationProvider(m_xContext, this); @@ -488,13 +487,13 @@ void XFrameImpl::initListeners() m_xDispatchHelper = new InterceptionHelper( this, xDispatchProvider ); // Initialize a new XFrames-helper-object to handle XIndexAccess and XElementAccess. - // We hold member as reference ... not as pointer too! - // Attention: We share our frame container with this helper. Container is threadsafe himself ... So I think we can do that. - // But look on dispose() for right order of deinitialization. + // We only hold the member as reference and not as pointer! + // Attention: we share our frame container with this helper. Container itself is threadsafe ... So I think we can do that. + // But look at dispose() for the right order of deinitialization. m_xFramesHelper = new OFrames( this, &m_aChildFrameContainer ); // Initialize the drop target listener. - // We hold member as reference ... not as pointer too! + // We only hold the member as reference and not as pointer! m_xDropTargetListener = new OpenFileDropTargetListener( m_xContext, this ); // Safe impossible cases @@ -508,7 +507,7 @@ void XFrameImpl::initListeners() SAL_WARN_IF( !m_xDropTargetListener.is(), "fwk.frame", "XFrameImpl::XFrameImpl(): DropTarget helper is not valid. " "Drag and drop without functionality!" ); - // establish notifies for changing of "disabled commands" configuration during runtime + // establish notifications for changing of "disabled commands" configuration during runtime m_aCommandOptions.EstablishFrameCallback(this); // Create an initial layout manager @@ -556,9 +555,9 @@ void XFrameImpl::initListeners() @interface XComponentLoader @short try to load given URL into a task @descr You can give us some information about the content, which you will load into a frame. - We search or create this target for you, make a type detection of given URL and try to load it. + We search or create this target for you, make a type detection of the given URL and try to load it. As result of this operation we return the new created component or nothing, if loading failed. - @param "sURL" , URL, which represent the content + @param "sURL" , URL, which represents the content @param "sTargetFrameName" , name of target frame or special value like "_self", "_blank" ... @param "nSearchFlags" , optional arguments for frame search, if target is not a special one @param "lArguments" , optional arguments for loading @@ -600,12 +599,12 @@ css::uno::Reference< css::lang::XComponent > SAL_CALL XFrameImpl::loadComponentF /*-**************************************************************************************************** @short return access to append or remove children on desktop - @descr We don't implement these interface directly. We use a helper class to do this. - If you wish to add or delete children to/from the container, call these method to get + @descr We don't implement this interface directly. We use a helper class to do this. + If you wish to add or delete children to/from the container, call this method to get a reference to the helper. @seealso class OFrames - @return A reference to the helper which answer your queries. + @return A reference to the helper which answers your queries. @onerror A null reference is returned. *//*-*****************************************************************************************************/ @@ -621,13 +620,13 @@ css::uno::Reference< css::frame::XFrames > SAL_CALL XFrameImpl::getFrames() /*-**************************************************************************************************** @short get the current active child frame - @descr It must be a frameto. Direct children of a frame are frames only! No task or desktop is accepted. + @descr It must be a frame, too. Direct children of a frame are frames only! No task or desktop is accepted. We don't save this information directly in this class. We use our container-helper to do that. @seealso class OFrameContainer @seealso method setActiveFrame() - @return A reference to our current active childframe, if anyone exist. + @return A reference to our current active childframe, if any exist. @return A null reference, if nobody is active. @onerror A null reference is returned. @@ -638,13 +637,13 @@ css::uno::Reference< css::frame::XFrame > SAL_CALL XFrameImpl::getActiveFrame() SolarMutexGuard g; // Return current active frame. - // This information is available on the container. + // This information is available via the container. return m_aChildFrameContainer.getActive(); } /*-**************************************************************************************************** @short set the new active direct child frame - @descr It must be a frame to. Direct children of frame are frames only! No task or desktop is accepted. + @descr It must be a frame, too. Direct children of frame are frames only! No task or desktop is accepted. We don't save this information directly in this class. We use our container-helper to do that. @@ -652,7 +651,7 @@ css::uno::Reference< css::frame::XFrame > SAL_CALL XFrameImpl::getActiveFrame() @seealso method getActiveFrame() @param "xFrame", reference to new active child. It must be an already existing child! - @onerror An assertion is thrown and element is ignored, if given frame isn't already a child of us. + @onerror An assertion is thrown and element is ignored, if the given frame isn't already a child of us. *//*-*****************************************************************************************************/ void SAL_CALL XFrameImpl::setActiveFrame( const css::uno::Reference< css::frame::XFrame >& xFrame ) { @@ -662,7 +661,7 @@ void SAL_CALL XFrameImpl::setActiveFrame( const css::uno::Reference< css::frame: SolarMutexResettableGuard aWriteLock; // Copy necessary member for threadsafe access! - // m_aChildFrameContainer is threadsafe himself and he live if we live!!! + // m_aChildFrameContainer itself is threadsafe and it lives if we live!!! css::uno::Reference< css::frame::XFrame > xActiveChild = m_aChildFrameContainer.getActive(); EActiveState eActiveState = m_eActiveState; @@ -699,7 +698,7 @@ void SAL_CALL XFrameImpl::setActiveFrame( const css::uno::Reference< css::frame: // If last active frame was active ... // but new one is not it ... - // ... set it as active one. + // ... set it as the active one. if ( eActiveState == E_ACTIVE && !xFrame->isActive() ) { xFrame->activate(); @@ -744,15 +743,15 @@ void XFrameImpl::disableLayoutManager(const css::uno::Reference< css::frame::XLa /*-**************************************************************************************************** @short initialize frame instance - @descr A frame needs a window. This method set a new one ... but should called one times only! - We use this window to listen for window events and forward it to our set component. - It's used as parent of component window too. + @descr A frame needs a window. This method sets a new one, but should only be called once! + We use this window to listen for window events and to forward them to our set component. + It's used as a parent of component window, too. @seealso method getContainerWindow() @seealso method setComponent() @seealso member m_xContainerWindow - @param "xWindow", reference to new container window - must be valid! + @param "xWindow", reference to a new container window - must be valid! @onerror We do nothing. *//*-*****************************************************************************************************/ void SAL_CALL XFrameImpl::initialize( const css::uno::Reference< css::awt::XWindow >& xWindow ) @@ -790,7 +789,7 @@ void SAL_CALL XFrameImpl::initialize( const css::uno::Reference< css::awt::XWind css::uno::Reference< css::frame::XLayoutManager2 > xLayoutManager = m_xLayoutManager; - // Release lock ... because we call some impl methods, which are threadsafe by himself. + // Release lock, because we call some impl methods, which are threadsafe by themselves. // If we hold this lock - we will produce our own deadlock! aWriteLock.clear(); /* UNSAFE AREA --------------------------------------------------------------------------------------------- */ @@ -814,7 +813,7 @@ void SAL_CALL XFrameImpl::initialize( const css::uno::Reference< css::awt::XWind // <- SAFE ---------------------------------- } - // Start listening for events after setting it on helper class ... + // Start listening for events after setting it on helper class. // So superfluous messages are filtered to NULL :-) implts_startWindowListening(); @@ -825,14 +824,14 @@ void SAL_CALL XFrameImpl::initialize( const css::uno::Reference< css::awt::XWind } /*-**************************************************************************************************** - @short returns current set container window + @short returns currently set container window @descr The ContainerWindow property is used as a container for the component in this frame. So this object implements a container interface too. -e ... etc. - the rest is truncated