undoapi: outsourced locking functionality into a dedicated interface
This commit is contained in:
parent
d4be10b3fa
commit
b8ae0aaaf1
5 changed files with 92 additions and 38 deletions
|
@ -28,10 +28,10 @@
|
|||
#define __com_sun_star_document_XUndoManager_idl__
|
||||
|
||||
#include <com/sun/star/document/EmptyUndoStackException.idl>
|
||||
#include <com/sun/star/document/NotLockedException.idl>
|
||||
#include <com/sun/star/document/UndoContextNotClosedException.idl>
|
||||
#include <com/sun/star/document/UndoFailedException.idl>
|
||||
#include <com/sun/star/util/InvalidStateException.idl>
|
||||
#include <com/sun/star/util/XLockable.idl>
|
||||
#include <com/sun/star/lang/IllegalArgumentException.idl>
|
||||
#include <com/sun/star/lang/WrappedTargetException.idl>
|
||||
|
||||
|
@ -71,12 +71,16 @@ interface XUndoManagerListener;
|
|||
|
||||
<a name="locking"></a>
|
||||
<h3>Locking</h3>
|
||||
<p>An Undo manager can be locked and unlocked, using the <member>lock</member> and <member>unlock</member> methods.
|
||||
When it is locked, then every attempt to add an undo action, or to enter or leave an Undo context, will be silently
|
||||
ignored.</p>
|
||||
<p>An Undo manager can be locked and unlocked, using the <member>XLockable::lock</member> and
|
||||
<member>XLockable::unlock</member> methods. When it is locked, then every attempt to add an undo action, or to
|
||||
enter or leave an Undo context, will be silently ignored.</p>
|
||||
*/
|
||||
interface XUndoManager
|
||||
{
|
||||
/** allows <a href="#locking">locking</a> the undo manager.
|
||||
*/
|
||||
interface ::com::sun::star::util::XLockable;
|
||||
|
||||
/** enters a new undo context.
|
||||
|
||||
<p>A new undo action will be added to the undo stack, with the title given as <code>i_title</code>. As long
|
||||
|
@ -303,36 +307,6 @@ interface XUndoManager
|
|||
*/
|
||||
void reset();
|
||||
|
||||
/** locks</a> the Undo manager
|
||||
|
||||
<p><code>lock</code> and <code>unlock</code> calls can be nested. However, they must be in
|
||||
pairs. As long as there has been one more call to <code>lock</code> than to <code>unlock</code>, the
|
||||
Undo manager is considered <a href="#locking">locked</a>.</p>
|
||||
|
||||
@see unlock
|
||||
@see isLocked
|
||||
*/
|
||||
void lock();
|
||||
|
||||
/** unlocks the Undo manager
|
||||
|
||||
@throws ::com::sun::star::document::NotLockedException
|
||||
if the Undo manager is not currently locked.
|
||||
|
||||
@see lock
|
||||
@see isLocked
|
||||
*/
|
||||
void unlock()
|
||||
raises ( ::com::sun::star::document::NotLockedException
|
||||
);
|
||||
|
||||
/** determines whether the Undo manager is currently locked.
|
||||
|
||||
@see lock
|
||||
@see unlock
|
||||
*/
|
||||
boolean isLocked();
|
||||
|
||||
/** adds a listener to be notified of changes in the Undo/Redo stacks.
|
||||
*/
|
||||
void addUndoManagerListener(
|
||||
|
|
|
@ -120,7 +120,6 @@ IDLFILES=\
|
|||
XUndoManagerListener.idl \
|
||||
XUndoManagerSupplier.idl \
|
||||
UndoManagerEvent.idl \
|
||||
NotLockedException.idl \
|
||||
EmptyUndoStackException.idl \
|
||||
UndoContextNotClosedException.idl \
|
||||
UndoFailedException.idl \
|
||||
|
|
|
@ -24,14 +24,14 @@
|
|||
*
|
||||
************************************************************************/
|
||||
|
||||
#ifndef __com_sun_star_document_NotLockedException_idl__
|
||||
#define __com_sun_star_document_NotLockedException_idl__
|
||||
#ifndef __com_sun_star_util_NotLockedException_idl__
|
||||
#define __com_sun_star_util_NotLockedException_idl__
|
||||
|
||||
#include <com/sun/star/util/InvalidStateException.idl>
|
||||
|
||||
//==================================================================================================================
|
||||
|
||||
module com { module sun { module star { module document {
|
||||
module com { module sun { module star { module util {
|
||||
|
||||
//==================================================================================================================
|
||||
|
79
offapi/com/sun/star/util/XLockable.idl
Executable file
79
offapi/com/sun/star/util/XLockable.idl
Executable file
|
@ -0,0 +1,79 @@
|
|||
/*************************************************************************
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* Copyright 2000, 2010 Oracle and/or its affiliates.
|
||||
*
|
||||
* OpenOffice.org - a multi-platform office productivity suite
|
||||
*
|
||||
* This file is part of OpenOffice.org.
|
||||
*
|
||||
* OpenOffice.org is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License version 3
|
||||
* only, as published by the Free Software Foundation.
|
||||
*
|
||||
* OpenOffice.org is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License version 3 for more details
|
||||
* (a copy is included in the LICENSE file that accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* version 3 along with OpenOffice.org. If not, see
|
||||
* <http://www.openoffice.org/license.html>
|
||||
* for a copy of the LGPLv3 License.
|
||||
*
|
||||
************************************************************************/
|
||||
|
||||
#ifndef __com_sun_star_util_XLockable_idl__
|
||||
#define __com_sun_star_util_XLockable_idl__
|
||||
|
||||
#include <com/sun/star/util/NotLockedException.idl>
|
||||
|
||||
//==================================================================================================================
|
||||
|
||||
module com { module sun { module star { module util {
|
||||
|
||||
//==================================================================================================================
|
||||
|
||||
/** allows locking a component
|
||||
|
||||
<p><code>lock</code> and <code>unlock</code> calls can be nested. However, they must be in
|
||||
pairs. As long as there has been one more call to <code>lock</code> than to <code>unlock</code>, the
|
||||
component is considered locked, which is reflected by <member>isLocked</member> returning <TRUE/>.</p>
|
||||
*/
|
||||
interface XLockable
|
||||
{
|
||||
/** locks</a> the component
|
||||
|
||||
@see unlock
|
||||
@see isLocked
|
||||
*/
|
||||
void lock();
|
||||
|
||||
/** unlocks the component
|
||||
|
||||
@throws NotLockedException
|
||||
if the component is not currently locked.
|
||||
|
||||
@see lock
|
||||
@see isLocked
|
||||
*/
|
||||
void unlock()
|
||||
raises ( NotLockedException
|
||||
);
|
||||
|
||||
/** determines whether the component is currently locked.
|
||||
|
||||
@see lock
|
||||
@see unlock
|
||||
*/
|
||||
boolean isLocked();
|
||||
};
|
||||
|
||||
//==================================================================================================================
|
||||
|
||||
}; }; }; };
|
||||
|
||||
//==================================================================================================================
|
||||
|
||||
#endif
|
|
@ -145,6 +145,8 @@ IDLFILES=\
|
|||
UriAbbreviation.idl\
|
||||
XJobManager.idl\
|
||||
JobManager.idl\
|
||||
XLockable.idl\
|
||||
NotLockedException.idl\
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
|
|
Loading…
Reference in a new issue