summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Schoenheit [fs] <frank.schoenheit@oracle.com>2011-01-31 13:14:07 +0100
committerFrank Schoenheit [fs] <frank.schoenheit@oracle.com>2011-01-31 13:14:07 +0100
commit9f72ee283c870a7ceb584556d1e48084beb1968a (patch)
treed4f5262a4b75ccde840c2480524c0609fbbf3fb1
parentdba34b: merged DEV300m96 (diff)
parentgridsort: i116682: update UnoControlDialog to reflect XDialog (diff)
downloadcore-9f72ee283c870a7ceb584556d1e48084beb1968a.tar.gz
core-9f72ee283c870a7ceb584556d1e48084beb1968a.zip
Automated merge with ssh://hg@hg.services.openoffice.org/cws/dba34b
-rw-r--r--cppu/inc/com/sun/star/uno/Sequence.h2
-rw-r--r--cppuhelper/inc/cppuhelper/factory.hxx4
-rw-r--r--cppuhelper/source/tdmgr.cxx34
-rw-r--r--jurt/com/sun/star/lib/uno/protocols/urp/Cache.java2
-rw-r--r--jurt/prj/build.lst1
-rw-r--r--jurt/test/com/sun/star/lib/uno/protocols/urp/Cache_Test.java100
-rw-r--r--jurt/test/com/sun/star/lib/uno/protocols/urp/Marshaling_Test.java17
-rw-r--r--jurt/test/com/sun/star/lib/uno/protocols/urp/Protocol_Test.java45
-rw-r--r--jurt/test/com/sun/star/lib/uno/protocols/urp/makefile.mk9
-rw-r--r--jvmfwk/source/elements.cxx93
-rw-r--r--jvmfwk/source/elements.hxx28
-rw-r--r--offapi/com/sun/star/awt/UnoControlDialog.idl6
-rw-r--r--offapi/com/sun/star/awt/XDialog2.idl2
-rw-r--r--offapi/com/sun/star/awt/grid/DefaultGridDataModel.idl15
-rw-r--r--offapi/com/sun/star/awt/grid/GridColumnEvent.idl10
-rw-r--r--offapi/com/sun/star/awt/grid/GridControlEvent.idl54
-rw-r--r--offapi/com/sun/star/awt/grid/GridDataEvent.idl45
-rwxr-xr-xoffapi/com/sun/star/awt/grid/SortableGridDataModel.idl102
-rw-r--r--offapi/com/sun/star/awt/grid/UnoControlGridModel.idl111
-rw-r--r--offapi/com/sun/star/awt/grid/XGridCell.idl56
-rw-r--r--offapi/com/sun/star/awt/grid/XGridColumn.idl106
-rw-r--r--offapi/com/sun/star/awt/grid/XGridColumnListener.idl25
-rw-r--r--offapi/com/sun/star/awt/grid/XGridColumnModel.idl82
-rw-r--r--offapi/com/sun/star/awt/grid/XGridControl.idl45
-rw-r--r--offapi/com/sun/star/awt/grid/XGridDataListener.idl17
-rw-r--r--offapi/com/sun/star/awt/grid/XGridDataModel.idl94
-rw-r--r--offapi/com/sun/star/awt/grid/XGridSelection.idl48
-rwxr-xr-xoffapi/com/sun/star/awt/grid/XMutableGridDataModel.idl163
-rwxr-xr-xoffapi/com/sun/star/awt/grid/XSortableGridData.idl77
-rwxr-xr-x[-rw-r--r--]offapi/com/sun/star/awt/grid/XSortableMutableGridDataModel.idl (renamed from offapi/com/sun/star/awt/grid/XGridCellRenderer.idl)35
-rw-r--r--offapi/com/sun/star/awt/grid/makefile.mk12
-rw-r--r--offapi/com/sun/star/awt/tree/XTreeControl.idl2
-rw-r--r--offapi/com/sun/star/deployment/XExtensionManager.idl21
-rw-r--r--offapi/com/sun/star/deployment/XPackageRegistry.idl7
-rwxr-xr-x[-rw-r--r--]offapi/com/sun/star/script/vba/VBAMacroResolver.idl (renamed from offapi/com/sun/star/awt/grid/XGridControlListener.idl)16
-rwxr-xr-xoffapi/com/sun/star/script/vba/XVBAMacroResolver.idl94
-rwxr-xr-xoffapi/com/sun/star/script/vba/makefile.mk2
-rw-r--r--offapi/com/sun/star/sdb/XSubDocument.idl8
-rw-r--r--offapi/com/sun/star/sheet/FormulaMapGroupSpecialOffset.idl4
-rw-r--r--offapi/com/sun/star/sheet/SheetFilterDescriptor.idl27
-rwxr-xr-x[-rw-r--r--]offapi/com/sun/star/sheet/SpreadsheetViewObjectsMode.idl (renamed from offapi/com/sun/star/awt/grid/ScrollBarMode.idl)33
-rw-r--r--offapi/com/sun/star/sheet/SpreadsheetViewSettings.idl10
-rw-r--r--offapi/com/sun/star/sheet/TableFilterField.idl11
-rw-r--r--offapi/com/sun/star/sheet/TableFilterField2.idl12
-rw-r--r--offapi/com/sun/star/sheet/XDatabaseRange.idl12
-rw-r--r--offapi/com/sun/star/sheet/XSheetFilterDescriptor.idl14
-rw-r--r--offapi/com/sun/star/sheet/XSheetFilterDescriptor2.idl12
-rw-r--r--offapi/com/sun/star/sheet/makefile.mk1
-rw-r--r--offapi/com/sun/star/view/XMultiSelectionSupplier.idl4
-rw-r--r--offapi/com/sun/star/xml/sax/XFastAttributeList.idl4
-rw-r--r--offapi/type_reference/typelibrary_history.txt4
-rw-r--r--offapi/type_reference/types.rdbbin7307264 -> 7307264 bytes
-rw-r--r--sal/inc/sal/types.h2
-rw-r--r--sal/osl/all/makefile.mk6
-rw-r--r--sal/osl/all/printtrace.cxx65
-rw-r--r--sal/osl/inc/printtrace.h46
-rw-r--r--sal/osl/os2/diagnose.c26
-rw-r--r--sal/osl/unx/diagnose.c32
-rwxr-xr-x[-rw-r--r--]sal/osl/w32/diagnose.c37
-rw-r--r--sal/systools/win32/uwinapi/ResolveUnicows.cpp5
-rw-r--r--udkapi/prj/makefile.mk61
61 files changed, 1293 insertions, 725 deletions
diff --git a/cppu/inc/com/sun/star/uno/Sequence.h b/cppu/inc/com/sun/star/uno/Sequence.h
index da9906533583..71bb42c7413b 100644
--- a/cppu/inc/com/sun/star/uno/Sequence.h
+++ b/cppu/inc/com/sun/star/uno/Sequence.h
@@ -125,7 +125,7 @@ public:
@param len initial sequence length
*/
- inline Sequence( sal_Int32 len );
+ inline explicit Sequence( sal_Int32 len );
/** Destructor: Releases sequence handle. Last handle will destruct
elements and free memory.
diff --git a/cppuhelper/inc/cppuhelper/factory.hxx b/cppuhelper/inc/cppuhelper/factory.hxx
index 579ee876cb39..2f1afcab1726 100644
--- a/cppuhelper/inc/cppuhelper/factory.hxx
+++ b/cppuhelper/inc/cppuhelper/factory.hxx
@@ -27,9 +27,7 @@
#ifndef _CPPUHELPER_FACTORY_HXX_
#define _CPPUHELPER_FACTORY_HXX_
-#ifndef _RTL_STRING_HXX_
#include <rtl/ustring.hxx>
-#endif
#include <uno/dispatcher.h>
#include <rtl/unload.h>
@@ -54,7 +52,7 @@ typedef struct _uno_Environment uno_Environment;
compiled it. If the environment is NOT session specific (needs no additional context),
then this function should return the environment type name and leave ppEnv (to 0).
- @paramppEnvTypeName environment type name; string must be constant
+ @param ppEnvTypeName environment type name; string must be constant
@param ppEnv function returns its environment if the environment is session specific,
i.e. has special context
*/
diff --git a/cppuhelper/source/tdmgr.cxx b/cppuhelper/source/tdmgr.cxx
index 1174c1822fb6..4a8a88f2093a 100644
--- a/cppuhelper/source/tdmgr.cxx
+++ b/cppuhelper/source/tdmgr.cxx
@@ -27,6 +27,11 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_cppuhelper.hxx"
+
+#include "sal/config.h"
+
+#include <vector>
+
#include <sal/alloca.h>
#include <osl/diagnose.h>
@@ -45,7 +50,7 @@
#include <com/sun/star/reflection/XEnumTypeDescription.hpp>
#include <com/sun/star/reflection/XIndirectTypeDescription.hpp>
#include <com/sun/star/reflection/XInterfaceMemberTypeDescription.hpp>
-#include <com/sun/star/reflection/XInterfaceAttributeTypeDescription.hpp>
+#include <com/sun/star/reflection/XInterfaceAttributeTypeDescription2.hpp>
#include <com/sun/star/reflection/XMethodParameter.hpp>
#include <com/sun/star/reflection/XInterfaceMethodTypeDescription.hpp>
#include <com/sun/star/reflection/XInterfaceTypeDescription2.hpp>
@@ -302,7 +307,7 @@ inline static typelib_TypeDescription * createCTD(
}
//==================================================================================================
inline static typelib_TypeDescription * createCTD(
- const Reference< XInterfaceAttributeTypeDescription > & xAttribute )
+ const Reference< XInterfaceAttributeTypeDescription2 > & xAttribute )
{
typelib_TypeDescription * pRet = 0;
if (xAttribute.is())
@@ -310,14 +315,31 @@ inline static typelib_TypeDescription * createCTD(
OUString aMemberName( xAttribute->getName() );
Reference< XTypeDescription > xType( xAttribute->getType() );
OUString aMemberTypeName( xType->getName() );
-
- typelib_typedescription_newInterfaceAttribute(
+ std::vector< rtl_uString * > getExc;
+ Sequence< Reference< XCompoundTypeDescription > > getExcs(
+ xAttribute->getGetExceptions() );
+ for (sal_Int32 i = 0; i != getExcs.getLength(); ++i)
+ {
+ OSL_ASSERT( getExcs[i].is() );
+ getExc.push_back( getExcs[i]->getName().pData );
+ }
+ std::vector< rtl_uString * > setExc;
+ Sequence< Reference< XCompoundTypeDescription > > setExcs(
+ xAttribute->getSetExceptions() );
+ for (sal_Int32 i = 0; i != setExcs.getLength(); ++i)
+ {
+ OSL_ASSERT( setExcs[i].is() );
+ setExc.push_back( setExcs[i]->getName().pData );
+ }
+ typelib_typedescription_newExtendedInterfaceAttribute(
(typelib_InterfaceAttributeTypeDescription **)&pRet,
xAttribute->getPosition(),
aMemberName.pData, // name
(typelib_TypeClass)xType->getTypeClass(),
aMemberTypeName.pData, // type name
- xAttribute->isReadOnly() );
+ xAttribute->isReadOnly(),
+ getExc.size(), getExc.empty() ? 0 : &getExc[0],
+ setExc.size(), setExc.empty() ? 0 : &setExc[0] );
}
return pRet;
}
@@ -643,7 +665,7 @@ static typelib_TypeDescription * createCTD(
pRet = createCTD( Reference< XInterfaceMethodTypeDescription >::query( xType ) );
break;
case TypeClass_INTERFACE_ATTRIBUTE:
- pRet = createCTD( Reference< XInterfaceAttributeTypeDescription >::query( xType ) );
+ pRet = createCTD( Reference< XInterfaceAttributeTypeDescription2 >::query( xType ) );
break;
default:
break;
diff --git a/jurt/com/sun/star/lib/uno/protocols/urp/Cache.java b/jurt/com/sun/star/lib/uno/protocols/urp/Cache.java
index 48268a53a260..d9c57af30cce 100644
--- a/jurt/com/sun/star/lib/uno/protocols/urp/Cache.java
+++ b/jurt/com/sun/star/lib/uno/protocols/urp/Cache.java
@@ -52,7 +52,7 @@ final class Cache {
if (e == null) {
if (map.size() < maxSize) {
// There is still room for a new entry at the front:
- e = new Entry(content, map.size(), last, null);
+ e = new Entry(content, map.size(), null, first);
if (first == null) {
last = e;
} else {
diff --git a/jurt/prj/build.lst b/jurt/prj/build.lst
index 9b9b722bc3ae..6ba92a9ec6b6 100644
--- a/jurt/prj/build.lst
+++ b/jurt/prj/build.lst
@@ -17,3 +17,4 @@ ju jurt\com\sun\star\comp\urlresolver nmake - all ju_urlres ju_co_loader NULL
ju jurt\source\pipe nmake - all ju_src_pipe NULL
ju jurt\source\pipe\wrapper nmake - w ju_src_pipe_wrapper NULL
ju jurt\util nmake - all ju_ut ju_brid_jrm ju_co_bfactr ju_con ju_con_sock ju_con_pipe ju_cssl_uno ju_env_java ju_prot_urp ju_servman ju_urlres ju_src_pipe ju_libutil ju_uno NULL
+ju jurt\test\com\sun\star\lib\uno\protocols\urp nmake - all ju_test_css_lib_uno_protocols_urp NULL
diff --git a/jurt/test/com/sun/star/lib/uno/protocols/urp/Cache_Test.java b/jurt/test/com/sun/star/lib/uno/protocols/urp/Cache_Test.java
index 31d3454bde48..2deb525adeac 100644
--- a/jurt/test/com/sun/star/lib/uno/protocols/urp/Cache_Test.java
+++ b/jurt/test/com/sun/star/lib/uno/protocols/urp/Cache_Test.java
@@ -27,80 +27,114 @@
package com.sun.star.lib.uno.protocols.urp;
-import complexlib.ComplexTestCase;
+import org.junit.Test;
+import static org.junit.Assert.*;
-public final class Cache_Test extends ComplexTestCase {
- public String[] getTestMethodNames() {
- return new String[] { "test0", "test1", "test2", "test3" };
- }
-
- public void test0() {
+public final class Cache_Test {
+ @Test public void test0() {
Cache c = new Cache(0);
boolean[] f = new boolean[1];
int i;
i = c.add(f, "a");
- assure("1", i == Cache.NOT_CACHED && !f[0]);
+ assertTrue(i == Cache.NOT_CACHED && !f[0]);
i = c.add(f, "a");
- assure("2", i == Cache.NOT_CACHED && !f[0]);
+ assertTrue(i == Cache.NOT_CACHED && !f[0]);
i = c.add(f, "b");
- assure("3", i == Cache.NOT_CACHED && !f[0]);
+ assertTrue(i == Cache.NOT_CACHED && !f[0]);
i = c.add(f, "a");
- assure("4", i == Cache.NOT_CACHED && !f[0]);
+ assertTrue(i == Cache.NOT_CACHED && !f[0]);
}
- public void test1() {
+ @Test public void test1() {
Cache c = new Cache(1);
boolean[] f = new boolean[1];
int i;
i = c.add(f, "a");
- assure("1", i == 0 && !f[0]);
+ assertTrue(i == 0 && !f[0]);
i = c.add(f, "a");
- assure("2", i == 0 && f[0]);
+ assertTrue(i == 0 && f[0]);
i = c.add(f, "b");
- assure("3", i == 0 && !f[0]);
+ assertTrue(i == 0 && !f[0]);
i = c.add(f, "b");
- assure("4", i == 0 && f[0]);
+ assertTrue(i == 0 && f[0]);
i = c.add(f, "a");
- assure("5", i == 0 && !f[0]);
+ assertTrue(i == 0 && !f[0]);
}
- public void test2() {
+ @Test public void test2() {
Cache c = new Cache(2);
boolean[] f = new boolean[1];
int i;
i = c.add(f, "a");
- assure("1", i == 0 && !f[0]);
+ assertTrue(i == 0 && !f[0]);
i = c.add(f, "a");
- assure("2", i == 0 && f[0]);
+ assertTrue(i == 0 && f[0]);
i = c.add(f, "b");
- assure("3", i == 1 && !f[0]);
+ assertTrue(i == 1 && !f[0]);
i = c.add(f, "b");
- assure("4", i == 1 && f[0]);
+ assertTrue(i == 1 && f[0]);
i = c.add(f, "a");
- assure("5", i == 0 && f[0]);
+ assertTrue(i == 0 && f[0]);
i = c.add(f, "c");
- assure("6", i == 1 && !f[0]);
+ assertTrue(i == 1 && !f[0]);
i = c.add(f, "b");
- assure("7", i == 0 && !f[0]);
+ assertTrue(i == 0 && !f[0]);
}
- public void test3() {
+ @Test public void test3() {
Cache c = new Cache(3);
boolean[] f = new boolean[1];
int i;
i = c.add(f, "a");
- assure("1", i == 0 && !f[0]);
+ assertTrue(i == 0 && !f[0]);
i = c.add(f, "a");
- assure("3", i == 0 && f[0]);
+ assertTrue(i == 0 && f[0]);
i = c.add(f, "b");
- assure("5", i == 1 && !f[0]);
+ assertTrue(i == 1 && !f[0]);
i = c.add(f, "a");
- assure("3", i == 0 && f[0]);
+ assertTrue(i == 0 && f[0]);
i = c.add(f, "c");
- assure("7", i == 2 && !f[0]);
+ assertTrue(i == 2 && !f[0]);
i = c.add(f, "d");
- assure("9", i == 1 && !f[0]);
+ assertTrue(i == 1 && !f[0]);
i = c.add(f, "d");
- assure("11", i == 1 && f[0]);
+ assertTrue(i == 1 && f[0]);
+ }
+
+ @Test public void testNothingLostFromLruList() {
+ // Regardless in what order arbitrary values from 0, ..., 3 are inserted
+ // into a size-4 cache, afterwards adding -1, ..., -4 must return each
+ // possible index in the range from 0, ..., 3 exactly once (so their sum
+ // must be 6); this code systematically tests all such arbitrary ways up
+ // to length 8 (the code arguably violates recommendations for writing
+ // good tests, but actually helped track down an error in the Cache
+ // implementation):
+ int[] a = new int[8];
+ for (int i = 0; i < a.length; ++i) {
+ for (int j = 0; j < i; ++j) {
+ a[j] = 0;
+ }
+ for (;;) {
+ Cache c = new Cache(4);
+ for (int k = 0; k < i; ++k) {
+ c.add(new boolean[1], a[k]);
+ }
+ assertEquals(
+ 6,
+ (c.add(new boolean[1], -1) + c.add(new boolean[1], -2) +
+ c.add(new boolean[1], -3) + c.add(new boolean[1], -4)));
+ int j = i - 1;
+ while (j >= 0 && a[j] == 3) {
+ --j;
+ }
+ if (j < 0) {
+ break;
+ }
+ ++a[j];
+ for (int k = j + 1; k < i; ++k) {
+ a[k] = 0;
+ }
+ }
+ }
}
}
diff --git a/jurt/test/com/sun/star/lib/uno/protocols/urp/Marshaling_Test.java b/jurt/test/com/sun/star/lib/uno/protocols/urp/Marshaling_Test.java
index 4c01e9acc9c6..2621006faf95 100644
--- a/jurt/test/com/sun/star/lib/uno/protocols/urp/Marshaling_Test.java
+++ b/jurt/test/com/sun/star/lib/uno/protocols/urp/Marshaling_Test.java
@@ -32,21 +32,14 @@ import com.sun.star.uno.IBridge;
import com.sun.star.uno.Type;
import com.sun.star.uno.TypeClass;
import com.sun.star.uno.XInterface;
-import complexlib.ComplexTestCase;
import java.lang.reflect.Array;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
+import org.junit.Test;
+import static org.junit.Assert.*;
-public final class Marshaling_Test extends ComplexTestCase {
- public String getTestObjectName() {
- return getClass().getName();
- }
-
- public String[] getTestMethodNames() {
- return new String[] { "test" };
- }
-
- public void test() throws Exception {
+public final class Marshaling_Test {
+ @Test public void test() throws Exception {
short cacheSize = (short)256;
TestBridge testBridge = new TestBridge();
Marshal marshal = new Marshal(testBridge, cacheSize);
@@ -239,7 +232,7 @@ public final class Marshaling_Test extends ComplexTestCase {
if(op1 instanceof Any)
op1 = ((Any)op1).getObject();
- assure("", compareObjects(op1, op2));
+ assertTrue(compareObjects(op1, op2));
}
}
diff --git a/jurt/test/com/sun/star/lib/uno/protocols/urp/Protocol_Test.java b/jurt/test/com/sun/star/lib/uno/protocols/urp/Protocol_Test.java
index 393720c9756d..6a74710625e9 100644
--- a/jurt/test/com/sun/star/lib/uno/protocols/urp/Protocol_Test.java
+++ b/jurt/test/com/sun/star/lib/uno/protocols/urp/Protocol_Test.java
@@ -34,20 +34,17 @@ import com.sun.star.uno.Any;
import com.sun.star.uno.IBridge;
import com.sun.star.uno.Type;
import com.sun.star.uno.XInterface;
-import complexlib.ComplexTestCase;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
import java.util.LinkedList;
+import org.junit.Test;
+import static org.junit.Assert.*;
-public final class Protocol_Test extends ComplexTestCase {
- public String[] getTestMethodNames() {
- return new String[] { "test" };
- }
-
- public void test() throws Exception {
+public final class Protocol_Test {
+ @Test public void test() throws Exception {
IBridge iBridge = new TestBridge();
PipedInputStream inA = new PipedInputStream();
PipedOutputStream outA = new PipedOutputStream(inA);
@@ -93,7 +90,7 @@ public final class Protocol_Test extends ComplexTestCase {
new Object[] { "hallo" });
Message iMessage = iReceiver.readMessage();
Object[] t_params = iMessage.getArguments();
- assure("", "hallo".equals((String)t_params[0]));
+ assertEquals("hallo", (String)t_params[0]);
// send a reply
iReceiver.writeReply(false, new ThreadId(new byte[] { 0, 1 }), null);
@@ -118,7 +115,7 @@ public final class Protocol_Test extends ComplexTestCase {
iReceiver.writeReply(false, new ThreadId(new byte[] { 0, 1 }), null);
iSender.readMessage();
- assure("", "testString".equals(((String [])params[0])[0]));
+ assertEquals("testString", ((String [])params[0])[0]);
}
public void testCallWithInOutParameter(
@@ -133,7 +130,7 @@ public final class Protocol_Test extends ComplexTestCase {
Object[] t_params = iMessage.getArguments();
- assure("", "inString".equals(((String [])t_params[0])[0]));
+ assertEquals("inString", ((String [])t_params[0])[0]);
// provide reply
((String [])t_params[0])[0] = "outString";
@@ -142,7 +139,7 @@ public final class Protocol_Test extends ComplexTestCase {
iReceiver.writeReply(false, new ThreadId(new byte[] { 0, 1 }), null);
iSender.readMessage();
- assure("", "outString".equals(((String [])params[0])[0]));
+ assertEquals("outString", ((String [])params[0])[0]);
}
public void testCallWithResult(
@@ -161,7 +158,7 @@ public final class Protocol_Test extends ComplexTestCase {
Message iMessage = iSender.readMessage();
Object result = iMessage.getResult();
- assure("", "resultString".equals(result));
+ assertEquals("resultString", result);
}
public void testCallWhichRaisesException(
@@ -181,7 +178,7 @@ public final class Protocol_Test extends ComplexTestCase {
Object result = iMessage.getResult();
- assure("", result instanceof com.sun.star.uno.RuntimeException);
+ assertTrue(result instanceof com.sun.star.uno.RuntimeException);
}
public void testCallWithIn_Out_InOut_Paramters_and_result(
@@ -196,9 +193,9 @@ public final class Protocol_Test extends ComplexTestCase {
Object[] t_params = iMessage.getArguments();
- assure("", "hallo".equals((String)t_params[0]));
+ assertEquals("hallo", (String)t_params[0]);
- assure("", "inOutString".equals(((String [])t_params[2])[0]));
+ assertEquals("inOutString", ((String [])t_params[2])[0]);
((String [])t_params[1])[0] = "outString";
((String [])t_params[2])[0] = "inOutString_res";
@@ -209,11 +206,11 @@ public final class Protocol_Test extends ComplexTestCase {
iMessage = iSender.readMessage();
Object result = iMessage.getResult();
- assure("", "outString".equals(((String [])params[1])[0]));
+ assertEquals("outString", ((String [])params[1])[0]);
- assure("", "inOutString_res".equals(((String [])params[2])[0]));
+ assertEquals("inOutString_res", ((String [])params[2])[0]);
- assure("", "resultString".equals(result));
+ assertEquals("resultString", result);
}
public void testCallWhichReturnsAny(
@@ -229,9 +226,11 @@ public final class Protocol_Test extends ComplexTestCase {
false, new ThreadId(new byte[] { 0, 1 }), Any.VOID);
Message iMessage = iSender.readMessage();
Object result = iMessage.getResult();
- assure("", result instanceof Any
- && (TypeDescription.getTypeDescription(((Any) result).getType()).
- getZClass() == void.class));
+ assertTrue(
+ result instanceof Any &&
+ ((TypeDescription.getTypeDescription(((Any) result).getType()).
+ getZClass()) ==
+ void.class));
// send an ordinary request
iSender.writeRequest(
@@ -244,7 +243,7 @@ public final class Protocol_Test extends ComplexTestCase {
new Any(XInterface.class, null));
iMessage = iSender.readMessage();
result = iMessage.getResult();
- assure("", result == null);
+ assertNull(result);
// send an ordinary request
iSender.writeRequest(
@@ -256,7 +255,7 @@ public final class Protocol_Test extends ComplexTestCase {
false, new ThreadId(new byte[] { 0, 1 }), new Integer(501));
iMessage = iSender.readMessage();
result = iMessage.getResult();
- assure("", result.equals(new Integer(501)));
+ assertEquals(501, result);
}
private static final class Endpoint {
diff --git a/jurt/test/com/sun/star/lib/uno/protocols/urp/makefile.mk b/jurt/test/com/sun/star/lib/uno/protocols/urp/makefile.mk
index c6e66558b65d..8403b2bd71ed 100644
--- a/jurt/test/com/sun/star/lib/uno/protocols/urp/makefile.mk
+++ b/jurt/test/com/sun/star/lib/uno/protocols/urp/makefile.mk
@@ -24,10 +24,16 @@
# for a copy of the LGPLv3 License.
#
#*************************************************************************
+
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
+
PRJ := ..$/..$/..$/..$/..$/..$/..$/..
PRJNAME := jurt
TARGET := test_com_sun_star_lib_uno_protocols_urp
+.IF "$(OOO_JUNIT_JAR)" != ""
PACKAGE := com$/sun$/star$/lib$/uno$/protocols$/urp
JAVATESTFILES := \
Cache_Test.java \
@@ -38,5 +44,8 @@ JAVAFILES := \
TestObject.java
JARFILES := ridl.jar
IDLTESTFILES := interfaces.idl
+.END
.INCLUDE: javaunittest.mk
+
+.END
diff --git a/jvmfwk/source/elements.cxx b/jvmfwk/source/elements.cxx
index 9674c28d54df..8ed982f34523 100644
--- a/jvmfwk/source/elements.cxx
+++ b/jvmfwk/source/elements.cxx
@@ -51,16 +51,16 @@ using namespace osl;
namespace jfw
{
-rtl::OString getElementUpdated()
+rtl::OString getElement(::rtl::OString const & docPath,
+ xmlChar const * pathExpression, bool bThrowIfEmpty)
{
//Prepare the xml document and context
- rtl::OString sSettingsPath = jfw::getVendorSettingsPath();
- OSL_ASSERT(sSettingsPath.getLength() > 0);
- jfw::CXmlDocPtr doc(xmlParseFile(sSettingsPath.getStr()));
+ OSL_ASSERT(docPath.getLength() > 0);
+ jfw::CXmlDocPtr doc(xmlParseFile(docPath.getStr()));
if (doc == NULL)
throw FrameworkException(
JFW_E_ERROR,
- rtl::OString("[Java framework] Error in function getElementUpdated "
+ rtl::OString("[Java framework] Error in function getElement "
"(elements.cxx)"));
jfw::CXPathContextPtr context(xmlXPathNewContext(doc));
@@ -68,20 +68,42 @@ rtl::OString getElementUpdated()
(xmlChar*) NS_JAVA_FRAMEWORK) == -1)
throw FrameworkException(
JFW_E_ERROR,
- rtl::OString("[Java framework] Error in function getElementUpdated "
+ rtl::OString("[Java framework] Error in function getElement "
"(elements.cxx)"));
+
CXPathObjectPtr pathObj;
- pathObj = xmlXPathEvalExpression(
- (xmlChar*)"/jf:javaSelection/jf:updated/text()", context);
+ pathObj = xmlXPathEvalExpression(pathExpression, context);
+ rtl::OString sValue;
if (xmlXPathNodeSetIsEmpty(pathObj->nodesetval))
- throw FrameworkException(
- JFW_E_ERROR,
- rtl::OString("[Java framework] Error in function getElementUpdated "
- "(elements.cxx)"));
- rtl::OString sValue = (sal_Char*) pathObj->nodesetval->nodeTab[0]->content;
+ {
+ if (bThrowIfEmpty)
+ throw FrameworkException(
+ JFW_E_ERROR,
+ rtl::OString("[Java framework] Error in function getElement "
+ "(elements.cxx)"));
+ }
+ else
+ {
+ sValue = (sal_Char*) pathObj->nodesetval->nodeTab[0]->content;
+ }
return sValue;
}
+rtl::OString getElementUpdated()
+{
+ return getElement(jfw::getVendorSettingsPath(),
+ (xmlChar*)"/jf:javaSelection/jf:updated/text()", true);
+}
+
+// Use only in INSTALL mode !!!
+rtl::OString getElementModified()
+{
+ //The modified element is only written in INSTALL mode.
+ //That is NodeJava::m_layer = INSTALL
+ return getElement(jfw::getInstallSettingsPath(),
+ (xmlChar*)"/jf:java/jf:modified/text()", false);
+}
+
void createSettingsStructure(xmlDoc * document, bool * bNeedsSave)
{
@@ -579,6 +601,21 @@ void NodeJava::write() const
xmlAddChild(jreLocationsNode, nodeCrLf);
}
}
+
+ if (INSTALL == m_layer)
+ {
+ //now write the current system time
+ ::TimeValue curTime = {0,0};
+ if (::osl_getSystemTime(& curTime))
+ {
+ rtl::OUString sSeconds =
+ rtl::OUString::valueOf((sal_Int64) curTime.Seconds);
+ xmlNewTextChild(
+ root,NULL, (xmlChar*) "modified", CXmlCharPtr(sSeconds));
+ xmlNode * nodeCrLf = xmlNewText((xmlChar*) "\n");
+ xmlAddChild(root, nodeCrLf);
+ }
+ }
if (xmlSaveFormatFile(sSettingsPath.getStr(), docUser, 1) == -1)
throw FrameworkException(JFW_E_ERROR, sExcMsg);
}
@@ -721,7 +758,7 @@ jfw::FileStatus NodeJava::checkSettingsFileStatus() const
File::RC rc_stat = item.getFileStatus(stat);
if (File::E_None == rc_stat)
{
- //ToDo we remove the file and create it shortly after. This
+ // This
//function may be called multiple times when a java is started.
//If the expiretime is too small then we may loop because everytime
//the file is deleted and we need to search for a java again.
@@ -732,20 +769,27 @@ jfw::FileStatus NodeJava::checkSettingsFileStatus() const
//that after removing the file and shortly later creating it again
//did not change the creation time. That is the newly created file
//had the creation time of the former file.
-// ::TimeValue time = stat.getCreationTime();
- ::TimeValue modTime = stat.getModifyTime();
+ // ::TimeValue modTime = stat.getModifyTime();
::TimeValue curTime = {0,0};
+ ret = FILE_OK;
if (sal_True == ::osl_getSystemTime(& curTime))
{
- if ( curTime.Seconds - modTime.Seconds >
+ //get the modified time recorded in the <modified> element
+ sal_uInt32 modified = getModifiedTime();
+ OSL_ASSERT(modified <= curTime.Seconds);
+ //Only if modified has a valued then NodeJava::write was called,
+ //then the xml structure was filled with data.
+
+ if ( modified && curTime.Seconds - modified >
BootParams::getInstallDataExpiration())
{
#if OSL_DEBUG_LEVEL >=2
+ fprintf(stderr, "[Java framework] Settings file is %d seconds old. \n",
+ (int)( curTime.Seconds - modified));
rtl::OString s = rtl::OUStringToOString(sURL, osl_getThreadTextEncoding());
- fprintf(stderr, "[Java framework] Deleting settings file at \n%s\n", s.getStr());
+ fprintf(stderr, "[Java framework] Settings file is exspired. Deleting settings file at \n%s\n", s.getStr());
#endif
//delete file
-// File::RC rc_rem = File::remove(sURL);
File f(sURL);
if (File::E_None == f.open(OpenFlag_Write | OpenFlag_Read)
&& File::E_None == f.setPos(0, 0)
@@ -1093,6 +1137,17 @@ JavaInfo * CNodeJavaInfo::makeJavaInfo() const
return pInfo;
}
+sal_uInt32 NodeJava::getModifiedTime() const
+{
+ sal_uInt32 ret = 0;
+ if (m_layer != INSTALL)
+ {
+ OSL_ASSERT(0);
+ return ret;
+ }
+ rtl::OString modTimeSeconds = getElementModified();
+ return (sal_uInt32) modTimeSeconds.toInt64();
+}
//================================================================================
MergedSettings::MergedSettings():
diff --git a/jvmfwk/source/elements.hxx b/jvmfwk/source/elements.hxx
index a4ca1a83fc3d..ec0e06dc5bab 100644
--- a/jvmfwk/source/elements.hxx
+++ b/jvmfwk/source/elements.hxx
@@ -195,6 +195,34 @@ private:
*/
boost::optional< ::std::vector< ::rtl::OUString> > m_JRELocations;
+ /** Only in INSTALL mode. Then NodeJava.write writes a <modified> element
+ which contains the seconds value of the TimeValue (osl/time.h), obtained
+ with osl_getSystemTime.
+ It returns 0 if the value cannot be obtained.
+ This is used to fix the problem that the modified time of the settings
+ file is incorrect because it resides on an NFS volume where the NFS
+ server and NFS client do not have the same system time. For example if
+ the server time is ahead of the client time then checkSettingsFileStatus
+ deleted the settings. So even if javaldx determined a Java
+ (jfw_findAndSelectJRE) then jfw_startVM returned a JFW_E_NO_SELECT. Then
+ it looked again for a java by calling jfw_findAndSelectJRE, which
+ returned a JFW_E_NONE. But the following jfw_startVM returned again
+ JFW_E_NO_SELECT. So it looped. (see issue i114509)
+
+ NFS server and NFS client should have the same time. It is common
+ practise to enforce this in networks. We actually should not work
+ around a malconfigured network. We must however, make sure that we do
+ not loop. Maybe a better approach is, that:
+ - assume that mtime and system time are reliable
+ - checkSettingsFile uses system time and mtime of the settings file,
+ instset of using getModifiedTime.
+ - allow a small error margin
+ - jfw_startVM must return a JFW_E_EXPIRED_SETTINGS
+ - XJavaVM::startVM should prevent the loop by processing the new return+ value
+
+ */
+ sal_uInt32 getModifiedTime() const;
+
public:
NodeJava(Layer theLayer = USER_OR_INSTALL);
diff --git a/offapi/com/sun/star/awt/UnoControlDialog.idl b/offapi/com/sun/star/awt/UnoControlDialog.idl
index 443b0da18563..f2f1be2dc49c 100644
--- a/offapi/com/sun/star/awt/UnoControlDialog.idl
+++ b/offapi/com/sun/star/awt/UnoControlDialog.idl
@@ -35,8 +35,8 @@
#include <com/sun/star/awt/XTopWindow.idl>
#endif
-#ifndef __com_sun_star_awt_XDialog_idl__
-#include <com/sun/star/awt/XDialog.idl>
+#ifndef __com_sun_star_awt_XDialog2_idl__
+#include <com/sun/star/awt/XDialog2.idl>
#endif
@@ -54,7 +54,7 @@ published service UnoControlDialog
interface com::sun::star::awt::XTopWindow;
- interface com::sun::star::awt::XDialog;
+ interface com::sun::star::awt::XDialog2;
};
diff --git a/offapi/com/sun/star/awt/XDialog2.idl b/offapi/com/sun/star/awt/XDialog2.idl
index fbc5313aeb47..e937dea9bb24 100644
--- a/offapi/com/sun/star/awt/XDialog2.idl
+++ b/offapi/com/sun/star/awt/XDialog2.idl
@@ -16,7 +16,7 @@ module com { module sun { module star { module awt {
@since OOo 3.0
*/
-interface XDialog2: com::sun::star::awt::XDialog
+published interface XDialog2: com::sun::star::awt::XDialog
{
/** hides the dialog and then causes <member>XDialog::execute</member>
to return with the given result value.
diff --git a/offapi/com/sun/star/awt/grid/DefaultGridDataModel.idl b/offapi/com/sun/star/awt/grid/DefaultGridDataModel.idl
index c487afc79b49..8c2726f42851 100644
--- a/offapi/com/sun/star/awt/grid/DefaultGridDataModel.idl
+++ b/offapi/com/sun/star/awt/grid/DefaultGridDataModel.idl
@@ -27,9 +27,7 @@
#ifndef __com_sun_star_awt_DefaultGridDataModel_idl__
#define __com_sun_star_awt_DefaultGridDataModel_idl__
-#ifndef __com_sun_star_awt_grid_XGridDataModel_idl__
-#include <com/sun/star/awt/grid/XGridDataModel.idl>
-#endif
+#include <com/sun/star/awt/grid/XMutableGridDataModel.idl>
//=============================================================================
@@ -39,12 +37,15 @@
/** If you do not want to implement the <type>XGridDataModel</type> yourself, use this service.
+ <p>The <code>DefaultGridDataModel</code> implementation is a dumb container of tabular data. You can add
+ and remove rows, modify cell values, and the like.</p>
+
+ <p>The implementation will implicitly increase its column count if you add a row which has more values than
+ the current column count.</p>
+
@since OOo 3.3.0
*/
-service DefaultGridDataModel
-{
- interface com::sun::star::awt::grid::XGridDataModel;
-};
+service DefaultGridDataModel : ::com::sun::star::awt::grid::XMutableGridDataModel;
//=============================================================================
diff --git a/offapi/com/sun/star/awt/grid/GridColumnEvent.idl b/offapi/com/sun/star/awt/grid/GridColumnEvent.idl
index caab721185a5..4ab6e71caf51 100644
--- a/offapi/com/sun/star/awt/grid/GridColumnEvent.idl
+++ b/offapi/com/sun/star/awt/grid/GridColumnEvent.idl
@@ -42,17 +42,17 @@ module com { module sun { module star { module awt { module grid {
*/
struct GridColumnEvent: com::sun::star::lang::EventObject
{
- /** Contains the property name of the changed value **/
- string valueName;
+ /** Contains the name of the attributes whose value changed. **/
+ string AttributeName;
/** Contains the old value **/
- any oldValue;
+ any OldValue;
/** Contains the new value **/
- any newValue;
+ any NewValue;
/** Contains the index of the changed column**/
- long index;
+ long ColumnIndex;
//-------------------------------------------------------------------------
};
diff --git a/offapi/com/sun/star/awt/grid/GridControlEvent.idl b/offapi/com/sun/star/awt/grid/GridControlEvent.idl
deleted file mode 100644
index ce8736fb1b93..000000000000
--- a/offapi/com/sun/star/awt/grid/GridControlEvent.idl
+++ /dev/null
@@ -1,54 +0,0 @@
-/*************************************************************************
- *
- * 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_awt_GridControlEvent_idl__
-#define __com_sun_star_awt_GridControlEvent_idl__
-
-#ifndef __com_sun_star_lang_EventObject_idl__
-#include <com/sun/star/lang/EventObject.idl>
-#endif
-
-
-//=============================================================================
-
-module com { module sun { module star { module awt { module grid {
-
-//=============================================================================
-
-
-struct GridControlEvent: com::sun::star::lang::EventObject
-{
- //-------------------------------------------------------------------------
-
- string ActionCommand;
-
-};
-
-//=============================================================================
-
-}; }; }; }; };
-
-#endif
diff --git a/offapi/com/sun/star/awt/grid/GridDataEvent.idl b/offapi/com/sun/star/awt/grid/GridDataEvent.idl
index 1e0afb610f16..3ac05f0ec1ae 100644
--- a/offapi/com/sun/star/awt/grid/GridDataEvent.idl
+++ b/offapi/com/sun/star/awt/grid/GridDataEvent.idl
@@ -35,40 +35,39 @@ module com { module sun { module star { module awt { module grid {
//=============================================================================
-/** An event used by a <type>XGridDataModel</type> to notify changes in the data
- model to the <type>XGridControl</type>.
- You usually need to fill this event only if you implement the <type>XGridDataModel</type>
- yourself.
+/** used to notify changes in the data represented by an <type>XMutableGridDataModel</type>.
- @see XGridDataModel
- @see XGridControl
+ <p>Effectively, a <code>GridDataEvent</code> denotes a continuous two-dimensional cell range
+ within a grid's data model, which is affected by a certain change.</p>
+
+ @see XMutableGridDataModel
@see XGridDataListener
- @sonce OOo 3.3.0
+ @since OOo 3.3.0
*/
struct GridDataEvent: com::sun::star::lang::EventObject
{
- //-------------------------------------------------------------------------
-
- /** Contains the property name of the changed value **/
- string valueName;
-
- /** Contains the old value **/
- any oldValue;
-
- /** Contains the new value **/
- any newValue;
+ /** denotes the first column affected by a change.
- /** Contains the index of the changed row**/
- long index;
+ <p>If <code>FirstColumn</code> is -1, the listener should assume that all rows of a grid's data model
+ are affected.</p>
+ */
+ long FirstColumn;
- /** Contains the header name of the changed row**/
- string headerName;
+ /** denotes the last column affected by a change
+ */
+ long LastColumn;
- /** Contains the changed row**/
- sequence<any> rowData;
+ /** denotes the first row affected by a change.
+ <p>If <code>FirstRow</code> is -1, the listener should assume that all rows of a grid's data model
+ are affected.</p>
+ */
+ long FirstRow;
+ /** denotes the last row affected by a change
+ */
+ long LastRow;
};
//=============================================================================
diff --git a/offapi/com/sun/star/awt/grid/SortableGridDataModel.idl b/offapi/com/sun/star/awt/grid/SortableGridDataModel.idl
new file mode 100755
index 000000000000..2b7aca1ca9f9
--- /dev/null
+++ b/offapi/com/sun/star/awt/grid/SortableGridDataModel.idl
@@ -0,0 +1,102 @@
+/*************************************************************************
+ * 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_awt_grid_SortableGridDataModel_idl__
+#define __com_sun_star_awt_grid_SortableGridDataModel_idl__
+
+#include <com/sun/star/i18n/XCollator.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+//==================================================================================================================
+
+module com { module sun { module star { module awt { module grid {
+
+interface XSortableMutableGridDataModel;
+interface XMutableGridDataModel;
+
+//==================================================================================================================
+
+/** provides a default implementation of a <type>XSortableGridData</type>.
+
+ <p>This service must be created with a secondary grid data model, which all actual data requests are delegated to.
+ But before providing this data to the service's own clients, it is sorted, according to the sort order defined
+ via the <code>XSortableGridData</code> interface.</p>
+
+ <p>The service implementation is able to compare the default scalar types, plus strings.</p>
+
+ <p>For determining the data type of a column which the data should be sorted by, the first non-<VOID/> data encountered
+ in this column is taken into account. Further read requests to this column will assume that all non-<VOID/> data is of
+ the same type.</p>
+
+ <p>Consequently, you cannot use this service with data sets containing heterogenous data in a given column.</p>
+
+ <p>All requests made via the <type>XMutableGridDataModel</type> are delegated to the <code>XMutableGridDataModel</code>
+ instance passed in the service constructor.</p>
+
+ <p>Note that changing the data might result in the sort order being destroyed. If you want to ensure
+ that the data represented by the model is still sorted after your modifications, you should call
+ <member>XSortableGridData::sortByColumn</member>, again.</p>
+ */
+service SortableGridDataModel : XSortableMutableGridDataModel
+{
+ /** creates a new instance of the <code>SortableGridDataModel</code>
+
+ <p>For string comparison, a default <type scope="::com::sun::star::i18n">Collator</type>, based on the system's
+ locale, will be used.</p>
+
+ @param DelegatorModel
+ the data model to which read requests are delegated.
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the given <code>DelegatorModel</code> is <NULL/>
+ */
+ create(
+ [in] XMutableGridDataModel DelegatorModel
+ )
+ raises ( ::com::sun::star::lang::IllegalArgumentException );
+
+ /** creates a new instance of the ScortableDefaultGridDataModel, passing a collator to be used for string comparison.
+
+ @param DelegatorModel
+ is the data model to which read requests are delegated
+ @param Collator
+ is the collator to be used for string comparison
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the given <code>DelegatorModel</code> is <NULL/>
+ */
+ createWithCollator(
+ [in] XMutableGridDataModel DelegatorModel,
+ [in] ::com::sun::star::i18n::XCollator Collator
+ )
+ raises ( ::com::sun::star::lang::IllegalArgumentException );
+};
+
+//==================================================================================================================
+
+}; }; }; }; };
+
+//==================================================================================================================
+
+#endif
diff --git a/offapi/com/sun/star/awt/grid/UnoControlGridModel.idl b/offapi/com/sun/star/awt/grid/UnoControlGridModel.idl
index 7eea49624045..a348d4b3e23c 100644
--- a/offapi/com/sun/star/awt/grid/UnoControlGridModel.idl
+++ b/offapi/com/sun/star/awt/grid/UnoControlGridModel.idl
@@ -28,19 +28,11 @@
#define __com_sun_star_awt_grid_UnoControlGridModel_idl__
#include <com/sun/star/awt/grid/XGridColumnModel.idl>
-
#include <com/sun/star/awt/grid/XGridDataModel.idl>
-
-#include <com/sun/star/awt/grid/ScrollBarMode.idl>
-
#include <com/sun/star/awt/UnoControlModel.idl>
-
#include <com/sun/star/view/SelectionType.idl>
-
#include <com/sun/star/awt/FontDescriptor.idl>
-
#include <com/sun/star/style/VerticalAlignment.idl>
-
#include <com/sun/star/util/Color.idl>
//=============================================================================
@@ -49,7 +41,7 @@ module com { module sun { module star { module awt { module grid {
//=============================================================================
-/** specifies the standard model of a <type>UnoControlGridModel</type>.
+/** specifies the standard model of a <type>UnoControlGrid</type> control.
@since OOo 3.3.0
*/
@@ -59,19 +51,51 @@ service UnoControlGridModel
service com::sun::star::awt::UnoControlModel;
/** Specifies whether the grid control should display a special header column.
- <p>The default value is <FALSE/></p>
+
+ <p>The default value is <FALSE/></p>
*/
[property] boolean ShowRowHeader;
+ /** specifies the width of the row header column, if applicable.
+
+ <p>The width is specified in application font units - see <type scope="com::sun::star::util">MeasureUnit</type>.</p>
+
+ <p>The value given here is ignored if <member>ShowRowHeader</member> is <FALSE/>.</p>
+ */
+ [property] long RowHeaderWidth;
+
/** Specifies whether the grid control should display a title row.
- <p>The default value is <TRUE/></p>
+
+ <p>The default value is <TRUE/></p>
*/
[property] boolean ShowColumnHeader;
+ /** specifies the height of the column header row, if applicable.
+
+ <p>The height is specified in application font units - see <type scope="com::sun::star::util">MeasureUnit</type>.</p>
+
+ <p>The value given here is ignored if <member>ShowColumnHeader</member> is <FALSE/>.</p>
+
+ <p>If the property is <void/>, the grid control shall automatically determine a height which conveniently allows,
+ according to the used font, to display one line of text.</p>
+ */
+ [property, maybevoid] long ColumnHeaderHeight;
+
+ /** Specifies the height of rows in the grid control.
+
+ <p>The height is specified in application font units - see <type scope="com::sun::star::util">MeasureUnit</type>.</p>
+ */
+ [property, maybevoid] long RowHeight;
+
/** Specifies the <type>XGridColumnModel</type> that is providing the column structure.
<p>You can implement your own instance of <type>XGridColumnModel</type> or use
the <type>DefaultGridColumnModel</type>.
+
+ <p>The column model is in the ownership of the grid model: When you set a new column model, or dispose
+ the grid model, then the (old) column model is disposed, too.</p>
+
+ <p>The default for this property is an empty instance of the <type>DefaultGridColumnModel</type>.</p>
*/
[property] XGridColumnModel ColumnModel;
@@ -79,8 +103,13 @@ service UnoControlGridModel
<p>You can implement your own instance of <type>XGridDataModel</type> or use
the <type>DefaultGridDataModel</type>.
+
+ <p>The data model is in the ownership of the grid model: When you set a new data model, or dispose
+ the grid model, then the (old) data model is disposed, too.</p>
+
+ <p>The default for this property is an empty instance of the <type>DefaultGridDataModel</type>.</p>
*/
- [property] XGridDataModel DataModel;
+ [property] XGridDataModel GridDataModel;
/** Specifies the vertical scrollbar mode.
<p>The default value is <FALSE/></p>
@@ -101,26 +130,48 @@ service UnoControlGridModel
*/
[property] ::com::sun::star::view::SelectionType SelectionModel;
- /** Specifies the background color of rows. If color for even rows is set, then specifies
- the color of odd rows. Default value is white.
+ /** controls whether or not to paint horizontal and vertical lines between the grid cells.
+
+ @see LineColor
*/
- [property] ::com::sun::star::util::Color RowBackgroundColor;
+ [property] boolean UseGridLines;
+
+ /** specifies the color to be used when drawing lines between cells
- /** Specifies the background color of even rows. Default value is white.
+ <p>If this property has a value of <VOID/>, the grid control renderer will use some default color,
+ depending on the system's style settings.</p>
+
+ @see UseGridLines
*/
- [property] ::com::sun::star::util::Color EvenRowBackgroundColor;
+ [property, maybevoid] ::com::sun::star::util::Color GridLineColor;
+
+ /** specifies the color to be used when drawing the background of row or column headers
- /** Specifies the background color of header. Default value is white.
+ <p>If this property has a value of <VOID/>, the grid control renderer will use some default color,
+ depending on the system's style settings.</p>
*/
- [property] ::com::sun::star::util::Color HeaderBackgroundColor;
+ [property, maybevoid] ::com::sun::star::util::Color HeaderBackgroundColor;
- /** Specifies the text color. Default value is black.
+ /** specifies the color to be used when drawing the text within row or column headers
+
+ <p>If this property has a value of <VOID/>, the grid control renderer will use some default color,
+ depending on the system's style settings.</p>
*/
- [property] ::com::sun::star::util::Color TextColor;
+ [property, maybevoid] ::com::sun::star::util::Color HeaderTextColor;
+
+ /** specifies the colors to be used as background for data rows.
+
+ <p>If this sequence is non-empty, the data rows will be rendered with alternating background colors: Assuming
+ the sequence has <code>n</code> elements, each row will use the background color as specified by its number's
+ remainder modulo <code>n</code>.</p>
- /** Specifies the line color. Default value is white.
+ <p>If this sequence is empty, all rows will use the same background color as the control as whole.</p>
+
+ <p>If this property does not exist at a particular implementation, or is <VOID/>, rows will be painted
+ in alternating background colors, every second row having a background color derived from the control's
+ selection color.</p>
*/
- [property] ::com::sun::star::util::Color LineColor;
+ [property, maybevoid] sequence< ::com::sun::star::util::Color > RowBackgroundColors;
/** specifies the vertical alignment of the content in the control.
@@ -136,6 +187,20 @@ service UnoControlGridModel
*/
[property] com::sun::star::awt::FontDescriptor FontDescriptor;
+ /** specifies the color to be used when drawing cell texts
+
+ <p>If this property has a value of <VOID/>, the grid control renderer will use some default color,
+ depending on the system's style settings.</p>
+ */
+ [property, maybevoid] ::com::sun::star::util::Color TextColor;
+
+ /** specifies the color to be used when drawing text lines (underlining and strikethrough)
+
+ <p>If this property has a value of <VOID/>, the grid control renderer will use some default color,
+ depending on the system's style settings.</p>
+ */
+ [property, maybevoid] com::sun::star::util::Color TextLineColor;
+
/** specifies the <type scope="com::sun::star::text">FontEmphasis</type>
value of the text in the control.
*/
diff --git a/offapi/com/sun/star/awt/grid/XGridCell.idl b/offapi/com/sun/star/awt/grid/XGridCell.idl
deleted file mode 100644
index 08f3cfd1b2d5..000000000000
--- a/offapi/com/sun/star/awt/grid/XGridCell.idl
+++ /dev/null
@@ -1,56 +0,0 @@
-/*************************************************************************
- *
- * 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_awt_grid_XGridCell_idl__
-#define __com_sun_star_awt_grid_XGridCell_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-
-
-//=============================================================================
-
-module com { module sun { module star { module awt { module grid {
-
-//=============================================================================
-
-interface XGridCell
-{
-
- [attribute] string Value;
-
- [attribute] boolean Editable;
-
- [attribute] any Data;
-};
-
-//=============================================================================
-
-}; }; }; }; };
-
-#endif
diff --git a/offapi/com/sun/star/awt/grid/XGridColumn.idl b/offapi/com/sun/star/awt/grid/XGridColumn.idl
index d217ff5d4ac6..a73025d7715a 100644
--- a/offapi/com/sun/star/awt/grid/XGridColumn.idl
+++ b/offapi/com/sun/star/awt/grid/XGridColumn.idl
@@ -27,12 +27,11 @@
#ifndef __com_sun_star_awt_grid_XGridColumn_idl__
#define __com_sun_star_awt_grid_XGridColumn_idl__
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
+#include <com/sun/star/lang/XComponent.idl>
#include <com/sun/star/style/HorizontalAlignment.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
#include <com/sun/star/awt/grid/XGridColumnListener.idl>
-
+#include <com/sun/star/util/XCloneable.idl>
//=============================================================================
@@ -45,42 +44,96 @@ module com { module sun { module star { module awt { module grid {
*/
interface XGridColumn
{
- /** Specifies the an idendifier of the colomn.**/
+ /** implements life time control for the component
+ */
+ interface ::com::sun::star::lang::XComponent;
+
+ /** allows cloning the complete grid column
+ */
+ interface ::com::sun::star::util::XCloneable;
+
+ /** specifies an identifier of the column
+
+ <p>This identifier will not be evaluated by the grid control, or its model. It is merely for clients
+ to identify particular columns.</p>
+ */
[attribute] any Identifier;
- /** Specifies the default column witdth. **/
+ /** specifies the current width of the column.
+ */
[attribute] long ColumnWidth;
- /** Specifies the preferred column witdth. **/
- [attribute] long PreferredWidth;
-
- /** Specifies the min column witdth. **/
+ /** specifies the minimal width the column can have.
+ */
[attribute] long MinWidth;
- /** Specifies the max column witdth. **/
+ /** specifies the maximal width the column can have.
+ */
[attribute] long MaxWidth;
- /** Specifies whether column has fixed size or not. **/
+ /** controls whether or not the column's width is fixed or not.
+
+ <p>If this is <TRUE/>, the user can interactively change the column's width. Also, the column is subject to
+ auto-resizing, if its <member>Flexibility</member> attribute is greater <code>0</code>.</p>
+ */
[attribute] boolean Resizeable;
- /** Specifies the horizontal alignment of the content in the control.
+ /** specifies the flexibility of the column when it is automatically resized due to the grid control as a whole
+ being resized.
+
+ <p>Specify <code>0</code> here if you do not want the column to be resized automatically.</p>
+
+ <p>If a column has a flexibility greater than 0, it is set in relationship to the flexibility of all
+ other such columns, and the respective widths of the columns are changed in the same relationship.</p>
+
+ <p>Note that a column's flexibility is ignored if its <member>Resizeable</member> attribute is
+ <FALSE/>.</p>
- <pre>
- LEFT
- CENTER
- RIGHT
- </pre>
+ <p>A column's flexibility cannot be negative, attempts to set a negative value will raise an exception.</p>
+ */
+ [attribute] long Flexibility
+ {
+ set raises ( ::com::sun::star::lang::IllegalArgumentException );
+ };
+
+ /** Specifies the horizontal alignment of the content in the control.
*/
[attribute] ::com::sun::star::style::HorizontalAlignment HorizontalAlign;
/** A title is displayed in the colum header row if <method>UnoControlGridModel::ShowRowHeader</method> is set to <true/>**/
[attribute] string Title;
+ /** is the help text associated with the column.
+
+ <p>A grid control will usually display a column's help text as tooltip.</p>
+ */
+ [attribute] string HelpText;
+
+ /** denotes the index of the column within the grid column model it belongs to
+
+ <p>If the column is not yet part of a column model, <code>Index</code> is -1.</p>
+ */
+ [attribute, readonly] long Index;
+
+ /** denotes the index of the data column which should be used to fetch this grid column's data
+
+ <p>A grid control has a column model and a data model, both containing a possibly different number of columns.
+ The <code>DataColumnIndex</code> attribute defines the index of the column within the data model, which should
+ be used to retrieve actual data.</p>
+
+ <p>Using this, you can do runtime changes to the column model, i.e. insertion and removal of columns, without
+ necessarily needing to adjust the data model, too.</p>
+
+ <p>If <code>DataColumnIndex</code> is negative, the it will be ignored, then the column's index within its
+ column model, as determined by the <member>Index</member> attribute, will be used.</p>
+ */
+ [attribute] long DataColumnIndex;
+
/** Adds a listener for the <type>GridColumnEvent</type> posted after the grid changes.
@param Listener
the listener to add.
*/
- [oneway] void addColumnListener( [in] XGridColumnListener listener);
+ void addGridColumnListener( [in] XGridColumnListener listener);
//-------------------------------------------------------------------------
@@ -88,20 +141,7 @@ interface XGridColumn
@param Listener
the listener to remove.
*/
- [oneway] void removeColumnListener( [in] XGridColumnListener listener);
-
- /**Updates changed column widths, when column widths are being resized.
- @param name
- can be PrefWidth or ColWidth, depending on which was changed
- @param width
- the new column width
- */
- void updateColumn( [in] string name, [in] long width);
- /**Sets column index
- @param index
- index, which is the index of the column in the column array of the column model
- */
- void setIndex( [in] long index );
+ void removeGridColumnListener( [in] XGridColumnListener listener);
};
//=============================================================================
diff --git a/offapi/com/sun/star/awt/grid/XGridColumnListener.idl b/offapi/com/sun/star/awt/grid/XGridColumnListener.idl
index 8a2d044f33d5..9a8a02eca8f2 100644
--- a/offapi/com/sun/star/awt/grid/XGridColumnListener.idl
+++ b/offapi/com/sun/star/awt/grid/XGridColumnListener.idl
@@ -27,13 +27,8 @@
#ifndef __com_sun_star_awt_grid_XGridColumnListener_idl__
#define __com_sun_star_awt_grid_XGridColumnListener_idl__
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-#ifndef __com_sun_star_awt_grid_GridColumnEvent_idl__
#include <com/sun/star/awt/grid/GridColumnEvent.idl>
-#endif
+#include <com/sun/star/lang/XEventListener.idl>
//=============================================================================
@@ -44,25 +39,11 @@ module com { module sun { module star { module awt { module grid {
/** An instance of this interface is used by the <type>XGridColumnModel</type> to
get notifications about column model changes.
- <p>Usually you must not implement this interface yourself, but you must notify it correctly if
- you implement the <type>XGridColumnModel</type> yourself</p>.
-
@since OOo 3.3.0
*/
-interface XGridColumnListener
+interface XGridColumnListener : ::com::sun::star::lang::XEventListener
{
- // /**
- // Invoked after a column was added to the column model.
- //*/
- //void columnAdded( [in] GridColumnEvent event );
- //
- // /**
- // Invoked after a column was removed from the column model.
- //*/
- //void columnRemoved( [in] GridColumnEvent event );
-
- /**
- Invoked after a column was modified.
+ /** Invoked after a column was modified.
*/
void columnChanged( [in] GridColumnEvent event );
};
diff --git a/offapi/com/sun/star/awt/grid/XGridColumnModel.idl b/offapi/com/sun/star/awt/grid/XGridColumnModel.idl
index 86e77680cd95..257f597fc7d2 100644
--- a/offapi/com/sun/star/awt/grid/XGridColumnModel.idl
+++ b/offapi/com/sun/star/awt/grid/XGridColumnModel.idl
@@ -28,10 +28,13 @@
#define __com_sun_star_awt_grid_XGridColumnModel_idl__
#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/lang/XComponent.idl>
+#include <com/sun/star/util/XCloneable.idl>
#include <com/sun/star/awt/grid/XGridColumn.idl>
-
-#include <com/sun/star/awt/grid/XGridColumnListener.idl>
+#include <com/sun/star/container/XContainer.idl>
+#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
//=============================================================================
@@ -48,37 +51,64 @@ module com { module sun { module star { module awt { module grid {
*/
interface XGridColumnModel
{
- ///** Specifies whether column selection is allowed
- //*/
- //[attribute] boolean ColumnSelectionAllowed;
+ /** implements life time control for the component
+ */
+ interface ::com::sun::star::lang::XComponent;
+
+ /** allows to register listeners to be notified when columns are inserted or removed
+ */
+ interface ::com::sun::star::container::XContainer;
- /**Specifies the height of column header.
+ /** allows cloning the complete column model
*/
- [attribute] long ColumnHeaderHeight;
+ interface ::com::sun::star::util::XCloneable;
/** Returns the number of columns.
+
@returns
the number of columns.
*/
long getColumnCount();
+ /** creates a new column for use with the column model.
+
+ <p>The newly created column is not yet inserted into the column container, you need to call <member>addColumn</member>
+ after you initialized the column object.</p>
+ */
+ XGridColumn
+ createColumn();
+
/** Adds a column to the model.
+
+ <p>You should use the <member>createColumn</member> member to create a new column. This gives
+ implementations of the <code>XGridColumnModel</code> interface the possibility to provide own column
+ implementations which extend the basic <type>GridColumn</type> type.</p>
+
+ <p>As soon as the column has been inserted into the model, the model takes ownership of it. This means when the
+ column is removed, or when the column model is disposed, the grid column is disposed as well.</p>
+
@param column
the column to add to the model.
-
@returns
- the index of new created column.
- */
- long addColumn( [in] XGridColumn column );
+ the index of new created column.
- /*
- long getSelectedCount();
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the given column is not a valid element for the column container, or if it is <NULL/>.
+ */
+ long addColumn( [in] XGridColumn column )
+ raises ( ::com::sun::star::lang::IllegalArgumentException );
- sequence<XGridColumn> getSelectedColumns();
+ /** removes a column from the model
- sequence<long> getSelectedIndex();
+ <p>The column object will be disposed upon removal.</p>
+ @param ColumnIndex
+ denotes the index of the column to remove
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if <code>ColumnIndex</code> does not denote a valid column index.
*/
+ void removeColumn( [in] long ColumnIndex )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
/** Returns all columns of the model.
@returns
@@ -92,24 +122,20 @@ interface XGridColumnModel
@returns
the requested column.
*/
- XGridColumn getColumn( [in] long index);
+ XGridColumn getColumn( [in] long index)
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** Fills the model with the given number of default columns
+
+ <p>Existing columns will be removed before adding new columns. Listeners at the column model will
+ be notified one <member scope="com::sun::star::container">XContainerListener::elementRemoved</member> event
+ for each removed column, and one <member scope="com::sun::star::container">XContainerListener::elementInserted</member>
+ event for each insertion.</p>
- /** Sets default columns to the column model.
@param elements
the number of default columns that should be set.
*/
void setDefaultColumns([in] long elements);
-
- /**Creates new XGridColumn with the settings of other column. To be used if the columns which are added to
- the column model have the same settings.
- @param column
- the column, which is already created
- */
- XGridColumn copyColumn( [in] XGridColumn column );
-
- /*
- long getTotalColumnWidth();
- */
};
//=============================================================================
diff --git a/offapi/com/sun/star/awt/grid/XGridControl.idl b/offapi/com/sun/star/awt/grid/XGridControl.idl
index 5019a571663b..3c2c3d241528 100644
--- a/offapi/com/sun/star/awt/grid/XGridControl.idl
+++ b/offapi/com/sun/star/awt/grid/XGridControl.idl
@@ -28,9 +28,6 @@
#define __com_sun_star_awt_grid_XGridControl_idl__
#include <com/sun/star/awt/grid/XGridSelection.idl>
-#include <com/sun/star/awt/grid/XGridColumnModel.idl>
-#include <com/sun/star/awt/grid/XGridDataModel.idl>
-#include <com/sun/star/awt/XMouseListener.idl>
//=============================================================================
@@ -44,23 +41,43 @@ module com { module sun { module star { module awt { module grid {
@since OOo 3.3.0
*/
-interface XGridControl: XGridSelection
+interface XGridControl : XGridSelection
{
- /** Converting
+ /** retrieves the column which a given point belongs to
+
+ @param X
+ the ordinate of the point, in pixel coordinates.
+ @param Y
+ the abscissa of the point, in pixel coordinates.
+ @return
+ the index of the column which the point lies in, or -1 if no column is under the given point.
+ */
+ long getColumnAtPoint( [in] long X, [in] long Y );
+
+ /** retrieves the row which a given point belongs to
+
+ @param X
+ the ordinate of the point, in pixel coordinates.
+ @param Y
+ the abscissa of the point, in pixel coordinates.
+ @return
+ the index of the row which the point lies in, or -1 if no row is under the given point.
*/
+ long getRowAtPoint( [in] long X, [in] long Y );
- long getItemIndexAtPoint( [in] long x, [in] long y);
+ /** returns the column index of the currently active cell
- /** Sets tooltip for row
- @param textForTooltip
- text, which will be shown as tooltip.
- If only cell content should be displayed, leave sequence empty.
- @param columnsForTooltip
- column numbers, which define the cell content that should be shown in the tooltip.
- If only text should be shown, leave this sequence empty.
+ <p>If the grid control's does not contain any cells (which happens if the grid column model does not contain any
+ columns, or if grid data model does not contain any rows), then <code>-1</code> is returned.</p>
*/
- void setToolTip( [in] sequence< string > textForTooltip, [in] sequence< long > columnsForTooltip);
+ long getCurrentColumn();
+
+ /** returns the row index of the currently active cell
+ <p>If the grid control's does not contain any cells (which happens if the grid column model does not contain any
+ columns, or if grid data model does not contain any rows), then <code>-1</code> is returned.</p>
+ */
+ long getCurrentRow();
};
//=============================================================================
diff --git a/offapi/com/sun/star/awt/grid/XGridDataListener.idl b/offapi/com/sun/star/awt/grid/XGridDataListener.idl
index d6d0d930b331..709f048c08ce 100644
--- a/offapi/com/sun/star/awt/grid/XGridDataListener.idl
+++ b/offapi/com/sun/star/awt/grid/XGridDataListener.idl
@@ -52,20 +52,21 @@ module com { module sun { module star { module awt { module grid {
interface XGridDataListener: com::sun::star::lang::XEventListener
{
- /**
- Invoked after a row was added to the data model.
+ /** is called when one or more rows of data have been inserted into a grid control's data model.
*/
- void rowAdded( [in] GridDataEvent Event );
+ void rowsInserted( [in] GridDataEvent Event );
- /**
- Invoked after a row was added to the data model.
+ /** is called when one or more rows of data have been removed from a grid control's data model.
*/
- void rowRemoved( [in] GridDataEvent Event );
+ void rowsRemoved( [in] GridDataEvent Event );
- /**
- Invoked after a row was added to the data model.
+ /** is called when existing data in a grid control's data model has been modified.
*/
void dataChanged( [in] GridDataEvent Event );
+
+ /** is called when the title of one or more rows changed.
+ */
+ void rowHeadingChanged( [in] GridDataEvent Event );
};
//=============================================================================
diff --git a/offapi/com/sun/star/awt/grid/XGridDataModel.idl b/offapi/com/sun/star/awt/grid/XGridDataModel.idl
index 5cc4085807e1..1ff15e1310e0 100644
--- a/offapi/com/sun/star/awt/grid/XGridDataModel.idl
+++ b/offapi/com/sun/star/awt/grid/XGridDataModel.idl
@@ -30,8 +30,9 @@
#include <com/sun/star/lang/XComponent.idl>
+#include <com/sun/star/util/XCloneable.idl>
#include <com/sun/star/awt/grid/XGridDataListener.idl>
-
+#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
//=============================================================================
@@ -45,86 +46,57 @@ module com { module sun { module star { module awt { module grid {
@since OOo 3.3.0
*/
-interface XGridDataModel: ::com::sun::star::lang::XComponent
+interface XGridDataModel
{
- /** Specifies the height of each row.
- */
- [attribute] long RowHeight;
-
- /** Contains the row header.
+ /** implements life time control for the component
*/
- [attribute] sequence< string > RowHeaders;
+ interface ::com::sun::star::lang::XComponent;
- /** Returns the content of each row.
+ /** allows cloning the complete column model
*/
- [attribute,readonly] sequence< sequence< any > > Data;
+ interface ::com::sun::star::util::XCloneable;
- /**Specifies the width of row header.
+ /** denotes the number of rows for which the model can provide data
*/
- [attribute] long RowHeaderWidth;
+ [attribute, readonly] long RowCount;
- /** Returns the number of rows in in the model.
- @returns
- the number of rows.
+ /** denotes the number of columns for which the model can provide data
*/
- long getRowCount();
+ [attribute, readonly] long ColumnCount;
- /** Adds a row to the model.
+ /** retrieves the data for a given cell
- @param headername
- specifies the name of the row.
- @param data
- the content of the row.
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the column or row index do not denote a valid cell position.
*/
- void addRow( [in] string headername, [in] sequence< any > data );
+ any getCellData( [in] long Column, [in] long Row )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
- /** Removes a row from the model.
+ /** retrieves the tool tip to be displayed when the mouse hovers over a given cell
- @param index
- the index of the row that should be removed.
- */
- void removeRow( [in] long index);
+ <p>At the moment, only string tool tips are supported.</p>
- /** Removes all rows from the model.
- */
- void removeAll();
-
- /**Updates the content of a given cell.
- @param row
- the row index
- @param column
- the column index
- @param value
- the new value of the cell.
- */
- void updateCell([in] long row, [in] long column, [in] any value );
-
- /**Updates the content of a given row.
- @param row
- the row index
- @param columns
- column indexes of the cells, which should be updated
- @param value
- the new values of the cells.
+ <p>If <VOID/> is returned here, the cell's content will be displayed as tip, but only if it does
+ not fit into the cell.</p>
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the column or row index do not denote a valid cell position.
*/
- void updateRow([in] long row, [in] sequence< long > columns, [in] sequence< any > values);
+ any getCellToolTip( [in] long Column, [in] long Row )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
- //-------------------------------------------------------------------------
+ /** retrieves the heading of a given row
- /** Adds a listener for the <type>GridDataEvent</type> posted after the grid changes.
- @param Listener
- the listener to add.
- */
- [oneway] void addDataListener( [in] XGridDataListener listener);
+ <p>A grid control will usually paint a row's title in the header column of the respective row.</p>
- //-------------------------------------------------------------------------
+ <p>At the moment, only strings are supported as row headings.</p>
- /** Removes a listener previously added with <method>addDataListener()</method>.
- @param Listener
- the listener to remove.
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the given index does not denote a valid row.
*/
- [oneway] void removeDataListener( [in] XGridDataListener listener);
-
+ any
+ getRowHeading( [in] long RowIndex )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
};
//=============================================================================
diff --git a/offapi/com/sun/star/awt/grid/XGridSelection.idl b/offapi/com/sun/star/awt/grid/XGridSelection.idl
index 5049426018b0..aa7fd5e42b4b 100644
--- a/offapi/com/sun/star/awt/grid/XGridSelection.idl
+++ b/offapi/com/sun/star/awt/grid/XGridSelection.idl
@@ -41,37 +41,27 @@ module com { module sun { module star { module awt { module grid {
*/
interface XGridSelection
{
- /** Returns the lowest index of the selection.
- @returns
- the lowest index.
- */
- long getMinSelectionIndex();
-
- /** Returns the highest index of the selection.
- @returns
- the highest index.
- */
- long getMaxSelectionIndex();
-
/** Selects all rows.
*/
- [oneway] void selectAllRows();
+ void selectAllRows();
+
+ /** selects a given row
- /** Selects multiple rows. Previous selections will be removed.
- @param rangeOfRows
- array of rows indexes, which will be selected.
+ @param RowIndex
+ denotes the index of the row to select
*/
- [oneway] void selectRows( [in] sequence< long > rangeOfRows);
+ void selectRow( [in] long RowIndex );
/** Deselects all selected rows.
*/
- [oneway] void deselectAllRows();
+ void deselectAllRows();
- /** Deselects selected rows. Selected rows, which aren't in the range remain selected.
- @param rangeOfRows
- array of rows indexes, which will be deselected.
+ /** removes the selection for a given row
+
+ @param RowIndex
+ denotes the index of the row to deselect
*/
- [oneway] void deselectRows( [in] sequence< long > rangeOfRows);
+ void deselectRow( [in] long RowIndex );
/** Returns the indicies of all selected rows.
@returns
@@ -93,21 +83,11 @@ interface XGridSelection
*/
boolean isSelectedIndex( [in] long index);
- /** Marks a row as selected.
- @param index
- the index of a row.
- */
- [oneway] void selectRow( [in] long index);
-
- /*
- [oneway] void selectColumn( [in] long x);
- */
-
/** Adds a listener for the <type>GridSelectionEvent</type> posted after the grid changes.
@param listener
the listener to add.
*/
- [oneway] void addSelectionListener( [in] XGridSelectionListener listener);
+ void addSelectionListener( [in] XGridSelectionListener listener);
//-------------------------------------------------------------------------
@@ -115,7 +95,7 @@ interface XGridSelection
@param listener
the listener to remove.
*/
- [oneway] void removeSelectionListener( [in] XGridSelectionListener listener);
+ void removeSelectionListener( [in] XGridSelectionListener listener);
};
diff --git a/offapi/com/sun/star/awt/grid/XMutableGridDataModel.idl b/offapi/com/sun/star/awt/grid/XMutableGridDataModel.idl
new file mode 100755
index 000000000000..5e10820ff9ef
--- /dev/null
+++ b/offapi/com/sun/star/awt/grid/XMutableGridDataModel.idl
@@ -0,0 +1,163 @@
+/*************************************************************************
+ * 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_awt_grid_XMutableGridDataModel_idl__
+#define __com_sun_star_awt_grid_XMutableGridDataModel_idl__
+
+#include <com/sun/star/awt/grid/XGridDataModel.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
+
+//==================================================================================================================
+
+module com { module sun { module star { module awt { module grid {
+
+//==================================================================================================================
+
+/** allows to modify the data represented by a <type>XGridDataModel</type>
+ */
+interface XMutableGridDataModel : XGridDataModel
+{
+ /** adds a row to the model.
+
+ @param Heading
+ denotes the heading of the row.
+ @param Data
+ specifies the content of the row.
+ */
+ void addRow( [in] any Heading, [in] sequence< any > Data );
+
+ /** adds multiple rows of data to the model.
+ @param Headings
+ denotes the headings of the to-be-added rows.
+ @param Data
+ specifies the data of the rows to be added.
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if <code>Titles</code> and <code>Data</code> are of different length.
+ */
+ void addRows( [in] sequence< any > Headings, [in] sequence< sequence< any > > Data )
+ raises ( ::com::sun::star::lang::IllegalArgumentException );
+
+ /** removes a row of data from the model
+
+ @param RowIndex
+ the index of the row that should be removed.
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the given index is invalid
+ */
+ void removeRow( [in] long RowIndex )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** Removes all rows from the model.
+ */
+ void removeAllRows();
+
+ /** updates the content of the given cell
+ @param ColumnIndex
+ the column index of the to-be-updated cell
+ @param RowIndex
+ the row index of the to-be-updated cell
+ @param Value
+ the new value of the cell.
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the row or column index is invalid
+ */
+ void updateCellData( [in] long ColumnIndex, [in] long RowIndex, [in] any Value )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** updates the content of a given row.
+
+ <p>The change in the data model will be notified to registered listeners via
+ <member">XGridDataListener::dataChanged</member>. The <member>GridDataEvent::FirstColumn</member> and
+ <member>GridDataEvent::LastColumn</member> will denote the smallest respectively largest column
+ index from <argColumnIndexes</arg>.</p>
+
+ @param ColumnIndexes
+ contains the column indexes of the cells, which should be updated
+ @param RowIndex
+ contains the index of the row whose data is to be updated
+ @param Values
+ specifies the new values of the cells.
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if one of the row indexes or the column index is invalid
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the lengths of the <code>ColumnIndexes</code> and <code>Values</code> sequences are not equal.
+ */
+ void updateRowData( [in] sequence< long > ColumnIndexes, [in] long RowIndex, [in] sequence< any > Values )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException
+ , ::com::sun::star::lang::IllegalArgumentException);
+
+ /** sets a new title for a given row.
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the given index does not denote a valid row.
+ */
+ void
+ updateRowHeading( [in] long RowIndex, [in] any Heading )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** updates the tooltip to be displayed for a given cell
+
+ @see XGridDataModel::getCellToolTip
+ */
+ void updateCellToolTip( [in] long ColumnIndex, [in] long RowIndex, [in] any Value )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** updates the tooltip for all cells of a given row
+
+ <p>Effectively this method is a shortcut for calling <member>updateCellToolTip</member> multiple
+ times in a row, for all cells of a given row.</p>
+
+ @see XGridDataModel::getCellToolTip
+ @see updateCellToolTip
+ */
+ void updateRowToolTip( [in] long RowIndex, [in] any Value )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ //-------------------------------------------------------------------------
+
+ /** registers listener to be notified of data changes in the model
+ @param Listener
+ specifies the listener to register
+ */
+ void addGridDataListener( [in] XGridDataListener Listener );
+
+ //-------------------------------------------------------------------------
+
+ /** revokes a listener which was previously registered via <member>addGridDataListener</member>
+ @param Listener
+ specifies the listener to revoke.
+ */
+ void removeGridDataListener( [in] XGridDataListener Listener );
+};
+
+//==================================================================================================================
+
+}; }; }; }; };
+
+//==================================================================================================================
+
+#endif
diff --git a/offapi/com/sun/star/awt/grid/XSortableGridData.idl b/offapi/com/sun/star/awt/grid/XSortableGridData.idl
new file mode 100755
index 000000000000..9dcf9d95fb85
--- /dev/null
+++ b/offapi/com/sun/star/awt/grid/XSortableGridData.idl
@@ -0,0 +1,77 @@
+/*************************************************************************
+ * 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_awt_grid_XSortableGridData_idl__
+#define __com_sun_star_awt_grid_XSortableGridData_idl__
+
+#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
+#include <com/sun/star/beans/Pair.idl>
+
+//==================================================================================================================
+
+module com { module sun { module star { module awt { module grid {
+
+//==================================================================================================================
+
+/** allows to sort the data represented by a <type>XGridDataModel</type>
+ */
+interface XSortableGridData
+{
+ /** sorts the rows represented by the model by a given column's data.
+
+ @param ColumnIndex
+ the index of the column whose data should be used as sort key
+ @param SortAscending
+ is <TRUE/> if the data should be sorted ascending, <FALSE/> otherwise.
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if <code>ColumnIndex</code> does not denote a valid column.
+ */
+ void sortByColumn( [in] long ColumnIndex, [in] boolean SortAscending )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** removes any possibly present sorting of the grid data
+ */
+ void removeColumnSort();
+
+ /** returns the current sort order.
+
+ @return
+ a structure describing the current sort order. <member scope="::com::sun::star::beans">Pair::First</member>
+ denotes the column by which the data is sorted, or -1 if the data is currently unsorted.
+ <member scope="::com::sun::star::beans">Pair::Second</member> is <TRUE/> if the data is sorted ascending,
+ <FALSE/> otherwise.
+ */
+ ::com::sun::star::beans::Pair< long, boolean >
+ getCurrentSortOrder();
+};
+
+//==================================================================================================================
+
+}; }; }; }; };
+
+//==================================================================================================================
+
+#endif
diff --git a/offapi/com/sun/star/awt/grid/XGridCellRenderer.idl b/offapi/com/sun/star/awt/grid/XSortableMutableGridDataModel.idl
index 7f9fa28c3307..bbcd6bc29540 100644..100755
--- a/offapi/com/sun/star/awt/grid/XGridCellRenderer.idl
+++ b/offapi/com/sun/star/awt/grid/XSortableMutableGridDataModel.idl
@@ -1,5 +1,4 @@
/*************************************************************************
- *
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
@@ -24,29 +23,39 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-#ifndef __com_sun_star_awt_grid_XGridCellRenderer_idl__
-#define __com_sun_star_awt_grid_XGridCellRenderer_idl__
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
+#ifndef __com_sun_star_awt_grid_XSortableMutableGridDataModel_idl__
+#define __com_sun_star_awt_grid_XSortableMutableGridDataModel_idl__
+
+#include <com/sun/star/awt/grid/XMutableGridDataModel.idl>
+#include <com/sun/star/awt/grid/XSortableGridData.idl>
-//=============================================================================
+//==================================================================================================================
-module com { module sun { module star { module awt { module grid {
+module com { module sun { module star { module awt { module grid {
-//=============================================================================
+//==================================================================================================================
-/** renderer for cells
+/** describes a grid control data model whose data can be modified and sorted.
*/
-interface XGridCellRenderer
+interface XSortableMutableGridDataModel
{
- //-------------------------------------------------------------------------
+ /** provides access to the basic functionality of a grid data model, plus functions to modify it.
+ */
+ interface XMutableGridDataModel;
+ /** provides means to sort the data represented by the model.
+
+ <p>If you set a new column sort order, the implementation will notify the registered <type>XGridDataListener</type>s
+ via a call to its <member>XGridDataListener::dataChanged</member> method.</p>
+ */
+ interface XSortableGridData;
};
-//=============================================================================
+//==================================================================================================================
}; }; }; }; };
+//==================================================================================================================
+
#endif
diff --git a/offapi/com/sun/star/awt/grid/makefile.mk b/offapi/com/sun/star/awt/grid/makefile.mk
index 02c159f8ffec..8499dca27d82 100644
--- a/offapi/com/sun/star/awt/grid/makefile.mk
+++ b/offapi/com/sun/star/awt/grid/makefile.mk
@@ -39,27 +39,27 @@ PACKAGE=com$/sun$/star$/awt$/grid
# ------------------------------------------------------------------------
IDLFILES=\
GridColumnEvent.idl\
- GridControlEvent.idl\
GridDataEvent.idl\
SelectionEventType.idl\
GridSelectionEvent.idl\
- XGridControlListener.idl\
XGridSelectionListener.idl\
XGridSelection.idl\
XGridColumn.idl\
XGridColumnListener.idl\
XGridDataListener.idl\
- XGridCell.idl\
- XGridCellRenderer.idl\
DefaultGridDataModel.idl\
XGridDataModel.idl\
+ XMutableGridDataModel.idl\
XGridColumnModel.idl\
- ScrollBarMode.idl\
XGridControl.idl\
UnoControlGrid.idl\
UnoControlGridModel.idl\
GridInvalidDataException.idl\
- GridInvalidModelException.idl
+ GridInvalidModelException.idl\
+ XSortableGridData.idl\
+ SortableGridDataModel.idl\
+ XSortableMutableGridDataModel.idl\
+
# ------------------------------------------------------------------
.INCLUDE : target.mk
diff --git a/offapi/com/sun/star/awt/tree/XTreeControl.idl b/offapi/com/sun/star/awt/tree/XTreeControl.idl
index a5341257ba45..7a5e3c11af29 100644
--- a/offapi/com/sun/star/awt/tree/XTreeControl.idl
+++ b/offapi/com/sun/star/awt/tree/XTreeControl.idl
@@ -154,7 +154,7 @@ interface XTreeControl
@throws ::com::sun::star::lang::IllegalArgumentException
if <var>Node</var> is not a valid node of the corresponding <type>XTreeDataModel</type>.
- @raises ExpandVetoException
+ @throws ExpandVetoException
if collapsing <var>Node</var> failed because at least one of the registered
<type>XTreeExpansionListener</type> raised a <type>ExpandVetoException</type>.
*/
diff --git a/offapi/com/sun/star/deployment/XExtensionManager.idl b/offapi/com/sun/star/deployment/XExtensionManager.idl
index b807df54af65..679ba2ba5a66 100644
--- a/offapi/com/sun/star/deployment/XExtensionManager.idl
+++ b/offapi/com/sun/star/deployment/XExtensionManager.idl
@@ -281,6 +281,8 @@ interface XExtensionManager
Added extensions will be added to the database and removed extensions
will be removed from the database.
+ The active extensions are determined. That is, shared or bundled extensions
+ are not necessaryly registered (<member>XPackage::registerPackage</member>).
@return
If true - then at least one extension was removed or added. Otherwise
@@ -295,6 +297,25 @@ interface XExtensionManager
com::sun::star::lang::IllegalArgumentException);
+ /** synchronizes the special bundled_prereg repository, which is based on
+ the bundled extensions and has its registration data folder at
+ $BUNDLED_EXTENSIONS_PREREG (for example openoffice.org3/share/prereg).
+
+ All bundled extensions are registered (<member>XPackage::registerPackage</member>).
+ The active extensions are NOT determined, because this function only works
+ with bundled extensions.
+
+ This function is intended to be called during the installation of OOo.
+ OOo will copy parts of the registration data folder to the user installation at the
+ first startup.
+ */
+
+ void synchronizeBundledPrereg(
+ [in] com::sun::star::task::XAbortChannel xAbortChannel,
+ [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
+ raises (DeploymentException);
+
+
/** returns all extensions which are currently not in use
because the user did not accept the license.
diff --git a/offapi/com/sun/star/deployment/XPackageRegistry.idl b/offapi/com/sun/star/deployment/XPackageRegistry.idl
index c84f37625ec5..a8e3f556781d 100644
--- a/offapi/com/sun/star/deployment/XPackageRegistry.idl
+++ b/offapi/com/sun/star/deployment/XPackageRegistry.idl
@@ -115,6 +115,13 @@ interface XPackageRegistry
supported <type>XPackageTypeInfo</type>s.
*/
sequence<XPackageTypeInfo> getSupportedPackageTypes();
+
+ void packageRemoved(
+ [in] string url,
+ [in] string mediaType)
+ raises (DeploymentException,
+ com::sun::star::lang::IllegalArgumentException);
+
};
}; }; }; };
diff --git a/offapi/com/sun/star/awt/grid/XGridControlListener.idl b/offapi/com/sun/star/script/vba/VBAMacroResolver.idl
index 6f4fdf68ccd4..62f6e8ce0c2a 100644..100755
--- a/offapi/com/sun/star/awt/grid/XGridControlListener.idl
+++ b/offapi/com/sun/star/script/vba/VBAMacroResolver.idl
@@ -24,26 +24,26 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-#ifndef __com_sun_star_awt_grid_XGridControlListener_idl__
-#define __com_sun_star_awt_grid_XGridControlListener_idl__
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
+#ifndef __com_sun_star_script_vba_VBAMacroResolver_idl__
+#define __com_sun_star_script_vba_VBAMacroResolver_idl__
+
+#include <com/sun/star/script/vba/XVBAMacroResolver.idl>
//=============================================================================
-module com { module sun { module star { module awt { module grid {
+module com { module sun { module star { module script { module vba {
//=============================================================================
-interface XGridControlListener
+service VBAMacroResolver : XVBAMacroResolver
{
-
};
//=============================================================================
}; }; }; }; };
+//=============================================================================
+
#endif
diff --git a/offapi/com/sun/star/script/vba/XVBAMacroResolver.idl b/offapi/com/sun/star/script/vba/XVBAMacroResolver.idl
new file mode 100755
index 000000000000..378219268010
--- /dev/null
+++ b/offapi/com/sun/star/script/vba/XVBAMacroResolver.idl
@@ -0,0 +1,94 @@
+/*************************************************************************
+ *
+ * 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_script_vba_XVBAMacroResolver_idl__
+#define __com_sun_star_script_vba_XVBAMacroResolver_idl__
+
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+//=============================================================================
+
+module com { module sun { module star { module script { module vba {
+
+//=============================================================================
+
+/** Converts VBA macro names to script URLs and vice versa.
+ */
+interface XVBAMacroResolver
+{
+ //-------------------------------------------------------------------------
+
+ /** Returns the script URL representing the passed VBA macro name.
+
+ @param aVBAMacroName
+ The VBA macro name to be resolved to a script URL. The macro name
+ may consist of up to three parts, divided by periods. The first two
+ parts are optional. The first part represents the VBA project name.
+ The second part represents the module name. The third part
+ represents the procedure name. Example: All the VBA macro names
+ "VBAProject.Module1.TestMacro", "Module1.TestMacro",
+ "VBAProject.TestMacro", and "TestMacro" may refer to the same VBA
+ procedure located in "Module" of the project "VBAProject". If the
+ module name is missing, then all modules are searched for a macro
+ with the specified name.
+
+ @return
+ The script URL referring to the passed VBA macro.
+
+ @throws <type scope="::com::sun::star::lang">IllegalArgumentException</type>
+ if a macro with the passed name does not exist.
+ **/
+ string resolveVBAMacroToScriptURL( [in] string aVBAMacroName )
+ raises (::com::sun::star::lang::IllegalArgumentException);
+
+ //-------------------------------------------------------------------------
+
+ /** Returns the VBA macro name for a macro with the passed script URL.
+
+ @param aScriptURL
+ The script URL to be resolved to a VBA macro name. Must be a
+ document-local script.
+
+ @return
+ The VBA macro name referring to a macro with the passed script URL.
+
+ @throws <type scope="::com::sun::star::lang">IllegalArgumentException</type>
+ if a macro with the passed name does not exist.
+ **/
+ string resolveScriptURLtoVBAMacro( [in] string aScriptURL )
+ raises (::com::sun::star::lang::IllegalArgumentException);
+
+ //-------------------------------------------------------------------------
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+//=============================================================================
+
+#endif
diff --git a/offapi/com/sun/star/script/vba/makefile.mk b/offapi/com/sun/star/script/vba/makefile.mk
index 4657b587d7d8..336be1b5e7a6 100755
--- a/offapi/com/sun/star/script/vba/makefile.mk
+++ b/offapi/com/sun/star/script/vba/makefile.mk
@@ -40,10 +40,12 @@ PACKAGE=com$/sun$/star$/script$/vba
IDLFILES=\
VBAEventId.idl \
VBAEventProcessor.idl \
+ VBAMacroResolver.idl \
VBASpreadsheetEventProcessor.idl \
VBATextEventProcessor.idl \
XVBACompatibility.idl \
XVBAEventProcessor.idl \
+ XVBAMacroResolver.idl \
XVBAModuleInfo.idl
# ------------------------------------------------------------------
diff --git a/offapi/com/sun/star/sdb/XSubDocument.idl b/offapi/com/sun/star/sdb/XSubDocument.idl
index 0592c6cffa0a..120280fd7ef3 100644
--- a/offapi/com/sun/star/sdb/XSubDocument.idl
+++ b/offapi/com/sun/star/sdb/XSubDocument.idl
@@ -52,7 +52,7 @@ interface XSubDocument
or an <type scope="com::sun::star::frame">XController</type> if the sub document
does not have an own model.
- @raises ::com::sun::star::lang::WrappedTargetException
+ @throws ::com::sun::star::lang::WrappedTargetException
if an error occurs during opening the document
*/
::com::sun::star::lang::XComponent
@@ -66,7 +66,7 @@ interface XSubDocument
or an <type scope="com::sun::star::frame">XController</type> if the sub document
does not have an own model.
- @raises ::com::sun::star::lang::WrappedTargetException
+ @throws ::com::sun::star::lang::WrappedTargetException
if an error occurs during opening the document
*/
::com::sun::star::lang::XComponent
@@ -75,7 +75,7 @@ interface XSubDocument
/** stores the sub document, if it had previously been opened in either mode
- @raises ::com::sun::star::lang::WrappedTargetException
+ @throws ::com::sun::star::lang::WrappedTargetException
if an error occurs during storing the document
*/
void store()
@@ -86,7 +86,7 @@ interface XSubDocument
@return <TRUE/> if and only if the document could be closed, <FALSE/> otherwise,
e.g. if the closing has been vetoed by the user.
- @raises ::com::sun::star::lang::WrappedTargetException
+ @throws ::com::sun::star::lang::WrappedTargetException
if an error occurs during closing the document
*/
boolean close()
diff --git a/offapi/com/sun/star/sheet/FormulaMapGroupSpecialOffset.idl b/offapi/com/sun/star/sheet/FormulaMapGroupSpecialOffset.idl
index 06008bbc059d..90edc6b22200 100644
--- a/offapi/com/sun/star/sheet/FormulaMapGroupSpecialOffset.idl
+++ b/offapi/com/sun/star/sheet/FormulaMapGroupSpecialOffset.idl
@@ -56,7 +56,7 @@ constants FormulaMapGroupSpecialOffset
constants.</li>
<li>A <atom>string</atom> for literal text.</li>
<li>A <atom dim="[][]">any</atom> for a literal array. The contained
- values shall be of type <atom>double</atom> or atom>string</atom>.
+ values shall be of type <atom>double</atom> or <atom>string</atom>.
Floating-point values and strings may occur together in an array.</li>
<li>A struct of type <type>SingleReference</type> for a reference to a
single cell in the own document.</li>
@@ -142,7 +142,7 @@ constants FormulaMapGroupSpecialOffset
able to parse.
<p>The <member>FormulaToken::Data</member> member shall contain a
- <atom>string</string> with the bad data. This string will be displayed
+ <atom>string</atom> with the bad data. This string will be displayed
literally in the formula.</p>
*/
const long BAD = 7;
diff --git a/offapi/com/sun/star/sheet/SheetFilterDescriptor.idl b/offapi/com/sun/star/sheet/SheetFilterDescriptor.idl
index 8e94a6b2edcf..cd4a12abde76 100644
--- a/offapi/com/sun/star/sheet/SheetFilterDescriptor.idl
+++ b/offapi/com/sun/star/sheet/SheetFilterDescriptor.idl
@@ -28,21 +28,11 @@
#ifndef __com_sun_star_sheet_SheetFilterDescriptor_idl__
#define __com_sun_star_sheet_SheetFilterDescriptor_idl__
-#ifndef __com_sun_star_sheet_XSheetFilterDescriptor_idl__
#include <com/sun/star/sheet/XSheetFilterDescriptor.idl>
-#endif
-
-#ifndef __com_sun_star_beans_XPropertySet_idl__
+#include <com/sun/star/sheet/XSheetFilterDescriptor2.idl>
#include <com/sun/star/beans/XPropertySet.idl>
-#endif
-
-#ifndef __com_sun_star_table_TableOrientation_idl__
#include <com/sun/star/table/TableOrientation.idl>
-#endif
-
-#ifndef __com_sun_star_table_CellAddress_idl__
#include <com/sun/star/table/CellAddress.idl>
-#endif
//=============================================================================
@@ -62,7 +52,20 @@ published service SheetFilterDescriptor
/** provides access to the collection of filter fields.
*/
- interface com::sun::star::sheet::XSheetFilterDescriptor;
+ interface XSheetFilterDescriptor;
+
+ //-------------------------------------------------------------------------
+
+ /** provides access to the collection of filter fields.
+
+ <p>This interface provides a sequence of <type>TableFilterField2</type>
+ structures supporting a wider range of comparison operators, compared
+ to the <type>TableFilterField</type> structure provided by interface
+ <type>XSheetFilterDescriptor</type>.
+
+ @since OOo 3.2
+ */
+ [optional] interface XSheetFilterDescriptor2;
//-------------------------------------------------------------------------
diff --git a/offapi/com/sun/star/awt/grid/ScrollBarMode.idl b/offapi/com/sun/star/sheet/SpreadsheetViewObjectsMode.idl
index d22cd8f30c78..d672dd8931e9 100644..100755
--- a/offapi/com/sun/star/awt/grid/ScrollBarMode.idl
+++ b/offapi/com/sun/star/sheet/SpreadsheetViewObjectsMode.idl
@@ -24,47 +24,38 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-#ifndef __com_sun_star_awt_grid_ScrollBarMode_idl__
-#define __com_sun_star_awt_grid_ScrollBarMode_idl__
+#ifndef __com_sun_star_sheet_SpreadsheetViewObjectsMode_idl__
+#define __com_sun_star_sheet_SpreadsheetViewObjectsMode_idl__
//=============================================================================
-module com { module sun { module star { module awt { module grid {
+module com { module sun { module star { module sheet {
//=============================================================================
-/** specifies the adjustment type.
+/** Constants that control how embedded objects are shown in the view.
*/
-enum ScrollBarMode
+published constants SpreadsheetViewObjectsMode
{
//-------------------------------------------------------------------------
- /** adjustment is originated by a line jump.
-
- <p>A line jump can, for example, be caused by a click on
- one of the pointer buttons.</p>
+ /** Specifies to display a specific set of objects in the spreadsheet view.
*/
- AUTO,
+ const short SHOW = 0;
//-------------------------------------------------------------------------
- /** adjustment is originated by a page jump.
-
- <p>A page jump can, for example, be caused by a click in the
- background area of the scrollbar (neither one of the pointer
- buttons, nor the thumb).</p>
+ /** Specifies to hide a specific set of objects from the spreadsheet view.
*/
- ON,
-
- OFF
-
-
+ const short HIDE = 1;
+ //-------------------------------------------------------------------------
};
//=============================================================================
-}; }; }; }; };
+}; }; }; };
#endif
+
diff --git a/offapi/com/sun/star/sheet/SpreadsheetViewSettings.idl b/offapi/com/sun/star/sheet/SpreadsheetViewSettings.idl
index e40ea1dd8fe4..c1b56ff7ffc6 100644
--- a/offapi/com/sun/star/sheet/SpreadsheetViewSettings.idl
+++ b/offapi/com/sun/star/sheet/SpreadsheetViewSettings.idl
@@ -149,18 +149,24 @@ published service SpreadsheetViewSettings
//-------------------------------------------------------------------------
/** enables display of embedded objects in the view.
+
+ @see SpreadsheetViewObjectsMode
*/
[property] short ShowObjects;
//-------------------------------------------------------------------------
/** enables the display of charts in the view.
+
+ @see SpreadsheetViewObjectsMode
*/
[property] short ShowCharts;
//-------------------------------------------------------------------------
/** enables the display of drawing objects in the view.
+
+ @see SpreadsheetViewObjectsMode
*/
[property] short ShowDrawing;
@@ -175,14 +181,14 @@ published service SpreadsheetViewSettings
@see com::sun::star::view::DocumentZoomType
*/
- [property] short ZoomType;
+ [property] short ZoomType;
//-------------------------------------------------------------------------
/** Defines the zoom value to use.
Valid only if the ZoomType is set to
<member scope="com::sun::star::view::DocumentZoomType">BY_VALUE</member>.
*/
- [property] short ZoomValue;
+ [property] short ZoomValue;
};
//=============================================================================
diff --git a/offapi/com/sun/star/sheet/TableFilterField.idl b/offapi/com/sun/star/sheet/TableFilterField.idl
index 6000a1c0247e..69d9a5bcc6ee 100644
--- a/offapi/com/sun/star/sheet/TableFilterField.idl
+++ b/offapi/com/sun/star/sheet/TableFilterField.idl
@@ -28,13 +28,8 @@
#ifndef __com_sun_star_sheet_TableFilterField_idl__
#define __com_sun_star_sheet_TableFilterField_idl__
-#ifndef __com_sun_star_sheet_FilterConnection_idl__
#include <com/sun/star/sheet/FilterConnection.idl>
-#endif
-
-#ifndef __com_sun_star_sheet_FilterOperator_idl__
#include <com/sun/star/sheet/FilterOperator.idl>
-#endif
//=============================================================================
@@ -44,7 +39,7 @@ module com { module sun { module star { module sheet {
/** describes a single condition in a filter descriptor.
- @see com::sun::star::sheet::SheetFilterDescriptor
+ @see SheetFilterDescriptor
*/
published struct TableFilterField
{
@@ -52,7 +47,7 @@ published struct TableFilterField
/** specifies how the condition is connected to the previous condition.
*/
- com::sun::star::sheet::FilterConnection Connection;
+ FilterConnection Connection;
//-------------------------------------------------------------------------
@@ -64,7 +59,7 @@ published struct TableFilterField
/** specifies the type of the condition.
*/
- com::sun::star::sheet::FilterOperator Operator;
+ FilterOperator Operator;
//-------------------------------------------------------------------------
diff --git a/offapi/com/sun/star/sheet/TableFilterField2.idl b/offapi/com/sun/star/sheet/TableFilterField2.idl
index cfbcfa4d143c..d7383f477bdc 100644
--- a/offapi/com/sun/star/sheet/TableFilterField2.idl
+++ b/offapi/com/sun/star/sheet/TableFilterField2.idl
@@ -28,14 +28,8 @@
#ifndef __com_sun_star_sheet_TableFilterField2_idl__
#define __com_sun_star_sheet_TableFilterField2_idl__
-
-#ifndef __com_sun_star_sheet_FilterConnection_idl__
#include <com/sun/star/sheet/FilterConnection.idl>
-#endif
-
-#ifndef __com_sun_star_sheet_FilterOperator2_idl__
#include <com/sun/star/sheet/FilterOperator2.idl>
-#endif
//=============================================================================
@@ -49,7 +43,7 @@ module com { module sun { module star { module sheet {
member, whereas the <type>TableFilterField</type> struct uses the
<type>FilterOperator</type> enum.</p>
- @see com::sun::star::sheet::SheetFilterDescriptor
+ @see SheetFilterDescriptor
@since OOo 3.2
*/
published struct TableFilterField2
@@ -58,7 +52,7 @@ published struct TableFilterField2
/** specifies how the condition is connected to the previous condition.
*/
- com::sun::star::sheet::FilterConnection Connection;
+ FilterConnection Connection;
//-------------------------------------------------------------------------
@@ -69,7 +63,7 @@ published struct TableFilterField2
//-------------------------------------------------------------------------
/** specifies the type of the condition as defined in
- <type>FilterOperator2</type>.
+ <type>FilterOperator2</type>.
*/
long Operator;
diff --git a/offapi/com/sun/star/sheet/XDatabaseRange.idl b/offapi/com/sun/star/sheet/XDatabaseRange.idl
index 573578f0c355..9826ab8278e6 100644
--- a/offapi/com/sun/star/sheet/XDatabaseRange.idl
+++ b/offapi/com/sun/star/sheet/XDatabaseRange.idl
@@ -77,7 +77,7 @@ published interface XDatabaseRange: com::sun::star::uno::XInterface
/** returns the sort descriptor stored with the database range.
- @see com::sun::star::sheet::SheetSortDescriptor2
+ @see SheetSortDescriptor2
*/
sequence< com::sun::star::beans::PropertyValue > getSortDescriptor();
@@ -88,8 +88,10 @@ published interface XDatabaseRange: com::sun::star::uno::XInterface
<p>If the filter descriptor is modified, the new filtering is
carried out when <member>XDatabaseRange::refresh()</member> is
called.</p>
+
+ @see SheetFilterDescriptor
*/
- com::sun::star::sheet::XSheetFilterDescriptor getFilterDescriptor();
+ XSheetFilterDescriptor getFilterDescriptor();
//-------------------------------------------------------------------------
@@ -98,15 +100,17 @@ published interface XDatabaseRange: com::sun::star::uno::XInterface
<p>If the subtotal descriptor is modified, the new subtotals are
inserted when <member>XDatabaseRange::refresh()</member> is
called.</p>
+
+ @see SubTotalDescriptor
*/
- com::sun::star::sheet::XSubTotalDescriptor getSubTotalDescriptor();
+ XSubTotalDescriptor getSubTotalDescriptor();
//-------------------------------------------------------------------------
/** returns the database import descriptor stored with this database
range.
- @see com::sun::star::sheet::DatabaseImportDescriptor
+ @see DatabaseImportDescriptor
*/
sequence< com::sun::star::beans::PropertyValue > getImportDescriptor();
diff --git a/offapi/com/sun/star/sheet/XSheetFilterDescriptor.idl b/offapi/com/sun/star/sheet/XSheetFilterDescriptor.idl
index 49f44fd534d8..b3864f373c8a 100644
--- a/offapi/com/sun/star/sheet/XSheetFilterDescriptor.idl
+++ b/offapi/com/sun/star/sheet/XSheetFilterDescriptor.idl
@@ -28,13 +28,8 @@
#ifndef __com_sun_star_sheet_XSheetFilterDescriptor_idl__
#define __com_sun_star_sheet_XSheetFilterDescriptor_idl__
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-#ifndef __com_sun_star_sheet_TableFilterField_idl__
#include <com/sun/star/sheet/TableFilterField.idl>
-#endif
+#include <com/sun/star/uno/XInterface.idl>
//=============================================================================
@@ -44,7 +39,7 @@ module com { module sun { module star { module sheet {
/** provides access to a collection of filter conditions (filter fields).
- @see com::sun::star::sheet::SheetFilterDescriptor
+ @see SheetFilterDescriptor
*/
published interface XSheetFilterDescriptor: com::sun::star::uno::XInterface
{
@@ -52,14 +47,13 @@ published interface XSheetFilterDescriptor: com::sun::star::uno::XInterface
/** returns the collection of filter fields.
*/
- sequence< com::sun::star::sheet::TableFilterField > getFilterFields();
+ sequence< TableFilterField > getFilterFields();
//-------------------------------------------------------------------------
/** sets a new collection of filter fields.
*/
- void setFilterFields(
- [in] sequence< com::sun::star::sheet::TableFilterField > aFilterFields );
+ void setFilterFields( [in] sequence< TableFilterField > aFilterFields );
};
diff --git a/offapi/com/sun/star/sheet/XSheetFilterDescriptor2.idl b/offapi/com/sun/star/sheet/XSheetFilterDescriptor2.idl
index 8f94ee65fc8e..ba8b7904366e 100644
--- a/offapi/com/sun/star/sheet/XSheetFilterDescriptor2.idl
+++ b/offapi/com/sun/star/sheet/XSheetFilterDescriptor2.idl
@@ -28,13 +28,8 @@
#ifndef __com_sun_star_sheet_XSheetFilterDescriptor2_idl__
#define __com_sun_star_sheet_XSheetFilterDescriptor2_idl__
-#ifndef __com_sun_star_sheet_TableFilterField2_idl__
#include <com/sun/star/sheet/TableFilterField2.idl>
-#endif
-
-#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
-#endif
//=============================================================================
@@ -48,7 +43,7 @@ module com { module sun { module star { module sheet {
whereas the <type>XSheetFilterDescriptor</type> interface uses the
<type>TableFilterField</type> struct.</p>
- @see com::sun::star::sheet::SheetFilterDescriptor
+ @see SheetFilterDescriptor
@since OOo 3.2
*/
published interface XSheetFilterDescriptor2: com::sun::star::uno::XInterface
@@ -57,14 +52,13 @@ published interface XSheetFilterDescriptor2: com::sun::star::uno::XInterface
/** returns the collection of filter fields.
*/
- sequence< com::sun::star::sheet::TableFilterField2 > getFilterFields2();
+ sequence< TableFilterField2 > getFilterFields2();
//-------------------------------------------------------------------------
/** sets a new collection of filter fields.
*/
- void setFilterFields2(
- [in] sequence< com::sun::star::sheet::TableFilterField2 > aFilterFields );
+ void setFilterFields2( [in] sequence< TableFilterField2 > aFilterFields );
};
diff --git a/offapi/com/sun/star/sheet/makefile.mk b/offapi/com/sun/star/sheet/makefile.mk
index 65e8d5c40491..c5b15a5b07af 100644
--- a/offapi/com/sun/star/sheet/makefile.mk
+++ b/offapi/com/sun/star/sheet/makefile.mk
@@ -198,6 +198,7 @@ IDLFILES=\
SpreadsheetDocumentSettings.idl\
SpreadsheetDrawPage.idl\
SpreadsheetView.idl\
+ SpreadsheetViewObjectsMode.idl\
SpreadsheetViewPane.idl\
SpreadsheetViewPanesEnumeration.idl\
SpreadsheetViewSettings.idl\
diff --git a/offapi/com/sun/star/view/XMultiSelectionSupplier.idl b/offapi/com/sun/star/view/XMultiSelectionSupplier.idl
index 8d5d7e07fb52..3557b3c47fae 100644
--- a/offapi/com/sun/star/view/XMultiSelectionSupplier.idl
+++ b/offapi/com/sun/star/view/XMultiSelectionSupplier.idl
@@ -66,7 +66,7 @@ interface XMultiSelectionSupplier: XSelectionSupplier
added to the current selection. For example, if the selection already contains
objects that are forbidden to be selected together with <var>Selection</var>
- @raises com::sun::star::lang::IllegalArgumentException
+ @throws com::sun::star::lang::IllegalArgumentException
If <var>Selection</var> is not a selectable object for this <type>XMultiSelectionSupplier</type>.
<p>Adding an object to the selection that is already part of the selection should not raise this exception</p>
*/
@@ -87,7 +87,7 @@ interface XMultiSelectionSupplier: XSelectionSupplier
added to the current selection. For example, if the selection already contains
objects that are forbidden to be selected together with <var>Selection</var>.
- @raises com::sun::star::lang::IllegalArgumentException
+ @throws com::sun::star::lang::IllegalArgumentException
If <var>Selection</var> is not a selectable object for this <type>XMultiSelectionSupplier</type>.
<p>Removing an object from the selection that is not part of the selection should not raise this exception</p>
*/
diff --git a/offapi/com/sun/star/xml/sax/XFastAttributeList.idl b/offapi/com/sun/star/xml/sax/XFastAttributeList.idl
index a48e0e5b9337..5fa78b81d393 100644
--- a/offapi/com/sun/star/xml/sax/XFastAttributeList.idl
+++ b/offapi/com/sun/star/xml/sax/XFastAttributeList.idl
@@ -92,7 +92,7 @@ interface XFastAttributeList: com::sun::star::uno::XInterface
@returns
The integer token of the value from the attribute or <const>FastToken::Invalid</const>
- @raises SAXEXception
+ @throws SAXEXception
if the attribute is not available
*/
@@ -137,7 +137,7 @@ interface XFastAttributeList: com::sun::star::uno::XInterface
@returns
The string value from the attribute.
- @raises SAXEXception
+ @throws SAXEXception
if the attribute is not available
*/
diff --git a/offapi/type_reference/typelibrary_history.txt b/offapi/type_reference/typelibrary_history.txt
index 7dcd438d5517..16745ab9f7eb 100644
--- a/offapi/type_reference/typelibrary_history.txt
+++ b/offapi/type_reference/typelibrary_history.txt
@@ -158,3 +158,7 @@
Update reference type library with the version of OOo 3.2.1. The new
reference type library is taken from the release source tree OOO320 m19.
+01/28/11 (JSC): TaskID=116682
+ Update css.awt.UnoControlDialog to reflect the supported XDialog2 interface
+ additionally to XDialog
+
diff --git a/offapi/type_reference/types.rdb b/offapi/type_reference/types.rdb
index 6d9f761331f4..02cd79c9eb4f 100644
--- a/offapi/type_reference/types.rdb
+++ b/offapi/type_reference/types.rdb
Binary files differ
diff --git a/sal/inc/sal/types.h b/sal/inc/sal/types.h
index 14c24480d98b..2db057b2fa12 100644
--- a/sal/inc/sal/types.h
+++ b/sal/inc/sal/types.h
@@ -291,7 +291,7 @@ typedef void * sal_Handle;
These macros are used for inline declarations of exception classes, as in
rtl/malformeduriexception.hxx.
*/
-#if defined __GNUC__
+#if defined(__GNUC__) && ! defined(__MINGW32__)
#define SAL_EXCEPTION_DLLPUBLIC_EXPORT SAL_DLLPUBLIC_EXPORT
#define SAL_EXCEPTION_DLLPRIVATE SAL_DLLPRIVATE
#else
diff --git a/sal/osl/all/makefile.mk b/sal/osl/all/makefile.mk
index 0d105906effb..5da61e8b2ec3 100644
--- a/sal/osl/all/makefile.mk
+++ b/sal/osl/all/makefile.mk
@@ -55,7 +55,8 @@ SLOFILES= \
$(SLO)$/utility.obj\
$(SLO)$/filepath.obj\
$(SLO)$/debugbase.obj\
- $(SLO)$/loadmodulerelative.obj
+ $(SLO)$/loadmodulerelative.obj \
+ $(SLO)/printtrace.obj
# $(SLO)$/readline.obj\
@@ -64,7 +65,8 @@ OBJFILES= \
$(OBJ)$/utility.obj\
$(OBJ)$/filepath.obj\
$(OBJ)$/debugbase.obj\
- $(OBJ)$/loadmodulerelative.obj
+ $(OBJ)$/loadmodulerelative.obj \
+ $(OBJ)/printtrace.obj
# $(OBJ)$/readline.obj\
#.ENDIF
diff --git a/sal/osl/all/printtrace.cxx b/sal/osl/all/printtrace.cxx
new file mode 100644
index 000000000000..5d79d9b1de5a
--- /dev/null
+++ b/sal/osl/all/printtrace.cxx
@@ -0,0 +1,65 @@
+/*************************************************************************
+*
+* 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.
+*
+************************************************************************/
+
+#include "precompiled_sal.hxx"
+
+#include "sal/config.h"
+
+#include <cstdarg>
+#include <cstdio>
+#include <cstring>
+
+#include <stdio.h> // snprintf, vsnprintf
+
+#include "osl/diagnose.h"
+#include "osl/thread.hxx"
+#include "rtl/string.h"
+#include "sal/types.h"
+
+#include "printtrace.h"
+
+void printTrace(unsigned long pid, char const * format, std::va_list arguments)
+{
+ char buf[1024];
+ int n1 = snprintf(
+ buf, sizeof buf, "Trace %lu/%" SAL_PRIuUINT32 ": \"", pid,
+ osl::Thread::getCurrentIdentifier());
+ OSL_ASSERT(
+ n1 >= 0 &&
+ (static_cast< unsigned int >(n1) <
+ sizeof buf - RTL_CONSTASCII_LENGTH("\"...\n")));
+ int n2 = sizeof buf - n1 - RTL_CONSTASCII_LENGTH("\"...\n");
+ int n3 = vsnprintf(buf + n1, n2, format, arguments);
+ if (n3 < 0) {
+ std::strcpy(buf + n1, "\"???\n");
+ } else if (n3 < n2) {
+ std::strcpy(buf + n1 + n3, "\"\n");
+ } else {
+ std::strcpy(buf + n1 + n2 - 1, "\"...\n");
+ }
+ std::fputs(buf, stderr);
+}
diff --git a/sal/osl/inc/printtrace.h b/sal/osl/inc/printtrace.h
new file mode 100644
index 000000000000..9e1d514b0d08
--- /dev/null
+++ b/sal/osl/inc/printtrace.h
@@ -0,0 +1,46 @@
+/*************************************************************************
+*
+* 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 INCLUDED_SAL_OSL_INC_PRINTTRACE_H
+#define INCLUDED_SAL_OSL_INC_PRINTTRACE_H
+
+#include "sal/config.h"
+
+#include <stdarg.h>
+
+#if defined __cplusplus
+extern "C" {
+#endif
+
+/* called internally by osl_trace */
+void printTrace(unsigned long pid, char const * format, va_list arguments);
+
+#if defined __cplusplus
+}
+#endif
+
+#endif
diff --git a/sal/osl/os2/diagnose.c b/sal/osl/os2/diagnose.c
index 4921e20fd5af..b105e0b78c29 100644
--- a/sal/osl/os2/diagnose.c
+++ b/sal/osl/os2/diagnose.c
@@ -35,6 +35,8 @@
#include <osl/diagnose.h>
#include <osl/thread.h>
+#include "printtrace.h"
+
BYTE oslTraceEnv[] = "OSL_TRACE_TO_FILE";
typedef pfunc_osl_printDebugMessage oslDebugMessageFunc;
@@ -53,29 +55,11 @@ void SAL_CALL osl_breakDebug()
/************************************************************************/
/* osl_trace */
/************************************************************************/
-/* comment this define to stop output thread identifier*/
-#define OSL_TRACE_THREAD 1
-void SAL_CALL osl_trace (
- const sal_Char* lpszFormat, ...)
-{
+void osl_trace(char const * pszFormat, ...) {
va_list args;
-
-#if defined(OSL_PROFILING)
- fprintf(stderr, "Time: %06lu : ", osl_getGlobalTimer() );
-#else
-#if defined(OSL_TRACE_THREAD)
- fprintf(stderr,"Thread: %6d :",osl_getThreadIdentifier(NULL));
-#else
- fprintf(stderr, "Trace Message: ");
-#endif
-#endif
-
- va_start(args, lpszFormat);
- vfprintf(stderr, lpszFormat, args);
+ va_start(args, pszFormat);
+ printTrace(0, pszFormat, args); /* TODO: pid */
va_end(args);
-
- fprintf(stderr,"\n");
- fflush(stderr);
}
/*----------------------------------------------------------------------------*/
diff --git a/sal/osl/unx/diagnose.c b/sal/osl/unx/diagnose.c
index bb8cbca406bd..02967b3ad7f7 100644
--- a/sal/osl/unx/diagnose.c
+++ b/sal/osl/unx/diagnose.c
@@ -28,7 +28,6 @@
#include "osl/diagnose.h"
#include "system.h"
-
#ifndef HAVE_DLFCN_H
#if defined(LINUX) || defined(SOLARIS)
@@ -58,6 +57,8 @@
#define INCLUDED_STDDEF_H
#endif
+#include "printtrace.h"
+
/************************************************************************/
/* Internal data structures and functions */
/************************************************************************/
@@ -301,32 +302,9 @@ pfunc_osl_printDetailedDebugMessage SAL_CALL osl_setDetailedDebugMessageFunc (
/************************************************************************/
/* osl_trace */
/************************************************************************/
-/* comment this define to stop output thread identifier*/
-#define OSL_TRACE_THREAD 1
-void SAL_CALL osl_trace (
- const sal_Char* lpszFormat, ...)
-{
+void osl_trace(char const * pszFormat, ...) {
va_list args;
-
-#if defined(OSL_PROFILING)
- fprintf(stderr, "Time: %06lu : ", osl_getGlobalTimer() );
-#else
-#if defined(OSL_TRACE_THREAD)
- fprintf(
- stderr, "Thread: %6lu :",
- SAL_INT_CAST(unsigned long, osl_getThreadIdentifier(NULL)));
-#else
- fprintf(stderr, "Trace Message: ");
-#endif
-#endif
-
- va_start(args, lpszFormat);
- vfprintf(stderr, lpszFormat, args);
+ va_start(args, pszFormat);
+ printTrace((unsigned long) getpid(), pszFormat, args);
va_end(args);
-
- fprintf(stderr,"\n");
- fflush(stderr);
}
-
-/************************************************************************/
-
diff --git a/sal/osl/w32/diagnose.c b/sal/osl/w32/diagnose.c
index b46bff44b73c..9c75e4502743 100644..100755
--- a/sal/osl/w32/diagnose.c
+++ b/sal/osl/w32/diagnose.c
@@ -32,6 +32,8 @@
#include <osl/diagnose.h>
#include <osl/thread.h>
+#include "printtrace.h"
+
#define NO_DEBUG_CRT
static pfunc_osl_printDebugMessage _pPrintDebugMessage = NULL;
@@ -61,46 +63,21 @@ void SAL_CALL osl_breakDebug(void)
DebugBreak();
}
-
-
-/* Uncomment this define to get profiling time output */
-/* #define OSL_PROFILING */
-/* comment this define to stop output thread identifier*/
-#define OSL_TRACE_THREAD 1
-void SAL_CALL osl_trace(const sal_Char* lpszFormat, ...)
-{
+void osl_trace(char const * pszFormat, ...) {
va_list args;
- int written = 0;
-
- va_start(args, lpszFormat);
-
-#if defined(OSL_PROFILING)
- fprintf(stderr, "time : %06lu : ", osl_getGlobalTimer() );
-#else
-#if defined(OSL_TRACE_THREAD)
- fprintf(stderr,"Thread: %6d :",osl_getThreadIdentifier(NULL));
-#else
- fprintf(stderr,"Trace Message : ");
-#endif
-#endif
-
+ va_start(args, pszFormat);
if ( IsDebuggerPresent() )
{
sal_Char szMessage[512];
- written = _vsnprintf( szMessage, sizeof(szMessage) - 2, lpszFormat, args );
+ int written = _vsnprintf(
+ szMessage, sizeof(szMessage) - 2, pszFormat, args );
if ( written == -1 )
written = sizeof(szMessage) - 2;
szMessage[ written++ ] = '\n';
szMessage[ written ] = 0;
OutputDebugString( szMessage );
}
-
- vfprintf(stderr,lpszFormat, args);
-
- fprintf(stderr,"\n");
-
- fflush(stderr);
-
+ printTrace((unsigned long) _getpid(), pszFormat, args);
va_end(args);
}
diff --git a/sal/systools/win32/uwinapi/ResolveUnicows.cpp b/sal/systools/win32/uwinapi/ResolveUnicows.cpp
index cd5943004f17..d2864d3413cb 100644
--- a/sal/systools/win32/uwinapi/ResolveUnicows.cpp
+++ b/sal/systools/win32/uwinapi/ResolveUnicows.cpp
@@ -1,6 +1,7 @@
#ifdef __MINGW32__
#define _GDI32_
#include "macros.h"
+#include <w32api.h>
#include <multimon.h>
extern "C" {
extern HMODULE hModuleUnicowsDLL;
@@ -461,7 +462,11 @@ DEFINE_UNICOWS_THUNK( kernel32, BOOL, WINAPI, UpdateResourceW, (HANDLE,LPCWSTR,L
DEFINE_UNICOWS_THUNK( version, DWORD, WINAPI, VerFindFileW, (DWORD,LPWSTR,LPWSTR,LPWSTR,LPWSTR,PUINT,LPWSTR,PUINT) )
DEFINE_UNICOWS_THUNK( version, DWORD, WINAPI, VerInstallFileW, (DWORD,LPWSTR,LPWSTR,LPWSTR,LPWSTR,LPWSTR,LPWSTR,PUINT) )
DEFINE_UNICOWS_THUNK( kernel32, DWORD, WINAPI, VerLanguageNameW, (DWORD,LPWSTR,DWORD) )
+#if ( __W32API_MAJOR_VERSION > 3 ) || ( __W32API_MAJOR_VERSION == 3 && __W32API_MINOR_VERSION > 13 )
+DEFINE_UNICOWS_THUNK( version, BOOL, WINAPI, VerQueryValueW, (const LPVOID,LPCWSTR,LPVOID*,PUINT) )
+#else
DEFINE_UNICOWS_THUNK( version, BOOL, WINAPI, VerQueryValueW, (const LPVOID,LPWSTR,LPVOID*,PUINT) )
+#endif
DEFINE_UNICOWS_THUNK( user32, SHORT, WINAPI, VkKeyScanExW, (WCHAR,HKL) )
DEFINE_UNICOWS_THUNK( user32, SHORT, WINAPI, VkKeyScanW, (WCHAR) )
DEFINE_UNICOWS_THUNK( user32, DWORD, WINAPI, SetupDecompressOrCopyFileW, (PCWSTR,PCWSTR,PUINT) )
diff --git a/udkapi/prj/makefile.mk b/udkapi/prj/makefile.mk
deleted file mode 100644
index 0b1e9335ed44..000000000000
--- a/udkapi/prj/makefile.mk
+++ /dev/null
@@ -1,61 +0,0 @@
-#*************************************************************************
-#
-# 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.
-#
-#*************************************************************************
-
-PRJ=.
-PRJNAME:=udkapi
-
-# --- Settings -----------------------------------------------------
-
-OUT!:=$(PRJ)$/out
-
-# ------------------------------------------------------------------
-
-INCLUDES= \
- com$/sun$/star$/container$/makefile.mk \
- com$/sun$/star$/io$/makefile.mk \
- com$/sun$/star$/reflection$/makefile.mk \
- com$/sun$/star$/beans$/makefile.mk \
- com$/sun$/star$/lang$/makefile.mk \
- com$/sun$/star$/uno$/makefile.mk \
- com$/sun$/star$/uno$/util$/logging$/makefile.mk \
- com$/sun$/star$/corba$/makefile.mk \
- com$/sun$/star$/corba$/iop$/makefile.mk \
- com$/sun$/star$/corba$/giop$/makefile.mk \
- com$/sun$/star$/corba$/iiop$/makefile.mk \
- com$/sun$/star$/script$/makefile.mk \
- com$/sun$/star$/test$/makefile.mk \
- com$/sun$/star$/registry$/makefile.mk \
- com$/sun$/star$/loader$/makefile.mk \
- com$/sun$/star$/bridge$/makefile.mk
-
-.INCLUDE: $(INCLUDES)
-
-out$/$(PRJNAME).rdb:: $(ALLIDLFILES)
- unoidl @$(mktmp -I$(PRJ) -Burd -OHout $(ALLIDLFILES:+"\n"))
- regmerge @$(mktmp $@ /UCR out$/{$(?:f:s/.idl/.urd/:+"\n")} )
- touch $@
-