summaryrefslogtreecommitdiff
path: root/offapi/com
diff options
context:
space:
mode:
authorFrank Schoenheit [fs] <frank.schoenheit@sun.com>2010-10-27 12:23:53 +0200
committerFrank Schoenheit [fs] <frank.schoenheit@sun.com>2010-10-27 12:23:53 +0200
commite30a9f02265ad280d358a43e7030f74d9559005b (patch)
tree59aa2cdba9f53a1e75accb4e524f70a8e5cfcd76 /offapi/com
parent0075f75fa084a50e9a3041cffed48c331bda5266 (diff)
undoapi: outsourced locking functionality into a dedicated interface
Diffstat (limited to 'offapi/com')
-rwxr-xr-xoffapi/com/sun/star/document/XUndoManager.idl42
-rw-r--r--offapi/com/sun/star/document/makefile.mk1
-rwxr-xr-xoffapi/com/sun/star/util/NotLockedException.idl (renamed from offapi/com/sun/star/document/NotLockedException.idl)6
-rwxr-xr-xoffapi/com/sun/star/util/XLockable.idl79
-rw-r--r--offapi/com/sun/star/util/makefile.mk2
5 files changed, 92 insertions, 38 deletions
diff --git a/offapi/com/sun/star/document/XUndoManager.idl b/offapi/com/sun/star/document/XUndoManager.idl
index 71122f33c..2a390fb4e 100755
--- a/offapi/com/sun/star/document/XUndoManager.idl
+++ b/offapi/com/sun/star/document/XUndoManager.idl
@@ -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(
diff --git a/offapi/com/sun/star/document/makefile.mk b/offapi/com/sun/star/document/makefile.mk
index ebef44407..1521e6b95 100644
--- a/offapi/com/sun/star/document/makefile.mk
+++ b/offapi/com/sun/star/document/makefile.mk
@@ -120,7 +120,6 @@ IDLFILES=\
XUndoManagerListener.idl \
XUndoManagerSupplier.idl \
UndoManagerEvent.idl \
- NotLockedException.idl \
EmptyUndoStackException.idl \
UndoContextNotClosedException.idl \
UndoFailedException.idl \
diff --git a/offapi/com/sun/star/document/NotLockedException.idl b/offapi/com/sun/star/util/NotLockedException.idl
index 94f1eb3a5..a8865c25b 100755
--- a/offapi/com/sun/star/document/NotLockedException.idl
+++ b/offapi/com/sun/star/util/NotLockedException.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 {
//==================================================================================================================
diff --git a/offapi/com/sun/star/util/XLockable.idl b/offapi/com/sun/star/util/XLockable.idl
new file mode 100755
index 000000000..5616a42c2
--- /dev/null
+++ b/offapi/com/sun/star/util/XLockable.idl
@@ -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
diff --git a/offapi/com/sun/star/util/makefile.mk b/offapi/com/sun/star/util/makefile.mk
index aa0374296..87dc2d078 100644
--- a/offapi/com/sun/star/util/makefile.mk
+++ b/offapi/com/sun/star/util/makefile.mk
@@ -145,6 +145,8 @@ IDLFILES=\
UriAbbreviation.idl\
XJobManager.idl\
JobManager.idl\
+ XLockable.idl\
+ NotLockedException.idl\
# ------------------------------------------------------------------