diff options
218 files changed, 5159 insertions, 1719 deletions
diff --git a/basic/source/runtime/dllmgr.cxx b/basic/source/runtime/dllmgr.cxx index bc08a8cb64bc..04f1ee0a8acc 100644 --- a/basic/source/runtime/dllmgr.cxx +++ b/basic/source/runtime/dllmgr.cxx @@ -684,7 +684,7 @@ Dll * SbiDllMgr::Impl::getDll(rtl::OUString const & name) { Dlls::iterator i(dlls.find(name)); if (i == dlls.end()) { i = dlls.insert(Dlls::value_type(name, new Dll)).first; - HMODULE h = LoadLibraryW(name); + HMODULE h = LoadLibraryW(reinterpret_cast<LPCWSTR>(name.getStr())); if (h == 0) { dlls.erase(i); return 0; diff --git a/basic/source/runtime/wnt-mingw.s b/basic/source/runtime/wnt-mingw.s index 7868ddd386f0..8c332c1a8ce8 100644 --- a/basic/source/runtime/wnt-mingw.s +++ b/basic/source/runtime/wnt-mingw.s @@ -44,8 +44,8 @@ _DllMgr_callFp: shr ecx, 2 rep movsd $1: call DWORD PTR [ebp+8] - ; for extra safety, do not trust esp after call (in case the Basic Declare - ; signature is wrong): + # for extra safety, do not trust esp after call (in case the Basic Declare + # signature is wrong): mov edi, [ebp-8] mov esi, [ebp-4] mov esp, ebp diff --git a/cli_ure/version/version.txt b/cli_ure/version/version.txt index 15dac78d4ed8..8cbdedf654d4 100644 --- a/cli_ure/version/version.txt +++ b/cli_ure/version/version.txt @@ -25,23 +25,23 @@ # #************************************************************************* -CLI_URETYPES_NEW_VERSION=1.0.6.0 -CLI_URETYPES_OLD_VERSION=1.0.0.0-1.0.5.0 -CLI_URETYPES_POLICY_VERSION=6.0.0.0 +CLI_URETYPES_NEW_VERSION=1.0.7.0 +CLI_URETYPES_OLD_VERSION=1.0.0.0-1.0.6.0 +CLI_URETYPES_POLICY_VERSION=7.0.0.0 CLI_URETYPES_POLICY_ASSEMBLY=policy.1.0.cli_uretypes -CLI_BASETYPES_NEW_VERSION=1.0.17.0 -CLI_BASETYPES_OLD_VERSION=1.0.0.0-1.0.16.0 -CLI_BASETYPES_POLICY_VERSION=17.0.0.0 +CLI_BASETYPES_NEW_VERSION=1.0.18.0 +CLI_BASETYPES_OLD_VERSION=1.0.0.0-1.0.17.0 +CLI_BASETYPES_POLICY_VERSION=18.0.0.0 CLI_BASETYPES_POLICY_ASSEMBLY=policy.1.0.cli_basetypes -CLI_URE_NEW_VERSION=1.0.20.0 -CLI_URE_OLD_VERSION=1.0.0.0-1.0.19.0 -CLI_URE_POLICY_VERSION=20.0.0.0 +CLI_URE_NEW_VERSION=1.0.21.0 +CLI_URE_OLD_VERSION=1.0.0.0-1.0.20.0 +CLI_URE_POLICY_VERSION=21.0.0.0 CLI_URE_POLICY_ASSEMBLY=policy.1.0.cli_ure -CLI_CPPUHELPER_NEW_VERSION=1.0.20.0 -CLI_CPPUHELPER_OLD_VERSION=1.0.0.0-1.0.19.0 -CLI_CPPUHELPER_POLICY_VERSION=20.0.0.0 +CLI_CPPUHELPER_NEW_VERSION=1.0.21.0 +CLI_CPPUHELPER_OLD_VERSION=1.0.0.0-1.0.20.0 +CLI_CPPUHELPER_POLICY_VERSION=21.0.0.0 CLI_CPPUHELPER_POLICY_ASSEMBLY=policy.1.0.cli_cppuhelper - + diff --git a/configmgr/source/xcuparser.cxx b/configmgr/source/xcuparser.cxx index eda478b18b70..cd1e6e55d085 100644 --- a/configmgr/source/xcuparser.cxx +++ b/configmgr/source/xcuparser.cxx @@ -196,6 +196,14 @@ bool XcuParser::startElement( { handleSetNode( reader, dynamic_cast< SetNode * >(state_.top().node.get())); + } else if (ns == XmlReader::NAMESPACE_NONE && + name.equals(RTL_CONSTASCII_STRINGPARAM("prop"))) + { + OSL_TRACE( + "configmgr bad set node <prop> member in %s", + rtl::OUStringToOString( + reader.getUrl(), RTL_TEXTENCODING_UTF8).getStr()); + state_.push(State(true)); // ignored } else { throw css::uno::RuntimeException( (rtl::OUString( diff --git a/configure b/configure index 997139fdc1a8..6a8de10e3376 100755 --- a/configure +++ b/configure @@ -309,7 +309,7 @@ ac_includes_default="\ # include <unistd.h> #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS EGREP AWK SED LOCAL_SOLENV _solenv UPD SOURCEVERSION build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os GNUTAR OSVERSION PTHREAD_CFLAGS PTHREAD_LIBS ENABLE_CRASHDUMP VC_STANDARD ENABLE_WERROR ENABLE_DEBUG PRODUCT PROFULLSWITCH PROEXT ENABLE_SYMBOLS DISABLE_STRIP ENABLE_CUPS ENABLE_FONTCONFIG TARFILE_LOCATION DO_FETCH_TARBALLS WITH_BINFILTER ENABLE_DIRECTX DISABLE_ACTIVEX DISABLE_ATL ENABLE_RPATH WITH_MYSPELL_DICTS SYSTEM_DICTS DICT_SYSTEM_DIR HYPH_SYSTEM_DIR THES_SYSTEM_DIR WITH_MINGWIN SHELLPATH GCC_HOME CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT COMPATH GCCVER HAVE_LD_BSYMBOLIC_FUNCTIONS ENABLE_PCH NO_HIDS GNUMAKE _cc HAVE_LD_HASH_STYLE PERL MSPDB_PATH COMEX USE_MINGW MIDL_PATH CSC_PATH FRAME_HOME CPP CXX CXXFLAGS ac_ct_CXX CXXCPP SIZEOF_LONG WORDS_BIGENDIAN LFS_CFLAGS ENABLE_VBA VBA_EXTENSION PAM NEW_SHADOW_API PAM_LINK CRYPT_LINK GXX_INCLUDE_PATH MINGW_LIB_INCLUDE_PATH MINGW_BACKWARD_INCLUDE_PATH MINGW_CLIB_DIR MINGW_SHARED_GCCLIB MINGW_GCCLIB_EH MINGW_SHARED_GXXLIB MINGW_GCCDLL MINGW_GXXDLL EXCEPTIONS STLPORT4 STLPORT_VER USE_SYSTEM_STL USE_CCACHE CCACHE HAVE_GCC_VISIBILITY_FEATURE ALLOC BUILD_VER_STRING SOLAR_JAVA JAVAINTERPRETER JAVACOMPILER JAVACISGCJ JAVADOC AWTLIB JAVAAOTCOMPILER JAVA_HOME JDK JAVAFLAGS JAVAIFLAGS DMAKE BUILD_DMAKE EPM DPKG PKGMK BUILD_EPM PKGFORMAT RPM GPERF MINGWCXX ac_ct_MINGWCXX MINGWSTRIP ac_ct_MINGWSTRIP BUILD_UNOWINREG SYSTEM_STDLIBS SYSTEM_ZLIB SYSTEM_JPEG SYSTEM_EXPAT PKG_CONFIG LIBWPD_CFLAGS LIBWPD_LIBS SYSTEM_LIBWPD CPPUNIT_CFLAGS CPPUNIT_LIBS SYSTEM_CPPUNIT FREETYPE_CFLAGS FREETYPE_LIBS USE_FT_EMBOLDEN LIBXSLT_CFLAGS LIBXSLT_LIBS XSLTPROC SYSTEM_LIBXSLT LIBXML_CFLAGS LIBXML_LIBS SYSTEM_LIBXML PYTHON PYTHON_VERSION PYTHON_PREFIX PYTHON_EXEC_PREFIX PYTHON_PLATFORM pythondir pkgpythondir pyexecdir pkgpyexecdir BZIP2 SYSTEM_PYTHON PYTHON_CFLAGS PYTHON_LIBS HOME SYSTEM_DB DB_VERSION DB_INCLUDES DB_JAR SYSTEM_LUCENE LUCENE_CORE_JAR LUCENE_ANALYZERS_JAR ENABLE_MYSQLC MYSQLCONFIG SYSTEM_MYSQL MYSQL_INC MYSQL_LIB MYSQL_DEFINES LIBMYSQL_PATH SYSTEM_MYSQL_CPPCONN SYSTEM_HSQLDB HSQLDB_JAR SYSTEM_BSH BSH_JAR SERIALIZER_JAR SYSTEM_SAXON SAXON_JAR CURLCONFIG SYSTEM_CURL CURL_CFLAGS CURL_LIBS SYSTEM_MDDS SYSTEM_BOOST SYSTEM_VIGRA SYSTEM_ODBC_HEADERS WITH_MOZILLA WITH_LDAP WITH_OPENLDAP MOZ_NSS_CFLAGS MOZ_NSS_LIBS NSS_LIB MOZ_NSPR_CFLAGS MOZ_NSPR_LIBS NSPR_LIB MOZILLAXPCOM_CFLAGS MOZILLAXPCOM_LIBS MOZILLA_VERSION MOZILLA_TOOLKIT MOZGTK2_CFLAGS MOZGTK2_LIBS MOZLIBREQ_CFLAGS MOZLIBREQ_LIBS BUILD_MOZAB ENABLE_NSS_MODULE MOZILLABUILD SYSTEM_MOZILLA MOZ_FLAVOUR MOZ_INC MOZ_LIB MOZ_LIB_XPCOM MOZ_LDAP_CFLAGS SYSTEM_SANE_HEADER SYSTEM_GENBRK SYSTEM_GENCCODE SYSTEM_GENCMN SYSTEM_ICU GRAPHITE_CFLAGS GRAPHITE_LIBS ENABLE_GRAPHITE SYSTEM_GRAPHITE X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS XINC XLIB XAU_LIBS DISABLE_XAW SYSTEM_XRENDER_HEADERS XRENDER_LINK XRANDR_CFLAGS XRANDR_LIBS XRANDR_DLOPEN ENABLE_RANDR DISABLE_NEON NEON_CFLAGS NEON_LIBS SYSTEM_NEON NEON_VERSION OPENSSL_CFLAGS OPENSSL_LIBS SYSTEM_OPENSSL ENABLE_AGG AGG_CFLAGS AGG_LIBS SYSTEM_AGG AGG_VERSION REDLAND_CFLAGS REDLAND_LIBS SYSTEM_REDLAND HUNSPELL_CFLAGS HUNSPELL_LIBS SYSTEM_HUNSPELL SYSTEM_HYPH HYPHEN_LIB MYTHES_CFLAGS MYTHES_LIBS SYSTEM_MYTHES SYSTEM_LPSOLVE HAVE_GETOPT HAVE_READDIR_R SYSTEM_LIBC PSDK_HOME WINDOWS_VISTA_PSDK DIRECTXSDK_HOME DIRECTXSDK_LIB NSIS_PATH BISON FLEX PATCH GNUCP GNUPATCH CYGWIN_PATH ML_EXE ASM_HOME ZIP UNZIP ZIP_HOME ENABLE_GTK ENABLE_KDE ENABLE_KDE4 GCONF_CFLAGS GCONF_LIBS ENABLE_GCONF GNOMEVFS_CFLAGS GNOMEVFS_LIBS ENABLE_GNOMEVFS GTK_CFLAGS GTK_LIBS DBUS_CFLAGS DBUS_LIBS GIO_CFLAGS GIO_LIBS ENABLE_GIO ENABLE_DBUS ENABLE_SYSTRAY_GTK CAIRO_CFLAGS CAIRO_LIBS ENABLE_CAIRO BUILD_PIXMAN SYSTEM_CAIRO ENABLE_OPENGL ENABLE_PRESENTER_EXTRA_UI ENABLE_MINIMIZER ENABLE_PRESENTER_SCREEN POPPLER_CFLAGS POPPLER_LIBS ENABLE_PDFIMPORT SYSTEM_POPPLER ENABLE_MEDIAWIKI SYSTEM_SERVLETAPI SERVLETAPI_JAR ENABLE_REPORTBUILDER SYSTEM_JFREEREPORT SAC_JAR LIBXML_JAR FLUTE_JAR JFREEREPORT_JAR LIBBASE_JAR LIBLAYOUT_JAR LIBLOADER_JAR LIBFORMULA_JAR LIBREPOSITORY_JAR LIBFONTS_JAR LIBSERIALIZER_JAR SYSTEM_APACHE_COMMONS COMMONS_CODEC_JAR COMMONS_LANG_JAR COMMONS_HTTPCLIENT_JAR COMMONS_LOGGING_JAR MOC KDE_CFLAGS KDE_LIBS MOC4 KDE4_CFLAGS KDE4_LIBS ENABLE_LOCKDOWN GOBJECT_CFLAGS GOBJECT_LIBS ENABLE_EVOAB2 ENABLE_KAB WITH_FONTS WITHOUT_PPDS WITHOUT_AFMS SCPDEFS USE_XINERAMA XINERAMA_LINK ANT ANT_HOME ANT_LIB OOO_JUNIT_JAR WITH_LANG WITH_POOR_HELP_LOCALIZATIONS WITH_DICT INTRO_BITMAPS ABOUT_BITMAPS OOO_VENDOR UNIXWRAPPERNAME ENABLE_STATIC_GTK ENABLE_LAYOUT VERBOSE nodep LOCAL_SOLVER BUILD_TYPE LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS EGREP AWK SED LOCAL_SOLENV _solenv UPD SOURCEVERSION build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os GNUTAR OSVERSION PTHREAD_CFLAGS PTHREAD_LIBS ENABLE_CRASHDUMP VC_STANDARD ENABLE_WERROR ENABLE_DEBUG PRODUCT PROFULLSWITCH PROEXT ENABLE_SYMBOLS DISABLE_STRIP ENABLE_CUPS ENABLE_FONTCONFIG TARFILE_LOCATION DO_FETCH_TARBALLS WITH_BINFILTER ENABLE_DIRECTX DISABLE_ACTIVEX DISABLE_ATL ENABLE_RPATH WITH_MYSPELL_DICTS SYSTEM_DICTS DICT_SYSTEM_DIR HYPH_SYSTEM_DIR THES_SYSTEM_DIR WITH_MINGWIN SHELLPATH GCC_HOME CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT COMPATH GCCVER HAVE_LD_BSYMBOLIC_FUNCTIONS ENABLE_PCH NO_HIDS GNUMAKE _cc HAVE_LD_HASH_STYLE PERL MSPDB_PATH COMEX USE_MINGW MIDL_PATH CSC_PATH FRAME_HOME CPP CXX CXXFLAGS ac_ct_CXX CXXCPP SIZEOF_LONG WORDS_BIGENDIAN LFS_CFLAGS ENABLE_VBA VBA_EXTENSION PAM NEW_SHADOW_API PAM_LINK CRYPT_LINK GXX_INCLUDE_PATH MINGW_LIB_INCLUDE_PATH MINGW_BACKWARD_INCLUDE_PATH MINGW_CLIB_DIR MINGW_SHARED_GCCLIB MINGW_GCCLIB_EH MINGW_SHARED_GXXLIB MINGW_GCCDLL MINGW_GXXDLL EXCEPTIONS STLPORT4 STLPORT_VER USE_SYSTEM_STL USE_CCACHE CCACHE HAVE_GCC_VISIBILITY_FEATURE ALLOC BUILD_VER_STRING SOLAR_JAVA JAVAINTERPRETER JAVACOMPILER JAVACISGCJ JAVADOC AWTLIB JAVAAOTCOMPILER JAVA_HOME JDK JAVAFLAGS JAVAIFLAGS DMAKE BUILD_DMAKE EPM DPKG PKGMK BUILD_EPM RPM PKGFORMAT GPERF BUILD_STAX MINGWCXX ac_ct_MINGWCXX MINGWSTRIP ac_ct_MINGWSTRIP BUILD_UNOWINREG SYSTEM_STDLIBS SYSTEM_ZLIB SYSTEM_JPEG SYSTEM_EXPAT PKG_CONFIG LIBWPD_CFLAGS LIBWPD_LIBS SYSTEM_LIBWPD CPPUNIT_CFLAGS CPPUNIT_LIBS SYSTEM_CPPUNIT FREETYPE_CFLAGS FREETYPE_LIBS USE_FT_EMBOLDEN LIBXSLT_CFLAGS LIBXSLT_LIBS XSLTPROC SYSTEM_LIBXSLT LIBXML_CFLAGS LIBXML_LIBS SYSTEM_LIBXML PYTHON PYTHON_VERSION PYTHON_PREFIX PYTHON_EXEC_PREFIX PYTHON_PLATFORM pythondir pkgpythondir pyexecdir pkgpyexecdir BZIP2 SYSTEM_PYTHON PYTHON_CFLAGS PYTHON_LIBS HOME SYSTEM_DB DB_VERSION DB_INCLUDES DB_JAR SYSTEM_LUCENE LUCENE_CORE_JAR LUCENE_ANALYZERS_JAR ENABLE_MYSQLC MYSQLCONFIG SYSTEM_MYSQL MYSQL_INC MYSQL_LIB MYSQL_DEFINES LIBMYSQL_PATH SYSTEM_MYSQL_CPPCONN SYSTEM_HSQLDB HSQLDB_JAR SYSTEM_BSH BSH_JAR SERIALIZER_JAR SYSTEM_SAXON SAXON_JAR CURLCONFIG SYSTEM_CURL CURL_CFLAGS CURL_LIBS SYSTEM_MDDS SYSTEM_BOOST SYSTEM_VIGRA SYSTEM_ODBC_HEADERS WITH_MOZILLA WITH_LDAP WITH_OPENLDAP MOZ_NSS_CFLAGS MOZ_NSS_LIBS NSS_LIB MOZ_NSPR_CFLAGS MOZ_NSPR_LIBS NSPR_LIB MOZILLAXPCOM_CFLAGS MOZILLAXPCOM_LIBS MOZILLA_VERSION MOZILLA_TOOLKIT MOZGTK2_CFLAGS MOZGTK2_LIBS MOZLIBREQ_CFLAGS MOZLIBREQ_LIBS BUILD_MOZAB ENABLE_NSS_MODULE MOZILLABUILD SYSTEM_MOZILLA MOZ_FLAVOUR MOZ_INC MOZ_LIB MOZ_LIB_XPCOM MOZ_LDAP_CFLAGS SYSTEM_SANE_HEADER SYSTEM_GENBRK SYSTEM_GENCCODE SYSTEM_GENCMN SYSTEM_ICU GRAPHITE_CFLAGS GRAPHITE_LIBS ENABLE_GRAPHITE SYSTEM_GRAPHITE X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS XINC XLIB XAU_LIBS DISABLE_XAW SYSTEM_XRENDER_HEADERS XRENDER_LINK XRANDR_CFLAGS XRANDR_LIBS XRANDR_DLOPEN ENABLE_RANDR DISABLE_NEON NEON_CFLAGS NEON_LIBS SYSTEM_NEON NEON_VERSION OPENSSL_CFLAGS OPENSSL_LIBS SYSTEM_OPENSSL ENABLE_AGG AGG_CFLAGS AGG_LIBS SYSTEM_AGG AGG_VERSION REDLAND_CFLAGS REDLAND_LIBS SYSTEM_REDLAND HUNSPELL_CFLAGS HUNSPELL_LIBS SYSTEM_HUNSPELL SYSTEM_HYPH HYPHEN_LIB MYTHES_CFLAGS MYTHES_LIBS SYSTEM_MYTHES SYSTEM_LPSOLVE HAVE_GETOPT HAVE_READDIR_R SYSTEM_LIBC PSDK_HOME WINDOWS_VISTA_PSDK DIRECTXSDK_HOME DIRECTXSDK_LIB NSIS_PATH BISON FLEX PATCH GNUCP GNUPATCH CYGWIN_PATH ML_EXE ASM_HOME ZIP UNZIP ZIP_HOME ENABLE_GTK ENABLE_KDE ENABLE_KDE4 GCONF_CFLAGS GCONF_LIBS ENABLE_GCONF GNOMEVFS_CFLAGS GNOMEVFS_LIBS ENABLE_GNOMEVFS GTK_CFLAGS GTK_LIBS DBUS_CFLAGS DBUS_LIBS GIO_CFLAGS GIO_LIBS ENABLE_GIO ENABLE_DBUS ENABLE_SYSTRAY_GTK CAIRO_CFLAGS CAIRO_LIBS ENABLE_CAIRO BUILD_PIXMAN SYSTEM_CAIRO ENABLE_OPENGL ENABLE_PRESENTER_EXTRA_UI ENABLE_MINIMIZER ENABLE_PRESENTER_SCREEN POPPLER_CFLAGS POPPLER_LIBS ENABLE_PDFIMPORT SYSTEM_POPPLER ENABLE_MEDIAWIKI SYSTEM_SERVLETAPI SERVLETAPI_JAR ENABLE_REPORTBUILDER SYSTEM_JFREEREPORT SAC_JAR LIBXML_JAR FLUTE_JAR JFREEREPORT_JAR LIBBASE_JAR LIBLAYOUT_JAR LIBLOADER_JAR LIBFORMULA_JAR LIBREPOSITORY_JAR LIBFONTS_JAR LIBSERIALIZER_JAR SYSTEM_APACHE_COMMONS COMMONS_CODEC_JAR COMMONS_LANG_JAR COMMONS_HTTPCLIENT_JAR COMMONS_LOGGING_JAR MOC KDE_CFLAGS KDE_LIBS MOC4 KDE4_CFLAGS KDE4_LIBS ENABLE_LOCKDOWN GOBJECT_CFLAGS GOBJECT_LIBS ENABLE_EVOAB2 ENABLE_KAB WITH_FONTS WITHOUT_PPDS WITHOUT_AFMS SCPDEFS USE_XINERAMA XINERAMA_LINK ANT ANT_HOME ANT_LIB OOO_JUNIT_JAR WITH_LANG WITH_POOR_HELP_LOCALIZATIONS WITH_DICT INTRO_BITMAPS ABOUT_BITMAPS OOO_VENDOR UNIXWRAPPERNAME ENABLE_STATIC_GTK ENABLE_LAYOUT VERBOSE nodep LOCAL_SOLVER BUILD_TYPE LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -1444,7 +1444,9 @@ Optional Packages: Usage: --with-build-version="Built by Jim" --with-alloc Define which allocator to build with - (choices are oo, system, tcmalloc) + (choices are oo, system, tcmalloc, jemalloc) + + Note that on FreeBSD/NetBSD system==jemalloc --with-x use the X Window System @@ -4886,7 +4888,7 @@ done COMPATH=`echo $COMPATH | $SED "s@/[^/:]*\\\$@@"`; fi COMPATH=`echo $COMPATH | $SED "s@/[Bb][Ii][Nn]\\\$@@"`; -echo $COMPATH + GCCVER=20995 if test \( "$_os" != "WINNT" -o "$WITH_MINGWIN" = "yes" \) -a "$GCC" = "yes"; then echo "$as_me:$LINENO: checking the GNU gcc compiler version" >&5 @@ -10503,6 +10505,203 @@ fi ALLOC="TCMALLOC"; fi +if test "$with_alloc" = "jemalloc"; then + if test "$_os" != "FreeBSD" -o "$_os" != "NetBSD"; then + echo "$as_me:$LINENO: result: jemalloc" >&5 +echo "${ECHO_T}jemalloc" >&6 + save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -pthread" + +echo "$as_me:$LINENO: checking for malloc in -ljemalloc" >&5 +echo $ECHO_N "checking for malloc in -ljemalloc... $ECHO_C" >&6 +if test "${ac_cv_lib_jemalloc_malloc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ljemalloc $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char malloc (); +int +main () +{ +malloc (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_jemalloc_malloc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_jemalloc_malloc=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_jemalloc_malloc" >&5 +echo "${ECHO_T}$ac_cv_lib_jemalloc_malloc" >&6 +if test $ac_cv_lib_jemalloc_malloc = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBJEMALLOC 1 +_ACEOF + + LIBS="-ljemalloc $LIBS" + +else + { { echo "$as_me:$LINENO: error: jemalloc not found or functional. Install the jemalloc allocator." >&5 +echo "$as_me: error: jemalloc not found or functional. Install the jemalloc allocator." >&2;} + { (exit 1); exit 1; }; } +fi + + ALLOC="JEMALLOC"; + CFLAGS=$save_CFLAGS + else + echo "$as_me:$LINENO: result: system" >&5 +echo "${ECHO_T}system" >&6 + ALLOC="SYS_ALLOC"; + + + + +for ac_func in malloc realloc calloc free +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. + For example, HP-UX 11i <limits.h> declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + <limits.h> exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + fi +fi if test "$with_alloc" = "internal" -o -z "$with_alloc"; then echo "$as_me:$LINENO: result: internal" >&5 echo "${ECHO_T}internal" >&6 @@ -10950,7 +11149,7 @@ echo "$as_me: error: $_javadoc_path not found set with_jdk_home" >&2;} fi if test "$SOLAR_JAVA" != ""; then - if test "$JDK" == "gcj" -a -z "$JAVA_HOME"; then + if test "$JDK" = "gcj" -a -z "$JAVA_HOME"; then if test "x$with_jdk_home" = "x" -a "$_gij_longver" -ge "40200"; then cat > findhome.java <<_ACEOF import java.io.File; @@ -11051,7 +11250,7 @@ echo "$as_me: WARNING: in case JAVA_HOME is incorrectly set, some projects with echo "JAVA_HOME was not explicitly informed with --with-jdk-home. the configure script" >> warn echo "attempted to find JAVA_HOME automatically, but apparently it failed" >> warn echo "in case JAVA_HOME is incorrectly set, some projects with not be built correctly" >> warn -# if test "$JDK" == "gcj"; then +# if test "$JDK" = "gcj"; then # echo "e.g. install java-1.4.2-gcj-compat-devel and use --with-jdk-home=/usr/lib/jvm/java-1.4.2-gcj" >> warn # fi fi @@ -11970,10 +12169,14 @@ echo $ECHO_N "checking for rpm... $ECHO_C" >&6 { { echo "$as_me:$LINENO: error: not found" >&5 echo "$as_me: error: not found" >&2;} { (exit 1); exit 1; }; } - else - RPM_PATH=`which $RPM` + elif "$RPM" --usage 2>&1 | $EGREP -- -bb >/dev/null; then + RPM_PATH=`which $RPM` echo "$as_me:$LINENO: result: $RPM_PATH" >&5 echo "${ECHO_T}$RPM_PATH" >&6 + else + { { echo "$as_me:$LINENO: error: cannot build packages. Try installing rpmbuild." >&5 +echo "$as_me: error: cannot build packages. Try installing rpmbuild." >&2;} + { (exit 1); exit 1; }; } fi fi if echo "$PKGFORMAT" | $EGREP deb 2>&1 >/dev/null; then @@ -12127,14 +12330,15 @@ echo "$as_me: error: pkgmk needed for Solaris pkg creation. Install it." >&2;} - else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 EPM=NO + PKGFORMAT=native fi + # Extract the first word of "gperf", so it can be a program name with args. set dummy gperf; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 @@ -12190,6 +12394,19 @@ echo "$as_me: error: too old, you need at least 3.0.0" >&2;} { (exit 1); exit 1; }; } fi +echo "$as_me:$LINENO: checking whether to build the stax" >&5 +echo $ECHO_N "checking whether to build the stax... $ECHO_C" >&6 +if test -f "./stax/download/jsr173_1.0_api.jar"; then + BUILD_STAX=NO + echo "$as_me:$LINENO: result: no, will use the prebuilt stax/download/jsr173_1.0_api.jar" >&5 +echo "${ECHO_T}no, will use the prebuilt stax/download/jsr173_1.0_api.jar" >&6 +else + BUILD_STAX=YES + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +fi + + echo "$as_me:$LINENO: checking whether to build the ODK" >&5 echo $ECHO_N "checking whether to build the ODK... $ECHO_C" >&6 if test "z$enable_odk" = "z" -o "$enable_odk" != "no"; then @@ -13895,7 +14112,7 @@ fi if test -n "$with_system_libxslt" -o -n "$with_system_libs" && \ test "$with_system_libxslt" != "no"; then if test -z "$with_system_libxml" -a -z "$with_system_libs" || \ - test "$with_system_libxml" == "no"; then + test "$with_system_libxml" = "no"; then # somehow AC_MSG_WARN won't work... echo "to prevent incompatibilities between internal libxml2 and libxslt, the office will be build with system-libxml" echo "to prevent incompatibilities between internal libxml2 and libxslt, the office will be build with system-libxml" >> warn @@ -13905,7 +14122,7 @@ fi if test -n "$with_system_libxml" -o -n "$with_system_libs" && \ test "$with_system_libxml" != "no"; then if test -z "$with_system_libxslt" -a -z "$with_system_libs" || \ - test "$with_system_libxslt" == "no"; then + test "$with_system_libxslt" = "no"; then # somehow AC_MSG_WARN won't work... echo "to prevent incompatibilities between internal libxslt and libxml2, the office will be build with system-libxslt" echo "to prevent incompatibilities between internal libxslt and libxml2, the office will be build with system-libxslt" >> warn @@ -14929,25 +15146,25 @@ if test $ac_cv_file__usr_share_java_lucene_core_2_3_jar = yes; then LUCENE_CORE_JAR=/usr/share/java/lucene-core-2.3.jar else - echo "$as_me:$LINENO: checking for /usr/share/java/lucene.jar" >&5 -echo $ECHO_N "checking for /usr/share/java/lucene.jar... $ECHO_C" >&6 -if test "${ac_cv_file__usr_share_java_lucene_jar+set}" = set; then + echo "$as_me:$LINENO: checking for /usr/share/java/lucene-core.jar" >&5 +echo $ECHO_N "checking for /usr/share/java/lucene-core.jar... $ECHO_C" >&6 +if test "${ac_cv_file__usr_share_java_lucene_core_jar+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else test "$cross_compiling" = yes && { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } -if test -r "/usr/share/java/lucene.jar"; then - ac_cv_file__usr_share_java_lucene_jar=yes +if test -r "/usr/share/java/lucene-core.jar"; then + ac_cv_file__usr_share_java_lucene_core_jar=yes else - ac_cv_file__usr_share_java_lucene_jar=no + ac_cv_file__usr_share_java_lucene_core_jar=no fi fi -echo "$as_me:$LINENO: result: $ac_cv_file__usr_share_java_lucene_jar" >&5 -echo "${ECHO_T}$ac_cv_file__usr_share_java_lucene_jar" >&6 -if test $ac_cv_file__usr_share_java_lucene_jar = yes; then - LUCENE_CORE_JAR=/usr/share/java/lucene.jar +echo "$as_me:$LINENO: result: $ac_cv_file__usr_share_java_lucene_core_jar" >&5 +echo "${ECHO_T}$ac_cv_file__usr_share_java_lucene_core_jar" >&6 +if test $ac_cv_file__usr_share_java_lucene_core_jar = yes; then + LUCENE_CORE_JAR=/usr/share/java/lucene-core.jar else { { echo "$as_me:$LINENO: error: lucene-core.jar replacement not found" >&5 echo "$as_me: error: lucene-core.jar replacement not found" >&2;} @@ -15068,6 +15285,26 @@ echo "$as_me: error: lucene-analyzers.jar not found." >&2;} fi fi + echo "$as_me:$LINENO: checking whether lucene is version 2.x" >&5 +echo $ECHO_N "checking whether lucene is version 2.x... $ECHO_C" >&6 + export LUCENE_CORE_JAR + if $PERL -e 'use Archive::Zip; + my $file = "$ENV{'LUCENE_CORE_JAR'}"; + my $zip = Archive::Zip->new( $file ); + my $mf = $zip->contents ( "META-INF/MANIFEST.MF" ); + if ( $mf =~ m/Specification-Version: 2.*/ ) { + exit 0; + } else { + exit 1; + }'; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + else + { { echo "$as_me:$LINENO: error: no, you need lucene 2" >&5 +echo "$as_me: error: no, you need lucene 2" >&2;} + { (exit 1); exit 1; }; } + fi + else echo "$as_me:$LINENO: result: internal" >&5 echo "${ECHO_T}internal" >&6 @@ -15564,35 +15801,35 @@ echo "$as_me: error: hsqldb.jar not found." >&2;} { (exit 1); exit 1; }; } fi - echo "$as_me:$LINENO: checking whether hsqldb is >= 1.8.0.9" >&5 -echo $ECHO_N "checking whether hsqldb is >= 1.8.0.9... $ECHO_C" >&6 + echo "$as_me:$LINENO: checking whether hsqldb is 1.8.0.x" >&5 +echo $ECHO_N "checking whether hsqldb is 1.8.0.x... $ECHO_C" >&6 export HSQLDB_JAR if $PERL -e 'use Archive::Zip; my $file = "$ENV{'HSQLDB_JAR'}"; my $zip = Archive::Zip->new( $file ); my $mf = $zip->contents ( "META-INF/MANIFEST.MF" ); - if ( $mf =~ m/Specification-Version: 1.8.*/ ) { - push @l, split(/\n/, $mf); - foreach my $line (@l) { - if ($line =~ m/Specification-Version:/) { - ($t, $version) = split (/:/,$line); - $version =~ s/^\s//; - ($a, $b, $c, $d) = split (/\./,$version); - if (($c == "0" && $d > "8") || $c > 0) { - exit 0; - } else { - exit 1; - } - } - } - } else { - exit 1; + if ( $mf =~ m/Specification-Version: 1.8.*/ ) { + push @l, split(/\n/, $mf); + foreach my $line (@l) { + if ($line =~ m/Specification-Version:/) { + ($t, $version) = split (/:/,$line); + $version =~ s/^\s//; + ($a, $b, $c, $d) = split (/\./,$version); + if ($c == "0" && $d > "8") { + exit 0; + } else { + exit 1; + } + } + } + } else { + exit 1; }'; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else - { { echo "$as_me:$LINENO: error: no, hsqldb >= 1.8.0.9 is needed" >&5 -echo "$as_me: error: no, hsqldb >= 1.8.0.9 is needed" >&2;} + { { echo "$as_me:$LINENO: error: no, you need hsqldb >= 1.8.0.9 but < 1.8.1" >&5 +echo "$as_me: error: no, you need hsqldb >= 1.8.0.9 but < 1.8.1" >&2;} { (exit 1); exit 1; }; } fi else @@ -16431,8 +16668,8 @@ fi if test $ac_cv_header_boost_spirit_include_classic_core_hpp = yes; then : else - { { echo "$as_me:$LINENO: error: boost/spirit/include/classic_core.hpp not found. install boost >= 1.38" >&5 -echo "$as_me: error: boost/spirit/include/classic_core.hpp not found. install boost >= 1.38" >&2;} + { { echo "$as_me:$LINENO: error: boost/spirit/include/classic_core.hpp not found. install boost >= 1.36" >&5 +echo "$as_me: error: boost/spirit/include/classic_core.hpp not found. install boost >= 1.36" >&2;} { (exit 1); exit 1; }; } fi @@ -18129,7 +18366,7 @@ Please recompile $tmp with --enable-ldap or use --with-openldap." >&2;} #e.g. http://fedoraproject.org/wiki/Releases/FeatureXULRunnerAPIChanges #the plugin pkg-config etc. reverts to "mozilla-plugin" with libxul - if test "$MOZ_FLAVOUR" == "libxul"; then + if test "$MOZ_FLAVOUR" = "libxul"; then MOZ_FLAVOUR="mozilla" fi @@ -19368,7 +19605,7 @@ fi echo "$as_me:$LINENO: checking whether to enable graphite support" >&5 echo $ECHO_N "checking whether to enable graphite support... $ECHO_C" >&6 -if test "$_os" = "WINNT" -o "$_os" = "Linux" && test "z$enable_graphite" == "z" -o "$enable_graphite" != "no" ; then +if test "$_os" = "WINNT" -o "$_os" = "Linux" && test "z$enable_graphite" = "z" -o "$enable_graphite" != "no" ; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 ENABLE_GRAPHITE="TRUE" @@ -19620,7 +19857,7 @@ ac_x_header_dirs=' /usr/openwin/share/include' if test "$ac_x_includes" = no; then - # Guess where to find include files, by looking for Xlib.h. + # Guess where to find include files, by looking for Intrinsic.h. # First, try using that file with no special directory specified. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -19628,7 +19865,7 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <X11/Xlib.h> +#include <X11/Intrinsic.h> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 @@ -19655,7 +19892,7 @@ else sed 's/^/| /' conftest.$ac_ext >&5 for ac_dir in $ac_x_header_dirs; do - if test -r "$ac_dir/X11/Xlib.h"; then + if test -r "$ac_dir/X11/Intrinsic.h"; then ac_x_includes=$ac_dir break fi @@ -19669,18 +19906,18 @@ if test "$ac_x_libraries" = no; then # See if we find them without any special options. # Don't add to $LIBS permanently. ac_save_LIBS=$LIBS - LIBS="-lX11 $LIBS" + LIBS="-lXt $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <X11/Xlib.h> +#include <X11/Intrinsic.h> int main () { -XrmInitialize () +XtMalloc (0) ; return 0; } @@ -24190,6 +24427,155 @@ echo "$as_me: error: lpsolve headers not found." >&2;} fi + # some systems need this. Like Ubuntu.... + +echo "$as_me:$LINENO: checking for floor in -lm" >&5 +echo $ECHO_N "checking for floor in -lm... $ECHO_C" >&6 +if test "${ac_cv_lib_m_floor+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char floor (); +int +main () +{ +floor (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_m_floor=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_m_floor=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_m_floor" >&5 +echo "${ECHO_T}$ac_cv_lib_m_floor" >&6 +if test $ac_cv_lib_m_floor = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBM 1 +_ACEOF + + LIBS="-lm $LIBS" + +fi + + +echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dlopen (); +int +main () +{ +dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dl_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_dl_dlopen=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 +if test $ac_cv_lib_dl_dlopen = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBDL 1 +_ACEOF + + LIBS="-ldl $LIBS" + +fi + echo "$as_me:$LINENO: checking for make_lp in -llpsolve55" >&5 echo $ECHO_N "checking for make_lp in -llpsolve55... $ECHO_C" >&6 @@ -25154,14 +25540,12 @@ echo "$as_me: error: Configure did not find ml.exe assembler." >&2;} with_asm_home="ASM_IN_PATH" fi fi -else - with_asm_home="NO_ASM_HOME" -fi -ASM_HOME="$with_asm_home" -if test -n "$ASM_HOME"; then echo "$as_me:$LINENO: result: $ASM_HOME" >&5 echo "${ECHO_T}$ASM_HOME" >&6 +else + with_asm_home="NO_ASM_HOME" fi +ASM_HOME="$with_asm_home" if test -z "$with_zip_home"; then @@ -26798,7 +27182,7 @@ echo "${ECHO_T}no" >&6 fi -if test "$ENABLE_MEDIAWIKI" == "YES"; then +if test "$ENABLE_MEDIAWIKI" = "YES"; then echo "$as_me:$LINENO: checking which Servlet API Jar to use" >&5 echo $ECHO_N "checking which Servlet API Jar to use... $ECHO_C" >&6 if test -n "$with_system_servlet_api"; then @@ -26862,9 +27246,9 @@ echo "$as_me: error: not existing. get it (did you get the -extensions tarball?) fi echo "$as_me:$LINENO: checking which jfreereport libs to use" >&5 echo $ECHO_N "checking which jfreereport libs to use... $ECHO_C" >&6 - if test "$with_system_jfreereport" == "yes"; then - SYSTEM_JFREEREPORT=YES - echo "$as_me:$LINENO: result: external" >&5 + if test "$with_system_jfreereport" = "yes"; then + SYSTEM_JFREEREPORT=YES + echo "$as_me:$LINENO: result: external" >&5 echo "${ECHO_T}external" >&6 if test -z $SAC_JAR; then SAC_JAR=/usr/share/java/sac.jar @@ -28276,7 +28660,7 @@ if test "$test_kde4" = "yes" -a "$ENABLE_KDE4" = "TRUE" ; then kde_incdirs="/usr/include $x_includes" kde_libdirs="/usr/lib $x_libraries" - if test "$build_cpu" == "x86_64" ; then + if test "$build_cpu" = "x86_64" ; then qt_libdirs="$qt_libdirs /usr/lib64/qt4 /usr/lib64/qt /usr/lib64" kde_libdirs="$kde_libdirs /usr/lib64 /usr/lib64/kde4" fi @@ -29090,32 +29474,6 @@ else export ANT_HOME fi - ant_minver=1.6.0 - # update for more extensions... - if test "$ENABLE_MEDIAWIKI" = "YES"; then - ant_minver=1.7.0 - fi - ant_minminor1=`echo $ant_minver | cut -d"." -f2` - - echo "$as_me:$LINENO: checking whether ant is >= $ant_minver" >&5 -echo $ECHO_N "checking whether ant is >= $ant_minver... $ECHO_C" >&6 - ant_version=`$ANT -version | $AWK '{ print $4; }'` - ant_version_major=`echo $ant_version | cut -d. -f1` - ant_version_minor=`echo $ant_version | cut -d. -f2` -echo "configure: ant_version $ant_version " >&5 -echo "configure: ant_version_major $ant_version_major " >&5 -echo "configure: ant_version_minor $ant_version_minor " >&5 - if test "$ant_version_major" -ge "2"; then - echo "$as_me:$LINENO: result: yes, $ant_version" >&5 -echo "${ECHO_T}yes, $ant_version" >&6 - elif test "$ant_version_major" = "1" && test "$ant_version_minor" -ge "$ant_minminor1"; then - echo "$as_me:$LINENO: result: yes, $ant_version" >&5 -echo "${ECHO_T}yes, $ant_version" >&6 - else - { { echo "$as_me:$LINENO: error: no, you need at least ant >= $ant_minver" >&5 -echo "$as_me: error: no, you need at least ant >= $ant_minver" >&2;} - { (exit 1); exit 1; }; } - fi echo "$as_me:$LINENO: checking if $ANT works" >&5 echo $ECHO_N "checking if $ANT works... $ECHO_C" >&6 cat > conftest.java << EOF @@ -29206,6 +29564,33 @@ fi fi +ant_minver=1.6.0 +# update for more extensions... +if test "$ENABLE_MEDIAWIKI" = "YES"; then + ant_minver=1.7.0 +fi +ant_minminor1=`echo $ant_minver | cut -d"." -f2` + +echo "$as_me:$LINENO: checking whether ant is >= $ant_minver" >&5 +echo $ECHO_N "checking whether ant is >= $ant_minver... $ECHO_C" >&6 +ant_version=`$ANT -version | $AWK '{ print $4; }'` +ant_version_major=`echo $ant_version | cut -d. -f1` +ant_version_minor=`echo $ant_version | cut -d. -f2` +echo "configure: ant_version $ant_version " >&5 +echo "configure: ant_version_major $ant_version_major " >&5 +echo "configure: ant_version_minor $ant_version_minor " >&5 +if test "$ant_version_major" -ge "2"; then + echo "$as_me:$LINENO: result: yes, $ant_version" >&5 +echo "${ECHO_T}yes, $ant_version" >&6 +elif test "$ant_version_major" = "1" && test "$ant_version_minor" -ge "$ant_minminor1"; then + echo "$as_me:$LINENO: result: yes, $ant_version" >&5 +echo "${ECHO_T}yes, $ant_version" >&6 +else + { { echo "$as_me:$LINENO: error: no, you need at least ant >= $ant_minver" >&5 +echo "$as_me: error: no, you need at least ant >= $ant_minver" >&2;} + { (exit 1); exit 1; }; } +fi + if test "$ENABLE_MEDIAWIKI" = "YES"; then echo "$as_me:$LINENO: checking whether ant supports mapper type=\"regexp\"" >&5 echo $ECHO_N "checking whether ant supports mapper type=\"regexp\"... $ECHO_C" >&6 @@ -29213,18 +29598,18 @@ rm -rf confdir mkdir confdir cat > conftest.java << EOF public class conftest { - int testmethod(int a, int b) { + int testmethod(int a, int b) { return a + b; - } + } } EOF cat > conftest.xml << EOF <project name="conftest" default="conftest"> - <target name="conftest" depends="copytest"> + <target name="conftest" depends="copytest"> <javac srcdir="." includes="conftest.java"> - </javac> - </target> + </javac> + </target> <target name="copytest"> <copy todir="confdir"> <fileset dir="confdir" includes="**/*.abc" casesensitive="yes"/> @@ -29437,12 +29822,12 @@ fi echo "$as_me:$LINENO: checking build verbosity" >&5 echo $ECHO_N "checking build verbosity... $ECHO_C" >&6 if test -n "$enable_verbose"; then - if test "$enable_verbose" == "yes"; then + if test "$enable_verbose" = "yes"; then VERBOSE="TRUE" echo "$as_me:$LINENO: result: high" >&5 echo "${ECHO_T}high" >&6 fi - if test "$enable_verbose" == "no"; then + if test "$enable_verbose" = "no"; then VERBOSE="FALSE" echo "$as_me:$LINENO: result: low" >&5 echo "${ECHO_T}low" >&6 @@ -30252,9 +30637,10 @@ s,@EPM@,$EPM,;t t s,@DPKG@,$DPKG,;t t s,@PKGMK@,$PKGMK,;t t s,@BUILD_EPM@,$BUILD_EPM,;t t -s,@PKGFORMAT@,$PKGFORMAT,;t t s,@RPM@,$RPM,;t t +s,@PKGFORMAT@,$PKGFORMAT,;t t s,@GPERF@,$GPERF,;t t +s,@BUILD_STAX@,$BUILD_STAX,;t t s,@MINGWCXX@,$MINGWCXX,;t t s,@ac_ct_MINGWCXX@,$ac_ct_MINGWCXX,;t t s,@MINGWSTRIP@,$MINGWSTRIP,;t t diff --git a/configure.in b/configure.in index 00a5d5dde8b5..2d276e9ffde8 100644 --- a/configure.in +++ b/configure.in @@ -810,7 +810,9 @@ AC_ARG_WITH(build-version, ],with_build_version=$withval) AC_ARG_WITH(alloc, [ --with-alloc Define which allocator to build with - (choices are oo, system, tcmalloc) + (choices are oo, system, tcmalloc, jemalloc) + + Note that on FreeBSD/NetBSD system==jemalloc ],,) AC_ARG_ENABLE(verbose, [ --enable-verbose Increase build verbosity. @@ -1430,7 +1432,7 @@ if test "$COMPATH" = "." ; then COMPATH=`echo $COMPATH | $SED "s@/[[^/:]]*\\\$@@"`; fi COMPATH=`echo $COMPATH | $SED "s@/[[Bb]][[Ii]][[Nn]]\\\$@@"`; -echo $COMPATH + dnl =================================================================== dnl Test the gcc version, 3 is OK dnl =================================================================== @@ -2683,6 +2685,21 @@ if test "$with_alloc" = "tcmalloc"; then [AC_MSG_ERROR(tcmalloc not found or functional. Install the Google Profiling Tools)], []) ALLOC="TCMALLOC"; fi +if test "$with_alloc" = "jemalloc"; then + if test "$_os" != "FreeBSD" -o "$_os" != "NetBSD"; then + AC_MSG_RESULT(jemalloc) + save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -pthread" + AC_CHECK_LIB(jemalloc, malloc, [], + [AC_MSG_ERROR(jemalloc not found or functional. Install the jemalloc allocator.)], []) + ALLOC="JEMALLOC"; + CFLAGS=$save_CFLAGS + else + AC_MSG_RESULT([system]) + ALLOC="SYS_ALLOC"; + AC_CHECK_FUNCS([malloc realloc calloc free]) + fi +fi if test "$with_alloc" = "internal" -o -z "$with_alloc"; then AC_MSG_RESULT([internal]) fi @@ -2974,7 +2991,7 @@ fi if test "$SOLAR_JAVA" != ""; then dnl first check if we have been asked to autodetect JAVA_HOME with a recent gij - if test "$JDK" == "gcj" -a -z "$JAVA_HOME"; then + if test "$JDK" = "gcj" -a -z "$JAVA_HOME"; then if test "x$with_jdk_home" = "x" -a "$_gij_longver" -ge "40200"; then cat > findhome.java <<_ACEOF [import java.io.File; @@ -3062,7 +3079,7 @@ _ACEOF echo "JAVA_HOME was not explicitly informed with --with-jdk-home. the configure script" >> warn echo "attempted to find JAVA_HOME automatically, but apparently it failed" >> warn echo "in case JAVA_HOME is incorrectly set, some projects with not be built correctly" >> warn -# if test "$JDK" == "gcj"; then +# if test "$JDK" = "gcj"; then # echo "e.g. install java-1.4.2-gcj-compat-devel and use --with-jdk-home=/usr/lib/jvm/java-1.4.2-gcj" >> warn # fi fi @@ -3337,9 +3354,11 @@ msi - Windows .msi done if test -z "$RPM" ; then AC_MSG_ERROR([not found]) - else - RPM_PATH=`which $RPM` + elif "$RPM" --usage 2>&1 | $EGREP -- -bb >/dev/null; then + RPM_PATH=`which $RPM` AC_MSG_RESULT([$RPM_PATH]) + else + AC_MSG_ERROR([cannot build packages. Try installing rpmbuild.]) fi fi if echo "$PKGFORMAT" | $EGREP deb 2>&1 >/dev/null; then @@ -3393,15 +3412,16 @@ msi - Windows .msi fi fi AC_SUBST(BUILD_EPM) - AC_SUBST(PKGFORMAT) AC_SUBST(RPM) AC_SUBST(DPKG) AC_SUBST(PKGMK) else AC_MSG_RESULT([no]) EPM=NO + PKGFORMAT=native fi AC_SUBST(EPM) +AC_SUBST(PKGFORMAT) dnl =================================================================== dnl Check for gperf @@ -3418,6 +3438,19 @@ else fi dnl =================================================================== +dnl Check for building stax +dnl =================================================================== +AC_MSG_CHECKING([whether to build the stax]) +if test -f "./stax/download/jsr173_1.0_api.jar"; then + BUILD_STAX=NO + AC_MSG_RESULT([no, will use the prebuilt stax/download/jsr173_1.0_api.jar]) +else + BUILD_STAX=YES + AC_MSG_RESULT([yes]) +fi +AC_SUBST(BUILD_STAX) + +dnl =================================================================== dnl Check for building ODK dnl =================================================================== AC_MSG_CHECKING([whether to build the ODK]) @@ -3652,7 +3685,7 @@ AC_SUBST(USE_FT_EMBOLDEN) if test -n "$with_system_libxslt" -o -n "$with_system_libs" && \ test "$with_system_libxslt" != "no"; then if test -z "$with_system_libxml" -a -z "$with_system_libs" || \ - test "$with_system_libxml" == "no"; then + test "$with_system_libxml" = "no"; then # somehow AC_MSG_WARN won't work... echo "to prevent incompatibilities between internal libxml2 and libxslt, the office will be build with system-libxml" echo "to prevent incompatibilities between internal libxml2 and libxslt, the office will be build with system-libxml" >> warn @@ -3662,7 +3695,7 @@ fi if test -n "$with_system_libxml" -o -n "$with_system_libs" && \ test "$with_system_libxml" != "no"; then if test -z "$with_system_libxslt" -a -z "$with_system_libs" || \ - test "$with_system_libxslt" == "no"; then + test "$with_system_libxslt" = "no"; then # somehow AC_MSG_WARN won't work... echo "to prevent incompatibilities between internal libxslt and libxml2, the office will be build with system-libxslt" echo "to prevent incompatibilities between internal libxslt and libxml2, the office will be build with system-libxslt" >> warn @@ -3817,8 +3850,8 @@ if test -n "$with_system_lucene" -o -n "$with_system_libs" && \ AC_CHECK_FILE(/usr/share/java/lucene-core-2.3.jar, [ LUCENE_CORE_JAR=/usr/share/java/lucene-core-2.3.jar ], [ - AC_CHECK_FILE(/usr/share/java/lucene.jar, - [ LUCENE_CORE_JAR=/usr/share/java/lucene.jar ], + AC_CHECK_FILE(/usr/share/java/lucene-core.jar, + [ LUCENE_CORE_JAR=/usr/share/java/lucene-core.jar ], [ AC_MSG_ERROR(lucene-core.jar replacement not found)] ) ] @@ -3842,6 +3875,22 @@ if test -n "$with_system_lucene" -o -n "$with_system_libs" && \ AC_CHECK_FILE($LUCENE_CORE_JAR, [], [ AC_MSG_ERROR(lucene-analyzers.jar not found.)], []) fi + AC_MSG_CHECKING([whether lucene is version 2.x]) + export LUCENE_CORE_JAR + if $PERL -e 'use Archive::Zip; + my $file = "$ENV{'LUCENE_CORE_JAR'}"; + my $zip = Archive::Zip->new( $file ); + my $mf = $zip->contents ( "META-INF/MANIFEST.MF" ); + if ( $mf =~ m/Specification-Version: 2.*/ ) { + exit 0; + } else { + exit 1; + }'; then + AC_MSG_RESULT([yes]) + else + AC_MSG_ERROR([no, you need lucene 2]) + fi + else AC_MSG_RESULT([internal]) SYSTEM_LUCENE=NO @@ -3979,32 +4028,32 @@ if test -n "$with_system_hsqldb" -o -n "$with_system_libs" && \ fi AC_CHECK_FILE($HSQLDB_JAR, [], [AC_MSG_ERROR(hsqldb.jar not found.)], []) - AC_MSG_CHECKING([whether hsqldb is >= 1.8.0.9]) + AC_MSG_CHECKING([whether hsqldb is 1.8.0.x]) export HSQLDB_JAR if $PERL -e 'use Archive::Zip; my $file = "$ENV{'HSQLDB_JAR'}"; my $zip = Archive::Zip->new( $file ); my $mf = $zip->contents ( "META-INF/MANIFEST.MF" ); - if ( $mf =~ m/Specification-Version: 1.8.*/ ) { - push @l, split(/\n/, $mf); - foreach my $line (@l) { - if ($line =~ m/Specification-Version:/) { - ($t, $version) = split (/:/,$line); - $version =~ s/^\s//; - ($a, $b, $c, $d) = split (/\./,$version); - if (($c == "0" && $d > "8") || $c > 0) { - exit 0; - } else { - exit 1; - } - } - } - } else { - exit 1; + if ( $mf =~ m/Specification-Version: 1.8.*/ ) { + push @l, split(/\n/, $mf); + foreach my $line (@l) { + if ($line =~ m/Specification-Version:/) { + ($t, $version) = split (/:/,$line); + $version =~ s/^\s//; + ($a, $b, $c, $d) = split (/\./,$version); + if ($c == "0" && $d > "8") { + exit 0; + } else { + exit 1; + } + } + } + } else { + exit 1; }'; then AC_MSG_RESULT([yes]) else - AC_MSG_ERROR([no, hsqldb >= 1.8.0.9 is needed]) + AC_MSG_ERROR([no, you need hsqldb >= 1.8.0.9 but < 1.8.1]) fi else AC_MSG_RESULT([internal]) @@ -4211,7 +4260,7 @@ if test -n "$with_system_boost" -o -n "$with_system_headers" && \ AC_CHECK_HEADER(boost/shared_ptr.hpp, [], [AC_MSG_ERROR(boost/shared_ptr.hpp not found. install boost)], []) AC_CHECK_HEADER(boost/spirit/include/classic_core.hpp, [], - [AC_MSG_ERROR(boost/spirit/include/classic_core.hpp not found. install boost >= 1.38)], []) + [AC_MSG_ERROR(boost/spirit/include/classic_core.hpp not found. install boost >= 1.36)], []) AC_CHECK_HEADER(boost/function.hpp, [], [AC_MSG_ERROR(boost/function.hpp not found. install boost)], []) @@ -4428,7 +4477,7 @@ Please recompile $tmp with --enable-ldap or use --with-openldap.]) #e.g. http://fedoraproject.org/wiki/Releases/FeatureXULRunnerAPIChanges #the plugin pkg-config etc. reverts to "mozilla-plugin" with libxul - if test "$MOZ_FLAVOUR" == "libxul"; then + if test "$MOZ_FLAVOUR" = "libxul"; then MOZ_FLAVOUR="mozilla" fi @@ -4689,7 +4738,7 @@ dnl Graphite dnl =================================================================== AC_MSG_CHECKING([whether to enable graphite support]) -if test "$_os" = "WINNT" -o "$_os" = "Linux" && test "z$enable_graphite" == "z" -o "$enable_graphite" != "no" ; then +if test "$_os" = "WINNT" -o "$_os" = "Linux" && test "z$enable_graphite" = "z" -o "$enable_graphite" != "no" ; then AC_MSG_RESULT([yes]) ENABLE_GRAPHITE="TRUE" AC_MSG_CHECKING([which graphite to use]) @@ -5133,6 +5182,9 @@ if test -n "$with_system_lpsolve" -o -n "$with_system_libs" && \ SYSTEM_LPSOLVE=YES AC_CHECK_HEADER(lpsolve/lp_lib.h, [], [ AC_MSG_ERROR(lpsolve headers not found.)], []) + # some systems need this. Like Ubuntu.... + AC_CHECK_LIB(m, floor) + AC_CHECK_LIB(dl, dlopen) AC_CHECK_LIB(lpsolve55, make_lp, , [ AC_MSG_ERROR(lpsolve library not found or too old.)], []) else @@ -5446,13 +5498,11 @@ if test "$_os" = "WINNT" -a "$WITH_MINGWIN" != "yes"; then with_asm_home="ASM_IN_PATH" fi fi + AC_MSG_RESULT([$ASM_HOME]) else - with_asm_home="NO_ASM_HOME" + with_asm_home="NO_ASM_HOME" fi ASM_HOME="$with_asm_home" -if test -n "$ASM_HOME"; then - AC_MSG_RESULT([$ASM_HOME]) -fi AC_SUBST(ASM_HOME) dnl =================================================================== @@ -5869,7 +5919,7 @@ else fi AC_SUBST(ENABLE_MEDIAWIKI) -if test "$ENABLE_MEDIAWIKI" == "YES"; then +if test "$ENABLE_MEDIAWIKI" = "YES"; then AC_MSG_CHECKING([which Servlet API Jar to use]) if test -n "$with_system_servlet_api"; then AC_MSG_RESULT([external]) @@ -5899,9 +5949,9 @@ if test -n "$enable_report_builder" -a "$enable_report_builder" != "no" && test AC_MSG_ERROR([not existing. get it (did you get the -extensions tarball?)]) fi AC_MSG_CHECKING([which jfreereport libs to use]) - if test "$with_system_jfreereport" == "yes"; then - SYSTEM_JFREEREPORT=YES - AC_MSG_RESULT([external]) + if test "$with_system_jfreereport" = "yes"; then + SYSTEM_JFREEREPORT=YES + AC_MSG_RESULT([external]) if test -z $SAC_JAR; then SAC_JAR=/usr/share/java/sac.jar fi @@ -6306,7 +6356,7 @@ if test "$test_kde4" = "yes" -a "$ENABLE_KDE4" = "TRUE" ; then kde_incdirs="/usr/include $x_includes" kde_libdirs="/usr/lib $x_libraries" - if test "$build_cpu" == "x86_64" ; then + if test "$build_cpu" = "x86_64" ; then qt_libdirs="$qt_libdirs /usr/lib64/qt4 /usr/lib64/qt /usr/lib64" kde_libdirs="$kde_libdirs /usr/lib64 /usr/lib64/kde4" fi @@ -6605,27 +6655,6 @@ else export ANT_HOME fi - ant_minver=1.6.0 - # update for more extensions... - if test "$ENABLE_MEDIAWIKI" = "YES"; then - ant_minver=1.7.0 - fi - ant_minminor1=`echo $ant_minver | cut -d"." -f2` - - AC_MSG_CHECKING([whether ant is >= $ant_minver]) - ant_version=`$ANT -version | $AWK '{ print $4; }'` - ant_version_major=`echo $ant_version | cut -d. -f1` - ant_version_minor=`echo $ant_version | cut -d. -f2` -echo "configure: ant_version $ant_version " >&5 -echo "configure: ant_version_major $ant_version_major " >&5 -echo "configure: ant_version_minor $ant_version_minor " >&5 - if test "$ant_version_major" -ge "2"; then - AC_MSG_RESULT([yes, $ant_version]) - elif test "$ant_version_major" = "1" && test "$ant_version_minor" -ge "$ant_minminor1"; then - AC_MSG_RESULT([yes, $ant_version]) - else - AC_MSG_ERROR([no, you need at least ant >= $ant_minver]) - fi AC_MSG_CHECKING([if $ANT works]) cat > conftest.java << EOF public class conftest { @@ -6706,24 +6735,46 @@ fi AC_SUBST(ANT_LIB) fi +ant_minver=1.6.0 +# update for more extensions... +if test "$ENABLE_MEDIAWIKI" = "YES"; then + ant_minver=1.7.0 +fi +ant_minminor1=`echo $ant_minver | cut -d"." -f2` + +AC_MSG_CHECKING([whether ant is >= $ant_minver]) +ant_version=`$ANT -version | $AWK '{ print $4; }'` +ant_version_major=`echo $ant_version | cut -d. -f1` +ant_version_minor=`echo $ant_version | cut -d. -f2` +echo "configure: ant_version $ant_version " >&5 +echo "configure: ant_version_major $ant_version_major " >&5 +echo "configure: ant_version_minor $ant_version_minor " >&5 +if test "$ant_version_major" -ge "2"; then + AC_MSG_RESULT([yes, $ant_version]) +elif test "$ant_version_major" = "1" && test "$ant_version_minor" -ge "$ant_minminor1"; then + AC_MSG_RESULT([yes, $ant_version]) +else + AC_MSG_ERROR([no, you need at least ant >= $ant_minver]) +fi + if test "$ENABLE_MEDIAWIKI" = "YES"; then AC_MSG_CHECKING([whether ant supports mapper type="regexp"]) rm -rf confdir mkdir confdir cat > conftest.java << EOF public class conftest { - int testmethod(int a, int b) { + int testmethod(int a, int b) { return a + b; - } + } } EOF cat > conftest.xml << EOF <project name="conftest" default="conftest"> - <target name="conftest" depends="copytest"> + <target name="conftest" depends="copytest"> <javac srcdir="." includes="conftest.java"> - </javac> - </target> + </javac> + </target> <target name="copytest"> <copy todir="confdir"> <fileset dir="confdir" includes="**/*.abc" casesensitive="yes"/> @@ -6892,11 +6943,11 @@ AC_SUBST(ENABLE_LAYOUT) # =================================================================== AC_MSG_CHECKING([build verbosity]) if test -n "$enable_verbose"; then - if test "$enable_verbose" == "yes"; then + if test "$enable_verbose" = "yes"; then VERBOSE="TRUE" AC_MSG_RESULT([high]) fi - if test "$enable_verbose" == "no"; then + if test "$enable_verbose" = "no"; then VERBOSE="FALSE" AC_MSG_RESULT([low]) fi diff --git a/desktop/inc/app.hxx b/desktop/inc/app.hxx index 486d280311d9..8867a940a6ad 100644 --- a/desktop/inc/app.hxx +++ b/desktop/inc/app.hxx @@ -75,7 +75,8 @@ class Desktop : public Application BE_USERINSTALL_FAILED, BE_LANGUAGE_MISSING, BE_USERINSTALL_NOTENOUGHDISKSPACE, - BE_USERINSTALL_NOWRITEACCESS + BE_USERINSTALL_NOWRITEACCESS, + BE_OFFICECONFIG_BROKEN }; enum BootstrapStatus { diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx index bba615e0ebbc..731ffe85d83b 100644 --- a/desktop/source/app/app.cxx +++ b/desktop/source/app/app.cxx @@ -492,7 +492,12 @@ void Desktop::Init() { // prepare language if ( !LanguageSelection::prepareLanguage() ) - SetBootstrapError( BE_LANGUAGE_MISSING ); + { + if ( LanguageSelection::getStatus() == LanguageSelection::LS_STATUS_CANNOT_DETERMINE_LANGUAGE ) + SetBootstrapError( BE_LANGUAGE_MISSING ); + else + SetBootstrapError( BE_OFFICECONFIG_BROKEN ); + } } if ( GetBootstrapError() == BE_OK ) @@ -873,6 +878,17 @@ void Desktop::HandleBootstrapErrors( BootstrapError aBootstrapError ) FatalError( aMessage); } + else if ( aBootstrapError == BE_OFFICECONFIG_BROKEN ) + { + OUString aMessage; + OUStringBuffer aDiagnosticMessage( 100 ); + OUString aErrorMsg; + aErrorMsg = GetMsgString( STR_CONFIG_ERR_ACCESS_GENERAL, + OUString( RTL_CONSTASCII_USTRINGPARAM( "A general error occurred while accessing your central configuration." )) ); + aDiagnosticMessage.append( aErrorMsg ); + aMessage = MakeStartupErrorMessage( aDiagnosticMessage.makeStringAndClear() ); + FatalError(aMessage); + } else if ( aBootstrapError == BE_USERINSTALL_FAILED ) { OUString aMessage; diff --git a/desktop/source/app/langselect.cxx b/desktop/source/app/langselect.cxx index 5e2145b03729..9df8d82a37ff 100644 --- a/desktop/source/app/langselect.cxx +++ b/desktop/source/app/langselect.cxx @@ -64,10 +64,12 @@ namespace desktop { static char const SOFFICE_BOOTSTRAP[] = "Bootstrap"; static char const SOFFICE_STARTLANG[] = "STARTLANG"; + sal_Bool LanguageSelection::bFoundLanguage = sal_False; OUString LanguageSelection::aFoundLanguage; -const OUString LanguageSelection::usFallbackLanguage = OUString::createFromAscii("en-US"); +LanguageSelection::LanguageSelectionStatus LanguageSelection::m_eStatus = LS_STATUS_OK; +const OUString LanguageSelection::usFallbackLanguage = OUString::createFromAscii("en-US"); static sal_Bool existsURL( OUString const& sURL ) { @@ -122,6 +124,7 @@ Locale LanguageSelection::IsoStringToLocale(const OUString& str) bool LanguageSelection::prepareLanguage() { + m_eStatus = LS_STATUS_OK; OUString sConfigSrvc = OUString::createFromAscii("com.sun.star.configuration.ConfigurationProvider"); Reference< XMultiServiceFactory > theMSF = comphelper::getProcessServiceFactory(); Reference< XLocalizable > theConfigProvider; @@ -131,7 +134,9 @@ bool LanguageSelection::prepareLanguage() } catch(const Exception&) { + m_eStatus = LS_STATUS_CONFIGURATIONACCESS_BROKEN; } + if(!theConfigProvider.is()) return false; @@ -149,6 +154,7 @@ bool LanguageSelection::prepareLanguage() } catch(const Exception&) { + m_eStatus = LS_STATUS_CONFIGURATIONACCESS_BROKEN; } // #i32939# use system locale to set document default locale @@ -162,6 +168,7 @@ bool LanguageSelection::prepareLanguage() } catch (Exception&) { + m_eStatus = LS_STATUS_CONFIGURATIONACCESS_BROKEN; } // get the selected UI language as string @@ -350,8 +357,10 @@ OUString LanguageSelection::getLanguageString() aFoundLanguage = usFallbackLanguage; return aFoundLanguage; } + // fallback didn't work use first installed language aUserLanguage = getFirstInstalledLanguage(); + bFoundLanguage = sal_True; aFoundLanguage = aUserLanguage; return aFoundLanguage; @@ -455,7 +464,7 @@ sal_Bool LanguageSelection::isInstalledLanguage(OUString& usLocale, sal_Bool bEx // requested locale starts with the installed locale // (i.e. installed locale has index 0 in requested locale) bInstalled = sal_True; - usLocale = seqLanguages[i]; + usLocale = seqLanguages[i]; break; } } @@ -484,10 +493,12 @@ OUString LanguageSelection::getUserLanguage() } catch ( NoSuchElementException const & ) { + m_eStatus = LS_STATUS_CONFIGURATIONACCESS_BROKEN; return OUString(); } catch ( WrappedTargetException const & ) { + m_eStatus = LS_STATUS_CONFIGURATIONACCESS_BROKEN; return OUString(); } } @@ -506,10 +517,12 @@ OUString LanguageSelection::getSystemLanguage() } catch ( NoSuchElementException const & ) { + m_eStatus = LS_STATUS_CONFIGURATIONACCESS_BROKEN; return OUString(); } catch ( WrappedTargetException const & ) { + m_eStatus = LS_STATUS_CONFIGURATIONACCESS_BROKEN; return OUString(); } } @@ -533,9 +546,13 @@ void LanguageSelection::resetUserLanguage() { OString aMsg = OUStringToOString(e.Message, RTL_TEXTENCODING_ASCII_US); OSL_ENSURE(sal_False, aMsg.getStr()); + m_eStatus = LS_STATUS_CONFIGURATIONACCESS_BROKEN; } - } +LanguageSelection::LanguageSelectionStatus LanguageSelection::getStatus() +{ + return m_eStatus; +} } // namespace desktop diff --git a/desktop/source/app/langselect.hxx b/desktop/source/app/langselect.hxx index 60308164690f..bdf3cd6364de 100644 --- a/desktop/source/app/langselect.hxx +++ b/desktop/source/app/langselect.hxx @@ -40,10 +40,24 @@ namespace desktop class LanguageSelection { +public: + enum LanguageSelectionStatus + { + LS_STATUS_OK, + LS_STATUS_CANNOT_DETERMINE_LANGUAGE, + LS_STATUS_CONFIGURATIONACCESS_BROKEN + }; + + static com::sun::star::lang::Locale IsoStringToLocale(const rtl::OUString& str); + static rtl::OUString getLanguageString(); + static bool prepareLanguage(); + static LanguageSelectionStatus getStatus(); + private: static const rtl::OUString usFallbackLanguage; static rtl::OUString aFoundLanguage; static sal_Bool bFoundLanguage; + static LanguageSelectionStatus m_eStatus; static com::sun::star::uno::Reference< com::sun::star::container::XNameAccess > getConfigAccess(const sal_Char* pPath, sal_Bool bUpdate=sal_False); @@ -55,11 +69,6 @@ private: static rtl::OUString getSystemLanguage(); static void resetUserLanguage(); static void setDefaultLanguage(const rtl::OUString&); - -public: - static com::sun::star::lang::Locale IsoStringToLocale(const rtl::OUString& str); - static rtl::OUString getLanguageString(); - static bool prepareLanguage(); }; } //namespace desktop diff --git a/desktop/source/deployment/gui/dp_gui_dialog2.cxx b/desktop/source/deployment/gui/dp_gui_dialog2.cxx index 1a66ff38e4a4..87f70e449b9d 100755 --- a/desktop/source/deployment/gui/dp_gui_dialog2.cxx +++ b/desktop/source/deployment/gui/dp_gui_dialog2.cxx @@ -1147,13 +1147,13 @@ void ExtMgrDialog::Resize() { ImplControlValue aValue; bool bNativeOK; - Region aControlRegion( Rectangle( (const Point&)Point(), m_aProgressBar.GetSizePixel() ) ); - Region aNativeControlRegion, aNativeContentRegion; + Rectangle aControlRegion( Point( 0, 0 ), m_aProgressBar.GetSizePixel() ); + Rectangle aNativeControlRegion, aNativeContentRegion; if( (bNativeOK = GetNativeControlRegion( CTRL_PROGRESS, PART_ENTIRE_CONTROL, aControlRegion, CTRL_STATE_ENABLED, aValue, rtl::OUString(), aNativeControlRegion, aNativeContentRegion ) ) != FALSE ) { - nProgressHeight = aNativeControlRegion.GetBoundRect().GetHeight(); + nProgressHeight = aNativeControlRegion.GetHeight(); } } @@ -1590,13 +1590,13 @@ void UpdateRequiredDialog::Resize() { ImplControlValue aValue; bool bNativeOK; - Region aControlRegion( Rectangle( (const Point&)Point(), m_aProgressBar.GetSizePixel() ) ); - Region aNativeControlRegion, aNativeContentRegion; + Rectangle aControlRegion( Point( 0, 0 ), m_aProgressBar.GetSizePixel() ); + Rectangle aNativeControlRegion, aNativeContentRegion; if( (bNativeOK = GetNativeControlRegion( CTRL_PROGRESS, PART_ENTIRE_CONTROL, aControlRegion, CTRL_STATE_ENABLED, aValue, rtl::OUString(), aNativeControlRegion, aNativeContentRegion ) ) != FALSE ) { - nProgressHeight = aNativeControlRegion.GetBoundRect().GetHeight(); + nProgressHeight = aNativeControlRegion.GetHeight(); } } diff --git a/desktop/source/splash/splash.cxx b/desktop/source/splash/splash.cxx index 381a98ce008f..c6a185b8e54d 100644 --- a/desktop/source/splash/splash.cxx +++ b/desktop/source/splash/splash.cxx @@ -640,20 +640,18 @@ void SplashScreen::Paint( const Rectangle&) ImplControlValue aValue( _iProgress * _barwidth / _iMax); Rectangle aDrawRect( Point(_tlx, _tly), Size( _barwidth, _barheight ) ); - Region aControlRegion( aDrawRect ); - Region aNativeControlRegion, aNativeContentRegion; + Rectangle aNativeControlRegion, aNativeContentRegion; - if( GetNativeControlRegion( CTRL_INTROPROGRESS, PART_ENTIRE_CONTROL, aControlRegion, + if( GetNativeControlRegion( CTRL_INTROPROGRESS, PART_ENTIRE_CONTROL, aDrawRect, CTRL_STATE_ENABLED, aValue, rtl::OUString(), aNativeControlRegion, aNativeContentRegion ) ) { - long nProgressHeight = aNativeControlRegion.GetBoundRect().GetHeight(); + long nProgressHeight = aNativeControlRegion.GetHeight(); aDrawRect.Top() -= (nProgressHeight - _barheight)/2; aDrawRect.Bottom() += (nProgressHeight - _barheight)/2; - aControlRegion = Region( aDrawRect ); } - if( (bNativeOK = DrawNativeControl( CTRL_INTROPROGRESS, PART_ENTIRE_CONTROL, aControlRegion, + if( (bNativeOK = DrawNativeControl( CTRL_INTROPROGRESS, PART_ENTIRE_CONTROL, aDrawRect, CTRL_STATE_ENABLED, aValue, _sProgressText )) != FALSE ) { return; diff --git a/drawinglayer/inc/drawinglayer/primitive2d/chartprimitive2d.hxx b/drawinglayer/inc/drawinglayer/primitive2d/chartprimitive2d.hxx index bd8c3be1fbbd..71c4cc6ffe1e 100644 --- a/drawinglayer/inc/drawinglayer/primitive2d/chartprimitive2d.hxx +++ b/drawinglayer/inc/drawinglayer/primitive2d/chartprimitive2d.hxx @@ -56,7 +56,7 @@ namespace drawinglayer const basegfx::B2DHomMatrix& rTransformation, const Primitive2DSequence& rChildren); - // get data + /// data read access const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& getChartModel() const { return mxChartModel; } const basegfx::B2DHomMatrix& getTransformation() const { return maTransformation; } diff --git a/drawinglayer/inc/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx b/drawinglayer/inc/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx index 7872ad825496..c60257551c28 100644 --- a/drawinglayer/inc/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx +++ b/drawinglayer/inc/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx @@ -90,7 +90,7 @@ #define PRIMITIVE2D_ID_EXECUTEPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 47) #define PRIMITIVE2D_ID_PAGEPREVIEWPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 48) #define PRIMITIVE2D_ID_CHARTPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 49) -#define PRIMITIVE2D_ID_STRUCTURETAGRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 50) +#define PRIMITIVE2D_ID_STRUCTURETAGPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 50) #define PRIMITIVE2D_ID_BORDERLINEPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 51) #define PRIMITIVE2D_ID_POLYPOLYGONMARKERPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 52) #define PRIMITIVE2D_ID_INVERTPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 53) diff --git a/drawinglayer/inc/drawinglayer/primitive2d/embedded3dprimitive2d.hxx b/drawinglayer/inc/drawinglayer/primitive2d/embedded3dprimitive2d.hxx index ce49995c999d..d651af24047d 100644 --- a/drawinglayer/inc/drawinglayer/primitive2d/embedded3dprimitive2d.hxx +++ b/drawinglayer/inc/drawinglayer/primitive2d/embedded3dprimitive2d.hxx @@ -101,7 +101,7 @@ namespace drawinglayer double fShadowSlant, const basegfx::B3DRange& rScene3DRange); - /// get data + /// data read access const primitive3d::Primitive3DSequence& getChildren3D() const { return mxChildren3D; } const basegfx::B2DHomMatrix& getObjectTransformation() const { return maObjectTransformation; } const geometry::ViewInformation3D& getViewInformation3D() const { return maViewInformation3D; } diff --git a/drawinglayer/inc/drawinglayer/primitive2d/helplineprimitive2d.hxx b/drawinglayer/inc/drawinglayer/primitive2d/helplineprimitive2d.hxx index 237ae00a4642..e2323765b2e5 100644 --- a/drawinglayer/inc/drawinglayer/primitive2d/helplineprimitive2d.hxx +++ b/drawinglayer/inc/drawinglayer/primitive2d/helplineprimitive2d.hxx @@ -94,8 +94,8 @@ namespace drawinglayer double fDiscreteDashLength); /// data read access - const basegfx::B2DPoint getPosition() const { return maPosition; } - const basegfx::B2DVector getDirection() const { return maDirection; } + const basegfx::B2DPoint& getPosition() const { return maPosition; } + const basegfx::B2DVector& getDirection() const { return maDirection; } HelplineStyle2D getStyle() const { return meStyle; } const basegfx::BColor& getRGBColA() const { return maRGBColA; } const basegfx::BColor& getRGBColB() const { return maRGBColB; } diff --git a/drawinglayer/inc/drawinglayer/primitive2d/polygonprimitive2d.hxx b/drawinglayer/inc/drawinglayer/primitive2d/polygonprimitive2d.hxx index 80e281ede05c..ee5de781be86 100644 --- a/drawinglayer/inc/drawinglayer/primitive2d/polygonprimitive2d.hxx +++ b/drawinglayer/inc/drawinglayer/primitive2d/polygonprimitive2d.hxx @@ -189,7 +189,7 @@ namespace drawinglayer const attribute::LineAttribute& rLineAttribute); /// data read access - basegfx::B2DPolygon getB2DPolygon() const { return maPolygon; } + const basegfx::B2DPolygon& getB2DPolygon() const { return maPolygon; } const attribute::LineAttribute& getLineAttribute() const { return maLineAttribute; } const attribute::StrokeAttribute& getStrokeAttribute() const { return maStrokeAttribute; } diff --git a/drawinglayer/inc/drawinglayer/primitive2d/polypolygonprimitive2d.hxx b/drawinglayer/inc/drawinglayer/primitive2d/polypolygonprimitive2d.hxx index 18743937b6bc..4a48ae0d3e59 100644 --- a/drawinglayer/inc/drawinglayer/primitive2d/polypolygonprimitive2d.hxx +++ b/drawinglayer/inc/drawinglayer/primitive2d/polypolygonprimitive2d.hxx @@ -69,7 +69,7 @@ namespace drawinglayer PolyPolygonHairlinePrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon, const basegfx::BColor& rBColor); /// data read access - basegfx::B2DPolyPolygon getB2DPolyPolygon() const { return maPolyPolygon; } + const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return maPolyPolygon; } const basegfx::BColor& getBColor() const { return maBColor; } /// compare operator @@ -123,7 +123,7 @@ namespace drawinglayer double fDiscreteDashLength); // data read access - basegfx::B2DPolyPolygon getB2DPolyPolygon() const { return maPolyPolygon; } + const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return maPolyPolygon; } const basegfx::BColor& getRGBColorA() const { return maRGBColorA; } const basegfx::BColor& getRGBColorB() const { return maRGBColorB; } double getDiscreteDashLength() const { return mfDiscreteDashLength; } @@ -182,7 +182,7 @@ namespace drawinglayer const attribute::LineAttribute& rLineAttribute); /// data read access - basegfx::B2DPolyPolygon getB2DPolyPolygon() const { return maPolyPolygon; } + const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return maPolyPolygon; } const attribute::LineAttribute& getLineAttribute() const { return maLineAttribute; } const attribute::StrokeAttribute& getStrokeAttribute() const { return maStrokeAttribute; } diff --git a/drawinglayer/inc/drawinglayer/primitive2d/sceneprimitive2d.hxx b/drawinglayer/inc/drawinglayer/primitive2d/sceneprimitive2d.hxx index 4c95972ca67d..278a1b0bfff2 100644 --- a/drawinglayer/inc/drawinglayer/primitive2d/sceneprimitive2d.hxx +++ b/drawinglayer/inc/drawinglayer/primitive2d/sceneprimitive2d.hxx @@ -136,7 +136,7 @@ namespace drawinglayer const basegfx::B2DHomMatrix& rObjectTransformation, const geometry::ViewInformation3D& rViewInformation3D); - /// data ead access + /// data read access const primitive3d::Primitive3DSequence& getChildren3D() const { return mxChildren3D; } const attribute::SdrSceneAttribute& getSdrSceneAttribute() const { return maSdrSceneAttribute; } const attribute::SdrLightingAttribute& getSdrLightingAttribute() const { return maSdrLightingAttribute; } diff --git a/drawinglayer/inc/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx b/drawinglayer/inc/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx index 6ae691cbcff9..5c1093bc333a 100644 --- a/drawinglayer/inc/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx +++ b/drawinglayer/inc/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx @@ -129,8 +129,8 @@ namespace drawinglayer TextStrikeout getTextStrikeout() const { return meTextStrikeout; } TextEmphasisMark getTextEmphasisMark() const { return meTextEmphasisMark; } TextRelief getTextRelief() const { return meTextRelief; } - basegfx::BColor getOverlineColor() const { return maOverlineColor; } - basegfx::BColor getTextlineColor() const { return maTextlineColor; } + const basegfx::BColor& getOverlineColor() const { return maOverlineColor; } + const basegfx::BColor& getTextlineColor() const { return maTextlineColor; } bool getUnderlineAbove() const { return mbUnderlineAbove; } bool getWordLineMode() const { return mbWordLineMode; } bool getEmphasisMarkAbove() const { return mbEmphasisMarkAbove; } diff --git a/drawinglayer/source/primitive2d/metafileprimitive2d.cxx b/drawinglayer/source/primitive2d/metafileprimitive2d.cxx index 6fa1cef2d23f..0d57e566ef8a 100644 --- a/drawinglayer/source/primitive2d/metafileprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/metafileprimitive2d.cxx @@ -2301,35 +2301,48 @@ namespace { const Gradient& rGradient = pA->GetGradient(); const drawinglayer::attribute::FillGradientAttribute aAttribute(createFillGradientAttribute(rGradient)); + basegfx::B2DPolyPolygon aOutline(basegfx::tools::createPolygonFromRect(aRange)); if(aAttribute.getStartColor() == aAttribute.getEndColor()) { // not really a gradient. Create filled rectangle - const basegfx::B2DPolygon aOutline(basegfx::tools::createPolygonFromRect(aRange)); - createFillPrimitive(basegfx::B2DPolyPolygon(aOutline), rTargetHolders.Current(), rPropertyHolders.Current()); + createFillPrimitive( + aOutline, + rTargetHolders.Current(), + rPropertyHolders.Current()); } else { // really a gradient aRange.transform(rPropertyHolders.Current().getTransformation()); + drawinglayer::primitive2d::Primitive2DSequence xGradient(1); if(rPropertyHolders.Current().isRasterOpInvert()) { // use a special version of FillGradientPrimitive2D which creates // non-overlapping geometry on decomposition to makethe old XOR // paint 'trick' work. - rTargetHolders.Current().append( + xGradient[0] = drawinglayer::primitive2d::Primitive2DReference( new drawinglayer::primitive2d::NonOverlappingFillGradientPrimitive2D( aRange, aAttribute)); } else { - rTargetHolders.Current().append( + xGradient[0] = drawinglayer::primitive2d::Primitive2DReference( new drawinglayer::primitive2d::FillGradientPrimitive2D( aRange, aAttribute)); } + + // #i112300# clip against polygon representing the rectangle from + // the action. This is implicitely done using a temp Clipping in VCL + // when a MetaGradientAction is executed + aOutline.transform(rPropertyHolders.Current().getTransformation()); + rTargetHolders.Current().append( + new drawinglayer::primitive2d::MaskPrimitive2D( + aOutline, + xGradient)); } } } diff --git a/drawinglayer/source/primitive2d/structuretagprimitive2d.cxx b/drawinglayer/source/primitive2d/structuretagprimitive2d.cxx index 0ead7302ba38..8adcb6a10b82 100644 --- a/drawinglayer/source/primitive2d/structuretagprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/structuretagprimitive2d.cxx @@ -50,7 +50,7 @@ namespace drawinglayer } // provide unique ID - ImplPrimitrive2DIDBlock(StructureTagPrimitive2D, PRIMITIVE2D_ID_STRUCTURETAGRIMITIVE2D) + ImplPrimitrive2DIDBlock(StructureTagPrimitive2D, PRIMITIVE2D_ID_STRUCTURETAGPRIMITIVE2D) } // end of namespace primitive2d } // end of namespace drawinglayer diff --git a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx index 983cc8f58d4f..dc954de7bb2a 100644 --- a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx +++ b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx @@ -94,6 +94,147 @@ using namespace com::sun::star; ////////////////////////////////////////////////////////////////////////////// +// #112245# definition for maximum allowed point count due to Metafile target. +// To be on the safe side with the old tools polygon, use slightly less then +// the theoretical maximum (bad experiences with tools polygon) + +#define MAX_POLYGON_POINT_COUNT_METAFILE (0x0000fff0) + +////////////////////////////////////////////////////////////////////////////// + +namespace +{ + // #112245# helper to split line polygon in half + void splitLinePolygon( + const basegfx::B2DPolygon& rBasePolygon, + basegfx::B2DPolygon& o_aLeft, + basegfx::B2DPolygon& o_aRight) + { + const sal_uInt32 nCount(rBasePolygon.count()); + + if(nCount) + { + const sal_uInt32 nHalfCount((nCount - 1) >> 1); + + o_aLeft = basegfx::B2DPolygon(rBasePolygon, 0, nHalfCount + 1); + o_aLeft.setClosed(false); + + o_aRight = basegfx::B2DPolygon(rBasePolygon, nHalfCount, nCount - nHalfCount); + o_aRight.setClosed(false); + + if(rBasePolygon.isClosed()) + { + o_aRight.append(rBasePolygon.getB2DPoint(0)); + + if(rBasePolygon.areControlPointsUsed()) + { + o_aRight.setControlPoints( + o_aRight.count() - 1, + rBasePolygon.getPrevControlPoint(0), + rBasePolygon.getNextControlPoint(0)); + } + } + } + else + { + o_aLeft.clear(); + o_aRight.clear(); + } + } + + // #112245# helper to evtl. split filled polygons to maximum metafile point count + bool fillPolyPolygonNeededToBeSplit(basegfx::B2DPolyPolygon& rPolyPolygon) + { + bool bRetval(false); + const sal_uInt32 nPolyCount(rPolyPolygon.count()); + + if(nPolyCount) + { + basegfx::B2DPolyPolygon aSplitted; + + for(sal_uInt32 a(0); a < nPolyCount; a++) + { + const basegfx::B2DPolygon aCandidate(rPolyPolygon.getB2DPolygon(a)); + const sal_uInt32 nPointCount(aCandidate.count()); + bool bNeedToSplit(false); + + if(aCandidate.areControlPointsUsed()) + { + // compare with the maximum for bezier curved polygons + bNeedToSplit = nPointCount > ((MAX_POLYGON_POINT_COUNT_METAFILE / 3L) - 1L); + } + else + { + // compare with the maximum for simple point polygons + bNeedToSplit = nPointCount > (MAX_POLYGON_POINT_COUNT_METAFILE - 1); + } + + if(bNeedToSplit) + { + // need to split the partial polygon + const basegfx::B2DRange aRange(aCandidate.getB2DRange()); + const basegfx::B2DPoint aCenter(aRange.getCenter()); + + if(aRange.getWidth() > aRange.getHeight()) + { + // clip in left and right + const basegfx::B2DPolyPolygon aLeft( + basegfx::tools::clipPolygonOnParallelAxis( + aCandidate, + false, + true, + aCenter.getX(), + false)); + const basegfx::B2DPolyPolygon aRight( + basegfx::tools::clipPolygonOnParallelAxis( + aCandidate, + false, + false, + aCenter.getX(), + false)); + + aSplitted.append(aLeft); + aSplitted.append(aRight); + } + else + { + // clip in top and bottom + const basegfx::B2DPolyPolygon aTop( + basegfx::tools::clipPolygonOnParallelAxis( + aCandidate, + true, + true, + aCenter.getY(), + false)); + const basegfx::B2DPolyPolygon aBottom( + basegfx::tools::clipPolygonOnParallelAxis( + aCandidate, + true, + false, + aCenter.getY(), + false)); + + aSplitted.append(aTop); + aSplitted.append(aBottom); + } + } + else + { + aSplitted.append(aCandidate); + } + } + + if(aSplitted.count() != nPolyCount) + { + rPolyPolygon = aSplitted; + } + } + + return bRetval; + } +} // end of anonymous namespace + +////////////////////////////////////////////////////////////////////////////// namespace drawinglayer { @@ -982,26 +1123,65 @@ namespace drawinglayer } case PRIMITIVE2D_ID_POLYGONHAIRLINEPRIMITIVE2D : { - // direct draw of hairline; use default processing - // also support SvtGraphicStroke MetaCommentAction const primitive2d::PolygonHairlinePrimitive2D& rHairlinePrimitive = static_cast< const primitive2d::PolygonHairlinePrimitive2D& >(rCandidate); - const basegfx::BColor aLineColor(maBColorModifierStack.getModifiedColor(rHairlinePrimitive.getBColor())); - SvtGraphicStroke* pSvtGraphicStroke = impTryToCreateSvtGraphicStroke(rHairlinePrimitive.getB2DPolygon(), &aLineColor, 0, 0, 0, 0); + const basegfx::B2DPolygon& rBasePolygon = rHairlinePrimitive.getB2DPolygon(); - impStartSvtGraphicStroke(pSvtGraphicStroke); - RenderPolygonHairlinePrimitive2D(static_cast< const primitive2d::PolygonHairlinePrimitive2D& >(rCandidate), false); - impEndSvtGraphicStroke(pSvtGraphicStroke); + if(rBasePolygon.count() > (MAX_POLYGON_POINT_COUNT_METAFILE - 1)) + { + // #i112245# Metafiles use tools Polygon and are not able to have more than 65535 points + // per polygon. If there are more, split the polygon in half and call recursively + basegfx::B2DPolygon aLeft, aRight; + splitLinePolygon(rBasePolygon, aLeft, aRight); + const primitive2d::PolygonHairlinePrimitive2D aPLeft(aLeft, rHairlinePrimitive.getBColor()); + const primitive2d::PolygonHairlinePrimitive2D aPRight(aRight, rHairlinePrimitive.getBColor()); + + processBasePrimitive2D(aPLeft); + processBasePrimitive2D(aPRight); + } + else + { + // direct draw of hairline; use default processing + // support SvtGraphicStroke MetaCommentAction + const basegfx::BColor aLineColor(maBColorModifierStack.getModifiedColor(rHairlinePrimitive.getBColor())); + SvtGraphicStroke* pSvtGraphicStroke = impTryToCreateSvtGraphicStroke( + rHairlinePrimitive.getB2DPolygon(), + &aLineColor, + 0, 0, 0, 0); + + impStartSvtGraphicStroke(pSvtGraphicStroke); + RenderPolygonHairlinePrimitive2D(static_cast< const primitive2d::PolygonHairlinePrimitive2D& >(rCandidate), false); + impEndSvtGraphicStroke(pSvtGraphicStroke); + } break; } case PRIMITIVE2D_ID_POLYGONSTROKEPRIMITIVE2D : { - // support SvtGraphicStroke MetaCommentAction const primitive2d::PolygonStrokePrimitive2D& rStrokePrimitive = static_cast< const primitive2d::PolygonStrokePrimitive2D& >(rCandidate); - SvtGraphicStroke* pSvtGraphicStroke = impTryToCreateSvtGraphicStroke(rStrokePrimitive.getB2DPolygon(), 0, &rStrokePrimitive.getLineAttribute(), - &rStrokePrimitive.getStrokeAttribute(), 0, 0); + const basegfx::B2DPolygon& rBasePolygon = rStrokePrimitive.getB2DPolygon(); - if(true) + if(rBasePolygon.count() > (MAX_POLYGON_POINT_COUNT_METAFILE - 1)) { + // #i112245# Metafiles use tools Polygon and are not able to have more than 65535 points + // per polygon. If there are more, split the polygon in half and call recursively + basegfx::B2DPolygon aLeft, aRight; + splitLinePolygon(rBasePolygon, aLeft, aRight); + const primitive2d::PolygonStrokePrimitive2D aPLeft( + aLeft, rStrokePrimitive.getLineAttribute(), rStrokePrimitive.getStrokeAttribute()); + const primitive2d::PolygonStrokePrimitive2D aPRight( + aRight, rStrokePrimitive.getLineAttribute(), rStrokePrimitive.getStrokeAttribute()); + + processBasePrimitive2D(aPLeft); + processBasePrimitive2D(aPRight); + } + else + { + // support SvtGraphicStroke MetaCommentAction + SvtGraphicStroke* pSvtGraphicStroke = impTryToCreateSvtGraphicStroke( + rBasePolygon, 0, + &rStrokePrimitive.getLineAttribute(), + &rStrokePrimitive.getStrokeAttribute(), + 0, 0); + impStartSvtGraphicStroke(pSvtGraphicStroke); const attribute::LineAttribute& rLine = rStrokePrimitive.getLineAttribute(); @@ -1013,12 +1193,12 @@ namespace drawinglayer if(0.0 == rStroke.getFullDotDashLen()) { - aHairLinePolyPolygon.append(rStrokePrimitive.getB2DPolygon()); + aHairLinePolyPolygon.append(rBasePolygon); } else { basegfx::tools::applyLineDashing( - rStrokePrimitive.getB2DPolygon(), rStroke.getDotDashArray(), + rBasePolygon, rStroke.getDotDashArray(), &aHairLinePolyPolygon, 0, rStroke.getFullDotDashLen()); } @@ -1048,93 +1228,52 @@ namespace drawinglayer impEndSvtGraphicStroke(pSvtGraphicStroke); } - else - { - // Adapt OutDev's DrawMode if special ones were used - const sal_uInt32 nOriginalDrawMode(mpOutputDevice->GetDrawMode()); - adaptLineToFillDrawMode(); - - impStartSvtGraphicStroke(pSvtGraphicStroke); - - // #i101491# - // Change default of fat line generation for MetaFiles: Create MetaPolyLineAction - // instead of decomposing all geometries when the polygon has more than given amount of - // points; else the decomposition will get too expensive quiclky. OTOH - // the decomposition provides the better quality e.g. taking edge roundings - // into account which will NOT be taken into account with LineInfo-based actions - const sal_uInt32 nSubPolygonCount(rStrokePrimitive.getB2DPolygon().count()); - bool bDone(0 == nSubPolygonCount); - - if(!bDone && nSubPolygonCount > 1000) - { - // create MetaPolyLineActions, but without LINE_DASH - const attribute::LineAttribute& rLine = rStrokePrimitive.getLineAttribute(); - - if(basegfx::fTools::more(rLine.getWidth(), 0.0)) - { - const attribute::StrokeAttribute& rStroke = rStrokePrimitive.getStrokeAttribute(); - basegfx::B2DPolyPolygon aHairLinePolyPolygon; - - if(0.0 == rStroke.getFullDotDashLen()) - { - aHairLinePolyPolygon.append(rStrokePrimitive.getB2DPolygon()); - } - else - { - basegfx::tools::applyLineDashing( - rStrokePrimitive.getB2DPolygon(), rStroke.getDotDashArray(), - &aHairLinePolyPolygon, 0, rStroke.getFullDotDashLen()); - } - - const basegfx::BColor aHairlineColor(maBColorModifierStack.getModifiedColor(rLine.getColor())); - mpOutputDevice->SetLineColor(Color(aHairlineColor)); - mpOutputDevice->SetFillColor(); - - aHairLinePolyPolygon.transform(maCurrentTransformation); - - const LineInfo aLineInfo(LINE_SOLID, basegfx::fround(rLine.getWidth())); - - for(sal_uInt32 a(0); a < aHairLinePolyPolygon.count(); a++) - { - const basegfx::B2DPolygon aCandidate(aHairLinePolyPolygon.getB2DPolygon(a)); - - if(aCandidate.count() > 1) - { - const Polygon aToolsPolygon(aCandidate); - - mpMetaFile->AddAction(new MetaPolyLineAction(aToolsPolygon, aLineInfo)); - } - } - - bDone = true; - } - } - - if(!bDone) - { - // use decomposition (creates line geometry as filled polygon - // geometry) - process(rCandidate.get2DDecomposition(getViewInformation2D())); - } - - impEndSvtGraphicStroke(pSvtGraphicStroke); - - // restore DrawMode - mpOutputDevice->SetDrawMode(nOriginalDrawMode); - } break; } case PRIMITIVE2D_ID_POLYGONSTROKEARROWPRIMITIVE2D : { - // support SvtGraphicStroke MetaCommentAction const primitive2d::PolygonStrokeArrowPrimitive2D& rStrokeArrowPrimitive = static_cast< const primitive2d::PolygonStrokeArrowPrimitive2D& >(rCandidate); - SvtGraphicStroke* pSvtGraphicStroke = impTryToCreateSvtGraphicStroke(rStrokeArrowPrimitive.getB2DPolygon(), 0, &rStrokeArrowPrimitive.getLineAttribute(), - &rStrokeArrowPrimitive.getStrokeAttribute(), &rStrokeArrowPrimitive.getStart(), &rStrokeArrowPrimitive.getEnd()); + const basegfx::B2DPolygon& rBasePolygon = rStrokeArrowPrimitive.getB2DPolygon(); + + if(rBasePolygon.count() > (MAX_POLYGON_POINT_COUNT_METAFILE - 1)) + { + // #i112245# Metafiles use tools Polygon and are not able to have more than 65535 points + // per polygon. If there are more, split the polygon in half and call recursively + basegfx::B2DPolygon aLeft, aRight; + splitLinePolygon(rBasePolygon, aLeft, aRight); + const attribute::LineStartEndAttribute aEmpty; + const primitive2d::PolygonStrokeArrowPrimitive2D aPLeft( + aLeft, + rStrokeArrowPrimitive.getLineAttribute(), + rStrokeArrowPrimitive.getStrokeAttribute(), + rStrokeArrowPrimitive.getStart(), + aEmpty); + const primitive2d::PolygonStrokeArrowPrimitive2D aPRight( + aRight, + rStrokeArrowPrimitive.getLineAttribute(), + rStrokeArrowPrimitive.getStrokeAttribute(), + aEmpty, + rStrokeArrowPrimitive.getEnd()); + + processBasePrimitive2D(aPLeft); + processBasePrimitive2D(aPRight); + } + else + { + // support SvtGraphicStroke MetaCommentAction + SvtGraphicStroke* pSvtGraphicStroke = impTryToCreateSvtGraphicStroke( + rBasePolygon, 0, + &rStrokeArrowPrimitive.getLineAttribute(), + &rStrokeArrowPrimitive.getStrokeAttribute(), + &rStrokeArrowPrimitive.getStart(), + &rStrokeArrowPrimitive.getEnd()); + + impStartSvtGraphicStroke(pSvtGraphicStroke); + process(rCandidate.get2DDecomposition(getViewInformation2D())); + impEndSvtGraphicStroke(pSvtGraphicStroke); + } - impStartSvtGraphicStroke(pSvtGraphicStroke); - process(rCandidate.get2DDecomposition(getViewInformation2D())); - impEndSvtGraphicStroke(pSvtGraphicStroke); break; } case PRIMITIVE2D_ID_BITMAPPRIMITIVE2D : @@ -1146,16 +1285,26 @@ namespace drawinglayer case PRIMITIVE2D_ID_POLYPOLYGONBITMAPPRIMITIVE2D : { // need to handle PolyPolygonBitmapPrimitive2D here to support XPATHFILL_SEQ_BEGIN/XPATHFILL_SEQ_END - SvtGraphicFill* pSvtGraphicFill = 0; + const primitive2d::PolyPolygonBitmapPrimitive2D& rBitmapCandidate = static_cast< const primitive2d::PolyPolygonBitmapPrimitive2D& >(rCandidate); + basegfx::B2DPolyPolygon aLocalPolyPolygon(rBitmapCandidate.getB2DPolyPolygon()); + + if(fillPolyPolygonNeededToBeSplit(aLocalPolyPolygon)) + { + // #i112245# Metafiles use tools Polygon and are not able to have more than 65535 points + // per polygon. If there are more use the splitted polygon and call recursively + const primitive2d::PolyPolygonBitmapPrimitive2D aSplitted( + aLocalPolyPolygon, + rBitmapCandidate.getFillBitmap()); - if(!mnSvtGraphicFillCount) + processBasePrimitive2D(aSplitted); + } + else { - const primitive2d::PolyPolygonBitmapPrimitive2D& rBitmapCandidate = static_cast< const primitive2d::PolyPolygonBitmapPrimitive2D& >(rCandidate); - basegfx::B2DPolyPolygon aLocalPolyPolygon(rBitmapCandidate.getB2DPolyPolygon()); - aLocalPolyPolygon.transform(maCurrentTransformation); + SvtGraphicFill* pSvtGraphicFill = 0; - if(aLocalPolyPolygon.count()) + if(!mnSvtGraphicFillCount && aLocalPolyPolygon.count()) { + aLocalPolyPolygon.transform(maCurrentTransformation); // calculate transformation. Get real object size, all values in FillBitmapAttribute // are relative to the unified object const attribute::FillBitmapAttribute& rFillBitmapAttribute = rBitmapCandidate .getFillBitmap(); @@ -1212,78 +1361,81 @@ namespace drawinglayer 0, aFillGraphic); } - } - // Do use decomposition; encapsulate with SvtGraphicFill - impStartSvtGraphicFill(pSvtGraphicFill); - process(rCandidate.get2DDecomposition(getViewInformation2D())); - impEndSvtGraphicFill(pSvtGraphicFill); + // Do use decomposition; encapsulate with SvtGraphicFill + impStartSvtGraphicFill(pSvtGraphicFill); + process(rCandidate.get2DDecomposition(getViewInformation2D())); + impEndSvtGraphicFill(pSvtGraphicFill); + } break; } case PRIMITIVE2D_ID_POLYPOLYGONHATCHPRIMITIVE2D : { // need to handle PolyPolygonHatchPrimitive2D here to support XPATHFILL_SEQ_BEGIN/XPATHFILL_SEQ_END - SvtGraphicFill* pSvtGraphicFill = 0; const primitive2d::PolyPolygonHatchPrimitive2D& rHatchCandidate = static_cast< const primitive2d::PolyPolygonHatchPrimitive2D& >(rCandidate); - const attribute::FillHatchAttribute& rFillHatchAttribute = rHatchCandidate.getFillHatch(); basegfx::B2DPolyPolygon aLocalPolyPolygon(rHatchCandidate.getB2DPolyPolygon()); + + // #i112245# Metafiles use tools Polygon and are not able to have more than 65535 points + // per polygon. Split polygon until there are less than that + while(fillPolyPolygonNeededToBeSplit(aLocalPolyPolygon)) + ; + + SvtGraphicFill* pSvtGraphicFill = 0; + const attribute::FillHatchAttribute& rFillHatchAttribute = rHatchCandidate.getFillHatch(); aLocalPolyPolygon.transform(maCurrentTransformation); - if(!mnSvtGraphicFillCount) + if(!mnSvtGraphicFillCount && aLocalPolyPolygon.count()) { - if(aLocalPolyPolygon.count()) - { - // re-create a VCL hatch as base data - SvtGraphicFill::HatchType eHatch(SvtGraphicFill::hatchSingle); + // re-create a VCL hatch as base data + SvtGraphicFill::HatchType eHatch(SvtGraphicFill::hatchSingle); - switch(rFillHatchAttribute.getStyle()) + switch(rFillHatchAttribute.getStyle()) + { + default: // attribute::HATCHSTYLE_SINGLE : { - default: // attribute::HATCHSTYLE_SINGLE : - { - eHatch = SvtGraphicFill::hatchSingle; - break; - } - case attribute::HATCHSTYLE_DOUBLE : - { - eHatch = SvtGraphicFill::hatchDouble; - break; - } - case attribute::HATCHSTYLE_TRIPLE : - { - eHatch = SvtGraphicFill::hatchTriple; - break; - } + eHatch = SvtGraphicFill::hatchSingle; + break; + } + case attribute::HATCHSTYLE_DOUBLE : + { + eHatch = SvtGraphicFill::hatchDouble; + break; + } + case attribute::HATCHSTYLE_TRIPLE : + { + eHatch = SvtGraphicFill::hatchTriple; + break; } + } - SvtGraphicFill::Transform aTransform; + SvtGraphicFill::Transform aTransform; - // scale - aTransform.matrix[0] *= rFillHatchAttribute.getDistance(); - aTransform.matrix[4] *= rFillHatchAttribute.getDistance(); + // scale + aTransform.matrix[0] *= rFillHatchAttribute.getDistance(); + aTransform.matrix[4] *= rFillHatchAttribute.getDistance(); - // rotate (was never correct in impgrfll anyways, use correct angle now) - aTransform.matrix[0] *= cos(rFillHatchAttribute.getAngle()); - aTransform.matrix[1] *= -sin(rFillHatchAttribute.getAngle()); - aTransform.matrix[3] *= sin(rFillHatchAttribute.getAngle()); - aTransform.matrix[4] *= cos(rFillHatchAttribute.getAngle()); + // rotate (was never correct in impgrfll anyways, use correct angle now) + aTransform.matrix[0] *= cos(rFillHatchAttribute.getAngle()); + aTransform.matrix[1] *= -sin(rFillHatchAttribute.getAngle()); + aTransform.matrix[3] *= sin(rFillHatchAttribute.getAngle()); + aTransform.matrix[4] *= cos(rFillHatchAttribute.getAngle()); - pSvtGraphicFill = new SvtGraphicFill( - PolyPolygon(aLocalPolyPolygon), - Color(), - 0.0, - SvtGraphicFill::fillEvenOdd, - SvtGraphicFill::fillHatch, - aTransform, - false, - eHatch, - Color(rFillHatchAttribute.getColor()), - SvtGraphicFill::gradientLinear, - Color(), - Color(), - 0, - Graphic()); - } + pSvtGraphicFill = new SvtGraphicFill( + PolyPolygon(aLocalPolyPolygon), + Color(), + 0.0, + SvtGraphicFill::fillEvenOdd, + SvtGraphicFill::fillHatch, + aTransform, + false, + eHatch, + Color(rFillHatchAttribute.getColor()), + SvtGraphicFill::gradientLinear, + Color(), + Color(), + 0, + Graphic()); } // Do use decomposition; encapsulate with SvtGraphicFill @@ -1304,18 +1456,24 @@ namespace drawinglayer basegfx::fround(rFillHatchAttribute.getAngle() / F_PI1800))); impEndSvtGraphicFill(pSvtGraphicFill); + break; } case PRIMITIVE2D_ID_POLYPOLYGONGRADIENTPRIMITIVE2D : { const primitive2d::PolyPolygonGradientPrimitive2D& rGradientCandidate = static_cast< const primitive2d::PolyPolygonGradientPrimitive2D& >(rCandidate); + basegfx::B2DPolyPolygon aLocalPolyPolygon(rGradientCandidate.getB2DPolyPolygon()); + + // #i112245# Metafiles use tools Polygon and are not able to have more than 65535 points + // per polygon. Split polygon until there are less than that + while(fillPolyPolygonNeededToBeSplit(aLocalPolyPolygon)) + ; // for support of MetaCommentActions of the form XGRAD_SEQ_BEGIN, XGRAD_SEQ_END // it is safest to use the VCL OutputDevice::DrawGradient method which creates those. // re-create a VCL-gradient from FillGradientPrimitive2D and the needed tools PolyPolygon Gradient aVCLGradient; impConvertFillGradientAttributeToVCLGradient(aVCLGradient, rGradientCandidate.getFillGradient(), false); - basegfx::B2DPolyPolygon aLocalPolyPolygon(rGradientCandidate.getB2DPolyPolygon()); aLocalPolyPolygon.transform(maCurrentTransformation); // #i82145# ATM VCL printing of gradients using curved shapes does not work, @@ -1373,13 +1531,20 @@ namespace drawinglayer // NO usage of common own gradient randerer, not used ATM for VCL MetaFile, see text above // RenderPolyPolygonGradientPrimitive2D(static_cast< const primitive2d::PolyPolygonGradientPrimitive2D& >(rCandidate)); + break; } case PRIMITIVE2D_ID_POLYPOLYGONCOLORPRIMITIVE2D : { const primitive2d::PolyPolygonColorPrimitive2D& rPolygonCandidate(static_cast< const primitive2d::PolyPolygonColorPrimitive2D& >(rCandidate)); - const basegfx::BColor aPolygonColor(maBColorModifierStack.getModifiedColor(rPolygonCandidate.getBColor())); basegfx::B2DPolyPolygon aLocalPolyPolygon(rPolygonCandidate.getB2DPolyPolygon()); + + // #i112245# Metafiles use tools Polygon and are not able to have more than 65535 points + // per polygon. Split polygon until there are less than that + while(fillPolyPolygonNeededToBeSplit(aLocalPolyPolygon)) + ; + + const basegfx::BColor aPolygonColor(maBColorModifierStack.getModifiedColor(rPolygonCandidate.getBColor())); aLocalPolyPolygon.transform(maCurrentTransformation); // XPATHFILL_SEQ_BEGIN/XPATHFILL_SEQ_END support @@ -1547,6 +1712,13 @@ namespace drawinglayer // single transparent PolyPolygon identified, use directly const basegfx::BColor aPolygonColor(maBColorModifierStack.getModifiedColor(pPoPoColor->getBColor())); basegfx::B2DPolyPolygon aLocalPolyPolygon(pPoPoColor->getB2DPolyPolygon()); + + // #i112245# Metafiles use tools Polygon and are not able to have more than 65535 points + // per polygon. Split polygon until there are less than that + while(fillPolyPolygonNeededToBeSplit(aLocalPolyPolygon)) + ; + + // now transform aLocalPolyPolygon.transform(maCurrentTransformation); // XPATHFILL_SEQ_BEGIN/XPATHFILL_SEQ_END support @@ -1796,7 +1968,7 @@ namespace drawinglayer } break; } - case PRIMITIVE2D_ID_STRUCTURETAGRIMITIVE2D : + case PRIMITIVE2D_ID_STRUCTURETAGPRIMITIVE2D : { // structured tag primitive const primitive2d::StructureTagPrimitive2D& rStructureTagCandidate = static_cast< const primitive2d::StructureTagPrimitive2D& >(rCandidate); diff --git a/external/StAX/README_jsr173_1.0_api.jar b/external/StAX/README_jsr173_1.0_api.jar deleted file mode 100644 index 7df7eb0f37f8..000000000000 --- a/external/StAX/README_jsr173_1.0_api.jar +++ /dev/null @@ -1,3 +0,0 @@ -The JSR173 is the XML pull API used at build time for the saxon9 XSLT processor, it has become part of OpenJDK 6.
-When using an older JDK, get the API from <https://stax-utils.dev.java.net/source/browse/*checkout*/stax-utils/lib/jars/jsr173_1.0_api.jar>
-located at the StAS Java site <https://sjsxp.dev.java.net/> and put it into external/StAX.
\ No newline at end of file diff --git a/fpicker/source/unx/kde4/KDE4FilePicker.cxx b/fpicker/source/unx/kde4/KDE4FilePicker.cxx index a7fa01a5ece6..eadc255f0ec0 100644 --- a/fpicker/source/unx/kde4/KDE4FilePicker.cxx +++ b/fpicker/source/unx/kde4/KDE4FilePicker.cxx @@ -46,6 +46,8 @@ #include <vcl/sysdata.hxx> #include <vcl/syswin.hxx> +#include "osl/file.h" + #include "KDE4FilePicker.hxx" #include "FPServiceInfo.hxx" @@ -246,7 +248,7 @@ uno::Sequence< ::rtl::OUString > SAL_CALL KDE4FilePicker::getFiles() // kde file picker returns the file and directories for selectedFiles() // when a file is double clicked // make a true list of files - const QString dir = "file://" + KUrl(rawFiles[0]).directory(); + const QString dir = KUrl(rawFiles[0]).directory(); bool singleFile = true; if (rawFiles.size() > 1) @@ -262,7 +264,7 @@ uno::Sequence< ::rtl::OUString > SAL_CALL KDE4FilePicker::getFiles() { // if the raw file is not the base directory (see above kde bug) // we add the file to list of avail files - if ((dir + "/") != ("file://" + rawFiles[i])) + if ((dir + "/") != ( rawFiles[i])) { QString filename = KUrl(rawFiles[i]).fileName(); @@ -280,7 +282,11 @@ uno::Sequence< ::rtl::OUString > SAL_CALL KDE4FilePicker::getFiles() // add all files and leading directory to outgoing OO sequence uno::Sequence< ::rtl::OUString > seq(files.size()); for (int i = 0; i < files.size(); ++i) - seq[i] = toOUString(files[i]); + { + rtl::OUString aFile(toOUString(files[i])), aURL; + osl_getFileURLFromSystemPath(aFile.pData, &aURL.pData ); + seq[i] = aURL; + } return seq; } diff --git a/instsetoo_native/inc_ooolangpack/windows/msi_templates/ControlE.idt b/instsetoo_native/inc_ooolangpack/windows/msi_templates/ControlE.idt index dea5e9767a6e..21f7fe7726a5 100644 --- a/instsetoo_native/inc_ooolangpack/windows/msi_templates/ControlE.idt +++ b/instsetoo_native/inc_ooolangpack/windows/msi_templates/ControlE.idt @@ -132,7 +132,6 @@ SetupResume Next EndDialog Return OutOfNoRbDiskSpace <> 1 0 SetupResume Next NewDialog OutOfSpace OutOfNoRbDiskSpace = 1 0 SetupType Back NewDialog CustomerInformation 1 0 SetupType Cancel SpawnDialog CancelSetup 1 0 -SetupType Next AddLocal ALL _IsSetupTypeMin = "Typical" 0 SetupType Next NewDialog CustomSetup _IsSetupTypeMin = "Custom" 0 SetupType Next NewDialog ReadyToInstall _IsSetupTypeMin <> "Custom" 0 SplashBitmap Cancel SpawnDialog CancelSetup 1 0 diff --git a/instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf b/instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf index 7fcb566af0e3..ec904cd5e904 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf +++ b/instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf @@ -620,7 +620,7 @@ en-US = "< &Back" en-US = "Cancel" [OOO_CONTROL_255] -en-US = "All program features will be installed. (Requires the most disk space.)" +en-US = "The main components will be installed. Recommended for most users." [OOO_CONTROL_256] en-US = "Choose which program features you want installed and where they will be installed. Recommended for advanced users." diff --git a/instsetoo_native/inc_openoffice/windows/msi_languages/RadioBut.ulf b/instsetoo_native/inc_openoffice/windows/msi_languages/RadioBut.ulf index da2d44cdb983..24b51774bacb 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_languages/RadioBut.ulf +++ b/instsetoo_native/inc_openoffice/windows/msi_languages/RadioBut.ulf @@ -8,7 +8,7 @@ en-US = "{&MSSansBold8}Re&pair" en-US = "{&MSSansBold8}&Remove" [OOO_RADIOBUTTON_4] -en-US = "{&MSSansBold8}&Complete" +en-US = "{&MSSansBold8}&Typical" [OOO_RADIOBUTTON_5] en-US = "{&MSSansBold8}Cu&stom" diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/ControlE.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/ControlE.idt index 2200f4d28a3a..56bf6b92d757 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/ControlE.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/ControlE.idt @@ -145,7 +145,6 @@ SetupResume Next EndDialog Return OutOfNoRbDiskSpace <> 1 0 SetupResume Next NewDialog OutOfSpace OutOfNoRbDiskSpace = 1 0 SetupType Back NewDialog CustomerInformation 1 0 SetupType Cancel SpawnDialog CancelSetup 1 0 -SetupType Next AddLocal ALL _IsSetupTypeMin = "Typical" 0 SetupType Next NewDialog CustomSetup _IsSetupTypeMin = "Custom" 0 SetupType Next [FILETYPEDIALOGUSED] 0 _IsSetupTypeMin <> "Custom" 5 SetupType Next NewDialog ReadyToInstall _IsSetupTypeMin <> "Custom" 6 diff --git a/instsetoo_native/inc_sdkoo/windows/msi_templates/ControlE.idt b/instsetoo_native/inc_sdkoo/windows/msi_templates/ControlE.idt index 332945b50bdb..49407d4770da 100644 --- a/instsetoo_native/inc_sdkoo/windows/msi_templates/ControlE.idt +++ b/instsetoo_native/inc_sdkoo/windows/msi_templates/ControlE.idt @@ -133,7 +133,6 @@ SetupResume Next EndDialog Return OutOfNoRbDiskSpace <> 1 0 SetupResume Next NewDialog OutOfSpace OutOfNoRbDiskSpace = 1 0 SetupType Back NewDialog CustomerInformation 1 0 SetupType Cancel SpawnDialog CancelSetup 1 0 -SetupType Next AddLocal ALL _IsSetupTypeMin = "Typical" 0 SetupType Next NewDialog CustomSetup _IsSetupTypeMin = "Custom" 0 SetupType Next NewDialog ReadyToInstall _IsSetupTypeMin <> "Custom" 0 SplashBitmap Cancel SpawnDialog CancelSetup 1 0 diff --git a/instsetoo_native/inc_ure/windows/msi_templates/ControlE.idt b/instsetoo_native/inc_ure/windows/msi_templates/ControlE.idt index 332945b50bdb..49407d4770da 100644 --- a/instsetoo_native/inc_ure/windows/msi_templates/ControlE.idt +++ b/instsetoo_native/inc_ure/windows/msi_templates/ControlE.idt @@ -133,7 +133,6 @@ SetupResume Next EndDialog Return OutOfNoRbDiskSpace <> 1 0 SetupResume Next NewDialog OutOfSpace OutOfNoRbDiskSpace = 1 0 SetupType Back NewDialog CustomerInformation 1 0 SetupType Cancel SpawnDialog CancelSetup 1 0 -SetupType Next AddLocal ALL _IsSetupTypeMin = "Typical" 0 SetupType Next NewDialog CustomSetup _IsSetupTypeMin = "Custom" 0 SetupType Next NewDialog ReadyToInstall _IsSetupTypeMin <> "Custom" 0 SplashBitmap Cancel SpawnDialog CancelSetup 1 0 diff --git a/instsetoo_native/util/makefile.mk b/instsetoo_native/util/makefile.mk index 72f4262b1c4e..19a6214f8dc6 100644 --- a/instsetoo_native/util/makefile.mk +++ b/instsetoo_native/util/makefile.mk @@ -210,7 +210,7 @@ $(MAKETARGETS){$(PKGFORMAT:^".")} : $(ADDDEPS) .ENDIF # "$(MAKETARGETS:e)"=="" && "$(MAKETARGETS:s/_//)"!="$(MAKETARGETS)" .ENDIF # "$(MAKETARGETS)"!="" openoffice_%{$(PKGFORMAT:^".") .archive} : - $(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -format $(@:e:s/.//) $(VERBOSESWITCH) -log + $(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -format $(@:e:s/.//) $(VERBOSESWITCH) $(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product OpenOffice --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml > $(MISC)/$(@:b)_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml $(foreach,i,$(alllangiso) openofficewithjre_$i) : $$@{$(PKGFORMAT:^".")} diff --git a/l10ntools/scripts/localize.pl b/l10ntools/scripts/localize.pl index 4aea1d933992..4b7040d6583d 100644 --- a/l10ntools/scripts/localize.pl +++ b/l10ntools/scripts/localize.pl @@ -461,6 +461,7 @@ sub collectfiles{ ### Search sdf particles #print STDOUT "### Searching sdf particles\n"; my $working_path = getcwd(); + chdir $ENV{SOURCE_ROOT_DIR}, if defined $ENV{SOURCE_ROOT_DIR}; #chdir $srcpath; #find ( { wanted => \&wanted , follow => 1 }, getcwd() ); #chdir $working_path; @@ -701,6 +702,7 @@ sub collectfiles{ close DESTFILE; close LOCALIZEPARTICLE; close ALLPARTICLES_MERGED; + chdir $working_path; #print STDOUT "DBG: \$localizeSDF $localizeSDF \$particleSDF_merged $particleSDF_merged\n"; unlink $localizeSDF , $particleSDF_merged , $my_localize_log; diff --git a/mythes/makefile.mk b/mythes/makefile.mk index 77d88bc4ca5f..0aa8f2fdc6fe 100644 --- a/mythes/makefile.mk +++ b/mythes/makefile.mk @@ -88,7 +88,9 @@ OUT2INC += mythes.hxx .IF "$(GUI)"=="WNT" .IF "$(COM)"=="GCC" CONFIGURE_ACTION=configure -CONFIGURE_FLAGS= --disable-shared --with-pic +CONFIGURE_FLAGS= --disable-shared --with-pic \ + HUNSPELL_CFLAGS=-I$(SOLARINCDIR)$/hunspell \ + HUNSPELL_LIBS="-L$(SOLARLIBDIR) -lhunspell-1.2" BUILD_ACTION=make diff --git a/nss/makefile.mk b/nss/makefile.mk index 78de2a9afbf3..22b126a43c57 100644 --- a/nss/makefile.mk +++ b/nss/makefile.mk @@ -41,9 +41,9 @@ all: @echo "NSS will not be built. ENABLE_NSS_MODULE is '$(ENABLE_NSS_MODULE)'" .ENDIF -TARFILE_NAME=nss_3_12_5 -TARFILE_MD5=6244eb0b6e2647ee50470951fa6efb47 -TARFILE_ROOTDIR=mozilla +TARFILE_NAME=nss-3.12.6-with-nspr-4.8.4 +TARFILE_MD5=b92261a5679276c400555004937af965 +TARFILE_ROOTDIR=nss-3.12.6 PATCH_FILES=nss.patch .IF "$(OS)"=="MACOSX" @@ -83,9 +83,9 @@ MACOS_SDK_DIR*=$(MACDEVSDK) .ENDIF # "$(EXTRA_CFLAGS)"!="" .ENDIF # "$(OS)"=="MACOSX" -OUT2LIB=dist$/out$/lib$/*$(DLLPOST) +OUT2LIB=mozilla$/dist$/out$/lib$/*$(DLLPOST) -BUILD_DIR=security$/nss +BUILD_DIR=mozilla$/security$/nss BUILD_ACTION= $(GNUMAKE) nss_build_all #See #i105566# && moz#513024# .IF "$(OS)"=="LINUX" @@ -117,20 +117,20 @@ nss_LIBS+=-lstdc++_s .ENDIF -BUILD_DIR=security$/nss +BUILD_DIR=mozilla$/security$/nss BUILD_ACTION=NS_USE_GCC=1 CC="$(nss_CC)" CXX="$(nss_CXX)" OS_LIBS="$(nss_LIBS)" OS_TARGET=WIN95 _WIN32_IE=0x500 PATH="$(PATH)" DEFINES=-D_WIN32_IE=0x500 $(GNUMAKE) nss_build_all OUT2LIB= \ - dist$/out$/lib$/libnspr4.a \ - dist$/out$/lib$/libnss3.a \ - dist$/out$/lib$/libnssdbm3.a \ - dist$/out$/lib$/libnssutil3.a \ - dist$/out$/lib$/libplc4.a \ - dist$/out$/lib$/libplds4.a \ - dist$/out$/lib$/libsmime3.a \ - dist$/out$/lib$/libsoftokn3.a \ - dist$/out$/lib$/libsqlite3.a \ - dist$/out$/lib$/libssl3.a + mozilla$/dist$/out$/lib$/libnspr4.a \ + mozilla$/dist$/out$/lib$/libnss3.a \ + mozilla$/dist$/out$/lib$/libnssdbm3.a \ + mozilla$/dist$/out$/lib$/libnssutil3.a \ + mozilla$/dist$/out$/lib$/libplc4.a \ + mozilla$/dist$/out$/lib$/libplds4.a \ + mozilla$/dist$/out$/lib$/libsmime3.a \ + mozilla$/dist$/out$/lib$/libsoftokn3.a \ + mozilla$/dist$/out$/lib$/libsqlite3.a \ + mozilla$/dist$/out$/lib$/libssl3.a .ELSE # "$(COM)"=="GCC" MOZ_MSVCVERSION= 9 @@ -151,29 +151,29 @@ EXT_USE_STLPORT=TRUE #To build nss one has to call "make nss_build_all" in #mozilla/security/nss -NSS_BUILD_DIR= $(subst,\,/ $(PWD)/$(MISC)/build/mozilla/security/nss) +NSS_BUILD_DIR= $(subst,\,/ $(PWD)/$(MISC)/build/$(TARFILE_ROOTDIR)/mozilla/security/nss) BUILD_ACTION= $(subst,/,$/ $(MOZILLABUILD)/msys/bin/bash) -i \ -c "cd $(NSS_BUILD_DIR) && make nss_build_all" OUT2LIB= \ - dist$/out$/lib$/nspr4.lib \ - dist$/out$/lib$/nss3.lib \ - dist$/out$/lib$/nssdbm3.lib \ - dist$/out$/lib$/nssutil3.lib \ - dist$/out$/lib$/plc4.lib \ - dist$/out$/lib$/plds4.lib \ - dist$/out$/lib$/smime3.lib \ - dist$/out$/lib$/softokn3.lib \ - dist$/out$/lib$/sqlite3.lib \ - dist$/out$/lib$/ssl3.lib + mozilla$/dist$/out$/lib$/nspr4.lib \ + mozilla$/dist$/out$/lib$/nss3.lib \ + mozilla$/dist$/out$/lib$/nssdbm3.lib \ + mozilla$/dist$/out$/lib$/nssutil3.lib \ + mozilla$/dist$/out$/lib$/plc4.lib \ + mozilla$/dist$/out$/lib$/plds4.lib \ + mozilla$/dist$/out$/lib$/smime3.lib \ + mozilla$/dist$/out$/lib$/softokn3.lib \ + mozilla$/dist$/out$/lib$/sqlite3.lib \ + mozilla$/dist$/out$/lib$/ssl3.lib .ENDIF # "$(COM)"=="GCC" -OUT2BIN=dist$/out$/lib$/*$(DLLPOST) +OUT2BIN=mozilla$/dist$/out$/lib$/*$(DLLPOST) .ENDIF # "$(GUI)"=="WNT" -OUTDIR2INC=dist$/public$/nss dist$/out$/include +OUTDIR2INC=mozilla$/dist$/public$/nss mozilla$/dist$/out$/include # --- Targets ------------------------------------------------------ diff --git a/nss/nss.patch b/nss/nss.patch index a6ce16071919..b5f871dd1ecc 100644 --- a/nss/nss.patch +++ b/nss/nss.patch @@ -1,6 +1,6 @@ ---- misc/mozilla/nsprpub/config/rules.mk Sat May 2 01:08:01 2009 -+++ misc/build/mozilla/nsprpub/config/rules.mk Wed Nov 25 08:06:47 2009 -@@ -350,7 +350,12 @@ +--- misc/nss-3.12.6/mozilla/nsprpub/config/rules.mk 2009-12-09 22:24:37.000000000 +0100 ++++ misc/build/nss-3.12.6/mozilla/nsprpub/config/rules.mk 2010-06-11 16:35:54.946870871 +0200 +@@ -345,7 +345,12 @@ ifdef NS_USE_GCC $(RC) $(RCFLAGS) $(filter-out -U%,$(DEFINES)) $(INCLUDES:-I%=--include-dir %) -o $@ $< else @@ -14,9 +14,9 @@ endif # GCC @echo $(RES) finished endif ---- misc/mozilla/nsprpub/configure Mon Nov 23 11:44:15 2009 -+++ misc/build/mozilla/nsprpub/configure Wed Nov 25 08:06:47 2009 -@@ -3899,7 +3899,7 @@ +--- misc/nss-3.12.6/mozilla/nsprpub/configure 2010-02-08 19:41:35.000000000 +0100 ++++ misc/build/nss-3.12.6/mozilla/nsprpub/configure 2010-06-11 16:35:54.960188991 +0200 +@@ -3900,7 +3900,7 @@ PR_MD_CSRCS=linux.c MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@' DSO_CFLAGS=-fPIC @@ -25,8 +25,8 @@ _OPTIMIZE_FLAGS=-O2 _DEBUG_FLAGS="-g -fno-inline" # most people on linux use gcc/gdb, and that # combo is not yet good at debugging inlined ---- misc/mozilla/security/coreconf/Darwin.mk Thu Jul 30 23:36:02 2009 -+++ misc/build/mozilla/security/coreconf/Darwin.mk Wed Nov 25 08:06:47 2009 +--- misc/nss-3.12.6/mozilla/security/coreconf/Darwin.mk 2010-02-04 19:59:10.000000000 +0100 ++++ misc/build/nss-3.12.6/mozilla/security/coreconf/Darwin.mk 2010-06-11 16:35:54.966185975 +0200 @@ -39,8 +39,12 @@ DEFAULT_COMPILER = cc @@ -42,8 +42,8 @@ RANLIB = ranlib ifndef CPU_ARCH ---- misc/mozilla/security/coreconf/Linux.mk Mon Nov 23 11:06:29 2009 -+++ misc/build/mozilla/security/coreconf/Linux.mk Wed Nov 25 08:11:35 2009 +--- misc/nss-3.12.6/mozilla/security/coreconf/Linux.mk 2010-01-15 23:19:00.000000000 +0100 ++++ misc/build/nss-3.12.6/mozilla/security/coreconf/Linux.mk 2010-06-11 16:35:54.981151732 +0200 @@ -46,8 +46,11 @@ IMPL_STRATEGY = _PTH endif @@ -58,7 +58,7 @@ RANLIB = ranlib DEFAULT_COMPILER = gcc -@@ -149,7 +152,7 @@ +@@ -147,7 +150,7 @@ # incorrectly reports undefined references in the libraries we link with, so # we don't use -z defs there. ZDEFS_FLAG = -Wl,-z,defs @@ -67,7 +67,7 @@ LDFLAGS += $(ARCHFLAG) # INCLUDES += -I/usr/include -Y/usr/include/linux -@@ -160,8 +163,13 @@ +@@ -158,8 +161,13 @@ # CPU_TAG = _$(CPU_ARCH) @@ -81,8 +81,8 @@ # The -rpath '$$ORIGIN' linker option instructs this library to search for its # dependencies in the same directory where it resides. ---- misc/mozilla/security/coreconf/SunOS5.mk Thu Jun 11 02:55:32 2009 -+++ misc/build/mozilla/security/coreconf/SunOS5.mk Wed Nov 25 08:06:47 2009 +--- misc/nss-3.12.6/mozilla/security/coreconf/SunOS5.mk 2009-06-11 02:55:32.000000000 +0200 ++++ misc/build/nss-3.12.6/mozilla/security/coreconf/SunOS5.mk 2010-06-11 16:35:54.985571182 +0200 @@ -89,8 +89,12 @@ # OPTIMIZER += -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer endif @@ -98,8 +98,8 @@ ASFLAGS += -Wa,-P OS_CFLAGS += $(NOMD_OS_CFLAGS) $(ARCHFLAG) ifndef BUILD_OPT ---- misc/mozilla/security/coreconf/arch.mk Fri Jun 5 04:14:49 2009 -+++ misc/build/mozilla/security/coreconf/arch.mk Wed Nov 25 08:06:47 2009 +--- misc/nss-3.12.6/mozilla/security/coreconf/arch.mk 2009-06-05 04:14:49.000000000 +0200 ++++ misc/build/nss-3.12.6/mozilla/security/coreconf/arch.mk 2010-06-11 16:35:54.990913282 +0200 @@ -324,7 +324,12 @@ # IMPL_STRATEGY may be defined too. # @@ -114,8 +114,8 @@ ifeq (,$(filter-out WIN%,$(OS_TARGET))) ifndef BUILD_OPT ---- misc/mozilla/security/coreconf/rules.mk Tue Aug 11 05:23:39 2009 -+++ misc/build/mozilla/security/coreconf/rules.mk Wed Nov 25 08:06:47 2009 +--- misc/nss-3.12.6/mozilla/security/coreconf/rules.mk 2009-12-08 02:33:36.000000000 +0100 ++++ misc/build/nss-3.12.6/mozilla/security/coreconf/rules.mk 2010-06-11 16:35:54.996448704 +0200 @@ -355,7 +355,12 @@ ifdef NS_USE_GCC $(RC) $(filter-out -U%,$(DEFINES)) $(INCLUDES:-I%=--include-dir %) -o $@ $< @@ -130,9 +130,9 @@ endif @echo $(RES) finished endif ---- misc/mozilla/security/nss/cmd/platlibs.mk Thu Jun 18 01:01:48 2009 -+++ misc/build/mozilla/security/nss/cmd/platlibs.mk Wed Nov 25 08:06:47 2009 -@@ -41,12 +41,13 @@ +--- misc/nss-3.12.6/mozilla/security/nss/cmd/platlibs.mk 2010-02-04 19:59:10.000000000 +0100 ++++ misc/build/nss-3.12.6/mozilla/security/nss/cmd/platlibs.mk 2010-06-11 16:35:55.004869805 +0200 +@@ -41,27 +41,28 @@ ifeq ($(OS_ARCH), SunOS) ifeq ($(BUILD_SUN_PKG), 1) ifeq ($(USE_64), 1) @@ -149,7 +149,6 @@ endif endif -@@ -53,15 +54,15 @@ ifeq ($(OS_ARCH), Linux) ifeq ($(BUILD_SUN_PKG), 1) ifeq ($(USE_64), 1) @@ -169,8 +168,8 @@ endif endif endif ---- misc/mozilla/security/nss/cmd/shlibsign/Makefile Fri Aug 7 21:06:37 2009 -+++ misc/build/mozilla/security/nss/cmd/shlibsign/Makefile Fri Nov 27 13:07:52 2009 +--- misc/nss-3.12.6/mozilla/security/nss/cmd/shlibsign/Makefile 2009-08-07 21:06:37.000000000 +0200 ++++ misc/build/nss-3.12.6/mozilla/security/nss/cmd/shlibsign/Makefile 2010-06-11 16:35:55.009851148 +0200 @@ -78,10 +78,15 @@ # sign any and all shared libraries that contain the word freebl diff --git a/nss/nss.patch.mingw b/nss/nss.patch.mingw index bead79548d6e..89edd5638e20 100644..100755 --- a/nss/nss.patch.mingw +++ b/nss/nss.patch.mingw @@ -1,5 +1,5 @@ ---- misc/mozilla/nsprpub/config/autoconf.mk.in 2009-03-03 23:04:23.000000000 +0100 -+++ misc/build/mozilla/nsprpub/config/autoconf.mk.in 2009-09-18 17:24:12.042630830 +0200 +--- misc/nss-3.12.6/mozilla/nsprpub/config/autoconf.mk.in 2009-03-04 07:04:23.000000000 +0900 ++++ misc/build/nss-3.12.6/mozilla/nsprpub/config/autoconf.mk.in 2010-06-17 08:42:08.010625000 +0900 @@ -22,6 +22,7 @@ RELEASE_OBJDIR_NAME = @RELEASE_OBJDIR_NAME@ OBJDIR_NAME = @OBJDIR_NAME@ @@ -8,12 +8,12 @@ OBJ_SUFFIX = @OBJ_SUFFIX@ LIB_SUFFIX = @LIB_SUFFIX@ DLL_SUFFIX = @DLL_SUFFIX@ ---- misc/mozilla/nsprpub/config/rules.mk 2009-05-02 01:08:01.000000000 +0200 -+++ misc/build/mozilla/nsprpub/config/rules.mk 2009-09-18 17:24:52.422809433 +0200 +--- misc/nss-3.12.6/mozilla/nsprpub/config/rules.mk 2009-12-10 06:24:37.000000000 +0900 ++++ misc/build/nss-3.12.6/mozilla/nsprpub/config/rules.mk 2010-06-17 08:42:08.057500000 +0900 @@ -113,9 +113,9 @@ # other platforms do not. # - ifeq (,$(filter-out WIN95 WINCE OS2,$(OS_TARGET))) + ifeq (,$(filter-out WIN95 WINCE WINMO OS2,$(OS_TARGET))) -LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION)_s.$(LIB_SUFFIX) +LIBRARY = $(OBJDIR)/$(LIB_PREFIX)$(LIBRARY_NAME)$(LIBRARY_VERSION)_s.$(LIB_SUFFIX) SHARED_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX) @@ -22,8 +22,8 @@ SHARED_LIB_PDB = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).pdb else LIBRARY = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION)_s.$(LIB_SUFFIX) ---- misc/mozilla/nsprpub/configure 2009-05-08 15:12:31.000000000 +0200 -+++ misc/build/mozilla/nsprpub/configure 2009-09-18 17:25:50.277803372 +0200 +--- misc/nss-3.12.6/mozilla/nsprpub/configure 2010-02-09 03:41:35.000000000 +0900 ++++ misc/build/nss-3.12.6/mozilla/nsprpub/configure 2010-06-17 08:42:10.000000000 +0900 @@ -2770,6 +2770,7 @@ LIB_SUFFIX=a DLL_SUFFIX=so @@ -32,7 +32,7 @@ MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@' PR_MD_ASFILES= PR_MD_CSRCS= -@@ -3998,6 +3999,7 @@ +@@ -4000,6 +4001,7 @@ OBJ_SUFFIX=obj LIB_SUFFIX=lib DLL_SUFFIX=dll @@ -40,7 +40,7 @@ # Determine compiler version CC_VERSION=`"${CC}" -v 2>&1 | grep Version | sed -e 's|.* Version ||' -e 's| .*||'` -@@ -6291,6 +6293,7 @@ +@@ -6262,6 +6264,7 @@ s%@LIB_SUFFIX@%$LIB_SUFFIX%g s%@DLL_SUFFIX@%$DLL_SUFFIX%g s%@ASM_SUFFIX@%$ASM_SUFFIX%g @@ -48,8 +48,8 @@ s%@MKSHLIB@%$MKSHLIB%g s%@DSO_CFLAGS@%$DSO_CFLAGS%g s%@DSO_LDOPTS@%$DSO_LDOPTS%g ---- misc/mozilla/nsprpub/pr/src/Makefile.in 2009-02-04 23:47:01.000000000 +0100 -+++ misc/build/mozilla/nsprpub/pr/src/Makefile.in 2009-09-18 17:26:33.544145410 +0200 +--- misc/nss-3.12.6/mozilla/nsprpub/pr/src/Makefile.in 2009-12-19 18:06:07.000000000 +0900 ++++ misc/build/nss-3.12.6/mozilla/nsprpub/pr/src/Makefile.in 2010-06-17 08:42:08.151250000 +0900 @@ -195,7 +195,7 @@ ifeq ($(OS_ARCH),WINNT) @@ -59,8 +59,8 @@ else OS_LIBS = advapi32.lib wsock32.lib winmm.lib endif ---- misc/mozilla/security/coreconf/WIN32.mk 2009-07-29 02:15:46.000000000 +0200 -+++ misc/build/mozilla/security/coreconf/WIN32.mk 2009-09-18 17:27:39.253588269 +0200 +--- misc/nss-3.12.6/mozilla/security/coreconf/WIN32.mk 2009-07-29 09:15:46.000000000 +0900 ++++ misc/build/nss-3.12.6/mozilla/security/coreconf/WIN32.mk 2010-06-17 08:42:08.198125000 +0900 @@ -43,8 +43,8 @@ DEFAULT_COMPILER = cl @@ -72,8 +72,8 @@ LINK = ld AR = ar AR += cr $@ ---- misc/mozilla/security/coreconf/WIN95.mk 2009-02-14 06:51:10.000000000 +0100 -+++ misc/build/mozilla/security/coreconf/WIN95.mk 2009-09-18 17:28:06.433136076 +0200 +--- misc/nss-3.12.6/mozilla/security/coreconf/WIN95.mk 2009-02-14 14:51:10.000000000 +0900 ++++ misc/build/nss-3.12.6/mozilla/security/coreconf/WIN95.mk 2010-06-17 08:42:08.245000000 +0900 @@ -44,4 +44,8 @@ DEFINES += -DWIN95 @@ -85,8 +85,8 @@ + NSPR31_LIB_PREFIX = $(NULL) +endif \ No newline at end of file ---- misc/mozilla/security/coreconf/rules.mk 2009-08-11 05:23:39.000000000 +0200 -+++ misc/build/mozilla/security/coreconf/rules.mk 2009-09-18 17:29:05.079376677 +0200 +--- misc/nss-3.12.6/mozilla/security/coreconf/rules.mk 2009-12-08 10:33:36.000000000 +0900 ++++ misc/build/nss-3.12.6/mozilla/security/coreconf/rules.mk 2010-06-17 08:42:08.291875000 +0900 @@ -281,8 +281,12 @@ fi endif # MSVC with manifest tool @@ -100,8 +100,8 @@ get_objs: @echo $(OBJS) ---- misc/mozilla/security/nss/Makefile 2008-12-03 00:24:39.000000000 +0100 -+++ misc/build/mozilla/security/nss/Makefile 2009-09-18 17:29:46.194949392 +0200 +--- misc/nss-3.12.6/mozilla/security/nss/Makefile 2009-12-09 01:47:03.000000000 +0900 ++++ misc/build/nss-3.12.6/mozilla/security/nss/Makefile 2010-06-17 08:42:08.338750000 +0900 @@ -108,7 +108,7 @@ NSPR_CONFIGURE_OPTS += --enable-debug-rtl endif @@ -111,8 +111,8 @@ endif # ---- misc/mozilla/security/nss/cmd/crmftest/Makefile 2005-11-14 01:17:21.000000000 +0100 -+++ misc/build/mozilla/security/nss/cmd/crmftest/Makefile 2009-09-18 17:30:33.267190024 +0200 +--- misc/nss-3.12.6/mozilla/security/nss/cmd/crmftest/Makefile 2005-11-14 09:17:21.000000000 +0900 ++++ misc/build/nss-3.12.6/mozilla/security/nss/cmd/crmftest/Makefile 2010-06-17 08:42:08.370000000 +0900 @@ -90,7 +90,7 @@ LDDIST = $(DIST)/lib @@ -122,8 +122,8 @@ endif include ../platrules.mk ---- misc/mozilla/security/nss/cmd/shlibsign/Makefile 2009-08-07 21:06:37.000000000 +0200 -+++ misc/build/mozilla/security/nss/cmd/shlibsign/Makefile 2009-09-18 17:31:02.168253398 +0200 +--- misc/nss-3.12.6/mozilla/security/nss/cmd/shlibsign/Makefile 2009-08-08 04:06:37.000000000 +0900 ++++ misc/build/nss-3.12.6/mozilla/security/nss/cmd/shlibsign/Makefile 2010-06-17 08:42:10.000000000 +0900 @@ -115,10 +115,16 @@ $(call core_abspath,$(OBJDIR)) $(OS_TARGET) \ $(call core_abspath,$(NSPR_LIB_DIR)) $(call core_abspath,$<) @@ -141,8 +141,8 @@ libs install :: $(CHECKLOC) ---- misc/mozilla/security/nss/lib/freebl/config.mk 2009-04-11 23:18:42.000000000 +0200 -+++ misc/build/mozilla/security/nss/lib/freebl/config.mk 2009-09-18 17:31:40.067954076 +0200 +--- misc/nss-3.12.6/mozilla/security/nss/lib/freebl/config.mk 2009-04-12 06:18:42.000000000 +0900 ++++ misc/build/nss-3.12.6/mozilla/security/nss/lib/freebl/config.mk 2010-06-17 08:42:08.557500000 +0900 @@ -84,10 +84,6 @@ RES = $(OBJDIR)/$(LIBRARY_NAME).res RESNAME = freebl.rc diff --git a/nss/nss_macosx.patch b/nss/nss_macosx.patch index d6ce6ff4f8d0..5a0228355748 100644 --- a/nss/nss_macosx.patch +++ b/nss/nss_macosx.patch @@ -1,5 +1,5 @@ ---- misc/mozilla/security/nss/Makefile 2008-12-03 00:24:39.000000000 +0100 -+++ misc/build/mozilla/security/nss/Makefile 2009-11-27 13:36:22.662753328 +0100 +--- misc/nss-3.12.6/mozilla/security/nss/Makefile 2008-12-03 00:24:39.000000000 +0100 ++++ misc/build/nss-3.12.6/mozilla/security/nss/Makefile 2009-11-27 13:36:22.662753328 +0100 @@ -104,6 +104,9 @@ ifeq ($(OS_TARGET),WIN95) NSPR_CONFIGURE_OPTS += --enable-win32-target=WIN95 diff --git a/offapi/type_reference/typelibrary_history.txt b/offapi/type_reference/typelibrary_history.txt index 086397e8967e..7dcd438d5517 100644 --- a/offapi/type_reference/typelibrary_history.txt +++ b/offapi/type_reference/typelibrary_history.txt @@ -154,3 +154,7 @@ Update reference type library with the version of OOo 3.2. The new reference type library is taken from the release source tree OOO320 m12. +02/06/10 (JSC): TaskID=i112019 + 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. + diff --git a/offapi/type_reference/types.rdb b/offapi/type_reference/types.rdb Binary files differindex 22b8904052ff..6d9f761331f4 100644 --- a/offapi/type_reference/types.rdb +++ b/offapi/type_reference/types.rdb diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu index ebed194fcffc..70448e5bbf89 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu @@ -1463,9 +1463,6 @@ <prop oor:name="Label" oor:type="xs:string"> <value xml:lang="en-US">Find Text</value> </prop> - <prop oor:name="Properties" oor:type="xs:int"> - <value>1</value> - </prop> </node> <node oor:name=".uno:DownSearch" oor:op="replace"> <prop oor:name="Label" oor:type="xs:string"> @@ -1487,9 +1484,6 @@ <prop oor:name="Label" oor:type="xs:string"> <value xml:lang="en-US">Focus to Findbar</value> </prop> - <prop oor:name="Properties" oor:type="xs:int"> - <value>1</value> - </prop> </node> <node oor:name=".uno:ExtendedHelp" oor:op="replace"> <prop oor:name="Label" oor:type="xs:string"> diff --git a/ooo.lst b/ooo.lst index 0887e5981d4f..0c10e39f8f7c 100644..100755 --- a/ooo.lst +++ b/ooo.lst @@ -1,5 +1,5 @@ http://hg.services.openoffice.org/binaries -05a0ece1372392a2cf310ebb96333025-openssl-0.9.8l.tar.gz +63ddc5116488985e820075e65fbe6aa4-openssl-0.9.8o.tar.gz 09357cc74975b01714e00c5899ea1881-pixman-0.12.0.tar.gz 0b49ede71c21c0599b0cc19b353a6cb3-README_apache-commons.txt 68dd2e8253d9a7930e9fd50e2d7220d0-hunspell-1.2.9.tar.gz @@ -28,7 +28,7 @@ ef9ab6c1740682fbd730606d5f6922e6-liberation-fonts-ttf-1.05.3.20100427.zip 4ea70ea87b47e92d318d4e7f5b940f47-cairo-1.8.0.tar.gz 599dc4cc65a07ee868cf92a667a913d2-xpdf-3.02.tar.gz 5aba06ede2daa9f2c11892fbd7bc3057-libserializer.zip -6244eb0b6e2647ee50470951fa6efb47-nss_3_12_5.tar.gz +b92261a5679276c400555004937af965-nss-3.12.6-with-nspr-4.8.4.tar.gz 67b42915c8432abf0a922438f00860a2-libxml.zip 7740a8ec23878a2f50120e1faa2730f2-libxml2-2.7.6.tar.gz 7376930b0d3f3d77a685d94c4a3acda8-STLport-4.5-0119.tar.gz diff --git a/ooo_custom_images/nologo/framework/res/backing.png b/ooo_custom_images/nologo/framework/res/backing.png Binary files differdeleted file mode 100755 index 017d1dd4a89b..000000000000 --- a/ooo_custom_images/nologo/framework/res/backing.png +++ /dev/null diff --git a/ooo_custom_images/nologo/framework/res/backing_rtl_right.png b/ooo_custom_images/nologo/framework/res/backing_rtl_right.png Binary files differdeleted file mode 100755 index 7dd51e42cf4c..000000000000 --- a/ooo_custom_images/nologo/framework/res/backing_rtl_right.png +++ /dev/null diff --git a/openssl/makefile.mk b/openssl/makefile.mk index 081680781a2c..6fabd1ce6f03 100644 --- a/openssl/makefile.mk +++ b/openssl/makefile.mk @@ -1,7 +1,7 @@ #************************************************************************* # # 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 @@ -46,10 +46,10 @@ TARGET=openssl @echo "openssl disabled...." .ENDIF -OPENSSL_NAME=openssl-0.9.8l +OPENSSL_NAME=openssl-0.9.8o TARFILE_NAME=$(OPENSSL_NAME) -TARFILE_MD5=05a0ece1372392a2cf310ebb96333025 +TARFILE_MD5=63ddc5116488985e820075e65fbe6aa4 CONFIGURE_DIR=. CONFIGURE_ACTION=config @@ -67,8 +67,8 @@ UNAME=$(shell uname) .IF "$(OS)" == "LINUX" || "$(OS)" == "FREEBSD" PATCH_FILES=openssllnx.patch ADDITIONAL_FILES:= \ - libcrypto_OOo_0_9_8l.map \ - libssl_OOo_0_9_8l.map + libcrypto_OOo_0_9_8o.map \ + libssl_OOo_0_9_8o.map .IF "$(CPU)" == "I" .IF "$(UNAME)" == "GNU/kFreeBSD" CONFIGURE_ACTION=Configure debian-kfreebsd-i386 @@ -91,8 +91,8 @@ UNAME=$(shell uname) .IF "$(OS)" == "SOLARIS" PATCH_FILES=opensslsol.patch ADDITIONAL_FILES:= \ - libcrypto_OOo_0_9_8l.map \ - libssl_OOo_0_9_8l.map + libcrypto_OOo_0_9_8o.map \ + libssl_OOo_0_9_8o.map #BUILD_ACTION=make 'SHARED_LDFLAGS=-G -dy -z text -M./lib$$$$$$$$(SHLIBDIRS)_OOo_0_9_8e.map' # Use BUILD64 when 1 to select new specific 64bit Configurations if necessary @@ -141,11 +141,7 @@ OUT2BIN += out/libeay32.dll # The env. vars CC and PERL are used by nmake, and nmake insists on '\'s # If WRAPCMD is set it is prepended before the compiler, don't touch that. .IF "$(WRAPCMD)"=="" - # relace / with \ first word only - cc_first_repl = $(subst,/,\ $(normpath,1 $(CC:1))) - cc_first = $(normpath,1 $(CC:1)) - CC!:=$(subst,$(cc_first),$(cc_first_repl) $(normpath,1 $(CC))) -# CC!:=$(subst,/,\ $(normpath,1 $(CC))) + CC!:=$(subst,/,\ $(normpath,1 $(CC))) .EXPORT : CC .ENDIF PERL_bak:=$(PERL) diff --git a/openssl/openssl.patch b/openssl/openssl.patch index 4b976ae832c4..5d245f450642 100644 --- a/openssl/openssl.patch +++ b/openssl/openssl.patch @@ -1,5 +1,5 @@ ---- misc/openssl-0.9.8l/crypto/x509v3/v3_pci.c 2007-03-05 01:06:47.000000000 +0100 -+++ misc/build/openssl-0.9.8l/crypto/x509v3/v3_pci.c 2008-03-20 13:30:16.000000000 +0100 +--- misc/openssl-0.9.8o/crypto/x509v3/v3_pci.c 2007-03-05 01:06:47.000000000 +0100 ++++ misc/build/openssl-0.9.8o/crypto/x509v3/v3_pci.c 2010-03-26 12:04:20.961547300 +0100 @@ -2,7 +2,7 @@ /* Contributed to the OpenSSL Project 2004 * by Richard Levitte (richard@levitte.org) @@ -9,8 +9,8 @@ * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * ---- misc/openssl-0.9.8l/crypto/x509v3/v3_pcia.c 2004-12-28 01:21:33.000000000 +0100 -+++ misc/build/openssl-0.9.8l/crypto/x509v3/v3_pcia.c 2008-03-20 13:30:47.000000000 +0100 +--- misc/openssl-0.9.8o/crypto/x509v3/v3_pcia.c 2004-12-28 01:21:33.000000000 +0100 ++++ misc/build/openssl-0.9.8o/crypto/x509v3/v3_pcia.c 2010-03-26 12:04:20.961547300 +0100 @@ -2,7 +2,7 @@ /* Contributed to the OpenSSL Project 2004 * by Richard Levitte (richard@levitte.org) @@ -20,28 +20,30 @@ * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * ---- misc/openssl-0.9.8l/ms/do_ms.bat 2005-05-17 02:07:13.000000000 +0200 -+++ misc/build/openssl-0.9.8l/ms/do_ms.bat 2008-03-20 13:27:06.000000000 +0100 -@@ -1,9 +1,8 @@ -+%1 util\mkfiles.pl >MINFO -+%1 util\mk1mf.pl no-asm VC-WIN32 >ms\nt.mak -+%1 util\mk1mf.pl dll no-asm VC-WIN32 >ms\ntdll.mak -+%1 util\mk1mf.pl no-asm VC-CE >ms\ce.mak -+%1 util\mk1mf.pl dll no-asm VC-CE >ms\cedll.mak +--- misc/openssl-0.9.8o/ms/do_ms.bat 2009-07-28 14:51:19.000000000 +0200 ++++ misc/build/openssl-0.9.8o/ms/do_ms.bat 2010-03-26 12:19:19.399047300 +0100 +@@ -1,11 +1,11 @@ -perl util\mkfiles.pl >MINFO -perl util\mk1mf.pl no-asm VC-WIN32 >ms\nt.mak -perl util\mk1mf.pl dll no-asm VC-WIN32 >ms\ntdll.mak ++%1 util\mkfiles.pl >MINFO ++%1 util\mk1mf.pl no-asm VC-WIN32 >ms\nt.mak ++%1 util\mk1mf.pl dll no-asm VC-WIN32 >ms\ntdll.mak + if x%OSVERSION% == x goto skipce -perl util\mk1mf.pl no-asm VC-CE >ms\ce.mak -perl util\mk1mf.pl dll no-asm VC-CE >ms\cedll.mak -- ++%1 util\mk1mf.pl no-asm VC-CE >ms\ce.mak ++%1 util\mk1mf.pl dll no-asm VC-CE >ms\cedll.mak + :skipce + -perl util\mkdef.pl 32 libeay > ms\libeay32.def -perl util\mkdef.pl 32 ssleay > ms\ssleay32.def +%1 util\mkdef.pl 32 libeay > ms\libeay32.def +%1 util\mkdef.pl 32 ssleay > ms\ssleay32.def ---- misc/openssl-0.9.8l/util/mk1mf.pl 2007-08-13 00:31:14.000000000 +0200 -+++ misc/build/openssl-0.9.8l/util/mk1mf.pl 2008-03-20 13:27:06.000000000 +0100 -@@ -115,7 +115,7 @@ +--- misc/openssl-0.9.8o/util/mk1mf.pl 2009-09-20 14:46:42.000000000 +0200 ++++ misc/build/openssl-0.9.8o/util/mk1mf.pl 2010-03-26 12:04:20.977172300 +0100 +@@ -128,7 +128,7 @@ $inc_def="outinc"; $tmp_def="tmp"; @@ -50,19 +52,19 @@ $mkdir="-mkdir" unless defined $mkdir; ($ssl,$crypto)=("ssl","crypto"); -@@ -277,6 +277,11 @@ - chop; - - ($key,$val)=/^([^=]+)=(.*)/; +@@ -290,6 +290,11 @@ + chop; + + ($key,$val)=/^([^=]+)=(.*)/; + + # On some Windows machines, $val has linefeeds at the end, which confuses + # subsequent code in this file. So we strip all whitespace at the end. + $val =~ s/\s+$//; + - if ($key eq "RELATIVE_DIRECTORY") - { - if ($lib ne "") -@@ -570,7 +575,7 @@ + if ($key eq "RELATIVE_DIRECTORY") + { + if ($lib ne "") +@@ -730,7 +735,7 @@ printf OUT <<EOF; #ifdef $platform_cpp_symbol /* auto-generated/updated by util/mk1mf.pl for crypto/cversion.c */ @@ -71,10 +73,10 @@ #define PLATFORM "$platform" EOF printf OUT " #define DATE \"%s\"\n", scalar gmtime(); ---- misc/openssl-0.9.8l/util/pl/VC-32.pl 2007-07-19 19:39:07.000000000 +0200 -+++ misc/build/openssl-0.9.8l/util/pl/VC-32.pl 2008-03-20 13:27:06.000000000 +0100 -@@ -28,7 +28,7 @@ - $zlib_lib="zlib1.lib"; +--- misc/openssl-0.9.8o/util/pl/VC-32.pl 2010-02-04 02:10:24.000000000 +0100 ++++ misc/build/openssl-0.9.8o/util/pl/VC-32.pl 2010-03-26 12:04:20.977172300 +0100 +@@ -32,7 +32,7 @@ + $l_flags =~ s/-L(\S+)/\/libpath:$1/g; # C compiler stuff -$cc='cl'; @@ -82,7 +84,7 @@ if ($FLAVOR =~ /WIN64/) { # Note that we currently don't have /WX on Win64! There is a lot of -@@ -99,21 +99,21 @@ +@@ -103,21 +103,21 @@ } $cc='$(CC)'; @@ -102,17 +104,17 @@ $base_cflags.=' -D_CRT_SECURE_NO_DEPRECATE'; # shut up VC8 $base_cflags.=' -D_CRT_NONSTDC_NO_DEPRECATE'; # shut up VC8 - my $f = $shlib || $fips ?' /MD':' /MT'; -+ my $f = $shlib || $fips ?' -MD':' -MT'; - $lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib -+ $lib_cflag='-Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib - $opt_cflags=$f.' /Ox /O2 /Ob2'; - $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG'; ++ my $f = $shlib || $fips ?' -MD':' -MT'; ++ $lib_cflag='-Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib + $opt_cflags=$f.' -Ox -O2 -Ob2'; + $dbg_cflags=$f.'d -Od -DDEBUG -D_DEBUG'; $lflags="/nologo /subsystem:console /opt:ref"; } $mlflags=''; -@@ -134,7 +134,7 @@ +@@ -138,7 +138,7 @@ } $obj='.obj'; @@ -121,7 +123,7 @@ # EXE linking stuff $link="link"; -@@ -281,7 +281,7 @@ +@@ -298,7 +298,7 @@ $tmp_def='tmp32dll_$(TARGETCPU)'; } diff --git a/openssl/openssllnx.patch b/openssl/openssllnx.patch index 7f26b997bd1c..abd10061ff5c 100644 --- a/openssl/openssllnx.patch +++ b/openssl/openssllnx.patch @@ -1,6 +1,6 @@ ---- misc/build/openssl-0.9.8l/Configure-old 2010-04-17 13:51:42.000000000 +0200 -+++ misc/build/openssl-0.9.8l/Configure 2010-04-17 13:52:03.000000000 +0200 -@@ -382,6 +382,9 @@ +--- misc/build/openssl-0.9.8o/Configure-old 2010-04-17 13:51:42.000000000 +0200 ++++ misc/build/openssl-0.9.8o/Configure 2010-04-17 13:52:03.000000000 +0200 +@@ -388,6 +388,9 @@ "bsdi-elf-gcc", "gcc:-DPERL5 -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall::(unknown)::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", @@ -10,43 +10,12 @@ "nextstep", "cc:-O -Wall:<libc.h>:(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::", "nextstep3.3", "cc:-O3 -Wall:<libc.h>:(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::", ---- misc/openssl-0.9.8l/test/Makefile 2009-03-25 11:59:22.000000000 +0100 -+++ misc/build/openssl-0.9.8l/test/Makefile 2009-03-30 12:51:00.210108929 +0200 -@@ -408,7 +408,7 @@ - LIBRARIES="$(LIBCRYPTO)"; \ - fi; \ - $(MAKE) -f $(TOP)/Makefile.shared -e \ -- CC=$${CC} APPNAME=$$target$(EXE_EXT) OBJECTS="$$target.o" \ -+ CC="$${CC}" APPNAME=$$target$(EXE_EXT) OBJECTS="$$target.o" \ - LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \ - link_app.$${shlib_target} - -@@ -421,7 +421,7 @@ - fi; \ - [ "$(FIPSCANLIB)" = "libfips" ] && LIBRARIES="$$LIBRARIES -lfips"; \ - $(MAKE) -f $(TOP)/Makefile.shared -e \ -- CC=$${CC} APPNAME=$$target$(EXE_EXT) OBJECTS="$$target.o" \ -+ CC="$${CC}" APPNAME=$$target$(EXE_EXT) OBJECTS="$$target.o" \ - LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \ - link_app.$${shlib_target} - ---- misc/openssl-0.9.8l/apps/Makefile 2008-11-19 17:03:48.000000000 +0100 -+++ misc/build/openssl-0.9.8l/apps/Makefile 2009-03-30 12:50:56.332719825 +0200 -@@ -158,7 +158,7 @@ - LIBRARIES="$(LIBSSL) $(LIBKRB5) $(LIBCRYPTO)" ; \ - [ "x$(FIPSCANLIB)" = "xlibfips" ] && LIBRARIES="$$LIBRARIES -lfips"; \ - $(MAKE) -f $(TOP)/Makefile.shared -e \ -- CC=$${CC} APPNAME=$(EXE) OBJECTS="$(PROGRAM).o $(E_OBJ)" \ -+ CC="$${CC}" APPNAME=$(EXE) OBJECTS="$(PROGRAM).o $(E_OBJ)" \ - LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \ - link_app.$${shlib_target} - -(cd ..; \ ---- misc/openssl-0.9.8l/config 2009-02-16 09:43:41.000000000 +0100 -+++ misc/build/openssl-0.9.8l/config 2009-03-30 08:59:09.588448000 +0200 +--- misc/openssl-0.9.8o/config 2009-02-16 09:43:41.000000000 +0100 ++++ misc/build/openssl-0.9.8o/config 2009-03-30 08:59:09.588448000 +0200 @@ -399,27 +399,21 @@ # this is where the translation occurs into SSLeay terms # --------------------------------------------------------------------------- - + -GCCVER=`(gcc -dumpversion) 2>/dev/null` -if [ "$GCCVER" != "" ]; then - # then strip off whatever prefix egcs prepends the number with... @@ -85,12 +54,12 @@ + fi fi GCCVER=${GCCVER:-0} - if [ "$SYSTEM" = "HP-UX" ];then ---- misc/openssl-0.9.8l/libcrypto_OOo_0_9_8l.map Tue Jan 27 19:52:14 2009 -+++ misc/build/openssl-0.9.8l/libcrypto_OOo_0_9_8l.map Tue Jan 27 19:51:04 2009 -@@ -1,1 +1,3295 @@ + if [ "$SYSTEM" = "HP-UX" ];then +--- misc/openssl-0.9.8o/libcrypto_OOo_0_9_8o.map 2010-03-26 15:26:55.958495757 +0100 ++++ misc/build/openssl-0.9.8o/libcrypto_OOo_0_9_8o.map 2010-03-26 15:31:38.019501422 +0100 +@@ -1 +1,3295 @@ -dummy -+LIBCRYPTO_OOO_0_9_8l { ++LIBCRYPTO_OOO_0_9_8o { + global: +ACCESS_DESCRIPTION_free; +ACCESS_DESCRIPTION_it; @@ -1409,7 +1378,7 @@ +KRB5_TKTBODY_free; +KRB5_TKTBODY_it; +KRB5_TKTBODY_new; -+LIBCRYPTO_OOO_0_9_8l; ++LIBCRYPTO_OOO_0_9_8o; +LONG_it; +MD2; +MD2_Final; @@ -3385,11 +3354,11 @@ + local: + *; +}; ---- misc/openssl-0.9.8l/libssl_OOo_0_9_8l.map Tue Jan 27 19:52:14 2009 -+++ misc/build/openssl-0.9.8l/libssl_OOo_0_9_8l.map Tue Jan 27 19:51:04 2009 -@@ -1,1 +1,445 @@ +--- misc/openssl-0.9.8o/libssl_OOo_0_9_8o.map 2010-03-26 15:26:55.966057991 +0100 ++++ misc/build/openssl-0.9.8o/libssl_OOo_0_9_8o.map 2010-03-26 15:31:58.552966503 +0100 +@@ -1 +1,445 @@ -dummy -+LIBSSL_OOO_0_9_8l { ++LIBSSL_OOO_0_9_8o { + global: +BIO_f_ssl; +BIO_new_buffer_ssl_connect; @@ -3402,7 +3371,7 @@ +DTLSv1_method; +DTLSv1_server_method; +ERR_load_SSL_strings; -+LIBSSL_OOO_0_9_8l; ++LIBSSL_OOO_0_9_8o; +SSL_CIPHER_description; +SSL_CIPHER_get_bits; +SSL_CIPHER_get_name; diff --git a/openssl/opensslmacosx.patch b/openssl/opensslmacosx.patch index fb6bf48dd91d..4c998533fa2a 100644 --- a/openssl/opensslmacosx.patch +++ b/openssl/opensslmacosx.patch @@ -1,7 +1,7 @@ ---- misc/build/openssl-0.9.8l/libcrypto_OOo_0_9_8l.map 1970-01-01 01:00:00.000000000 +0100 -+++ misc/build/openssl-0.9.8l/libcrypto_OOo_0_9_8l.map 2007-10-16 15:44:13.000000000 +0200 -@@ -0,0 +1,3303 @@ -+LIBCRYPTO_OOO_0_9_8l{ +--- misc/build/openssl-0.9.8o/libcrypto_OOo_0_9_8o.map 1970-01-01 01:00:00.000000000 +0100 ++++ misc/build/openssl-0.9.8o/libcrypto_OOo_0_9_8o.map 2007-10-16 15:44:13.000000000 +0200 +@@ -0,1 +1,3304 @@ ++LIBCRYPTO_OOO_0_9_8o{ + global: +ACCESS_DESCRIPTION_free; +ACCESS_DESCRIPTION_it; @@ -3304,10 +3304,10 @@ + local: + *; +}; ---- misc/build/openssl-0.9.8l/libssl_OOo_0_9_8l.map 1970-01-01 01:00:00.000000000 +0100 -+++ misc/build/openssl-0.9.8l/libssl_OOo_0_9_8l.map 2007-10-16 15:44:13.000000000 +0200 +--- misc/build/openssl-0.9.8o/libssl_OOo_0_9_8o.map 1970-01-01 01:00:00.000000000 +0100 ++++ misc/build/openssl-0.9.8o/libssl_OOo_0_9_8o.map 2007-10-16 15:44:13.000000000 +0200 @@ -0,0 +1,442 @@ -+LIBSSL_OOO_0_9_8l{ ++LIBSSL_OOO_0_9_8o{ + global: +BIO_f_ssl; +BIO_new_buffer_ssl_connect; diff --git a/openssl/opensslmingw.patch b/openssl/opensslmingw.patch index 144376388c59..10b48531190d 100755 --- a/openssl/opensslmingw.patch +++ b/openssl/opensslmingw.patch @@ -1,5 +1,5 @@ ---- misc/openssl-0.9.8l/Makefile.shared 2008-09-17 17:56:40.000000000 +0200 -+++ misc/build/openssl-0.9.8l/Makefile.shared 2009-03-30 11:52:53.684538000 +0200 +--- misc/openssl-0.9.8o/Makefile.shared 2008-09-17 17:56:40.000000000 +0200 ++++ misc/build/openssl-0.9.8o/Makefile.shared 2009-03-30 11:52:53.684538000 +0200 @@ -254,13 +254,17 @@ base=-Wl,--enable-auto-image-base; \ if expr $(PLATFORM) : 'mingw' > /dev/null; then \ @@ -21,25 +21,8 @@ [ -f apps/$$SHLIB$$SHLIB_SUFFIX ] && rm apps/$$SHLIB$$SHLIB_SUFFIX; \ [ -f test/$$SHLIB$$SHLIB_SUFFIX ] && rm test/$$SHLIB$$SHLIB_SUFFIX; \ $(LINK_SO_A) || exit 1; \ ---- misc/openssl-0.9.8l/apps/Makefile 2008-11-20 01:03:48.000000000 +0900 -+++ misc/build/openssl-0.9.8l/apps/Makefile 2009-04-10 19:49:37.006875000 +0900 -@@ -153,12 +153,12 @@ - shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \ - shlib_target="$(SHLIB_TARGET)"; \ - elif [ -n "$(FIPSCANLIB)" ]; then \ -- FIPSLD_CC=$(CC); CC=$(TOP)/fips/fipsld; export CC FIPSLD_CC; \ -+ FIPSLD_CC="$(CC)"; CC=$(TOP)/fips/fipsld; export CC FIPSLD_CC; \ - fi; \ - LIBRARIES="$(LIBSSL) $(LIBKRB5) $(LIBCRYPTO)" ; \ - [ "x$(FIPSCANLIB)" = "xlibfips" ] && LIBRARIES="$$LIBRARIES -lfips"; \ - $(MAKE) -f $(TOP)/Makefile.shared -e \ -- CC=$${CC} APPNAME=$(EXE) OBJECTS="$(PROGRAM).o $(E_OBJ)" \ -+ CC="$${CC}" APPNAME=$(EXE) OBJECTS="$(PROGRAM).o $(E_OBJ)" \ - LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \ - link_app.$${shlib_target} - -(cd ..; \ ---- misc/openssl-0.9.8l/e_os2.h 2005-12-19 03:57:07.000000000 +0900 -+++ misc/build/openssl-0.9.8l/e_os2.h 2009-04-04 23:07:15.324250000 +0900 +--- misc/openssl-0.9.8o/e_os2.h 2005-12-19 03:57:07.000000000 +0900 ++++ misc/build/openssl-0.9.8o/e_os2.h 2009-04-04 23:07:15.324250000 +0900 @@ -264,7 +264,7 @@ # define OPENSSL_IMPLEMENT_GLOBAL(type,name) \ extern type _hide_##name; \ @@ -49,8 +32,8 @@ # define OPENSSL_DECLARE_GLOBAL(type,name) type *_shadow_##name(void) # define OPENSSL_GLOBAL_REF(name) (*(_shadow_##name())) #else ---- misc/openssl-0.9.8l/ms/mingw32.bat 2006-05-05 15:19:32.000000000 +0200 -+++ misc/build/openssl-0.9.8l/ms/mingw32.bat 2009-03-30 11:54:10.000000000 +0200 +--- misc/openssl-0.9.8o/ms/mingw32.bat 2006-05-05 15:19:32.000000000 +0200 ++++ misc/build/openssl-0.9.8o/ms/mingw32.bat 2009-03-30 11:54:10.000000000 +0200 @@ -79,15 +79,41 @@ rem copy ms\tlhelp32.h outinc @@ -96,40 +79,8 @@ echo Done compiling OpenSSL :end ---- misc/openssl-0.9.8l/test/Makefile 2009-03-25 19:59:22.000000000 +0900 -+++ misc/build/openssl-0.9.8l/test/Makefile 2009-04-10 20:07:21.522500000 +0900 -@@ -402,13 +402,13 @@ - if [ "$(FIPSCANLIB)" = "libfips" ]; then \ - LIBRARIES="-L$(TOP) -lfips"; \ - elif [ -n "$(FIPSCANLIB)" ]; then \ -- FIPSLD_CC=$(CC); CC=$(TOP)/fips/fipsld; export CC FIPSLD_CC; \ -+ FIPSLD_CC="$(CC)"; CC=$(TOP)/fips/fipsld; export CC FIPSLD_CC; \ - LIBRARIES="$${FIPSLIBDIR:-$(TOP)/fips/}fipscanister.o"; \ - else \ - LIBRARIES="$(LIBCRYPTO)"; \ - fi; \ - $(MAKE) -f $(TOP)/Makefile.shared -e \ -- CC=$${CC} APPNAME=$$target$(EXE_EXT) OBJECTS="$$target.o" \ -+ CC="$${CC}" APPNAME=$$target$(EXE_EXT) OBJECTS="$$target.o" \ - LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \ - link_app.$${shlib_target} - -@@ -417,11 +417,11 @@ - fi; \ - LIBRARIES="$(LIBSSL) $(LIBCRYPTO) $(LIBKRB5)"; \ - if [ -z "$(SHARED_LIBS)" -a -n "$(FIPSCANLIB)" ] ; then \ -- FIPSLD_CC=$(CC); CC=$(TOP)/fips/fipsld; export CC FIPSLD_CC; \ -+ FIPSLD_CC="$(CC)"; CC=$(TOP)/fips/fipsld; export CC FIPSLD_CC; \ - fi; \ - [ "$(FIPSCANLIB)" = "libfips" ] && LIBRARIES="$$LIBRARIES -lfips"; \ - $(MAKE) -f $(TOP)/Makefile.shared -e \ -- CC=$${CC} APPNAME=$$target$(EXE_EXT) OBJECTS="$$target.o" \ -+ CC="$${CC}" APPNAME=$$target$(EXE_EXT) OBJECTS="$$target.o" \ - LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \ - link_app.$${shlib_target} - ---- misc/openssl-0.9.8l/util/pl/Mingw32.pl 2006-05-05 15:19:34.000000000 +0200 -+++ misc/build/openssl-0.9.8l/util/pl/Mingw32.pl 2009-03-30 11:55:04.000000000 +0200 +--- misc/openssl-0.9.8o/util/pl/Mingw32.pl 2006-05-05 15:19:34.000000000 +0200 ++++ misc/build/openssl-0.9.8o/util/pl/Mingw32.pl 2009-03-30 11:55:04.000000000 +0200 @@ -6,11 +6,11 @@ $o='/'; $cp='cp'; diff --git a/openssl/opensslsol.patch b/openssl/opensslsol.patch index 5ca83a1d6aae..cd2d93a12f53 100644 --- a/openssl/opensslsol.patch +++ b/openssl/opensslsol.patch @@ -1,18 +1,18 @@ ---- misc/openssl-0.9.8l/Configure Mon Feb 16 09:44:22 2009 -+++ misc/build/openssl-0.9.8l/Configure Mon Mar 30 08:17:56 2009 -@@ -206,8 +206,8 @@ - "solaris64-x86_64-gcc","gcc:-m64 -O3 -Wall -DL_ENDIAN -DMD32_REG_T=int::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-fPIC:-m64 -shared -static-libgcc:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - +--- misc/openssl-0.9.8o/Configure Mon Nov 9 15:14:26 2009 ++++ misc/build/openssl-0.9.8o/Configure Fri Mar 26 16:01:32 2010 +@@ -212,8 +212,8 @@ + "solaris64-x86_64-gcc","gcc:-m64 -O3 -Wall -DL_ENDIAN -DMD32_REG_T=int::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-fPIC:-m64 -shared -static-libgcc:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", + #### Solaris x86 with Sun C setups -"solaris-x86-cc","cc:-fast -O -Xa::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", --"solaris64-x86_64-cc","cc:-fast -xarch=amd64 -xstrconst -Xa -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-KPIC:-xarch=amd64 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-"solaris64-x86_64-cc","cc:-fast -xarch=amd64 -xstrconst -Xa -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-KPIC:-xarch=amd64 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"solaris-x86-cc","cc:-O -Xa::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"solaris64-x86_64-cc","cc:-xarch=amd64 -xstrconst -Xa -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-KPIC:-xarch=amd64 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - + #### SPARC Solaris with GNU C setups "solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ----- misc/openssl-0.9.8l/Makefile.shared Wed Sep 17 17:56:40 2008 -+++ misc/build/openssl-0.9.8l/Makefile.shared Mon Mar 30 08:19:42 2009 +--- misc/openssl-0.9.8o/Makefile.shared Wed Sep 17 17:56:40 2008 ++++ misc/build/openssl-0.9.8o/Makefile.shared Fri Mar 26 16:04:41 2010 @@ -93,7 +93,7 @@ LDCMD="$${LDCMD:-$(CC)}"; LDFLAGS="$${LDFLAGS:-$(CFLAGS)}"; \ LIBPATH=`for x in $$LIBDEPS; do if echo $$x | grep '^ *-L' > /dev/null 2>&1; then echo $$x | sed -e 's/^ *-L//'; fi; done | uniq`; \ @@ -20,7 +20,7 @@ - LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ + LD_LIBRARY_PATH=$$LD_LIBRARY_PATH \ $${LDCMD} $${LDFLAGS} -o $${APPNAME:=$(APPNAME)} $(OBJECTS) $${LIBDEPS} ) - + LINK_SO= \ @@ -103,7 +103,7 @@ SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ @@ -31,12 +31,12 @@ $${SHAREDCMD} $${SHAREDFLAGS} \ -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \ $$ALLSYMSFLAGS $$SHOBJECTS $$NOALLSYMSFLAGS $$LIBDEPS \ ----- misc/openssl-0.9.8l/config Mon Feb 16 09:43:41 2009 -+++ misc/build/openssl-0.9.8l/config Mon Mar 30 08:22:05 2009 +--- misc/openssl-0.9.8o/config Tue Mar 9 18:08:24 2010 ++++ misc/build/openssl-0.9.8o/config Fri Mar 26 16:07:55 2010 @@ -399,28 +399,25 @@ # this is where the translation occurs into SSLeay terms # --------------------------------------------------------------------------- - + -GCCVER=`(gcc -dumpversion) 2>/dev/null` -if [ "$GCCVER" != "" ]; then - # then strip off whatever prefix egcs prepends the number with... @@ -47,16 +47,10 @@ - # major and minor version numbers. - # peak single digit before and after first dot, e.g. 2.95.1 gives 29 - GCCVER=`echo $GCCVER | sed 's/\([0-9]\)\.\([0-9]\).*/\1\2/'` --fi -- --# Only set CC if not supplied already --if [ -z "$CC" ]; then --# figure out if gcc is available and if so we use it otherwise --# we fallback to whatever cc does on the system +if [ -z "$CC" ];then + GCCVER=`(gcc -dumpversion) 2>/dev/null` - if [ "$GCCVER" != "" ]; then - CC=gcc ++ if [ "$GCCVER" != "" ]; then ++ CC=gcc + # then strip off whatever prefix egcs prepends the number with... + # Hopefully, this will work for any future prefixes as well. + GCCVER=`echo $GCCVER | LC_ALL=C sed 's/^[a-zA-Z]*\-//'` @@ -65,21 +59,31 @@ + # major and minor version numbers. + # peak single digit before and after first dot, e.g. 2.95.1 gives 29 + GCCVER=`echo $GCCVER | sed 's/\([0-9]\)\.\([0-9]\).*/\1\2/'` - else - CC=cc - fi ++ else ++ CC=cc ++ fi +else + CC=`echo $CC | sed 's/^[^ ]*\/\(..\).*/\1/'` fi -+ + +-# Only set CC if not supplied already +-if [ -z "$CC" ]; then +-# figure out if gcc is available and if so we use it otherwise +-# we fallback to whatever cc does on the system +- if [ "$GCCVER" != "" ]; then +- CC=gcc +- else +- CC=cc +- fi +-fi GCCVER=${GCCVER:-0} if [ "$SYSTEM" = "HP-UX" ];then - # By default gcc is a ILP32 compiler (with long long == 64). ---- misc/openssl-0.9.8l/libcrypto_OOo_0_9_8l.map Tue Jan 27 19:52:14 2009 -+++ misc/build/openssl-0.9.8l/libcrypto_OOo_0_9_8l.map Tue Jan 27 19:51:04 2009 -@@ -1,1 +1,3295 @@ + # By default gcc is a ILP32 compiler (with long long == 64). +--- misc/openssl-0.9.8o/libcrypto_OOo_0_9_8o.map Fri Mar 26 16:13:54 2010 ++++ misc/build/openssl-0.9.8o/libcrypto_OOo_0_9_8o.map Fri Mar 26 16:10:09 2010 +@@ -1,1 +1,3296 @@ -dummy -+LIBCRYPTO_OOO_0_9_8l { ++LIBCRYPTO_OOO_0_9_8o { + global: +ACCESS_DESCRIPTION_free; +ACCESS_DESCRIPTION_it; @@ -1398,7 +1402,7 @@ +KRB5_TKTBODY_free; +KRB5_TKTBODY_it; +KRB5_TKTBODY_new; -+LIBCRYPTO_OOO_0_9_8l; ++LIBCRYPTO_OOO_0_9_8o; +LONG_it; +MD2; +MD2_Final; @@ -3374,11 +3378,12 @@ + local: + *; +}; ---- misc/openssl-0.9.8l/libssl_OOo_0_9_8l.map Tue Jan 27 19:52:14 2009 -+++ misc/build/openssl-0.9.8l/libssl_OOo_0_9_8l.map Tue Jan 27 19:51:04 2009 -@@ -1,1 +1,445 @@ ++ +--- misc/openssl-0.9.8o/libssl_OOo_0_9_8o.map Fri Mar 26 16:13:54 2010 ++++ misc/build/openssl-0.9.8o/libssl_OOo_0_9_8o.map Fri Mar 26 16:11:27 2010 +@@ -1,1 +1,446 @@ -dummy -+LIBSSL_OOO_0_9_8l { ++LIBSSL_OOO_0_9_8o { + global: +BIO_f_ssl; +BIO_new_buffer_ssl_connect; @@ -3391,7 +3396,7 @@ +DTLSv1_method; +DTLSv1_server_method; +ERR_load_SSL_strings; -+LIBSSL_OOO_0_9_8l; ++LIBSSL_OOO_0_9_8o; +SSL_CIPHER_description; +SSL_CIPHER_get_bits; +SSL_CIPHER_get_name; @@ -3823,3 +3828,4 @@ + *; +}; + ++ diff --git a/openssl/version.mk b/openssl/version.mk index 6eb8862cd883..613f65a3d59a 100644 --- a/openssl/version.mk +++ b/openssl/version.mk @@ -1,7 +1,7 @@ #************************************************************************* # # 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 @@ -26,8 +26,8 @@ #************************************************************************* -OPENSSL_VERSION=0.9.8g +OPENSSL_VERSION=0.9.8o .IF "$(OS)" == "SOLARIS" -OPENSSL_NAME=openssl-0.9.8l +OPENSSL_NAME=openssl-0.9.8o .ENDIF
\ No newline at end of file diff --git a/sal/rtl/source/makefile.mk b/sal/rtl/source/makefile.mk index 82b9394ee90c..9968d8992be4 100644 --- a/sal/rtl/source/makefile.mk +++ b/sal/rtl/source/makefile.mk @@ -46,7 +46,7 @@ TARGETTYPE=CUI .INCLUDE : settings.mk -.IF "$(ALLOC)" == "SYS_ALLOC" || "$(ALLOC)" == "TCMALLOC" +.IF "$(ALLOC)" == "SYS_ALLOC" || "$(ALLOC)" == "TCMALLOC" || "$(ALLOC)" == "JEMALLOC" CDEFS+= -DFORCE_SYSALLOC .ENDIF diff --git a/sc/source/ui/cctrl/dpcontrol.cxx b/sc/source/ui/cctrl/dpcontrol.cxx index 52aae575b7d7..6e7cfed9d95c 100644 --- a/sc/source/ui/cctrl/dpcontrol.cxx +++ b/sc/source/ui/cctrl/dpcontrol.cxx @@ -392,7 +392,7 @@ void ScMenuFloatingWindow::Paint(const Rectangle& /*rRect*/) { SetClipRegion(); bNativeDrawn = DrawNativeControl( - CTRL_MENU_POPUP, PART_ENTIRE_CONTROL, Region(aCtrlRect), CTRL_STATE_ENABLED, + CTRL_MENU_POPUP, PART_ENTIRE_CONTROL, aCtrlRect, CTRL_STATE_ENABLED, ImplControlValue(), OUString()); } else @@ -755,7 +755,7 @@ void ScMenuFloatingWindow::highlightMenuItem(size_t nPos, bool bSelected) Point aPos; Size aSize; getMenuItemPosSize(nPos, aPos, aSize); - Region aRegion(Rectangle(aPos,aSize)); + Rectangle aRegion(aPos,aSize); if (IsNativeControlSupported(CTRL_MENU_POPUP, PART_ENTIRE_CONTROL)) { @@ -763,7 +763,7 @@ void ScMenuFloatingWindow::highlightMenuItem(size_t nPos, bool bSelected) IntersectClipRegion(Rectangle(aPos, aSize)); Rectangle aCtrlRect(Point(0,0), GetOutputSizePixel()); DrawNativeControl( - CTRL_MENU_POPUP, PART_ENTIRE_CONTROL, Region(aCtrlRect), CTRL_STATE_ENABLED, + CTRL_MENU_POPUP, PART_ENTIRE_CONTROL, aCtrlRect, CTRL_STATE_ENABLED, ImplControlValue(), OUString()); Pop(); diff --git a/scp2/source/ooo/common_brand.scp b/scp2/source/ooo/common_brand.scp index f505a886cba8..a7c1f2826381 100644 --- a/scp2/source/ooo/common_brand.scp +++ b/scp2/source/ooo/common_brand.scp @@ -85,7 +85,7 @@ Module gid_Module_Root_Brand gid_Brand_File_Lib_Npsoplugin, gid_Brand_File_Lib_Subscrib_C05, gid_Brand_File_Share_Registry_Brand_Xcd, - gid_Brand_File_Share_Registry_O5oo_Xcd + gid_Brand_File_Share_Registry_O5oo_Xcd, gid_Brand_File_Script_Unopkg, gid_Brand_File_Share_Xdg_Base, gid_Brand_File_Share_Xdg_Calc, diff --git a/scp2/source/ooo/file_font_ooo.scp b/scp2/source/ooo/file_font_ooo.scp index 8ad8526d9ef6..10e2dca219fb 100644 --- a/scp2/source/ooo/file_font_ooo.scp +++ b/scp2/source/ooo/file_font_ooo.scp @@ -142,7 +142,7 @@ STD_FONT_FILE( gid_File_Fnt_GentiumBookBasicBoldItalic, GenBkBasBI.ttf, Gentium File gid_File_FcLocal_Conf Dir = gid_Dir_Fonts_Truetype; USER_FILE_BODY; -# Styles = (); +// Styles = (); Name = "fc_local.conf"; End #endif diff --git a/scp2/source/ooo/module_ooo.scp b/scp2/source/ooo/module_ooo.scp index 5b1de3897f77..dcd29c2ed31d 100644 --- a/scp2/source/ooo/module_ooo.scp +++ b/scp2/source/ooo/module_ooo.scp @@ -51,9 +51,8 @@ Module gid_Module_Optional End Module gid_Module_Dictionaries - ParentID = gid_Module_Root; - XPDParentID = "root"; - Sortkey = "300"; + ParentID = gid_Module_Optional; + Sortkey = "215"; MOD_NAME_DESC ( MODULE_DICTIONARIES ); End diff --git a/sd/source/core/sdpage.cxx b/sd/source/core/sdpage.cxx index 76450cf76760..82a841a199c8 100755 --- a/sd/source/core/sdpage.cxx +++ b/sd/source/core/sdpage.cxx @@ -2105,7 +2105,7 @@ void SdPage::ScaleObjects(const Size& rNewPageSize, const Rectangle& rNewBorderR } } -SdrObject* convertPresentationObjectImpl( SdPage& rPage, SdrObject* pSourceObj, PresObjKind eObjKind, bool bVertical, Rectangle aRect ) +SdrObject* convertPresentationObjectImpl( SdPage& rPage, SdrObject* pSourceObj, PresObjKind& eObjKind, bool bVertical, Rectangle aRect ) { SdDrawDocument* pModel = static_cast< SdDrawDocument* >( rPage.GetModel() ); DBG_ASSERT( pModel, "sd::convertPresentationObjectImpl(), no model on page!" ); @@ -2220,6 +2220,16 @@ SdrObject* convertPresentationObjectImpl( SdPage& rPage, SdrObject* pSourceObj, SdrObject::Free( pSourceObj ); } } + else if((eObjKind == PRESOBJ_OUTLINE) && (pSourceObj->GetObjIdentifier() != OBJ_OUTLINETEXT) ) + { + switch( pSourceObj->GetObjIdentifier() ) + { + case OBJ_TABLE: eObjKind = PRESOBJ_TABLE; break; + case OBJ_MEDIA: eObjKind = PRESOBJ_MEDIA; break; + case OBJ_GRAF: eObjKind = PRESOBJ_GRAPHIC; break; + case OBJ_OLE2: eObjKind = PRESOBJ_OBJECT; break; + } + } return pNewObj; } diff --git a/sd/source/ui/unoidl/unopage.cxx b/sd/source/ui/unoidl/unopage.cxx index 379344667a0c..fb356087245a 100755 --- a/sd/source/ui/unoidl/unopage.cxx +++ b/sd/source/ui/unoidl/unopage.cxx @@ -382,6 +382,7 @@ SdGenericDrawPage::SdGenericDrawPage( SdXImpressDocument* _pModel, SdPage* pInPa SdUnoSearchReplaceShape(this), mpModel ( _pModel ), mpSdrModel(0), + mnTempPageNumber(0), mpPropSet ( _pSet ), mbIsImpressDocument(false) { @@ -924,9 +925,18 @@ void SAL_CALL SdGenericDrawPage::setPropertyValue( const OUString& aPropertyName break; } + case WID_PAGE_NUMBER: + if( (GetPage()->GetPageKind() == PK_HANDOUT) && !GetPage()->IsMasterPage() ) + { + if( !(aValue >>= mnTempPageNumber) ) + throw lang::IllegalArgumentException(); + + break; + } + throw beans::PropertyVetoException(); + case WID_PAGE_LDBITMAP: case WID_PAGE_LDNAME: - case WID_PAGE_NUMBER: case WID_PAGE_ISDARK: throw beans::PropertyVetoException(); @@ -1053,9 +1063,7 @@ Any SAL_CALL SdGenericDrawPage::getPropertyValue( const OUString& PropertyName ) } else { - // for pages with number 0 (Handout Master, Handout page) - // return 0 - aAny <<= (sal_Int16)0; + aAny <<= mnTempPageNumber; } } break; diff --git a/sd/source/ui/unoidl/unopage.hxx b/sd/source/ui/unoidl/unopage.hxx index 5d525b0f0f04..e3fda70c0f11 100755 --- a/sd/source/ui/unoidl/unopage.hxx +++ b/sd/source/ui/unoidl/unopage.hxx @@ -74,6 +74,7 @@ class SdGenericDrawPage : public SvxFmDrawPage, private: SdXImpressDocument* mpModel; SdrModel* mpSdrModel; + sal_Int16 mnTempPageNumber; // for printing handouts protected: friend class SdXImpressDocument; diff --git a/sd/source/ui/view/DocumentRenderer.cxx b/sd/source/ui/view/DocumentRenderer.cxx index 0689dc0e3851..1660c05a124f 100755 --- a/sd/source/ui/view/DocumentRenderer.cxx +++ b/sd/source/ui/view/DocumentRenderer.cxx @@ -27,6 +27,8 @@ #include "precompiled_sd.hxx" +#include <com/sun/star/beans/XPropertySet.hpp> + #include "DocumentRenderer.hxx" #include "DocumentRenderer.hrc" @@ -997,6 +999,9 @@ namespace { { SdPage& rHandoutPage (*rDocument.GetSdPage(0, PK_HANDOUT)); + Reference< com::sun::star::beans::XPropertySet > xHandoutPage( rHandoutPage.getUnoPage(), UNO_QUERY ); + const rtl::OUString sPageNumber( RTL_CONSTASCII_USTRINGPARAM( "Number" ) ); + // Collect the page objects of the handout master. std::vector<SdrPageObj*> aHandoutPageObjects; SdrObjListIter aShapeIter (rHandoutPage); @@ -1051,7 +1056,15 @@ namespace { } } - rViewShell.SetPrintedHandoutPageNum(mnHandoutPageIndex + 1); + if( xHandoutPage.is() ) try + { + xHandoutPage->setPropertyValue( sPageNumber, Any( static_cast<sal_Int16>(mnHandoutPageIndex) ) ); + } + catch( Exception& ) + { + } + rViewShell.SetPrintedHandoutPageNum( mnHandoutPageIndex + 1 ); + MapMode aMap (rPrinter.GetMapMode()); rPrinter.SetMapMode(maMap); @@ -1068,6 +1081,13 @@ namespace { msPageString, maPageStringOffset); + if( xHandoutPage.is() ) try + { + xHandoutPage->setPropertyValue( sPageNumber, Any( static_cast<sal_Int16>(0) ) ); + } + catch( Exception& ) + { + } rViewShell.SetPrintedHandoutPageNum(1); // Restore outlines. @@ -1081,7 +1101,8 @@ namespace { pPathObj->SetMergedItem(XLineStyleItem(XLINE_SOLID)); } } - } + + } private: const USHORT mnHandoutPageIndex; @@ -1887,12 +1908,17 @@ private: ++nShapeCount; } + const USHORT nPageCount = mrBase.GetDocument()->GetSdPageCount(PK_STANDARD); + const USHORT nHandoutPageCount = nShapeCount ? (nPageCount + nShapeCount - 1) / nShapeCount : 0; + pViewShell->SetPrintedHandoutPageCount( nHandoutPageCount ); + mrBase.GetDocument()->setHandoutPageCount( nHandoutPageCount ); + // Distribute pages to handout pages. ::std::vector<USHORT> aPageIndices; std::vector<SdPage*> aPagesVector; for (USHORT nIndex=0, - nCount=mrBase.GetDocument()->GetSdPageCount(PK_STANDARD), + nCount= nPageCount, nHandoutPageIndex=0; nIndex <= nCount; ++nIndex) diff --git a/sd/source/ui/view/drtxtob.cxx b/sd/source/ui/view/drtxtob.cxx index 8b88be3682e3..9eb0a3b2ff8c 100755 --- a/sd/source/ui/view/drtxtob.cxx +++ b/sd/source/ui/view/drtxtob.cxx @@ -384,19 +384,25 @@ void TextObjectBar::GetAttrState( SfxItemSet& rSet ) case SID_THES: { - EditView & rEditView = mpView->GetTextEditOutlinerView()->GetEditView();; - String aStatusVal; - LanguageType nLang = LANGUAGE_NONE; - bool bIsLookUpWord = GetStatusValueForThesaurusFromContext( aStatusVal, nLang, rEditView ); - rSet.Put( SfxStringItem( SID_THES, aStatusVal ) ); - - // disable "Thesaurus" context menu entry if there is nothing to look up - lang::Locale aLocale( SvxCreateLocale( nLang ) ); - uno::Reference< linguistic2::XThesaurus > xThes( LinguMgr::GetThesaurus() ); - if (!bIsLookUpWord || - !xThes.is() || nLang == LANGUAGE_NONE || !xThes->hasLocale( aLocale )) + if( mpView && mpView->GetTextEditOutlinerView() ) + { + EditView & rEditView = mpView->GetTextEditOutlinerView()->GetEditView();; + String aStatusVal; + LanguageType nLang = LANGUAGE_NONE; + bool bIsLookUpWord = GetStatusValueForThesaurusFromContext( aStatusVal, nLang, rEditView ); + rSet.Put( SfxStringItem( SID_THES, aStatusVal ) ); + + // disable "Thesaurus" context menu entry if there is nothing to look up + lang::Locale aLocale( SvxCreateLocale( nLang ) ); + uno::Reference< linguistic2::XThesaurus > xThes( LinguMgr::GetThesaurus() ); + if (!bIsLookUpWord || + !xThes.is() || nLang == LANGUAGE_NONE || !xThes->hasLocale( aLocale )) + rSet.DisableItem( SID_THES ); + } + else + { rSet.DisableItem( SID_THES ); - + } //! avoid puting the same item as SfxBoolItem at the end of this function nSlotId = 0; } diff --git a/set_soenv.in b/set_soenv.in index e827c3cb3eef..94fab67f15c9 100644 --- a/set_soenv.in +++ b/set_soenv.in @@ -1384,7 +1384,7 @@ if ($platform =~ m/linux|freebsd|netbsd/) # This simply adds an include path, so even cases that break the FHS work $SOLARINC .= $STLPORT_inc_stlport; } -if ($platform =~ m/solaris/ && $CC !=~ "gcc") +if ($platform =~ m/solaris/ && ! $CC =~ "gcc") { $SOLARINC .= '/SC5 '; } @@ -1909,6 +1909,7 @@ ToFile( "ENABLE_AGG", "@ENABLE_AGG@", "e" ); ToFile( "SYSTEM_AGG", "@SYSTEM_AGG@", "e" ); ToFile( "AGG_VERSION", "@AGG_VERSION@", "e" ); ToFile( "BUILD_DMAKE", "@BUILD_DMAKE@", "e" ); +ToFile( "BUILD_STAX", "@BUILD_STAX@", "e" ); ToFile( "BUILD_UNOWINREG", "@BUILD_UNOWINREG@", "e" ); ToFile( "USE_XINERAMA", "@USE_XINERAMA@", "e" ); ToFile( "XINERAMA_LINK", "@XINERAMA_LINK@", "e" ); diff --git a/setup_native/scripts/admin.pl b/setup_native/scripts/admin.pl index 89588d0c4d03..f5f2d207b5ed 100644 --- a/setup_native/scripts/admin.pl +++ b/setup_native/scripts/admin.pl @@ -785,6 +785,12 @@ sub create_directory_structure foreach $dir (@startparents) { create_directory_tree($dir, \%fullpathhash, $targetdir, $dirhash); } + # Also adding the pathes of the startparents + foreach $dir (@startparents) + { + if ( ! exists($fullpathhash{$dir}) ) { $fullpathhash{$dir} = $targetdir; } + } + return \%fullpathhash; } diff --git a/sfx2/source/doc/syspathw32.cxx b/sfx2/source/doc/syspathw32.cxx index 73bd84f5249a..c0a163bed39c 100644 --- a/sfx2/source/doc/syspathw32.cxx +++ b/sfx2/source/doc/syspathw32.cxx @@ -74,7 +74,7 @@ typedef unsigned short sal_uInt16; extern "C" bool GetUserTemplateLocation(sal_Unicode* pFolder, int nSize) { #ifdef WNT - return _SHGetSpecialFolderW32( CSIDL_TEMPLATES, pFolder, nSize ); + return _SHGetSpecialFolderW32( CSIDL_TEMPLATES, reinterpret_cast<LPWSTR>(pFolder), nSize ); #else (void)pFolder; (void)nSize; diff --git a/sfx2/source/view/userinputinterception.cxx b/sfx2/source/view/userinputinterception.cxx index e716e604b649..ad910a944e0f 100644 --- a/sfx2/source/view/userinputinterception.cxx +++ b/sfx2/source/view/userinputinterception.cxx @@ -216,6 +216,13 @@ namespace sfx2 if ( e.Context == xHandler ) aIterator.remove(); } + catch( const RuntimeException& ) + { + throw; + } + catch( const Exception& ) + { + } } } break; @@ -247,6 +254,13 @@ namespace sfx2 if ( e.Context == xHandler ) aIterator.remove(); } + catch( const RuntimeException& ) + { + throw; + } + catch( const Exception& ) + { + } } } break; diff --git a/sfx2/source/view/viewimp.hxx b/sfx2/source/view/viewimp.hxx index 1c9e219cf180..be20cd2f2a47 100644 --- a/sfx2/source/view/viewimp.hxx +++ b/sfx2/source/view/viewimp.hxx @@ -75,7 +75,7 @@ struct SfxViewShell_Impl ::svt::AcceleratorExecute* pAccExec; com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue > aPrintOpts; ::rtl::Reference< SfxClipboardChangeListener > xClipboardListener; - vcl::PrinterController* pPrinterController; + ::boost::shared_ptr< vcl::PrinterController > m_pPrinterController; SfxViewShell_Impl(); }; diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index f62ae4c1ddc7..5b317e4b770b 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -332,7 +332,9 @@ void SfxPrinterController::jobFinished( com::sun::star::view::PrintableState nSt mpObjectShell->EnableSetModified( m_bOrigStatus ); if ( mpViewShell ) - mpViewShell->pImp->pPrinterController = 0; + { + mpViewShell->pImp->m_pPrinterController.reset(); + } } } @@ -643,7 +645,7 @@ void SfxViewShell::ExecPrint( const uno::Sequence < beans::PropertyValue >& rPro this, rProps ) ); - pImp->pPrinterController = pController.get(); + pImp->m_pPrinterController = pController; SfxObjectShell *pObjShell = GetObjectShell(); pController->setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "JobName" ) ), @@ -661,7 +663,8 @@ void SfxViewShell::ExecPrint( const uno::Sequence < beans::PropertyValue >& rPro Printer* SfxViewShell::GetActivePrinter() const { - return pImp->pPrinterController ? pImp->pPrinterController->getPrinter().get() : 0; + return (pImp->m_pPrinterController) + ? pImp->m_pPrinterController->getPrinter().get() : 0; } void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) diff --git a/smoketestoo_native/com/sun/star/comp/smoketest/makefile.mk b/smoketestoo_native/com/sun/star/comp/smoketest/makefile.mk index 3e90c68a13af..da9b302791f0 100755 --- a/smoketestoo_native/com/sun/star/comp/smoketest/makefile.mk +++ b/smoketestoo_native/com/sun/star/comp/smoketest/makefile.mk @@ -34,6 +34,8 @@ no_common_build_zip:=TRUE # --- Settings ----------------------------------------------------- +.IF "$(SOLAR_JAVA)" != "" + .INCLUDE : settings.mk JARFILES = ridl.jar jurt.jar unoil.jar juh.jar @@ -62,11 +64,15 @@ ZIP1DEPS=$(MISC)$/$(TARGET)$/$(JARTARGET)\ .INCLUDE : target.mk +$(MISC)$/$(TARGET)$/META-INF: + @-$(MKDIRHIER) $(@) + $(MISC)$/TestExtension.urd: TestExtension.idl $(IDLC) -O$(MISC) -I$(SOLARIDLDIR) -cid -we $< +$(MISC)$/$(TARGET)$/META-INF$/manifest.xml $(MISC)$/$(TARGET)$/TestExtension.rdb : $(MISC)$/$(TARGET)$/META-INF + $(MISC)$/$(TARGET)$/META-INF$/manifest.xml: manifest.xml - @-$(MKDIRHIER) $(@:d) $(COPY) $< $@ $(MISC)$/$(TARGET)$/TestExtension.rdb: $(MISC)$/TestExtension.urd @@ -77,3 +83,8 @@ $(JAVACLASSFILES) .UPDATEALL: $(MISC)$/$(TARGET)$/TestExtension.rdb $(MISC)$/$(TARGET)$/$(JARTARGET) : $(JARTARGETN) $(COPY) $< $@ + +.ELSE +@all: + @echo "Java disabled. Nothing to do." +.ENDIF diff --git a/smoketestoo_native/data/Events.xml b/smoketestoo_native/data/Events.xml new file mode 100644 index 000000000000..6536c1c5eafc --- /dev/null +++ b/smoketestoo_native/data/Events.xml @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* 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. +* +**********************************************************************--> +<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd"> +<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Events" script:language="StarBasic">REM ***** BASIC ***** + +Sub InitEvents + call ClickCutTest +End Sub + +Sub ClickSaveTest + if not OptionsDlg.cbSaveTest.Value then + OptionsDlg.cbOpenTest.Value = false + OptionsDlg.cbOpenTest.Enabled = false + else + OptionsDlg.cbOpenTest.Enabled = true + end If +End Sub + +Sub ClickCutTest + if not OptionsDlg.cbCutTest.Value then + OptionsDlg.cbPasteTest.Value = false + OptionsDlg.cbPasteTest.Enabled = false + else + OptionsDlg.cbPasteTest.Enabled = true + end If +End Sub + +Sub PressCancel + gDlgState = cDlgCancel +end Sub + +Sub PressOk + gDlgState = cDlgOk +end Sub + +Sub PressTest + gOptionsDialog.EndExecute() + gDlgState = cDlgStartTest +end Sub +</script:module> diff --git a/smoketestoo_native/data/Global.xml b/smoketestoo_native/data/Global.xml new file mode 100644 index 000000000000..364d2e2efcfb --- /dev/null +++ b/smoketestoo_native/data/Global.xml @@ -0,0 +1,786 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* 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. +* +**********************************************************************--> +<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd"> +<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Global" script:language="StarBasic">REM ***** BASIC ***** + +const cMaxErrorStates = 13 + +const cCoGreen = 4057917, cCoRed = 16711680, cCoGrey = 12632256 +const cParagraphBreak = 0 + +global const cExtensionFileName = "TestExtension.oxt" + +global const cDocNew = 0, cDocCut = 1, cDocPaste = 2, cDocSaveOpen8 = 3, cDocSaveOpenXML = 4, cDocSaveOpen50 = 5, cDocClose = 6, cDocWrite = 7 +global const cDBService = 0, cDBOpen = 1, cDBInsert = 2, cDBDelete = 3, cDBSeek = 4, cDBClose = 5 +global const cEXTService = 0, cEXTInstall = 1, cEXTUninstall = 2 +global const cLogfileFailed = 255 + +global const cStWriter = 0, cStCalc = 1, cStPraesentation = 2, cStZeichnen = 3 +global const cStMessage = 12, cStHTML = 6, cStChart = 4, cStJava = 7 +global const cStMath = 5, cStDataBase = 9 +global const cStExtension = 11 +global const cStNone = -1 + +global const cFlt8 = 0, cFlt50 = 32, cFltNewDoc = 64, cFltXML = 128 + +global const frmWriter = 1, frmCalc = 2, frmMessage = 3, frmImpress = 4 +global const frmMath = 5, frmImage = 6, frmChart = 7, frmHyperText = 8, frmDraw = 9 +global const frmDataBase = 10, frmJava = 13 +global const frmExtension = 14 + +global const cLogUnknown = 0, cLogFalse = 1, cLogTrue = 2 + +'UserFieldKennungen +Global const cYes = "y", cNo = "n" +Global const cStateNo = 0, cStateYes = 1 + +'Feldtypen +Global const cFtExtUser = 21, cFtPageNum = 5, cFtStatistic = 8, cFtDateTime = 27, cFtDatabase = 31 + +'UnoStrings +Global const cUnoSeparator = "." +Global const cUnoPrefix = "com.sun.star." +Global const cUnoUserField = cUnoPrefix + "text.FieldMaster.User" +Global const cUnoExtUserField = cUnoPrefix + "text.TextField.ExtendedUser" +Global const cUnoMasterDataBase = cUnoPrefix + "text.FieldMaster.Database" +Global const cUnoDataBase = cUnoPrefix + "text.TextField.Database" +Global const cUnoDateTime = cUnoPrefix + "text.TextField.DateTime" +Global const cUnoTextGraphi2 = cUnoPrefix + "text.Graphic" +Global const cUnoJavaLoader = cUnoPrefix + "loader.Java" +Global const cUnoDatabaseContext = cUnoPrefix + "sdb.DatabaseContext" +Global const cUnoRowSet = cUnoPrefix + "sdb.RowSet" +Global const cUnoSmoketestTestExtension = cUnoPrefix + "comp.smoketest.TestExtension" +Global const cUnoSmoketestCommandEnvironment = cUnoPrefix + "deployment.test.SmoketestCommandEnvironment" +Global const cExtensionManager = cUnoPrefix + "deployment.ExtensionManager" + +'UserFieldNames +Global const cUserFieldTestWriter = "Writer", cUserFieldTestCalc = "Calc", cUserFieldTestImpress = "Impress" +Global const cUserFieldTestDraw = "Draw", cUserFieldTestMath = "Math", cUserFieldTestChart = "Chart" +Global const cUserFieldTestHTML = "HTML", cUserFieldTestJava = "Java", cUserFieldTestDatabase = "Database" +Global const cUserFieldTestExtension = "Extension" +Global const cUserFieldTestOpenSaveXML = "SaveOpenXML", cUserFieldTestOpenSave50 = "SaveOpen50", cUserFieldTestCut = "Cut" +Global const cUserFieldTestPaste = "Paste", cUserFieldTestTerminateAfterTest = "Terminate", cUserFieldTestOpenSave8 = "SaveOpen8" + +Global const cOptionsDialogName = "OptionsDlg", cTest10Modul = "Standard" + +Global const cDlgCancel = 1, cDlgOk = 0, cDlgStartTest = 2 + +global gErrorState (cMaxErrorStates, 5) as integer + +global gOutputDoc as Object +global gOutputDocNotUno as Object +global gOptionsDialog as Object + +Global bMakeWriterTest as boolean, bMakeCalcTest as boolean, bMakeImpressTest as boolean +Global bMakeDrawTest as Boolean, bMakeMathTest as boolean, bMakeChartTest as boolean +Global bMakeHTMLTest as boolean, bMakeJavaTest as boolean, bMakeDBTest as boolean +Global bMakeExtensionTest as boolean +Global bMakeSaveOpenXMLTest as boolean, bMakeSaveOpen50Test as boolean, bMakeCutTest as boolean +Global bMakePasteTest as boolean, bMakeTerminateAfterTest as boolean, bShowTable as boolean +Global bMakeSaveOpen8Test as boolean + +global sExtensionURL as string + +Dim gDlgState as Integer + +Sub SetGlobalDoc + gOutPutDoc = ThisComponent +end Sub + +Sub ClearStatus + for j% = 0 to cMaxErrorStates + for i% = 0 to 5 + gErrorState (j%, i%) = cLogUnknown + next i% + next j% +end Sub + +Sub ClearAllText + call SetGlobalDoc + call ClearDoc (gOutPutDoc) + call ClearStatus +end Sub + +Sub Main + call SetGlobalDoc + if bShowTable then + call ClearDoc (gOutPutDoc) + end If + + call ClearStatus + + Call Test_10er.Main + + if bShowTable then + call CreateStatusTable2 + call CreateStatusTable + call CreateDocState + call CreateSecondState + gOutputDoc.CurrentController.ViewCursor.JumpToFirstPage + end if +End Sub + +Sub CreateStatusTable + dim tableHeaders(7) as string + tableHeaders(cStWriter) = "Writer" + tableHeaders(cStCalc) = "Calc" + tableHeaders(cStPraesentation) = "Präsen- tation" + tableHeaders(cStZeichnen) = "Zeichn." + tableHeaders(cStChart) = "Diagr." + tableHeaders(cStMath) = "Math" + tableHeaders(cStHTML) = "HTML" + tableHeaders(cStJava) = "Java" + + dim tableColums(5) as string + tableColums(cDocNew) = "new" + tableColums(cDocCut) = "cut" + tableColums(cDocPaste) = "paste" + tableColums(cDocSaveOpen8) = "V8.0" + tableColums(cDocSaveOpenXML) = "XML" + tableColums(cDocSaveOpen50) = "V5.0" +' tableColums(cDocClose) = "close" + + aDoc = gOutPutDoc + + xText = aDoc.Text + xCursor = xText.createTextCursor() + +' xCursor.gotoStart(FALSE) +' xCursor.GoRight (2, False) +' SetParagraphBreak (xCursor) +' SetParagraphBreak (xCursor) + xCursor.gotoStart(FALSE) + xCursor.GoRight (4, False) + SetParagraphBreak (xCursor) + xCursor.GoRight (1, False) + SetParagraphBreak (xCursor) + xCursor.GoRight (1, False) + + table = aDoc.createInstance("com.sun.star.text.TextTable") + table.initialize(7,9) + table.Name = "StTab1" + xText.insertTextContent(xCursor, table, FALSE) + + tableCursor = table.createCursorByCellName(table.CellNames(0)) + tableCursor.gotoStart(FALSE) + tableCursor.goRight(1,FALSE) + + for i% = 0 to 7 + cName = tableCursor.getRangeName() + xCell = table.getCellByName(cName) + xCell.String=tableHeaders(i%) + + xCell.BackTransparent = False + xCell.BackColor = cCoGrey + + tableCursor.goRight(1,FALSE) + next i% + + xCursor.gotoStart(FALSE) +' SetParagraphBreak (xCursor) +' SetParagraphBreak (xCursor) + + tableCursor.gotoStart(FALSE) + cName = tableCursor.getRangeName() + xCell = table.getCellByName(cName) + xCell.BackTransparent = False + xCell.BackColor = cCoGrey + + for i% = 0 to 5 + tableCursor.goDown(1,FALSE) + cName = tableCursor.getRangeName() + xCell = table.getCellByName(cName) + xCell.String=tableColums(i%) + + xCell.BackTransparent = False + xCell.BackColor = cCoGrey + next i% +end Sub + +Sub CreateStatusTable2 + dim tableHeaders(5) as string + tableHeaders(cStDataBase-9) = "Database" + tableHeaders(1) = "" + tableHeaders(cStExtension-9) = "Extension" + tableHeaders(3) = "" + tableHeaders(4) = "" + + dim tableColums(5) as string + tableColums(cDBService ) = "services" + tableColums(cDBOpen ) = "open" + tableColums(cDBInsert ) = "insert" + tableColums(cDBDelete ) = "delete" + tableColums(cDBSeek ) = "seek" + tableColums(cDBClose ) = "close" + + dim tableColums2(3) as string + tableColums2(cEXTService ) = "services" + tableColums2(cEXTInstall ) = "install" + tableColums2(cEXTUninstall ) = "uninstall" + + aDoc = gOutPutDoc + + xText = aDoc.Text + xCursor = xText.createTextCursor() + + xCursor.gotoStart(FALSE) + xCursor.GoRight (4, False) + SetParagraphBreak (xCursor) + SetParagraphBreak (xCursor) + xCursor.gotoEnd(FALSE) + + table = aDoc.createInstance("com.sun.star.text.TextTable") + table.initialize(7,6) + table.Name = "StTab2" + 'table.RelativeWidth =500 + + xText.insertTextContent(xCursor, table, FALSE) + + tableCursor = table.createCursorByCellName(table.CellNames(0)) + tableCursor.gotoStart(FALSE) + tableCursor.goRight(1,FALSE) + + for i% = 0 to 5 + cName = tableCursor.getRangeName() + xCell = table.getCellByName(cName) + xCell.String=tableHeaders(i%) + + xCell.BackTransparent = False + xCell.BackColor = cCoGrey + + tableCursor.goRight(1,FALSE) + next i% + + tableCursor.gotoStart(FALSE) + + cName = tableCursor.getRangeName() + xCell = table.getCellByName(cName) + xCell.BackTransparent = False + xCell.BackColor = cCoGrey + + for i% = 0 to 5 + tableCursor.goDown(1,FALSE) + cName = tableCursor.getRangeName() + xCell = table.getCellByName(cName) + xCell.String=tableColums(i%) + + xCell.BackTransparent = False + xCell.BackColor = cCoGrey + next i% + + tableCursor.gotoStart(FALSE) + tableCursor.goRight(2,FALSE) + + for i% = 0 to 3 + tableCursor.goDown(1,FALSE) + cName = tableCursor.getRangeName() + xCell = table.getCellByName(cName) + xCell.String=tableColums2(i%) + + xCell.BackTransparent = False + xCell.BackColor = cCoGrey + next i% +end Sub + + +Sub CreateDocState + aDoc = gOutPutDoc + table = aDoc.TextTables.GetByIndex (1) + 'table = aDoc.TextTables.GetByName ("StTab1") + + for j% = 0 to 7 + for i% = 0 to 5 + sRangeName = GetRangeName(j%, i%+1) + + tableCursor = table.createCursorByCellName(sRangeName) + + cName = tableCursor.getRangeName() + xCell = table.getCellByName(cName) + + xCell.BackTransparent = False + + if gErrorState (j%, i%) = cLogTrue then + xCell.BackColor = cCoGreen + else if gErrorState (j%, i%) = cLogFalse then + xCell.BackColor = cCoRed + else + xCell.BackColor = cCoGrey + end If + end If + + next i% + next j% +end Sub + +Sub CreateSecondState + aDoc = gOutPutDoc + table = aDoc.TextTables.GetByIndex (0) + 'table = aDoc.TextTables.GetByName ("StTab2") + + for j% = 0 to cMaxErrorStates-9 + for i% = 0 to 5 + sRangeName = GetRangeName(j%, i%+1) + + tableCursor = table.createCursorByCellName(sRangeName) + + cName = tableCursor.getRangeName() + xCell = table.getCellByName(cName) + + xCell.BackTransparent = False + + if gErrorState (j%+9, i%) = cLogTrue then + xCell.BackColor = cCoGreen + else if gErrorState (j%+9, i%) = cLogFalse then + xCell.BackColor = cCoRed + else + xCell.BackColor = cCoGrey + end If + end If + + next i% + next j% +end Sub + +Function GetRangeName (nColumn as integer, nRow as integer) as string + GetRangeName = chr (nColumn+66) + Trim(Str(nRow+1)) +end Function + +Sub SetStatus (nDocType as Integer, nAction as Integer, bState as Boolean) + Dim nStatusType as Integer + Dim nState as integer + nStatusType = GetStatusType (nDocType) + If nStatusType = cStNone then Exit Sub + + if bState then + nState = cLogTrue + else + nState = cLogFalse + end If + + gErrorState (nStatusType, nAction) = nState +end Sub + +Function GetStatusType (nDocType as Integer) as Integer + Select Case ( nDocType ) + case frmWriter + GetStatusType = cStWriter ' Textdokument + case frmCalc + GetStatusType = cStCalc 'Tabellendokument + case frmMessage + GetStatusType = cStMessage 'Nachricht + case frmImpress + GetStatusType = cStPraesentation 'Präsentation + case frmDraw + GetStatusType = cStZeichnen 'Zeichnen + case frmMath + GetStatusType = cStMath 'Formel + case frmImage + GetStatusType = cStBild 'Bild + case frmHyperText + GetStatusType = cStHTML 'Hypertext-Dokument + case frmChart + GetStatusType = cStChart 'Diagramm + case frmJava + GetStatusType = cStJava 'Java + case frmDataBase + GetStatusType = cStDataBase 'DataBase + case frmExtension + GetStatusType = cStExtension 'Extension + case else + GetStatusType = cStNone + end Select +end Function + +Sub SetParagraphBreak (aCursor as Object) + aCursor.Text.InsertControlCharacter (aCursor, cParagraphBreak, True) +end Sub + +Sub ClearDoc (aDoc as Object) + Dim aText as Object + Dim i% + for i%=1 to aDoc.TextTables.count + aDoc.TextTables.GetByIndex(0).dispose + next + + aText = aDoc.Text.CreateTextCursor + aText.GotoStart (False) + aText.GoRight (3, False) + SetParagraphBreak (aText) + aText.GotoEnd (True) + aText.String="" +end Sub + +Sub ClearDocFull (aDoc as Object) + Dim aText as Object + Dim i% + for i%=1 to aDoc.TextTables.count + aDoc.TextTables.GetByIndex(0).dispose + next + + aText = aDoc.Text.CreateTextCursor + aText.GotoStart (False) + aText.GotoEnd (True) + aText.String="" +end Sub + +Sub SetGlobalOptionsDialog () + + Dim oLibContainer As Object, oLib As Object + Dim oInputStreamProvider As Object + Dim oDialog As Object + + Const sLibName = cTest10Modul + Const sDialogName = cOptionsDialogName + + REM get library and input stream provider + oLibContainer = DialogLibraries + + REM load the library + oLibContainer.loadLibrary( sLibName ) + + oLib = oLibContainer.getByName( sLibName ) + oInputStreamProvider = oLib.getByName( sDialogName ) + + REM create dialog control + gOptionsDialog = CreateUnoDialog( oInputStreamProvider ) + +end Sub + +Sub ShowOptionsDlg + + call SetGlobalDoc + call SetGlobalOptionsDialog + call GetOptions + + REM show the dialog + gOptionsDialog.execute() + + ' jetzt läuft der Dialog, bis ein Button gedrückt wird + + Select Case (gDlgState) + case cDlgOk + call SetOptions () + case cDlgStartTest + call SetOptions () + call StartTestByOptions () + end Select + + gOptionsDialog.dispose() + +end Sub + +Sub SetOptions + call SetGlobalDoc + SetUserFieldState (cUserFieldTestWriter, -(gOptionsDialog.getControl("cbWriterTest").getState), gOutPutDoc) + SetUserFieldState (cUserFieldTestCalc, -(gOptionsDialog.getControl("cbCalcTest").getState), gOutPutDoc) + SetUserFieldState (cUserFieldTestImpress, -(gOptionsDialog.getControl("cbImpressTest").getState), gOutPutDoc) + SetUserFieldState (cUserFieldTestDraw, -(gOptionsDialog.getControl("cbDrawTest").getState), gOutPutDoc) + SetUserFieldState (cUserFieldTestHTML, -(gOptionsDialog.getControl("cbHTMLTest").getState), gOutPutDoc) + SetUserFieldState (cUserFieldTestMath, -(gOptionsDialog.getControl("cbMathTest").getState), gOutPutDoc) + SetUserFieldState (cUserFieldTestChart, -(gOptionsDialog.getControl("cbChartTest").getState), gOutPutDoc) + SetUserFieldState (cUserFieldTestJava, -(gOptionsDialog.getControl("cbJavaTest").getState), gOutPutDoc) + SetUserFieldState (cUserFieldTestDatabase, -(gOptionsDialog.getControl("cbDatabaseTest").getState), gOutPutDoc) + SetUserFieldState (cUserFieldTestExtension, -(gOptionsDialog.getControl("cbExtensionTest").getState), gOutPutDoc) + SetUserFieldState (cUserFieldTestOpenSaveXML, -(gOptionsDialog.getControl("cbSaveOpenXMLTest").getState), gOutPutDoc) + SetUserFieldState (cUserFieldTestOpenSave50, -(gOptionsDialog.getControl("cbSaveOpen50Test").getState), gOutPutDoc) + SetUserFieldState (cUserFieldTestOpenSave8, -(gOptionsDialog.getControl("cbSaveOpen8Test").getState), gOutPutDoc) + SetUserFieldState (cUserFieldTestCut, -(gOptionsDialog.getControl("cbCutTest").getState), gOutPutDoc) + SetUserFieldState (cUserFieldTestPaste, -(gOptionsDialog.getControl("cbPasteTest").getState), gOutPutDoc) + SetUserFieldState (cUserFieldTestTerminateAfterTest, -(gOptionsDialog.getControl("cbTerminateAfterTest").getState), gOutPutDoc) +end Sub + +Sub GetOptions + call SetGlobalDoc + gOptionsDialog.getControl("cbWriterTest").setState( -( GetUserFieldState (cUserFieldTestWriter, gOutPutDoc))) + gOptionsDialog.getControl("cbCalcTest").setState ( -( GetUserFieldState (cUserFieldTestCalc, gOutPutDoc))) + gOptionsDialog.getControl("cbImpressTest").setState( -( GetUserFieldState (cUserFieldTestImpress, gOutPutDoc))) + gOptionsDialog.getControl("cbDrawTest").setState( -( GetUserFieldState (cUserFieldTestDraw, gOutPutDoc))) + gOptionsDialog.getControl("cbHTMLTest").setState( -( GetUserFieldState (cUserFieldTestHTML, gOutPutDoc))) + gOptionsDialog.getControl("cbMathTest").setState( -( GetUserFieldState (cUserFieldTestMath, gOutPutDoc))) + gOptionsDialog.getControl("cbChartTest").setState( -( GetUserFieldState (cUserFieldTestChart, gOutPutDoc))) + gOptionsDialog.getControl("cbJavaTest").setState( -( GetUserFieldState (cUserFieldTestJava, gOutPutDoc))) + gOptionsDialog.getControl("cbDatabaseTest").setState( -( GetUserFieldState (cUserFieldTestDatabase, gOutPutDoc))) + gOptionsDialog.getControl("cbExtensionTest").setState( -( GetUserFieldState (cUserFieldTestExtension, gOutPutDoc))) + gOptionsDialog.getControl("cbSaveOpenXMLTest").setState( -( GetUserFieldState (cUserFieldTestOpenSaveXML, gOutPutDoc))) + gOptionsDialog.getControl("cbSaveOpen50Test").setState( -( GetUserFieldState (cUserFieldTestOpenSave50, gOutPutDoc))) + gOptionsDialog.getControl("cbSaveOpen8Test").setState( -( GetUserFieldState (cUserFieldTestOpenSave8, gOutPutDoc))) + gOptionsDialog.getControl("cbCutTest").setState( -( GetUserFieldState (cUserFieldTestCut, gOutPutDoc))) + gOptionsDialog.getControl("cbPasteTest").setState( -( GetUserFieldState (cUserFieldTestPaste, gOutPutDoc))) + gOptionsDialog.getControl("cbTerminateAfterTest").setState( -( GetUserFieldState (cUserFieldTestTerminateAfterTest, gOutPutDoc))) +End Sub + +Sub ReadOptions + call SetGlobalDoc + bMakeWriterTest = GetUserFieldState (cUserFieldTestWriter, gOutPutDoc) + bMakeCalcTest = GetUserFieldState (cUserFieldTestCalc, gOutPutDoc) + bMakeImpressTest = GetUserFieldState (cUserFieldTestImpress, gOutPutDoc) + bMakeDrawTest = GetUserFieldState (cUserFieldTestDraw, gOutPutDoc) + bMakeHTMLTest = GetUserFieldState (cUserFieldTestHTML, gOutPutDoc) + bMakeMathTest = GetUserFieldState (cUserFieldTestMath, gOutPutDoc) + bMakeChartTest = GetUserFieldState (cUserFieldTestChart, gOutPutDoc) + bMakeJavaTest = GetUserFieldState (cUserFieldTestJava, gOutPutDoc) + bMakeDBTest = GetUserFieldState (cUserFieldTestDatabase, gOutPutDoc) + bMakeExtensionTest = GetUserFieldState (cUserFieldTestExtension, gOutPutDoc) + bMakeSaveOpenXMLTest = GetUserFieldState (cUserFieldTestOpenSaveXML, gOutPutDoc) + bMakeSaveOpen50Test = GetUserFieldState (cUserFieldTestOpenSave50, gOutPutDoc) + bMakeSaveOpen8Test = GetUserFieldState (cUserFieldTestOpenSave8, gOutPutDoc) + bMakeCutTest = GetUserFieldState (cUserFieldTestCut, gOutPutDoc) + bMakePasteTest = GetUserFieldState (cUserFieldTestPaste, gOutPutDoc) + bMakeTerminateAfterTest = GetUserFieldState (cUserFieldTestTerminateAfterTest, gOutPutDoc) +end Sub + +Sub SetDefaultOptions + bMakeWriterTest = true + bMakeCalcTest = true + bMakeImpressTest = true + bMakeDrawTest = true + bMakeHTMLTest = true + bMakeMathTest = true + bMakeChartTest = true + if Environ("SOLAR_JAVA") = "" then + bMakeJavaTest = false + bMakeDBTest = false + bMakeExtensionTest = false + else + bMakeJavaTest = true + bMakeDBTest = true + bMakeExtensionTest = true + End If + bMakeSaveOpenXMLTest = true + REM Disable StarOffice 5.0 tests in case binfilter has not been included + if Environ("WITH_BINFILTER") = "NO" then + bMakeSaveOpen50Test = false + else + bMakeSaveOpen50Test = true + End If + bMakeSaveOpen8Test = true + bMakeCutTest = true + bMakePasteTest = true + bMakeTerminateAfterTest = false +end Sub + +Sub StartTestByOptions + bShowTable = true + call ReadOptions + call Main + if bMakeTerminateAfterTest then + ClearDocFull (gOutPutDoc) + gOutPutDoc.dispose + 'StarDesktop.Terminate + + 'EnableReschedule( false ) + 'DispatchSlot( 5300 ) + stop + End If +end Sub + +Function StartTestWithDefaultOptions + bShowTable = false + call SetDefaultOptions + call Main + dim component(cMaxErrorStates) as string + component(cStWriter) = "Writer" + component(cStCalc) = "Calc" + component(cStPraesentation) = "Impress" + component(cStZeichnen) = "Draw" + component(cStChart) = "Chart" + component(cStMath) = "Math" + component(cStHTML) = "HTML" + component(cStJava) = "Java" + component(cStDataBase) = "Base" + component(cStExtension) = "Extensions" + dim action(5) as string + action(cDocNew) = "new" + action(cDocCut) = "cut" + action(cDocPaste) = "paste" + action(cDocSaveOpen8) = "V8.0" + action(cDocSaveOpenXML) = "XML" + action(cDocSaveOpen50) = "V5.0" + dim baseAction(5) as string + baseAction(cDBService) = "services" + baseAction(cDBOpen) = "open" + baseAction(cDBInsert) = "insert" + baseAction(cDBDelete) = "delete" + baseAction(cDBSeek) = "seek" + baseAction(cDBClose) = "close" + dim extAction(2) as string + extAction(cEXTService) = "services" + extAction(cEXTInstall) = "install" + extAction(cEXTUninstall) = "uninstall" + dim result as string + for i = 0 to cMaxErrorStates + for j = 0 to 5 + if gErrorState(i, j) = cLogFalse then + result = result & " " & component(i) & ":" + if i = cStDataBase then + result = result & baseAction(j) + else if i = cStExtension then + result = result & extAction(j) + else + result = result & action(j) + end if + end if + end if + next j + next i + StartTestWithDefaultOptions = result +end Function + +Sub DispatchSlot(SlotID as Integer) + Dim oArg() as new com.sun.star.beans.PropertyValue + Dim oUrl as new com.sun.star.util.URL + Dim oTrans as Object + Dim oDisp as Object + + oTrans = createUNOService("com.sun.star.util.URLTransformer") + oUrl.Complete = "slot:" & CStr(SlotID) + oTrans.parsestrict(oUrl) + + oDisp = StarDesktop.queryDispatch(oUrl, "_self", 0) + oDisp.dispatch(oUrl, oArg()) +End Sub + +Sub LoadLibrary( LibName As String ) + + dim args(1) + dim arg as new com.sun.star.beans.PropertyValue + arg.Name = "LibraryName" + arg.Value = LibName + args(0) = arg + + dim url as new com.sun.star.util.URL + dim trans as object + trans = createUnoService("com.sun.star.util.URLTransformer" ) + url.Complete = "slot:6517" + trans.parsestrict( url ) + + dim disp as object + disp = StarDesktop.currentFrame.queryDispatch( url, "", 0 ) + disp.dispatch( url, args() ) + +End Sub + +Sub ExecuteSlot( SlotNr As String, oDoc as Object ) + dim args() + dim url as new com.sun.star.util.URL + dim trans as object + dim disp as object + + trans = createUnoService("com.sun.star.util.URLTransformer" ) + url.Complete = "slot:" + SlotNr + trans.parsestrict( url ) + + disp = oDoc.CurrentController.Frame.queryDispatch( url, "", 0 ) + disp.dispatch( url, args() ) + +End Sub + +Sub CutText (oDoc as Object) + ExecuteSlot ("5710", oDoc) +End Sub + +Sub PasteText (oDoc as Object) + ExecuteSlot ("5712", oDoc) +End Sub + +Sub DelAllUserFields (aDoc as Object) + Dim aFieldType as Object + Dim aElements as Variant + Dim i% + Dim aFieldMasters, aFieldMaster as Object + Dim sElement$ + aFieldMasters = aDoc.TextFieldMasters + aElements = aFieldMasters.ElementNames + for i = 0 to UBound(aElements) + sElement$ = aElements(i) + if 0 <> instr(sElement$, cUnoUserField ) then + aFieldMaster = aFieldMasters.GetByName(sElement$) + aFieldMaster.Dispose + endif + next +end Sub + +Function GetUserFieldState (sName as String, aDoc as Object) as boolean + Dim sFieldText as String + Dim bState as boolean + sFieldText = ReadUserField (sName, aDoc) + + if LCase(sFieldText) = cYes then + bState = true + else + bState = false + end IF + + GetUserFieldState = bState +end Function + +Sub SetUserFieldState (sName as String, nState as boolean, aDoc as Object) + Dim sFieldText as String + + sFieldText = cNo 'default + + Select case nState + case true + sFieldText = cYes + case false + sFieldText = cNo + end Select + + WriteUserField (sFieldText, sName, aDoc) +end Sub + +Function ReadUserField(sFieldName as String, aDoc as Object) as String + Dim aMasters as Object + aMasters = aDoc.TextFieldMasters + if aMasters.HasByName (cUnoUserField+cUnoSeparator+sFieldName) then + ReadUserField = aMasters.GetByName (cUnoUserField+cUnoSeparator+sFieldName).Content + else + ReadUserField = "" + end If +End Function + +Sub WriteUserField(sValue as String, sFieldName as String, aDoc as Object, optional aCursor as Object) + Dim aMasters, aUserField, aTxtCursor as Object + aMasters = aDoc.TextFieldMasters + if aMasters.HasByName (cUnoUserField+cUnoSeparator+sFieldName) then + aUserField = aMasters.GetByName (cUnoUserField+cUnoSeparator+sFieldName) + else + aUserField = aDoc.CreateInstance (cUnoUserField) + aUserField.Name = sFieldName + end if + aUserField.Content = sValue +End Sub + +Sub WriteExtUserField(nIndex as Integer, aCursor as Object, aDoc as Object) + Dim aUserField as Object + aUserField = aDoc.CreateInstance (cUnoExtUserField) + aUserField.UserDataType = nIndex + aCursor.Text.InsertTextContent (aCursor, aUserField, True) + aUserField.Fix = True +End Sub +</script:module> diff --git a/smoketestoo_native/data/OptionsDlg.xml b/smoketestoo_native/data/OptionsDlg.xml new file mode 100644 index 000000000000..b993a31c9a27 --- /dev/null +++ b/smoketestoo_native/data/OptionsDlg.xml @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* 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. +* +**********************************************************************--> +<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd"> +<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="OptionsDlg" dlg:left="173" dlg:top="100" dlg:width="223" dlg:height="214" dlg:closeable="true" dlg:moveable="true" dlg:title="Options for smoketest"> + <dlg:bulletinboard> + <dlg:titledbox dlg:id="fmTests" dlg:tab-index="0" dlg:left="114" dlg:top="7" dlg:width="101" dlg:height="157"> + <dlg:title dlg:value="Tests"/> + </dlg:titledbox> + <dlg:titledbox dlg:id="fmInstalls" dlg:tab-index="1" dlg:left="7" dlg:top="7" dlg:width="100" dlg:height="157"> + <dlg:title dlg:value="Functions"/> + </dlg:titledbox> + <dlg:checkbox dlg:id="cbWriterTest" dlg:tab-index="2" dlg:left="126" dlg:top="21" dlg:width="80" dlg:height="8" dlg:value="Writer" dlg:checked="false"/> + <dlg:checkbox dlg:id="cbCalcTest" dlg:tab-index="3" dlg:left="126" dlg:top="35" dlg:width="80" dlg:height="8" dlg:value="Calc" dlg:checked="false"/> + <dlg:checkbox dlg:id="cbImpressTest" dlg:tab-index="4" dlg:left="126" dlg:top="49" dlg:width="80" dlg:height="8" dlg:value="Impress" dlg:checked="false"/> + <dlg:checkbox dlg:id="cbDrawTest" dlg:tab-index="5" dlg:left="126" dlg:top="63" dlg:width="80" dlg:height="8" dlg:value="Draw" dlg:checked="false"/> + <dlg:checkbox dlg:id="cbHTMLTest" dlg:tab-index="6" dlg:left="126" dlg:top="77" dlg:width="80" dlg:height="8" dlg:value="HTML" dlg:checked="false"/> + <dlg:checkbox dlg:id="cbMathTest" dlg:tab-index="7" dlg:left="126" dlg:top="91" dlg:width="80" dlg:height="8" dlg:value="Math" dlg:checked="false"/> + <dlg:checkbox dlg:id="cbChartTest" dlg:tab-index="8" dlg:left="126" dlg:top="105" dlg:width="80" dlg:height="8" dlg:value="Chart" dlg:checked="false"/> + <dlg:checkbox dlg:id="cbSaveOpenXMLTest" dlg:tab-index="9" dlg:left="19" dlg:top="49" dlg:width="80" dlg:height="8" dlg:value="Save / Open XML" dlg:checked="false"/> + <dlg:checkbox dlg:id="cbSaveOpen50Test" dlg:tab-index="10" dlg:left="19" dlg:top="63" dlg:width="80" dlg:height="8" dlg:value="Save / Open V5.0" dlg:checked="false"/> + <dlg:checkbox dlg:id="cbCutTest" dlg:tab-index="11" dlg:left="19" dlg:top="77" dlg:width="80" dlg:height="8" dlg:value="Cut" dlg:checked="false"/> + <dlg:checkbox dlg:id="cbPasteTest" dlg:tab-index="12" dlg:left="19" dlg:top="91" dlg:width="80" dlg:height="8" dlg:value="Paste" dlg:checked="false"/> + <dlg:checkbox dlg:id="cbTerminateAfterTest" dlg:tab-index="13" dlg:disabled="true" dlg:left="19" dlg:top="174" dlg:width="190" dlg:height="8" dlg:value="Terminate Office after test" dlg:checked="false"/> + <dlg:titledbox dlg:id="fmBroker" dlg:tab-index="14" dlg:left="7" dlg:top="169" dlg:width="208" dlg:height="17"/> + <dlg:button dlg:id="btOk" dlg:tab-index="15" dlg:left="7" dlg:top="193" dlg:width="65" dlg:height="15" dlg:value="Ok" dlg:button-type="ok"> + <script:event script:event-name="on-performaction" script:location="document" script:macro-name="Standard.Events.PressOk" script:language="StarBasic"/> + </dlg:button> + <dlg:button dlg:id="btCancel" dlg:tab-index="16" dlg:left="80" dlg:top="193" dlg:width="65" dlg:height="15" dlg:value="Cancel" dlg:button-type="ok"> + <script:event script:event-name="on-performaction" script:location="document" script:macro-name="Standard.Events.PressCancel" script:language="StarBasic"/> + </dlg:button> + <dlg:button dlg:id="btStart" dlg:tab-index="17" dlg:left="152" dlg:top="193" dlg:width="65" dlg:height="15" dlg:value="Smoketest"> + <script:event script:event-name="on-performaction" script:location="vnd.sun.star.script" script:macro-name="Standard.Events.PressTest?language=Basic&location=document" script:language="Script"/> + </dlg:button> + <dlg:checkbox dlg:id="cbJavaTest" dlg:tab-index="18" dlg:left="126" dlg:top="119" dlg:width="80" dlg:height="8" dlg:value="Java" dlg:checked="false"/> + <dlg:checkbox dlg:id="cbSaveOpen8Test" dlg:tab-index="19" dlg:left="19" dlg:top="35" dlg:width="80" dlg:height="8" dlg:value="Save / Open V8.0" dlg:checked="false"/> + <dlg:checkbox dlg:id="cbDatabaseTest" dlg:tab-index="20" dlg:left="126" dlg:top="133" dlg:width="80" dlg:height="8" dlg:value="Database" dlg:checked="false"/> + <dlg:checkbox dlg:id="cbExtensionTest" dlg:tab-index="21" dlg:left="126" dlg:top="147" dlg:width="80" dlg:height="8" dlg:value="Extension" dlg:checked="false"/> + </dlg:bulletinboard> +</dlg:window> diff --git a/smoketestoo_native/data/Test_10er.xml b/smoketestoo_native/data/Test_10er.xml new file mode 100644 index 000000000000..636dc2129120 --- /dev/null +++ b/smoketestoo_native/data/Test_10er.xml @@ -0,0 +1,921 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* 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. +* +**********************************************************************--> +<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd"> +<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Test_10er" script:language="StarBasic">REM 10er Test + +const sSWLogFileName = "swlog.dat", sSCLogFileName = "sclog.dat" +const sSDLogFileName = "sdlog.dat", sSMathLogFileName = "smalog.dat" +const sSImDLogFileName = "simlog.dat", sSChartLogFileName = "schlog.dat" +const sSHptLogFileName = "shptlog.dat", sSMessageLogFileName = "smeslog.dat" +const sSDrawLogFileName = "sdrwlog.dat", sJavaLogFileName = "javalog.dat" +const sSDBLogFileName = "dblog.dat", sExtLogFileName = "extlog.dat" +const sLogFileName = "log.dat" +const cTempFileName = "ttt" + +const cMessageSaveOpen8Doc = "Save/Open open Documents (8.0)" +const cMessageSaveOpenXMLDoc = "Save/Open Document XML (6/7)" +const cMessageSaveOpen50Doc = "Save/Open Document 5.0" +const cMessageNewDoc = "New Document" +const cMessageCloseDoc = "Close Document" +const cMessageCutObj = "Cut Object" +const cMessagePasteObj = "Paste Object" + +Global sWorkPath$ +Global sWorkPathURL$ +Global FileChannel% +Global MainFileChannel% + +Sub Main + call TestAllDocs() +end Sub + +Sub DeleteAllSavedFiles() + Dim sFileName as String + sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmWriter) + If FileExists (sFileName) then + Kill (sFileName) + End If + sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmCalc) + If FileExists (sFileName) then + Kill (sFileName) + End If + sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmImpress) + If FileExists (sFileName) then + Kill (sFileName) + End If + sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmDraw) + If FileExists (sFileName) then + Kill (sFileName) + End If + sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmHyperText) + If FileExists (sFileName) then + Kill (sFileName) + End If + sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmWriter or cFltXML) + If FileExists (sFileName) then + Kill (sFileName) + End If + sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmCalc or cFltXML) + If FileExists (sFileName) then + Kill (sFileName) + End If + sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmImpress or cFltXML) + If FileExists (sFileName) then + Kill (sFileName) + End If + sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmDraw or cFltXML) + If FileExists (sFileName) then + Kill (sFileName) + End If + sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmWriter or cFlt50) + If FileExists (sFileName) then + Kill (sFileName) + End If + sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmCalc or cFlt50) + If FileExists (sFileName) then + Kill (sFileName) + End If + sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmImpress or cFlt50) + If FileExists (sFileName) then + Kill (sFileName) + End If + sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmDraw or cFlt50) + If FileExists (sFileName) then + Kill (sFileName) + End If +End Sub + +Sub DeleteAllLogFiles() + If FileExists (sWorkPath+sLogFileName) then + Kill (sWorkPath+sLogFileName) + End If + If FileExists (sWorkPath+sSWLogFileName) then + Kill (sWorkPath+sSWLogFileName) + End If + If FileExists (sWorkPath+sSCLogFileName) then + Kill (sWorkPath+sSCLogFileName) + End If + If FileExists (sWorkPath+sSDLogFileName) then + Kill (sWorkPath+sSDLogFileName) + End If + If FileExists (sWorkPath+sSMathLogFileName) then + Kill (sWorkPath+sSMathLogFileName) + End If + If FileExists (sWorkPath+sSImDLogFileName) then + Kill (sWorkPath+sSImDLogFileName) + End If + If FileExists (sWorkPath+sSChartLogFileName) then + Kill (sWorkPath+sSChartLogFileName) + End If + If FileExists (sWorkPath+sSHptLogFileName) then + Kill (sWorkPath+sSHptLogFileName) + End If + If FileExists (sWorkPath+sSMessageLogFileName) then + Kill (sWorkPath+sSMessageLogFileName) + End If + If FileExists (sWorkPath+sSDrawLogFileName) then + Kill (sWorkPath+sSDrawLogFileName) + End If + If FileExists (sWorkPath+sJavaLogFileName) then + Kill (sWorkPath+sJavaLogFileName) + End If + If FileExists (sWorkPath+sSDBLogFileName) then + Kill (sWorkPath+sSDBLogFileName) + End If + If FileExists (sWorkPath+sExtLogFileName) then + Kill (sWorkPath+sExtLogFileName) + End If +end Sub + +Function OpenLogDat (sFileName as String) as Integer + Dim LocaleFileChannel% + If FileExists (sWorkPath+sFileName) then + Kill (sWorkPath+sFileName) + End If + LocaleFileChannel% = Freefile + Open sWorkPath+sFileName For Output As LocaleFileChannel% + OpenLogDat = LocaleFileChannel% +end Function + +Function GetWorkPath as string + sTemp = "$(userpath)/temp/" + GetWorkPath = CreateUnoService("com.sun.star.config.SpecialConfigManager").SubstituteVariables(sTemp) +End Function + +Function GetWorkURL as string + sTemp = "$(userurl)/temp/" + GetWorkURL = CreateUnoService("com.sun.star.config.SpecialConfigManager").SubstituteVariables(sTemp) +End Function + +Function GetSystem (sTmpWorkPath as string) as string + GetSystem = "" + if InStr (sTmpWorkPath, ":") then + GetSystem = "windows" + else + GetSystem = "unix" + End If +end Function + +Function ConvertPathToWin (sTmpWorkPath as string) as string + for i%=1 to Len(sTmpWorkPath) + sTemp = Mid (sTmpWorkPath, i%, 1) + if sTemp = "/" then + sTmpWorkPath = Left (sTmpWorkPath, i%-1) + "\" + Right (sTmpWorkPath, Len(sTmpWorkPath)-i%) + else + if sTemp = "|" then + sTmpWorkPath = Left (sTmpWorkPath, i%-1) + ":" + Right (sTmpWorkPath, Len(sTmpWorkPath)-i%) + end If + end If + next i% + ConvertPathToWin = sTmpWorkPath +end Function + +Sub TestAllDocs() +DIM sDocURL as String, sDocPath as String +DIM nStrPos as Long + + sWorkPath = GetWorkPath + sWorkPathURL = GetWorkURL + + if GetSystem (sWorkPath) = "windows" then + sWorkPath = ConvertPathToWin (sWorkPath) + end if + + 'search ExtensionURL + sDocURL = gOutPutDoc.URL + CompatibilityMode(true) + nStrPos = InStrRev (sDocURL, "/" ) + CompatibilityMode(false) + sExtensionURL = Left (sDocURL, nStrPos) + + call DeleteAllSavedFiles() + call DeleteAllLogFiles() + MainFileChannel = OpenLogDat (sLogFileName) + call WriteTestSequence (MainFileChannel) + if bMakeWriterTest then + call MakeDocTest (frmWriter) + end if + if bMakeCalcTest then + call MakeDocTest (frmCalc) + end if + if bMakeImpressTest then + call MakeDocTest (frmImpress) + end if + if bMakeDrawTest then + call MakeDocTest (frmDraw) + end if + if bMakeHTMLTest then + call MakeDocTest (frmHyperText) + end if + if bMakeChartTest then + call MakeChartTest (frmChart) + end if + if bMakeMathTest then + call MakeNewDoc (frmMath) + end if + if bMakeJavaTest then + call TestJava (frmJava) + end if + if bMakeDBTest then + call Test_DB.TestDB (frmDataBase) + end if + if bMakeExtensionTest then + call Test_Ext.TestExtensions (frmExtension) + end if + + Close #MainFileChannel +end Sub + +Sub WriteTestSequence (FileChannel as integer) + Print #FileChannel, "Sequence of testing" + + if bMakeWriterTest then + WriteTests ("writer : ", true, FileChannel) + end if + if bMakeCalcTest then + WriteTests ("calc : ", true, FileChannel) + end if + if bMakeImpressTest then + WriteTests ("impress : ", true, FileChannel) + end if + if bMakeDrawTest then + WriteTests ("draw : ", true, FileChannel) + end if + if bMakeHTMLTest then + WriteTests ("HTML : ", true, FileChannel) + end if + if bMakeChartTest then + WriteTests ("chart : ", false, FileChannel) + end if + if bMakeMathTest then + WriteTests ("math : ", false, FileChannel) + end if + if bMakeJavaTest then + WriteTests ("Java : ", false, FileChannel) + end if + if bMakeDBTest then + WriteDBTests ("Database : ", FileChannel) + end if + if bMakeExtensionTest then + WriteExtensionTests ("Extension : ", FileChannel) + end if + + Print #FileChannel +end Sub + +Sub WriteTests (sText as string, bTestAll as boolean, nFileChannel as integer) + Dim sWriteStr as string + + sWriteStr = sText + sWriteStr = sWriteStr + "new" + if bTestAll then + if bMakeCutTest then + sWriteStr = sWriteStr + ", cut" + end if + if bMakePasteTest then + sWriteStr = sWriteStr + ", paste" + end if + if bMakeSaveOpen8Test then + sWriteStr = sWriteStr + ", save 8.0" + end if + if bMakeSaveOpenXMLTest then + sWriteStr = sWriteStr + ", save XML" + end if + if bMakeSaveOpen50Test then + sWriteStr = sWriteStr + ", save 5.0" + end if + if bMakeSaveOpen8Test then + sWriteStr = sWriteStr + ", open 8.0" + end if + if bMakeSaveOpenXMLTest then + sWriteStr = sWriteStr + ", open XML" + end if + if bMakeSaveOpen50Test then + sWriteStr = sWriteStr + ", open 5.0" + end if + end if + + sWriteStr = sWriteStr + ", close" + + Print #nFileChannel, sWriteStr +end Sub + +Sub WriteDBTests (sText as string, nFileChannel as integer) + Dim sWriteStr as string + + sWriteStr = sText + sWriteStr = sWriteStr + "open / services" + sWriteStr = sWriteStr + ", insert" + sWriteStr = sWriteStr + ", delete" + sWriteStr = sWriteStr + ", seek" + sWriteStr = sWriteStr + ", close" + + Print #nFileChannel, sWriteStr +end Sub + +Sub WriteExtensionTests (sText as string, nFileChannel as integer) + Dim sWriteStr as string + + sWriteStr = sText + sWriteStr = sWriteStr + "services" + sWriteStr = sWriteStr + ", install" + sWriteStr = sWriteStr + ", uninstall" + + Print #nFileChannel, sWriteStr +end Sub + +Sub MakeDocTest (FilterType as Integer) + Dim oDoc as Object + Dim sFileNameXML$, sFileName50$, sFileName8$ + Dim bError as Boolean + Dim nCurrentAction as Integer + + On Local Error GoTo DOCTESTERROR + nCurrentAction = cLogfileFailed + FileChannel% = OpenLogDat (GetLogFileName(FilterType)) + nCurrentAction = cDocNew + oDoc = LoadDoc ("private:factory/" + GetDocFilter(FilterType or cFltNewDoc)) + LogState (not IsNull (oDoc), GetDocFilter(FilterType or cFltNewDoc)+" "+ cMessageNewDoc, FileChannel) + LogState (not IsNull (oDoc), GetDocFilter(FilterType or cFltNewDoc)+" "+ cMessageNewDoc, MainFileChannel) + SetStatus (FilterType, cDocNew, not IsNull (oDoc)) + if not IsNull (oDoc) then + nCurrentAction = cDocCut + call CutAndPaste(FilterType, oDoc) +' bError = oDoc.CurrentController.frame.close + nCurrentAction = cDocSaveOpen8 + if bMakeSaveOpen8Test and IsFilterAvailable (FilterType or cFlt8) then + sFileName8 = sWorkPathURL+cTempFileName+"."+GetDocEndings(FilterType or cFlt8) + SaveDoc (sFileName8, oDoc, GetDocFilter(FilterType or cFlt8)) + end if + nCurrentAction = cDocSaveOpenXML + if bMakeSaveOpenXMLTest and IsFilterAvailable (FilterType or cFltXML) then + sFileNameXML = sWorkPathURL+cTempFileName+"."+GetDocEndings(FilterType or cFltXML) + SaveDoc (sFileNameXML, oDoc, GetDocFilter(FilterType or cFltXML)) + end if + nCurrentAction = cDocSaveOpen50 + if bMakeSaveOpen50Test and IsFilterAvailable (FilterType or cFlt50) then + sFileName50 = sWorkPathURL+cTempFileName+"."+GetDocEndings(FilterType or cFlt50) + SaveDoc (sFileName50, oDoc, GetDocFilter(FilterType or cFlt50)) + end if +' oDoc.dispose + nCurrentAction = cDocClose + oDoc.close (true) +' bError = true ' nur zum ¦bergang, weil bError = oDoc.CurrentController.frame.close nicht geht +' LogState (bError, GetDocFilter(FilterType)+" "+ cMessageCloseDoc, FileChannel) +' LogState (bError, GetDocFilter(FilterType)+" "+ cMessageCloseDoc, MainFileChannel) +' SetStatus (FilterType, cDocClose, bError) + nCurrentAction = cDocSaveOpen8 + if bMakeSaveOpen8Test and IsFilterAvailable (FilterType or cFlt8) then + oDoc = LoadDoc (sFileName8) + +' oDoc = Documents.open(sFileName) + LogState (not IsNull (oDoc),GetDocFilter(FilterType or cFltNewDoc)+" "+ cMessageSaveOpen8Doc, FileChannel) + LogState (not IsNull (oDoc),GetDocFilter(FilterType or cFltNewDoc)+" "+ cMessageSaveOpen8Doc, MainFileChannel) + SetStatus (FilterType, cDocSaveOpen8, not IsNull (oDoc)) + + if not IsNull (oDoc) then +' oDoc.dispose + nCurrentAction = cDocClose + oDoc.close (true) + end If + end if + + nCurrentAction = cDocSaveOpenXML + if bMakeSaveOpenXMLTest and IsFilterAvailable (FilterType or cFltXML) then + oDoc = LoadDoc (sFileNameXML) + +' oDoc = Documents.open(sFileName) + LogState (not IsNull (oDoc),GetDocFilter(FilterType or cFltNewDoc)+" "+ cMessageSaveOpenXMLDoc, FileChannel) + LogState (not IsNull (oDoc),GetDocFilter(FilterType or cFltNewDoc)+" "+ cMessageSaveOpenXMLDoc, MainFileChannel) + SetStatus (FilterType, cDocSaveOpenXML, not IsNull (oDoc)) + + if not IsNull (oDoc) then +' oDoc.dispose + nCurrentAction = cDocClose + oDoc.close (true) + end If + end if + + nCurrentAction = cDocSaveOpen50 + if bMakeSaveOpen50Test and IsFilterAvailable (FilterType or cFlt50) then + oDoc = LoadDoc (sFileName50) + +' oDoc = Documents.open(sFileName) + LogState (not IsNull (oDoc),GetDocFilter(FilterType or cFltNewDoc)+" "+ cMessageSaveOpen50Doc, FileChannel) + LogState (not IsNull (oDoc),GetDocFilter(FilterType or cFltNewDoc)+" "+ cMessageSaveOpen50Doc, MainFileChannel) + SetStatus (FilterType, cDocSaveOpen50, not IsNull (oDoc)) + + if not IsNull (oDoc) then +' oDoc.dispose + nCurrentAction = cDocClose + oDoc.close (true) + end If + end if + end If + Print #FileChannel, "---" + Close #FileChannel% + Exit Sub ' Without error + + DOCTESTERROR: + If (nCurrentAction = cLogfileFailed) then + SetStatus (FilterType, cDocNew, False) + Exit Sub + else + LogState (False, GetDocFilter(FilterType or cFltNewDoc)+" "+ GetErrorMessage(nCurrentAction), FileChannel) + LogState (False, GetDocFilter(FilterType or cFltNewDoc)+" "+ GetErrorMessage(nCurrentAction), MainFileChannel) + SetStatus (FilterType, nCurrentAction, False) + Close #FileChannel% + End If + Exit Sub ' With error +End Sub + +Sub MakeNewDoc (FilterType as Integer) + DIM oDoc as Object + Dim bError as Boolean + Dim nCurrentAction as Integer + On Local Error GoTo DOCTESTERROR2 + nCurrentAction = cLogfileFailed + FileChannel% = OpenLogDat (GetLogFileName(FilterType)) + nCurrentAction = cDocNew +' oDoc = Documents.Add(GetDocFilter(FilterType)) + oDoc = LoadDoc ("private:factory/" + GetDocFilter(FilterType or cFltNewDoc)) + LogState (not IsNull (oDoc), GetDocFilter(FilterType or cFltNewDoc)+" "+ cMessageNewDoc, FileChannel) + LogState (not IsNull (oDoc), GetDocFilter(FilterType or cFltNewDoc)+" "+ cMessageNewDoc, MainFileChannel) + SetStatus (FilterType, cDocNew, not IsNull (oDoc)) + if not IsNull (oDoc) then + nCurrentAction = cDocClose +' oDoc.dispose + oDoc.close (true) +' bError = true ' nur zum ¦bergang, weil bError = oDoc.CurrentController.frame.close nicht geht +' LogState (bError, GetDocFilter(FilterType)+" "+ cMessageCloseDoc, FileChannel) +' LogState (bError, GetDocFilter(FilterType)+" "+ cMessageCloseDoc, MainFileChannel) +' SetStatus (FilterType, cDocClose, bError) + end If + Print #FileChannel, "---" + Close #FileChannel% + Exit Sub ' Without error + + DOCTESTERROR2: + If (nCurrentAction = cLogfileFailed) then + SetStatus (FilterType, cDocNew, False) + Exit Sub + else + LogState (False, GetDocFilter(FilterType or cFltNewDoc)+" "+ GetErrorMessage(nCurrentAction), FileChannel) + LogState (False, GetDocFilter(FilterType or cFltNewDoc)+" "+ GetErrorMessage(nCurrentAction), MainFileChannel) + SetStatus (FilterType, nCurrentAction, False) + Close #FileChannel% + End If + Exit Sub ' With error +End Sub + +Sub MakeChartTest (FilterType as Integer) + Dim oCharts as Object + Dim oDoc as Object + Dim oRange(0) as New com.sun.star.table.CellRangeAddress + Dim oRect as New com.sun.star.awt.Rectangle + const cChartName="TestChart" + Dim bError as Boolean + Dim nCurrentAction as Integer + On Local Error GoTo CHARTTESTERROR + nCurrentAction = cLogfileFailed + FileChannel% = OpenLogDat (GetLogFileName(FilterType)) + nCurrentAction = cDocNew + oDoc = LoadDoc ("private:factory/" + GetDocFilter(frmCalc or cFltNewDoc)) + if not IsNull (oDoc) then + oCharts = oDoc.sheets(0).Charts + oCharts.AddNewByName (cChartName, oRect, oRange(), true, true) + bError=oCharts.HasByName(cChartName) + LogState (bError, GetDocFilter(FilterType or cFltNewDoc)+" "+ cMessageNewDoc, FileChannel) + LogState (bError, GetDocFilter(FilterType or cFltNewDoc)+" "+ cMessageNewDoc, MainFileChannel) + SetStatus (FilterType, cDocNew, bError) +' oDoc.dispose + nCurrentAction = cDocClose + oDoc.close (true) + else + LogState (not IsNull (oDoc), GetDocFilter(frmCalc or cFltNewDoc)+" "+ cMessageNewDoc, FileChannel) + LogState (not IsNull (oDoc), GetDocFilter(frmCalc or cFltNewDoc)+" "+ cMessageNewDoc, MainFileChannel) + SetStatus (frmCalc, cDocNew, not IsNull (oDoc)) + End if + Print #FileChannel, "---" + Close #FileChannel% + Exit Sub ' Without error + + CHARTTESTERROR: + If (nCurrentAction = cLogfileFailed) then + SetStatus (FilterType, cDocNew, False) + Exit Sub + else + LogState (False, GetDocFilter(FilterType or cFltNewDoc)+" "+ GetErrorMessage(nCurrentAction), FileChannel) + LogState (False, GetDocFilter(FilterType or cFltNewDoc)+" "+ GetErrorMessage(nCurrentAction), MainFileChannel) + SetStatus (FilterType, nCurrentAction, False) + Close #FileChannel% + End If + Exit Sub ' With error +End Sub + +Sub LogState (bState as Boolean, sText as String, nLocaleFileChannel as integer) + if bState then + Print #nLocaleFileChannel, sText+" -> ok" + else + Print #nLocaleFileChannel, sText+" -> error" + end If +end Sub + +Function GetDocEndings (DocType as Integer) as String + Select Case ( DocType ) + case frmWriter or cFlt8 + GetDocEndings = "odt" ' Textdokument + case frmCalc or cFlt8 + GetDocEndings = "ods" 'Tabellendokument + case frmImpress or cFlt8 + GetDocEndings = "odp" 'PrÕsentation + case frmDraw or cFlt8 + GetDocEndings = "odg" 'Zeichen + case frmHyperText, frmHyperText or cFlt50, frmHyperText or cFltXML + GetDocEndings = "html" 'Hypertext-Dokument + case frmWriter or cFlt50 + GetDocEndings = "sdw" ' Textdokument 5.0 + case frmCalc or cFlt50 + GetDocEndings = "sdc" 'Tabellendokument 5.0 + case frmImpress or cFlt50 + GetDocEndings = "sdd" 'PrÕsentation 5.0 + case frmDraw or cFlt50 + GetDocEndings = "sda" 'Zeichen 5.0 + case frmWriter or cFltXML + GetDocEndings = "sxw" ' Textdokument + case frmCalc or cFltXML + GetDocEndings = "sxc" 'Tabellendokument + case frmImpress or cFltXML + GetDocEndings = "sxi" 'PrÕsentation + case frmDraw or cFltXML + GetDocEndings = "sxd" 'Zeichen + case else + GetDocEndings = "" + end Select +end Function + +Function GetDocFilter (DocType as Integer) as String + Select Case ( DocType ) + case frmWriter or cFlt8 + GetDocFilter = "writer8" ' Textdokument + case frmCalc or cFlt8 + GetDocFilter = "calc8" 'Tabellendokument + case frmImpress or cFlt8 + GetDocFilter = "impress8" 'Präsentation + case frmDraw or cFlt8 + GetDocFilter = "draw8" 'Zeichen + case frmMath or cFlt8 + GetDocFilter = "math8" 'Formel + + case frmWriter or cFltXML + GetDocFilter = "StarOffice XML (Writer)" ' Textdokument + case frmCalc or cFltXML + GetDocFilter = "StarOffice XML (Calc)" 'Tabellendokument + case frmImpress or cFltXML + GetDocFilter = "StarOffice XML (Impress)" 'Präsentation + case frmDraw or cFltXML + GetDocFilter = "StarOffice XML (Draw)" 'Zeichen + case frmMath or cFltXML + GetDocFilter = "StarOffice XML (Math)" 'Formel + + case frmHyperText, frmHyperText or cFlt50, frmHyperText or cFltXML + GetDocFilter = "HTML" 'Hypertext-Dokument + case frmWriter or cFlt50 + GetDocFilter = "StarWriter 5.0" ' Textdokument 5.0 + case frmCalc or cFlt50 + GetDocFilter = "StarCalc 5.0" 'Tabellendokument 5.0 + case frmImpress or cFlt50 + GetDocFilter = "StarImpress 5.0" 'Präsentation 5.0 + case frmDraw or cFlt50 + GetDocFilter = "StarDraw 5.0" 'Zeichen 5.0 + case frmMath or cFlt50 + GetDocFilter = "StarMath 5.0" 'Formel 5.0 + + case frmWriter or cFltNewDoc + GetDocFilter = "swriter" ' Textdokument + case frmCalc or cFltNewDoc + GetDocFilter = "scalc" 'Tabellendokument + case frmMessage or cFltNewDoc + GetDocFilter = "Message" 'Nachricht + case frmImpress or cFltNewDoc + GetDocFilter = "simpress" 'Präsentation + case frmDraw or cFltNewDoc + GetDocFilter = "sdraw" 'Zeichen + case frmMath or cFltNewDoc + GetDocFilter = "smath" 'Formel + case frmImage or cFltNewDoc + GetDocFilter = "simage" 'Bild + case frmHyperText or cFltNewDoc + GetDocFilter = "swriter/web" 'Hypertext-Dokument + case frmChart or cFltNewDoc + GetDocFilter = "schart" 'Diagramm + case else + GetDocFilter = "" + end Select +end Function + +Function GetLogFileName (DocType as Integer) as String + Select Case ( DocType ) + case frmWriter + GetLogFileName = sSWLogFileName ' Textdokument + case frmCalc + GetLogFileName = sSCLogFileName 'Tabellendokument + case frmMessage + GetLogFileName = sSMessageLogFileName 'Nachricht + case frmImpress + GetLogFileName = sSDLogFileName 'PrÕsentation + case frmDraw + GetLogFileName = sSDrawLogFileName 'Zeichnen + case frmMath + GetLogFileName = sSMathLogFileName 'Formel + case frmImage + GetLogFileName = sSImDLogFileName 'Bild + case frmHyperText + GetLogFileName = sSHptLogFileName 'Hypertext-Dokument + case frmChart + GetLogFileName = sSChartLogFileName 'Diagramm + case frmJava + GetLogFileName = sJavaLogFileName 'Java + case frmDataBase + GetLogFileName = sSDBLogFileName 'Database + case frmExtension + GetLogFileName = sExtLogFileName 'Extension + case else + GetLogFileName = "" + end Select +end Function + +Function GetErrorMessageOnAction (nAction as Integer) as String + Select Case ( nAction ) + case cDocNew + GetErrorMessageOnAction = cMessageNewDoc + case cDocCut + GetErrorMessageOnAction = cMessageCutObj + case cDocPaste + GetErrorMessageOnAction = cMessagePasteObj + case cDocSaveOpen8 + GetErrorMessageOnAction = cMessageSaveOpen8Doc + case cDocSaveOpenXML + GetErrorMessageOnAction = cMessageSaveOpenXMLDoc + case cDocSaveOpen50 + GetErrorMessageOnAction = cMessageSaveOpen50Doc + case cDocClose + GetErrorMessageOnAction = cMessageCloseDoc + case else + GetErrorMessageOnAction = "" + end Select +end Function + +Function IsFilterAvailable (FilterType as Integer) as boolean + IsFilterAvailable = true + if ((FilterType = (frmHyperText or cFlt50)) or (FilterType = (frmHyperText or cFltXML))) then + IsFilterAvailable = false + end if +End Function + +Function TestJava (FilterType as Integer) as boolean + Dim oObj as Object + FileChannel% = OpenLogDat (GetLogFileName(FilterType)) + oObj = createUnoService(cUnoJavaLoader) + LogState (not IsNull (oObj), "Java "+ cMessageNewDoc, FileChannel) + LogState (not IsNull (oObj), "Java "+ cMessageNewDoc, MainFileChannel) + SetStatus (FilterType, cDocNew, not IsNull (oObj)) + + Print #FileChannel, "---" + Close #FileChannel% + + TestJava = not IsNull (oObj) +End Function + +Sub CutAndPaste (DocType as Integer, oDoc as Object) + Dim sText as String + Dim oWin as Object + Dim oText as Object + Dim oView as Object + Dim bCutState as boolean, bPasteState as boolean + Select Case ( DocType ) + case frmWriter + Dim oCursor as Object + + sText = "AutomaticText" + oText = oDoc.GetText + oCursor = oText.CreateTextCursor + oText.InsertString(oCursor, sText, true) ' Cursor selektiert den Text + oView = oDoc.getCurrentController + oView.Select(oCursor) + + if bMakeCutTest then + call CutText (oDoc) + + if oText.GetString = "" Then + bCutState = True + else + bCutState = False + end If + SetStatus (DocType, cDocCut, bCutState) + LogState (bCutState, GetDocFilter(DocType or cFltNewDoc)+" "+ cMessageCutObj, FileChannel) + LogState (bCutState, GetDocFilter(DocType or cFltNewDoc)+" "+ cMessageCutObj, MainFileChannel) + end if + + if bMakePasteTest and bMakeCutTest then + call PasteText (oDoc) + + if oText.GetString = sText Then + bPasteState = True + else + bPasteState = False + end If + SetStatus (DocType, cDocPaste, bPasteState) + LogState (bPasteState, GetDocFilter(DocType or cFltNewDoc)+" "+ cMessagePasteObj, FileChannel) + LogState (bPasteState, GetDocFilter(DocType or cFltNewDoc)+" "+ cMessagePasteObj, MainFileChannel) + end if + + case frmCalc + DIM oCell as Object + + sText = "AutomaticText" + oCell = oDoc.Sheets(0).GetCellByPosition(0, 0) + oCell.String = sText + oView = oDoc.getCurrentController + oView.Select(oCell) + + if bMakeCutTest then + call CutText (oDoc) + + if oCell.String = "" Then + bCutState = True + else + bCutState = False + end If + SetStatus (DocType, cDocCut, bCutState) + LogState (bCutState, GetDocFilter(DocType or cFltNewDoc)+" "+ cMessageCutObj, FileChannel) + LogState (bCutState, GetDocFilter(DocType or cFltNewDoc)+" "+ cMessageCutObj, MainFileChannel) + end if + + if bMakePasteTest and bMakeCutTest then + call PasteText (oDoc) + + if oCell.String = sText Then + bPasteState = True + else + bPasteState = False + end If + SetStatus (DocType, cDocPaste, bPasteState) + LogState (bPasteState, GetDocFilter(DocType or cFltNewDoc)+" "+ cMessagePasteObj, FileChannel) + LogState (bPasteState, GetDocFilter(DocType or cFltNewDoc)+" "+ cMessagePasteObj, MainFileChannel) + end if + case frmMessage + case frmImpress, frmDraw + Dim oPage as Object + Dim oRect as Object + Dim xSize as Object + Dim xPoint as Object + Dim bObjState as Boolean + + xSize = CreateUnoStruct ("com.sun.star.awt.Size") + xPoint = CreateUnoStruct ("com.sun.star.awt.Point") + xSize.Width = 2000 + xSize.Height = 2000 + xPoint.x = 10000 + xPoint.y = 10000 + oPage = oDoc.DrawPages(0) + + if DocType = frmImpress Then + oPage.Layout = 20 ' set page layot to none + end If + + oRect = oDoc.CreateInstance("com.sun.star.drawing.RectangleShape") + oRect.Size = xSize + oRect.Position = xPoint + oPage.add(oRect) + + oView = oDoc.getCurrentController + oView.Select(oRect) + + ' Prüft ob überhaupt ein Object angelegt wurde + if oPage.count = 1 Then + bObjState = True + else + bObjState = False + end If + + if bMakeCutTest then + call CutText (oDoc) + + if (oPage.count = 0) and bObjState Then + bCutState = True + else + bCutState = False + end If + SetStatus (DocType, cDocCut, bCutState) + LogState (bCutState, GetDocFilter(DocType or cFltNewDoc)+" "+ cMessageCutObj, FileChannel) + LogState (bCutState, GetDocFilter(DocType or cFltNewDoc)+" "+ cMessageCutObj, MainFileChannel) + end if + + wait (1000) 'wait after cut + + if bMakePasteTest and bMakeCutTest then + call PasteText (oDoc) + + if (oPage.count = 1) and bObjState Then + bPasteState = True + else + bPasteState = False + end If + SetStatus (DocType, cDocPaste, bPasteState) + LogState (bPasteState, GetDocFilter(DocType or cFltNewDoc)+" "+ cMessagePasteObj, FileChannel) + LogState (bPasteState, GetDocFilter(DocType or cFltNewDoc)+" "+ cMessagePasteObj, MainFileChannel) + end if + case frmMath + case frmImage + case frmHyperText + case frmChart + end Select +end Sub + +Sub LoadLibrary( LibName as String ) + + dim args(1) + dim arg as new com.sun.star.beans.PropertyValue + arg.Name = "LibraryName" + arg.Value = LibName + args(0) = arg + + dim url as new com.sun.star.util.URL + dim trans as object + trans = createUnoService("com.sun.star.util.URLTransformer" ) + url.Complete = "slot:6517" + trans.parsestrict( url ) + + dim disp as object + disp = StarDesktop.currentFrame.queryDispatch( url, "", 0 ) + disp.dispatch( url, args() ) + +End Sub + +Sub LoadDoc (DocName as String) as Object + dim trans as object + trans = createUnoService("com.sun.star.util.URLTransformer" ) + url = createUnoStruct("com.sun.star.util.URL" ) + url.Complete = DocName + if Left(DocName, 5 ) <> "file:" then + trans.parsestrict( url ) + endif + + Dim aPropArray(0) as Object + aPropArray(0) = CreateUnoStruct("com.sun.star.beans.PropertyValue") + aPropArray(0).Name = "OpenFlags" + aPropArray(0).Value = "S" + + dim doc as object + dim noargs() + doc = StarDesktop.loadComponentFromURL( url.Complete, "_blank", 0, aPropArray() ) ' XModel + LoadDoc = doc +End Sub + +Sub SaveDoc (DocName as String, oDoc as Object, sFilterName as string ) + dim trans as object + trans = createUnoService("com.sun.star.util.URLTransformer" ) + url = createUnoStruct("com.sun.star.util.URL" ) + url.Complete = DocName + if Left(DocName, 5 ) <> "file:" then + trans.parsestrict( url ) + endif + + if not (sFilterName = "") then + Dim aPropArray(0) as Object + aPropArray(0) = CreateUnoStruct("com.sun.star.beans.PropertyValue") + aPropArray(0).Name = "FilterName" + aPropArray(0).Value = sFilterName + + oDoc.storeAsURL( url.Complete, aPropArray() ) + else + MessageBox "Filtername is unknown!" + end if +end Sub +</script:module> diff --git a/smoketestoo_native/data/Test_DB.xml b/smoketestoo_native/data/Test_DB.xml new file mode 100644 index 000000000000..34ade11f75fb --- /dev/null +++ b/smoketestoo_native/data/Test_DB.xml @@ -0,0 +1,161 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* 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. +* +**********************************************************************--> +<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd"> +<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Test_DB" script:language="StarBasic">REM ***** Database Test ***** + +const cMessageDatabaseService = "Database Service" +const cMessageDatabaseOpen = "Open Database" +const cMessageDatabaseInsert = "Insert record into Database" +const cMessageDatabaseDelete = "Delete record from Database" +const cMessageDatabaseSeek = "Read other record from Database" +const cMessageDatabaseClose = "Close Database" + +Sub TestDB (FilterType as Integer) + +Dim oDBConnection as Object, oDataSource as Object, oDBContext as Object +Dim sDBName as String, sTable as String, sCurrentMessage as String +Dim nRowCount as Integer, nCurrentAction as Integer +Dim bResult as Boolean +Const sTestString = "Automatical Test" + + + On Local Error GoTo DBERROR + + nCurrentAction = cLogfileFailed + FileChannel% = OpenLogDat (GetLogFileName(FilterType)) + + nCurrentAction = cDBService + sCurrentMessage = cMessageDatabaseService + " " + cUnoDatabaseContext + + oDBContext = CreateUnoService(cUnoDatabaseContext) + sDBName=oDBContext.ElementNames(0) 'Names of Databases + + nCurrentAction = cDBOpen + sCurrentMessage = cMessageDatabaseOpen + + oDataSource = oDBContext.GetByName(sDBName) + sTable=oDataSource.Tables.ElementNames(0) + oDBConnection = oDBContext.GetByName(sDBName).GetConnection("","") + + LogState (not IsNull (oDBConnection), "Database "+ cMessageDatabaseOpen, FileChannel) + LogState (not IsNull (oDBConnection), "Database "+ cMessageDatabaseOpen, MainFileChannel) + SetStatus (FilterType, cDBOpen, not IsNull (oDBConnection)) + if (IsNull(oDBConnection)) then + Close #FileChannel% + Exit Sub + End If + + ' Database is open now + + nCurrentAction = cDBService + sCurrentMessage = cMessageDatabaseService + " " + cUnoRowSet + oRowSet = createUnoService(cUnoRowSet) + + if (IsNull(oRowSet)) then + LogState (not IsNull (oRowSet), "Database "+ cMessageDatabaseService + " " + cUnoRowSet, FileChannel) + LogState (not IsNull (oRowSet), "Database "+ cMessageDatabaseService + " " + cUnoRowSet, MainFileChannel) + SetStatus (FilterType, cDBService, not IsNull (oRowSet)) + Exit Sub + else + LogState (not IsNull (oRowSet), "Database "+ cMessageDatabaseService, FileChannel) + LogState (not IsNull (oRowSet), "Database "+ cMessageDatabaseService, MainFileChannel) + SetStatus (FilterType, cDBService, not IsNull (oRowSet)) + End If + + nCurrentAction = cDBInsert + sCurrentMessage = cMessageDatabaseInsert + + oRowSet.ActiveConnection = oDBConnection + + oRowSet.CommandType = com.sun.star.sdb.CommandType.COMMAND + oRowSet.Command = "SELECT * FROM " + sTable + oRowSet.execute() + + oRowSet.moveToInsertRow + oRowSet.updateString(5, sTestString) + + oRowSet.insertRow() + nRowCount=oRowSet.RowCount + + oRowSet.moveToCurrentRow() + + bResult = (oRowSet.getString(5) = sTestString) + LogState (bResult, "Database "+ cMessageDatabaseInsert, FileChannel) + LogState (bResult, "Database "+ cMessageDatabaseInsert, MainFileChannel) + SetStatus (FilterType, cDBInsert, bResult) + + 'delete only if insert passed + + if (bResult) Then + nCurrentAction = cDBDelete + sCurrentMessage = cMessageDatabaseDelete + oRowSet.deleteRow() + bResult = (nRowCount - oRowSet.RowCount = 0) + if ( bResult ) Then + oRowSet.next() + bResult = (nRowCount - oRowSet.RowCount = 1) + End If + LogState (bResult, "Database "+ cMessageDatabaseDelete, FileChannel) + LogState (bResult, "Database "+ cMessageDatabaseDelete, MainFileChannel) + SetStatus (FilterType, cDBDelete, bResult) + End If + + ' read other record + + nCurrentAction = cDBSeek + sCurrentMessage = cMessageDatabaseSeek + oRowSet.first() + bResult = not (oRowSet.getString(5) = sTestString) + LogState (bResult, "Database "+ cMessageDatabaseSeek, FileChannel) + LogState (bResult, "Database "+ cMessageDatabaseSeek, MainFileChannel) + SetStatus (FilterType, cDBSeek, bResult) + + nCurrentAction = cDBClose + sCurrentMessage = cMessageDatabaseClose + oDBConnection.Dispose() + LogState (True, "Database "+ cMessageDatabaseClose, FileChannel) + LogState (True, "Database "+ cMessageDatabaseClose, MainFileChannel) + SetStatus (FilterType, cDBClose, True) + + Print #FileChannel, "---" + Close #FileChannel% + Exit Sub ' Without error + + DBERROR: + If (nCurrentAction = cLogfileFailed) then + SetStatus (FilterType, cDBOpen, False) + Exit Sub + else + LogState (False, "Database "+ sCurrentMessage, FileChannel) + LogState (False, "Database "+ sCurrentMessage, MainFileChannel) + SetStatus (FilterType, nCurrentAction, False) + Close #FileChannel% + End If + Exit Sub ' With error +End Sub +</script:module> diff --git a/smoketestoo_native/data/Test_Ext.xml b/smoketestoo_native/data/Test_Ext.xml new file mode 100644 index 000000000000..31d27dc7a4a7 --- /dev/null +++ b/smoketestoo_native/data/Test_Ext.xml @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* 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. +* +**********************************************************************--> +<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd"> +<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Test_Ext" script:language="StarBasic">REM ***** BASIC ***** + +const cMessageExtensionService = "Extension Service" +const cMessageExtensionInstall = "Install Extension" +const cMessageExtensionUninstall = "Uninstall Extension" + +Sub TestExtensions (FilterType as Integer) +Dim oTestExtension as Object, obj_null as Object +Dim sCurrentMessage as String +Dim nCurrentAction as Integer +Dim bResult as Boolean +Dim sImplementationNameString as String +sImplementationNameString = cUnoSmoketestTestExtension + "$_TestExtension" + + On Local Error GoTo EXTERROR + + nCurrentAction = cLogfileFailed + FileChannel% = OpenLogDat (GetLogFileName(FilterType)) + + sCurrentMessage = cMessageExtensionService + nCurrentAction = cEXTService + + 'Create an implementation of com.sun.star.ucb.XCommandEnvironment which is needed for + 'adding the extension. The implementation is in + 'javaunohelper/com/sun/star/comp/juhtest/SmoketestCommandEnvironment.java and the code is in juh.jar + cmdEnv = createUnoService(cUnoSmoketestCommandEnvironment) + + 'Create the component context and then get the singleton ExtensionManager + 'A singleton cannot be created with createUnoService + ctx = getDefaultContext + ext_mgr = ctx.getValueByName("/singletons/" + cExtensionManager) + + LogState (not IsNull (ext_mgr), "Extension "+ cMessageExtensionService, FileChannel) + LogState (not IsNull (ext_mgr), "Extension "+ cMessageExtensionService, MainFileChannel) + SetStatus (FilterType, cEXTService, not IsNull (ext_mgr)) + if (IsNull(ext_mgr)) then + Close #FileChannel% + Exit Sub + End If + + sCurrentMessage = cMessageExtensionInstall + nCurrentAction = cEXTInstall + + 'Add the extension. We must provide a file URL here. + 'By passing "user" we determine that the actions we perform on + 'XExtensionManager only affect the user installation. To modify the share installation one would pass "share". + + Dim props() as Object + ext_mgr.addExtension(sExtensionURL + cExtensionFileName, props, "user", obj_null, cmdEnv) + + 'Check if the extension has been added by creating a service which is contained in the extension. + oTestExtension = createUnoService(cUnoSmoketestTestExtension) + bResult = (oTestExtension.getImplementationName = sImplementationNameString) + LogState (bResult, "Extension "+ cMessageExtensionInstall, FileChannel) + LogState (bResult, "Extension "+ cMessageExtensionInstall, MainFileChannel) + SetStatus (FilterType, cEXTInstall, bResult) + if (not bResult) then + Close #FileChannel% + Exit Sub + End If + + sCurrentMessage = cMessageExtensionUninstall + nCurrentAction = cEXTUninstall + + 'Remove the package + ext_mgr.removeExtension("org.openoffice.legacy." + cExtensionFileName, cExtensionFileName, "user",obj_null, cmdEnv) + + 'Try to create the service which is contained in the now removed extension. + oTestExtension = createUnoService(cUnoSmoketestTestExtension) + + 'The service must not be available anymore. Therefor isNull must return true. + LogState (IsNull (oTestExtension), "Extension "+ cMessageExtensionUninstall, FileChannel) + LogState (IsNull (oTestExtension), "Extension "+ cMessageExtensionUninstall, MainFileChannel) + SetStatus (FilterType, cEXTUninstall, IsNull (oTestExtension)) + + Print #FileChannel, "---" + Close #FileChannel% + Exit Sub ' Without error + + EXTERROR: + If (nCurrentAction = cLogfileFailed) then + SetStatus (FilterType, cEXTService, False) + Exit Sub + else + LogState (False, "Extension "+ sCurrentMessage, FileChannel) + LogState (False, "Extension "+ sCurrentMessage, MainFileChannel) + SetStatus (FilterType, nCurrentAction, False) + Close #FileChannel% + End If + Exit Sub ' With error + +End Sub +</script:module> diff --git a/smoketestoo_native/data/content.xml b/smoketestoo_native/data/content.xml new file mode 100644 index 000000000000..bc63d1d2c551 --- /dev/null +++ b/smoketestoo_native/data/content.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* 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. +* +**********************************************************************--> +<office:document-content xmlns:office="http://openoffice.org/2000/office" xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta" xmlns:number="http://openoffice.org/2000/datastyle" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="http://openoffice.org/2000/chart" xmlns:dr3d="http://openoffice.org/2000/dr3d" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="http://openoffice.org/2000/form" xmlns:script="http://openoffice.org/2000/script" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" office:version="1.2" grddl:transformation="http://docs.oasis-open.org/office/1.2/xslt/odf2rdf.xsl" office:class="text"><office:script/><office:font-decls><style:font-decl style:name="Arial Unicode MS" fo:font-family="'Arial Unicode MS'" style:font-pitch="variable"/><style:font-decl style:name="HG Mincho Light J" fo:font-family="'HG Mincho Light J', 'MS Mincho', 'HG Mincho J', 'HG Mincho L', 'HG Mincho', Mincho, 'MS PMincho', 'MS Gothic', 'HG Gothic J', 'HG Gothic B', 'HG Gothic', Gothic, 'MS PGothic', 'Andale Sans UI', 'Arial Unicode MS', 'Lucida Sans Unicode', Tahoma" style:font-pitch="variable"/><style:font-decl style:name="Thorndale" fo:font-family="Thorndale, 'Times New Roman', Times, 'Lucida Serif', 'Lucida Bright', Timmons, 'New York', Serif" style:font-family-generic="roman" style:font-pitch="variable"/><style:font-decl style:name="Arial" fo:font-family="Arial" style:font-family-generic="swiss" style:font-pitch="variable"/></office:font-decls><office:automatic-styles><style:style style:name="P1" style:family="paragraph"><style:properties fo:text-align="center"/></style:style><style:style style:name="gr1" style:family="graphics"><style:properties style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="from-top" style:horizontal-pos="from-left" style:horizontal-rel="paragraph"/></style:style></office:automatic-styles><office:body><office:forms form:automatic-focus="false" form:apply-design-mode="false"><form:form form:name="Standard" form:apply-filter="true" form:command-type="table" form:service-name="com.sun.star.form.component.Form" office:target-frame="" xlink:href=""><form:control form:name="options" form:service-name="com.sun.star.form.component.CommandButton" form:id="control1"><form:button form:label="options" office:target-frame="" xlink:href="" form:image-data="" form:delay-for-repeat="PT0.50S" form:image-position="center"><form:properties><form:property form:property-name="DefaultControl" form:property-type="string"><form:property-value>stardiv.one.form.control.CommandButton</form:property-value></form:property></form:properties><office:events><script:event script:language="StarBasic" script:event-name="on-performaction" script:macro-name="Standard.Global.ShowOptionsDlg" script:location="document" script:library="document"/></office:events></form:button></form:control><form:control form:name="start" form:service-name="com.sun.star.form.component.CommandButton" form:id="control2"><form:button form:label="start smoketest" office:target-frame="" xlink:href="" form:image-data="" form:delay-for-repeat="PT0.50S" form:image-position="center"><form:properties><form:property form:property-name="DefaultControl" form:property-type="string"><form:property-value>stardiv.one.form.control.CommandButton</form:property-value></form:property></form:properties><office:events><script:event script:language="StarBasic" script:event-name="on-performaction" script:macro-name="Standard.Global.StartTestByOptions" script:location="document" script:library="document"/></office:events></form:button></form:control><form:control form:name="table" form:service-name="com.sun.star.form.component.CommandButton" form:id="control3"><form:button form:label="delete table" office:target-frame="" xlink:href="" form:image-data="" form:delay-for-repeat="PT0.50S" form:image-position="center"><form:properties><form:property form:property-name="DefaultControl" form:property-type="string"><form:property-value>stardiv.one.form.control.CommandButton</form:property-value></form:property></form:properties><office:events><script:event script:language="StarBasic" script:event-name="on-performaction" script:macro-name="Standard.Global.ClearAllText" script:location="document" script:library="document"/></office:events></form:button></form:control></form:form></office:forms><text:sequence-decls><text:sequence-decl text:display-outline-level="0" text:name="Illustration"/><text:sequence-decl text:display-outline-level="0" text:name="Table"/><text:sequence-decl text:display-outline-level="0" text:name="Text"/><text:sequence-decl text:display-outline-level="0" text:name="Drawing"/></text:sequence-decls><text:user-field-decls><text:user-field-decl text:value-type="string" text:string-value="y" text:name="Writer"/><text:user-field-decl text:value-type="string" text:string-value="y" text:name="Calc"/><text:user-field-decl text:value-type="string" text:string-value="y" text:name="Impress"/><text:user-field-decl text:value-type="string" text:string-value="y" text:name="Draw"/><text:user-field-decl text:value-type="string" text:string-value="y" text:name="HTML"/><text:user-field-decl text:value-type="string" text:string-value="y" text:name="Math"/><text:user-field-decl text:value-type="string" text:string-value="y" text:name="Chart"/><text:user-field-decl text:value-type="string" text:string-value="y" text:name="SaveOpenXML"/><text:user-field-decl text:value-type="string" text:string-value="y" text:name="SaveOpen50"/><text:user-field-decl text:value-type="string" text:string-value="y" text:name="Cut"/><text:user-field-decl text:value-type="string" text:string-value="y" text:name="Paste"/><text:user-field-decl text:value-type="string" text:string-value="n" text:name="Terminate"/><text:user-field-decl text:value-type="string" text:string-value="y" text:name="Java"/><text:user-field-decl text:value-type="string" text:string-value="y" text:name="SaveOpen8"/><text:user-field-decl text:value-type="string" text:string-value="y" text:name="Database"/><text:user-field-decl text:value-type="string" text:string-value="y" text:name="Extension"/></text:user-field-decls><text:p text:style-name="Standard"><draw:control text:anchor-type="as-char" svg:y="0cm" draw:z-index="1" draw:style-name="gr1" draw:text-style-name="P1" svg:width="2.477cm" svg:height="0.787cm" form:id="control2"/><draw:control text:anchor-type="as-char" svg:y="0cm" draw:z-index="0" draw:style-name="gr1" draw:text-style-name="P1" svg:width="2.477cm" svg:height="0.787cm" form:id="control1"/><draw:control text:anchor-type="as-char" svg:y="0cm" draw:z-index="2" draw:style-name="gr1" draw:text-style-name="P1" svg:width="2.477cm" svg:height="0.787cm" form:id="control3"/></text:p><text:p text:style-name="Standard"/></office:body></office:document-content> diff --git a/smoketestoo_native/data/dialog-lb.xml b/smoketestoo_native/data/dialog-lb.xml new file mode 100644 index 000000000000..973dfe688828 --- /dev/null +++ b/smoketestoo_native/data/dialog-lb.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* 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. +* +**********************************************************************--> +<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd"> +<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Standard" library:readonly="false" library:passwordprotected="false"> + <library:element library:name="OptionsDlg"/> +</library:library> diff --git a/smoketestoo_native/data/dialog-lc.xml b/smoketestoo_native/data/dialog-lc.xml new file mode 100644 index 000000000000..e3a5a0e326e4 --- /dev/null +++ b/smoketestoo_native/data/dialog-lc.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* 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. +* +**********************************************************************--> +<!DOCTYPE library:libraries PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "libraries.dtd"> +<library:libraries xmlns:library="http://openoffice.org/2000/library" xmlns:xlink="http://www.w3.org/1999/xlink"> + <library:library library:name="Standard" library:link="false"/> +</library:libraries> diff --git a/smoketestoo_native/data/makefile.mk b/smoketestoo_native/data/makefile.mk new file mode 100644 index 000000000000..2096d07de90e --- /dev/null +++ b/smoketestoo_native/data/makefile.mk @@ -0,0 +1,70 @@ +#************************************************************************* +# +# 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 = smoketestoo_native +TARGET = data + +.INCLUDE: settings.mk + +$(BIN)/smoketestdoc.sxw: $(MISC)/zip/smoketestdoc.sxw + $(COPY) $< $@ + +$(MISC)/zip/smoketestdoc.sxw: \ + Events.xml \ + Global.xml \ + OptionsDlg.xml \ + Test_10er.xml \ + Test_DB.xml \ + Test_Ext.xml \ + content.xml \ + dialog-lb.xml \ + dialog-lc.xml \ + manifest.xml \ + meta.xml \ + script-lb.xml \ + script-lc.xml \ + settings.xml \ + styles.xml + $(RM) -r $(MISC)/zip + $(MKDIR) $(MISC)/zip + $(COPY) content.xml meta.xml settings.xml styles.xml $(MISC)/zip/ + printf application/vnd.sun.xml.writer > $(MISC)/zip/mimetype + $(MKDIR) $(MISC)/zip/META-INF + $(COPY) manifest.xml $(MISC)/zip/META-INF/ + $(MKDIR) $(MISC)/zip/Basic + $(COPY) script-lc.xml $(MISC)/zip/Basic/ + $(MKDIR) $(MISC)/zip/Basic/Standard + $(COPY) script-lb.xml Events.xml Global.xml Test_10er.xml Test_DB.xml \ + Test_Ext.xml $(MISC)/zip/Basic/Standard/ + $(MKDIR) $(MISC)/zip/Dialogs + $(COPY) dialog-lc.xml $(MISC)/zip/Dialogs/ + $(MKDIR) $(MISC)/zip/Dialogs/Standard + $(COPY) dialog-lb.xml OptionsDlg.xml $(MISC)/zip/Dialogs/Standard/ + cd $(MISC)/zip && zip -rD $(@:f) . + +.INCLUDE: target.mk diff --git a/smoketestoo_native/data/manifest.xml b/smoketestoo_native/data/manifest.xml new file mode 100644 index 000000000000..48fc9ce900a0 --- /dev/null +++ b/smoketestoo_native/data/manifest.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* 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. +* +**********************************************************************--> +<!DOCTYPE manifest:manifest PUBLIC "-//OpenOffice.org//DTD Manifest 1.0//EN" "Manifest.dtd"> +<manifest:manifest xmlns:manifest="http://openoffice.org/2001/manifest"> + <manifest:file-entry manifest:media-type="application/vnd.sun.xml.writer" manifest:full-path="/"/> + <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Dialogs/dialog-lc.xml"/> + <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Dialogs/Standard/dialog-lb.xml"/> + <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Dialogs/Standard/OptionsDlg.xml"/> + <manifest:file-entry manifest:media-type="" manifest:full-path="Dialogs/Standard/"/> + <manifest:file-entry manifest:media-type="" manifest:full-path="Dialogs/"/> + <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="content.xml"/> + <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Basic/Standard/Global.xml"/> + <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Basic/Standard/Events.xml"/> + <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Basic/Standard/Test_DB.xml"/> + <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Basic/Standard/script-lb.xml"/> + <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Basic/Standard/Test_10er.xml"/> + <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Basic/Standard/Test_Ext.xml"/> + <manifest:file-entry manifest:media-type="" manifest:full-path="Basic/Standard/"/> + <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Basic/script-lc.xml"/> + <manifest:file-entry manifest:media-type="" manifest:full-path="Basic/"/> + <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="styles.xml"/> + <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="meta.xml"/> + <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="settings.xml"/> +</manifest:manifest> diff --git a/smoketestoo_native/data/meta.xml b/smoketestoo_native/data/meta.xml new file mode 100644 index 000000000000..43f14295e2b3 --- /dev/null +++ b/smoketestoo_native/data/meta.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* 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. +* +**********************************************************************--> +<office:document-meta xmlns:office="http://openoffice.org/2000/office" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta" xmlns:ooo="http://openoffice.org/2004/office" xmlns:grddl="http://www.w3.org/2003/g/data-view#" office:version="1.2" grddl:transformation="http://docs.oasis-open.org/office/1.2/xslt/odf2rdf.xsl"><office:meta><meta:generator>Oracle_Open_Office/3.2$Win32 OpenOffice.org_project/300m77$Build-9496$CWS-renaissance2</meta:generator><meta:creation-date>2001-06-08T15:59:03</meta:creation-date><dc:date>2007-01-18T12:45:22</dc:date><dc:language>de-DE</dc:language><meta:editing-cycles>0</meta:editing-cycles><meta:editing-duration>PT0S</meta:editing-duration><meta:user-defined meta:name="Info 0"/><meta:user-defined meta:name="Info 2"/><meta:user-defined meta:name="Info 3"/><meta:user-defined meta:name="Info 4"/><meta:document-statistic meta:table-count="0" meta:image-count="0" meta:object-count="0" meta:page-count="1" meta:paragraph-count="1" meta:word-count="0" meta:character-count="3"/></office:meta></office:document-meta> diff --git a/smoketestoo_native/data/script-lb.xml b/smoketestoo_native/data/script-lb.xml new file mode 100644 index 000000000000..fc4f6c6370ba --- /dev/null +++ b/smoketestoo_native/data/script-lb.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* 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. +* +**********************************************************************--> +<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd"> +<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Standard" library:readonly="false" library:passwordprotected="false"> + <library:element library:name="Global"/> + <library:element library:name="Test_10er"/> + <library:element library:name="Test_DB"/> + <library:element library:name="Events"/> + <library:element library:name="Test_Ext"/> +</library:library> diff --git a/smoketestoo_native/data/script-lc.xml b/smoketestoo_native/data/script-lc.xml new file mode 100644 index 000000000000..e3a5a0e326e4 --- /dev/null +++ b/smoketestoo_native/data/script-lc.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* 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. +* +**********************************************************************--> +<!DOCTYPE library:libraries PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "libraries.dtd"> +<library:libraries xmlns:library="http://openoffice.org/2000/library" xmlns:xlink="http://www.w3.org/1999/xlink"> + <library:library library:name="Standard" library:link="false"/> +</library:libraries> diff --git a/smoketestoo_native/data/settings.xml b/smoketestoo_native/data/settings.xml new file mode 100644 index 000000000000..cd4524b741ff --- /dev/null +++ b/smoketestoo_native/data/settings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* 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. +* +**********************************************************************--> +<office:document-settings xmlns:office="http://openoffice.org/2000/office" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:config="http://openoffice.org/2001/config" xmlns:ooo="http://openoffice.org/2004/office" office:version="1.2"><office:settings><config:config-item-set config:name="view-settings"><config:config-item config:name="ViewAreaTop" config:type="int">0</config:config-item><config:config-item config:name="ViewAreaLeft" config:type="int">0</config:config-item><config:config-item config:name="ViewAreaWidth" config:type="int">36382</config:config-item><config:config-item config:name="ViewAreaHeight" config:type="int">17120</config:config-item><config:config-item config:name="ShowRedlineChanges" config:type="boolean">true</config:config-item><config:config-item config:name="InBrowseMode" config:type="boolean">false</config:config-item><config:config-item-map-indexed config:name="Views"><config:config-item-map-entry><config:config-item config:name="ViewId" config:type="string">view2</config:config-item><config:config-item config:name="ViewLeft" config:type="int">17120</config:config-item><config:config-item config:name="ViewTop" config:type="int">3002</config:config-item><config:config-item config:name="VisibleLeft" config:type="int">0</config:config-item><config:config-item config:name="VisibleTop" config:type="int">0</config:config-item><config:config-item config:name="VisibleRight" config:type="int">36380</config:config-item><config:config-item config:name="VisibleBottom" config:type="int">17119</config:config-item><config:config-item config:name="ZoomType" config:type="short">0</config:config-item><config:config-item config:name="ViewLayoutColumns" config:type="short">0</config:config-item><config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item><config:config-item config:name="ZoomFactor" config:type="short">100</config:config-item><config:config-item config:name="IsSelectedFrame" config:type="boolean">false</config:config-item></config:config-item-map-entry></config:config-item-map-indexed></config:config-item-set><config:config-item-set config:name="configuration-settings"><config:config-item config:name="AddParaSpacingToTableCells" config:type="boolean">false</config:config-item><config:config-item config:name="PrintPaperFromSetup" config:type="boolean">false</config:config-item><config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">false</config:config-item><config:config-item config:name="PrintReversed" config:type="boolean">false</config:config-item><config:config-item config:name="LinkUpdateMode" config:type="short">1</config:config-item><config:config-item config:name="DoNotCaptureDrawObjsOnPage" config:type="boolean">false</config:config-item><config:config-item config:name="SaveVersionOnClose" config:type="boolean">false</config:config-item><config:config-item config:name="PrintEmptyPages" config:type="boolean">true</config:config-item><config:config-item config:name="PrintSingleJobs" config:type="boolean">false</config:config-item><config:config-item config:name="AllowPrintJobCancel" config:type="boolean">true</config:config-item><config:config-item config:name="AddFrameOffsets" config:type="boolean">false</config:config-item><config:config-item config:name="PrintLeftPages" config:type="boolean">true</config:config-item><config:config-item config:name="PrintTables" config:type="boolean">true</config:config-item><config:config-item config:name="ProtectForm" config:type="boolean">false</config:config-item><config:config-item config:name="ChartAutoUpdate" config:type="boolean">true</config:config-item><config:config-item config:name="PrintControls" config:type="boolean">true</config:config-item><config:config-item config:name="PrinterSetup" config:type="base64Binary">GgX+/01pY3Jvc29mdCBYUFMgRG9jdW1lbnQgV3JpdGVyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATWljcm9zb2Z0IFhQUyBEb2N1bWVudCBXcml0ZXIAAAAWAAEAPAQAAAAAAAAFAFZUAAAkbQAAM1ROVwIACABNAGkAYwByAG8AcwBvAGYAdAAgAFgAUABTACAARABvAGMAdQBtAGUAbgB0ACAAVwByAGkAdABlAHIAAAAAAAAAAQQABtwAWAMD/wAAAQABAJoLNAhkAAEADwBYAgIAAQBYAgIAAABBADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAACAAAAAQAAAP////8AAAAAAAAAAAAAAAAAAAAARElOVSIAEAFMAwwAytL2cgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAQAQAAU01USgAAAAAQAAABTQBpAGMAcgBvAHMAbwBmAHQAIABYAFAAUwAgAEQAbwBjAHUAbQBlAG4AdAAgAFcAcgBpAHQAZQByAAAASW5wdXRCaW4ARk9STVNPVVJDRQBSRVNETEwAVW5pcmVzRExMAEludGVybGVhdmluZwBPRkYASW1hZ2VUeXBlAEpQRUdNZWQAT3JpZW50YXRpb24AUE9SVFJBSVQAQ29sbGF0ZQBPRkYAUmVzb2x1dGlvbgBPcHRpb24xAFBhcGVyU2l6ZQBMRVRURVIAQ29sb3JNb2RlADI0YnBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABNWERXAQEAABIAQ09NUEFUX0RVUExFWF9NT0RFDgBEVVBMRVhfVU5LTk9XTg==</config:config-item><config:config-item config:name="CurrentDatabaseDataSource" config:type="string">Adreßbuch</config:config-item><config:config-item config:name="LoadReadonly" config:type="boolean">false</config:config-item><config:config-item config:name="CurrentDatabaseCommand" config:type="string">adressen</config:config-item><config:config-item config:name="ConsiderTextWrapOnObjPos" config:type="boolean">false</config:config-item><config:config-item config:name="ApplyUserData" config:type="boolean">false</config:config-item><config:config-item config:name="AddParaTableSpacing" config:type="boolean">false</config:config-item><config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item><config:config-item config:name="IgnoreFirstLineIndentInNumbering" config:type="boolean">true</config:config-item><config:config-item config:name="TabsRelativeToIndent" config:type="boolean">true</config:config-item><config:config-item config:name="IgnoreTabsAndBlanksForLineCalculation" config:type="boolean">false</config:config-item><config:config-item config:name="PrintAnnotationMode" config:type="short">0</config:config-item><config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">false</config:config-item><config:config-item config:name="UseOldPrinterMetrics" config:type="boolean">true</config:config-item><config:config-item config:name="TableRowKeep" config:type="boolean">false</config:config-item><config:config-item config:name="PrinterName" config:type="string">Microsoft XPS Document Writer</config:config-item><config:config-item config:name="PrintFaxName" config:type="string"/><config:config-item config:name="UnxForceZeroExtLeading" config:type="boolean">true</config:config-item><config:config-item config:name="PrintTextPlaceholder" config:type="boolean">false</config:config-item><config:config-item config:name="DoNotJustifyLinesWithManualBreak" config:type="boolean">true</config:config-item><config:config-item config:name="PrintRightPages" config:type="boolean">true</config:config-item><config:config-item config:name="CharacterCompressionType" config:type="short">0</config:config-item><config:config-item config:name="UseFormerTextWrapping" config:type="boolean">true</config:config-item><config:config-item config:name="IsLabelDocument" config:type="boolean">false</config:config-item><config:config-item config:name="AlignTabStopPosition" config:type="boolean">false</config:config-item><config:config-item config:name="PrintHiddenText" config:type="boolean">false</config:config-item><config:config-item config:name="DoNotResetParaAttrsForNumFont" config:type="boolean">true</config:config-item><config:config-item config:name="PrintPageBackground" config:type="boolean">true</config:config-item><config:config-item config:name="CurrentDatabaseCommandType" config:type="int">0</config:config-item><config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">true</config:config-item><config:config-item config:name="PrintProspect" config:type="boolean">false</config:config-item><config:config-item config:name="PrintGraphics" config:type="boolean">true</config:config-item><config:config-item config:name="SaveGlobalDocumentLinks" config:type="boolean">false</config:config-item><config:config-item config:name="PrintProspectRTL" config:type="boolean">false</config:config-item><config:config-item config:name="UseFormerLineSpacing" config:type="boolean">true</config:config-item><config:config-item config:name="AddExternalLeading" config:type="boolean">false</config:config-item><config:config-item config:name="UseFormerObjectPositioning" config:type="boolean">true</config:config-item><config:config-item config:name="RedlineProtectionKey" config:type="base64Binary"/><config:config-item config:name="ClipAsCharacterAnchoredWriterFlyFrames" config:type="boolean">false</config:config-item><config:config-item config:name="UseOldNumbering" config:type="boolean">true</config:config-item><config:config-item config:name="PrintDrawings" config:type="boolean">true</config:config-item><config:config-item config:name="PrinterIndependentLayout" config:type="string">disabled</config:config-item><config:config-item config:name="TabAtLeftIndentForParagraphsInList" config:type="boolean">false</config:config-item><config:config-item config:name="PrintBlackFonts" config:type="boolean">false</config:config-item><config:config-item config:name="UpdateFromTemplate" config:type="boolean">false</config:config-item></config:config-item-set></office:settings></office:document-settings> diff --git a/smoketestoo_native/data/smoketestdoc.sxw b/smoketestoo_native/data/smoketestdoc.sxw Binary files differdeleted file mode 100755 index 84f5d231b3b7..000000000000 --- a/smoketestoo_native/data/smoketestdoc.sxw +++ /dev/null diff --git a/smoketestoo_native/data/styles.xml b/smoketestoo_native/data/styles.xml new file mode 100644 index 000000000000..3f8d75fa6db3 --- /dev/null +++ b/smoketestoo_native/data/styles.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* 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. +* +**********************************************************************--> +<office:document-styles xmlns:office="http://openoffice.org/2000/office" xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta" xmlns:number="http://openoffice.org/2000/datastyle" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="http://openoffice.org/2000/chart" xmlns:dr3d="http://openoffice.org/2000/dr3d" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="http://openoffice.org/2000/form" xmlns:script="http://openoffice.org/2000/script" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:tableooo="http://openoffice.org/2009/table" office:version="1.2" grddl:transformation="http://docs.oasis-open.org/office/1.2/xslt/odf2rdf.xsl"><office:font-decls><style:font-decl style:name="Arial Unicode MS" fo:font-family="'Arial Unicode MS'" style:font-pitch="variable"/><style:font-decl style:name="HG Mincho Light J" fo:font-family="'HG Mincho Light J', 'MS Mincho', 'HG Mincho J', 'HG Mincho L', 'HG Mincho', Mincho, 'MS PMincho', 'MS Gothic', 'HG Gothic J', 'HG Gothic B', 'HG Gothic', Gothic, 'MS PGothic', 'Andale Sans UI', 'Arial Unicode MS', 'Lucida Sans Unicode', Tahoma" style:font-pitch="variable"/><style:font-decl style:name="Thorndale" fo:font-family="Thorndale, 'Times New Roman', Times, 'Lucida Serif', 'Lucida Bright', Timmons, 'New York', Serif" style:font-family-generic="roman" style:font-pitch="variable"/><style:font-decl style:name="Arial" fo:font-family="Arial" style:font-family-generic="swiss" style:font-pitch="variable"/></office:font-decls><office:styles><style:default-style style:family="graphics"><style:properties draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" draw:start-line-spacing-vertical="0.283cm" draw:end-line-spacing-horizontal="0.283cm" draw:end-line-spacing-vertical="0.283cm" style:text-autospace="ideograph-alpha" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false" fo:color="#000000" fo:font-size="12pt" fo:language="de" fo:country="DE" style:font-size-asian="12pt" style:language-asian="zxx" style:country-asian="none" style:font-size-complex="12pt" style:language-complex="zxx" style:country-complex="none"><style:tab-stops/></style:properties></style:default-style><style:default-style style:family="paragraph"><style:properties fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" style:line-break="strict" style:tab-stop-distance="1.251cm" style:writing-mode="lr-tb" fo:color="#000000" style:font-name="Thorndale" fo:font-size="12pt" fo:language="de" fo:country="DE" style:font-name-asian="HG Mincho Light J" style:font-size-asian="12pt" style:language-asian="zxx" style:country-asian="none" style:font-name-complex="Arial Unicode MS" style:font-size-complex="12pt" style:language-complex="zxx" style:country-complex="none" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2"/></style:default-style><style:default-style style:family="table"><style:properties table:border-model="separating"/></style:default-style><style:default-style style:family="table-row"><style:properties fo:keep-together="always"/></style:default-style><style:style style:name="Standard" style:family="paragraph" style:class="text"/><style:style style:name="Text body" style:family="paragraph" style:parent-style-name="Standard" style:class="text"><style:properties fo:margin-top="0cm" fo:margin-bottom="0.212cm"/></style:style><style:style style:name="Heading" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Text body" style:class="text"><style:properties fo:margin-top="0.423cm" fo:margin-bottom="0.212cm" fo:keep-with-next="true" style:font-name="Arial" fo:font-size="14pt"/></style:style><style:style style:name="List" style:family="paragraph" style:parent-style-name="Text body" style:class="list"/><style:style style:name="Table Contents" style:family="paragraph" style:parent-style-name="Text body" style:class="extra"/><style:style style:name="Table Heading" style:family="paragraph" style:parent-style-name="Table Contents" style:class="extra"><style:properties fo:text-align="center" style:justify-single-word="false" fo:font-style="italic" fo:font-weight="bold"/></style:style><style:style style:name="Caption" style:family="paragraph" style:parent-style-name="Standard" style:class="extra"><style:properties fo:margin-top="0.212cm" fo:margin-bottom="0.212cm" fo:font-size="10pt" fo:font-style="italic"/></style:style><style:style style:name="Index" style:family="paragraph" style:parent-style-name="Standard" style:class="index"/><style:style style:name="Footnote Symbol" style:family="text"/><style:style style:name="Endnote Symbol" style:family="text"/><text:outline-style style:name="Outline"><text:outline-level-style text:level="1" style:num-format=""><style:properties/></text:outline-level-style><text:outline-level-style text:level="2" style:num-format=""><style:properties/></text:outline-level-style><text:outline-level-style text:level="3" style:num-format=""><style:properties/></text:outline-level-style><text:outline-level-style text:level="4" style:num-format=""><style:properties/></text:outline-level-style><text:outline-level-style text:level="5" style:num-format=""><style:properties/></text:outline-level-style><text:outline-level-style text:level="6" style:num-format=""><style:properties/></text:outline-level-style><text:outline-level-style text:level="7" style:num-format=""><style:properties/></text:outline-level-style><text:outline-level-style text:level="8" style:num-format=""><style:properties/></text:outline-level-style><text:outline-level-style text:level="9" style:num-format=""><style:properties/></text:outline-level-style><text:outline-level-style text:level="10" style:num-format=""><style:properties/></text:outline-level-style></text:outline-style><text:footnotes-configuration text:citation-style-name="Footnote Symbol" style:num-format="1" text:start-value="0" text:footnotes-position="page" text:start-numbering-at="page"/><text:endnotes-configuration text:citation-style-name="Endnote Symbol" text:master-page-name="Endnote" style:num-format="1" text:start-value="0"/><text:linenumbering-configuration text:number-lines="false" text:offset="0.499cm" style:num-format="1" text:number-position="left" text:increment="5"/></office:styles><office:automatic-styles><style:page-master style:name="Mpm1"><style:properties fo:page-width="20.999cm" fo:page-height="29.699cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" style:footnote-max-height="0cm"><style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:adjustment="left" style:rel-width="25%" style:color="#000000"/></style:properties><style:header-style/><style:footer-style/></style:page-master><style:page-master style:name="Mpm2"><style:properties fo:page-width="20.999cm" fo:page-height="29.699cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" style:footnote-max-height="0cm"><style:footnote-sep style:adjustment="left" style:rel-width="25%" style:color="#000000"/></style:properties><style:header-style/><style:footer-style/></style:page-master></office:automatic-styles><office:master-styles><style:master-page style:name="Standard" style:page-master-name="Mpm1"/><style:master-page style:name="Endnote" style:page-master-name="Mpm2"/></office:master-styles></office:document-styles> diff --git a/smoketestoo_native/makefile.mk b/smoketestoo_native/makefile.mk index 0337c748d914..80982856602d 100644 --- a/smoketestoo_native/makefile.mk +++ b/smoketestoo_native/makefile.mk @@ -47,13 +47,10 @@ DEF1NAME = $(SHL1TARGET) ALLTAR : cpptest -cpptest : $(SHL1TARGETN) $(BIN)/smoketestdoc.sxw +cpptest : $(SHL1TARGETN) OOO_CPPTEST_ARGS = $(SHL1TARGETN) -env:arg-doc=$(BIN)/smoketestdoc.sxw -$(BIN)/smoketestdoc.sxw: data/smoketestdoc.sxw - $(COPY) $< $@ - .IF "$(OS)" != "WNT" $(installationtest_instpath).flag : $(shell ls \ $(installationtest_instset)/OOo_*_install-arc_$(defaultlangiso).tar.gz) diff --git a/smoketestoo_native/prj/build.lst b/smoketestoo_native/prj/build.lst index f4bd5368c65b..147a363d3da5 100644 --- a/smoketestoo_native/prj/build.lst +++ b/smoketestoo_native/prj/build.lst @@ -1,4 +1,5 @@ smtoon smoketestoo_native :: instsetoo_native test NULL smtoon smoketestoo_native usr1 - all smoketestoonative_mkout NULL smtoon smoketestoo_native\com\sun\star\comp\smoketest nmake - all smoketestoonative_csscs NULL -smtoon smoketestoo_native nmake - all,test10 smoketestoonative_mk smoketestoonative_csscs NULL +smtoon smoketestoo_native\data nmake - all smoketestoonative_data NULL +smtoon smoketestoo_native nmake - all,test10 smoketestoonative_mk smoketestoonative_csscs smoketestoonative_data NULL diff --git a/solenv/bin/make_installer.pl b/solenv/bin/make_installer.pl index 127f28cd7631..335ecf961253 100644 --- a/solenv/bin/make_installer.pl +++ b/solenv/bin/make_installer.pl @@ -655,7 +655,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) $installer::globals::globalinfo_copied = 1; my $logminor = ""; - my $avoidlanginlog = 0; if ( $installer::globals::updatepack ) { $logminor = $installer::globals::lastminor; } else { $logminor = $installer::globals::minor; } @@ -663,14 +662,15 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) my $loglanguagestring_orig = $loglanguagestring; if (length($loglanguagestring) > $installer::globals::max_lang_length) { + my $number_of_languages = installer::systemactions::get_number_of_langs($loglanguagestring); chomp(my $shorter = `echo $loglanguagestring | md5sum | sed -e "s/ .*//g"`); - $loglanguagestring = $shorter; - $avoidlanginlog = 1; + my $id = substr($shorter, 0, 8); # taking only the first 8 digits + $loglanguagestring = "lang_" . $number_of_languages . "_id_" . $id; } $installer::globals::logfilename = "log_" . $installer::globals::build; if ( $logminor ne "" ) { $installer::globals::logfilename .= "_" . $logminor; } - if ( ! $avoidlanginlog ) { $installer::globals::logfilename .= "_" . $loglanguagestring; } + $installer::globals::logfilename .= "_" . $loglanguagestring; $installer::globals::logfilename .= ".log"; $loggingdir = $loggingdir . $loglanguagestring . $installer::globals::separator; installer::systemactions::create_directory($loggingdir); @@ -732,7 +732,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) if (!($installer::globals::is_copy_only_project)) { - if ( $installer::globals::iswindowsbuild ) + if (( $installer::globals::iswindowsbuild ) && ( $installer::globals::packageformat ne "archive" ) && ( $installer::globals::packageformat ne "installed" )) { installer::windows::msiglobal::set_global_code_variables($languagesarrayref, $languagestringref, $allvariableshashref, $alloldproperties); } diff --git a/solenv/bin/modules/installer/control.pm b/solenv/bin/modules/installer/control.pm index f4edc8129255..bd700be38758 100644 --- a/solenv/bin/modules/installer/control.pm +++ b/solenv/bin/modules/installer/control.pm @@ -405,6 +405,16 @@ sub determine_ship_directory my $shipdrive = $ENV{'SHIPDRIVE'}; my $languagestring = $$languagesref; + + if (length($languagestring) > $installer::globals::max_lang_length ) + { + my $number_of_languages = installer::systemactions::get_number_of_langs($languagestring); + chomp(my $shorter = `echo $languagestring | md5sum | sed -e "s/ .*//g"`); + # $languagestring = $shorter; + my $id = substr($shorter, 0, 8); # taking only the first 8 digits + $languagestring = "lang_" . $number_of_languages . "_id_" . $id; + } + my $productstring = $installer::globals::product; my $productsubdir = ""; diff --git a/solenv/bin/modules/installer/epmfile.pm b/solenv/bin/modules/installer/epmfile.pm index 136eca913dd9..f8e35f208251 100644 --- a/solenv/bin/modules/installer/epmfile.pm +++ b/solenv/bin/modules/installer/epmfile.pm @@ -2308,6 +2308,55 @@ sub determine_rpm_version return $rpmversion; } +#################################################### +# Writing some info about rpm into the log file +#################################################### + +sub log_rpm_info +{ + my $systemcall = ""; + my $infoline = ""; + + $infoline = "\nLogging rpmrc content using --showrc\n\n"; + push( @installer::globals::logfileinfo, $infoline); + + if ( $installer::globals::rpm ne "" ) + { + $systemcall = "$installer::globals::rpm --showrc |"; + } + else + { + $systemcall = "rpm --showrc |"; + } + + my @fullrpmout = (); + + open (RPM, "$systemcall"); + while (<RPM>) {push(@fullrpmout, $_); } + close (RPM); + + if ( $#fullrpmout > -1 ) + { + for ( my $i = 0; $i <= $#fullrpmout; $i++ ) + { + my $rpmout = $fullrpmout[$i]; + $rpmout =~ s/\s*$//g; + + $infoline = "$rpmout\n"; + $infoline =~ s/error/e_r_r_o_r/gi; # avoiding log problems + push( @installer::globals::logfileinfo, $infoline); + } + } + else + { + $infoline = "Problem in systemcall: $systemcall : No return value\n"; + push( @installer::globals::logfileinfo, $infoline); + } + + $infoline = "End of logging rpmrc\n\n"; + push( @installer::globals::logfileinfo, $infoline); +} + ################################################# # Systemcall to start the packaging process ################################################# @@ -2560,6 +2609,12 @@ sub create_packages_without_epm mkdir($buildroot = $dir . "/" . $epmdir . "BUILD/"); } + if ( ! $installer::globals::rpminfologged ) + { + log_rpm_info(); + $installer::globals::rpminfologged = 1; + } + my $systemcall = "$rpmcommand -bb --define \"_unpackaged_files_terminate_build 0\" $specfilename --target $target $buildrootstring 2\>\&1 |"; installer::logger::print_message( "... $systemcall ...\n" ); diff --git a/solenv/bin/modules/installer/globals.pm b/solenv/bin/modules/installer/globals.pm index 71429e278f4e..ccef960e0337 100644 --- a/solenv/bin/modules/installer/globals.pm +++ b/solenv/bin/modules/installer/globals.pm @@ -179,6 +179,7 @@ BEGIN $rpm = ""; $rpmcommand = ""; $rpmquerycommand = ""; + $rpminfologged = 0; $debian = ""; $installertypedir = ""; $controlledmakecabversion = "5"; diff --git a/solenv/bin/modules/installer/parameter.pm b/solenv/bin/modules/installer/parameter.pm index 0961b598902f..d3ce8a1d3a32 100644 --- a/solenv/bin/modules/installer/parameter.pm +++ b/solenv/bin/modules/installer/parameter.pm @@ -530,7 +530,7 @@ sub control_required_parameter # and the UpgradeCode for the product are defined. # The name "codes.txt" can be overwritten in Product definition with CODEFILENAME (msiglobal.pm) - if ($installer::globals::iswindowsbuild) + if (( $installer::globals::iswindowsbuild ) && ( $installer::globals::packageformat ne "archive" ) && ( $installer::globals::packageformat ne "installed" )) { $installer::globals::codefilename = $installer::globals::idttemplatepath . $installer::globals::separator . $installer::globals::codefilename; installer::files::check_file($installer::globals::codefilename); diff --git a/solenv/bin/modules/installer/scriptitems.pm b/solenv/bin/modules/installer/scriptitems.pm index a073e60a6697..7a2c4cb3f5e3 100644 --- a/solenv/bin/modules/installer/scriptitems.pm +++ b/solenv/bin/modules/installer/scriptitems.pm @@ -1868,7 +1868,7 @@ sub remove_Languagepacklibraries_from_Installset } $infoline = "\n"; - push( @installer::globals::logfileinfo, $infoline); + push( @installer::globals::globallogfileinfo, $infoline); return \@newitemsarray; } diff --git a/solenv/bin/modules/installer/systemactions.pm b/solenv/bin/modules/installer/systemactions.pm index 981dc40f3209..24b070574189 100644 --- a/solenv/bin/modules/installer/systemactions.pm +++ b/solenv/bin/modules/installer/systemactions.pm @@ -292,6 +292,27 @@ sub remove_empty_directory } ####################################################################### +# Calculating the number of languages in the string +####################################################################### + +sub get_number_of_langs +{ + my ($languagestring) = @_; + + my $number = 1; + + my $workstring = $languagestring; + + while ( $workstring =~ /^\s*(.*)_(.*?)\s*$/ ) + { + $workstring = $1; + $number++; + } + + return $number; +} + +####################################################################### # Creating the directories, in which files are generated or unzipped ####################################################################### @@ -380,8 +401,11 @@ sub create_directories if (length($languagestring) > $installer::globals::max_lang_length ) { + my $number_of_languages = get_number_of_langs($languagestring); chomp(my $shorter = `echo $languagestring | md5sum | sed -e "s/ .*//g"`); - $languagestring = $shorter; + # $languagestring = $shorter; + my $id = substr($shorter, 0, 8); # taking only the first 8 digits + $languagestring = "lang_" . $number_of_languages . "_id_" . $id; } $path = $path . $languagestring . $installer::globals::separator; diff --git a/solenv/config/sooo330.ini b/solenv/config/sooo330.ini index d38c87344596..dcd0c0564afe 100644 --- a/solenv/config/sooo330.ini +++ b/solenv/config/sooo330.ini @@ -8,6 +8,7 @@ common BIG_SVX TRUE BMP_WRITES_FLAG TRUE BUILD_SPECIAL TRUE + BUILD_STAX YES BUILD_TYPE SO OOo EXT BINFILTER MORE_FONTS BSH CURL DICTIONARIES HSQLDB HUNSPELL HYPHEN MYTHES JPEG LIBXML2 LIBXMLSEC LPSOLVE MOZ NEON TWAIN PYTHON ZLIB SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM ODK MSFONTEXTRACT MATHMLDTD BOOST MDDS EXPAT CRASHREP BERKELEYDB LIBXSLT SUN AGG GTK ICU SYSTRAY_GTK JAVAINSTALLER2 VIGRA OPENSSL JFREEREPORT APACHE_COMMONS TOMCAT REPORTBUILDER SDEXT SWEXT XPDF LUCENE REDLAND SAXON WRITER2LATEX NSS L10N GRAPHITE MYSQLCPPCONN MYSQLC CPPUNIT common_build TRUE COMMON_OUTDIR common diff --git a/solenv/config/ssolar.cmn b/solenv/config/ssolar.cmn index 937c345e2de8..de332146a1f0 100644 --- a/solenv/config/ssolar.cmn +++ b/solenv/config/ssolar.cmn @@ -44,6 +44,7 @@ common BUILD_TOOLS BUILD_TYPE BUILD_SPECIAL + BUILD_STAX BUILD_X64 CLASSPATH CALL_CDECL diff --git a/solenv/inc/minor.mk b/solenv/inc/minor.mk index b6c424446dcf..b33381249d4c 100644 --- a/solenv/inc/minor.mk +++ b/solenv/inc/minor.mk @@ -1,5 +1,5 @@ RSCVERSION=330 -RSCREVISION=330m0(Build:9513) -BUILD=9513 -LAST_MINOR=m0 +RSCREVISION=330m1(Build:9514) +BUILD=9514 +LAST_MINOR=m1 SOURCEVERSION=OOO330 diff --git a/solenv/inc/unxlng.mk b/solenv/inc/unxlng.mk index be8c5d01b714..aff552dde89c 100644 --- a/solenv/inc/unxlng.mk +++ b/solenv/inc/unxlng.mk @@ -198,6 +198,14 @@ STDLIBCUIMT+=-ltcmalloc STDSHLGUIMT+=-ltcmalloc STDSHLCUIMT+=-ltcmalloc .ENDIF + +.IF "$(ALLOC)" == "JEMALLOC" +STDLIBGUIMT+=-ljemalloc +STDLIBCUIMT+=-ljemalloc +STDSHLGUIMT+=-ljemalloc +STDSHLCUIMT+=-ljemalloc +.ENDIF + .IF "$(HAVE_LD_HASH_STYLE)" == "TRUE" LINKFLAGS += -Wl,--hash-style=both .ELSE diff --git a/stax/makefile.mk b/stax/makefile.mk index 6dbe81ee7ca5..ff3238bd6bea 100644 --- a/stax/makefile.mk +++ b/stax/makefile.mk @@ -47,6 +47,13 @@ all: @echo "Therefore the files provided here does not need to be built in addition." .ENDIF +.IF "$(BUILD_STAX)" != "YES" + +$(OUT)$/class$/jsr173_1.0_api.jar : $(PRJ)$/download$/jsr173_1.0_api.jar + +$(COPY) $< $@ + +.ELSE # "$(BUILD_STAX)" != "YES" + # --- Files -------------------------------------------------------- TARFILE_NAME=stax-api-1.0-2-sources TARFILE_MD5=8294d6c42e3553229af9934c5c0ed997 @@ -55,6 +62,7 @@ TARFILE_ROOTDIR=src BUILD_ACTION=$(JAVAC) javax$/xml$/stream$/*.java && jar -cf jsr173_1.0_api.jar javax$/xml$/stream$/*.class javax$/xml$/stream$/events$/*.class javax$/xml$/stream$/util$/*.class OUT2CLASS=jsr173_1.0_api.jar +.ENDIF # "$(BUILD_STAX)" != "YES" .ELSE # $(SOLAR_JAVA)!= "" nojava: diff --git a/svtools/source/contnr/svimpbox.cxx b/svtools/source/contnr/svimpbox.cxx index 7111a29a6a8a..484584828b9f 100644 --- a/svtools/source/contnr/svimpbox.cxx +++ b/svtools/source/contnr/svimpbox.cxx @@ -1067,14 +1067,14 @@ void SvImpLBox::DrawNet() //so that SvImpLBox::DrawNet() doesn't draw anything too if(pView->IsNativeControlSupported( CTRL_LISTNET, PART_ENTIRE_CONTROL)) { ImplControlValue aControlValue; - Point aTemp(0,0); // temporary needed for g++ 3.3.5 - Region aCtrlRegion( Rectangle(aTemp, Size( 0, 0 )) ); + Point aTemp(0,0); // temporary needed for g++ 3.3.5 + Rectangle aCtrlRegion( aTemp, Size( 0, 0 ) ); ControlState nState = CTRL_STATE_ENABLED; - if( pView->DrawNativeControl( CTRL_LISTNET, PART_ENTIRE_CONTROL, - aCtrlRegion, nState, aControlValue, rtl::OUString() ) ) - { - return; - } + if( pView->DrawNativeControl( CTRL_LISTNET, PART_ENTIRE_CONTROL, + aCtrlRegion, nState, aControlValue, rtl::OUString() ) ) + { + return; + } } diff --git a/svtools/source/contnr/svlbitm.cxx b/svtools/source/contnr/svlbitm.cxx index 82321b53259e..edb0a65cb39f 100644 --- a/svtools/source/contnr/svlbitm.cxx +++ b/svtools/source/contnr/svlbitm.cxx @@ -425,7 +425,7 @@ void SvLBoxButton::Paint( const Point& rPos, SvLBox& rDev, USHORT /* nFlags */, if ( nIndex != SV_BMP_STATICIMAGE && pWin && pWin->IsNativeControlSupported( (pData->IsRadio())? CTRL_RADIOBUTTON : CTRL_CHECKBOX, PART_ENTIRE_CONTROL) ) { ImplControlValue aControlValue; - Region aCtrlRegion( Rectangle(rPos, Size(pData->Width(), pData->Height())) ); + Rectangle aCtrlRegion( rPos, Size(pData->Width(), pData->Height()) ); ControlState nState = 0; //states CTRL_STATE_DEFAULT, CTRL_STATE_PRESSED and CTRL_STATE_ROLLOVER are not implemented @@ -440,7 +440,7 @@ void SvLBoxButton::Paint( const Point& rPos, SvLBox& rDev, USHORT /* nFlags */, aControlValue.setTristateVal( BUTTONVALUE_MIXED ); bNativeOK = pWin->DrawNativeControl( (pData->IsRadio())? CTRL_RADIOBUTTON : CTRL_CHECKBOX, PART_ENTIRE_CONTROL, - aCtrlRegion, nState, aControlValue, rtl::OUString() ); + aCtrlRegion, nState, aControlValue, rtl::OUString() ); } if( !bNativeOK) diff --git a/svtools/source/contnr/svtreebx.cxx b/svtools/source/contnr/svtreebx.cxx index bf6e41f93f36..b11a3f12ddf3 100644 --- a/svtools/source/contnr/svtreebx.cxx +++ b/svtools/source/contnr/svtreebx.cxx @@ -1814,7 +1814,7 @@ long SvTreeListBox::PaintEntry1(SvLBoxEntry* pEntry,long nLine,USHORT nTabFlags, if ( IsNativeControlSupported( CTRL_LISTNODE, PART_ENTIRE_CONTROL) ) { ImplControlValue aControlValue; - Region aCtrlRegion( Rectangle(aPos, pImg->GetSizePixel() ) ); + Rectangle aCtrlRegion( aPos, pImg->GetSizePixel() ); ControlState nState = 0; if ( IsEnabled() ) nState |= CTRL_STATE_ENABLED; diff --git a/svtools/source/control/toolbarmenu.cxx b/svtools/source/control/toolbarmenu.cxx index fa393da3d5a8..f0bd192fc02c 100644 --- a/svtools/source/control/toolbarmenu.cxx +++ b/svtools/source/control/toolbarmenu.cxx @@ -920,7 +920,7 @@ void ToolbarMenu::implHighlightEntry( int nHighlightEntry, bool bHighlight ) IntersectClipRegion( Rectangle( Point( nX, nY ), Size( aSz.Width(), pEntry->maSize.Height() ) ) ); Rectangle aCtrlRect( Point( nX, 0 ), Size( aPxSize.Width()-nX, aPxSize.Height() ) ); DrawNativeControl( CTRL_MENU_POPUP, PART_ENTIRE_CONTROL, - Region( aCtrlRect ), + aCtrlRect, CTRL_STATE_ENABLED, ImplControlValue(), OUString() ); @@ -928,7 +928,7 @@ void ToolbarMenu::implHighlightEntry( int nHighlightEntry, bool bHighlight ) { bDrawItemRect = false; if( FALSE == DrawNativeControl( CTRL_MENU_POPUP, PART_MENU_ITEM, - Region( aItemRect ), + aItemRect, CTRL_STATE_SELECTED | ( pEntry->mbEnabled? CTRL_STATE_ENABLED: 0 ), ImplControlValue(), OUString() ) ) @@ -1312,13 +1312,12 @@ static void ImplPaintCheckBackground( Window* i_pWindow, const Rectangle& i_rRec if( i_pWindow->IsNativeControlSupported( CTRL_TOOLBAR, PART_BUTTON ) ) { ImplControlValue aControlValue; - Region aCtrlRegion( i_rRect ); ControlState nState = CTRL_STATE_PRESSED | CTRL_STATE_ENABLED; aControlValue.setTristateVal( BUTTONVALUE_ON ); bNativeOk = i_pWindow->DrawNativeControl( CTRL_TOOLBAR, PART_BUTTON, - aCtrlRegion, nState, aControlValue, + i_rRect, nState, aControlValue, rtl::OUString() ); } @@ -1335,10 +1334,10 @@ static long ImplGetNativeCheckAndRadioSize( Window* pWin, long& rCheckHeight, lo rMaxWidth = rCheckHeight = rRadioHeight = 0; ImplControlValue aVal; - Region aNativeBounds; - Region aNativeContent; + Rectangle aNativeBounds; + Rectangle aNativeContent; Point tmp( 0, 0 ); - Region aCtrlRegion( Rectangle( tmp, Size( 100, 15 ) ) ); + Rectangle aCtrlRegion( tmp, Size( 100, 15 ) ); if( pWin->IsNativeControlSupported( CTRL_MENU_POPUP, PART_MENU_ITEM_CHECK_MARK ) ) { if( pWin->GetNativeControlRegion( ControlType(CTRL_MENU_POPUP), @@ -1351,8 +1350,8 @@ static long ImplGetNativeCheckAndRadioSize( Window* pWin, long& rCheckHeight, lo aNativeContent ) ) { - rCheckHeight = aNativeBounds.GetBoundRect().GetHeight(); - rMaxWidth = aNativeContent.GetBoundRect().GetWidth(); + rCheckHeight = aNativeBounds.GetHeight(); + rMaxWidth = aNativeContent.GetWidth(); } } if( pWin->IsNativeControlSupported( CTRL_MENU_POPUP, PART_MENU_ITEM_RADIO_MARK ) ) @@ -1367,8 +1366,8 @@ static long ImplGetNativeCheckAndRadioSize( Window* pWin, long& rCheckHeight, lo aNativeContent ) ) { - rRadioHeight = aNativeBounds.GetBoundRect().GetHeight(); - rMaxWidth = Max (rMaxWidth, aNativeContent.GetBoundRect().GetWidth()); + rRadioHeight = aNativeBounds.GetHeight(); + rMaxWidth = Max (rMaxWidth, aNativeContent.GetWidth()); } } return (rCheckHeight > rRadioHeight) ? rCheckHeight : rRadioHeight; @@ -1492,7 +1491,7 @@ void ToolbarMenu::implPaint( ToolbarMenuEntry* pThisOnly, bool bHighlighted ) aTmpPos.Y() = aOuterCheckRect.Top() + (aOuterCheckRect.GetHeight() - nCtrlHeight)/2; Rectangle aCheckRect( aTmpPos, Size( nCtrlHeight, nCtrlHeight ) ); - DrawNativeControl( CTRL_MENU_POPUP, nPart, Region( aCheckRect ), nState, ImplControlValue(), OUString() ); + DrawNativeControl( CTRL_MENU_POPUP, nPart, aCheckRect, nState, ImplControlValue(), OUString() ); } else if ( pEntry->mbChecked ) // by default do nothing for unchecked items { diff --git a/svtools/source/toolpanel/paneltabbar.cxx b/svtools/source/toolpanel/paneltabbar.cxx index 38aee00c8f55..23067d3ee5d0 100755 --- a/svtools/source/toolpanel/paneltabbar.cxx +++ b/svtools/source/toolpanel/paneltabbar.cxx @@ -296,19 +296,18 @@ namespace svt const ControlState nState( lcl_ItemToControlState( i_nItemFlags ) ); TabitemValue tiValue; - ImplControlValue aControlValue( (void*)(&tiValue) ); - Region aBoundingRegion, aContentRegion; + Rectangle aBoundingRegion, aContentRegion; bool bNativeOK = getTargetDevice().GetNativeControlRegion( CTRL_TAB_ITEM, PART_ENTIRE_CONTROL, i_rContentArea, nState, - aControlValue, ::rtl::OUString(), + tiValue, ::rtl::OUString(), aBoundingRegion, aContentRegion ); (void)bNativeOK; OSL_ENSURE( bNativeOK, "NWFTabItemRenderer::calculateDecorations: GetNativeControlRegion not implemented for CTRL_TAB_ITEM?!" ); - return aBoundingRegion.GetBoundRect(); + return aBoundingRegion; } //------------------------------------------------------------------------------------------------------------------ @@ -322,9 +321,8 @@ namespace svt if ( i_nItemFlags & ITEM_POSITION_LAST ) tiValue.mnAlignment |= TABITEM_LAST_IN_GROUP; - ImplControlValue aControlValue( (void *)(&tiValue) ); - bool bNativeOK = getTargetDevice().DrawNativeControl( CTRL_TAB_ITEM, PART_ENTIRE_CONTROL, i_rContentRect, nState, aControlValue, rtl::OUString() ); + bool bNativeOK = getTargetDevice().DrawNativeControl( CTRL_TAB_ITEM, PART_ENTIRE_CONTROL, i_rContentRect, nState, tiValue, rtl::OUString() ); (void)bNativeOK; OSL_ENSURE( bNativeOK, "NWFTabItemRenderer::preRenderItem: inconsistent NWF implementation!" ); // IsNativeControlSupported returned true, previously, otherwise we would not be here ... diff --git a/svtools/source/uno/unoimap.cxx b/svtools/source/uno/unoimap.cxx index 6b6e35482ae9..88f22f0c8402 100644 --- a/svtools/source/uno/unoimap.cxx +++ b/svtools/source/uno/unoimap.cxx @@ -210,6 +210,8 @@ PropertySetInfo* SvUnoImageMapObject::createPropertySetInfo( UINT16 nType ) SvUnoImageMapObject::SvUnoImageMapObject( UINT16 nType, const SvEventDescription* pSupportedMacroItems ) : PropertySetHelper( createPropertySetInfo( nType ) ), mnType( nType ) +, mbIsActive( true ) +, mnRadius( 0 ) { mpEvents = new SvMacroTableEventDescriptor( pSupportedMacroItems ); mpEvents->acquire(); @@ -218,6 +220,8 @@ SvUnoImageMapObject::SvUnoImageMapObject( UINT16 nType, const SvEventDescription SvUnoImageMapObject::SvUnoImageMapObject( const IMapObject& rMapObject, const SvEventDescription* pSupportedMacroItems ) : PropertySetHelper( createPropertySetInfo( rMapObject.GetType() ) ), mnType( rMapObject.GetType() ) +, mbIsActive( true ) +, mnRadius( 0 ) { maURL = rMapObject.GetURL(); maAltText = rMapObject.GetAltText(); diff --git a/svx/inc/svx/svdmodel.hxx b/svx/inc/svx/svdmodel.hxx index fc8d401f94e7..328efedd98f0 100644 --- a/svx/inc/svx/svdmodel.hxx +++ b/svx/inc/svx/svdmodel.hxx @@ -276,7 +276,7 @@ public: SdrOutlinerCache* mpOutlinerCache; SdrModelImpl* mpImpl; UINT16 mnCharCompressType; - UINT16 nReserveUInt5; + UINT16 mnHandoutPageCount; UINT16 nReserveUInt6; UINT16 nReserveUInt7; FASTBOOL mbModelLocked; @@ -298,6 +298,10 @@ public: SvNumberFormatter* mpNumberFormatter; public: const SvNumberFormatter& GetNumberFormatter() const; + + UINT16 getHandoutPageCount() const { return mnHandoutPageCount; } + void setHandoutPageCount( UINT16 nHandoutPageCount ) { mnHandoutPageCount = nHandoutPageCount; } + protected: virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > createUnoModel(); diff --git a/svx/source/sdr/contact/viewobjectcontactofpageobj.cxx b/svx/source/sdr/contact/viewobjectcontactofpageobj.cxx index 5ef26193d4b3..34731f100b5d 100644 --- a/svx/source/sdr/contact/viewobjectcontactofpageobj.cxx +++ b/svx/source/sdr/contact/viewobjectcontactofpageobj.cxx @@ -273,9 +273,16 @@ namespace sdr // init extractor, guarantee existance, set page there mpExtractor->SetStartPage(pPage); + // #i105548# also need to copy the VOCRedirector for sub-content creation + mpExtractor->SetViewObjectContactRedirector(GetObjectContact().GetViewObjectContactRedirector()); + // create page content xPageContent = mpExtractor->createPrimitive2DSequenceForPage(rDisplayInfo); + // #i105548# reset VOCRedirector to not accidentially have a pointer to a + // temporary class, so calls to it are avoided safely + mpExtractor->SetViewObjectContactRedirector(0); + // reset recursion flag bInCreatePrimitive2D = false; } diff --git a/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx index 2320944afd03..089f75aa8ade 100644 --- a/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx +++ b/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx @@ -77,8 +77,16 @@ namespace if(pPage && pPage->GetModel()) { - const sal_uInt16 nPageCount(pPage->GetModel()->GetPageCount()); - nRetval = ((sal_Int16)nPageCount - 1) / 2; + if( (pPage->GetPageNum() == 0) && !pPage->IsMasterPage() ) + { + // handout page! + return pPage->GetModel()->getHandoutPageCount(); + } + else + { + const sal_uInt16 nPageCount(pPage->GetModel()->GetPageCount()); + nRetval = ((sal_Int16)nPageCount - 1) / 2; + } } return nRetval; diff --git a/svx/source/sdr/properties/textproperties.cxx b/svx/source/sdr/properties/textproperties.cxx index 348c319e256e..091656e1f261 100644 --- a/svx/source/sdr/properties/textproperties.cxx +++ b/svx/source/sdr/properties/textproperties.cxx @@ -185,18 +185,21 @@ namespace sdr { SdrText* pText = rObj.getText( nCount ); OutlinerParaObject* pParaObj = pText->GetOutlinerParaObject(); - rOutliner.SetText(*pParaObj); - sal_uInt32 nParaCount(rOutliner.GetParagraphCount()); - - if(nParaCount) + if( pParaObj ) { - ESelection aSelection( 0, 0, EE_PARA_ALL, EE_PARA_ALL); - rOutliner.RemoveAttribs(aSelection, sal_True, 0); + rOutliner.SetText(*pParaObj); + sal_uInt32 nParaCount(rOutliner.GetParagraphCount()); - OutlinerParaObject* pTemp = rOutliner.CreateParaObject(0, (sal_uInt16)nParaCount); - rOutliner.Clear(); + if(nParaCount) + { + ESelection aSelection( 0, 0, EE_PARA_ALL, EE_PARA_ALL); + rOutliner.RemoveAttribs(aSelection, sal_True, 0); - rObj.NbcSetOutlinerParaObjectForText( pTemp, pText ); + OutlinerParaObject* pTemp = rOutliner.CreateParaObject(0, (sal_uInt16)nParaCount); + rOutliner.Clear(); + + rObj.NbcSetOutlinerParaObjectForText( pTemp, pText ); + } } } } diff --git a/svx/source/svdraw/svdmodel.cxx b/svx/source/svdraw/svdmodel.cxx index 2fcdfdffbb8a..8ab385fa329c 100644 --- a/svx/source/svdraw/svdmodel.cxx +++ b/svx/source/svdraw/svdmodel.cxx @@ -178,6 +178,7 @@ void SdrModel::ImpCtor(SfxItemPool* pPool, ::comphelper::IEmbeddedHelper* _pEmbe mpOutlinerCache = NULL; mbKernAsianPunctuation = sal_False; mbAddExtLeading = sal_False; + mnHandoutPageCount = 0; SvxAsianConfig aAsian; mnCharCompressType = aAsian.GetCharDistanceCompression(); diff --git a/svx/source/svdraw/svdopath.cxx b/svx/source/svdraw/svdopath.cxx index 2b495725c006..9d136ef82eae 100644 --- a/svx/source/svdraw/svdopath.cxx +++ b/svx/source/svdraw/svdopath.cxx @@ -2927,7 +2927,8 @@ sal_Bool SdrPathObj::TRGetBaseGeometry(basegfx::B2DHomMatrix& rMatrix, basegfx:: aScale = aCorrectedRangeNoCurve.getRange(); // define matrix for move polygon to zero point - aMoveToZeroMatrix.translate(-aCorrectedRangeNoCurve.getMinX(), aCorrectedRangeNoCurve.getMinY()); + // #i112280# Added missing minus for Y-Translation + aMoveToZeroMatrix.translate(-aCorrectedRangeNoCurve.getMinX(), -aCorrectedRangeNoCurve.getMinY()); } else { diff --git a/svx/source/tbxctrls/tbunosearchcontrollers.cxx b/svx/source/tbxctrls/tbunosearchcontrollers.cxx index f4f03170a90f..5dcaf6fd5e72 100644 --- a/svx/source/tbxctrls/tbunosearchcontrollers.cxx +++ b/svx/source/tbxctrls/tbunosearchcontrollers.cxx @@ -92,7 +92,7 @@ FindTextFieldControl::~FindTextFieldControl() void FindTextFieldControl::InitControls_Impl() { SetText( String( ::rtl::OUString::createFromAscii("Find") ) ); - SetControlForeground(COL_GRAY); + SetControlForeground(GetSettings().GetStyleSettings().GetDisableColor()); EnableAutocomplete(TRUE, TRUE); } @@ -117,7 +117,7 @@ void FindTextFieldControl::Modify() { ComboBox::Modify(); - SetControlForeground( Color( COL_BLACK ) ); + SetControlForeground( GetSettings().GetStyleSettings().GetWindowTextColor() ); } long FindTextFieldControl::PreNotify( NotifyEvent& rNEvt ) @@ -135,7 +135,10 @@ long FindTextFieldControl::PreNotify( NotifyEvent& rNEvt ) sal_uInt16 nCode = pKeyEvent->GetKeyCode().GetCode(); if ( (bCtrl && bAlt && KEY_F == nCode) || KEY_ESCAPE == nCode ) + { + nRet = 1; GrabFocusToDocument(); + } if ( KEY_RETURN == nCode ) { @@ -154,6 +157,7 @@ long FindTextFieldControl::PreNotify( NotifyEvent& rNEvt ) lArgs[1].Value <<= sal_False; impl_executeSearch(m_xServiceManager, m_xFrame, lArgs); + nRet = 1; } break; } @@ -171,7 +175,7 @@ long FindTextFieldControl::PreNotify( NotifyEvent& rNEvt ) if ( GetText().Len() == 0 ) { SetText( String( ::rtl::OUString::createFromAscii("Find") ) ); - SetControlForeground(COL_GRAY); + SetControlForeground(GetSettings().GetStyleSettings().GetDisableColor()); m_bToClearTextField = sal_True; } break; diff --git a/sw/qa/unoapi/sw.sce b/sw/qa/unoapi/sw.sce index e57a6643cd0d..0f1092af8a51 100644 --- a/sw/qa/unoapi/sw.sce +++ b/sw/qa/unoapi/sw.sce @@ -4,9 +4,9 @@ -o sw.ParagraphStyle #i111197 -o sw.SwAccessibleDocumentPageView #i86751 -o sw.SwAccessibleDocumentView -#i111185 -o sw.SwAccessibleEndnoteView +-o sw.SwAccessibleEndnoteView -o sw.SwAccessibleFooterView -#i111185 -o sw.SwAccessibleFootnoteView +-o sw.SwAccessibleFootnoteView -o sw.SwAccessibleHeaderView #i89022 -o sw.SwAccessiblePageView -o sw.SwAccessibleParagraphView @@ -18,25 +18,25 @@ -o sw.SwXAutoTextContainer -o sw.SwXAutoTextEntry -o sw.SwXAutoTextGroup -#i111185 -o sw.SwXBodyText +-o sw.SwXBodyText -o sw.SwXBookmark -o sw.SwXBookmarks -o sw.SwXCell -o sw.SwXCellRange -o sw.SwXChapterNumbering -#i111185 -o sw.SwXDocumentIndex -#i111185 -o sw.SwXDocumentIndexMark +-o sw.SwXDocumentIndex +-o sw.SwXDocumentIndexMark -o sw.SwXDocumentIndexes -o sw.SwXDrawPage -#i111185 -o sw.SwXEndnoteProperties +-o sw.SwXEndnoteProperties -o sw.SwXFieldEnumeration -o sw.SwXFieldMaster -#i111185 -o sw.SwXFootnote -#i111185 -o sw.SwXFootnoteProperties -#i111185 -o sw.SwXFootnoteText -#i111185 -o sw.SwXFootnotes +-o sw.SwXFootnote +-o sw.SwXFootnoteProperties +-o sw.SwXFootnoteText +-o sw.SwXFootnotes -o sw.SwXFrames -#i111185 -o sw.SwXHeadFootText +-o sw.SwXHeadFootText -o sw.SwXLineNumberingProperties #i85640 -o sw.SwXMailMerge -o sw.SwXModule @@ -51,20 +51,20 @@ #i111190 -o sw.SwXShape -o sw.SwXStyleFamilies -o sw.SwXStyleFamily -#i111185 -o sw.SwXTableCellText +-o sw.SwXTableCellText -o sw.SwXTableColumns -o sw.SwXTableRows -o sw.SwXTextColumns -o sw.SwXTextCursor #i89021 -o sw.SwXTextDefaults -#i111185 -o sw.SwXTextDocument +-o sw.SwXTextDocument -o sw.SwXTextEmbeddedObject -o sw.SwXTextEmbeddedObjects -o sw.SwXTextField -o sw.SwXTextFieldMasters -o sw.SwXTextFieldTypes -o sw.SwXTextFrame -#i111185 -o sw.SwXTextFrameText +-o sw.SwXTextFrameText -o sw.SwXTextGraphicObject -o sw.SwXTextGraphicObjects #i103696 -o sw.SwXTextPortion diff --git a/sw/source/core/crsr/findtxt.cxx b/sw/source/core/crsr/findtxt.cxx index 9fd6dd0516e9..4a0697692975 100644 --- a/sw/source/core/crsr/findtxt.cxx +++ b/sw/source/core/crsr/findtxt.cxx @@ -53,8 +53,6 @@ #include <viewsh.hxx> #include <vcl/window.hxx> -#define POSTITMGR ((ViewShell*)pNode->GetDoc()->GetDocShell()->GetWrtShell())->GetPostItMgr() - using namespace ::com::sun::star; using namespace util; @@ -333,9 +331,13 @@ BYTE SwPaM::Find( const SearchOptions& rSearchOpt, BOOL bSearchInNotes , utl::Te } + SwDocShell *const pDocShell = pNode->GetDoc()->GetDocShell(); + ViewShell *const pWrtShell = (pDocShell) ? (ViewShell*)(pDocShell->GetWrtShell()) : 0; + SwPostItMgr *const pPostItMgr = (pWrtShell) ? pWrtShell->GetPostItMgr() : 0; + xub_StrLen aStart = 0; // do we need to finish a note? - if (POSTITMGR->HasActiveSidebarWin()) + if (pPostItMgr && pPostItMgr->HasActiveSidebarWin()) { if (bSearchInNotes) { @@ -347,7 +349,7 @@ BYTE SwPaM::Find( const SearchOptions& rSearchOpt, BOOL bSearchInNotes , utl::Te --aNumberPostits; } //search inside and finsih and put focus back into the doc - if (POSTITMGR->FinishSearchReplace(rSearchOpt,bSrchForward)) + if (pPostItMgr->FinishSearchReplace(rSearchOpt,bSrchForward)) { bFound = true ; break; @@ -355,7 +357,7 @@ BYTE SwPaM::Find( const SearchOptions& rSearchOpt, BOOL bSearchInNotes , utl::Te } else { - POSTITMGR->SetActiveSidebarWin(0); + pPostItMgr->SetActiveSidebarWin(0); } } @@ -391,7 +393,7 @@ BYTE SwPaM::Find( const SearchOptions& rSearchOpt, BOOL bSearchInNotes , utl::Te if ( (bSrchForward && (GetPostIt(aLoop + aIgnore,pHts) < pHts->Count()) ) || ( !bSrchForward && (aLoop!=0) )) { const SwTxtAttr* pTxtAttr = bSrchForward ? (*pHts)[GetPostIt(aLoop+aIgnore,pHts)] : (*pHts)[GetPostIt(aLoop+aIgnore-1,pHts)]; - if ( POSTITMGR->SearchReplace(((SwTxtFld*)pTxtAttr)->GetFld(),rSearchOpt,bSrchForward) ) + if ( pPostItMgr && pPostItMgr->SearchReplace(((SwTxtFld*)pTxtAttr)->GetFld(),rSearchOpt,bSrchForward) ) { bFound = true ; break; diff --git a/sw/source/core/objectpositioning/tocntntanchoredobjectposition.cxx b/sw/source/core/objectpositioning/tocntntanchoredobjectposition.cxx index 5f5e0155e77c..209ceb3c20e0 100644 --- a/sw/source/core/objectpositioning/tocntntanchoredobjectposition.cxx +++ b/sw/source/core/objectpositioning/tocntntanchoredobjectposition.cxx @@ -213,9 +213,11 @@ void SwToCntntAnchoredObjectPosition::CalcPosition() !GetAnchoredObj().GetLastCharRect().Width() ) || !GetAnchoredObj().GetLastTopOfLine() ) { - // --> OD 2004-07-15 #117380# - suppress check for paragraph - // portion information by passing <false> as first parameter - GetAnchoredObj().CheckCharRectAndTopOfLine( false ); + // --> OD 2010-07-02 #i111886# + // Check existence of paragraph portion information in order + // to avoid formatting which could cause deletion of follow frames. + GetAnchoredObj().CheckCharRectAndTopOfLine(); + // <-- // OD 2005-01-12 - Due to table break algorithm the character // rectangle can have no height. Thus, check also the width if ( ( !GetAnchoredObj().GetLastCharRect().Height() && diff --git a/sw/source/core/text/txttab.cxx b/sw/source/core/text/txttab.cxx index 0fd88876532b..a86589b64851 100644 --- a/sw/source/core/text/txttab.cxx +++ b/sw/source/core/text/txttab.cxx @@ -194,6 +194,10 @@ SwTabPortion *SwTxtFormatter::NewTabPortion( SwTxtFormatInfo &rInf, bool bAuto ) } SwTwips nCount = nSearchPos; + //Minimum tab stop width is 1 + if (nDefTabDist <= 0) + nDefTabDist = 1; + nCount /= nDefTabDist; nNextPos = nCount < 0 || (!nCount && nSearchPos <= 0)? nCount * nDefTabDist :( nCount + 1 ) * nDefTabDist ; // --> FME 2004-09-21 #117919 Minimum tab stop width is 1 or 51 twips: diff --git a/sw/source/core/unocore/unoidx.cxx b/sw/source/core/unocore/unoidx.cxx index d51225f84f96..94ee14450f08 100644 --- a/sw/source/core/unocore/unoidx.cxx +++ b/sw/source/core/unocore/unoidx.cxx @@ -367,7 +367,8 @@ public: *aSwMapProvider.GetPropertySet(lcl_TypeToPropertyMap_Index(eType))) , m_eTOXType(eType) , m_ListenerContainer(static_cast< ::cppu::OWeakObject* >(&rThis)) - , m_bIsDescriptor(0 == pBaseSection) + // #i111177# unxsols4 (Sun C++ 5.9 SunOS_sparc) may generate wrong code + , m_bIsDescriptor((0 == pBaseSection) ? true : false) , m_pDoc(&rDoc) , m_pProps((m_bIsDescriptor) ? new SwDocIndexDescriptorProperties_Impl(rDoc.GetTOXType(eType, 0)) @@ -1625,7 +1626,9 @@ public: *aSwMapProvider.GetPropertySet(lcl_TypeToPropertyMap_Mark(eType))) , m_eTOXType(eType) , m_ListenerContainer(static_cast< ::cppu::OWeakObject* >(&rThis)) - , m_bIsDescriptor(0 == pMark) +// #i112513#: unxsols4 (Sun C++ 5.9 SunOS_sparc) generates wrong code for this +// , m_bIsDescriptor(0 == pMark) + , m_bIsDescriptor((0 == pMark) ? true : false) , m_TypeDepend(this, pType) , m_pTOXMark(pMark) , m_pDoc(pDoc) diff --git a/sw/source/core/unocore/unoparagraph.cxx b/sw/source/core/unocore/unoparagraph.cxx index 974faebc4421..3b865d49bf09 100644 --- a/sw/source/core/unocore/unoparagraph.cxx +++ b/sw/source/core/unocore/unoparagraph.cxx @@ -139,7 +139,8 @@ public: , m_rThis(rThis) , m_ListenerContainer(static_cast< ::cppu::OWeakObject* >(&rThis)) , m_rPropSet(*aSwMapProvider.GetPropertySet(PROPERTY_MAP_PARAGRAPH)) - , m_bIsDescriptor(0 == pTxtNode) + // #i111177# unxsols4 (Sun C++ 5.9 SunOS_sparc) may generate wrong code + , m_bIsDescriptor((0 == pTxtNode) ? true : false) , m_nSelectionStartPos(nSelStart) , m_nSelectionEndPos(nSelEnd) , m_xParentText(xParent) diff --git a/sw/source/core/unocore/unorefmk.cxx b/sw/source/core/unocore/unorefmk.cxx index 622a995df0ac..25ce3ec6c441 100644 --- a/sw/source/core/unocore/unorefmk.cxx +++ b/sw/source/core/unocore/unorefmk.cxx @@ -68,7 +68,8 @@ public: SwDoc *const pDoc, SwFmtRefMark const*const pRefMark) : SwClient((pDoc) ? pDoc->GetUnoCallBack() : 0) , m_ListenerContainer(static_cast< ::cppu::OWeakObject* >(&rThis)) - , m_bIsDescriptor(0 == pRefMark) + // #i111177# unxsols4 (Sun C++ 5.9 SunOS_sparc) may generate wrong code + , m_bIsDescriptor((0 == pRefMark) ? true : false) , m_pDoc(pDoc) , m_pMarkFmt(pRefMark) { @@ -762,7 +763,8 @@ public: , m_ListenerContainer(static_cast< ::cppu::OWeakObject* >(&rThis)) , m_pTextPortions( pPortions ) , m_bIsDisposed( false ) - , m_bIsDescriptor(0 == pMeta) + // #i111177# unxsols4 (Sun C++ 5.9 SunOS_sparc) may generate wrong code + , m_bIsDescriptor((0 == pMeta) ? true : false) , m_xParentText(xParentText) , m_Text(rDoc, rThis) { diff --git a/sw/source/core/unocore/unosect.cxx b/sw/source/core/unocore/unosect.cxx index 1e18cc5becc5..2810b500ea4b 100644 --- a/sw/source/core/unocore/unosect.cxx +++ b/sw/source/core/unocore/unosect.cxx @@ -136,7 +136,8 @@ public: , m_rPropSet(*aSwMapProvider.GetPropertySet(PROPERTY_MAP_SECTION)) , m_ListenerContainer(static_cast< ::cppu::OWeakObject* >(&rThis)) , m_bIndexHeader(bIndexHeader) - , m_bIsDescriptor(0 == pFmt) + // #i111177# unxsols4 (Sun C++ 5.9 SunOS_sparc) may generate wrong code + , m_bIsDescriptor((0 == pFmt) ? true : false) , m_pProps((pFmt) ? 0 : new SwTextSectionProperties_Impl()) { } diff --git a/sw/source/filter/rtf/rtftbl.cxx b/sw/source/filter/rtf/rtftbl.cxx index a2572006a290..2c182532079d 100644 --- a/sw/source/filter/rtf/rtftbl.cxx +++ b/sw/source/filter/rtf/rtftbl.cxx @@ -288,7 +288,12 @@ void SwRTFParser::ReadTable( int nToken ) break; case RTF_CLMRG: - aMergeBoxes[ nBoxCnt ] = TRUE; + // would crash later on reading \cellx (#i112657#): + // the first cell cannot be merged with earlier ones. + if (nBoxCnt != 0) + { + aMergeBoxes[ nBoxCnt ] = TRUE; + } break; case RTF_CELLX: diff --git a/sw/source/ui/docvw/SidebarTxtControlAcc.cxx b/sw/source/ui/docvw/SidebarTxtControlAcc.cxx index 8b0f0293367c..bd613fc7c031 100644 --- a/sw/source/ui/docvw/SidebarTxtControlAcc.cxx +++ b/sw/source/ui/docvw/SidebarTxtControlAcc.cxx @@ -80,7 +80,7 @@ class SidebarTextEditSource : public SvxEditSource, SidebarTextEditSource::SidebarTextEditSource( SidebarTxtControl& rSidebarTxtControl ) : SvxEditSource() , mrSidebarTxtControl( rSidebarTxtControl ) - , mTextForwarder( *(rSidebarTxtControl.GetTextView()->GetOutliner()), NULL ) + , mTextForwarder( *(rSidebarTxtControl.GetTextView()->GetOutliner()), FALSE ) , mViewForwarder( *(rSidebarTxtControl.GetTextView()) ) { if ( mrSidebarTxtControl.GetTextView() ) diff --git a/testautomation/chart2/optional/includes/ch2_datadialogue.inc b/testautomation/chart2/optional/includes/ch2_datadialogue.inc index fd7876057db5..f7e4078ad911 100644 --- a/testautomation/chart2/optional/includes/ch2_datadialogue.inc +++ b/testautomation/chart2/optional/includes/ch2_datadialogue.inc @@ -286,9 +286,6 @@ testcase tChartDataDialogueFieldsUndo DatabaseUndo '/// And then we enter the dialogue again, to check if the values has returned to what they were before we changed them. printlog "And then we enter the dialogue again, to check if the values has returned to what they were before we changed them." - '/// One press on 'TAB' to select the object ///' - printlog " Click the button 'TAB', to select the object." - DocumentImpress.TypeKeys "<TAB>" '/// Followed by one press on "RETURN" / "ENTER" to enter the Chart-Data-dialogue ///' printlog " Click the button 'Return', to enter the Chart-Data-dialogue." DocumentImpress.TypeKeys "<RETURN>" diff --git a/testautomation/dbaccess/optional/includes/db_hsqldb.inc b/testautomation/dbaccess/optional/includes/db_hsqldb.inc index 979f0e3e5f29..3ad3016a9eb3 100644..100755 --- a/testautomation/dbaccess/optional/includes/db_hsqldb.inc +++ b/testautomation/dbaccess/optional/includes/db_hsqldb.inc @@ -33,12 +33,14 @@ sub db_hsqldb call tGeneral + call ExitRestartTheOffice call tRenameTable call tOpenDatabaseWithViews call tRenameTableWhichUsedInViews call tQueryOpenInSQLMode - + call ExitRestartTheOffice + app.FileCopy gTesttoolPath + ConvertPath("dbaccess/optional/input/hsql_datasource/TT_hsqldb.odb") , gOfficePath + ConvertPath("user/work/TT_hsqldb.odb") call db_Query(gOfficePath + "user/work/TT_hsqldb.odb" ,"hsqldb") diff --git a/testautomation/dbaccess/optional/includes/frm_FormFilter.inc b/testautomation/dbaccess/optional/includes/frm_FormFilter.inc index b8e3ccc2d896..52579da2e15b 100755 --- a/testautomation/dbaccess/optional/includes/frm_FormFilter.inc +++ b/testautomation/dbaccess/optional/includes/frm_FormFilter.inc @@ -58,7 +58,9 @@ testcase tLoadForm FM_FormFilter_Start wait(1000) '/// insert 2 in the first textbox - printlog "insert 2 in the first textbox" + printlog "insert 2 in the first textbox" + DocumentWriter.TypeKeys "<MOD1 F5>" , true + sleep(1) DocumentWriter.TypeKeys "2" , true 'DocumentWriter.TypeKeys "<RETURN>" , true wait(1000) @@ -91,7 +93,11 @@ testcase tLoadForm FM_FormFilter_Start wait(1000) '/// insert into the second textbox like '%2' - printlog "insert into the second textbox like '%2'" + printlog "insert into the second textbox like '%2'" + DocumentWriter.TypeKeys "<MOD1 F5>" , true + sleep(1) + DocumentWriter.TypeKeys "<TAB>" , true + sleep(1) DocumentWriter.TypeKeys "like '%2'" , true wait(1000) '/// execute the filter diff --git a/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/registry/data/org/openoffice/Office/UI/CalcWindowState.xcu b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/registry/data/org/openoffice/Office/UI/CalcWindowState.xcu index ba2c8c692d4e..367281d0deaf 100755 --- a/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/registry/data/org/openoffice/Office/UI/CalcWindowState.xcu +++ b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/registry/data/org/openoffice/Office/UI/CalcWindowState.xcu @@ -4,7 +4,7 @@ <node oor:name="States"> <node oor:name="private:resource/toolpanel/com.example.TestPanel1" oor:op="replace"> <prop oor:name="UIName" oor:type="xs:string"> - <value xml:lang="en-US">ein Panel</value> + <value>ein Panel</value> </prop> <prop oor:name="Visible" oor:type="xs:boolean"> <value>true</value> @@ -12,7 +12,7 @@ </node> <node oor:name="private:resource/toolpanel/com.example.TestPanel2" oor:op="replace"> <prop oor:name="UIName" oor:type="xs:string"> - <value xml:lang="en-US">noch ein Panel</value> + <value>noch ein Panel</value> </prop> <prop oor:name="Visible" oor:type="xs:boolean"> <value>true</value> diff --git a/testautomation/extensions/optional/input/issues/LoggingOptions.xcs b/testautomation/extensions/optional/input/issues/LoggingOptions.xcs index e87474bba2a2..ca1ee9a4b6cb 100644 --- a/testautomation/extensions/optional/input/issues/LoggingOptions.xcs +++ b/testautomation/extensions/optional/input/issues/LoggingOptions.xcs @@ -1,5 +1,5 @@ <?xml version="1.0"?> -<oor:component-schema xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" oor:name="Logging" oor:package="org.openoffice.Office" xml:lang="en-US"> +<oor:component-schema xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" oor:name="Logging" oor:package="org.openoffice.Office"> <templates> <group oor:name="LoggerSettings"> <group oor:name="HandlerSettings" oor:extensible="true"> diff --git a/testautomation/framework/required/includes/tools_customize.inc b/testautomation/framework/required/includes/tools_customize.inc index 6bf31e391f99..2f7064055883 100755 --- a/testautomation/framework/required/includes/tools_customize.inc +++ b/testautomation/framework/required/includes/tools_customize.inc @@ -254,7 +254,7 @@ function hUpdtToolsCustomizeToolbars() const MENUITEM_DELETE = 2 const MENUITEM_MODIFY = 4 - const DIALOG_DELAY = 3 + const DIALOG_DELAY = 1 dim brc as boolean dim iCurrentItem as integer @@ -344,25 +344,7 @@ function hUpdtToolsCustomizeToolbars() kontext "ScriptSelector" if ( ScriptSelector.exists( DIALOG_DELAY ) ) then - - call dialogtest( ScriptSelector ) - - ' This is a workaround that applies when - for some reason - the menu - ' (menubutton: AddCommands) is not open. In this case the ScriptSelector - ' will not open. Before this hack the office was left in an unstable state - ' and the following tests would have failed. Now we get a warning - ' instead. - - printlog( CFN & "Add the default item" ) - try - kontext "ScriptSelector" - hCloseDialog( ScriptSelector, "ok" ) - catch - qaerrorlog( "#i79207# Could not access ok button on ScriptSelector" ) - kontext "ScriptSelector" - if ( ScriptSelector.exists( DIALOG_DELAY ) ) then printlog( "Scriptselector is open" ) - endcatch - + printlog( "ScriptSelector open." ) else LibraryTreeList.typeKeys( "<HOME>" ) for iCurrentItem = 1 to 5 @@ -372,9 +354,7 @@ function hUpdtToolsCustomizeToolbars() next iCurrentItem endif - ' Note: The Customize dialog in the background is updated immediately. This - ' means that the cancel-button is active but blocked for a moment - 'WaitSlot( 2000 ) + call dialogtest( ScriptSelector ) printlog( CFN & "Close the Script Selector, back to ToolsCustomize dialog" ) hCloseDialog( ScriptSelector, "cancel" ) @@ -382,75 +362,81 @@ function hUpdtToolsCustomizeToolbars() kontext "TabCustomizeToolbars" printlog( CFN & "Click the Modify-button" ) - if ( not hClickCommandButton( 1 ) ) then + if ( hClickCommandButton( 1 ) ) then + + printlog( CFN & "Command button clicked successfully" ) + kontext "CustomizeToolbarsRename" + UseBindings + wait( 100 ) + if ( CustomizeToolbarsRename.exists( DIALOG_DELAY ) ) then + + printlog( CFN & "Rename dialog is open" ) + call dialogtest( CustomizeToolbarsRename ) + EingabeFeld.setText( "Renamed item" ) + + printlog( CFN & "Close the dialog" ) + hCloseDialog( CustomizeToolbarsRename, "ok" ) + else + warnlog( CFN & "CustomizeToolbarsRename could not be accessed" ) + endif + else warnlog( CFN & "Something went wrong when accessing the command button" ) exit function endif - printlog( CFN & "Rename the item" ) - UseBindings - kontext "CustomizeToolbarsRename" - if ( CustomizeToolbarsRename.exists( DIALOG_DELAY ) ) then - call dialogtest( CustomizeToolbarsRename ) - EingabeFeld.setText( "Renamed item" ) - - printlog( CFN & "Close the dialog" ) - hCloseDialog( CustomizeToolbarsRename, "ok" ) - else - warnlog( CFN & "CustomizeToolbarsRename could not be accessed" ) - endif - kontext "TabCustomizeToolbars" - - if ( not hClickCommandButton( 2 ) ) then + if ( hClickCommandButton( 2 ) ) then + printlog( CFN & "Successfully clicked second item on the command button" ) + else warnlog( CFN & "Something went wrong when accessing the command button" ) exit function endif kontext "TabCustomizeToolbars" waitslot - printlog( CFN & "Click the Modify-button" ) - printlog( "******************** 1 ********************" ) + printlog( CFN & "Deselect separator (if this is the current object)" ) hDeselectSeparator() - printlog( "******************** 2 ********************" ) + kontext "TabCustomizeToolbars" if ( not hClickCommandButton( 3 ) ) then warnlog( CFN & "Something went wrong when accessing the command button" ) exit function endif - kontext "TabCustomizeToolbars" waitslot + kontext "TabCustomizeToolbars" printlog( CFN & "Click the Modify-button" ) - -if ( not hClickCommandButton( MENUITEM_MODIFY ) ) then + if ( hClickCommandButton( MENUITEM_MODIFY ) ) then + printlog( CFN & "Successfully selected modify-item on the command button" ) + else warnlog( CFN & "Something went wrong when accessing the command button" ) exit function endif - kontext "TabCustomizeToolbars" WaitSlot + kontext "TabCustomizeToolbars" printlog( CFN & "Click the Modify-button" ) - - if ( not hClickCommandButton( 1 ) ) then + if ( hClickCommandButton( 1 ) ) then + printlog( CFN & "Successfully selected modify-item on the command button" ) + else warnlog( CFN & "Something went wrong when accessing the command button" ) exit function endif - kontext "TabCustomizeToolbars" waitslot + kontext "TabCustomizeToolbars" printlog( CFN & "Click the Modify-button" ) - printlog( "******************** 3 ********************" ) hDeselectSeparator() - printlog( "******************** 4 ********************" ) - if ( not hClickCommandButton( 5 ) ) then + if ( hClickCommandButton( 5 ) ) then + printlog( CFN & "Successfully selected modify-item on the command button" ) + else warnlog( CFN & "Something went wrong when accessing the command button" ) exit function endif - printlog( CFN & "On the Change Icon dialog: Click to import an icon" ) kontext "ChangeIcon" + printlog( CFN & "On the Change Icon dialog: Click to import an icon" ) if ( ChangeIcon.exists( DIALOG_DELAY ) ) then call dialogtest( ChangeIcon ) import.click() @@ -467,11 +453,12 @@ if ( not hClickCommandButton( MENUITEM_MODIFY ) ) then warnlog( CFN & "Could not access Change Icon dialog" ) endif - kontext "TabCustomizeToolbars" waitslot + kontext "TabCustomizeToolbars" printlog( CFN & "Click the Modify-button" ) - - if ( not hClickCommandButton( 3 ) ) then + if ( hClickCommandButton( 3 ) ) then + printlog( CFN & "Successfully selected modify-item on the command button" ) + else warnlog( CFN & "Something went wrong when accessing the command button" ) exit function endif diff --git a/testautomation/framework/required/includes/window_functions.inc b/testautomation/framework/required/includes/window_functions.inc index 779ab3c0a8aa..2adb42638d02 100644 --- a/testautomation/framework/required/includes/window_functions.inc +++ b/testautomation/framework/required/includes/window_functions.inc @@ -250,7 +250,12 @@ testcase tCheckWindowTitle( sApplication as string, sReference as string ) ' Verify that the productname is contained within the string if ( iProductNamePosition = STRING_NOT_FOUND ) then - warnlog( "The product name is missing" ) + if ( lcase( gPlatform ) = "osx" ) then + printlog( "The product name is missing" ) + ' life is different on that platform compared to testtool world + else + warnlog( "The product name is missing" ) + endif endif ' Verify that the application name (e.g. "Writer") is contained in the string diff --git a/testautomation/global/required/includes/g_option.inc b/testautomation/global/required/includes/g_option.inc index b14ceca82c9f..fe462038899f 100755 --- a/testautomation/global/required/includes/g_option.inc +++ b/testautomation/global/required/includes/g_option.inc @@ -579,14 +579,28 @@ testcase tToolsOptionsInternet '///+<ol><li>Proxy</li> '///+<li>Search</li> '///+<li>Mozilla Plugin</li></ol> - EchteAnzahl = OptionTabPageZaehler ( 3 , FALSE ) + EchteAnzahl = OptionTabPageZaehler ( 3 , TRUE ) + if (EchteAnzahl > 3) then + qaErrorLog ("Due to some installed extensions the tabpage count is not 3 it is: " + EchteAnzahl) + else + if (EchteAnzahl < 3) then + warnlog "Number of tabpages old : 3 new : " + EchteAnzahl + endif + endif else '/// On Unix systems this section includes four tab pages. '///+<ol><li>Proxy</li> '///+<li>Search</li> '///+<li>E-Mail</li> '///+<li>Mozilla Plugin</li></ol> - EchteAnzahl = OptionTabPageZaehler ( 4 , FALSE ) + EchteAnzahl = OptionTabPageZaehler ( 4 , TRUE ) + if (EchteAnzahl > 4) then + qaErrorLog ("Due to some installed extensions the tabpage count is not 3 it is: " + EchteAnzahl) + else + if (EchteAnzahl < 4) then + warnlog "Number of tabpages old : 3 new : " + EchteAnzahl + endif + endif endif for i=1 to EchteAnzahl @@ -647,6 +661,18 @@ testcase tToolsOptionsInternet Call DialogTest ( TabMozillaPlugin ) endif endif + case 5,6 : Kontext "TabMediaWiki" + if TabMediaWiki.exists then + qaerrorlog " - Wiki Publisher" + Call DialogTest ( TabMediaWiki ) + gefunden = TRUE + endif + Kontext "TabWeblog" + if TabWeblog.exists then + qaerrorlog " - Weblog Publisher" + Call DialogTest ( TabWeblog ) + gefunden = TRUE + endif end select if gefunden=FALSE then Warnlog "Error with the " + i + ".page, perhaps this page is deleted or change the place!" diff --git a/testautomation/global/system/includes/iniinfo.inc b/testautomation/global/system/includes/iniinfo.inc index 552102588405..aa305b9a1a21 100755 --- a/testautomation/global/system/includes/iniinfo.inc +++ b/testautomation/global/system/includes/iniinfo.inc @@ -125,9 +125,9 @@ sub GetIniInformation if (gPrivateEnvironmentLocation <> "" AND gPrivateEnvironmentLocation <> ".") then if NOT fileExists(gPrivateEnvironmentLocation) then qaErrorLog "[PrivateEnvironment] defined in: '"+gTesttoolIni+"', but the path '"+gPrivateEnvironmentLocation+"'does not exist!" - else gPrivateEnvironmentLocation = "" end if + else gPrivateEnvironmentLocation = "" end if end sub diff --git a/testautomation/global/tools/includes/required/t_files.inc b/testautomation/global/tools/includes/required/t_files.inc index 42b575c1187a..d9da7ce5191a 100755 --- a/testautomation/global/tools/includes/required/t_files.inc +++ b/testautomation/global/tools/includes/required/t_files.inc @@ -114,11 +114,28 @@ function hIsNamedDocLoaded( cFileName as string ) as boolean dim cDocumentName as string dim iDocumentNameLength as integer + dim bTemplateDocument as boolean hIsNamedDocLoaded() = false + ' If the requested document is a template, we cannot use its filename to + ' identify the document as it is named "Untitled 1" or "Untitled" in the + ' FileSave dialog and the document properties dialog. The string is locale + ' dependent. So we do a shortcut here, the calling tests fail at a later + ' point if this function does not work properly + + select case( right( cFileName, 4 ) ) + case ".vor", ".dot", ".sti", ".pot", ".std", ".xlt", ".stc", ".ots", "xltm", "xltx" + if ( GVERBOSE ) then printlog( CFN & "Template document filtered" ) + hIsNamedDocLoaded() = true + exit function + end select + if ( hUseAsyncSlot( "FileProperties" ) <> RC_FAILURE ) then + kontext + active.setpage(tabdokument) + kontext "TabDokument" if ( TabDokument.exists( 2 ) ) then diff --git a/testautomation/global/tools/includes/required/t_tools3.inc b/testautomation/global/tools/includes/required/t_tools3.inc index 27ac128437ee..987a6ded6bb6 100755 --- a/testautomation/global/tools/includes/required/t_tools3.inc +++ b/testautomation/global/tools/includes/required/t_tools3.inc @@ -1108,7 +1108,7 @@ function hUseAsyncSlot( cSlot as string ) as integer iTime = iRetries * DELAY ' Timeout is -1 - if ( iRetries = MAX_RETRIES ) then iTime = RC_TIMEOUT + if ( iRetries >= MAX_RETRIES ) then iTime = RC_TIMEOUT if ( GVERBOSE ) then printlog( CFN & "Exit with rc=" & iTime ) hUseAsyncSlot() = iTime @@ -1142,7 +1142,7 @@ function hClickButton( oButton as object ) as integer ' Total time used iTime = iRetries * DELAY - if ( iRetries = MAX_RETRIES ) then iTime = RC_TIMEOUT + if ( iRetries >= MAX_RETRIES ) then iTime = RC_TIMEOUT if ( GVERBOSE ) then printlog( CFN & "Exit with rc=" & iTime ) hClickButton() = iTime diff --git a/testautomation/global/win/edia_d_h.win b/testautomation/global/win/edia_d_h.win index 35869e0c2b72..19ba11ec6695 100755 --- a/testautomation/global/win/edia_d_h.win +++ b/testautomation/global/win/edia_d_h.win @@ -503,3 +503,6 @@ CustomLanguage sc:ListBox:RID_SCDLG_TEXT_IMPORT_OPTIONS:LB_CUSTOM_LANG DetectSpecialNumbers sc:CheckBox:RID_SCDLG_TEXT_IMPORT_OPTIONS:BTN_CONVERT_DATE *HyperlinkDialog HID_HYPERLINK_DIALOG +CloseButton HID_ICCDIALOG_CANCEL_BTN +ApplyButton HID_ICCDIALOG_OK_BTN +BackButton HID_ICCDIALOG_RESET_BTN diff --git a/testautomation/global/win/edia_t_z.win b/testautomation/global/win/edia_t_z.win index 4104b70f0f2a..4e3e0cd2a1be 100755 --- a/testautomation/global/win/edia_t_z.win +++ b/testautomation/global/win/edia_t_z.win @@ -159,11 +159,6 @@ Preview HID_SC_ASCII_TABCTR *UnsatisfiedDependencies desktop:ModalDialog:RID_DLG_DEPENDENCIES UnsatisfiedDependencyList desktop:ListBox:RID_DLG_DEPENDENCIES:RID_DLG_DEPENDENCIES_LIST -*WarningPrintOptions sd:ModalDialog:DLG_PRINT_WARNINGS -FitPage sd:RadioButton:DLG_PRINT_WARNINGS:RBT_SCALE -Posterize sd:RadioButton:DLG_PRINT_WARNINGS:RBT_POSTER -TrimPage sd:RadioButton:DLG_PRINT_WARNINGS:RBT_CUT - *WarningPrintTransparency sfx2:ModalDialog:RID_WARN_PRINTTRANSPARENCY NoButton sfx2:PushButton:RID_WARN_PRINTTRANSPARENCY:BTN_PRINTTRANS_NO DoNotShowAgain sfx2:CheckBox:RID_WARN_PRINTTRANSPARENCY:CBX_NOPRINTTRANSWARN diff --git a/testautomation/global/win/etab_h_o.win b/testautomation/global/win/etab_h_o.win index 244e02f717bc..de5481e2e3c2 100755 --- a/testautomation/global/win/etab_h_o.win +++ b/testautomation/global/win/etab_h_o.win @@ -180,6 +180,7 @@ LastRecordButton sw:PushButton:DLG_MM_PREPAREMERGE_PAGE:PB_LAST ExcludeCheckBox sw:CheckBox:DLG_MM_PREPAREMERGE_PAGE:CB_EXCLUDE EditButton sw:PushButton:DLG_MM_PREPAREMERGE_PAGE:PB_EDIT +*TabMediaWiki sym:vnd.com.sun.star.wiki:settings *TabMemory HID_OFA_TP_MEMORY UndoSteps cui:NumericField:OFA_TP_MEMORY:ED_UNDO diff --git a/testautomation/global/win/etab_t_z.win b/testautomation/global/win/etab_t_z.win index aa0155908c5d..b7db16fd1ef4 100755 --- a/testautomation/global/win/etab_t_z.win +++ b/testautomation/global/win/etab_t_z.win @@ -101,6 +101,8 @@ ColumnLength HID_TAB_ENT_TEXT_LEN ColumnAutoValue dbaccess:NumericField:TAB_WIZ_TYPE_SELECT:ET_AUTO ColumnAuto dbaccess:PushButton:TAB_WIZ_TYPE_SELECT:PB_AUTO +*TabWeblog sym:vnd.com.sun.star.blogger:settings + *TabXMLGeneral HID_XML_FILTER_TABPAGE_BASIC FilterName HID_XML_FILTER_NAME Application HID_XML_FILTER_APPLICATION diff --git a/testautomation/graphics/required/includes/global/id_006.inc b/testautomation/graphics/required/includes/global/id_006.inc index c7de07588367..57990c2a16b0 100644 --- a/testautomation/graphics/required/includes/global/id_006.inc +++ b/testautomation/graphics/required/includes/global/id_006.inc @@ -31,7 +31,6 @@ '* '\********************************************************************************** -'------------------------------------------------------------------------------ sub id_Tools printLog "--------- id_006 ----------" call tiToolsSpellchecking @@ -105,9 +104,9 @@ testcase tiToolsSpellcheckingAutomatic endcase '------------------------------------------------------------------------------- testcase tiToolsThesaurus - Dim sWord as string Dim sExt as string + Dim sFileName as string 'for normal text, the thesaurus is enabled, 'if the format->character->language of the word has a thesaurus @@ -195,55 +194,9 @@ testcase tiToolsThesaurus if Thesaurus.Exists(3) then Thesaurus.Cancel else - sFileName = (ConvertPath (gTesttoolPath + "graphics\required\input\engtext.odg")) - end if - if FileExists ( sFileName ) = FALSE then - warnlog "The language-file was not found or accessible! The test ends." - goto endsub + warnlog "the thesaurus does not appear" end if - Call hFileOpen (sFileName) - - sleep (2) - - hTypeKeys "<TAB><RETURN>" - hTypeKeys "<END><SHIFT HOME>" - - ' Call hTextrahmenErstellen ("SimpleTest" + "<Mod1 Shift left>", 10, 10, 30, 40) - try - '/// Tools->Thesaurus ///' - ExtrasThesaurusDraw - Kontext "Thesaurus" - Call DialogTest ( Thesaurus ) - '/// click button 'language' ///' - Sprache.Click - Kontext "SpracheAuswaehlen" - Call DialogTest ( SpracheAuswaehlen ) - '/// cancel dialog 'select language' ///' - SpracheAuswaehlen.cancel - Kontext "Thesaurus" - '/// click button 'search' ///' - Nachschlagen.Click - kontext - '/// if messagebox exist, say OK; (word not found) ///' - if Messagebox.exists (5) then - printlog "Messagebox: word not in thesaurus: '"+Messagebox.gettext+"'" - Messagebox.ok - end if - sleep 1 - Kontext "Thesaurus" - '/// cancel dialog 'Thesaurus' ///' - Thesaurus.Cancel - catch - warnlog "Thesaurus didn't work :-(" - endcatch - sleep 1 - '/// close application ///' - Call hCloseDocument - else - goto endsub - endif Call hCloseDocument - endcase '------------------------------------------------------------------------------- testcase tiToolsHyphenation @@ -519,4 +472,4 @@ testcase tiToolsEyedropper '/// close application ///' Call hCloseDocument endcase -'-------------------------------------------------------------------------------
\ No newline at end of file + diff --git a/testautomation/graphics/required/includes/impress/i_opt_1_.inc b/testautomation/graphics/required/includes/impress/i_opt_1_.inc index ad62c64acf50..148bbe980424 100644 --- a/testautomation/graphics/required/includes/impress/i_opt_1_.inc +++ b/testautomation/graphics/required/includes/impress/i_opt_1_.inc @@ -31,14 +31,6 @@ '* '\****************************************************************************** -sub i_opt_1_.inc - - call tiAlwaysWithCurrentPage() - -end sub - -'******************************************************************************* - testcase tiAlwaysWithCurrentPage() dim i as integer @@ -202,4 +194,4 @@ testcase tiAlwaysWithCurrentPage() setStartCurrentPage(true) Call hCloseDocument endcase -'------------------------------------------------------------------------------- + diff --git a/testautomation/graphics/required/includes/impress/im_003_.inc b/testautomation/graphics/required/includes/impress/im_003_.inc index 87052558b8f9..a160699d74ca 100644 --- a/testautomation/graphics/required/includes/impress/im_003_.inc +++ b/testautomation/graphics/required/includes/impress/im_003_.inc @@ -132,31 +132,23 @@ testcase tiViewPanes endcase 'tiViewPanes '--------------------------------------------------------- testcase tiViewMasterView - printlog "open application" Call hNewDocument - printlog "View->Master View->Drawing View" hUseAsyncSlot( "ViewWorkspaceDrawingView" ) - printlog "View->Master View->Outline View " hUseAsyncSlot( "ViewWorkspaceOutlineView" ) - printlog "View->Master View->Slides View " - hUseAsyncSlot( "ViewWorkspaceSlidesView" ) - + ViewWorkspaceSlidesView + sleep 1 printlog "View->Master View->Notes View " hUseAsyncSlot( "ViewWorkspaceNotesView" ) - printlog "View->Master View->Handout View " hUseAsyncSlot( "ViewWorkspaceHandoutView" ) - printlog "View->Master View->Drawing View " hUseAsyncSlot( "ViewWorkspaceDrawingView" ) - printlog "close application " Call hCloseDocument - endcase 'tiViewMasterView '--------------------------------------------------------- testcase tiViewSlideMaster diff --git a/testautomation/graphics/required/includes/impress/im_007_.inc b/testautomation/graphics/required/includes/impress/im_007_.inc index 9d4860a0ba56..0a598f59c520 100644 --- a/testautomation/graphics/required/includes/impress/im_007_.inc +++ b/testautomation/graphics/required/includes/impress/im_007_.inc @@ -41,6 +41,7 @@ sub im_007_ call tSlideShowShowHideSlide() call tSlideShowCustomAnimation() call tSlideShowInteraction() + call tSlideShowAnimation() end sub diff --git a/testautomation/math/optional/includes/m_101_.inc b/testautomation/math/optional/includes/m_101_.inc index 2fc34b5c1f01..254dfc3b2eed 100755 --- a/testautomation/math/optional/includes/m_101_.inc +++ b/testautomation/math/optional/includes/m_101_.inc @@ -280,7 +280,11 @@ testcase tFilePassword printlog " Check: (" + i + "/" + x +"): " +sTemp if Passwort.isEnabled then if NOT((instr(sTemp,gMathFilter) = 1)OR(instr(sTemp," (.sxm)") > 1)) then - warnlog "(" + i + "/" + x +"): '"+sTemp+"' Password Checkbox: Enabled" + if (4=i) then + warnlog "#i112895# (" + i + "/" + x +"): '"+sTemp+"' Password Checkbox: Enabled" + else + warnlog "(" + i + "/" + x +"): '"+sTemp+"' Password Checkbox: Enabled" + endif endif else if (instr(sTemp,gMathFilter) = 1)OR(instr(sTemp," (.sxm)") > 1) then diff --git a/testautomation/math/optional/includes/m_105.inc b/testautomation/math/optional/includes/m_105.inc index 3bfac36f6f25..8c0bdf773050 100644..100755 --- a/testautomation/math/optional/includes/m_105.inc +++ b/testautomation/math/optional/includes/m_105.inc @@ -487,8 +487,6 @@ testcase tToolsCatalog endcase testcase tToolsCatalogNew - qaerrorlog "#i64504# Symbol set name is not saved on exiting OOo" -goto endsub dim i, j as integer dim sTemp as string dim iStartingSymbolSetCount as integer @@ -626,7 +624,7 @@ goto endsub SymbolSet.select "" endcatch i = Symbol.getItemCount - if i <> 1 then + if i < 2 then warnlog "Symbol not available in new Symbolset: intsead of 1: " + i endif SymbolSet.setText "TBOnewSymbolSetdelete" diff --git a/testautomation/spreadsheet/optional/includes/import_general/c_import_general.inc b/testautomation/spreadsheet/optional/includes/import_general/c_import_general.inc index 87c6d899b7bb..6f8392adf93d 100755 --- a/testautomation/spreadsheet/optional/includes/import_general/c_import_general.inc +++ b/testautomation/spreadsheet/optional/includes/import_general/c_import_general.inc @@ -41,6 +41,8 @@ sub tLoadAllDocuments ( gsSourcePath as string ) Dim i as integer Dim x as integer + dim gsSourceDocument( 50 ) as string + printlog "Source path: " & gsSourcePath 'Get the files into a list. Call GetAllFileList(gsSourcePath, "*.*" , gsSourceDocument()) @@ -81,6 +83,7 @@ end function '------------------------------------------------------------------------------- ' testcase tLoadSpreadsheetDocument (SourceFile) + Dim sOnlyFileName as string Dim sOnlyFileExtension as string Dim sTempFileName as String @@ -88,13 +91,13 @@ testcase tLoadSpreadsheetDocument (SourceFile) sTempFileName = SourceFile sOnlyFileName = DateiOhneExt(DateiExtract(SourceFile) - sOnlyFileExtension = GetExtention(sTempFileName) - select case sOnlyFileName - case "so3tmpl", "so4tmpl", "so5tmpl" : - printlog "Test case: " & sOnlyFileName & "." & sOnlyFileExtension - - case else printlog "Test case: " & sOnlyFileName & "." & sOnlyFileExtension + sOnlyFileExtension = GetExtention(sTempFileName) + + select case ( sOnlyFileName ) + case "so3tmpl", "so4tmpl", "so5tmpl" : printlog "Test case: " & sOnlyFileName & "." & sOnlyFileExtension + case else : printlog "Test case: " & sOnlyFileName & "." & sOnlyFileExtension end select + 'Maybe file name is empty if sOnlyFileName > "" then 'Some extensions make no sense to load @@ -106,27 +109,15 @@ testcase tLoadSpreadsheetDocument (SourceFile) Call hCloseDocument else warnlog sOnlyFileName + " document has not been loaded correctly [hIsNamedDocLoaded]!" - if GetDocumentCount > 1 then - Do Until GetDocumentCount = 1 - Call hCloseDocument - Loop - endif + hFileCloseAll() endif else warnlog sOnlyFileName + " document has not been loaded correctly [fCalcFileOpen; IsItLoaded]!" - if GetDocumentCount > 1 then - Do Until GetDocumentCount = 1 - Call hCloseDocument - Loop - endif + hFileCloseAll() endif else printlog "(" + sOnlyFileName + "." + sOnlyFileExtension + ") won't be loaded because of excluded extensions .so and .tmp." - if GetDocumentCount > 1 then - Do Until GetDocumentCount = 1 - Call hCloseDocument - Loop - endif + hFileCloseAll() endif endif endcase diff --git a/testautomation/spreadsheet/required/includes/c_upd_editmenu2.inc b/testautomation/spreadsheet/required/includes/c_upd_editmenu2.inc index dc54ca10361e..ee96ffadb6fd 100644..100755 --- a/testautomation/spreadsheet/required/includes/c_upd_editmenu2.inc +++ b/testautomation/spreadsheet/required/includes/c_upd_editmenu2.inc @@ -583,15 +583,15 @@ testcase tEditImageMap printlog " Click on 'Active'-button" Aktiv.Click '/// Click on 'Macro...'-button - printlog " Click on 'Macro...'-button" - warnlog "#i102720# => crash, therefor this functionality is outcommented" -' Makro.Click -' Kontext "MakroZuweisen" -' Call DialogTest ( MakroZuweisen ) -' '/// Close 'Assign Macro'-dialog with Cancel -' printlog " Close 'Assign Macro'-dialog with Cancel" -' MakroZuweisen.Cancel -' Kontext "ImageMapEditor" + printlog " Click on 'Macro...'-button" +' warnlog "#i102720# => crash, therefor this functionality is outcommented" + Makro.Click + Kontext "MakroZuweisen" + Call DialogTest ( MakroZuweisen ) + '/// Close 'Assign Macro'-dialog with Cancel + printlog " Close 'Assign Macro'-dialog with Cancel" + MakroZuweisen.Cancel + Kontext "ImageMapEditor" '/// Click on 'Properties'-button printlog " Click on 'Properties'-button" Eigenschaften.Click diff --git a/testautomation/spreadsheet/required/includes/c_upd_filemenu.inc b/testautomation/spreadsheet/required/includes/c_upd_filemenu.inc index 32eee7e6040c..ad543b5c97f7 100755 --- a/testautomation/spreadsheet/required/includes/c_upd_filemenu.inc +++ b/testautomation/spreadsheet/required/includes/c_upd_filemenu.inc @@ -355,6 +355,11 @@ endcase '----------------------------------------------------------- testcase tFileRecentDocuments + +if gPlatform = "lin" then + warnlog "#110649# Due to bug this testcase is not available" + goto endsub +end if dim sTestFile as string diff --git a/testautomation/spreadsheet/required/includes/c_upd_toolsmenu2.inc b/testautomation/spreadsheet/required/includes/c_upd_toolsmenu2.inc index 91a806fd33ae..78dbcb0ae18b 100755 --- a/testautomation/spreadsheet/required/includes/c_upd_toolsmenu2.inc +++ b/testautomation/spreadsheet/required/includes/c_upd_toolsmenu2.inc @@ -166,7 +166,6 @@ testcase tToolsMacro printlog " Close Select Certificate' dialog with 'Cancel'" SelectCertificate.Cancel Kontext "DigitalSignature" - add.click '/// Close 'Digital Signatures' dialog with 'Cancel' printlog " Close 'Digital Signatures' dialog with 'Cancel'" DigitalSignature.ok diff --git a/testautomation/writer/optional/includes/fields/w_fields2.inc b/testautomation/writer/optional/includes/fields/w_fields2.inc index 4023480ff7dd..422be7088a14 100755 --- a/testautomation/writer/optional/includes/fields/w_fields2.inc +++ b/testautomation/writer/optional/includes/fields/w_fields2.inc @@ -879,7 +879,7 @@ testcase tDocumentStatistics ' document has to be copied to local file system to avoid opening a read-only file ' because all field data gets lost if documents write-protection is removed via 'sMakeReadOnlyDocumentEditable' FileCopy (sOriginalFile, sTestFile) - if hFileExists ( sTestFile ) = false then + if FileExists ( sTestFile ) = false then Warnlog "Test document couldn't be copied to local file system. Test aborted!" goto endsub end if @@ -942,7 +942,7 @@ testcase tDocumentTemplate ' document has to be copied to local file system to avoid opening a read-only file ' because all field data gets lost if documents write-protection is removed via 'sMakeReadOnlyDocumentEditable' FileCopy (sOriginalFile, sTestFile) - if hFileExists ( sTestFile ) = false then + if FileExists ( sTestFile ) = false then Warnlog "Test document couldn't be copied to local file system. Test aborted!" goto endsub end if diff --git a/testautomation/writer/optional/includes/spellcheck/w_spellcheck.inc b/testautomation/writer/optional/includes/spellcheck/w_spellcheck.inc index 07c0dc4628d0..a8e5565e5eba 100755 --- a/testautomation/writer/optional/includes/spellcheck/w_spellcheck.inc +++ b/testautomation/writer/optional/includes/spellcheck/w_spellcheck.inc @@ -43,6 +43,7 @@ sub w_spellcheck Call tToolsThesaurus Call tToolsSpellcheckButtonChange Call tToolsSpellcheckButtonChangeAll + Call tToolsThesaurusSynonyms end sub @@ -1286,7 +1287,7 @@ testcase tToolsThesaurus printlog "Set language dependent word in textfield Current Word" CurrentWord.Settext sWordInitial - wait 500 + Sleep 2 if Alternatives.GetItemCount = 0 then Warnlog "No alternatives text" else @@ -1390,7 +1391,7 @@ testcase tToolsThesaurusSynonyms printlog " Open document where the formatting is set to the language we wish to test." TheFile = Convertpath (gTesttoolpath + "writer\optional\input\spellcheck\spellcheck_" + iSprache + ".odt") - if hFileExists ( TheFile ) <> TRUE then + if FileExists ( TheFile ) <> TRUE then Warnlog "Found no Document for the language you're testing in, Please inform the Test-Developer." exit sub end if diff --git a/testautomation/writer/required/includes/w_002_.inc b/testautomation/writer/required/includes/w_002_.inc index d19c563526ce..d4b6952840b2 100755 --- a/testautomation/writer/required/includes/w_002_.inc +++ b/testautomation/writer/required/includes/w_002_.inc @@ -948,8 +948,9 @@ testcase tEditHyperlink PrintLog "Click 'Apply'" Uebernehmen.Click + kontext "HyperlinkDialog" PrintLog "Close Hyperlink dialog" - hCloseDialog( Hyperlink, "close" ) + hClickButton( CloseButton ) else warnlog( "Dialog <Hyperlink> did not open" ) hCloseDocument() @@ -972,8 +973,8 @@ testcase tEditHyperlink PrintLog "Edit / Hyperlink has to be enabled" if ( hUseAsyncSlot( "EditHyperlink" ) > -1 ) then - Kontext "Hyperlink" - hCloseDialog( Hyperlink, "close" ) + kontext "HyperlinkDialog" + hClickButton( CloseButton ) else warnlog( "Slot <EditHyperlink> could not be called" ) endif diff --git a/testautomation/writer/required/includes/w_005b_.inc b/testautomation/writer/required/includes/w_005b_.inc index ad7c69346cf8..46ad8e610587 100644..100755 --- a/testautomation/writer/required/includes/w_005b_.inc +++ b/testautomation/writer/required/includes/w_005b_.inc @@ -176,7 +176,7 @@ testcase tFormatArrange printlog " Insert a graphic from file '..\writer\required\input\graphics\jolink.jpg'" Call hGrafikEinfuegen ( gTesttoolPath + "writer\required\input\graphics\jolink.jpg" ) - + sleep(2) try printlog " Format / Arrange / Bring to front" FormatArrangeBringToFrontCalc @@ -219,12 +219,12 @@ testcase tFormatAlignment Call hNewDocument printlog " Insert a graphic from file '..\writer\required\input\graphics\jolink.jpg'" Call hGrafikEinfuegen ( gTesttoolPath + "writer\required\input\graphics\jolink.jpg" ) - + sleep(2) if ( gApplication = "HTML" ) then printlog " Format / Anchor / to Page" hUseAsyncSlot( "FormatAnchorToPage" ) end if - + try printlog " Format / Alignment / Left" FormatAlignmentLeft @@ -469,14 +469,14 @@ testcase tFormatWrapObject if ( hUseAsyncSlot( "FormatWrapContour" ) = -1 ) then printlog( "Format / Wrap / Contour disabled. Good." ) else - warnlog( "#i90964# Format / Wrap / Contour should not be enabled for frames" ) + warnlog( "Format / Wrap / Contour should not be enabled for frames" ) end if printlog " Format / Wrap / Edit Contour" if ( hUseAsyncSlot( "FormatWrapEditContour" ) = -1 ) then printlog( "Format / Wrap / Edit Contour disabled. Good." ) else - Warnlog( "#i90964# Wrap / Edit Contour should not be enabled for frames" ) + Warnlog( "Wrap / Edit Contour should not be enabled for frames" ) Kontext "KonturEditor" if ( KonturEditor.exists( 2 ) ) then diff --git a/testautomation/writer/required/includes/w_007_.inc b/testautomation/writer/required/includes/w_007_.inc index 4551ee1c2390..33b0ef4f2ff9 100755 --- a/testautomation/writer/required/includes/w_007_.inc +++ b/testautomation/writer/required/includes/w_007_.inc @@ -1115,9 +1115,6 @@ endcase testcase tHtmlDocToolsHangulHanjaConversion - warnlog( "#i112523# - Hangul Hanya Conversion dialog causes crash." ) - goto endsub - Dim bAsianLanguage as Boolean Dim sTestFile as String diff --git a/testtools/source/cliversioning/version_libs/version_3_2_1.dll b/testtools/source/cliversioning/version_libs/version_3_2_1.dll Binary files differnew file mode 100755 index 000000000000..037f5ddee846 --- /dev/null +++ b/testtools/source/cliversioning/version_libs/version_3_2_1.dll diff --git a/tools/source/string/strucvt.cxx b/tools/source/string/strucvt.cxx index 7198d0e8f98c..9c9ef1dc4b5a 100644 --- a/tools/source/string/strucvt.cxx +++ b/tools/source/string/strucvt.cxx @@ -201,6 +201,8 @@ UniString::UniString( const ResId& rResId ) Append( UniString::CreateFromInt32( rResId.GetId() ) ); AppendAscii( " not found>" ); #endif + if( pResMgr ) + pResMgr->PopContext(); } diff --git a/ucb/source/core/cmdenv.cxx b/ucb/source/core/cmdenv.cxx index 0f425e814400..5c0136fab063 100644 --- a/ucb/source/core/cmdenv.cxx +++ b/ucb/source/core/cmdenv.cxx @@ -183,7 +183,7 @@ UcbCommandEnvironment::createServiceFactory( const uno::Reference< lang::XMultiServiceFactory >& rxServiceMgr ) { return uno::Reference< lang::XSingleServiceFactory >( - cppu::createOneInstanceFactory( + cppu::createSingleFactory( rxServiceMgr, UcbCommandEnvironment::getImplementationName_Static(), UcbCommandEnvironment_CreateInstance, diff --git a/ucb/source/ucp/webdav/DAVResourceAccess.cxx b/ucb/source/ucp/webdav/DAVResourceAccess.cxx index 872d45405735..e4617b7b9ea7 100644 --- a/ucb/source/ucp/webdav/DAVResourceAccess.cxx +++ b/ucb/source/ucp/webdav/DAVResourceAccess.cxx @@ -1201,8 +1201,7 @@ sal_Bool DAVResourceAccess::handleException( DAVException & e, int errorCount ) // if we have a bad connection try again. Up to three times. case DAVException::DAV_HTTP_ERROR: // retry up to three times, if not a client-side error. - if ( e.getStatus() > 0 && - ( e.getStatus() < 400 || e.getStatus() > 499 ) && + if ( ( e.getStatus() < 400 || e.getStatus() >= 500 ) && errorCount < 3 ) { return sal_True; diff --git a/unoil/climaker/version.txt b/unoil/climaker/version.txt index f3c80f838ad3..2678d1bc035b 100644 --- a/unoil/climaker/version.txt +++ b/unoil/climaker/version.txt @@ -25,8 +25,8 @@ # #************************************************************************* -CLI_OOOTYPES_NEW_VERSION=1.0.6.0 -CLI_OOOTYPES_OLD_VERSION=1.0.0.0-1.0.5.0 -CLI_OOOTYPES_POLICY_VERSION=6.0.0.0 +CLI_OOOTYPES_NEW_VERSION=1.0.7.0 +CLI_OOOTYPES_OLD_VERSION=1.0.0.0-1.0.6.0 +CLI_OOOTYPES_POLICY_VERSION=7.0.0.0 CLI_OOOTYPES_POLICY_ASSEMBLY=policy.1.0.cli_oootypes diff --git a/unotools/source/config/fontcfg.cxx b/unotools/source/config/fontcfg.cxx index a1d287337bea..e8ae78d0aed2 100644 --- a/unotools/source/config/fontcfg.cxx +++ b/unotools/source/config/fontcfg.cxx @@ -1199,8 +1199,15 @@ const FontNameAttr* FontSubstConfiguration::getSubstInfo( const String& rFontNam // try to find an exact match // because the list is sorted this will also find fontnames of the form searchfontname* std::vector< FontNameAttr >::const_iterator it = ::std::lower_bound( lang->second.aSubstAttributes.begin(), lang->second.aSubstAttributes.end(), aSearchAttr, StrictStringSort() ); - if( it != lang->second.aSubstAttributes.end() && aSearchFont.CompareTo( it->Name, aSearchFont.Len() ) == COMPARE_EQUAL ) - return &(*it); + if( it != lang->second.aSubstAttributes.end()) + { + const FontNameAttr& rFoundAttr = *it; + // a search for "abcblack" may match with an entry for "abc" + // the reverse is not a good idea (e.g. #i112731# alba->albani) + if( rFoundAttr.Name.Len() <= aSearchFont.Len() ) + if( aSearchFont.CompareTo( rFoundAttr.Name, rFoundAttr.Name.Len() ) == COMPARE_EQUAL ) + return &rFoundAttr; + } } // gradually become more unspecific if( aLocale.Variant.getLength() ) diff --git a/vcl/aqua/inc/salgdi.h b/vcl/aqua/inc/salgdi.h index 1948018806e1..8867d1d26078 100644 --- a/vcl/aqua/inc/salgdi.h +++ b/vcl/aqua/inc/salgdi.h @@ -229,17 +229,17 @@ public: CGPoint* makeCGptArray(ULONG nPoints, const SalPoint* pPtAry); // native widget rendering methods that require mirroring - virtual BOOL hitTestNativeControl( ControlType nType, ControlPart nPart, const Region& rControlRegion, + virtual BOOL hitTestNativeControl( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, const Point& aPos, BOOL& rIsInside ); - virtual BOOL drawNativeControl( ControlType nType, ControlPart nPart, const Region& rControlRegion, + virtual BOOL drawNativeControl( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const rtl::OUString& aCaption ); - virtual BOOL drawNativeControlText( ControlType nType, ControlPart nPart, const Region& rControlRegion, + virtual BOOL drawNativeControlText( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const rtl::OUString& aCaption ); - virtual BOOL getNativeControlRegion( ControlType nType, ControlPart nPart, const Region& rControlRegion, ControlState nState, + virtual BOOL getNativeControlRegion( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const rtl::OUString& aCaption, - Region &rNativeBoundingRegion, Region &rNativeContentRegion ); + Rectangle &rNativeBoundingRegion, Rectangle &rNativeContentRegion ); // get device resolution virtual void GetResolution( long& rDPIX, long& rDPIY ); diff --git a/vcl/aqua/source/gdi/salnativewidgets.cxx b/vcl/aqua/source/gdi/salnativewidgets.cxx index 5eccf88dc523..6e206977b5c4 100644 --- a/vcl/aqua/source/gdi/salnativewidgets.cxx +++ b/vcl/aqua/source/gdi/salnativewidgets.cxx @@ -379,13 +379,13 @@ BOOL AquaSalGraphics::IsNativeControlSupported( ControlType nType, ControlPart n * aPos was or was not inside the native widget specified by the * nType/nPart combination. */ -BOOL AquaSalGraphics::hitTestNativeControl( ControlType nType, ControlPart nPart, const Region& rControlRegion, +BOOL AquaSalGraphics::hitTestNativeControl( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, const Point& rPos, BOOL& rIsInside ) { if ( nType == CTRL_SCROLLBAR ) { Rectangle aRect; - bool bValid = AquaGetScrollRect( /* TODO: m_nScreen */ nPart, rControlRegion.GetBoundRect(), aRect ); + bool bValid = AquaGetScrollRect( /* TODO: m_nScreen */ nPart, rControlRegion, aRect ); rIsInside = bValid ? aRect.IsInside( rPos ) : FALSE; if( GetSalData()->mbIsScrollbarDoubleMax ) { @@ -472,7 +472,7 @@ UInt32 AquaSalGraphics::getTrackState( ControlState nState ) */ BOOL AquaSalGraphics::drawNativeControl(ControlType nType, ControlPart nPart, - const Region& rControlRegion, + const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const rtl::OUString& aCaption ) @@ -484,7 +484,7 @@ BOOL AquaSalGraphics::drawNativeControl(ControlType nType, CGContextSaveGState( mrContext ); - Rectangle buttonRect = rControlRegion.GetBoundRect(); + Rectangle buttonRect = rControlRegion; HIRect rc = ImplGetHIRectFromRectangle(buttonRect); /** Scrollbar parts code equivalent ** @@ -621,7 +621,7 @@ BOOL AquaSalGraphics::drawNativeControl(ControlType nType, // no animation aPushInfo.animation.time.start = 0; aPushInfo.animation.time.current = 0; - PushButtonValue* pPBVal = (PushButtonValue*)aValue.getOptionalVal(); + PushButtonValue* pPBVal = aValue.getType() == CTRL_PUSHBUTTON ? (PushButtonValue*)&aValue : NULL; int nPaintHeight = static_cast<int>(rc.size.height); if( pPBVal && pPBVal->mbBevelButton ) @@ -790,7 +790,7 @@ BOOL AquaSalGraphics::drawNativeControl(ControlType nType, case CTRL_SLIDER: { - SliderValue* pSLVal = (SliderValue*)aValue.getOptionalVal(); + SliderValue* pSLVal = (SliderValue*)&aValue; HIThemeTrackDrawInfo aTrackDraw; aTrackDraw.kind = kThemeSliderMedium; @@ -820,7 +820,7 @@ BOOL AquaSalGraphics::drawNativeControl(ControlType nType, case CTRL_SCROLLBAR: { - ScrollbarValue* pScrollbarVal = (ScrollbarValue *)(aValue.getOptionalVal()); + ScrollbarValue* pScrollbarVal = (ScrollbarValue *)&aValue; if( nPart == PART_DRAW_BACKGROUND_VERT || nPart == PART_DRAW_BACKGROUND_HORZ ) @@ -962,17 +962,19 @@ BOOL AquaSalGraphics::drawNativeControl(ControlType nType, //first, last or middle tab aTabItemDrawInfo.position=kHIThemeTabPositionMiddle; - TabitemValue *aTabValue=(TabitemValue *) aValue.getOptionalVal(); - unsigned int nAlignement=aTabValue->mnAlignment; + TabitemValue* pTabValue = (TabitemValue *) &aValue; + unsigned int nAlignment = pTabValue->mnAlignment; //TABITEM_LEFTALIGNED (and TABITEM_RIGHTALIGNED) for the leftmost (or rightmost) tab //when there are several lines of tabs because there is only one first tab and one //last tab and TABITEM_FIRST_IN_GROUP (and TABITEM_LAST_IN_GROUP) because when the //line width is different from window width, there may not be TABITEM_RIGHTALIGNED - if((nAlignement & TABITEM_LEFTALIGNED)&&(nAlignement & TABITEM_RIGHTALIGNED)) //tab alone + if( ( (nAlignment & TABITEM_LEFTALIGNED)&&(nAlignment & TABITEM_RIGHTALIGNED) ) || + ( (nAlignment & TABITEM_FIRST_IN_GROUP)&&(nAlignment & TABITEM_LAST_IN_GROUP) ) + ) //tab alone aTabItemDrawInfo.position=kHIThemeTabPositionOnly; - else if((nAlignement & TABITEM_LEFTALIGNED)||(nAlignement & TABITEM_FIRST_IN_GROUP)) + else if((nAlignment & TABITEM_LEFTALIGNED)||(nAlignment & TABITEM_FIRST_IN_GROUP)) aTabItemDrawInfo.position=kHIThemeTabPositionFirst; - else if((nAlignement & TABITEM_RIGHTALIGNED)||(nAlignement & TABITEM_LAST_IN_GROUP)) + else if((nAlignment & TABITEM_RIGHTALIGNED)||(nAlignment & TABITEM_LAST_IN_GROUP)) aTabItemDrawInfo.position=kHIThemeTabPositionLast; //support for RTL @@ -1087,7 +1089,7 @@ BOOL AquaSalGraphics::drawNativeControl(ControlType nType, if(nState & CTRL_STATE_FOCUSED) HIThemeDrawFocusRect(&rc, true, mrContext, kHIThemeOrientationNormal); //buttons: - SpinbuttonValue* pSpinButtonVal = (SpinbuttonValue *)(aValue.getOptionalVal()); + SpinbuttonValue* pSpinButtonVal = (SpinbuttonValue *)&aValue; ControlState nUpperState = CTRL_STATE_ENABLED;//state of the upper button ControlState nLowerState = CTRL_STATE_ENABLED;//and of the lower button if(pSpinButtonVal) {//pSpinButtonVal is sometimes null @@ -1226,7 +1228,7 @@ BOOL AquaSalGraphics::drawNativeControl(ControlType nType, * aValue: An optional value (tristate/numerical/string) * aCaption: A caption or title string (like button text etc) */ -BOOL AquaSalGraphics::drawNativeControlText( ControlType nType, ControlPart nPart, const Region& rControlRegion, +BOOL AquaSalGraphics::drawNativeControlText( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const rtl::OUString& aCaption ) { @@ -1247,14 +1249,14 @@ BOOL AquaSalGraphics::drawNativeControlText( ControlType nType, ControlPart nPar * aValue: An optional value (tristate/numerical/string) * aCaption: A caption or title string (like button text etc) */ -BOOL AquaSalGraphics::getNativeControlRegion( ControlType nType, ControlPart nPart, const Region& rControlRegion, ControlState nState, +BOOL AquaSalGraphics::getNativeControlRegion( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const rtl::OUString& aCaption, - Region &rNativeBoundingRegion, Region &rNativeContentRegion ) + Rectangle &rNativeBoundingRegion, Rectangle &rNativeContentRegion ) { BOOL toReturn = FALSE; - Rectangle aCtrlBoundRect( rControlRegion.GetBoundRect() ); + Rectangle aCtrlBoundRect( rControlRegion ); short x = aCtrlBoundRect.Left(); short y = aCtrlBoundRect.Top(); short w, h; @@ -1269,14 +1271,14 @@ BOOL AquaSalGraphics::getNativeControlRegion( ControlType nType, ControlPart nPa { w = 19; // taken from HIG h = aCtrlBoundRect.GetHeight(); - rNativeBoundingRegion = rNativeContentRegion = Region( Rectangle( Point( x, y ), Size( w, h ) ) ); + rNativeBoundingRegion = rNativeContentRegion = Rectangle( Point( x, y ), Size( w, h ) ); toReturn = true; } else if( nPart == PART_THUMB_VERT ) { w = aCtrlBoundRect.GetWidth(); h = 18; // taken from HIG - rNativeBoundingRegion = rNativeContentRegion = Region( Rectangle( Point( x, y ), Size( w, h ) ) ); + rNativeBoundingRegion = rNativeContentRegion = Rectangle( Point( x, y ), Size( w, h ) ); toReturn = true; } } diff --git a/vcl/inc/vcl/button.hxx b/vcl/inc/vcl/button.hxx index 8f4b94bf7b18..fa185c32dcda 100644 --- a/vcl/inc/vcl/button.hxx +++ b/vcl/inc/vcl/button.hxx @@ -66,6 +66,8 @@ public: SAL_DLLPRIVATE void ImplSetSymbolAlign( SymbolAlign eAlign ); SAL_DLLPRIVATE SymbolAlign ImplGetSymbolAlign() const; SAL_DLLPRIVATE void ImplSetSmallSymbol( BOOL bSmall = TRUE ); + SAL_DLLPRIVATE const Rectangle& ImplGetSymbolRect() const; + SAL_DLLPRIVATE void ImplSetSymbolRect(const Rectangle&); protected: Button( WindowType nType ); diff --git a/vcl/inc/vcl/outdev.hxx b/vcl/inc/vcl/outdev.hxx index 9b748f2b5937..f787df3692ce 100644 --- a/vcl/inc/vcl/outdev.hxx +++ b/vcl/inc/vcl/outdev.hxx @@ -1191,14 +1191,14 @@ public: // Query the native control to determine if it was acted upon BOOL HitTestNativeControl( ControlType nType, ControlPart nPart, - const Region& rControlRegion, + const Rectangle& rControlRegion, const Point& aPos, BOOL& rIsInside ); // Request rendering of a particular control and/or part BOOL DrawNativeControl( ControlType nType, ControlPart nPart, - const Region& rControlRegion, + const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, ::rtl::OUString aCaption ); @@ -1206,7 +1206,7 @@ public: // Request rendering of a caption string for a control BOOL DrawNativeControlText( ControlType nType, ControlPart nPart, - const Region& rControlRegion, + const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, ::rtl::OUString aCaption ); @@ -1214,12 +1214,12 @@ public: // Query the native control's actual drawing region (including adornment) BOOL GetNativeControlRegion( ControlType nType, ControlPart nPart, - const Region& rControlRegion, + const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, ::rtl::OUString aCaption, - Region &rNativeBoundingRegion, - Region &rNativeContentRegion ); + Rectangle &rNativeBoundingRegion, + Rectangle &rNativeContentRegion ); }; diff --git a/vcl/inc/vcl/salgdi.hxx b/vcl/inc/vcl/salgdi.hxx index 08c489f7d466..f75817071304 100644 --- a/vcl/inc/vcl/salgdi.hxx +++ b/vcl/inc/vcl/salgdi.hxx @@ -158,17 +158,17 @@ protected: virtual BOOL drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize ) = 0; // native widget rendering methods that require mirroring - virtual BOOL hitTestNativeControl( ControlType nType, ControlPart nPart, const Region& rControlRegion, + virtual BOOL hitTestNativeControl( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, const Point& aPos, BOOL& rIsInside ); - virtual BOOL drawNativeControl( ControlType nType, ControlPart nPart, const Region& rControlRegion, + virtual BOOL drawNativeControl( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const rtl::OUString& aCaption ); - virtual BOOL drawNativeControlText( ControlType nType, ControlPart nPart, const Region& rControlRegion, + virtual BOOL drawNativeControlText( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const rtl::OUString& aCaption ); - virtual BOOL getNativeControlRegion( ControlType nType, ControlPart nPart, const Region& rControlRegion, ControlState nState, + virtual BOOL getNativeControlRegion( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const rtl::OUString& aCaption, - Region &rNativeBoundingRegion, Region &rNativeContentRegion ); + Rectangle &rNativeBoundingRegion, Rectangle &rNativeContentRegion ); /** Render bitmap with alpha channel @@ -440,7 +440,7 @@ public: // Query the native control to determine if it was acted upon BOOL HitTestNativeControl( ControlType nType, ControlPart nPart, - const Region& rControlRegion, + const Rectangle& rControlRegion, const Point& aPos, BOOL& rIsInside, const OutputDevice *pOutDev ); @@ -448,7 +448,7 @@ public: // Request rendering of a particular control and/or part BOOL DrawNativeControl( ControlType nType, ControlPart nPart, - const Region& rControlRegion, + const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const rtl::OUString& aCaption, @@ -457,7 +457,7 @@ public: // Request rendering of a caption string for a control BOOL DrawNativeControlText( ControlType nType, ControlPart nPart, - const Region& rControlRegion, + const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const rtl::OUString& aCaption, @@ -466,12 +466,12 @@ public: // Query the native control's actual drawing region (including adornment) BOOL GetNativeControlRegion( ControlType nType, ControlPart nPart, - const Region& rControlRegion, + const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const rtl::OUString& aCaption, - Region &rNativeBoundingRegion, - Region &rNativeContentRegion, + Rectangle &rNativeBoundingRegion, + Rectangle &rNativeContentRegion, const OutputDevice *pOutDev ); static void AddDevFontSubstitute( OutputDevice* pOutDev, diff --git a/vcl/inc/vcl/salnativewidgets.hxx b/vcl/inc/vcl/salnativewidgets.hxx index 8e98791d9f78..19c34cbc5e34 100644 --- a/vcl/inc/vcl/salnativewidgets.hxx +++ b/vcl/inc/vcl/salnativewidgets.hxx @@ -41,6 +41,9 @@ typedef sal_uInt32 ControlType; +// for use in general purpose ImplControlValue +#define CTRL_GENERIC 0 + // Normal PushButton/Command Button #define CTRL_PUSHBUTTON 1 @@ -260,13 +263,50 @@ enum ButtonValue { BUTTONVALUE_MIXED }; -#ifdef __cplusplus +/* ImplControlValue: + * + * Generic value container for all control parts. + */ + +class VCL_DLLPUBLIC ImplControlValue +{ + friend class SalFrame; + + private: + ControlType mType; + ButtonValue mTristate; // Tristate value: on, off, mixed + long mNumber; // numeric value + protected: + ImplControlValue( ControlType i_eType, ButtonValue i_eTriState, long i_nNumber ) + : mType( i_eType ) + , mTristate( i_eTriState ) + , mNumber( i_nNumber ) + {} + + public: + explicit ImplControlValue( ButtonValue nTristate ) + : mType( CTRL_GENERIC ), mTristate(nTristate), mNumber(0) {} + explicit ImplControlValue( long nNumeric ) + : mType( CTRL_GENERIC ), mTristate(BUTTONVALUE_DONTKNOW), mNumber( nNumeric) {} + inline ImplControlValue() + : mType( CTRL_GENERIC ), mTristate(BUTTONVALUE_DONTKNOW), mNumber(0) {} + + virtual ~ImplControlValue(); + + ControlType getType() const { return mType; } + + inline ButtonValue getTristateVal( void ) const { return mTristate; } + inline void setTristateVal( ButtonValue nTristate ) { mTristate = nTristate; } + + inline long getNumericVal( void ) const { return mNumber; } + inline void setNumericVal( long nNumeric ) { mNumber = nNumeric; } +}; /* ScrollbarValue: * * Value container for scrollbars. */ -class VCL_DLLPUBLIC ScrollbarValue + class VCL_DLLPUBLIC ScrollbarValue : public ImplControlValue { public: long mnMin; @@ -283,15 +323,16 @@ class VCL_DLLPUBLIC ScrollbarValue ControlState mnPage2State; inline ScrollbarValue() - { - mnMin = 0; mnMax = 0; mnCur = 0; mnVisibleSize = 0; - mnButton1State = 0; mnButton2State = 0; - mnThumbState = 0; mnPage1State = 0; mnPage2State = 0; - }; - inline ~ScrollbarValue() {}; + : ImplControlValue( CTRL_SCROLLBAR, BUTTONVALUE_DONTKNOW, 0 ) + { + mnMin = 0; mnMax = 0; mnCur = 0; mnVisibleSize = 0; + mnButton1State = 0; mnButton2State = 0; + mnThumbState = 0; mnPage1State = 0; mnPage2State = 0; + }; + virtual ~ScrollbarValue(); }; -class VCL_DLLPUBLIC SliderValue +class VCL_DLLPUBLIC SliderValue : public ImplControlValue { public: long mnMin; @@ -300,9 +341,11 @@ class VCL_DLLPUBLIC SliderValue Rectangle maThumbRect; ControlState mnThumbState; - SliderValue() : mnMin( 0 ), mnMax( 0 ), mnCur( 0 ), mnThumbState( 0 ) + SliderValue() + : ImplControlValue( CTRL_SLIDER, BUTTONVALUE_DONTKNOW, 0 ) + , mnMin( 0 ), mnMax( 0 ), mnCur( 0 ), mnThumbState( 0 ) {} - ~SliderValue() {} + virtual ~SliderValue(); }; /* TabitemValue: @@ -317,23 +360,24 @@ class VCL_DLLPUBLIC SliderValue #define TABITEM_FIRST_IN_GROUP 0x004 // the tabitem is the first in group of tabitems #define TABITEM_LAST_IN_GROUP 0x008 // the tabitem is the last in group of tabitems -class VCL_DLLPUBLIC TabitemValue +class VCL_DLLPUBLIC TabitemValue : public ImplControlValue { public: unsigned int mnAlignment; inline TabitemValue() - { - mnAlignment = 0; - }; - inline ~TabitemValue() {}; - - BOOL isLeftAligned() { return (mnAlignment & TABITEM_LEFTALIGNED) != 0; } - BOOL isRightAligned() { return (mnAlignment & TABITEM_RIGHTALIGNED) != 0; } - BOOL isBothAligned() { return isLeftAligned() && isRightAligned(); } - BOOL isNotAligned() { return (mnAlignment & (TABITEM_LEFTALIGNED | TABITEM_RIGHTALIGNED)) == 0; } - BOOL isFirst() { return (mnAlignment & TABITEM_FIRST_IN_GROUP) != 0; } - BOOL isLast() { return (mnAlignment & TABITEM_LAST_IN_GROUP) != 0; } + : ImplControlValue( CTRL_TAB_ITEM, BUTTONVALUE_DONTKNOW, 0 ) + { + mnAlignment = 0; + }; + virtual ~TabitemValue(); + + BOOL isLeftAligned() const { return (mnAlignment & TABITEM_LEFTALIGNED) != 0; } + BOOL isRightAligned() const { return (mnAlignment & TABITEM_RIGHTALIGNED) != 0; } + BOOL isBothAligned() const { return isLeftAligned() && isRightAligned(); } + BOOL isNotAligned() const { return (mnAlignment & (TABITEM_LEFTALIGNED | TABITEM_RIGHTALIGNED)) == 0; } + BOOL isFirst() const { return (mnAlignment & TABITEM_FIRST_IN_GROUP) != 0; } + BOOL isLast() const { return (mnAlignment & TABITEM_LAST_IN_GROUP) != 0; } }; /* SpinbuttonValue: @@ -342,7 +386,7 @@ class VCL_DLLPUBLIC TabitemValue * Note: the other parameters of DrawNativeControl will have no meaning * all parameters for spinbuttons are carried here */ -class VCL_DLLPUBLIC SpinbuttonValue +class VCL_DLLPUBLIC SpinbuttonValue : public ImplControlValue { public: Rectangle maUpperRect; @@ -353,20 +397,23 @@ class VCL_DLLPUBLIC SpinbuttonValue int mnLowerPart; inline SpinbuttonValue() - { - mnUpperState = mnLowerState = 0; - }; - inline ~SpinbuttonValue() {}; + : ImplControlValue( CTRL_SPINBUTTONS, BUTTONVALUE_DONTKNOW, 0 ) + { + mnUpperState = mnLowerState = 0; + }; + virtual ~SpinbuttonValue(); }; /* Toolbarvalue: * * Value container for toolbars detailing the grip position */ -class ToolbarValue +class ToolbarValue : public ImplControlValue { public: - ToolbarValue() { mbIsTopDockingArea = FALSE; } + ToolbarValue() : ImplControlValue( CTRL_TOOLBAR, BUTTONVALUE_DONTKNOW, 0 ) + { mbIsTopDockingArea = FALSE; } + virtual ~ToolbarValue(); Rectangle maGripRect; BOOL mbIsTopDockingArea; // indicates that this is the top aligned dockingarea // adjacent to the menubar @@ -376,10 +423,12 @@ public: * * Value container for menubars specifying height of adjacent docking area */ -class MenubarValue +class MenubarValue : public ImplControlValue { public: - MenubarValue() { maTopDockingAreaHeight=0; } + MenubarValue() : ImplControlValue( CTRL_MENUBAR, BUTTONVALUE_DONTKNOW, 0 ) + { maTopDockingAreaHeight=0; } + virtual ~MenubarValue(); int maTopDockingAreaHeight; }; @@ -387,61 +436,18 @@ public: * * Value container for pushbuttons specifying additional drawing hints */ -class PushButtonValue +class PushButtonValue : public ImplControlValue { public: -PushButtonValue() : mbBevelButton( false ), mbSingleLine( true ) {} + PushButtonValue() + : ImplControlValue( CTRL_PUSHBUTTON, BUTTONVALUE_DONTKNOW, 0 ) + , mbBevelButton( false ), mbSingleLine( true ) {} + virtual ~PushButtonValue(); + bool mbBevelButton:1; bool mbSingleLine:1; }; -/* ImplControlValue: - * - * Generic value container for all control parts. - */ - -class ImplControlValue -{ - friend class SalFrame; - - private: - ButtonValue mTristate; // Tristate value: on, off, mixed - rtl::OUString mString; // string value - long mNumber; // numeric value - void * mOptionalVal; // optional control-specific value - - public: - inline ImplControlValue( ButtonValue nTristate, rtl::OUString sString, long nNumeric, void * aOptVal ) \ - { mTristate = nTristate; mString = sString; mNumber = nNumeric; mOptionalVal = aOptVal; }; - inline ImplControlValue( ButtonValue nTristate, rtl::OUString sString, long nNumeric ) \ - { mTristate = nTristate; mString = sString; mNumber = nNumeric; mOptionalVal = NULL; }; - explicit ImplControlValue( ButtonValue nTristate ) - : mTristate(nTristate), mNumber(0), mOptionalVal(NULL) {} - explicit ImplControlValue( rtl::OUString& rString ) - : mTristate(BUTTONVALUE_DONTKNOW), mString(rString), mNumber(0), mOptionalVal(NULL) {} - explicit ImplControlValue( long nNumeric ) - : mTristate(BUTTONVALUE_DONTKNOW), mNumber( nNumeric), mOptionalVal(NULL) {} - explicit ImplControlValue( void* aOptVal ) - : mTristate(BUTTONVALUE_DONTKNOW), mNumber(0), mOptionalVal(aOptVal) {} - inline ImplControlValue() - : mTristate(BUTTONVALUE_DONTKNOW), mNumber(0), mOptionalVal(NULL) {} - - inline ~ImplControlValue() { mOptionalVal = NULL; }; - - inline ButtonValue getTristateVal( void ) const { return mTristate; } - inline void setTristateVal( ButtonValue nTristate ) { mTristate = nTristate; } - - inline const rtl::OUString& getStringVal( void ) const { return mString; } - inline void setStringVal( rtl::OUString sString ) { mString = sString; } - - inline long getNumericVal( void ) const { return mNumber; } - inline void setNumericVal( long nNumeric ) { mNumber = nNumeric; } - - inline void * getOptionalVal( void ) const { return mOptionalVal; } - inline void setOptionalVal( void * aOptVal ) { mOptionalVal = aOptVal; } -}; - -#endif /* __cplusplus */ #endif diff --git a/vcl/source/app/help.cxx b/vcl/source/app/help.cxx index ac1da931ba06..1f9efa7b6e65 100644 --- a/vcl/source/app/help.cxx +++ b/vcl/source/app/help.cxx @@ -444,7 +444,7 @@ void HelpTextWindow::Paint( const Rectangle& ) if ( IsNativeControlSupported( CTRL_TOOLTIP, PART_ENTIRE_CONTROL ) ) { // #i46472# workaround gcc3.3 temporary problem - Region aCtrlRegion = Region( Rectangle( Point( 0, 0 ), GetOutputSizePixel() ) ); + Rectangle aCtrlRegion( Point( 0, 0 ), GetOutputSizePixel() ); ImplControlValue aControlValue; bNativeOK = DrawNativeControl( CTRL_TOOLTIP, PART_ENTIRE_CONTROL, aCtrlRegion, 0, aControlValue, rtl::OUString() ); diff --git a/vcl/source/control/button.cxx b/vcl/source/control/button.cxx index d66389eee62d..d4f29e224e7b 100644 --- a/vcl/source/control/button.cxx +++ b/vcl/source/control/button.cxx @@ -83,6 +83,7 @@ class ImplCommonButtonData { public: Rectangle maFocusRect; + Rectangle maSymbolRect; USHORT mnButtonState; BOOL mbSmallSymbol; @@ -334,6 +335,18 @@ const Rectangle& Button::GetFocusRect() const // ----------------------------------------------------------------------- +const Rectangle& Button::ImplGetSymbolRect() const +{ + return mpButtonData->maSymbolRect; +} + +void Button::ImplSetSymbolRect( const Rectangle& i_rRect ) +{ + mpButtonData->maSymbolRect = i_rRect; +} + +// ----------------------------------------------------------------------- + USHORT Button::ImplGetTextStyle( XubString& rText, WinBits nWinStyle, ULONG nDrawFlags ) { @@ -1176,6 +1189,9 @@ void PushButton::ImplDrawPushButtonContent( OutputDevice* pDev, ULONG nDrawFlags Size aSize = rRect.GetSize(); Point aPos = rRect.TopLeft(); + ULONG nImageSep = 1 + (pDev->GetTextHeight()-10)/2; + if( nImageSep < 1 ) + nImageSep = 1; if ( mnDDStyle == PUSHBUTTON_DROPDOWN_MENUBUTTON ) { if ( aText.Len() && ! (ImplGetButtonState() & BUTTON_DRAW_NOTEXT) ) @@ -1186,8 +1202,8 @@ void PushButton::ImplDrawPushButtonContent( OutputDevice* pDev, ULONG nDrawFlags aInRect.Left() = aInRect.Right() - nSymbolSize; aSize.Width() -= ( 5 + nSymbolSize ); - ImplDrawAlignedImage( pDev, aPos, aSize, bLayout, - 1, nDrawFlags, nTextStyle, NULL, (GetStyle() & WB_FLATBUTTON) != 0 ); + ImplDrawAlignedImage( pDev, aPos, aSize, bLayout, nImageSep, + nDrawFlags, nTextStyle, NULL, (GetStyle() & WB_FLATBUTTON) != 0 ); } else ImplCalcSymbolRect( aInRect ); @@ -1195,15 +1211,19 @@ void PushButton::ImplDrawPushButtonContent( OutputDevice* pDev, ULONG nDrawFlags if( ! bLayout ) { DecorationView aDecoView( pDev ); + long nDistance = (aInRect.GetHeight() > 10) ? 2 : 1; + long nX = aInRect.Left() - 2*nDistance;; + Point aStartPt( nX, aInRect.Top()+nDistance ); + Point aEndPt( nX, aInRect.Bottom()-nDistance ); + aDecoView.DrawSeparator( aStartPt, aEndPt ); aDecoView.DrawSymbol( aInRect, SYMBOL_SPIN_DOWN, aColor, nStyle ); + aInRect.Left() -= 2*nDistance; + ImplSetSymbolRect( aInRect ); } } else { Rectangle aSymbolRect; - ULONG nImageSep = 1 + (pDev->GetTextHeight()-10)/2; - if( nImageSep < 1 ) - nImageSep = 1; // FIXME: (GetStyle() & WB_FLATBUTTON) != 0 is preliminary // in the next major this should be replaced by "true" ImplDrawAlignedImage( pDev, aPos, aSize, bLayout, nImageSep, nDrawFlags, @@ -1213,6 +1233,7 @@ void PushButton::ImplDrawPushButtonContent( OutputDevice* pDev, ULONG nDrawFlags { DecorationView aDecoView( pDev ); aDecoView.DrawSymbol( aSymbolRect, meSymbol, aColor, nStyle ); + ImplSetSymbolRect( aSymbolRect ); } if ( mnDDStyle == PUSHBUTTON_DROPDOWN_TOOLBOX && !bLayout ) @@ -1314,7 +1335,6 @@ void PushButton::ImplDrawPushButton( bool bLayout ) // for CTRL_LISTBOX/PART_BUTTON_DOWN and CTRL_COMBOBOX/PART_BUTTON_DOWN ImplControlValue aControlValue; - Region aCtrlRegion( aInRect ); ControlState nState = 0; if ( mbPressed ) nState |= CTRL_STATE_PRESSED; @@ -1326,7 +1346,7 @@ void PushButton::ImplDrawPushButton( bool bLayout ) if ( IsMouseOver() && aInRect.IsInside( GetPointerPosPixel() ) ) nState |= CTRL_STATE_ROLLOVER; - bNativeOK = DrawNativeControl( aCtrlType, PART_BUTTON_DOWN, aCtrlRegion, nState, + bNativeOK = DrawNativeControl( aCtrlType, PART_BUTTON_DOWN, aInRect, nState, aControlValue, rtl::OUString() ); } } @@ -1338,10 +1358,8 @@ void PushButton::ImplDrawPushButton( bool bLayout ) bool bRollOver = (IsMouseOver() && aInRect.IsInside( GetPointerPosPixel() )); if ( (bNativeOK=IsNativeControlSupported(CTRL_PUSHBUTTON, PART_ENTIRE_CONTROL)) == TRUE ) { - PushButtonValue aPBVal; - ImplControlValue aControlValue; - aControlValue.setOptionalVal( &aPBVal ); - Region aCtrlRegion( aInRect ); + PushButtonValue aControlValue; + Rectangle aCtrlRegion( aInRect ); ControlState nState = 0; if ( mbPressed || IsChecked() ) nState |= CTRL_STATE_PRESSED; @@ -1354,7 +1372,7 @@ void PushButton::ImplDrawPushButton( bool bLayout ) nState |= CTRL_STATE_ROLLOVER; if( GetStyle() & WB_BEVELBUTTON ) - aPBVal.mbBevelButton = true; + aControlValue.mbBevelButton = true; // draw frame into invisible window to have aInRect modified correctly // but do not shift the inner rect for pressed buttons (ie remove BUTTON_DRAW_PRESSED) @@ -1373,7 +1391,7 @@ void PushButton::ImplDrawPushButton( bool bLayout ) Size aFontSize( Application::GetSettings().GetStyleSettings().GetPushButtonFont().GetSize() ); aFontSize = LogicToPixel( aFontSize, MapMode( MAP_POINT ) ); Size aInRectSize( LogicToPixel( Size( aInRect.GetWidth(), aInRect.GetHeight() ) ) ); - aPBVal.mbSingleLine = (aInRectSize.Height() < 2 * aFontSize.Height() ); + aControlValue.mbSingleLine = (aInRectSize.Height() < 2 * aFontSize.Height() ); if( ((nState & CTRL_STATE_ROLLOVER)) || ! (GetStyle() & WB_FLATBUTTON) ) { @@ -1434,22 +1452,19 @@ void PushButton::ImplSetDefButton( BOOL bSet ) if ( (IsNativeControlSupported(CTRL_PUSHBUTTON, PART_ENTIRE_CONTROL)) == TRUE ) { - Region aBoundingRgn, aContentRgn; + Rectangle aBound, aCont; Rectangle aCtrlRect( 0, 0, 80, 20 ); // use a constant size to avoid accumulating // will not work if the theme has dynamic adornment sizes ImplControlValue aControlValue; - Region aCtrlRegion( aCtrlRect ); + Rectangle aCtrlRegion( aCtrlRect ); ControlState nState = CTRL_STATE_DEFAULT|CTRL_STATE_ENABLED; // get native size of a 'default' button // and adjust the VCL button if more space for adornment is required if( GetNativeControlRegion( CTRL_PUSHBUTTON, PART_ENTIRE_CONTROL, aCtrlRegion, nState, aControlValue, rtl::OUString(), - aBoundingRgn, aContentRgn ) ) + aBound, aCont ) ) { - Rectangle aCont(aContentRgn.GetBoundRect()); - Rectangle aBound(aBoundingRgn.GetBoundRect()); - dLeft = aCont.Left() - aBound.Left(); dTop = aCont.Top() - aBound.Top(); dRight = aBound.Right() - aCont.Right(); @@ -2004,6 +2019,8 @@ Size PushButton::CalcMinimumSize( long nMaxWidth ) const aSize = Size( 16, 12 ); else aSize = Size( 26, 24 ); + if( mnDDStyle == PUSHBUTTON_DROPDOWN_MENUBUTTON ) + aSize.Width() += 4; } else if ( IsImage() && ! (ImplGetButtonState() & BUTTON_DRAW_NOIMAGE) ) aSize = GetModeImage().GetSizePixel(); @@ -2334,9 +2351,8 @@ void RadioButton::ImplDrawRadioButtonState() // no native drawing for image radio buttons if ( !maImage && (bNativeOK=IsNativeControlSupported(CTRL_RADIOBUTTON, PART_ENTIRE_CONTROL)) == TRUE ) { - ImplControlValue aControlValue( mbChecked ? BUTTONVALUE_ON : BUTTONVALUE_OFF, rtl::OUString(), 0 ); + ImplControlValue aControlValue( mbChecked ? BUTTONVALUE_ON : BUTTONVALUE_OFF ); Rectangle aCtrlRect( maStateRect.TopLeft(), maStateRect.GetSize() ); - Region aCtrlRegion( aCtrlRect ); ControlState nState = 0; if ( ImplGetButtonState() & BUTTON_DRAW_PRESSED ) nState |= CTRL_STATE_PRESSED; @@ -2347,7 +2363,7 @@ void RadioButton::ImplDrawRadioButtonState() if ( IsMouseOver() && maMouseRect.IsInside( GetPointerPosPixel() ) ) nState |= CTRL_STATE_ROLLOVER; - bNativeOK = DrawNativeControl( CTRL_RADIOBUTTON, PART_ENTIRE_CONTROL, aCtrlRegion, nState, + bNativeOK = DrawNativeControl( CTRL_RADIOBUTTON, PART_ENTIRE_CONTROL, aCtrlRect, nState, aControlValue,rtl::OUString() ); } @@ -3198,17 +3214,16 @@ Size RadioButton::ImplGetRadioImageSize() const { ImplControlValue aControlValue; // #i45896# workaround gcc3.3 temporary problem - Region aCtrlRegion = Region( Rectangle( Point( 0, 0 ), GetSizePixel() ) ); + Rectangle aCtrlRegion( Point( 0, 0 ), GetSizePixel() ); ControlState nState = CTRL_STATE_DEFAULT|CTRL_STATE_ENABLED; - Region aBoundingRgn, aContentRgn; + Rectangle aBoundingRgn, aContentRgn; // get native size of a radio button if( pThis->GetNativeControlRegion( CTRL_RADIOBUTTON, PART_ENTIRE_CONTROL, aCtrlRegion, nState, aControlValue, rtl::OUString(), aBoundingRgn, aContentRgn ) ) { - Rectangle aCont(aContentRgn.GetBoundRect()); - aSize = aCont.GetSize(); + aSize = aContentRgn.GetSize(); bDefaultSize = false; } } @@ -3323,16 +3338,15 @@ void RadioButton::ImplSetMinimumNWFSize() ImplControlValue aControlValue; Size aCurSize( GetSizePixel() ); - Region aCtrlRegion = Region( Rectangle( Point( 0, 0 ), aCurSize ) ); - Region aBoundingRgn, aContentRgn; + Rectangle aCtrlRegion( Point( 0, 0 ), aCurSize ); + Rectangle aBoundingRgn, aContentRgn; // get native size of a radiobutton if( GetNativeControlRegion( CTRL_RADIOBUTTON, PART_ENTIRE_CONTROL, aCtrlRegion, CTRL_STATE_DEFAULT|CTRL_STATE_ENABLED, aControlValue, rtl::OUString(), aBoundingRgn, aContentRgn ) ) { - Rectangle aCont(aContentRgn.GetBoundRect()); - Size aSize = aCont.GetSize(); + Size aSize = aContentRgn.GetSize(); if( aSize.Height() > aCurSize.Height() ) { @@ -3509,8 +3523,8 @@ void CheckBox::ImplDrawCheckBoxState() if ( (bNativeOK=IsNativeControlSupported(CTRL_CHECKBOX, PART_ENTIRE_CONTROL)) == TRUE ) { - ImplControlValue aControlValue( meState == STATE_CHECK ? BUTTONVALUE_ON : BUTTONVALUE_OFF, rtl::OUString(), 0 ); - Region aCtrlRegion( maStateRect ); + ImplControlValue aControlValue( meState == STATE_CHECK ? BUTTONVALUE_ON : BUTTONVALUE_OFF ); + Rectangle aCtrlRegion( maStateRect ); ControlState nState = 0; if ( HasFocus() ) nState |= CTRL_STATE_FOCUSED; @@ -4144,17 +4158,16 @@ Size CheckBox::ImplGetCheckImageSize() const { ImplControlValue aControlValue; // #i45896# workaround gcc3.3 temporary problem - Region aCtrlRegion = Region( Rectangle( Point( 0, 0 ), GetSizePixel() ) ); + Rectangle aCtrlRegion( Point( 0, 0 ), GetSizePixel() ); ControlState nState = CTRL_STATE_DEFAULT|CTRL_STATE_ENABLED; - Region aBoundingRgn, aContentRgn; + Rectangle aBoundingRgn, aContentRgn; // get native size of a check box if( pThis->GetNativeControlRegion( CTRL_CHECKBOX, PART_ENTIRE_CONTROL, aCtrlRegion, nState, aControlValue, rtl::OUString(), aBoundingRgn, aContentRgn ) ) { - Rectangle aCont(aContentRgn.GetBoundRect()); - aSize = aCont.GetSize(); + aSize = aContentRgn.GetSize(); bDefaultSize = false; } } @@ -4234,16 +4247,15 @@ void CheckBox::ImplSetMinimumNWFSize() ImplControlValue aControlValue; Size aCurSize( GetSizePixel() ); - Region aCtrlRegion = Region( Rectangle( Point( 0, 0 ), aCurSize ) ); - Region aBoundingRgn, aContentRgn; + Rectangle aCtrlRegion( Point( 0, 0 ), aCurSize ); + Rectangle aBoundingRgn, aContentRgn; // get native size of a radiobutton if( GetNativeControlRegion( CTRL_CHECKBOX, PART_ENTIRE_CONTROL, aCtrlRegion, CTRL_STATE_DEFAULT|CTRL_STATE_ENABLED, aControlValue, rtl::OUString(), aBoundingRgn, aContentRgn ) ) { - Rectangle aCont(aContentRgn.GetBoundRect()); - Size aSize = aCont.GetSize(); + Size aSize = aContentRgn.GetSize(); if( aSize.Height() > aCurSize.Height() ) { @@ -4444,8 +4456,8 @@ void DisclosureButton::ImplDrawCheckBoxState() Rectangle aStateRect( GetStateRect() ); - ImplControlValue aControlValue( GetState() == STATE_CHECK ? BUTTONVALUE_ON : BUTTONVALUE_OFF, rtl::OUString(), 0 ); - Region aCtrlRegion( aStateRect ); + ImplControlValue aControlValue( GetState() == STATE_CHECK ? BUTTONVALUE_ON : BUTTONVALUE_OFF ); + Rectangle aCtrlRegion( aStateRect ); ControlState nState = 0; if ( HasFocus() ) nState |= CTRL_STATE_FOCUSED; diff --git a/vcl/source/control/combobox.cxx b/vcl/source/control/combobox.cxx index f5c04b7c3cfa..8efa3404a44a 100644 --- a/vcl/source/control/combobox.cxx +++ b/vcl/source/control/combobox.cxx @@ -139,8 +139,8 @@ void ComboBox::ImplCalcEditHeight() if ( !IsDropDownBox() ) mnDDHeight += 4; - Region aCtrlRegion( Rectangle( (const Point&)Point(), Size( 10, 10 ) ) ); - Region aBoundRegion, aContentRegion; + Rectangle aCtrlRegion( Point( 0, 0 ), Size( 10, 10 ) ); + Rectangle aBoundRegion, aContentRegion; ImplControlValue aControlValue; ControlType aType = IsDropDownBox() ? CTRL_COMBOBOX : CTRL_EDITBOX; if( GetNativeControlRegion( aType, PART_ENTIRE_CONTROL, @@ -149,7 +149,7 @@ void ComboBox::ImplCalcEditHeight() aControlValue, rtl::OUString(), aBoundRegion, aContentRegion ) ) { - const long nNCHeight = aBoundRegion.GetBoundRect().GetHeight(); + const long nNCHeight = aBoundRegion.GetHeight(); if( mnDDHeight < nNCHeight ) mnDDHeight = sal::static_int_cast<USHORT>( nNCHeight ); } @@ -629,10 +629,10 @@ void ComboBox::Resize() Window *pBorder = GetWindow( WINDOW_BORDER ); ImplControlValue aControlValue; Point aPoint; - Region aContent, aBound; + Rectangle aContent, aBound; // use the full extent of the control - Region aArea( Rectangle(aPoint, pBorder->GetOutputSizePixel()) ); + Rectangle aArea( aPoint, pBorder->GetOutputSizePixel() ); if ( GetNativeControlRegion(CTRL_COMBOBOX, PART_BUTTON_DOWN, aArea, 0, aControlValue, rtl::OUString(), aBound, aContent) ) @@ -641,7 +641,7 @@ void ComboBox::Resize() aPoint = pBorder->ScreenToOutputPixel( OutputToScreenPixel( aPoint ) ); aContent.Move(-aPoint.X(), -aPoint.Y()); - mpBtn->SetPosSizePixel( aContent.GetBoundRect().Left(), nTop, aContent.GetBoundRect().getWidth(), (nBottom-nTop) ); + mpBtn->SetPosSizePixel( aContent.Left(), nTop, aContent.getWidth(), (nBottom-nTop) ); // adjust the size of the edit field if ( GetNativeControlRegion(CTRL_COMBOBOX, PART_SUB_EDIT, @@ -651,13 +651,12 @@ void ComboBox::Resize() aContent.Move(-aPoint.X(), -aPoint.Y()); // use the themes drop down size - Rectangle aContentRect = aContent.GetBoundRect(); - mpSubEdit->SetPosSizePixel( aContentRect.TopLeft(), aContentRect.GetSize() ); + mpSubEdit->SetPosSizePixel( aContent.TopLeft(), aContent.GetSize() ); } else { // use the themes drop down size for the button - aOutSz.Width() -= aContent.GetBoundRect().getWidth(); + aOutSz.Width() -= aContent.getWidth(); mpSubEdit->SetSizePixel( aOutSz ); } } diff --git a/vcl/source/control/edit.cxx b/vcl/source/control/edit.cxx index 0a29a627b8e3..c0e7b352642c 100644 --- a/vcl/source/control/edit.cxx +++ b/vcl/source/control/edit.cxx @@ -2842,7 +2842,7 @@ Size Edit::CalcMinimumSize() const Size aMinSize ( CalcSize( 3 ) ); if( aSize.Width() < aMinSize.Width() ) aSize.Width() = aMinSize.Width(); - // add some space between text entry an border + // add some space between text entry and border aSize.Height() += 4; aSize = CalcWindowSize( aSize ); @@ -2850,14 +2850,13 @@ Size Edit::CalcMinimumSize() const // ask NWF what if it has an opinion, too ImplControlValue aControlValue; Rectangle aRect( Point( 0, 0 ), aSize ); - Region aContent, aBound; + Rectangle aContent, aBound; if( const_cast<Edit*>(this)->GetNativeControlRegion( CTRL_EDITBOX, PART_ENTIRE_CONTROL, aRect, 0, aControlValue, rtl::OUString(), aBound, aContent) ) { - Rectangle aBoundRect( aContent.GetBoundRect() ); - if( aBoundRect.GetHeight() > aSize.Height() ) - aSize.Height() = aBoundRect.GetHeight(); + if( aBound.GetHeight() > aSize.Height() ) + aSize.Height() = aBound.GetHeight(); } return aSize; } diff --git a/vcl/source/control/ilstbox.cxx b/vcl/source/control/ilstbox.cxx index ebccfdc1e6bb..02c8d2b5fcb3 100644 --- a/vcl/source/control/ilstbox.cxx +++ b/vcl/source/control/ilstbox.cxx @@ -2819,7 +2819,7 @@ void ImplWin::ImplDraw( bool bLayout ) sal_Int32 nLeft, nTop, nRight, nBottom; pWin->GetBorder( nLeft, nTop, nRight, nBottom ); Point aPoint( -nLeft, -nTop ); - Region aCtrlRegion( Rectangle( aPoint - GetPosPixel(), pWin->GetSizePixel() ) ); + Rectangle aCtrlRegion( aPoint - GetPosPixel(), pWin->GetSizePixel() ); BOOL bMouseOver = FALSE; if( GetParent() ) @@ -2838,8 +2838,7 @@ void ImplWin::ImplDraw( bool bLayout ) if( ! (nParentStyle & WB_BORDER) || (nParentStyle & WB_NOBORDER) ) { Rectangle aParentRect( Point( 0, 0 ), pWin->GetSizePixel() ); - Region aParentReg( aParentRect ); - pWin->DrawNativeControl( CTRL_LISTBOX, PART_ENTIRE_CONTROL, aParentReg, + pWin->DrawNativeControl( CTRL_LISTBOX, PART_ENTIRE_CONTROL, aParentRect, nState, aControlValue, rtl::OUString() ); } diff --git a/vcl/source/control/lstbox.cxx b/vcl/source/control/lstbox.cxx index 6c7df5b106bf..eb8c20d1d803 100644 --- a/vcl/source/control/lstbox.cxx +++ b/vcl/source/control/lstbox.cxx @@ -129,14 +129,14 @@ void ListBox::ImplInit( Window* pParent, WinBits nStyle ) IsNativeControlSupported( CTRL_LISTBOX, PART_ENTIRE_CONTROL ) ) { ImplControlValue aControlValue; - Region aCtrlRegion( Rectangle( (const Point&)Point(), Size( 20, mnDDHeight ) ) ); - Region aBoundingRgn( aCtrlRegion ); - Region aContentRgn( aCtrlRegion ); + Rectangle aCtrlRegion( Point( 0, 0 ), Size( 20, mnDDHeight ) ); + Rectangle aBoundingRgn( aCtrlRegion ); + Rectangle aContentRgn( aCtrlRegion ); if( GetNativeControlRegion( CTRL_LISTBOX, PART_ENTIRE_CONTROL, aCtrlRegion, CTRL_STATE_ENABLED, aControlValue, rtl::OUString(), aBoundingRgn, aContentRgn ) ) { - sal_Int32 nHeight = aBoundingRgn.GetBoundRect().GetHeight(); + sal_Int32 nHeight = aBoundingRgn.GetHeight(); if( nHeight > mnDDHeight ) mnDDHeight = static_cast<USHORT>(nHeight); } @@ -652,10 +652,10 @@ void ListBox::Resize() Window *pBorder = GetWindow( WINDOW_BORDER ); ImplControlValue aControlValue; Point aPoint; - Region aContent, aBound; + Rectangle aContent, aBound; // use the full extent of the control - Region aArea( Rectangle(aPoint, pBorder->GetOutputSizePixel()) ); + Rectangle aArea( aPoint, pBorder->GetOutputSizePixel() ); if ( GetNativeControlRegion( CTRL_LISTBOX, PART_BUTTON_DOWN, aArea, 0, aControlValue, rtl::OUString(), aBound, aContent) ) @@ -665,8 +665,8 @@ void ListBox::Resize() aContent.Move( -aPoint.X(), -aPoint.Y() ); // use the themes drop down size for the button - aOutSz.Width() = aContent.GetBoundRect().Left(); - mpBtn->SetPosSizePixel( aContent.GetBoundRect().Left(), nTop, aContent.GetBoundRect().Right(), (nBottom-nTop) ); + aOutSz.Width() = aContent.Left(); + mpBtn->SetPosSizePixel( aContent.Left(), nTop, aContent.Right(), (nBottom-nTop) ); // adjust the size of the edit field if ( GetNativeControlRegion( CTRL_LISTBOX, PART_SUB_EDIT, @@ -676,7 +676,6 @@ void ListBox::Resize() aContent.Move( -aPoint.X(), -aPoint.Y() ); // use the themes drop down size - Rectangle aContentRect = aContent.GetBoundRect(); if( ! (GetStyle() & WB_BORDER) && ImplGetSVData()->maNWFData.mbNoFocusRects ) { // no border but focus ring behavior -> we have a problem; the @@ -684,11 +683,11 @@ void ListBox::Resize() // let's do the best we can and center vertically, so it doesn't look // completely wrong. Size aSz( GetOutputSizePixel() ); - long nDiff = aContentRect.Top() - (aSz.Height() - aContentRect.GetHeight())/2; - aContentRect.Top() -= nDiff; - aContentRect.Bottom() -= nDiff; + long nDiff = aContent.Top() - (aSz.Height() - aContent.GetHeight())/2; + aContent.Top() -= nDiff; + aContent.Bottom() -= nDiff; } - mpImplWin->SetPosSizePixel( aContentRect.TopLeft(), aContentRect.GetSize() ); + mpImplWin->SetPosSizePixel( aContent.TopLeft(), aContent.GetSize() ); } else mpImplWin->SetSizePixel( aOutSz ); @@ -1327,15 +1326,14 @@ Size ListBox::CalcMinimumSize() const // see how large the edit area inside is to estimate what is needed for the dropdown ImplControlValue aControlValue; Point aPoint; - Region aContent, aBound; + Rectangle aContent, aBound; Size aTestSize( 100, 20 ); - Region aArea( Rectangle( aPoint, aTestSize ) ); + Rectangle aArea( aPoint, aTestSize ); if( const_cast<ListBox*>(this)->GetNativeControlRegion( CTRL_LISTBOX, PART_SUB_EDIT, aArea, 0, aControlValue, rtl::OUString(), aBound, aContent) ) { // use the themes drop down size - Rectangle aContentRect = aContent.GetBoundRect(); - aSz.Width() += aTestSize.Width() - aContentRect.GetWidth(); + aSz.Width() += aTestSize.Width() - aContent.GetWidth(); } else aSz.Width() += GetSettings().GetStyleSettings().GetScrollBarSize(); @@ -1347,13 +1345,12 @@ Size ListBox::CalcMinimumSize() const { ImplControlValue aControlValue; Rectangle aRect( Point( 0, 0 ), aSz ); - Region aContent, aBound; + Rectangle aContent, aBound; if( const_cast<ListBox*>(this)->GetNativeControlRegion( CTRL_LISTBOX, PART_ENTIRE_CONTROL, aRect, 0, aControlValue, rtl::OUString(), aBound, aContent) ) { - Rectangle aBoundRect( aBound.GetBoundRect() ); - if( aBoundRect.GetHeight() > aSz.Height() ) - aSz.Height() = aBoundRect.GetHeight(); + if( aBound.GetHeight() > aSz.Height() ) + aSz.Height() = aBound.GetHeight(); } } diff --git a/vcl/source/control/menubtn.cxx b/vcl/source/control/menubtn.cxx index 94f61818ac92..1c83779da1a9 100644 --- a/vcl/source/control/menubtn.cxx +++ b/vcl/source/control/menubtn.cxx @@ -169,20 +169,27 @@ IMPL_LINK( MenuButton, ImplMenuTimeoutHdl, Timer*, EMPTYARG ) void MenuButton::MouseButtonDown( const MouseEvent& rMEvt ) { + bool bExecute = true; if ( mnMenuMode & MENUBUTTON_MENUMODE_TIMED ) { - if ( !mpMenuTimer ) + // if the separated dropdown symbol is hit, + // execute the popup immediately + if( ! ImplGetSymbolRect().IsInside( rMEvt.GetPosPixel() ) ) { - mpMenuTimer = new Timer; - mpMenuTimer->SetTimeoutHdl( LINK( this, MenuButton, ImplMenuTimeoutHdl ) ); - } + if ( !mpMenuTimer ) + { + mpMenuTimer = new Timer; + mpMenuTimer->SetTimeoutHdl( LINK( this, MenuButton, ImplMenuTimeoutHdl ) ); + } - mpMenuTimer->SetTimeout( GetSettings().GetMouseSettings().GetActionDelay() ); - mpMenuTimer->Start(); + mpMenuTimer->SetTimeout( GetSettings().GetMouseSettings().GetActionDelay() ); + mpMenuTimer->Start(); - PushButton::MouseButtonDown( rMEvt ); + PushButton::MouseButtonDown( rMEvt ); + bExecute = false; + } } - else + if( bExecute ) { if ( PushButton::ImplHitTestPushButton( this, rMEvt.GetPosPixel() ) ) { diff --git a/vcl/source/control/scrbar.cxx b/vcl/source/control/scrbar.cxx index 54a1e0a97eab..9c82bb096dec 100644 --- a/vcl/source/control/scrbar.cxx +++ b/vcl/source/control/scrbar.cxx @@ -342,8 +342,8 @@ void ScrollBar::ImplCalc( BOOL bUpdate ) Rectangle& maTrackRect = mpData->maTrackRect; // TODO: remove when maTrackRect is no longer in mpData if ( mbCalcSize ) { - const Region aControlRegion( Rectangle( (const Point&)Point(0,0), aSize ) ); - Region aBtn1Region, aBtn2Region, aTrackRegion, aBoundingRegion; + const Rectangle aControlRegion( Point(0,0), aSize ); + Rectangle aBtn1Region, aBtn2Region, aTrackRegion, aBoundingRegion; if ( GetStyle() & WB_HORZ ) { @@ -352,8 +352,8 @@ void ScrollBar::ImplCalc( BOOL bUpdate ) GetNativeControlRegion( CTRL_SCROLLBAR, PART_BUTTON_RIGHT, aControlRegion, 0, ImplControlValue(), rtl::OUString(), aBoundingRegion, aBtn2Region ) ) { - maBtn1Rect = aBtn1Region.GetBoundRect(); - maBtn2Rect = aBtn2Region.GetBoundRect(); + maBtn1Rect = aBtn1Region; + maBtn2Rect = aBtn2Region; } else { @@ -366,7 +366,7 @@ void ScrollBar::ImplCalc( BOOL bUpdate ) if ( GetNativeControlRegion( CTRL_SCROLLBAR, PART_TRACK_HORZ_AREA, aControlRegion, 0, ImplControlValue(), rtl::OUString(), aBoundingRegion, aTrackRegion ) ) - maTrackRect = aTrackRegion.GetBoundRect(); + maTrackRect = aTrackRegion; else maTrackRect = Rectangle( maBtn1Rect.TopRight(), maBtn2Rect.BottomLeft() ); @@ -393,8 +393,8 @@ void ScrollBar::ImplCalc( BOOL bUpdate ) GetNativeControlRegion( CTRL_SCROLLBAR, PART_BUTTON_DOWN, aControlRegion, 0, ImplControlValue(), rtl::OUString(), aBoundingRegion, aBtn2Region ) ) { - maBtn1Rect = aBtn1Region.GetBoundRect(); - maBtn2Rect = aBtn2Region.GetBoundRect(); + maBtn1Rect = aBtn1Region; + maBtn2Rect = aBtn2Region; } else { @@ -407,7 +407,7 @@ void ScrollBar::ImplCalc( BOOL bUpdate ) if ( GetNativeControlRegion( CTRL_SCROLLBAR, PART_TRACK_VERT_AREA, aControlRegion, 0, ImplControlValue(), rtl::OUString(), aBoundingRegion, aTrackRegion ) ) - maTrackRect = aTrackRegion.GetBoundRect(); + maTrackRect = aTrackRegion; else maTrackRect = Rectangle( maBtn1Rect.BottomLeft()+Point(0,1), maBtn2Rect.TopRight() ); @@ -524,7 +524,7 @@ void ScrollBar::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, BOOL ScrollBar::ImplDrawNative( USHORT nDrawFlags ) { - ImplControlValue aControlValue( BUTTONVALUE_DONTKNOW, rtl::OUString(), 0 ); + ScrollbarValue scrValue; BOOL bNativeOK = IsNativeControlSupported(CTRL_SCROLLBAR, PART_ENTIRE_CONTROL); if( bNativeOK ) @@ -535,7 +535,6 @@ BOOL ScrollBar::ImplDrawNative( USHORT nDrawFlags ) if( IsNativeControlSupported(CTRL_SCROLLBAR, bHorz ? PART_DRAW_BACKGROUND_HORZ : PART_DRAW_BACKGROUND_VERT) ) { ControlState nState = ( IsEnabled() ? CTRL_STATE_ENABLED : 0 ) | ( HasFocus() ? CTRL_STATE_FOCUSED : 0 ); - ScrollbarValue scrValue; scrValue.mnMin = mnMinRange; scrValue.mnMax = mnMaxRange; @@ -570,20 +569,14 @@ BOOL ScrollBar::ImplDrawNative( USHORT nDrawFlags ) } } - aControlValue.setOptionalVal( (void *)(&scrValue) ); - -#if 1 - Region aCtrlRegion; + Rectangle aCtrlRegion; aCtrlRegion.Union( maBtn1Rect ); aCtrlRegion.Union( maBtn2Rect ); aCtrlRegion.Union( maPage1Rect ); aCtrlRegion.Union( maPage2Rect ); aCtrlRegion.Union( maThumbRect ); -#else - const Region aCtrlRegion( Rectangle( Point(0,0), GetOutputSizePixel() ) ); -#endif bNativeOK = DrawNativeControl( CTRL_SCROLLBAR, (bHorz ? PART_DRAW_BACKGROUND_HORZ : PART_DRAW_BACKGROUND_VERT), - aCtrlRegion, nState, aControlValue, rtl::OUString() ); + aCtrlRegion, nState, scrValue, rtl::OUString() ); } else { @@ -591,8 +584,8 @@ BOOL ScrollBar::ImplDrawNative( USHORT nDrawFlags ) { sal_uInt32 part1 = bHorz ? PART_TRACK_HORZ_LEFT : PART_TRACK_VERT_UPPER; sal_uInt32 part2 = bHorz ? PART_TRACK_HORZ_RIGHT : PART_TRACK_VERT_LOWER; - Region aCtrlRegion1( maPage1Rect ); - Region aCtrlRegion2( maPage2Rect ); + Rectangle aCtrlRegion1( maPage1Rect ); + Rectangle aCtrlRegion2( maPage2Rect ); ControlState nState1 = (IsEnabled() ? CTRL_STATE_ENABLED : 0) | (HasFocus() ? CTRL_STATE_FOCUSED : 0); ControlState nState2 = nState1; @@ -613,18 +606,18 @@ BOOL ScrollBar::ImplDrawNative( USHORT nDrawFlags ) if ( nDrawFlags & SCRBAR_DRAW_PAGE1 ) bNativeOK = DrawNativeControl( CTRL_SCROLLBAR, part1, aCtrlRegion1, nState1, - aControlValue, rtl::OUString() ); + scrValue, rtl::OUString() ); if ( nDrawFlags & SCRBAR_DRAW_PAGE2 ) bNativeOK = DrawNativeControl( CTRL_SCROLLBAR, part2, aCtrlRegion2, nState2, - aControlValue, rtl::OUString() ); + scrValue, rtl::OUString() ); } if ( (nDrawFlags & SCRBAR_DRAW_BTN1) || (nDrawFlags & SCRBAR_DRAW_BTN2) ) { sal_uInt32 part1 = bHorz ? PART_BUTTON_LEFT : PART_BUTTON_UP; sal_uInt32 part2 = bHorz ? PART_BUTTON_RIGHT : PART_BUTTON_DOWN; - Region aCtrlRegion1( maBtn1Rect ); - Region aCtrlRegion2( maBtn2Rect ); + Rectangle aCtrlRegion1( maBtn1Rect ); + Rectangle aCtrlRegion2( maBtn2Rect ); ControlState nState1 = HasFocus() ? CTRL_STATE_FOCUSED : 0; ControlState nState2 = nState1; @@ -655,16 +648,16 @@ BOOL ScrollBar::ImplDrawNative( USHORT nDrawFlags ) if ( nDrawFlags & SCRBAR_DRAW_BTN1 ) bNativeOK = DrawNativeControl( CTRL_SCROLLBAR, part1, aCtrlRegion1, nState1, - aControlValue, rtl::OUString() ); + scrValue, rtl::OUString() ); if ( nDrawFlags & SCRBAR_DRAW_BTN2 ) bNativeOK = DrawNativeControl( CTRL_SCROLLBAR, part2, aCtrlRegion2, nState2, - aControlValue, rtl::OUString() ); + scrValue, rtl::OUString() ); } if ( (nDrawFlags & SCRBAR_DRAW_THUMB) && !maThumbRect.IsEmpty() ) { ControlState nState = IsEnabled() ? CTRL_STATE_ENABLED : 0; - Region aCtrlRegion( maThumbRect ); + Rectangle aCtrlRegion( maThumbRect ); if ( mnStateFlags & SCRBAR_STATE_THUMB_DOWN ) nState |= CTRL_STATE_PRESSED; @@ -683,7 +676,7 @@ BOOL ScrollBar::ImplDrawNative( USHORT nDrawFlags ) } bNativeOK = DrawNativeControl( CTRL_SCROLLBAR, (bHorz ? PART_THUMB_HORZ : PART_THUMB_VERT), - aCtrlRegion, nState, aControlValue, rtl::OUString() ); + aCtrlRegion, nState, scrValue, rtl::OUString() ); } } } @@ -920,7 +913,7 @@ void ScrollBar::ImplDoMouseAction( const Point& rMousePos, BOOL bCallAction ) BOOL bIsInside = FALSE; Point aPoint( 0, 0 ); - Region aControlRegion( Rectangle( aPoint, GetOutputSizePixel() ) ); + Rectangle aControlRegion( aPoint, GetOutputSizePixel() ); switch ( meScrollType ) { @@ -953,7 +946,7 @@ void ScrollBar::ImplDoMouseAction( const Point& rMousePos, BOOL bCallAction ) case SCROLL_PAGEUP: // HitTestNativeControl, see remark at top of file if ( HitTestNativeControl( CTRL_SCROLLBAR, bHorizontal? PART_TRACK_HORZ_LEFT: PART_TRACK_VERT_UPPER, - Region( maPage1Rect ), rMousePos, bIsInside )? + maPage1Rect, rMousePos, bIsInside )? bIsInside: maPage1Rect.IsInside( rMousePos ) ) { @@ -967,7 +960,7 @@ void ScrollBar::ImplDoMouseAction( const Point& rMousePos, BOOL bCallAction ) case SCROLL_PAGEDOWN: // HitTestNativeControl, see remark at top of file if ( HitTestNativeControl( CTRL_SCROLLBAR, bHorizontal? PART_TRACK_HORZ_RIGHT: PART_TRACK_VERT_LOWER, - Region( maPage2Rect ), rMousePos, bIsInside )? + maPage2Rect, rMousePos, bIsInside )? bIsInside: maPage2Rect.IsInside( rMousePos ) ) { @@ -1030,7 +1023,7 @@ void ScrollBar::MouseButtonDown( const MouseEvent& rMEvt ) BOOL bDragToMouse = FALSE; Point aPoint( 0, 0 ); - Region aControlRegion( Rectangle( aPoint, GetOutputSizePixel() ) ); + Rectangle aControlRegion( aPoint, GetOutputSizePixel() ); if ( HitTestNativeControl( CTRL_SCROLLBAR, bHorizontal? PART_BUTTON_LEFT: PART_BUTTON_UP, aControlRegion, rMousePos, bIsInside )? @@ -1063,7 +1056,7 @@ void ScrollBar::MouseButtonDown( const MouseEvent& rMEvt ) else { bool bThumbHit = HitTestNativeControl( CTRL_SCROLLBAR, bHorizontal? PART_THUMB_HORZ : PART_THUMB_VERT, - Region( maThumbRect ), rMousePos, bIsInside ) + maThumbRect, rMousePos, bIsInside ) ? bIsInside : maThumbRect.IsInside( rMousePos ); bool bDragHandling = rMEvt.IsMiddle() || bThumbHit || ImplGetSVData()->maNWFData.mbScrollbarJumpPage; if( bDragHandling ) @@ -1112,7 +1105,7 @@ void ScrollBar::MouseButtonDown( const MouseEvent& rMEvt ) // HitTestNativeControl, see remark at top of file if ( HitTestNativeControl( CTRL_SCROLLBAR, bHorizontal? PART_TRACK_HORZ_LEFT : PART_TRACK_VERT_UPPER, - Region( maPage1Rect ), rMousePos, bIsInside )? + maPage1Rect, rMousePos, bIsInside )? bIsInside: maPage1Rect.IsInside( rMousePos ) ) { @@ -1387,7 +1380,7 @@ Rectangle* ScrollBar::ImplFindPartRect( const Point& rPt ) BOOL bIsInside = FALSE; Point aPoint( 0, 0 ); - Region aControlRegion( Rectangle( aPoint, GetOutputSizePixel() ) ); + Rectangle aControlRegion( aPoint, GetOutputSizePixel() ); if( HitTestNativeControl( CTRL_SCROLLBAR, bHorizontal? PART_BUTTON_LEFT: PART_BUTTON_UP, aControlRegion, rPt, bIsInside )? @@ -1401,19 +1394,19 @@ Rectangle* ScrollBar::ImplFindPartRect( const Point& rPt ) return &maBtn2Rect; // HitTestNativeControl, see remark at top of file else if( HitTestNativeControl( CTRL_SCROLLBAR, bHorizontal ? PART_TRACK_HORZ_LEFT : PART_TRACK_VERT_UPPER, - Region( maPage1Rect ), rPt, bIsInside)? + maPage1Rect, rPt, bIsInside)? bIsInside: maPage1Rect.IsInside( rPt ) ) return &maPage1Rect; // HitTestNativeControl, see remark at top of file else if( HitTestNativeControl( CTRL_SCROLLBAR, bHorizontal ? PART_TRACK_HORZ_RIGHT : PART_TRACK_VERT_LOWER, - Region( maPage2Rect ), rPt, bIsInside)? + maPage2Rect, rPt, bIsInside)? bIsInside: maPage2Rect.IsInside( rPt ) ) return &maPage2Rect; // HitTestNativeControl, see remark at top of file else if( HitTestNativeControl( CTRL_SCROLLBAR, bHorizontal ? PART_THUMB_HORZ : PART_THUMB_VERT, - Region( maThumbRect ), rPt, bIsInside)? + maThumbRect, rPt, bIsInside)? bIsInside: maThumbRect.IsInside( rPt ) ) return &maThumbRect; diff --git a/vcl/source/control/slider.cxx b/vcl/source/control/slider.cxx index 2390a8e3e9a6..daf733a57a33 100644 --- a/vcl/source/control/slider.cxx +++ b/vcl/source/control/slider.cxx @@ -195,15 +195,14 @@ void Slider::ImplUpdateRects( BOOL bUpdate ) else maChannel2Rect.SetEmpty(); - const Region aControlRegion( Rectangle( Point(0,0), Size( SLIDER_THUMB_SIZE, 10 ) ) ); - Region aThumbBounds, aThumbContent; + const Rectangle aControlRegion( Rectangle( Point(0,0), Size( SLIDER_THUMB_SIZE, 10 ) ) ); + Rectangle aThumbBounds, aThumbContent; if ( GetNativeControlRegion( CTRL_SLIDER, PART_THUMB_HORZ, aControlRegion, 0, ImplControlValue(), rtl::OUString(), aThumbBounds, aThumbContent ) ) { - Rectangle aRect( aThumbBounds.GetBoundRect() ); - maThumbRect.Left() = mnThumbPixPos - aRect.GetWidth()/2; - maThumbRect.Right() = maThumbRect.Left() + aRect.GetWidth() - 1; + maThumbRect.Left() = mnThumbPixPos - aThumbBounds.GetWidth()/2; + maThumbRect.Right() = maThumbRect.Left() + aThumbBounds.GetWidth() - 1; bInvalidateAll = true; } } @@ -230,15 +229,14 @@ void Slider::ImplUpdateRects( BOOL bUpdate ) else maChannel2Rect.SetEmpty(); - const Region aControlRegion( Rectangle( Point(0,0), Size( 10, SLIDER_THUMB_SIZE ) ) ); - Region aThumbBounds, aThumbContent; + const Rectangle aControlRegion( Rectangle( Point(0,0), Size( 10, SLIDER_THUMB_SIZE ) ) ); + Rectangle aThumbBounds, aThumbContent; if ( GetNativeControlRegion( CTRL_SLIDER, PART_THUMB_VERT, aControlRegion, 0, ImplControlValue(), rtl::OUString(), aThumbBounds, aThumbContent ) ) { - Rectangle aRect( aThumbBounds.GetBoundRect() ); - maThumbRect.Top() = mnThumbPixPos - aRect.GetHeight()/2; - maThumbRect.Bottom() = maThumbRect.Top() + aRect.GetHeight() - 1; + maThumbRect.Top() = mnThumbPixPos - aThumbBounds.GetHeight()/2; + maThumbRect.Bottom() = maThumbRect.Top() + aThumbBounds.GetHeight() - 1; bInvalidateAll = true; } } @@ -388,7 +386,6 @@ void Slider::ImplDraw( USHORT nDrawFlags ) ImplCalc( FALSE ); ControlPart nPart = (GetStyle() & WB_HORZ) ? PART_TRACK_HORZ_AREA : PART_TRACK_VERT_AREA; - ImplControlValue aControlValue( BUTTONVALUE_DONTKNOW, rtl::OUString(), 0 ); ControlState nState = ( IsEnabled() ? CTRL_STATE_ENABLED : 0 ) | ( HasFocus() ? CTRL_STATE_FOCUSED : 0 ); SliderValue sldValue; @@ -402,11 +399,10 @@ void Slider::ImplDraw( USHORT nDrawFlags ) if( maThumbRect.IsInside( GetPointerPosPixel() ) ) sldValue.mnThumbState |= CTRL_STATE_ROLLOVER; } - aControlValue.setOptionalVal( (void *)(&sldValue) ); - const Region aCtrlRegion( Rectangle( Point(0,0), GetOutputSizePixel() ) ); + const Rectangle aCtrlRegion( Point(0,0), GetOutputSizePixel() ); bool bNativeOK = DrawNativeControl( CTRL_SLIDER, nPart, - aCtrlRegion, nState, aControlValue, rtl::OUString() ); + aCtrlRegion, nState, sldValue, rtl::OUString() ); if( bNativeOK ) return; diff --git a/vcl/source/control/spinfld.cxx b/vcl/source/control/spinfld.cxx index d18a412e31cc..754270e9012f 100644 --- a/vcl/source/control/spinfld.cxx +++ b/vcl/source/control/spinfld.cxx @@ -88,15 +88,12 @@ BOOL ImplDrawNativeSpinfield( Window *pWin, const SpinbuttonValue& rSpinbuttonVa // there is just no useful native support for spinfields with dropdown !(pWin->GetStyle() & WB_DROPDOWN) ) { - ImplControlValue aControlValue; - aControlValue.setOptionalVal( (void*) &rSpinbuttonValue ); - if( pWin->IsNativeControlSupported(CTRL_SPINBOX, rSpinbuttonValue.mnUpperPart) && pWin->IsNativeControlSupported(CTRL_SPINBOX, rSpinbuttonValue.mnLowerPart) ) { // only paint the embedded spin buttons, all buttons are painted at once - bNativeOK = pWin->DrawNativeControl( CTRL_SPINBOX, PART_ALL_BUTTONS, Region(), CTRL_STATE_ENABLED, - aControlValue, rtl::OUString() ); + bNativeOK = pWin->DrawNativeControl( CTRL_SPINBOX, PART_ALL_BUTTONS, Rectangle(), CTRL_STATE_ENABLED, + rSpinbuttonValue, rtl::OUString() ); } else { @@ -115,17 +112,17 @@ BOOL ImplDrawNativeSpinfield( Window *pWin, const SpinbuttonValue& rSpinbuttonVa Point aPt; Size aSize( pBorder->GetOutputSizePixel() ); // the size of the border window, i.e., the whole control - Region aBound, aContent; - Region aNatRgn( Rectangle( aPt, aSize ) ); + Rectangle aBound, aContent; + Rectangle aNatRgn( aPt, aSize ); if( pBorder->GetNativeControlRegion(CTRL_SPINBOX, PART_ENTIRE_CONTROL, - aNatRgn, 0, aControlValue, rtl::OUString(), aBound, aContent) ) + aNatRgn, 0, rSpinbuttonValue, rtl::OUString(), aBound, aContent) ) { - aSize = aContent.GetBoundRect().GetSize(); + aSize = aContent.GetSize(); } - Region aRgn( Rectangle( aPt, aSize ) ); + Rectangle aRgn( aPt, aSize ); bNativeOK = pBorder->DrawNativeControl( CTRL_SPINBOX, PART_ENTIRE_CONTROL, aRgn, CTRL_STATE_ENABLED, - aControlValue, rtl::OUString() ); + rSpinbuttonValue, rtl::OUString() ); pBorder->SetClipRegion( oldRgn ); } @@ -139,12 +136,9 @@ BOOL ImplDrawNativeSpinbuttons( Window *pWin, const SpinbuttonValue& rSpinbutton if( pWin->IsNativeControlSupported(CTRL_SPINBUTTONS, PART_ENTIRE_CONTROL) ) { - ImplControlValue aControlValue; - aControlValue.setOptionalVal( (void*) &rSpinbuttonValue ); - // only paint the standalone spin buttons, all buttons are painted at once - bNativeOK = pWin->DrawNativeControl( CTRL_SPINBUTTONS, PART_ALL_BUTTONS, Region(), CTRL_STATE_ENABLED, - aControlValue, rtl::OUString() ); + bNativeOK = pWin->DrawNativeControl( CTRL_SPINBUTTONS, PART_ALL_BUTTONS, Rectangle(), CTRL_STATE_ENABLED, + rSpinbuttonValue, rtl::OUString() ); } return bNativeOK; } @@ -705,7 +699,7 @@ void SpinField::ImplCalcButtonAreas( OutputDevice* pDev, const Size& rOutSz, Rec nBottom1--; BOOL bNativeRegionOK = FALSE; - Region aContentUp, aContentDown; + Rectangle aContentUp, aContentDown; if ( (pDev->GetOutDevType() == OUTDEV_WINDOW) && // there is just no useful native support for spinfields with dropdown @@ -717,11 +711,11 @@ void SpinField::ImplCalcButtonAreas( OutputDevice* pDev, const Size& rOutSz, Rec // get the system's spin button size ImplControlValue aControlValue; - Region aBound; + Rectangle aBound; Point aPoint; // use the full extent of the control - Region aArea( Rectangle( aPoint, pBorder->GetOutputSizePixel() ) ); + Rectangle aArea( aPoint, pBorder->GetOutputSizePixel() ); bNativeRegionOK = pWin->GetNativeControlRegion(CTRL_SPINBOX, PART_BUTTON_UP, @@ -740,8 +734,8 @@ void SpinField::ImplCalcButtonAreas( OutputDevice* pDev, const Size& rOutSz, Rec if( bNativeRegionOK ) { - rSpinUpArea = aContentUp.GetBoundRect(); - rSpinDownArea = aContentDown.GetBoundRect(); + rSpinUpArea = aContentUp; + rSpinDownArea = aContentDown; } else { @@ -774,11 +768,11 @@ void SpinField::Resize() ImplControlValue aControlValue; Point aPoint; - Region aContent, aBound; + Rectangle aContent, aBound; // use the full extent of the control Window *pBorder = GetWindow( WINDOW_BORDER ); - Region aArea( Rectangle(aPoint, pBorder->GetOutputSizePixel()) ); + Rectangle aArea( aPoint, pBorder->GetOutputSizePixel() ); // adjust position and size of the edit field if ( GetNativeControlRegion(CTRL_SPINBOX, PART_SUB_EDIT, @@ -789,10 +783,9 @@ void SpinField::Resize() aContent.Move(-aPoint.X(), -aPoint.Y()); // use the themes drop down size - Rectangle aContentRect = aContent.GetBoundRect(); - mpEdit->SetPosPixel( aContentRect.TopLeft() ); + mpEdit->SetPosPixel( aContent.TopLeft() ); bSubEditPositioned = true; - aSize = aContentRect.GetSize(); + aSize = aContent.GetSize(); } else { diff --git a/vcl/source/control/tabctrl.cxx b/vcl/source/control/tabctrl.cxx index 95f84626b582..c892b32534ec 100644 --- a/vcl/source/control/tabctrl.cxx +++ b/vcl/source/control/tabctrl.cxx @@ -411,15 +411,14 @@ Size TabControl::ImplGetItemSize( ImplTabItem* pItem, long nMaxWidth ) aSize.Width() += TAB_TABOFFSET_X*2; aSize.Height() += TAB_TABOFFSET_Y*2; - Region aCtrlRegion( Rectangle( (const Point&)Point( 0, 0 ), aSize ) ); - Region aBoundingRgn, aContentRgn; - const ImplControlValue aControlValue( BUTTONVALUE_DONTKNOW, rtl::OUString(), 0 ); + Rectangle aCtrlRegion( Point( 0, 0 ), aSize ); + Rectangle aBoundingRgn, aContentRgn; + const ImplControlValue aControlValue; if(GetNativeControlRegion( CTRL_TAB_ITEM, PART_ENTIRE_CONTROL, aCtrlRegion, CTRL_STATE_ENABLED, aControlValue, rtl::OUString(), aBoundingRgn, aContentRgn ) ) { - Rectangle aCont(aContentRgn.GetBoundRect()); - return aCont.GetSize(); + return aContentRgn.GetSize(); } // For systems without synthetic bold support @@ -938,8 +937,7 @@ void TabControl::ImplDrawItem( ImplTabItem* pItem, const Rectangle& rCurRect, bo if( !bLayout && (bNativeOK = IsNativeControlSupported(CTRL_TAB_ITEM, PART_ENTIRE_CONTROL)) == TRUE ) { - ImplControlValue aControlValue; - Region aCtrlRegion( pItem->maRect ); + Rectangle aCtrlRegion( pItem->maRect ); ControlState nState = 0; if( pItem->mnId == mnCurPageId ) @@ -974,10 +972,9 @@ void TabControl::ImplDrawItem( ImplTabItem* pItem, const Rectangle& rCurRect, bo tiValue.mnAlignment |= TABITEM_FIRST_IN_GROUP; if ( bLastInGroup ) tiValue.mnAlignment |= TABITEM_LAST_IN_GROUP; - aControlValue.setOptionalVal( (void *)(&tiValue) ); bNativeOK = DrawNativeControl( CTRL_TAB_ITEM, PART_ENTIRE_CONTROL, aCtrlRegion, nState, - aControlValue, rtl::OUString() ); + tiValue, rtl::OUString() ); } if( ! bLayout && !bNativeOK ) @@ -1236,7 +1233,7 @@ void TabControl::ImplPaint( const Rectangle& rRect, bool bLayout ) BOOL bNativeOK = FALSE; if( ! bLayout && (bNativeOK = IsNativeControlSupported( CTRL_TAB_PANE, PART_ENTIRE_CONTROL) ) == TRUE ) { - const ImplControlValue aControlValue( BUTTONVALUE_DONTKNOW, rtl::OUString(), 0 ); + const ImplControlValue aControlValue; ControlState nState = CTRL_STATE_ENABLED; int part = PART_ENTIRE_CONTROL; @@ -1250,10 +1247,8 @@ void TabControl::ImplPaint( const Rectangle& rRect, bool bLayout ) if( !rRect.IsEmpty() ) aClipRgn.Intersect( rRect ); - Region aCtrlRegion( aRect ); - Rectangle aClipRect( aClipRgn.GetBoundRect() ); - if( !aClipRgn.IsEmpty() ) //&& aClipRect.getHeight() && aClipRect.getWidth() ) - bNativeOK = DrawNativeControl( CTRL_TAB_PANE, part, aCtrlRegion, nState, + if( !aClipRgn.IsEmpty() ) + bNativeOK = DrawNativeControl( CTRL_TAB_PANE, part, aRect, nState, aControlValue, rtl::OUString() ); } else diff --git a/vcl/source/fontsubset/sft.cxx b/vcl/source/fontsubset/sft.cxx index 468d4be36b0a..43f24e5026ea 100644 --- a/vcl/source/fontsubset/sft.cxx +++ b/vcl/source/fontsubset/sft.cxx @@ -1397,6 +1397,7 @@ static void FindCmap(TrueTypeFont *ttf) sal_uInt32 table_size = getTableSize(ttf, O_cmap); sal_uInt16 ncmaps = GetUInt16(table, 2, 1); unsigned int i; + sal_uInt32 AppleUni = 0; // Apple Unicode sal_uInt32 ThreeZero = 0; /* MS Symbol */ sal_uInt32 ThreeOne = 0; /* MS UCS-2 */ sal_uInt32 ThreeTwo = 0; /* MS ShiftJIS */ @@ -1423,7 +1424,7 @@ static void FindCmap(TrueTypeFont *ttf) /* Unicode tables in Apple fonts */ if (pID == 0) { - ThreeOne = offset; break; + AppleUni = offset; } if (pID == 3) { @@ -1440,6 +1441,10 @@ static void FindCmap(TrueTypeFont *ttf) } } + // fall back to AppleUnicode if there are no ThreeOne/Threezero tables + if( AppleUni && !ThreeZero && !ThreeOne) + ThreeOne = AppleUni; + if (ThreeOne) { ttf->cmapType = CMAP_MS_Unicode; ttf->cmap = table + ThreeOne; diff --git a/vcl/source/gdi/makefile.mk b/vcl/source/gdi/makefile.mk index f069828f25f9..55d09d266019 100644 --- a/vcl/source/gdi/makefile.mk +++ b/vcl/source/gdi/makefile.mk @@ -50,6 +50,7 @@ CDEFS+=-DENABLE_GRAPHITE EXCEPTIONSFILES= $(SLO)$/salmisc.obj \ $(SLO)$/outdev.obj \ $(SLO)$/outdev3.obj \ + $(SLO)$/outdevnative.obj \ $(SLO)$/gfxlink.obj \ $(SLO)$/print.obj \ $(SLO)$/print2.obj \ @@ -106,7 +107,6 @@ SLOFILES= $(EXCEPTIONSFILES) \ $(SLO)$/outdev4.obj \ $(SLO)$/outdev5.obj \ $(SLO)$/outdev6.obj \ - $(SLO)$/outdevnative.obj \ $(SLO)$/regband.obj \ $(SLO)$/region.obj \ $(SLO)$/wall.obj \ diff --git a/vcl/source/gdi/outdev3.cxx b/vcl/source/gdi/outdev3.cxx index 949d3df5275f..bf1cc2728bf1 100644 --- a/vcl/source/gdi/outdev3.cxx +++ b/vcl/source/gdi/outdev3.cxx @@ -1889,10 +1889,11 @@ ImplDevFontListData* ImplDevFontList::ImplFindByAttributes( ULONG nSearchType, nTestMatch -= 1000000; // test font name substrings - if( (rSearchFamilyName.Len() && pData->maMatchFamilyName.Len()) + // TODO: calculate name matching score using e.g. Levenstein distance + if( (rSearchFamilyName.Len() >= 4) && (pData->maMatchFamilyName.Len() >= 4) && ((rSearchFamilyName.Search( pData->maMatchFamilyName ) != STRING_NOTFOUND) || (pData->maMatchFamilyName.Search( rSearchFamilyName ) != STRING_NOTFOUND)) ) - nTestMatch += 100000*2; + nTestMatch += 5000; // test SERIF attribute if( nSearchType & IMPL_FONT_ATTR_SERIF ) diff --git a/vcl/source/gdi/outdev6.cxx b/vcl/source/gdi/outdev6.cxx index 47b150ddc4c5..2ef8682d10ac 100644 --- a/vcl/source/gdi/outdev6.cxx +++ b/vcl/source/gdi/outdev6.cxx @@ -1135,7 +1135,7 @@ void OutputDevice::Erase() { ImplControlValue aControlValue; Point aGcc3WorkaroundTemporary; - Region aCtrlRegion( Rectangle( aGcc3WorkaroundTemporary, GetOutputSizePixel() ) ); + Rectangle aCtrlRegion( aGcc3WorkaroundTemporary, GetOutputSizePixel() ); ControlState nState = 0; if( pWindow->IsEnabled() ) nState |= CTRL_STATE_ENABLED; diff --git a/vcl/source/gdi/outdevnative.cxx b/vcl/source/gdi/outdevnative.cxx index fed41ec4de85..521f4d7ea62d 100644 --- a/vcl/source/gdi/outdevnative.cxx +++ b/vcl/source/gdi/outdevnative.cxx @@ -59,6 +59,38 @@ static bool lcl_enableNativeWidget( const OutputDevice& i_rDevice ) } } +ImplControlValue::~ImplControlValue() +{ +} + +ScrollbarValue::~ScrollbarValue() +{ +} + +SliderValue::~SliderValue() +{ +} + +TabitemValue::~TabitemValue() +{ +} + +SpinbuttonValue::~SpinbuttonValue() +{ +} + +ToolbarValue::~ToolbarValue() +{ +} + +MenubarValue::~MenubarValue() +{ +} + +PushButtonValue::~PushButtonValue() +{ +} + // ----------------------------------------------------------------------- // These functions are mainly passthrough functions that allow access to // the SalFrame behind a Window object for native widget rendering purposes. @@ -83,7 +115,7 @@ BOOL OutputDevice::IsNativeControlSupported( ControlType nType, ControlPart nPar BOOL OutputDevice::HitTestNativeControl( ControlType nType, ControlPart nPart, - const Region& rControlRegion, + const Rectangle& rControlRegion, const Point& aPos, BOOL& rIsInside ) { @@ -95,7 +127,7 @@ BOOL OutputDevice::HitTestNativeControl( ControlType nType, return FALSE; Point aWinOffs( mnOutOffX, mnOutOffY ); - Region screenRegion( rControlRegion ); + Rectangle screenRegion( rControlRegion ); screenRegion.Move( aWinOffs.X(), aWinOffs.Y()); return( mpGraphics->HitTestNativeControl(nType, nPart, screenRegion, Point( aPos.X() + mnOutOffX, aPos.Y() + mnOutOffY ), @@ -104,47 +136,117 @@ BOOL OutputDevice::HitTestNativeControl( ControlType nType, // ----------------------------------------------------------------------- -static void lcl_moveControlValue( ControlType nType, const ImplControlValue& aValue, const Point& rDelta ) +static boost::shared_ptr< ImplControlValue > lcl_transformControlValue( const ImplControlValue& rVal, OutputDevice& rDev ) { - if( aValue.getOptionalVal() ) + boost::shared_ptr< ImplControlValue > aResult; + switch( rVal.getType() ) { - switch( nType ) + case CTRL_SLIDER: { - case CTRL_SLIDER: - { - SliderValue* pSlVal = reinterpret_cast<SliderValue*>(aValue.getOptionalVal()); - pSlVal->maThumbRect.Move( rDelta.X(), rDelta.Y() ); - } - break; - case CTRL_SCROLLBAR: - { - ScrollbarValue* pScVal = reinterpret_cast<ScrollbarValue*>(aValue.getOptionalVal()); - pScVal->maThumbRect.Move( rDelta.X(), rDelta.Y() ); - pScVal->maButton1Rect.Move( rDelta.X(), rDelta.Y() ); - pScVal->maButton2Rect.Move( rDelta.X(), rDelta.Y() ); - } - break; - case CTRL_SPINBOX: - case CTRL_SPINBUTTONS: - { - SpinbuttonValue* pSpVal = reinterpret_cast<SpinbuttonValue*>(aValue.getOptionalVal()); - pSpVal->maUpperRect.Move( rDelta.X(), rDelta.Y() ); - pSpVal->maLowerRect.Move( rDelta.X(), rDelta.Y() ); - } - break; - case CTRL_TOOLBAR: - { - ToolbarValue* pTVal = reinterpret_cast<ToolbarValue*>(aValue.getOptionalVal()); - pTVal->maGripRect.Move( rDelta.X(), rDelta.Y() ); - } + const SliderValue* pSlVal = static_cast<const SliderValue*>(&rVal); + SliderValue* pNew = new SliderValue( *pSlVal ); + aResult.reset( pNew ); + pNew->maThumbRect = rDev.ImplLogicToDevicePixel( pSlVal->maThumbRect ); + } + break; + case CTRL_SCROLLBAR: + { + const ScrollbarValue* pScVal = static_cast<const ScrollbarValue*>(&rVal); + ScrollbarValue* pNew = new ScrollbarValue( *pScVal ); + aResult.reset( pNew ); + pNew->maThumbRect = rDev.ImplLogicToDevicePixel( pScVal->maThumbRect ); + pNew->maButton1Rect = rDev.ImplLogicToDevicePixel( pScVal->maButton1Rect ); + pNew->maButton2Rect = rDev.ImplLogicToDevicePixel( pScVal->maButton2Rect ); + } + break; + case CTRL_SPINBUTTONS: + { + const SpinbuttonValue* pSpVal = static_cast<const SpinbuttonValue*>(&rVal); + SpinbuttonValue* pNew = new SpinbuttonValue( *pSpVal ); + aResult.reset( pNew ); + pNew->maUpperRect = rDev.ImplLogicToDevicePixel( pSpVal->maUpperRect ); + pNew->maLowerRect = rDev.ImplLogicToDevicePixel( pSpVal->maLowerRect ); + } + break; + case CTRL_TOOLBAR: + { + const ToolbarValue* pTVal = static_cast<const ToolbarValue*>(&rVal); + ToolbarValue* pNew = new ToolbarValue( *pTVal ); + aResult.reset( pNew ); + pNew->maGripRect = rDev.ImplLogicToDevicePixel( pTVal->maGripRect ); + } + break; + case CTRL_TAB_ITEM: + { + const TabitemValue* pTIVal = static_cast<const TabitemValue*>(&rVal); + TabitemValue* pNew = new TabitemValue( *pTIVal ); + aResult.reset( pNew ); + } + break; + case CTRL_MENUBAR: + { + const MenubarValue* pMVal = static_cast<const MenubarValue*>(&rVal); + MenubarValue* pNew = new MenubarValue( *pMVal ); + aResult.reset( pNew ); + } + break; + case CTRL_PUSHBUTTON: + { + const PushButtonValue* pBVal = static_cast<const PushButtonValue*>(&rVal); + PushButtonValue* pNew = new PushButtonValue( *pBVal ); + aResult.reset( pNew ); + } + break; + case CTRL_GENERIC: + aResult.reset( new ImplControlValue( rVal ) ); break; + default: + OSL_ENSURE( 0, "unknown ImplControlValue type !" ); + break; + } + return aResult; +} + +#if 0 +static void lcl_moveControlValue( ControlType nType, const ImplControlValue& aValue, const Point& rDelta ) +{ + switch( aValue.getType() ) + { + case CTRL_SLIDER: + { + SliderValue* pSlVal = static_cast<SliderValue*>(const_cast<ImplControlValue*>(&aValue)); + pSlVal->maThumbRect.Move( rDelta.X(), rDelta.Y() ); + } + break; + case CTRL_SCROLLBAR: + { + ScrollbarValue* pScVal = static_cast<ScrollbarValue*>(const_cast<ImplControlValue*>(&aValue)); + pScVal->maThumbRect.Move( rDelta.X(), rDelta.Y() ); + pScVal->maButton1Rect.Move( rDelta.X(), rDelta.Y() ); + pScVal->maButton2Rect.Move( rDelta.X(), rDelta.Y() ); + } + break; + case CTRL_SPINBOX: + case CTRL_SPINBUTTONS: + { + SpinbuttonValue* pSpVal = static_cast<SpinbuttonValue*>(const_cast<ImplControlValue*>(&aValue)); + pSpVal->maUpperRect.Move( rDelta.X(), rDelta.Y() ); + pSpVal->maLowerRect.Move( rDelta.X(), rDelta.Y() ); + } + break; + case CTRL_TOOLBAR: + { + ToolbarValue* pTVal = static_cast<ToolbarValue*>(const_cast<ImplControlValue*>(&aValue)); + pTVal->maGripRect.Move( rDelta.X(), rDelta.Y() ); } + break; } } +#endif BOOL OutputDevice::DrawNativeControl( ControlType nType, ControlPart nPart, - const Region& rControlRegion, + const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, ::rtl::OUString aCaption ) @@ -183,22 +285,15 @@ BOOL OutputDevice::DrawNativeControl( ControlType nType, // Convert the coordinates from relative to Window-absolute, so we draw // in the correct place in platform code - Point aWinOffs( mnOutOffX, mnOutOffY ); - Region screenRegion( rControlRegion ); - screenRegion.Move( aWinOffs.X(), aWinOffs.Y()); - - // do so for ImplControlValue members, also - lcl_moveControlValue( nType, aValue, aWinOffs ); + boost::shared_ptr< ImplControlValue > aScreenCtrlValue( lcl_transformControlValue( aValue, *this ) ); + Rectangle screenRegion( ImplLogicToDevicePixel( rControlRegion ) ); Region aTestRegion( GetActiveClipRegion() ); aTestRegion.Intersect( rControlRegion ); if( aTestRegion == rControlRegion ) nState |= CTRL_CACHING_ALLOWED; // control is not clipped, caching allowed - BOOL bRet = mpGraphics->DrawNativeControl(nType, nPart, screenRegion, nState, aValue, aCaption, this ); - - // transform back ImplControlValue members - lcl_moveControlValue( nType, aValue, Point()-aWinOffs ); + BOOL bRet = mpGraphics->DrawNativeControl(nType, nPart, screenRegion, nState, *aScreenCtrlValue, aCaption, this ); return bRet; } @@ -208,7 +303,7 @@ BOOL OutputDevice::DrawNativeControl( ControlType nType, BOOL OutputDevice::DrawNativeControlText(ControlType nType, ControlPart nPart, - const Region& rControlRegion, + const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, ::rtl::OUString aCaption ) @@ -233,15 +328,10 @@ BOOL OutputDevice::DrawNativeControlText(ControlType nType, // Convert the coordinates from relative to Window-absolute, so we draw // in the correct place in platform code - Point aWinOffs( mnOutOffX, mnOutOffY ); - Region screenRegion( rControlRegion ); - screenRegion.Move( aWinOffs.X(), aWinOffs.Y()); - lcl_moveControlValue( nType, aValue, aWinOffs ); - - BOOL bRet = mpGraphics->DrawNativeControlText(nType, nPart, screenRegion, nState, aValue, aCaption, this ); + boost::shared_ptr< ImplControlValue > aScreenCtrlValue( lcl_transformControlValue( aValue, *this ) ); + Rectangle screenRegion( ImplLogicToDevicePixel( rControlRegion ) ); - // transform back ImplControlValue members - lcl_moveControlValue( nType, aValue, Point()-aWinOffs ); + BOOL bRet = mpGraphics->DrawNativeControlText(nType, nPart, screenRegion, nState, *aScreenCtrlValue, aCaption, this ); return bRet; } @@ -251,12 +341,12 @@ BOOL OutputDevice::DrawNativeControlText(ControlType nType, BOOL OutputDevice::GetNativeControlRegion( ControlType nType, ControlPart nPart, - const Region& rControlRegion, + const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, ::rtl::OUString aCaption, - Region &rNativeBoundingRegion, - Region &rNativeContentRegion ) + Rectangle &rNativeBoundingRegion, + Rectangle &rNativeContentRegion ) { if( !lcl_enableNativeWidget( *this ) ) return FALSE; @@ -267,22 +357,18 @@ BOOL OutputDevice::GetNativeControlRegion( ControlType nType, // Convert the coordinates from relative to Window-absolute, so we draw // in the correct place in platform code - Point aWinOffs( mnOutOffX, mnOutOffY ); - Region screenRegion( rControlRegion ); - screenRegion.Move( aWinOffs.X(), aWinOffs.Y()); - lcl_moveControlValue( nType, aValue, aWinOffs ); + boost::shared_ptr< ImplControlValue > aScreenCtrlValue( lcl_transformControlValue( aValue, *this ) ); + Rectangle screenRegion( ImplLogicToDevicePixel( rControlRegion ) ); - BOOL bRet = mpGraphics->GetNativeControlRegion(nType, nPart, screenRegion, nState, aValue, + BOOL bRet = mpGraphics->GetNativeControlRegion(nType, nPart, screenRegion, nState, *aScreenCtrlValue, aCaption, rNativeBoundingRegion, rNativeContentRegion, this ); if( bRet ) { // transform back native regions - rNativeBoundingRegion.Move( -aWinOffs.X(), -aWinOffs.Y() ); - rNativeContentRegion.Move( -aWinOffs.X(), -aWinOffs.Y() ); + rNativeBoundingRegion = ImplDevicePixelToLogic( rNativeBoundingRegion ); + rNativeContentRegion = ImplDevicePixelToLogic( rNativeContentRegion ); } - // transform back ImplControlValue members - lcl_moveControlValue( nType, aValue, Point()-aWinOffs ); return bRet; } diff --git a/vcl/source/gdi/salgdilayout.cxx b/vcl/source/gdi/salgdilayout.cxx index 7a6808a0e392..97e11c5a6aa4 100644..100755 --- a/vcl/source/gdi/salgdilayout.cxx +++ b/vcl/source/gdi/salgdilayout.cxx @@ -669,13 +669,13 @@ BOOL SalGraphics::DrawEPS( long nX, long nY, long nWidth, long nHeight, void* return drawEPS( nX, nY, nWidth, nHeight, pPtr, nSize ); } -BOOL SalGraphics::HitTestNativeControl( ControlType nType, ControlPart nPart, const Region& rControlRegion, +BOOL SalGraphics::HitTestNativeControl( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, const Point& aPos, BOOL& rIsInside, const OutputDevice *pOutDev ) { if( (m_nLayout & SAL_LAYOUT_BIDI_RTL) || (pOutDev && pOutDev->IsRTLEnabled()) ) { Point pt( aPos ); - Region rgn( rControlRegion ); + Rectangle rgn( rControlRegion ); mirror( pt.X(), pOutDev ); mirror( rgn, pOutDev ); return hitTestNativeControl( nType, nPart, rgn, pt, rIsInside ); @@ -684,51 +684,48 @@ BOOL SalGraphics::HitTestNativeControl( ControlType nType, ControlPart nPart, co return hitTestNativeControl( nType, nPart, rControlRegion, aPos, rIsInside ); } -void SalGraphics::mirror( ControlType nType, const ImplControlValue& rVal, const OutputDevice* pOutDev, bool bBack ) const +void SalGraphics::mirror( ControlType , const ImplControlValue& rVal, const OutputDevice* pOutDev, bool bBack ) const { - if( rVal.getOptionalVal() ) + switch( rVal.getType() ) { - switch( nType ) + case CTRL_SLIDER: { - case CTRL_SLIDER: - { - SliderValue* pSlVal = reinterpret_cast<SliderValue*>(rVal.getOptionalVal()); - mirror(pSlVal->maThumbRect,pOutDev,bBack); - } - break; - case CTRL_SCROLLBAR: - { - ScrollbarValue* pScVal = reinterpret_cast<ScrollbarValue*>(rVal.getOptionalVal()); - mirror(pScVal->maThumbRect,pOutDev,bBack); - mirror(pScVal->maButton1Rect,pOutDev,bBack); - mirror(pScVal->maButton2Rect,pOutDev,bBack); - } - break; - case CTRL_SPINBOX: - case CTRL_SPINBUTTONS: - { - SpinbuttonValue* pSpVal = reinterpret_cast<SpinbuttonValue*>(rVal.getOptionalVal()); - mirror(pSpVal->maUpperRect,pOutDev,bBack); - mirror(pSpVal->maLowerRect,pOutDev,bBack); - } - break; - case CTRL_TOOLBAR: - { - ToolbarValue* pTVal = reinterpret_cast<ToolbarValue*>(rVal.getOptionalVal()); - mirror(pTVal->maGripRect,pOutDev,bBack); - } - break; + SliderValue* pSlVal = static_cast<SliderValue*>(const_cast<ImplControlValue*>(&rVal)); + mirror(pSlVal->maThumbRect,pOutDev,bBack); + } + break; + case CTRL_SCROLLBAR: + { + ScrollbarValue* pScVal = static_cast<ScrollbarValue*>(const_cast<ImplControlValue*>(&rVal)); + mirror(pScVal->maThumbRect,pOutDev,bBack); + mirror(pScVal->maButton1Rect,pOutDev,bBack); + mirror(pScVal->maButton2Rect,pOutDev,bBack); + } + break; + case CTRL_SPINBOX: + case CTRL_SPINBUTTONS: + { + SpinbuttonValue* pSpVal = static_cast<SpinbuttonValue*>(const_cast<ImplControlValue*>(&rVal)); + mirror(pSpVal->maUpperRect,pOutDev,bBack); + mirror(pSpVal->maLowerRect,pOutDev,bBack); + } + break; + case CTRL_TOOLBAR: + { + ToolbarValue* pTVal = static_cast<ToolbarValue*>(const_cast<ImplControlValue*>(&rVal)); + mirror(pTVal->maGripRect,pOutDev,bBack); } + break; } } -BOOL SalGraphics::DrawNativeControl( ControlType nType, ControlPart nPart, const Region& rControlRegion, +BOOL SalGraphics::DrawNativeControl( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const OUString& aCaption, const OutputDevice *pOutDev ) { if( (m_nLayout & SAL_LAYOUT_BIDI_RTL) || (pOutDev && pOutDev->IsRTLEnabled()) ) { - Region rgn( rControlRegion ); + Rectangle rgn( rControlRegion ); mirror( rgn, pOutDev ); mirror( nType, aValue, pOutDev ); BOOL bRet = drawNativeControl( nType, nPart, rgn, nState, aValue, aCaption ); @@ -739,13 +736,13 @@ BOOL SalGraphics::DrawNativeControl( ControlType nType, ControlPart nPart, const return drawNativeControl( nType, nPart, rControlRegion, nState, aValue, aCaption ); } -BOOL SalGraphics::DrawNativeControlText( ControlType nType, ControlPart nPart, const Region& rControlRegion, +BOOL SalGraphics::DrawNativeControlText( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const OUString& aCaption, const OutputDevice *pOutDev ) { if( (m_nLayout & SAL_LAYOUT_BIDI_RTL) || (pOutDev && pOutDev->IsRTLEnabled()) ) { - Region rgn( rControlRegion ); + Rectangle rgn( rControlRegion ); mirror( rgn, pOutDev ); mirror( nType, aValue, pOutDev ); BOOL bRet = drawNativeControlText( nType, nPart, rgn, nState, aValue, aCaption ); @@ -756,13 +753,13 @@ BOOL SalGraphics::DrawNativeControlText( ControlType nType, ControlPart nPart, c return drawNativeControlText( nType, nPart, rControlRegion, nState, aValue, aCaption ); } -BOOL SalGraphics::GetNativeControlRegion( ControlType nType, ControlPart nPart, const Region& rControlRegion, ControlState nState, +BOOL SalGraphics::GetNativeControlRegion( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const OUString& aCaption, - Region &rNativeBoundingRegion, Region &rNativeContentRegion, const OutputDevice *pOutDev ) + Rectangle &rNativeBoundingRegion, Rectangle &rNativeContentRegion, const OutputDevice *pOutDev ) { if( (m_nLayout & SAL_LAYOUT_BIDI_RTL) || (pOutDev && pOutDev->IsRTLEnabled()) ) { - Region rgn( rControlRegion ); + Rectangle rgn( rControlRegion ); mirror( rgn, pOutDev ); mirror( nType, aValue, pOutDev ); if( getNativeControlRegion( nType, nPart, rgn, nState, aValue, aCaption, diff --git a/vcl/source/gdi/salnativewidgets-none.cxx b/vcl/source/gdi/salnativewidgets-none.cxx index 7faf12d062fe..8aa0e47f1a35 100644 --- a/vcl/source/gdi/salnativewidgets-none.cxx +++ b/vcl/source/gdi/salnativewidgets-none.cxx @@ -58,7 +58,7 @@ BOOL SalGraphics::IsNativeControlSupported( ControlType, ControlPart ) */ BOOL SalGraphics::hitTestNativeControl( ControlType, ControlPart, - const Region&, + const Rectangle&, const Point&, BOOL& ) { @@ -77,7 +77,7 @@ BOOL SalGraphics::hitTestNativeControl( ControlType, */ BOOL SalGraphics::drawNativeControl( ControlType, ControlPart, - const Region&, + const Rectangle&, ControlState, const ImplControlValue&, const OUString& ) @@ -98,7 +98,7 @@ BOOL SalGraphics::drawNativeControl( ControlType, */ BOOL SalGraphics::drawNativeControlText( ControlType, ControlPart, - const Region&, + const Rectangle&, ControlState, const ImplControlValue&, const OUString& ) @@ -122,12 +122,12 @@ BOOL SalGraphics::drawNativeControlText( ControlType, */ BOOL SalGraphics::getNativeControlRegion( ControlType, ControlPart, - const Region&, + const Rectangle&, ControlState, const ImplControlValue&, const OUString&, - Region &, - Region & ) + Rectangle &, + Rectangle & ) { return( FALSE ); } diff --git a/vcl/source/window/brdwin.cxx b/vcl/source/window/brdwin.cxx index 8eedf76043da..b221d1f7d928 100644 --- a/vcl/source/window/brdwin.cxx +++ b/vcl/source/window/brdwin.cxx @@ -1151,15 +1151,13 @@ void ImplSmallBorderWindowView::Init( OutputDevice* pDev, long nWidth, long nHei if( mbNWFBorder ) { ImplControlValue aControlValue; - Region aCtrlRegion( Rectangle( (const Point&)Point(), Size( mnWidth < 10 ? 10 : mnWidth, mnHeight < 10 ? 10 : mnHeight ) ) ); - Region aBoundingRgn( aCtrlRegion ); - Region aContentRgn( aCtrlRegion ); + Rectangle aCtrlRegion( (const Point&)Point(), Size( mnWidth < 10 ? 10 : mnWidth, mnHeight < 10 ? 10 : mnHeight ) ); + Rectangle aBounds( aCtrlRegion ); + Rectangle aContent( aCtrlRegion ); if( pWin->GetNativeControlRegion( aCtrlType, PART_ENTIRE_CONTROL, aCtrlRegion, CTRL_STATE_ENABLED, aControlValue, rtl::OUString(), - aBoundingRgn, aContentRgn ) ) + aBounds, aContent ) ) { - Rectangle aBounds( aBoundingRgn.GetBoundRect() ); - Rectangle aContent( aContentRgn.GetBoundRect() ); mnLeftBorder = aContent.Left() - aBounds.Left(); mnRightBorder = aBounds.Right() - aContent.Right(); mnTopBorder = aContent.Top() - aBounds.Top(); @@ -1346,13 +1344,14 @@ void ImplSmallBorderWindowView::DrawWindow( USHORT nDrawFlags, OutputDevice*, co nState |= CTRL_STATE_ROLLOVER; Point aPoint; - Region aCtrlRegion( Rectangle( aPoint, Size( mnWidth, mnHeight ) ) ); + Rectangle aCtrlRegion( aPoint, Size( mnWidth, mnHeight ) ); - Region aBoundingRgn( Rectangle( aPoint, Size( mnWidth, mnHeight ) ) ); - Region aContentRgn=aCtrlRegion; + Rectangle aBoundingRgn( aPoint, Size( mnWidth, mnHeight ) ); + Rectangle aContentRgn( aCtrlRegion ); if(pWin->GetNativeControlRegion( aCtrlType, aCtrlPart, aCtrlRegion, - nState, aControlValue, rtl::OUString(), aBoundingRgn, aContentRgn )) { - aCtrlRegion=aContentRgn; + nState, aControlValue, rtl::OUString(), aBoundingRgn, aContentRgn )) + { + aCtrlRegion=aContentRgn; } bNativeOK = pWin->DrawNativeControl( aCtrlType, aCtrlPart, aCtrlRegion, nState, diff --git a/vcl/source/window/decoview.cxx b/vcl/source/window/decoview.cxx index a32790cfb0d4..e5c3dc525cec 100644 --- a/vcl/source/window/decoview.cxx +++ b/vcl/source/window/decoview.cxx @@ -877,12 +877,12 @@ static void ImplDrawFrame( OutputDevice* pDev, Rectangle& rRect, if( pWin->GetType() == WINDOW_BORDERWINDOW ) nValueStyle |= FRAME_DRAW_BORDERWINDOWBORDER; ImplControlValue aControlValue( nValueStyle ); - Region aBound, aContent; - Region aNatRgn( rRect ); + Rectangle aBound, aContent; + Rectangle aNatRgn( rRect ); if(pWin && pWin->GetNativeControlRegion(CTRL_FRAME, PART_BORDER, aNatRgn, 0, aControlValue, rtl::OUString(), aBound, aContent) ) { - rRect = aContent.GetBoundRect(); + rRect = aContent; } else if ( nStyle & FRAME_DRAW_MONO ) ImplDrawDPILineRect( pDev, rRect, NULL, bRound ); @@ -922,15 +922,15 @@ static void ImplDrawFrame( OutputDevice* pDev, Rectangle& rRect, if( pWin->GetType() == WINDOW_BORDERWINDOW ) nValueStyle |= FRAME_DRAW_BORDERWINDOWBORDER; ImplControlValue aControlValue( nValueStyle ); - Region aBound, aContent; - Region aNatRgn( rRect ); + Rectangle aBound, aContent; + Rectangle aNatRgn( rRect ); if( pWin->GetNativeControlRegion(CTRL_FRAME, PART_BORDER, aNatRgn, 0, aControlValue, rtl::OUString(), aBound, aContent) ) { if( pWin->DrawNativeControl( CTRL_FRAME, PART_BORDER, aContent, CTRL_STATE_ENABLED, aControlValue, rtl::OUString()) ) { - rRect = aContent.GetBoundRect(); + rRect = aContent; return; } } diff --git a/vcl/source/window/dockingarea.cxx b/vcl/source/window/dockingarea.cxx index 95e6c6113c45..9ea407e52ee3 100644 --- a/vcl/source/window/dockingarea.cxx +++ b/vcl/source/window/dockingarea.cxx @@ -152,23 +152,21 @@ void DockingAreaWindow::Paint( const Rectangle& ) EnableNativeWidget( TRUE ); // only required because the toolkit curently switches this flag off if( IsNativeControlSupported( CTRL_TOOLBAR, PART_ENTIRE_CONTROL ) ) { - ImplControlValue aControlValue; - ToolbarValue aToolbarValue; + ToolbarValue aControlValue; if( GetAlign() == WINDOWALIGN_TOP && ImplGetSVData()->maNWFData.mbMenuBarDockingAreaCommonBG ) { // give NWF a hint that this dockingarea is adjacent to the menubar // useful for special gradient effects that should cover both windows - aToolbarValue.mbIsTopDockingArea = TRUE; + aControlValue.mbIsTopDockingArea = TRUE; } - aControlValue.setOptionalVal( (void *)(&aToolbarValue) ); ControlState nState = CTRL_STATE_ENABLED; if( !ImplGetSVData()->maNWFData.mbDockingAreaSeparateTB ) { // draw a single toolbar background covering the whole docking area Point tmp; - Region aCtrlRegion( Rectangle( tmp, GetOutputSizePixel() ) ); + Rectangle aCtrlRegion( tmp, GetOutputSizePixel() ); DrawNativeControl( CTRL_TOOLBAR, IsHorizontal() ? PART_DRAW_BACKGROUND_HORZ : PART_DRAW_BACKGROUND_VERT, aCtrlRegion, nState, aControlValue, rtl::OUString() ); @@ -231,7 +229,7 @@ void DockingAreaWindow::Paint( const Rectangle& ) aTBRect.Bottom() = aOutSz.Height() - 1; } DrawNativeControl( CTRL_TOOLBAR, IsHorizontal() ? PART_DRAW_BACKGROUND_HORZ : PART_DRAW_BACKGROUND_VERT, - Region( aTBRect), nState, aControlValue, rtl::OUString() ); + aTBRect, nState, aControlValue, rtl::OUString() ); } } } diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx index 1723d26ce399..81676eba3be4 100644 --- a/vcl/source/window/menu.cxx +++ b/vcl/source/window/menu.cxx @@ -2268,10 +2268,10 @@ long Menu::ImplGetNativeCheckAndRadioSize( Window* pWin, long& rCheckHeight, lon if( ! bIsMenuBar ) { ImplControlValue aVal; - Region aNativeBounds; - Region aNativeContent; + Rectangle aNativeBounds; + Rectangle aNativeContent; Point tmp( 0, 0 ); - Region aCtrlRegion( Rectangle( tmp, Size( 100, 15 ) ) ); + Rectangle aCtrlRegion( Rectangle( tmp, Size( 100, 15 ) ) ); if( pWin->IsNativeControlSupported( CTRL_MENU_POPUP, PART_MENU_ITEM_CHECK_MARK ) ) { if( pWin->GetNativeControlRegion( ControlType(CTRL_MENU_POPUP), @@ -2284,8 +2284,8 @@ long Menu::ImplGetNativeCheckAndRadioSize( Window* pWin, long& rCheckHeight, lon aNativeContent ) ) { - rCheckHeight = aNativeBounds.GetBoundRect().GetHeight(); - rMaxWidth = aNativeContent.GetBoundRect().GetWidth(); + rCheckHeight = aNativeBounds.GetHeight(); + rMaxWidth = aNativeContent.GetWidth(); } } if( pWin->IsNativeControlSupported( CTRL_MENU_POPUP, PART_MENU_ITEM_RADIO_MARK ) ) @@ -2300,8 +2300,8 @@ long Menu::ImplGetNativeCheckAndRadioSize( Window* pWin, long& rCheckHeight, lon aNativeContent ) ) { - rRadioHeight = aNativeBounds.GetBoundRect().GetHeight(); - rMaxWidth = Max (rMaxWidth, aNativeContent.GetBoundRect().GetWidth()); + rRadioHeight = aNativeBounds.GetHeight(); + rMaxWidth = Max (rMaxWidth, aNativeContent.GetWidth()); } } } @@ -2516,10 +2516,10 @@ Size Menu::ImplCalcSize( Window* pWin ) if( pWindow->IsNativeControlSupported( CTRL_MENUBAR, PART_ENTIRE_CONTROL ) ) { ImplControlValue aVal; - Region aNativeBounds; - Region aNativeContent; + Rectangle aNativeBounds; + Rectangle aNativeContent; Point tmp( 0, 0 ); - Region aCtrlRegion( Rectangle( tmp, Size( 100, 15 ) ) ); + Rectangle aCtrlRegion( tmp, Size( 100, 15 ) ); if( pWindow->GetNativeControlRegion( ControlType(CTRL_MENUBAR), ControlPart(PART_ENTIRE_CONTROL), aCtrlRegion, @@ -2530,7 +2530,7 @@ Size Menu::ImplCalcSize( Window* pWin ) aNativeContent ) ) { - int nNativeHeight = aNativeBounds.GetBoundRect().GetHeight(); + int nNativeHeight = aNativeBounds.GetHeight(); if( nNativeHeight > aSz.Height() ) aSz.Height() = nNativeHeight; } @@ -2555,7 +2555,7 @@ static void ImplPaintCheckBackground( Window* i_pWindow, const Rectangle& i_rRec if( i_pWindow->IsNativeControlSupported( CTRL_TOOLBAR, PART_BUTTON ) ) { ImplControlValue aControlValue; - Region aCtrlRegion( i_rRect ); + Rectangle aCtrlRegion( i_rRect ); ControlState nState = CTRL_STATE_PRESSED | CTRL_STATE_ENABLED; aControlValue.setTristateVal( BUTTONVALUE_ON ); @@ -2689,7 +2689,7 @@ void Menu::ImplPaint( Window* pWin, USHORT nBorder, long nStartY, MenuItemData* Rectangle aCheckRect( aTmpPos, Size( nCtrlHeight, nCtrlHeight ) ); pWin->DrawNativeControl( CTRL_MENU_POPUP, nPart, - Region( aCheckRect ), + aCheckRect, nState, ImplControlValue(), OUString() ); @@ -4679,7 +4679,7 @@ void MenuFloatingWindow::HighlightItem( USHORT nPos, BOOL bHighlight ) IntersectClipRegion( Rectangle( Point( nX, nY ), Size( aSz.Width(), pData->aSz.Height() ) ) ); Rectangle aCtrlRect( Point( nX, 0 ), Size( aPxSize.Width()-nX, aPxSize.Height() ) ); DrawNativeControl( CTRL_MENU_POPUP, PART_ENTIRE_CONTROL, - Region( aCtrlRect ), + aCtrlRect, CTRL_STATE_ENABLED, ImplControlValue(), OUString() ); @@ -4688,7 +4688,7 @@ void MenuFloatingWindow::HighlightItem( USHORT nPos, BOOL bHighlight ) { bDrawItemRect = false; if( FALSE == DrawNativeControl( CTRL_MENU_POPUP, PART_MENU_ITEM, - Region( aItemRect ), + aItemRect, CTRL_STATE_SELECTED | ( pData->bEnabled? CTRL_STATE_ENABLED: 0 ), ImplControlValue(), OUString() ) ) @@ -5026,7 +5026,7 @@ void MenuFloatingWindow::Paint( const Rectangle& ) Size aPxSize( GetOutputSizePixel() ); aPxSize.Width() -= nX; DrawNativeControl( CTRL_MENU_POPUP, PART_ENTIRE_CONTROL, - Region( Rectangle( Point( nX, 0 ), aPxSize ) ), + Rectangle( Point( nX, 0 ), aPxSize ), CTRL_STATE_ENABLED, ImplControlValue(), OUString() ); @@ -5540,23 +5540,21 @@ void MenuBarWindow::HighlightItem( USHORT nPos, BOOL bHighlight ) IsNativeControlSupported( CTRL_MENUBAR, PART_ENTIRE_CONTROL ) ) { // draw background (transparency) - ImplControlValue aControlValue; - MenubarValue aMenubarValue; - aMenubarValue.maTopDockingAreaHeight = ImplGetTopDockingAreaHeight( this ); - aControlValue.setOptionalVal( (void *)(&aMenubarValue) ); + MenubarValue aControlValue; + aControlValue.maTopDockingAreaHeight = ImplGetTopDockingAreaHeight( this ); Point tmp(0,0); - Region aBgRegion( Rectangle( tmp, GetOutputSizePixel() ) ); + Rectangle aBgRegion( tmp, GetOutputSizePixel() ); DrawNativeControl( CTRL_MENUBAR, PART_ENTIRE_CONTROL, aBgRegion, CTRL_STATE_ENABLED, aControlValue, OUString() ); - ImplAddNWFSeparator( this, aMenubarValue ); + ImplAddNWFSeparator( this, aControlValue ); // draw selected item DrawNativeControl( CTRL_MENUBAR, PART_MENU_ITEM, - Region( aRect ), + aRect, CTRL_STATE_ENABLED | CTRL_STATE_SELECTED, aControlValue, OUString() ); @@ -5572,18 +5570,15 @@ void MenuBarWindow::HighlightItem( USHORT nPos, BOOL bHighlight ) { if( IsNativeControlSupported( CTRL_MENUBAR, PART_ENTIRE_CONTROL) ) { - ImplControlValue aControlValue; MenubarValue aMenubarValue; aMenubarValue.maTopDockingAreaHeight = ImplGetTopDockingAreaHeight( this ); - aControlValue.setOptionalVal( (void *)(&aMenubarValue) ); // use full window size to get proper gradient // but clip accordingly Point aPt; Rectangle aCtrlRect( aPt, GetOutputSizePixel() ); - Region aCtrlRegion( aCtrlRect ); - DrawNativeControl( CTRL_MENUBAR, PART_ENTIRE_CONTROL, aCtrlRegion, CTRL_STATE_ENABLED, aControlValue, rtl::OUString() ); + DrawNativeControl( CTRL_MENUBAR, PART_ENTIRE_CONTROL, aCtrlRect, CTRL_STATE_ENABLED, aMenubarValue, rtl::OUString() ); ImplAddNWFSeparator( this, aMenubarValue ); } else @@ -5814,14 +5809,12 @@ void MenuBarWindow::Paint( const Rectangle& ) if( IsNativeControlSupported( CTRL_MENUBAR, PART_ENTIRE_CONTROL) ) { Point aPt; - Region aCtrlRegion( Rectangle( aPt, GetOutputSizePixel() ) ); + Rectangle aCtrlRegion( aPt, GetOutputSizePixel() ); - ImplControlValue aControlValue; MenubarValue aMenubarValue; aMenubarValue.maTopDockingAreaHeight = ImplGetTopDockingAreaHeight( this ); - aControlValue.setOptionalVal( (void *)(&aMenubarValue) ); - DrawNativeControl( CTRL_MENUBAR, PART_ENTIRE_CONTROL, aCtrlRegion, CTRL_STATE_ENABLED, aControlValue, rtl::OUString() ); + DrawNativeControl( CTRL_MENUBAR, PART_ENTIRE_CONTROL, aCtrlRegion, CTRL_STATE_ENABLED, aMenubarValue, rtl::OUString() ); ImplAddNWFSeparator( this, aMenubarValue ); } SetFillColor( GetSettings().GetStyleSettings().GetMenuColor() ); diff --git a/vcl/source/window/printdlg.cxx b/vcl/source/window/printdlg.cxx index 35077b1cff0e..52f54db0e50e 100644 --- a/vcl/source/window/printdlg.cxx +++ b/vcl/source/window/printdlg.cxx @@ -2514,13 +2514,13 @@ void PrintProgressDialog::implCalcProgressRect() if( IsNativeControlSupported( CTRL_PROGRESS, PART_ENTIRE_CONTROL ) ) { ImplControlValue aValue; - Region aControlRegion( Rectangle( Point(), Size( 100, mnProgressHeight ) ) ); - Region aNativeControlRegion, aNativeContentRegion; + Rectangle aControlRegion( Point(), Size( 100, mnProgressHeight ) ); + Rectangle aNativeControlRegion, aNativeContentRegion; if( GetNativeControlRegion( CTRL_PROGRESS, PART_ENTIRE_CONTROL, aControlRegion, CTRL_STATE_ENABLED, aValue, rtl::OUString(), aNativeControlRegion, aNativeContentRegion ) ) { - mnProgressHeight = aNativeControlRegion.GetBoundRect().GetHeight(); + mnProgressHeight = aNativeControlRegion.GetHeight(); } mbNativeProgress = true; } diff --git a/vcl/source/window/status.cxx b/vcl/source/window/status.cxx index c139ae1ffb30..385dd241c770 100644 --- a/vcl/source/window/status.cxx +++ b/vcl/source/window/status.cxx @@ -544,7 +544,7 @@ void DrawProgress( Window* pWindow, const Point& rPos, long nPerc = (nPercent2 > 10000) ? 10000 : nPercent2; ImplControlValue aValue( nFullWidth * (long)nPerc / 10000 ); Rectangle aDrawRect( rPos, Size( nFullWidth, nPrgsHeight ) ); - Region aControlRegion( aDrawRect ); + Rectangle aControlRegion( aDrawRect ); if( bNeedErase ) { Window* pEraseWindow = pWindow; @@ -711,13 +711,13 @@ void StatusBar::ImplCalcProgressRect() if( IsNativeControlSupported( CTRL_PROGRESS, PART_ENTIRE_CONTROL ) ) { ImplControlValue aValue; - Region aControlRegion( Rectangle( (const Point&)Point(), maPrgsFrameRect.GetSize() ) ); - Region aNativeControlRegion, aNativeContentRegion; + Rectangle aControlRegion( Rectangle( (const Point&)Point(), maPrgsFrameRect.GetSize() ) ); + Rectangle aNativeControlRegion, aNativeContentRegion; if( (bNativeOK = GetNativeControlRegion( CTRL_PROGRESS, PART_ENTIRE_CONTROL, aControlRegion, CTRL_STATE_ENABLED, aValue, rtl::OUString(), aNativeControlRegion, aNativeContentRegion ) ) != FALSE ) { - long nProgressHeight = aNativeControlRegion.GetBoundRect().GetHeight(); + long nProgressHeight = aNativeControlRegion.GetHeight(); if( nProgressHeight > maPrgsFrameRect.GetHeight() ) { long nDelta = nProgressHeight - maPrgsFrameRect.GetHeight(); @@ -1723,13 +1723,13 @@ Size StatusBar::CalcWindowSizePixel() const if( pThis->IsNativeControlSupported( CTRL_PROGRESS, PART_ENTIRE_CONTROL ) ) { ImplControlValue aValue; - Region aControlRegion( Rectangle( (const Point&)Point(), Size( nCalcWidth, nMinHeight ) ) ); - Region aNativeControlRegion, aNativeContentRegion; + Rectangle aControlRegion( (const Point&)Point(), Size( nCalcWidth, nMinHeight ) ); + Rectangle aNativeControlRegion, aNativeContentRegion; if( pThis->GetNativeControlRegion( CTRL_PROGRESS, PART_ENTIRE_CONTROL, aControlRegion, CTRL_STATE_ENABLED, aValue, rtl::OUString(), aNativeControlRegion, aNativeContentRegion ) ) { - nProgressHeight = aNativeControlRegion.GetBoundRect().GetHeight(); + nProgressHeight = aNativeControlRegion.GetHeight(); } } @@ -1737,14 +1737,13 @@ Size StatusBar::CalcWindowSizePixel() const pThis->IsNativeControlSupported( CTRL_FRAME, PART_BORDER ) ) { ImplControlValue aControlValue( FRAME_DRAW_NODRAW ); - Region aBound, aContent; - Region aNatRgn( Rectangle( Point( 0, 0 ), Size( 150, 50 ) ) ); + Rectangle aBound, aContent; + Rectangle aNatRgn( Point( 0, 0 ), Size( 150, 50 ) ); if( pThis->GetNativeControlRegion(CTRL_FRAME, PART_BORDER, aNatRgn, 0, aControlValue, rtl::OUString(), aBound, aContent) ) { mpImplData->mnItemBorderWidth = - ( aBound.GetBoundRect().GetHeight() - - aContent.GetBoundRect().GetHeight() ) / 2; + ( aBound.GetHeight() - aContent.GetHeight() ) / 2; } } diff --git a/vcl/source/window/tabpage.cxx b/vcl/source/window/tabpage.cxx index 7bfd115af8f9..0589d57009f4 100644 --- a/vcl/source/window/tabpage.cxx +++ b/vcl/source/window/tabpage.cxx @@ -149,7 +149,7 @@ void TabPage::Paint( const Rectangle& ) // draw native tabpage only inside tabcontrols, standalone tabpages look ugly (due to bad dialog design) if( IsNativeControlSupported(CTRL_TAB_BODY, PART_ENTIRE_CONTROL) && GetParent() && (GetParent()->GetType() == WINDOW_TABCONTROL) ) { - const ImplControlValue aControlValue( BUTTONVALUE_DONTKNOW, rtl::OUString(), 0 ); + const ImplControlValue aControlValue; ControlState nState = CTRL_STATE_ENABLED; int part = PART_ENTIRE_CONTROL; @@ -160,7 +160,7 @@ void TabPage::Paint( const Rectangle& ) Point aPoint; // pass the whole window region to NWF as the tab body might be a gradient or bitmap // that has to be scaled properly, clipping makes sure that we do not paint too much - Region aCtrlRegion( Rectangle( aPoint, GetOutputSizePixel() ) ); + Rectangle aCtrlRegion( aPoint, GetOutputSizePixel() ); DrawNativeControl( CTRL_TAB_BODY, part, aCtrlRegion, nState, aControlValue, rtl::OUString() ); } diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx index 9ad0b8734437..cde91a8dcd97 100644 --- a/vcl/source/window/toolbox.cxx +++ b/vcl/source/window/toolbox.cxx @@ -215,13 +215,13 @@ int ToolBox::ImplGetDragWidth( ToolBox* pThis ) ImplControlValue aControlValue; Point aPoint; - Region aContent, aBound; - Region aArea( Rectangle(aPoint, pThis->GetOutputSizePixel()) ); + Rectangle aContent, aBound; + Rectangle aArea( aPoint, pThis->GetOutputSizePixel() ); if ( pThis->GetNativeControlRegion(CTRL_TOOLBAR, pThis->mbHorz ? PART_THUMB_VERT : PART_THUMB_HORZ, aArea, 0, aControlValue, rtl::OUString(), aBound, aContent) ) { - width = pThis->mbHorz ? aContent.GetBoundRect().GetWidth() : aContent.GetBoundRect().GetHeight(); + width = pThis->mbHorz ? aContent.GetWidth() : aContent.GetHeight(); } } return width; @@ -338,16 +338,14 @@ void ToolBox::ImplDrawGrip( ToolBox* pThis ) BOOL bNativeOk = FALSE; if( pThis->IsNativeControlSupported( CTRL_TOOLBAR, pThis->mbHorz ? PART_THUMB_HORZ : PART_THUMB_VERT ) ) { - ImplControlValue aControlValue; ToolbarValue aToolbarValue; aToolbarValue.maGripRect = pWrapper->GetDragArea(); - aControlValue.setOptionalVal( (void *)(&aToolbarValue) ); Point aPt; - Region aCtrlRegion( Rectangle( aPt, pThis->GetOutputSizePixel() ) ); + Rectangle aCtrlRegion( aPt, pThis->GetOutputSizePixel() ); ControlState nState = CTRL_STATE_ENABLED; bNativeOk = pThis->DrawNativeControl( CTRL_TOOLBAR, pThis->mbHorz ? PART_THUMB_VERT : PART_THUMB_HORZ, - aCtrlRegion, nState, aControlValue, rtl::OUString() ); + aCtrlRegion, nState, aToolbarValue, rtl::OUString() ); } if( bNativeOk ) @@ -557,7 +555,7 @@ BOOL ToolBox::ImplDrawNativeBackground( ToolBox* pThis, const Region & ) { // use NWF Point aPt; - Region aCtrlRegion( Rectangle( aPt, pThis->GetOutputSizePixel() ) ); + Rectangle aCtrlRegion( aPt, pThis->GetOutputSizePixel() ); ControlState nState = CTRL_STATE_ENABLED; return pThis->DrawNativeControl( CTRL_TOOLBAR, pThis->mbHorz ? PART_DRAW_BACKGROUND_HORZ : PART_DRAW_BACKGROUND_VERT, @@ -1918,9 +1916,9 @@ BOOL ToolBox::ImplCalcItem() // determine minimum size necessary in NWF { Rectangle aRect( Point( 0, 0 ), Size( nMinWidth, nMinHeight ) ); - Region aReg = aRect; + Rectangle aReg( aRect ); ImplControlValue aVal; - Region aNativeBounds, aNativeContent; + Rectangle aNativeBounds, aNativeContent; if( IsNativeControlSupported( CTRL_TOOLBAR, PART_BUTTON ) ) { if( GetNativeControlRegion( CTRL_TOOLBAR, PART_BUTTON, @@ -1929,7 +1927,7 @@ BOOL ToolBox::ImplCalcItem() aVal, OUString(), aNativeBounds, aNativeContent ) ) { - aRect = aNativeBounds.GetBoundRect(); + aRect = aNativeBounds; if( aRect.GetWidth() > nMinWidth ) nMinWidth = aRect.GetWidth(); if( aRect.GetHeight() > nMinHeight ) @@ -1954,7 +1952,7 @@ BOOL ToolBox::ImplCalcItem() aVal, OUString(), aNativeBounds, aNativeContent ) ) { - aRect = aNativeBounds.GetBoundRect(); + aRect = aNativeBounds; if( aRect.GetHeight() > mnWinHeight ) mnWinHeight = aRect.GetHeight(); } @@ -1966,7 +1964,7 @@ BOOL ToolBox::ImplCalcItem() aVal, OUString(), aNativeBounds, aNativeContent ) ) { - aRect = aNativeBounds.GetBoundRect(); + aRect = aNativeBounds; if( aRect.GetHeight() > mnWinHeight ) mnWinHeight = aRect.GetHeight(); } @@ -1978,7 +1976,7 @@ BOOL ToolBox::ImplCalcItem() aVal, OUString(), aNativeBounds, aNativeContent ) ) { - aRect = aNativeBounds.GetBoundRect(); + aRect = aNativeBounds; if( aRect.GetHeight() > mnWinHeight ) mnWinHeight = aRect.GetHeight(); } @@ -3418,7 +3416,6 @@ static void ImplDrawButton( ToolBox* pThis, const Rectangle &rRect, USHORT highl if( !bIsWindow && pThis->IsNativeControlSupported( CTRL_TOOLBAR, PART_BUTTON ) ) { ImplControlValue aControlValue; - Region aCtrlRegion( rRect ); ControlState nState = 0; if ( highlight == 1 ) nState |= CTRL_STATE_PRESSED; @@ -3429,7 +3426,7 @@ static void ImplDrawButton( ToolBox* pThis, const Rectangle &rRect, USHORT highl bNativeOk = pThis->DrawNativeControl( CTRL_TOOLBAR, PART_BUTTON, - aCtrlRegion, nState, aControlValue, rtl::OUString() ); + rRect, nState, aControlValue, rtl::OUString() ); } if( !bNativeOk ) diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx index ebeb5c94d68a..35641ab8d6f9 100644 --- a/vcl/source/window/window.cxx +++ b/vcl/source/window/window.cxx @@ -243,18 +243,17 @@ void Window::ImplInitAppFontData( Window* pWindow ) // of control sizes, if yes, make app font scalings larger // so dialog positioning is not completely off ImplControlValue aControlValue; - Region aCtrlRegion( (const Rectangle&)Rectangle( Point(), Size( nTextWidth < 10 ? 10 : nTextWidth, nTextHeight < 10 ? 10 : nTextHeight ) ) ); - Region aBoundingRgn( aCtrlRegion ); - Region aContentRgn( aCtrlRegion ); + Rectangle aCtrlRegion( Point(), Size( nTextWidth < 10 ? 10 : nTextWidth, nTextHeight < 10 ? 10 : nTextHeight ) ); + Rectangle aBoundingRgn( aCtrlRegion ); + Rectangle aContentRgn( aCtrlRegion ); if( pWindow->GetNativeControlRegion( CTRL_EDITBOX, PART_ENTIRE_CONTROL, aCtrlRegion, CTRL_STATE_ENABLED, aControlValue, rtl::OUString(), aBoundingRgn, aContentRgn ) ) { - Rectangle aContentRect( aContentRgn.GetBoundRect() ); // comment: the magical +6 is for the extra border in bordered // (which is the standard) edit fields - if( aContentRect.GetHeight() - nTextHeight > (nTextHeight+4)/4 ) - pSVData->maGDIData.mnAppFontY = (aContentRect.GetHeight()-4) * 10; + if( aContentRgn.GetHeight() - nTextHeight > (nTextHeight+4)/4 ) + pSVData->maGDIData.mnAppFontY = (aContentRgn.GetHeight()-4) * 10; } } diff --git a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx index cdc72485ae6c..9d3ce6b137cd 100644 --- a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx +++ b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx @@ -617,7 +617,7 @@ BOOL GtkSalGraphics::IsNativeControlSupported( ControlType nType, ControlPart nP */ BOOL GtkSalGraphics::hitTestNativeControl( ControlType nType, ControlPart nPart, - const Region& rControlRegion, + const Rectangle& rControlRegion, const Point& aPos, BOOL& rIsInside ) { @@ -654,8 +654,8 @@ BOOL GtkSalGraphics::hitTestNativeControl( ControlType nType, else if ( nPart == PART_BUTTON_RIGHT ) nCounterPart = PART_BUTTON_LEFT; - aBackward = NWGetScrollButtonRect( m_nScreen, nPart, rControlRegion.GetBoundRect() ); - aForward = NWGetScrollButtonRect( m_nScreen, nCounterPart, rControlRegion.GetBoundRect() ); + aBackward = NWGetScrollButtonRect( m_nScreen, nPart, rControlRegion ); + aForward = NWGetScrollButtonRect( m_nScreen, nCounterPart, rControlRegion ); if ( has_backward && has_forward2 ) { @@ -727,7 +727,7 @@ BOOL GtkSalGraphics::hitTestNativeControl( ControlType nType, */ BOOL GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, - const Region& rControlRegion, + const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const OUString& rCaption ) @@ -753,7 +753,7 @@ BOOL GtkSalGraphics::drawNativeControl( ControlType nType, GtkSalGraphics::bThemeChanged = FALSE; } - Rectangle aCtrlRect = rControlRegion.GetBoundRect(); + Rectangle aCtrlRect( rControlRegion ); Region aClipRegion( m_aClipRegion ); if( aClipRegion.IsNull() ) aClipRegion = aCtrlRect; @@ -897,7 +897,7 @@ BOOL GtkSalGraphics::drawNativeControl( ControlType nType, BOOL GtkSalGraphics::drawNativeMixedStateCheck( ControlType nType, ControlPart nPart, - const Region& rControlRegion, + const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const OUString& rCaption ) @@ -908,7 +908,7 @@ BOOL GtkSalGraphics::drawNativeMixedStateCheck( ControlType nType, bool bOldNeedPixmapPaint = bNeedPixmapPaint; bNeedPixmapPaint = true; - Rectangle aCtrlRect = rControlRegion.GetBoundRect(); + Rectangle aCtrlRect = rControlRegion; BOOL returnVal = FALSE; SelectFont(); @@ -956,7 +956,7 @@ BOOL GtkSalGraphics::drawNativeMixedStateCheck( ControlType nType, */ BOOL GtkSalGraphics::drawNativeControlText( ControlType, ControlPart, - const Region&, + const Rectangle&, ControlState, const ImplControlValue&, const OUString& ) @@ -980,20 +980,20 @@ BOOL GtkSalGraphics::drawNativeControlText( ControlType, */ BOOL GtkSalGraphics::getNativeControlRegion( ControlType nType, ControlPart nPart, - const Region& rControlRegion, + const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const OUString& rCaption, - Region &rNativeBoundingRegion, - Region &rNativeContentRegion ) + Rectangle &rNativeBoundingRegion, + Rectangle &rNativeContentRegion ) { BOOL returnVal = FALSE; if ( (nType==CTRL_PUSHBUTTON) && (nPart==PART_ENTIRE_CONTROL) - && (rControlRegion.GetBoundRect().GetWidth() > 16) - && (rControlRegion.GetBoundRect().GetHeight() > 16) ) + && (rControlRegion.GetWidth() > 16) + && (rControlRegion.GetHeight() > 16) ) { - rNativeBoundingRegion = NWGetButtonArea( m_nScreen, nType, nPart, rControlRegion.GetBoundRect(), + rNativeBoundingRegion = NWGetButtonArea( m_nScreen, nType, nPart, rControlRegion, nState, aValue, rCaption ); rNativeContentRegion = rControlRegion; @@ -1001,7 +1001,7 @@ BOOL GtkSalGraphics::getNativeControlRegion( ControlType nType, } if ( (nType==CTRL_COMBOBOX) && ((nPart==PART_BUTTON_DOWN) || (nPart==PART_SUB_EDIT)) ) { - rNativeBoundingRegion = NWGetComboBoxButtonRect( m_nScreen, nType, nPart, rControlRegion.GetBoundRect(), nState, + rNativeBoundingRegion = NWGetComboBoxButtonRect( m_nScreen, nType, nPart, rControlRegion, nState, aValue, rCaption ); rNativeContentRegion = rNativeBoundingRegion; @@ -1010,7 +1010,7 @@ BOOL GtkSalGraphics::getNativeControlRegion( ControlType nType, if ( (nType==CTRL_SPINBOX) && ((nPart==PART_BUTTON_UP) || (nPart==PART_BUTTON_DOWN) || (nPart==PART_SUB_EDIT)) ) { - rNativeBoundingRegion = NWGetSpinButtonRect( m_nScreen, nType, nPart, rControlRegion.GetBoundRect(), nState, + rNativeBoundingRegion = NWGetSpinButtonRect( m_nScreen, nType, nPart, rControlRegion, nState, aValue, rCaption ); rNativeContentRegion = rNativeBoundingRegion; @@ -1018,7 +1018,7 @@ BOOL GtkSalGraphics::getNativeControlRegion( ControlType nType, } if ( (nType==CTRL_LISTBOX) && ((nPart==PART_BUTTON_DOWN) || (nPart==PART_SUB_EDIT)) ) { - rNativeBoundingRegion = NWGetListBoxButtonRect( m_nScreen, nType, nPart, rControlRegion.GetBoundRect(), nState, + rNativeBoundingRegion = NWGetListBoxButtonRect( m_nScreen, nType, nPart, rControlRegion, nState, aValue, rCaption ); rNativeContentRegion = rNativeBoundingRegion; @@ -1032,14 +1032,14 @@ BOOL GtkSalGraphics::getNativeControlRegion( ControlType nType, (nPart==PART_BUTTON) )) { - rNativeBoundingRegion = NWGetToolbarRect( m_nScreen, nType, nPart, rControlRegion.GetBoundRect(), nState, aValue, rCaption ); + rNativeBoundingRegion = NWGetToolbarRect( m_nScreen, nType, nPart, rControlRegion, nState, aValue, rCaption ); rNativeContentRegion = rNativeBoundingRegion; returnVal = TRUE; } if ( (nType==CTRL_SCROLLBAR) && ((nPart==PART_BUTTON_LEFT) || (nPart==PART_BUTTON_RIGHT) || (nPart==PART_BUTTON_UP) || (nPart==PART_BUTTON_DOWN) ) ) { - rNativeBoundingRegion = NWGetScrollButtonRect( m_nScreen, nPart, rControlRegion.GetBoundRect() ); + rNativeBoundingRegion = NWGetScrollButtonRect( m_nScreen, nPart, rControlRegion ); rNativeContentRegion = rNativeBoundingRegion; returnVal = TRUE; @@ -1049,10 +1049,10 @@ BOOL GtkSalGraphics::getNativeControlRegion( ControlType nType, NWEnsureGTKMenubar( m_nScreen ); GtkRequisition aReq; gtk_widget_size_request( gWidgetData[m_nScreen].gMenubarWidget, &aReq ); - Rectangle aMenuBarRect = rControlRegion.GetBoundRect(); + Rectangle aMenuBarRect = rControlRegion; aMenuBarRect = Rectangle( aMenuBarRect.TopLeft(), Size( aMenuBarRect.GetWidth(), aReq.height+1 ) ); - rNativeBoundingRegion = Region( aMenuBarRect ); + rNativeBoundingRegion = aMenuBarRect; rNativeContentRegion = rNativeBoundingRegion; returnVal = TRUE; } @@ -1071,9 +1071,9 @@ BOOL GtkSalGraphics::getNativeControlRegion( ControlType nType, (char *)NULL ); rNativeBoundingRegion = rControlRegion; Rectangle aIndicatorRect( Point( 0, - (rControlRegion.GetBoundRect().GetHeight()-indicator_size)/2), + (rControlRegion.GetHeight()-indicator_size)/2), Size( indicator_size, indicator_size ) ); - rNativeContentRegion = Region( aIndicatorRect ); + rNativeContentRegion = aIndicatorRect; returnVal = TRUE; } } @@ -1090,9 +1090,9 @@ BOOL GtkSalGraphics::getNativeControlRegion( ControlType nType, indicator_size += 2*indicator_spacing; // guess overpaint of theme rNativeBoundingRegion = rControlRegion; Rectangle aIndicatorRect( Point( 0, - (rControlRegion.GetBoundRect().GetHeight()-indicator_size)/2), + (rControlRegion.GetHeight()-indicator_size)/2), Size( indicator_size, indicator_size ) ); - rNativeContentRegion = Region( aIndicatorRect ); + rNativeContentRegion = aIndicatorRect; returnVal = TRUE; } if( (nType == CTRL_EDITBOX || nType == CTRL_SPINBOX) && nPart == PART_ENTIRE_CONTROL ) @@ -1101,10 +1101,10 @@ BOOL GtkSalGraphics::getNativeControlRegion( ControlType nType, GtkWidget* widget = gWidgetData[m_nScreen].gEditBoxWidget; GtkRequisition aReq; gtk_widget_size_request( widget, &aReq ); - Rectangle aEditRect = rControlRegion.GetBoundRect(); + Rectangle aEditRect = rControlRegion; aEditRect = Rectangle( aEditRect.TopLeft(), Size( aEditRect.GetWidth(), aReq.height+1 ) ); - rNativeBoundingRegion = Region( aEditRect ); + rNativeBoundingRegion = aEditRect; rNativeContentRegion = rNativeBoundingRegion; returnVal = TRUE; } @@ -1118,7 +1118,7 @@ BOOL GtkSalGraphics::getNativeControlRegion( ControlType nType, "slider-width", &slider_width, "slider-length", &slider_length, (char *)NULL); - Rectangle aRect( rControlRegion.GetBoundRect() ); + Rectangle aRect( rControlRegion ); if( nPart == PART_THUMB_HORZ ) { aRect.Right() = aRect.Left() + slider_length - 1; @@ -1129,7 +1129,7 @@ BOOL GtkSalGraphics::getNativeControlRegion( ControlType nType, aRect.Bottom() = aRect.Top() + slider_length - 1; aRect.Right() = aRect.Left() + slider_width - 1; } - rNativeBoundingRegion = rNativeContentRegion = Region( aRect ); + rNativeBoundingRegion = rNativeContentRegion = aRect; returnVal = TRUE; } @@ -1432,7 +1432,8 @@ BOOL GtkSalGraphics::NWPaintGTKScrollbar( ControlType, ControlPart nPart, const ImplControlValue& aValue, const OUString& ) { - ScrollbarValue* pScrollbarVal = (ScrollbarValue *)(aValue.getOptionalVal()); + OSL_ASSERT( aValue.getType() == CTRL_SCROLLBAR ); + const ScrollbarValue* pScrollbarVal = static_cast<const ScrollbarValue *>(&aValue); GdkPixmap* pixmap = NULL; Rectangle pixmapRect, scrollbarRect; GtkStateType stateType; @@ -1979,7 +1980,7 @@ BOOL GtkSalGraphics::NWPaintGTKSpinBox( ControlType nType, ControlPart nPart, Rectangle pixmapRect; GtkStateType stateType; GtkShadowType shadowType; - SpinbuttonValue * pSpinVal = (SpinbuttonValue *)(aValue.getOptionalVal()); + const SpinbuttonValue * pSpinVal = (aValue.getType() == CTRL_SPINBUTTONS) ? static_cast<const SpinbuttonValue *>(&aValue) : NULL; Rectangle upBtnRect; ControlPart upBtnPart = PART_BUTTON_UP; ControlState upBtnState = CTRL_STATE_ENABLED; @@ -2290,10 +2291,11 @@ BOOL GtkSalGraphics::NWPaintGTKTabItem( ControlType nType, ControlPart, const ImplControlValue& aValue, const OUString& ) { + OSL_ASSERT( aValue.getType() == CTRL_TAB_ITEM ); GdkPixmap * pixmap; Rectangle pixmapRect; Rectangle tabRect; - TabitemValue * pTabitemValue = (TabitemValue *)(aValue.getOptionalVal()); + const TabitemValue * pTabitemValue = static_cast<const TabitemValue *>(&aValue); GtkStateType stateType; GtkShadowType shadowType; if( ! gWidgetData[ m_nScreen ].gCacheTabItems ) @@ -2571,9 +2573,9 @@ BOOL GtkSalGraphics::NWPaintGTKToolbar( gtk_handle_box_set_shadow_type( GTK_HANDLE_BOX(gWidgetData[m_nScreen].gHandleBoxWidget), shadowType ); // evaluate grip rect - ToolbarValue* pVal = (ToolbarValue*)aValue.getOptionalVal(); - if( pVal ) + if( aValue.getType() == CTRL_TOOLBAR ) { + const ToolbarValue* pVal = static_cast<const ToolbarValue*>(&aValue); g_x = pVal->maGripRect.Left(); g_y = pVal->maGripRect.Top(); g_w = pVal->maGripRect.GetWidth(); @@ -3044,20 +3046,19 @@ BOOL GtkSalGraphics::NWPaintGTKSlider( ControlState nState, const ImplControlValue& rValue, const OUString& ) { + OSL_ASSERT( rValue.getType() == CTRL_SLIDER ); NWEnsureGTKSlider( m_nScreen ); gint w, h; w = rControlRectangle.GetWidth(); h = rControlRectangle.GetHeight(); - SliderValue* pVal = (SliderValue*)rValue.getOptionalVal(); + const SliderValue* pVal = static_cast<const SliderValue*>(&rValue); GdkPixmap* pixmap = NWGetPixmapFromScreen( rControlRectangle ); if( ! pixmap ) return FALSE; - (void)pVal; - GdkDrawable* const &pixDrawable = GDK_DRAWABLE( pixmap ); GtkWidget* pWidget = (nPart == PART_TRACK_HORZ_AREA) ? GTK_WIDGET(gWidgetData[m_nScreen].gHScale) diff --git a/vcl/unx/inc/plugins/gtk/gtkgdi.hxx b/vcl/unx/inc/plugins/gtk/gtkgdi.hxx index 065b5435eeb0..7544a566d8ae 100644 --- a/vcl/unx/inc/plugins/gtk/gtkgdi.hxx +++ b/vcl/unx/inc/plugins/gtk/gtkgdi.hxx @@ -63,17 +63,17 @@ public: // native widget methods virtual BOOL IsNativeControlSupported( ControlType nType, ControlPart nPart ); - virtual BOOL hitTestNativeControl( ControlType nType, ControlPart nPart, const Region& rControlRegion, + virtual BOOL hitTestNativeControl( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, const Point& aPos, BOOL& rIsInside ); - virtual BOOL drawNativeControl( ControlType nType, ControlPart nPart, const Region& rControlRegion, + virtual BOOL drawNativeControl( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const rtl::OUString& rCaption ); - virtual BOOL drawNativeControlText( ControlType nType, ControlPart nPart, const Region& rControlRegion, + virtual BOOL drawNativeControlText( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const rtl::OUString& rCaption ); - virtual BOOL getNativeControlRegion( ControlType nType, ControlPart nPart, const Region& rControlRegion, ControlState nState, + virtual BOOL getNativeControlRegion( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const rtl::OUString& rCaption, - Region &rNativeBoundingRegion, Region &rNativeContentRegion ); + Rectangle &rNativeBoundingRegion, Rectangle &rNativeContentRegion ); //helper methods for frame's UpdateSettings void updateSettings( AllSettings& rSettings ); @@ -179,7 +179,7 @@ protected: ControlState nState, const ImplControlValue& aValue, const OUString& rCaption ); - BOOL drawNativeMixedStateCheck( ControlType nType, ControlPart nPart, const Region& rControlRegion, + BOOL drawNativeMixedStateCheck( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const rtl::OUString& rCaption ); }; diff --git a/vcl/unx/inc/salframe.h b/vcl/unx/inc/salframe.h index 6f962c9a13b3..ed173e61fe61 100644 --- a/vcl/unx/inc/salframe.h +++ b/vcl/unx/inc/salframe.h @@ -108,6 +108,8 @@ class VCL_DLLPUBLIC X11SalFrame : public SalFrame bool m_bXEmbed; int nVisibility_; int m_nWorkArea; + bool m_bSetFocusOnMap; + int nScreenSaversTimeout_; Rectangle maPaintRegion; diff --git a/vcl/unx/kde/salnativewidgets-kde.cxx b/vcl/unx/kde/salnativewidgets-kde.cxx index 3adc9f5c679a..29d79f88ffb3 100644 --- a/vcl/unx/kde/salnativewidgets-kde.cxx +++ b/vcl/unx/kde/salnativewidgets-kde.cxx @@ -255,19 +255,19 @@ class WidgetPainter @return valid push button. */ - QPushButton *pushButton( const Region& rControlRegion, BOOL bDefault ); + QPushButton *pushButton( const Rectangle& rControlRegion, BOOL bDefault ); /** 'Get' method for radio button. @see pushButton() */ - QRadioButton *radioButton( const Region& rControlRegion ); + QRadioButton *radioButton( const Rectangle& rControlRegion ); /** 'Get' method for check box. @see pushButton() */ - QCheckBox *checkBox( const Region& rControlRegion ); + QCheckBox *checkBox( const Rectangle& rControlRegion ); /** 'Get' method for combo box. @@ -276,74 +276,74 @@ class WidgetPainter @see pushButton(), m_pEditableComboBox */ - QComboBox *comboBox( const Region& rControlRegion, BOOL bEditable ); + QComboBox *comboBox( const Rectangle& rControlRegion, BOOL bEditable ); /** 'Get' method for line edit box. @see pushButton() */ - QLineEdit *lineEdit( const Region& rControlRegion ); + QLineEdit *lineEdit( const Rectangle& rControlRegion ); /** 'Get' method for spin box. @see pushButton() */ - QSpinWidget *spinWidget( const Region& rControlRegion ); + QSpinWidget *spinWidget( const Rectangle& rControlRegion ); /** 'Get' method for tab bar. @see pushButton() */ - QTabBar *tabBar( const Region& rControlRegion ); + QTabBar *tabBar( const Rectangle& rControlRegion ); /** 'Get' method for tab widget. @see pushButton() */ - QTabWidget *tabWidget( const Region& rControlRegion ); + QTabWidget *tabWidget( const Rectangle& rControlRegion ); /** 'Get' method for list view. @see pushButton() */ - QListView *listView( const Region& rControlRegion ); + QListView *listView( const Rectangle& rControlRegion ); /** 'Get' method for scroll bar. @see pushButton() */ - QScrollBar *scrollBar( const Region& rControlRegion, + QScrollBar *scrollBar( const Rectangle& rControlRegion, BOOL bHorizontal, const ImplControlValue& aValue ); /** 'Get' method for tool bar. @see pushButton() */ - QToolBar *toolBar( const Region& rControlRegion, BOOL bHorizontal ); + QToolBar *toolBar( const Rectangle& rControlRegion, BOOL bHorizontal ); /** 'Get' method for tool button. @see pushButton() */ - QToolButton *toolButton( const Region& rControlRegion ); + QToolButton *toolButton( const Rectangle& rControlRegion ); /** 'Get' method for menu bar. @see pushButton() */ - QMenuBar *menuBar( const Region& rControlRegion ); + QMenuBar *menuBar( const Rectangle& rControlRegion ); /** 'Get' method for popup menu. @see pushButton() */ - QPopupMenu *popupMenu( const Region& rControlRegion ); + QPopupMenu *popupMenu( const Rectangle& rControlRegion ); /** 'Get' method for progress bar @see pushButton() */ - QProgressBar *progressBar( const Region& rControlRegion ); + QProgressBar *progressBar( const Rectangle& rControlRegion ); // TODO other widgets @@ -363,7 +363,7 @@ class WidgetPainter QStyle::SFlags vclStateValue2SFlags( ControlState nState, const ImplControlValue& aValue ); public: - /** Convert VCL Region to QRect. + /** Convert VCL Rectangle to QRect. @param rControlRegion The region to convert. @@ -371,7 +371,7 @@ class WidgetPainter @return The bounding box of the region. */ - static QRect region2QRect( const Region& rControlRegion ); + static QRect region2QRect( const Rectangle& rControlRegion ); }; WidgetPainter::WidgetPainter( void ) @@ -525,7 +525,7 @@ BOOL WidgetPainter::drawStyledWidget( QWidget *pWidget, } else if ( strcmp( "QSpinWidget", pClassName ) == 0 ) { - SpinbuttonValue *pValue = static_cast<SpinbuttonValue *> ( aValue.getOptionalVal() ); + const SpinbuttonValue *pValue = static_cast<const SpinbuttonValue *> ( &aValue ); // Is any of the buttons pressed? QStyle::SCFlags eActive = QStyle::SC_None; @@ -576,7 +576,7 @@ BOOL WidgetPainter::drawStyledWidget( QWidget *pWidget, } else if ( strcmp( "QTabBar", pClassName ) == 0 ) { - TabitemValue *pValue = static_cast<TabitemValue *> ( aValue.getOptionalVal() ); + const TabitemValue *pValue = static_cast<const TabitemValue *> ( &aValue ); QTab *pTab = NULL; if ( pValue ) @@ -614,7 +614,7 @@ BOOL WidgetPainter::drawStyledWidget( QWidget *pWidget, } else if ( strcmp( "QScrollBar", pClassName ) == 0 ) { - ScrollbarValue *pValue = static_cast<ScrollbarValue *> ( aValue.getOptionalVal() ); + const ScrollbarValue *pValue = static_cast<const ScrollbarValue *> ( &aValue ); QStyle::SCFlags eActive = QStyle::SC_None; if ( pValue ) @@ -695,7 +695,7 @@ BOOL WidgetPainter::drawStyledWidget( QWidget *pWidget, if ( nPart == PART_THUMB_HORZ || nPart == PART_THUMB_VERT ) { - ToolbarValue *pValue = static_cast< ToolbarValue * >( aValue.getOptionalVal() ); + const ToolbarValue *pValue = static_cast< const ToolbarValue * >( &aValue ); QRect qThumbRect = region2QRect( pValue->maGripRect ); qThumbRect.moveBy( -qWidgetPos.x(), -qWidgetPos.y() ); @@ -795,7 +795,7 @@ BOOL WidgetPainter::drawStyledWidget( QWidget *pWidget, return TRUE; } -QPushButton *WidgetPainter::pushButton( const Region& rControlRegion, +QPushButton *WidgetPainter::pushButton( const Rectangle& rControlRegion, BOOL bDefault ) { if ( !m_pPushButton ) @@ -832,7 +832,7 @@ QPushButton *WidgetPainter::pushButton( const Region& rControlRegion, return m_pPushButton; } -QRadioButton *WidgetPainter::radioButton( const Region& rControlRegion ) +QRadioButton *WidgetPainter::radioButton( const Rectangle& rControlRegion ) { if ( !m_pRadioButton ) m_pRadioButton = new QRadioButton( NULL, "radio_button" ); @@ -861,7 +861,7 @@ QRadioButton *WidgetPainter::radioButton( const Region& rControlRegion ) return m_pRadioButton; } -QCheckBox *WidgetPainter::checkBox( const Region& rControlRegion ) +QCheckBox *WidgetPainter::checkBox( const Rectangle& rControlRegion ) { if ( !m_pCheckBox ) m_pCheckBox = new QCheckBox( NULL, "check_box" ); @@ -890,7 +890,7 @@ QCheckBox *WidgetPainter::checkBox( const Region& rControlRegion ) return m_pCheckBox; } -QComboBox *WidgetPainter::comboBox( const Region& rControlRegion, +QComboBox *WidgetPainter::comboBox( const Rectangle& rControlRegion, BOOL bEditable ) { QComboBox *pComboBox = NULL; @@ -915,7 +915,7 @@ QComboBox *WidgetPainter::comboBox( const Region& rControlRegion, return pComboBox; } -QLineEdit *WidgetPainter::lineEdit( const Region& rControlRegion ) +QLineEdit *WidgetPainter::lineEdit( const Rectangle& rControlRegion ) { if ( !m_pLineEdit ) m_pLineEdit = new QLineEdit( NULL, "line_edit" ); @@ -928,7 +928,7 @@ QLineEdit *WidgetPainter::lineEdit( const Region& rControlRegion ) return m_pLineEdit; } -QSpinWidget *WidgetPainter::spinWidget( const Region& rControlRegion ) +QSpinWidget *WidgetPainter::spinWidget( const Rectangle& rControlRegion ) { if ( !m_pSpinWidget ) { @@ -947,7 +947,7 @@ QSpinWidget *WidgetPainter::spinWidget( const Region& rControlRegion ) return m_pSpinWidget; } -QTabBar *WidgetPainter::tabBar( const Region& rControlRegion ) +QTabBar *WidgetPainter::tabBar( const Rectangle& rControlRegion ) { if ( !m_pTabBar ) { @@ -976,7 +976,7 @@ QTabBar *WidgetPainter::tabBar( const Region& rControlRegion ) return m_pTabBar; } -QTabWidget *WidgetPainter::tabWidget( const Region& rControlRegion ) +QTabWidget *WidgetPainter::tabWidget( const Rectangle& rControlRegion ) { if ( !m_pTabWidget ) m_pTabWidget = new QTabWidget( NULL, "tab_widget" ); @@ -990,7 +990,7 @@ QTabWidget *WidgetPainter::tabWidget( const Region& rControlRegion ) return m_pTabWidget; } -QListView *WidgetPainter::listView( const Region& rControlRegion ) +QListView *WidgetPainter::listView( const Rectangle& rControlRegion ) { if ( !m_pListView ) m_pListView = new QListView( NULL, "list_view" ); @@ -1003,7 +1003,7 @@ QListView *WidgetPainter::listView( const Region& rControlRegion ) return m_pListView; } -QScrollBar *WidgetPainter::scrollBar( const Region& rControlRegion, +QScrollBar *WidgetPainter::scrollBar( const Rectangle& rControlRegion, BOOL bHorizontal, const ImplControlValue& aValue ) { if ( !m_pScrollBar ) @@ -1019,7 +1019,7 @@ QScrollBar *WidgetPainter::scrollBar( const Region& rControlRegion, m_pScrollBar->resize( qRect.size() ); m_pScrollBar->setOrientation( bHorizontal? Qt::Horizontal: Qt::Vertical ); - ScrollbarValue *pValue = static_cast<ScrollbarValue *> ( aValue.getOptionalVal() ); + const ScrollbarValue *pValue = static_cast<const ScrollbarValue *> ( &aValue ); if ( pValue ) { m_pScrollBar->setMinValue( pValue->mnMin ); @@ -1031,7 +1031,7 @@ QScrollBar *WidgetPainter::scrollBar( const Region& rControlRegion, return m_pScrollBar; } -QToolBar *WidgetPainter::toolBar( const Region& rControlRegion, BOOL bHorizontal ) +QToolBar *WidgetPainter::toolBar( const Rectangle& rControlRegion, BOOL bHorizontal ) { if ( !m_pMainWindow ) m_pMainWindow = new QMainWindow( NULL, "main_window" ); @@ -1064,7 +1064,7 @@ QToolBar *WidgetPainter::toolBar( const Region& rControlRegion, BOOL bHorizontal return pToolBar; } -QToolButton *WidgetPainter::toolButton( const Region& rControlRegion) +QToolButton *WidgetPainter::toolButton( const Rectangle& rControlRegion) { if ( !m_pToolButton ) m_pToolButton = new QToolButton( NULL, "tool_button" ); @@ -1077,7 +1077,7 @@ QToolButton *WidgetPainter::toolButton( const Region& rControlRegion) return m_pToolButton; } -QMenuBar *WidgetPainter::menuBar( const Region& rControlRegion) +QMenuBar *WidgetPainter::menuBar( const Rectangle& rControlRegion) { if ( !m_pMenuBar ) { @@ -1098,7 +1098,7 @@ QMenuBar *WidgetPainter::menuBar( const Region& rControlRegion) return m_pMenuBar; } -QPopupMenu *WidgetPainter::popupMenu( const Region& rControlRegion) +QPopupMenu *WidgetPainter::popupMenu( const Rectangle& rControlRegion) { if ( !m_pPopupMenu ) { @@ -1119,7 +1119,7 @@ QPopupMenu *WidgetPainter::popupMenu( const Region& rControlRegion) return m_pPopupMenu; } -QProgressBar *WidgetPainter::progressBar( const Region& rControlRegion ) +QProgressBar *WidgetPainter::progressBar( const Rectangle& rControlRegion ) { if ( !m_pProgressBar ) m_pProgressBar = new QProgressBar( NULL, "progress_bar" ); @@ -1155,12 +1155,10 @@ QStyle::SFlags WidgetPainter::vclStateValue2SFlags( ControlState nState, return nStyle; } -QRect WidgetPainter::region2QRect( const Region& rControlRegion ) +QRect WidgetPainter::region2QRect( const Rectangle& rControlRegion ) { - Rectangle aRect = rControlRegion.GetBoundRect(); - - return QRect( QPoint( aRect.Left(), aRect.Top() ), - QPoint( aRect.Right(), aRect.Bottom() ) ); + return QRect( QPoint( rControlRegion.Left(), rControlRegion.Top() ), + QPoint( rControlRegion.Right(), rControlRegion.Bottom() ) ); } /** Instance of WidgetPainter. @@ -1176,21 +1174,21 @@ class KDESalGraphics : public X11SalGraphics virtual ~KDESalGraphics() {} virtual BOOL IsNativeControlSupported( ControlType nType, ControlPart nPart ); virtual BOOL hitTestNativeControl( ControlType nType, ControlPart nPart, - const Region& rControlRegion, const Point& aPos, + const Rectangle& rControlRegion, const Point& aPos, BOOL& rIsInside ); virtual BOOL drawNativeControl( ControlType nType, ControlPart nPart, - const Region& rControlRegion, ControlState nState, + const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const OUString& aCaption ); virtual BOOL drawNativeControlText( ControlType nType, ControlPart nPart, - const Region& rControlRegion, ControlState nState, + const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const OUString& aCaption ); virtual BOOL getNativeControlRegion( ControlType nType, ControlPart nPart, - const Region& rControlRegion, ControlState nState, + const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const OUString& aCaption, - Region &rNativeBoundingRegion, Region &rNativeContentRegion ); + Rectangle &rNativeBoundingRegion, Rectangle &rNativeContentRegion ); }; /** What widgets can be drawn the native way. @@ -1241,13 +1239,13 @@ BOOL KDESalGraphics::IsNativeControlSupported( ControlType nType, ControlPart nP nType/nPart combination. */ BOOL KDESalGraphics::hitTestNativeControl( ControlType nType, ControlPart nPart, - const Region& rControlRegion, const Point& rPos, + const Rectangle& rControlRegion, const Point& rPos, BOOL& rIsInside ) { if ( nType == CTRL_SCROLLBAR ) { // make position relative to rControlRegion - Point aPos = rPos - rControlRegion.GetBoundRect().TopLeft(); + Point aPos = rPos - rControlRegion.TopLeft(); rIsInside = FALSE; BOOL bHorizontal = ( nPart == PART_BUTTON_LEFT || nPart == PART_BUTTON_RIGHT ); @@ -1348,7 +1346,7 @@ BOOL KDESalGraphics::hitTestNativeControl( ControlType nType, ControlPart nPart, A caption or title string (like button text etc.) */ BOOL KDESalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, - const Region& rControlRegion, ControlState nState, + const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const OUString& ) { @@ -1490,7 +1488,7 @@ BOOL KDESalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, A caption or title string (like button text etc.) */ BOOL KDESalGraphics::drawNativeControlText( ControlType, ControlPart, - const Region&, ControlState, + const Rectangle&, ControlState, const ImplControlValue&, const OUString& ) { @@ -1515,10 +1513,10 @@ BOOL KDESalGraphics::drawNativeControlText( ControlType, ControlPart, A caption or title string (like button text etc.) */ BOOL KDESalGraphics::getNativeControlRegion( ControlType nType, ControlPart nPart, - const Region& rControlRegion, ControlState nState, + const Rectangle& rControlRegion, ControlState nState, const ImplControlValue&, const OUString&, - Region &rNativeBoundingRegion, Region &rNativeContentRegion ) + Rectangle &rNativeBoundingRegion, Rectangle &rNativeContentRegion ) { BOOL bReturn = FALSE; QRect qBoundingRect = WidgetPainter::region2QRect( rControlRegion ); @@ -1697,12 +1695,12 @@ BOOL KDESalGraphics::getNativeControlRegion( ControlType nType, ControlPart nPar // Bounding region Point aBPoint( qBoundingRect.x(), qBoundingRect.y() ); Size aBSize( qBoundingRect.width(), qBoundingRect.height() ); - rNativeBoundingRegion = Region( Rectangle( aBPoint, aBSize ) ); + rNativeBoundingRegion = Rectangle( aBPoint, aBSize ); // Region of the content Point aPoint( qRect.x(), qRect.y() ); Size aSize( qRect.width(), qRect.height() ); - rNativeContentRegion = Region( Rectangle( aPoint, aSize ) ); + rNativeContentRegion = Rectangle( aPoint, aSize ); } return bReturn; diff --git a/vcl/unx/kde4/KDESalGraphics.cxx b/vcl/unx/kde4/KDESalGraphics.cxx index 5f8b5d2ae59e..2c04af384c51 100644 --- a/vcl/unx/kde4/KDESalGraphics.cxx +++ b/vcl/unx/kde4/KDESalGraphics.cxx @@ -80,15 +80,13 @@ QStyle::State vclStateValue2StateFlag( ControlState nControlState, } /** - Convert VCL Region to QRect. - @param rControlRegion The region to convert. - @return The bounding box of the region. + Convert VCL Rectangle to QRect. + @param rControlRegion The Rectangle to convert. + @return The matching QRect */ -QRect region2QRect( const Region& rControlRegion ) +QRect region2QRect( const Rectangle& rControlRegion ) { - Rectangle aRect = rControlRegion.GetBoundRect(); - - return QRect(aRect.Left(), aRect.Top(), aRect.GetWidth(), aRect.GetHeight()); + return QRect(rControlRegion.Left(), rControlRegion.Top(), rControlRegion.GetWidth(), rControlRegion.GetHeight()); } KDESalGraphics::KDESalGraphics() : @@ -157,7 +155,7 @@ BOOL KDESalGraphics::IsNativeControlSupported( ControlType type, ControlPart par } BOOL KDESalGraphics::hitTestNativeControl( ControlType, ControlPart, - const Region&, const Point&, + const Rectangle&, const Point&, BOOL& ) { return FALSE; @@ -195,6 +193,22 @@ namespace kapp->style()->drawComplexControl(element, option, &painter); } + int getFrameWidth() + { + static int s_nFrameWidth = -1; + if( s_nFrameWidth < 0 ) + { + // fill in a default + s_nFrameWidth = 2; + QFrame aFrame( NULL ); + aFrame.setFrameRect( QRect(0, 0, 100, 30) ); + aFrame.setFrameStyle( QFrame::StyledPanel | QFrame::Sunken ); + aFrame.ensurePolished(); + s_nFrameWidth = aFrame.frameWidth(); + } + return s_nFrameWidth; + } + void lcl_drawFrame(QStyle::PrimitiveElement element, QImage* image, QStyle::State state) { #if ( QT_VERSION >= QT_VERSION_CHECK( 4, 5, 0 ) ) @@ -219,7 +233,7 @@ namespace } BOOL KDESalGraphics::drawNativeControl( ControlType type, ControlPart part, - const Region& rControlRegion, ControlState nControlState, + const Rectangle& rControlRegion, ControlState nControlState, const ImplControlValue& value, const OUString& ) { @@ -236,7 +250,8 @@ BOOL KDESalGraphics::drawNativeControl( ControlType type, ControlPart part, type = CTRL_SPINBUTTONS; if( type == CTRL_SPINBUTTONS ) { - SpinbuttonValue* pSpinVal = (SpinbuttonValue *)(value.getOptionalVal()); + OSL_ASSERT( value.getType() != CTRL_SPINBUTTONS ); + const SpinbuttonValue* pSpinVal = static_cast<const SpinbuttonValue *>(&value); Rectangle aButtonRect( pSpinVal->maUpperRect); aButtonRect.Union( pSpinVal->maLowerRect );; widgetRect = QRect( aButtonRect.Left(), aButtonRect.Top(), @@ -409,7 +424,8 @@ BOOL KDESalGraphics::drawNativeControl( ControlType type, ControlPart part, if ((part == PART_DRAW_BACKGROUND_VERT) || (part == PART_DRAW_BACKGROUND_HORZ)) { QStyleOptionSlider option; - ScrollbarValue* sbVal = static_cast<ScrollbarValue *> ( value.getOptionalVal() ); + OSL_ASSERT( value.getType() == CTRL_SCROLLBAR ); + const ScrollbarValue* sbVal = static_cast<const ScrollbarValue *>(&value); //if the scroll bar is active (aka not degenrate...allow for hover events if (sbVal->mnVisibleSize < sbVal->mnMax) @@ -445,9 +461,9 @@ BOOL KDESalGraphics::drawNativeControl( ControlType type, ControlPart part, QStyleOptionSpinBox option; // determine active control - SpinbuttonValue* pSpinVal = (SpinbuttonValue *)(value.getOptionalVal()); - if( pSpinVal ) + if( value.getType() == CTRL_SPINBUTTONS ) { + const SpinbuttonValue* pSpinVal = static_cast<const SpinbuttonValue *>(&value); if( (pSpinVal->mnUpperState & CTRL_STATE_PRESSED) ) option.activeSubControls |= QStyle::SC_SpinBoxUp; if( (pSpinVal->mnLowerState & CTRL_STATE_PRESSED) ) @@ -480,18 +496,25 @@ BOOL KDESalGraphics::drawNativeControl( ControlType type, ControlPart part, lcl_drawFrame( QStyle::PE_Frame, m_image, vclStateValue2StateFlag(nControlState, value) ); - int size = kapp->style()->pixelMetric(QStyle::PM_LayoutLeftMargin); + // draw just the border, see http://qa.openoffice.org/issues/show_bug.cgi?id=107945 + int nFrameWidth = getFrameWidth(); pTempClipRegion = XCreateRegion(); XRectangle xRect = { widgetRect.left(), widgetRect.top(), widgetRect.width(), widgetRect.height() }; XUnionRectWithRegion( &xRect, pTempClipRegion, pTempClipRegion ); - XLIB_Region pSubtract = XCreateRegion(); - xRect.x += size; - xRect.y += size; - xRect.width -= 2* size; - xRect.height -= 2*size; - XUnionRectWithRegion( &xRect, pSubtract, pSubtract ); - XSubtractRegion( pTempClipRegion, pSubtract, pTempClipRegion ); - XDestroyRegion( pSubtract ); + xRect.x += nFrameWidth; + xRect.y += nFrameWidth; + + // do not crash for too small widgets, see http://qa.openoffice.org/issues/show_bug.cgi?id=112102 + if( xRect.width > 2*nFrameWidth && xRect.height > 2*nFrameWidth ) + { + xRect.width -= 2*nFrameWidth; + xRect.height -= 2*nFrameWidth; + + XLIB_Region pSubtract = XCreateRegion(); + XUnionRectWithRegion( &xRect, pSubtract, pSubtract ); + XSubtractRegion( pTempClipRegion, pSubtract, pTempClipRegion ); + XDestroyRegion( pSubtract ); + } } else if (type == CTRL_FIXEDBORDER) { @@ -513,7 +536,8 @@ BOOL KDESalGraphics::drawNativeControl( ControlType type, ControlPart part, } else if (type == CTRL_SLIDER && (part == PART_TRACK_HORZ_AREA || part == PART_TRACK_VERT_AREA)) { - SliderValue* slVal = static_cast<SliderValue *> ( value.getOptionalVal() ); + OSL_ASSERT( value.getType() == CTRL_SLIDER ); + const SliderValue* slVal = static_cast<const SliderValue *>(&value); QStyleOptionSlider option; option.rect = QRect(0, 0, widgetRect.width(), widgetRect.height()); @@ -566,10 +590,10 @@ BOOL KDESalGraphics::drawNativeControl( ControlType type, ControlPart part, } BOOL KDESalGraphics::getNativeControlRegion( ControlType type, ControlPart part, - const Region& controlRegion, ControlState controlState, + const Rectangle& controlRegion, ControlState controlState, const ImplControlValue& val, const OUString&, - Region &nativeBoundingRegion, Region &nativeContentRegion ) + Rectangle &nativeBoundingRegion, Rectangle &nativeContentRegion ) { bool retVal = false; @@ -744,14 +768,14 @@ BOOL KDESalGraphics::getNativeControlRegion( ControlType type, ControlPart part, { if( part == PART_BORDER ) { - int size = kapp->style()->pixelMetric(QStyle::PM_DefaultFrameWidth); + int nFrameWidth = getFrameWidth(); USHORT nStyle = val.getNumericVal(); if( nStyle & FRAME_DRAW_NODRAW ) { // in this case the question is: how thick would a frame be // see brdwin.cxx, decoview.cxx // most probably the behavior in decoview.cxx is wrong. - contentRect.adjust(size, size, -size, -size); + contentRect.adjust(nFrameWidth, nFrameWidth, -nFrameWidth, -nFrameWidth); } retVal = true; } @@ -869,12 +893,12 @@ BOOL KDESalGraphics::getNativeControlRegion( ControlType type, ControlPart part, // Bounding region Point aBPoint( boundingRect.x(), boundingRect.y() ); Size aBSize( boundingRect.width(), boundingRect.height() ); - nativeBoundingRegion = Region( Rectangle( aBPoint, aBSize ) ); + nativeBoundingRegion = Rectangle( aBPoint, aBSize ); // Region of the content Point aPoint( contentRect.x(), contentRect.y() ); Size aSize( contentRect.width(), contentRect.height() ); - nativeContentRegion = Region( Rectangle( aPoint, aSize ) ); + nativeContentRegion = Rectangle( aPoint, aSize ); } return retVal; diff --git a/vcl/unx/kde4/KDESalGraphics.hxx b/vcl/unx/kde4/KDESalGraphics.hxx index 5661d743e0cd..0bce1700f1fc 100644 --- a/vcl/unx/kde4/KDESalGraphics.hxx +++ b/vcl/unx/kde4/KDESalGraphics.hxx @@ -58,12 +58,12 @@ class KDESalGraphics : public X11SalGraphics type/part combination. */ virtual BOOL hitTestNativeControl( ControlType type, ControlPart part, - const Region& rControlRegion, const Point& aPos, + const Rectangle& rControlRegion, const Point& aPos, BOOL& rIsInside ); /** Draw the requested control described by part/nControlState. @param rControlRegion - The bounding region of the complete control in VCL frame coordinates. + The bounding Rectangle of the complete control in VCL frame coordinates. @param aValue An optional value (tristate/numerical/string). @@ -72,7 +72,7 @@ class KDESalGraphics : public X11SalGraphics A caption or title string (like button text etc.) */ virtual BOOL drawNativeControl( ControlType type, ControlPart part, - const Region& rControlRegion, ControlState nControlState, + const Rectangle& rControlRegion, ControlState nControlState, const ImplControlValue& aValue, const rtl::OUString& aCaption ); @@ -85,7 +85,7 @@ class KDESalGraphics : public X11SalGraphics @param aCaption A caption or title string (like button text etc.) */ virtual BOOL drawNativeControlText( ControlType, ControlPart, - const Region&, ControlState, + const Rectangle&, ControlState, const ImplControlValue&, const rtl::OUString& ) { return false; } /** Check if the bounding regions match. @@ -106,8 +106,8 @@ class KDESalGraphics : public X11SalGraphics A caption or title string (like button text etc.) */ virtual BOOL getNativeControlRegion( ControlType type, ControlPart part, - const Region& rControlRegion, ControlState nControlState, + const Rectangle& rControlRegion, ControlState nControlState, const ImplControlValue& aValue, const rtl::OUString& aCaption, - Region &rNativeBoundingRegion, Region &rNativeContentRegion ); + Rectangle &rNativeBoundingRegion, Rectangle &rNativeContentRegion ); };
\ No newline at end of file diff --git a/vcl/unx/source/app/saldisp.cxx b/vcl/unx/source/app/saldisp.cxx index aa2afab93657..13a0d1093c8e 100644 --- a/vcl/unx/source/app/saldisp.cxx +++ b/vcl/unx/source/app/saldisp.cxx @@ -59,9 +59,7 @@ #ifdef USE_XINERAMA #ifdef USE_XINERAMA_XORG -#if defined(X86) || defined(X86_64) #include <X11/extensions/Xinerama.h> -#endif #elif defined USE_XINERAMA_XSUN #if defined(SOLARIS) && defined(INTEL) // missing extension header in standard installation #define MAXFRAMEBUFFERS 16 @@ -2638,7 +2636,7 @@ void SalDisplay::InitXinerama() if( result > 0 && nFramebuffers > 1 ) { m_bXinerama = true; - m_aXineramaScreens = std::vector<Rectangle>( nFramebuffers ); + m_aXineramaScreens = std::vector<Rectangle>(); for( int i = 0; i < nFramebuffers; i++ ) addXineramaScreenUnique( pFramebuffers[i].x, pFramebuffers[i].y, @@ -2647,7 +2645,6 @@ void SalDisplay::InitXinerama() } } #elif defined(USE_XINERAMA_XORG) -#if defined( X86 ) || defined( X86_64 ) if( XineramaIsActive( pDisp_ ) ) { int nFramebuffers = 1; @@ -2670,7 +2667,6 @@ if( XineramaIsActive( pDisp_ ) ) } } #endif -#endif #if OSL_DEBUG_LEVEL > 1 if( m_bXinerama ) { diff --git a/vcl/unx/source/gdi/salprnpsp.cxx b/vcl/unx/source/gdi/salprnpsp.cxx index 90c6a196143e..8617bc4e5bfa 100644 --- a/vcl/unx/source/gdi/salprnpsp.cxx +++ b/vcl/unx/source/gdi/salprnpsp.cxx @@ -617,6 +617,7 @@ BOOL PspSalInfoPrinter::Setup( SalFrame* pFrame, ImplJobSetup* pJobSetup ) // copy everything to job setup copyJobDataToJobSetup( pJobSetup, aInfo ); + JobData::constructFromStreamBuffer( pJobSetup->mpDriverData, pJobSetup->mnDriverDataLen, m_aJobData ); return TRUE; } return FALSE; diff --git a/vcl/unx/source/window/salframe.cxx b/vcl/unx/source/window/salframe.cxx index 6d243e41db8c..b0248662a2a2 100644 --- a/vcl/unx/source/window/salframe.cxx +++ b/vcl/unx/source/window/salframe.cxx @@ -665,6 +665,7 @@ X11SalFrame::X11SalFrame( SalFrame *pParent, ULONG nSalFrameStyle, SystemParentD mhStackingWindow = None; mhForeignParent = None; mhBackgroundPixmap = None; + m_bSetFocusOnMap = false; pGraphics_ = NULL; pFreeGraphics_ = NULL; @@ -1226,14 +1227,11 @@ void X11SalFrame::Show( BOOL bVisible, BOOL bNoActivate ) } XLIB_Time nUserTime = 0; - if( ! bNoActivate && (nStyle_ & (SAL_FRAME_STYLE_OWNERDRAWDECORATION|SAL_FRAME_STYLE_TOOLWINDOW)) == 0 ) - { - if( GetDisplay()->getWMAdaptor()->getWindowManagerName().EqualsAscii("Metacity") ) - nUserTime = pDisplay_->GetLastUserEventTime( true ); - else - nUserTime = pDisplay_->GetLastUserEventTime(); - } + if( ! bNoActivate && (nStyle_ & (SAL_FRAME_STYLE_OWNERDRAWDECORATION)) == 0 ) + nUserTime = pDisplay_->GetLastUserEventTime( true ); GetDisplay()->getWMAdaptor()->setUserTime( this, nUserTime ); + if( ! bNoActivate && (nStyle_ & SAL_FRAME_STYLE_TOOLWINDOW) ) + m_bSetFocusOnMap = true; // actually map the window if( m_bXEmbed ) @@ -4172,6 +4170,7 @@ long X11SalFrame::Dispatch( XEvent *pEvent ) &aEvent ); } + bool bSetFocus = m_bSetFocusOnMap; /* #99570# another workaround for sawfish: if a transient window for the same parent is shown * sawfish does not set the focus to it. Applies only for click to focus mode. */ @@ -4181,7 +4180,7 @@ long X11SalFrame::Dispatch( XEvent *pEvent ) // since this will lead to a parent loose-focus, close status, // reget focus, open status, .... flicker loop if ( (I18NStatus::get().getStatusFrame() != this) ) - XSetInputFocus( GetXDisplay(), GetShellWindow(), RevertToParent, CurrentTime ); + bSetFocus = true; } /* @@ -4219,10 +4218,21 @@ long X11SalFrame::Dispatch( XEvent *pEvent ) mpParent->GetShellWindow(), RevertToParent, CurrentTime ); + bSetFocus = false; + } + + if( bSetFocus ) + { + XSetInputFocus( GetXDisplay(), + GetShellWindow(), + RevertToParent, + CurrentTime ); } + RestackChildren(); mbInShow = FALSE; + m_bSetFocusOnMap = false; } break; diff --git a/vcl/win/inc/salgdi.h b/vcl/win/inc/salgdi.h index b1bfcbee96f4..442b8bee1f15 100644..100755 --- a/vcl/win/inc/salgdi.h +++ b/vcl/win/inc/salgdi.h @@ -227,17 +227,17 @@ protected: virtual BOOL drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize ); // native widget rendering methods that require mirroring - virtual BOOL hitTestNativeControl( ControlType nType, ControlPart nPart, const Region& rControlRegion, + virtual BOOL hitTestNativeControl( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, const Point& aPos, BOOL& rIsInside ); - virtual BOOL drawNativeControl( ControlType nType, ControlPart nPart, const Region& rControlRegion, + virtual BOOL drawNativeControl( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const rtl::OUString& aCaption ); - virtual BOOL drawNativeControlText( ControlType nType, ControlPart nPart, const Region& rControlRegion, + virtual BOOL drawNativeControlText( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const rtl::OUString& aCaption ); - virtual BOOL getNativeControlRegion( ControlType nType, ControlPart nPart, const Region& rControlRegion, ControlState nState, + virtual BOOL getNativeControlRegion( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const rtl::OUString& aCaption, - Region &rNativeBoundingRegion, Region &rNativeContentRegion ); + Rectangle &rNativeBoundingRegion, Rectangle &rNativeContentRegion ); virtual bool drawAlphaBitmap( const SalTwoRect&, const SalBitmap& rSourceBitmap, diff --git a/vcl/win/source/gdi/salnativewidgets-luna.cxx b/vcl/win/source/gdi/salnativewidgets-luna.cxx index be5d7f8360bc..8197fb37cd6d 100644..100755 --- a/vcl/win/source/gdi/salnativewidgets-luna.cxx +++ b/vcl/win/source/gdi/salnativewidgets-luna.cxx @@ -317,7 +317,7 @@ BOOL WinSalGraphics::IsNativeControlSupported( ControlType nType, ControlPart nP */ BOOL WinSalGraphics::hitTestNativeControl( ControlType, ControlPart, - const Region&, + const Rectangle&, const Point&, BOOL& ) { @@ -553,9 +553,9 @@ BOOL ImplDrawNativeControl( HDC hDC, HTHEME hTheme, RECT rc, } if( nType == CTRL_SPINBUTTONS && nPart == PART_ALL_BUTTONS ) { - SpinbuttonValue *pValue = (SpinbuttonValue*) aValue.getOptionalVal(); - if( pValue ) + if( aValue.getType() == CTRL_SPINBUTTONS ) { + const SpinbuttonValue *pValue = static_cast<const SpinbuttonValue*>(&aValue); BOOL bOk = FALSE; RECT rect; @@ -578,9 +578,9 @@ BOOL ImplDrawNativeControl( HDC hDC, HTHEME hTheme, RECT rc, //rc.bottom--; if( nPart == PART_ALL_BUTTONS ) { - SpinbuttonValue *pValue = (SpinbuttonValue*) aValue.getOptionalVal(); - if( pValue ) + if( aValue.getType() == CTRL_SPINBUTTONS ) { + const SpinbuttonValue *pValue = static_cast<const SpinbuttonValue*>(&aValue); BOOL bOk = FALSE; RECT rect; @@ -787,20 +787,19 @@ BOOL ImplDrawNativeControl( HDC hDC, HTHEME hTheme, RECT rc, iPart = TABP_TABITEMLEFTEDGE; rc.bottom--; - TabitemValue *pValue = (TabitemValue*) aValue.getOptionalVal(); - if( pValue ) + OSL_ASSERT( aValue.getType() == CTRL_TAB_ITEM ); + + const TabitemValue *pValue = static_cast<const TabitemValue*>(&aValue); + if( pValue->isBothAligned() ) { - if( pValue->isBothAligned() ) - { - iPart = TABP_TABITEMLEFTEDGE; - rc.right--; - } - else if( pValue->isLeftAligned() ) - iPart = TABP_TABITEMLEFTEDGE; - else if( pValue->isRightAligned() ) - iPart = TABP_TABITEMRIGHTEDGE; - else iPart = TABP_TABITEM; + iPart = TABP_TABITEMLEFTEDGE; + rc.right--; } + else if( pValue->isLeftAligned() ) + iPart = TABP_TABITEMLEFTEDGE; + else if( pValue->isRightAligned() ) + iPart = TABP_TABITEMRIGHTEDGE; + else iPart = TABP_TABITEM; if( !(nState & CTRL_STATE_ENABLED) ) iState = TILES_DISABLED; @@ -856,9 +855,12 @@ BOOL ImplDrawNativeControl( HDC hDC, HTHEME hTheme, RECT rc, } else if( nPart == PART_DRAW_BACKGROUND_HORZ || nPart == PART_DRAW_BACKGROUND_VERT ) { - ToolbarValue *pValue = (ToolbarValue*) aValue.getOptionalVal(); - if( pValue && pValue->mbIsTopDockingArea ) - rc.top = 0; // extend potential gradient to cover menu bar as well + if( aValue.getType() == CTRL_TOOLBAR ) + { + const ToolbarValue *pValue = static_cast<const ToolbarValue*>(&aValue); + if( pValue->mbIsTopDockingArea ) + rc.top = 0; // extend potential gradient to cover menu bar as well + } return ImplDrawTheme( hTheme, hDC, iPart, iState, rc, aCaption); } } @@ -868,9 +870,11 @@ BOOL ImplDrawNativeControl( HDC hDC, HTHEME hTheme, RECT rc, if( nPart != PART_ENTIRE_CONTROL ) return FALSE; - MenubarValue *pValue = (MenubarValue*) aValue.getOptionalVal(); - if( pValue ) + if( aValue.getType() == CTRL_MENUBAR ) + { + const MenubarValue *pValue = static_cast<const MenubarValue*>(&aValue); rc.bottom += pValue->maTopDockingAreaHeight; // extend potential gradient to cover docking area as well + } return ImplDrawTheme( hTheme, hDC, iPart, iState, rc, aCaption); } @@ -918,7 +922,8 @@ BOOL ImplDrawNativeControl( HDC hDC, HTHEME hTheme, RECT rc, ImplDrawTheme( hTheme, hDC, iPart, iState, aTRect, aCaption ); RECT aThumbRect; - SliderValue* pVal = (SliderValue*)aValue.getOptionalVal(); + OSL_ASSERT( aValue.getType() == CTRL_SLIDER ); + const SliderValue* pVal = static_cast<const SliderValue*>(&aValue); aThumbRect.left = pVal->maThumbRect.Left(); aThumbRect.top = pVal->maThumbRect.Top(); aThumbRect.right = pVal->maThumbRect.Right(); @@ -963,7 +968,7 @@ BOOL ImplDrawNativeControl( HDC hDC, HTHEME hTheme, RECT rc, */ BOOL WinSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, - const Region& rControlRegion, + const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const OUString& aCaption ) @@ -1043,7 +1048,7 @@ BOOL WinSalGraphics::drawNativeControl( ControlType nType, if( !hTheme ) return false; - Rectangle buttonRect = rControlRegion.GetBoundRect(); + Rectangle buttonRect = rControlRegion; RECT rc; rc.left = buttonRect.Left(); rc.right = buttonRect.Right()+1; @@ -1080,7 +1085,7 @@ BOOL WinSalGraphics::drawNativeControl( ControlType nType, */ BOOL WinSalGraphics::drawNativeControlText( ControlType, ControlPart, - const Region&, + const Rectangle&, ControlState, const ImplControlValue&, const OUString& ) @@ -1104,12 +1109,12 @@ BOOL WinSalGraphics::drawNativeControlText( ControlType, */ BOOL WinSalGraphics::getNativeControlRegion( ControlType nType, ControlPart nPart, - const Region& rControlRegion, + const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& rControlValue, const OUString&, - Region &rNativeBoundingRegion, - Region &rNativeContentRegion ) + Rectangle &rNativeBoundingRegion, + Rectangle &rNativeContentRegion ) { BOOL bRet = FALSE; @@ -1146,7 +1151,7 @@ BOOL WinSalGraphics::getNativeControlRegion( ControlType nType, if( hTheme ) { Rectangle aRect( ImplGetThemeRect( hTheme, hDC, TP_SPLITBUTTONDROPDOWN, - TS_HOT, rControlRegion.GetBoundRect() ) ); + TS_HOT, rControlRegion ) ); rNativeContentRegion = aRect; rNativeBoundingRegion = rNativeContentRegion; if( !rNativeContentRegion.IsEmpty() ) @@ -1160,7 +1165,7 @@ BOOL WinSalGraphics::getNativeControlRegion( ControlType nType, if( hTheme ) { Rectangle aRect( ImplGetThemeRect( hTheme, hDC, PP_BAR, - 0, rControlRegion.GetBoundRect() ) ); + 0, rControlRegion ) ); rNativeContentRegion = aRect; rNativeBoundingRegion = rNativeContentRegion; if( !rNativeContentRegion.IsEmpty() ) @@ -1172,12 +1177,9 @@ BOOL WinSalGraphics::getNativeControlRegion( ControlType nType, HTHEME hTheme = getThemeHandle( mhWnd, L"Combobox"); if( hTheme ) { - Rectangle aBoxRect( rControlRegion.GetBoundRect() ); + Rectangle aBoxRect( rControlRegion ); Rectangle aRect( ImplGetThemeRect( hTheme, hDC, CP_DROPDOWNBUTTON, CBXS_NORMAL, aBoxRect ) ); - Rectangle aBrdRect( ImplGetThemeRect( hTheme, hDC, CP_BORDER, - CBB_HOT, aBoxRect ) ); - aRect.Top() -= aBrdRect.GetHeight(); if( aRect.GetHeight() > aBoxRect.GetHeight() ) aBoxRect.Bottom() = aBoxRect.Top() + aRect.GetHeight(); if( aRect.GetWidth() > aBoxRect.GetWidth() ) @@ -1195,7 +1197,7 @@ BOOL WinSalGraphics::getNativeControlRegion( ControlType nType, if( hTheme ) { // get borderr size - Rectangle aBoxRect( rControlRegion.GetBoundRect() ); + Rectangle aBoxRect( rControlRegion ); Rectangle aRect( ImplGetThemeRect( hTheme, hDC, EP_BACKGROUNDWITHBORDER, EBWBS_HOT, aBoxRect ) ); // ad app font height @@ -1234,7 +1236,7 @@ BOOL WinSalGraphics::getNativeControlRegion( ControlType nType, if( nPart == PART_THUMB_HORZ ) { long nW = aThumbRect.GetWidth(); - Rectangle aRect( rControlRegion.GetBoundRect() ); + Rectangle aRect( rControlRegion ); aRect.Right() = aRect.Left() + nW - 1; rNativeContentRegion = aRect; rNativeBoundingRegion = rNativeContentRegion; @@ -1242,7 +1244,7 @@ BOOL WinSalGraphics::getNativeControlRegion( ControlType nType, else { long nH = aThumbRect.GetHeight(); - Rectangle aRect( rControlRegion.GetBoundRect() ); + Rectangle aRect( rControlRegion ); aRect.Bottom() = aRect.Top() + nH - 1; rNativeContentRegion = aRect; rNativeBoundingRegion = rNativeContentRegion; @@ -1253,30 +1255,30 @@ BOOL WinSalGraphics::getNativeControlRegion( ControlType nType, if ( ( nType == CTRL_TAB_ITEM ) && ( nPart == PART_ENTIRE_CONTROL ) ) { - Rectangle aControlRect( rControlRegion.GetBoundRect() ); + Rectangle aControlRect( rControlRegion ); rNativeContentRegion = aControlRect; --aControlRect.Bottom(); - TabitemValue *pValue = static_cast< TabitemValue* >( rControlValue.getOptionalVal() ); - if ( pValue ) + if( rControlValue.getType() == CTRL_TAB_ITEM ) { + const TabitemValue *pValue = static_cast<const TabitemValue*>(&rControlValue); if ( pValue->isBothAligned() ) --aControlRect.Right(); - } - if ( nState & CTRL_STATE_SELECTED ) - { - aControlRect.Left() -= 2; - if ( pValue && !pValue->isBothAligned() ) + if ( nState & CTRL_STATE_SELECTED ) { - if ( pValue->isLeftAligned() || pValue->isNotAligned() ) - aControlRect.Right() += 2; - if ( pValue->isRightAligned() ) - aControlRect.Right() += 1; + aControlRect.Left() -= 2; + if ( pValue && !pValue->isBothAligned() ) + { + if ( pValue->isLeftAligned() || pValue->isNotAligned() ) + aControlRect.Right() += 2; + if ( pValue->isRightAligned() ) + aControlRect.Right() += 1; + } + aControlRect.Top() -= 2; + aControlRect.Bottom() += 2; } - aControlRect.Top() -= 2; - aControlRect.Bottom() += 2; } rNativeBoundingRegion = aControlRect; bRet = TRUE; diff --git a/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx b/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx index fe95dc66a3bd..4fbcff0de0a7 100644 --- a/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx +++ b/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx @@ -153,6 +153,7 @@ OOXMLFastContextHandler::OOXMLFastContextHandler : cppu::WeakImplHelper1<com::sun::star::xml::sax::XFastContextHandler>(), mpParent(pContext), mId(0), + mnDefine(0), mnToken(OOXML_FAST_TOKENS_END), mpStream(NULL), mnTableDepth(0), diff --git a/xmloff/source/core/RDFaExportHelper.cxx b/xmloff/source/core/RDFaExportHelper.cxx index 593e2d1f29e6..f603d21258fd 100644 --- a/xmloff/source/core/RDFaExportHelper.cxx +++ b/xmloff/source/core/RDFaExportHelper.cxx @@ -37,6 +37,8 @@ #include <comphelper/stlunosequence.hxx> #include <comphelper/stl_types.hxx> +#include <com/sun/star/uri/XUriReference.hpp> +#include <com/sun/star/uri/XUriReferenceFactory.hpp> #include <com/sun/star/rdf/Statement.hpp> #include <com/sun/star/rdf/URIs.hpp> #include <com/sun/star/rdf/URI.hpp> @@ -85,6 +87,39 @@ makeCURIE(SvXMLExport * i_pExport, return buf.makeStringAndClear(); } +// #i112473# SvXMLExport::GetRelativeReference() not right for RDF on SaveAs +// because the URIs in the repository are not rewritten on SaveAs, the +// URI of the loaded document has to be used, not the URI of the target doc. +static ::rtl::OUString +getRelativeReference(SvXMLExport const& rExport, ::rtl::OUString const& rURI) +{ + uno::Reference< rdf::XURI > const xModelURI( + rExport.GetModel(), uno::UNO_QUERY_THROW ); + ::rtl::OUString const baseURI( xModelURI->getStringValue() ); + + uno::Reference<uno::XComponentContext> const xContext( + rExport.GetComponentContext()); + uno::Reference<lang::XMultiComponentFactory> const xServiceFactory( + xContext->getServiceManager(), uno::UNO_SET_THROW); + uno::Reference<uri::XUriReferenceFactory> const xUriFactory( + xServiceFactory->createInstanceWithContext( + ::rtl::OUString::createFromAscii( + "com.sun.star.uri.UriReferenceFactory"), xContext), + uno::UNO_QUERY_THROW); + + uno::Reference< uri::XUriReference > const xBaseURI( + xUriFactory->parse(baseURI), uno::UNO_SET_THROW ); + uno::Reference< uri::XUriReference > const xAbsoluteURI( + xUriFactory->parse(rURI), uno::UNO_SET_THROW ); + uno::Reference< uri::XUriReference > const xRelativeURI( + xUriFactory->makeRelative(xBaseURI, xAbsoluteURI, true, true, false), + uno::UNO_SET_THROW ); + ::rtl::OUString const relativeURI(xRelativeURI->getUriReference()); + + return relativeURI; +} + + //////////////////////////////////////////////////////////////////////////// RDFaExportHelper::RDFaExportHelper(SvXMLExport & i_rExport) @@ -145,7 +180,7 @@ RDFaExportHelper::AddRDFa( static const sal_Unicode s_OpenBracket ('['); static const sal_Unicode s_CloseBracket(']'); const ::rtl::OUString about( xSubjectURI.is() - ? m_rExport.GetRelativeReference(xSubjectURI->getStringValue()) + ? getRelativeReference(m_rExport, xSubjectURI->getStringValue()) : ::rtl::OUStringBuffer().append(s_OpenBracket).append( LookupBlankNode(xSubjectBNode)).append(s_CloseBracket) .makeStringAndClear() diff --git a/xmloff/source/text/XMLTextMarkImportContext.cxx b/xmloff/source/text/XMLTextMarkImportContext.cxx index af51f5f56d98..00cdce37f4d5 100644 --- a/xmloff/source/text/XMLTextMarkImportContext.cxx +++ b/xmloff/source/text/XMLTextMarkImportContext.cxx @@ -116,6 +116,7 @@ XMLTextMarkImportContext::XMLTextMarkImportContext( const OUString& rLocalName ) : SvXMLImportContext(rImport, nPrefix, rLocalName) , m_rHelper(rHlp) + , m_bHaveAbout(false) { } diff --git a/xmlsecurity/source/dialogs/resourcemanager.cxx b/xmlsecurity/source/dialogs/resourcemanager.cxx index bfc4cb92fd20..e41cf546f74f 100644 --- a/xmlsecurity/source/dialogs/resourcemanager.cxx +++ b/xmlsecurity/source/dialogs/resourcemanager.cxx @@ -149,7 +149,7 @@ namespace XmlSec */ #ifdef WNT vector< pair< OUString, OUString> > parseDN(const OUString& rRawString) - { +{ vector< pair<OUString, OUString> > retVal; bool bInEscape = false; bool bInValue = false; @@ -197,7 +197,7 @@ vector< pair< OUString, OUString> > parseDN(const OUString& rRawString) bInEscape = false; } } - else if (c == ',') + else if (c == ',' || c == '+') { //The comma separate the attribute value pairs. //If the comma is not part of a value (the value would then be enclosed in '"'), @@ -292,7 +292,7 @@ vector< pair< OUString, OUString> > parseDN(const OUString& rRawString) bInEscape = false; } } - else if (c == ',') + else if (c == ',' || c == '+') { //The comma separate the attribute value pairs. //If the comma is not part of a value (the value would then be enclosed in '"'), diff --git a/xmlsecurity/source/xmlsec/mscrypt/x509certificate_mscryptimpl.cxx b/xmlsecurity/source/xmlsec/mscrypt/x509certificate_mscryptimpl.cxx index 8f983dae05de..d5928b027075 100644 --- a/xmlsecurity/source/xmlsec/mscrypt/x509certificate_mscryptimpl.cxx +++ b/xmlsecurity/source/xmlsec/mscrypt/x509certificate_mscryptimpl.cxx @@ -107,7 +107,7 @@ findTypeInDN(const OUString& rRawString, const OUString& sTypeName) bInEscape = false; } } - else if (c == ',') + else if (c == ',' || c == '+') { //The comma separate the attribute value pairs. //If the comma is not part of a value (the value would then be enclosed in '"'), diff --git a/xmlsecurity/test_docs/certs/end_certs/User_32_Root_11.crt b/xmlsecurity/test_docs/certs/end_certs/User_32_Root_11.crt Binary files differnew file mode 100755 index 000000000000..dc28470c8b47 --- /dev/null +++ b/xmlsecurity/test_docs/certs/end_certs/User_32_Root_11.crt diff --git a/xmlsecurity/test_docs/certs/end_certs/User_33_Root_11.crt b/xmlsecurity/test_docs/certs/end_certs/User_33_Root_11.crt Binary files differnew file mode 100755 index 000000000000..df9d81d8d1a8 --- /dev/null +++ b/xmlsecurity/test_docs/certs/end_certs/User_33_Root_11.crt diff --git a/xmlsecurity/test_docs/certs/end_certs/User_34_Root_11.crt b/xmlsecurity/test_docs/certs/end_certs/User_34_Root_11.crt Binary files differnew file mode 100755 index 000000000000..018da383d7fa --- /dev/null +++ b/xmlsecurity/test_docs/certs/end_certs/User_34_Root_11.crt diff --git a/xmlsecurity/test_docs/certs/p12/Root_11.p12 b/xmlsecurity/test_docs/certs/p12/Root_11.p12 Binary files differnew file mode 100644 index 000000000000..7df592643ef7 --- /dev/null +++ b/xmlsecurity/test_docs/certs/p12/Root_11.p12 diff --git a/xmlsecurity/test_docs/certs/p12/User_32_Root_11.p12 b/xmlsecurity/test_docs/certs/p12/User_32_Root_11.p12 Binary files differnew file mode 100644 index 000000000000..17e22f7a5bec --- /dev/null +++ b/xmlsecurity/test_docs/certs/p12/User_32_Root_11.p12 diff --git a/xmlsecurity/test_docs/certs/p12/User_33_Root_11.p12 b/xmlsecurity/test_docs/certs/p12/User_33_Root_11.p12 Binary files differnew file mode 100644 index 000000000000..5982532a97d9 --- /dev/null +++ b/xmlsecurity/test_docs/certs/p12/User_33_Root_11.p12 diff --git a/xmlsecurity/test_docs/certs/p12/User_34_Root_11.p12 b/xmlsecurity/test_docs/certs/p12/User_34_Root_11.p12 Binary files differnew file mode 100644 index 000000000000..4c00b21d457e --- /dev/null +++ b/xmlsecurity/test_docs/certs/p12/User_34_Root_11.p12 diff --git a/xmlsecurity/test_docs/documents/dn_multivalue_rdn.odt b/xmlsecurity/test_docs/documents/dn_multivalue_rdn.odt Binary files differnew file mode 100755 index 000000000000..4d34bc0f580a --- /dev/null +++ b/xmlsecurity/test_docs/documents/dn_multivalue_rdn.odt diff --git a/xmlsecurity/test_docs/documents/dn_single_multivalue_rdn.odt b/xmlsecurity/test_docs/documents/dn_single_multivalue_rdn.odt Binary files differnew file mode 100755 index 000000000000..798f25a35312 --- /dev/null +++ b/xmlsecurity/test_docs/documents/dn_single_multivalue_rdn.odt diff --git a/xmlsecurity/test_docs/documents/dn_single_multivalue_rdn_with_quoting.odt b/xmlsecurity/test_docs/documents/dn_single_multivalue_rdn_with_quoting.odt Binary files differnew file mode 100755 index 000000000000..591f9aa4d63d --- /dev/null +++ b/xmlsecurity/test_docs/documents/dn_single_multivalue_rdn_with_quoting.odt diff --git a/xmlsecurity/test_docs/test_description.odt b/xmlsecurity/test_docs/test_description.odt Binary files differindex 9c2eff18ddcc..45bbb5b0d4b6 100755..100644 --- a/xmlsecurity/test_docs/test_description.odt +++ b/xmlsecurity/test_docs/test_description.odt |