diff options
author | sb <sb@openoffice.org> | 2010-11-19 11:35:41 +0100 |
---|---|---|
committer | sb <sb@openoffice.org> | 2010-11-19 11:35:41 +0100 |
commit | 1e3884c191eba90ebce96b516c65393a5afe29df (patch) | |
tree | a7238ce383ed9aa425dee4908b65c284e2cfaad2 | |
parent | 525c94b15bbf251aa28734fdd1c98da97b125a19 (diff) | |
parent | c75630a0387433905286e2517156c86218b5a25b (diff) |
sb131: merged in re/DEV300_next towards DEV300_m94
357 files changed, 12714 insertions, 12229 deletions
diff --git a/starmath/inc/dialog.hxx b/starmath/inc/dialog.hxx index b57cb6bf54..d6b294e25e 100644 --- a/starmath/inc/dialog.hxx +++ b/starmath/inc/dialog.hxx @@ -255,7 +255,7 @@ class SmDistanceDialog : public ModalDialog DECL_LINK(CheckBoxClickHdl, CheckBox *); using Window::SetHelpId; - void SetHelpId(MetricField &rField, ULONG nHelpId); + void SetHelpId(MetricField &rField, const rtl::OString& sHelpId); void SetCategory(USHORT Category); void ApplyImages(); diff --git a/starmath/inc/helpids.h b/starmath/inc/helpids.h new file mode 100644 index 0000000000..16231377ee --- /dev/null +++ b/starmath/inc/helpids.h @@ -0,0 +1,326 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef STARMATH_HELPIDS_H +#define STARMATH_HELPIDS_H + +#define HID_SMA_OPTIONSDIALOG "STARMATH_HID_SMA_OPTIONSDIALOG" +#define HID_SMA_FONTDIALOG "STARMATH_HID_SMA_FONTDIALOG" +#define HID_SMA_FONTSIZEDIALOG "STARMATH_HID_SMA_FONTSIZEDIALOG" +#define HID_SMA_FONTTYPEDIALOG "STARMATH_HID_SMA_FONTTYPEDIALOG" +#define HID_SMA_DISTANCEDIALOG "STARMATH_HID_SMA_DISTANCEDIALOG" +#define HID_SMA_ALIGNDIALOG "STARMATH_HID_SMA_ALIGNDIALOG" +#define HID_SMA_PRINTOPTIONPAGE "STARMATH_HID_SMA_PRINTOPTIONPAGE" +#define HID_SMA_SYMBOLDIALOG "STARMATH_HID_SMA_SYMBOLDIALOG" +#define HID_SMA_SYMDEFINEDIALOG "STARMATH_HID_SMA_SYMDEFINEDIALOG" +#define HID_SMA_EXTRAOPTIONPAGE "STARMATH_HID_SMA_EXTRAOPTIONPAGE" +#define HID_SMA_DOCSAVEQUERY "STARMATH_HID_SMA_DOCSAVEQUERY" +#define HID_SMA_OBJECTSAVEQUERY "STARMATH_HID_SMA_OBJECTSAVEQUERY" +#define HID_SMA_DEFAULTSAVEQUERY "STARMATH_HID_SMA_DEFAULTSAVEQUERY" +#define HID_SMA_ILLEGALOBJECTERROR "STARMATH_HID_SMA_ILLEGALOBJECTERROR" +#define HID_SMA_ILLEGALFILEERROR "STARMATH_HID_SMA_ILLEGALFILEERROR" +#define HID_SMA_WRITESYMBOLERROR "STARMATH_HID_SMA_WRITESYMBOLERROR" +#define HID_SMA_READSYMBOLERROR "STARMATH_HID_SMA_READSYMBOLERROR" +#define HID_SMA_NOMATHTYPEFACEWARNING "STARMATH_HID_SMA_NOMATHTYPEFACEWARNING" +#define HID_SMA_OBJECTNAME "STARMATH_HID_SMA_OBJECTNAME" +#define HID_SMA_VIEWNAME "STARMATH_HID_SMA_VIEWNAME" +#define HID_SMA_UNDOEDITNAME "STARMATH_HID_SMA_UNDOEDITNAME" +#define HID_SMA_UNDOFORMATNAME "STARMATH_HID_SMA_UNDOFORMATNAME" +#define HID_SMA_APPICO "STARMATH_HID_SMA_APPICO" +#define HID_SMA_DOCICO "STARMATH_HID_SMA_DOCICO" +#define HID_SMA_TMPICO "STARMATH_HID_SMA_TMPICO" +#define HID_SMA_COMMANDMENU "STARMATH_HID_SMA_COMMANDMENU" +#define HID_SMA_VIEWMENU "STARMATH_HID_SMA_VIEWMENU" +#define HID_SMA_DISTANCEMENU "STARMATH_HID_SMA_DISTANCEMENU" +#define HID_SMA_FONTMENU "STARMATH_HID_SMA_FONTMENU" +#define HID_SMA_STARTUPWINDOW "STARMATH_HID_SMA_STARTUPWINDOW" +#define HID_SMA_TOOLBOXWINDOW "STARMATH_HID_SMA_TOOLBOXWINDOW" +#define HID_SMA_CMDBOXWINDOW "STARMATH_HID_SMA_CMDBOXWINDOW" +#define HID_SMA_UPDATEOBJECT "STARMATH_HID_SMA_UPDATEOBJECT" +#define HID_SMA_FONTREGULAR "STARMATH_HID_SMA_FONTREGULAR" +#define HID_SMA_FONTITALIC "STARMATH_HID_SMA_FONTITALIC" +#define HID_SMA_FONTBOLD "STARMATH_HID_SMA_FONTBOLD" +#define HID_SMA_PRINTOPTION "STARMATH_HID_SMA_PRINTOPTION" +#define HID_SMA_DOCUMENTSTR "STARMATH_HID_SMA_DOCUMENTSTR" +#define HID_SMA_SYMBOLFILESSTR "STARMATH_HID_SMA_SYMBOLFILESSTR" +#define HID_SMA_ALLFILESSTR "STARMATH_HID_SMA_ALLFILESSTR" +#define HID_SMA_CREATORSTR "STARMATH_HID_SMA_CREATORSTR" +#define HID_SMA_FILESMFTYP "STARMATH_HID_SMA_FILESMFTYP" +#define HID_SMA_FILESYMTYP "STARMATH_HID_SMA_FILESYMTYP" +#define HID_SMA_WIN_DOCUMENT "STARMATH_HID_SMA_WIN_DOCUMENT" +#define HID_SMA_COMMAND_WIN_EDIT "STARMATH_HID_SMA_COMMAND_WIN_EDIT" + +#define HID_SMA_PLUSX "STARMATH_HID_SMA_PLUSX" +#define HID_SMA_MINUSX "STARMATH_HID_SMA_MINUSX" +#define HID_SMA_PLUSMINUSX "STARMATH_HID_SMA_PLUSMINUSX" +#define HID_SMA_MINUSPLUSX "STARMATH_HID_SMA_MINUSPLUSX" +#define HID_SMA_NEGX "STARMATH_HID_SMA_NEGX" +#define HID_SMA_XPLUSY "STARMATH_HID_SMA_XPLUSY" +#define HID_SMA_XMINUSY "STARMATH_HID_SMA_XMINUSY" +#define HID_SMA_XCDOTY "STARMATH_HID_SMA_XCDOTY" +#define HID_SMA_XTIMESY "STARMATH_HID_SMA_XTIMESY" +#define HID_SMA_XSYMTIMESY "STARMATH_HID_SMA_XSYMTIMESY" +#define HID_SMA_XSYMDIVIDEY "STARMATH_HID_SMA_XSYMDIVIDEY" +#define HID_SMA_XDIVY "STARMATH_HID_SMA_XDIVY" +#define HID_SMA_XOVERY "STARMATH_HID_SMA_XOVERY" +#define HID_SMA_XODIVIDEY "STARMATH_HID_SMA_XODIVIDEY" +#define HID_SMA_XODOTY "STARMATH_HID_SMA_XODOTY" +#define HID_SMA_XOMINUSY "STARMATH_HID_SMA_XOMINUSY" +#define HID_SMA_XOPLUSY "STARMATH_HID_SMA_XOPLUSY" +#define HID_SMA_XOTIMESY "STARMATH_HID_SMA_XOTIMESY" +#define HID_SMA_XANDY "STARMATH_HID_SMA_XANDY" +#define HID_SMA_XORY "STARMATH_HID_SMA_XORY" +#define HID_SMA_XEQY "STARMATH_HID_SMA_XEQY" +#define HID_SMA_XNEQY "STARMATH_HID_SMA_XNEQY" +#define HID_SMA_XLTY "STARMATH_HID_SMA_XLTY" +#define HID_SMA_XGTY "STARMATH_HID_SMA_XGTY" +#define HID_SMA_XLEY "STARMATH_HID_SMA_XLEY" +#define HID_SMA_XGEY "STARMATH_HID_SMA_XGEY" +#define HID_SMA_XLESLANTY "STARMATH_HID_SMA_XLESLANTY" +#define HID_SMA_XGESLANTY "STARMATH_HID_SMA_XGESLANTY" +#define HID_SMA_XLLY "STARMATH_HID_SMA_XLLY" +#define HID_SMA_XGGY "STARMATH_HID_SMA_XGGY" +#define HID_SMA_XDEFY "STARMATH_HID_SMA_XDEFY" +#define HID_SMA_XEQUIVY "STARMATH_HID_SMA_XEQUIVY" +#define HID_SMA_XAPPROXY "STARMATH_HID_SMA_XAPPROXY" +#define HID_SMA_XSIMY "STARMATH_HID_SMA_XSIMY" +#define HID_SMA_XSIMEQY "STARMATH_HID_SMA_XSIMEQY" +#define HID_SMA_XPROPY "STARMATH_HID_SMA_XPROPY" +#define HID_SMA_XORTHOY "STARMATH_HID_SMA_XORTHOY" +#define HID_SMA_XPARALLELY "STARMATH_HID_SMA_XPARALLELY" +#define HID_SMA_XTOWARDY "STARMATH_HID_SMA_XTOWARDY" +#define HID_SMA_XTRANSLY "STARMATH_HID_SMA_XTRANSLY" +#define HID_SMA_XTRANSRY "STARMATH_HID_SMA_XTRANSRY" +#define HID_SMA_XINY "STARMATH_HID_SMA_XINY" +#define HID_SMA_XNOTINY "STARMATH_HID_SMA_XNOTINY" +#define HID_SMA_XOWNSY "STARMATH_HID_SMA_XOWNSY" +#define HID_SMA_XUNIONY "STARMATH_HID_SMA_XUNIONY" +#define HID_SMA_XINTERSECTIONY "STARMATH_HID_SMA_XINTERSECTIONY" +#define HID_SMA_XSETMINUSY "STARMATH_HID_SMA_XSETMINUSY" +#define HID_SMA_XSLASHY "STARMATH_HID_SMA_XSLASHY" +#define HID_SMA_XSUBSETY "STARMATH_HID_SMA_XSUBSETY" +#define HID_SMA_XSUBSETEQY "STARMATH_HID_SMA_XSUBSETEQY" +#define HID_SMA_XSUPSETY "STARMATH_HID_SMA_XSUPSETY" +#define HID_SMA_XSUPSETEQY "STARMATH_HID_SMA_XSUPSETEQY" +#define HID_SMA_XNSUBSETY "STARMATH_HID_SMA_XNSUBSETY" +#define HID_SMA_XNSUBSETEQY "STARMATH_HID_SMA_XNSUBSETEQY" +#define HID_SMA_XNSUPSETY "STARMATH_HID_SMA_XNSUPSETY" +#define HID_SMA_XNSUPSETEQY "STARMATH_HID_SMA_XNSUPSETEQY" +#define HID_SMA_ABSX "STARMATH_HID_SMA_ABSX" +#define HID_SMA_FACTX "STARMATH_HID_SMA_FACTX" +#define HID_SMA_SQRTX "STARMATH_HID_SMA_SQRTX" +#define HID_SMA_NROOTXY "STARMATH_HID_SMA_NROOTXY" +#define HID_SMA_EX "STARMATH_HID_SMA_EX" +#define HID_SMA_EXPX "STARMATH_HID_SMA_EXPX" +#define HID_SMA_LNX "STARMATH_HID_SMA_LNX" +#define HID_SMA_LOGX "STARMATH_HID_SMA_LOGX" +#define HID_SMA_SINX "STARMATH_HID_SMA_SINX" +#define HID_SMA_COSX "STARMATH_HID_SMA_COSX" +#define HID_SMA_TANX "STARMATH_HID_SMA_TANX" +#define HID_SMA_COTX "STARMATH_HID_SMA_COTX" +#define HID_SMA_ARCSINX "STARMATH_HID_SMA_ARCSINX" +#define HID_SMA_ARCCOSX "STARMATH_HID_SMA_ARCCOSX" +#define HID_SMA_ARCTANX "STARMATH_HID_SMA_ARCTANX" +#define HID_SMA_ARCCOTX "STARMATH_HID_SMA_ARCCOTX" +#define HID_SMA_SINHX "STARMATH_HID_SMA_SINHX" +#define HID_SMA_COSHX "STARMATH_HID_SMA_COSHX" +#define HID_SMA_TANHX "STARMATH_HID_SMA_TANHX" +#define HID_SMA_COTHX "STARMATH_HID_SMA_COTHX" +#define HID_SMA_ARSINHX "STARMATH_HID_SMA_ARSINHX" +#define HID_SMA_ARCOSHX "STARMATH_HID_SMA_ARCOSHX" +#define HID_SMA_ARTANHX "STARMATH_HID_SMA_ARTANHX" +#define HID_SMA_ARCOTHX "STARMATH_HID_SMA_ARCOTHX" +#define HID_SMA_SUMX "STARMATH_HID_SMA_SUMX" +#define HID_SMA_PRODX "STARMATH_HID_SMA_PRODX" +#define HID_SMA_COPRODX "STARMATH_HID_SMA_COPRODX" +#define HID_SMA_LIMX "STARMATH_HID_SMA_LIMX" +#define HID_SMA_LIMINFX "STARMATH_HID_SMA_LIMINFX" +#define HID_SMA_LIMSUPX "STARMATH_HID_SMA_LIMSUPX" +#define HID_SMA_EXISTS "STARMATH_HID_SMA_EXISTS" +#define HID_SMA_FORALL "STARMATH_HID_SMA_FORALL" +#define HID_SMA_NABLA "STARMATH_HID_SMA_NABLA" +#define HID_SMA_INTX "STARMATH_HID_SMA_INTX" +#define HID_SMA_IINTX "STARMATH_HID_SMA_IINTX" +#define HID_SMA_IIINTX "STARMATH_HID_SMA_IIINTX" +#define HID_SMA_LINTX "STARMATH_HID_SMA_LINTX" +#define HID_SMA_LLINTX "STARMATH_HID_SMA_LLINTX" +#define HID_SMA_LLLINTX "STARMATH_HID_SMA_LLLINTX" +#define HID_SMA_FROMX "STARMATH_HID_SMA_FROMX" +#define HID_SMA_TOX "STARMATH_HID_SMA_TOX" +#define HID_SMA_FROMXTOY "STARMATH_HID_SMA_FROMXTOY" +#define HID_SMA_XCIRCY "STARMATH_HID_SMA_XCIRCY" +#define HID_SMA_XDIVIDESY "STARMATH_HID_SMA_XDIVIDESY" +#define HID_SMA_XNDIVIDESY "STARMATH_HID_SMA_XNDIVIDESY" +#define HID_SMA_DLARROW "STARMATH_HID_SMA_DLARROW" +#define HID_SMA_DLRARROW "STARMATH_HID_SMA_DLRARROW" +#define HID_SMA_DRARROW "STARMATH_HID_SMA_DRARROW" + +#define HID_SMA_MISC_CAT "STARMATH_HID_SMA_MISC_CAT" +#define HID_SMA_UNBINOPS_CAT "STARMATH_HID_SMA_UNBINOPS_CAT" +#define HID_SMA_RELATIONS_CAT "STARMATH_HID_SMA_RELATIONS_CAT" +#define HID_SMA_SETOPERATIONS_CAT "STARMATH_HID_SMA_SETOPERATIONS_CAT" +#define HID_SMA_FUNCTIONS_CAT "STARMATH_HID_SMA_FUNCTIONS_CAT" +#define HID_SMA_OPERATORS_CAT "STARMATH_HID_SMA_OPERATORS_CAT" +#define HID_SMA_ATTRIBUTES_CAT "STARMATH_HID_SMA_ATTRIBUTES_CAT" +#define HID_SMA_BRACKETS_CAT "STARMATH_HID_SMA_BRACKETS_CAT" +#define HID_SMA_FORMAT_CAT "STARMATH_HID_SMA_FORMAT_CAT" + +#define HID_SMA_OPERATOR_WIN "STARMATH_HID_SMA_OPERATOR_WIN" +#define HID_SMA_UNBINOPS_TBX "STARMATH_HID_SMA_UNBINOPS_TBX" +#define HID_SMA_RELATIONS_TBX "STARMATH_HID_SMA_RELATIONS_TBX" +#define HID_SMA_SETOPERATIONS_TBX "STARMATH_HID_SMA_SETOPERATIONS_TBX" +#define HID_SMA_FUNCTIONS_TBX "STARMATH_HID_SMA_FUNCTIONS_TBX" +#define HID_SMA_OPERATORS_TBX "STARMATH_HID_SMA_OPERATORS_TBX" +#define HID_SMA_ATTRIBUTES_TBX "STARMATH_HID_SMA_ATTRIBUTES_TBX" +#define HID_SMA_BRACKETS_TBX "STARMATH_HID_SMA_BRACKETS_TBX" +#define HID_SMA_FORMAT_TBX "STARMATH_HID_SMA_FORMAT_TBX" +#define HID_SMA_SELECTION_TBX "STARMATH_HID_SMA_SELECTION_TBX" +#define HID_SMA_COMMAND_WIN "STARMATH_HID_SMA_COMMAND_WIN" +#define HID_SMA_MISC_MENU "STARMATH_HID_SMA_MISC_MENU" +#define HID_SMA_FUNCTIONSOTHER1_MENU "STARMATH_HID_SMA_FUNCTIONSOTHER1_MENU" + +#define HID_SMA_ACUTEX "STARMATH_HID_SMA_ACUTEX" +#define HID_SMA_BARX "STARMATH_HID_SMA_BARX" +#define HID_SMA_BREVEX "STARMATH_HID_SMA_BREVEX" +#define HID_SMA_CHECKX "STARMATH_HID_SMA_CHECKX" +#define HID_SMA_CIRCLEX "STARMATH_HID_SMA_CIRCLEX" +#define HID_SMA_DOTX "STARMATH_HID_SMA_DOTX" +#define HID_SMA_DDOTX "STARMATH_HID_SMA_DDOTX" +#define HID_SMA_DDDOTX "STARMATH_HID_SMA_DDDOTX" +#define HID_SMA_GRAVEX "STARMATH_HID_SMA_GRAVEX" +#define HID_SMA_HATX "STARMATH_HID_SMA_HATX" +#define HID_SMA_TILDEX "STARMATH_HID_SMA_TILDEX" +#define HID_SMA_VECX "STARMATH_HID_SMA_VECX" +#define HID_SMA_UNDERLINEX "STARMATH_HID_SMA_UNDERLINEX" +#define HID_SMA_OVERLINEX "STARMATH_HID_SMA_OVERLINEX" +#define HID_SMA_OVERSTRIKEX "STARMATH_HID_SMA_OVERSTRIKEX" +#define HID_SMA_PHANTOMX "STARMATH_HID_SMA_PHANTOMX" +#define HID_SMA_BOLDX "STARMATH_HID_SMA_BOLDX" +#define HID_SMA_ITALX "STARMATH_HID_SMA_ITALX" +#define HID_SMA_SIZEXY "STARMATH_HID_SMA_SIZEXY" +#define HID_SMA_FONTXY "STARMATH_HID_SMA_FONTXY" +#define HID_SMA_COLORX "STARMATH_HID_SMA_COLORX" +#define HID_SMA_LRGROUPX "STARMATH_HID_SMA_LRGROUPX" +#define HID_SMA_LRPARENTX "STARMATH_HID_SMA_LRPARENTX" +#define HID_SMA_LRBRACKETX "STARMATH_HID_SMA_LRBRACKETX" +#define HID_SMA_LRBRACEX "STARMATH_HID_SMA_LRBRACEX" +#define HID_SMA_LRANGLEX "STARMATH_HID_SMA_LRANGLEX" +#define HID_SMA_LRCEILX "STARMATH_HID_SMA_LRCEILX" +#define HID_SMA_LRFLOORX "STARMATH_HID_SMA_LRFLOORX" +#define HID_SMA_LRLINEX "STARMATH_HID_SMA_LRLINEX" +#define HID_SMA_LRDLINEX "STARMATH_HID_SMA_LRDLINEX" +#define HID_SMA_SLRPARENTX "STARMATH_HID_SMA_SLRPARENTX" +#define HID_SMA_SLRBRACKETX "STARMATH_HID_SMA_SLRBRACKETX" +#define HID_SMA_SLRBRACEX "STARMATH_HID_SMA_SLRBRACEX" +#define HID_SMA_SLRANGLEX "STARMATH_HID_SMA_SLRANGLEX" +#define HID_SMA_SLRCEILX "STARMATH_HID_SMA_SLRCEILX" +#define HID_SMA_SLRFLOORX "STARMATH_HID_SMA_SLRFLOORX" +#define HID_SMA_SLRLINEX "STARMATH_HID_SMA_SLRLINEX" +#define HID_SMA_SLRDLINEX "STARMATH_HID_SMA_SLRDLINEX" +#define HID_SMA_RSUBX "STARMATH_HID_SMA_RSUBX" +#define HID_SMA_RSUPX "STARMATH_HID_SMA_RSUPX" +#define HID_SMA_LSUBX "STARMATH_HID_SMA_LSUBX" +#define HID_SMA_LSUPX "STARMATH_HID_SMA_LSUPX" +#define HID_SMA_SBLANK "STARMATH_HID_SMA_SBLANK" +#define HID_SMA_BLANK "STARMATH_HID_SMA_BLANK" +#define HID_SMA_NEWLINE "STARMATH_HID_SMA_NEWLINE" +#define HID_SMA_BINOMXY "STARMATH_HID_SMA_BINOMXY" +#define HID_SMA_STACK "STARMATH_HID_SMA_STACK" +#define HID_SMA_MATRIX "STARMATH_HID_SMA_MATRIX" +#define HID_SMA_ALIGNLX "STARMATH_HID_SMA_ALIGNLX" +#define HID_SMA_ALIGNCX "STARMATH_HID_SMA_ALIGNCX" +#define HID_SMA_ALIGNRX "STARMATH_HID_SMA_ALIGNRX" +#define HID_SMA_ALEPH "STARMATH_HID_SMA_ALEPH" +#define HID_SMA_EMPTYSET "STARMATH_HID_SMA_EMPTYSET" +#define HID_SMA_RE "STARMATH_HID_SMA_RE" +#define HID_SMA_IM "STARMATH_HID_SMA_IM" +#define HID_SMA_INFINITY "STARMATH_HID_SMA_INFINITY" +#define HID_SMA_PARTIAL "STARMATH_HID_SMA_PARTIAL" +#define HID_SMA_WP "STARMATH_HID_SMA_WP" +#define HID_SMA_DOTSAXIS "STARMATH_HID_SMA_DOTSAXIS" +#define HID_SMA_DOTSUP "STARMATH_HID_SMA_DOTSUP" +#define HID_SMA_DOTSDOWN "STARMATH_HID_SMA_DOTSDOWN" +#define HID_SMA_DOTSLOW "STARMATH_HID_SMA_DOTSLOW" +#define HID_SMA_DOTSVERT "STARMATH_HID_SMA_DOTSVERT" + +#define HID_SMA_SETN "STARMATH_HID_SMA_SETN" +#define HID_SMA_SETZ "STARMATH_HID_SMA_SETZ" +#define HID_SMA_SETQ "STARMATH_HID_SMA_SETQ" +#define HID_SMA_SETR "STARMATH_HID_SMA_SETR" +#define HID_SMA_SETC "STARMATH_HID_SMA_SETC" +#define HID_SMA_WIDEHATX "STARMATH_HID_SMA_WIDEHATX" +#define HID_SMA_WIDETILDEX "STARMATH_HID_SMA_WIDETILDEX" +#define HID_SMA_WIDEVECX "STARMATH_HID_SMA_WIDEVECX" +#define HID_SMA_CSUBX "STARMATH_HID_SMA_CSUBX" +#define HID_SMA_CSUPX "STARMATH_HID_SMA_CSUPX" +#define HID_SMA_HBAR "STARMATH_HID_SMA_HBAR" +#define HID_SMA_LAMBDABAR "STARMATH_HID_SMA_LAMBDABAR" +#define HID_SMA_LEFTARROW "STARMATH_HID_SMA_LEFTARROW" +#define HID_SMA_RIGHTARROW "STARMATH_HID_SMA_RIGHTARROW" +#define HID_SMA_UPARROW "STARMATH_HID_SMA_UPARROW" +#define HID_SMA_DOWNARROW "STARMATH_HID_SMA_DOWNARROW" + +#define HID_SMA_DEFAULT_DIST "STARMATH_HID_SMA_DEFAULT_DIST" +#define HID_SMA_LINE_DIST "STARMATH_HID_SMA_LINE_DIST" +#define HID_SMA_ROOT_DIST "STARMATH_HID_SMA_ROOT_DIST" +#define HID_SMA_SUP_DIST "STARMATH_HID_SMA_SUP_DIST" +#define HID_SMA_SUB_DIST "STARMATH_HID_SMA_SUB_DIST" +#define HID_SMA_NUMERATOR_DIST "STARMATH_HID_SMA_NUMERATOR_DIST" +#define HID_SMA_DENOMINATOR_DIST "STARMATH_HID_SMA_DENOMINATOR_DIST" +#define HID_SMA_FRACLINE_EXCWIDTH "STARMATH_HID_SMA_FRACLINE_EXCWIDTH" +#define HID_SMA_FRACLINE_LINEWIDTH "STARMATH_HID_SMA_FRACLINE_LINEWIDTH" +#define HID_SMA_UPPERLIMIT_DIST "STARMATH_HID_SMA_UPPERLIMIT_DIST" +#define HID_SMA_LOWERLIMIT_DIST "STARMATH_HID_SMA_LOWERLIMIT_DIST" +#define HID_SMA_BRACKET_EXCHEIGHT "STARMATH_HID_SMA_BRACKET_EXCHEIGHT" +#define HID_SMA_BRACKET_DIST "STARMATH_HID_SMA_BRACKET_DIST" +#define HID_SMA_MATRIXROW_DIST "STARMATH_HID_SMA_MATRIXROW_DIST" +#define HID_SMA_MATRIXCOL_DIST "STARMATH_HID_SMA_MATRIXCOL_DIST" +#define HID_SMA_ATTRIBUT_DIST "STARMATH_HID_SMA_ATTRIBUT_DIST" +#define HID_SMA_INTERATTRIBUT_DIST "STARMATH_HID_SMA_INTERATTRIBUT_DIST" +#define HID_SMA_OPERATOR_EXCHEIGHT "STARMATH_HID_SMA_OPERATOR_EXCHEIGHT" +#define HID_SMA_OPERATOR_DIST "STARMATH_HID_SMA_OPERATOR_DIST" +#define HID_SMA_LEFTBORDER_DIST "STARMATH_HID_SMA_LEFTBORDER_DIST" +#define HID_SMA_RIGHTBORDER_DIST "STARMATH_HID_SMA_RIGHTBORDER_DIST" +#define HID_SMA_UPPERBORDER_DIST "STARMATH_HID_SMA_UPPERBORDER_DIST" +#define HID_SMA_LOWERBORDER_DIST "STARMATH_HID_SMA_LOWERBORDER_DIST" +#define HID_SMA_SCALE_ALL_BRACKETS "STARMATH_HID_SMA_SCALE_ALL_BRACKETS" +#define HID_SMA_BRACKET_EXCHEIGHT2 "STARMATH_HID_SMA_BRACKET_EXCHEIGHT2" +#define HID_SMA_LMRANGLEXY "STARMATH_HID_SMA_LMRANGLEXY" +#define HID_SMA_SLMRANGLEXY "STARMATH_HID_SMA_SLMRANGLEXY" +#define HID_SMA_XWIDESLASHY "STARMATH_HID_SMA_XWIDESLASHY" +#define HID_SMA_XWIDEBSLASHY "STARMATH_HID_SMA_XWIDEBSLASHY" +#define HID_SMA_XOVERBRACEY "STARMATH_HID_SMA_XOVERBRACEY" +#define HID_SMA_XUNDERBRACEY "STARMATH_HID_SMA_XUNDERBRACEY" +#define HID_SMA_LRDBRACKETX "STARMATH_HID_SMA_LRDBRACKETX" +#define HID_SMA_SLRDBRACKETX "STARMATH_HID_SMA_SLRDBRACKETX" + +#define HID_SMA_CONTROL_SYMBOLSET_VIEW "STARMATH_HID_SMA_CONTROL_SYMBOLSET_VIEW" +#define HID_SMA_CONTROL_FONTCHAR_VIEW "STARMATH_HID_SMA_CONTROL_FONTCHAR_VIEW" + +#define HID_SMA_NOSPACE "STARMATH_HID_SMA_NOSPACE" + +#endif + diff --git a/starmath/inc/node.hxx b/starmath/inc/node.hxx index 156a3c1f24..d97b2b99fd 100644 --- a/starmath/inc/node.hxx +++ b/starmath/inc/node.hxx @@ -180,6 +180,10 @@ public: const SmNode * FindTokenAt(USHORT nRow, USHORT nCol) const; const SmNode * FindRectClosestTo(const Point &rPoint) const; + + // --> 4.7.2010 #i972# + virtual long GetFormulaBaseline() const; + // <-- }; @@ -456,6 +460,9 @@ public: class SmTableNode : public SmStructureNode { + // --> 4.7.2010 #i972# + long nFormulaBaseline; + // <-- public: SmTableNode(const SmToken &rNodeToken) : SmStructureNode(NTABLE, rNodeToken) @@ -465,6 +472,7 @@ public: virtual SmNode * GetLeftMost(); virtual void Arrange(const OutputDevice &rDev, const SmFormat &rFormat); + virtual long GetFormulaBaseline() const; }; diff --git a/starmath/inc/smcommands.h b/starmath/inc/smcommands.h new file mode 100644 index 0000000000..d2f08c55f4 --- /dev/null +++ b/starmath/inc/smcommands.h @@ -0,0 +1,68 @@ +/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef SM_SNCOMMANDS_HRC
+#define SM_SMCOMMANDS_HRC
+
+#define CMD_SID_ADJUST ".uno:Adjust"
+#define CMD_SID_ALIGN ".uno:ChangeAlignment"
+#define CMD_SID_DISTANCE ".uno:ChangeDistance"
+#define CMD_SID_FONT ".uno:ChangeFont"
+#define CMD_SID_FONTSIZE ".uno:ChangeFontSize"
+#define CMD_SID_CMDBOXWINDOW ".uno:CommandWindow"
+#define CMD_SID_PREFERENCES ".uno:Preferences"
+#define CMD_SID_TEXT ".uno:ConfigName"
+#define CMD_SID_COPYOBJECT ".uno:CopyObject"
+#define CMD_SID_DRAW ".uno:Draw"
+#define CMD_SID_FITINWINDOW ".uno:FitInWindow"
+#define CMD_SID_FORMULACURSOR ".uno:FormelCursor"
+#define CMD_SID_GAPHIC_SM ".uno:Graphic"
+#define CMD_SID_INSERTCOMMAND ".uno:InsertCommand"
+#define CMD_SID_INSERTTEXT ".uno:InsertConfigName"
+#define CMD_SID_INSERT_FORMULA ".uno:InsertFormula"
+#define CMD_SID_LOADSYMBOLS ".uno:LoadSymbols"
+#define CMD_SID_MODIFYSTATUS ".uno:ModifyStatus"
+#define CMD_SID_NEXTERR ".uno:NextError"
+#define CMD_SID_NEXTMARK ".uno:NextMark"
+#define CMD_SID_PASTEOBJECT ".uno:PasteObject"
+#define CMD_SID_PREVERR ".uno:PrevError"
+#define CMD_SID_PREVMARK ".uno:PrevMark"
+#define CMD_SID_AUTO_REDRAW ".uno:RedrawAutomatic"
+#define CMD_SID_SAVESYMBOLS ".uno:SaveSymbols"
+#define CMD_SID_GETEDITTEXT ".uno:SetPaperSize"
+#define CMD_SID_SYMBOLS_CATALOGUE ".uno:SymbolCatalogue"
+#define CMD_SID_SYMBOLS ".uno:Symbols"
+#define CMD_SID_TEXTMODE ".uno:Textmode"
+#define CMD_SID_TEXTSTATUS ".uno:TextStatus"
+#define CMD_SID_TOOLBOXWINDOW ".uno:ToolBowWindow"
+#define CMD_SID_TOOLBOX ".uno:ToolBox"
+#define CMD_SID_VIEW100 ".uno:View100"
+#define CMD_SID_VIEW200 ".uno:View200"
+#define CMD_SID_VIEW050 ".uno:View50"
+#define CMD_SID_ZOOMIN ".uno:ZoomIn"
+#define CMD_SID_ZOOMOUT ".uno:ZoomOut"
+
+#endif
diff --git a/starmath/inc/smmod.hxx b/starmath/inc/smmod.hxx index e5718a0f82..e727893cf2 100644 --- a/starmath/inc/smmod.hxx +++ b/starmath/inc/smmod.hxx @@ -131,7 +131,6 @@ class SmModule : public SfxModule, utl::ConfigurationListener SvtSysLocale *pSysLocale; VirtualDevice *pVirtualDev; - virtual void FillStatusBar(StatusBar &rBar); void _CreateSysLocale() const; void _CreateVirtualDev() const; diff --git a/starmath/inc/starmath.hrc b/starmath/inc/starmath.hrc index 5853a24c0f..e388d9f270 100755..100644 --- a/starmath/inc/starmath.hrc +++ b/starmath/inc/starmath.hrc @@ -30,6 +30,7 @@ #include <svl/solar.hrc> #include <sfx2/sfxsids.hrc> #include <editeng/memberids.hrc> +#include "helpids.h" #define SID_NEXTERR (SID_SMA_START + 1) #define SID_PREVERR (SID_SMA_START + 2) @@ -457,300 +458,6 @@ #define MN_SUB_SENDTO (RID_APP_START + 3120) -#define HID_SMA_OPTIONSDIALOG (HID_SMA_START + 1) -#define HID_SMA_FONTDIALOG (HID_SMA_START + 2) -#define HID_SMA_FONTSIZEDIALOG (HID_SMA_START + 3) -#define HID_SMA_FONTTYPEDIALOG (HID_SMA_START + 4) -#define HID_SMA_DISTANCEDIALOG (HID_SMA_START + 5) -#define HID_SMA_ALIGNDIALOG (HID_SMA_START + 6) -#define HID_SMA_PRINTOPTIONPAGE (HID_SMA_START + 7) -#define HID_SMA_SYMBOLDIALOG (HID_SMA_START + 8) -#define HID_SMA_SYMDEFINEDIALOG (HID_SMA_START + 9) -#define HID_SMA_EXTRAOPTIONPAGE (HID_SMA_START + 10) -#define HID_SMA_DOCSAVEQUERY (HID_SMA_START + 11) -#define HID_SMA_OBJECTSAVEQUERY (HID_SMA_START + 12) -#define HID_SMA_DEFAULTSAVEQUERY (HID_SMA_START + 13) -#define HID_SMA_ILLEGALOBJECTERROR (HID_SMA_START + 14) -#define HID_SMA_ILLEGALFILEERROR (HID_SMA_START + 15) -#define HID_SMA_WRITESYMBOLERROR (HID_SMA_START + 16) -#define HID_SMA_READSYMBOLERROR (HID_SMA_START + 17) -#define HID_SMA_NOMATHTYPEFACEWARNING (HID_SMA_START + 18) -#define HID_SMA_OBJECTNAME (HID_SMA_START + 19) -#define HID_SMA_VIEWNAME (HID_SMA_START + 20) -#define HID_SMA_UNDOEDITNAME (HID_SMA_START + 21) -#define HID_SMA_UNDOFORMATNAME (HID_SMA_START + 22) -#define HID_SMA_APPICO (HID_SMA_START + 23) -#define HID_SMA_DOCICO (HID_SMA_START + 24) -#define HID_SMA_TMPICO (HID_SMA_START + 25) -#define HID_SMA_COMMANDMENU (HID_SMA_START + 26) -#define HID_SMA_VIEWMENU (HID_SMA_START + 27) -#define HID_SMA_DISTANCEMENU (HID_SMA_START + 28) -#define HID_SMA_FONTMENU (HID_SMA_START + 29) -#define HID_SMA_STARTUPWINDOW (HID_SMA_START + 30) -#define HID_SMA_TOOLBOXWINDOW (HID_SMA_START + 31) -#define HID_SMA_CMDBOXWINDOW (HID_SMA_START + 32) -#define HID_SMA_UPDATEOBJECT (HID_SMA_START + 33) -#define HID_SMA_FONTREGULAR (HID_SMA_START + 34) -#define HID_SMA_FONTITALIC (HID_SMA_START + 35) -#define HID_SMA_FONTBOLD (HID_SMA_START + 36) -#define HID_SMA_PRINTOPTION (HID_SMA_START + 37) -#define HID_SMA_DOCUMENTSTR (HID_SMA_START + 38) -#define HID_SMA_SYMBOLFILESSTR (HID_SMA_START + 39) -#define HID_SMA_ALLFILESSTR (HID_SMA_START + 40) -#define HID_SMA_CREATORSTR (HID_SMA_START + 41) -#define HID_SMA_FILESMFTYP (HID_SMA_START + 42) -#define HID_SMA_FILESYMTYP (HID_SMA_START + 43) -#define HID_SMA_WIN_DOCUMENT (HID_SMA_START + 44) -#define HID_SMA_COMMAND_WIN_EDIT (HID_SMA_START + 45) - -#define HID_SMA_PLUSX (HID_SMA_START + 50) -#define HID_SMA_MINUSX (HID_SMA_START + 51) -#define HID_SMA_PLUSMINUSX (HID_SMA_START + 52) -#define HID_SMA_MINUSPLUSX (HID_SMA_START + 53) -#define HID_SMA_NEGX (HID_SMA_START + 54) -#define HID_SMA_XPLUSY (HID_SMA_START + 55) -#define HID_SMA_XMINUSY (HID_SMA_START + 56) -#define HID_SMA_XCDOTY (HID_SMA_START + 57) -#define HID_SMA_XTIMESY (HID_SMA_START + 58) -#define HID_SMA_XSYMTIMESY (HID_SMA_START + 59) -#define HID_SMA_XSYMDIVIDEY (HID_SMA_START + 60) -#define HID_SMA_XDIVY (HID_SMA_START + 61) -#define HID_SMA_XOVERY (HID_SMA_START + 62) -#define HID_SMA_XODIVIDEY (HID_SMA_START + 63) -#define HID_SMA_XODOTY (HID_SMA_START + 64) -#define HID_SMA_XOMINUSY (HID_SMA_START + 65) -#define HID_SMA_XOPLUSY (HID_SMA_START + 66) -#define HID_SMA_XOTIMESY (HID_SMA_START + 67) -#define HID_SMA_XANDY (HID_SMA_START + 68) -#define HID_SMA_XORY (HID_SMA_START + 69) -#define HID_SMA_XEQY (HID_SMA_START + 70) -#define HID_SMA_XNEQY (HID_SMA_START + 71) -#define HID_SMA_XLTY (HID_SMA_START + 72) -#define HID_SMA_XGTY (HID_SMA_START + 73) -#define HID_SMA_XLEY (HID_SMA_START + 74) -#define HID_SMA_XGEY (HID_SMA_START + 75) -#define HID_SMA_XLESLANTY (HID_SMA_START + 76) -#define HID_SMA_XGESLANTY (HID_SMA_START + 77) -#define HID_SMA_XLLY (HID_SMA_START + 78) -#define HID_SMA_XGGY (HID_SMA_START + 79) -#define HID_SMA_XDEFY (HID_SMA_START + 80) -#define HID_SMA_XEQUIVY (HID_SMA_START + 81) -#define HID_SMA_XAPPROXY (HID_SMA_START + 82) -#define HID_SMA_XSIMY (HID_SMA_START + 83) -#define HID_SMA_XSIMEQY (HID_SMA_START + 84) -#define HID_SMA_XPROPY (HID_SMA_START + 85) -#define HID_SMA_XORTHOY (HID_SMA_START + 86) -#define HID_SMA_XPARALLELY (HID_SMA_START + 87) -#define HID_SMA_XTOWARDY (HID_SMA_START + 88) -#define HID_SMA_XTRANSLY (HID_SMA_START + 89) -#define HID_SMA_XTRANSRY (HID_SMA_START + 90) -#define HID_SMA_XINY (HID_SMA_START + 91) -#define HID_SMA_XNOTINY (HID_SMA_START + 92) -#define HID_SMA_XOWNSY (HID_SMA_START + 93) -#define HID_SMA_XUNIONY (HID_SMA_START + 94) -#define HID_SMA_XINTERSECTIONY (HID_SMA_START + 95) -#define HID_SMA_XSETMINUSY (HID_SMA_START + 96) -#define HID_SMA_XSLASHY (HID_SMA_START + 97) -#define HID_SMA_XSUBSETY (HID_SMA_START + 98) -#define HID_SMA_XSUBSETEQY (HID_SMA_START + 99) -#define HID_SMA_XSUPSETY (HID_SMA_START + 100) -#define HID_SMA_XSUPSETEQY (HID_SMA_START + 101) -#define HID_SMA_XNSUBSETY (HID_SMA_START + 102) -#define HID_SMA_XNSUBSETEQY (HID_SMA_START + 103) -#define HID_SMA_XNSUPSETY (HID_SMA_START + 104) -#define HID_SMA_XNSUPSETEQY (HID_SMA_START + 105) -#define HID_SMA_ABSX (HID_SMA_START + 106) -#define HID_SMA_FACTX (HID_SMA_START + 107) -#define HID_SMA_SQRTX (HID_SMA_START + 108) -#define HID_SMA_NROOTXY (HID_SMA_START + 109) -#define HID_SMA_EX (HID_SMA_START + 110) -#define HID_SMA_EXPX (HID_SMA_START + 111) -#define HID_SMA_LNX (HID_SMA_START + 112) -#define HID_SMA_LOGX (HID_SMA_START + 113) -#define HID_SMA_SINX (HID_SMA_START + 114) -#define HID_SMA_COSX (HID_SMA_START + 115) -#define HID_SMA_TANX (HID_SMA_START + 116) -#define HID_SMA_COTX (HID_SMA_START + 117) -#define HID_SMA_ARCSINX (HID_SMA_START + 118) -#define HID_SMA_ARCCOSX (HID_SMA_START + 119) -#define HID_SMA_ARCTANX (HID_SMA_START + 120) -#define HID_SMA_ARCCOTX (HID_SMA_START + 121) -#define HID_SMA_SINHX (HID_SMA_START + 122) -#define HID_SMA_COSHX (HID_SMA_START + 123) -#define HID_SMA_TANHX (HID_SMA_START + 124) -#define HID_SMA_COTHX (HID_SMA_START + 125) -#define HID_SMA_ARSINHX (HID_SMA_START + 126) -#define HID_SMA_ARCOSHX (HID_SMA_START + 127) -#define HID_SMA_ARTANHX (HID_SMA_START + 128) -#define HID_SMA_ARCOTHX (HID_SMA_START + 129) -#define HID_SMA_SUMX (HID_SMA_START + 130) -#define HID_SMA_PRODX (HID_SMA_START + 131) -#define HID_SMA_COPRODX (HID_SMA_START + 132) -#define HID_SMA_LIMX (HID_SMA_START + 133) -#define HID_SMA_LIMINFX (HID_SMA_START + 134) -#define HID_SMA_LIMSUPX (HID_SMA_START + 135) -#define HID_SMA_EXISTS (HID_SMA_START + 136) -#define HID_SMA_FORALL (HID_SMA_START + 137) -#define HID_SMA_NABLA (HID_SMA_START + 138) -#define HID_SMA_INTX (HID_SMA_START + 139) -#define HID_SMA_IINTX (HID_SMA_START + 140) -#define HID_SMA_IIINTX (HID_SMA_START + 141) -#define HID_SMA_LINTX (HID_SMA_START + 142) -#define HID_SMA_LLINTX (HID_SMA_START + 143) -#define HID_SMA_LLLINTX (HID_SMA_START + 144) -#define HID_SMA_FROMX (HID_SMA_START + 145) -#define HID_SMA_TOX (HID_SMA_START + 146) -#define HID_SMA_FROMXTOY (HID_SMA_START + 147) -#define HID_SMA_XCIRCY (HID_SMA_START + 148) -#define HID_SMA_XDIVIDESY (HID_SMA_START + 149) -#define HID_SMA_XNDIVIDESY (HID_SMA_START + 150) -#define HID_SMA_DLARROW (HID_SMA_START + 151) -#define HID_SMA_DLRARROW (HID_SMA_START + 152) -#define HID_SMA_DRARROW (HID_SMA_START + 153) - -#define HID_SMA_MISC_CAT (HID_SMA_START + 154) -#define HID_SMA_UNBINOPS_CAT (HID_SMA_START + 155) -#define HID_SMA_RELATIONS_CAT (HID_SMA_START + 156) -#define HID_SMA_SETOPERATIONS_CAT (HID_SMA_START + 157) -#define HID_SMA_FUNCTIONS_CAT (HID_SMA_START + 158) -#define HID_SMA_OPERATORS_CAT (HID_SMA_START + 159) -#define HID_SMA_ATTRIBUTES_CAT (HID_SMA_START + 160) -#define HID_SMA_BRACKETS_CAT (HID_SMA_START + 161) -#define HID_SMA_FORMAT_CAT (HID_SMA_START + 162) - -#define HID_SMA_OPERATOR_WIN (HID_SMA_START + 163) -#define HID_SMA_UNBINOPS_TBX (HID_SMA_START + 164) -#define HID_SMA_RELATIONS_TBX (HID_SMA_START + 165) -#define HID_SMA_SETOPERATIONS_TBX (HID_SMA_START + 166) -#define HID_SMA_FUNCTIONS_TBX (HID_SMA_START + 167) -#define HID_SMA_OPERATORS_TBX (HID_SMA_START + 168) -#define HID_SMA_ATTRIBUTES_TBX (HID_SMA_START + 169) -#define HID_SMA_BRACKETS_TBX (HID_SMA_START + 170) -#define HID_SMA_FORMAT_TBX (HID_SMA_START + 171) -#define HID_SMA_SELECTION_TBX (HID_SMA_START + 172) -#define HID_SMA_COMMAND_WIN (HID_SMA_START + 173) -#define HID_SMA_MISC_MENU (HID_SMA_START + 174) -#define HID_SMA_FUNCTIONSOTHER1_MENU (HID_SMA_START + 175) - -#define HID_SMA_ACUTEX (HID_SMA_START + 180) -#define HID_SMA_BARX (HID_SMA_START + 181) -#define HID_SMA_BREVEX (HID_SMA_START + 182) -#define HID_SMA_CHECKX (HID_SMA_START + 183) -#define HID_SMA_CIRCLEX (HID_SMA_START + 184) -#define HID_SMA_DOTX (HID_SMA_START + 185) -#define HID_SMA_DDOTX (HID_SMA_START + 186) -#define HID_SMA_DDDOTX (HID_SMA_START + 187) -#define HID_SMA_GRAVEX (HID_SMA_START + 188) -#define HID_SMA_HATX (HID_SMA_START + 189) -#define HID_SMA_TILDEX (HID_SMA_START + 190) -#define HID_SMA_VECX (HID_SMA_START + 191) -#define HID_SMA_UNDERLINEX (HID_SMA_START + 192) -#define HID_SMA_OVERLINEX (HID_SMA_START + 193) -#define HID_SMA_OVERSTRIKEX (HID_SMA_START + 194) -#define HID_SMA_PHANTOMX (HID_SMA_START + 195) -#define HID_SMA_BOLDX (HID_SMA_START + 196) -#define HID_SMA_ITALX (HID_SMA_START + 197) -#define HID_SMA_SIZEXY (HID_SMA_START + 198) -#define HID_SMA_FONTXY (HID_SMA_START + 199) -#define HID_SMA_COLORX (HID_SMA_START + 200) -#define HID_SMA_LRGROUPX (HID_SMA_START + 201) -#define HID_SMA_LRPARENTX (HID_SMA_START + 202) -#define HID_SMA_LRBRACKETX (HID_SMA_START + 203) -#define HID_SMA_LRBRACEX (HID_SMA_START + 204) -#define HID_SMA_LRANGLEX (HID_SMA_START + 205) -#define HID_SMA_LRCEILX (HID_SMA_START + 206) -#define HID_SMA_LRFLOORX (HID_SMA_START + 207) -#define HID_SMA_LRLINEX (HID_SMA_START + 208) -#define HID_SMA_LRDLINEX (HID_SMA_START + 209) -#define HID_SMA_SLRPARENTX (HID_SMA_START + 210) -#define HID_SMA_SLRBRACKETX (HID_SMA_START + 211) -#define HID_SMA_SLRBRACEX (HID_SMA_START + 212) -#define HID_SMA_SLRANGLEX (HID_SMA_START + 213) -#define HID_SMA_SLRCEILX (HID_SMA_START + 214) -#define HID_SMA_SLRFLOORX (HID_SMA_START + 215) -#define HID_SMA_SLRLINEX (HID_SMA_START + 216) -#define HID_SMA_SLRDLINEX (HID_SMA_START + 217) -#define HID_SMA_RSUBX (HID_SMA_START + 218) -#define HID_SMA_RSUPX (HID_SMA_START + 219) -#define HID_SMA_LSUBX (HID_SMA_START + 220) -#define HID_SMA_LSUPX (HID_SMA_START + 221) -#define HID_SMA_SBLANK (HID_SMA_START + 222) -#define HID_SMA_BLANK (HID_SMA_START + 223) -#define HID_SMA_NEWLINE (HID_SMA_START + 224) -#define HID_SMA_BINOMXY (HID_SMA_START + 225) -#define HID_SMA_STACK (HID_SMA_START + 226) -#define HID_SMA_MATRIX (HID_SMA_START + 227) -#define HID_SMA_ALIGNLX (HID_SMA_START + 228) -#define HID_SMA_ALIGNCX (HID_SMA_START + 229) -#define HID_SMA_ALIGNRX (HID_SMA_START + 230) -#define HID_SMA_ALEPH (HID_SMA_START + 231) -#define HID_SMA_EMPTYSET (HID_SMA_START + 232) -#define HID_SMA_RE (HID_SMA_START + 233) -#define HID_SMA_IM (HID_SMA_START + 234) -#define HID_SMA_INFINITY (HID_SMA_START + 235) -#define HID_SMA_PARTIAL (HID_SMA_START + 236) -#define HID_SMA_WP (HID_SMA_START + 237) -#define HID_SMA_DOTSAXIS (HID_SMA_START + 238) -#define HID_SMA_DOTSUP (HID_SMA_START + 239) -#define HID_SMA_DOTSDOWN (HID_SMA_START + 240) -#define HID_SMA_DOTSLOW (HID_SMA_START + 241) -#define HID_SMA_DOTSVERT (HID_SMA_START + 242) -#define HID_SMA_NOSPACE (HID_SMA_START + 243) - -#define HID_SMA_SETN (HID_SMA2_START + 1) -#define HID_SMA_SETZ (HID_SMA2_START + 2) -#define HID_SMA_SETQ (HID_SMA2_START + 3) -#define HID_SMA_SETR (HID_SMA2_START + 4) -#define HID_SMA_SETC (HID_SMA2_START + 5) -#define HID_SMA_WIDEHATX (HID_SMA2_START + 6) -#define HID_SMA_WIDETILDEX (HID_SMA2_START + 7) -#define HID_SMA_WIDEVECX (HID_SMA2_START + 8) -#define HID_SMA_CSUBX (HID_SMA2_START + 9) -#define HID_SMA_CSUPX (HID_SMA2_START + 10) -#define HID_SMA_HBAR (HID_SMA2_START + 11) -#define HID_SMA_LAMBDABAR (HID_SMA2_START + 12) -#define HID_SMA_LEFTARROW (HID_SMA2_START + 13) -#define HID_SMA_RIGHTARROW (HID_SMA2_START + 14) -#define HID_SMA_UPARROW (HID_SMA2_START + 15) -#define HID_SMA_DOWNARROW (HID_SMA2_START + 16) - -#define HID_SMA_DEFAULT_DIST (HID_SMA2_START + 17) -#define HID_SMA_LINE_DIST (HID_SMA2_START + 18) -#define HID_SMA_ROOT_DIST (HID_SMA2_START + 19) -#define HID_SMA_SUP_DIST (HID_SMA2_START + 20) -#define HID_SMA_SUB_DIST (HID_SMA2_START + 21) -#define HID_SMA_NUMERATOR_DIST (HID_SMA2_START + 22) -#define HID_SMA_DENOMINATOR_DIST (HID_SMA2_START + 23) -#define HID_SMA_FRACLINE_EXCWIDTH (HID_SMA2_START + 24) -#define HID_SMA_FRACLINE_LINEWIDTH (HID_SMA2_START + 25) -#define HID_SMA_UPPERLIMIT_DIST (HID_SMA2_START + 26) -#define HID_SMA_LOWERLIMIT_DIST (HID_SMA2_START + 27) -#define HID_SMA_BRACKET_EXCHEIGHT (HID_SMA2_START + 28) -#define HID_SMA_BRACKET_DIST (HID_SMA2_START + 29) -#define HID_SMA_MATRIXROW_DIST (HID_SMA2_START + 30) -#define HID_SMA_MATRIXCOL_DIST (HID_SMA2_START + 31) -#define HID_SMA_ATTRIBUT_DIST (HID_SMA2_START + 32) -#define HID_SMA_INTERATTRIBUT_DIST (HID_SMA2_START + 33) -#define HID_SMA_OPERATOR_EXCHEIGHT (HID_SMA2_START + 34) -#define HID_SMA_OPERATOR_DIST (HID_SMA2_START + 35) -#define HID_SMA_LEFTBORDER_DIST (HID_SMA2_START + 36) -#define HID_SMA_RIGHTBORDER_DIST (HID_SMA2_START + 37) -#define HID_SMA_UPPERBORDER_DIST (HID_SMA2_START + 38) -#define HID_SMA_LOWERBORDER_DIST (HID_SMA2_START + 39) -#define HID_SMA_SCALE_ALL_BRACKETS (HID_SMA2_START + 40) -#define HID_SMA_BRACKET_EXCHEIGHT2 (HID_SMA2_START + 41) -#define HID_SMA_LMRANGLEXY (HID_SMA2_START + 42) -#define HID_SMA_SLMRANGLEXY (HID_SMA2_START + 43) -#define HID_SMA_XWIDESLASHY (HID_SMA2_START + 44) -#define HID_SMA_XWIDEBSLASHY (HID_SMA2_START + 45) -#define HID_SMA_XOVERBRACEY (HID_SMA2_START + 46) -#define HID_SMA_XUNDERBRACEY (HID_SMA2_START + 47) -#define HID_SMA_LRDBRACKETX (HID_SMA2_START + 48) -#define HID_SMA_SLRDBRACKETX (HID_SMA2_START + 49) - -#define HID_SMA_CONTROL_SYMBOLSET_VIEW (HID_SMA2_START + 50) -#define HID_SMA_CONTROL_FONTCHAR_VIEW (HID_SMA2_START + 51) - #define BMP_ARROW_RIGHT 1 #define MN_WIN 60 diff --git a/starmath/source/cfgitem.cxx b/starmath/source/cfgitem.cxx index 2e00505920..5973e8b0d6 100644 --- a/starmath/source/cfgitem.cxx +++ b/starmath/source/cfgitem.cxx @@ -48,8 +48,6 @@ static const char* aRootName = "Office.Math"; #define SYMBOL_LIST "SymbolList" #define FONT_FORMAT_LIST "FontFormatList" -SV_IMPL_OBJARR( SmFntFmtListEntryArr, SmFntFmtListEntry ); - ///////////////////////////////////////////////////////////////// @@ -294,10 +292,9 @@ SmFontFormatList::SmFontFormatList() void SmFontFormatList::Clear() { - USHORT nCnt = aEntries.Count(); - if (nCnt) + if (!aEntries.empty()) { - aEntries.Remove( 0, nCnt ); + aEntries.clear(); SetModified( TRUE ); } } @@ -311,7 +308,7 @@ void SmFontFormatList::AddFontFormat( const String &rFntFmtId, if (!pFntFmt) { SmFntFmtListEntry aEntry( rFntFmtId, rFntFmt ); - aEntries.Insert( aEntry, aEntries.Count() ); + aEntries.push_back( aEntry ); SetModified( TRUE ); } } @@ -319,35 +316,32 @@ void SmFontFormatList::AddFontFormat( const String &rFntFmtId, void SmFontFormatList::RemoveFontFormat( const String &rFntFmtId ) { - USHORT nPos = 0xFFFF; - + // search for entry - USHORT nCnt = aEntries.Count(); - for (USHORT i = 0; i < nCnt && nPos == 0xFFFF; ++i) + for (size_t i = 0; i < aEntries.size(); ++i) { if (aEntries[i].aId == rFntFmtId) - nPos = i; - } - - // remove entry if found - if (nPos != 0xFFFF) - { - aEntries.Remove( nPos ); - SetModified( TRUE ); + { + // remove entry if found + aEntries.erase( aEntries.begin() + i ); + SetModified( TRUE ); + break; + } } } const SmFontFormat * SmFontFormatList::GetFontFormat( const String &rFntFmtId ) const { - SmFontFormat *pRes = 0; + const SmFontFormat *pRes = 0; - USHORT nCnt = aEntries.Count(); - USHORT i; - for (i = 0; i < nCnt && !pRes; ++i) + for (size_t i = 0; i < aEntries.size(); ++i) { if (aEntries[i].aId == rFntFmtId) + { pRes = &aEntries[i].aFntFmt; + break; + } } return pRes; @@ -355,11 +349,11 @@ const SmFontFormat * SmFontFormatList::GetFontFormat( const String &rFntFmtId ) -const SmFontFormat * SmFontFormatList::GetFontFormat( USHORT nPos ) const +const SmFontFormat * SmFontFormatList::GetFontFormat( size_t nPos ) const { - SmFontFormat *pRes = 0; - if (nPos < aEntries.Count()) - pRes = &aEntries[ nPos ].aFntFmt; + const SmFontFormat *pRes = 0; + if (nPos < aEntries.size()) + pRes = &aEntries[nPos].aFntFmt; return pRes; } @@ -368,12 +362,13 @@ const String SmFontFormatList::GetFontFormatId( const SmFontFormat &rFntFmt ) co { String aRes; - USHORT nCnt = aEntries.Count(); - USHORT i; - for (i = 0; i < nCnt && 0 == aRes.Len(); ++i) + for (size_t i = 0; i < aEntries.size(); ++i) { - if (aEntries[i].aFntFmt == rFntFmt) + if (aEntries[i].aFntFmt == rFntFmt) + { aRes = aEntries[i].aId; + break; + } } return aRes; @@ -392,10 +387,10 @@ const String SmFontFormatList::GetFontFormatId( const SmFontFormat &rFntFmt, BOO } -const String SmFontFormatList::GetFontFormatId( USHORT nPos ) const +const String SmFontFormatList::GetFontFormatId( size_t nPos ) const { String aRes; - if (nPos < aEntries.Count()) + if (nPos < aEntries.size()) aRes = aEntries[nPos].aId; return aRes; } @@ -409,12 +404,15 @@ const String SmFontFormatList::GetNewFontFormatId() const String aPrefix( RTL_CONSTASCII_STRINGPARAM( "Id" ) ); INT32 nCnt = GetCount(); - for (INT32 i = 1; i <= nCnt + 1 && 0 == aRes.Len(); ++i) + for (INT32 i = 1; i <= nCnt + 1; ++i) { String aTmpId( aPrefix ); aTmpId += String::CreateFromInt32( i ); if (!GetFontFormat( aTmpId )) + { aRes = aTmpId; + break; + } } DBG_ASSERT( 0 != aRes.Len(), "failed to create new FontFormatId" ); @@ -767,14 +765,14 @@ void SmMathConfig::SaveFontFormatList() Sequence< OUString > aNames = lcl_GetFontPropertyNames(); INT32 nSymbolProps = aNames.getLength(); - USHORT nCount = rFntFmtList.GetCount(); + size_t nCount = rFntFmtList.GetCount(); Sequence< PropertyValue > aValues( nCount * nSymbolProps ); PropertyValue *pValues = aValues.getArray(); PropertyValue *pVal = pValues; OUString aDelim( OUString::valueOf( (sal_Unicode) '/' ) ); - for (USHORT i = 0; i < nCount; ++i) + for (size_t i = 0; i < nCount; ++i) { String aFntFmtId( rFntFmtList.GetFontFormatId( i ) ); const SmFontFormat aFntFmt( *rFntFmtList.GetFontFormat( aFntFmtId ) ); @@ -817,7 +815,8 @@ void SmMathConfig::SaveFontFormatList() pVal->Value <<= (INT16) aFntFmt.nItalic; pVal++; } - DBG_ASSERT( pVal - pValues == nCount * nSymbolProps, "properties missing" ); + DBG_ASSERT( static_cast<size_t>(pVal - pValues) == (nCount * nSymbolProps), + "properties missing" ); ReplaceSetProperties( A2OU( FONT_FORMAT_LIST ) , aValues ); rFntFmtList.SetModified( FALSE ); @@ -826,13 +825,12 @@ void SmMathConfig::SaveFontFormatList() void SmMathConfig::StripFontFormatList( const std::vector< SmSym > &rSymbols ) { - size_t nCount = rSymbols.size(); - USHORT i; + size_t i; // build list of used font-formats only //!! font-format IDs may be different !! SmFontFormatList aUsedList; - for (i = 0; i < nCount; ++i) + for (i = 0; i < rSymbols.size(); ++i) { DBG_ASSERT( rSymbols[i].GetName().Len() > 0, "non named symbol" ); aUsedList.GetFontFormatId( SmFontFormat( rSymbols[i].GetFace() ) , TRUE ); @@ -845,14 +843,14 @@ void SmMathConfig::StripFontFormatList( const std::vector< SmSym > &rSymbols ) // remove unused font-formats from list SmFontFormatList &rFntFmtList = GetFontFormatList(); - USHORT nCnt = rFntFmtList.GetCount(); + size_t nCnt = rFntFmtList.GetCount(); SmFontFormat *pTmpFormat = new SmFontFormat[ nCnt ]; String *pId = new String [ nCnt ]; - INT32 k; + size_t k; for (k = 0; k < nCnt; ++k) { - pTmpFormat[k] = *rFntFmtList.GetFontFormat( (USHORT) k ); - pId[k] = rFntFmtList.GetFontFormatId( (USHORT) k ); + pTmpFormat[k] = *rFntFmtList.GetFontFormat( k ); + pId[k] = rFntFmtList.GetFontFormatId( k ); } for (k = 0; k < nCnt; ++k) { diff --git a/starmath/source/cfgitem.hxx b/starmath/source/cfgitem.hxx index be28437dd0..824b65f85b 100644 --- a/starmath/source/cfgitem.hxx +++ b/starmath/source/cfgitem.hxx @@ -32,6 +32,7 @@ #ifndef _MATH_CFGITEM_HXX_ #define _MATH_CFGITEM_HXX_ +#include <deque> #include <vector> #include <com/sun/star/beans/PropertyValues.hpp> @@ -41,7 +42,6 @@ #include <tools/solar.h> #include <rtl/ustring.hxx> #include <unotools/configitem.hxx> -#include <svl/svarray.hxx> #include <vcl/timer.hxx> #include <symbol.hxx> @@ -82,14 +82,10 @@ struct SmFntFmtListEntry SmFntFmtListEntry( const String &rId, const SmFontFormat &rFntFmt ); }; - -SV_DECL_OBJARR( SmFntFmtListEntryArr, SmFntFmtListEntry, 8, 8 ) - - class SmFontFormatList { - SmFntFmtListEntryArr aEntries; - BOOL bModified; + std::deque<SmFntFmtListEntry> aEntries; + BOOL bModified; // disallow copy-constructor and assignment-operator for now SmFontFormatList( const SmFontFormatList & ); @@ -103,12 +99,12 @@ public: void RemoveFontFormat( const String &rFntFmtId ); const SmFontFormat * GetFontFormat( const String &rFntFmtId ) const; - const SmFontFormat * GetFontFormat( USHORT nPos ) const; + const SmFontFormat * GetFontFormat( size_t nPos ) const; const String GetFontFormatId( const SmFontFormat &rFntFmt ) const; const String GetFontFormatId( const SmFontFormat &rFntFmt, BOOL bAdd ); - const String GetFontFormatId( USHORT nPos ) const; + const String GetFontFormatId( size_t nPos ) const; const String GetNewFontFormatId() const; - USHORT GetCount() const { return aEntries.Count(); } + size_t GetCount() const { return aEntries.size(); } BOOL IsModified() const { return bModified; } void SetModified( BOOL bVal ) { bModified = bVal; } diff --git a/starmath/source/dialog.cxx b/starmath/source/dialog.cxx index 095c39fa75..84cfd95186 100755..100644 --- a/starmath/source/dialog.cxx +++ b/starmath/source/dialog.cxx @@ -765,7 +765,7 @@ IMPL_LINK( SmDistanceDialog, CheckBoxClickHdl, CheckBox *, pCheckBox ) } -void SmDistanceDialog::SetHelpId(MetricField &rField, ULONG nHelpId) +void SmDistanceDialog::SetHelpId(MetricField &rField, const rtl::OString& sHelpId) { //! HelpID's die auf diese Weise explizit gesetzt werden, muessen im //! util Verzeichnis im File "hidother.src" mit Hilfe von "hidspecial" @@ -776,7 +776,7 @@ void SmDistanceDialog::SetHelpId(MetricField &rField, ULONG nHelpId) DBG_ASSERT(aEmptyText.Len() == 0, "Sm: Ooops..."); #endif - rField.SetHelpId(nHelpId); + rField.SetHelpId(sHelpId); rField.SetHelpText(aEmptyText); // since MetricField inherits from SpinField which has a sub Edit field @@ -784,7 +784,8 @@ void SmDistanceDialog::SetHelpId(MetricField &rField, ULONG nHelpId) // for it too. Edit *pSubEdit = rField.GetSubEdit(); if (pSubEdit) - { pSubEdit->SetHelpId(nHelpId); + { + pSubEdit->SetHelpId(sHelpId); pSubEdit->SetHelpText(aEmptyText); } } @@ -802,7 +803,7 @@ void SmDistanceDialog::SetCategory(USHORT nCategory) #if OSL_DEBUG_LEVEL > 1 DBG_ASSERT(NOCATEGORIES == 10, "Sm : Array passt nicht zu Anzahl der Kategorien"); #endif - ULONG __READONLY_DATA aCatMf2Hid[10][4] = + const char* __READONLY_DATA aCatMf2Hid[10][4] = { { HID_SMA_DEFAULT_DIST, HID_SMA_LINE_DIST, HID_SMA_ROOT_DIST, 0 }, { HID_SMA_SUP_DIST, HID_SMA_SUB_DIST , 0, 0 }, diff --git a/starmath/source/document.cxx b/starmath/source/document.cxx index 94bd3e51e3..ba7ee7ad3b 100644 --- a/starmath/source/document.cxx +++ b/starmath/source/document.cxx @@ -38,6 +38,8 @@ #include <comphelper/storagehelper.hxx> #include <rtl/logfile.hxx> #include <rtl/ustring.hxx> +#include <unotools/eventcfg.hxx> +#include <sfx2/event.hxx> #include <sfx2/app.hxx> #include <sfx2/dispatch.hxx> #include <sfx2/docfile.hxx> @@ -180,7 +182,14 @@ void SmDocShell::SetText(const String& rBuffer) { pViewSh->GetViewFrame()->GetBindings().Invalidate(SID_TEXT); if ( SFX_CREATE_MODE_EMBEDDED == GetCreateMode() ) + { + // have SwOleClient::FormatChanged() to align the modified formula properly + // even if the vis area does not change (e.g. when formula text changes from + // "{a over b + c} over d" to "d over {a over b + c}" + SFX_APP()->NotifyEvent(SfxEventHint( SFX_EVENT_VISAREACHANGED, GlobalEventConfig::GetEventName(STR_EVENT_VISAREACHANGED), this)); + Repaint(); + } else pViewSh->GetGraphicWindow().Invalidate(); } diff --git a/starmath/source/node.cxx b/starmath/source/node.cxx index 1bb3b6a925..3f0c892b36 100755 --- a/starmath/source/node.cxx +++ b/starmath/source/node.cxx @@ -573,6 +573,13 @@ const SmNode * SmNode::FindNodeWithAccessibleIndex(xub_StrLen nAccIdx) const return pResult; } + +long SmNode::GetFormulaBaseline() const +{ + DBG_ASSERT( 0, "This dummy implementation should not have been called." ); + return 0; +} + /////////////////////////////////////////////////////////////////////////// SmStructureNode::SmStructureNode( const SmStructureNode &rNode ) : @@ -763,7 +770,7 @@ void SmTableNode::Arrange(const OutputDevice &rDev, const SmFormat &rFormat) } Point aPos; - SmRect::operator = (SmRect(nMaxWidth, 0)); + SmRect::operator = (SmRect(nMaxWidth, 1)); for (i = 0; i < nSize; i++) { if (NULL != (pNode = GetSubNode(i))) { const SmRect &rNodeRect = pNode->GetRect(); @@ -779,6 +786,22 @@ void SmTableNode::Arrange(const OutputDevice &rDev, const SmFormat &rFormat) ExtendBy(rNodeRect, nSize > 1 ? RCP_NONE : RCP_ARG); } } + // --> 4.7.2010 #i972# + if (HasBaseline()) + nFormulaBaseline = GetBaseline(); + else + { + SmTmpDevice aTmpDev ((OutputDevice &) rDev, TRUE); + aTmpDev.SetFont(GetFont()); + + SmRect aRect = (SmRect(aTmpDev, &rFormat, C2S("a"), + GetFont().GetBorderWidth())); + nFormulaBaseline = GetAlignM(); + // move from middle position by constant - distance + // between middle and baseline for single letter + nFormulaBaseline += aRect.GetBaseline() - aRect.GetAlignM(); + } + // <-- } @@ -788,6 +811,12 @@ SmNode * SmTableNode::GetLeftMost() } +long SmTableNode::GetFormulaBaseline() const +{ + return nFormulaBaseline; +} + + /**************************************************************************/ @@ -818,20 +847,21 @@ void SmLineNode::Arrange(const OutputDevice &rDev, const SmFormat &rFormat) SmTmpDevice aTmpDev ((OutputDevice &) rDev, TRUE); aTmpDev.SetFont(GetFont()); - // provide an empty rectangle with alignment parameters for the "current" - // font (in order to make "a^1 {}_2^3 a_4" work correct, that is, have the - // same sub-/supscript positions.) - //! be sure to use a character that has explicitly defined HiAttribut - //! line in rect.cxx such as 'a' in order to make 'vec a' look same to - //! 'vec {a}'. - SmRect::operator = (SmRect(aTmpDev, &rFormat, C2S("a"), - GetFont().GetBorderWidth())); - // make sure that the rectangle occupies (almost) no space - SetWidth(1); - SetItalicSpaces(0, 0); - if (nSize < 1) + { + // provide an empty rectangle with alignment parameters for the "current" + // font (in order to make "a^1 {}_2^3 a_4" work correct, that is, have the + // same sub-/supscript positions.) + //! be sure to use a character that has explicitly defined HiAttribut + //! line in rect.cxx such as 'a' in order to make 'vec a' look same to + //! 'vec {a}'. + SmRect::operator = (SmRect(aTmpDev, &rFormat, C2S("a"), + GetFont().GetBorderWidth())); + // make sure that the rectangle occupies (almost) no space + SetWidth(1); + SetItalicSpaces(0, 0); return; + } // make distance depend on font size long nDist = (rFormat.GetDistance(DIS_HORIZONTAL) * GetFont().GetSize().Height()) / 100L; @@ -839,14 +869,17 @@ void SmLineNode::Arrange(const OutputDevice &rDev, const SmFormat &rFormat) nDist = 0; Point aPos; - for (i = 0; i < nSize; i++) + // copy the first node into LineNode and extend by the others + if (NULL != (pNode = GetSubNode(0))) + SmRect::operator = (pNode->GetRect()); + + for (i = 1; i < nSize; i++) if (NULL != (pNode = GetSubNode(i))) { aPos = pNode->AlignTo(*this, RP_RIGHT, RHA_CENTER, RVA_BASELINE); - // no horizontal space before first node - if (i) - aPos.X() += nDist; + // add horizontal space to the left for each but the first sub node + aPos.X() += nDist; pNode->MoveTo(aPos); ExtendBy( *pNode, RCP_XOR ); diff --git a/starmath/source/smmod.cxx b/starmath/source/smmod.cxx index ca4bcf9792..d4754a4d21 100644 --- a/starmath/source/smmod.cxx +++ b/starmath/source/smmod.cxx @@ -336,16 +336,6 @@ void SmModule::GetState(SfxItemSet &rSet) } } -void SmModule::FillStatusBar(StatusBar &rBar) -{ - rBar.InsertItem(SID_TEXTSTATUS, 300, SIB_LEFT | SIB_IN); - rBar.InsertItem(SID_ATTR_ZOOM, rBar.GetTextWidth(C2S(" 100% "))); - rBar.InsertItem(SID_MODIFYSTATUS, rBar.GetTextWidth(C2S(" * "))); - rBar.InsertItem( SID_SIGNATURE, XmlSecStatusBarControl::GetDefItemWidth( rBar ), SIB_USERDRAW ); - rBar.SetHelpId(SID_SIGNATURE, SID_SIGNATURE); - -} - /* -----------------15.02.99 12:45------------------- * * --------------------------------------------------*/ diff --git a/starmath/source/smres.src b/starmath/source/smres.src index 72b0c20794..2678f58f66 100755..100644 --- a/starmath/source/smres.src +++ b/starmath/source/smres.src @@ -30,6 +30,8 @@ #include <svx/globlmn.hrc> #include "starmath.hrc" #include "dialog.hrc" +#include "toolbox.hrc" +#include "smcommands.h" #define IMAGE_STDBTN_COLOR Color { Red = 0xff00; Green = 0x0000; Blue = 0xff00; } #define IMAGE_STDBTN_COLOR_HC IMAGE_STDBTN_COLOR @@ -41,6 +43,7 @@ ModalDialog RID_FONTDIALOG { + HelpID = "starmath:ModalDialog:RID_FONTDIALOG"; Moveable = TRUE ; OutputSize = TRUE ; SVLook = TRUE ; @@ -55,6 +58,7 @@ ModalDialog RID_FONTDIALOG }; ComboBox 1 { + HelpID = "starmath:ComboBox:RID_FONTDIALOG:1"; Pos = MAP_APPFONT ( 6 , 17 ) ; Size = MAP_APPFONT ( 111 , 60 ) ; TabStop = TRUE ; @@ -63,6 +67,7 @@ ModalDialog RID_FONTDIALOG }; CheckBox 1 { + HelpID = "starmath:CheckBox:RID_FONTDIALOG:1"; TabStop = TRUE ; Pos = MAP_APPFONT ( 60 , 84 ) ; Size = MAP_APPFONT ( 33 , 10 ) ; @@ -70,6 +75,7 @@ ModalDialog RID_FONTDIALOG }; CheckBox 2 { + HelpID = "starmath:CheckBox:RID_FONTDIALOG:2"; TabStop = TRUE ; Pos = MAP_APPFONT ( 60 , 97 ) ; Size = MAP_APPFONT ( 33 , 10 ) ; @@ -108,7 +114,7 @@ ModalDialog RID_FONTSIZEDIALOG Moveable = TRUE ; OutputSize = TRUE ; SVLook = TRUE ; - HelpID = SID_FONTSIZE ; + HelpId = CMD_SID_FONTSIZE ; Size = MAP_APPFONT ( 171 , 120 ) ; Text [ en-US ] = "Font Sizes" ; FixedText 1 @@ -120,6 +126,7 @@ ModalDialog RID_FONTSIZEDIALOG }; MetricField 1 { + HelpID = "starmath:MetricField:RID_FONTSIZEDIALOG:1"; Border = TRUE ; Pos = MAP_APPFONT ( 57 , 6 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -140,6 +147,7 @@ ModalDialog RID_FONTSIZEDIALOG }; MetricField 4 { + HelpID = "starmath:MetricField:RID_FONTSIZEDIALOG:4"; Border = TRUE ; Pos = MAP_APPFONT ( 57 , 36 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -161,6 +169,7 @@ ModalDialog RID_FONTSIZEDIALOG }; MetricField 5 { + HelpID = "starmath:MetricField:RID_FONTSIZEDIALOG:5"; Border = TRUE ; Pos = MAP_APPFONT ( 57 , 51 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -182,6 +191,7 @@ ModalDialog RID_FONTSIZEDIALOG }; MetricField 6 { + HelpID = "starmath:MetricField:RID_FONTSIZEDIALOG:6"; Border = TRUE ; Pos = MAP_APPFONT ( 57 , 66 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -203,6 +213,7 @@ ModalDialog RID_FONTSIZEDIALOG }; MetricField 7 { + HelpID = "starmath:MetricField:RID_FONTSIZEDIALOG:7"; Border = TRUE ; Pos = MAP_APPFONT ( 57 , 81 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -224,6 +235,7 @@ ModalDialog RID_FONTSIZEDIALOG }; MetricField 8 { + HelpID = "starmath:MetricField:RID_FONTSIZEDIALOG:8"; Border = TRUE ; Pos = MAP_APPFONT ( 57 , 96 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -257,6 +269,7 @@ ModalDialog RID_FONTSIZEDIALOG }; PushButton 1 { + HelpID = "starmath:PushButton:RID_FONTSIZEDIALOG:1"; TabStop = TRUE ; Pos = MAP_APPFONT ( 114 , 45 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; @@ -268,7 +281,7 @@ ModalDialog RID_FONTTYPEDIALOG { OutputSize = TRUE ; SVLook = TRUE ; - HelpID = SID_FONT ; + HelpId = CMD_SID_FONT ; Size = MAP_APPFONT ( 282 , 153 ) ; Text [ en-US ] = "Fonts" ; Moveable = TRUE ; @@ -293,6 +306,7 @@ ModalDialog RID_FONTTYPEDIALOG }; ListBox 1 { + HelpID = "starmath:ListBox:RID_FONTTYPEDIALOG:1"; Border = TRUE ; Pos = MAP_APPFONT ( 54 , 18 ) ; Size = MAP_APPFONT ( 150 , 69 ) ; @@ -308,6 +322,7 @@ ModalDialog RID_FONTTYPEDIALOG }; ListBox 2 { + HelpID = "starmath:ListBox:RID_FONTTYPEDIALOG:2"; Border = TRUE ; Pos = MAP_APPFONT ( 54 , 33 ) ; Size = MAP_APPFONT ( 150 , 69 ) ; @@ -323,6 +338,7 @@ ModalDialog RID_FONTTYPEDIALOG }; ListBox 3 { + HelpID = "starmath:ListBox:RID_FONTTYPEDIALOG:3"; Border = TRUE ; Pos = MAP_APPFONT ( 54 , 48 ) ; Size = MAP_APPFONT ( 150 , 69 ) ; @@ -338,6 +354,7 @@ ModalDialog RID_FONTTYPEDIALOG }; ListBox 4 { + HelpID = "starmath:ListBox:RID_FONTTYPEDIALOG:4"; Border = TRUE ; Pos = MAP_APPFONT ( 54 , 63 ) ; Size = MAP_APPFONT ( 150 , 69 ) ; @@ -353,6 +370,7 @@ ModalDialog RID_FONTTYPEDIALOG }; ListBox 5 { + HelpID = "starmath:ListBox:RID_FONTTYPEDIALOG:5"; Border = TRUE ; Pos = MAP_APPFONT ( 54 , 96 ) ; Size = MAP_APPFONT ( 150 , 69 ) ; @@ -368,6 +386,7 @@ ModalDialog RID_FONTTYPEDIALOG }; ListBox 6 { + HelpID = "starmath:ListBox:RID_FONTTYPEDIALOG:6"; Border = TRUE ; Pos = MAP_APPFONT ( 54 , 111 ) ; Size = MAP_APPFONT ( 150 , 69 ) ; @@ -383,6 +402,7 @@ ModalDialog RID_FONTTYPEDIALOG }; ListBox 7 { + HelpID = "starmath:ListBox:RID_FONTTYPEDIALOG:7"; Border = TRUE ; Pos = MAP_APPFONT ( 54 , 126 ) ; Size = MAP_APPFONT ( 150 , 69 ) ; @@ -404,6 +424,7 @@ ModalDialog RID_FONTTYPEDIALOG }; MenuButton 1 { + HelpID = "starmath:MenuButton:RID_FONTTYPEDIALOG:1"; TabStop = TRUE ; ButtonMenu = Menu , RID_FONTMENU ; Pos = MAP_APPFONT ( 225 , 48 ) ; @@ -412,6 +433,7 @@ ModalDialog RID_FONTTYPEDIALOG }; PushButton 2 { + HelpID = "starmath:PushButton:RID_FONTTYPEDIALOG:2"; TabStop = TRUE ; Pos = MAP_APPFONT ( 225 , 66 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; @@ -424,7 +446,7 @@ ModalDialog RID_DISTANCEDIALOG Moveable = TRUE ; OutputSize = TRUE ; SVLook = TRUE ; - HelpID = SID_DISTANCE ; + HelpId = CMD_SID_DISTANCE ; Size = MAP_APPFONT ( 240 , 90 ) ; Text [ en-US ] = "Spacing" ; FixedText 1 @@ -435,6 +457,7 @@ ModalDialog RID_DISTANCEDIALOG }; MetricField 1 { + HelpID = "starmath:MetricField:RID_DISTANCEDIALOG:1"; Border = TRUE ; TabStop = TRUE ; Left = TRUE ; @@ -455,6 +478,7 @@ ModalDialog RID_DISTANCEDIALOG }; MetricField 2 { + HelpID = "starmath:MetricField:RID_DISTANCEDIALOG:2"; Border = TRUE ; TabStop = TRUE ; Left = TRUE ; @@ -467,6 +491,7 @@ ModalDialog RID_DISTANCEDIALOG }; CheckBox 1 { + HelpID = "starmath:CheckBox:RID_DISTANCEDIALOG:1"; TabStop = TRUE ; Pos = MAP_APPFONT ( 12 , 55 ) ; Size = MAP_APPFONT ( 110 , 12 ) ; @@ -482,6 +507,7 @@ ModalDialog RID_DISTANCEDIALOG }; MetricField 3 { + HelpID = "starmath:MetricField:RID_DISTANCEDIALOG:3"; Border = TRUE ; TabStop = TRUE ; Left = TRUE ; @@ -502,6 +528,7 @@ ModalDialog RID_DISTANCEDIALOG }; MetricField 4 { + HelpID = "starmath:MetricField:RID_DISTANCEDIALOG:4"; Border = TRUE ; TabStop = TRUE ; Left = TRUE ; @@ -527,6 +554,7 @@ ModalDialog RID_DISTANCEDIALOG }; PushButton 1 { + HelpID = "starmath:PushButton:RID_DISTANCEDIALOG:1"; TabStop = TRUE ; Pos = MAP_APPFONT ( 184 , 69 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; @@ -534,6 +562,7 @@ ModalDialog RID_DISTANCEDIALOG }; MenuButton 1 { + HelpID = "starmath:MenuButton:RID_DISTANCEDIALOG:1"; TabStop = TRUE ; ButtonMenu = Menu , RID_DISTANCEMENU ; Pos = MAP_APPFONT ( 184 , 51 ) ; @@ -918,11 +947,12 @@ ModalDialog RID_ALIGNDIALOG Moveable = TRUE ; OutputSize = TRUE ; SVLook = TRUE ; - HelpID = SID_ALIGN ; + HelpId = CMD_SID_ALIGN ; Size = MAP_APPFONT ( 139 , 66 ) ; Text [ en-US ] = "Alignment" ; RadioButton 1 { + HelpID = "starmath:RadioButton:RID_ALIGNDIALOG:1"; TabStop = TRUE ; Pos = MAP_APPFONT ( 12 , 17 ) ; Size = MAP_APPFONT ( 60 , 10 ) ; @@ -930,6 +960,7 @@ ModalDialog RID_ALIGNDIALOG }; RadioButton 2 { + HelpID = "starmath:RadioButton:RID_ALIGNDIALOG:2"; TabStop = TRUE ; Pos = MAP_APPFONT ( 12 , 31 ) ; Size = MAP_APPFONT ( 60 , 10 ) ; @@ -937,6 +968,7 @@ ModalDialog RID_ALIGNDIALOG }; RadioButton 3 { + HelpID = "starmath:RadioButton:RID_ALIGNDIALOG:3"; TabStop = TRUE ; Pos = MAP_APPFONT ( 12 , 44 ) ; Size = MAP_APPFONT ( 60 , 10 ) ; @@ -963,6 +995,7 @@ ModalDialog RID_ALIGNDIALOG }; PushButton 1 { + HelpID = "starmath:PushButton:RID_ALIGNDIALOG:1"; TabStop = TRUE ; Pos = MAP_APPFONT ( 83 , 46 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; @@ -972,6 +1005,7 @@ ModalDialog RID_ALIGNDIALOG TabPage RID_PRINTOPTIONPAGE { + HelpID = "starmath:TabPage:RID_PRINTOPTIONPAGE"; OutputSize = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 260 , 185 ) ; @@ -984,6 +1018,7 @@ TabPage RID_PRINTOPTIONPAGE }; CheckBox CB_TITLEROW { + HelpID = "starmath:CheckBox:RID_PRINTOPTIONPAGE:CB_TITLEROW"; TabStop = TRUE ; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 68 , 10 ) ; @@ -991,6 +1026,7 @@ TabPage RID_PRINTOPTIONPAGE }; CheckBox CB_EQUATION_TEXT { + HelpID = "starmath:CheckBox:RID_PRINTOPTIONPAGE:CB_EQUATION_TEXT"; TabStop = TRUE ; Pos = MAP_APPFONT ( 12 , 28 ) ; Size = MAP_APPFONT ( 68 , 10 ) ; @@ -998,6 +1034,7 @@ TabPage RID_PRINTOPTIONPAGE }; CheckBox CB_FRAME { + HelpID = "starmath:CheckBox:RID_PRINTOPTIONPAGE:CB_FRAME"; TabStop = TRUE ; Pos = MAP_APPFONT ( 12 , 42 ) ; Size = MAP_APPFONT ( 68 , 10 ) ; @@ -1011,6 +1048,7 @@ TabPage RID_PRINTOPTIONPAGE }; RadioButton RB_ORIGINAL_SIZE { + HelpID = "starmath:RadioButton:RID_PRINTOPTIONPAGE:RB_ORIGINAL_SIZE"; TabStop = TRUE ; Pos = MAP_APPFONT ( 12 , 69 ) ; Size = MAP_APPFONT ( 90 , 10 ) ; @@ -1018,6 +1056,7 @@ TabPage RID_PRINTOPTIONPAGE }; RadioButton RB_FIT_TO_PAGE { + HelpID = "starmath:RadioButton:RID_PRINTOPTIONPAGE:RB_FIT_TO_PAGE"; TabStop = TRUE ; Pos = MAP_APPFONT ( 12 , 83 ) ; Size = MAP_APPFONT ( 90 , 10 ) ; @@ -1025,6 +1064,7 @@ TabPage RID_PRINTOPTIONPAGE }; RadioButton RB_ZOOM { + HelpID = "starmath:RadioButton:RID_PRINTOPTIONPAGE:RB_ZOOM"; Pos = MAP_APPFONT ( 12 , 97 ) ; Size = MAP_APPFONT ( 90 , 10 ) ; Text [ en-US ] = "~Scaling" ; @@ -1032,6 +1072,7 @@ TabPage RID_PRINTOPTIONPAGE }; MetricField MF_ZOOM { + HelpID = "starmath:MetricField:RID_PRINTOPTIONPAGE:MF_ZOOM"; Border = TRUE ; Pos = MAP_APPFONT ( 18 , 111 ) ; Size = MAP_APPFONT ( 30 , 12 ) ; @@ -1052,6 +1093,7 @@ TabPage RID_PRINTOPTIONPAGE }; CheckBox CB_IGNORE_SPACING { + HelpID = "starmath:CheckBox:RID_PRINTOPTIONPAGE:CB_IGNORE_SPACING"; TabStop = TRUE ; Pos = MAP_APPFONT ( 12 , 140 ) ; Size = MAP_APPFONT ( 236 , 10 ) ; @@ -1061,6 +1103,7 @@ TabPage RID_PRINTOPTIONPAGE ModalDialog RID_SYMBOLDIALOG { + HelpID = "starmath:ModalDialog:RID_SYMBOLDIALOG"; OutputSize = TRUE ; SVLook = TRUE ; Closeable = TRUE; // Close Button in Window Leiste explizit einbauen @@ -1076,6 +1119,7 @@ ModalDialog RID_SYMBOLDIALOG }; ListBox 1 { + HelpID = "starmath:ListBox:RID_SYMBOLDIALOG:1"; Border = TRUE ; Pos = MAP_APPFONT ( 6 , 17 ) ; Size = MAP_APPFONT ( 92, 57 ) ; @@ -1107,6 +1151,7 @@ ModalDialog RID_SYMBOLDIALOG }; PushButton 2 { + HelpID = "starmath:PushButton:RID_SYMBOLDIALOG:2"; TabStop = TRUE ; Pos = MAP_APPFONT ( 177 , 6 ) ; Size = MAP_APPFONT ( 56 , 14 ) ; @@ -1115,6 +1160,7 @@ ModalDialog RID_SYMBOLDIALOG }; PushButton 3 { + HelpID = "starmath:PushButton:RID_SYMBOLDIALOG:3"; Pos = MAP_APPFONT ( 177 , 24 ) ; Size = MAP_APPFONT ( 56 , 14 ) ; TabStop = TRUE ; @@ -1122,6 +1168,7 @@ ModalDialog RID_SYMBOLDIALOG }; PushButton 1 { + HelpID = "starmath:PushButton:RID_SYMBOLDIALOG:1"; TabStop = TRUE ; Pos = MAP_APPFONT ( 177 , 42 ) ; Size = MAP_APPFONT ( 56 , 14 ) ; @@ -1131,6 +1178,7 @@ ModalDialog RID_SYMBOLDIALOG ModalDialog RID_SYMDEFINEDIALOG { + HelpID = "starmath:ModalDialog:RID_SYMDEFINEDIALOG"; Moveable = TRUE ; OutputSize = TRUE ; SVLook = TRUE ; @@ -1145,6 +1193,7 @@ ModalDialog RID_SYMDEFINEDIALOG }; ComboBox 1 { + HelpID = "starmath:ComboBox:RID_SYMDEFINEDIALOG:1"; Pos = MAP_APPFONT ( 59 , 6 ) ; Size = MAP_APPFONT ( 80 , 100 ) ; TabStop = TRUE ; @@ -1160,6 +1209,7 @@ ModalDialog RID_SYMDEFINEDIALOG }; ComboBox 2 { + HelpID = "starmath:ComboBox:RID_SYMDEFINEDIALOG:2"; Pos = MAP_APPFONT ( 210 , 6 ) ; Size = MAP_APPFONT ( 80 , 100 ) ; TabStop = TRUE ; @@ -1184,6 +1234,7 @@ ModalDialog RID_SYMDEFINEDIALOG }; ComboBox 4 { + HelpID = "starmath:ComboBox:RID_SYMDEFINEDIALOG:4"; Pos = MAP_APPFONT ( 80 , 115 ) ; Size = MAP_APPFONT ( 100 , 100 ) ; TabStop = TRUE ; @@ -1199,6 +1250,7 @@ ModalDialog RID_SYMDEFINEDIALOG }; ComboBox 5 { + HelpID = "starmath:ComboBox:RID_SYMDEFINEDIALOG:5"; Pos = MAP_APPFONT ( 80 , 130 ) ; Size = MAP_APPFONT ( 100 , 100 ) ; TabStop = TRUE ; @@ -1214,6 +1266,7 @@ ModalDialog RID_SYMDEFINEDIALOG }; ListBox 1 { + HelpID = "starmath:ListBox:RID_SYMDEFINEDIALOG:1"; Border = TRUE ; Pos = MAP_APPFONT ( 80 , 145 ) ; Size = MAP_APPFONT ( 100 , 100 ) ; @@ -1230,6 +1283,7 @@ ModalDialog RID_SYMDEFINEDIALOG }; ListBox LB_FONTS_SUBSET { + HelpID = "starmath:ListBox:RID_SYMDEFINEDIALOG:LB_FONTS_SUBSET"; Border = TRUE ; Pos = MAP_APPFONT ( 80 , 160 ) ; Size = MAP_APPFONT ( 100 , 100 ) ; @@ -1246,6 +1300,7 @@ ModalDialog RID_SYMDEFINEDIALOG }; ComboBox 3 { + HelpID = "starmath:ComboBox:RID_SYMDEFINEDIALOG:3"; Border = TRUE; Pos = MAP_APPFONT ( 80 , 175 ) ; Size = MAP_APPFONT ( 100 , 100 ) ; @@ -1312,6 +1367,7 @@ ModalDialog RID_SYMDEFINEDIALOG }; PushButton 1 { + HelpID = "starmath:PushButton:RID_SYMDEFINEDIALOG:1"; TabStop = TRUE ; Pos = MAP_APPFONT ( 305 , 195 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; @@ -1319,6 +1375,7 @@ ModalDialog RID_SYMDEFINEDIALOG }; PushButton 2 { + HelpID = "starmath:PushButton:RID_SYMDEFINEDIALOG:2"; TabStop = TRUE ; Pos = MAP_APPFONT ( 245 , 195 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; @@ -1326,6 +1383,7 @@ ModalDialog RID_SYMDEFINEDIALOG }; PushButton 3 { + HelpID = "starmath:PushButton:RID_SYMDEFINEDIALOG:3"; TabStop = TRUE ; Pos = MAP_APPFONT ( 185 , 195 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; @@ -1397,37 +1455,37 @@ Menu RID_VIEWMENU MenuItem { Identifier = SID_VIEW050 ; - HelpID = SID_VIEW050 ; + HelpId = CMD_SID_VIEW050 ; Text [ en-US ] = "~View 50%" ; }; MenuItem { Identifier = SID_VIEW100 ; - HelpID = SID_VIEW100 ; + HelpId = CMD_SID_VIEW100 ; Text [ en-US ] = "View ~100%" ; }; MenuItem { Identifier = SID_VIEW200 ; - HelpID = SID_VIEW200 ; + HelpId = CMD_SID_VIEW200 ; Text [ en-US ] = "View ~200%" ; }; MenuItem { Identifier = SID_ZOOMIN ; - HelpID = SID_ZOOMIN ; + HelpId = CMD_SID_ZOOMIN ; Text [ en-US ] = "~Zoom In" ; }; MenuItem { Identifier = SID_ZOOMOUT ; - HelpID = SID_ZOOMOUT ; + HelpId = CMD_SID_ZOOMOUT ; Text [ en-US ] = "Zoom ~Out" ; }; MenuItem { Identifier = SID_ADJUST ; - HelpID = SID_ADJUST ; + HelpId = CMD_SID_ADJUST ; Text [ en-US ] = "~Display All" ; }; MenuItem @@ -1437,7 +1495,7 @@ Menu RID_VIEWMENU MenuItem { Identifier = SID_DRAW ; - HelpID = SID_DRAW ; + HelpId = CMD_SID_DRAW ; Text [ en-US ] = "U~pdate" ; }; }; @@ -1685,76 +1743,6 @@ String RID_ERR_RIGHTEXPECTED Text [ en-US ] = "'RIGHT' expected" ; }; -#include "menu.src" - -ToolBox RID_MATH_TOOLBOX -{ - HelpId = RID_MATH_TOOLBOX ; - Customize = TRUE ; - LineSpacing = TRUE ; - Dockable = TRUE ; - Moveable = TRUE ; - Sizeable = TRUE ; - Closeable = TRUE ; - Zoomable = TRUE ; - Scroll = TRUE ; - HideWhenDeactivate = TRUE ; - Border = TRUE ; - SVLook = TRUE ; - Align = BOXALIGN_LEFT ; - Size = MAP_APPFONT ( 0 , 0 ) ; - MenuStrings = TRUE ; - ItemList = - { - ToolBoxItem - { - Identifier = SID_ZOOMIN ; - HelpID = SID_ZOOMIN ; - Text [ en-US ] = "Zoom In" ; - }; - ToolBoxItem - { - Identifier = SID_ZOOMOUT ; - HelpID = SID_ZOOMOUT ; - Text [ en-US ] = "Zoom Out" ; - }; - ToolBoxItem - { - Identifier = SID_VIEW100 ; - HelpID = SID_VIEW100 ; - Text [ en-US ] = "Zoom 100%" ; - }; - ToolBoxItem - { - Identifier = SID_ADJUST ; - HelpID = SID_ADJUST ; - Text [ en-US ] = "Entire Formula" ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = SID_DRAW ; - HelpID = SID_DRAW ; - Text [ en-US ] = "Refresh" ; - }; - ToolBoxItem - { - Identifier = SID_FORMULACURSOR ; - HelpID = SID_FORMULACURSOR ; - Text [ en-US ] = "Formula Cursor"; - }; - ToolBoxItem - { - Identifier = SID_SYMBOLS_CATALOGUE ; - HelpID = SID_SYMBOLS_CATALOGUE ; - Text [ en-US ] = "Symbols" ; - }; - }; -}; - String RID_MATH_TOOLBOX { Text [ en-US ] = "Main Toolbar" ; diff --git a/starmath/source/unomodel.cxx b/starmath/source/unomodel.cxx index 77b404b2ee..e817416ccc 100755 --- a/starmath/source/unomodel.cxx +++ b/starmath/source/unomodel.cxx @@ -238,7 +238,8 @@ enum SmModelPropertyHandles // --> PB 2004-08-25 #i33095# Security Options HANDLE_LOAD_READONLY, // <-- - HANDLE_DIALOG_LIBRARIES // #i73329# + HANDLE_DIALOG_LIBRARIES, // #i73329# + HANDLE_BASELINE // 3.7.2010 #i972# }; PropertySetInfo * lcl_createModelPropertyInfo () @@ -310,6 +311,9 @@ PropertySetInfo * lcl_createModelPropertyInfo () // --> PB 2004-08-25 #i33095# Security Options { RTL_CONSTASCII_STRINGPARAM( "LoadReadonly" ), HANDLE_LOAD_READONLY, &::getBooleanCppuType(), PROPERTY_NONE, 0 }, // <-- + // --> 3.7.2010 #i972# + { RTL_CONSTASCII_STRINGPARAM( "BaseLine"), HANDLE_BASELINE, &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, 0}, + // <-- { NULL, 0, 0, NULL, 0, 0 } }; PropertySetInfo *pInfo = new PropertySetInfo ( aModelPropertyInfoMap ); @@ -955,6 +959,21 @@ void SmModel::_getPropertyValues( const PropertyMapEntry **ppEntries, Any *pValu break; } // <-- + // --> 3.7.2010 #i972# + case HANDLE_BASELINE: + { + if ( !pDocSh->pTree ) + pDocSh->Parse(); + if ( pDocSh->pTree ) + { + if ( !pDocSh->IsFormulaArranged() ) + pDocSh->ArrangeFormula(); + + *pValue <<= static_cast<sal_Int32>( pDocSh->pTree->GetFormulaBaseline() ); + } + } + break; + // <-- } } } diff --git a/starmath/util/hidother.src b/starmath/util/hidother.src index 5a87a5709e..0b2ff54898 100644 --- a/starmath/util/hidother.src +++ b/starmath/util/hidother.src @@ -24,7 +24,7 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#include "../inc/starmath.hrc" +#include "../inc/helpids.h" hidspecial HID_SMA_OPTIONSDIALOG { HelpId = HID_SMA_OPTIONSDIALOG; }; hidspecial HID_SMA_FONTDIALOG { HelpId = HID_SMA_FONTDIALOG; }; @@ -70,7 +70,6 @@ hidspecial HID_SMA_CREATORSTR { HelpId = HID_SMA_CREATORSTR; }; hidspecial HID_SMA_FILESMFTYP { HelpId = HID_SMA_FILESMFTYP; }; hidspecial HID_SMA_FILESYMTYP { HelpId = HID_SMA_FILESYMTYP; }; hidspecial HID_SMA_WIN_DOCUMENT { HelpId = HID_SMA_WIN_DOCUMENT; }; -hidspecial HID_SMA_VIEWSHELL_DOCUMENT { HelpId = HID_SMA_VIEWSHELL_DOCUMENT; }; hidspecial HID_SMA_COMMAND_WIN_EDIT { HelpId = HID_SMA_COMMAND_WIN_EDIT; }; hidspecial HID_SMA_DEFAULT_DIST { HelpId = HID_SMA_DEFAULT_DIST; }; diff --git a/sw/inc/IDocumentSettingAccess.hxx b/sw/inc/IDocumentSettingAccess.hxx index 58a6df6401..a380a2e1b7 100644 --- a/sw/inc/IDocumentSettingAccess.hxx +++ b/sw/inc/IDocumentSettingAccess.hxx @@ -89,7 +89,8 @@ namespace com { namespace sun { namespace star { namespace i18n { struct Forbidd GLOBAL_DOCUMENT_SAVE_LINKS, LABEL_DOCUMENT, PURGE_OLE, - KERN_ASIAN_PUNCTUATION + KERN_ASIAN_PUNCTUATION, + MATH_BASELINE_ALIGNMENT }; public: @@ -209,4 +210,4 @@ protected: virtual ~IDocumentSettingAccess() {}; }; - #endif // IDOCUMENTSETTINGACCESS_HXX_INCLUDED +#endif // IDOCUMENTSETTINGACCESS_HXX_INCLUDED diff --git a/sw/inc/authfld.hxx b/sw/inc/authfld.hxx index de3a149e15..72c6f2fd2a 100644 --- a/sw/inc/authfld.hxx +++ b/sw/inc/authfld.hxx @@ -24,8 +24,8 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _AUTHFLD_HXX -#define _AUTHFLD_HXX +#ifndef SW_AUTHFLD_HXX +#define SW_AUTHFLD_HXX #include "swdllapi.h" #include <fldbas.hxx> @@ -166,6 +166,10 @@ class SwAuthorityField : public SwField { long m_nHandle; mutable long m_nTempSequencePos; + + virtual String Expand() const; + virtual SwField* Copy() const; + public: SwAuthorityField(SwAuthorityFieldType* pType, const String& rFieldContents); SwAuthorityField(SwAuthorityFieldType* pType, long nHandle); @@ -173,8 +177,6 @@ public: const String& GetFieldText(ToxAuthorityField eField) const; - virtual String Expand() const; - virtual SwField* Copy() const; virtual void SetPar1(const String& rStr); virtual SwFieldType* ChgTyp( SwFieldType* ); diff --git a/sw/inc/calc.hxx b/sw/inc/calc.hxx index 5b5a052861..885cdcd75c 100644 --- a/sw/inc/calc.hxx +++ b/sw/inc/calc.hxx @@ -28,6 +28,7 @@ #define _CALC_HXX #include <svl/svarray.hxx> +#include <unotools/syslocale.hxx> #ifndef __SBX_SBXVALUE //autogen #include <basic/sbxvar.hxx> @@ -185,6 +186,7 @@ class SwCalc xub_StrLen nCommandPos; SwDoc& rDoc; + SvtSysLocale m_aSysLocale; const LocaleDataWrapper* pLclData; CharClass* pCharClass; @@ -228,11 +230,11 @@ public: void SetCalcError( SwCalcError eErr ) { eError = eErr; } BOOL IsCalcError() const { return 0 != eError; } - static BOOL Str2Double( const String& rStr, xub_StrLen& rPos, + static bool Str2Double( const String& rStr, xub_StrLen& rPos, double& rVal, - const LocaleDataWrapper* pData = 0 ); - static BOOL Str2Double( const String& rStr, xub_StrLen& rPos, - double& rVal, SwDoc* pDoc ); + LocaleDataWrapper const*const pData = 0 ); + static bool Str2Double( const String& rStr, xub_StrLen& rPos, + double& rVal, SwDoc *const pDoc ); SW_DLLPUBLIC static BOOL IsValidVarName( const String& rStr, String* pValidName = 0 ); diff --git a/sw/inc/chpfld.hxx b/sw/inc/chpfld.hxx index 8c9784e147..ece9fa7e3c 100644 --- a/sw/inc/chpfld.hxx +++ b/sw/inc/chpfld.hxx @@ -24,8 +24,8 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _CHPFLD_HXX -#define _CHPFLD_HXX +#ifndef SW_CHPFLD_HXX +#define SW_CHPFLD_HXX #include "fldbas.hxx" @@ -69,6 +69,10 @@ class SW_DLLPUBLIC SwChapterField : public SwField friend class SwChapterFieldType; BYTE nLevel; String sTitle, sNumber, sPre, sPost; + + virtual String Expand() const; + virtual SwField* Copy() const; + public: SwChapterField(SwChapterFieldType*, sal_uInt32 nFmt = 0); @@ -82,9 +86,6 @@ public: // <-- void ChangeExpansion(const SwTxtNode &rNd, BOOL bSrchNum); - virtual String Expand() const; - virtual SwField* Copy() const; - inline BYTE GetLevel() const; inline void SetLevel(BYTE); @@ -99,4 +100,4 @@ inline void SwChapterField::SetLevel(BYTE nLev) { nLevel = nLev; } inline const String& SwChapterField::GetNumber() const { return sNumber; } inline const String& SwChapterField::GetTitle() const { return sTitle; } -#endif // _CHPFLD_HXX +#endif // SW_CHPFLD_HXX diff --git a/sw/inc/cmdid.h b/sw/inc/cmdid.h index 894d622cad..6e8bd3b963 100644 --- a/sw/inc/cmdid.h +++ b/sw/inc/cmdid.h @@ -908,6 +908,9 @@ Achtung: Ab sofort sind in diesem File keine C++-Kommentare (//) mehr #define FN_UNO_META (FN_EXTRA2 + 112) #define FN_UNO_NESTED_TEXT_CONTENT (FN_EXTRA2 + 113) +// #i972: bool items to be passed to SwFrmPage for evaluation +#define FN_OLE_IS_MATH (FN_EXTRA2 + 114) +#define FN_MATH_BASELINE_ALIGNMENT (FN_EXTRA2 + 115) /*-------------------------------------------------------------------- Bereich: Hilfe --------------------------------------------------------------------*/ @@ -1058,7 +1061,7 @@ Achtung: Ab sofort sind in diesem File keine C++-Kommentare (//) mehr #define FN_ENVELOP (FN_ENVELP ) -#define FN_DELETE_NOTE (FN_NOTES+0) + #define FN_DELETE_NOTE_AUTHOR (FN_NOTES+1) #define FN_DELETE_ALL_NOTES (FN_NOTES+2) #define FN_HIDE_NOTE (FN_NOTES+3) diff --git a/sw/inc/dbfld.hxx b/sw/inc/dbfld.hxx index ae287f7954..167ecda8af 100644 --- a/sw/inc/dbfld.hxx +++ b/sw/inc/dbfld.hxx @@ -24,8 +24,8 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _DBFLD_HXX -#define _DBFLD_HXX +#ifndef SW_DBFLD_HXX +#define SW_DBFLD_HXX #include "swdllapi.h" #include "fldbas.hxx" @@ -79,6 +79,9 @@ class SW_DLLPUBLIC SwDBField : public SwValueField BOOL bValidValue : 1; BOOL bInitialized : 1; + virtual String Expand() const; + virtual SwField* Copy() const; + public: SwDBField(SwDBFieldType*, ULONG nFmt = 0); virtual ~SwDBField(); @@ -87,14 +90,11 @@ public: // Der aktuelle Text inline void SetExpansion(const String& rStr); - virtual String Expand() const; - virtual SwField* Copy() const; virtual USHORT GetSubType() const; virtual void SetSubType(USHORT nType); - // Name oder Inhalt - virtual String GetCntnt(BOOL bName = FALSE) const; + virtual String GetFieldName() const; // fuer Berechnungen in Ausdruecken void ChgValue( double d, BOOL bVal ); @@ -157,8 +157,8 @@ public: SwDBData GetDBData(SwDoc* pDoc); void SetDBData(const SwDBData& rDBData); // #111840# - // Name oder Inhalt - virtual String GetCntnt(BOOL bName = FALSE) const; + virtual String GetFieldName() const; + virtual BOOL QueryValue( com::sun::star::uno::Any& rVal, USHORT nWhich ) const; virtual BOOL PutValue( const com::sun::star::uno::Any& rVal, USHORT nWhich ); virtual USHORT GetSubType() const; @@ -335,4 +335,4 @@ inline void SwDBSetNumberField::SetSetNumber(long nNum) { nNumber = nNum; } -#endif // _DBFLD_HXX +#endif // SW_DBFLD_HXX diff --git a/sw/inc/dbmgr.hxx b/sw/inc/dbmgr.hxx index 594d1fefac..24cd087d70 100644 --- a/sw/inc/dbmgr.hxx +++ b/sw/inc/dbmgr.hxx @@ -73,7 +73,6 @@ struct SwDBFormatData class SwView; class SwWrtShell; -class SwPrtOptions; class SfxProgress; class ListBox; class Button; diff --git a/sw/inc/ddefld.hxx b/sw/inc/ddefld.hxx index 52a9af6285..91647ea9b2 100644 --- a/sw/inc/ddefld.hxx +++ b/sw/inc/ddefld.hxx @@ -24,8 +24,8 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _DDEFLD_HXX -#define _DDEFLD_HXX +#ifndef SW_DDEFLD_HXX +#define SW_DDEFLD_HXX #include <sfx2/lnkbase.hxx> #include "swdllapi.h" @@ -97,13 +97,14 @@ public: class SwDDEField : public SwField { +private: + virtual String Expand() const; + virtual SwField* Copy() const; + public: SwDDEField(SwDDEFieldType*); ~SwDDEField(); - virtual String Expand() const; - virtual SwField* Copy() const; - // ueber Typen Parameter ermitteln // Name kann nicht geaendert werden virtual const String& GetPar1() const; @@ -114,4 +115,4 @@ public: }; -#endif // _DDEFLD_HXX +#endif // SW_DDEFLD_HXX diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx index 14e25abd0a..297f6dcc9b 100644 --- a/sw/inc/doc.hxx +++ b/sw/inc/doc.hxx @@ -588,6 +588,7 @@ private: bool mbUseFormerTextWrapping : 1; // FME 2005-05-11 #108724# bool mbConsiderWrapOnObjPos : 1; // OD 2004-05-05 #i28701# // TRUE: object positioning algorithm has consider the wrapping style of // the floating screen objects as given by its attribute 'WrapInfluenceOnObjPos' + bool mbMathBaselineAlignment : 1; // TL 2010-10-29 #i972# // non-ui-compatibility flags: bool mbOldNumbering : 1; // HBRINKM #111955# @@ -1902,6 +1903,7 @@ public: // loesche den nicht sichtbaren ::com::sun::star::ucb::Content aus dem Document, wie z.B.: // versteckte Bereiche, versteckte Absaetze sal_Bool RemoveInvisibleContent(); + sal_Bool HasInvisibleContent() const; //restore the invisible content if it's available on the undo stack sal_Bool RestoreInvisibleContent(); // replace fields by text - mailmerge support diff --git a/sw/inc/docufld.hxx b/sw/inc/docufld.hxx index 4b3986243e..f9f41b964b 100644 --- a/sw/inc/docufld.hxx +++ b/sw/inc/docufld.hxx @@ -24,8 +24,8 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _DOCUFLD_HXX -#define _DOCUFLD_HXX +#ifndef SW_DOCUFLD_HXX +#define SW_DOCUFLD_HXX #include <tools/date.hxx> @@ -363,6 +363,9 @@ class SwHiddenTxtField : public SwField BOOL bIsHidden : 1; // ist es nicht sichtbar? BOOL bValid : 1; // DB-Feld evaluiert? + virtual String Expand() const; + virtual SwField* Copy() const; + public: SwHiddenTxtField( SwHiddenTxtFieldType*, BOOL bConditional, @@ -377,9 +380,7 @@ public: const String& rFalse, USHORT nSubType = TYP_HIDDENTXTFLD); - virtual String GetCntnt(BOOL bName = FALSE) const; - virtual String Expand() const; - virtual SwField* Copy() const; + virtual String GetFieldName() const; void Evaluate(SwDoc*); @@ -463,6 +464,9 @@ class SW_DLLPUBLIC SwMacroField : public SwField String aText; BOOL bIsScriptURL; + virtual String Expand() const; + virtual SwField* Copy() const; + public: // Direkte Eingabe alten Wert loeschen SwMacroField( SwMacroFieldType*, const String& rLibAndName, @@ -473,9 +477,7 @@ public: String GetMacroName() const; SvxMacro GetSvxMacro() const; - virtual String GetCntnt(BOOL bName = FALSE) const; - virtual String Expand() const; - virtual SwField* Copy() const; + virtual String GetFieldName() const; // Library und FileName virtual const String& GetPar1() const; @@ -571,6 +573,9 @@ class SW_DLLPUBLIC SwDocInfoField : public SwValueField String aContent; String aName; + virtual String Expand() const; + virtual SwField* Copy() const; + public: SwDocInfoField(SwDocInfoFieldType*, USHORT nSub, const String& rName, sal_uInt32 nFmt=0); SwDocInfoField(SwDocInfoFieldType*, USHORT nSub, const String& rName, const String& rValue, sal_uInt32 nFmt=0); @@ -578,9 +583,7 @@ public: virtual void SetSubType(USHORT); virtual USHORT GetSubType() const; virtual void SetLanguage(USHORT nLng); - virtual String Expand() const; - virtual String GetCntnt(BOOL bName = FALSE) const; - virtual SwField* Copy() const; + virtual String GetFieldName() const; String GetName() const { return aName; } void SetName( const String& rName ) { aName = rName; } inline void SetExpansion(const String& rStr) { aContent = rStr; } @@ -833,4 +836,4 @@ public: }; -#endif // _DOCUFLD_HXX +#endif // SW_DOCUFLD_HXX diff --git a/sw/inc/editsh.hxx b/sw/inc/editsh.hxx index b5c4a23922..2d7a87ef9b 100644 --- a/sw/inc/editsh.hxx +++ b/sw/inc/editsh.hxx @@ -201,7 +201,6 @@ public: // change text to Upper/Lower/Hiragana/Katagana/... void TransliterateText( sal_uInt32 nType ); - void TransliterateText( const String& rModuleName ); // count words in current selection void CountWords( SwDocStat& rStat ) const; @@ -416,9 +415,6 @@ public: const SwTOXType* GetTOXType(TOXTypes eTyp, USHORT nId) const; void InsertTOXType(const SwTOXType& rTyp); - // new field stuff - BOOL UpdateField(sw::mark::IFieldmark &fieldBM); - //AutoMark file const String& GetTOIAutoMarkURL() const; void SetTOIAutoMarkURL(const String& rSet); diff --git a/sw/inc/expfld.hxx b/sw/inc/expfld.hxx index 46fd26cf77..7e6ca81322 100644 --- a/sw/inc/expfld.hxx +++ b/sw/inc/expfld.hxx @@ -24,8 +24,8 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _EXPFLD_HXX -#define _EXPFLD_HXX +#ifndef SW_EXPFLD_HXX +#define SW_EXPFLD_HXX #include <svl/svarray.hxx> #include "swdllapi.h" @@ -98,6 +98,9 @@ class SW_DLLPUBLIC SwGetExpField : public SwFormulaField bool bLateInitialization; // #i82544# + virtual String Expand() const; + virtual SwField* Copy() const; + public: SwGetExpField( SwGetExpFieldType*, const String& rFormel, USHORT nSubType = nsSwGetSetExpType::GSE_EXPR, ULONG nFmt = 0); @@ -105,9 +108,6 @@ public: virtual void SetValue( const double& rVal ); virtual void SetLanguage(USHORT nLng); - virtual String Expand() const; - virtual SwField* Copy() const; - inline const String& GetExpStr() const; inline void ChgExpStr(const String& rExpand); @@ -119,7 +119,7 @@ public: // (wird nur von der Formatierung aufgerufen!!) void ChangeExpansion( const SwFrm&, const SwTxtFld& ); - virtual String GetCntnt(BOOL bName = FALSE) const; + virtual String GetFieldName() const; // Die Formel aendern virtual String GetPar2() const; @@ -234,14 +234,14 @@ class SW_DLLPUBLIC SwSetExpField : public SwFormulaField USHORT nSeqNo; USHORT nSubType; + virtual String Expand() const; + virtual SwField* Copy() const; + public: SwSetExpField(SwSetExpFieldType*, const String& rFormel, ULONG nFmt = 0); virtual void SetValue( const double& rVal ); - virtual String Expand() const; - virtual SwField* Copy() const; - inline const String& GetExpStr() const; inline void ChgExpStr( const String& rExpand ); @@ -252,7 +252,8 @@ public: inline void SetInputFlag(BOOL bInp); inline BOOL GetInputFlag() const; - virtual String GetCntnt(BOOL bName = FALSE) const; + virtual String GetFieldName() const; + virtual USHORT GetSubType() const; virtual void SetSubType(USHORT nType); @@ -319,15 +320,17 @@ class SW_DLLPUBLIC SwInputField : public SwField String aHelp; String aToolTip; USHORT nSubType; + + virtual String Expand() const; + virtual SwField* Copy() const; + public: // Direkte Eingabe ueber Dialog alten Wert loeschen SwInputField(SwInputFieldType*, const String& rContent , const String& rPrompt, USHORT nSubType = 0, ULONG nFmt = 0); - virtual String GetCntnt(BOOL bName = FALSE) const; - virtual String Expand() const; - virtual SwField* Copy() const; + virtual String GetFieldName() const; // Content virtual const String& GetPar1() const; @@ -405,9 +408,14 @@ class SwTblField : public SwValueField, public SwTableFormula String sExpand; USHORT nSubType; + virtual String Expand() const; + virtual SwField* Copy() const; + // suche den TextNode, in dem das Feld steht virtual const SwNode* GetNodeOfFormula() const; + String GetCommand(); + public: SwTblField( SwTblFieldType*, const String& rFormel, USHORT nSubType = 0, ULONG nFmt = 0); @@ -415,8 +423,6 @@ public: virtual void SetValue( const double& rVal ); virtual USHORT GetSubType() const; virtual void SetSubType(USHORT nType); - virtual String Expand() const; - virtual SwField* Copy() const; const String& GetExpStr() const { return sExpand; } void ChgExpStr(const String& rStr) { sExpand = rStr; } @@ -424,7 +430,8 @@ public: // berechne sich selbst void CalcField( SwTblCalcPara& rCalcPara ); - virtual String GetCntnt(BOOL bName = FALSE) const; + virtual String GetFieldName() const; + // Die Formel virtual String GetPar2() const; virtual void SetPar2(const String& rStr); @@ -433,4 +440,4 @@ public: }; -#endif // _EXPFLD_HXX +#endif // SW_EXPFLD_HXX diff --git a/sw/inc/fesh.hxx b/sw/inc/fesh.hxx index 90785a008c..2bcf5fedd0 100644 --- a/sw/inc/fesh.hxx +++ b/sw/inc/fesh.hxx @@ -29,6 +29,7 @@ #include <com/sun/star/text/RelOrientation.hpp> #include <com/sun/star/embed/XClassifiedObject.hpp> +#include <com/sun/star/embed/XEmbeddedObject.hpp> #include <svx/svdobj.hxx> #include "swdllapi.h" @@ -435,6 +436,9 @@ public: void SetFlyName( const String& rName ); const String& GetFlyName() const; + // get reference to OLE object (if there is one) for selected FlyFrame + const com::sun::star::uno::Reference < com::sun::star::embed::XEmbeddedObject > GetOleRef() const; + // erezeuge eindeutige Namen fuer Rahmen String GetUniqueGrfName() const; String GetUniqueOLEName() const; @@ -550,6 +554,15 @@ public: BOOL ReplaceSdrObj( const String& rGrfName, const String& rFltName, const Graphic* pGrf = 0 ); + // --> #i972# + // for starmath formulas anchored 'as char' it alignes it baseline to baseline + // changing the previous vertical orientation + void AlignFormulaToBaseline( const ::com::sun::star::uno::Reference < ::com::sun::star::embed::XEmbeddedObject >& xObj, SwFlyFrm * pFly = 0 ); + + // aligns all formulas with anchor 'as char' to baseline + void AlignAllFormulasToBaseline(); + // <-- + //------------------------------------------ //Auskunft ueber naechstliegenden Inhalt zum uebergebenen Point diff --git a/sw/inc/fldbas.hxx b/sw/inc/fldbas.hxx index 500a4f1b80..64869db8d5 100644 --- a/sw/inc/fldbas.hxx +++ b/sw/inc/fldbas.hxx @@ -24,10 +24,8 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _FLDBAS_HXX -#define _FLDBAS_HXX - -#ifndef FIELDIDS_ONLY // SWG-Testreader!! +#ifndef SW_FLDBAS_HXX +#define SW_FLDBAS_HXX #include <i18npool/lang.h> #include <tools/debug.hxx> @@ -40,7 +38,6 @@ class SwDoc; class SvStringsDtor; class SvNumberFormatter; -#endif // FIELDIDS_ONLY /*-------------------------------------------------------------------- Beschreibung: die ID's fuer die Feldtypen @@ -236,8 +233,6 @@ enum SwDateTimeSubType TIMEFLD = 4 }; -#ifndef FIELDIDS_ONLY // SWG-Testreader!! - extern USHORT __FAR_DATA aTypeTab[]; @@ -331,13 +326,16 @@ public: virtual SwFieldType* ChgTyp( SwFieldType* ); /** expand the field. - @param bInClipboard field is in clipboard document? + @param bCached return cached field value. + @remark most callers should use the cached field value. + this is because various fields need special handing + (ChangeExpansion()) to return correct values, and only + SwTxtFormatter::NewFldPortion() sets things up properly. @return the generated text (suitable for display) */ - String ExpandField(bool const bInClipboard) const; + String ExpandField(bool const bCached) const; - // liefert den Namen oder den Inhalt - virtual String GetCntnt(BOOL bName = FALSE) const; + virtual String GetFieldName() const; SwField * CopyField() const; @@ -461,5 +459,4 @@ public: String GetExpandedFormula() const; }; -#endif // FIELDIDS_ONLY -#endif // _FLDBAS_HXX +#endif // SW_FLDBAS_HXX diff --git a/sw/inc/flddat.hxx b/sw/inc/flddat.hxx index 6bc30d8c2d..0212821eaf 100644 --- a/sw/inc/flddat.hxx +++ b/sw/inc/flddat.hxx @@ -25,8 +25,8 @@ * ************************************************************************/ -#ifndef _FLDDAT_HXX -#define _FLDDAT_HXX +#ifndef SW_FLDDAT_HXX +#define SW_FLDDAT_HXX #include <tools/string.hxx> @@ -115,6 +115,9 @@ class SW_DLLPUBLIC SwDateTimeField : public SwValueField USHORT nSubType; long nOffset; // Offset in Minuten + virtual String Expand() const; + virtual SwField* Copy() const; + public: SwDateTimeField(SwDateTimeFieldType* pType, USHORT nSubType = DATEFLD, ULONG nFmt = 0, USHORT nLng = 0); @@ -138,11 +141,8 @@ public: void SetDateTime(const DateTime& rDT); static double GetDateTime(SwDoc* pDoc, const DateTime& rDT); - virtual String Expand() const; - virtual SwField* Copy() const; - virtual BOOL QueryValue( com::sun::star::uno::Any& rVal, USHORT nMId ) const; virtual BOOL PutValue( const com::sun::star::uno::Any& rVal, USHORT nMId ); }; -#endif // _FLDDAT_HXX +#endif // SW_FLDDAT_HXX diff --git a/sw/inc/flddropdown.hxx b/sw/inc/flddropdown.hxx index 4a7bcf0d8a..9a6d8076f6 100644 --- a/sw/inc/flddropdown.hxx +++ b/sw/inc/flddropdown.hxx @@ -24,19 +24,14 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _FLDDROPDOWN_HXX -#define _FLDDROPDOWN_HXX +#ifndef SW_FLDDROPDOWN_HXX +#define SW_FLDDROPDOWN_HXX -#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX #include "com/sun/star/uno/Sequence.hxx" -#endif #include "swdllapi.h" #include "fldbas.hxx" -#ifndef INCLUDED_VECTOR #include <vector> -#define INCLUDED_VECTOR -#endif /** Field type for dropdown boxes. @@ -95,6 +90,23 @@ class SW_DLLPUBLIC SwDropDownField : public SwField */ String aToolTip; + /** + Expands the field. + + The expanded value of the field is the value of the selected + item. If no item is selected, an empty string is returned. + + @return the expanded value of the field + */ + virtual String Expand() const; + + /** + Creates a copy of this field. + + @return the copy of this field + */ + virtual SwField * Copy() const; + public: /** Constructor @@ -116,23 +128,6 @@ public: virtual ~SwDropDownField(); /** - Expands the field. - - The expanded value of the field is the value of the selected - item. If no item is selected, an empty string is returned. - - @return the expanded value of the field - */ - virtual String Expand() const; - - /** - Creates a copy of this field. - - @return the copy of this field - */ - virtual SwField * Copy() const; - - /** Returns the selected value. @see Expand diff --git a/sw/inc/frmfmt.hxx b/sw/inc/frmfmt.hxx index 2dcd4c865e..858d7ffb5c 100644 --- a/sw/inc/frmfmt.hxx +++ b/sw/inc/frmfmt.hxx @@ -32,6 +32,7 @@ // <-- #include <cppuhelper/weakref.hxx> +#include <tools/gen.hxx> #include <format.hxx> @@ -153,6 +154,12 @@ class SW_DLLPUBLIC SwFlyFrmFmt: public SwFrmFmt { friend class SwDoc; + // #i972: + // it stores the previous position of Prt rectangle from RequestObjectResize + // so it can be used to move frames of non-resizable objects to align them correctly + // when they get borders (this is done in SwWrtShell::CalcAndGetScale) + Point m_aLastFlyFrmPrtRectPos; + //Beide nicht vorhanden. SwFlyFrmFmt( const SwFlyFrmFmt &rCpy ); SwFlyFrmFmt &operator=( const SwFlyFrmFmt &rCpy ); @@ -219,6 +226,9 @@ public: */ sal_Bool IsBackgroundBrushInherited() const; + const Point & GetLastFlyFrmPrtRectPos() const { return m_aLastFlyFrmPrtRectPos; } + void SetLastFlyFrmPrtRectPos( const Point &rPoint ) { m_aLastFlyFrmPrtRectPos = rPoint; } + DECL_FIXEDMEMPOOL_NEWDEL(SwFlyFrmFmt) }; diff --git a/sw/inc/helpid.h b/sw/inc/helpid.h index 0ff576a0cc..874a1680e5 100644 --- a/sw/inc/helpid.h +++ b/sw/inc/helpid.h @@ -24,960 +24,969 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _SOLAR_HRC -#include <svl/solar.hrc> -#endif - -#define HID_BASE HID_APP_START - -#define HID_BIB_BASE (HID_BASE + 1) -#define HID_DBSEL (HID_BASE + 2) -#define HID_DBEDIT (HID_BASE + 3) -#define HID_PRINT_OPTION (HID_BASE + 4) -#define HID_MERGE_PRINTMONITOR (HID_BASE + 5) -#define HID_FLD_INPUT (HID_BASE + 6) -#define HID_CONFIG_MISC (HID_BASE + 7) -#define HID_CONFIG_PATH (HID_BASE + 8) -#define HID_CONFIG_TB (HID_BASE + 9) -#define HID_PG_FOOTNOTE (HID_BASE + 10) -#define HID_FORMAT_GRAPHIC (HID_BASE + 11) -#define HID_FILTERSTATUS (HID_BASE + 12) -#define HID_DOCINFO_EDT (HID_BASE + 13) -#define HID_DBLOGON (HID_BASE + 14) -#define HID_MAC_ASSIGN (HID_BASE + 15) -#define HID_CONFIG_MN (HID_BASE + 16) -#define HID_PAPERSIZE (HID_BASE + 17) -#define HID_PASSWD (HID_BASE + 18) -#define HID_SPELLING_OPTIONS (HID_BASE + 19) -#define HID_HYPHENATE_OPTIONS (HID_BASE + 20) -#define HID_FORMAT_COLUMN (HID_BASE + 21) -#define HID_CONFIG_SAVE (HID_BASE + 22) -#define HID_NUM_NAMES (HID_BASE + 23) -#define HID_SYMBOL_SELECT (HID_BASE + 24) -#define HID_CONFIG_KY (HID_BASE + 25) -#define HID_LINKEDIT (HID_BASE + 26) -#define HID_GRAPHIC_PREVIEW (HID_BASE + 28) -#define HID_DICTIONARY (HID_BASE + 29) -#define HID_SET_STYLE (HID_BASE + 30) -#define HID_RIBBONBAR (HID_BASE + 31) -#define HID_STATUSLINE (HID_BASE + 32) -#define HID_DOCBAR (HID_BASE + 33) -#define HID_VRULER (HID_BASE + 34) -#define HID_MAKRO_WINDOW (HID_BASE + 35) -#define HID_ENVELOP_FORMAT (HID_BASE + 37) -#define HID_ENVELOP_PRINTER (HID_BASE + 38) - -#define HID_HEADER_FOOTER_DLG (HID_BASE + 39) -#define HID_GRID_DLG (HID_BASE + 40) -#define HID_USER_ADDRESS_DLG (HID_BASE + 41) -#define HID_SELECT_FAX_DLG (HID_BASE + 42) - -#define HID_LABEL_FORMAT (HID_BASE + 43) -#define HID_BRSORT (HID_BASE + 44) -#define HID_BRSEEK (HID_BASE + 45) -#define HID_BRCFG (HID_BASE + 46) - -#define HID_FORMEDT_CONTENT (HID_BASE + 47) -#define HID_FORMEDT_USER (HID_BASE + 48) -#define HID_FORMEDT_INDEX (HID_BASE + 49) - -#define HID_SCRL_PAGEUP (HID_BASE + 50) -#define HID_SCRL_PAGEDOWN (HID_BASE + 51) - -#define HID_DRAW_WIN (HID_BASE + 52) -#define HID_EDIT_WIN (HID_BASE + 53) - -#define HID_INSERT_CTRL (HID_BASE + 54) // TbxControl Einfuegen -#define HID_INSERT_OBJ_CTRL (HID_BASE + 55) -#define HID_INSERT_FIELD_CTRL (HID_BASE + 56) - -#define HID_SOURCEVIEW (HID_BASE + 57) -#define HID_TBL_OPT_CTRL (HID_BASE + 58) -#define HID_AUTOFORMAT_CLB (HID_BASE + 59) - -#define HID_SCRL_NAVI (HID_BASE + 60) -#define HID_NAVI_DRAG_HYP (HID_BASE + 61) -#define HID_NAVI_DRAG_LINK (HID_BASE + 62) -#define HID_NAVI_DRAG_COPY (HID_BASE + 63) -#define HID_NAVI_OUTLINES (HID_BASE + 64) - -#define HID_AUTOFORMAT_EXEC (HID_BASE + 65) -#define HID_AUTOFORMAT_CLOSE (HID_BASE + 66) - -#define HID_PAGEPREVIEW (HID_BASE + 67) -#define HID_SOURCE_EDITWIN (HID_BASE + 68) +#include "swcommands.h" +#include <svx/svxcommands.h> +#include <sfx2/sfxcommands.h> + +#define HID_BIB_BASE "SW_HID_BIB_BASE" +#define HID_DBSEL "SW_HID_DBSEL" +#define HID_DBEDIT "SW_HID_DBEDIT" +#define HID_PRINT_OPTION "SW_HID_PRINT_OPTION" +#define HID_MERGE_PRINTMONITOR "SW_HID_MERGE_PRINTMONITOR" +#define HID_FLD_INPUT "SW_HID_FLD_INPUT" +#define HID_CONFIG_MISC "SW_HID_CONFIG_MISC" +#define HID_CONFIG_PATH "SW_HID_CONFIG_PATH" +#define HID_CONFIG_TB "SW_HID_CONFIG_TB" +#define HID_PG_FOOTNOTE "SW_HID_PG_FOOTNOTE" +#define HID_FORMAT_GRAPHIC "SW_HID_FORMAT_GRAPHIC" +#define HID_FILTERSTATUS "SW_HID_FILTERSTATUS" +#define HID_DOCINFO_EDT "SW_HID_DOCINFO_EDT" +#define HID_DBLOGON "SW_HID_DBLOGON" +#define HID_MAC_ASSIGN "SW_HID_MAC_ASSIGN" +#define HID_CONFIG_MN "SW_HID_CONFIG_MN" +#define HID_PAPERSIZE "SW_HID_PAPERSIZE" +#define HID_PASSWD "SW_HID_PASSWD" +#define HID_SPELLING_OPTIONS "SW_HID_SPELLING_OPTIONS" +#define HID_HYPHENATE_OPTIONS "SW_HID_HYPHENATE_OPTIONS" +#define HID_FORMAT_COLUMN "SW_HID_FORMAT_COLUMN" +#define HID_CONFIG_SAVE "SW_HID_CONFIG_SAVE" +#define HID_NUM_NAMES "SW_HID_NUM_NAMES" +#define HID_SYMBOL_SELECT "SW_HID_SYMBOL_SELECT" +#define HID_CONFIG_KY "SW_HID_CONFIG_KY" +#define HID_LINKEDIT "SW_HID_LINKEDIT" +#define HID_GRAPHIC_PREVIEW "SW_HID_GRAPHIC_PREVIEW" +#define HID_DICTIONARY "SW_HID_DICTIONARY" +#define HID_SET_STYLE "SW_HID_SET_STYLE" +#define HID_RIBBONBAR "SW_HID_RIBBONBAR" +#define HID_STATUSLINE "SW_HID_STATUSLINE" +#define HID_DOCBAR "SW_HID_DOCBAR" +#define HID_VRULER "SW_HID_VRULER" +#define HID_MAKRO_WINDOW "SW_HID_MAKRO_WINDOW" +#define HID_ENVELOP_FORMAT "SW_HID_ENVELOP_FORMAT" +#define HID_ENVELOP_PRINTER "SW_HID_ENVELOP_PRINTER" + +#define HID_HEADER_FOOTER_DLG "SW_HID_HEADER_FOOTER_DLG" +#define HID_GRID_DLG "SW_HID_GRID_DLG" +#define HID_USER_ADDRESS_DLG "SW_HID_USER_ADDRESS_DLG" +#define HID_SELECT_FAX_DLG "SW_HID_SELECT_FAX_DLG" + +#define HID_LABEL_FORMAT "SW_HID_LABEL_FORMAT" +#define HID_BRSORT "SW_HID_BRSORT" +#define HID_BRSEEK "SW_HID_BRSEEK" +#define HID_BRCFG "SW_HID_BRCFG" + +#define HID_FORMEDT_CONTENT "SW_HID_FORMEDT_CONTENT" +#define HID_FORMEDT_USER "SW_HID_FORMEDT_USER" +#define HID_FORMEDT_INDEX "SW_HID_FORMEDT_INDEX" + +#define HID_SCRL_PAGEUP "SW_HID_SCRL_PAGEUP" +#define HID_SCRL_PAGEDOWN "SW_HID_SCRL_PAGEDOWN" + +#define HID_DRAW_WIN "SW_HID_DRAW_WIN" +#define HID_EDIT_WIN "SW_HID_EDIT_WIN" + +#define HID_INSERT_CTRL "SW_HID_INSERT_CTRL" // TbxControl Einfuegen +#define HID_INSERT_OBJ_CTRL "SW_HID_INSERT_OBJ_CTRL" +#define HID_INSERT_FIELD_CTRL "SW_HID_INSERT_FIELD_CTRL" + +#define HID_SOURCEVIEW "SW_HID_SOURCEVIEW" +#define HID_TBL_OPT_CTRL "SW_HID_TBL_OPT_CTRL" +#define HID_AUTOFORMAT_CLB "SW_HID_AUTOFORMAT_CLB" + +#define HID_SCRL_NAVI "SW_HID_SCRL_NAVI" +#define HID_NAVI_DRAG_HYP "SW_HID_NAVI_DRAG_HYP" +#define HID_NAVI_DRAG_LINK "SW_HID_NAVI_DRAG_LINK" +#define HID_NAVI_DRAG_COPY "SW_HID_NAVI_DRAG_COPY" +#define HID_NAVI_OUTLINES "SW_HID_NAVI_OUTLINES" + +#define HID_AUTOFORMAT_EXEC "SW_HID_AUTOFORMAT_EXEC" +#define HID_AUTOFORMAT_CLOSE "SW_HID_AUTOFORMAT_CLOSE" + +#define HID_PAGEPREVIEW "SW_HID_PAGEPREVIEW" +#define HID_SOURCE_EDITWIN "SW_HID_SOURCE_EDITWIN" // Dialog Help-IDs ********************************************************** -#define HID_CONVERT_FROM (HID_BASE + 200) -#define HID_CONVERT_TO (HID_BASE + 201) -#define HID_EDIT_POSTIT (HID_BASE + 202) -#define HID_INSERT_CHART (HID_BASE + 203) -#define HID_PAGE_PREVIEW (HID_BASE + 204) -#define HID_INSERT_HYPERLINK (HID_BASE + 205) -#define HID_NAVIGATOR_TREELIST (HID_BASE + 206) -#define HID_DLG_CAPTION (HID_BASE + 207) -#define HID_DLG_GLOSS_DECIDE (HID_BASE + 208) -#define HID_NAVIGATOR_TOOLBOX (HID_BASE + 209) -#define HID_NAVIGATOR_LISTBOX (HID_BASE + 210) -#define HID_NUM_BULLET_DLG (HID_BASE + 211) -#define HID_VS_SINGLENUM (HID_BASE + 212) -#define HID_VS_NUM (HID_BASE + 213) -#define HID_VS_BULLET (HID_BASE + 214) -#define HID_VS_NUMBMP (HID_BASE + 215) -#define HID_VS_RULER (HID_BASE + 216) -#define HID_RULER_DIALOG (HID_BASE + 217) -#define HID_INSERT_ABSTRACT (HID_BASE + 218) -#define HID_NAVI_TBX1 (HID_BASE + 219) -#define HID_NAVI_TBX2 (HID_BASE + 220) -#define HID_NAVI_TBX3 (HID_BASE + 221) -#define HID_NAVI_TBX4 (HID_BASE + 222) -#define HID_NAVI_TBX5 (HID_BASE + 223) -#define HID_NAVI_TBX6 (HID_BASE + 224) -#define HID_NAVI_TBX7 (HID_BASE + 225) -#define HID_NAVI_TBX8 (HID_BASE + 226) -#define HID_NAVI_TBX9 (HID_BASE + 227) -#define HID_NAVI_TBX10 (HID_BASE + 228) -#define HID_NAVI_TBX11 (HID_BASE + 229) -#define HID_NAVI_TBX12 (HID_BASE + 230) -#define HID_NAVI_TBX13 (HID_BASE + 231) -#define HID_NAVI_TBX14 (HID_BASE + 232) -#define HID_NAVI_TBX15 (HID_BASE + 233) -#define HID_NAVI_VS (HID_BASE + 234) -#define HID_NUM_FORMAT_BTN (HID_BASE + 235) -#define HID_PPREV_ZOOM (HID_BASE + 236) -#define HID_NAVI_TBX16 (HID_BASE + 237) -#define HID_LTEMPL_TEXT (HID_BASE + 238) -#define HID_LTEMPL_FRAME (HID_BASE + 239) -#define HID_LTEMPL_PAGE (HID_BASE + 240) -#define HID_LTEMPL_OVERRIDE (HID_BASE + 241) -#define HID_LTEMPL_TEMPLATES (HID_BASE + 242) -#define HID_NAVI_TBX17 (HID_BASE + 243) -#define HID_NAVI_TBX18 (HID_BASE + 244) -#define HID_NAVI_TBX19 (HID_BASE + 245) -#define HID_NAVI_TBX20 (HID_BASE + 246) -#define HID_NAVI_TBX21 (HID_BASE + 247) -#define HID_NAVI_TBX22 (HID_BASE + 248) -#define HID_NAVI_TBX23 (HID_BASE + 249) -#define HID_NAVI_TBX24 (HID_BASE + 250) -#define HID_NAVIGATOR_GLOBAL_TOOLBOX (HID_BASE + 251) -#define HID_NAVIGATOR_GLOB_TREELIST (HID_BASE + 252) -#define HID_GLOS_GROUP_TREE (HID_BASE + 253) -#define HID_GLBLTREE_UPDATE (HID_BASE + 254) -#define HID_GLBLTREE_INSERT (HID_BASE + 255) -#define HID_GLBLTREE_EDIT (HID_BASE + 256) -#define HID_GLBLTREE_DEL (HID_BASE + 257) -#define HID_GLBLTREE_INS_IDX (HID_BASE + 258) -#define HID_GLBLTREE_INS_CNTIDX (HID_BASE + 259) -#define HID_GLBLTREE_INS_USRIDX (HID_BASE + 260) -#define HID_GLBLTREE_INS_FILE (HID_BASE + 261) -#define HID_GLBLTREE_INS_NEW_FILE (HID_BASE + 262) -#define HID_GLBLTREE_INS_TEXT (HID_BASE + 263) -#define HID_GLBLTREE_UPD_SEL (HID_BASE + 264) -#define HID_GLBLTREE_UPD_IDX (HID_BASE + 265) -#define HID_GLBLTREE_UPD_LINK (HID_BASE + 266) -#define HID_GLBLTREEUPD_ALL (HID_BASE + 267) -#define HID_NUM_OUTL_NAMED_NUMS (HID_BASE + 268) -#define HID_NUM_OUTL_NUM_SAVEAS (HID_BASE + 269) -#define HID_NUM_NAMED_NUMS (HID_BASE + 270) -#define HID_NUM_NUM_SAVEAS (HID_BASE + 271) -#define HID_NUM_STD_NUMBER (HID_BASE + 272) -#define HID_NUM_DEL_NUMBER (HID_BASE + 273) -#define HID_NUM_STD_BULLET (HID_BASE + 274) -#define HID_NUM_DEL_BULLET (HID_BASE + 275) -#define HID_NAVI_CONTENT (HID_BASE + 276) -#define HID_NAVI_GLOBAL (HID_BASE + 277) -#define HID_LTEMPL_NUMBERING (HID_BASE + 278) -#define HID_FLDVAR_APPLY (HID_BASE + 279) -#define HID_FLDVAR_DELETE (HID_BASE + 280) -#define HID_FLDEDT_ADDRESS (HID_BASE + 281) -#define HID_SORT_ACTION (HID_BASE + 282) -#define HID_SORT_AUTHOR (HID_BASE + 283) -#define HID_SORT_DATE (HID_BASE + 284) -#define HID_SORT_COMMENT (HID_BASE + 285) -#define HID_SW_SORT_POSITION (HID_BASE + 286) -#define HID_SYNC_BTN (HID_BASE + 287) -#define HID_EDIT_COMMENT (HID_BASE + 288) -#define HID_SEL_TEMPLATE (HID_BASE + 289) -#define HID_DLG_SEQUENCE_OPTION (HID_BASE + 290) -#define HID_DLG_FLDEDT_NEXT (HID_BASE + 291) -#define HID_DLG_FLDEDT_PREV (HID_BASE + 292) -#define HID_DLG_FLDEDT_ADDRESS (HID_BASE + 293) -#define HID_DLG_PRV_PRT_OPTIONS (HID_BASE + 294) - -#define HID_FILEDLG_CHARDLG (HID_BASE + 295) -#define HID_FILEDLG_LOADTEMPLATE (HID_BASE + 296) -#define HID_FILEDLG_ROMENU (HID_BASE + 297) -#define HID_FILEDLG_MAILMRGE1 (HID_BASE + 298) -#define HID_FILEDLG_MAILMRGE2 (HID_BASE + 299) -#define HID_FILEDLG_FRMPAGE (HID_BASE + 300) -#define HID_FILEDLG_SRCVIEW (HID_BASE + 301) -#define HID_FILEDLG_WIZDOKU (HID_BASE + 302) -#define HID_PREVIEW_ZOOM (HID_BASE + 303) - -#define HID_REDLINE_AUTOFMT_ACCEPT (HID_BASE + 304) -#define HID_MULTI_TOX_DLG (HID_BASE + 305) -#define HID_ASCII_FILTER (HID_BASE + 306) -#define HID_GLBLTREE_EDIT_LINK (HID_BASE + 307) -#define HID_FORMAT_NAME_OBJECT_NAME (HID_BASE + 308)// #100286# -#define HID_REFSELECTION_TOOLTIP (HID_BASE + 309) // #i83479# +#define HID_CONVERT_FROM "SW_HID_CONVERT_FROM" +#define HID_CONVERT_TO "SW_HID_CONVERT_TO" +#define HID_EDIT_POSTIT "SW_HID_EDIT_POSTIT" +#define HID_INSERT_CHART "SW_HID_INSERT_CHART" +#define HID_PAGE_PREVIEW "SW_HID_PAGE_PREVIEW" +#define HID_INSERT_HYPERLINK "SW_HID_INSERT_HYPERLINK" +#define HID_NAVIGATOR_TREELIST "SW_HID_NAVIGATOR_TREELIST" +#define HID_DLG_CAPTION "SW_HID_DLG_CAPTION" +#define HID_DLG_GLOSS_DECIDE "SW_HID_DLG_GLOSS_DECIDE" +#define HID_NAVIGATOR_TOOLBOX "SW_HID_NAVIGATOR_TOOLBOX" +#define HID_NAVIGATOR_LISTBOX "SW_HID_NAVIGATOR_LISTBOX" +#define HID_NUM_BULLET_DLG "SW_HID_NUM_BULLET_DLG" +#define HID_VS_SINGLENUM "SW_HID_VS_SINGLENUM" +#define HID_VS_NUM "SW_HID_VS_NUM" +#define HID_VS_BULLET "SW_HID_VS_BULLET" +#define HID_VS_NUMBMP "SW_HID_VS_NUMBMP" +#define HID_VS_RULER "SW_HID_VS_RULER" +#define HID_RULER_DIALOG "SW_HID_RULER_DIALOG" +#define HID_INSERT_ABSTRACT "SW_HID_INSERT_ABSTRACT" +#define HID_NAVI_TBX1 "SW_HID_NAVI_TBX1" +#define HID_NAVI_TBX2 "SW_HID_NAVI_TBX2" +#define HID_NAVI_TBX3 "SW_HID_NAVI_TBX3" +#define HID_NAVI_TBX4 "SW_HID_NAVI_TBX4" +#define HID_NAVI_TBX5 "SW_HID_NAVI_TBX5" +#define HID_NAVI_TBX6 "SW_HID_NAVI_TBX6" +#define HID_NAVI_TBX7 "SW_HID_NAVI_TBX7" +#define HID_NAVI_TBX8 "SW_HID_NAVI_TBX8" +#define HID_NAVI_TBX9 "SW_HID_NAVI_TBX9" +#define HID_NAVI_TBX10 "SW_HID_NAVI_TBX10" +#define HID_NAVI_TBX11 "SW_HID_NAVI_TBX11" +#define HID_NAVI_TBX12 "SW_HID_NAVI_TBX12" +#define HID_NAVI_TBX13 "SW_HID_NAVI_TBX13" +#define HID_NAVI_TBX14 "SW_HID_NAVI_TBX14" +#define HID_NAVI_TBX15 "SW_HID_NAVI_TBX15" +#define HID_NAVI_VS "SW_HID_NAVI_VS" +#define HID_NUM_FORMAT_BTN "SW_HID_NUM_FORMAT_BTN" +#define HID_PPREV_ZOOM "SW_HID_PPREV_ZOOM" +#define HID_NAVI_TBX16 "SW_HID_NAVI_TBX16" +#define HID_LTEMPL_TEXT "SW_HID_LTEMPL_TEXT" +#define HID_LTEMPL_FRAME "SW_HID_LTEMPL_FRAME" +#define HID_LTEMPL_PAGE "SW_HID_LTEMPL_PAGE" +#define HID_LTEMPL_OVERRIDE "SW_HID_LTEMPL_OVERRIDE" +#define HID_LTEMPL_TEMPLATES "SW_HID_LTEMPL_TEMPLATES" +#define HID_NAVI_TBX17 "SW_HID_NAVI_TBX17" +#define HID_NAVI_TBX18 "SW_HID_NAVI_TBX18" +#define HID_NAVI_TBX19 "SW_HID_NAVI_TBX19" +#define HID_NAVI_TBX20 "SW_HID_NAVI_TBX20" +#define HID_NAVI_TBX21 "SW_HID_NAVI_TBX21" +#define HID_NAVI_TBX22 "SW_HID_NAVI_TBX22" +#define HID_NAVI_TBX23 "SW_HID_NAVI_TBX23" +#define HID_NAVI_TBX24 "SW_HID_NAVI_TBX24" +#define HID_NAVIGATOR_GLOBAL_TOOLBOX "SW_HID_NAVIGATOR_GLOBAL_TOOLBOX" +#define HID_NAVIGATOR_GLOB_TREELIST "SW_HID_NAVIGATOR_GLOB_TREELIST" +#define HID_GLOS_GROUP_TREE "SW_HID_GLOS_GROUP_TREE" +#define HID_GLBLTREE_UPDATE "SW_HID_GLBLTREE_UPDATE" +#define HID_GLBLTREE_INSERT "SW_HID_GLBLTREE_INSERT" +#define HID_GLBLTREE_EDIT "SW_HID_GLBLTREE_EDIT" +#define HID_GLBLTREE_DEL "SW_HID_GLBLTREE_DEL" +#define HID_GLBLTREE_INS_IDX "SW_HID_GLBLTREE_INS_IDX" +#define HID_GLBLTREE_INS_CNTIDX "SW_HID_GLBLTREE_INS_CNTIDX" +#define HID_GLBLTREE_INS_USRIDX "SW_HID_GLBLTREE_INS_USRIDX" +#define HID_GLBLTREE_INS_FILE "SW_HID_GLBLTREE_INS_FILE" +#define HID_GLBLTREE_INS_NEW_FILE "SW_HID_GLBLTREE_INS_NEW_FILE" +#define HID_GLBLTREE_INS_TEXT "SW_HID_GLBLTREE_INS_TEXT" +#define HID_GLBLTREE_UPD_SEL "SW_HID_GLBLTREE_UPD_SEL" +#define HID_GLBLTREE_UPD_IDX "SW_HID_GLBLTREE_UPD_IDX" +#define HID_GLBLTREE_UPD_LINK "SW_HID_GLBLTREE_UPD_LINK" +#define HID_GLBLTREEUPD_ALL "SW_HID_GLBLTREEUPD_ALL" +#define HID_NUM_OUTL_NAMED_NUMS "SW_HID_NUM_OUTL_NAMED_NUMS" +#define HID_NUM_OUTL_NUM_SAVEAS "SW_HID_NUM_OUTL_NUM_SAVEAS" +#define HID_NUM_NAMED_NUMS "SW_HID_NUM_NAMED_NUMS" +#define HID_NUM_NUM_SAVEAS "SW_HID_NUM_NUM_SAVEAS" +#define HID_NUM_STD_NUMBER "SW_HID_NUM_STD_NUMBER" +#define HID_NUM_DEL_NUMBER "SW_HID_NUM_DEL_NUMBER" +#define HID_NUM_STD_BULLET "SW_HID_NUM_STD_BULLET" +#define HID_NUM_DEL_BULLET "SW_HID_NUM_DEL_BULLET" +#define HID_NAVI_CONTENT "SW_HID_NAVI_CONTENT" +#define HID_NAVI_GLOBAL "SW_HID_NAVI_GLOBAL" +#define HID_LTEMPL_NUMBERING "SW_HID_LTEMPL_NUMBERING" +#define HID_FLDVAR_APPLY "SW_HID_FLDVAR_APPLY" +#define HID_FLDVAR_DELETE "SW_HID_FLDVAR_DELETE" +#define HID_FLDEDT_ADDRESS "SW_HID_FLDEDT_ADDRESS" +#define HID_SORT_ACTION "SW_HID_SORT_ACTION" +#define HID_SORT_AUTHOR "SW_HID_SORT_AUTHOR" +#define HID_SORT_DATE "SW_HID_SORT_DATE" +#define HID_SORT_COMMENT "SW_HID_SORT_COMMENT" +#define HID_SW_SORT_POSITION "SW_HID_SW_SORT_POSITION" +#define HID_SYNC_BTN "SW_HID_SYNC_BTN" +#define HID_EDIT_COMMENT "SW_HID_EDIT_COMMENT" +#define HID_SEL_TEMPLATE "SW_HID_SEL_TEMPLATE" +#define HID_DLG_SEQUENCE_OPTION "SW_HID_DLG_SEQUENCE_OPTION" +#define HID_DLG_FLDEDT_NEXT "SW_HID_DLG_FLDEDT_NEXT" +#define HID_DLG_FLDEDT_PREV "SW_HID_DLG_FLDEDT_PREV" +#define HID_DLG_FLDEDT_ADDRESS "SW_HID_DLG_FLDEDT_ADDRESS" +#define HID_DLG_PRV_PRT_OPTIONS "SW_HID_DLG_PRV_PRT_OPTIONS" + +#define HID_FILEDLG_CHARDLG "SW_HID_FILEDLG_CHARDLG" +#define HID_FILEDLG_LOADTEMPLATE "SW_HID_FILEDLG_LOADTEMPLATE" +#define HID_FILEDLG_ROMENU "SW_HID_FILEDLG_ROMENU" +#define HID_FILEDLG_MAILMRGE1 "SW_HID_FILEDLG_MAILMRGE1" +#define HID_FILEDLG_MAILMRGE2 "SW_HID_FILEDLG_MAILMRGE2" +#define HID_FILEDLG_FRMPAGE "SW_HID_FILEDLG_FRMPAGE" +#define HID_FILEDLG_SRCVIEW "SW_HID_FILEDLG_SRCVIEW" +#define HID_FILEDLG_WIZDOKU "SW_HID_FILEDLG_WIZDOKU" +#define HID_PREVIEW_ZOOM "SW_HID_PREVIEW_ZOOM" + +#define HID_REDLINE_AUTOFMT_ACCEPT "SW_HID_REDLINE_AUTOFMT_ACCEPT" +#define HID_MULTI_TOX_DLG "SW_HID_MULTI_TOX_DLG" +#define HID_ASCII_FILTER "SW_HID_ASCII_FILTER" +#define HID_GLBLTREE_EDIT_LINK "SW_HID_GLBLTREE_EDIT_LINK" +#define HID_FORMAT_NAME_OBJECT_NAME "SW_HID_FORMAT_NAME_OBJECT_NAME"// #100286# +#define HID_REFSELECTION_TOOLTIP "SW_HID_REFSELECTION_TOOLTIP" // #i83479# // TabPage Help-IDs ********************************************************* -#define HID_DROPCAPS (HID_BASE + 400) -#define HID_FRM_EXT (HID_BASE + 401) -#define HID_FRM_STD (HID_BASE + 402) -#define HID_GRF_EXT (HID_BASE + 403) -#define HID_COLUMN (HID_BASE + 404) -#define HID_DOC_STAT (HID_BASE + 405) -#define HID_MACROASSIGN (HID_BASE + 406) -#define HID_FOOTNOTE_PAGE (HID_BASE + 407) -#define HID_OPTDOCDISP_PAGE (HID_BASE + 408) -#define HID_OPTGRID_PAGE (HID_BASE + 409) -#define HID_OPTTEST_PAGE (HID_BASE + 410) -#define HID_OPTPRINT_PAGE (HID_BASE + 411) -#define HID_FORMAT_TABLE (HID_BASE + 412) -#define HID_TABLE_COLUMN (HID_BASE + 413) -#define HID_LAB_LAB (HID_BASE + 414) -#define HID_LAB_PRT (HID_BASE + 415) -#define HID_ENV_PRT (HID_BASE + 416) -#define HID_LAB_FMT (HID_BASE + 417) -#define HID_ENV_ENV (HID_BASE + 418) -#define HID_ENV_FMT (HID_BASE + 419) -#define HID_FRM_URL (HID_BASE + 421) -#define HID_CHAR_URL (HID_BASE + 422) -#define HID_CONTENT_OPT (HID_BASE + 423) -#define HID_LAYOUT_OPT (HID_BASE + 424) -#define HID_STD_FONT (HID_BASE + 425) -#define HID_COND_COLL (HID_BASE + 426) -#define HID_FRM_ADD (HID_BASE + 427) -#define HID_TABLE_TEXTFLOW (HID_BASE + 428) -#define HID_AUTOFMT_BY_INPUT (HID_BASE + 429) -#define HID_AUTOFMT_APPLY (HID_BASE + 430) -#define HID_OPTTABLE_PAGE (HID_BASE + 431) -#define HID_PICK_SINGLE_NUM (HID_BASE + 432) -#define HID_PICK_BULLET (HID_BASE + 433) -#define HID_PICK_NUM (HID_BASE + 434) -#define HID_PICK_BMP (HID_BASE + 435) - -#define HID_FLD_DB (HID_BASE + 437) -#define HID_FLD_DOKINF (HID_BASE + 438) -#define HID_FLD_VAR (HID_BASE + 439) -#define HID_FLD_DOK (HID_BASE + 440) -#define HID_FLD_FUNC (HID_BASE + 441) -#define HID_FLD_REF (HID_BASE + 442) -#define HID_OPTSHDWCRSR (HID_BASE + 443) -#define HID_NUM_OPTIONS (HID_BASE + 444) -#define HID_NUM_POSITION (HID_BASE + 445) -#define HID_NUMPARA (HID_BASE + 446) -#define HID_FOOTNOTE_OPTIONS (HID_BASE + 447) -#define HID_ENDNOTE_OPTIONS (HID_BASE + 448) -#define HID_REDLINE_OPT (HID_BASE + 449) -#define HID_LINENUMBERING (HID_BASE + 450) -#define HID_REDLINE_ACCEPT (HID_BASE + 451) -#define HID_EDIT_FLD_DB (HID_BASE + 452) -#define HID_EDIT_FLD_DOKINF (HID_BASE + 453) -#define HID_EDIT_FLD_VAR (HID_BASE + 454) -#define HID_EDIT_FLD_DOK (HID_BASE + 455) -#define HID_EDIT_FLD_FUNC (HID_BASE + 456) -#define HID_EDIT_FLD_REF (HID_BASE + 457) -#define HID_REDLINE_CTRL (HID_BASE + 458) -#define HID_TP_OUTLINE_NUM (HID_BASE + 459) -#define HID_OPTINSERT_PAGE (HID_BASE + 460) -#define HID_OPTCAPTION_PAGE (HID_BASE + 461) -#define HID_OPTLOAD_PAGE (HID_BASE + 462) -#define HID_INSERT_TOX_PAGE (HID_BASE + 463) -#define HID_TOX_FORM_ENTRY_PAGE (HID_BASE + 464) -#define HID_TOX_FORM_STYLES_PAGE (HID_BASE + 465) -#define HID_INSERT_TOX_TABDLG (HID_BASE + 466) -#define HID_INSERT_SECTION_PAGE (HID_BASE + 467) -#define HID_INSERT_SECTION_DLG (HID_BASE + 468) -#define HID_SECTION_PROPERTIES_DLG (HID_BASE + 469) -#define HID_RENAME_XNAMED (HID_BASE + 470) -#define HID_TP_TOX_SELECT (HID_BASE + 471) -#define HID_TP_TOX_ENTRY (HID_BASE + 472) -#define HID_TOX_STYLES_PAGE (HID_BASE + 473) -#define HID_TP_VISITING_CARDS (HID_BASE + 474) -#define HID_DLG_ADD_IDX_STYLES (HID_BASE + 475) -#define HID_ADD_STYLES_TLB (HID_BASE + 476) -#define HID_OLE_CHECKLB (HID_BASE + 477) -#define HID_DLG_CREATE_AUTH_ENTRY (HID_BASE + 478) -#define HID_TP_PRIVATE_DATA (HID_BASE + 479) - -#define HID_TP_BUSINESS_DATA (HID_BASE + 480) -#define HID_SECTION_FTNENDNOTES_PAGE (HID_BASE + 481) -#define HID_TEXTGRID_PAGE (HID_BASE + 482) -#define HID_OPTCOMPATIBILITY_PAGE (HID_BASE + 483) -#define HID_COMPATIBILITY_OPTIONS_BOX (HID_BASE + 484) +#define HID_DROPCAPS "SW_HID_DROPCAPS" +#define HID_FRM_EXT "SW_HID_FRM_EXT" +#define HID_FRM_STD "SW_HID_FRM_STD" +#define HID_GRF_EXT "SW_HID_GRF_EXT" +#define HID_COLUMN "SW_HID_COLUMN" +#define HID_DOC_STAT "SW_HID_DOC_STAT" +#define HID_MACROASSIGN "SW_HID_MACROASSIGN" +#define HID_FOOTNOTE_PAGE "SW_HID_FOOTNOTE_PAGE" +#define HID_OPTDOCDISP_PAGE "SW_HID_OPTDOCDISP_PAGE" +#define HID_OPTGRID_PAGE "SW_HID_OPTGRID_PAGE" +#define HID_OPTTEST_PAGE "SW_HID_OPTTEST_PAGE" +#define HID_OPTPRINT_PAGE "SW_HID_OPTPRINT_PAGE" +#define HID_FORMAT_TABLE "SW_HID_FORMAT_TABLE" +#define HID_TABLE_COLUMN "SW_HID_TABLE_COLUMN" +#define HID_LAB_LAB "SW_HID_LAB_LAB" +#define HID_LAB_PRT "SW_HID_LAB_PRT" +#define HID_ENV_PRT "SW_HID_ENV_PRT" +#define HID_LAB_FMT "SW_HID_LAB_FMT" +#define HID_ENV_ENV "SW_HID_ENV_ENV" +#define HID_ENV_FMT "SW_HID_ENV_FMT" +#define HID_FRM_URL "SW_HID_FRM_URL" +#define HID_CHAR_URL "SW_HID_CHAR_URL" +#define HID_CONTENT_OPT "SW_HID_CONTENT_OPT" +#define HID_LAYOUT_OPT "SW_HID_LAYOUT_OPT" +#define HID_STD_FONT "SW_HID_STD_FONT" +#define HID_COND_COLL "SW_HID_COND_COLL" +#define HID_FRM_ADD "SW_HID_FRM_ADD" +#define HID_TABLE_TEXTFLOW "SW_HID_TABLE_TEXTFLOW" +#define HID_AUTOFMT_BY_INPUT "SW_HID_AUTOFMT_BY_INPUT" +#define HID_AUTOFMT_APPLY "SW_HID_AUTOFMT_APPLY" +#define HID_OPTTABLE_PAGE "SW_HID_OPTTABLE_PAGE" +#define HID_PICK_SINGLE_NUM "SW_HID_PICK_SINGLE_NUM" +#define HID_PICK_BULLET "SW_HID_PICK_BULLET" +#define HID_PICK_NUM "SW_HID_PICK_NUM" +#define HID_PICK_BMP "SW_HID_PICK_BMP" + +#define HID_FLD_DB "SW_HID_FLD_DB" +#define HID_FLD_DOKINF "SW_HID_FLD_DOKINF" +#define HID_FLD_VAR "SW_HID_FLD_VAR" +#define HID_FLD_DOK "SW_HID_FLD_DOK" +#define HID_FLD_FUNC "SW_HID_FLD_FUNC" +#define HID_FLD_REF "SW_HID_FLD_REF" +#define HID_OPTSHDWCRSR "SW_HID_OPTSHDWCRSR" +#define HID_NUM_OPTIONS "SW_HID_NUM_OPTIONS" +#define HID_NUM_POSITION "SW_HID_NUM_POSITION" +#define HID_NUMPARA "SW_HID_NUMPARA" +#define HID_FOOTNOTE_OPTIONS "SW_HID_FOOTNOTE_OPTIONS" +#define HID_ENDNOTE_OPTIONS "SW_HID_ENDNOTE_OPTIONS" +#define HID_REDLINE_OPT "SW_HID_REDLINE_OPT" +#define HID_LINENUMBERING "SW_HID_LINENUMBERING" +#define HID_REDLINE_ACCEPT "SW_HID_REDLINE_ACCEPT" +#define HID_EDIT_FLD_DB "SW_HID_EDIT_FLD_DB" +#define HID_EDIT_FLD_DOKINF "SW_HID_EDIT_FLD_DOKINF" +#define HID_EDIT_FLD_VAR "SW_HID_EDIT_FLD_VAR" +#define HID_EDIT_FLD_DOK "SW_HID_EDIT_FLD_DOK" +#define HID_EDIT_FLD_FUNC "SW_HID_EDIT_FLD_FUNC" +#define HID_EDIT_FLD_REF "SW_HID_EDIT_FLD_REF" +#define HID_REDLINE_CTRL "SW_HID_REDLINE_CTRL" +#define HID_TP_OUTLINE_NUM "SW_HID_TP_OUTLINE_NUM" +#define HID_OPTINSERT_PAGE "SW_HID_OPTINSERT_PAGE" +#define HID_OPTCAPTION_PAGE "SW_HID_OPTCAPTION_PAGE" +#define HID_OPTLOAD_PAGE "SW_HID_OPTLOAD_PAGE" +#define HID_INSERT_TOX_PAGE "SW_HID_INSERT_TOX_PAGE" +#define HID_TOX_FORM_ENTRY_PAGE "SW_HID_TOX_FORM_ENTRY_PAGE" +#define HID_TOX_FORM_STYLES_PAGE "SW_HID_TOX_FORM_STYLES_PAGE" +#define HID_INSERT_TOX_TABDLG "SW_HID_INSERT_TOX_TABDLG" +#define HID_INSERT_SECTION_PAGE "SW_HID_INSERT_SECTION_PAGE" +#define HID_INSERT_SECTION_DLG "SW_HID_INSERT_SECTION_DLG" +#define HID_SECTION_PROPERTIES_DLG "SW_HID_SECTION_PROPERTIES_DLG" +#define HID_RENAME_XNAMED "SW_HID_RENAME_XNAMED" +#define HID_TP_TOX_SELECT "SW_HID_TP_TOX_SELECT" +#define HID_TP_TOX_ENTRY "SW_HID_TP_TOX_ENTRY" +#define HID_TOX_STYLES_PAGE "SW_HID_TOX_STYLES_PAGE" +#define HID_TP_VISITING_CARDS "SW_HID_TP_VISITING_CARDS" +#define HID_DLG_ADD_IDX_STYLES "SW_HID_DLG_ADD_IDX_STYLES" +#define HID_ADD_STYLES_TLB "SW_HID_ADD_STYLES_TLB" +#define HID_OLE_CHECKLB "SW_HID_OLE_CHECKLB" +#define HID_DLG_CREATE_AUTH_ENTRY "SW_HID_DLG_CREATE_AUTH_ENTRY" +#define HID_TP_PRIVATE_DATA "SW_HID_TP_PRIVATE_DATA" + +#define HID_TP_BUSINESS_DATA "SW_HID_TP_BUSINESS_DATA" +#define HID_SECTION_FTNENDNOTES_PAGE "SW_HID_SECTION_FTNENDNOTES_PAGE" +#define HID_TEXTGRID_PAGE "SW_HID_TEXTGRID_PAGE" +#define HID_OPTCOMPATIBILITY_PAGE "SW_HID_OPTCOMPATIBILITY_PAGE" +#define HID_COMPATIBILITY_OPTIONS_BOX "SW_HID_COMPATIBILITY_OPTIONS_BOX" // AutoPilot Help-IDs ********************************************************* -#define HID_LETTER_PAGE1 (HID_BASE + 501) -#define HID_LETTER_PAGE2 (HID_BASE + 502) -#define HID_LETTER_PAGE3 (HID_BASE + 503) -#define HID_LETTER_PAGE4 (HID_BASE + 504) -#define HID_LETTER_PAGE5 (HID_BASE + 505) -#define HID_LETTER_PAGE6 (HID_BASE + 506) -#define HID_LETTER_PAGE7 (HID_BASE + 507) -#define HID_LETTER_PAGE8 (HID_BASE + 508) -#define HID_LETTER_PAGE9 (HID_BASE + 509) - -#define HID_FAX_PAGE1 (HID_BASE + 511) -#define HID_FAX_PAGE2 (HID_BASE + 512) -#define HID_FAX_PAGE3 (HID_BASE + 513) -#define HID_FAX_PAGE4 (HID_BASE + 514) -#define HID_FAX_PAGE5 (HID_BASE + 515) -#define HID_FAX_PAGE6 (HID_BASE + 516) -#define HID_FAX_PAGE7 (HID_BASE + 517) -#define HID_FAX_PAGE8 (HID_BASE + 518) - -#define HID_MEMO_PAGE1 (HID_BASE + 521) -#define HID_MEMO_PAGE2 (HID_BASE + 522) -#define HID_MEMO_PAGE3 (HID_BASE + 523) -#define HID_MEMO_PAGE4 (HID_BASE + 524) -#define HID_MEMO_PAGE5 (HID_BASE + 525) - -#define HID_AGENDA_PAGE1 (HID_BASE + 531) -#define HID_AGENDA_PAGE2 (HID_BASE + 532) -#define HID_AGENDA_PAGE3 (HID_BASE + 533) -#define HID_AGENDA_PAGE4 (HID_BASE + 534) -#define HID_AGENDA_PAGE5 (HID_BASE + 535) -#define HID_AGENDA_PAGE6 (HID_BASE + 536) - -#define HID_AUTOPILOT_NEXT (HID_BASE + 537) -#define HID_AUTOPILOT_PREV (HID_BASE + 538) -#define HID_AUTOPILOT_OK (HID_BASE + 539) +#define HID_LETTER_PAGE1 "SW_HID_LETTER_PAGE1" +#define HID_LETTER_PAGE2 "SW_HID_LETTER_PAGE2" +#define HID_LETTER_PAGE3 "SW_HID_LETTER_PAGE3" +#define HID_LETTER_PAGE4 "SW_HID_LETTER_PAGE4" +#define HID_LETTER_PAGE5 "SW_HID_LETTER_PAGE5" +#define HID_LETTER_PAGE6 "SW_HID_LETTER_PAGE6" +#define HID_LETTER_PAGE7 "SW_HID_LETTER_PAGE7" +#define HID_LETTER_PAGE8 "SW_HID_LETTER_PAGE8" +#define HID_LETTER_PAGE9 "SW_HID_LETTER_PAGE9" + +#define HID_FAX_PAGE1 "SW_HID_FAX_PAGE1" +#define HID_FAX_PAGE2 "SW_HID_FAX_PAGE2" +#define HID_FAX_PAGE3 "SW_HID_FAX_PAGE3" +#define HID_FAX_PAGE4 "SW_HID_FAX_PAGE4" +#define HID_FAX_PAGE5 "SW_HID_FAX_PAGE5" +#define HID_FAX_PAGE6 "SW_HID_FAX_PAGE6" +#define HID_FAX_PAGE7 "SW_HID_FAX_PAGE7" +#define HID_FAX_PAGE8 "SW_HID_FAX_PAGE8" + +#define HID_MEMO_PAGE1 "SW_HID_MEMO_PAGE1" +#define HID_MEMO_PAGE2 "SW_HID_MEMO_PAGE2" +#define HID_MEMO_PAGE3 "SW_HID_MEMO_PAGE3" +#define HID_MEMO_PAGE4 "SW_HID_MEMO_PAGE4" +#define HID_MEMO_PAGE5 "SW_HID_MEMO_PAGE5" + +#define HID_AGENDA_PAGE1 "SW_HID_AGENDA_PAGE1" +#define HID_AGENDA_PAGE2 "SW_HID_AGENDA_PAGE2" +#define HID_AGENDA_PAGE3 "SW_HID_AGENDA_PAGE3" +#define HID_AGENDA_PAGE4 "SW_HID_AGENDA_PAGE4" +#define HID_AGENDA_PAGE5 "SW_HID_AGENDA_PAGE5" +#define HID_AGENDA_PAGE6 "SW_HID_AGENDA_PAGE6" + +#define HID_AUTOPILOT_NEXT "SW_HID_AUTOPILOT_NEXT" +#define HID_AUTOPILOT_PREV "SW_HID_AUTOPILOT_PREV" +#define HID_AUTOPILOT_OK "SW_HID_AUTOPILOT_OK" // HelpIds fuers Menue ***************************************************** -#define HID_MN_SUB_TBLROW (HID_BASE + 600) -#define HID_MN_SUB_TBLCOL (HID_BASE + 601) -#define HID_MN_SUB_AUTOFORMAT (HID_BASE + 602) -#define HID_MN_SUB_TOOLBAR (HID_BASE + 603) -#define HID_MN_SUB_FIELD (HID_BASE + 604) -#define HID_MN_SUB_GRAPHIC (HID_BASE + 605) -#define HID_MN_SUB_TEMPLATES (HID_BASE + 606) -#define HID_MN_SUB_ARRANGE (HID_BASE + 607) -#define HID_MN_SUB_SPELLING (HID_BASE + 608) -#define HID_MN_SUB_UPDATE (HID_BASE + 609) -#define HID_MN_SUB_MIRROR (HID_BASE + 610) -#define HID_MN_SUB_ALIGN (HID_BASE + 611) -#define HID_MN_SUB_OPTIONS (HID_BASE + 612) - -#define HID_MN_CALC_PHD (HID_BASE + 613) -#define HID_MN_CALC_SQRT (HID_BASE + 614) -#define HID_MN_CALC_OR (HID_BASE + 615) -#define HID_MN_CALC_XOR (HID_BASE + 616) -#define HID_MN_CALC_AND (HID_BASE + 617) -#define HID_MN_CALC_NOT (HID_BASE + 618) -#define HID_MN_CALC_EQ (HID_BASE + 619) -#define HID_MN_CALC_NEQ (HID_BASE + 620) -#define HID_MN_CALC_LEQ (HID_BASE + 621) -#define HID_MN_CALC_GEQ (HID_BASE + 622) -#define HID_MN_CALC_LES (HID_BASE + 623) -#define HID_MN_CALC_GRE (HID_BASE + 624) -#define HID_MN_CALC_SUM (HID_BASE + 625) -#define HID_MN_CALC_MEAN (HID_BASE + 626) -#define HID_MN_CALC_MIN (HID_BASE + 627) -#define HID_MN_CALC_MAX (HID_BASE + 628) -#define HID_MN_CALC_SIN (HID_BASE + 629) -#define HID_MN_CALC_COS (HID_BASE + 630) -#define HID_MN_CALC_TAN (HID_BASE + 631) -#define HID_MN_CALC_ASIN (HID_BASE + 632) -#define HID_MN_CALC_ACOS (HID_BASE + 633) -#define HID_MN_CALC_ATAN (HID_BASE + 634) -#define HID_MN_CALC_POW (HID_BASE + 635) -#define HID_MN_CALC_LISTSEP (HID_BASE + 636) -#define HID_MN_POP_OPS (HID_BASE + 637) -#define HID_MN_POP_STATISTICS (HID_BASE + 638) -#define HID_MN_POP_FUNC (HID_BASE + 639) -#define HID_MN_RSC_END (HID_BASE + 640) -#define HID_MN_CALC_ROUND (HID_BASE + 641) -#define HID_MN_SUB_MACRO (HID_BASE + 642) - -#define HID_MN_READONLY_SAVEGRAPHIC (HID_BASE + 645) -#define HID_MN_READONLY_GRAPHICTOGALLERY (HID_BASE + 646) -#define HID_MN_READONLY_TOGALLERYLINK (HID_BASE + 647) -#define HID_MN_READONLY_TOGALLERYCOPY (HID_BASE + 648) -#define HID_MN_READONLY_SAVEBACKGROUND (HID_BASE + 649) -#define HID_MN_READONLY_BACKGROUNDTOGALLERY (HID_BASE + 650) -#define HID_MN_READONLY_COPYLINK (HID_BASE + 651) -#define HID_MN_READONLY_COPYGRAPHIC (HID_BASE + 652) -#define HID_MN_READONLY_LOADGRAPHIC (HID_BASE + 653) -#define HID_MN_READONLY_GRAPHICOFF (HID_BASE + 654) -#define HID_MN_READONLY_PLUGINOFF (HID_BASE + 655) - -#define HID_MD_GLOS_DEFINE (HID_BASE + 656) -#define HID_MD_GLOS_REPLACE (HID_BASE + 657) -#define HID_MD_GLOS_RENAME (HID_BASE + 658) -#define HID_MD_GLOS_DELETE (HID_BASE + 659) -#define HID_MD_GLOS_EDIT (HID_BASE + 660) -#define HID_MD_GLOS_MACRO (HID_BASE + 661) -#define HID_LINGU_ADD_WORD (HID_BASE + 662) -#define HID_LINGU_IGNORE_WORD (HID_BASE + 663) -#define HID_LINGU_SPELLING_DLG (HID_BASE + 664) -#define HID_LINGU_AUTOCORR (HID_BASE + 665) -#define HID_LINGU_REPLACE (HID_BASE + 666) -#define HID_MD_GLOS_CATEGORY (HID_BASE + 667) -#define HID_REGION_TREE (HID_BASE + 668) -#define HID_LINGU_WORD_LANGUAGE (HID_BASE + 669) -#define HID_LINGU_PARA_LANGUAGE (HID_BASE + 670) -#define HID_MD_GLOS_DEFINE_TEXT (HID_BASE + 671) -#define HID_DLG_PASSWD_SECTION (HID_BASE + 672) -#define HID_MD_COPY_TO_CLIPBOARD (HID_BASE + 673) -#define HID_MD_GLOS_IMPORT (HID_BASE + 674) -#define HID_SMARTTAG_MAIN (HID_BASE + 675) // SMARTTAGS -#define HID_LINGU_IGNORE_SELECTION (HID_BASE + 676) // grammar check context menu +#define HID_MN_SUB_TBLROW "SW_HID_MN_SUB_TBLROW" +#define HID_MN_SUB_TBLCOL "SW_HID_MN_SUB_TBLCOL" +#define HID_MN_SUB_AUTOFORMAT "SW_HID_MN_SUB_AUTOFORMAT" +#define HID_MN_SUB_TOOLBAR "SW_HID_MN_SUB_TOOLBAR" +#define HID_MN_SUB_FIELD "SW_HID_MN_SUB_FIELD" +#define HID_MN_SUB_GRAPHIC "SW_HID_MN_SUB_GRAPHIC" +#define HID_MN_SUB_TEMPLATES "SW_HID_MN_SUB_TEMPLATES" +#define HID_MN_SUB_ARRANGE "SW_HID_MN_SUB_ARRANGE" +#define HID_MN_SUB_SPELLING "SW_HID_MN_SUB_SPELLING" +#define HID_MN_SUB_UPDATE "SW_HID_MN_SUB_UPDATE" +#define HID_MN_SUB_MIRROR "SW_HID_MN_SUB_MIRROR" +#define HID_MN_SUB_ALIGN "SW_HID_MN_SUB_ALIGN" +#define HID_MN_SUB_OPTIONS "SW_HID_MN_SUB_OPTIONS" + +#define HID_MN_CALC_PHD "SW_HID_MN_CALC_PHD" +#define HID_MN_CALC_SQRT "SW_HID_MN_CALC_SQRT" +#define HID_MN_CALC_OR "SW_HID_MN_CALC_OR" +#define HID_MN_CALC_XOR "SW_HID_MN_CALC_XOR" +#define HID_MN_CALC_AND "SW_HID_MN_CALC_AND" +#define HID_MN_CALC_NOT "SW_HID_MN_CALC_NOT" +#define HID_MN_CALC_EQ "SW_HID_MN_CALC_EQ" +#define HID_MN_CALC_NEQ "SW_HID_MN_CALC_NEQ" +#define HID_MN_CALC_LEQ "SW_HID_MN_CALC_LEQ" +#define HID_MN_CALC_GEQ "SW_HID_MN_CALC_GEQ" +#define HID_MN_CALC_LES "SW_HID_MN_CALC_LES" +#define HID_MN_CALC_GRE "SW_HID_MN_CALC_GRE" +#define HID_MN_CALC_SUM "SW_HID_MN_CALC_SUM" +#define HID_MN_CALC_MEAN "SW_HID_MN_CALC_MEAN" +#define HID_MN_CALC_MIN "SW_HID_MN_CALC_MIN" +#define HID_MN_CALC_MAX "SW_HID_MN_CALC_MAX" +#define HID_MN_CALC_SIN "SW_HID_MN_CALC_SIN" +#define HID_MN_CALC_COS "SW_HID_MN_CALC_COS" +#define HID_MN_CALC_TAN "SW_HID_MN_CALC_TAN" +#define HID_MN_CALC_ASIN "SW_HID_MN_CALC_ASIN" +#define HID_MN_CALC_ACOS "SW_HID_MN_CALC_ACOS" +#define HID_MN_CALC_ATAN "SW_HID_MN_CALC_ATAN" +#define HID_MN_CALC_POW "SW_HID_MN_CALC_POW" +#define HID_MN_CALC_LISTSEP "SW_HID_MN_CALC_LISTSEP" +#define HID_MN_POP_OPS "SW_HID_MN_POP_OPS" +#define HID_MN_POP_STATISTICS "SW_HID_MN_POP_STATISTICS" +#define HID_MN_POP_FUNC "SW_HID_MN_POP_FUNC" +#define HID_MN_RSC_END "SW_HID_MN_RSC_END" +#define HID_MN_CALC_ROUND "SW_HID_MN_CALC_ROUND" +#define HID_MN_SUB_MACRO "SW_HID_MN_SUB_MACRO" + +#define HID_MN_READONLY_SAVEGRAPHIC "SW_HID_MN_READONLY_SAVEGRAPHIC" +#define HID_MN_READONLY_GRAPHICTOGALLERY "SW_HID_MN_READONLY_GRAPHICTOGALLERY" +#define HID_MN_READONLY_TOGALLERYLINK "SW_HID_MN_READONLY_TOGALLERYLINK" +#define HID_MN_READONLY_TOGALLERYCOPY "SW_HID_MN_READONLY_TOGALLERYCOPY" +#define HID_MN_READONLY_SAVEBACKGROUND "SW_HID_MN_READONLY_SAVEBACKGROUND" +#define HID_MN_READONLY_BACKGROUNDTOGALLERY "SW_HID_MN_READONLY_BACKGROUNDTOGALLERY" +#define HID_MN_READONLY_COPYLINK "SW_HID_MN_READONLY_COPYLINK" +#define HID_MN_READONLY_COPYGRAPHIC "SW_HID_MN_READONLY_COPYGRAPHIC" +#define HID_MN_READONLY_LOADGRAPHIC "SW_HID_MN_READONLY_LOADGRAPHIC" +#define HID_MN_READONLY_GRAPHICOFF "SW_HID_MN_READONLY_GRAPHICOFF" +#define HID_MN_READONLY_PLUGINOFF "SW_HID_MN_READONLY_PLUGINOFF" + +#define HID_MD_GLOS_DEFINE "SW_HID_MD_GLOS_DEFINE" +#define HID_MD_GLOS_REPLACE "SW_HID_MD_GLOS_REPLACE" +#define HID_MD_GLOS_RENAME "SW_HID_MD_GLOS_RENAME" +#define HID_MD_GLOS_DELETE "SW_HID_MD_GLOS_DELETE" +#define HID_MD_GLOS_EDIT "SW_HID_MD_GLOS_EDIT" +#define HID_MD_GLOS_MACRO "SW_HID_MD_GLOS_MACRO" +#define HID_LINGU_ADD_WORD "SW_HID_LINGU_ADD_WORD" +#define HID_LINGU_IGNORE_WORD "SW_HID_LINGU_IGNORE_WORD" +#define HID_LINGU_SPELLING_DLG "SW_HID_LINGU_SPELLING_DLG" +#define HID_LINGU_AUTOCORR "SW_HID_LINGU_AUTOCORR" +#define HID_LINGU_REPLACE "SW_HID_LINGU_REPLACE" +#define HID_MD_GLOS_CATEGORY "SW_HID_MD_GLOS_CATEGORY" +#define HID_REGION_TREE "SW_HID_REGION_TREE" +#define HID_LINGU_WORD_LANGUAGE "SW_HID_LINGU_WORD_LANGUAGE" +#define HID_LINGU_PARA_LANGUAGE "SW_HID_LINGU_PARA_LANGUAGE" +#define HID_MD_GLOS_DEFINE_TEXT "SW_HID_MD_GLOS_DEFINE_TEXT" +#define HID_DLG_PASSWD_SECTION "SW_HID_DLG_PASSWD_SECTION" +#define HID_MD_COPY_TO_CLIPBOARD "SW_HID_MD_COPY_TO_CLIPBOARD" +#define HID_MD_GLOS_IMPORT "SW_HID_MD_GLOS_IMPORT" +#define HID_SMARTTAG_MAIN "SW_HID_SMARTTAG_MAIN" // SMARTTAGS +#define HID_LINGU_IGNORE_SELECTION "SW_HID_LINGU_IGNORE_SELECTION" // grammar check context menu // Weiter Help-IDs ********************************************************** -#define HID_CLOSE_FILE (HID_BASE + 1001) -#define HID_LAUNCH_REGISTRY (HID_BASE + 1002) -#define HID_MERGE_FILE (HID_BASE + 1003) -#define HID_MERGE_FILE_DLG (HID_BASE + 1004) -#define HID_NEW_FILE (HID_BASE + 1005) -#define HID_OPEN_FILE (HID_BASE + 1007) -#define HID_OPEN_LASTVERSION (HID_BASE + 1009) -#define HID_PRINT_FILE (HID_BASE + 1010) -#define HID_PRINT_FILE_OPTIONS (HID_BASE + 1011) -#define HID_SAVE_FILE_AS (HID_BASE + 1012) -#define HID_SAVE_FILE (HID_BASE + 1013) -#define HID_SETUP_PRINTER_DLG (HID_BASE + 1015) -#define HID_EXIT (HID_BASE + 1017) -#define HID_CREATE_DOCUMENT (HID_BASE + 1019) -#define HID_DOCSTAT_DLG (HID_BASE + 1020) -#define HID_LOAD_TEMPLATE_DLG (HID_BASE + 1021) -#define HID_SAVE_ALL (HID_BASE + 1023) -#define HID_NEW_FILE_DEFAULT (HID_BASE + 1024) -#define HID_PRINT_FILE_DEFAULT (HID_BASE + 1025) -#define HID_FAX (HID_BASE + 1028) -#define HID_SELECT_DATABASE (HID_BASE + 1030) -#define HID_DOC_INFO_DLG (HID_BASE + 1031) -#define HID_DOC_MGR_DLG (HID_BASE + 1032) -#define HID_OPTCAPTION_CLB (HID_BASE + 1033) - -#define HID_COPY (HID_BASE + 1102) -#define HID_CUT (HID_BASE + 1103) -#define HID_EDIT_FIELD (HID_BASE + 1104) -#define HID_EDIT_FILE_INFO_DLG (HID_BASE + 1107) -#define HID_EDIT_LINK_DLG (HID_BASE + 1109) -#define HID_EDIT_OBJECT (HID_BASE + 1110) -#define HID_GOTO (HID_BASE + 1111) -#define HID_SET_FIELD_VALUE (HID_BASE + 1112) -#define HID_PASTE (HID_BASE + 1113) -#define HID_REDO (HID_BASE + 1116) -#define HID_SEARCH (HID_BASE + 1117) -#define HID_REPLACE (HID_BASE + 1118) -#define HID_SELECT_ALL (HID_BASE + 1119) -#define HID_UNDO (HID_BASE + 1120) -#define HID_REPEAT (HID_BASE + 1122) -#define HID_BUFFER_UPDATE (HID_BASE + 1124) -#define HID_UPDATE_FIELDS (HID_BASE + 1126) -#define HID_EXECUTE_MACROFIELD (HID_BASE + 1127) -#define HID_EDIT_FORMULA (HID_BASE + 1128) -#define HID_CALC_TABLE (HID_BASE + 1129) -#define HID_NUM_BULLET_DOWN (HID_BASE + 1130) -#define HID_NUM_BULLET_UP (HID_BASE + 1131) -#define HID_NUM_BULLET_PREV (HID_BASE + 1132) -#define HID_NUM_BULLET_NEXT (HID_BASE + 1133) -#define HID_NUM_BULLET_MOVEUP (HID_BASE + 1134) -#define HID_NUM_BULLET_MOVEDOWN (HID_BASE + 1135) -#define HID_NUM_BULLET_NONUM (HID_BASE + 1136) -#define HID_NUM_BULLET_OFF (HID_BASE + 1137) -#define HID_NUM_BULLET_ON (HID_BASE + 1138) -#define HID_NUM_BULLET_OUTLINE_DOWN (HID_BASE + 1139) -#define HID_NUM_BULLET_OUTLINE_UP (HID_BASE + 1140) -#define HID_NUM_BULLET_OUTLINE_MOVEUP (HID_BASE + 1141) -#define HID_NUM_BULLET_OUTLINE_MOVEDOWN (HID_BASE + 1142) -#define HID_UPDATE_INPUTFIELDS (HID_BASE + 1143) -#define HID_NUM_NUMBERING_ON (HID_BASE + 1144) -#define HID_REPEAT_SEARCH (HID_BASE + 1150) -#define HID_REPAGINATE (HID_BASE + 1161) - -#define HID_REFRESH_VIEW (HID_BASE + 1201) -#define HID_RIBBON (HID_BASE + 1210) -#define HID_RULER (HID_BASE + 1211) -#define HID_STATUSBAR (HID_BASE + 1212) -#define HID_TOOLBOX (HID_BASE + 1213) -#define HID_VIEW_BOUNDS (HID_BASE + 1214) -#define HID_VIEW_FIELDS (HID_BASE + 1215) -#define HID_VLINEAL (HID_BASE + 1216) -#define HID_VSCROLLBAR (HID_BASE + 1217) -#define HID_HSCROLLBAR (HID_BASE + 1218) -#define HID_VIEW_META_CHARS (HID_BASE + 1224) -#define HID_VIEW_MARKS (HID_BASE + 1225) -#define HID_VIEW_FIELDNAME (HID_BASE + 1226) -#define HID_VIEW_TABLEGRID (HID_BASE + 1227) -#define HID_ZOOM (HID_BASE + 1231) - -#define HID_DELETE_BOOKMARK (HID_BASE + 1301) -#define HID_INSERT_BREAK (HID_BASE + 1303) -#define HID_INSERT_COLUMN_BREAK (HID_BASE + 1305) -#define HID_INSERT_FILE (HID_BASE + 1309) -#define HID_INSERT_FOOTNOTE (HID_BASE + 1311) -#define HID_INSERT_GRAFIC (HID_BASE + 1315) -#define HID_INSERT_LINEBREAK (HID_BASE + 1318) -#define HID_INSERT_MERGEFIELD_DLG (HID_BASE + 1320) -#define HID_INSERT_OBJECT_DLG (HID_BASE + 1322) -#define HID_INSERT_PAGEBREAK (HID_BASE + 1323) -#define HID_INSERT_RECORD (HID_BASE + 1326) -#define HID_MERGE_RECORD (HID_BASE + 1327) -#define HID_INSERT_SYMBOL (HID_BASE + 1328) -#define HID_INSERT_STRING (HID_BASE + 1331) -#define HID_INSERT_COLS (HID_BASE + 1332) -#define HID_INSERT_FRAME_INTERACT (HID_BASE + 1333) -#define HID_INSERT_FRAME (HID_BASE + 1334) -#define HID_INSERT_IDX_ENTRY (HID_BASE + 1340) -#define HID_INSERT_USERIDX_ENTRY (HID_BASE + 1341) -#define HID_INSERT_CNTNTIDX_ENTRY (HID_BASE + 1342) -#define HID_INSERT_SOFT_HYPHEN (HID_BASE + 1350) -#define HID_INSERT_HARD_SPACE (HID_BASE + 1351) - -#define HID_SET_FONT (HID_BASE + 1401) -#define HID_SET_FONT_SIZE (HID_BASE + 1402) -#define HID_GROW_FONT_SIZE (HID_BASE + 1403) -#define HID_SHRINK_FONT_SIZE (HID_BASE + 1404) -#define HID_SET_BOLD (HID_BASE + 1405) -#define HID_SET_ITALIC (HID_BASE + 1406) -#define HID_SET_SHADOW (HID_BASE + 1407) -#define HID_SET_OUTLINE (HID_BASE + 1408) -#define HID_SET_UNDERLINE (HID_BASE + 1409) -#define HID_SET_STRIKEOUT (HID_BASE + 1410) -#define HID_SET_SUPER_SCRIPT (HID_BASE + 1411) -#define HID_SET_SUB_SCRIPT (HID_BASE + 1412) -#define HID_SET_COLOR (HID_BASE + 1413) -#define HID_SET_CASEMAP (HID_BASE + 1414) -#define HID_SET_LANGUAGE (HID_BASE + 1415) -#define HID_SET_KERNING (HID_BASE + 1416) -#define HID_INDENT_TO_TABSTOP (HID_BASE + 1417) -#define HID_SET_LEFT_PARA (HID_BASE + 1418) -#define HID_SET_RIGHT_PARA (HID_BASE + 1419) -#define HID_SET_CENTER_PARA (HID_BASE + 1420) -#define HID_SET_JUSTIFY_PARA (HID_BASE + 1421) -#define HID_SET_LINE_SPACE_1 (HID_BASE + 1422) -#define HID_SET_LINE_SPACE_15 (HID_BASE + 1423) -#define HID_SET_LINE_SPACE_2 (HID_BASE + 1424) -#define HID_FLIP_HORZ_GRAFIC (HID_BASE + 1425) -#define HID_FLIP_VERT_GRAFIC (HID_BASE + 1426) -#define HID_SET_ADJUST (HID_BASE + 1428) -#define HID_SET_LRMARGIN (HID_BASE + 1429) -#define HID_SET_ULMARGIN (HID_BASE + 1430) -#define HID_UNINDENT_TO_TABSTOP (HID_BASE + 1431) -#define HID_SET_HYPHEN_ZONE (HID_BASE + 1432) -#define HID_SET_PAGE_BREAK (HID_BASE + 1433) -#define HID_SET_KEEP_TOGETHER (HID_BASE + 1434) -#define HID_SET_WIDOW (HID_BASE + 1436) -#define HID_SET_ORPHAN (HID_BASE + 1437) -#define HID_FORMAT_SHADOW (HID_BASE + 1438) -#define HID_FORMAT_BORDER (HID_BASE + 1439) -#define HID_FORMAT_CHAR_DLG (HID_BASE + 1441) -#define HID_FORMAT_PARA_DLG (HID_BASE + 1443) -#define HID_FORMAT_TAB (HID_BASE + 1444) -#define HID_FORMAT_TAB_DLG (HID_BASE + 1445) -#define HID_FORMAT_BORDER_DLG (HID_BASE + 1447) -#define HID_FORMAT_BACKGROUND (HID_BASE + 1448) -#define HID_FORMAT_BACKGROUND_DLG (HID_BASE + 1450) -#define HID_FORMAT_PAGE (HID_BASE + 1451) -#define HID_FORMAT_PAGE_DLG (HID_BASE + 1452) -#define HID_FORMAT_DROPCAPS (HID_BASE + 1454) -#define HID_FORMAT_FRAME_DLG (HID_BASE + 1456) -#define HID_FORMAT_GRAFIC_DLG (HID_BASE + 1458) -#define HID_FORMAT_TABLE_DLG (HID_BASE + 1460) -#define HID_NEW_STYLE_BY_EXAMPLE (HID_BASE + 1462) -#define HID_UPDATE_STYLE_BY_EXAMPLE (HID_BASE + 1463) -#define HID_STYLE_SHEET_FRAME_DLG (HID_BASE + 1464) -#define HID_STYLE_SHEET_DOC_DLG (HID_BASE + 1465) -#define HID_FORMAT_RESET (HID_BASE + 1469) -#define HID_FRAME_TO_TOP (HID_BASE + 1470) -#define HID_FRAME_TO_BOTTOM (HID_BASE + 1471) -#define HID_FRAME_NOWRAP (HID_BASE + 1472) -#define HID_FRAME_WRAP (HID_BASE + 1473) -#define HID_FRAME_WRAPTHRU (HID_BASE + 1474) -#define HID_FRAME_ALIGN_HORZ_LEFT (HID_BASE + 1475) -#define HID_FRAME_ALIGN_HORZ_RIGHT (HID_BASE + 1476) -#define HID_FRAME_ALIGN_HORZ_CENTER (HID_BASE + 1477) -#define HID_FRAME_ALIGN_VERT_TOP (HID_BASE + 1478) -#define HID_FRAME_ALIGN_VERT_BOTTOM (HID_BASE + 1479) -#define HID_FRAME_ALIGN_VERT_CENTER (HID_BASE + 1480) -#define HID_SET_FRM_SIZE (HID_BASE + 1481) -#define HID_SET_FRM_POSITION (HID_BASE + 1482) -#define HID_SET_FRM_ANCHOR (HID_BASE + 1483) -#define HID_SET_FRM_WRAP (HID_BASE + 1484) -#define HID_SET_FRM_DIST (HID_BASE + 1485) -#define HID_SET_FRM_OPTIONS (HID_BASE + 1486) -#define HID_SET_GRF_MIRROR (HID_BASE + 1488) -#define HID_SET_TABLE_WIDTH (HID_BASE + 1489) -#define HID_SET_TABLE_ALIGN (HID_BASE + 1490) -#define HID_SET_CHAR_STYLE (HID_BASE + 1491) -#define HID_SET_PARA_STYLE (HID_BASE + 1492) -#define HID_SET_PAGE_STYLE (HID_BASE + 1493) -#define HID_SET_FRM_MACRO (HID_BASE + 1494) -#define HID_SET_FRM_COLUMNS (HID_BASE + 1495) -#define HID_SET_FRM_COLUMN_WIDTH (HID_BASE + 1496) -#define HID_UPDATE_STYLES_DIRECT (HID_BASE + 1497) - -#define HID_TABLE_INSERT_ROW (HID_BASE + 1501) -#define HID_TABLE_DELETE_ROW (HID_BASE + 1503) -#define HID_TABLE_DELETE_COL (HID_BASE + 1504) -#define HID_TABLE_MERGE_CELLS (HID_BASE + 1506) -#define HID_AUTOFMT_TABLE (HID_BASE + 1507) -#define HID_SWDLG_STRINPUT (HID_BASE + 1508) -#define HID_TABLE_SET_ULSPACE (HID_BASE + 1509) -#define HID_TABLE_SET_GRID (HID_BASE + 1510) -#define HID_TABLE_SET_SHADOW (HID_BASE + 1511) -#define HID_TABLE_SELECT_ROW (HID_BASE + 1513) -#define HID_TABLE_SELECT_COL (HID_BASE + 1514) -#define HID_TABLE_SELECT_ALL (HID_BASE + 1515) -#define HID_TABLE_SET_READ_ONLY_CELLS (HID_BASE + 1517) -#define HID_TABLE_UNSET_READ_ONLY_CELLS (HID_BASE + 1519) -#define HID_PAGE_STYLE_SET_COLS (HID_BASE + 1538) -#define HID_SET_PROP_LINE_SPACE (HID_BASE + 1540) -#define HID_SET_ABS_LINE_SPACE (HID_BASE + 1541) - -#define HID_SPELLING_DLG (HID_BASE + 1601) -#define HID_THESAURUS_DLG (HID_BASE + 1604) -#define HID_HYPHENATE_OPT_DLG (HID_BASE + 1607) -#define HID_SORTING (HID_BASE + 1613) -#define HID_SORTING_DLG (HID_BASE + 1614) -#define HID_CALCULATE (HID_BASE + 1615) -#define HID_RECORD_MACRO_DLG (HID_BASE + 1622) -#define HID_PLAY_MACRO_DLG (HID_BASE + 1624) -#define HID_CONFIG_DLG (HID_BASE + 1627) -#define HID_EXPAND_GLOSSARY (HID_BASE + 1628) -#define HID_RENAME_GLOSSARY (HID_BASE + 1629) -#define HID_CONFIG_MENU (HID_BASE + 1630) -#define HID_CONFIG_KEY (HID_BASE + 1631) -#define HID_ASSIGN_LOCAL_MACRO_DLG (HID_BASE + 1632) -#define HID_COMPILE_MACRO (HID_BASE + 1633) -#define HID_CONFIG_VIEWOPTIONS (HID_BASE + 1635) -#define HID_CONFIG_COLORS (HID_BASE + 1636) -#define HID_INSERT_GLOSSARY (HID_BASE + 1640) -#define HID_AUTO_CORRECT (HID_BASE + 1649) -#define HID_AUTO_CORRECT_DLG (HID_BASE + 1650) -#define HID_HELP_PI (HID_BASE + 1655) -#define HID_NAVIGATION_PI (HID_BASE + 1656) -#define HID_TEMPLATE_PI (HID_BASE + 1657) -#define HID_ADDR_PI (HID_BASE + 1658) -#define HID_NAVIGATION_PI_GOTO_PAGE (HID_BASE + 1659) -#define HID_LETTER_WIZZARD (HID_BASE + 1660) -#define HID_FAX_WIZZARD (HID_BASE + 1661) -#define HID_MEMO_WIZZARD (HID_BASE + 1662) -#define HID_AGENDA_WIZZARD (HID_BASE + 1663) - -#define HID_NEW_WINDOW (HID_BASE + 1701) -#define HID_ARRANGE_ALL_WIN (HID_BASE + 1702) -#define HID_ARRANGE_CASCADE_WIN (HID_BASE + 1703) -#define HID_ARRANGE_HORZ_WIN (HID_BASE + 1704) -#define HID_ARRANGE_VERT_WIN (HID_BASE + 1705) - -#define HID_SHOW_HELP_INDEX (HID_BASE + 1802) -#define HID_SHOW_KEYBOARD_HELP (HID_BASE + 1803) -#define HID_SHOW_HELP_MANUAL (HID_BASE + 1804) -#define HID_SHOW_UPDATE_HELP (HID_BASE + 1805) - -#define HID_CHAR_LEFT (HID_BASE + 1901) -#define HID_CHAR_RIGHT (HID_BASE + 1902) -#define HID_LINE_UP (HID_BASE + 1903) -#define HID_LINE_DOWN (HID_BASE + 1904) -#define HID_START_OF_LINE (HID_BASE + 1905) -#define HID_END_OF_LINE (HID_BASE + 1906) -#define HID_START_OF_DOCUMENT (HID_BASE + 1907) -#define HID_END_OF_DOCUMENT (HID_BASE + 1908) -#define HID_START_OF_NEXT_PAGE (HID_BASE + 1909) -#define HID_END_OF_NEXT_PAGE (HID_BASE + 1910) -#define HID_START_OF_PREV_PAGE (HID_BASE + 1911) -#define HID_END_OF_PREV_PAGE (HID_BASE + 1912) -#define HID_START_OF_PAGE (HID_BASE + 1913) -#define HID_END_OF_PAGE (HID_BASE + 1914) -#define HID_START_OF_COLUMN (HID_BASE + 1917) -#define HID_END_OF_COLUMN (HID_BASE + 1918) -#define HID_START_OF_PARA (HID_BASE + 1919) -#define HID_END_OF_PARA (HID_BASE + 1920) -#define HID_NEXT_WORD (HID_BASE + 1921) -#define HID_PREV_WORD (HID_BASE + 1922) -#define HID_NEXT_SENT (HID_BASE + 1923) -#define HID_PREV_SENT (HID_BASE + 1924) -#define HID_DELETE (HID_BASE + 1925) -#define HID_BACKSPACE (HID_BASE + 1926) -#define HID_DELETE_SENT (HID_BASE + 1927) -#define HID_DELETE_BACK_SENT (HID_BASE + 1928) -#define HID_DELETE_WORD (HID_BASE + 1929) -#define HID_DELETE_BACK_WORD (HID_BASE + 1930) -#define HID_DELETE_LINE (HID_BASE + 1931) -#define HID_DELETE_BACK_LINE (HID_BASE + 1932) -#define HID_DELETE_PARA (HID_BASE + 1933) -#define HID_DELETE_BACK_PARA (HID_BASE + 1934) -#define HID_DELETE_WHOLE_LINE (HID_BASE + 1935) -#define HID_SET_INS_MODE (HID_BASE + 1936) -#define HID_PAGEUP (HID_BASE + 1937) -#define HID_PAGEDOWN (HID_BASE + 1938) -#define HID_SET_ADD_MODE (HID_BASE + 1939) -#define HID_SET_EXT_MODE (HID_BASE + 1940) -#define HID_ESCAPE (HID_BASE + 1941) -#define HID_SELECT_WORD (HID_BASE + 1943) -#define HID_START_TABLE (HID_BASE + 1947) -#define HID_END_TABLE (HID_BASE + 1948) -#define HID_NEXT_TABLE (HID_BASE + 1949) -#define HID_PREV_TABLE (HID_BASE + 1950) -#define HID_START_OF_NEXT_COLUMN (HID_BASE + 1951) -#define HID_END_OF_NEXT_COLUMN (HID_BASE + 1952) -#define HID_START_OF_PREV_COLUMN (HID_BASE + 1953) -#define HID_END_OF_PREV_COLUMN (HID_BASE + 1954) -#define HID_FOOTNOTE_TO_ANCHOR (HID_BASE + 1955) -#define HID_NEXT_FOOTNOTE (HID_BASE + 1956) -#define HID_PREV_FOOTNOTE (HID_BASE + 1957) -#define HID_CNTNT_TO_NEXT_FRAME (HID_BASE + 1958) -#define HID_FRAME_TO_ANCHOR (HID_BASE + 1959) -#define HID_TO_HEADER (HID_BASE + 1960) -#define HID_TO_FOOTER (HID_BASE + 1961) -#define HID_IDX_MARK_TO_IDX (HID_BASE + 1962) - -#define HID_ENVELOP (HID_BASE + 2050) -#define HID_LABEL (HID_BASE + 2051) -#define HID_ENVELOP_PRINT (HID_BASE + 2052) - -#define HID_NAVIGATION_IMGBTN (HID_BASE + 2054) -#define HID_ENVELOP_INSERT (HID_BASE + 2055) - -#define HID_WEBTOOLS_TOOLBOX (HID_BASE + 2056) -#define HID_WEBTEXT_TOOLBOX (HID_BASE + 2057) -#define HID_WEBFRAME_TOOLBOX (HID_BASE + 2058) -#define HID_TEXT_TOOLBOX (HID_BASE + 2059) -#define HID_TABLE_TOOLBOX (HID_BASE + 2060) -#define HID_FRAME_TOOLBOX (HID_BASE + 2061) -#define HID_GRAFIK_TOOLBOX (HID_BASE + 2062) -#define HID_OLE_TOOLBOX (HID_BASE + 2063) -#define HID_DRAW_TOOLBOX (HID_BASE + 2064) -#define HID_BEZIER_TOOLBOX (HID_BASE + 2066) -#define HID_DRAW_TEXT_TOOLBOX (HID_BASE + 2067) -#define HID_NUM_TOOLBOX (HID_BASE + 2068) -#define HID_TOOLS_TOOLBOX (HID_BASE + 2069) -#define HID_SRCVIEW_TOOLBOX (HID_BASE + 2070) - -#define HID_LABEL_INSERT (HID_BASE + 2071) -#define HID_CALC_TOOLBOX (HID_BASE + 2072) -#define HID_PVIEW_TOOLBOX (HID_BASE + 2073) - -#define HID_FIELD_INSERT (HID_BASE + 2074) -#define HID_FIELD_CLOSE (HID_BASE + 2075) - -#define HID_COND_COLL_TABLIST (HID_BASE + 2076) - -#define HID_DB_SELECTION_TLB (HID_BASE + 2077) -#define HID_FIELD_DINF_TYPE (HID_BASE + 2078) - -#define HID_DRAWFORM_TOOLBOX (HID_BASE + 2079) -#define HID_SELECT_TEMPLATE (HID_BASE + 2080) - -#define HID_AP_INSERT_DB_SEL (HID_BASE + 2081) -#define HID_WEBGRAPHIC_TOOLBOX (HID_BASE + 2082) -#define HID_OUTLINE_FORM (HID_BASE + 2083) -#define HID_NUM_RESET (HID_BASE + 2084) - -#define HID_AUTOFORMAT_REJECT (HID_BASE + 2085) -#define HID_AUTOFORMAT_ACCEPT (HID_BASE + 2086) -#define HID_AUTOFORMAT_EDIT_CHG (HID_BASE + 2087) +#define HID_CLOSE_FILE "SW_HID_CLOSE_FILE" +#define HID_LAUNCH_REGISTRY "SW_HID_LAUNCH_REGISTRY" +#define HID_MERGE_FILE "SW_HID_MERGE_FILE" +#define HID_MERGE_FILE_DLG "SW_HID_MERGE_FILE_DLG" +#define HID_NEW_FILE "SW_HID_NEW_FILE" +#define HID_OPEN_FILE "SW_HID_OPEN_FILE" +#define HID_OPEN_LASTVERSION "SW_HID_OPEN_LASTVERSION" +#define HID_PRINT_FILE "SW_HID_PRINT_FILE" +#define HID_PRINT_FILE_OPTIONS "SW_HID_PRINT_FILE_OPTIONS" +#define HID_SAVE_FILE_AS "SW_HID_SAVE_FILE_AS" +#define HID_SAVE_FILE "SW_HID_SAVE_FILE" +#define HID_SETUP_PRINTER_DLG "SW_HID_SETUP_PRINTER_DLG" +#define HID_EXIT "SW_HID_EXIT" +#define HID_CREATE_DOCUMENT "SW_HID_CREATE_DOCUMENT" +#define HID_DOCSTAT_DLG "SW_HID_DOCSTAT_DLG" +#define HID_LOAD_TEMPLATE_DLG "SW_HID_LOAD_TEMPLATE_DLG" +#define HID_SAVE_ALL "SW_HID_SAVE_ALL" +#define HID_NEW_FILE_DEFAULT "SW_HID_NEW_FILE_DEFAULT" +#define HID_PRINT_FILE_DEFAULT "SW_HID_PRINT_FILE_DEFAULT" +#define HID_FAX "SW_HID_FAX" +#define HID_SELECT_DATABASE "SW_HID_SELECT_DATABASE" +#define HID_DOC_INFO_DLG "SW_HID_DOC_INFO_DLG" +#define HID_DOC_MGR_DLG "SW_HID_DOC_MGR_DLG" +#define HID_OPTCAPTION_CLB "SW_HID_OPTCAPTION_CLB" + +#define HID_COPY "SW_HID_COPY" +#define HID_CUT "SW_HID_CUT" +#define HID_EDIT_FIELD "SW_HID_EDIT_FIELD" +#define HID_EDIT_FILE_INFO_DLG "SW_HID_EDIT_FILE_INFO_DLG" +#define HID_EDIT_LINK_DLG "SW_HID_EDIT_LINK_DLG" +#define HID_EDIT_OBJECT "SW_HID_EDIT_OBJECT" +#define HID_GOTO "SW_HID_GOTO" +#define HID_SET_FIELD_VALUE "SW_HID_SET_FIELD_VALUE" +#define HID_PASTE "SW_HID_PASTE" +#define HID_REDO "SW_HID_REDO" +#define HID_SEARCH "SW_HID_SEARCH" +#define HID_REPLACE "SW_HID_REPLACE" +#define HID_SELECT_ALL "SW_HID_SELECT_ALL" +#define HID_UNDO "SW_HID_UNDO" +#define HID_REPEAT "SW_HID_REPEAT" +#define HID_BUFFER_UPDATE "SW_HID_BUFFER_UPDATE" +#define HID_UPDATE_FIELDS "SW_HID_UPDATE_FIELDS" +#define HID_EXECUTE_MACROFIELD "SW_HID_EXECUTE_MACROFIELD" +#define HID_EDIT_FORMULA "SW_HID_EDIT_FORMULA" +#define HID_CALC_TABLE "SW_HID_CALC_TABLE" +#define HID_NUM_BULLET_DOWN "SW_HID_NUM_BULLET_DOWN" +#define HID_NUM_BULLET_UP "SW_HID_NUM_BULLET_UP" +#define HID_NUM_BULLET_PREV "SW_HID_NUM_BULLET_PREV" +#define HID_NUM_BULLET_NEXT "SW_HID_NUM_BULLET_NEXT" +#define HID_NUM_BULLET_MOVEUP "SW_HID_NUM_BULLET_MOVEUP" +#define HID_NUM_BULLET_MOVEDOWN "SW_HID_NUM_BULLET_MOVEDOWN" +#define HID_NUM_BULLET_NONUM "SW_HID_NUM_BULLET_NONUM" +#define HID_NUM_BULLET_OFF "SW_HID_NUM_BULLET_OFF" +#define HID_NUM_BULLET_ON "SW_HID_NUM_BULLET_ON" +#define HID_NUM_BULLET_OUTLINE_DOWN "SW_HID_NUM_BULLET_OUTLINE_DOWN" +#define HID_NUM_BULLET_OUTLINE_UP "SW_HID_NUM_BULLET_OUTLINE_UP" +#define HID_NUM_BULLET_OUTLINE_MOVEUP "SW_HID_NUM_BULLET_OUTLINE_MOVEUP" +#define HID_NUM_BULLET_OUTLINE_MOVEDOWN "SW_HID_NUM_BULLET_OUTLINE_MOVEDOWN" +#define HID_UPDATE_INPUTFIELDS "SW_HID_UPDATE_INPUTFIELDS" +#define HID_NUM_NUMBERING_ON "SW_HID_NUM_NUMBERING_ON" +#define HID_REPEAT_SEARCH "SW_HID_REPEAT_SEARCH" +#define HID_REPAGINATE "SW_HID_REPAGINATE" + +#define HID_REFRESH_VIEW "SW_HID_REFRESH_VIEW" +#define HID_RIBBON "SW_HID_RIBBON" +#define HID_RULER "SW_HID_RULER" +#define HID_STATUSBAR "SW_HID_STATUSBAR" +#define HID_TOOLBOX "SW_HID_TOOLBOX" +#define HID_VIEW_BOUNDS "SW_HID_VIEW_BOUNDS" +#define HID_VIEW_FIELDS "SW_HID_VIEW_FIELDS" +#define HID_VLINEAL "SW_HID_VLINEAL" +#define HID_VSCROLLBAR "SW_HID_VSCROLLBAR" +#define HID_HSCROLLBAR "SW_HID_HSCROLLBAR" +#define HID_VIEW_META_CHARS "SW_HID_VIEW_META_CHARS" +#define HID_VIEW_MARKS "SW_HID_VIEW_MARKS" +#define HID_VIEW_FIELDNAME "SW_HID_VIEW_FIELDNAME" +#define HID_VIEW_TABLEGRID "SW_HID_VIEW_TABLEGRID" +#define HID_ZOOM "SW_HID_ZOOM" + +#define HID_DELETE_BOOKMARK "SW_HID_DELETE_BOOKMARK" +#define HID_INSERT_BREAK "SW_HID_INSERT_BREAK" +#define HID_INSERT_COLUMN_BREAK "SW_HID_INSERT_COLUMN_BREAK" +#define HID_INSERT_FILE "SW_HID_INSERT_FILE" +#define HID_INSERT_FOOTNOTE "SW_HID_INSERT_FOOTNOTE" +#define HID_INSERT_GRAFIC "SW_HID_INSERT_GRAFIC" +#define HID_INSERT_LINEBREAK "SW_HID_INSERT_LINEBREAK" +#define HID_INSERT_MERGEFIELD_DLG "SW_HID_INSERT_MERGEFIELD_DLG" +#define HID_INSERT_OBJECT_DLG "SW_HID_INSERT_OBJECT_DLG" +#define HID_INSERT_PAGEBREAK "SW_HID_INSERT_PAGEBREAK" +#define HID_INSERT_RECORD "SW_HID_INSERT_RECORD" +#define HID_MERGE_RECORD "SW_HID_MERGE_RECORD" +#define HID_INSERT_SYMBOL "SW_HID_INSERT_SYMBOL" +#define HID_INSERT_STRING "SW_HID_INSERT_STRING" +#define HID_INSERT_COLS "SW_HID_INSERT_COLS" +#define HID_INSERT_FRAME_INTERACT "SW_HID_INSERT_FRAME_INTERACT" +#define HID_INSERT_FRAME "SW_HID_INSERT_FRAME" +#define HID_INSERT_IDX_ENTRY "SW_HID_INSERT_IDX_ENTRY" +#define HID_INSERT_USERIDX_ENTRY "SW_HID_INSERT_USERIDX_ENTRY" +#define HID_INSERT_CNTNTIDX_ENTRY "SW_HID_INSERT_CNTNTIDX_ENTRY" +#define HID_INSERT_SOFT_HYPHEN "SW_HID_INSERT_SOFT_HYPHEN" +#define HID_INSERT_HARD_SPACE "SW_HID_INSERT_HARD_SPACE" + +#define HID_SET_FONT "SW_HID_SET_FONT" +#define HID_SET_FONT_SIZE "SW_HID_SET_FONT_SIZE" +#define HID_GROW_FONT_SIZE "SW_HID_GROW_FONT_SIZE" +#define HID_SHRINK_FONT_SIZE "SW_HID_SHRINK_FONT_SIZE" +#define HID_SET_BOLD "SW_HID_SET_BOLD" +#define HID_SET_ITALIC "SW_HID_SET_ITALIC" +#define HID_SET_SHADOW "SW_HID_SET_SHADOW" +#define HID_SET_OUTLINE "SW_HID_SET_OUTLINE" +#define HID_SET_UNDERLINE "SW_HID_SET_UNDERLINE" +#define HID_SET_STRIKEOUT "SW_HID_SET_STRIKEOUT" +#define HID_SET_SUPER_SCRIPT "SW_HID_SET_SUPER_SCRIPT" +#define HID_SET_SUB_SCRIPT "SW_HID_SET_SUB_SCRIPT" +#define HID_SET_COLOR "SW_HID_SET_COLOR" +#define HID_SET_CASEMAP "SW_HID_SET_CASEMAP" +#define HID_SET_LANGUAGE "SW_HID_SET_LANGUAGE" +#define HID_SET_KERNING "SW_HID_SET_KERNING" +#define HID_INDENT_TO_TABSTOP "SW_HID_INDENT_TO_TABSTOP" +#define HID_SET_LEFT_PARA "SW_HID_SET_LEFT_PARA" +#define HID_SET_RIGHT_PARA "SW_HID_SET_RIGHT_PARA" +#define HID_SET_CENTER_PARA "SW_HID_SET_CENTER_PARA" +#define HID_SET_JUSTIFY_PARA "SW_HID_SET_JUSTIFY_PARA" +#define HID_SET_LINE_SPACE_1 "SW_HID_SET_LINE_SPACE_1" +#define HID_SET_LINE_SPACE_15 "SW_HID_SET_LINE_SPACE_15" +#define HID_SET_LINE_SPACE_2 "SW_HID_SET_LINE_SPACE_2" +#define HID_FLIP_HORZ_GRAFIC "SW_HID_FLIP_HORZ_GRAFIC" +#define HID_FLIP_VERT_GRAFIC "SW_HID_FLIP_VERT_GRAFIC" +#define HID_SET_ADJUST "SW_HID_SET_ADJUST" +#define HID_SET_LRMARGIN "SW_HID_SET_LRMARGIN" +#define HID_SET_ULMARGIN "SW_HID_SET_ULMARGIN" +#define HID_UNINDENT_TO_TABSTOP "SW_HID_UNINDENT_TO_TABSTOP" +#define HID_SET_HYPHEN_ZONE "SW_HID_SET_HYPHEN_ZONE" +#define HID_SET_PAGE_BREAK "SW_HID_SET_PAGE_BREAK" +#define HID_SET_KEEP_TOGETHER "SW_HID_SET_KEEP_TOGETHER" +#define HID_SET_WIDOW "SW_HID_SET_WIDOW" +#define HID_SET_ORPHAN "SW_HID_SET_ORPHAN" +#define HID_FORMAT_SHADOW "SW_HID_FORMAT_SHADOW" +#define HID_FORMAT_BORDER "SW_HID_FORMAT_BORDER" +#define HID_FORMAT_CHAR_DLG "SW_HID_FORMAT_CHAR_DLG" +#define HID_FORMAT_PARA_DLG "SW_HID_FORMAT_PARA_DLG" +#define HID_FORMAT_TAB "SW_HID_FORMAT_TAB" +#define HID_FORMAT_TAB_DLG "SW_HID_FORMAT_TAB_DLG" +#define HID_FORMAT_BORDER_DLG "SW_HID_FORMAT_BORDER_DLG" +#define HID_FORMAT_BACKGROUND "SW_HID_FORMAT_BACKGROUND" +#define HID_FORMAT_BACKGROUND_DLG "SW_HID_FORMAT_BACKGROUND_DLG" +#define HID_FORMAT_PAGE "SW_HID_FORMAT_PAGE" +#define HID_FORMAT_PAGE_DLG "SW_HID_FORMAT_PAGE_DLG" +#define HID_FORMAT_DROPCAPS "SW_HID_FORMAT_DROPCAPS" +#define HID_FORMAT_FRAME_DLG "SW_HID_FORMAT_FRAME_DLG" +#define HID_FORMAT_GRAFIC_DLG "SW_HID_FORMAT_GRAFIC_DLG" +#define HID_FORMAT_TABLE_DLG "SW_HID_FORMAT_TABLE_DLG" +#define HID_NEW_STYLE_BY_EXAMPLE "SW_HID_NEW_STYLE_BY_EXAMPLE" +#define HID_UPDATE_STYLE_BY_EXAMPLE "SW_HID_UPDATE_STYLE_BY_EXAMPLE" +#define HID_STYLE_SHEET_FRAME_DLG "SW_HID_STYLE_SHEET_FRAME_DLG" +#define HID_STYLE_SHEET_DOC_DLG "SW_HID_STYLE_SHEET_DOC_DLG" +#define HID_FORMAT_RESET "SW_HID_FORMAT_RESET" +#define HID_FRAME_TO_TOP "SW_HID_FRAME_TO_TOP" +#define HID_FRAME_TO_BOTTOM "SW_HID_FRAME_TO_BOTTOM" +#define HID_FRAME_NOWRAP "SW_HID_FRAME_NOWRAP" +#define HID_FRAME_WRAP "SW_HID_FRAME_WRAP" +#define HID_FRAME_WRAPTHRU "SW_HID_FRAME_WRAPTHRU" +#define HID_FRAME_ALIGN_HORZ_LEFT "SW_HID_FRAME_ALIGN_HORZ_LEFT" +#define HID_FRAME_ALIGN_HORZ_RIGHT "SW_HID_FRAME_ALIGN_HORZ_RIGHT" +#define HID_FRAME_ALIGN_HORZ_CENTER "SW_HID_FRAME_ALIGN_HORZ_CENTER" +#define HID_FRAME_ALIGN_VERT_TOP "SW_HID_FRAME_ALIGN_VERT_TOP" +#define HID_FRAME_ALIGN_VERT_BOTTOM "SW_HID_FRAME_ALIGN_VERT_BOTTOM" +#define HID_FRAME_ALIGN_VERT_CENTER "SW_HID_FRAME_ALIGN_VERT_CENTER" +#define HID_SET_FRM_SIZE "SW_HID_SET_FRM_SIZE" +#define HID_SET_FRM_POSITION "SW_HID_SET_FRM_POSITION" +#define HID_SET_FRM_ANCHOR "SW_HID_SET_FRM_ANCHOR" +#define HID_SET_FRM_WRAP "SW_HID_SET_FRM_WRAP" +#define HID_SET_FRM_DIST "SW_HID_SET_FRM_DIST" +#define HID_SET_FRM_OPTIONS "SW_HID_SET_FRM_OPTIONS" +#define HID_SET_GRF_MIRROR "SW_HID_SET_GRF_MIRROR" +#define HID_SET_TABLE_WIDTH "SW_HID_SET_TABLE_WIDTH" +#define HID_SET_TABLE_ALIGN "SW_HID_SET_TABLE_ALIGN" +#define HID_SET_CHAR_STYLE "SW_HID_SET_CHAR_STYLE" +#define HID_SET_PARA_STYLE "SW_HID_SET_PARA_STYLE" +#define HID_SET_PAGE_STYLE "SW_HID_SET_PAGE_STYLE" +#define HID_SET_FRM_MACRO "SW_HID_SET_FRM_MACRO" +#define HID_SET_FRM_COLUMNS "SW_HID_SET_FRM_COLUMNS" +#define HID_SET_FRM_COLUMN_WIDTH "SW_HID_SET_FRM_COLUMN_WIDTH" +#define HID_UPDATE_STYLES_DIRECT "SW_HID_UPDATE_STYLES_DIRECT" + +#define HID_TABLE_INSERT_ROW "SW_HID_TABLE_INSERT_ROW" +#define HID_TABLE_DELETE_ROW "SW_HID_TABLE_DELETE_ROW" +#define HID_TABLE_DELETE_COL "SW_HID_TABLE_DELETE_COL" +#define HID_TABLE_MERGE_CELLS "SW_HID_TABLE_MERGE_CELLS" +#define HID_AUTOFMT_TABLE "SW_HID_AUTOFMT_TABLE" +#define HID_SWDLG_STRINPUT "SW_HID_SWDLG_STRINPUT" +#define HID_TABLE_SET_ULSPACE "SW_HID_TABLE_SET_ULSPACE" +#define HID_TABLE_SET_GRID "SW_HID_TABLE_SET_GRID" +#define HID_TABLE_SET_SHADOW "SW_HID_TABLE_SET_SHADOW" +#define HID_TABLE_SELECT_ROW "SW_HID_TABLE_SELECT_ROW" +#define HID_TABLE_SELECT_COL "SW_HID_TABLE_SELECT_COL" +#define HID_TABLE_SELECT_ALL "SW_HID_TABLE_SELECT_ALL" +#define HID_TABLE_SET_READ_ONLY_CELLS "SW_HID_TABLE_SET_READ_ONLY_CELLS" +#define HID_TABLE_UNSET_READ_ONLY_CELLS "SW_HID_TABLE_UNSET_READ_ONLY_CELLS" +#define HID_PAGE_STYLE_SET_COLS "SW_HID_PAGE_STYLE_SET_COLS" +#define HID_SET_PROP_LINE_SPACE "SW_HID_SET_PROP_LINE_SPACE" +#define HID_SET_ABS_LINE_SPACE "SW_HID_SET_ABS_LINE_SPACE" + +#define HID_SPELLING_DLG "SW_HID_SPELLING_DLG" +#define HID_THESAURUS_DLG "SW_HID_THESAURUS_DLG" +#define HID_HYPHENATE_OPT_DLG "SW_HID_HYPHENATE_OPT_DLG" +#define HID_SORTING "SW_HID_SORTING" +#define HID_SORTING_DLG "SW_HID_SORTING_DLG" +#define HID_CALCULATE "SW_HID_CALCULATE" +#define HID_RECORD_MACRO_DLG "SW_HID_RECORD_MACRO_DLG" +#define HID_PLAY_MACRO_DLG "SW_HID_PLAY_MACRO_DLG" +#define HID_CONFIG_DLG "SW_HID_CONFIG_DLG" +#define HID_EXPAND_GLOSSARY "SW_HID_EXPAND_GLOSSARY" +#define HID_RENAME_GLOSSARY "SW_HID_RENAME_GLOSSARY" +#define HID_CONFIG_MENU "SW_HID_CONFIG_MENU" +#define HID_CONFIG_KEY "SW_HID_CONFIG_KEY" +#define HID_ASSIGN_LOCAL_MACRO_DLG "SW_HID_ASSIGN_LOCAL_MACRO_DLG" +#define HID_COMPILE_MACRO "SW_HID_COMPILE_MACRO" +#define HID_CONFIG_VIEWOPTIONS "SW_HID_CONFIG_VIEWOPTIONS" +#define HID_CONFIG_COLORS "SW_HID_CONFIG_COLORS" +#define HID_INSERT_GLOSSARY "SW_HID_INSERT_GLOSSARY" +#define HID_AUTO_CORRECT "SW_HID_AUTO_CORRECT" +#define HID_AUTO_CORRECT_DLG "SW_HID_AUTO_CORRECT_DLG" +#define HID_HELP_PI "SW_HID_HELP_PI" +#define HID_NAVIGATION_PI "SW_HID_NAVIGATION_PI" +#define HID_TEMPLATE_PI "SW_HID_TEMPLATE_PI" +#define HID_ADDR_PI "SW_HID_ADDR_PI" +#define HID_NAVIGATION_PI_GOTO_PAGE "SW_HID_NAVIGATION_PI_GOTO_PAGE" +#define HID_LETTER_WIZZARD "SW_HID_LETTER_WIZZARD" +#define HID_FAX_WIZZARD "SW_HID_FAX_WIZZARD" +#define HID_MEMO_WIZZARD "SW_HID_MEMO_WIZZARD" +#define HID_AGENDA_WIZZARD "SW_HID_AGENDA_WIZZARD" + +#define HID_NEW_WINDOW "SW_HID_NEW_WINDOW" +#define HID_ARRANGE_ALL_WIN "SW_HID_ARRANGE_ALL_WIN" +#define HID_ARRANGE_CASCADE_WIN "SW_HID_ARRANGE_CASCADE_WIN" +#define HID_ARRANGE_HORZ_WIN "SW_HID_ARRANGE_HORZ_WIN" +#define HID_ARRANGE_VERT_WIN "SW_HID_ARRANGE_VERT_WIN" + +#define HID_SHOW_HELP_INDEX "SW_HID_SHOW_HELP_INDEX" +#define HID_SHOW_KEYBOARD_HELP "SW_HID_SHOW_KEYBOARD_HELP" +#define HID_SHOW_HELP_MANUAL "SW_HID_SHOW_HELP_MANUAL" +#define HID_SHOW_UPDATE_HELP "SW_HID_SHOW_UPDATE_HELP" + +#define HID_CHAR_LEFT "SW_HID_CHAR_LEFT" +#define HID_CHAR_RIGHT "SW_HID_CHAR_RIGHT" +#define HID_LINE_UP "SW_HID_LINE_UP" +#define HID_LINE_DOWN "SW_HID_LINE_DOWN" +#define HID_START_OF_LINE "SW_HID_START_OF_LINE" +#define HID_END_OF_LINE "SW_HID_END_OF_LINE" +#define HID_START_OF_DOCUMENT "SW_HID_START_OF_DOCUMENT" +#define HID_END_OF_DOCUMENT "SW_HID_END_OF_DOCUMENT" +#define HID_START_OF_NEXT_PAGE "SW_HID_START_OF_NEXT_PAGE" +#define HID_END_OF_NEXT_PAGE "SW_HID_END_OF_NEXT_PAGE" +#define HID_START_OF_PREV_PAGE "SW_HID_START_OF_PREV_PAGE" +#define HID_END_OF_PREV_PAGE "SW_HID_END_OF_PREV_PAGE" +#define HID_START_OF_PAGE "SW_HID_START_OF_PAGE" +#define HID_END_OF_PAGE "SW_HID_END_OF_PAGE" +#define HID_START_OF_COLUMN "SW_HID_START_OF_COLUMN" +#define HID_END_OF_COLUMN "SW_HID_END_OF_COLUMN" +#define HID_START_OF_PARA "SW_HID_START_OF_PARA" +#define HID_END_OF_PARA "SW_HID_END_OF_PARA" +#define HID_NEXT_WORD "SW_HID_NEXT_WORD" +#define HID_PREV_WORD "SW_HID_PREV_WORD" +#define HID_NEXT_SENT "SW_HID_NEXT_SENT" +#define HID_PREV_SENT "SW_HID_PREV_SENT" +#define HID_DELETE "SW_HID_DELETE" +#define HID_BACKSPACE "SW_HID_BACKSPACE" +#define HID_DELETE_SENT "SW_HID_DELETE_SENT" +#define HID_DELETE_BACK_SENT "SW_HID_DELETE_BACK_SENT" +#define HID_DELETE_WORD "SW_HID_DELETE_WORD" +#define HID_DELETE_BACK_WORD "SW_HID_DELETE_BACK_WORD" +#define HID_DELETE_LINE "SW_HID_DELETE_LINE" +#define HID_DELETE_BACK_LINE "SW_HID_DELETE_BACK_LINE" +#define HID_DELETE_PARA "SW_HID_DELETE_PARA" +#define HID_DELETE_BACK_PARA "SW_HID_DELETE_BACK_PARA" +#define HID_DELETE_WHOLE_LINE "SW_HID_DELETE_WHOLE_LINE" +#define HID_SET_INS_MODE "SW_HID_SET_INS_MODE" +#define HID_PAGEUP "SW_HID_PAGEUP" +#define HID_PAGEDOWN "SW_HID_PAGEDOWN" +#define HID_SET_ADD_MODE "SW_HID_SET_ADD_MODE" +#define HID_SET_EXT_MODE "SW_HID_SET_EXT_MODE" +#define HID_ESCAPE "SW_HID_ESCAPE" +#define HID_SELECT_WORD "SW_HID_SELECT_WORD" +#define HID_START_TABLE "SW_HID_START_TABLE" +#define HID_END_TABLE "SW_HID_END_TABLE" +#define HID_NEXT_TABLE "SW_HID_NEXT_TABLE" +#define HID_PREV_TABLE "SW_HID_PREV_TABLE" +#define HID_START_OF_NEXT_COLUMN "SW_HID_START_OF_NEXT_COLUMN" +#define HID_END_OF_NEXT_COLUMN "SW_HID_END_OF_NEXT_COLUMN" +#define HID_START_OF_PREV_COLUMN "SW_HID_START_OF_PREV_COLUMN" +#define HID_END_OF_PREV_COLUMN "SW_HID_END_OF_PREV_COLUMN" +#define HID_FOOTNOTE_TO_ANCHOR "SW_HID_FOOTNOTE_TO_ANCHOR" +#define HID_NEXT_FOOTNOTE "SW_HID_NEXT_FOOTNOTE" +#define HID_PREV_FOOTNOTE "SW_HID_PREV_FOOTNOTE" +#define HID_CNTNT_TO_NEXT_FRAME "SW_HID_CNTNT_TO_NEXT_FRAME" +#define HID_FRAME_TO_ANCHOR "SW_HID_FRAME_TO_ANCHOR" +#define HID_TO_HEADER "SW_HID_TO_HEADER" +#define HID_TO_FOOTER "SW_HID_TO_FOOTER" +#define HID_IDX_MARK_TO_IDX "SW_HID_IDX_MARK_TO_IDX" + +#define HID_ENVELOP "SW_HID_ENVELOP" +#define HID_LABEL "SW_HID_LABEL" +#define HID_ENVELOP_PRINT "SW_HID_ENVELOP_PRINT" + +#define HID_NAVIGATION_IMGBTN "SW_HID_NAVIGATION_IMGBTN" +#define HID_ENVELOP_INSERT "SW_HID_ENVELOP_INSERT" + +#define HID_WEBTOOLS_TOOLBOX "SW_HID_WEBTOOLS_TOOLBOX" +#define HID_WEBTEXT_TOOLBOX "SW_HID_WEBTEXT_TOOLBOX" +#define HID_WEBFRAME_TOOLBOX "SW_HID_WEBFRAME_TOOLBOX" +#define HID_TEXT_TOOLBOX "SW_HID_TEXT_TOOLBOX" +#define HID_TABLE_TOOLBOX "SW_HID_TABLE_TOOLBOX" +#define HID_FRAME_TOOLBOX "SW_HID_FRAME_TOOLBOX" +#define HID_GRAFIK_TOOLBOX "SW_HID_GRAFIK_TOOLBOX" +#define HID_OLE_TOOLBOX "SW_HID_OLE_TOOLBOX" +#define HID_DRAW_TOOLBOX "SW_HID_DRAW_TOOLBOX" +#define HID_BEZIER_TOOLBOX "SW_HID_BEZIER_TOOLBOX" +#define HID_DRAW_TEXT_TOOLBOX "SW_HID_DRAW_TEXT_TOOLBOX" +#define HID_NUM_TOOLBOX "SW_HID_NUM_TOOLBOX" +#define HID_TOOLS_TOOLBOX "SW_HID_TOOLS_TOOLBOX" +#define HID_SRCVIEW_TOOLBOX "SW_HID_SRCVIEW_TOOLBOX" + +#define HID_LABEL_INSERT "SW_HID_LABEL_INSERT" +#define HID_CALC_TOOLBOX "SW_HID_CALC_TOOLBOX" +#define HID_PVIEW_TOOLBOX "SW_HID_PVIEW_TOOLBOX" + +#define HID_FIELD_INSERT "SW_HID_FIELD_INSERT" +#define HID_FIELD_CLOSE "SW_HID_FIELD_CLOSE" + +#define HID_COND_COLL_TABLIST "SW_HID_COND_COLL_TABLIST" + +#define HID_DB_SELECTION_TLB "SW_HID_DB_SELECTION_TLB" +#define HID_FIELD_DINF_TYPE "SW_HID_FIELD_DINF_TYPE" + +#define HID_DRAWFORM_TOOLBOX "SW_HID_DRAWFORM_TOOLBOX" +#define HID_SELECT_TEMPLATE "SW_HID_SELECT_TEMPLATE" + +#define HID_AP_INSERT_DB_SEL "SW_HID_AP_INSERT_DB_SEL" +#define HID_WEBGRAPHIC_TOOLBOX "SW_HID_WEBGRAPHIC_TOOLBOX" +#define HID_OUTLINE_FORM "SW_HID_OUTLINE_FORM" +#define HID_NUM_RESET "SW_HID_NUM_RESET" + +#define HID_AUTOFORMAT_REJECT "SW_HID_AUTOFORMAT_REJECT" +#define HID_AUTOFORMAT_ACCEPT "SW_HID_AUTOFORMAT_ACCEPT" +#define HID_AUTOFORMAT_EDIT_CHG "SW_HID_AUTOFORMAT_EDIT_CHG" //insert index/entries/Pattern buttons and edits -#define HID_TOX_ENTRY_BUTTON (HID_BASE + 2088) -#define HID_TOX_ENTRY_EDIT (HID_BASE + 2089) - -#define HID_DLG_NEW_USER_IDX (HID_BASE + 2090) -#define HID_INSERT_IDX_MRK_OK (HID_BASE + 2091) -#define HID_INSERT_IDX_MRK_CLOSE (HID_BASE + 2092) -#define HID_INSERT_AUTH_MRK_OK (HID_BASE + 2093) -#define HID_INSERT_AUTH_MRK_CLOSE (HID_BASE + 2094) -#define HID_INSERT_IDX_MRK_DELETE (HID_BASE + 2095) -#define HID_INSERT_IDX_MRK_NEW (HID_BASE + 2096) -#define HID_INSERT_IDX_MRK_PREV (HID_BASE + 2097) -#define HID_INSERT_IDX_MRK_PREV_SAME (HID_BASE + 2098) -#define HID_INSERT_IDX_MRK_NEXT (HID_BASE + 2099) -#define HID_INSERT_IDX_MRK_NEXT_SAME (HID_BASE + 2100) -#define HID_INSERT_IDX_MRK_TYPE (HID_BASE + 2101) -#define HID_INSERT_IDX_MRK_ENTRY (HID_BASE + 2102) -#define HID_INSERT_IDX_MRK_PRIM_KEY (HID_BASE + 2103) -#define HID_INSERT_IDX_MRK_SEC_KEY (HID_BASE + 2104) -#define HID_INSERT_IDX_MRK_LEVEL (HID_BASE + 2105) -#define HID_INSERT_IDX_MRK_MAIN_ENTRY (HID_BASE + 2106) -#define HID_INSERT_IDX_MRK_APPLY_ALL (HID_BASE + 2107) -#define HID_INSERT_AUTH_MRK_ENTRY (HID_BASE + 2108) -#define HID_INSERT_AUTH_MRK_CREATE_ENTRY (HID_BASE + 2109) -#define HID_INSERT_AUTH_MRK_EDIT_ENTRY (HID_BASE + 2110) -#define HID_TOKEN_WINDOW (HID_BASE + 2111) - -#define HID_AUTH_FIELD_IDENTIFIER (HID_BASE + 2112 ) -#define HID_AUTH_FIELD_AUTHORITY_TYPE (HID_BASE + 2113 ) -#define HID_AUTH_FIELD_ADDRESS (HID_BASE + 2114 ) -#define HID_AUTH_FIELD_ANNOTE (HID_BASE + 2115 ) -#define HID_AUTH_FIELD_AUTHOR (HID_BASE + 2116 ) -#define HID_AUTH_FIELD_BOOKTITLE (HID_BASE + 2117 ) -#define HID_AUTH_FIELD_CHAPTER (HID_BASE + 2118 ) -#define HID_AUTH_FIELD_EDITION (HID_BASE + 2119 ) -#define HID_AUTH_FIELD_EDITOR (HID_BASE + 2120 ) -#define HID_AUTH_FIELD_HOWPUBLISHED (HID_BASE + 2121 ) -#define HID_AUTH_FIELD_INSTITUTION (HID_BASE + 2122 ) -#define HID_AUTH_FIELD_JOURNAL (HID_BASE + 2123 ) -#define HID_AUTH_FIELD_MONTH (HID_BASE + 2124 ) -#define HID_AUTH_FIELD_NOTE (HID_BASE + 2125 ) -#define HID_AUTH_FIELD_NUMBER (HID_BASE + 2126 ) -#define HID_AUTH_FIELD_ORGANIZATIONS (HID_BASE + 2127 ) -#define HID_AUTH_FIELD_PAGES (HID_BASE + 2128 ) -#define HID_AUTH_FIELD_PUBLISHER (HID_BASE + 2129 ) -#define HID_AUTH_FIELD_SCHOOL (HID_BASE + 2130 ) -#define HID_AUTH_FIELD_SERIES (HID_BASE + 2131 ) -#define HID_AUTH_FIELD_TITLE (HID_BASE + 2132 ) -#define HID_AUTH_FIELD_REPORT_TYPE (HID_BASE + 2133 ) -#define HID_AUTH_FIELD_VOLUME (HID_BASE + 2134 ) -#define HID_AUTH_FIELD_YEAR (HID_BASE + 2135 ) -#define HID_AUTH_FIELD_URL (HID_BASE + 2136 ) -#define HID_AUTH_FIELD_CUSTOM1 (HID_BASE + 2137 ) -#define HID_AUTH_FIELD_CUSTOM2 (HID_BASE + 2138 ) -#define HID_AUTH_FIELD_CUSTOM3 (HID_BASE + 2139 ) -#define HID_AUTH_FIELD_CUSTOM4 (HID_BASE + 2140 ) -#define HID_AUTH_FIELD_CUSTOM5 (HID_BASE + 2141 ) -#define HID_AUTH_FIELD_ISBN (HID_BASE + 2142 ) - -#define HID_AUTH_MARK_DLG_FROM_COMP_RB (HID_BASE + 2143 ) -#define HID_AUTH_MARK_DLG_FROM_DOC_RB (HID_BASE + 2144 ) -#define HID_AUTH_MARK_DLG_ID_LISTBOX (HID_BASE + 2145 ) - -#define HID_INSERT_INDEX_ENTRY_LEVEL_LB (HID_BASE + 2146 ) -#define HID_INSERT_IDX_MRK_SRCH_CASESENSITIVE (HID_BASE + 2147 ) -#define HID_INSERT_IDX_MRK_SRCH_WORDONLY (HID_BASE + 2148 ) -#define HID_DLG_CREATE_AUTOMARK (HID_BASE + 2149 ) -#define HID_BUSINESS_CARD_CONTENT (HID_BASE + 2150 ) -#define HID_SAVE_LABEL_DLG (HID_BASE + 2151 ) -#define HID_BUSINESS_FMT_PAGE (HID_BASE + 2152 ) -#define HID_BUSINESS_FMT_PAGE_CONT (HID_BASE + 2153 ) -#define HID_BUSINESS_FMT_PAGE_SHEET (HID_BASE + 2154 ) -#define HID_BUSINESS_FMT_PAGE_BRAND (HID_BASE + 2155 ) -#define HID_BUSINESS_FMT_PAGE_TYPE (HID_BASE + 2156 ) -#define HID_SEND_MASTER_DIALOG (HID_BASE + 2157 ) -#define HID_SEND_MASTER_CTRL_PUSHBUTTON_OK (HID_BASE + 2158 ) -#define HID_SEND_MASTER_CTRL_PUSHBUTTON_CANCEL (HID_BASE + 2159 ) -#define HID_SEND_MASTER_CTRL_LISTBOX_FILTER (HID_BASE + 2160 ) -#define HID_SEND_MASTER_CTRL_CONTROL_FILEVIEW (HID_BASE + 2161 ) -#define HID_SEND_MASTER_CTRL_EDIT_FILEURL (HID_BASE + 2162 ) -#define HID_SEND_MASTER_CTRL_CHECKBOX_AUTOEXTENSION (HID_BASE + 2163 ) -#define HID_SEND_MASTER_CTRL_LISTBOX_TEMPLATE (HID_BASE + 2164 ) -#define HID_SEND_MASTER_CTRL_DUMMY (HID_BASE + 2165 ) - -#define HID_SEND_HTML_DIALOG (HID_BASE + 2166 ) -#define HID_SEND_HTML_CTRL_PUSHBUTTON_OK (HID_BASE + 2167 ) -#define HID_SEND_HTML_CTRL_PUSHBUTTON_CANCEL (HID_BASE + 2168 ) -#define HID_SEND_HTML_CTRL_LISTBOX_FILTER (HID_BASE + 2169 ) -#define HID_SEND_HTML_CTRL_CONTROL_FILEVIEW (HID_BASE + 2170 ) -#define HID_SEND_HTML_CTRL_EDIT_FILEURL (HID_BASE + 2171 ) -#define HID_SEND_HTML_CTRL_CHECKBOX_AUTOEXTENSION (HID_BASE + 2172 ) -#define HID_SEND_HTML_CTRL_LISTBOX_TEMPLATE (HID_BASE + 2173 ) -#define HID_SEND_HTML_CTRL_DUMMY (HID_BASE + 2174 ) - -#define HID_INSERT_IDX_MRK_PHONETIC_READING (HID_BASE + 2175 ) -#define HID_COLUMN_VALUESET (HID_BASE + 2176 ) -#define HID_PVIEW_ZOOM_LB (HID_BASE + 2177 ) -#define HID_MAIL_MERGE_SELECT (HID_BASE + 2178 ) -#define HID_MAIL_MERGE_CREATE_FROM (HID_BASE + 2179 ) -#define HID_MAIL_MERGE_INSERT_FIELDS (HID_BASE + 2180 ) -#define HID_PRINT_AS_MERGE (HID_BASE + 2181 ) -#define HID_MERGE_SOURCE_UNAVAILABLE (HID_BASE + 2182 ) -#define HID_DATA_SOURCES_UNAVAILABLE (HID_BASE + 2183 ) -#define HID_MODULE_TOOLBOX (HID_BASE + 2184 ) -#define HID_SECTION_INDENTS_PAGE (HID_BASE + 2185 ) - -#define HID_FLD_DROPDOWN (HID_BASE + 2186 ) -#define HID_MM_DOCSELECTPAGE (HID_BASE + 2187 ) -#define HID_MM_OUTPUTTYPEPAGE (HID_BASE + 2188 ) -#define HID_MM_ADDRESSBLOCKPAGE (HID_BASE + 2189 ) -#define HID_MM_GREETINGSPAGE (HID_BASE + 2190 ) -#define HID_MM_PREPAREMERGEPAGE (HID_BASE + 2191 ) -#define HID_MM_MERGEPAGE (HID_BASE + 2192 ) -#define HID_MM_OUTPUTPAGE (HID_BASE + 2193 ) -#define HID_MM_ADDRESSLISTDIALOG (HID_BASE + 2194 ) -#define HID_MM_SELECTDBTABLEDDIALOG (HID_BASE + 2195 ) -#define HID_MM_SELECTDBTABLEDDIALOG_LISTBOX (HID_BASE + 2196 ) -#define HID_MM_DBTABLEPREVIEWDIALOG (HID_BASE + 2197 ) -#define HID_MM_CREATEADDRESSLIST (HID_BASE + 2198 ) -#define HID_MM_FIND_ENTRY (HID_BASE + 2199 ) -#define HID_MM_ADD_RENAME_ENTRY (HID_BASE + 2200 ) -#define HID_MM_CUSTOMIZE_ADDRESS_LIST (HID_BASE + 2201 ) -#define HID_MM_CUSTOMIZEADDRESSBLOCK (HID_BASE + 2202 ) -#define HID_MM_SELECTADDRESSBLOCK (HID_BASE + 2203 ) -#define HID_MM_ASSIGNFIELDS (HID_BASE + 2204 ) -#define HID_MM_MAILNOTINSTALLED (HID_BASE + 2205 ) -#define HID_MM_LAYOUT_PAGE (HID_BASE + 2206 ) -#define HID_MM_COPYTO (HID_BASE + 2207 ) -#define HID_MM_ADDRESSLIST_HB (HID_BASE + 2208 ) -#define HID_MM_ADDRESSLIST_TLB (HID_BASE + 2209 ) -#define HID_TP_MAILCONFIG (HID_BASE + 2210 ) -#define HID_MM_TESTACCOUNTSETTINGS (HID_BASE + 2211 ) -#define HID_MM_TESTACCOUNTSETTINGS_TLB (HID_BASE + 2212 ) -#define HID_MM_TESTACCOUNTSETTINGS_HB (HID_BASE + 2213 ) -#define HID_MM_MAILBODY (HID_BASE + 2214 ) -#define HID_MM_SENDMAILS (HID_BASE + 2215 ) -#define HID_MM_SENDMAILS_STATUSLB (HID_BASE + 2216 ) -#define HID_MAILMERGECHILD (HID_BASE + 2217 ) -#define HID_MM_CUSTOMFIELDS (HID_BASE + 2218 ) -#define HID_DLG_WORDCOUNT (HID_BASE + 2219 ) -#define HID_MM_MAILSTATUS_TLB (HID_BASE + 2220 ) -#define HID_RETURN_TO_MAILMERGE (HID_BASE + 2221 ) -#define HID_MM_SAVEWARNING (HID_BASE + 2222 ) -#define HID_MM_QUERY (HID_BASE + 2223 ) -#define HID_MM_SENDWARNING (HID_BASE + 2224 ) -#define HID_MM_SERVERAUTHENTICATION (HID_BASE + 2225 ) - -#define HID_MEDIA_TOOLBOX (HID_BASE + 2227) -#define HID_NID_TBL (HID_BASE + 2228) -#define HID_NID_FRM (HID_BASE + 2229) -#define HID_NID_GRF (HID_BASE + 2230) -#define HID_NID_OLE (HID_BASE + 2231) -#define HID_NID_PGE (HID_BASE + 2232) -#define HID_NID_OUTL (HID_BASE + 2233) -#define HID_NID_MARK (HID_BASE + 2234) -#define HID_NID_DRW (HID_BASE + 2235) -#define HID_NID_CTRL (HID_BASE + 2236) -#define HID_NID_PREV (HID_BASE + 2237) -#define HID_NID_REG (HID_BASE + 2238) -#define HID_NID_BKM (HID_BASE + 2239) -#define HID_NID_SEL (HID_BASE + 2240) -#define HID_NID_FTN (HID_BASE + 2241) -#define HID_NID_POSTIT (HID_BASE + 2242) -#define HID_NID_SRCH_REP (HID_BASE + 2243) -#define HID_NID_INDEX_ENTRY (HID_BASE + 2244) -#define HID_NID_TABLE_FORMULA (HID_BASE + 2245) -#define HID_NID_TABLE_FORMULA_ERROR (HID_BASE + 2246) -#define HID_NID_NEXT (HID_BASE + 2247) -#define HID_MM_NEXT_PAGE (HID_BASE + 2248) -#define HID_MM_PREV_PAGE (HID_BASE + 2249) -#define HID_MM_GREETINGS_CB_PERSONALIZED (HID_BASE + 2250) -#define HID_MM_GREETINGS_LB_FEMALE (HID_BASE + 2251) -#define HID_MM_GREETINGS_PB_FEMALE (HID_BASE + 2252) -#define HID_MM_GREETINGS_LB_MALE (HID_BASE + 2253) -#define HID_MM_GREETINGS_PB_MALE (HID_BASE + 2254) -#define HID_MM_GREETINGS_LB_FEMALECOLUMN (HID_BASE + 2255) -#define HID_MM_GREETINGS_CB_FEMALEFIELD (HID_BASE + 2256) -#define HID_MM_GREETINGS_CB_NEUTRAL (HID_BASE + 2257) -#define HID_MM_BODY_CB_PERSONALIZED (HID_BASE + 2258) -#define HID_MM_BODY_LB_FEMALE (HID_BASE + 2259) -#define HID_MM_BODY_PB_FEMALE (HID_BASE + 2260) -#define HID_MM_BODY_LB_MALE (HID_BASE + 2261) -#define HID_MM_BODY_PB_MALE (HID_BASE + 2262) -#define HID_MM_BODY_LB_FEMALECOLUMN (HID_BASE + 2263) -#define HID_MM_BODY_CB_FEMALEFIELD (HID_BASE + 2264) -#define HID_MM_BODY_CB_NEUTRAL (HID_BASE + 2265) -#define HID_MM_ASSIGN_FIELDS (HID_BASE + 2266) -#define HID_MM_HEADER_0 (HID_BASE + 2267) -#define HID_MM_HEADER_1 (HID_BASE + 2268) -#define HID_MM_HEADER_2 (HID_BASE + 2269) -#define HID_MM_HEADER_3 (HID_BASE + 2270) -#define HID_MM_HEADER_4 (HID_BASE + 2271) -#define HID_MM_HEADER_5 (HID_BASE + 2272) -#define HID_MM_HEADER_6 (HID_BASE + 2273) -#define HID_MM_HEADER_7 (HID_BASE + 2274) -#define HID_MM_HEADER_8 (HID_BASE + 2275) -#define HID_MM_HEADER_9 (HID_BASE + 2276) -#define HID_MM_HEADER_10 (HID_BASE + 2277) -#define HID_MM_HEADER_11 (HID_BASE + 2278) -#define HID_MM_HEADER_12 (HID_BASE + 2279) -#define HID_MM_HEADER_13 (HID_BASE + 2280) +#define HID_TOX_ENTRY_BUTTON "SW_HID_TOX_ENTRY_BUTTON" +#define HID_TOX_ENTRY_EDIT "SW_HID_TOX_ENTRY_EDIT" + +#define HID_DLG_NEW_USER_IDX "SW_HID_DLG_NEW_USER_IDX" +#define HID_INSERT_IDX_MRK_OK "SW_HID_INSERT_IDX_MRK_OK" +#define HID_INSERT_IDX_MRK_CLOSE "SW_HID_INSERT_IDX_MRK_CLOSE" +#define HID_INSERT_AUTH_MRK_OK "SW_HID_INSERT_AUTH_MRK_OK" +#define HID_INSERT_AUTH_MRK_CLOSE "SW_HID_INSERT_AUTH_MRK_CLOSE" +#define HID_INSERT_IDX_MRK_DELETE "SW_HID_INSERT_IDX_MRK_DELETE" +#define HID_INSERT_IDX_MRK_NEW "SW_HID_INSERT_IDX_MRK_NEW" +#define HID_INSERT_IDX_MRK_PREV "SW_HID_INSERT_IDX_MRK_PREV" +#define HID_INSERT_IDX_MRK_PREV_SAME "SW_HID_INSERT_IDX_MRK_PREV_SAME" +#define HID_INSERT_IDX_MRK_NEXT "SW_HID_INSERT_IDX_MRK_NEXT" +#define HID_INSERT_IDX_MRK_NEXT_SAME "SW_HID_INSERT_IDX_MRK_NEXT_SAME" +#define HID_INSERT_IDX_MRK_TYPE "SW_HID_INSERT_IDX_MRK_TYPE" +#define HID_INSERT_IDX_MRK_ENTRY "SW_HID_INSERT_IDX_MRK_ENTRY" +#define HID_INSERT_IDX_MRK_PRIM_KEY "SW_HID_INSERT_IDX_MRK_PRIM_KEY" +#define HID_INSERT_IDX_MRK_SEC_KEY "SW_HID_INSERT_IDX_MRK_SEC_KEY" +#define HID_INSERT_IDX_MRK_LEVEL "SW_HID_INSERT_IDX_MRK_LEVEL" +#define HID_INSERT_IDX_MRK_MAIN_ENTRY "SW_HID_INSERT_IDX_MRK_MAIN_ENTRY" +#define HID_INSERT_IDX_MRK_APPLY_ALL "SW_HID_INSERT_IDX_MRK_APPLY_ALL" +#define HID_INSERT_AUTH_MRK_ENTRY "SW_HID_INSERT_AUTH_MRK_ENTRY" +#define HID_INSERT_AUTH_MRK_CREATE_ENTRY "SW_HID_INSERT_AUTH_MRK_CREATE_ENTRY" +#define HID_INSERT_AUTH_MRK_EDIT_ENTRY "SW_HID_INSERT_AUTH_MRK_EDIT_ENTRY" +#define HID_TOKEN_WINDOW "SW_HID_TOKEN_WINDOW" + +#define HID_AUTH_FIELD_IDENTIFIER "SW_HID_AUTH_FIELD_IDENTIFIER" +#define HID_AUTH_FIELD_AUTHORITY_TYPE "SW_HID_AUTH_FIELD_AUTHORITY_TYPE" +#define HID_AUTH_FIELD_ADDRESS "SW_HID_AUTH_FIELD_ADDRESS" +#define HID_AUTH_FIELD_ANNOTE "SW_HID_AUTH_FIELD_ANNOTE" +#define HID_AUTH_FIELD_AUTHOR "SW_HID_AUTH_FIELD_AUTHOR" +#define HID_AUTH_FIELD_BOOKTITLE "SW_HID_AUTH_FIELD_BOOKTITLE" +#define HID_AUTH_FIELD_CHAPTER "SW_HID_AUTH_FIELD_CHAPTER" +#define HID_AUTH_FIELD_EDITION "SW_HID_AUTH_FIELD_EDITION" +#define HID_AUTH_FIELD_EDITOR "SW_HID_AUTH_FIELD_EDITOR" +#define HID_AUTH_FIELD_HOWPUBLISHED "SW_HID_AUTH_FIELD_HOWPUBLISHED" +#define HID_AUTH_FIELD_INSTITUTION "SW_HID_AUTH_FIELD_INSTITUTION" +#define HID_AUTH_FIELD_JOURNAL "SW_HID_AUTH_FIELD_JOURNAL" +#define HID_AUTH_FIELD_MONTH "SW_HID_AUTH_FIELD_MONTH" +#define HID_AUTH_FIELD_NOTE "SW_HID_AUTH_FIELD_NOTE" +#define HID_AUTH_FIELD_NUMBER "SW_HID_AUTH_FIELD_NUMBER" +#define HID_AUTH_FIELD_ORGANIZATIONS "SW_HID_AUTH_FIELD_ORGANIZATIONS" +#define HID_AUTH_FIELD_PAGES "SW_HID_AUTH_FIELD_PAGES" +#define HID_AUTH_FIELD_PUBLISHER "SW_HID_AUTH_FIELD_PUBLISHER" +#define HID_AUTH_FIELD_SCHOOL "SW_HID_AUTH_FIELD_SCHOOL" +#define HID_AUTH_FIELD_SERIES "SW_HID_AUTH_FIELD_SERIES" +#define HID_AUTH_FIELD_TITLE "SW_HID_AUTH_FIELD_TITLE" +#define HID_AUTH_FIELD_REPORT_TYPE "SW_HID_AUTH_FIELD_REPORT_TYPE" +#define HID_AUTH_FIELD_VOLUME "SW_HID_AUTH_FIELD_VOLUME" +#define HID_AUTH_FIELD_YEAR "SW_HID_AUTH_FIELD_YEAR" +#define HID_AUTH_FIELD_URL "SW_HID_AUTH_FIELD_URL" +#define HID_AUTH_FIELD_CUSTOM1 "SW_HID_AUTH_FIELD_CUSTOM1" +#define HID_AUTH_FIELD_CUSTOM2 "SW_HID_AUTH_FIELD_CUSTOM2" +#define HID_AUTH_FIELD_CUSTOM3 "SW_HID_AUTH_FIELD_CUSTOM3" +#define HID_AUTH_FIELD_CUSTOM4 "SW_HID_AUTH_FIELD_CUSTOM4" +#define HID_AUTH_FIELD_CUSTOM5 "SW_HID_AUTH_FIELD_CUSTOM5" +#define HID_AUTH_FIELD_ISBN "SW_HID_AUTH_FIELD_ISBN" + +#define HID_AUTH_MARK_DLG_FROM_COMP_RB "SW_HID_AUTH_MARK_DLG_FROM_COMP_RB" +#define HID_AUTH_MARK_DLG_FROM_DOC_RB "SW_HID_AUTH_MARK_DLG_FROM_DOC_RB" +#define HID_AUTH_MARK_DLG_ID_LISTBOX "SW_HID_AUTH_MARK_DLG_ID_LISTBOX" + +#define HID_INSERT_INDEX_ENTRY_LEVEL_LB "SW_HID_INSERT_INDEX_ENTRY_LEVEL_LB" +#define HID_INSERT_IDX_MRK_SRCH_CASESENSITIVE "SW_HID_INSERT_IDX_MRK_SRCH_CASESENSITIVE" +#define HID_INSERT_IDX_MRK_SRCH_WORDONLY "SW_HID_INSERT_IDX_MRK_SRCH_WORDONLY" +#define HID_DLG_CREATE_AUTOMARK "SW_HID_DLG_CREATE_AUTOMARK" +#define HID_BUSINESS_CARD_CONTENT "SW_HID_BUSINESS_CARD_CONTENT" +#define HID_SAVE_LABEL_DLG "SW_HID_SAVE_LABEL_DLG" +#define HID_BUSINESS_FMT_PAGE "SW_HID_BUSINESS_FMT_PAGE" +#define HID_BUSINESS_FMT_PAGE_CONT "SW_HID_BUSINESS_FMT_PAGE_CONT" +#define HID_BUSINESS_FMT_PAGE_SHEET "SW_HID_BUSINESS_FMT_PAGE_SHEET" +#define HID_BUSINESS_FMT_PAGE_BRAND "SW_HID_BUSINESS_FMT_PAGE_BRAND" +#define HID_BUSINESS_FMT_PAGE_TYPE "SW_HID_BUSINESS_FMT_PAGE_TYPE" +#define HID_SEND_MASTER_DIALOG "SW_HID_SEND_MASTER_DIALOG" +#define HID_SEND_MASTER_CTRL_PUSHBUTTON_OK "SW_HID_SEND_MASTER_CTRL_PUSHBUTTON_OK" +#define HID_SEND_MASTER_CTRL_PUSHBUTTON_CANCEL "SW_HID_SEND_MASTER_CTRL_PUSHBUTTON_CANCEL" +#define HID_SEND_MASTER_CTRL_LISTBOX_FILTER "SW_HID_SEND_MASTER_CTRL_LISTBOX_FILTER" +#define HID_SEND_MASTER_CTRL_CONTROL_FILEVIEW "SW_HID_SEND_MASTER_CTRL_CONTROL_FILEVIEW" +#define HID_SEND_MASTER_CTRL_EDIT_FILEURL "SW_HID_SEND_MASTER_CTRL_EDIT_FILEURL" +#define HID_SEND_MASTER_CTRL_CHECKBOX_AUTOEXTENSION "SW_HID_SEND_MASTER_CTRL_CHECKBOX_AUTOEXTENSION" +#define HID_SEND_MASTER_CTRL_LISTBOX_TEMPLATE "SW_HID_SEND_MASTER_CTRL_LISTBOX_TEMPLATE" +#define HID_SEND_MASTER_CTRL_DUMMY "SW_HID_SEND_MASTER_CTRL_DUMMY" + +#define HID_SEND_HTML_DIALOG "SW_HID_SEND_HTML_DIALOG" +#define HID_SEND_HTML_CTRL_PUSHBUTTON_OK "SW_HID_SEND_HTML_CTRL_PUSHBUTTON_OK" +#define HID_SEND_HTML_CTRL_PUSHBUTTON_CANCEL "SW_HID_SEND_HTML_CTRL_PUSHBUTTON_CANCEL" +#define HID_SEND_HTML_CTRL_LISTBOX_FILTER "SW_HID_SEND_HTML_CTRL_LISTBOX_FILTER" +#define HID_SEND_HTML_CTRL_CONTROL_FILEVIEW "SW_HID_SEND_HTML_CTRL_CONTROL_FILEVIEW" +#define HID_SEND_HTML_CTRL_EDIT_FILEURL "SW_HID_SEND_HTML_CTRL_EDIT_FILEURL" +#define HID_SEND_HTML_CTRL_CHECKBOX_AUTOEXTENSION "SW_HID_SEND_HTML_CTRL_CHECKBOX_AUTOEXTENSION" +#define HID_SEND_HTML_CTRL_LISTBOX_TEMPLATE "SW_HID_SEND_HTML_CTRL_LISTBOX_TEMPLATE" +#define HID_SEND_HTML_CTRL_DUMMY "SW_HID_SEND_HTML_CTRL_DUMMY" + +#define HID_INSERT_IDX_MRK_PHONETIC_READING "SW_HID_INSERT_IDX_MRK_PHONETIC_READING" +#define HID_COLUMN_VALUESET "SW_HID_COLUMN_VALUESET" +#define HID_PVIEW_ZOOM_LB "SW_HID_PVIEW_ZOOM_LB" +#define HID_MAIL_MERGE_SELECT "SW_HID_MAIL_MERGE_SELECT" +#define HID_MAIL_MERGE_CREATE_FROM "SW_HID_MAIL_MERGE_CREATE_FROM" +#define HID_MAIL_MERGE_INSERT_FIELDS "SW_HID_MAIL_MERGE_INSERT_FIELDS" +#define HID_PRINT_AS_MERGE "SW_HID_PRINT_AS_MERGE" +#define HID_MERGE_SOURCE_UNAVAILABLE "SW_HID_MERGE_SOURCE_UNAVAILABLE" +#define HID_DATA_SOURCES_UNAVAILABLE "SW_HID_DATA_SOURCES_UNAVAILABLE" +#define HID_MODULE_TOOLBOX "SW_HID_MODULE_TOOLBOX" +#define HID_SECTION_INDENTS_PAGE "SW_HID_SECTION_INDENTS_PAGE" + +#define HID_FLD_DROPDOWN "SW_HID_FLD_DROPDOWN" +#define HID_MM_DOCSELECTPAGE "SW_HID_MM_DOCSELECTPAGE" +#define HID_MM_OUTPUTTYPEPAGE "SW_HID_MM_OUTPUTTYPEPAGE" +#define HID_MM_ADDRESSBLOCKPAGE "SW_HID_MM_ADDRESSBLOCKPAGE" +#define HID_MM_GREETINGSPAGE "SW_HID_MM_GREETINGSPAGE" +#define HID_MM_PREPAREMERGEPAGE "SW_HID_MM_PREPAREMERGEPAGE" +#define HID_MM_MERGEPAGE "SW_HID_MM_MERGEPAGE" +#define HID_MM_OUTPUTPAGE "SW_HID_MM_OUTPUTPAGE" +#define HID_MM_ADDRESSLISTDIALOG "SW_HID_MM_ADDRESSLISTDIALOG" +#define HID_MM_SELECTDBTABLEDDIALOG "SW_HID_MM_SELECTDBTABLEDDIALOG" +#define HID_MM_SELECTDBTABLEDDIALOG_LISTBOX "SW_HID_MM_SELECTDBTABLEDDIALOG_LISTBOX" +#define HID_MM_DBTABLEPREVIEWDIALOG "SW_HID_MM_DBTABLEPREVIEWDIALOG" +#define HID_MM_CREATEADDRESSLIST "SW_HID_MM_CREATEADDRESSLIST" +#define HID_MM_FIND_ENTRY "SW_HID_MM_FIND_ENTRY" +#define HID_MM_ADD_RENAME_ENTRY "SW_HID_MM_ADD_RENAME_ENTRY" +#define HID_MM_CUSTOMIZE_ADDRESS_LIST "SW_HID_MM_CUSTOMIZE_ADDRESS_LIST" +#define HID_MM_CUSTOMIZEADDRESSBLOCK "SW_HID_MM_CUSTOMIZEADDRESSBLOCK" +#define HID_MM_SELECTADDRESSBLOCK "SW_HID_MM_SELECTADDRESSBLOCK" +#define HID_MM_ASSIGNFIELDS "SW_HID_MM_ASSIGNFIELDS" +#define HID_MM_MAILNOTINSTALLED "SW_HID_MM_MAILNOTINSTALLED" +#define HID_MM_LAYOUT_PAGE "SW_HID_MM_LAYOUT_PAGE" +#define HID_MM_COPYTO "SW_HID_MM_COPYTO" +#define HID_MM_ADDRESSLIST_HB "SW_HID_MM_ADDRESSLIST_HB" +#define HID_MM_ADDRESSLIST_TLB "SW_HID_MM_ADDRESSLIST_TLB" +#define HID_TP_MAILCONFIG "SW_HID_TP_MAILCONFIG" +#define HID_MM_TESTACCOUNTSETTINGS "SW_HID_MM_TESTACCOUNTSETTINGS" +#define HID_MM_TESTACCOUNTSETTINGS_TLB "SW_HID_MM_TESTACCOUNTSETTINGS_TLB" +#define HID_MM_TESTACCOUNTSETTINGS_HB "SW_HID_MM_TESTACCOUNTSETTINGS_HB" +#define HID_MM_MAILBODY "SW_HID_MM_MAILBODY" +#define HID_MM_SENDMAILS "SW_HID_MM_SENDMAILS" +#define HID_MM_SENDMAILS_STATUSLB "SW_HID_MM_SENDMAILS_STATUSLB" +#define HID_MAILMERGECHILD "SW_HID_MAILMERGECHILD" +#define HID_MM_CUSTOMFIELDS "SW_HID_MM_CUSTOMFIELDS" +#define HID_DLG_WORDCOUNT "SW_HID_DLG_WORDCOUNT" +#define HID_MM_MAILSTATUS_TLB "SW_HID_MM_MAILSTATUS_TLB" +#define HID_RETURN_TO_MAILMERGE "SW_HID_RETURN_TO_MAILMERGE" +#define HID_MM_SAVEWARNING "SW_HID_MM_SAVEWARNING" +#define HID_MM_QUERY "SW_HID_MM_QUERY" +#define HID_MM_SENDWARNING "SW_HID_MM_SENDWARNING" +#define HID_MM_SERVERAUTHENTICATION "SW_HID_MM_SERVERAUTHENTICATION" + +#define HID_MEDIA_TOOLBOX "SW_HID_MEDIA_TOOLBOX" +#define HID_NID_TBL "SW_HID_NID_TBL" +#define HID_NID_FRM "SW_HID_NID_FRM" +#define HID_NID_GRF "SW_HID_NID_GRF" +#define HID_NID_OLE "SW_HID_NID_OLE" +#define HID_NID_PGE "SW_HID_NID_PGE" +#define HID_NID_OUTL "SW_HID_NID_OUTL" +#define HID_NID_MARK "SW_HID_NID_MARK" +#define HID_NID_DRW "SW_HID_NID_DRW" +#define HID_NID_CTRL "SW_HID_NID_CTRL" +#define HID_NID_PREV "SW_HID_NID_PREV" +#define HID_NID_REG "SW_HID_NID_REG" +#define HID_NID_BKM "SW_HID_NID_BKM" +#define HID_NID_SEL "SW_HID_NID_SEL" +#define HID_NID_FTN "SW_HID_NID_FTN" +#define HID_NID_POSTIT "SW_HID_NID_POSTIT" +#define HID_NID_SRCH_REP "SW_HID_NID_SRCH_REP" +#define HID_NID_INDEX_ENTRY "SW_HID_NID_INDEX_ENTRY" +#define HID_NID_TABLE_FORMULA "SW_HID_NID_TABLE_FORMULA" +#define HID_NID_TABLE_FORMULA_ERROR "SW_HID_NID_TABLE_FORMULA_ERROR" +#define HID_NID_NEXT "SW_HID_NID_NEXT" +#define HID_MM_NEXT_PAGE "SW_HID_MM_NEXT_PAGE" +#define HID_MM_PREV_PAGE "SW_HID_MM_PREV_PAGE" +#define HID_MM_GREETINGS_CB_PERSONALIZED "SW_HID_MM_GREETINGS_CB_PERSONALIZED" +#define HID_MM_GREETINGS_LB_FEMALE "SW_HID_MM_GREETINGS_LB_FEMALE" +#define HID_MM_GREETINGS_PB_FEMALE "SW_HID_MM_GREETINGS_PB_FEMALE" +#define HID_MM_GREETINGS_LB_MALE "SW_HID_MM_GREETINGS_LB_MALE" +#define HID_MM_GREETINGS_PB_MALE "SW_HID_MM_GREETINGS_PB_MALE" +#define HID_MM_GREETINGS_LB_FEMALECOLUMN "SW_HID_MM_GREETINGS_LB_FEMALECOLUMN" +#define HID_MM_GREETINGS_CB_FEMALEFIELD "SW_HID_MM_GREETINGS_CB_FEMALEFIELD" +#define HID_MM_GREETINGS_CB_NEUTRAL "SW_HID_MM_GREETINGS_CB_NEUTRAL" +#define HID_MM_BODY_CB_PERSONALIZED "SW_HID_MM_BODY_CB_PERSONALIZED" +#define HID_MM_BODY_LB_FEMALE "SW_HID_MM_BODY_LB_FEMALE" +#define HID_MM_BODY_PB_FEMALE "SW_HID_MM_BODY_PB_FEMALE" +#define HID_MM_BODY_LB_MALE "SW_HID_MM_BODY_LB_MALE" +#define HID_MM_BODY_PB_MALE "SW_HID_MM_BODY_PB_MALE" +#define HID_MM_BODY_LB_FEMALECOLUMN "SW_HID_MM_BODY_LB_FEMALECOLUMN" +#define HID_MM_BODY_CB_FEMALEFIELD "SW_HID_MM_BODY_CB_FEMALEFIELD" +#define HID_MM_BODY_CB_NEUTRAL "SW_HID_MM_BODY_CB_NEUTRAL" +#define HID_MM_ASSIGN_FIELDS "SW_HID_MM_ASSIGN_FIELDS" +#define HID_MM_HEADER_0 "SW_HID_MM_HEADER_0" +#define HID_MM_HEADER_1 "SW_HID_MM_HEADER_1" +#define HID_MM_HEADER_2 "SW_HID_MM_HEADER_2" +#define HID_MM_HEADER_3 "SW_HID_MM_HEADER_3" +#define HID_MM_HEADER_4 "SW_HID_MM_HEADER_4" +#define HID_MM_HEADER_5 "SW_HID_MM_HEADER_5" +#define HID_MM_HEADER_6 "SW_HID_MM_HEADER_6" +#define HID_MM_HEADER_7 "SW_HID_MM_HEADER_7" +#define HID_MM_HEADER_8 "SW_HID_MM_HEADER_8" +#define HID_MM_HEADER_9 "SW_HID_MM_HEADER_9" +#define HID_MM_HEADER_10 "SW_HID_MM_HEADER_10" +#define HID_MM_HEADER_11 "SW_HID_MM_HEADER_11" +#define HID_MM_HEADER_12 "SW_HID_MM_HEADER_12" +#define HID_MM_HEADER_13 "SW_HID_MM_HEADER_13" + +#define HID_ITM_HOR_LEFT "SW_HID_ITM_HOR_LEFT" +#define HID_ITM_HOR_CNTR "SW_HID_ITM_HOR_CNTR" +#define HID_ITM_HOR_RGHT "SW_HID_ITM_HOR_RGHT" +#define HID_ITM_VER_LEFT "SW_HID_ITM_VER_LEFT" +#define HID_ITM_VER_CNTR "SW_HID_ITM_VER_CNTR" +#define HID_ITM_VER_RGHT "SW_HID_ITM_VER_RGHT" + +#define HID_TBX_FORMULA_CALC "SW_HID_TBX_FORMULA_CALC" +#define HID_TBX_FORMULA_CANCEL "SW_HID_TBX_FORMULA_CANCEL" +#define HID_TBX_FORMULA_APPLY "SW_HID_TBX_FORMULA_APPLY" diff --git a/sw/inc/inetfld.hxx b/sw/inc/inetfld.hxx index cca9ce5466..3c647fb28a 100644 --- a/sw/inc/inetfld.hxx +++ b/sw/inc/inetfld.hxx @@ -24,8 +24,8 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _INETFLD_HXX -#define _INETFLD_HXX +#ifndef SW_INETFLD_HXX +#define SW_INETFLD_HXX #include "fldbas.hxx" @@ -69,15 +69,16 @@ class SwINetField : public SwField String sText; SvxMacroTableDtor* pMacroTbl; + virtual String Expand() const; + virtual SwField* Copy() const; + public: // Direkte Eingabe alten Wert loeschen SwINetField( SwINetFieldType* pTyp, USHORT nFmt, const String& rURL, const String& rText ); virtual ~SwINetField(); - virtual String GetCntnt(BOOL bName = FALSE) const; - virtual String Expand() const; - virtual SwField* Copy() const; + virtual String GetFieldName() const; // URL virtual const String& GetPar1() const; @@ -105,5 +106,5 @@ public: }; -#endif // _INETFLD_HXX +#endif // SW_INETFLD_HXX diff --git a/sw/inc/ndole.hxx b/sw/inc/ndole.hxx index 798603d95e..40052cdb9f 100644 --- a/sw/inc/ndole.hxx +++ b/sw/inc/ndole.hxx @@ -67,7 +67,7 @@ public: String GetDescription(); #ifndef _FESHVIEW_ONLY_INLINE_NEEDED - com::sun::star::uno::Reference < com::sun::star::embed::XEmbeddedObject > GetOleRef(); + const com::sun::star::uno::Reference < com::sun::star::embed::XEmbeddedObject > GetOleRef(); svt::EmbeddedObjectRef& GetObject(); const String& GetCurrentPersistName() const { return aName; } BOOL IsOleRef() const; //Damit das Objekt nicht unnoetig geladen werden muss. @@ -168,4 +168,3 @@ inline const SwOLENode *SwNode::GetOLENode() const } #endif // _NDOLE_HXX - diff --git a/sw/inc/pagepreviewlayout.hxx b/sw/inc/pagepreviewlayout.hxx index 589e2850b1..01d83afae5 100644 --- a/sw/inc/pagepreviewlayout.hxx +++ b/sw/inc/pagepreviewlayout.hxx @@ -558,9 +558,6 @@ public: sal_uInt16 GetColOfPage( sal_uInt16 _nPageNum ) const; // OD 18.12.2002 #103492# - Size GetMaxPageSize() const; - - // OD 18.12.2002 #103492# Size GetPrevwDocSize() const; /** get size of a preview page by its physical page number diff --git a/sw/inc/printdata.hxx b/sw/inc/printdata.hxx index 773fdaa3aa..a2561e0c63 100755..100644 --- a/sw/inc/printdata.hxx +++ b/sw/inc/printdata.hxx @@ -24,8 +24,8 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _SW_PRINTDATA_HXX -#define _SW_PRINTDATA_HXX +#ifndef SW_PRINTDATA_HXX +#define SW_PRINTDATA_HXX #include <sal/types.h> @@ -45,7 +45,6 @@ class _SetGetExpFlds; class SwViewOption; class OutputDevice; class SwViewOptionAdjust_Impl; -class SwPrtOptions; class SwWrtShell; class SfxViewShell; @@ -248,8 +247,8 @@ class SwRenderData // the view options to be applied for printing SwViewOptionAdjust_Impl * m_pViewOptionAdjust; - SwPrtOptions * m_pPrtOptions; - + SwPrintData * m_pPrtOptions; + public: // PostIt relevant data @@ -269,14 +268,14 @@ public: bool IsViewOptionAdjust() const { return m_pViewOptionAdjust != 0; } bool NeedNewViewOptionAdjust( const SwWrtShell& ) const; void ViewOptionAdjustStart( SwWrtShell &rSh, const SwViewOption &rViewOptions ); - void ViewOptionAdjust( const SwPrtOptions *pPrtOptions ); + void ViewOptionAdjust( SwPrintData const*const pPrtOptions ); void ViewOptionAdjustStop(); bool HasSwPrtOptions() const { return m_pPrtOptions != 0; } - void SetSwPrtOptions( SwPrtOptions * pOpt ) { m_pPrtOptions = pOpt; } - const SwPrtOptions * GetSwPrtOptions() const { return m_pPrtOptions; } - SwPrtOptions & GetSwPrtOptionsRef() { return *m_pPrtOptions; } - void MakeSwPrtOptions( SwPrtOptions &rOptions, const SwDocShell *pDocShell, + void SetSwPrtOptions(SwPrintData *const pOpt) { m_pPrtOptions = pOpt; } + SwPrintData const* GetSwPrtOptions() const { return m_pPrtOptions; } + SwPrintData & GetSwPrtOptionsRef() { return *m_pPrtOptions; } + void MakeSwPrtOptions( SwPrintData & rOptions, const SwDocShell *pDocShell, const SwPrintUIOptions *pOpt, const SwRenderData *pData, bool bIsPDFExport ); @@ -320,4 +319,17 @@ public: //////////////////////////////////////////////////////////// -#endif //_SW_PRINTDATA_HXX +// last remnants of swprtopt.hxx: + +#define POSTITS_NONE 0 +#define POSTITS_ONLY 1 +#define POSTITS_ENDDOC 2 +#define POSTITS_ENDPAGE 3 + +namespace sw { + +void InitPrintOptionsFromApplication(SwPrintData & o_rData, bool const bWeb); + +} // namespace sw + +#endif // SW_PRINTDATA_HXX diff --git a/sw/inc/reffld.hxx b/sw/inc/reffld.hxx index 581933917e..7bae45868b 100644 --- a/sw/inc/reffld.hxx +++ b/sw/inc/reffld.hxx @@ -24,8 +24,8 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _REFFLD_HXX -#define _REFFLD_HXX +#ifndef SW_REFFLD_HXX +#define SW_REFFLD_HXX #include <fldbas.hxx> @@ -99,6 +99,9 @@ private: USHORT nSubType; USHORT nSeqNo; + virtual String Expand() const; + virtual SwField* Copy() const; + // --> OD 2007-08-24 #i81002# String MakeRefNumStr( const SwTxtNode& rTxtNodeOfField, const SwTxtNode& rTxtNodeOfReferencedItem, @@ -110,9 +113,7 @@ public: virtual ~SwGetRefField(); - virtual String GetCntnt(BOOL bName = FALSE) const; - virtual String Expand() const; - virtual SwField* Copy() const; + virtual String GetFieldName() const; const String& GetSetRefName() const { return sSetRefName; } @@ -158,5 +159,5 @@ public: }; -#endif // _REFFLD_HXX +#endif // SW_REFFLD_HXX diff --git a/sw/inc/ring.hxx b/sw/inc/ring.hxx index 9037550a68..25cf99b174 100644 --- a/sw/inc/ring.hxx +++ b/sw/inc/ring.hxx @@ -27,9 +27,10 @@ #ifndef _RING_HXX #define _RING_HXX +#include <swdllapi.h> #include <swtypes.hxx> -class Ring +class SW_DLLPUBLIC Ring { Ring *pNext; Ring* pPrev; // zur Optimierung, damit das ein/ausketten schneller geht! diff --git a/sw/inc/swabstdlg.hxx b/sw/inc/swabstdlg.hxx index 1c2198981a..1b3fd5405c 100644 --- a/sw/inc/swabstdlg.hxx +++ b/sw/inc/swabstdlg.hxx @@ -127,7 +127,7 @@ public: virtual BOOL IsEndNote() = 0; virtual String GetStr() = 0; //from class Window - virtual void SetHelpId( ULONG nHelpId ) = 0; + virtual void SetHelpId( const rtl::OString& sHelpId ) = 0; virtual void SetText( const XubString& rStr ) = 0; }; @@ -494,5 +494,5 @@ public: virtual CreateTabPage GetTabPageCreatorFunc( USHORT nId ) = 0; virtual GetTabPageRanges GetTabPageRangesFunc( USHORT nId ) = 0; }; -#endif +#endif diff --git a/sw/inc/swcli.hxx b/sw/inc/swcli.hxx index de9a6ea61c..66eee66666 100644 --- a/sw/inc/swcli.hxx +++ b/sw/inc/swcli.hxx @@ -53,6 +53,8 @@ public: void SetInDoVerb( BOOL bFlag ) { bInDoVerb = bFlag; } BOOL IsCheckForOLEInCaption() const { return bOldCheckForOLEInCaption; } + + virtual void FormatChanged(); }; #endif diff --git a/sw/inc/swcommands.h b/sw/inc/swcommands.h new file mode 100644 index 0000000000..8d3fe63b75 --- /dev/null +++ b/sw/inc/swcommands.h @@ -0,0 +1,434 @@ +/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef SW_SWCOMMANDS_HRC
+#define SW_SWCOMMANDS_HRC
+
+#define CMD_SID_CREATE_SW_DRAWVIEW ".uno:CreateSWDrawView"
+#define CMD_FN_REDLINE_ACCEPT ".uno:AcceptTrackedChanges"
+#define CMD_FN_REDLINE_ON ".uno:TrackChanges"
+#define CMD_FN_ADD_UNKNOWN ".uno:AddAllUnknownWords"
+#define CMD_FN_FRAME_ALIGN_VERT_BOTTOM ".uno:AlignBottom"
+#define CMD_FN_FRAME_ALIGN_VERT_CHAR_BOTTOM ".uno:AlignCharBottom"
+#define CMD_FN_FRAME_ALIGN_VERT_CHAR_TOP ".uno:AlignCharTop"
+#define CMD_FN_FRAME_ALIGN_HORZ_CENTER ".uno:AlignHorizontalCenter"
+#define CMD_FN_FRAME_ALIGN_HORZ_LEFT ".uno:AlignLeft"
+#define CMD_FN_FRAME_ALIGN_HORZ_RIGHT ".uno:AlignRight"
+#define CMD_FN_FRAME_ALIGN_VERT_ROW_BOTTOM ".uno:AlignRowBottom"
+#define CMD_FN_FRAME_ALIGN_VERT_ROW_TOP ".uno:AlignRowTop"
+#define CMD_FN_FRAME_ALIGN_VERT_TOP ".uno:AlignTop"
+#define CMD_FN_FRAME_ALIGN_VERT_CENTER ".uno:AlignVerticalCenter"
+#define CMD_FN_FRAME_ALIGN_VERT_CHAR_CENTER ".uno:AlignVerticalCharCenter"
+#define CMD_FN_FRAME_ALIGN_VERT_ROW_CENTER ".uno:AlignVerticalRowCenter"
+#define CMD_FN_EDIT_AUTH_ENTRY_DLG ".uno:AuthoritiesEntryDialog"
+#define CMD_FN_AUTOFORMAT_APPLY ".uno:AutoFormatApply"
+#define CMD_FN_AUTOFORMAT_REDLINE_APPLY ".uno:AutoFormatRedlineApply"
+#define CMD_FN_TABLE_AUTOSUM ".uno:AutoSum"
+#define CMD_SID_ATTR_CHAR_COLOR_BACKGROUND ".uno:BackColor"
+#define CMD_FN_FORMAT_BACKGROUND_DLG ".uno:BackgroundDialog"
+#define CMD_FN_BACKSPACE ".uno:SwBackspace"
+#define CMD_FN_FORMAT_BORDER_DLG ".uno:BorderDialog"
+#define CMD_FN_NUMBER_BULLETS ".uno:BulletsAndNumberingDialog"
+#define CMD_FN_CALC_TABLE ".uno:Calc"
+#define CMD_FN_CALCULATE ".uno:CalculateSel"
+#define CMD_FN_TABLE_VERT_BOTTOM ".uno:CellVertBottom"
+#define CMD_FN_TABLE_VERT_CENTER ".uno:CellVertCenter"
+#define CMD_FN_TABLE_VERT_NONE ".uno:CellVertTop"
+#define CMD_FN_FRAME_CHAIN ".uno:ChainFrames"
+#define CMD_FN_CHANGE_DBFIELD ".uno:ChangeDatabaseField"
+#define CMD_FN_NUMBERING_OUTLINE_DLG ".uno:ChapterNumberingDialog"
+#define CMD_SID_ATTR_CHAR_COLOR_BACKGROUND_EXT ".uno:CharBackgroundExt"
+#define CMD_SID_ATTR_CHAR_COLOR_EXT ".uno:CharColorExt"
+#define CMD_FN_CHAR_LEFT_SEL ".uno:CharLeftSel"
+#define CMD_FN_CHAR_RIGHT_SEL ".uno:CharRightSel"
+#define CMD_FN_CLOSE_PAGEPREVIEW ".uno:ClosePreview"
+#define CMD_FN_REDLINE_COMMENT ".uno:CommentChangeTracking"
+#define CMD_FN_VIEW_META_CHARS ".uno:ControlCodes"
+#define CMD_FN_CONVERT_TEXT_TABLE ".uno:ConvertTableText"
+#define CMD_FN_ABSTRACT_NEWDOC ".uno:CreateAbstract"
+#define CMD_FN_DEC_INDENT_OFFSET ".uno:DecrementIndentValue"
+#define CMD_FN_NUM_BULLET_DOWN ".uno:DecrementLevel"
+#define CMD_FN_NUM_BULLET_OUTLINE_DOWN ".uno:DecrementSubLevels"
+#define CMD_FN_TABLE_DELETE_COL ".uno:DeleteColumns"
+#define CMD_FN_TABLE_DELETE_ROW ".uno:DeleteRows"
+#define CMD_FN_DELETE_WHOLE_LINE ".uno:DelLine"
+#define CMD_FN_DELETE_LINE ".uno:DelToEndOfLine"
+#define CMD_FN_DELETE_PARA ".uno:DelToEndOfPara"
+#define CMD_FN_DELETE_SENT ".uno:DelToEndOfSentence"
+#define CMD_FN_DELETE_WORD ".uno:DelToEndOfWord"
+#define CMD_FN_DELETE_BACK_LINE ".uno:DelToStartOfLine"
+#define CMD_FN_DELETE_BACK_PARA ".uno:DelToStartOfPara"
+#define CMD_FN_DELETE_BACK_SENT ".uno:DelToStartOfSentence"
+#define CMD_FN_DELETE_BACK_WORD ".uno:DelToStartOfWord"
+#define CMD_FN_TABLE_BALANCE_CELLS ".uno:DistributeColumns"
+#define CMD_FN_TABLE_BALANCE_ROWS ".uno:DistributeRows"
+#define CMD_FN_EDIT_CURRENT_TOX ".uno:EditCurIndex"
+#define CMD_FN_GLOSSARY_DLG ".uno:EditGlossary"
+#define CMD_FN_EDIT_HYPERLINK ".uno:EditHyperlink"
+#define CMD_FN_EDIT_REGION ".uno:EditRegion"
+#define CMD_FN_END_OF_DOCUMENT_SEL ".uno:EndOfDocumentSel"
+#define CMD_FN_END_OF_LINE_SEL ".uno:EndOfLineSel"
+#define CMD_FN_END_OF_PARA_SEL ".uno:EndOfParaSel"
+#define CMD_FN_TABLE_SELECT_COL ".uno:EntireColumn"
+#define CMD_FN_TABLE_SELECT_ROW ".uno:EntireRow"
+#define CMD_FN_ESCAPE ".uno:Escape"
+#define CMD_FN_EXECUTE_MACROFIELD ".uno:ExecuteMacroField"
+#define CMD_FN_EXPAND_GLOSSARY ".uno:ExpandGlossary"
+#define CMD_FN_EDIT_FIELD ".uno:FieldDialog"
+#define CMD_FN_VIEW_FIELDNAME ".uno:Fieldnames"
+#define CMD_FN_VIEW_FIELDS ".uno:Fields"
+#define CMD_FN_FLIP_HORZ_GRAFIC ".uno:FlipHorizontal"
+#define CMD_FN_FLIP_VERT_GRAFIC ".uno:FlipVertical"
+#define CMD_SID_ATTR_CHAR_COLOR2 ".uno:FontColor"
+#define CMD_FN_FORMAT_FOOTNOTE_DLG ".uno:FootnoteDialog"
+#define CMD_FN_EDIT_FOOTNOTE ".uno:EditFootnote"
+#define CMD_FN_FORMAT_COLUMN ".uno:FormatColumns"
+#define CMD_FN_FORMAT_DROPCAPS ".uno:FormatDropcap"
+#define CMD_FN_FORMAT_FRAME_DLG ".uno:FrameDialog"
+#define CMD_FN_LINE_DOWN ".uno:GoDown"
+#define CMD_FN_CHAR_LEFT ".uno:GoLeft"
+#define CMD_FN_CHAR_RIGHT ".uno:GoRight"
+#define CMD_FN_FRAME_TO_ANCHOR ".uno:GoToAnchor"
+#define CMD_FN_END_TABLE ".uno:GoToEnd"
+#define CMD_FN_END_OF_COLUMN ".uno:GoToEndOfColumn"
+#define CMD_FN_END_OF_DOCUMENT ".uno:GoToEndOfDoc"
+#define CMD_FN_END_OF_LINE ".uno:GoToEndOfLine"
+#define CMD_FN_END_OF_NEXT_COLUMN ".uno:GoToEndOfNextColumn"
+#define CMD_FN_END_OF_NEXT_PAGE ".uno:GoToEndOfNextPage"
+#define CMD_FN_END_OF_NEXT_PAGE_SEL ".uno:GoToEndOfNextPageSel"
+#define CMD_FN_END_OF_PAGE ".uno:GoToEndOfPage"
+#define CMD_FN_END_OF_PAGE_SEL ".uno:GoToEndOfPageSel"
+#define CMD_FN_END_OF_PARA ".uno:GoToEndOfPara"
+#define CMD_FN_END_OF_PREV_COLUMN ".uno:GoToEndOfPrevColumn"
+#define CMD_FN_END_OF_PREV_PAGE ".uno:GoToEndOfPrevPage"
+#define CMD_FN_END_OF_PREV_PAGE_SEL ".uno:GoToEndOfPrevPageSel"
+#define CMD_FN_NEXT_TOXMARK ".uno:GotoNextIndexMark"
+#define CMD_FN_GOTO_NEXT_INPUTFLD ".uno:GotoNextInputField"
+#define CMD_FN_GOTO_NEXT_OBJ ".uno:GotoNextObject"
+#define CMD_FN_NEXT_PARA ".uno:GoToNextPara"
+#define CMD_FN_GOTO_NEXT_MARK ".uno:GotoNextPlacemarker"
+#define CMD_FN_NEXT_SENT ".uno:GoToNextSentence"
+#define CMD_FN_NEXT_SENT_SEL ".uno:GotoNextSentenceSel"
+#define CMD_FN_NEXT_TBLFML ".uno:GotoNextTableFormula"
+#define CMD_FN_NEXT_WORD ".uno:GoToNextWord"
+#define CMD_FN_NEXT_TBLFML_ERR ".uno:GotoNextWrongTableFormula"
+#define CMD_FN_NAVIGATION_PI_GOTO_PAGE ".uno:GotoPage"
+#define CMD_FN_PREV_TOXMARK ".uno:GotoPrevIndexMark"
+#define CMD_FN_GOTO_PREV_INPUTFLD ".uno:GotoPrevInputField"
+#define CMD_FN_GOTO_PREV_OBJ ".uno:GotoPrevObject"
+#define CMD_FN_PREV_PARA ".uno:GoToPrevPara"
+#define CMD_FN_GOTO_PREV_MARK ".uno:GotoPrevPlacemarker"
+#define CMD_FN_PREV_SENT ".uno:GoToPrevSentence"
+#define CMD_FN_PREV_SENT_SEL ".uno:GotoPrevSentenceSel"
+#define CMD_FN_PREV_TBLFML ".uno:GotoPrevTableFormula"
+#define CMD_FN_PREV_WORD ".uno:GoToPrevWord"
+#define CMD_FN_PREV_TBLFML_ERR ".uno:GotoPrevWrongTableFormula"
+#define CMD_FN_START_TABLE ".uno:GoToStartOfTable"
+#define CMD_FN_START_OF_COLUMN ".uno:GoToStartOfColumn"
+#define CMD_FN_START_OF_DOCUMENT ".uno:GoToStartOfDoc"
+#define CMD_FN_START_OF_LINE ".uno:GoToStartOfLine"
+#define CMD_FN_START_OF_NEXT_COLUMN ".uno:GoToStartOfNextColumn"
+#define CMD_FN_START_OF_NEXT_PAGE ".uno:GoToStartOfNextPage"
+#define CMD_FN_START_OF_NEXT_PAGE_SEL ".uno:GoToStartOfNextPageSel"
+#define CMD_FN_START_OF_PAGE ".uno:GoToStartOfPage"
+#define CMD_FN_START_OF_PAGE_SEL ".uno:GoToStartOfPageSel"
+#define CMD_FN_START_OF_PARA ".uno:GoToStartOfPara"
+#define CMD_FN_START_OF_PREV_COLUMN ".uno:GoToStartOfPrevColumn"
+#define CMD_FN_START_OF_PREV_PAGE ".uno:GoToStartOfPrevPage"
+#define CMD_FN_START_OF_PREV_PAGE_SEL ".uno:GoToStartOfPrevPageSel"
+#define CMD_FN_LINE_UP ".uno:GoUp"
+#define CMD_FN_VIEW_GRAPHIC ".uno:Graphic"
+#define CMD_FN_FORMAT_GRAFIC_DLG ".uno:GraphicDialog"
+#define CMD_FN_SAVE_GRAPHIC ".uno:SaveGraphic"
+#define CMD_FN_GROW_FONT_SIZE ".uno:Grow"
+#define CMD_FN_HSCROLLBAR ".uno:HScroll"
+#define CMD_SID_HTML_MODE ".uno:HtmlMode"
+#define CMD_FN_HYPHENATE_OPT_DLG ".uno:Hyphenate"
+#define CMD_FN_INC_INDENT_OFFSET ".uno:IncrementIndentValue"
+#define CMD_FN_NUM_BULLET_UP ".uno:IncrementLevel"
+#define CMD_FN_NUM_BULLET_OUTLINE_UP ".uno:IncrementSubLevels"
+#define CMD_FN_EDIT_IDX_ENTRY_DLG ".uno:IndexEntryDialog"
+#define CMD_FN_IDX_MARK_TO_IDX ".uno:IndexMarkToIndex"
+#define CMD_FN_POSTIT ".uno:InsertAnnotation"
+#define CMD_FN_INSERT_FLD_AUTHOR ".uno:InsertAuthorField"
+#define CMD_FN_INSERT_AUTH_ENTRY_DLG ".uno:InsertAuthoritiesEntry"
+#define CMD_FN_INSERT_BOOKMARK ".uno:InsertBookmark"
+#define CMD_FN_INSERT_BREAK_DLG ".uno:InsertBreak"
+#define CMD_FN_INSERT_CAPTION ".uno:InsertCaptionDialog"
+#define CMD_FN_INSERT_COLUMN_BREAK ".uno:InsertColumnBreak"
+#define CMD_FN_TABLE_INSERT_COL_DLG ".uno:InsertColumnDialog"
+#define CMD_FN_TABLE_INSERT_COL ".uno:InsertColumns"
+#define CMD_FN_INSERT_REGION ".uno:InsertSection"
+#define CMD_FN_INSERT_CTRL ".uno:InsertCtrl"
+#define CMD_FN_INSERT_FLD_DATE ".uno:InsertDateField"
+#define CMD_FN_INSERT_ENDNOTE ".uno:InsertEndnote"
+#define CMD_FN_ENVELOP ".uno:InsertEnvelope"
+#define CMD_FN_INSERT_FIELD ".uno:InsertField"
+#define CMD_FN_INSERT_FIELD_CTRL ".uno:InsertFieldCtrl"
+#define CMD_FN_INSERT_FOOTNOTE_DLG ".uno:InsertFootnoteDialog"
+#define CMD_FN_INSERT_FOOTNOTE ".uno:InsertFootnote"
+#define CMD_FN_EDIT_FORMULA ".uno:InsertFormula"
+#define CMD_FN_INSERT_FRAME ".uno:InsertFrame"
+#define CMD_FN_INSERT_FRAME_INTERACT ".uno:InsertFrameInteract"
+#define CMD_FN_INSERT_FRAME_INTERACT_NOCOL ".uno:InsertFrameInteractNoColumns"
+#define CMD_FN_INSERT_HRULER ".uno:InsertGraphicRuler"
+#define CMD_FN_INSERT_HYPERLINK ".uno:InsertHyperlinkDlg"
+#define CMD_FN_INSERT_IDX_ENTRY_DLG ".uno:InsertIndexesEntry"
+#define CMD_FN_INSERT_LINEBREAK ".uno:InsertLinebreak"
+#define CMD_FN_INSERT_MULTI_TOX ".uno:InsertMultiIndex"
+#define CMD_FN_NUM_BULLET_NONUM ".uno:InsertNeutralParagraph"
+#define CMD_FN_INSERT_OBJ_CTRL ".uno:InsertObjCtrl"
+#define CMD_FN_INSERT_OBJECT_DLG ".uno:InsertObjectDialog"
+#define CMD_FN_INSERT_SMA ".uno:InsertObjectStarMath"
+#define CMD_FN_INSERT_PAGEBREAK ".uno:InsertPagebreak"
+#define CMD_FN_INSERT_FLD_PGCOUNT ".uno:InsertPageCountField"
+#define CMD_FN_INSERT_PAGEFOOTER ".uno:InsertPageFooter"
+#define CMD_FN_INSERT_PAGEHEADER ".uno:InsertPageHeader"
+#define CMD_FN_INSERT_FLD_PGNUMBER ".uno:InsertPageNumberField"
+#define CMD_FN_INSERT_BREAK ".uno:InsertPara"
+#define CMD_FN_INSERT_REF_FIELD ".uno:InsertReferenceField"
+#define CMD_FN_TABLE_INSERT_ROW_DLG ".uno:InsertRowDialog"
+#define CMD_FN_TABLE_INSERT_ROW ".uno:InsertRows"
+#define CMD_FN_JAVAEDIT ".uno:InsertScript"
+#define CMD_FN_INSERT_TABLE ".uno:InsertTable"
+#define CMD_FN_INSERT_FLD_TIME ".uno:InsertTimeField"
+#define CMD_FN_INSERT_FLD_TITLE ".uno:InsertTitleField"
+#define CMD_FN_INSERT_FLD_TOPIC ".uno:InsertTopicField"
+#define CMD_FN_NUM_BULLET_NEXT ".uno:JumpDownThisLevel"
+#define CMD_FN_END_DOC_DIRECT ".uno:JumpToEndOfDoc"
+#define CMD_FN_TO_FOOTER ".uno:JumpToFooter"
+#define CMD_FN_FOOTNOTE_TO_ANCHOR ".uno:JumpToFootnoteOrAnchor"
+#define CMD_FN_TO_HEADER ".uno:JumpToHeader"
+#define CMD_FN_NEXT_BOOKMARK ".uno:JumpToNextBookmark"
+#define CMD_FN_NEXT_FOOTNOTE ".uno:JumpToNextFootnote"
+#define CMD_FN_CNTNT_TO_NEXT_FRAME ".uno:JumpToNextFrame"
+#define CMD_FN_GOTO_NEXT_REGION ".uno:JumpToNextRegion"
+#define CMD_FN_NEXT_TABLE ".uno:JumpToNextTable"
+#define CMD_FN_PREV_BOOKMARK ".uno:JumpToPrevBookmark"
+#define CMD_FN_PREV_FOOTNOTE ".uno:JumpToPrevFootnote"
+#define CMD_FN_GOTO_PREV_REGION ".uno:JumpToPrevRegion"
+#define CMD_FN_PREV_TABLE ".uno:JumpToPrevTable"
+#define CMD_FN_GOTO_REFERENCE ".uno:JumpToReference"
+#define CMD_FN_START_DOC_DIRECT ".uno:JumpToStartOfDoc"
+#define CMD_FN_NUM_BULLET_PREV ".uno:JumpUpThisLevel"
+#define CMD_FN_LINE_DOWN_SEL ".uno:LineDownSel"
+#define CMD_FN_LINE_NUMBERING_DLG ".uno:LineNumberingDialog"
+#define CMD_FN_LINE_UP_SEL ".uno:LineUpSel"
+#define CMD_FN_EDIT_LINK_DLG ".uno:LinkDialog"
+#define CMD_SID_TEMPLATE_LOAD ".uno:LoadStyles"
+#define CMD_FN_VIEW_MARKS ".uno:Marks"
+#define CMD_FN_TABLE_MERGE_CELLS ".uno:MergeCells"
+#define CMD_FN_QRY_MERGE ".uno:MergeDialog"
+#define CMD_FN_MAILMERGE_WIZARD ".uno:MailMergeWizard"
+#define CMD_FN_TABLE_MERGE_TABLE ".uno:MergeTable"
+#define CMD_FN_FORMAT_APPLY_HEAD1 ".uno:ApplyStyleHead1"
+#define CMD_FN_FORMAT_APPLY_HEAD2 ".uno:ApplyStyleHead2"
+#define CMD_FN_FORMAT_APPLY_HEAD3 ".uno:ApplyStyleHead3"
+#define CMD_FN_FORMAT_APPLY_DEFAULT ".uno:ApplyStyleDefault"
+#define CMD_FN_FORMAT_APPLY_TEXTBODY ".uno:ApplyStyleTextbody"
+#define CMD_FN_GRAPHIC_MIRROR_ON_EVEN_PAGES ".uno:MirrorGraphicOnEvenPages"
+#define CMD_FN_FRAME_MIRROR_ON_EVEN_PAGES ".uno:MirrorOnEvenPages"
+#define CMD_FN_NUM_BULLET_MOVEDOWN ".uno:MoveDown"
+#define CMD_FN_NUM_BULLET_OUTLINE_MOVEDOWN ".uno:MoveDownSubItems"
+#define CMD_FN_NUM_BULLET_MOVEUP ".uno:MoveUp"
+#define CMD_FN_NUM_BULLET_OUTLINE_MOVEUP ".uno:MoveUpSubItems"
+#define CMD_FN_TITLE_DESCRIPTION_SHAPE ".uno:ObjectTitleDescription"
+#define CMD_FN_NAME_SHAPE ".uno:NameGroup"
+#define CMD_FN_NEW_GLOBAL_DOC ".uno:NewGlobalDoc"
+#define CMD_FN_NEW_HTML_DOC ".uno:NewHtmlDoc"
+#define CMD_FN_NUMBER_FORMAT ".uno:NumberFormat"
+#define CMD_FN_NUMBER_CURRENCY ".uno:NumberFormatCurrency"
+#define CMD_FN_NUMBER_DATE ".uno:NumberFormatDate"
+#define CMD_FN_NUMBER_TWODEC ".uno:NumberFormatDecimal"
+#define CMD_FN_NUMBER_PERCENT ".uno:NumberFormatPercent"
+#define CMD_FN_NUMBER_SCIENTIFIC ".uno:NumberFormatScientific"
+#define CMD_FN_NUMBER_STANDARD ".uno:NumberFormatStandard"
+#define CMD_FN_NUMBER_TIME ".uno:NumberFormatTime"
+#define CMD_FN_NUMBER_NEWSTART ".uno:NumberingStart"
+#define CMD_FN_NUM_OR_NONUM ".uno:NumberOrNoNumber"
+#define CMD_FN_FRAME_DOWN ".uno:ObjectBackOne"
+#define CMD_FN_FRAME_UP ".uno:ObjectForwardOne"
+#define CMD_FN_AUTOFORMAT_AUTO ".uno:OnlineAutoFormat"
+#define CMD_FN_OPTIMIZE_TABLE ".uno:OptimizeTable"
+#define CMD_FN_FORMAT_PAGE_COLUMN_DLG ".uno:PageColumnDialog"
+#define CMD_FN_FORMAT_PAGE_DLG ".uno:PageDialog"
+#define CMD_FN_PAGEDOWN ".uno:PageDown"
+#define CMD_FN_PAGEDOWN_SEL ".uno:PageDownSel"
+#define CMD_FN_CHANGE_PAGENUM ".uno:PageOffset"
+#define CMD_FN_SET_PAGE_STYLE ".uno:PageStyleApply"
+#define CMD_FN_STAT_TEMPLATE ".uno:PageStyleName"
+#define CMD_FN_PAGEUP ".uno:PageUp"
+#define CMD_FN_PAGEUP_SEL ".uno:PageUpSel"
+#define CMD_FN_PREVIEW_ZOOM ".uno:PreviewZoom"
+#define CMD_FN_PRINT_LAYOUT ".uno:PrintLayout"
+#define CMD_FN_PRINT_PAGEPREVIEW ".uno:PrintPagePreView"
+#define CMD_FN_TABLE_SET_READ_ONLY_CELLS ".uno:Protect"
+#define CMD_FN_REDLINE_PROTECT ".uno:ProtectTraceChangeMode"
+#define CMD_FN_REFRESH_VIEW ".uno:RefreshView"
+#define CMD_FN_NUM_BULLET_OFF ".uno:RemoveBullets"
+#define CMD_FN_REMOVE_CUR_TOX ".uno:RemoveTableOf"
+#define CMD_FN_REPAGINATE ".uno:Repaginate"
+#define CMD_FN_REPEAT_SEARCH ".uno:RepeatSearch"
+#define CMD_FN_FORMAT_RESET ".uno:ResetAttributes"
+#define CMD_FN_TABLE_UNSET_READ_ONLY ".uno:ResetTableProtection"
+#define CMD_FN_RULER ".uno:Ruler"
+#define CMD_FN_QRY_INSERT ".uno:SbaInsert"
+#define CMD_FN_QRY_INSERT_FIELD ".uno:SbaInsertField"
+#define CMD_FN_QRY_MERGE_FIELD ".uno:SbaMerge"
+#define CMD_FN_SCROLL_NAVIGATION ".uno:ScrollNavigation"
+#define CMD_FN_SCROLL_NEXT_PREV ".uno:ScrollNextPrev"
+#define CMD_FN_TABLE_SELECT_ALL ".uno:SelectTable"
+#define CMD_FN_STAT_SELMODE ".uno:SelectionMode"
+#define CMD_FN_SELECT_PARA ".uno:SelectText"
+#define CMD_FN_SELECT_WORD ".uno:SelectWord"
+#define CMD_FN_ABSTRACT_STARIMPRESS ".uno:SendAbstractToStarImpress"
+#define CMD_FN_OUTLINE_TO_CLIPBOARD ".uno:SendOutlineToClipboard"
+#define CMD_FN_OUTLINE_TO_IMPRESS ".uno:SendOutlineToStarImpress"
+#define CMD_FN_TOOL_ANKER_AT_CHAR ".uno:SetAnchorAtChar"
+#define CMD_FN_TOOL_ANKER_CHAR ".uno:SetAnchorToChar"
+#define CMD_FN_TOOL_ANKER_FRAME ".uno:SetAnchorToFrame"
+#define CMD_FN_TOOL_ANKER_PAGE ".uno:SetAnchorToPage"
+#define CMD_FN_TOOL_ANKER_PARAGRAPH ".uno:SetAnchorToPara"
+#define CMD_FN_TABLE_SET_COL_WIDTH ".uno:SetColumnWidth"
+#define CMD_FN_SET_EXT_MODE ".uno:SetExtSelection"
+#define CMD_FN_SET_ADD_MODE ".uno:SetMultiSelection"
+#define CMD_FN_TABLE_ADJUST_CELLS ".uno:SetOptimalColumnWidth"
+#define CMD_FN_TABLE_OPTIMAL_HEIGHT ".uno:SetOptimalRowHeight"
+#define CMD_FN_TABLE_SET_ROW_HEIGHT ".uno:SetRowHeight"
+#define CMD_FN_SHADOWCURSOR ".uno:ShadowCursor"
+#define CMD_FN_SHIFT_BACKSPACE ".uno:ShiftBackspace"
+#define CMD_FN_SHOW_MULTIPLE_PAGES ".uno:ShowMultiplePages"
+#define CMD_FN_VIEW_NOTES ".uno:ShowAnnotations"
+#define CMD_FN_VIEW_HIDDEN_PARA ".uno:ShowHiddenParagraphs"
+#define CMD_FN_REDLINE_SHOW ".uno:ShowTrackedChanges"
+#define CMD_FN_SHOW_TWO_PAGES ".uno:ShowTwoPages"
+#define CMD_FN_SHOW_BOOKVIEW ".uno:ShowBookview"
+#define CMD_FN_SHRINK_FONT_SIZE ".uno:Shrink"
+#define CMD_FN_SORTING_DLG ".uno:SortDialog"
+#define CMD_FN_TABLE_SPLIT_CELLS ".uno:SplitCell"
+#define CMD_FN_TABLE_SPLIT_TABLE ".uno:SplitTable"
+#define CMD_FN_AUTO_CORRECT ".uno:StartAutoCorrect"
+#define CMD_FN_START_OF_DOCUMENT_SEL ".uno:StartOfDocumentSel"
+#define CMD_FN_START_OF_LINE_SEL ".uno:StartOfLineSel"
+#define CMD_FN_START_OF_PARA_SEL ".uno:StartOfParaSel"
+#define CMD_FN_STAT_BOOKMARK ".uno:StateBookmark"
+#define CMD_FN_STAT_PAGE ".uno:StatePageNumber"
+#define CMD_FN_STAT_ZOOM ".uno:StateZoom"
+#define CMD_FN_SET_SUB_SCRIPT ".uno:SubScript"
+#define CMD_FN_SET_SUPER_SCRIPT ".uno:SuperScript"
+#define CMD_FN_SBA_BRW_INSERT ".uno:SwBrwInsert"
+#define CMD_FN_SBA_BRW_MERGE ".uno:SwMailMerge"
+#define CMD_FN_SBA_BRW_UPDATE ".uno:SwUpdate"
+#define CMD_FN_SYNC_LABELS ".uno:SynchronizeLabelsDlg"
+#define CMD_FN_VIEW_TABLEGRID ".uno:TableBoundaries"
+#define CMD_FN_FORMAT_TABLE_DLG ".uno:TableDialog"
+#define CMD_FN_TABLE_MODE_FIX ".uno:TableModeFix"
+#define CMD_FN_TABLE_MODE_FIX_PROP ".uno:TableModeFixProp"
+#define CMD_FN_TABLE_MODE_VARIABLE ".uno:TableModeVariable"
+#define CMD_FN_NUM_FORMAT_TABLE_DLG ".uno:TableNumberFormatDialog"
+#define CMD_FN_SET_MODOPT_TBLNUMFMT ".uno:TableNumberRecognition"
+#define CMD_FN_DRAWTEXT_ATTR_DLG ".uno:TextAttributes"
+#define CMD_FN_DRAW_WRAP_DLG ".uno:TextWrap"
+#define CMD_FN_THESAURUS_DLG ".uno:ThesaurusDialog"
+#define CMD_FN_TOOL_ANKER ".uno:ToggleAnchorType"
+#define CMD_FN_TOOL_HIERARCHIE ".uno:ToggleObjectLayer"
+#define CMD_FN_UNDERLINE_DOUBLE ".uno:UnderlineDouble"
+#define CMD_FN_FRAME_UNCHAIN ".uno:UnhainFrames"
+#define CMD_FN_TABLE_UNSET_READ_ONLY_CELLS ".uno:UnsetCellsReadOnly"
+#define CMD_FN_UPDATE_ALL ".uno:UpdateAll"
+#define CMD_FN_UPDATE_TOX ".uno:UpdateAllIndexes"
+#define CMD_FN_UPDATE_ALL_LINKS ".uno:UpdateAllLinks"
+#define CMD_FN_UPDATE_CHARTS ".uno:UpdateCharts"
+#define CMD_FN_UPDATE_CUR_TOX ".uno:UpdateCurIndex"
+#define CMD_FN_UPDATE_FIELDS ".uno:UpdateFields"
+#define CMD_FN_UPDATE_INPUTFIELDS ".uno:UpdateInputFields"
+#define CMD_FN_VIEW_BOUNDS ".uno:ViewBounds"
+#define CMD_FN_VLINEAL ".uno:VRuler"
+#define CMD_FN_VSCROLLBAR ".uno:VScroll"
+#define CMD_FN_PREV_WORD_SEL ".uno:WordLeftSel"
+#define CMD_FN_NEXT_WORD_SEL ".uno:WordRightSel"
+#define CMD_FN_WRAP_ANCHOR_ONLY ".uno:WrapAnchorOnly"
+#define CMD_FN_FRAME_WRAP_CONTOUR ".uno:WrapContour"
+#define CMD_FN_FRAME_WRAP_IDEAL ".uno:WrapIdeal"
+#define CMD_FN_FRAME_WRAP_LEFT ".uno:WrapLeft"
+#define CMD_FN_FRAME_NOWRAP ".uno:WrapOff"
+#define CMD_FN_FRAME_WRAP ".uno:WrapOn"
+#define CMD_FN_FRAME_WRAP_RIGHT ".uno:WrapRight"
+#define CMD_FN_FRAME_WRAPTHRU ".uno:WrapThrough"
+#define CMD_FN_FRAME_WRAPTHRU_TRANSP ".uno:WrapThroughTransparent"
+#define CMD_FN_INSERT_STRING ".uno:InsertText"
+#define CMD_SID_ATTR_PARA_NUMRULE ".uno:NumRule"
+#define CMD_SID_ATTR_PARA_OUTLINE_LEVEL ".uno:OutlineLevel"
+#define CMD_FN_NUMBER_NEWSTART_AT ".uno:NumNewStartAt"
+#define CMD_FN_FORMAT_LINENUMBER ".uno:LineNumber"
+#define CMD_SID_ATTR_PARA_PAGENUM ".uno:PageNumber"
+#define CMD_SID_ATTR_PARA_REGISTER ".uno:RegisterTrue"
+#define CMD_FN_TO_FOOTNOTE_AREA ".uno:JumpToFootnoteArea"
+#define CMD_FN_TXTATR_INET ".uno:HyperlinkAttributes"
+#define CMD_FN_INSERT_GLOSSARY ".uno:InsertGlossary"
+#define CMD_FN_NEW_GLOSSARY ".uno:NewGlossary"
+#define CMD_FN_SET_ACT_GLOSSARY ".uno:SetActGlossaryGroup"
+#define CMD_FN_DELETE_BOOKMARK ".uno:DeleteBookmark"
+#define CMD_FN_DROP_TEXT ".uno:SetDropCapText"
+#define CMD_FN_DROP_CHAR_STYLE_NAME ".uno:SetDropCapCharStyleName"
+#define CMD_FN_READONLY_SELECTION_MODE ".uno:SelectTextMode"
+#define CMD_FN_INSERT_DBFIELD ".uno:InsertDBField"
+#define CMD_FN_GOTO_NEXT_CELL ".uno:JumpToNextCell"
+#define CMD_FN_GOTO_PREV_CELL ".uno:JumpToPrevCell"
+#define CMD_FN_INSERT_FIELD_DATA_ONLY ".uno:InsertFieldDataOnly"
+#define CMD_SID_ATTR_BRUSH_ROW ".uno:TableRowBackground"
+#define CMD_SID_ATTR_BRUSH_TABLE ".uno:TableBackground"
+#define CMD_FN_TABLE_ROW_SPLIT ".uno:RowSplit"
+#define CMD_FN_MAILMERGE_CHILDWINDOW ".uno:MailmergeChildWindow"
+#define CMD_FN_WORDCOUNT_DIALOG ".uno:WordCountDialog"
+#define CMD_FN_MAILMERGE_SENDMAIL_CHILDWINDOW ".uno:SendMailChildWindow"
+#define CMD_FN_TABLE_DELETE_TABLE ".uno:DeleteTable"
+#define CMD_FN_TABLE_SELECT_CELL ".uno:EntireCell"
+#define CMD_FN_CONVERT_TABLE_TO_TEXT ".uno:ConvertTableToText"
+#define CMD_FN_CONVERT_TEXT_TO_TABLE ".uno:ConvertTextToTable"
+#define CMD_FN_TABLE_HEADLINE_REPEAT ".uno:HeadingRowsRepeat"
+#define CMD_FN_TABLE_SORT_DIALOG ".uno:TableSort"
+#define CMD_FN_XFORMS_DESIGN_MODE ".uno:SwitchXFormsDesignMode"
+#define CMD_FN_REMOVE_DIRECT_CHAR_FORMATS ".uno:RemoveDirectCharFormats"
+#define CMD_FN_NUM_CONTINUE ".uno:ContinueNumbering"
+#define CMD_FN_SELECTION_MODE_DEFAULT ".uno:SelectionModeDefault"
+#define CMD_FN_DELETE_NOTE ".uno:DeleteNote"
+#define CMD_FN_REPLY ".uno:ReplyNote"
+#define CMD_FN_DELETE_COMMENT ".uno:DeleteComment"
+#define CMD_FN_DELETE_NOTE_AUTHOR ".uno:DeleteAuthor"
+#define CMD_FN_DELETE_ALL_NOTES ".uno:DeleteAllNotes"
+#define CMD_FN_HIDE_NOTE ".uno:HideNote"
+#define CMD_FN_HIDE_NOTE_AUTHOR ".uno:HideAuthor"
+#define CMD_SID_ATTR_VIEWLAYOUT ".uno:ViewLayout"
+#define CMD_FN_HIDE_ALL_NOTES ".uno:HideAllNotes"
+#define CMD_FN_SELECTION_MODE_BLOCK ".uno:SelectionModeBlock"
+#define CMD_FN_SPELL_GRAMMAR_DIALOG ".uno:SpellingAndGrammarDialog"
+#define CMD_FN_REDLINE_ACCEPT_DIRECT ".uno:AcceptTracedChange"
+#define CMD_FN_REDLINE_REJECT_DIRECT ".uno:RejectTracedChange"
+#define CMD_FN_REMOVE_HYPERLINK ".uno:RemoveHyperlink"
+#define CMD_FN_COPY_HYPERLINK_LOCATION ".uno:CopyHyperlinkLocation"
+
+#endif
diff --git a/sw/inc/swprtopt.hxx b/sw/inc/swprtopt.hxx deleted file mode 100644 index b2c83b8ab1..0000000000 --- a/sw/inc/swprtopt.hxx +++ /dev/null @@ -1,102 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _SWPRTOPT_HXX -#define _SWPRTOPT_HXX - -#include <tools/multisel.hxx> -#include <printdata.hxx> - -#include <set> -#include <map> -#include <vector> -#include <utility> - -#define POSTITS_NONE 0 -#define POSTITS_ONLY 1 -#define POSTITS_ENDDOC 2 -#define POSTITS_ENDPAGE 3 - - -class PrintDialog; -class SfxPrinter; - - -//////////////////////////////////////////////////////////// - - -class SwPrtOptions : public SwPrintData -{ - USHORT nJobNo; - String sJobName; - -public: - MultiSelection aMulti; - Point aOffset; - ULONG nMergeCnt; // Anzahl der Serienbriefe - ULONG nMergeAct; // Aktueller Serienbriefnr. - USHORT nCopyCount; - - BOOL bCollate, - bPrintSelection, // Markierung drucken - bJobStartet; - - SwPrtOptions( const String& rJobName ) : - nJobNo( 1 ), - sJobName( rJobName ), - aOffset( Point(0,0) ), - nMergeCnt( 0 ), - nMergeAct( 0 ), - bCollate(FALSE), - bPrintSelection (FALSE), - bJobStartet(FALSE) - {} - - const String& MakeNextJobName(); // steht in vprint.cxx - const String& GetJobName() const { return sJobName; } - -#if defined(TCPP) - // seit neuestem (SV 223) kann der keinen mehr generieren - inline SwPrtOptions(const SwPrtOptions& rNew) {*this = rNew;} -#endif - - - SwPrtOptions& operator=(const SwPrintData& rData) - { - SwPrintData::operator=(rData); - return *this; - } - - // get print options - void MakeOptions( BOOL bWeb ); -}; - - -//////////////////////////////////////////////////////////// - -#endif //_SWPRTOPT_HXX - diff --git a/sw/inc/txtfld.hxx b/sw/inc/txtfld.hxx index 6ba1e25966..262f716b3c 100644 --- a/sw/inc/txtfld.hxx +++ b/sw/inc/txtfld.hxx @@ -41,8 +41,7 @@ class SwTxtFld : public SwTxtAttr SwTxtNode * m_pTxtNode; public: - SwTxtFld(SwFmtFld & rAttr, xub_StrLen const nStart, - bool const bInClipboard); + SwTxtFld(SwFmtFld & rAttr, xub_StrLen const nStart); virtual ~SwTxtFld(); void CopyFld( SwTxtFld *pDest ) const; diff --git a/sw/inc/unoframe.hxx b/sw/inc/unoframe.hxx index 000703870c..5406c9b2c2 100644 --- a/sw/inc/unoframe.hxx +++ b/sw/inc/unoframe.hxx @@ -161,7 +161,7 @@ public: void ResetDescriptor(); //copy text from a given source PaM void SetSelection(SwPaM& rCopySource); - static SdrObject *GetOrCreateSdrObject( SwFlyFrmFmt *pFmt ); + static SW_DLLPUBLIC SdrObject *GetOrCreateSdrObject( SwFlyFrmFmt *pFmt ); }; /*-----------------20.02.98 11:28------------------- diff --git a/sw/inc/unotbl.hxx b/sw/inc/unotbl.hxx index ab6f6c60d7..d0b4f3043d 100644 --- a/sw/inc/unotbl.hxx +++ b/sw/inc/unotbl.hxx @@ -421,8 +421,6 @@ public: virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); } - - static SwXTextTable* GetImplementation(::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> xRef ); }; /* -----------------27.04.98 16:41------------------- diff --git a/sw/inc/unotxdoc.hxx b/sw/inc/unotxdoc.hxx index e9c1e38b76..bf3cd0bd49 100755..100644 --- a/sw/inc/unotxdoc.hxx +++ b/sw/inc/unotxdoc.hxx @@ -129,7 +129,6 @@ class SfxViewFrame; class SwPrintUIOptions; class SwPrintData; class SwRenderData; -class SwPrtOptions; class SwWrtShell; @@ -605,9 +604,9 @@ class SwViewOptionAdjust_Impl public: SwViewOptionAdjust_Impl( SwWrtShell& rSh, const SwViewOption &rViewOptions ); ~SwViewOptionAdjust_Impl(); - - void AdjustViewOptions( const SwPrtOptions *pPrtOptions ); - + + void AdjustViewOptions( SwPrintData const*const pPrtOptions ); + bool checkShell( const SwWrtShell& rCompare ) const { return &rCompare == &m_rShell; } }; diff --git a/sw/inc/usrfld.hxx b/sw/inc/usrfld.hxx index 0af250bf61..e4e4f90485 100644 --- a/sw/inc/usrfld.hxx +++ b/sw/inc/usrfld.hxx @@ -24,8 +24,8 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _USRFLD_HXX -#define _USRFLD_HXX +#ifndef SW_USRFLD_HXX +#define SW_USRFLD_HXX #include "swdllapi.h" #include "fldbas.hxx" @@ -106,6 +106,9 @@ class SW_DLLPUBLIC SwUserField : public SwValueField { USHORT nSubType; + virtual String Expand() const; + virtual SwField* Copy() const; + public: SwUserField(SwUserFieldType*, USHORT nSub = 0, sal_uInt32 nFmt = 0); @@ -115,9 +118,7 @@ public: virtual double GetValue() const; virtual void SetValue( const double& rVal ); - virtual String Expand() const; - virtual SwField* Copy() const; - virtual String GetCntnt(BOOL bName = FALSE) const; + virtual String GetFieldName() const; // Name kann nicht geaendert werden virtual const String& GetPar1() const; @@ -129,4 +130,4 @@ public: virtual BOOL PutValue( const com::sun::star::uno::Any& rVal, USHORT nWhichId ); }; -#endif // _USRFLD_HXX +#endif // SW_USRFLD_HXX diff --git a/sw/inc/viewsh.hxx b/sw/inc/viewsh.hxx index c89351b614..752644ad10 100644 --- a/sw/inc/viewsh.hxx +++ b/sw/inc/viewsh.hxx @@ -24,8 +24,9 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _VIEWSH_HXX -#define _VIEWSH_HXX +#ifndef SW_VIEWSH_HXX +#define SW_VIEWSH_HXX + #include <com/sun/star/embed/XClassifiedObject.hpp> #include <com/sun/star/embed/XEmbeddedObject.hpp> #include <tools/rtti.hxx> @@ -67,7 +68,6 @@ class SfxItemPool; class SfxViewShell; class SwViewOption; class SwViewImp; -class SwPrtOptions; class SwPrintData; class SwPagePreViewPrtData; class Window; @@ -357,7 +357,8 @@ public: // printing of one page. // bIsPDFExport == true is: do PDF Export (no printing!) - sal_Bool PrintOrPDFExport( OutputDevice *pOutDev, const SwPrtOptions &rPrintData, + sal_Bool PrintOrPDFExport( OutputDevice *pOutDev, + SwPrintData const& rPrintData, sal_Int32 nRenderer /* offset in vector of pages to print */ ); // printing of one brochure page @@ -368,8 +369,7 @@ public: static void PrtOle2( SwDoc *pDoc, const SwViewOption *pOpt, const SwPrintData& rOptions, OutputDevice* pOleOut, const Rectangle& rRect ); - // creates temporary doc with selected text for PDF export - SwDoc * CreatePrtDoc( SfxObjectShellRef& ); + /// fill temporary doc with selected text for Print or PDF export SwDoc * FillPrtDoc( SwDoc* pPrtDoc, const SfxPrinter* pPrt ); //Wird intern fuer die Shell gerufen die Druckt. Formatiert die Seiten. @@ -467,7 +467,7 @@ public: input parameter - constant reference to print options, to which the view option will be adjusted. */ - void AdjustOptionsForPagePreview( const SwPrtOptions &_rPrintOptions ); + void AdjustOptionsForPagePreview( SwPrintData const& rPrintOptions ); sal_Bool IsViewLocked() const { return bViewLocked; } void LockView( sal_Bool b ) { bViewLocked = b; } @@ -633,4 +633,4 @@ inline const SfxItemPool& ViewShell::GetAttrPool() const -#endif //_VIEWSH_HXX +#endif // SW_VIEWSH_HXX diff --git a/sw/qa/complex/writer/LoadSaveTest.java b/sw/qa/complex/writer/LoadSaveTest.java new file mode 100644 index 0000000000..a1600488c7 --- /dev/null +++ b/sw/qa/complex/writer/LoadSaveTest.java @@ -0,0 +1,254 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +package complex.writer; + +import complexlib.ComplexTestCase; +import com.sun.star.uno.UnoRuntime; +import com.sun.star.uno.AnyConverter; +import com.sun.star.uno.XComponentContext; +import com.sun.star.lang.WrappedTargetException; +import com.sun.star.lang.WrappedTargetRuntimeException; +import com.sun.star.lang.EventObject; +import com.sun.star.lang.XMultiServiceFactory; +import com.sun.star.lang.XComponent; +import com.sun.star.lang.XServiceInfo; +import com.sun.star.beans.XPropertySet; +import com.sun.star.beans.PropertyValue; +import com.sun.star.beans.Pair; +import com.sun.star.util.XCloseable; +import com.sun.star.frame.XStorable; +import com.sun.star.document.DocumentEvent; +import com.sun.star.document.XDocumentEventBroadcaster; +import com.sun.star.document.XDocumentEventListener; +import com.sun.star.text.XTextDocument; + +import java.util.List; +import java.util.ArrayList; +import java.io.File; + +/** + * a small program to load documents from one directory (recursively) + * and store them in another, implemented as a complex test. + */ +public class LoadSaveTest extends ComplexTestCase +{ + private XMultiServiceFactory m_xMSF = null; + private XComponentContext m_xContext = null; + private XDocumentEventBroadcaster m_xGEB = null; + private String m_TmpDir = null; + + private String m_fileURL = "file://"; + // these should be parameters or something? + private String m_SourceDir = "FIXME"; + private String m_TargetDir = "/tmp/out"; + + public String[] getTestMethodNames() { + return new String[] { "testLoadStore" }; + } + + public void before() throws Exception + { + m_xMSF = (XMultiServiceFactory) param.getMSF(); + XPropertySet xPropertySet = (XPropertySet) + UnoRuntime.queryInterface(XPropertySet.class, m_xMSF); + Object defaultCtx = xPropertySet.getPropertyValue("DefaultContext"); + m_xContext = (XComponentContext) + UnoRuntime.queryInterface(XComponentContext.class, defaultCtx); + assure("could not get component context.", m_xContext != null); + Object oGEB = m_xMSF.createInstance( + "com.sun.star.frame.GlobalEventBroadcaster"); + m_xGEB = (XDocumentEventBroadcaster) + UnoRuntime.queryInterface(XDocumentEventBroadcaster.class, oGEB); + assure("could not get global event broadcaster.", m_xGEB != null); + m_TmpDir = util.utils.getOfficeTemp/*Dir*/(m_xMSF); + log.println("tempdir: " + m_TmpDir); + log.println("sourcedir: " + m_SourceDir); + log.println("targetdir: " + m_TargetDir); + } + + /* + public void after() + { + } + */ + + public void testLoadStore() throws Exception + { + Pair<List<String>, List<String>> dirsFiles = + getDirAndFileNames(m_SourceDir); + makeDirs(m_TargetDir, dirsFiles.First); + for (String fileName : dirsFiles.Second) + { + try { + testDoc(fileName); + } catch (Exception e) { + report(e); + } + } + } + + public void testDoc(String fileName) throws Exception + { + XComponent xDoc = null; + EventListener xListener = new EventListener(); + try { + m_xGEB.addDocumentEventListener(xListener); + + log.println("Loading document: " + fileName + " ..."); + + PropertyValue[] loadProps = new PropertyValue[1]; + loadProps[0] = new PropertyValue(); + loadProps[0].Name = "ReadOnly"; + loadProps[0].Value = new Boolean(true); + + String sourceFile = m_fileURL + m_SourceDir + fileName; + + xDoc = util.DesktopTools.loadDoc(m_xMSF, sourceFile, loadProps); + + log.println("... done"); + + { + // apparently OnLayoutFinished is not sent for every doc??? + // 10 seconds is evidently not enough for large documents + int time = 0; + while (!xListener.IsLayoutFinished() && (time < 30000)) { + Thread.sleep(100); + time += 100; + } + if (time >= 30000) { + log.println("timeout: no OnLayoutFinished received!"); + } + } + + log.println("Storing document: " + fileName + " ..."); + + XStorable xStor = (XStorable) UnoRuntime.queryInterface( + XStorable.class, xDoc); + + String targetFile = m_fileURL + m_TargetDir + fileName; + + xStor.storeToURL(targetFile, new PropertyValue[0]); + + log.println("... done"); + + } finally { + if (xDoc != null) { + util.DesktopTools.closeDoc(xDoc); + } + if (xListener != null) { + m_xGEB.removeDocumentEventListener(xListener); + } + } + } + + class EventListener implements XDocumentEventListener + { + boolean m_isLayoutFinished = false; + boolean IsLayoutFinished() { return m_isLayoutFinished; } + public void documentEventOccured(DocumentEvent Event) + { +// log.println("event: " + Event.EventName); + if ("OnLayoutFinished".equals(Event.EventName)) + { + // we only have one doc at any time, so no need to check + m_isLayoutFinished = true; +// log.println("received OnLayoutFinished"); + } + } + public void disposing(EventObject Event) { } + } + + void report2(Exception e) + { + if (e instanceof WrappedTargetException) + { + log.println("Cause:"); + Exception cause = (Exception) + (((WrappedTargetException)e).TargetException); + log.println(cause.toString()); + report2(cause); + } else if (e instanceof WrappedTargetRuntimeException) { + log.println("Cause:"); + Exception cause = (Exception) + (((WrappedTargetRuntimeException)e).TargetException); + log.println(cause.toString()); + report2(cause); + } + } + + void report(Exception e) { + log.println("Exception occurred:"); + log.println(e.toString()); + e.printStackTrace((java.io.PrintWriter) log); + report2(e); +// failed(); + } + + Pair<List<String>, List<String>> getDirAndFileNames(String dir) + { + List<String> dirs = new ArrayList<String>(); + List<String> files = new ArrayList<String>(); + File root = new File(dir); + getDirAndFileNames(root, "", dirs, files); + return new Pair<List<String>, List<String>>(dirs, files); + } + + void getDirAndFileNames(File file, String relPath, + List<String> dirs, List<String> files) + { + assure("does not exist: " + relPath, file.exists()); + if (file.isDirectory()) { + dirs.add(relPath); + File[] subfiles = file.listFiles(); + for (File subfile : subfiles) + { + String subfileName = + relPath + File.separator + subfile.getName(); + getDirAndFileNames(subfile, subfileName, dirs, files); + } + } + else if (file.isFile()) { + if (file.getName().endsWith(".odt")) { + files.add(relPath); + } + } + } + + void makeDirs(String target, List<String> dirs) throws Exception + { + for (String dir : dirs) { + File f = new File(target + dir); + if (!f.exists()) { + if (!f.mkdir()) { + throw new Exception("cannot mkdir: " + target + dir); + } + } + } + } +} + diff --git a/sw/qa/core/makefile.mk b/sw/qa/core/makefile.mk index 00ebfda884..08d009ced6 100644 --- a/sw/qa/core/makefile.mk +++ b/sw/qa/core/makefile.mk @@ -28,8 +28,6 @@ PRJ=..$/.. PRJNAME=sw TARGET=test-bigptrarray -# this is removed at the moment because we need some enhancements -# TESTDIR=TRUE ENABLE_EXCEPTIONS=TRUE diff --git a/sw/qa/unoapi/knownissues.xcl b/sw/qa/unoapi/knownissues.xcl index ea5bf843f3..99d7c7f128 100644 --- a/sw/qa/unoapi/knownissues.xcl +++ b/sw/qa/unoapi/knownissues.xcl @@ -21,9 +21,6 @@ sw.XMLStylesImporter::com::sun::star::xml::sax::XDocumentHandler ### i23422 ### sw.SwXTextViewCursor::com::sun::star::beans::XMultiPropertyStates -### i112111 ### -sw.SwXViewSettings::com::sun::star::beans::XPropertySet - ### i23623 ### sw.SwXStyleFamily::com::sun::star::container::XNameReplace diff --git a/sw/sdi/_annotsh.sdi b/sw/sdi/_annotsh.sdi index 8b4fc8a502..94fed56d99 100755 --- a/sw/sdi/_annotsh.sdi +++ b/sw/sdi/_annotsh.sdi @@ -34,12 +34,6 @@ interface _Annotation StateMethod = GetNoteState ; ] - FN_DELETE_NOTE - [ - ExecMethod = NoteExec ; - StateMethod = GetNoteState ; - ] - FN_DELETE_NOTE_AUTHOR [ ExecMethod = NoteExec ; diff --git a/sw/sdi/_docsh.sdi b/sw/sdi/_docsh.sdi index 4de71ca760..84dbad5152 100644 --- a/sw/sdi/_docsh.sdi +++ b/sw/sdi/_docsh.sdi @@ -132,6 +132,11 @@ interface BaseTextDocument ExecMethod = Execute; StateMethod = GetState; ] + SID_MAIL_PREPAREEXPORT + [ + ExecMethod = Execute ; + StateMethod = GetState; + ] } diff --git a/sw/sdi/_textsh.sdi b/sw/sdi/_textsh.sdi index a895cc5307..519215c36e 100644 --- a/sw/sdi/_textsh.sdi +++ b/sw/sdi/_textsh.sdi @@ -325,12 +325,6 @@ interface BaseText StateMethod = StateInsert ; DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; ] - SID_INSERT_APPLET // status(final|play) - [ - ExecMethod = ExecInsert ; - StateMethod = StateInsert ; - DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; - ] FN_INSERT_TABLE // status(final|play) [ ExecMethod = ExecInsert ; @@ -920,7 +914,7 @@ interface BaseText ExecMethod = ExecField ; StateMethod = StateField; ] - FN_DELETE_NOTE + FN_DELETE_COMMENT [ ExecMethod = ExecField ; StateMethod = StateField; diff --git a/sw/sdi/swriter.sdi b/sw/sdi/swriter.sdi index aae7ec7a01..64f52343cb 100755..100644 --- a/sw/sdi/swriter.sdi +++ b/sw/sdi/swriter.sdi @@ -9916,32 +9916,7 @@ SfxBoolItem SelectionModeDefault FN_SELECTION_MODE_DEFAULT GroupId = GID_EDIT; ] -//-------------------------------------------------------------------------- -SfxVoidItem DeleteNote FN_DELETE_NOTE -() -[ - /* flags: */ - AutoUpdate = FALSE, - Cachable = Cachable, - FastCall = FALSE, - HasCoreId = FALSE, - HasDialog = FALSE, - ReadOnlyDoc = FALSE, - Toggle = FALSE, - Container = FALSE, - RecordAbsolute = FALSE, - RecordPerSet; - Synchron; - - /* config: */ - AccelConfig = TRUE, - MenuConfig = TRUE, - StatusBarConfig = FALSE, - ToolBoxConfig = TRUE, - GroupId = GID_EDIT; -] - -SfxVoidItem ReplyNote FN_REPLY +SfxVoidItem ReplyComment FN_REPLY () [ /* flags: */ diff --git a/sw/source/core/bastyp/calc.cxx b/sw/source/core/bastyp/calc.cxx index 728b4c63d3..1d71600a24 100644 --- a/sw/source/core/bastyp/calc.cxx +++ b/sw/source/core/bastyp/calc.cxx @@ -38,6 +38,7 @@ // #include <cmath> #include <cfloat> #include <hintids.hxx> +#include <osl/diagnose.hxx> #include <rtl/math.hxx> #include <editeng/langitem.hxx> #include <com/sun/star/lang/XMultiServiceFactory.hpp> @@ -270,7 +271,7 @@ SwCalc::SwCalc( SwDoc& rD ) : aErrExpr( aEmptyStr, SwSbxValue(), 0 ), rDoc( rD ), - pLclData( &SvtSysLocale().GetLocaleData() ), + pLclData( m_aSysLocale.GetLocaleDataPtr() ), pCharClass( &GetAppCharClass() ), nListPor( 0 ), eError( CALC_NOERR ) @@ -419,7 +420,7 @@ SwCalc::~SwCalc() { for( USHORT n = 0; n < TBLSZ; ++n ) delete VarTable[n]; - if( pLclData != &SvtSysLocale().GetLocaleData() ) + if( pLclData != m_aSysLocale.GetLocaleDataPtr() ) delete pLclData; if( pCharClass != &GetAppCharClass() ) delete pCharClass; @@ -1608,63 +1609,64 @@ String SwCalc::GetDBName(const String& rName) //------------------------------------------------------------------------------ -/****************************************************************************** - * Methode : BOOL SwCalc::Str2Double( double& ) - * Beschreibung: - * Erstellt : OK 07.06.94 12:56 - * Aenderung : JP 27.10.98 - ******************************************************************************/ -BOOL SwCalc::Str2Double( const String& rCommand, xub_StrLen& rCommandPos, - double& rVal, const LocaleDataWrapper* pLclData ) +namespace { - const LocaleDataWrapper* pLclD = pLclData; - if( !pLclD ) - pLclD = &SvtSysLocale().GetLocaleData(); +static bool +lcl_Str2Double( const String& rCommand, xub_StrLen& rCommandPos, double& rVal, + const LocaleDataWrapper* const pLclData ) +{ + OSL_ASSERT(pLclData); const xub_Unicode nCurrCmdPos = rCommandPos; rtl_math_ConversionStatus eStatus; const sal_Unicode* pEnd; rVal = rtl_math_uStringToDouble( rCommand.GetBuffer() + rCommandPos, rCommand.GetBuffer() + rCommand.Len(), - pLclD->getNumDecimalSep().GetChar(0), - pLclD->getNumThousandSep().GetChar(0), + pLclData->getNumDecimalSep().GetChar(0), + pLclData->getNumThousandSep().GetChar(0), &eStatus, &pEnd ); rCommandPos = static_cast<xub_StrLen>(pEnd - rCommand.GetBuffer()); - if( !pLclData && pLclD != &SvtSysLocale().GetLocaleData() ) - delete (LocaleDataWrapper*)pLclD; - return rtl_math_ConversionStatus_Ok == eStatus && nCurrCmdPos != rCommandPos; } -BOOL SwCalc::Str2Double( const String& rCommand, xub_StrLen& rCommandPos, - double& rVal, SwDoc* pDoc ) +} + +/****************************************************************************** + * Methode : BOOL SwCalc::Str2Double( double& ) + * Beschreibung: + * Erstellt : OK 07.06.94 12:56 + * Aenderung : JP 27.10.98 + ******************************************************************************/ +bool SwCalc::Str2Double( const String& rCommand, xub_StrLen& rCommandPos, + double& rVal, const LocaleDataWrapper* const pLclData ) +{ + const SvtSysLocale aSysLocale; + return lcl_Str2Double( rCommand, rCommandPos, rVal, + pLclData ? pLclData : aSysLocale.GetLocaleDataPtr() ); +} + +bool SwCalc::Str2Double( const String& rCommand, xub_StrLen& rCommandPos, + double& rVal, SwDoc* const pDoc ) { - const LocaleDataWrapper* pLclD = &SvtSysLocale().GetLocaleData(); + const SvtSysLocale aSysLocale; + ::std::auto_ptr<const LocaleDataWrapper> pLclD; if( pDoc ) { - LanguageType eLang = GetDocAppScriptLang( *pDoc ); - if( eLang != SvxLocaleToLanguage( pLclD->getLocale() ) ) - pLclD = new LocaleDataWrapper( + if (eLang != + SvxLocaleToLanguage(aSysLocale.GetLocaleData().getLocale())) + { + pLclD.reset( new LocaleDataWrapper( ::comphelper::getProcessServiceFactory(), - SvxCreateLocale( eLang ) ); + SvxCreateLocale( eLang ) ) ); + } } - const xub_Unicode nCurrCmdPos = rCommandPos; - rtl_math_ConversionStatus eStatus; - const sal_Unicode* pEnd; - rVal = rtl_math_uStringToDouble( rCommand.GetBuffer() + rCommandPos, - rCommand.GetBuffer() + rCommand.Len(), - pLclD->getNumDecimalSep().GetChar(0), - pLclD->getNumThousandSep().GetChar(0), - &eStatus, &pEnd ); - rCommandPos = static_cast<xub_StrLen>(pEnd - rCommand.GetBuffer()); - - if( pLclD != &SvtSysLocale().GetLocaleData() ) - delete (LocaleDataWrapper*)pLclD; + bool const bRet = lcl_Str2Double( rCommand, rCommandPos, rVal, + (pLclD.get()) ? pLclD.get() : aSysLocale.GetLocaleDataPtr() ); - return rtl_math_ConversionStatus_Ok == eStatus && nCurrCmdPos != rCommandPos; + return bRet; } //------------------------------------------------------------------------------ diff --git a/sw/source/core/crsr/callnk.cxx b/sw/source/core/crsr/callnk.cxx index 9e37e408e3..e048f47d85 100644 --- a/sw/source/core/crsr/callnk.cxx +++ b/sw/source/core/crsr/callnk.cxx @@ -196,6 +196,10 @@ SwCallLink::~SwCallLink() { const SwNodeIndex* pIndex = pFlyFrm->GetFmt()->GetCntnt().GetCntntIdx(); ASSERT( pIndex, "Fly ohne Cntnt" ); + + if (!pIndex) + return; + const SwNode& rStNd = pIndex->GetNode(); if( rStNd.EndOfSectionNode()->StartOfSectionIndex() > nNode || diff --git a/sw/source/core/crsr/crstrvl.cxx b/sw/source/core/crsr/crstrvl.cxx index fce9273ef3..f09ce0eb26 100644 --- a/sw/source/core/crsr/crstrvl.cxx +++ b/sw/source/core/crsr/crstrvl.cxx @@ -484,10 +484,10 @@ BOOL SwCrsrShell::GotoNxtPrvTblFormula( BOOL bNext, BOOL bOnlyErrors ) { const SfxPoolItem* pItem; const SwTableBox* pTBox; - USHORT n, nMaxItems = GetDoc()->GetAttrPool().GetItemCount( RES_BOXATR_FORMULA ); + sal_uInt32 n, nMaxItems = GetDoc()->GetAttrPool().GetItemCount2( RES_BOXATR_FORMULA ); for( n = 0; n < nMaxItems; ++n ) - if( 0 != (pItem = GetDoc()->GetAttrPool().GetItem( + if( 0 != (pItem = GetDoc()->GetAttrPool().GetItem2( RES_BOXATR_FORMULA, n ) ) && 0 != (pTBox = ((SwTblBoxFormula*)pItem)->GetTableBox() ) && pTBox->GetSttNd() && @@ -556,10 +556,10 @@ BOOL SwCrsrShell::GotoNxtPrvTOXMark( BOOL bNext ) const SwCntntFrm* pCFrm; const SwTxtNode* pTxtNd; const SwTxtTOXMark* pTxtTOX; - USHORT n, nMaxItems = GetDoc()->GetAttrPool().GetItemCount( RES_TXTATR_TOXMARK ); + sal_uInt32 n, nMaxItems = GetDoc()->GetAttrPool().GetItemCount2( RES_TXTATR_TOXMARK ); for( n = 0; n < nMaxItems; ++n ) - if( 0 != (pItem = GetDoc()->GetAttrPool().GetItem( + if( 0 != (pItem = GetDoc()->GetAttrPool().GetItem2( RES_TXTATR_TOXMARK, n ) ) && 0 != (pTxtTOX = ((SwTOXMark*)pItem)->GetTxtTOXMark() ) && ( pTxtNd = &pTxtTOX->GetTxtNode())->GetNodes().IsDocNodes() && @@ -717,8 +717,7 @@ BOOL SwCrsrShell::MoveFldType( const SwFieldType* pFldType, BOOL bNext, SwFmtFld* pFmtFld = new SwFmtFld( SwDateTimeField( (SwDateTimeFieldType*)pDoc->GetSysFldType( RES_DATETIMEFLD ) ) ); - pTxtFld = new SwTxtFld( *pFmtFld, rPos.nContent.GetIndex(), - pDoc->IsClipBoard() ); + pTxtFld = new SwTxtFld( *pFmtFld, rPos.nContent.GetIndex() ); pTxtFld->ChgTxtNode( pTNd ); } diff --git a/sw/source/core/crsr/findtxt.cxx b/sw/source/core/crsr/findtxt.cxx index 814fd21bbf..6c3404e4de 100644 --- a/sw/source/core/crsr/findtxt.cxx +++ b/sw/source/core/crsr/findtxt.cxx @@ -143,8 +143,7 @@ String& lcl_CleanStr( const SwTxtNode& rNd, xub_StrLen nStart, // hinterher alle am Stringende (koenten ja 'normale' 0x7f drinstehen BOOL bEmpty = RES_TXTATR_FIELD != pHt->Which() || !(static_cast<SwTxtFld const*>(pHt) - ->GetFld().GetFld()->ExpandField( - rNd.GetDoc()->IsClipBoard()).Len()); + ->GetFld().GetFld()->ExpandField(true).Len()); if ( bEmpty && nStart == nAkt ) { rArr.Insert( nAkt, rArr.Count() ); diff --git a/sw/source/core/doc/doc.cxx b/sw/source/core/doc/doc.cxx index 291b845e5b..eb2f4b417f 100644 --- a/sw/source/core/doc/doc.cxx +++ b/sw/source/core/doc/doc.cxx @@ -100,7 +100,6 @@ #include <fldupde.hxx> #include <swbaslnk.hxx> #include <printdata.hxx> -#include <swprtopt.hxx> #include <cmdid.h> // fuer den dflt - Printer in SetJob #include <statstr.hrc> // StatLine-String #include <comcore.hrc> @@ -207,6 +206,7 @@ bool SwDoc::get(/*[in]*/ DocumentSettingId id) const case PURGE_OLE: return mbPurgeOLE; case KERN_ASIAN_PUNCTUATION: return mbKernAsianPunctuation; case DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT: return mbDoNotResetParaAttrsForNumFont; + case MATH_BASELINE_ALIGNMENT: return mbMathBaselineAlignment; default: ASSERT(false, "Invalid setting id"); } @@ -305,7 +305,7 @@ void SwDoc::set(/*[in]*/ DocumentSettingId id, /*[in]*/ bool value) case UNIX_FORCE_ZERO_EXT_LEADING: mbUnixForceZeroExtLeading = value; break; - case PROTECT_FORM: + case PROTECT_FORM: mbProtectForm = value; break; @@ -346,6 +346,9 @@ void SwDoc::set(/*[in]*/ DocumentSettingId id, /*[in]*/ bool value) case DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT: mbDoNotResetParaAttrsForNumFont = value; break; + case MATH_BASELINE_ALIGNMENT: + mbMathBaselineAlignment = value; + break; default: ASSERT(false, "Invalid setting id"); } @@ -631,6 +634,8 @@ void SwDoc::setJobsetup(/*[in]*/ const JobSetup &rJobSetup ) SwPrintData* SwDoc::getPrintData() const { + if(!pPrtData) + ((SwDoc*)this)->pPrtData = new SwPrintData; return pPrtData; } @@ -1843,10 +1848,10 @@ void SwDoc::DocInfoChgd( ) const SwFmtRefMark* SwDoc::GetRefMark( const String& rName ) const { const SfxPoolItem* pItem; - USHORT nMaxItems = GetAttrPool().GetItemCount( RES_TXTATR_REFMARK ); - for( USHORT n = 0; n < nMaxItems; ++n ) + sal_uInt32 nMaxItems = GetAttrPool().GetItemCount2( RES_TXTATR_REFMARK ); + for( sal_uInt32 n = 0; n < nMaxItems; ++n ) { - if( 0 == (pItem = GetAttrPool().GetItem( RES_TXTATR_REFMARK, n ) )) + if( 0 == (pItem = GetAttrPool().GetItem2( RES_TXTATR_REFMARK, n ) )) continue; const SwFmtRefMark* pFmtRef = (SwFmtRefMark*)pItem; @@ -1865,10 +1870,10 @@ const SwFmtRefMark* SwDoc::GetRefMark( USHORT nIndex ) const const SwTxtRefMark* pTxtRef; const SwFmtRefMark* pRet = 0; - USHORT nMaxItems = GetAttrPool().GetItemCount( RES_TXTATR_REFMARK ); - USHORT nCount = 0; - for( USHORT n = 0; n < nMaxItems; ++n ) - if( 0 != (pItem = GetAttrPool().GetItem( RES_TXTATR_REFMARK, n )) && + sal_uInt32 nMaxItems = GetAttrPool().GetItemCount2( RES_TXTATR_REFMARK ); + sal_uInt32 nCount = 0; + for( sal_uInt32 n = 0; n < nMaxItems; ++n ) + if( 0 != (pItem = GetAttrPool().GetItem2( RES_TXTATR_REFMARK, n )) && 0 != (pTxtRef = ((SwFmtRefMark*)pItem)->GetTxtRefMark()) && &pTxtRef->GetTxtNode().GetNodes() == &GetNodes() ) { @@ -1891,10 +1896,10 @@ USHORT SwDoc::GetRefMarks( SvStringsDtor* pNames ) const const SfxPoolItem* pItem; const SwTxtRefMark* pTxtRef; - USHORT nMaxItems = GetAttrPool().GetItemCount( RES_TXTATR_REFMARK ); - USHORT nCount = 0; - for( USHORT n = 0; n < nMaxItems; ++n ) - if( 0 != (pItem = GetAttrPool().GetItem( RES_TXTATR_REFMARK, n )) && + sal_uInt32 nMaxItems = GetAttrPool().GetItemCount2( RES_TXTATR_REFMARK ); + sal_uInt32 nCount = 0; + for( sal_uInt32 n = 0; n < nMaxItems; ++n ) + if( 0 != (pItem = GetAttrPool().GetItem2( RES_TXTATR_REFMARK, n )) && 0 != (pTxtRef = ((SwFmtRefMark*)pItem)->GetTxtRefMark()) && &pTxtRef->GetTxtNode().GetNodes() == &GetNodes() ) { @@ -2135,9 +2140,9 @@ const SwFmtINetFmt* SwDoc::FindINetAttr( const String& rName ) const const SwFmtINetFmt* pItem; const SwTxtINetFmt* pTxtAttr; const SwTxtNode* pTxtNd; - USHORT n, nMaxItems = GetAttrPool().GetItemCount( RES_TXTATR_INETFMT ); + sal_uInt32 n, nMaxItems = GetAttrPool().GetItemCount2( RES_TXTATR_INETFMT ); for( n = 0; n < nMaxItems; ++n ) - if( 0 != (pItem = (SwFmtINetFmt*)GetAttrPool().GetItem( + if( 0 != (pItem = (SwFmtINetFmt*)GetAttrPool().GetItem2( RES_TXTATR_INETFMT, n ) ) && pItem->GetName().Equals( rName ) && 0 != ( pTxtAttr = pItem->GetTxtINetFmt()) && @@ -2396,6 +2401,54 @@ BOOL SwDoc::RemoveInvisibleContent() EndUndo( UNDO_UI_DELETE_INVISIBLECNTNT, NULL ); return bRet; } +/*-- 25.08.2010 14:18:12--------------------------------------------------- + + -----------------------------------------------------------------------*/ +BOOL SwDoc::HasInvisibleContent() const +{ + BOOL bRet = sal_False; + + SwClientIter aIter( *GetSysFldType( RES_HIDDENPARAFLD ) ); + if( aIter.First( TYPE( SwFmtFld ) ) ) + bRet = sal_True; + + // + // Search for any hidden paragraph (hidden text attribute) + // + if( ! bRet ) + { + for( ULONG n = GetNodes().Count(); !bRet && (n > 0); ) + { + SwTxtNode* pTxtNd = GetNodes()[ --n ]->GetTxtNode(); + if ( pTxtNd ) + { + SwPaM aPam( *pTxtNd, 0, *pTxtNd, pTxtNd->GetTxt().Len() ); + if( pTxtNd->HasHiddenCharAttribute( true ) || ( pTxtNd->HasHiddenCharAttribute( false ) ) ) + { + bRet = sal_True; + } + } + } + } + + if( ! bRet ) + { + const SwSectionFmts& rSectFmts = GetSections(); + USHORT n; + + for( n = rSectFmts.Count(); !bRet && (n > 0); ) + { + SwSectionFmt* pSectFmt = rSectFmts[ --n ]; + // don't add sections in Undo/Redo + if( !pSectFmt->IsInNodesArr()) + continue; + SwSection* pSect = pSectFmt->GetSection(); + if( pSect->IsHidden() ) + bRet = sal_True; + } + } + return bRet; +} /*-- 11.06.2004 08:34:04--------------------------------------------------- -----------------------------------------------------------------------*/ @@ -2451,7 +2504,7 @@ BOOL SwDoc::ConvertFieldsToText() nWhich != RES_REFPAGEGETFLD&& nWhich != RES_REFPAGESETFLD)) { - String sText = pField->GetCntnt(); + String sText = pField->ExpandField(true); //database fields should not convert their command into text if( RES_DBFLD == pCurType->Which() && !static_cast<const SwDBField*>(pField)->IsInitialized()) sText.Erase(); @@ -2510,26 +2563,17 @@ bool SwDoc::LinksUpdated() const } // embedded alle lokalen Links (Bereiche/Grafiken) -bool SwDoc::EmbedAllLinks() +::sfx2::SvBaseLink* lcl_FindNextRemovableLink( const ::sfx2::SvBaseLinks& rLinks, sfx2::LinkManager& rLnkMgr ) { - BOOL bRet = FALSE; - sfx2::LinkManager& rLnkMgr = GetLinkManager(); - const ::sfx2::SvBaseLinks& rLnks = rLnkMgr.GetLinks(); - if( rLnks.Count() ) + for( USHORT n = 0; n < rLinks.Count(); ++n ) { - BOOL bDoesUndo = DoesUndo(); - DoUndo( FALSE ); - - for( USHORT n = 0; n < rLnks.Count(); ++n ) + ::sfx2::SvBaseLink* pLnk = &(*rLinks[ n ]); + if( pLnk && + ( OBJECT_CLIENT_GRF == pLnk->GetObjType() || + OBJECT_CLIENT_FILE == pLnk->GetObjType() ) && + pLnk->ISA( SwBaseLink ) ) { - ::sfx2::SvBaseLink* pLnk = &(*rLnks[ n ]); - if( pLnk && - ( OBJECT_CLIENT_GRF == pLnk->GetObjType() || - OBJECT_CLIENT_FILE == pLnk->GetObjType() ) && - pLnk->ISA( SwBaseLink ) ) - { ::sfx2::SvBaseLinkRef xLink = pLnk; - USHORT nCount = rLnks.Count(); String sFName; rLnkMgr.GetDisplayNames( xLink, 0, &sFName, 0, 0 ); @@ -2537,20 +2581,33 @@ bool SwDoc::EmbedAllLinks() INetURLObject aURL( sFName ); if( INET_PROT_FILE == aURL.GetProtocol() || INET_PROT_CID == aURL.GetProtocol() ) - { - // dem Link sagen, das er aufgeloest wird! - xLink->Closed(); + return pLnk; + } + } + return 0; +} +bool SwDoc::EmbedAllLinks() +{ + BOOL bRet = FALSE; + sfx2::LinkManager& rLnkMgr = GetLinkManager(); + const ::sfx2::SvBaseLinks& rLinks = rLnkMgr.GetLinks(); + if( rLinks.Count() ) + { + BOOL bDoesUndo = DoesUndo(); + DoUndo( FALSE ); - // falls einer vergessen hat sich auszutragen - if( xLink.Is() ) - rLnkMgr.Remove( xLink ); + ::sfx2::SvBaseLink* pLnk = 0; + while( 0 != (pLnk = lcl_FindNextRemovableLink( rLinks, rLnkMgr ) ) ) + { + ::sfx2::SvBaseLinkRef xLink = pLnk; + // dem Link sagen, das er aufgeloest wird! + xLink->Closed(); - if( nCount != rLnks.Count() + 1 ) - n = 0; // wieder von vorne anfangen, es wurden - // mehrere Links entfernt - bRet = TRUE; - } - } + // falls einer vergessen hat sich auszutragen + if( xLink.Is() ) + rLnkMgr.Remove( xLink ); + + bRet = TRUE; } DelAllUndoObj(); diff --git a/sw/source/core/doc/docbasic.cxx b/sw/source/core/doc/docbasic.cxx index fc88148156..2cba12edf5 100644 --- a/sw/source/core/doc/docbasic.cxx +++ b/sw/source/core/doc/docbasic.cxx @@ -167,9 +167,9 @@ USHORT SwDoc::CallEvent( USHORT nEvent, const SwCallMouseEvent& rCallEvent, if( bCheckPtr ) { const SfxPoolItem* pItem; - USHORT n, nMaxItems = GetAttrPool().GetItemCount( RES_TXTATR_INETFMT ); + sal_uInt32 n, nMaxItems = GetAttrPool().GetItemCount2( RES_TXTATR_INETFMT ); for( n = 0; n < nMaxItems; ++n ) - if( 0 != (pItem = GetAttrPool().GetItem( RES_TXTATR_INETFMT, n ) ) + if( 0 != (pItem = GetAttrPool().GetItem2( RES_TXTATR_INETFMT, n ) ) && rCallEvent.PTR.pINetAttr == pItem ) { bCheckPtr = FALSE; // als Flag missbrauchen diff --git a/sw/source/core/doc/docbm.cxx b/sw/source/core/doc/docbm.cxx index 23ecd3feb5..4c3c50b014 100644 --- a/sw/source/core/doc/docbm.cxx +++ b/sw/source/core/doc/docbm.cxx @@ -305,7 +305,7 @@ namespace sw { namespace mark MarkManager::MarkManager(SwDoc& rDoc) : m_pDoc(&rDoc) { } - +#if OSL_DEBUG_LEVEL > 1 void MarkManager::dumpFieldmarks( ) const { const_iterator_t pIt = m_vFieldmarks.begin(); @@ -316,7 +316,7 @@ namespace sw { namespace mark ::rtl::OUStringToOString(str, RTL_TEXTENCODING_UTF8).getStr()); } } - +#endif ::sw::mark::IMark* MarkManager::makeMark(const SwPaM& rPaM, const ::rtl::OUString& rName, const IDocumentMarkAccess::MarkType eType) diff --git a/sw/source/core/doc/doccorr.cxx b/sw/source/core/doc/doccorr.cxx index b3b5682eba..4b4d89fcda 100644 --- a/sw/source/core/doc/doccorr.cxx +++ b/sw/source/core/doc/doccorr.cxx @@ -73,9 +73,9 @@ namespace { - // find the relevant section in which the SwUnoCrsr may wander. returns NULL if - // no restrictions apply - const SwStartNode* lcl_FindUnoCrsrSection( const SwNode& rNode ) + // find the relevant section in which the SwUnoCrsr may wander. + // returns NULL if no restrictions apply + static const SwStartNode* lcl_FindUnoCrsrSection( const SwNode& rNode ) { const SwStartNode* pStartNode = rNode.StartOfSectionNode(); while( ( pStartNode != NULL ) && @@ -86,45 +86,28 @@ namespace return pStartNode; } - static inline void lcl_PaMCorrAbs1(SwPaM * pPam, - SwNode const * const pOldNode, - const SwPosition& rNewPos, - const xub_StrLen nOffset) - { - for(int nb = 0; nb < 2; ++nb) - if(&((pPam)->GetBound(BOOL(nb)).nNode.GetNode()) == pOldNode) - { - (pPam)->GetBound(BOOL(nb)) = rNewPos; - (pPam)->GetBound(BOOL(nb)).nContent += nOffset; - } - }; - - static inline bool lcl_PaMCorrAbs2(SwPaM* pPam, - const SwPosition& rNewPos, - ULONG nSttNode, - ULONG nEndNode) + static inline bool lcl_PosCorrAbs(SwPosition & rPos, + const SwPosition& rStart, + const SwPosition& rEnd, + const SwPosition& rNewPos) { - bool bRet = false; - - for(int nb = 0; nb < 2; ++nb) - if((pPam)->GetBound(BOOL(nb)).nNode >= nSttNode && - (pPam)->GetBound(BOOL(nb)).nNode <= nEndNode) - { - (pPam)->GetBound(BOOL(nb)) = rNewPos; - bRet = true; - } - return bRet; + if ((rStart <= rPos) && (rPos <= rEnd)) + { + rPos = rNewPos; + return true; + } + return false; }; - static inline void lcl_PaMCorrAbs3(SwPaM * pPam, + static inline bool lcl_PaMCorrAbs(SwPaM & rPam, const SwPosition& rStart, const SwPosition& rEnd, const SwPosition& rNewPos) { - for(int nb = 0; nb < 2; ++nb) - if(rStart <= (pPam)->GetBound(BOOL(nb)) && - (pPam)->GetBound(BOOL(nb)) <= rEnd ) - (pPam)->GetBound(BOOL(nb)) = rNewPos; + bool bRet = false; + bRet |= lcl_PosCorrAbs(rPam.GetBound(true ), rStart, rEnd, rNewPos); + bRet |= lcl_PosCorrAbs(rPam.GetBound(false), rStart, rEnd, rNewPos); + return bRet; }; static inline void lcl_PaMCorrRel1(SwPaM * pPam, @@ -143,119 +126,69 @@ namespace } } -void PaMCorrAbs( const SwNodeIndex &rOldNode, - const SwPosition &rNewPos, - const xub_StrLen nOffset) -{ - const SwNode* pOldNode = &rOldNode.GetNode(); - const SwPosition aNewPos( rNewPos ); - const SwDoc* pDoc = pOldNode->GetDoc(); - SwCrsrShell* pShell = pDoc->GetEditShell(); - - if( pShell ) - { - FOREACHSHELL_START( pShell ) - SwPaM *_pStkCrsr = PCURSH->GetStkCrsr(); - if( _pStkCrsr ) - do { - lcl_PaMCorrAbs1( _pStkCrsr, pOldNode, aNewPos, nOffset ); - } while ( (_pStkCrsr != 0 ) && - ((_pStkCrsr=(SwPaM *)_pStkCrsr->GetNext()) != PCURSH->GetStkCrsr()) ); - - FOREACHPAM_START( PCURSH->_GetCrsr() ) - lcl_PaMCorrAbs1( PCURCRSR, pOldNode, aNewPos, nOffset ); - FOREACHPAM_END() - - if( PCURSH->IsTableMode() ) - lcl_PaMCorrAbs1( PCURSH->GetTblCrs(), pOldNode, aNewPos, nOffset ); - - FOREACHSHELL_END( pShell ) - } - - { - SwUnoCrsrTbl& rTbl = (SwUnoCrsrTbl&)pDoc->GetUnoCrsrTbl(); - for( USHORT n = 0; n < rTbl.Count(); ++n ) - { - FOREACHPAM_START( rTbl[ n ] ) - lcl_PaMCorrAbs1( PCURCRSR, pOldNode, aNewPos, nOffset ); - FOREACHPAM_END() - SwUnoTableCrsr* pUnoTblCrsr = - dynamic_cast<SwUnoTableCrsr*>(rTbl[ n ]); - if( pUnoTblCrsr ) - { - FOREACHPAM_START( &pUnoTblCrsr->GetSelRing() ) - lcl_PaMCorrAbs1( PCURCRSR, pOldNode, aNewPos, nOffset ); - FOREACHPAM_END() - } - } - } -} - - -void PaMCorrAbs( const SwNodeIndex &rStartNode, - const SwNodeIndex &rEndNode, - const SwPosition &rNewPos ) +void PaMCorrAbs( const SwPaM& rRange, + const SwPosition& rNewPos ) { - const ULONG nSttNode = rStartNode.GetIndex(); - const ULONG nEndNode = rEndNode.GetIndex(); - const SwPosition aNewPos( rNewPos ); - SwDoc* pDoc = rStartNode.GetNode().GetDoc(); + SwPosition const aStart( *rRange.Start() ); + SwPosition const aEnd( *rRange.End() ); + SwPosition const aNewPos( rNewPos ); + SwDoc *const pDoc = aStart.nNode.GetNode().GetDoc(); + SwCrsrShell *const pShell = pDoc->GetEditShell(); - SwCrsrShell* pShell = pDoc->GetEditShell(); if( pShell ) { FOREACHSHELL_START( pShell ) SwPaM *_pStkCrsr = PCURSH->GetStkCrsr(); if( _pStkCrsr ) do { - lcl_PaMCorrAbs2( _pStkCrsr, aNewPos, nSttNode, nEndNode ); + lcl_PaMCorrAbs( *_pStkCrsr, aStart, aEnd, aNewPos ); } while ( (_pStkCrsr != 0 ) && ((_pStkCrsr=(SwPaM *)_pStkCrsr->GetNext()) != PCURSH->GetStkCrsr()) ); FOREACHPAM_START( PCURSH->_GetCrsr() ) - lcl_PaMCorrAbs2( PCURCRSR, aNewPos, nSttNode, nEndNode ); + lcl_PaMCorrAbs( *PCURCRSR, aStart, aEnd, aNewPos ); FOREACHPAM_END() if( PCURSH->IsTableMode() ) - lcl_PaMCorrAbs2( PCURSH->GetTblCrs(), aNewPos, nSttNode, nEndNode ); + lcl_PaMCorrAbs( *PCURSH->GetTblCrs(), aStart, aEnd, aNewPos ); FOREACHSHELL_END( pShell ) } - { - SwUnoCrsrTbl& rTbl = (SwUnoCrsrTbl&)pDoc->GetUnoCrsrTbl(); + SwUnoCrsrTbl& rTbl = const_cast<SwUnoCrsrTbl&>(pDoc->GetUnoCrsrTbl()); + for( USHORT n = 0; n < rTbl.Count(); ++n ) { - bool bChange = false; + SwUnoCrsr *const pUnoCursor = rTbl[ n ]; - SwUnoCrsr* pUnoCursor = rTbl[ n ]; + bool bChange = false; // has the UNO cursor been corrected? // determine whether the UNO cursor will leave it's designated // section - bool bLeaveSection = + bool const bLeaveSection = pUnoCursor->IsRemainInSection() && ( lcl_FindUnoCrsrSection( aNewPos.nNode.GetNode() ) != lcl_FindUnoCrsrSection( pUnoCursor->GetPoint()->nNode.GetNode() ) ); FOREACHPAM_START( pUnoCursor ) - bChange |= lcl_PaMCorrAbs2(PCURCRSR, aNewPos, nSttNode, nEndNode); + bChange |= lcl_PaMCorrAbs( *PCURCRSR, aStart, aEnd, aNewPos ); FOREACHPAM_END() - SwUnoTableCrsr* pUnoTblCrsr = - dynamic_cast<SwUnoTableCrsr*>(pUnoCursor); + SwUnoTableCrsr *const pUnoTblCrsr = + dynamic_cast<SwUnoTableCrsr *>(rTbl[ n ]); if( pUnoTblCrsr ) { FOREACHPAM_START( &pUnoTblCrsr->GetSelRing() ) bChange |= - lcl_PaMCorrAbs2( PCURCRSR, aNewPos, nSttNode, nEndNode ); + lcl_PaMCorrAbs( *PCURCRSR, aStart, aEnd, aNewPos ); FOREACHPAM_END() } // if a UNO cursor leaves its designated section, we must inform // (and invalidate) said cursor - if( bChange && bLeaveSection ) + if (bChange && bLeaveSection) { // the UNO cursor has left its section. We need to notify it! SwMsgPoolItem aHint( RES_UNOCURSOR_LEAVES_SECTION ); @@ -265,72 +198,31 @@ void PaMCorrAbs( const SwNodeIndex &rStartNode, } } - -void PaMCorrAbs( const SwPaM& rRange, - const SwPosition& rNewPos ) -{ - SwPosition aStart( *rRange.Start() ); - SwPosition aEnd( *rRange.End() ); - SwPosition aNewPos( rNewPos ); - SwDoc* pDoc = aStart.nNode.GetNode().GetDoc(); - SwCrsrShell* pShell = pDoc->GetEditShell(); - - if( pShell ) - { - FOREACHSHELL_START( pShell ) - SwPaM *_pStkCrsr = PCURSH->GetStkCrsr(); - if( _pStkCrsr ) - do { - lcl_PaMCorrAbs3( _pStkCrsr, aStart, aEnd, aNewPos ); - } while ( (_pStkCrsr != 0 ) && - ((_pStkCrsr=(SwPaM *)_pStkCrsr->GetNext()) != PCURSH->GetStkCrsr()) ); - - FOREACHPAM_START( PCURSH->_GetCrsr() ) - lcl_PaMCorrAbs3( PCURCRSR, aStart, aEnd, aNewPos ); - FOREACHPAM_END() - - if( PCURSH->IsTableMode() ) - lcl_PaMCorrAbs3( PCURSH->GetTblCrs(), aStart, aEnd, aNewPos ); - - FOREACHSHELL_END( pShell ) - } - { - SwUnoCrsrTbl& rTbl = (SwUnoCrsrTbl&)pDoc->GetUnoCrsrTbl(); - for( USHORT n = 0; n < rTbl.Count(); ++n ) - { - FOREACHPAM_START( rTbl[ n ] ) - lcl_PaMCorrAbs3( PCURCRSR, aStart, aEnd, aNewPos ); - FOREACHPAM_END() - - SwUnoTableCrsr* pUnoTblCrsr = - dynamic_cast<SwUnoTableCrsr*>(rTbl[ n ]); - if( pUnoTblCrsr ) - { - FOREACHPAM_START( &pUnoTblCrsr->GetSelRing() ) - lcl_PaMCorrAbs3( PCURCRSR, aStart, aEnd, aNewPos ); - FOREACHPAM_END() - } - } - } -} - void SwDoc::CorrAbs(const SwNodeIndex& rOldNode, const SwPosition& rNewPos, const xub_StrLen nOffset, BOOL bMoveCrsr) { + SwCntntNode *const pCntntNode( rOldNode.GetNode().GetCntntNode() ); + SwPaM const aPam(rOldNode, 0, + rOldNode, (pCntntNode) ? pCntntNode->Len() : 0); + SwPosition aNewPos(rNewPos); + aNewPos.nContent += nOffset; + getIDocumentMarkAccess()->correctMarksAbsolute(rOldNode, rNewPos, nOffset); - { // fix readlines + { // fix redlines SwRedlineTbl& rTbl = *pRedlineTbl; for( USHORT n = 0; n < rTbl.Count(); ++n ) { // is on position ?? - lcl_PaMCorrAbs1( rTbl[ n ], &rOldNode.GetNode(), SwPosition(rNewPos), nOffset ); + lcl_PaMCorrAbs(*rTbl[ n ], *aPam.Start(), *aPam.End(), aNewPos); } } if(bMoveCrsr) - ::PaMCorrAbs(rOldNode, rNewPos, nOffset); + { + ::PaMCorrAbs(aPam, aNewPos); + } } void SwDoc::CorrAbs(const SwPaM& rRange, @@ -352,12 +244,15 @@ void SwDoc::CorrAbs(const SwNodeIndex& rStartNode, const SwPosition& rNewPos, BOOL bMoveCrsr) { - SwPosition aNewPos(rNewPos); - _DelBookmarks(rStartNode, rEndNode); if(bMoveCrsr) - ::PaMCorrAbs(rStartNode, rEndNode, rNewPos); + { + SwCntntNode *const pCntntNode( rEndNode.GetNode().GetCntntNode() ); + SwPaM const aPam(rStartNode, 0, + rEndNode, (pCntntNode) ? pCntntNode->Len() : 0); + ::PaMCorrAbs(aPam, rNewPos); + } } diff --git a/sw/source/core/doc/docfld.cxx b/sw/source/core/doc/docfld.cxx index 9d907b9896..86e27c006c 100644 --- a/sw/source/core/doc/docfld.cxx +++ b/sw/source/core/doc/docfld.cxx @@ -436,9 +436,8 @@ void SwDoc::UpdateTblFlds( SfxPoolItem* pHt ) "Was ist das fuer ein MessageItem?" ); SwFieldType* pFldType(0); - USHORT i; - for( i = 0; i < pFldTypes->Count(); ++i ) + for (USHORT i = 0; i < pFldTypes->Count(); ++i) { if( RES_TABLEFLD == ( pFldType = (*pFldTypes)[i] )->Which() ) { @@ -507,13 +506,15 @@ void SwDoc::UpdateTblFlds( SfxPoolItem* pHt ) // und dann noch alle Tabellen Box Formeln abklappern const SfxPoolItem* pItem; - USHORT nMaxItems = GetAttrPool().GetItemCount( RES_BOXATR_FORMULA ); - for( i = 0; i < nMaxItems; ++i ) - if( 0 != (pItem = GetAttrPool().GetItem( RES_BOXATR_FORMULA, i ) ) && + sal_uInt32 nMaxItems = GetAttrPool().GetItemCount2( RES_BOXATR_FORMULA ); + for (sal_uInt32 i = 0; i < nMaxItems; ++i) + { + if( 0 != (pItem = GetAttrPool().GetItem2( RES_BOXATR_FORMULA, i ) ) && ((SwTblBoxFormula*)pItem)->GetDefinedIn() ) { ((SwTblBoxFormula*)pItem)->ChangeState( pHt ); } + } // alle Felder/Boxen sind jetzt invalide, also kann das Rechnen anfangen @@ -608,8 +609,9 @@ void SwDoc::UpdateTblFlds( SfxPoolItem* pHt ) } // dann berechene noch die Formeln an den Boxen - for( i = 0; i < nMaxItems; ++i ) - if( 0 != (pItem = GetAttrPool().GetItem( RES_BOXATR_FORMULA, i ) ) && + for (sal_uInt32 i = 0; i < nMaxItems; ++i ) + { + if( 0 != (pItem = GetAttrPool().GetItem2( RES_BOXATR_FORMULA, i ) ) && ((SwTblBoxFormula*)pItem)->GetDefinedIn() && !((SwTblBoxFormula*)pItem)->IsValid() ) { @@ -685,6 +687,7 @@ void SwDoc::UpdateTblFlds( SfxPoolItem* pHt ) } } } + } if( pCalc ) delete pCalc; @@ -1732,7 +1735,6 @@ String lcl_DBDataToString(const SwDBData& rData) void SwDoc::GetAllUsedDB( SvStringsDtor& rDBNameList, const SvStringsDtor* pAllDBNames ) { - USHORT n; SvStringsDtor aUsedDBNames; SvStringsDtor aAllDBNames; @@ -1743,7 +1745,7 @@ void SwDoc::GetAllUsedDB( SvStringsDtor& rDBNameList, } SwSectionFmts& rArr = GetSections(); - for( n = rArr.Count(); n; ) + for (USHORT n = rArr.Count(); n; ) { SwSection* pSect = rArr[ --n ]->GetSection(); @@ -1757,10 +1759,10 @@ void SwDoc::GetAllUsedDB( SvStringsDtor& rDBNameList, } const SfxPoolItem* pItem; - USHORT nMaxItems = GetAttrPool().GetItemCount( RES_TXTATR_FIELD ); - for( n = 0; n < nMaxItems; ++n ) + sal_uInt32 nMaxItems = GetAttrPool().GetItemCount2( RES_TXTATR_FIELD ); + for (sal_uInt32 n = 0; n < nMaxItems; ++n) { - if( 0 == (pItem = GetAttrPool().GetItem( RES_TXTATR_FIELD, n ) )) + if( 0 == (pItem = GetAttrPool().GetItem2( RES_TXTATR_FIELD, n ) )) continue; const SwFmtFld* pFmtFld = (SwFmtFld*)pItem; @@ -1916,10 +1918,9 @@ void SwDoc::ChangeDBFields( const SvStringsDtor& rOldNames, aNewDBData.nCommandType = (short)rNewName.GetToken(2, DB_DELIM).ToInt32(); String sFormel; - USHORT n; SwSectionFmts& rArr = GetSections(); - for( n = rArr.Count(); n; ) + for (USHORT n = rArr.Count(); n; ) { SwSection* pSect = rArr[ --n ]->GetSection(); @@ -1932,11 +1933,11 @@ void SwDoc::ChangeDBFields( const SvStringsDtor& rOldNames, } const SfxPoolItem* pItem; - USHORT nMaxItems = GetAttrPool().GetItemCount( RES_TXTATR_FIELD ); + sal_uInt32 nMaxItems = GetAttrPool().GetItemCount2( RES_TXTATR_FIELD ); - for( n = 0; n < nMaxItems; ++n ) + for (sal_uInt32 n = 0; n < nMaxItems; ++n ) { - if( 0 == (pItem = GetAttrPool().GetItem( RES_TXTATR_FIELD, n ) )) + if( 0 == (pItem = GetAttrPool().GetItem2( RES_TXTATR_FIELD, n ) )) continue; SwFmtFld* pFmtFld = (SwFmtFld*)pItem; @@ -2329,9 +2330,8 @@ void SwDocUpdtFld::_MakeFldList( SwDoc& rDoc, int eGetMode ) SwSectionNode* pSectNd; USHORT nArrStt = 0; ULONG nSttCntnt = rDoc.GetNodes().GetEndOfExtras().GetIndex(); - USHORT n; - for( n = rArr.Count(); n; ) + for (USHORT n = rArr.Count(); n; ) { SwSection* pSect = rArr[ --n ]->GetSection(); if( pSect && pSect->IsHidden() && pSect->GetCondition().Len() && @@ -2351,13 +2351,13 @@ void SwDocUpdtFld::_MakeFldList( SwDoc& rDoc, int eGetMode ) // erst alle anzeigen, damit die Frames vorhanden sind. Mit deren // Position wird das BodyAnchor ermittelt. // Dafuer erst den ContentBereich, dann die Sonderbereiche!!! - for( n = nArrStt; n < aTmpArr.Count(); ++n ) + for (USHORT n = nArrStt; n < aTmpArr.Count(); ++n) { pSectNd = rDoc.GetNodes()[ aTmpArr[ n ] ]->GetSectionNode(); ASSERT( pSectNd, "Wo ist mein SectionNode" ); pSectNd->GetSection().SetCondHidden( FALSE ); } - for( n = 0; n < nArrStt; ++n ) + for (USHORT n = 0; n < nArrStt; ++n) { pSectNd = rDoc.GetNodes()[ aTmpArr[ n ] ]->GetSectionNode(); ASSERT( pSectNd, "Wo ist mein SectionNode" ); @@ -2365,8 +2365,10 @@ void SwDocUpdtFld::_MakeFldList( SwDoc& rDoc, int eGetMode ) } // so, erst jetzt alle sortiert in die Liste eintragen - for( n = 0; n < aTmpArr.Count(); ++n ) + for (USHORT n = 0; n < aTmpArr.Count(); ++n) + { GetBodyNode( *rDoc.GetNodes()[ aTmpArr[ n ] ]->GetSectionNode() ); + } } String sTrue( String::CreateFromAscii( @@ -2378,10 +2380,10 @@ void SwDocUpdtFld::_MakeFldList( SwDoc& rDoc, int eGetMode ) USHORT nWhich, n; const String* pFormel = 0; const SfxPoolItem* pItem; - USHORT nMaxItems = rDoc.GetAttrPool().GetItemCount( RES_TXTATR_FIELD ); + sal_uInt32 nMaxItems = rDoc.GetAttrPool().GetItemCount2( RES_TXTATR_FIELD ); for( n = 0; n < nMaxItems; ++n ) { - if( 0 == (pItem = rDoc.GetAttrPool().GetItem( RES_TXTATR_FIELD, n )) ) + if( 0 == (pItem = rDoc.GetAttrPool().GetItem2( RES_TXTATR_FIELD, n )) ) continue; const SwFmtFld* pFmtFld = (SwFmtFld*)pItem; @@ -2464,24 +2466,26 @@ void SwDocUpdtFld::_MakeFldList( SwDoc& rDoc, int eGetMode ) { SwDBData aDBData(((SwDBNumSetField*)pFld)->GetDBData(&rDoc)); - if( bIsDBMgr && - rDoc.GetNewDBMgr()->OpenDataSource( aDBData.sDataSource, aDBData.sCommand )&& - GETFLD_ALL == eGetMode || - ( GETFLD_CALC & eGetMode && - ((SwDBNumSetField*)pFld)->IsCondValid())) + if ( + (bIsDBMgr && rDoc.GetNewDBMgr()->OpenDataSource(aDBData.sDataSource, aDBData.sCommand)) && + (GETFLD_ALL == eGetMode || (GETFLD_CALC & eGetMode && ((SwDBNumSetField*)pFld)->IsCondValid())) + ) + { pFormel = &pFld->GetPar1(); + } } break; case RES_DBNEXTSETFLD: { SwDBData aDBData(((SwDBNextSetField*)pFld)->GetDBData(&rDoc)); - if( bIsDBMgr && - rDoc.GetNewDBMgr()->OpenDataSource( aDBData.sDataSource, aDBData.sCommand )&& - GETFLD_ALL == eGetMode || - ( GETFLD_CALC & eGetMode && - ((SwDBNextSetField*)pFld)->IsCondValid() )) + if ( + (bIsDBMgr && rDoc.GetNewDBMgr()->OpenDataSource(aDBData.sDataSource, aDBData.sCommand)) && + (GETFLD_ALL == eGetMode || (GETFLD_CALC & eGetMode && ((SwDBNextSetField*)pFld)->IsCondValid())) + ) + { pFormel = &pFld->GetPar1(); + } } break; } diff --git a/sw/source/core/doc/docfmt.cxx b/sw/source/core/doc/docfmt.cxx index 2afa2fa9e9..914bde9119 100644 --- a/sw/source/core/doc/docfmt.cxx +++ b/sw/source/core/doc/docfmt.cxx @@ -1347,9 +1347,9 @@ void SwDoc::SetDefault( const SfxItemSet& rSet ) nOldWidth = ((SvxTabStopItem&)aOld.Get(RES_PARATR_TABSTOP))[ 0 ].GetTabPos(); int bChg = FALSE; - USHORT nMaxItems = GetAttrPool().GetItemCount( RES_PARATR_TABSTOP ); - for( USHORT n = 0; n < nMaxItems; ++n ) - if( 0 != (pTmpItem = GetAttrPool().GetItem( RES_PARATR_TABSTOP, n ) )) + sal_uInt32 nMaxItems = GetAttrPool().GetItemCount2( RES_PARATR_TABSTOP ); + for( sal_uInt32 n = 0; n < nMaxItems; ++n ) + if( 0 != (pTmpItem = GetAttrPool().GetItem2( RES_PARATR_TABSTOP, n ) )) bChg |= lcl_SetNewDefTabStops( nOldWidth, nNewWidth, *(SvxTabStopItem*)pTmpItem ); diff --git a/sw/source/core/doc/docftn.cxx b/sw/source/core/doc/docftn.cxx index 9af54315b2..65b55f1ab0 100644 --- a/sw/source/core/doc/docftn.cxx +++ b/sw/source/core/doc/docftn.cxx @@ -333,10 +333,15 @@ void SwDoc::SetEndNoteInfo(const SwEndNoteInfo& rInfo) } BOOL bNumChg = rInfo.nFtnOffset != GetEndNoteInfo().nFtnOffset; - BOOL bExtra = !bNumChg && - rInfo.aFmt.GetNumberingType() != GetEndNoteInfo().aFmt.GetNumberingType()|| - rInfo.GetPrefix() != GetEndNoteInfo().GetPrefix() || - rInfo.GetSuffix() != GetEndNoteInfo().GetSuffix(); + // this seems to be an optimization: UpdateAllFtn() is only called + // if the offset changes; if the offset is the same, + // but type/prefix/suffix changes, just set new numbers. + bool const bExtra = !bNumChg && + ( (rInfo.aFmt.GetNumberingType() != + GetEndNoteInfo().aFmt.GetNumberingType()) + || (rInfo.GetPrefix() != GetEndNoteInfo().GetPrefix()) + || (rInfo.GetSuffix() != GetEndNoteInfo().GetSuffix()) + ); BOOL bFtnDesc = rInfo.GetPageDesc( *this ) != GetEndNoteInfo().GetPageDesc( *this ); SwCharFmt *pOldChrFmt = GetEndNoteInfo().GetCharFmt( *this ), diff --git a/sw/source/core/doc/docnew.cxx b/sw/source/core/doc/docnew.cxx index 3b81863ea5..33819154ef 100644 --- a/sw/source/core/doc/docnew.cxx +++ b/sw/source/core/doc/docnew.cxx @@ -366,6 +366,7 @@ SwDoc::SwDoc() : mbUseFormerObjectPos = aOptions.IsUseObjectPositioning(); mbUseFormerTextWrapping = aOptions.IsUseOurTextWrapping(); mbConsiderWrapOnObjPos = aOptions.IsConsiderWrappingStyle(); + mbMathBaselineAlignment = false; // default for *old* documents is 'off' mbAddFlyOffsets = false; // hidden mbOldNumbering = false; // hidden mbUseHiResolutionVirtualDevice = true; // hidden @@ -835,8 +836,8 @@ void SwDoc::ClearDoc() pFirstNd->SetAttr( SwFmtPageDesc( pDummyPgDsc )); SwPosition aPos( *pFirstNd, SwIndex( pFirstNd )); - ::PaMCorrAbs( aSttIdx, SwNodeIndex( GetNodes().GetEndOfContent() ), - aPos ); + SwPaM const tmpPaM(aSttIdx, SwNodeIndex(GetNodes().GetEndOfContent())); + ::PaMCorrAbs(tmpPaM, aPos); } GetNodes().Delete( aSttIdx, diff --git a/sw/source/core/doc/docnum.cxx b/sw/source/core/doc/docnum.cxx index 95ba6541c4..bb15b47941 100644 --- a/sw/source/core/doc/docnum.cxx +++ b/sw/source/core/doc/docnum.cxx @@ -1092,7 +1092,23 @@ void SwDoc::SetNumRule( const SwPaM& rPam, { SvUShortsSort aResetAttrsArray; aResetAttrsArray.Insert( RES_LR_SPACE ); - ResetAttrs( rPam, sal_True, &aResetAttrsArray ); + // --> OD 2010-10-05 #i114929# + // On a selection setup a corresponding Point-and-Mark in order to get + // the indentation attribute reset on all paragraphs touched by the selection + if ( rPam.HasMark() && + rPam.End()->nNode.GetNode().GetTxtNode() ) + { + SwPaM aPam( rPam.Start()->nNode, + rPam.End()->nNode ); + aPam.Start()->nContent = 0; + aPam.End()->nContent = rPam.End()->nNode.GetNode().GetTxtNode()->Len(); + ResetAttrs( aPam, FALSE, &aResetAttrsArray ); + } + else + { + ResetAttrs( rPam, FALSE, &aResetAttrsArray ); + } + // <-- } // <-- @@ -1104,22 +1120,27 @@ void SwDoc::SetNumRule( const SwPaM& rPam, void SwDoc::SetCounted(const SwPaM & rPam, bool bCounted) { - // --> OD 2008-04-03 #refactorlists# -// ULONG nStartPos = rPam.Start()->nNode.GetIndex(); -// ULONG nEndPos = rPam.End()->nNode.GetIndex(); - -// for (ULONG n = nStartPos; n <= nEndPos; n++) -// { -// SwTxtNode * pNd = GetNodes()[n]->GetTxtNode(); - -// if (pNd) -// pNd->SetCountedInList(bCounted); -// } if ( bCounted ) { SvUShortsSort aResetAttrsArray; aResetAttrsArray.Insert( RES_PARATR_LIST_ISCOUNTED ); - ResetAttrs( rPam, sal_True, &aResetAttrsArray ); + // --> OD 2010-10-05 #i114929# + // On a selection setup a corresponding Point-and-Mark in order to get + // the list-is-counted attribute reset on all paragraphs touched by the selection + if ( rPam.HasMark() && + rPam.End()->nNode.GetNode().GetTxtNode() ) + { + SwPaM aPam( rPam.Start()->nNode, + rPam.End()->nNode ); + aPam.Start()->nContent = 0; + aPam.End()->nContent = rPam.End()->nNode.GetNode().GetTxtNode()->Len(); + ResetAttrs( aPam, FALSE, &aResetAttrsArray ); + } + else + { + ResetAttrs( rPam, FALSE, &aResetAttrsArray ); + } + // <-- } else { @@ -1128,30 +1149,6 @@ void SwDoc::SetCounted(const SwPaM & rPam, bool bCounted) } } -//void SwDoc::ReplaceNumRule(const SwPaM & rPaM, const SwNumRule & rNumRule) -//{ -// if (DoesUndo()) -// StartUndo(UNDO_START, NULL); - -// ULONG nStt = rPaM.Start()->nNode.GetIndex(); -// ULONG nEnd = rPaM.End()->nNode.GetIndex(); - -// for (ULONG n = nStt; n <= nEnd; n++) -// { -// SwTxtNode * pCNd = GetNodes()[n]->GetTxtNode(); - -// if (pCNd && NULL != pCNd->GetNumRule()) -// { -// SwPaM aPam(*pCNd); - -// InsertPoolItem(aPam, SwNumRuleItem(rNumRule.GetName()), 0); -// } -// } - -// if (DoesUndo()) -// EndUndo(UNDO_START, NULL); -//} - void SwDoc::SetNumRuleStart( const SwPosition& rPos, BOOL bFlag ) { SwTxtNode* pTxtNd = rPos.nNode.GetNode().GetTxtNode(); diff --git a/sw/source/core/doc/doctxm.cxx b/sw/source/core/doc/doctxm.cxx index 4eda348cd3..4c80d17be0 100644 --- a/sw/source/core/doc/doctxm.cxx +++ b/sw/source/core/doc/doctxm.cxx @@ -110,9 +110,9 @@ USHORT SwDoc::GetTOIKeys( SwTOIKeyType eTyp, SvStringsSort& rArr ) const const SwTxtTOXMark* pMark; const SfxPoolItem* pItem; const SwTOXType* pTOXType; - USHORT i, nMaxItems = GetAttrPool().GetItemCount( RES_TXTATR_TOXMARK ); + sal_uInt32 i, nMaxItems = GetAttrPool().GetItemCount2( RES_TXTATR_TOXMARK ); for( i = 0; i < nMaxItems; ++i ) - if( 0 != (pItem = GetAttrPool().GetItem( RES_TXTATR_TOXMARK, i ) ) && + if( 0 != (pItem = GetAttrPool().GetItem2( RES_TXTATR_TOXMARK, i ) ) && 0!= ( pTOXType = ((SwTOXMark*)pItem)->GetTOXType()) && TOX_INDEX == pTOXType->GetType() && 0 != ( pMark = ((SwTOXMark*)pItem)->GetTxtTOXMark() ) && diff --git a/sw/source/core/doc/notxtfrm.cxx b/sw/source/core/doc/notxtfrm.cxx index 3c1d88c700..c0117e686c 100644 --- a/sw/source/core/doc/notxtfrm.cxx +++ b/sw/source/core/doc/notxtfrm.cxx @@ -71,9 +71,7 @@ #include <poolfmt.hxx> #include <mdiexp.hxx> #include <swwait.hxx> -#ifndef _COMCORE_HRC #include <comcore.hrc> -#endif #include <accessibilityoptions.hxx> #include <com/sun/star/embed/EmbedMisc.hpp> #include <com/sun/star/embed/EmbedStates.hpp> @@ -266,7 +264,7 @@ void lcl_ClearArea( const SwFrm &rFrm, |* *************************************************************************/ -void SwNoTxtFrm::Paint( const SwRect &rRect, const SwPrtOptions * /*pPrintData*/ ) const +void SwNoTxtFrm::Paint(SwRect const& rRect, SwPrintData const*const) const { if ( Frm().IsEmpty() ) return; diff --git a/sw/source/core/doc/visiturl.cxx b/sw/source/core/doc/visiturl.cxx index 3d8b05a717..6deb411a35 100644 --- a/sw/source/core/doc/visiturl.cxx +++ b/sw/source/core/doc/visiturl.cxx @@ -71,9 +71,9 @@ void SwURLStateChanged::Notify( SfxBroadcaster& , const SfxHint& rHint ) const SwFmtINetFmt* pItem; const SwTxtINetFmt* pTxtAttr; const SwTxtNode* pTxtNd; - USHORT n, nMaxItems = pDoc->GetAttrPool().GetItemCount( RES_TXTATR_INETFMT ); + sal_uInt32 n, nMaxItems = pDoc->GetAttrPool().GetItemCount2( RES_TXTATR_INETFMT ); for( n = 0; n < nMaxItems; ++n ) - if( 0 != (pItem = (SwFmtINetFmt*)pDoc->GetAttrPool().GetItem( + if( 0 != (pItem = (SwFmtINetFmt*)pDoc->GetAttrPool().GetItem2( RES_TXTATR_INETFMT, n ) ) && ( pItem->GetValue() == sURL || ( sBkmk.Len() && pItem->GetValue() == sBkmk )) && diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx index 7e81a41f18..426163198e 100644 --- a/sw/source/core/docnode/ndtbl.cxx +++ b/sw/source/core/docnode/ndtbl.cxx @@ -2126,9 +2126,10 @@ BOOL SwDoc::DeleteRowCol( const SwSelBoxes& rBoxes, bool bColumn ) *aSavePaM.GetMark() = SwPosition( *pTblNd ); aSavePaM.Move( fnMoveBackward, fnGoNode ); } - ::PaMCorrAbs( SwNodeIndex( *pTblNd ), - SwNodeIndex( *pTblNd->EndOfSectionNode() ), - *aSavePaM.GetMark() ); + { + SwPaM const tmpPaM(*pTblNd, *pTblNd->EndOfSectionNode()); + ::PaMCorrAbs(tmpPaM, *aSavePaM.GetMark()); + } // harte SeitenUmbrueche am nachfolgenden Node verschieben BOOL bSavePageBreak = FALSE, bSavePageDesc = FALSE; @@ -2182,9 +2183,10 @@ BOOL SwDoc::DeleteRowCol( const SwSelBoxes& rBoxes, bool bColumn ) *aSavePaM.GetMark() = SwPosition( *pTblNd ); aSavePaM.Move( fnMoveBackward, fnGoNode ); } - ::PaMCorrAbs( SwNodeIndex( *pTblNd ), - SwNodeIndex( *pTblNd->EndOfSectionNode() ), - *aSavePaM.GetMark() ); + { + SwPaM const tmpPaM(*pTblNd, *pTblNd->EndOfSectionNode()); + ::PaMCorrAbs(tmpPaM, *aSavePaM.GetMark()); + } // harte SeitenUmbrueche am nachfolgenden Node verschieben SwCntntNode* pNextNd = GetNodes()[ pTblNd->EndOfSectionIndex()+1 ]->GetCntntNode(); diff --git a/sw/source/core/docnode/node.cxx b/sw/source/core/docnode/node.cxx index d1e3446c72..3b792dc788 100644 --- a/sw/source/core/docnode/node.cxx +++ b/sw/source/core/docnode/node.cxx @@ -740,9 +740,9 @@ const SwPageDesc* SwNode::FindPageDesc( BOOL bCalcLay, SwFindNearestNode aInfo( *pNd ); // dann ueber alle Nodes aller PageDesc const SfxPoolItem* pItem; - USHORT i, nMaxItems = pDoc->GetAttrPool().GetItemCount( RES_PAGEDESC ); + sal_uInt32 i, nMaxItems = pDoc->GetAttrPool().GetItemCount2( RES_PAGEDESC ); for( i = 0; i < nMaxItems; ++i ) - if( 0 != (pItem = pDoc->GetAttrPool().GetItem( RES_PAGEDESC, i ) ) && + if( 0 != (pItem = pDoc->GetAttrPool().GetItem2( RES_PAGEDESC, i ) ) && ((SwFmtPageDesc*)pItem)->GetDefinedIn() ) { const SwModify* pMod = ((SwFmtPageDesc*)pItem)->GetDefinedIn(); diff --git a/sw/source/core/draw/dview.cxx b/sw/source/core/draw/dview.cxx index f709decc3e..d6189a6b82 100644 --- a/sw/source/core/draw/dview.cxx +++ b/sw/source/core/draw/dview.cxx @@ -32,6 +32,7 @@ #include <editeng/protitem.hxx> #include <svx/svdpagv.hxx> #include <svx/fmmodel.hxx> +#include <sot/exchange.hxx> #include "swtypes.hxx" #include "pagefrm.hxx" @@ -991,6 +992,14 @@ void SwDrawView::CheckPossibilities() bSzProtect |= ( embed::EmbedMisc::EMBED_NEVERRESIZE & xObj->getStatus( embed::Aspects::MSOLE_CONTENT ) ) ? TRUE : FALSE; // <-- + + // #i972: protect position if it is a Math object anchored 'as char' and baseline alignment is activated + SwDoc* pDoc = Imp().GetShell()->GetDoc(); + const bool bProtectMathPos = SotExchange::IsMath( xObj->getClassID() ) + && FLY_AS_CHAR == pFly->GetFmt()->GetAnchor().GetAnchorId() + && pDoc->get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT ); + if (bProtectMathPos) + bMoveProtect = true; } } } @@ -1112,4 +1121,3 @@ const SdrMarkList& SwDrawView::GetMarkedObjectList() const - diff --git a/sw/source/core/edit/edattr.cxx b/sw/source/core/edit/edattr.cxx index b639c37a23..701f013f0a 100644 --- a/sw/source/core/edit/edattr.cxx +++ b/sw/source/core/edit/edattr.cxx @@ -457,7 +457,7 @@ BOOL lcl_IsNoEndTxtAttrAtPos( const SwTxtNode& rTNd, xub_StrLen nPos, const SwField* const pFld = pAttr->GetFld().GetFld(); if (pFld) { - sExp += pFld->ExpandField(rTNd.GetDoc()->IsClipBoard()); + sExp += pFld->ExpandField(true); } } } diff --git a/sw/source/core/edit/edfld.cxx b/sw/source/core/edit/edfld.cxx index 8c5b02794e..06e621b527 100644 --- a/sw/source/core/edit/edfld.cxx +++ b/sw/source/core/edit/edfld.cxx @@ -224,8 +224,7 @@ void SwEditShell::FieldToText( SwFieldType* pType ) *pFmtFld->GetTxtFld()->GetStart() ); // Feldinhalt durch Text ersetzen - String const aEntry( - pFmtFld->GetFld()->ExpandField(GetDoc()->IsClipBoard()) ); + String const aEntry( pFmtFld->GetFld()->ExpandField(true) ); pPaM->SetMark(); pPaM->Move( fnMoveForward ); GetDoc()->DeleteRange( *pPaM ); @@ -342,11 +341,11 @@ SwTxtFld* lcl_FindInputFld( SwDoc* pDoc, SwField& rFld ) ((SwSetExpField&)rFld).GetInputFlag() ) ) { const SfxPoolItem* pItem; - USHORT n, nMaxItems = - pDoc->GetAttrPool().GetItemCount( RES_TXTATR_FIELD ); + sal_uInt32 n, nMaxItems = + pDoc->GetAttrPool().GetItemCount2( RES_TXTATR_FIELD ); for( n = 0; n < nMaxItems; ++n ) if( 0 != (pItem = - pDoc->GetAttrPool().GetItem( RES_TXTATR_FIELD, n ) ) + pDoc->GetAttrPool().GetItem2( RES_TXTATR_FIELD, n ) ) && ((SwFmtFld*)pItem)->GetFld() == &rFld ) { pTFld = ((SwFmtFld*)pItem)->GetTxtFld(); diff --git a/sw/source/core/edit/editsh.cxx b/sw/source/core/edit/editsh.cxx index e3ebcbcdf4..8ef9460b89 100644 --- a/sw/source/core/edit/editsh.cxx +++ b/sw/source/core/edit/editsh.cxx @@ -1184,32 +1184,6 @@ void SwEditShell::TransliterateText( sal_uInt32 nType ) EndAllAction(); } -void SwEditShell::TransliterateText( const String& rModuleName ) -{ - utl::TransliterationWrapper aTrans(::comphelper::getProcessServiceFactory(), 0 ); - aTrans.loadModuleByImplName( rModuleName, LANGUAGE_SYSTEM ); - StartAllAction(); - SET_CURR_SHELL( this ); - - SwPaM* pCrsr = GetCrsr(); - if( pCrsr->GetNext() != pCrsr ) - { - GetDoc()->StartUndo(UNDO_EMPTY, NULL); - FOREACHPAM_START( this ) - - if( PCURCRSR->HasMark() ) - GetDoc()->TransliterateText( *PCURCRSR, aTrans ); - - FOREACHPAM_END() - GetDoc()->EndUndo(UNDO_EMPTY, NULL); - } - else - GetDoc()->TransliterateText( *pCrsr, aTrans ); - - EndAllAction(); -} - - void SwEditShell::CountWords( SwDocStat& rStat ) const { FOREACHPAM_START( this ) diff --git a/sw/source/core/edit/edtox.cxx b/sw/source/core/edit/edtox.cxx index a2c5cfd363..a792e6f3f2 100644 --- a/sw/source/core/edit/edtox.cxx +++ b/sw/source/core/edit/edtox.cxx @@ -234,25 +234,6 @@ BOOL SwEditShell::UpdateTableOf( const SwTOXBase& rTOX, const SfxItemSet* pSet ) return bRet; } -BOOL SwEditShell::UpdateField( sw::mark::IFieldmark &fieldBM) -{ -// SwDocShell* pDocSh = pDoc->GetDocShell(); - //@TODO implement me...; add undo etc... - if ( pDoc && fieldBM.IsExpanded( ) ) { - SwPosition aSttPos = fieldBM.GetMarkStart( ); - aSttPos.nContent++; - - SwPosition aEndPos = fieldBM.GetMarkEnd( ); - aEndPos.nContent--; - - SwPaM aPaM( aSttPos, aEndPos ); - pDoc->DeleteRange(aPaM); - pDoc->InsertString(aPaM, String::CreateFromAscii("Implement me ;-)") ); - } - return TRUE; -} - - /*-------------------------------------------------------------------- Beschreibung: Aktuelles Verzeichnis vor oder in dem der Cursor steht diff --git a/sw/source/core/fields/cellfml.cxx b/sw/source/core/fields/cellfml.cxx index fb98a31c93..b93d14ae5c 100644 --- a/sw/source/core/fields/cellfml.cxx +++ b/sw/source/core/fields/cellfml.cxx @@ -203,7 +203,7 @@ double SwTableBox::GetValue( SwTblCalcPara& rCalcPara ) const break; default: - String const value(pFld->ExpandField(pDoc->IsClipBoard())); + String const value(pFld->ExpandField(true)); nRet = rCalcPara.rCalc.Calculate(value).GetDouble(); } } diff --git a/sw/source/core/fields/dbfld.cxx b/sw/source/core/fields/dbfld.cxx index 92ad0ed940..20760cc751 100644 --- a/sw/source/core/fields/dbfld.cxx +++ b/sw/source/core/fields/dbfld.cxx @@ -28,7 +28,6 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" - #include <float.h> #include <sfx2/app.hxx> #include <svl/zforlist.hxx> @@ -44,15 +43,11 @@ #include <pam.hxx> #include <ndtxt.hxx> #include <dbfld.hxx> -#ifndef _DBMGR_HXX #include <dbmgr.hxx> -#endif #include <docfld.hxx> #include <expfld.hxx> #include <txtatr.hxx> -#ifndef _UNOFLDMID_H #include <unofldmid.h> -#endif using namespace ::com::sun::star::sdbc; @@ -281,27 +276,23 @@ SwField* SwDBField::Copy() const return pTmp; } -String SwDBField::GetCntnt(BOOL bName) const +String SwDBField::GetFieldName() const { - if(bName) - { - const String& rDBName = ((SwDBFieldType*)GetTyp())->GetName(); + const String& rDBName = static_cast<SwDBFieldType*>(GetTyp())->GetName(); //TODO/CLEANUP //Funktion tut nichts! //String sContent( SFX_APP()->LocalizeDBName(INI2NATIONAL, // rDBName.GetToken(0, DB_DELIM))); - String sContent( rDBName.GetToken(0, DB_DELIM) ); + String sContent( rDBName.GetToken(0, DB_DELIM) ); - if (sContent.Len() > 1) - { - sContent += DB_DELIM; - sContent += rDBName.GetToken(1, DB_DELIM); - sContent += DB_DELIM; - sContent += rDBName.GetToken(2, DB_DELIM); - } - return lcl_DBTrennConv(sContent); + if (sContent.Len() > 1) + { + sContent += DB_DELIM; + sContent += rDBName.GetToken(1, DB_DELIM); + sContent += DB_DELIM; + sContent += rDBName.GetToken(2, DB_DELIM); } - return Expand(); + return lcl_DBTrennConv(sContent); } //------------------------------------------------------------------------------ @@ -547,19 +538,15 @@ void SwDBNameInfField::SetDBData(const SwDBData & rDBData) //------------------------------------------------------------------------------ -String SwDBNameInfField::GetCntnt(BOOL bName) const +String SwDBNameInfField::GetFieldName() const { - String sStr(SwField::GetCntnt(bName)); - - if(bName) + String sStr( SwField::GetFieldName() ); + if (aDBData.sDataSource.getLength()) { - if (aDBData.sDataSource.getLength()) - { - sStr += ':'; - sStr += String(aDBData.sDataSource); - sStr += DB_DELIM; - sStr += String(aDBData.sCommand); - } + sStr += ':'; + sStr += String(aDBData.sDataSource); + sStr += DB_DELIM; + sStr += String(aDBData.sCommand); } return lcl_DBTrennConv(sStr); } diff --git a/sw/source/core/fields/docufld.cxx b/sw/source/core/fields/docufld.cxx index 66245b33b3..23695758f5 100644 --- a/sw/source/core/fields/docufld.cxx +++ b/sw/source/core/fields/docufld.cxx @@ -171,9 +171,9 @@ void SwPageNumberFieldType::ChangeExpansion( SwDoc* pDoc, sal_uInt16 nPage, // es NIE zurueck const SfxItemPool &rPool = pDoc->GetAttrPool(); const SwFmtPageDesc *pDesc; - sal_uInt16 nMaxItems = rPool.GetItemCount( RES_PAGEDESC ); - for( sal_uInt16 n = 0; n < nMaxItems; ++n ) - if( 0 != (pDesc = (SwFmtPageDesc*)rPool.GetItem( RES_PAGEDESC, n ) ) + sal_uInt32 nMaxItems = rPool.GetItemCount2( RES_PAGEDESC ); + for( sal_uInt32 n = 0; n < nMaxItems; ++n ) + if( 0 != (pDesc = (SwFmtPageDesc*)rPool.GetItem2( RES_PAGEDESC, n ) ) && pDesc->GetNumOffset() && pDesc->GetDefinedIn() ) { if( pDesc->GetDefinedIn()->ISA( SwCntntNode )) @@ -1198,30 +1198,30 @@ String SwDocInfoField::Expand() const /* --------------------------------------------------------------------------- ---------------------------------------------------------------------------*/ -String SwDocInfoField::GetCntnt(sal_Bool bName) const +String SwDocInfoField::GetFieldName() const { - if ( bName ) - { - String aStr(SwFieldType::GetTypeStr(GetTypeId())); - aStr += ':'; + String aStr(SwFieldType::GetTypeStr(GetTypeId())); + aStr += ':'; - sal_uInt16 nSub = nSubType & 0xff; + sal_uInt16 const nSub = nSubType & 0xff; - switch(nSub) - { - case DI_CUSTOM: - aStr += aName; - break; + switch (nSub) + { + case DI_CUSTOM: + aStr += aName; + break; - default: - aStr += *ViewShell::GetShellRes()->aDocInfoLst[ nSub - DI_SUBTYPE_BEGIN ]; - break; - } - if( IsFixed() ) - ( aStr += ' ' ) += ViewShell::GetShellRes()->aFixedStr; - return aStr; + default: + aStr += *ViewShell::GetShellRes() + ->aDocInfoLst[ nSub - DI_SUBTYPE_BEGIN ]; + break; } - return Expand(); + if (IsFixed()) + { + aStr += ' '; + aStr += ViewShell::GetShellRes()->aFixedStr; + } + return aStr; } /* --------------------------------------------------------------------------- @@ -1517,25 +1517,20 @@ void SwHiddenTxtField::Evaluate(SwDoc* pDoc) /* --------------------------------------------------------------------------- ---------------------------------------------------------------------------*/ -String SwHiddenTxtField::GetCntnt(sal_Bool bName) const +String SwHiddenTxtField::GetFieldName() const { - if ( bName ) - { - String aStr(SwFieldType::GetTypeStr(nSubType)); - aStr += ' '; - aStr += aCond; - aStr += ' '; - aStr += aTRUETxt; + String aStr(SwFieldType::GetTypeStr(nSubType)); + aStr += ' '; + aStr += aCond; + aStr += ' '; + aStr += aTRUETxt; - if(nSubType == TYP_CONDTXTFLD) - { -static char __READONLY_DATA cTmp[] = " : "; - aStr.AppendAscii(cTmp); - aStr += aFALSETxt; - } - return aStr; + if (nSubType == TYP_CONDTXTFLD) + { + aStr.AppendAscii(" : "); + aStr += aFALSETxt; } - return Expand(); + return aStr; } /* --------------------------------------------------------------------------- diff --git a/sw/source/core/fields/expfld.cxx b/sw/source/core/fields/expfld.cxx index 07c8839898..bb4d56728d 100644 --- a/sw/source/core/fields/expfld.cxx +++ b/sw/source/core/fields/expfld.cxx @@ -305,18 +305,15 @@ String SwGetExpField::Expand() const return sExpand; } -String SwGetExpField::GetCntnt(BOOL bName) const -{ - if ( bName ) - { - String aStr( SwFieldType::GetTypeStr( static_cast<USHORT>(nsSwGetSetExpType::GSE_FORMULA & nSubType - ? TYP_FORMELFLD - : TYP_GETFLD ) )); - aStr += ' '; - aStr += GetFormula(); - return aStr; - } - return Expand(); +String SwGetExpField::GetFieldName() const +{ + String aStr( SwFieldType::GetTypeStr( + static_cast<USHORT>(((nsSwGetSetExpType::GSE_FORMULA & nSubType) != 0) + ? TYP_FORMELFLD + : TYP_GETFLD ) )); + aStr += ' '; + aStr += GetFormula(); + return aStr; } SwField* SwGetExpField::Copy() const @@ -834,35 +831,28 @@ String SwSetExpField::Expand() const } /*-------------------------------------------------------------------- - Beschreibung: liefert den Namen oder den Inhalt + @return the field name --------------------------------------------------------------------*/ -String SwSetExpField::GetCntnt(BOOL bName) const +String SwSetExpField::GetFieldName() const { - if( bName ) - { - USHORT nStrType; - - if( IsSequenceFld() ) - nStrType = TYP_SEQFLD; - else if( bInput ) - nStrType = TYP_SETINPFLD; - else - nStrType = TYP_SETFLD; + SwFldTypesEnum const nStrType( (IsSequenceFld()) + ? TYP_SEQFLD + : (bInput) + ? TYP_SETINPFLD + : TYP_SETFLD ); - String aStr( SwFieldType::GetTypeStr( nStrType ) ); - aStr += ' '; - aStr += GetTyp()->GetName(); + String aStr( SwFieldType::GetTypeStr( static_cast<USHORT>(nStrType) ) ); + aStr += ' '; + aStr += GetTyp()->GetName(); - if( TYP_SEQFLD != nStrType ) - { - // Sequence nicht die Formel ausgeben - aStr.AppendAscii( RTL_CONSTASCII_STRINGPARAM( " = " )); - aStr += GetFormula(); - } - return aStr; + // Sequence: without formula + if (TYP_SEQFLD != nStrType) + { + aStr.AppendAscii( RTL_CONSTASCII_STRINGPARAM( " = " ) ); + aStr += GetFormula(); } - return Expand(); + return aStr; } SwField* SwSetExpField::Copy() const @@ -1021,20 +1011,16 @@ SwInputField::SwInputField(SwInputFieldType* pTyp, const String& rContent, { } -String SwInputField::GetCntnt(BOOL bName) const +String SwInputField::GetFieldName() const { - if ( bName ) + String aStr(SwField::GetFieldName()); + if ((nSubType & 0x00ff) == INP_USR) { - String aStr(SwField::GetCntnt(bName)); - if ((nSubType & 0x00ff) == INP_USR) - { - aStr += GetTyp()->GetName(); - aStr += ' '; - aStr += aContent; - } - return aStr; + aStr += GetTyp()->GetName(); + aStr += ' '; + aStr += aContent; } - return Expand(); + return aStr; } SwField* SwInputField::Copy() const diff --git a/sw/source/core/fields/fldbas.cxx b/sw/source/core/fields/fldbas.cxx index 95dd94b9b7..af78843912 100644 --- a/sw/source/core/fields/fldbas.cxx +++ b/sw/source/core/fields/fldbas.cxx @@ -28,16 +28,12 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" - -// #include <math.h> #include <float.h> #include <rtl/math.hxx> #include <svl/zforlist.hxx> #include <svl/zformat.hxx> #include <editeng/unolingu.hxx> -#ifndef _UNOFLDMID_H #include <unofldmid.h> -#endif #include <doc.hxx> #include <editsh.hxx> #include <frame.hxx> @@ -53,9 +49,7 @@ #include <expfld.hxx> #include <shellres.hxx> #include <calc.hxx> -#ifndef _COMCORE_HRC #include <comcore.hrc> -#endif #include <math.h> #include <float.h> @@ -269,21 +263,20 @@ USHORT SwField::GetTypeId() const Beschreibung: liefert den Namen oder den Inhalt --------------------------------------------------------------------*/ -String SwField::GetCntnt( BOOL bName ) const +String SwField::GetFieldName() const { - String sRet; - if( bName ) + USHORT nTypeId = GetTypeId(); + if (RES_DATETIMEFLD == GetTyp()->Which()) { - USHORT nTypeId = GetTypeId(); - if( RES_DATETIMEFLD == GetTyp()->Which() ) - nTypeId = static_cast<USHORT>(GetSubType() & DATEFLD ? TYP_DATEFLD : TYP_TIMEFLD); - - sRet = SwFieldType::GetTypeStr( nTypeId ); - if( IsFixed() ) - ( sRet += ' ' ) += ViewShell::GetShellRes()->aFixedStr; + nTypeId = static_cast<USHORT>( + ((GetSubType() & DATEFLD) != 0) ? TYP_DATEFLD : TYP_TIMEFLD); + } + String sRet = SwFieldType::GetTypeStr( nTypeId ); + if (IsFixed()) + { + sRet += ' '; + sRet += ViewShell::GetShellRes()->aFixedStr; } - else - sRet = Expand(); return sRet; } @@ -434,9 +427,9 @@ BOOL SwField::IsFixed() const return bRet; } -String SwField::ExpandField(bool const bInClipboard) const +String SwField::ExpandField(bool const bCached) const { - if (!bInClipboard) // #i85766# do not expand fields in clipboard documents + if (!bCached) // #i85766# do not expand fields in clipboard documents { m_Cache = Expand(); } @@ -447,7 +440,8 @@ SwField * SwField::CopyField() const { SwField *const pNew = Copy(); // #i85766# cache expansion of source (for clipboard) - pNew->m_Cache = Expand(); + // use this->cache, not this->Expand(): only text formatting calls Expand() + pNew->m_Cache = m_Cache; return pNew; } diff --git a/sw/source/core/fields/macrofld.cxx b/sw/source/core/fields/macrofld.cxx index 1471d46b29..57584fc90f 100644 --- a/sw/source/core/fields/macrofld.cxx +++ b/sw/source/core/fields/macrofld.cxx @@ -28,20 +28,19 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" - #include <hintids.hxx> #include <doc.hxx> #include <docufld.hxx> -#ifndef _UNOFLDMID_H #include <unofldmid.h> -#endif #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/uri/XUriReferenceFactory.hpp> #include <com/sun/star/uri/XVndSunStarScriptUrl.hpp> #include <comphelper/processfactory.hxx> + using namespace ::com::sun::star; using ::rtl::OUString; + /*-------------------------------------------------------------------- Beschreibung: MacroFeldtypen --------------------------------------------------------------------*/ @@ -79,16 +78,12 @@ SwField* SwMacroField::Copy() const return new SwMacroField((SwMacroFieldType*)GetTyp(), aMacro, aText); } -String SwMacroField::GetCntnt(BOOL bName) const +String SwMacroField::GetFieldName() const { - if(bName) - { - String aStr(GetTyp()->GetName()); - aStr += ' '; - aStr += aMacro; - return aStr; - } - return Expand(); + String aStr(GetTyp()->GetName()); + aStr += ' '; + aStr += aMacro; + return aStr; } String SwMacroField::GetLibName() const diff --git a/sw/source/core/fields/reffld.cxx b/sw/source/core/fields/reffld.cxx index d0c39fbd91..c31c494575 100644 --- a/sw/source/core/fields/reffld.cxx +++ b/sw/source/core/fields/reffld.cxx @@ -62,18 +62,12 @@ // <-- #include <ftnidx.hxx> #include <viewsh.hxx> -#ifndef _UNOFLDMID_H #include <unofldmid.h> -#endif #include <SwStyleNameMapper.hxx> #include <shellres.hxx> #include <poolfmt.hxx> -#ifndef _POOLFMT_HRC #include <poolfmt.hrc> -#endif -#ifndef _COMCORE_HRC #include <comcore.hrc> -#endif #include <numrule.hxx> #include <SwNodeNum.hxx> @@ -280,11 +274,8 @@ String SwGetRefField::Expand() const } -String SwGetRefField::GetCntnt(BOOL bName) const +String SwGetRefField::GetFieldName() const { - if( !bName ) - return Expand(); - String aStr(GetTyp()->GetName()); aStr += ' '; aStr += sSetRefName; diff --git a/sw/source/core/fields/tblcalc.cxx b/sw/source/core/fields/tblcalc.cxx index 5b43ea2627..50b4ab266f 100644 --- a/sw/source/core/fields/tblcalc.cxx +++ b/sw/source/core/fields/tblcalc.cxx @@ -37,9 +37,8 @@ #include <txtfld.hxx> #include <expfld.hxx> #include <docfld.hxx> // fuer _SetGetExpFld -#ifndef _UNOFLDMID_H #include <unofldmid.h> -#endif + using namespace ::com::sun::star; using ::rtl::OUString; @@ -91,22 +90,12 @@ SwField* SwTblField::Copy() const } -String SwTblField::GetCntnt(BOOL bName) const +String SwTblField::GetFieldName() const { - if( bName ) - { - String aStr(GetTyp()->GetName()); - aStr += ' '; - - USHORT nOldSubType = nSubType; - SwTblField* pThis = (SwTblField*)this; - pThis->nSubType |= nsSwExtendedSubType::SUB_CMD; - aStr += Expand(); - pThis->nSubType = nOldSubType; - - return aStr; - } - return Expand(); + String aStr(GetTyp()->GetName()); + aStr += ' '; + aStr += const_cast<SwTblField *>(this)->GetCommand(); + return aStr; } // suche den TextNode, in dem das Feld steht @@ -127,21 +116,28 @@ const SwNode* SwTblField::GetNodeOfFormula() const return 0; } +String SwTblField::GetCommand() +{ + if (EXTRNL_NAME != GetNameType()) + { + SwNode const*const pNd = GetNodeOfFormula(); + SwTableNode const*const pTblNd = (pNd) ? pNd->FindTableNode() : 0; + if (pTblNd) + { + PtrToBoxNm( &pTblNd->GetTable() ); + } + } + return (EXTRNL_NAME == GetNameType()) + ? SwTableFormula::GetFormula() + : String(); +} String SwTblField::Expand() const { String aStr; if (nSubType & nsSwExtendedSubType::SUB_CMD) { - if( EXTRNL_NAME != GetNameType() ) - { - const SwNode* pNd = GetNodeOfFormula(); - const SwTableNode* pTblNd = pNd ? pNd->FindTableNode() : 0; - if( pTblNd ) - ((SwTblField*)this)->PtrToBoxNm( &pTblNd->GetTable() ); - } - if( EXTRNL_NAME == GetNameType() ) - aStr = SwTableFormula::GetFormula(); + aStr = const_cast<SwTblField *>(this)->GetCommand(); } else { diff --git a/sw/source/core/fields/usrfld.cxx b/sw/source/core/fields/usrfld.cxx index aff0e3801d..ec771cac18 100644 --- a/sw/source/core/fields/usrfld.cxx +++ b/sw/source/core/fields/usrfld.cxx @@ -40,12 +40,12 @@ #include <doc.hxx> #include <editsh.hxx> #include <dpage.hxx> -#ifndef _UNOFLDMID_H #include <unofldmid.h> -#endif + using namespace ::com::sun::star; using ::rtl::OUString; + /*-------------------------------------------------------------------- Beschreibung: Benutzerfelder --------------------------------------------------------------------*/ @@ -72,17 +72,14 @@ SwField* SwUserField::Copy() const return pTmp; } -String SwUserField::GetCntnt(sal_Bool bName) const +String SwUserField::GetFieldName() const { - if ( bName ) - { String aStr(SwFieldType::GetTypeStr(TYP_USERFLD)); - aStr += ' '; - aStr += GetTyp()->GetName(); - aStr.AppendAscii(" = "); - aStr += ((SwUserFieldType*)GetTyp())->GetContent(); - return aStr; - } - return Expand(); + String aStr(SwFieldType::GetTypeStr(TYP_USERFLD)); + aStr += ' '; + aStr += GetTyp()->GetName(); + aStr.AppendAscii(" = "); + aStr += static_cast<SwUserFieldType*>(GetTyp())->GetContent(); + return aStr; } double SwUserField::GetValue() const diff --git a/sw/source/core/frmedt/fecopy.cxx b/sw/source/core/frmedt/fecopy.cxx index 19377c4e06..5bfdc29fab 100644 --- a/sw/source/core/frmedt/fecopy.cxx +++ b/sw/source/core/frmedt/fecopy.cxx @@ -885,9 +885,8 @@ BOOL SwFEShell::Paste( SwDoc* pClpDoc, BOOL bIncludingPageFrames ) SwCntntNode* pCNd = GetDoc()->GetNodes().GoNext( &aNdIdx ); SwPosition aPos( aNdIdx, SwIndex( pCNd, 0 )); // #i59539: Don't remove all redline - ::PaMCorrAbs( SwNodeIndex( *pDestNd ), - SwNodeIndex( *pDestNd->EndOfSectionNode() ), - aPos ); + SwPaM const tmpPaM(*pDestNd, *pDestNd->EndOfSectionNode()); + ::PaMCorrAbs(tmpPaM, aPos); } bRet = GetDoc()->InsCopyOfTbl( aDestPos, aBoxes, &pSrcNd->GetTable(), @@ -902,7 +901,11 @@ BOOL SwFEShell::Paste( SwDoc* pClpDoc, BOOL bIncludingPageFrames ) SwCntntNode* pCNd = GetDoc()->GetNodes().GoNext( &aNdIdx ); SwPosition aPos( aNdIdx, SwIndex( pCNd, 0 )); // #i59539: Don't remove all redline - ::PaMCorrAbs( PCURCRSR->GetPoint()->nNode, aPos ); + SwNode & rNode(PCURCRSR->GetPoint()->nNode.GetNode()); + SwCntntNode *const pCntntNode( rNode.GetCntntNode() ); + SwPaM const tmpPam(rNode, 0, + rNode, (pCntntNode) ? pCntntNode->Len() : 0); + ::PaMCorrAbs(tmpPam, aPos); } break; // aus der "while"-Schleife heraus diff --git a/sw/source/core/frmedt/fefly1.cxx b/sw/source/core/frmedt/fefly1.cxx index f220f409d6..7b965669ad 100644 --- a/sw/source/core/frmedt/fefly1.cxx +++ b/sw/source/core/frmedt/fefly1.cxx @@ -27,6 +27,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" + #include <hintids.hxx> #include <svl/itemiter.hxx> #include <svtools/imapobj.hxx> @@ -69,10 +70,15 @@ #include <fldbas.hxx> #include <fmtfld.hxx> #include <swundo.hxx> +#include <frame.hxx> +#include <notxtfrm.hxx> // --> OD 2006-03-06 #125892# #include <HandleAnchorNodeChg.hxx> // <-- #include <frmatr.hxx> +// --> 3.7.2010 #i972# +#include <ndole.hxx> +// <-- // --> OD 2009-12-29 #i89920# #include <fmtsrnd.hxx> #include <editeng/opaqitem.hxx> @@ -1522,6 +1528,12 @@ Size SwFEShell::RequestObjectResize( const SwRect &rRect, const uno::Reference < pFly->ChgRelPos( aTmp ); } } + + SwFlyFrmFmt *pFlyFrmFmt = pFly->GetFmt(); + ASSERT( pFlyFrmFmt, "fly frame format missing!" ); + if ( pFlyFrmFmt ) + pFlyFrmFmt->SetLastFlyFrmPrtRectPos( pFly->Prt().Pos() ); //stores the value of last Prt rect + EndAllAction(); return aResult; @@ -1587,6 +1599,20 @@ const String& SwFEShell::GetFlyName() const } +const uno::Reference < embed::XEmbeddedObject > SwFEShell::GetOleRef() const +{ + uno::Reference < embed::XEmbeddedObject > xObj; + SwFlyFrm * pFly = FindFlyFrm(); + if (pFly && pFly->Lower() && pFly->Lower()->IsNoTxtFrm()) + { + SwOLENode *pNd = ((SwNoTxtFrm*)pFly->Lower())->GetNode()->GetOLENode(); + if (pNd) + xObj = pNd->GetOLEObj().GetOleRef(); + } + return xObj; +} + + String SwFEShell::GetUniqueGrfName() const { return GetDoc()->GetUniqueGrfName(); @@ -2153,4 +2179,93 @@ void SwFEShell::SetObjDescription( const String& rDescription ) } } } -// <-- + + +void SwFEShell::AlignFormulaToBaseline( const uno::Reference < embed::XEmbeddedObject >& xObj, SwFlyFrm * pFly ) +{ +#if OSL_DEBUG_LEVEL > 1 + SvGlobalName aCLSID( xObj->getClassID() ); + const bool bStarMath = ( SotExchange::IsMath( aCLSID ) != 0 ); + ASSERT( bStarMath, "AlignFormulaToBaseline should only be called for Math objects" ); + + if ( !bStarMath ) + return; +#endif + + if (!pFly) + pFly = FindFlyFrm( xObj ); + ASSERT( pFly , "No fly frame!" ); + SwFrmFmt * pFrmFmt = pFly ? pFly->GetFmt() : 0; + + // baseline to baseline alignment should only be applied to formulas anchored as char + if ( pFly && pFrmFmt && FLY_AS_CHAR == pFrmFmt->GetAnchor().GetAnchorId() ) + { + // get baseline from Math object + uno::Any aBaseline; + if( svt::EmbeddedObjectRef::TryRunningState( xObj ) ) + { + uno::Reference < beans::XPropertySet > xSet( xObj->getComponent(), uno::UNO_QUERY ); + if ( xSet.is() ) + { + try + { + aBaseline = xSet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BaseLine") ) ); + } + catch ( uno::Exception& ) + { + ASSERT( FALSE , "Baseline could not be retrieved from Starmath!" ); + } + } + } + + sal_Int32 nBaseline = ::comphelper::getINT32(aBaseline); + const MapMode aSourceMapMode( MAP_100TH_MM ); + const MapMode aTargetMapMode( MAP_TWIP ); + nBaseline = OutputDevice::LogicToLogic( nBaseline, aSourceMapMode.GetMapUnit(), aTargetMapMode.GetMapUnit() ); + + ASSERT( nBaseline > 0, "Wrong value of Baseline while retrieving from Starmath!" ); + //nBaseline must be moved by aPrt position + const SwFlyFrmFmt *pFlyFrmFmt = pFly->GetFmt(); + ASSERT( pFlyFrmFmt, "fly frame format missing!" ); + if ( pFlyFrmFmt ) + nBaseline += pFlyFrmFmt->GetLastFlyFrmPrtRectPos().Y(); + + const SwFmtVertOrient &rVert = pFrmFmt->GetVertOrient(); + SwFmtVertOrient aVert( rVert ); + aVert.SetPos( -nBaseline ); + aVert.SetVertOrient( com::sun::star::text::VertOrientation::NONE ); + + pFrmFmt->LockModify(); + pFrmFmt->SetFmtAttr( aVert ); + pFrmFmt->UnlockModify(); + pFly->InvalidatePos(); + } +} + + +void SwFEShell::AlignAllFormulasToBaseline() +{ + StartAllAction(); + + SwStartNode *pStNd; + SwNodeIndex aIdx( *GetNodes().GetEndOfAutotext().StartOfSectionNode(), 1 ); + while ( 0 != (pStNd = aIdx.GetNode().GetStartNode()) ) + { + ++aIdx; + SwOLENode *pOleNode = dynamic_cast< SwOLENode * >( &aIdx.GetNode() ); + if ( pOleNode ) + { + const uno::Reference < embed::XEmbeddedObject > & xObj( pOleNode->GetOLEObj().GetOleRef() ); + if (xObj.is()) + { + SvGlobalName aCLSID( xObj->getClassID() ); + if ( SotExchange::IsMath( aCLSID ) ) + AlignFormulaToBaseline( xObj ); + } + } + + aIdx.Assign( *pStNd->EndOfSectionNode(), + 1 ); + } + + EndAllAction(); +} diff --git a/sw/source/core/frmedt/feshview.cxx b/sw/source/core/frmedt/feshview.cxx index af73e87a7d..87f736acd1 100644 --- a/sw/source/core/frmedt/feshview.cxx +++ b/sw/source/core/frmedt/feshview.cxx @@ -27,7 +27,9 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" + #include <com/sun/star/embed/EmbedMisc.hpp> + #include "hintids.hxx" #include <svx/sdrobjectfilter.hxx> @@ -48,9 +50,9 @@ #include <svx/svdpage.hxx> #include <svx/svdpagv.hxx> -#ifndef _POOLFMT_HRC +#include <IDocumentSettingAccess.hxx> +#include <cmdid.h> #include <poolfmt.hrc> // fuer InitFldTypes -#endif #include <frmfmt.hxx> #include <frmatr.hxx> #include <fmtfsize.hxx> @@ -2573,26 +2575,32 @@ BYTE SwFEShell::IsSelObjProtected( USHORT eType ) const nChk |= ( pObj->IsMoveProtect() ? FLYPROTECT_POS : 0 ) | ( pObj->IsResizeProtect()? FLYPROTECT_SIZE : 0 ); - if( FLYPROTECT_CONTENT & eType && pObj->ISA(SwVirtFlyDrawObj) ) + if( pObj->ISA(SwVirtFlyDrawObj) ) { SwFlyFrm *pFly = ((SwVirtFlyDrawObj*)pObj)->GetFlyFrm(); - if ( pFly->GetFmt()->GetProtect().IsCntntProtected() ) + if ( (FLYPROTECT_CONTENT & eType) && pFly->GetFmt()->GetProtect().IsCntntProtected() ) nChk |= FLYPROTECT_CONTENT; if ( pFly->Lower() && pFly->Lower()->IsNoTxtFrm() ) { SwOLENode *pNd = ((SwCntntFrm*)pFly->Lower())->GetNode()->GetOLENode(); - if ( pNd ) + uno::Reference < embed::XEmbeddedObject > xObj( pNd ? pNd->GetOLEObj().GetOleRef() : 0 ); + if ( xObj.is() ) { - uno::Reference < embed::XEmbeddedObject > xObj = pNd->GetOLEObj().GetOleRef(); - // TODO/LATER: use correct aspect - if ( xObj.is() && - embed::EmbedMisc::EMBED_NEVERRESIZE & xObj->getStatus( embed::Aspects::MSOLE_CONTENT ) ) + const bool bNeverResize = (embed::EmbedMisc::EMBED_NEVERRESIZE & xObj->getStatus( embed::Aspects::MSOLE_CONTENT )); + if ( (FLYPROTECT_CONTENT & eType) && bNeverResize ) { nChk |= FLYPROTECT_SIZE; nChk |= FLYPROTECT_FIXED; } + + // set FLYPROTECT_POS if it is a Math object anchored 'as char' and baseline alignment is activated + const bool bProtectMathPos = SotExchange::IsMath( xObj->getClassID() ) + && FLY_AS_CHAR == pFly->GetFmt()->GetAnchor().GetAnchorId() + && pDoc->get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT ); + if ((FLYPROTECT_POS & eType) && bProtectMathPos) + nChk |= FLYPROTECT_POS; } } } diff --git a/sw/source/core/frmedt/makefile.mk b/sw/source/core/frmedt/makefile.mk index 8b277f8994..45344a44f5 100644 --- a/sw/source/core/frmedt/makefile.mk +++ b/sw/source/core/frmedt/makefile.mk @@ -62,9 +62,9 @@ SLOFILES = $(EXCEPTIONSFILES) \ $(SLO)$/feflyole.obj \ $(SLO)$/feshview.obj \ $(SLO)$/fetab.obj \ - $(SLO)$/tblsel.obj EXCEPTIONSFILES=\ + $(SLO)$/tblsel.obj \ $(SLO)$/fecopy.obj \ $(SLO)$/fefly1.obj \ $(SLO)$/fews.obj diff --git a/sw/source/core/frmedt/tblsel.cxx b/sw/source/core/frmedt/tblsel.cxx index 641d97c929..0dd2e17c17 100644 --- a/sw/source/core/frmedt/tblsel.cxx +++ b/sw/source/core/frmedt/tblsel.cxx @@ -55,6 +55,7 @@ // OD 26.08.2003 #i18103# #include <sectfrm.hxx> #include <frmtool.hxx> +#include <deque> //siehe auch swtable.cxx #define COLFUZZY 20L @@ -152,8 +153,7 @@ struct _Sort_CellFrm : pFrm( &rCFrm ) {} }; -SV_DECL_VARARR( _Sort_CellFrms, _Sort_CellFrm, 16, 16 ) -SV_IMPL_VARARR( _Sort_CellFrms, _Sort_CellFrm ) +typedef std::deque< _Sort_CellFrm > _Sort_CellFrms; SV_IMPL_PTRARR( SwChartBoxes, SwTableBoxPtr ); SV_IMPL_PTRARR( SwChartLines, SwChartBoxes* ); @@ -616,9 +616,8 @@ BOOL ChkChartSel( const SwNode& rSttNd, const SwNode& rEndNd, rUnion.Top() <= nFrmBottom && nFrmBottom <= nUnionBottom+ nYFuzzy ) - aCellFrms.Insert( - _Sort_CellFrm( *(SwCellFrm*)pCell ), - aCellFrms.Count() ); + aCellFrms.push_back( + _Sort_CellFrm( *(SwCellFrm*)pCell) ); else { bValidChartSel = FALSE; @@ -643,12 +642,12 @@ BOOL ChkChartSel( const SwNode& rSttNd, const SwNode& rEndNd, // alle Zellen der (Teil-)Tabelle zusammen. Dann teste mal ob // all huebsch nebeneinander liegen. - USHORT n, nEnd, nCellCnt = 0; + size_t n, nCellCnt = 0; long nYPos = LONG_MAX; long nXPos = 0; long nHeight = 0; - for( n = 0, nEnd = aCellFrms.Count(); n < nEnd; ++n ) + for( n = 0 ; n < aCellFrms.size(); ++n ) { const _Sort_CellFrm& rCF = aCellFrms[ n ]; if( (rCF.pFrm->Frm().*fnRect->fnGetTop)() != nYPos ) @@ -699,7 +698,7 @@ BOOL ChkChartSel( const SwNode& rSttNd, const SwNode& rEndNd, { nYPos = LONG_MAX; SwChartBoxes* pBoxes = 0; - for( n = 0, nEnd = aCellFrms.Count(); n < nEnd; ++n ) + for( n = 0; n < aCellFrms.size(); ++n ) { const _Sort_CellFrm& rCF = aCellFrms[ n ]; if( (rCF.pFrm->Frm().*fnRect->fnGetTop)() != nYPos ) diff --git a/sw/source/core/inc/MarkManager.hxx b/sw/source/core/inc/MarkManager.hxx index c663844a9c..c2abd94431 100644 --- a/sw/source/core/inc/MarkManager.hxx +++ b/sw/source/core/inc/MarkManager.hxx @@ -39,9 +39,9 @@ namespace sw { namespace mark { public: MarkManager(/*[in/out]*/ SwDoc& rDoc); - +#if OSL_DEBUG_LEVEL > 1 void dumpFieldmarks( ) const; - +#endif // IDocumentMarkAccess virtual ::sw::mark::IMark* makeMark(const SwPaM& rPaM, const ::rtl::OUString& rName, IDocumentMarkAccess::MarkType eMark); diff --git a/sw/source/core/inc/cellfrm.hxx b/sw/source/core/inc/cellfrm.hxx index fb479fc865..8b45aa5e2d 100644 --- a/sw/source/core/inc/cellfrm.hxx +++ b/sw/source/core/inc/cellfrm.hxx @@ -24,8 +24,8 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _CELLFRM_HXX -#define _CELLFRM_HXX +#ifndef SW_CELLFRM_HXX +#define SW_CELLFRM_HXX #include <tools/mempool.hxx> @@ -48,7 +48,8 @@ public: virtual BOOL GetCrsrOfst( SwPosition *, Point&, SwCrsrMoveState* = 0 ) const; virtual void Modify( SfxPoolItem*, SfxPoolItem* ); - virtual void Paint( const SwRect&, const SwPrtOptions *pPrintData = NULL ) const; + virtual void Paint( SwRect const&, + SwPrintData const*const pPrintData = NULL ) const; virtual void CheckDirection( BOOL bVert ); // --> OD 2010-02-17 #i103961# diff --git a/sw/source/core/inc/flyfrm.hxx b/sw/source/core/inc/flyfrm.hxx index 1ea99ac067..2dcfcf614f 100644 --- a/sw/source/core/inc/flyfrm.hxx +++ b/sw/source/core/inc/flyfrm.hxx @@ -24,13 +24,13 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _FLYFRM_HXX -#define _FLYFRM_HXX +#ifndef SW_FLYFRM_HXX +#define SW_FLYFRM_HXX #include "layfrm.hxx" +#include "frmfmt.hxx" class SwPageFrm; -class SwFlyFrmFmt; class SwFmtFrmSize; struct SwCrsrMoveState; class SwBorderAttrs; @@ -158,7 +158,8 @@ public: virtual void Modify( SfxPoolItem*, SfxPoolItem* ); // erfrage vom Client Informationen virtual BOOL GetInfo( SfxPoolItem& ) const; - virtual void Paint( const SwRect&, const SwPrtOptions *pPrintData = NULL ) const; + virtual void Paint( SwRect const&, + SwPrintData const*const pPrintData = NULL ) const; virtual Size ChgSize( const Size& aNewSize ); virtual BOOL GetCrsrOfst( SwPosition *, Point&, SwCrsrMoveState* = 0 ) const; @@ -283,5 +284,11 @@ public: @author OD */ virtual bool IsFormatPossible() const; + + // overwriting "SwFrmFmt *SwLayoutFrm::GetFmt" to provide the correct derived return type. + // (This is in order to skip on the otherwise necessary casting of the result to + // 'SwFlyFrmFmt *' after calls to this function. The casting is now done in this function.) + virtual const SwFlyFrmFmt *GetFmt() const; + virtual SwFlyFrmFmt *GetFmt(); }; #endif diff --git a/sw/source/core/inc/frame.hxx b/sw/source/core/inc/frame.hxx index 6d61b3ab08..5707183769 100644 --- a/sw/source/core/inc/frame.hxx +++ b/sw/source/core/inc/frame.hxx @@ -24,8 +24,9 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _FRAME_HXX -#define _FRAME_HXX +#ifndef SW_FRAME_HXX +#define SW_FRAME_HXX + #include <svl/svarray.hxx> #include "swtypes.hxx" // fuer SwTwips #include "swrect.hxx" @@ -53,7 +54,7 @@ class SvxBrushItem; class SwSelectionList; struct SwPosition; struct SwCrsrMoveState; -class SwPrtOptions; +class SwPrintData; // --> OD 2004-07-06 #i28701# class SwSortedObjs; @@ -822,7 +823,8 @@ public: SwCrsrMoveState* = 0 ) const; virtual BOOL GetCharRect( SwRect &, const SwPosition&, SwCrsrMoveState* = 0 ) const; - virtual void Paint( const SwRect&, const SwPrtOptions *pPrintData = NULL ) const; + virtual void Paint( SwRect const&, + SwPrintData const*const pPrintData = NULL ) const; // der "kurze Dienstweg" zwischen den Frames und der Formatierung. // Wer den void* falsch Casted ist selbst schuld! diff --git a/sw/source/core/inc/layfrm.hxx b/sw/source/core/inc/layfrm.hxx index 9ade91ac84..d827a71f95 100644 --- a/sw/source/core/inc/layfrm.hxx +++ b/sw/source/core/inc/layfrm.hxx @@ -24,8 +24,8 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _LAYFRM_HXX -#define _LAYFRM_HXX +#ifndef SW_LAYFRM_HXX +#define SW_LAYFRM_HXX #include "frame.hxx" @@ -105,7 +105,8 @@ public: SwLayoutFrm( SwFrmFmt* ); ~SwLayoutFrm(); - virtual void Paint( const SwRect&, const SwPrtOptions *pPrintData = NULL ) const; + virtual void Paint( SwRect const&, + SwPrintData const*const pPrintData = NULL ) const; const SwFrm *Lower() const { return pLower; } SwFrm *Lower() { return pLower; } const SwCntntFrm *ContainsCntnt() const; @@ -123,9 +124,9 @@ public: // <-- BOOL IsAnLower( const SwFrm * ) const; - const SwFrmFmt *GetFmt() const { return (const SwFrmFmt*)GetDep(); } - SwFrmFmt *GetFmt() { return (SwFrmFmt*)GetDep(); } - void SetFrmFmt( SwFrmFmt* ); + virtual const SwFrmFmt *GetFmt() const; + virtual SwFrmFmt *GetFmt(); + void SetFrmFmt( SwFrmFmt* ); //Verschieben der Ftns aller Lower - ab dem StartCntnt. //TRUE wenn mindestens eine Ftn verschoben wurde. @@ -206,4 +207,4 @@ inline SwFrm* SwLayoutFrm::GetLastLower() return const_cast<SwFrm*>(static_cast<const SwLayoutFrm*>(this)->GetLastLower()); } -#endif //_LAYFRM_HXX +#endif // SW_LAYFRM_HXX diff --git a/sw/source/core/inc/mvsave.hxx b/sw/source/core/inc/mvsave.hxx index 0f821849cb..25e9a6fe6a 100644 --- a/sw/source/core/inc/mvsave.hxx +++ b/sw/source/core/inc/mvsave.hxx @@ -24,14 +24,11 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _MVSAVE_HXX -#define _MVSAVE_HXX - +#ifndef SW_MVSAVE_HXX +#define SW_MVSAVE_HXX #include <tools/string.hxx> -#ifndef _KEYCOD_HXX //autogen #include <vcl/keycod.hxx> -#endif #include <svl/svarray.hxx> #include <IDocumentMarkAccess.hxx> #include <vector> @@ -150,25 +147,10 @@ public: // Crsr verschieben kann // die Funktionen rufen nicht die SwDoc::Corr - Methoden! - // Setzt alle PaMs an OldPos auf NewPos + Offset -void PaMCorrAbs( const SwPosition &rOldPos, - const SwPosition &rNewPos, - const xub_StrLen nOffset = 0 ); - - // Setzt alle PaMs in OldNode auf NewPos + Offset -void PaMCorrAbs( const SwNodeIndex &rOldNode, - const SwPosition &rNewPos, - const xub_StrLen nOffset = 0 ); - // Setzt alle PaMs im Bereich vom Range nach NewPos void PaMCorrAbs( const SwPaM& rRange, const SwPosition& rNewPos ); - // Setzt alle PaMs im Bereich von [StartNode, EndNode] nach NewPos -void PaMCorrAbs( const SwNodeIndex &rStartNode, - const SwNodeIndex &rEndNode, - const SwPosition &rNewPos ); - // Setzt alle PaMs in OldNode auf relative Pos void PaMCorrRel( const SwNodeIndex &rOldNode, const SwPosition &rNewPos, @@ -227,5 +209,5 @@ public: }; -#endif // _MVSAVE_HXX +#endif // SW_MVSAVE_HXX diff --git a/sw/source/core/inc/notxtfrm.hxx b/sw/source/core/inc/notxtfrm.hxx index 0da68a3a53..ec18c44050 100644 --- a/sw/source/core/inc/notxtfrm.hxx +++ b/sw/source/core/inc/notxtfrm.hxx @@ -24,8 +24,8 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _NOTXTFRM_HXX -#define _NOTXTFRM_HXX +#ifndef SW_NOTXTFRM_HXX +#define SW_NOTXTFRM_HXX #include <cntfrm.hxx> @@ -56,7 +56,8 @@ public: ~SwNoTxtFrm(); virtual void Modify( SfxPoolItem*, SfxPoolItem* ); - virtual void Paint(const SwRect&, const SwPrtOptions *pPrintData = NULL ) const; + virtual void Paint( SwRect const&, + SwPrintData const*const pPrintData = NULL ) const; virtual BOOL GetCharRect( SwRect &, const SwPosition&, SwCrsrMoveState* = 0) const; BOOL GetCrsrOfst(SwPosition* pPos, Point& aPoint, diff --git a/sw/source/core/inc/rootfrm.hxx b/sw/source/core/inc/rootfrm.hxx index 5de7604ae7..50dbd394b4 100644 --- a/sw/source/core/inc/rootfrm.hxx +++ b/sw/source/core/inc/rootfrm.hxx @@ -24,8 +24,9 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _ROOTFRM_HXX -#define _ROOTFRM_HXX +#ifndef SW_ROOTFRM_HXX +#define SW_ROOTFRM_HXX + #include "layfrm.hxx" class SwCntntFrm; @@ -197,7 +198,8 @@ public: virtual BOOL GetCrsrOfst( SwPosition *, Point&, SwCrsrMoveState* = 0 ) const; - virtual void Paint( const SwRect&, const SwPrtOptions *pPrintData = NULL ) const; + virtual void Paint( SwRect const&, + SwPrintData const*const pPrintData = NULL ) const; virtual SwTwips ShrinkFrm( SwTwips, BOOL bTst = FALSE, BOOL bInfo = FALSE ); virtual SwTwips GrowFrm ( SwTwips, BOOL bTst = FALSE, BOOL bInfo = FALSE ); #ifdef DBG_UTIL @@ -365,5 +367,5 @@ inline void SwRootFrm::SetVirtPageNum( const BOOL bOf) const ((SwRootFrm*)this)->bIsVirtPageNum = bOf; } -#endif //_ROOTFRM_HXX +#endif // SW_ROOTFRM_HXX diff --git a/sw/source/core/inc/scriptinfo.hxx b/sw/source/core/inc/scriptinfo.hxx index efeb702ad9..910385285d 100644 --- a/sw/source/core/inc/scriptinfo.hxx +++ b/sw/source/core/inc/scriptinfo.hxx @@ -139,24 +139,24 @@ public: inline BYTE GetDefaultDir() const { return nDefaultDir; }; // array operations, nCnt refers to array position - inline USHORT CountScriptChg() const; - inline xub_StrLen GetScriptChg( const USHORT nCnt ) const; + inline size_t CountScriptChg() const; + inline xub_StrLen GetScriptChg( const size_t nCnt ) const; inline BYTE GetScriptType( const USHORT nCnt ) const; - inline USHORT CountDirChg() const; - inline xub_StrLen GetDirChg( const USHORT nCnt ) const; - inline BYTE GetDirType( const USHORT nCnt ) const; + inline size_t CountDirChg() const; + inline xub_StrLen GetDirChg( const size_t nCnt ) const; + inline BYTE GetDirType( const size_t nCnt ) const; - inline USHORT CountKashida() const; - inline xub_StrLen GetKashida( const USHORT nCnt ) const; + inline size_t CountKashida() const; + inline xub_StrLen GetKashida( const size_t nCnt ) const; - inline USHORT CountCompChg() const; - inline xub_StrLen GetCompStart( const USHORT nCnt ) const; - inline xub_StrLen GetCompLen( const USHORT nCnt ) const; - inline BYTE GetCompType( const USHORT nCnt ) const; + inline size_t CountCompChg() const; + inline xub_StrLen GetCompStart( const size_t nCnt ) const; + inline xub_StrLen GetCompLen( const size_t nCnt ) const; + inline BYTE GetCompType( const size_t nCnt ) const; - inline USHORT CountHiddenChg() const; - inline xub_StrLen GetHiddenChg( const USHORT nCnt ) const; + inline size_t CountHiddenChg() const; + inline xub_StrLen GetHiddenChg( const size_t nCnt ) const; static void CalcHiddenRanges( const SwTxtNode& rNode, MultiSelection& rHiddenMulti ); @@ -356,59 +356,59 @@ inline void SwScriptInfo::SetInvalidity( const xub_StrLen nPos ) if ( nPos < nInvalidityPos ) nInvalidityPos = nPos; }; -inline USHORT SwScriptInfo::CountScriptChg() const { return aScriptChg.Count(); } -inline xub_StrLen SwScriptInfo::GetScriptChg( const USHORT nCnt ) const +inline size_t SwScriptInfo::CountScriptChg() const { return aScriptChg.size(); } +inline xub_StrLen SwScriptInfo::GetScriptChg( const size_t nCnt ) const { - ASSERT( nCnt < aScriptChg.Count(),"No ScriptChange today!"); + ASSERT( nCnt < aScriptChg.size(),"No ScriptChange today!"); return aScriptChg[ nCnt ]; } inline BYTE SwScriptInfo::GetScriptType( const xub_StrLen nCnt ) const { - ASSERT( nCnt < aScriptChg.Count(),"No ScriptType today!"); + ASSERT( nCnt < aScriptType.size(),"No ScriptType today!"); return aScriptType[ nCnt ]; } -inline USHORT SwScriptInfo::CountDirChg() const { return aDirChg.Count(); } -inline xub_StrLen SwScriptInfo::GetDirChg( const USHORT nCnt ) const +inline size_t SwScriptInfo::CountDirChg() const { return aDirChg.size(); } +inline xub_StrLen SwScriptInfo::GetDirChg( const size_t nCnt ) const { - ASSERT( nCnt < aDirChg.Count(),"No DirChange today!"); + ASSERT( nCnt < aDirChg.size(),"No DirChange today!"); return aDirChg[ nCnt ]; } -inline BYTE SwScriptInfo::GetDirType( const xub_StrLen nCnt ) const +inline BYTE SwScriptInfo::GetDirType( const size_t nCnt ) const { - ASSERT( nCnt < aDirChg.Count(),"No DirType today!"); + ASSERT( nCnt < aDirType.size(),"No DirType today!"); return aDirType[ nCnt ]; } -inline USHORT SwScriptInfo::CountKashida() const { return aKashida.Count(); } -inline xub_StrLen SwScriptInfo::GetKashida( const USHORT nCnt ) const +inline size_t SwScriptInfo::CountKashida() const { return aKashida.size(); } +inline xub_StrLen SwScriptInfo::GetKashida( const size_t nCnt ) const { - ASSERT( nCnt < aKashida.Count(),"No Kashidas today!"); + ASSERT( nCnt < aKashida.size(),"No Kashidas today!"); return aKashida[ nCnt ]; } -inline USHORT SwScriptInfo::CountCompChg() const { return aCompChg.Count(); }; -inline xub_StrLen SwScriptInfo::GetCompStart( const USHORT nCnt ) const +inline size_t SwScriptInfo::CountCompChg() const { return aCompChg.size(); }; +inline xub_StrLen SwScriptInfo::GetCompStart( const size_t nCnt ) const { - ASSERT( nCnt < aCompChg.Count(),"No CompressionStart today!"); + ASSERT( nCnt < aCompChg.size(),"No CompressionStart today!"); return aCompChg[ nCnt ]; } -inline xub_StrLen SwScriptInfo::GetCompLen( const USHORT nCnt ) const +inline xub_StrLen SwScriptInfo::GetCompLen( const size_t nCnt ) const { - ASSERT( nCnt < aCompChg.Count(),"No CompressionLen today!"); + ASSERT( nCnt < aCompLen.size(),"No CompressionLen today!"); return aCompLen[ nCnt ]; } -inline BYTE SwScriptInfo::GetCompType( const USHORT nCnt ) const +inline BYTE SwScriptInfo::GetCompType( const size_t nCnt ) const { - ASSERT( nCnt < aCompChg.Count(),"No CompressionType today!"); + ASSERT( nCnt < aCompType.size(),"No CompressionType today!"); return aCompType[ nCnt ]; } -inline USHORT SwScriptInfo::CountHiddenChg() const { return aHiddenChg.Count(); }; -inline xub_StrLen SwScriptInfo::GetHiddenChg( const USHORT nCnt ) const +inline size_t SwScriptInfo::CountHiddenChg() const { return aHiddenChg.size(); }; +inline xub_StrLen SwScriptInfo::GetHiddenChg( const size_t nCnt ) const { - ASSERT( nCnt < aHiddenChg.Count(),"No HiddenChg today!"); + ASSERT( nCnt < aHiddenChg.size(),"No HiddenChg today!"); return aHiddenChg[ nCnt ]; } diff --git a/sw/source/core/inc/tabfrm.hxx b/sw/source/core/inc/tabfrm.hxx index 0383152d00..787b5fba8c 100644 --- a/sw/source/core/inc/tabfrm.hxx +++ b/sw/source/core/inc/tabfrm.hxx @@ -24,8 +24,8 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _TABFRM_HXX -#define _TABFRM_HXX +#ifndef SW_TABFRM_HXX +#define SW_TABFRM_HXX #include <tools/mempool.hxx> #include "layfrm.hxx" @@ -129,7 +129,8 @@ public: virtual void Modify( SfxPoolItem*, SfxPoolItem* ); virtual BOOL GetInfo( SfxPoolItem &rHnt ) const; - virtual void Paint( const SwRect&, const SwPrtOptions *pPrintData = NULL ) const; + virtual void Paint( SwRect const&, + SwPrintData const*const pPrintData = NULL ) const; virtual void CheckDirection( BOOL bVert ); virtual void Cut(); @@ -230,4 +231,4 @@ inline SwTabFrm *SwTabFrm::GetFollow() return (SwTabFrm*)SwFlowFrm::GetFollow(); } -#endif //_TABFRM_HXX +#endif // SW_TABFRM_HXX diff --git a/sw/source/core/inc/txmsrt.hxx b/sw/source/core/inc/txmsrt.hxx index ca494527fc..3a11e267db 100644 --- a/sw/source/core/inc/txmsrt.hxx +++ b/sw/source/core/inc/txmsrt.hxx @@ -24,8 +24,8 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _TXMSRT_HXX -#define _TXMSRT_HXX +#ifndef SW_TXMSRT_HXX +#define SW_TXMSRT_HXX #include <i18npool/lang.h> #include <tox.hxx> @@ -154,7 +154,7 @@ private: String sSortTxt; String sSortTxtReading; - virtual void _GetText( String&, String& ) = 0; + virtual void GetText_Impl( String&, String& ) const = 0; }; inline void SwTOXSortTabBase::GetTxt( String& rSortTxt, @@ -163,7 +163,7 @@ inline void SwTOXSortTabBase::GetTxt( String& rSortTxt, if( !bValidTxt ) { SwTOXSortTabBase* pThis = (SwTOXSortTabBase*)this; - pThis->_GetText( pThis->sSortTxt, pThis->sSortTxtReading ); + pThis->GetText_Impl( pThis->sSortTxt, pThis->sSortTxtReading ); pThis->bValidTxt = TRUE; } @@ -194,7 +194,7 @@ struct SwTOXIndex : public SwTOXSortTabBase virtual BOOL operator<( const SwTOXSortTabBase& ); private: - virtual void _GetText( String&, String& ); + virtual void GetText_Impl( String&, String& ) const; BYTE nKeyLevel; }; @@ -211,7 +211,7 @@ struct SwTOXCustom : public SwTOXSortTabBase virtual BOOL operator<( const SwTOXSortTabBase& ); private: - virtual void _GetText( String&, String& ); + virtual void GetText_Impl( String&, String& ) const; String aKey; String sReading; @@ -231,7 +231,7 @@ struct SwTOXContent : public SwTOXSortTabBase virtual void FillText( SwTxtNode& rNd, const SwIndex& rInsPos, USHORT nAuthField = 0 ) const; virtual USHORT GetLevel() const; private: - virtual void _GetText( String&, String& ); + virtual void GetText_Impl( String&, String& ) const; }; @@ -248,7 +248,7 @@ struct SwTOXPara : public SwTOXSortTabBase virtual String GetURL() const; private: - virtual void _GetText( String&, String& ); + virtual void GetText_Impl( String&, String& ) const; SwTOXElement eType; USHORT m_nLevel; @@ -267,7 +267,7 @@ struct SwTOXTable : public SwTOXSortTabBase virtual String GetURL() const; private: - virtual void _GetText( String&, String& ); + virtual void GetText_Impl( String&, String& ) const; USHORT nLevel; }; @@ -277,7 +277,7 @@ struct SwTOXAuthority : public SwTOXSortTabBase private: SwFmtFld& m_rField; virtual void FillText( SwTxtNode& rNd, const SwIndex& rInsPos, USHORT nAuthField = 0 ) const; - virtual void _GetText( String&, String& ); + virtual void GetText_Impl( String&, String& ) const; public: SwTOXAuthority( const SwCntntNode& rNd, SwFmtFld& rField, const SwTOXInternational& rIntl ); @@ -291,4 +291,4 @@ public: }; -#endif // _TXMSRT_HXX +#endif // SW_TXMSRT_HXX diff --git a/sw/source/core/inc/txtfrm.hxx b/sw/source/core/inc/txtfrm.hxx index bdaadecf64..9dc3ece46a 100644 --- a/sw/source/core/inc/txtfrm.hxx +++ b/sw/source/core/inc/txtfrm.hxx @@ -24,8 +24,9 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _TXTFRM_HXX -#define _TXTFRM_HXX +#ifndef SW_TXTFRM_HXX +#define SW_TXTFRM_HXX + #include <tools/mempool.hxx> #include <tools/string.hxx> #include "cntfrm.hxx" @@ -292,7 +293,8 @@ public: void PaintExtraData( const SwRect & rRect ) const; //Seitennummer usw. SwRect Paint(); - virtual void Paint( const SwRect &, const SwPrtOptions *pPrintData = NULL ) const; + virtual void Paint( SwRect const&, + SwPrintData const*const pPrintData = NULL ) const; virtual void Modify( SfxPoolItem*, SfxPoolItem* ); virtual sal_Bool GetInfo( SfxPoolItem & ) const; diff --git a/sw/source/core/inc/viewimp.hxx b/sw/source/core/inc/viewimp.hxx index 7b4a87a53b..6387bde937 100644 --- a/sw/source/core/inc/viewimp.hxx +++ b/sw/source/core/inc/viewimp.hxx @@ -24,8 +24,10 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _VIEWIMP_HXX -#define _VIEWIMP_HXX +#ifndef SW_VIEWIMP_HXX +#define SW_VIEWIMP_HXX + +#include <vector> #include <vcl/timer.hxx> #include <tools/color.hxx> @@ -53,10 +55,9 @@ struct SdrPaintProcRec; class SwAccessibleMap; class SdrObject; class Fraction; -class SwPrtOptions; +class SwPrintData; class SwPagePreviewLayout; struct PrevwPage; -#include <vector> class SwTxtFrm; class SwViewImp @@ -215,7 +216,7 @@ public: // and <heaven>. // OD 25.06.2003 #108784# - correct type of 1st parameter void PaintLayer( const SdrLayerID _nLayerID, - const SwPrtOptions *pPrintData, + SwPrintData const*const pPrintData, const SwRect& _rRect, const Color* _pPageBackgrdColor = 0, const bool _bIsPageRightToLeft = false ) const; @@ -360,5 +361,5 @@ inline void SwViewImp::AddAccessibleObj( const SdrObject *pObj ) SwRect aEmptyRect; MoveAccessible( 0, pObj, aEmptyRect ); } -#endif //_VIEWIMP_HXX +#endif // SW_VIEWIMP_HXX diff --git a/sw/source/core/layout/calcmove.cxx b/sw/source/core/layout/calcmove.cxx index 28d3a9b307..318beefcd6 100644 --- a/sw/source/core/layout/calcmove.cxx +++ b/sw/source/core/layout/calcmove.cxx @@ -1004,10 +1004,11 @@ BOOL SwCntntFrm::MakePrtArea( const SwBorderAttrs &rAttrs ) SwAnchoredObject* pObj = (*GetDrawObjs())[i]; const SwFrmFmt& rFmt = pObj->GetFrmFmt(); const BOOL bFly = pObj->ISA(SwFlyFrm); - if ( bFly && - WEIT_WECH == pObj->GetObjRect().Width()|| - rFmt.GetFrmSize().GetWidthPercent() ) + if ((bFly && (WEIT_WECH == pObj->GetObjRect().Width())) + || rFmt.GetFrmSize().GetWidthPercent()) + { continue; + } if ( FLY_AS_CHAR == rFmt.GetAnchor().GetAnchorId() ) { diff --git a/sw/source/core/layout/fly.cxx b/sw/source/core/layout/fly.cxx index 7b09b9983e..58efef39b4 100644 --- a/sw/source/core/layout/fly.cxx +++ b/sw/source/core/layout/fly.cxx @@ -1273,6 +1273,7 @@ void SwFlyFrm::ChgRelPos( const Point &rNewPos ) aHori.SetPos( nTmpX ); aSet.Put( aHori ); } + SetCurrRelPos( rNewPos ); pFmt->GetDoc()->SetAttr( aSet, *pFmt ); } } @@ -2851,3 +2852,14 @@ bool SwFlyFrm::IsFormatPossible() const return SwAnchoredObject::IsFormatPossible() && !IsLocked() && !IsColLocked(); } + +const SwFlyFrmFmt * SwFlyFrm::GetFmt() const +{ + return static_cast< const SwFlyFrmFmt * >( GetDep() ); +} + +SwFlyFrmFmt * SwFlyFrm::GetFmt() +{ + return static_cast< SwFlyFrmFmt * >( GetDep() ); +} + diff --git a/sw/source/core/layout/flyincnt.cxx b/sw/source/core/layout/flyincnt.cxx index 7956827165..e6a9c1472e 100644 --- a/sw/source/core/layout/flyincnt.cxx +++ b/sw/source/core/layout/flyincnt.cxx @@ -358,3 +358,4 @@ void SwFlyInCntFrm::MakeAll() } Unlock(); } + diff --git a/sw/source/core/layout/frmtool.cxx b/sw/source/core/layout/frmtool.cxx index b525043dc3..471cf61cd3 100644 --- a/sw/source/core/layout/frmtool.cxx +++ b/sw/source/core/layout/frmtool.cxx @@ -1738,7 +1738,7 @@ void MakeFrms( SwDoc *pDoc, const SwNodeIndex &rSttIdx, // die in den Fussnoten liegen, nicht etwa die (spaltigen) Bereiche, // in denen die Fussnoten(Container) liegen. // #109767# Table frame is in section, insert section in cell frame. - if( pSct && ( pFtnFrm && !pSct->IsInFtn() ) || pUpper->IsCellFrm() ) + if( pSct && ((pFtnFrm && !pSct->IsInFtn()) || pUpper->IsCellFrm()) ) pSct = NULL; if( pSct ) { // damit der SectionFrm nicht zerstoert wird durch pTmp->MoveFwd() diff --git a/sw/source/core/layout/layact.cxx b/sw/source/core/layout/layact.cxx index 2d1291a7b2..73e7032cf6 100644 --- a/sw/source/core/layout/layact.cxx +++ b/sw/source/core/layout/layact.cxx @@ -2430,7 +2430,7 @@ SwLayIdle::SwLayIdle( SwRootFrm *pRt, SwViewImp *pI ) : #endif bVis = ((SwCrsrShell*)pSh)->GetCharRect().IsOver(pSh->VisArea()); } - aBools.Insert( bVis, aBools.Count() ); + aBools.push_back( bVis ); pSh = (ViewShell*)pSh->GetNext(); } while ( pSh != pImp->GetShell() ); diff --git a/sw/source/core/layout/laycache.cxx b/sw/source/core/layout/laycache.cxx index 58bd439634..b0148cb96d 100644 --- a/sw/source/core/layout/laycache.cxx +++ b/sw/source/core/layout/laycache.cxx @@ -102,7 +102,7 @@ void SwLayCacheImpl::Insert( USHORT nType, ULONG nIndex, xub_StrLen nOffset ) { aType.Insert( nType, aType.Count() ); SvULongs::Insert( nIndex, SvULongs::Count() ); - aOffset.Insert( nOffset, aOffset.Count() ); + aOffset.push_back( nOffset ); } BOOL SwLayCacheImpl::Read( SvStream& rStream ) @@ -1238,12 +1238,12 @@ SwLayCacheIoImpl::SwLayCacheIoImpl( SvStream& rStrm, BOOL bWrtMd ) : BOOL SwLayCacheIoImpl::OpenRec( BYTE cType ) { BOOL bRes = TRUE; - UINT16 nLvl = aRecTypes.Count(); + size_t nLvl = aRecTypes.size(); ASSERT( nLvl == aRecSizes.Count(), "OpenRec: Level" ); UINT32 nPos = pStream->Tell(); if( bWriteMode ) { - aRecTypes.Insert( cType, nLvl ); + aRecTypes.push_back( cType ); aRecSizes.Insert( nPos, nLvl ); *pStream << (UINT32) 0; } @@ -1252,7 +1252,7 @@ BOOL SwLayCacheIoImpl::OpenRec( BYTE cType ) UINT32 nVal; *pStream >> nVal; BYTE cRecTyp = (BYTE)nVal; - aRecTypes.Insert( cRecTyp, nLvl ); + aRecTypes.push_back( cRecTyp ); sal_uInt32 nSize = nVal >> 8; aRecSizes.Insert( nPos + nSize, nLvl ); if( !nVal || cRecTyp != cType || @@ -1261,7 +1261,7 @@ BOOL SwLayCacheIoImpl::OpenRec( BYTE cType ) ASSERT( nVal, "OpenRec: Record-Header is 0" ); ASSERT( cRecTyp == cType, "OpenRec: Wrong Record Type" ); - aRecTypes[nLvl] = 0; + aRecTypes.back() = 0; aRecSizes[nLvl] = pStream->Tell(); bRes = sal_False; bError = TRUE; @@ -1275,7 +1275,7 @@ BOOL SwLayCacheIoImpl::OpenRec( BYTE cType ) BOOL SwLayCacheIoImpl::CloseRec( BYTE ) { BOOL bRes = TRUE; - UINT16 nLvl = aRecTypes.Count(); + size_t nLvl = aRecTypes.size(); ASSERT( nLvl == aRecSizes.Count(), "CloseRec: wrong Level" ); ASSERT( nLvl, "CloseRec: no levels" ); if( nLvl ) @@ -1287,7 +1287,7 @@ BOOL SwLayCacheIoImpl::CloseRec( BYTE ) UINT32 nBgn = aRecSizes[nLvl]; pStream->Seek( nBgn ); UINT32 nSize = nPos - nBgn; - UINT32 nVal = ( nSize << 8 ) | aRecTypes[nLvl]; + UINT32 nVal = ( nSize << 8 ) | aRecTypes.back(); *pStream << nVal; pStream->Seek( nPos ); if( pStream->GetError() != SVSTREAM_OK ) @@ -1307,7 +1307,7 @@ BOOL SwLayCacheIoImpl::CloseRec( BYTE ) bRes = FALSE; } - aRecTypes.Remove( nLvl, 1 ); + aRecTypes.pop_back(); aRecSizes.Remove( nLvl, 1 ); } diff --git a/sw/source/core/layout/layhelp.hxx b/sw/source/core/layout/layhelp.hxx index 5965d0b9ab..fe4290322d 100644 --- a/sw/source/core/layout/layhelp.hxx +++ b/sw/source/core/layout/layhelp.hxx @@ -71,11 +71,11 @@ class SwLayCacheImpl : public SvULongs void Insert( USHORT nType, ULONG nIndex, xub_StrLen nOffset ); public: - SwLayCacheImpl() : SvULongs( 20, 10 ), aOffset( 20, 10 ), aType( 20, 10 ) {} + SwLayCacheImpl() : SvULongs( 20, 10 ), aType( 20, 10 ) {} BOOL Read( SvStream& rStream ); ULONG GetBreakIndex( USHORT nIdx ) const { return GetObject( nIdx ); } - xub_StrLen GetBreakOfst( USHORT nIdx ) const { return aOffset[ nIdx ]; } + xub_StrLen GetBreakOfst( size_t nIdx ) const { return aOffset[ nIdx ]; } USHORT GetBreakType( USHORT nIdx ) const { return aType[ nIdx ]; } USHORT GetFlyCount() const { return aFlyCache.Count(); } diff --git a/sw/source/core/layout/makefile.mk b/sw/source/core/layout/makefile.mk index 7019203aa2..076069b513 100644 --- a/sw/source/core/layout/makefile.mk +++ b/sw/source/core/layout/makefile.mk @@ -49,6 +49,7 @@ CDEFS+=-DDEBUG EXCEPTIONSFILES = \ $(SLO)$/anchoreddrawobject.obj \ $(SLO)$/flycnt.obj \ + $(SLO)$/layact.obj \ $(SLO)$/laycache.obj \ $(SLO)$/layouter.obj \ $(SLO)$/movedfwdfrmsbyobjpos.obj \ diff --git a/sw/source/core/layout/pagechg.cxx b/sw/source/core/layout/pagechg.cxx index 8ced3ab17a..f58388cc31 100644 --- a/sw/source/core/layout/pagechg.cxx +++ b/sw/source/core/layout/pagechg.cxx @@ -1827,10 +1827,11 @@ void SwRootFrm::ImplCalcBrowseWidth() SwAnchoredObject* pAnchoredObj = (*pFrm->GetDrawObjs())[i]; const SwFrmFmt& rFmt = pAnchoredObj->GetFrmFmt(); const BOOL bFly = pAnchoredObj->ISA(SwFlyFrm); - if ( bFly && - WEIT_WECH == pAnchoredObj->GetObjRect().Width()|| - rFmt.GetFrmSize().GetWidthPercent() ) + if ((bFly && (WEIT_WECH == pAnchoredObj->GetObjRect().Width())) + || rFmt.GetFrmSize().GetWidthPercent()) + { continue; + } long nWidth = 0; switch ( rFmt.GetAnchor().GetAnchorId() ) diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index 3c6d08242b..886fafedc8 100644 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -30,12 +30,7 @@ #include <com/sun/star/text/HoriOrientation.hpp> - -#include <hintids.hxx> - -#ifndef _SOUND_HXX //autogen #include <vcl/sound.hxx> -#endif #include <tools/poly.hxx> #define _SVSTDARR_LONGS #include <svl/svstdarr.hxx> @@ -49,19 +44,15 @@ // --> collapsing borders FME 2005-05-27 #i29550# #include <svx/framelink.hxx> // <-- -#ifndef _GRAPH_HXX //autogen #include <vcl/graph.hxx> -#endif #include <svx/svdpagv.hxx> -#include <tgrditem.hxx> - +#include <hintids.hxx> +#include <tgrditem.hxx> #include <fmtsrnd.hxx> #include <fmtclds.hxx> #include <tools/shl.hxx> -#ifndef _COMCORE_HRC #include <comcore.hrc> -#endif #include <swmodule.hxx> #include <rootfrm.hxx> #include <pagefrm.hxx> @@ -89,15 +80,11 @@ #include <ptqueue.hxx> #include <noteurl.hxx> #include <virtoutp.hxx> -#ifndef _LINEINFO_HXX #include <lineinfo.hxx> -#endif #include <dbg_lay.hxx> #include <accessibilityoptions.hxx> // OD 20.12.2002 #94627# -#ifndef _DOCSH_HXX #include <docsh.hxx> -#endif // OD 28.02.2003 #b4779636#, #107692# #include <swtable.hxx> // OD 02.07.2003 #108784# @@ -2735,7 +2722,8 @@ void SwTabFrmPainter::Insert( SwLineEntry& rNew, bool bHori ) |* |*************************************************************************/ -void SwRootFrm::Paint( const SwRect& rRect, const SwPrtOptions *pPrintData ) const +void +SwRootFrm::Paint(SwRect const& rRect, SwPrintData const*const pPrintData) const { ASSERT( Lower() && Lower()->IsPageFrm(), "Lower der Root keine Seite." ); @@ -3185,7 +3173,7 @@ SwShortCut::SwShortCut( const SwFrm& rFrm, const SwRect& rRect ) } } -void SwLayoutFrm::Paint( const SwRect& rRect, const SwPrtOptions* /* pPrintData */ ) const +void SwLayoutFrm::Paint(SwRect const& rRect, SwPrintData const*const) const { ViewShell *pSh = GetShell(); @@ -3473,7 +3461,7 @@ BOOL SwFlyFrm::IsPaint( SdrObject *pObj, const ViewShell *pSh ) /************************************************************************* |* SwCellFrm::Paint( const SwRect& ) const |*************************************************************************/ -void SwCellFrm::Paint( const SwRect& rRect, const SwPrtOptions* /* pPrintData */ ) const +void SwCellFrm::Paint(SwRect const& rRect, SwPrintData const*const) const { if ( GetLayoutRowSpan() >= 1 ) SwLayoutFrm::Paint( rRect ); @@ -3492,7 +3480,7 @@ void SwCellFrm::Paint( const SwRect& rRect, const SwPrtOptions* /* pPrintData */ void MA_FASTCALL lcl_PaintLowerBorders( const SwLayoutFrm *pLay, const SwRect &rRect, const SwPageFrm *pPage ); -void SwFlyFrm::Paint( const SwRect& rRect, const SwPrtOptions* /* pPrintData */ ) const +void SwFlyFrm::Paint(SwRect const& rRect, SwPrintData const*const) const { //wegen der Ueberlappung von Rahmen und Zeichenobjekten muessen die //Flys ihre Umrandung (und die der Innenliegenden) direkt ausgeben. @@ -3727,7 +3715,7 @@ void SwFlyFrm::Paint( const SwRect& rRect, const SwPrtOptions* /* pPrintData */ |* |*************************************************************************/ -void SwTabFrm::Paint( const SwRect& rRect, const SwPrtOptions* /* pPrintData */ ) const +void SwTabFrm::Paint(SwRect const& rRect, SwPrintData const*const) const { if ( pGlobalShell->GetViewOptions()->IsTable() ) { diff --git a/sw/source/core/layout/ssfrm.cxx b/sw/source/core/layout/ssfrm.cxx index b9a6365435..2f0bb91e7b 100644 --- a/sw/source/core/layout/ssfrm.cxx +++ b/sw/source/core/layout/ssfrm.cxx @@ -414,6 +414,19 @@ SwFrm::~SwFrm() #endif } +/*************************************************************************/ + +const SwFrmFmt * SwLayoutFrm::GetFmt() const +{ + return static_cast< const SwFlyFrmFmt * >( GetDep() ); +} + +SwFrmFmt * SwLayoutFrm::GetFmt() +{ + return static_cast< SwFlyFrmFmt * >( GetDep() ); +} + + /************************************************************************* |* |* SwLayoutFrm::SetFrmFmt() diff --git a/sw/source/core/layout/trvlfrm.cxx b/sw/source/core/layout/trvlfrm.cxx index 380a6bfba2..5ff8118f11 100644 --- a/sw/source/core/layout/trvlfrm.cxx +++ b/sw/source/core/layout/trvlfrm.cxx @@ -1811,10 +1811,10 @@ USHORT SwFrm::GetVirtPageNum() const const SwFrm *pFrm = 0; const SfxItemPool &rPool = pPage->GetFmt()->GetDoc()->GetAttrPool(); const SfxPoolItem* pItem; - USHORT nMaxItems = rPool.GetItemCount( RES_PAGEDESC ); - for( USHORT n = 0; n < nMaxItems; ++n ) + sal_uInt32 nMaxItems = rPool.GetItemCount2( RES_PAGEDESC ); + for( sal_uInt32 n = 0; n < nMaxItems; ++n ) { - if( 0 == (pItem = rPool.GetItem( RES_PAGEDESC, n ) )) + if( 0 == (pItem = rPool.GetItem2( RES_PAGEDESC, n ) )) continue; const SwFmtPageDesc *pDesc = (SwFmtPageDesc*)pItem; diff --git a/sw/source/core/layout/unusedf.cxx b/sw/source/core/layout/unusedf.cxx index 1c5d00a744..a3dd5eda4c 100644 --- a/sw/source/core/layout/unusedf.cxx +++ b/sw/source/core/layout/unusedf.cxx @@ -28,8 +28,6 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" - - #include "rootfrm.hxx" #include "cntfrm.hxx" #include "flyfrm.hxx" @@ -41,7 +39,7 @@ void SwFrm::Format( const SwBorderAttrs * ) ASSERT( FALSE, "Format() der Basisklasse gerufen." ); } -void SwFrm::Paint(const SwRect &, const SwPrtOptions * ) const +void SwFrm::Paint(SwRect const&, SwPrintData const*const) const { ASSERT( FALSE, "Paint() der Basisklasse gerufen." ); } diff --git a/sw/source/core/objectpositioning/ascharanchoredobjectposition.cxx b/sw/source/core/objectpositioning/ascharanchoredobjectposition.cxx index f8b2db9b55..6d42785291 100644 --- a/sw/source/core/objectpositioning/ascharanchoredobjectposition.cxx +++ b/sw/source/core/objectpositioning/ascharanchoredobjectposition.cxx @@ -455,3 +455,4 @@ sal_uInt8 SwAsCharAnchoredObjectPosition::GetLineAlignment() const { return mnLineAlignment; } + diff --git a/sw/source/core/ole/ndole.cxx b/sw/source/core/ole/ndole.cxx index a901d3c7c7..479842ce5a 100644 --- a/sw/source/core/ole/ndole.cxx +++ b/sw/source/core/ole/ndole.cxx @@ -781,7 +781,7 @@ BOOL SwOLEObj::IsOleRef() const return xOLERef.is(); } -uno::Reference < embed::XEmbeddedObject > SwOLEObj::GetOleRef() +const uno::Reference < embed::XEmbeddedObject > SwOLEObj::GetOleRef() { if( !xOLERef.is() ) { @@ -1016,3 +1016,4 @@ void SwOLELRUCache::RemoveObj( SwOLEObj& rObj ) if( !Count() ) DELETEZ( pOLELRU_Cache ); } + diff --git a/sw/source/core/text/frmpaint.cxx b/sw/source/core/text/frmpaint.cxx index e8fc5b382b..142c53450a 100644 --- a/sw/source/core/text/frmpaint.cxx +++ b/sw/source/core/text/frmpaint.cxx @@ -38,12 +38,8 @@ #include <tgrditem.hxx> #include <paratr.hxx> -#ifndef _FMTLINE_HXX #include <fmtline.hxx> -#endif -#ifndef _LINEINFO_HXX #include <lineinfo.hxx> -#endif #include <charfmt.hxx> #include <pagefrm.hxx> #include <viewsh.hxx> // ViewShell @@ -596,7 +592,7 @@ sal_Bool SwTxtFrm::PaintEmpty( const SwRect &rRect, sal_Bool bCheck ) const * SwTxtFrm::Paint() *************************************************************************/ -void SwTxtFrm::Paint( const SwRect &rRect, const SwPrtOptions * /*pPrintData*/ ) const +void SwTxtFrm::Paint(SwRect const& rRect, SwPrintData const*const) const { ResetRepaint(); diff --git a/sw/source/core/text/itratr.cxx b/sw/source/core/text/itratr.cxx index 5afacc5130..c335380347 100644 --- a/sw/source/core/text/itratr.cxx +++ b/sw/source/core/text/itratr.cxx @@ -779,7 +779,7 @@ void SwTxtNode::GetMinMaxSize( ULONG nIndex, ULONG& rMin, ULONG &rMax, case RES_TXTATR_FIELD : { SwField *pFld = (SwField*)pHint->GetFld().GetFld(); - const String aTxt = pFld->GetCntnt( FALSE ); + const String aTxt = pFld->ExpandField(true); if( lcl_MinMaxString( aArg, aIter.GetFnt(), aTxt, 0, aTxt.Len() ) ) nAdd = 20; @@ -982,7 +982,7 @@ USHORT SwTxtNode::GetScalingOfSelectedText( xub_StrLen nStt, xub_StrLen nEnd ) case RES_TXTATR_FIELD : { SwField *pFld = (SwField*)pHint->GetFld().GetFld(); - const String aTxt = pFld->GetCntnt( FALSE ); + String const aTxt = pFld->ExpandField(true); SwDrawTextInfo aDrawInf( pSh, *pOut, 0, aTxt, 0, aTxt.Len() ); nProWidth += aIter.GetFnt()->_GetTxtSize( aDrawInf ).Width(); diff --git a/sw/source/core/text/porlay.cxx b/sw/source/core/text/porlay.cxx index 34dbba9e9f..2aff9ba362 100644 --- a/sw/source/core/text/porlay.cxx +++ b/sw/source/core/text/porlay.cxx @@ -805,8 +805,7 @@ void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode, sal_Bool bRTL ) MultiSelection aHiddenMulti( aRange ); CalcHiddenRanges( rNode, aHiddenMulti ); - aHiddenChg.Remove( 0, aHiddenChg.Count() ); - USHORT nHiddenIdx = 0; + aHiddenChg.clear(); USHORT i = 0; for( i = 0; i < aHiddenMulti.GetRangeCount(); ++i ) { @@ -814,8 +813,8 @@ void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode, sal_Bool bRTL ) const xub_StrLen nStart = (xub_StrLen)rRange.Min(); const xub_StrLen nEnd = (xub_StrLen)rRange.Max() + 1; - aHiddenChg.Insert( nStart, nHiddenIdx++ ); - aHiddenChg.Insert( nEnd, nHiddenIdx++ ); + aHiddenChg.push_back( nStart ); + aHiddenChg.push_back( nEnd ); } // @@ -915,9 +914,9 @@ void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode, sal_Bool bRTL ) // // remove invalid entries from script information arrays - const USHORT nScriptRemove = aScriptChg.Count() - nCnt; - aScriptChg.Remove( nCnt, nScriptRemove ); - aScriptType.Remove( nCnt, nScriptRemove ); + const size_t nScriptRemove = aScriptChg.size() - nCnt; + aScriptChg.erase( aScriptChg.begin() + nCnt, aScriptChg.end() ); + aScriptType.erase( aScriptType.begin() + nCnt, aScriptType.begin() + (nCnt + nScriptRemove) ); // get the start of the last compression group USHORT nLastCompression = nChg; @@ -933,10 +932,10 @@ void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode, sal_Bool bRTL ) } // remove invalid entries from compression information arrays - const USHORT nCompRemove = aCompChg.Count() - nCntComp; - aCompChg.Remove( nCntComp, nCompRemove ); - aCompLen.Remove( nCntComp, nCompRemove ); - aCompType.Remove( nCntComp, nCompRemove ); + const size_t nCompRemove = aCompChg.size() - nCntComp; + aCompChg.erase( aCompChg.begin() + nCntComp, aCompChg.end() ); + aCompLen.erase( aCompLen.begin() + nCntComp, aCompLen.begin() + (nCntComp + nCompRemove) ); + aCompType.erase( aCompType.begin() + nCntComp, aCompType.end() ); // get the start of the last kashida group USHORT nLastKashida = nChg; @@ -947,7 +946,7 @@ void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode, sal_Bool bRTL ) } // remove invalid entries from kashida array - aKashida.Remove( nCntKash, aKashida.Count() - nCntKash ); + aKashida.erase( aKashida.begin() + nCntKash, aKashida.end() ); // // TAKE CARE OF WEAK CHARACTERS: WE MUST FIND AN APPROPRIATE @@ -981,8 +980,9 @@ void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode, sal_Bool bRTL ) if ( nScript != nNextScript ) { - aScriptChg.Insert( nEnd, nCnt ); - aScriptType.Insert( nScript, nCnt++ ); + aScriptChg.insert( aScriptChg.begin() + nCnt, nEnd ); + aScriptType.insert( aScriptType.begin() + nCnt, nScript ); + nCnt++; nScript = nNextScript; } } @@ -991,7 +991,7 @@ void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode, sal_Bool bRTL ) // UPDATE THE SCRIPT INFO ARRAYS: // - while ( nChg < rTxt.Len() || ( !aScriptChg.Count() && !rTxt.Len() ) ) + while ( nChg < rTxt.Len() || ( aScriptChg.empty() && !rTxt.Len() ) ) { ASSERT( i18n::ScriptType::WEAK != nScript, "Inserting WEAK into SwScriptInfo structure" ); @@ -1032,18 +1032,19 @@ void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode, sal_Bool bRTL ) if (nType == U_NON_SPACING_MARK || nType == U_ENCLOSING_MARK || nType == U_COMBINING_SPACING_MARK ) { - aScriptChg.Insert( nChg - 1, nCnt ); + aScriptChg.insert( aScriptChg.begin() + nCnt, nChg - 1 ); } else { - aScriptChg.Insert( nChg, nCnt ); + aScriptChg.insert( aScriptChg.begin() + nCnt, nChg ); } } else { - aScriptChg.Insert( nChg, nCnt ); + aScriptChg.insert( aScriptChg.begin() + nCnt, nChg ); } - aScriptType.Insert( nScript, nCnt++ ); + aScriptType.insert( aScriptType.begin() + nCnt, nScript ); + nCnt++; // if current script is asian, we search for compressable characters // in this range @@ -1087,10 +1088,11 @@ void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode, sal_Bool bRTL ) if ( CHARCOMPRESS_PUNCTUATION_KANA == aCompEnum || ePrevState != KANA ) { - aCompChg.Insert( nPrevChg, nCntComp ); + aCompChg.insert( aCompChg.begin() + nCntComp, nPrevChg ); BYTE nTmpType = ePrevState; - aCompType.Insert( nTmpType, nCntComp ); - aCompLen.Insert( nLastCompression - nPrevChg, nCntComp++ ); + aCompType.insert( aCompType.begin() + nCntComp, nTmpType ); + aCompLen.insert( aCompLen.begin() + nCntComp, nLastCompression - nPrevChg ); + nCntComp++; } } @@ -1108,10 +1110,11 @@ void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode, sal_Bool bRTL ) if ( CHARCOMPRESS_PUNCTUATION_KANA == aCompEnum || ePrevState != KANA ) { - aCompChg.Insert( nPrevChg, nCntComp ); + aCompChg.insert( aCompChg.begin() + nCntComp, nPrevChg ); BYTE nTmpType = ePrevState; - aCompType.Insert( nTmpType, nCntComp ); - aCompLen.Insert( nLastCompression - nPrevChg, nCntComp++ ); + aCompType.insert( aCompType.begin() + nCntComp, nTmpType ); + aCompLen.insert( aCompLen.begin() + nCntComp, nLastCompression - nPrevChg ); + nCntComp++; } } } @@ -1277,7 +1280,10 @@ void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode, sal_Bool bRTL ) } // end of current word if ( STRING_LEN != nKashidaPos ) - aKashida.Insert( nKashidaPos, nCntKash++ ); + { + aKashida.insert( aKashida.begin() + nCntKash, nKashidaPos); + nCntKash++; + } } // end of kashida search } @@ -1292,7 +1298,7 @@ void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode, sal_Bool bRTL ) // check kashida data long nTmpKashidaPos = -1; sal_Bool bWrongKash = sal_False; - for (i = 0; i < aKashida.Count(); ++i ) + for (i = 0; i < aKashida.size(); ++i ) { long nCurrKashidaPos = GetKashida( i ); if ( nCurrKashidaPos <= nTmpKashidaPos ) @@ -1306,9 +1312,8 @@ void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode, sal_Bool bRTL ) #endif // remove invalid entries from direction information arrays - const USHORT nDirRemove = aDirChg.Count(); - aDirChg.Remove( 0, nDirRemove ); - aDirType.Remove( 0, nDirRemove ); + aDirChg.clear(); + aDirType.clear(); // Perform Unicode Bidi Algorithm for text direction information bool bPerformUBA = UBIDI_LTR != nDefaultDir; @@ -1328,7 +1333,7 @@ void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode, sal_Bool bRTL ) // 1. All text in RTL runs will use the CTL font // #i89825# change the script type also to CTL (hennerdrewes) // 2. Text in embedded LTR runs that does not have any strong LTR characters (numbers!) - for ( USHORT nDirIdx = 0; nDirIdx < aDirChg.Count(); ++nDirIdx ) + for ( size_t nDirIdx = 0; nDirIdx < aDirChg.size(); ++nDirIdx ) { const BYTE nCurrDirType = GetDirType( nDirIdx ); // nStart ist start of RTL run: @@ -1340,7 +1345,7 @@ void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode, sal_Bool bRTL ) ( nCurrDirType > UBIDI_LTR && !lcl_HasStrongLTR( rTxt, nStart, nEnd ) ) ) // non-strong text in embedded LTR run { // nScriptIdx points into the ScriptArrays: - USHORT nScriptIdx = 0; + size_t nScriptIdx = 0; // Skip entries in ScriptArray which are not inside the RTL run: // Make nScriptIdx become the index of the script group with @@ -1360,21 +1365,21 @@ void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode, sal_Bool bRTL ) // we have to insert a new script change: if ( nStart > 0 && nStartPosOfGroup < nStart ) { - aScriptChg.Insert( nStart, nScriptIdx ); - aScriptType.Insert( nScriptTypeOfGroup, nScriptIdx ); + aScriptChg.insert( aScriptChg.begin() + nScriptIdx, nStart ); + aScriptType.insert( aScriptType.begin() + nScriptIdx, nScriptTypeOfGroup ); ++nScriptIdx; } // Remove entries in ScriptArray which end inside the RTL run: - while ( nScriptIdx < aScriptChg.Count() && GetScriptChg( nScriptIdx ) <= nEnd ) + while ( nScriptIdx < aScriptChg.size() && GetScriptChg( nScriptIdx ) <= nEnd ) { - aScriptChg.Remove( nScriptIdx, 1 ); - aScriptType.Remove( nScriptIdx, 1 ); + aScriptChg.erase( aScriptChg.begin() + nScriptIdx ); + aScriptType.erase( aScriptType.begin() + nScriptIdx ); } // Insert a new entry in ScriptArray for the end of the RTL run: - aScriptChg.Insert( nEnd, nScriptIdx ); - aScriptType.Insert( i18n::ScriptType::COMPLEX, nScriptIdx ); + aScriptChg.insert( aScriptChg.begin() + nScriptIdx, nEnd ); + aScriptType.insert( aScriptType.begin() + nScriptIdx, i18n::ScriptType::COMPLEX ); #if OSL_DEBUG_LEVEL > 1 BYTE nScriptType; @@ -1384,7 +1389,7 @@ void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode, sal_Bool bRTL ) (void) nLastScriptChg; (void) nLastScriptType; - for ( USHORT i2 = 0; i2 < aScriptChg.Count(); ++i2 ) + for ( size_t i2 = 0; i2 < aScriptChg.size(); ++i2 ) { nScriptChg = GetScriptChg( i2 ); nScriptType = GetScriptType( i2 ); @@ -1401,9 +1406,8 @@ void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode, sal_Bool bRTL ) void SwScriptInfo::UpdateBidiInfo( const String& rTxt ) { // remove invalid entries from direction information arrays - const USHORT nDirRemove = aDirChg.Count(); - aDirChg.Remove( 0, nDirRemove ); - aDirType.Remove( 0, nDirRemove ); + aDirChg.clear(); + aDirType.clear(); // // Bidi functions from icu 2.0 @@ -1420,13 +1424,12 @@ void SwScriptInfo::UpdateBidiInfo( const String& rTxt ) int32_t nEnd; UBiDiLevel nCurrDir; // counter for direction information arrays - USHORT nCntDir = 0; for ( USHORT nIdx = 0; nIdx < nCount; ++nIdx ) { ubidi_getLogicalRun( pBidi, nStart, &nEnd, &nCurrDir ); - aDirChg.Insert( (USHORT)nEnd, nCntDir ); - aDirType.Insert( (BYTE)nCurrDir, nCntDir++ ); + aDirChg.push_back( (USHORT)nEnd ); + aDirType.push_back( (BYTE)nCurrDir ); nStart = nEnd; } @@ -2011,7 +2014,7 @@ sal_Bool SwScriptInfo::IsArabicText( const XubString& rTxt, xub_StrLen nStt, xub sal_Bool SwScriptInfo::IsKashidaValid ( xub_StrLen nKashPos ) const { - for ( xub_StrLen i = 0; i < aKashidaInvalid.Count(); ++i ) + for ( size_t i = 0; i < aKashidaInvalid.size(); ++i ) { if ( aKashidaInvalid [ i ] == nKashPos ) return false; @@ -2023,13 +2026,13 @@ sal_Bool SwScriptInfo::IsKashidaValid ( xub_StrLen nKashPos ) const * SwScriptInfo::ClearKashidaInvalid() *************************************************************************/ -void SwScriptInfo::ClearKashidaInvalid ( xub_StrLen nKashPos ) +void SwScriptInfo::ClearKashidaInvalid ( xub_StrLen nKashPos ) { - for ( xub_StrLen i = 0; i < aKashidaInvalid.Count(); ++i ) + for ( size_t i = 0; i < aKashidaInvalid.size(); ++i ) { if ( aKashidaInvalid [ i ] == nKashPos ) { - aKashidaInvalid.Remove (i, 1); + aKashidaInvalid.erase ( aKashidaInvalid.begin() + i ); return; } } @@ -2085,7 +2088,7 @@ bool SwScriptInfo::MarkOrClearKashidaInvalid ( xub_StrLen nStt, xub_StrLen nLen, void SwScriptInfo::MarkKashidaInvalid ( xub_StrLen nKashPos ) { - aKashidaInvalid.Insert( nKashPos, aKashidaInvalid.Count() ); + aKashidaInvalid.push_back( nKashPos ); } /************************************************************************* @@ -2122,8 +2125,8 @@ USHORT SwScriptInfo::GetKashidaPositions ( xub_StrLen nStt, xub_StrLen nLen, void SwScriptInfo::SetNoKashidaLine ( xub_StrLen nStt, xub_StrLen nLen ) { - aNoKashidaLine.Insert( nStt, aNoKashidaLine.Count()); - aNoKashidaLineEnd.Insert( nStt+nLen, aNoKashidaLineEnd.Count()); + aNoKashidaLine.push_back( nStt ); + aNoKashidaLineEnd.push_back( nStt+nLen ); } /************************************************************************* @@ -2133,7 +2136,7 @@ void SwScriptInfo::SetNoKashidaLine ( xub_StrLen nStt, xub_StrLen nLen ) bool SwScriptInfo::IsKashidaLine ( xub_StrLen nCharIdx ) const { - for( xub_StrLen i = 0; i < aNoKashidaLine.Count(); ++i ) + for( size_t i = 0; i < aNoKashidaLine.size(); ++i ) { if( nCharIdx >= aNoKashidaLine[ i ] && nCharIdx < aNoKashidaLineEnd[ i ]) return false; @@ -2146,13 +2149,13 @@ bool SwScriptInfo::IsKashidaLine ( xub_StrLen nCharIdx ) const void SwScriptInfo::ClearNoKashidaLine ( xub_StrLen nStt, xub_StrLen nLen ) { - xub_StrLen i = 0; - while( i < aNoKashidaLine.Count()) + size_t i = 0; + while( i < aNoKashidaLine.size()) { if( nStt + nLen >= aNoKashidaLine[ i ] && nStt < aNoKashidaLineEnd [ i ] ) { - aNoKashidaLine.Remove(i, 1); - aNoKashidaLineEnd.Remove(i, 1); + aNoKashidaLine.erase(aNoKashidaLine.begin() + i); + aNoKashidaLineEnd.erase(aNoKashidaLineEnd.begin() + i); } else ++i; diff --git a/sw/source/core/text/pormulti.cxx b/sw/source/core/text/pormulti.cxx index f071c96127..70d04f6f35 100644 --- a/sw/source/core/text/pormulti.cxx +++ b/sw/source/core/text/pormulti.cxx @@ -1022,10 +1022,10 @@ SwMultiCreator* SwTxtSizeInfo::GetMultiCreator( xub_StrLen &rPos, { pRet->pItem = NULL; pRet->pAttr = (*pHints)[n2Lines]; - aEnd.Insert( *pRet->pAttr->GetEnd(), 0 ); + aEnd.push_front( *pRet->pAttr->GetEnd() ); if( pItem ) { - aEnd[ 0 ] = GetTxt().Len(); + aEnd.front() = GetTxt().Len(); bOn = ((SvxTwoLinesItem*)pItem)->GetEndBracket() == p2Lines->GetEndBracket() && ((SvxTwoLinesItem*)pItem)->GetStartBracket() == @@ -1036,7 +1036,7 @@ SwMultiCreator* SwTxtSizeInfo::GetMultiCreator( xub_StrLen &rPos, { pRet->pItem = pItem; pRet->pAttr = NULL; - aEnd.Insert( GetTxt().Len(), 0 ); + aEnd.push_front( GetTxt().Len() ); } pRet->nId = SW_MC_DOUBLE; pRet->nLevel = GetTxtFrm()->IsRightToLeft() ? 1 : 0; @@ -1070,23 +1070,23 @@ SwMultiCreator* SwTxtSizeInfo::GetMultiCreator( xub_StrLen &rPos, // If the start of the next atribute is behind the end of // the last attribute on the aEnd-stack, this is the endposition // on the stack is the end of the 2-line portion. - if( !bOn || aEnd[ aEnd.Count()-1 ] < *pTmp->GetStart() ) + if( !bOn || aEnd.back() < *pTmp->GetStart() ) break; // At this moment, bOn is TRUE and the next attribute starts // behind rPos, so we could move rPos to the next startpoint rPos = *pTmp->GetStart(); // We clean up the aEnd-stack, endpositions equal to rPos are // superfluous. - while( aEnd.Count() && aEnd[ aEnd.Count()-1 ] <= rPos ) + while( !aEnd.empty() && aEnd.back() <= rPos ) { bOn = !bOn; - aEnd.Remove( aEnd.Count()-1, 1 ); + aEnd.pop_back(); } // If the endstack is empty, we simulate an attribute with // state TRUE and endposition rPos - if( !aEnd.Count() ) + if( aEnd.empty() ) { - aEnd.Insert( rPos, 0 ); + aEnd.push_front( rPos ); bOn = sal_True; } } @@ -1098,8 +1098,8 @@ SwMultiCreator* SwTxtSizeInfo::GetMultiCreator( xub_StrLen &rPos, if( bTwo == bOn ) { // .. with the same state, so the last attribute could // be continued. - if( aEnd[ aEnd.Count()-1 ] < *pTmp->GetEnd() ) - aEnd[ aEnd.Count()-1 ] = *pTmp->GetEnd(); + if( aEnd.back() < *pTmp->GetEnd() ) + aEnd.back() = *pTmp->GetEnd(); } else { // .. with a different state. @@ -1107,17 +1107,17 @@ SwMultiCreator* SwTxtSizeInfo::GetMultiCreator( xub_StrLen &rPos, // If this is smaller than the last on the stack, we put // it on the stack. If it has the same endposition, the last // could be removed. - if( aEnd[ aEnd.Count()-1 ] > *pTmp->GetEnd() ) - aEnd.Insert( *pTmp->GetEnd(), aEnd.Count() ); - else if( aEnd.Count() > 1 ) - aEnd.Remove( aEnd.Count()-1, 1 ); + if( aEnd.back() > *pTmp->GetEnd() ) + aEnd.push_back( *pTmp->GetEnd() ); + else if( aEnd.size() > 1 ) + aEnd.pop_back(); else - aEnd[ aEnd.Count()-1 ] = *pTmp->GetEnd(); + aEnd.back() = *pTmp->GetEnd(); } } } - if( bOn && aEnd.Count() ) - rPos = aEnd[ aEnd.Count()-1 ]; + if( bOn && !aEnd.empty() ) + rPos = aEnd.back(); return pRet; } if( nRotate < nCount || ( pRotItem && pRotItem == pRotate && @@ -1133,7 +1133,7 @@ SwMultiCreator* SwTxtSizeInfo::GetMultiCreator( xub_StrLen &rPos, // The bOn flag signs the state of the last 2-line attribute in the // aEnd-stack, which could interrupts the winning rotation attribute. sal_Bool bOn = pItem ? sal_True : sal_False; - aEnd.Insert( GetTxt().Len(), 0 ); + aEnd.push_front( GetTxt().Len() ); // n2Lines is the index of the last 2-line-attribute, which contains // the actual position. i = 0; @@ -1145,17 +1145,17 @@ SwMultiCreator* SwTxtSizeInfo::GetMultiCreator( xub_StrLen &rPos, continue; if( n2Start < *pTmp->GetStart() ) { - if( bOn || aEnd[ aEnd.Count()-1 ] < *pTmp->GetStart() ) + if( bOn || aEnd.back() < *pTmp->GetStart() ) break; n2Start = *pTmp->GetStart(); - while( aEnd.Count() && aEnd[ aEnd.Count()-1 ] <= n2Start ) + while( !aEnd.empty() && aEnd.back() <= n2Start ) { bOn = !bOn; - aEnd.Remove( aEnd.Count()-1, 1 ); + aEnd.pop_back(); } - if( !aEnd.Count() ) + if( aEnd.empty() ) { - aEnd.Insert( n2Start, 0 ); + aEnd.push_front( n2Start ); bOn = sal_False; } } @@ -1170,36 +1170,36 @@ SwMultiCreator* SwTxtSizeInfo::GetMultiCreator( xub_StrLen &rPos, { if( bTwo == bOn ) { - if( aEnd[ aEnd.Count()-1 ] < *pTmp->GetEnd() ) - aEnd[ aEnd.Count()-1 ] = *pTmp->GetEnd(); + if( aEnd.back() < *pTmp->GetEnd() ) + aEnd.back() = *pTmp->GetEnd(); } else { bOn = bTwo; - if( aEnd[ aEnd.Count()-1 ] > *pTmp->GetEnd() ) - aEnd.Insert( *pTmp->GetEnd(), aEnd.Count() ); - else if( aEnd.Count() > 1 ) - aEnd.Remove( aEnd.Count()-1, 1 ); + if( aEnd.back() > *pTmp->GetEnd() ) + aEnd.push_back( *pTmp->GetEnd() ); + else if( aEnd.size() > 1 ) + aEnd.pop_back(); else - aEnd[ aEnd.Count()-1 ] = *pTmp->GetEnd(); + aEnd.back() = *pTmp->GetEnd(); } } } - if( !bOn && aEnd.Count() ) - n2Start = aEnd[ aEnd.Count()-1 ]; + if( !bOn && !aEnd.empty() ) + n2Start = aEnd.back(); - if( aEnd.Count() ) - aEnd.Remove( 0, aEnd.Count() ); + if( !aEnd.empty() ) + aEnd.clear(); bOn = sal_True; if( nRotate < nCount ) { pRet->pItem = NULL; pRet->pAttr = (*pHints)[nRotate]; - aEnd.Insert( *pRet->pAttr->GetEnd(), 0 ); + aEnd.push_front( *pRet->pAttr->GetEnd() ); if( pRotItem ) { - aEnd[ 0 ] = GetTxt().Len(); + aEnd.front() = GetTxt().Len(); bOn = ((SvxCharRotateItem*)pRotItem)->GetValue() == pRotate->GetValue(); } @@ -1208,7 +1208,7 @@ SwMultiCreator* SwTxtSizeInfo::GetMultiCreator( xub_StrLen &rPos, { pRet->pItem = pRotItem; pRet->pAttr = NULL; - aEnd.Insert( GetTxt().Len(), 0 ); + aEnd.push_front( GetTxt().Len() ); } i = 0; while( i < nCount ) @@ -1218,17 +1218,17 @@ SwMultiCreator* SwTxtSizeInfo::GetMultiCreator( xub_StrLen &rPos, continue; if( rPos < *pTmp->GetStart() ) { - if( !bOn || aEnd[ aEnd.Count()-1 ] < *pTmp->GetStart() ) + if( !bOn || aEnd.back() < *pTmp->GetStart() ) break; rPos = *pTmp->GetStart(); - while( aEnd.Count() && aEnd[ aEnd.Count()-1 ] <= rPos ) + while( !aEnd.empty() && aEnd.back() <= rPos ) { bOn = !bOn; - aEnd.Remove( aEnd.Count()-1, 1 ); + aEnd.pop_back(); } - if( !aEnd.Count() ) + if( aEnd.empty() ) { - aEnd.Insert( rPos, 0 ); + aEnd.push_front( rPos ); bOn = sal_True; } } @@ -1241,23 +1241,23 @@ SwMultiCreator* SwTxtSizeInfo::GetMultiCreator( xub_StrLen &rPos, { if( bTwo == bOn ) { - if( aEnd[ aEnd.Count()-1 ] < *pTmp->GetEnd() ) - aEnd[ aEnd.Count()-1 ] = *pTmp->GetEnd(); + if( aEnd.back() < *pTmp->GetEnd() ) + aEnd.back() = *pTmp->GetEnd(); } else { bOn = bTwo; - if( aEnd[ aEnd.Count()-1 ] > *pTmp->GetEnd() ) - aEnd.Insert( *pTmp->GetEnd(), aEnd.Count() ); - else if( aEnd.Count() > 1 ) - aEnd.Remove( aEnd.Count()-1, 1 ); + if( aEnd.back() > *pTmp->GetEnd() ) + aEnd.push_back( *pTmp->GetEnd() ); + else if( aEnd.size() > 1 ) + aEnd.pop_back(); else - aEnd[ aEnd.Count()-1 ] = *pTmp->GetEnd(); + aEnd.back() = *pTmp->GetEnd(); } } } - if( bOn && aEnd.Count() ) - rPos = aEnd[ aEnd.Count()-1 ]; + if( bOn && !aEnd.empty() ) + rPos = aEnd.back(); if( rPos > n2Start ) rPos = n2Start; return pRet; diff --git a/sw/source/core/text/txtfld.cxx b/sw/source/core/text/txtfld.cxx index 64d20d0d4c..d427aaa083 100644 --- a/sw/source/core/text/txtfld.cxx +++ b/sw/source/core/text/txtfld.cxx @@ -106,6 +106,8 @@ SwExpandPortion *SwTxtFormatter::NewFldPortion( SwTxtFormatInfo &rInf, } ViewShell *pSh = rInf.GetVsh(); + SwDoc *const pDoc( (pSh) ? pSh->GetDoc() : 0 ); + bool const bInClipboard( (pDoc) ? pDoc->IsClipBoard() : true ); sal_Bool bPlaceHolder = sal_False; switch( pFld->GetTyp()->Which() ) @@ -117,16 +119,26 @@ SwExpandPortion *SwTxtFormatter::NewFldPortion( SwTxtFormatInfo &rInf, case RES_COMBINED_CHARS: { - String sStr( pFld->GetCntnt( bName )); if( bName ) - pRet = new SwFldPortion( sStr ); + { + String const sName( pFld->GetFieldName() ); + pRet = new SwFldPortion(sName); + } else - pRet = new SwCombinedPortion( sStr ); + { + String const sContent( pFld->ExpandField(bInClipboard) ); + pRet = new SwCombinedPortion(sContent); + } } break; case RES_HIDDENTXTFLD: - pRet = new SwHiddenPortion(pFld->GetCntnt( bName )); + { + String const str( (bName) + ? pFld->GetFieldName() + : pFld->ExpandField(bInClipboard) ); + pRet = new SwHiddenPortion(str); + } break; case RES_CHAPTERFLD: @@ -135,13 +147,25 @@ SwExpandPortion *SwTxtFormatter::NewFldPortion( SwTxtFormatInfo &rInf, ((SwChapterField*)pFld)->ChangeExpansion( pFrame, &((SwTxtFld*)pHint)->GetTxtNode() ); } - pRet = new SwFldPortion( pFld->GetCntnt( bName ) ); + { + String const str( (bName) + ? pFld->GetFieldName() + : pFld->ExpandField(bInClipboard) ); + pRet = new SwFldPortion( str ); + } break; case RES_DOCSTATFLD: if( !bName && pSh && !pSh->Imp()->IsUpdateExpFlds() ) + { ((SwDocStatField*)pFld)->ChangeExpansion( pFrame ); - pRet = new SwFldPortion( pFld->GetCntnt( bName ) ); + } + { + String const str( (bName) + ? pFld->GetFieldName() + : pFld->ExpandField(bInClipboard) ); + pRet = new SwFldPortion( str ); + } break; case RES_PAGENUMBERFLD: @@ -153,7 +177,6 @@ SwExpandPortion *SwTxtFormatter::NewFldPortion( SwTxtFormatInfo &rInf, const SwRootFrm* pTmpRootFrm = pSh->GetLayout(); const sal_Bool bVirt = pTmpRootFrm->IsVirtPageNum(); - SwDoc* pDoc = pSh->GetDoc(); MSHORT nVirtNum = pFrame->GetVirtPageNum(); MSHORT nNumPages = pTmpRootFrm->GetPageNum(); sal_Int16 nNumFmt = -1; @@ -163,7 +186,12 @@ SwExpandPortion *SwTxtFormatter::NewFldPortion( SwTxtFormatInfo &rInf, pPageNr->ChangeExpansion( pDoc, nVirtNum, nNumPages, bVirt, nNumFmt > -1 ? &nNumFmt : 0); } - pRet = new SwFldPortion( pFld->GetCntnt( bName ) ); + { + String const str( (bName) + ? pFld->GetFieldName() + : pFld->ExpandField(bInClipboard) ); + pRet = new SwFldPortion( str ); + } break; } case RES_GETEXPFLD: @@ -183,7 +211,12 @@ SwExpandPortion *SwTxtFormatter::NewFldPortion( SwTxtFormatInfo &rInf, pExpFld->ChgBodyTxtFlag( sal_True ); } } - pRet = new SwFldPortion( pFld->GetCntnt( bName ) ); + { + String const str( (bName) + ? pFld->GetFieldName() + : pFld->ExpandField(bInClipboard) ); + pRet = new SwFldPortion( str ); + } break; } case RES_DBFLD: @@ -207,13 +240,25 @@ SwExpandPortion *SwTxtFormatter::NewFldPortion( SwTxtFormatInfo &rInf, } */ } - pRet = new SwFldPortion( pFld->GetCntnt( bName ) ); + { + String const str( (bName) + ? pFld->GetFieldName() + : pFld->ExpandField(bInClipboard) ); + pRet = new SwFldPortion(str); + } break; } case RES_REFPAGEGETFLD: if( !bName && pSh && !pSh->Imp()->IsUpdateExpFlds() ) + { ((SwRefPageGetField*)pFld)->ChangeExpansion( pFrame, (SwTxtFld*)pHint ); - pRet = new SwFldPortion( pFld->GetCntnt( bName ) ); + } + { + String const str( (bName) + ? pFld->GetFieldName() + : pFld->ExpandField(bInClipboard) ); + pRet = new SwFldPortion(str); + } break; case RES_JUMPEDITFLD: @@ -224,9 +269,12 @@ SwExpandPortion *SwTxtFormatter::NewFldPortion( SwTxtFormatInfo &rInf, break; default: - { - pRet = new SwFldPortion(pFld->GetCntnt( bName ) ); - } + { + String const str( (bName) + ? pFld->GetFieldName() + : pFld->ExpandField(bInClipboard) ); + pRet = new SwFldPortion(str); + } } if( bNewFlyPor ) @@ -249,7 +297,12 @@ SwExpandPortion *SwTxtFormatter::NewFldPortion( SwTxtFormatInfo &rInf, else pTmpFnt->SetDiffFnt( &pChFmt->GetAttrSet(), pFrm->GetTxtNode()->getIDocumentSettingAccess() ); } - pRet = new SwFldPortion( pFld->GetCntnt( bName ), pTmpFnt, bPlaceHolder ); + { + String const str( (bName) + ? pFld->GetFieldName() + : pFld->ExpandField(bInClipboard) ); + pRet = new SwFldPortion(str, pTmpFnt, bPlaceHolder); + } } return pRet; @@ -488,13 +541,7 @@ SwNumberPortion *SwTxtFormatter::NewNumberPortion( SwTxtFormatInfo &rInf ) const } else { - // --> OD 2006-06-02 #b6432095# - // use method <SwNumRule::MakeNumString(..)> instead of - // method <SwTxtNode::GetNumString()>, because for levels with - // numbering none the prefix and the suffix strings have to be provided. -// XubString aTxt( pTxtNd->GetNumString() ); - XubString aTxt( pNumRule->MakeNumString( *(pTxtNd->GetNum()) ) ); - // <-- + XubString aTxt( pTxtNd->GetNumString() ); // --> OD 2008-01-23 #newlistlevelattrs# if ( aTxt.Len() > 0 ) { diff --git a/sw/source/core/tox/txmsrt.cxx b/sw/source/core/tox/txmsrt.cxx index e3d80b4af6..ce3b8f90bb 100644 --- a/sw/source/core/tox/txmsrt.cxx +++ b/sw/source/core/tox/txmsrt.cxx @@ -51,9 +51,7 @@ #include <authfld.hxx> #include <toxwrap.hxx> -#ifndef _COMCORE_HRC #include <comcore.hrc> -#endif #include <numrule.hxx> extern BOOL IsFrameBehind( const SwTxtNode& rMyNd, xub_StrLen nMySttPos, @@ -403,7 +401,7 @@ BOOL SwTOXIndex::operator<( const SwTOXSortTabBase& rCmpBase ) // -void SwTOXIndex::_GetText( String& rTxt, String& rTxtReading ) +void SwTOXIndex::GetText_Impl( String& rTxt, String& rTxtReading ) const { ASSERT(pTxtMark, "pTxtMark == 0, Kein Stichwort"); const SwTOXMark& rTOXMark = pTxtMark->GetTOXMark(); @@ -530,7 +528,7 @@ USHORT SwTOXCustom::GetLevel() const } -void SwTOXCustom::_GetText( String& rTxt, String &rTxtReading ) +void SwTOXCustom::GetText_Impl( String& rTxt, String &rTxtReading ) const { rTxt = aKey; rTxtReading = sReading; @@ -553,7 +551,7 @@ SwTOXContent::SwTOXContent( const SwTxtNode& rNd, const SwTxtTOXMark* pMark, // Der Text des Inhalts // -void SwTOXContent::_GetText( String& rTxt, String& rTxtReading ) +void SwTOXContent::GetText_Impl( String& rTxt, String& rTxtReading ) const { const xub_StrLen* pEnd = pTxtMark->GetEnd(); if( pEnd && !pTxtMark->GetTOXMark().IsAlternativeText() ) @@ -612,7 +610,7 @@ SwTOXPara::SwTOXPara( const SwCntntNode& rNd, SwTOXElement eT, USHORT nLevel ) } -void SwTOXPara::_GetText( String& rTxt, String& ) +void SwTOXPara::GetText_Impl( String& rTxt, String& ) const { const SwCntntNode* pNd = aTOXSources[0].pNd; switch( eType ) @@ -801,7 +799,7 @@ SwTOXTable::SwTOXTable( const SwCntntNode& rNd ) } -void SwTOXTable::_GetText( String& rTxt, String& ) +void SwTOXTable::GetText_Impl( String& rTxt, String& ) const { const SwNode* pNd = aTOXSources[0].pNd; if( pNd && 0 != ( pNd = pNd->FindTableNode() ) ) @@ -868,11 +866,14 @@ USHORT SwTOXAuthority::GetLevel() const /*-- 15.09.99 14:28:08--------------------------------------------------- -----------------------------------------------------------------------*/ -void SwTOXAuthority::_GetText( String& rTxt, String& ) +static String lcl_GetText(SwFmtFld const& rField) +{ + return rField.GetFld()->ExpandField(true); +} + +void SwTOXAuthority::GetText_Impl( String& rTxt, String& ) const { - bool const isClipBoard( - m_rField.GetTxtFld()->GetTxtNode().GetDoc()->IsClipBoard()); - rTxt = m_rField.GetFld()->ExpandField(isClipBoard); + rTxt = lcl_GetText(m_rField); } /* -----------------21.09.99 12:50------------------- @@ -885,7 +886,7 @@ void SwTOXAuthority::FillText( SwTxtNode& rNd, String sText; if(AUTH_FIELD_IDENTIFIER == nAuthField) { - sText = pField->Expand(); + sText = lcl_GetText(m_rField); const SwAuthorityFieldType* pType = (const SwAuthorityFieldType*)pField->GetTyp(); sal_Unicode cChar = pType->GetPrefix(); if(cChar && cChar != ' ') diff --git a/sw/source/core/txtnode/atrfld.cxx b/sw/source/core/txtnode/atrfld.cxx index a2fbd39f9f..ffe85c51d1 100644 --- a/sw/source/core/txtnode/atrfld.cxx +++ b/sw/source/core/txtnode/atrfld.cxx @@ -259,10 +259,9 @@ BOOL SwFmtFld::IsProtect() const |* *************************************************************************/ -SwTxtFld::SwTxtFld(SwFmtFld & rAttr, xub_StrLen const nStartPos, - bool const bInClipboard) +SwTxtFld::SwTxtFld(SwFmtFld & rAttr, xub_StrLen const nStartPos) : SwTxtAttr( rAttr, nStartPos ) - , m_aExpand( rAttr.GetFld()->ExpandField(bInClipboard) ) + , m_aExpand( rAttr.GetFld()->ExpandField(true) ) , m_pTxtNode( 0 ) { rAttr.pTxtAttr = this; diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx index 4046cbc59f..c4a559b9d5 100644 --- a/sw/source/core/txtnode/ndtxt.cxx +++ b/sw/source/core/txtnode/ndtxt.cxx @@ -99,6 +99,10 @@ #include <list.hxx> // <-- + +using namespace ::com::sun::star; + + SV_DECL_PTRARR( TmpHints, SwTxtAttr*, 0, 4 ) TYPEINIT1( SwTxtNode, SwCntntNode ) @@ -2566,9 +2570,14 @@ void SwTxtNode::NumRuleChgd() } SetInSwFntCache( FALSE ); - SvxLRSpaceItem& rLR = (SvxLRSpaceItem&)GetSwAttrSet().GetLRSpace(); - - SwModify::Modify( &rLR, &rLR ); + // Sending "noop" modify in order to cause invalidations of registered + // <SwTxtFrm> instances to get the list style change respectively the change + // in the list tree reflected in the layout. + // Important note: + { + SvxLRSpaceItem& rLR = (SvxLRSpaceItem&)GetSwAttrSet().GetLRSpace(); + SwModify::Modify( &rLR, &rLR ); + } } // -> #i27615# @@ -2834,13 +2843,19 @@ XubString SwTxtNode::GetNumString( const bool _bInclPrefixAndSuffixStrings, cons } const SwNumRule* pRule = GetNum() ? GetNum()->GetNumRule() : 0L; if ( pRule && - IsCountedInList() && - pRule->Get( static_cast<USHORT>(GetActualListLevel()) ).IsTxtFmt() ) + IsCountedInList() ) { - return pRule->MakeNumString( GetNum()->GetNumberVector(), + SvxNumberType const& rNumberType( + pRule->Get( static_cast<USHORT>(GetActualListLevel()) ) ); + if (rNumberType.IsTxtFmt() || + // #b6432095# + (style::NumberingType::NUMBER_NONE == rNumberType.GetNumberingType())) + { + return pRule->MakeNumString( GetNum()->GetNumberVector(), _bInclPrefixAndSuffixStrings ? TRUE : FALSE, FALSE, _nRestrictToThisLevel ); + } } return aEmptyStr; @@ -3057,8 +3072,7 @@ void SwTxtNode::Replace0xFF( XubString& rTxt, xub_StrLen& rTxtStt, { const XubString aExpand( static_cast<SwTxtFld const*>(pAttr)->GetFld() - .GetFld()->ExpandField( - GetDoc()->IsClipBoard())); + .GetFld()->ExpandField(true)); rTxt.Insert( aExpand, nPos ); nPos = nPos + aExpand.Len(); nEndPos = nEndPos + aExpand.Len(); @@ -3207,7 +3221,7 @@ BOOL SwTxtNode::GetExpandTxt( SwTxtNode& rDestNd, const SwIndex* pDestIdx, { XubString const aExpand( static_cast<SwTxtFld const*>(pHt)->GetFld().GetFld() - ->ExpandField(GetDoc()->IsClipBoard())); + ->ExpandField(true)); if( aExpand.Len() ) { aDestIdx++; // dahinter einfuegen; @@ -3305,7 +3319,7 @@ const ModelToViewHelper::ConversionMap* { const XubString aExpand( static_cast<SwTxtFld const*>(pAttr)->GetFld().GetFld() - ->ExpandField(GetDoc()->IsClipBoard())); + ->ExpandField(true)); if ( aExpand.Len() > 0 ) { const xub_StrLen nFieldPos = *pAttr->GetStart(); @@ -5080,8 +5094,6 @@ bool SwTxtNode::IsInContent() const #include <unoparagraph.hxx> -using namespace ::com::sun::star; - uno::Reference< rdf::XMetadatable > SwTxtNode::MakeUnoObject() { diff --git a/sw/source/core/txtnode/thints.cxx b/sw/source/core/txtnode/thints.cxx index b86595b102..c622a8ea34 100644 --- a/sw/source/core/txtnode/thints.cxx +++ b/sw/source/core/txtnode/thints.cxx @@ -1043,8 +1043,7 @@ SwTxtAttr* MakeTxtAttr( SwDoc & rDoc, SfxPoolItem& rAttr, pNew = new SwTxtINetFmt( (SwFmtINetFmt&)rNew, nStt, nEnd ); break; case RES_TXTATR_FIELD: - pNew = new SwTxtFld( static_cast<SwFmtFld &>(rNew), nStt, - rDoc.IsClipBoard() ); + pNew = new SwTxtFld( static_cast<SwFmtFld &>(rNew), nStt ); break; case RES_TXTATR_FLYCNT: { diff --git a/sw/source/core/undo/makefile.mk b/sw/source/core/undo/makefile.mk index c381761adb..35771fa444 100644 --- a/sw/source/core/undo/makefile.mk +++ b/sw/source/core/undo/makefile.mk @@ -49,6 +49,7 @@ EXCEPTIONSFILES = \ $(SLO)$/unattr.obj \ $(SLO)$/undobj.obj \ $(SLO)$/undraw.obj \ + $(SLO)$/unnum.obj \ $(SLO)$/unovwr.obj \ $(SLO)$/untbl.obj diff --git a/sw/source/core/undo/rolbck.cxx b/sw/source/core/undo/rolbck.cxx index 9526112d0e..8beea93a9b 100644 --- a/sw/source/core/undo/rolbck.cxx +++ b/sw/source/core/undo/rolbck.cxx @@ -1389,7 +1389,13 @@ SwRegHistory::SwRegHistory( const SwNode& rNd, SwHistory* pHst ) void SwRegHistory::Modify( SfxPoolItem* pOld, SfxPoolItem* pNew ) { - if ( m_pHistory && ( pOld || pNew ) ) + // --> OD 2010-10-05 #i114861# + // Do not handle a "noop" modify + // - e.g. <SwTxtNode::NumRuleChgd()> uses such a "noop" modify +// if ( m_pHistory && ( pOld || pNew ) ) + if ( m_pHistory && ( pOld || pNew ) && + pOld != pNew ) + // <-- { if ( pNew->Which() < POOLATTR_END ) { diff --git a/sw/source/core/undo/unnum.cxx b/sw/source/core/undo/unnum.cxx index 11a92c6385..a18c14212d 100644 --- a/sw/source/core/undo/unnum.cxx +++ b/sw/source/core/undo/unnum.cxx @@ -197,13 +197,12 @@ void SwUndoInsNum::SaveOldNumRule( const SwNumRule& rOld ) pOldNumRule = new SwNumRule( rOld ); } -/* */ +/* */ SwUndoDelNum::SwUndoDelNum( const SwPaM& rPam ) : SwUndo( UNDO_DELNUM ), SwUndRng( rPam ), - aNodeIdx( BYTE( nEndNode - nSttNode > 255 ? 255 : nEndNode - nSttNode )), - aLevels( BYTE( nEndNode - nSttNode > 255 ? 255 : nEndNode - nSttNode )) + aNodeIdx( BYTE( nEndNode - nSttNode > 255 ? 255 : nEndNode - nSttNode )) { pHistory = new SwHistory; } @@ -229,7 +228,7 @@ void SwUndoDelNum::Undo( SwUndoIter& rUndoIter ) for( USHORT n = 0; n < aNodeIdx.Count(); ++n ) { SwTxtNode* pNd = rDoc.GetNodes()[ aNodeIdx[ n ] ]->GetTxtNode(); - ASSERT( pNd, "wo ist der TextNode geblieben?" ); + ASSERT( pNd, "Where is TextNode gone?" ); pNd->SetAttrListLevel(aLevels[ n ] ); if( pNd->GetCondFmtColl() ) @@ -261,12 +260,12 @@ void SwUndoDelNum::AddNode( const SwTxtNode& rNd, BOOL ) USHORT nIns = aNodeIdx.Count(); aNodeIdx.Insert( rNd.GetIndex(), nIns ); - aLevels.Insert( static_cast<BYTE>(rNd.GetActualListLevel()), nIns ); + aLevels.insert( aLevels.begin() + nIns, static_cast<BYTE>(rNd.GetActualListLevel()) ); } } -/* */ +/* */ SwUndoMoveNum::SwUndoMoveNum( const SwPaM& rPam, long nOff, BOOL bIsOutlMv ) @@ -325,7 +324,7 @@ void SwUndoMoveNum::Repeat( SwUndoIter& rUndoIter ) rUndoIter.GetDoc().MoveParagraph( *rUndoIter.pAktPam, nOffset, FALSE ); } -/* */ +/* */ SwUndoNumUpDown::SwUndoNumUpDown( const SwPaM& rPam, short nOff ) @@ -356,7 +355,7 @@ void SwUndoNumUpDown::Repeat( SwUndoIter& rUndoIter ) rUndoIter.GetDoc().NumUpDown( *rUndoIter.pAktPam, 1 == nOffset ); } -/* */ +/* */ // #115901# SwUndoNumOrNoNum::SwUndoNumOrNoNum( const SwNodeIndex& rIdx, BOOL bOldNum, @@ -402,7 +401,7 @@ void SwUndoNumOrNoNum::Repeat( SwUndoIter& rUndoIter ) TRUE); } -/* */ +/* */ SwUndoNumRuleStart::SwUndoNumRuleStart( const SwPosition& rPos, BOOL bFlg ) : SwUndo( UNDO_SETNUMRULESTART ), diff --git a/sw/source/core/undo/untbl.cxx b/sw/source/core/undo/untbl.cxx index aaf0efd655..c6ae8d2463 100644 --- a/sw/source/core/undo/untbl.cxx +++ b/sw/source/core/undo/untbl.cxx @@ -1745,7 +1745,7 @@ void SwUndoTblNdsChg::SaveNewBoxes( const SwTableNode& rTblNd, ( nNodes != ( pSourceBox->GetSttNd()->EndOfSectionIndex() - pSourceBox->GetSttIdx() ) ) && ( nNodes - 1 > nLineDiff ); - aMvBoxes.Insert( bNodesMoved, nInsPos ); + aMvBoxes.insert( aMvBoxes.begin() + nInsPos, bNodesMoved ); } } } @@ -1805,7 +1805,7 @@ void SwUndoTblNdsChg::Undo( SwUndoIter& rUndoIter ) } Ptrs.pDelSects->DeleteAndDestroy( 0, Ptrs.pDelSects->Count() ); } - else if( aMvBoxes.Count() ) + else if( !aMvBoxes.empty() ) { // dann muessen Nodes verschoben und nicht geloescht werden! // Dafuer brauchen wir aber ein temp Array diff --git a/sw/source/core/unocore/unofield.cxx b/sw/source/core/unocore/unofield.cxx index 72a9a7a08d..fd4fbdc5eb 100644 --- a/sw/source/core/unocore/unofield.cxx +++ b/sw/source/core/unocore/unofield.cxx @@ -1267,13 +1267,16 @@ uno::Reference< beans::XPropertySet > SwXTextField::getTextFieldMaster(void) th OUString SwXTextField::getPresentation(sal_Bool bShowCommand) throw( uno::RuntimeException ) { vos::OGuard aGuard(Application::GetSolarMutex()); - OUString sRet; - const SwField* pField = GetField(); - if(pField) - sRet = pField->GetCntnt(bShowCommand); - else + + SwField const*const pField = GetField(); + if (!pField) + { throw uno::RuntimeException(); - return sRet; + } + ::rtl::OUString const ret( (bShowCommand) + ? pField->GetFieldName() + : pField->ExpandField(true) ); + return ret; } /* -----------------18.02.99 13:39------------------- * diff --git a/sw/source/core/unocore/unosrch.cxx b/sw/source/core/unocore/unosrch.cxx index 3038865007..b36fd80d18 100644 --- a/sw/source/core/unocore/unosrch.cxx +++ b/sw/source/core/unocore/unosrch.cxx @@ -185,7 +185,17 @@ void SwSearchProperties_Impl::FillItemSet(SfxItemSet& rSet, sal_Bool bIsValueSea *pContourItem = 0, *pCharColorItem = 0, *pCasemapItem = 0, - *pBrushItem = 0; + *pBrushItem = 0, + *pFontCJKItem = 0, + *pFontSizeCJKItem = 0, + *pCJKLangItem = 0, + *pCJKPostureItem = 0, + *pCJKWeightItem = 0, + *pFontCTLItem = 0, + *pFontSizeCTLItem = 0, + *pCTLLangItem = 0, + *pCTLPostureItem = 0, + *pCTLWeightItem = 0; PropertyEntryVector_t::const_iterator aIt = aPropertyEntries.begin(); for(sal_uInt32 i = 0; i < nArrLen; i++, ++aIt) @@ -370,6 +380,56 @@ void SwSearchProperties_Impl::FillItemSet(SfxItemSet& rSet, sal_Bool bIsValueSea pWLineItem = rSet.GetPool()->GetDefaultItem(aIt->nWID).Clone(); pTempItem = pWLineItem; break; + case RES_CHRATR_CJK_FONT: + if(!pFontCJKItem ) + pFontCJKItem = rSet.GetPool()->GetDefaultItem(aIt->nWID).Clone(); + pTempItem = pFontCJKItem; + break; + case RES_CHRATR_CJK_FONTSIZE: + if(!pFontSizeCJKItem ) + pFontSizeCJKItem = rSet.GetPool()->GetDefaultItem(aIt->nWID).Clone(); + pTempItem = pFontSizeCJKItem; + break; + case RES_CHRATR_CJK_LANGUAGE: + if(!pCJKLangItem ) + pCJKLangItem = rSet.GetPool()->GetDefaultItem(aIt->nWID).Clone(); + pTempItem = pCJKLangItem; + break; + case RES_CHRATR_CJK_POSTURE: + if(!pCJKPostureItem ) + pCJKPostureItem = rSet.GetPool()->GetDefaultItem(aIt->nWID).Clone(); + pTempItem = pCJKPostureItem; + break; + case RES_CHRATR_CJK_WEIGHT: + if(!pCJKWeightItem ) + pCJKWeightItem = rSet.GetPool()->GetDefaultItem(aIt->nWID).Clone(); + pTempItem = pCJKWeightItem; + break; + case RES_CHRATR_CTL_FONT: + if(!pFontCTLItem ) + pFontCTLItem = rSet.GetPool()->GetDefaultItem(aIt->nWID).Clone(); + pTempItem = pFontCTLItem; + break; + case RES_CHRATR_CTL_FONTSIZE: + if(!pFontSizeCTLItem ) + pFontSizeCTLItem = rSet.GetPool()->GetDefaultItem(aIt->nWID).Clone(); + pTempItem = pFontSizeCTLItem; + break; + case RES_CHRATR_CTL_LANGUAGE: + if(!pCTLLangItem ) + pCTLLangItem = rSet.GetPool()->GetDefaultItem(aIt->nWID).Clone(); + pTempItem = pCTLLangItem; + break; + case RES_CHRATR_CTL_POSTURE: + if(!pCTLPostureItem ) + pCTLPostureItem = rSet.GetPool()->GetDefaultItem(aIt->nWID).Clone(); + pTempItem = pCTLPostureItem; + break; + case RES_CHRATR_CTL_WEIGHT: + if(!pCTLWeightItem ) + pCTLWeightItem = rSet.GetPool()->GetDefaultItem(aIt->nWID).Clone(); + pTempItem = pCTLWeightItem; + break; } if(pTempItem) { diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx index b68fea70a9..a93d84296a 100644 --- a/sw/source/core/unocore/unostyle.cxx +++ b/sw/source/core/unocore/unostyle.cxx @@ -3993,11 +3993,11 @@ SwAutoStylesEnumImpl::SwAutoStylesEnumImpl( SwDoc* pInitDoc, IStyleAccess::SwAut { std::set< std::pair< USHORT, USHORT > > aRubyMap; SwAttrPool& rAttrPool = pDoc->GetAttrPool(); - USHORT nCount = rAttrPool.GetItemCount( RES_TXTATR_CJK_RUBY ); + sal_uInt32 nCount = rAttrPool.GetItemCount2( RES_TXTATR_CJK_RUBY ); - for ( USHORT nI = 0; nI < nCount; ++nI ) + for ( sal_uInt32 nI = 0; nI < nCount; ++nI ) { - const SwFmtRuby* pItem = static_cast<const SwFmtRuby*>(rAttrPool.GetItem( RES_TXTATR_CJK_RUBY, nI )); + const SwFmtRuby* pItem = static_cast<const SwFmtRuby*>(rAttrPool.GetItem2( RES_TXTATR_CJK_RUBY, nI )); if ( pItem && pItem->GetTxtRuby() ) { std::pair< USHORT, USHORT > aPair( pItem->GetPosition(), pItem->GetAdjustment() ); diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx index a9658fc7bc..c173e0f41b 100644 --- a/sw/source/core/unocore/unotbl.cxx +++ b/sw/source/core/unocore/unotbl.cxx @@ -2285,17 +2285,6 @@ void SwTableProperties_Impl::ApplyTblAttr(const SwTable& rTbl, SwDoc& rDoc) rDoc.SetAttr( aSet, *rTbl.GetFrmFmt() ); } } -/* -----------------------------11.07.00 12:14-------------------------------- - - ---------------------------------------------------------------------------*/ -SwXTextTable* SwXTextTable::GetImplementation(uno::Reference< XInterface> xRef ) -{ - uno::Reference<lang::XUnoTunnel> xTunnel( xRef, uno::UNO_QUERY); - if(xTunnel.is()) - return reinterpret_cast< SwXTextTable * >( - sal::static_int_cast< sal_IntPtr >( xTunnel->getSomething(SwXTextTable::getUnoTunnelId()) )); - return 0; -} /* -----------------------------10.03.00 18:02-------------------------------- ---------------------------------------------------------------------------*/ diff --git a/sw/source/core/view/pagepreviewlayout.cxx b/sw/source/core/view/pagepreviewlayout.cxx index 7b538316bf..2ad35fadaa 100644 --- a/sw/source/core/view/pagepreviewlayout.cxx +++ b/sw/source/core/view/pagepreviewlayout.cxx @@ -1450,12 +1450,6 @@ sal_uInt16 SwPagePreviewLayout::GetColOfPage( sal_uInt16 _nPageNum ) const return nCol; } -Size SwPagePreviewLayout::GetMaxPageSize() const -{ - ASSERT( PreviewLayoutValid(), "PagePreviewLayout not valid" ); - return maMaxPageSize; -} - Size SwPagePreviewLayout::GetPrevwDocSize() const { ASSERT( PreviewLayoutValid(), "PagePreviewLayout not valid" ); diff --git a/sw/source/core/view/printdata.cxx b/sw/source/core/view/printdata.cxx index 5d8cb3f043..9410da39e2 100644 --- a/sw/source/core/view/printdata.cxx +++ b/sw/source/core/view/printdata.cxx @@ -40,7 +40,6 @@ #include <wdocsh.hxx> #include <viewsh.hxx> #include <docfld.hxx> -#include <swprtopt.hxx> #include <svl/languageoptions.hxx> #include <toolkit/awt/vclxdevice.hxx> @@ -125,9 +124,9 @@ void SwRenderData::ViewOptionAdjustStart( SwWrtShell &rSh, const SwViewOption &r } m_pViewOptionAdjust = new SwViewOptionAdjust_Impl( rSh, rViewOptions ); } - -void SwRenderData::ViewOptionAdjust( const SwPrtOptions *pPrtOptions ) + +void SwRenderData::ViewOptionAdjust(SwPrintData const*const pPrtOptions) { m_pViewOptionAdjust->AdjustViewOptions( pPrtOptions ); } @@ -139,24 +138,24 @@ void SwRenderData::ViewOptionAdjustStop() { delete m_pViewOptionAdjust; m_pViewOptionAdjust = 0; - } + } } -void SwRenderData::MakeSwPrtOptions( - SwPrtOptions &rOptions, +void SwRenderData::MakeSwPrtOptions( + SwPrintData & rOptions, const SwDocShell *pDocShell, const SwPrintUIOptions *pOpt, - const SwRenderData *pData, + const SwRenderData *pData, bool bIsPDFExport ) { if (!pDocShell || !pOpt || !pData) return; - + // get default print options const TypeId aSwWebDocShellTypeId = TYPE(SwWebDocShell); BOOL bWeb = pDocShell->IsA( aSwWebDocShellTypeId ); - rOptions.MakeOptions( bWeb ); + ::sw::InitPrintOptionsFromApplication(rOptions, bWeb); // get print options to use from provided properties rOptions.bPrintGraphic = pOpt->IsPrintGraphics(); @@ -183,19 +182,8 @@ void SwRenderData::MakeSwPrtOptions( //! function will destroy the pointers rOptions.SetPrintUIOptions( pOpt ); rOptions.SetRenderData( pData ); - - // rOptions.aMulti is not used anymore in the XRenderable API - // Thus we set it to a dummy value here. - rOptions.aMulti = MultiSelection( Range( 1, 1 ) ); - - //! Note: Since for PDF export of (multi-)selection a temporary - //! document is created that contains only the selects parts, - //! and thus that document is to printed in whole the, - //! rOptions.bPrintSelection parameter will be false. - if (bIsPDFExport) - rOptions.bPrintSelection = FALSE; } - + ////////////////////////////////////////////////////////////////////// diff --git a/sw/source/core/view/vdraw.cxx b/sw/source/core/view/vdraw.cxx index 20e12f2e3c..1162567480 100644 --- a/sw/source/core/view/vdraw.cxx +++ b/sw/source/core/view/vdraw.cxx @@ -52,7 +52,7 @@ #include "viewimp.hxx" #include "dflyobj.hxx" #include "viewopt.hxx" -#include "swprtopt.hxx" +#include "printdata.hxx" #include "dcontact.hxx" #include "dview.hxx" #include "flyfrm.hxx" @@ -179,7 +179,7 @@ void SwViewImp::UnlockPaint() // outliner of the draw view for painting layers <hell> and <heaven>. // OD 25.06.2003 #108784# - correct type of 1st parameter void SwViewImp::PaintLayer( const SdrLayerID _nLayerID, - const SwPrtOptions * _pPrintData, + SwPrintData const*const pPrintData, const SwRect& , const Color* _pPageBackgrdColor, const bool _bIsPageRightToLeft ) const @@ -226,11 +226,11 @@ void SwViewImp::PaintLayer( const SdrLayerID _nLayerID, } pOutDev->Push( PUSH_LINECOLOR ); // #114231# - if (_pPrintData) + if (pPrintData) { // hide drawings but not form controls (form controls are handled elsewhere) SdrView &rSdrView = const_cast< SdrView & >(GetPageView()->GetView()); - rSdrView.setHideDraw( !_pPrintData->IsPrintDraw() ); + rSdrView.setHideDraw( !pPrintData->IsPrintDraw() ); } GetPageView()->DrawLayer(_nLayerID, pOutDev); pOutDev->Pop(); diff --git a/sw/source/core/view/viewpg.cxx b/sw/source/core/view/viewpg.cxx index 91f89299e8..dc56548152 100644 --- a/sw/source/core/view/viewpg.cxx +++ b/sw/source/core/view/viewpg.cxx @@ -41,19 +41,15 @@ #include <rootfrm.hxx> #include <viewimp.hxx> #include <viewopt.hxx> -#include <swprtopt.hxx> // SwPrtOptions +#include <printdata.hxx> #include <fldbas.hxx> #include <ptqueue.hxx> #include <swregion.hxx> #include <hints.hxx> #include <fntcache.hxx> -#ifndef _STATSTR_HRC #include <statstr.hrc> // Text fuer SfxProgress -#endif -#ifndef _COMCORE_HRC #include <comcore.hrc> -#endif #include <IDocumentFieldsAccess.hxx> #include <IDocumentDeviceAccess.hxx> @@ -77,7 +73,7 @@ void ViewShell::ShowPreViewSelection( sal_uInt16 nSelPage ) OD 09.01.2003 #i6467# */ -void ViewShell::AdjustOptionsForPagePreview( const SwPrtOptions &_rPrintOptions ) +void ViewShell::AdjustOptionsForPagePreview(SwPrintData const& rPrintOptions) { if ( !IsPreView() ) { @@ -85,7 +81,7 @@ void ViewShell::AdjustOptionsForPagePreview( const SwPrtOptions &_rPrintOptions return; } - PrepareForPrint( _rPrintOptions ); + PrepareForPrint( rPrintOptions ); return; } diff --git a/sw/source/core/view/vprint.cxx b/sw/source/core/view/vprint.cxx index c37036e42a..d7c0aadc9d 100755..100644 --- a/sw/source/core/view/vprint.cxx +++ b/sw/source/core/view/vprint.cxx @@ -71,7 +71,7 @@ #include <docufld.hxx> // PostItFld /-Type #include <shellres.hxx> #include <viewopt.hxx> -#include <swprtopt.hxx> // SwPrtOptions +#include <printdata.hxx> // SwPrintData #include <pagedesc.hxx> #include <poolfmt.hxx> // fuer RES_POOLPAGE_JAKET #include <mdiexp.hxx> // Ansteuern der Statusleiste @@ -369,107 +369,6 @@ void ViewShell::CalcPagesForPrint( USHORT nMax ) /******************************************************************************/ -SwDoc * ViewShell::CreatePrtDoc( SfxObjectShellRef &rDocShellRef) -{ - ASSERT( this->IsA( TYPE(SwFEShell) ),"ViewShell::Prt for FEShell only"); - SwFEShell* pFESh = (SwFEShell*)this; - // Wir bauen uns ein neues Dokument - SwDoc *pPrtDoc = new SwDoc; - pPrtDoc->acquire(); - pPrtDoc->SetRefForDocShell( (SfxObjectShellRef*)&(long&)rDocShellRef ); - pPrtDoc->LockExpFlds(); - - const SfxPoolItem* pCpyItem; - const SfxItemPool& rPool = GetAttrPool(); - for( USHORT nWh = POOLATTR_BEGIN; nWh < POOLATTR_END; ++nWh ) - if( 0 != ( pCpyItem = rPool.GetPoolDefaultItem( nWh ) ) ) - pPrtDoc->GetAttrPool().SetPoolDefaultItem( *pCpyItem ); - - // JP 29.07.99 - Bug 67951 - set all Styles from the SourceDoc into - // the PrintDoc - will be replaced! - pPrtDoc->ReplaceStyles( *GetDoc() ); - - SwShellCrsr *pActCrsr = pFESh->_GetCrsr(); - SwShellCrsr *pFirstCrsr = dynamic_cast<SwShellCrsr*>(pActCrsr->GetNext()); - if( !pActCrsr->HasMark() ) // bei Multiselektion kann der aktuelle Cursor leer sein - { - pActCrsr = dynamic_cast<SwShellCrsr*>(pActCrsr->GetPrev()); - } - - Point aSelPoint; - if( pFESh->IsTableMode() ) - { - SwShellTableCrsr* pShellTblCrsr = pFESh->GetTableCrsr(); - - const SwCntntNode* pCntntNode = pShellTblCrsr->GetNode()->GetCntntNode(); - const SwCntntFrm *pCntntFrm = pCntntNode ? pCntntNode->GetFrm( 0, pShellTblCrsr->Start() ) : 0; - if( pCntntFrm ) - { - SwRect aCharRect; - SwCrsrMoveState aTmpState( MV_NONE ); - pCntntFrm->GetCharRect( aCharRect, *pShellTblCrsr->Start(), &aTmpState ); - aSelPoint = Point( aCharRect.Left(), aCharRect.Top() ); - } - } - else - { - aSelPoint = pFirstCrsr->GetSttPos(); - } - - const SwPageFrm* pPage = GetLayout()->GetPageAtPos( aSelPoint ); - ASSERT( pPage, "no page found!" ); - - // get page descriptor - fall back to the first one if pPage could not be found - const SwPageDesc* pPageDesc = pPage ? pPrtDoc->FindPageDescByName( - pPage->GetPageDesc()->GetName() ) : &pPrtDoc->_GetPageDesc( (sal_uInt16)0 ); - - if( !pFESh->IsTableMode() && pActCrsr->HasMark() ) - { // Am letzten Absatz die Absatzattribute richten: - SwNodeIndex aNodeIdx( *pPrtDoc->GetNodes().GetEndOfContent().StartOfSectionNode() ); - SwTxtNode* pTxtNd = pPrtDoc->GetNodes().GoNext( &aNodeIdx )->GetTxtNode(); - SwCntntNode *pLastNd = - pActCrsr->GetCntntNode( (*pActCrsr->GetMark()) <= (*pActCrsr->GetPoint()) ); - // Hier werden die Absatzattribute des ersten Absatzes uebertragen - if( pLastNd && pLastNd->IsTxtNode() ) - ((SwTxtNode*)pLastNd)->CopyCollFmt( *pTxtNd ); - } - - // es wurde in der CORE eine neu angelegt (OLE-Objekte kopiert!) -// if( aDocShellRef.Is() ) -// SwDataExchange::InitOle( aDocShellRef, pPrtDoc ); - // und fuellen es mit dem selektierten Bereich - pFESh->Copy( pPrtDoc ); - - //Jetzt noch am ersten Absatz die Seitenvorlage setzen - { - SwNodeIndex aNodeIdx( *pPrtDoc->GetNodes().GetEndOfContent().StartOfSectionNode() ); - SwCntntNode* pCNd = pPrtDoc->GetNodes().GoNext( &aNodeIdx ); // gehe zum 1. ContentNode - if( pFESh->IsTableMode() ) - { - SwTableNode* pTNd = pCNd->FindTableNode(); - if( pTNd ) - pTNd->GetTable().GetFrmFmt()->SetFmtAttr( SwFmtPageDesc( pPageDesc ) ); - } - else - { - pCNd->SetAttr( SwFmtPageDesc( pPageDesc ) ); - if( pFirstCrsr->HasMark() ) - { - SwTxtNode *pTxtNd = pCNd->GetTxtNode(); - if( pTxtNd ) - { - SwCntntNode *pFirstNd = - pFirstCrsr->GetCntntNode( (*pFirstCrsr->GetMark()) > (*pFirstCrsr->GetPoint()) ); - // Hier werden die Absatzattribute des ersten Absatzes uebertragen - if( pFirstNd && pFirstNd->IsTxtNode() ) - ((SwTxtNode*)pFirstNd)->CopyCollFmt( *pTxtNd ); - } - } - } - } - return pPrtDoc; -} - SwDoc * ViewShell::FillPrtDoc( SwDoc *pPrtDoc, const SfxPrinter* pPrt) { ASSERT( this->IsA( TYPE(SwFEShell) ),"ViewShell::Prt for FEShell only"); @@ -582,7 +481,7 @@ SwDoc * ViewShell::FillPrtDoc( SwDoc *pPrtDoc, const SfxPrinter* pPrt) sal_Bool ViewShell::PrintOrPDFExport( OutputDevice *pOutDev, - const SwPrtOptions &rPrintData, + SwPrintData const& rPrintData, sal_Int32 nRenderer /* the index in the vector of pages to be printed */ ) { //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -608,32 +507,15 @@ sal_Bool ViewShell::PrintOrPDFExport( //!! (h?ngt mit OLE Objekten im Dokument zusammen.) SfxObjectShellRef aDocShellRef; - //! Note: Since for PDF export of (multi-)selection a temporary - //! document is created that contains only the selects parts, - //! and thus that document is to printed in whole the, - //! rPrintData.bPrintSelection parameter will be false. - BOOL bSelection = rPrintData.bPrintSelection; - - // PDF export for (multi-)selection has already generated a temporary document - // with the selected text. (see XRenderable implementation in unotxdoc.cxx) - // Thus we like to go in the 'else' part here in that case. - // Is is implemented this way because PDF export calls this Prt function + // Print/PDF export for (multi-)selection has already generated a + // temporary document with the selected text. + // (see XRenderable implementation in unotxdoc.cxx) + // It is implemented this way because PDF export calls this Prt function // once per page and we do not like to always have the temporary document - // to be created that often here in the 'then' part. - if ( bSelection ) - { - pOutDevDoc = CreatePrtDoc( aDocShellRef ); + // to be created that often here. + pOutDevDoc = GetDoc(); + pShell = new ViewShell( *this, 0, pOutDev ); - // eine ViewShell darauf - pShell = new ViewShell( *pOutDevDoc, 0, pOpt, pOutDev ); - pOutDevDoc->SetRefForDocShell( 0 ); - } - else - { - pOutDevDoc = GetDoc(); - pShell = new ViewShell( *this, 0, pOutDev ); - } - SdrView *pDrawView = pShell->GetDrawView(); if (pDrawView) { @@ -682,6 +564,8 @@ sal_Bool ViewShell::PrintOrPDFExport( rPrintData.GetRenderData().m_pPostItShell : pShell; ::SetSwVisArea( pViewSh2, pStPage->Frm() ); +// FIXME disabled because rPrintData.aOffset is always (0,0) +#if 0 // wenn wir einen Umschlag drucken wird ein Offset beachtet if( pStPage->GetFmt()->GetPoolFmtId() == RES_POOLPAGE_JAKET ) { @@ -691,6 +575,7 @@ sal_Bool ViewShell::PrintOrPDFExport( aTmp.SetOrigin( aNewOrigin ); pOutDev->SetMapMode( aTmp ); } +#endif pShell->InitPrt( pOutDev ); @@ -705,12 +590,6 @@ sal_Bool ViewShell::PrintOrPDFExport( delete pShell; - if (bSelection ) - { - if ( !pOutDevDoc->release() ) - delete pOutDevDoc; - } - // restore settings of OutputDevice (should be done always now since the // output device is now provided by a call from outside the Writer) pOutDev->Pop(); @@ -788,9 +667,9 @@ void ViewShell::PrtOle2( SwDoc *pDoc, const SwViewOption *pOpt, const SwPrintDat BOOL ViewShell::IsAnyFieldInDoc() const { const SfxPoolItem* pItem; - USHORT nMaxItems = pDoc->GetAttrPool().GetItemCount( RES_TXTATR_FIELD ); - for( USHORT n = 0; n < nMaxItems; ++n ) - if( 0 != (pItem = pDoc->GetAttrPool().GetItem( RES_TXTATR_FIELD, n ))) + sal_uInt32 nMaxItems = pDoc->GetAttrPool().GetItemCount2( RES_TXTATR_FIELD ); + for( sal_uInt32 n = 0; n < nMaxItems; ++n ) + if( 0 != (pItem = pDoc->GetAttrPool().GetItem2( RES_TXTATR_FIELD, n ))) { const SwFmtFld* pFmtFld = (SwFmtFld*)pItem; const SwTxtFld* pTxtFld = pFmtFld->GetTxtFld(); diff --git a/sw/source/filter/ascii/ascatr.cxx b/sw/source/filter/ascii/ascatr.cxx index 280ecf1166..4d52488de5 100644 --- a/sw/source/filter/ascii/ascatr.cxx +++ b/sw/source/filter/ascii/ascatr.cxx @@ -125,7 +125,7 @@ BOOL SwASC_AttrIter::OutAttr( xub_StrLen nSwPos ) { case RES_TXTATR_FIELD: sOut = static_cast<SwTxtFld const*>(pHt)->GetFld().GetFld() - ->ExpandField(rWrt.pDoc->IsClipBoard()); + ->ExpandField(true); break; case RES_TXTATR_FTN: diff --git a/sw/source/filter/html/htmlatr.cxx b/sw/source/filter/html/htmlatr.cxx index d0f73494bb..13164ee383 100644 --- a/sw/source/filter/html/htmlatr.cxx +++ b/sw/source/filter/html/htmlatr.cxx @@ -1250,8 +1250,9 @@ class HTMLEndPosLst SvXub_StrLens aScriptChgLst; // positions where script changes // 0 is not contained in this list, // but the text length - SvUShorts aScriptLst; // the script that is valif up to the position - // contained in aScriptChgList at the same index + // the script that is valif up to the position + // contained in aScriptChgList at the same index + ::std::vector<USHORT> aScriptLst; SwDoc *pDoc; // das aktuelle Dokument SwDoc* pTemplate; // die HTML-Vorlage (oder 0) @@ -1797,8 +1798,8 @@ HTMLEndPosLst::HTMLEndPosLst( SwDoc *pD, SwDoc* pTempl, { sal_uInt16 nScript = pBreakIt->GetBreakIter()->getScriptType( rText, nPos ); nPos = (xub_StrLen)pBreakIt->GetBreakIter()->endOfScript( rText, nPos, nScript ); - aScriptChgLst.Insert( nPos, aScriptChgLst.Count() ); - aScriptLst.Insert( nScript, aScriptLst.Count() ); + aScriptChgLst.push_back( nPos ); + aScriptLst.push_back( nScript ); } } @@ -1995,9 +1996,8 @@ void HTMLEndPosLst::Insert( const SfxPoolItem& rItem, if( bDependsOnScript ) { - sal_uInt16 nScriptChgs = aScriptChgLst.Count(); xub_StrLen nPos = nStart; - for( sal_uInt16 i=0; i < nScriptChgs; i++ ) + for( size_t i=0; i < aScriptChgLst.size(); i++ ) { xub_StrLen nChgPos = aScriptChgLst[i]; if( nPos >= nChgPos ) @@ -2080,8 +2080,8 @@ sal_uInt16 HTMLEndPosLst::GetScriptAtPos( xub_StrLen nPos , { sal_uInt16 nRet = CSS1_OUTMODE_ANY_SCRIPT; - sal_uInt16 nScriptChgs = aScriptChgLst.Count(); - sal_uInt16 i=0; + size_t nScriptChgs = aScriptChgLst.size(); + size_t i=0; while( i < nScriptChgs && nPos >= aScriptChgLst[i] ) i++; ASSERT( i < nScriptChgs, "script list is to short" ); diff --git a/sw/source/filter/html/htmlfldw.cxx b/sw/source/filter/html/htmlfldw.cxx index 32234b7929..a60fd36daf 100644 --- a/sw/source/filter/html/htmlfldw.cxx +++ b/sw/source/filter/html/htmlfldw.cxx @@ -305,7 +305,7 @@ static Writer& OutHTML_SwField( Writer& rWrt, const SwField* pFld, } // Inhalt des Feldes ausgeben - String const sExpand( pFld->ExpandField(rWrt.pDoc->IsClipBoard()) ); + String const sExpand( pFld->ExpandField(true) ); sal_Bool bNeedsCJKProcessing = sal_False; if( sExpand.Len() ) { diff --git a/sw/source/filter/html/htmlfly.cxx b/sw/source/filter/html/htmlfly.cxx index e11a5cdf43..7e07c5835b 100644 --- a/sw/source/filter/html/htmlfly.cxx +++ b/sw/source/filter/html/htmlfly.cxx @@ -1835,10 +1835,10 @@ void SwHTMLWriter::CollectLinkTargets() const SwTxtINetFmt* pTxtAttr; const SwTxtNode* pTxtNd; - USHORT n, nMaxItems = pDoc->GetAttrPool().GetItemCount( RES_TXTATR_INETFMT ); + sal_uInt32 n, nMaxItems = pDoc->GetAttrPool().GetItemCount2( RES_TXTATR_INETFMT ); for( n = 0; n < nMaxItems; ++n ) { - if( 0 != (pINetFmt = (SwFmtINetFmt*)pDoc->GetAttrPool().GetItem( + if( 0 != (pINetFmt = (SwFmtINetFmt*)pDoc->GetAttrPool().GetItem2( RES_TXTATR_INETFMT, n ) ) && 0 != ( pTxtAttr = pINetFmt->GetTxtINetFmt()) && 0 != ( pTxtNd = pTxtAttr->GetpTxtNode() ) && @@ -1849,10 +1849,10 @@ void SwHTMLWriter::CollectLinkTargets() } const SwFmtURL *pURL; - nMaxItems = pDoc->GetAttrPool().GetItemCount( RES_URL ); + nMaxItems = pDoc->GetAttrPool().GetItemCount2( RES_URL ); for( n = 0; n < nMaxItems; ++n ) { - if( 0 != (pURL = (SwFmtURL*)pDoc->GetAttrPool().GetItem( + if( 0 != (pURL = (SwFmtURL*)pDoc->GetAttrPool().GetItem2( RES_URL, n ) ) ) { AddLinkTarget( pURL->GetURL() ); diff --git a/sw/source/filter/html/htmlgrin.cxx b/sw/source/filter/html/htmlgrin.cxx index 707b62c2cf..910b1bcdd6 100644 --- a/sw/source/filter/html/htmlgrin.cxx +++ b/sw/source/filter/html/htmlgrin.cxx @@ -166,7 +166,7 @@ void SwHTMLParser::ConnectImageMaps() } -/* */ +/* */ void SwHTMLParser::SetAnchorAndAdjustment( sal_Int16 eVertOri, sal_Int16 eHoriOri, @@ -302,12 +302,11 @@ void SwHTMLParser::RegisterFlyFrm( SwFrmFmt *pFlyFmt ) SURROUND_THROUGHT == pFlyFmt->GetSurround().GetSurround() ) { aMoveFlyFrms.Insert( pFlyFmt, aMoveFlyFrms.Count() ); - aMoveFlyCnts.Insert( pPam->GetPoint()->nContent.GetIndex(), - aMoveFlyCnts.Count() ); + aMoveFlyCnts.push_back( pPam->GetPoint()->nContent.GetIndex() ); } } -/* */ +/* */ void SwHTMLParser::GetDefaultScriptType( ScriptType& rType, String& rTypeStr ) const @@ -319,7 +318,7 @@ void SwHTMLParser::GetDefaultScriptType( ScriptType& rType, rTypeStr = GetScriptTypeString( pHeaderAttrs ); } -/* */ +/* */ void SwHTMLParser::InsertImage() { @@ -816,7 +815,7 @@ IMAGE_SETEVENT: InsertBookmark( aId ); } -/* */ +/* */ void SwHTMLParser::InsertBodyOptions() { @@ -1047,7 +1046,7 @@ void SwHTMLParser::InsertBodyOptions() InsertBookmark( aId ); } -/* */ +/* */ void SwHTMLParser::NewAnchor() { @@ -1268,7 +1267,7 @@ void SwHTMLParser::EndAnchor() EndTag( HTML_ANCHOR_OFF ); } -/* */ +/* */ void SwHTMLParser::InsertBookmark( const String& rName ) { @@ -1324,7 +1323,7 @@ BOOL SwHTMLParser::HasCurrentParaBookmarks( BOOL bIgnoreStack ) const return bHasMarks; } -/* */ +/* */ void SwHTMLParser::StripTrailingPara() { diff --git a/sw/source/filter/html/makefile.mk b/sw/source/filter/html/makefile.mk index b99cc67894..495a415d02 100644 --- a/sw/source/filter/html/makefile.mk +++ b/sw/source/filter/html/makefile.mk @@ -71,7 +71,9 @@ SLOFILES = \ $(SLO)$/SwAppletImpl.obj \ EXCEPTIONSFILES = \ + $(SLO)$/htmlatr.obj \ $(SLO)$/htmlfld.obj \ + $(SLO)$/htmlgrin.obj \ $(SLO)$/htmlplug.obj \ $(SLO)$/htmlsect.obj \ $(SLO)$/swhtml.obj \ diff --git a/sw/source/filter/html/swhtml.cxx b/sw/source/filter/html/swhtml.cxx index a15300b76c..6da1f4d4f1 100644 --- a/sw/source/filter/html/swhtml.cxx +++ b/sw/source/filter/html/swhtml.cxx @@ -2881,7 +2881,7 @@ void SwHTMLParser::_SetAttr( BOOL bChkEnd, BOOL bBeforeTable, pFrmFmt->MakeFrms(); aMoveFlyFrms.Remove( n, 1 ); - aMoveFlyCnts.Remove( n, 1 ); + aMoveFlyCnts.erase( aMoveFlyCnts.begin() + n ); } } while( aFields.Count() ) diff --git a/sw/source/filter/html/swhtml.hxx b/sw/source/filter/html/swhtml.hxx index 7f5fb3cdbe..caacc864a9 100644 --- a/sw/source/filter/html/swhtml.hxx +++ b/sw/source/filter/html/swhtml.hxx @@ -406,8 +406,8 @@ class SwHTMLParser : public SfxHTMLParser, public SwClient _HTMLAttrs aParaAttrs; // vorlauefige Absatz-Attribute _HTMLAttrTable aAttrTab; // "offene" Attribute _HTMLAttrContexts aContexts;// der aktuelle Attribut/Token-Kontext - SwHTMLFrmFmts aMoveFlyFrms;// Fly-Frames, deren Anker verschoben wird - SvXub_StrLens aMoveFlyCnts;// und deren Content-Positionen + SwHTMLFrmFmts aMoveFlyFrms;// Fly-Frames, the anchor is moved + SvXub_StrLens aMoveFlyCnts;// and the Content-Positions SwApplet_Impl *pAppletImpl; // das aktuelle Applet diff --git a/sw/source/filter/rtf/makefile.mk b/sw/source/filter/rtf/makefile.mk index 2ff764d730..a81164487a 100644 --- a/sw/source/filter/rtf/makefile.mk +++ b/sw/source/filter/rtf/makefile.mk @@ -46,18 +46,17 @@ CDEFS=$(CDEFS) -Dmydebug EXCEPTIONSFILES= \ $(SLO)$/rtffly.obj \ $(SLO)$/rtfnum.obj \ + $(SLO)$/rtftbl.obj \ $(SLO)$/swparrtf.obj \ - $(SLO)$/wrtrtf.obj + $(SLO)$/rtffld.obj SLOFILES = \ - $(SLO)$/rtfatr.obj \ $(SLO)$/rtffld.obj \ $(SLO)$/rtffly.obj \ $(SLO)$/rtfnum.obj \ $(SLO)$/rtftbl.obj \ - $(SLO)$/swparrtf.obj \ - $(SLO)$/wrtrtf.obj + $(SLO)$/swparrtf.obj # --- Tagets ------------------------------------------------------- diff --git a/sw/source/filter/rtf/rtfatr.cxx b/sw/source/filter/rtf/rtfatr.cxx deleted file mode 100644 index 4a3f53ad81..0000000000 --- a/sw/source/filter/rtf/rtfatr.cxx +++ /dev/null @@ -1,4356 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_sw.hxx" -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil -*- */ - -/* - * Dieses File enthaelt alle Ausgabe-Funktionen des RTF-Writers; - * fuer alle Nodes, Attribute, Formate und Chars. - */ -#include <hintids.hxx> - -#include <com/sun/star/i18n/ScriptType.hdl> -#include <vcl/cvtgrf.hxx> -#include <svl/urihelper.hxx> -#include <svl/stritem.hxx> -#include <svtools/rtfkeywd.hxx> -#include <svl/whiter.hxx> -#include <svtools/rtfout.hxx> -#include <svl/itemiter.hxx> -#include <editeng/fontitem.hxx> -#include <editeng/hyznitem.hxx> -#include <editeng/tstpitem.hxx> -#include <editeng/lspcitem.hxx> -#include <editeng/langitem.hxx> -#include <editeng/keepitem.hxx> -#include <editeng/udlnitem.hxx> -#include <editeng/shaditem.hxx> -#include <editeng/cmapitem.hxx> -#include <editeng/brshitem.hxx> -#include <editeng/protitem.hxx> -#include <editeng/opaqitem.hxx> -#include <editeng/ulspitem.hxx> -#include <editeng/prntitem.hxx> -#include <editeng/colritem.hxx> -#include <editeng/escpitem.hxx> -#include <editeng/fhgtitem.hxx> -#include <editeng/spltitem.hxx> -#include <editeng/adjitem.hxx> -#include <editeng/lrspitem.hxx> -#include <editeng/boxitem.hxx> -#include <editeng/crsditem.hxx> -#include <editeng/cntritem.hxx> -#include <editeng/postitem.hxx> -#include <editeng/shdditem.hxx> -#include <editeng/wghtitem.hxx> -#include <editeng/wrlmitem.hxx> -#include <editeng/emphitem.hxx> -#include <editeng/twolinesitem.hxx> -#include <editeng/charscaleitem.hxx> -#include <editeng/charrotateitem.hxx> -#include <editeng/charreliefitem.hxx> -#include <svx/xoutbmp.hxx> -#include <editeng/paravertalignitem.hxx> -#include <editeng/hngpnctitem.hxx> -#include <editeng/scriptspaceitem.hxx> -#include <editeng/forbiddenruleitem.hxx> -#include <editeng/frmdiritem.hxx> -#include <editeng/charhiddenitem.hxx> -#include <unotools/charclass.hxx> -#include <reffld.hxx> -#include <frmatr.hxx> -#include <charatr.hxx> -#include <fmtfsize.hxx> -#include <fmtpdsc.hxx> -#include <fmtfld.hxx> -#include <fmtflcnt.hxx> -#include <fmtftn.hxx> -#include <fchrfmt.hxx> -#include <fmtautofmt.hxx> -#include <fmtcntnt.hxx> -#include <fmthdft.hxx> -#include <fmtclds.hxx> -#include <txtftn.hxx> -#include <fmtsrnd.hxx> -#include <fmtanchr.hxx> -#include <charfmt.hxx> -#include <fmtinfmt.hxx> -#include <txtinet.hxx> -#include <doc.hxx> -#include <docary.hxx> -#include <ndtxt.hxx> -#include <pam.hxx> -#include <paratr.hxx> -#include <fldbas.hxx> // fuer SwField ... -#include <wrtrtf.hxx> -#include <rtf.hxx> // fuer SwPictureType -#include <ndgrf.hxx> -#include <grfatr.hxx> -#include <docufld.hxx> -#include <flddat.hxx> -#include <pagedesc.hxx> // fuer SwPageDesc ... -#include <swtable.hxx> // fuer SwPageDesc ... -#include <docsh.hxx> -#include <swrect.hxx> -#include <section.hxx> -#include <wrtswtbl.hxx> -#include <htmltbl.hxx> -#include <fmtclbl.hxx> -#include <breakit.hxx> -#include <fmtruby.hxx> -#include <txtatr.hxx> -#include <fltini.hxx> -#include <fmtrowsplt.hxx> - -/* - * um nicht immer wieder nach einem Update festzustellen, das irgendwelche - * Hint-Ids dazugekommen sind, wird hier definiert, die Groesse der Tabelle - * definiert und mit der akt. verglichen. Bei unterschieden wird der - * Compiler schon meckern. - * - * diese Section und die dazugeherigen Tabellen muessen in folgenden Files - * gepflegt werden: rtf\rtfatr.cxx, sw6\sw6atr.cxx, w4w\w4watr.cxx - */ -#if !defined(UNX) && !defined(MSC) && !defined(PPC) && !defined(CSET) && !defined(__MWERKS__) && !defined(WTC) && !defined(__MINGW32__) && !defined(OS2) - -#define ATTRFNTAB_SIZE 130 -#if ATTRFNTAB_SIZE != POOLATTR_END - POOLATTR_BEGIN -#error Attribut-Tabelle ist ungueltigt. Wurden neue Hint-IDs zugefuegt ?? -#endif - -#ifdef FORMAT_TABELLE -// da sie nicht benutzt wird! -#define FORMATTAB_SIZE 7 -#if FORMATTAB_SIZE != RES_FMT_END - RES_FMT_BEGIN -#error Format-Tabelle ist ungueltigt. Wurden neue Hint-IDs zugefuegt ?? -#endif -#endif - -#define NODETAB_SIZE 3 -#if NODETAB_SIZE != RES_NODE_END - RES_NODE_BEGIN -#error Node-Tabelle ist ungueltigt. Wurden neue Hint-IDs zugefuegt ?? -#endif - -#endif - -#ifdef WNT -// ueber xoutbmp.hxx wird das winuser.h angezogen. Dort gibt es ein -// define GetProp das mit unserem SvxEscapement kollidiert! -#undef GetProp -#endif - - -using namespace com::sun::star; - -//----------------------------------------------------------------------- - -static Writer& OutRTF_SwFmtCol( Writer& rWrt, const SfxPoolItem& rHt ); - -//----------------------------------------------------------------------- - -SvStream& OutComment( Writer& rWrt, const sal_Char* pStr ) -{ - return (rWrt.Strm() << '{' << OOO_STRING_SVTOOLS_RTF_IGNORE << pStr); -} - -SvStream& OutComment( Writer& rWrt, const char* pStr, BOOL bSetFlag ) -{ - // setze Flag, damit bei der Ausgabe von Attributen zu erkennen, - // ob ueberhaupt etwas ausgegeben wurde. - ((SwRTFWriter&)rWrt).bOutFmtAttr = bSetFlag; - return (rWrt.Strm() << '{' << OOO_STRING_SVTOOLS_RTF_IGNORE << pStr); -} - -Writer& OutRTF_AsByteString( Writer& rWrt, const String& rStr, rtl_TextEncoding eEncoding) -{ - ByteString sOutStr( rStr, eEncoding ); - rWrt.Strm() << sOutStr.GetBuffer(); - return rWrt; -} - -void OutRTF_SfxItemSet( SwRTFWriter& rWrt, const SfxItemSet& rSet, - BOOL bDeep ) -{ - bool bFrameDirOut=false; - bool bAdjustOut=false; - // erst die eigenen Attribute ausgeben - SvPtrarr aAsian( 0, 5 ), aCmplx( 0, 5 ), aLatin( 0, 5 ); - - const SfxItemPool& rPool = *rSet.GetPool(); - SfxWhichIter aIter( rSet ); - const SfxPoolItem* pItem; - FnAttrOut pOut; - USHORT nWhich = aIter.FirstWhich(); - while( nWhich ) - { - if( SFX_ITEM_SET == rSet.GetItemState( nWhich, bDeep, &pItem )) - { - pOut = aRTFAttrFnTab[ nWhich - RES_CHRATR_BEGIN]; - if( pOut && - ( *pItem != rPool.GetDefaultItem( nWhich ) - || ( rSet.GetParent() && - *pItem != rSet.GetParent()->Get( nWhich ) ) - || ( rWrt.GetAttrSet() && - *pItem != rWrt.GetAttrSet()->Get( nWhich ) ) - ) ) - ; - else - pOut = 0; - } - else if( !bDeep ) - pOut = 0; - else if( 0 != ( pItem = rPool.GetPoolDefaultItem( nWhich )) ) - pOut = aRTFAttrFnTab[ nWhich - RES_CHRATR_BEGIN]; - else - pOut = 0; - - if (!pOut && bDeep) - { - switch( nWhich ) - { - case RES_CHRATR_FONTSIZE: - case RES_CHRATR_CJK_FONTSIZE: - case RES_CHRATR_CTL_FONTSIZE: - case RES_CHRATR_LANGUAGE: - case RES_CHRATR_CJK_LANGUAGE: - case RES_CHRATR_CTL_LANGUAGE: - pItem = &rPool.GetDefaultItem( nWhich ); - pOut = aRTFAttrFnTab[ nWhich - RES_CHRATR_BEGIN]; - break; - default: - break; - } - } - - if( pOut ) - { - void* pVoidItem = (void*)pItem; - switch( nWhich ) - { - case RES_CHRATR_FONT: - case RES_CHRATR_FONTSIZE: - case RES_CHRATR_LANGUAGE: - case RES_CHRATR_POSTURE: - case RES_CHRATR_WEIGHT: - aLatin.Insert( pVoidItem, aLatin.Count() ); - pOut = 0; - break; - - case RES_CHRATR_CJK_FONT: - case RES_CHRATR_CJK_FONTSIZE: - case RES_CHRATR_CJK_LANGUAGE: - case RES_CHRATR_CJK_POSTURE: - case RES_CHRATR_CJK_WEIGHT: - aAsian.Insert( pVoidItem, aAsian.Count() ); - pOut = 0; - break; - - case RES_CHRATR_CTL_FONT: - case RES_CHRATR_CTL_FONTSIZE: - case RES_CHRATR_CTL_LANGUAGE: - case RES_CHRATR_CTL_POSTURE: - case RES_CHRATR_CTL_WEIGHT: - aCmplx.Insert( pVoidItem, aCmplx.Count() ); - pOut = 0; - break; - - case RES_FRAMEDIR: - bFrameDirOut=true; - break; - case RES_PARATR_ADJUST: - bAdjustOut=true; - break; - } - } - - if (pOut) - (*pOut)( rWrt, *pItem ); - nWhich = aIter.NextWhich(); - } - - //If rtlpar set and no following alignment. And alignment is not rtl then - //output alignment - if (bFrameDirOut && !bAdjustOut && !rWrt.pFlyFmt && !rWrt.bOutPageDesc) - { - pOut = aRTFAttrFnTab[ static_cast< USHORT >(RES_PARATR_ADJUST) - RES_CHRATR_BEGIN]; - if (pOut) - (*pOut)(rWrt, rSet.Get(RES_PARATR_ADJUST)); - } - if (rWrt.pFlyFmt && !rWrt.bOutPageDesc && !bFrameDirOut) - { - pOut = aRTFAttrFnTab[ static_cast< USHORT >(RES_FRAMEDIR) - RES_CHRATR_BEGIN]; - if (pOut) - (*pOut)(rWrt, rSet.Get(RES_FRAMEDIR)); - } - - if (aAsian.Count() || aCmplx.Count() || aLatin.Count()) - { - SvPtrarr* aArr[4]; - switch (rWrt.GetCurrScriptType()) - { - case i18n::ScriptType::LATIN: - aArr[ 0 ] = &aCmplx; - aArr[ 1 ] = &aAsian; - aArr[ 2 ] = &aLatin; - aArr[ 3 ] = &aLatin; - break; - - case i18n::ScriptType::ASIAN: - aArr[ 0 ] = &aCmplx; - aArr[ 1 ] = &aLatin; - aArr[ 2 ] = &aLatin; - aArr[ 3 ] = &aAsian; - break; - - case i18n::ScriptType::COMPLEX: - aArr[ 0 ] = &aLatin; - aArr[ 1 ] = &aLatin; - aArr[ 2 ] = &aAsian; - aArr[ 3 ] = &aCmplx; - break; - - default: - return ; - } - - //The final entry is the one that is actually in use - //so it uses e.g. \b \i \fs, the others are not in - //use and so are "associated". Both asian and western - //are ltr runs, with asian being the dbch varient - //and western being the loch/hich varient - bool bOutLTOR = true; - bool bLowLTOR = false; - for( int nArrCnt = 0; nArrCnt < 4; ++nArrCnt ) - { - SvPtrarr* pCurArr = aArr[ nArrCnt ]; - if (pCurArr->Count()) - { - bool bInUse = (aArr[nArrCnt] == aArr[3]); - rWrt.SetAssociatedFlag(!bInUse); - if (pCurArr == &aLatin) - { - if (bOutLTOR) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_LTRCH; - bOutLTOR = false; - } - - if (bLowLTOR) - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_LOCH; - else - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_HICH; - bLowLTOR = true; - } - } - else if( pCurArr == &aAsian ) - { - if( bOutLTOR ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_LTRCH; - bOutLTOR = false; - } - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_DBCH; - } - else - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_RTLCH; - - for (USHORT n = 0; n < pCurArr->Count(); ++n) - { - pItem = (const SfxPoolItem*)(*pCurArr)[ n ]; - pOut = aRTFAttrFnTab[ pItem->Which() - RES_CHRATR_BEGIN]; - (*pOut)( rWrt, *pItem ); - } - } - } - } -} - -// fuer die Formate muesste eine einzige Ausgabe-Funktion genuegen ! -/* - * Formate wie folgt ausgeben: - * - gebe alle Attribute vom Format aus - */ - -bool SwFmtToSet(SwRTFWriter& rWrt, const SwFmt& rFmt, SfxItemSet &rSet) -{ - bool bOutItemSet = true; - rSet.SetParent(rFmt.GetAttrSet().GetParent()); - - switch( rFmt.Which() ) - { - case RES_CONDTXTFMTCOLL: - case RES_TXTFMTCOLL: - { - USHORT nId = rWrt.GetId( (const SwTxtFmtColl&)rFmt ); - if (0 == nId ) - return false; // Default-TextStyle nicht ausgeben !! - - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_S; - rWrt.OutULong( nId ); - rWrt.bOutFmtAttr = TRUE; -// BYTE nLvl = ((const SwTxtFmtColl&)rFmt).GetOutlineLevel(); //#outline level,zhaojianwei -// if( MAXLEVEL > nLvl ) -// { - if(((const SwTxtFmtColl&)rFmt).IsAssignedToListLevelOfOutlineStyle()) - { - int nLvl = ((const SwTxtFmtColl&)rFmt).GetAssignedOutlineStyleLevel(); //<-end,zhaojianwei - USHORT nNumId = rWrt.GetNumRuleId( - *rWrt.pDoc->GetOutlineNumRule() ); - if( USHRT_MAX != nNumId ) - { - BYTE nWWLvl = 8 >= nLvl ? static_cast<BYTE>(nLvl) : 8; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_LS; - rWrt.OutULong( nNumId ); - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_ILVL; rWrt.OutULong( nWWLvl ); - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_OUTLINELEVEL; rWrt.OutULong( nWWLvl ); - if( nWWLvl != nLvl ) // RTF-kennt nur 9 Ebenen - { - OutComment( rWrt, OOO_STRING_SVTOOLS_RTF_SOUTLVL ); - rWrt.OutULong( nLvl ) << '}'; - } - } - - const SwNumFmt* pNFmt = &rWrt.pDoc->GetOutlineNumRule()->Get( static_cast<USHORT>(nLvl) ); - if( pNFmt->GetAbsLSpace() ) - { - SfxItemSet aSet( *rFmt.GetAttrSet().GetPool(), - rFmt.GetAttrSet().GetRanges() ); - aSet.SetParent( &rFmt.GetAttrSet() ); - SvxLRSpaceItem aLR( (SvxLRSpaceItem&)aSet.Get( RES_LR_SPACE ) ); - - aLR.SetTxtLeft( aLR.GetTxtLeft() + pNFmt->GetAbsLSpace() ); - aLR.SetTxtFirstLineOfst( pNFmt->GetFirstLineOffset() ); - - aSet.Put(aLR); - rSet.Put(aSet); - bOutItemSet = false; - } - } - } - break; - case RES_CHRFMT: - { - USHORT nId = rWrt.GetId( (const SwCharFmt&)rFmt ); - if (0 == nId) - return false; // Default-CharStyle nicht ausgeben !! - - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_IGNORE << OOO_STRING_SVTOOLS_RTF_CS; - rWrt.OutULong( nId ); - rWrt.bOutFmtAttr = TRUE; - } - break; - -// case RES_GRFFMTCOLL: -// ????? - } - - if (bOutItemSet) - rSet.Put(rFmt.GetAttrSet()); - - return true; -} - -Writer& OutRTF_SwFmt(Writer& rWrt, const SwFmt& rFmt) -{ - SwRTFWriter & rRTFWrt = (SwRTFWriter&)rWrt; - - SfxItemSet aSet(*rFmt.GetAttrSet().GetPool(), - rFmt.GetAttrSet().GetRanges() ); - if (SwFmtToSet(rRTFWrt, rFmt, aSet)) - OutRTF_SfxItemSet(rRTFWrt, aSet, TRUE); - - return rWrt; -} - -void OutRTF_SwFlyFrmFmt( SwRTFWriter& rRTFWrt ) -{ - // ist der aktuelle Absatz in einem freifliegenden Rahmen ? Dann - // muessen noch die Attribute dafuer ausgegeben werden. - ASSERT( rRTFWrt.pFlyFmt, "wo ist das Fly-Format?" ); - - if( rRTFWrt.bOutFmtAttr ) - { - rRTFWrt.Strm() << ' '; - rRTFWrt.bOutFmtAttr = false; - } - // gebe erstmal alle RTF-Spezifischen Attribute aus - rRTFWrt.bRTFFlySyntax = TRUE; - OutRTF_SwFmt( rRTFWrt, *rRTFWrt.pFlyFmt ); - - // dann gebe alle eigenen Attribute aus - { - // dazu erzeuge einen temp strstream, um festzustellen ob es - // ueberhaupt eigene Attribute gibt ! - SvMemoryStream aTmpStrm; - SvStream* pSaveStrm = &rRTFWrt.Strm(); - rRTFWrt.SetStream( &aTmpStrm ); - - rRTFWrt.bRTFFlySyntax = false; - OutRTF_SwFmt( rRTFWrt, *rRTFWrt.pFlyFmt ); - - rRTFWrt.SetStream( pSaveStrm ); // Stream-Pointer wieder zurueck - - if ( aTmpStrm.GetEndOfData() ) // gibt es SWG spezifische Attribute? - { - aTmpStrm.Seek( 0L ); - rRTFWrt.Strm() << '{' << OOO_STRING_SVTOOLS_RTF_IGNORE << aTmpStrm << '}'; - } - } -// rRTFWrt.pFlyFmt = 0; // wieder zuruecksetzen !! -} - -/* Ausgabe der Nodes */ - -/* - * Ausgabe der Texte-Attribute: - * Die Text-Attribute sind in einem VarArray nach ihren Start-Positionen - * sortiert. Fuer den RTF-Writer ist aber auch das Ende von Bedeutung. - * Darum die Idee, sobald im SwpHints-Array ein Attribut mit der Start- - * Position gefunden wurde, in einem Sortierten-Array die Endposition - * zu speichern. Sobald der Writer die Position erreicht hat, wird die - * schliessende Klammer ausgegeben und die Position aus dem Sort.Array - * geloescht. - * 15.3.93: Es reicht leider nicht aus nur Start und End zuspeichern, denn - * im SwpHints Array stehen sie nicht nach Ende sortiert, so dass - * Attribute die falsche schliessende Klammer bekommen. (z.B - * Bold von 0..3, dann folgt Underline von 0..4. Dann bekommt Underline - * die schliessende Klammer von Bold !!) - * Also muessen erst alle Attribute einer Position gesammelt, nach - * Ende sortiert und dann erst ausgegeben werden. - */ - -SV_DECL_PTRARR( SfxPoolItems, SfxPoolItem*, 4, 4 ) -class RTFEndPosLst; - -class SttEndPos -{ - // falls mehrere Attribute den gleichen Bereich umspannen, sammeln - SfxPoolItems aArr; - xub_StrLen nStart, nEnd; - - SttEndPos( const SttEndPos & rSEPos ); - -public: - SttEndPos( const SfxPoolItem& rAttr, xub_StrLen nStt, xub_StrLen nEnd ); - ~SttEndPos(); - - xub_StrLen GetStart() const { return nStart; } - xub_StrLen GetEnd() const { return nEnd; } - - const SfxPoolItems& GetAttrs() const { return aArr; } - void AddAttr( const SfxPoolItem& rAttr ); - BOOL HasScriptChange() const; -}; - - -SV_DECL_PTRARR_DEL( _EndPosLst, SttEndPos*, 5, 5 ) -SV_IMPL_PTRARR( _EndPosLst, SttEndPos* ) - -class RTFEndPosLst : private _EndPosLst -{ - const SwTxtNode& rNode; - SwRTFWriter& rWrt; - RTFEndPosLst* pOldPosLst; - xub_StrLen nCurPos; - USHORT nCurScript; - -public: - using _EndPosLst::Count; - using _EndPosLst::operator[]; - using _EndPosLst::DeleteAndDestroy; - - RTFEndPosLst( SwRTFWriter& rWrt, const SwTxtNode& rNd, xub_StrLen nStart ); - ~RTFEndPosLst(); - - USHORT GetCurScript() const { return nCurScript; } - BOOL MatchScriptToId( USHORT nId ) const; - int Insert( const SfxPoolItem& rAttr, xub_StrLen nStt, xub_StrLen nEnd ); - - void OutAttrs( xub_StrLen nStrPos ); - void EndAttrs( xub_StrLen nStrPos ); - void OutScriptChange( xub_StrLen nStrPos ); - - const SfxPoolItem* HasItem( USHORT nWhich ) const; - const SfxPoolItem& GetItem( USHORT nWhich ) const; - void OutFontAttrs(const SfxPoolItem &rItem); - void OutFontAttrs(USHORT nScript, bool bRTL); - - SfxItemPool& GetPool() {return *rNode.GetSwAttrSet().GetPool(); } -}; - - -SttEndPos::SttEndPos( const SfxPoolItem& rAttr, - xub_StrLen nStt, xub_StrLen nEd ) - : nStart( nStt ), nEnd( nEd ) -{ - AddAttr( rAttr ); -} - -SttEndPos::~SttEndPos() -{ - for( USHORT n = 0, nCount = aArr.Count(); n < nCount; ++n ) - if( RES_FLTRATTR_BEGIN <= aArr[ n ]->Which() ) - delete aArr[ n ]; -} - -BOOL SttEndPos::HasScriptChange() const -{ - for( USHORT n = 0, nCount = aArr.Count(); n < nCount; ++n ) - if( RES_FLTR_SCRIPTTYPE == aArr[ n ]->Which() ) - return TRUE; - return FALSE; -} - -void SttEndPos::AddAttr( const SfxPoolItem& rAttr ) -{ - const SfxPoolItem* pI = &rAttr; - aArr.Insert(pI, aArr.Count()); -} - -RTFEndPosLst::RTFEndPosLst(SwRTFWriter& rWriter, const SwTxtNode& rNd, - xub_StrLen nStart) - : rNode(rNd), rWrt(rWriter), nCurPos(STRING_NOTFOUND) -{ - pOldPosLst = rWrt.pCurEndPosLst; - rWrt.pCurEndPosLst = this; - - using namespace sw::util; - CharRuns aCharRuns(GetPseudoCharRuns(rNd, nStart)); - cCharRunIter aEnd = aCharRuns.end(); - xub_StrLen nSttPos = nStart; - for (cCharRunIter aI = aCharRuns.begin(); aI != aEnd; ++aI) - { - if (nSttPos != aI->mnEndPos) - { - SfxPoolItem* pChg = new SfxUInt32Item(RES_FLTR_SCRIPTTYPE, - (sal_uInt32(aI->mnScript) << 16) | static_cast<sal_uInt32>(aI->mbRTL)); - Insert(*pChg, nSttPos, aI->mnEndPos); - nSttPos = aI->mnEndPos; - } - } -} - -RTFEndPosLst::~RTFEndPosLst() -{ - rWrt.pCurEndPosLst = pOldPosLst; -} - -int RTFEndPosLst::Insert( const SfxPoolItem& rAttr, xub_StrLen nStt, - xub_StrLen nEnd ) -{ - if (rAttr.Which() == RES_TXTATR_INETFMT) - return false; - - if( nStt == nEnd ) - return false; - - USHORT nPos; - for( nPos = 0; nPos < Count(); ++nPos ) - { - SttEndPos* pTmp = GetObject( nPos ); - if( pTmp->GetStart() == nStt && pTmp->GetEnd() == nEnd ) - { - pTmp->AddAttr( rAttr ); - return false; // schon vorhanden - } - if( nEnd < pTmp->GetEnd() ) - { - SttEndPos* pNew = new SttEndPos( rAttr, nStt, nEnd ); - _EndPosLst::C40_INSERT( SttEndPos, pNew, nPos ); - return TRUE; - } - } - - SttEndPos* pNew = new SttEndPos( rAttr, nStt, nEnd ); - _EndPosLst::C40_INSERT( SttEndPos, pNew, nPos ); - return TRUE; -} - -void RTFEndPosLst::OutScriptChange( xub_StrLen nStrPos ) -{ - SttEndPos* pStt; - for( USHORT n = 0, nEnd = Count(); n < nEnd; ++n ) - if( nStrPos == (pStt = GetObject( n ))->GetStart()) - { - if( pStt->HasScriptChange() ) - OutAttrs( nStrPos ); - break; - } -} - -void RTFEndPosLst::OutAttrs( xub_StrLen nStrPos ) -{ - SttEndPos* pStt; - nCurPos = nStrPos; - for( USHORT n = Count(); n ; ) - if( nStrPos == (pStt = (*this)[ --n ])->GetStart() ) - { - rWrt.Strm() << '{'; - for( USHORT i = 0; i < pStt->GetAttrs().Count(); ++i ) - { - const SfxPoolItem* pItem = pStt->GetAttrs()[i]; - if( RES_FLTR_SCRIPTTYPE == pItem->Which() ) - OutFontAttrs(*pItem); - else - Out( aRTFAttrFnTab, *pItem, rWrt ); - } - } - - nCurPos = STRING_NOTFOUND; -} - -//Just a little decoding hack for the RES_FLTR_SCRIPTTYPE thing -void RTFEndPosLst::OutFontAttrs(const SfxPoolItem &rItem) -{ - sal_uInt32 nValue = ((const SfxUInt32Item&)rItem).GetValue(); - sal_uInt16 nScript = static_cast<sal_uInt16>(nValue >> 16); - bool bBiDi = nValue & 0x1; - OutFontAttrs(nScript, bBiDi); -} - -void RTFEndPosLst::OutFontAttrs(USHORT nScript, bool bRTL) -{ - // script change, write the correct attributes: - // start first with the Fontname - - rWrt.bOutFmtAttr = TRUE; - nCurScript = nScript; - rWrt.SetCurrScriptType( nScript ); - rWrt.SetAssociatedFlag(false); - - // the font MUST be at the first position !!! - static const USHORT aLatinIds[] = - { - RES_CHRATR_FONT, - RES_CHRATR_FONTSIZE, RES_CHRATR_LANGUAGE, - RES_CHRATR_POSTURE, RES_CHRATR_WEIGHT, - 0 - }; - static const USHORT aAsianIds[] = - { - RES_CHRATR_CJK_FONT, - RES_CHRATR_CJK_FONTSIZE, RES_CHRATR_CJK_LANGUAGE, - RES_CHRATR_CJK_POSTURE, RES_CHRATR_CJK_WEIGHT, - 0 - }; - static const USHORT aCmplxIds[] = - { - RES_CHRATR_CTL_FONT, - RES_CHRATR_CTL_FONTSIZE, RES_CHRATR_CTL_LANGUAGE, - RES_CHRATR_CTL_POSTURE, RES_CHRATR_CTL_WEIGHT, - 0 - }; - - /* - You would have thought that - rWrt.Strm() << (bRTL ? OOO_STRING_SVTOOLS_RTF_RTLCH : OOO_STRING_SVTOOLS_RTF_LTRCH); would be sufficent here , - but looks like word needs to see the other directional token to be - satisified that all is kosher, otherwise it seems in ver 2003 to go and - semi-randomlyly stick strike through about the place. Perhaps - strikethrough is some ms developers "something is wrong signal" debugging - code that we're triggering ? - */ - if (bRTL) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_LTRCH; - rWrt.Strm() << ' '; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_RTLCH; - } - else - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_RTLCH; - rWrt.Strm() << ' '; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_LTRCH; - } - - // size/weight/posture optional - const USHORT* pIdArr = 0; - ByteString sOut; - switch (nScript) - { - default: //fall through - ASSERT(pIdArr, "unknown script, strange"); - case i18n::ScriptType::LATIN: - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_LOCH; - pIdArr = aLatinIds; - break; - case i18n::ScriptType::ASIAN: - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_DBCH; - pIdArr = aAsianIds; - break; - case i18n::ScriptType::COMPLEX: - pIdArr = aCmplxIds; - break; - } - - for (const USHORT* pId = pIdArr; *pId; ++pId) - { - if (FnAttrOut pOut = aRTFAttrFnTab[ *pId - RES_CHRATR_BEGIN]) - { - const SfxPoolItem* pItem = HasItem(*pId); - if (!pItem) - pItem = &GetPool().GetDefaultItem(*pId); - (*pOut)(rWrt, *pItem); - } - } -} - -void RTFEndPosLst::EndAttrs( xub_StrLen nStrPos ) -{ - xub_StrLen nClipStart=STRING_MAXLEN; - bool bClosed=false; - SttEndPos* pSEPos; - while( 0 != Count() && 0 != (pSEPos = GetObject( 0 )) && - ( STRING_MAXLEN == nStrPos || nStrPos == pSEPos->GetEnd() )) - { - const SfxPoolItems& rAttrs = pSEPos->GetAttrs(); - for( USHORT nAttr = rAttrs.Count(); nAttr; ) - { - switch( rAttrs[ --nAttr ]->Which() ) - { - case RES_TXTATR_CJK_RUBY: - rWrt.Strm() << ")}{" << OOO_STRING_SVTOOLS_RTF_FLDRSLT << " }}"; - break; - } - } - - rWrt.Strm() << '}'; // end of all attributes from this position - if (pSEPos->GetStart() < nClipStart) - nClipStart = pSEPos->GetStart(); - bClosed=true; - DeleteAndDestroy( 0, 1 ); - } - - if (bClosed) - { - //If there are open ranges whose start is before this point, and whose - //start is after the cliping start then they have been closed whether - //we wanted this or not. So accept that fact and then restart then - //again - USHORT nSize = Count(); - while (nSize > 0) - { - pSEPos = GetObject(--nSize); - if ( pSEPos->GetStart() < nStrPos && - pSEPos->GetStart() >= nClipStart) - { - rWrt.Strm() << '}'; - } - } - - nSize = Count(); - USHORT n = 0; - while (n < nSize) - { - SttEndPos* pStt = (*this)[n++]; - if (pStt->GetStart() < nStrPos && pStt->GetStart() >= nClipStart) - { - rWrt.Strm() << '{'; - for( USHORT i = 0; i < pStt->GetAttrs().Count(); ++i ) - { - const SfxPoolItem* pItem = pStt->GetAttrs()[i]; - if( RES_FLTR_SCRIPTTYPE == pItem->Which() ) - OutFontAttrs(*pItem); - else - Out( aRTFAttrFnTab, *pItem, rWrt ); - } - } - } - } -} - -BOOL RTFEndPosLst::MatchScriptToId( USHORT nWhich ) const -{ - BOOL bRet = false; - switch( nWhich ) - { - case RES_CHRATR_FONT: - case RES_CHRATR_FONTSIZE: - case RES_CHRATR_LANGUAGE: - case RES_CHRATR_POSTURE: - case RES_CHRATR_WEIGHT: - bRet = nCurScript == i18n::ScriptType::LATIN; - break; - case RES_CHRATR_CJK_FONT: - case RES_CHRATR_CJK_FONTSIZE: - case RES_CHRATR_CJK_LANGUAGE: - case RES_CHRATR_CJK_POSTURE: - case RES_CHRATR_CJK_WEIGHT: - bRet = nCurScript == i18n::ScriptType::ASIAN; - break; - case RES_CHRATR_CTL_FONT: - case RES_CHRATR_CTL_FONTSIZE: - case RES_CHRATR_CTL_LANGUAGE: - case RES_CHRATR_CTL_POSTURE: - case RES_CHRATR_CTL_WEIGHT: - bRet = nCurScript == i18n::ScriptType::COMPLEX; - break; - } - return bRet; -} - -const SfxPoolItem& RTFEndPosLst::GetItem( USHORT nWhich ) const -{ - const SfxPoolItem* pItem = HasItem( nWhich ); - if( !pItem ) - pItem = &rNode.GetSwAttrSet().GetPool()->GetDefaultItem( nWhich ); - return *pItem; -} - -const SfxPoolItem* RTFEndPosLst::HasItem( USHORT nWhich ) const -{ - const SfxPoolItem* pItem; - if( RES_TXTATR_END > nWhich ) - { - // it's a character/text attribute so look into the item array - for( USHORT n = Count(); n; ) - { - SttEndPos* pTmp = GetObject( --n ); - for( USHORT i = pTmp->GetAttrs().Count(); i; ) - { - pItem = pTmp->GetAttrs()[ --i ]; - if( pItem->Which() == nWhich ) - return pItem; - - // look into the charfmt? - if( RES_TXTATR_CHARFMT == pItem->Which() && - ((SwFmtCharFmt*) pItem)->GetCharFmt() && - SFX_ITEM_SET == ((SwFmtCharFmt*) pItem)->GetCharFmt()-> - GetItemState( nWhich, TRUE, &pItem )) - return pItem; - } - } - } - - if( SFX_ITEM_SET != rNode.GetSwAttrSet().GetItemState( - nWhich, TRUE, &pItem )) - pItem = 0; - return pItem; -} - -const SfxPoolItem& SwRTFWriter::GetItem( USHORT nWhich ) const -{ - if( pCurEndPosLst ) - return pCurEndPosLst->GetItem( nWhich ); - if( pAttrSet ) - return pAttrSet->Get( nWhich ); - - return pDoc->GetAttrPool().GetDefaultItem( nWhich ); -} - -static void OutSvxFrmDir(SwRTFWriter& rRTFWrt, const SfxPoolItem& rHt ) -{ - // write it only for pasgedesc's - not for frames - SvxFrameDirectionItem aItem((const SvxFrameDirectionItem&)rHt); - USHORT nVal = 0; - const sal_Char* pStr = 0; - bool bRTL = false; - - if (rRTFWrt.pFlyFmt) - aItem.SetValue(rRTFWrt.TrueFrameDirection(*rRTFWrt.pFlyFmt)); - - switch (aItem.GetValue()) - { - case FRMDIR_ENVIRONMENT: - ASSERT(0, "Not expected to see FRMDIR_ENVIRONMENT here"); - break; - case FRMDIR_VERT_TOP_RIGHT: - nVal = 1; - pStr = OOO_STRING_SVTOOLS_RTF_FRMTXTBRLV; - break; - case FRMDIR_HORI_RIGHT_TOP: - bRTL = true; -// nVal = 3; -// A val of three isn't working as expected in word :-( so leave it -// as normal ltr 0 textflow with rtl sect property, neither does -// the frame textflow -// pStr = OOO_STRING_SVTOOLS_RTF_FRMTXTBRL; - break; - case FRMDIR_VERT_TOP_LEFT: - nVal = 4; - pStr = OOO_STRING_SVTOOLS_RTF_FRMTXLRTBV; - break; - } - - if( rRTFWrt.pFlyFmt && rRTFWrt.bRTFFlySyntax && pStr ) - { - rRTFWrt.Strm() << pStr; - rRTFWrt.bOutFmtAttr = TRUE; - } - else if( rRTFWrt.bOutPageDesc) - { - if (nVal) - { - rRTFWrt.Strm() << OOO_STRING_SVTOOLS_RTF_STEXTFLOW; - rRTFWrt.OutULong( nVal ); - } - if (bRTL) - rRTFWrt.Strm() << OOO_STRING_SVTOOLS_RTF_RTLSECT; - rRTFWrt.bOutFmtAttr = TRUE; - } - else if (!rRTFWrt.pFlyFmt && !rRTFWrt.bOutPageDesc) - { - rRTFWrt.Strm() << (bRTL ? OOO_STRING_SVTOOLS_RTF_RTLPAR : OOO_STRING_SVTOOLS_RTF_LTRPAR); - rRTFWrt.bOutFmtAttr = TRUE; - } -} - -void OutRTF_SwRTL(SwRTFWriter& rWrt, const SwTxtNode *pNd) -{ - if (!pNd) - return; - SvxFrameDirection eDir = FRMDIR_ENVIRONMENT; - if (const SvxFrameDirectionItem* pItem = (const SvxFrameDirectionItem*) - pNd->GetSwAttrSet().GetItem(RES_FRAMEDIR)) - { - eDir = static_cast<SvxFrameDirection>(pItem->GetValue()); - } - if (eDir == FRMDIR_ENVIRONMENT) - { - SwPosition aPos(*pNd); - eDir = - static_cast<SvxFrameDirection>(rWrt.pDoc->GetTextDirection(aPos)); - } - OutSvxFrmDir(rWrt, SvxFrameDirectionItem(eDir, RES_FRAMEDIR)); -} - -static Writer& OutRTF_SwTxtINetFmt( Writer& rWrt, const SfxPoolItem& rHt ) -{ - const SwFmtINetFmt& rURL = (const SwFmtINetFmt&)rHt; - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - if( rURL.GetValue().Len() ) - { - rWrt.Strm() << '{' << OOO_STRING_SVTOOLS_RTF_FIELD << '{' << OOO_STRING_SVTOOLS_RTF_IGNORE - << OOO_STRING_SVTOOLS_RTF_FLDINST << " HYPERLINK "; - - String sURL( rURL.GetValue() ); - if( INET_MARK_TOKEN != sURL.GetChar(0) ) - { - INetURLObject aTmp( URIHelper::simpleNormalizedMakeRelative(rWrt.GetBaseURL(), - sURL)); - - - sURL = aTmp.GetURLNoMark( INetURLObject::DECODE_UNAMBIGUOUS); -/* if( INET_PROT_FILE == aTmp.GetProtocol() ) - { - // WW97 wollen keine FILE-URL haben, sondern einen normalen - // Dateinamen. Aber ab WW2000 kennen sie FileURLs. - sURL = aTmp.GetFull(); - } -*/ rWrt.Strm() << '\"'; - RTFOutFuncs::Out_String( rWrt.Strm(), sURL, rRTFWrt.eCurrentEncoding, - rRTFWrt.bWriteHelpFmt ) << "\" "; - sURL = aTmp.GetMark(); - } - - if( sURL.Len() ) - { - rWrt.Strm() << "\\\\l \""; - sURL.Erase( 0, 1 ); - RTFOutFuncs::Out_String( rWrt.Strm(), sURL, rRTFWrt.eCurrentEncoding, - rRTFWrt.bWriteHelpFmt ) << "\" "; - } - - if( rURL.GetTargetFrame().Len() ) - { - rWrt.Strm() << "\\\\t \""; - RTFOutFuncs::Out_String( rWrt.Strm(), rURL.GetTargetFrame(), - rRTFWrt.eDefaultEncoding, rRTFWrt.bWriteHelpFmt ) << "\" "; - } - - rWrt.Strm() << "}{" << OOO_STRING_SVTOOLS_RTF_FLDRSLT << ' '; - rRTFWrt.bOutFmtAttr = false; - - // und dann noch die Attributierung ausgeben - const SwCharFmt* pFmt; - const SwTxtINetFmt* pTxtAtr = rURL.GetTxtINetFmt(); - if( pTxtAtr && 0 != ( pFmt = pTxtAtr->GetCharFmt() )) - OutRTF_SwFmt( rWrt, *pFmt ); - } - return rWrt; -} - -void HandleHyperlinks(Writer& rWrt, const SwpHints* pTxtAttrs, xub_StrLen nPos ) -{ - USHORT nCount = pTxtAttrs ? pTxtAttrs->Count() : 0; - for(USHORT i = 0; i < nCount; ++i ) - { - const SwTxtAttr* pHt = (*pTxtAttrs)[i]; - const SfxPoolItem &rItem = pHt->GetAttr(); - if (rItem.Which() == RES_TXTATR_INETFMT) - { - const xub_StrLen* pEnd; - if (nPos == *pHt->GetStart()) - OutRTF_SwTxtINetFmt(rWrt, rItem); - if (0 != ( pEnd = pHt->GetEnd() ) && nPos == *pEnd) - { - // Hyperlinks werden als Felder geschrieben, aber der - // "FieldResult" // steht als Text im TextNode. Also muss bei - // diesen Attributen am // Ende 2 Klammern stehen! - rWrt.Strm() << "}}"; - } - } - } -} - -static Writer& OutRTF_SwTxtNode( Writer& rWrt, SwCntntNode& rNode ) -{ - SwTxtNode * pNd = &((SwTxtNode&)rNode); - SwRTFWriter & rRTFWrt = (SwRTFWriter&)rWrt; - xub_StrLen nStrPos = rRTFWrt.pCurPam->GetPoint()->nContent.GetIndex(); - RTFEndPosLst aEndPosLst( rRTFWrt, *pNd, nStrPos ); - USHORT nAttrPos = 0; - - const String& rStr = pNd->GetTxt(); - xub_StrLen nEnde = rStr.Len(); - if( rRTFWrt.pCurPam->GetPoint()->nNode == rRTFWrt.pCurPam->GetMark()->nNode ) - nEnde = Min( nEnde, rRTFWrt.pCurPam->GetMark()->nContent.GetIndex() ); - - int bNewFmts = rRTFWrt.GetAttrSet() != &pNd->GetSwAttrSet(); - if( bNewFmts ) - { - // harte Attributierung am Node und am Vorgaenger ? - const SfxItemSet* pNdSet = pNd->GetpSwAttrSet(); - if( pNdSet && rRTFWrt.GetAttrSet() && rRTFWrt.bAutoAttrSet && - pNdSet->GetParent() == rRTFWrt.GetAttrSet()->GetParent() && - pNdSet->Count() == rRTFWrt.GetAttrSet()->Count() ) - { - // die beiden Parents sind gleich, dann teste doch mal die - // Attribute im Set - - int bEqual = TRUE; - if( pNdSet->Count() ) - { - SfxItemIter aIter( *rRTFWrt.GetAttrSet() ); - const SfxPoolItem *pItem, *pCurr = aIter.GetCurItem(); - while( TRUE ) - { - if( SFX_ITEM_SET != pNdSet->GetItemState( pCurr->Which(), - false, &pItem ) || *pItem != *pCurr ) - { - bEqual = false; - break; - } - - if( aIter.IsAtEnd() ) - break; - pCurr = aIter.NextItem(); - } - } - if (bEqual) - bNewFmts = false; - } - rRTFWrt.SetAttrSet( &pNd->GetSwAttrSet() ); - rRTFWrt.bAutoAttrSet = 0 != pNdSet; - } - - // Flag zuruecksetzen, damit nach der Ausgabe der Collection - // getestet werden kann, ob noch ein Blank auszugeben ist - rRTFWrt.bOutFmtAttr = false; - - // in der Ausgabe eines Flys? Dann vorm ausgeben der AbsatzAttribute - // den Format-Pointer auf 0 setzen! - const SwFlyFrmFmt* pSaveFmt = rRTFWrt.pFlyFmt; - - SfxItemSet aMergedSet(rRTFWrt.pDoc->GetAttrPool(), POOLATTR_BEGIN, - POOLATTR_END-1); - bool bDeep = false; - - if( rRTFWrt.bWriteAll ) - { - rRTFWrt.Strm() << OOO_STRING_SVTOOLS_RTF_PARD << OOO_STRING_SVTOOLS_RTF_PLAIN << ' '; // alle Attribute zuruecksetzen - if( rRTFWrt.bOutTable ) - rRTFWrt.Strm() << OOO_STRING_SVTOOLS_RTF_INTBL; - - // ist der aktuelle Absatz in einem freifliegenden Rahmen ? Dann - // muessen noch die Attribute dafuer ausgegeben werden. - if( pSaveFmt ) - { - OutRTF_SwFlyFrmFmt( rRTFWrt ); - rRTFWrt.pFlyFmt = 0; - } - - rRTFWrt.OutListNum( *pNd ); - OutRTF_SwRTL(rRTFWrt, pNd); - SwFmtToSet(rRTFWrt, pNd->GetAnyFmtColl(), aMergedSet); - bDeep = true; - } - else if( !rRTFWrt.bWriteAll && rRTFWrt.bFirstLine ) - { - OutRTF_SwRTL(rRTFWrt, pNd); - SwFmtToSet(rRTFWrt, pNd->GetAnyFmtColl(), aMergedSet); - bDeep = true; - } - - // gibt es harte Attributierung ? - if( bNewFmts && pNd->HasSwAttrSet()) - { - rRTFWrt.pFlyFmt = 0; - - const SfxItemSet& rNdSet = pNd->GetSwAttrSet(); - - const SwNumRule* pRule = pNd->GetNumRule(); - // --> OD 2008-03-19 #refactorlists# - if ( pRule && pNd->IsInList() ) - // <-- - { - // --> OD 2008-03-18 #refactorlists# - ASSERT( pNd->GetActualListLevel() >= 0 && pNd->GetActualListLevel() < MAXLEVEL, - "<OutRTF_SwTxtNode(..)> - text node does not have valid list level. Serious defect -> please inform OD" ); - // <-- - BYTE nLvl = static_cast< BYTE >(pNd->GetActualListLevel()); - const SwNumFmt* pFmt = pRule->GetNumFmt( nLvl ); - if( !pFmt ) - pFmt = &pRule->Get( nLvl ); - - SfxItemSet aSet( rNdSet ); - SvxLRSpaceItem aLR( (SvxLRSpaceItem&)rNdSet.Get( RES_LR_SPACE ) ); - - aLR.SetTxtLeft( aLR.GetTxtLeft() + pFmt->GetAbsLSpace() ); - if( MAXLEVEL > pNd->GetActualListLevel() ) - aLR.SetTxtFirstLineOfst( pFmt->GetFirstLineOffset() ); - else - aSet.ClearItem( RES_PARATR_NUMRULE ); - aSet.Put( aLR ); - aMergedSet.Put(aSet); - } - else - aMergedSet.Put(rNdSet); - } - - SwTxtNode *txtNode=rNode.GetTxtNode(); - if (txtNode!=NULL && !txtNode->IsNumbered()) - { - aMergedSet.ClearItem(RES_PARATR_NUMRULE); - } - OutRTF_SfxItemSet(rRTFWrt, aMergedSet, bDeep); - - rRTFWrt.pFlyFmt = pSaveFmt; - - rRTFWrt.bTxtAttr = true; - // erstmal den Start berichtigen. D.h. wird nur ein Teil vom Satz - // ausgegeben, so muessen auch da die Attribute stimmen!! - const SwTxtAttr * pHt = 0; - USHORT nCntAttr = pNd->HasHints() ? pNd->GetSwpHints().Count() : 0; - if( nCntAttr && nStrPos > *( pHt = pNd->GetSwpHints()[ 0 ] )->GetStart() ) - { - // Ok, es gibt vorher Attribute, die ausgegeben werden muessen - do { - nAttrPos++; - if( RES_TXTATR_FIELD == pHt->Which() ) // Felder nicht - continue; // ausgeben - - if( pHt->GetEnd() ) - { - xub_StrLen nHtEnd = *pHt->GetEnd(), nHtStt = *pHt->GetStart(); - if( !rRTFWrt.bWriteAll && nHtEnd <= nStrPos ) - continue; - - // leere Hints am Anfang nicht beachten, oder ?? - if( nHtEnd == nHtStt ) - continue; - - // Attribut in die Liste aufnehemen - if( !rRTFWrt.bWriteAll ) - { - if( nHtStt < nStrPos ) nHtStt = nStrPos; - if( nHtEnd >= nEnde ) nHtEnd = nEnde; - } - aEndPosLst.Insert( pHt->GetAttr(), nHtStt, nHtEnd ); - continue; - // aber nicht ausgeben, das erfolgt spaeter !! - } - Out( aRTFAttrFnTab, pHt->GetAttr(), rRTFWrt ); - - } while( nAttrPos < nCntAttr && nStrPos > - *( pHt = pNd->GetSwpHints()[ nAttrPos ] )->GetStart() ); - - // dann gebe mal alle gesammelten Attribute von der String-Pos aus - aEndPosLst.OutAttrs( nStrPos ); - } - - if( rRTFWrt.bOutFmtAttr && - ( nAttrPos < nCntAttr ? *pHt->GetStart() != nStrPos : TRUE )) - rRTFWrt.Strm() << ' '; - - // das Flag gibt an, ob das SwTxtFld am Ende vom Absatz steht. Denn - // dann ist vor dem Absatzumbruch die schliessende Klammer auszugeben - xub_StrLen nChrCnt = 0; - for( ; nStrPos <= nEnde; nStrPos++ ) - { - rRTFWrt.bOutFmtAttr = false; - if( nStrPos != nEnde && aEndPosLst.Count() ) - aEndPosLst.EndAttrs( nStrPos ); - - // versuche nach ungefaehr 255 Zeichen eine neue Zeile zu beginnen - if( nChrCnt != ( nStrPos & 0xff00 )) - { - rWrt.Strm() << SwRTFWriter::sNewLine; - nChrCnt = nStrPos & 0xff00; - } - - if( nAttrPos < nCntAttr && *pHt->GetStart() == nStrPos - && nStrPos != nEnde ) - { - do { - BOOL bEmpty = false; - if( pHt->GetEnd() ) - { - if (false == (bEmpty = *pHt->GetEnd() == nStrPos)) - { - aEndPosLst.Insert( pHt->GetAttr(), nStrPos, - *pHt->GetEnd() ); - continue; - } - rRTFWrt.Strm() << '{'; - } - Out( aRTFAttrFnTab, pHt->GetAttr(), rRTFWrt ); - if( bEmpty ) - { - rRTFWrt.Strm() << '}'; - rRTFWrt.bOutFmtAttr = false; - } - } while( ++nAttrPos < nCntAttr && nStrPos == - *( pHt = pNd->GetSwpHints()[ nAttrPos ] )->GetStart() ); - - // dann gebe mal alle gesammelten Attribute von der String-Pos aus - aEndPosLst.OutAttrs( nStrPos ); - - } - else - aEndPosLst.OutScriptChange( nStrPos ); - - HandleHyperlinks(rWrt, pNd->GetpSwpHints(), nStrPos); - - if( rRTFWrt.bOutFmtAttr ) - rRTFWrt.Strm() << ' '; - - rRTFWrt.OutBookmarks( nStrPos ); - - rRTFWrt.OutRedline( nStrPos); - - if (nStrPos != nEnde) - { - RTFOutFuncs::Out_String(rWrt.Strm(), String(rStr.GetChar(nStrPos)), - rRTFWrt.eCurrentEncoding, rRTFWrt.bWriteHelpFmt); - } - } - - rRTFWrt.bTxtAttr = false; - - // noch eine schliesende Klammer da ?? - if( aEndPosLst.Count() ) - aEndPosLst.EndAttrs( USHRT_MAX ); - - // wenn bis zum Ende vom Node, dann auch das AbsatzEnde ausgeben - if( rRTFWrt.pCurPam->GetMark()->nNode.GetIndex() == - rRTFWrt.pCurPam->GetPoint()->nNode.GetIndex() ) - { - if( pNd->Len() != rRTFWrt.pCurPam->GetMark()->nContent.GetIndex() ) - return rWrt; - - if( rRTFWrt.bOutTable ) - { - rRTFWrt.Strm() << SwRTFWriter::sNewLine; - return rWrt; - } - } - - rRTFWrt.Strm() << SwRTFWriter::sNewLine << OOO_STRING_SVTOOLS_RTF_PAR << ' '; - return rRTFWrt; -} - -bool IsEMF(const sal_uInt8 *pGraphicAry, unsigned long nSize) -{ - if (pGraphicAry && (nSize > 0x2c )) - { - // check the magic number - if ( - (pGraphicAry[0x28] == 0x20 ) && (pGraphicAry[0x29] == 0x45) && - (pGraphicAry[0x2a] == 0x4d ) && (pGraphicAry[0x2b] == 0x46) - ) - { - //emf detected - return true; - } - } - return false; -} - -bool StripMetafileHeader(const sal_uInt8 *&rpGraphicAry, unsigned long &rSize) -{ - if (rpGraphicAry && (rSize > 0x22)) - { - if ( - (rpGraphicAry[0] == 0xd7) && (rpGraphicAry[1] == 0xcd) && - (rpGraphicAry[2] == 0xc6) && (rpGraphicAry[3] == 0x9a) - ) - { // we have to get rid of the metafileheader - rpGraphicAry += 22; - rSize -= 22; - return true; - } - } - return false; -} - -void ExportPICT(const Size &rOrig, const Size &rRendered, const Size &rMapped, - const SwCropGrf &rCr, const char *pBLIPType, const sal_uInt8 *pGraphicAry, - unsigned long nSize, SwRTFWriter &rWrt) -{ - bool bIsWMF = (const char *)pBLIPType == (const char *)OOO_STRING_SVTOOLS_RTF_WMETAFILE ? true : false; - if (pBLIPType && nSize && pGraphicAry) - { - rWrt.Strm() << '{' << OOO_STRING_SVTOOLS_RTF_PICT; - - long nXCroppedSize = rOrig.Width()-(rCr.GetLeft() + rCr.GetRight()); - long nYCroppedSize = rOrig.Height()-(rCr.GetTop() + rCr.GetBottom()); - /* #127543#: Graphic with a zero height or width, typically copied from webpages, caused - crashes. */ - if( !nXCroppedSize ) - nXCroppedSize = 100; - if( !nYCroppedSize ) - nYCroppedSize = 100; - - //Given the original size and taking cropping into account - //first, how much has the original been scaled to get the - //final rendered size - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_PICSCALEX; - rWrt.OutLong((100 * rRendered.Width()) / nXCroppedSize); - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_PICSCALEY; - rWrt.OutLong((100 * rRendered.Height()) / nYCroppedSize); - - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_PICCROPL; - rWrt.OutLong(rCr.GetLeft()); - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_PICCROPR; - rWrt.OutLong(rCr.GetRight()); - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_PICCROPT; - rWrt.OutLong(rCr.GetTop()); - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_PICCROPB; - rWrt.OutLong(rCr.GetBottom()); - - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_PICW; - rWrt.OutLong(rMapped.Width()); - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_PICH; - rWrt.OutLong(rMapped.Height()); - - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_PICWGOAL; - rWrt.OutLong(rOrig.Width()); - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_PICHGOAL; - rWrt.OutLong(rOrig.Height()); - - rWrt.Strm() << pBLIPType; - if (bIsWMF) - { - rWrt.OutLong(8); - StripMetafileHeader(pGraphicAry, nSize); - } - rWrt.Strm() << SwRTFWriter::sNewLine; - - sal_uInt32 nBreak = 0; - for (sal_uInt32 nI = 0; nI < nSize; ++nI) - { - ByteString sNo = ByteString::CreateFromInt32(pGraphicAry[nI], 16); - if (sNo.Len() < 2) - rWrt.Strm() << '0'; - rWrt.Strm() << sNo.GetBuffer(); - if (++nBreak == 64) - { - rWrt.Strm() << SwRTFWriter::sNewLine; - nBreak = 0; - } - } - - rWrt.Strm() << '}'; - } -} - -static Writer& OutRTF_SwGrfNode(Writer& rWrt, SwCntntNode & rNode) -{ - SwRTFWriter & rRTFWrt = (SwRTFWriter&)rWrt; - SwGrfNode &rNd = (SwGrfNode&)rNode; - - // ist der aktuelle Absatz in einem freifliegenden Rahmen ? Dann - // muessen noch die Attribute dafuer ausgegeben werden. - if (rRTFWrt.pFlyFmt && !ExportAsInline(*rRTFWrt.pFlyFmt)) - OutRTF_SwFlyFrmFmt(rRTFWrt); //"classic" positioning and size export - -#if 1 - SvMemoryStream aStream; - const sal_uInt8* pGraphicAry = 0; - sal_uInt32 nSize = 0; - - Graphic aGraphic(rNd.GetGrf()); - - // If there is no graphic there is not much point in parsing it - if(aGraphic.GetType()==GRAPHIC_NONE) - return rRTFWrt; - - GfxLink aGraphicLink; - const sal_Char* pBLIPType = 0; - if (aGraphic.IsLink()) - { - aGraphicLink = aGraphic.GetLink(); - nSize = aGraphicLink.GetDataSize(); - pGraphicAry = aGraphicLink.GetData(); - switch (aGraphicLink.GetType()) - { - case GFX_LINK_TYPE_NATIVE_JPG: - pBLIPType = OOO_STRING_SVTOOLS_RTF_JPEGBLIP; - break; - case GFX_LINK_TYPE_NATIVE_PNG: - pBLIPType = OOO_STRING_SVTOOLS_RTF_PNGBLIP; - case GFX_LINK_TYPE_NATIVE_WMF: - pBLIPType = - IsEMF(pGraphicAry, nSize) ? OOO_STRING_SVTOOLS_RTF_EMFBLIP : OOO_STRING_SVTOOLS_RTF_WMETAFILE; - break; - default: - break; - } - } - - GraphicType eGraphicType = aGraphic.GetType(); - if (!pGraphicAry) - { - if (ERRCODE_NONE == GraphicConverter::Export(aStream, aGraphic, - (eGraphicType == GRAPHIC_BITMAP) ? CVT_PNG : CVT_WMF)) - { - pBLIPType = (eGraphicType == GRAPHIC_BITMAP) ? - OOO_STRING_SVTOOLS_RTF_PNGBLIP : OOO_STRING_SVTOOLS_RTF_WMETAFILE; - aStream.Seek(STREAM_SEEK_TO_END); - nSize = aStream.Tell(); - pGraphicAry = (sal_uInt8*)aStream.GetData(); - } - } - - Size aMapped(eGraphicType == GRAPHIC_BITMAP ? aGraphic.GetSizePixel() : aGraphic.GetPrefSize()); - - const SwCropGrf &rCr = (const SwCropGrf &)rNd.GetAttr(RES_GRFATR_CROPGRF); - - //Get original size in twips - Size aSize(sw::util::GetSwappedInSize(rNd)); - Size aRendered(aSize); - if (rRTFWrt.pFlyFmt) - { - const SwFmtFrmSize& rS = rRTFWrt.pFlyFmt->GetFrmSize(); - aRendered.Width() = rS.GetWidth(); - aRendered.Height() = rS.GetHeight(); - } - - /* - If the graphic is not of type WMF then we will have to store two - graphics, one in the native format wrapped in shppict, and the other in - the wmf format wrapped in nonshppict, so as to keep wordpad happy. If its - a wmf already then we don't need any such wrapping - */ - bool bIsWMF = (const sal_Char*)pBLIPType == (const sal_Char*)OOO_STRING_SVTOOLS_RTF_WMETAFILE ? true : false; - if (!bIsWMF) - OutComment(rRTFWrt, OOO_STRING_SVTOOLS_RTF_SHPPICT); - - if (pBLIPType) - ExportPICT(aSize, aRendered, aMapped, rCr, pBLIPType, pGraphicAry, nSize, rRTFWrt); - else - { - aStream.Seek(0); - GraphicConverter::Export(aStream, aGraphic, CVT_WMF); - pBLIPType = OOO_STRING_SVTOOLS_RTF_WMETAFILE; - aStream.Seek(STREAM_SEEK_TO_END); - nSize = aStream.Tell(); - pGraphicAry = (sal_uInt8*)aStream.GetData(); - - ExportPICT(aSize, aRendered, aMapped, rCr, pBLIPType, pGraphicAry, nSize, - rRTFWrt); - } - - if (!bIsWMF) - { - rRTFWrt.Strm() << '}' << '{' << OOO_STRING_SVTOOLS_RTF_NONSHPPICT; - - aStream.Seek(0); - GraphicConverter::Export(aStream, aGraphic, CVT_WMF); - pBLIPType = OOO_STRING_SVTOOLS_RTF_WMETAFILE; - aStream.Seek(STREAM_SEEK_TO_END); - nSize = aStream.Tell(); - pGraphicAry = (sal_uInt8*)aStream.GetData(); - - ExportPICT(aSize, aRendered, aMapped, rCr, pBLIPType, pGraphicAry, nSize, - rRTFWrt); - - rRTFWrt.Strm() << '}'; - } - - - rRTFWrt.Strm() << SwRTFWriter::sNewLine; -#else - rRTFWrt.Strm() << "{{"; - - // damit die eigenen Grafik-Attribute nach der PICT / import Anweisung - // stehen, muessen die am Anfang ausgegeben werden. - rRTFWrt.bOutFmtAttr = false; - OutRTF_SwFmt( rRTFWrt, *pNd->GetFmtColl() ); - - if( rRTFWrt.bOutFmtAttr ) // wurde ueberhaupt ein Attrribut - rRTFWrt.Strm() << "}{"; // ausgegeben ?? - - String aGrfNm; - const SwMirrorGrf& rMirror = pNd->GetSwAttrSet().GetMirrorGrf(); - if( !pNd->IsLinkedFile() || RES_MIRROR_GRAPH_DONT != rMirror.GetValue() ) - { - USHORT nErr = 1; - // Grafik als File-Referenz speichern (als JPEG-Grafik speichern) - // but only if we save into a file and have a URL - if( rWrt.GetOrigFileName() ) - { - aGrfNm = *rWrt.GetOrigFileName(); - pNd->SwapIn( TRUE ); - ULONG nFlags = XOUTBMP_USE_NATIVE_IF_POSSIBLE; - switch( rMirror.GetValue() ) - { - case RES_MIRROR_GRAPH_VERT: nFlags = XOUTBMP_MIRROR_HORZ; break; - case RES_MIRROR_GRAPH_HOR: nFlags = XOUTBMP_MIRROR_VERT; break; - case RES_MIRROR_GRAPH_BOTH: - nFlags = XOUTBMP_MIRROR_VERT | XOUTBMP_MIRROR_HORZ; - break; - } - - Size aMM100Size; - Size* pMM100Size = 0; - if( rRTFWrt.pFlyFmt ) - { - const SwFmtFrmSize& rSize = rRTFWrt.pFlyFmt->GetFrmSize(); - aMM100Size = OutputDevice::LogicToLogic( rSize.GetSize(), - MapMode( MAP_TWIP ), MapMode( MAP_100TH_MM )); - pMM100Size = &aMM100Size; - } - - nErr = XOutBitmap::WriteGraphic( pNd->GetGrf(), aGrfNm, - String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "JPG" )), - nFlags, pMM100Size ); - } - if( nErr ) // fehlerhaft, da ist nichts auszugeben - { - rRTFWrt.Strm() << "}}"; - return rWrt; - } - } - else - pNd->GetFileFilterNms( &aGrfNm, 0 ); - - // MIB->JP: Warum erst AbsToRel und dann das URL-Objekt? So - // kommt bei relativierbaren URLs als Protokoll "unknown" raus. - // Ist das Absicht? - aGrfNm = INetURLObject::AbsToRel( aGrfNm, INetURLObject::WAS_ENCODED, - INetURLObject::DECODE_UNAMBIGUOUS); - INetURLObject aUrl( aGrfNm ); - if( aUrl.GetProtocol() == INET_PROT_FILE ) - aGrfNm = aUrl.PathToFileName(); - - // Bitmap als File-Referenz speichern - rRTFWrt.Strm() << OOO_STRING_SVTOOLS_RTF_FIELD << OOO_STRING_SVTOOLS_RTF_FLDPRIV; - OutComment( rRTFWrt, OOO_STRING_SVTOOLS_RTF_FLDINST ) << "{\\\\import "; - RTFOutFuncs::Out_String( rWrt.Strm(), aGrfNm, rRTFWrt.eDefaultEncoding, - rRTFWrt.bWriteHelpFmt ); - rRTFWrt.Strm() << "}}{" << OOO_STRING_SVTOOLS_RTF_FLDRSLT << " }}"; - rRTFWrt.Strm() << '}' << SwRTFWriter::sNewLine; -#endif - return rRTFWrt; -} - -static Writer& OutRTF_SwOLENode( Writer& rWrt, SwCntntNode & /*rNode*/ ) -{ - SwRTFWriter & rRTFWrt = (SwRTFWriter&)rWrt; - - // ist der aktuelle Absatz in einem freifliegenden Rahmen ? Dann - // muessen noch die Attribute dafuer ausgegeben werden. - if( rRTFWrt.pFlyFmt ) - OutRTF_SwFlyFrmFmt( rRTFWrt ); - - rWrt.Strm() << SwRTFWriter::sNewLine << OOO_STRING_SVTOOLS_RTF_PAR; - return rWrt; -} - -static void OutTBLBorderLine(SwRTFWriter& rWrt, const SvxBorderLine* pLine, - const sal_Char* pStr) -{ - ByteString sLineStr; - if( pLine->GetInWidth() ) - { - // doppelte Linie - sLineStr = OOO_STRING_SVTOOLS_RTF_BRDRDB; - switch( pLine->GetInWidth() ) - { - case DEF_LINE_WIDTH_0: - ( sLineStr += OOO_STRING_SVTOOLS_RTF_BRDRW ) += "15"; - break; - case DEF_LINE_WIDTH_1: - ( sLineStr += OOO_STRING_SVTOOLS_RTF_BRDRW ) += "30"; - break; - case DEF_LINE_WIDTH_2: - case DEF_LINE_WIDTH_3: - ( sLineStr += OOO_STRING_SVTOOLS_RTF_BRDRW ) += "45"; - break; - } - } - else - { - // einfache Linie - if( DEF_LINE_WIDTH_1 >= pLine->GetOutWidth() ) - (( sLineStr = OOO_STRING_SVTOOLS_RTF_BRDRS ) += OOO_STRING_SVTOOLS_RTF_BRDRW ) += - ByteString::CreateFromInt32( pLine->GetOutWidth() ); - else - (( sLineStr = OOO_STRING_SVTOOLS_RTF_BRDRTH ) += OOO_STRING_SVTOOLS_RTF_BRDRW ) += - ByteString::CreateFromInt32( pLine->GetOutWidth() / 2 ); - } - - rWrt.Strm() << pStr << sLineStr.GetBuffer() << OOO_STRING_SVTOOLS_RTF_BRDRCF; - rWrt.OutULong( rWrt.GetId( pLine->GetColor() ) ); -} - -static void OutBorderLine(SwRTFWriter& rWrt, const SvxBorderLine* pLine, - const sal_Char* pStr, USHORT nDist) -{ - OutTBLBorderLine(rWrt, pLine, pStr); - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_BRSP; - rWrt.OutULong( nDist ); -} - -static void OutSwTblBorder(SwRTFWriter& rWrt, const SvxBoxItem& rBox, - const SvxBoxItem *pDefault) -{ - static const USHORT aBorders[] = - { - BOX_LINE_TOP, BOX_LINE_LEFT, BOX_LINE_BOTTOM, BOX_LINE_RIGHT - }; -#ifdef __MINGW32__ - static const char* aBorderNames[] __attribute__((section(".data"))) = -#else - static const char* aBorderNames[] = -#endif - { - OOO_STRING_SVTOOLS_RTF_CLBRDRT, OOO_STRING_SVTOOLS_RTF_CLBRDRL, OOO_STRING_SVTOOLS_RTF_CLBRDRB, OOO_STRING_SVTOOLS_RTF_CLBRDRR - }; - //Yes left and top are swapped with eachother for cell padding! Because - //that's what the thunderingly annoying rtf export/import word xp does. -#ifdef __MINGW32__ - static const char* aCellPadNames[] __attribute__((section(".data"))) = -#else - static const char* aCellPadNames[] = -#endif - { - OOO_STRING_SVTOOLS_RTF_CLPADL, OOO_STRING_SVTOOLS_RTF_CLPADT, OOO_STRING_SVTOOLS_RTF_CLPADB, OOO_STRING_SVTOOLS_RTF_CLPADR - }; -#ifdef __MINGW32__ - static const char* aCellPadUnits[] __attribute__((section(".data"))) = -#else - static const char* aCellPadUnits[] = -#endif - { - OOO_STRING_SVTOOLS_RTF_CLPADFL, OOO_STRING_SVTOOLS_RTF_CLPADFT, OOO_STRING_SVTOOLS_RTF_CLPADFB, OOO_STRING_SVTOOLS_RTF_CLPADFR - }; - for (int i = 0; i < 4; ++i) - { - if (const SvxBorderLine* pLn = rBox.GetLine(aBorders[i])) - OutTBLBorderLine(rWrt, pLn, aBorderNames[i]); - if (!pDefault || pDefault->GetDistance(aBorders[i]) != - rBox.GetDistance(aBorders[i])) - { - rWrt.Strm() << aCellPadUnits[i]; - rWrt.OutULong(3); - rWrt.Strm() << aCellPadNames[i]; - rWrt.OutULong(rBox.GetDistance(aBorders[i])); - } - } -} - -static void OutSwTblBackground( SwRTFWriter& rWrt, const SvxBrushItem& rBack ) -{ - if( !rBack.GetColor().GetTransparency() ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_CLCBPAT; - rWrt.OutULong( rWrt.GetId( rBack.GetColor() ) ); - } -} - - -Writer& OutRTF_SwTblNode(Writer& rWrt, const SwTableNode & rNode) -{ - SwRTFWriter & rRTFWrt = (SwRTFWriter&)rWrt; - const SwTable& rTbl = rNode.GetTable(); - SwTwips nPageSize = 0, nTblOffset = 0; - const bool bNewTableModel = rTbl.IsNewModel(); - -/* -//!!!!!!!!!!!!! for clipboard create any view if the table is complex !!! - if( rTbl.IsTblComplex() ) - { - // then we have to create any layout - SFX_APP()->CreateViewFrame( *xDocSh, 0, TRUE ); - } -*/ - - const SwFrmFmt *pFmt = rTbl.GetFrmFmt(); - ASSERT(pFmt, "Impossible"); - { - Point aPt; - SwRect aRect( pFmt->FindLayoutRect( false, &aPt )); - if( aRect.IsEmpty() ) - { - // dann besorge mal die Seitenbreite ohne Raender !! - const SwFrmFmt* pFrmFmt = rRTFWrt.pFlyFmt ? rRTFWrt.pFlyFmt : - const_cast<const SwDoc *>(rWrt.pDoc) - ->GetPageDesc(0).GetPageFmtOfNode(rNode, false); - - aRect = pFrmFmt->FindLayoutRect( TRUE ); - if( 0 == ( nPageSize = aRect.Width() )) - { - const SvxLRSpaceItem& rLR = pFrmFmt->GetLRSpace(); - nPageSize = pFrmFmt->GetFrmSize().GetWidth() - - rLR.GetLeft() - rLR.GetRight(); - } - } - else - nPageSize = aRect.Width(); - } - - SwTwips nTblSz = pFmt->GetFrmSize().GetWidth(); - - ByteString aTblAdjust( OOO_STRING_SVTOOLS_RTF_TRQL ); - switch (pFmt->GetHoriOrient().GetHoriOrient()) - { - case text::HoriOrientation::CENTER: - aTblAdjust = OOO_STRING_SVTOOLS_RTF_TRQC; - break; - case text::HoriOrientation::RIGHT: - aTblAdjust = OOO_STRING_SVTOOLS_RTF_TRQR; - break; - case text::HoriOrientation::NONE: - case text::HoriOrientation::LEFT_AND_WIDTH: - { - const SvxLRSpaceItem& rLRSp = pFmt->GetLRSpace(); - nTblOffset = rLRSp.GetLeft(); - nPageSize -= (nTblOffset + rLRSp.GetRight()); - aTblAdjust += OOO_STRING_SVTOOLS_RTF_TRLEFT; - aTblAdjust += ByteString::CreateFromInt32( nTblOffset ); - } - break; - default: - break; - } - - if (rRTFWrt.TrueFrameDirection(*pFmt) == FRMDIR_HORI_RIGHT_TOP) - aTblAdjust += OOO_STRING_SVTOOLS_RTF_RTLROW; - - // ist die Tabelle wesentlich (PageSize + 10%) groesser als die Seite, - // dann sind die Box-Breiten relative Angaben. - BOOL bRelBoxSize = TRUE /*ALWAYS relativ (nPageSize + ( nPageSize / 10 )) < nTblSz*/; - - SwWriteTable* pTableWrt; - const SwHTMLTableLayout *pLayout = rTbl.GetHTMLTableLayout(); - if( pLayout && pLayout->IsExportable() ) - pTableWrt = new SwWriteTable( pLayout ); - else - pTableWrt = new SwWriteTable(rTbl.GetTabLines(), (USHORT)nPageSize, - (USHORT)nTblSz, false); - - // rCols are the array of all cols of the table - const SwWriteTableCols& rCols = pTableWrt->GetCols(); - USHORT nColCnt = rCols.Count(); - SwWriteTableCellPtr* pBoxArr = new SwWriteTableCellPtr[ nColCnt ]; - USHORT* pRowSpans = new USHORT[ nColCnt ]; - memset( pBoxArr, 0, sizeof( pBoxArr[0] ) * nColCnt ); - memset( pRowSpans, 0, sizeof( pRowSpans[0] ) * nColCnt ); - const SwWriteTableRows& rRows = pTableWrt->GetRows(); - for( USHORT nLine = 0; nLine < rRows.Count(); ++nLine ) - { - USHORT nBox; - - const SwWriteTableRow *pRow = rRows[ nLine ]; - const SwWriteTableCells& rCells = pRow->GetCells(); - - BOOL bFixRowHeight = false; - - USHORT nBoxes = rCells.Count(); - if (nColCnt < nBoxes) - nBoxes = nColCnt; - - for( nColCnt = 0, nBox = 0; nBox < rCells.Count() && nColCnt < nBoxes; ++nColCnt ) - { - SwWriteTableCell* pCell = rCells[ nBox ]; - const bool bProcessCoveredCell = bNewTableModel && 0 == pCell->GetRowSpan(); - - if( !pRowSpans[ nColCnt ] || bProcessCoveredCell ) - { - // set new BoxPtr - nBox++; - pBoxArr[ nColCnt ] = pCell; - if ( !bProcessCoveredCell ) - pRowSpans[ nColCnt ] = pCell->GetRowSpan(); - for( USHORT nCellSpan = pCell->GetColSpan(), nCS = 1; - nCS < nCellSpan; ++nCS, ++nColCnt ) - { - ASSERT( nColCnt+1 < rCols.Count(), "More colspan than columns" ); - if( nColCnt+1 < rCols.Count() ) // robust against wrong colspans - { - pBoxArr[ nColCnt+1 ] = pBoxArr[ nColCnt ]; - pRowSpans[ nColCnt+1 ] = pRowSpans[ nColCnt ]; - } - } - } - if( 1 != pRowSpans[ nColCnt ] && !bNewTableModel ) - bFixRowHeight = TRUE; - } - - for( ; nColCnt < rCols.Count() && pRowSpans[ nColCnt ]; ++nColCnt ) - bFixRowHeight = TRUE; - - nColCnt = rCols.Count(); // A wrong cellspan-value could cause a nColCnt > rCols.Count() - - // Start Tabellendefinition - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_TROWD << aTblAdjust.GetBuffer(); - - if( rTbl.GetRowsToRepeat() > nLine ) - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_TRHDR; - - const SwTableLine* pLine = pBoxArr[ 0 ]->GetBox()->GetUpper(); - // Zeilenhoehe ausgeben - long nHeight = 0; - if( bFixRowHeight && rWrt.pDoc->GetRootFrm() ) - { - nHeight = -pRow->GetPos(); //neg. => abs. height! - if( nLine ) - nHeight += rRows[ nLine - 1 ]->GetPos(); - } - else - { - const SwFmtFrmSize& rLSz = pLine->GetFrmFmt()->GetFrmSize(); - if( ATT_VAR_SIZE != rLSz.GetHeightSizeType() && rLSz.GetHeight() ) - nHeight = ATT_MIN_SIZE == rLSz.GetHeightSizeType() - ? rLSz.GetHeight() - : -rLSz.GetHeight(); - } - - //The rtf default is to allow a row to break, so if we are not - //splittable export TRKEEP - const SwFrmFmt *pLineFmt = pLine ? pLine->GetFrmFmt() : 0; - if (!pLineFmt || pLineFmt->GetRowSplit().GetValue() == 0) - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_TRKEEP; - - if( nHeight ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_TRRH; - rWrt.OutLong( nHeight ); - } - - const SvxBoxItem *pDefaultBox = 0; - if (nColCnt) - { - pDefaultBox = &(pBoxArr[0]->GetBox()->GetFrmFmt()->GetBox()); - - static const USHORT aBorders[] = - { - BOX_LINE_TOP, BOX_LINE_LEFT, BOX_LINE_BOTTOM, BOX_LINE_RIGHT - }; -#ifdef __MINGW32__ - static const char* aRowPadNames[] __attribute__((section(".data"))) = -#else - static const char* aRowPadNames[] = -#endif - { - OOO_STRING_SVTOOLS_RTF_TRPADDT, OOO_STRING_SVTOOLS_RTF_TRPADDL, OOO_STRING_SVTOOLS_RTF_TRPADDB, OOO_STRING_SVTOOLS_RTF_TRPADDR - }; - static const char* aRowPadUnits[] = - { - OOO_STRING_SVTOOLS_RTF_TRPADDFT, OOO_STRING_SVTOOLS_RTF_TRPADDFL, OOO_STRING_SVTOOLS_RTF_TRPADDFB, OOO_STRING_SVTOOLS_RTF_TRPADDFR - }; - for (int i = 0; i < 4; ++i) - { - rWrt.Strm() << aRowPadUnits[i]; - rWrt.OutULong(3); - rWrt.Strm() << aRowPadNames[i]; - rWrt.OutULong(pDefaultBox->GetDistance(aBorders[i])); - } - } - - // Breite der Boxen ausgeben - SwTwips nSz = 0, nCalc; - for( nBox = 0; nBox < nColCnt; ++nBox ) - { - SwWriteTableCell* pCell = pBoxArr[ nBox ]; - if( (nBox && pBoxArr[ nBox-1 ] == pBoxArr[ nBox ]) || (pCell == NULL) ) - continue; - - const SwFrmFmt& rFmt = *pCell->GetBox()->GetFrmFmt(); - if( 1 < pCell->GetRowSpan() || 0 == pCell->GetRowSpan() ) - rWrt.Strm() << ( pCell->GetRowSpan() == pRowSpans[ nBox ] - ? OOO_STRING_SVTOOLS_RTF_CLVMGF - : OOO_STRING_SVTOOLS_RTF_CLVMRG ); - - const SfxPoolItem* pItem; - if (SFX_ITEM_SET == rFmt.GetAttrSet().GetItemState(RES_BOX, TRUE, - &pItem)) - { - OutSwTblBorder(rRTFWrt, (SvxBoxItem&)*pItem, pDefaultBox); - } - -// RTF kennt Schattierung in unserem Sinne nicht! -// if( SFX_ITEM_SET == pBoxFmt->GetAttrSet().GetItemState( -// RES_SHADOW, TRUE, &pItem ) ) -// OutSwTblShadow( rRTFWrt, *pItem ); - - if( SFX_ITEM_SET == rFmt.GetAttrSet().GetItemState( - RES_BACKGROUND, TRUE, &pItem ) - || 0 != ( pItem = pCell->GetBackground() ) - || 0 != ( pItem = pRow->GetBackground() ) ) - OutSwTblBackground( rRTFWrt, (SvxBrushItem&)*pItem ); - - if( SFX_ITEM_SET == rFmt.GetAttrSet().GetItemState( - RES_VERT_ORIENT, TRUE, &pItem ) ) - switch( ((SwFmtVertOrient*)pItem)->GetVertOrient() ) - { - case text::VertOrientation::CENTER: rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_CLVERTALC; break; - case text::VertOrientation::BOTTOM: rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_CLVERTALB; break; - default: rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_CLVERTALT; break; - } - - const SwFmtFrmSize& rLSz = rFmt.GetFrmSize(); - nSz += rLSz.GetWidth(); - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_CELLX; - - nCalc = nSz; - if( bRelBoxSize ) - { - nCalc *= nPageSize; - nCalc /= nTblSz; - } - rWrt.OutLong( nTblOffset + nCalc ); - } - - // Inhalt der Boxen ausgeben - rWrt.Strm() << SwRTFWriter::sNewLine << OOO_STRING_SVTOOLS_RTF_PARD << OOO_STRING_SVTOOLS_RTF_INTBL; - for( nBox = 0; nBox < nBoxes; ++nBox ) - { - SwWriteTableCell * pCell = pBoxArr[nBox]; - - if( (nBox && pBoxArr[ nBox-1 ] == pBoxArr[ nBox ]) || pCell == NULL) - continue; - - if( pCell->GetRowSpan() == pRowSpans[ nBox ] ) - { - // new Box - const SwStartNode* pSttNd = pCell->GetBox()->GetSttNd(); - RTFSaveData aSaveData( rRTFWrt, - pSttNd->GetIndex()+1, pSttNd->EndOfSectionIndex() ); - rRTFWrt.bOutTable = TRUE; - rRTFWrt.Out_SwDoc( rRTFWrt.pCurPam ); - } - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_CELL; - } - - // das wars mit der Line - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_ROW << OOO_STRING_SVTOOLS_RTF_PARD << ' '; - - for( nBox = 0; nBox < nColCnt; ++nBox ) - --pRowSpans[ nBox ]; - } - - delete pTableWrt; - delete[] pBoxArr; - delete[] pRowSpans; - - // Pam hinter die Tabelle verschieben - rRTFWrt.pCurPam->GetPoint()->nNode = *rNode.EndOfSectionNode(); - rRTFWrt.SetAttrSet( 0 ); - - return rWrt; -} - -Writer& OutRTF_SwSectionNode( Writer& rWrt, SwSectionNode& rNode ) -{ - SwRTFWriter & rRTFWrt = (SwRTFWriter&)rWrt; - const SwSection& rSect = rNode.GetSection(); - - // folgt dahinter noch ein SectionNode? Dann wird erst die innere - // Section aktiv. Hier wird die Verschachtelung aufgebrochen, weil - // RTF das nicht kennt - BOOL bPgDscWrite = false; - { - SwNodeIndex aIdx( rNode, 1 ); - const SwNode& rNd = aIdx.GetNode(); - if( rNd.IsSectionNode() /*&& CONTENT_SECTION == - aIdx.GetNode().GetSectionNode()->GetSection().GetType()*/ ) - return rWrt; - - // falls als erstes Position ein Content- oder Tabellen-Node steht, - // dann kann dieser einen PageDesc gesetzt haben und der muss vor - // der Bereichsbeschreibung geschrieben werden! - // Umgekehrt muss im OutBreaks dann - if( rNd.IsCntntNode() ) - { - bPgDscWrite = rRTFWrt.OutBreaks( ((SwCntntNode&)rNd).GetSwAttrSet() ); - rRTFWrt.bIgnoreNextPgBreak = TRUE; - } - else if( rNd.IsTableNode() ) - { - bPgDscWrite = rRTFWrt.OutBreaks( ((SwTableNode&)rNd).GetTable(). - GetFrmFmt()->GetAttrSet() ); - rRTFWrt.bIgnoreNextPgBreak = TRUE; - } - } - - -// if( CONTENT_SECTION == rSect.GetType() ) - { - // als fortlaufenden Abschnittwechsel heraus schreiben - if( !bPgDscWrite ) - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_SECT << OOO_STRING_SVTOOLS_RTF_SBKNONE; - //JP 19.03.99 - es muss fuer den Import auf jedenfall das Cols - // Token geschrieben werden. Sonst kann nicht erkannt - // werden, wann ein PageDesc & eine Section gueltig ist - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_COLS << '1'; - rRTFWrt.bOutFmtAttr = TRUE; - const SfxPoolItem* pItem; - const SwFrmFmt *pFmt = rSect.GetFmt(); - ASSERT(pFmt, "Impossible"); - const SfxItemSet& rSet = pFmt->GetAttrSet(); - if( SFX_ITEM_SET == rSet.GetItemState( RES_COL, false, &pItem )) - OutRTF_SwFmtCol( rWrt, *pItem ); - else - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_COLS << '1' << OOO_STRING_SVTOOLS_RTF_COLSX; - rWrt.OutULong(709); - } - - if( SFX_ITEM_SET == rSet.GetItemState( RES_COLUMNBALANCE, - false, &pItem ) && ((SwFmtNoBalancedColumns*)pItem)->GetValue() ) - OutComment( rWrt, OOO_STRING_SVTOOLS_RTF_BALANCEDCOLUMN ) << '}'; - - if (FRMDIR_HORI_RIGHT_TOP == rRTFWrt.TrueFrameDirection(*pFmt)) - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_RTLSECT; - else - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_LTRSECT; - - rWrt.Strm() << SwRTFWriter::sNewLine; - } - - return rWrt; -} - - -/* File CHRATR.HXX: */ - -static Writer& OutRTF_SwFont( Writer& rWrt, const SfxPoolItem& rHt ) -{ - /* trage den Font in die Font-Liste vom Writer ein und gebe hier nur - * die entsprechende Nummer aus. Der Font wird spaeter ueber diese - * Tabelle im RTF-Dokument referenziert. - */ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - - if( !rRTFWrt.bTxtAttr || - ( rRTFWrt.GetEndPosLst() && - rRTFWrt.GetEndPosLst()->MatchScriptToId( rHt.Which() ) )) - { - rRTFWrt.bOutFmtAttr = true; - const SvxFontItem&rFont = (const SvxFontItem&)rHt; - bool bAssoc = rRTFWrt.IsAssociatedFlag(); - /* - #109522# - Word is a bit of a silly bugger of a program when its comes to symbol - font useage. If a symbol font is actually being used, i.e. exported - here with bTxtAttr true then both AF and F must be set to the same - value - */ - if (rRTFWrt.bTxtAttr && (rFont.GetCharSet() == RTL_TEXTENCODING_SYMBOL)) - { - const sal_Char* pCmd = !bAssoc ? OOO_STRING_SVTOOLS_RTF_AF : OOO_STRING_SVTOOLS_RTF_F; - rWrt.Strm() << pCmd; - } - const sal_Char* pCmd = bAssoc ? OOO_STRING_SVTOOLS_RTF_AF : OOO_STRING_SVTOOLS_RTF_F; - rWrt.Strm() << pCmd; - rWrt.OutULong(rRTFWrt.GetId(rFont)); - rRTFWrt.eCurrentEncoding = rtl_getTextEncodingFromWindowsCharset(sw::ms::rtl_TextEncodingToWinCharset(rFont.GetCharSet())); - } - return rWrt; -} - -static Writer& OutRTF_SwPosture( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - - if( !rRTFWrt.bTxtAttr || - ( rRTFWrt.GetEndPosLst() && - rRTFWrt.GetEndPosLst()->MatchScriptToId( rHt.Which() ) )) - { - if (rRTFWrt.IsAssociatedFlag() && rHt.Which() == RES_CHRATR_CJK_POSTURE) - { - /* - #i21422# - Sadly in word rtf we can't retain CJK italic when we are not - exporting asian text as it doesn't have a seperate italic for - western and asian. - */ - return rWrt; - } - - const FontItalic nPosture = ((const SvxPostureItem&)rHt).GetPosture(); - int bTxtOut = rRTFWrt.bTxtAttr && ITALIC_NONE == nPosture; - if( ITALIC_NORMAL == nPosture || bTxtOut ) - { - rRTFWrt.bOutFmtAttr = TRUE; - const sal_Char* pCmd = rRTFWrt.IsAssociatedFlag() ? OOO_STRING_SVTOOLS_RTF_AI : OOO_STRING_SVTOOLS_RTF_I; - rWrt.Strm() << pCmd; - } - if( bTxtOut ) - rWrt.Strm() << '0'; // wieder abschalten - } - return rWrt; -} - - -static Writer& OutRTF_SwWeight( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - if( !rRTFWrt.bTxtAttr || - ( rRTFWrt.GetEndPosLst() && - rRTFWrt.GetEndPosLst()->MatchScriptToId( rHt.Which() ) )) - { - if (rRTFWrt.IsAssociatedFlag() && rHt.Which() == RES_CHRATR_CJK_WEIGHT) - { - /* - #i21422# - Sadly in word rtf we can't retain CJK bold when we are not - exporting asian text as it doesn't have a seperate bold for western - and asian. - */ - return rWrt; - } - - const FontWeight nBold = ((const SvxWeightItem&)rHt).GetWeight(); - int bTxtOut = rRTFWrt.bTxtAttr && WEIGHT_NORMAL == nBold; - if( WEIGHT_BOLD == nBold || bTxtOut ) - { - rRTFWrt.bOutFmtAttr = TRUE; - const sal_Char* pCmd = rRTFWrt.IsAssociatedFlag() ? OOO_STRING_SVTOOLS_RTF_AB : OOO_STRING_SVTOOLS_RTF_B; - rWrt.Strm() << pCmd; - } - if( bTxtOut ) - rWrt.Strm() << '0'; - } - return rWrt; -} - -static Writer& OutRTF_SwEmphasisMark( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - const sal_Char* pStr; - switch( ((const SvxEmphasisMarkItem&)rHt).GetEmphasisMark()) - { - case EMPHASISMARK_NONE: pStr = OOO_STRING_SVTOOLS_RTF_ACCNONE; break; - case EMPHASISMARK_SIDE_DOTS: pStr = OOO_STRING_SVTOOLS_RTF_ACCCOMMA; break; - default: pStr = OOO_STRING_SVTOOLS_RTF_ACCDOT; break; - } - - rRTFWrt.bOutFmtAttr = TRUE; - rWrt.Strm() << pStr; - return rWrt; -} - -static Writer& OutRTF_SwTwoInOne( Writer& rWrt, const SfxPoolItem& rHt ) -{ - if( ((SvxTwoLinesItem&)rHt).GetValue() ) - { - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - - sal_Unicode cStart = ((SvxTwoLinesItem&)rHt).GetStartBracket(); - sal_Unicode cEnd = ((SvxTwoLinesItem&)rHt).GetStartBracket(); - - USHORT nType; - if( !cStart && !cEnd ) - nType = 0; - else if( '{' == cStart || '}' == cEnd ) - nType = 4; - else if( '<' == cStart || '>' == cEnd ) - nType = 3; - else if( '[' == cStart || ']' == cEnd ) - nType = 2; - else // all other kind of brackets - nType = 1; - - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_TWOINONE; - rWrt.OutULong( nType ); - rRTFWrt.bOutFmtAttr = TRUE; - } - return rWrt; -} - -static Writer& OutRTF_SwCharRotate( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - rRTFWrt.bOutFmtAttr = TRUE; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_HORZVERT; - rWrt.OutLong( ((SvxCharRotateItem&)rHt).IsFitToLine() ? 1 : 0 ); - return rWrt; -} -static Writer& OutRTF_SwCharScaleW( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - rRTFWrt.bOutFmtAttr = TRUE; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_CHARSCALEX; - rWrt.OutLong( ((SvxCharScaleWidthItem&)rHt).GetValue() ); - return rWrt; -} - -static Writer& OutRTF_SwCharRelief(Writer& rWrt, const SfxPoolItem& rHt) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - const SvxCharReliefItem& rAttr = (const SvxCharReliefItem&)rHt; - const sal_Char* pStr; - switch (rAttr.GetValue()) - { - case RELIEF_EMBOSSED: - pStr = OOO_STRING_SVTOOLS_RTF_EMBO; - break; - case RELIEF_ENGRAVED: - pStr = OOO_STRING_SVTOOLS_RTF_IMPR; - break; - default: - pStr = 0; - break; - } - - if (pStr) - { - rRTFWrt.bOutFmtAttr = TRUE; - rWrt.Strm() << pStr; - } - return rWrt; -} - - -static Writer& OutRTF_SwChrBckgrnd( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - const SvxBrushItem& rBack = (const SvxBrushItem&)rHt; - if( !rBack.GetColor().GetTransparency() ) - { - ByteString sOut( OOO_STRING_SVTOOLS_RTF_CHCBPAT ); - sOut += ByteString::CreateFromInt32( - rRTFWrt.GetId( rBack.GetColor() )); - - rRTFWrt.bOutFmtAttr = TRUE; - rWrt.Strm() << sOut.GetBuffer(); - } - return rWrt; -} - -static Writer& OutRTF_SwShadowed( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - const BOOL bShadow = ((const SvxShadowedItem&)rHt).GetValue(); - int bTxtOut = rRTFWrt.bTxtAttr && !bShadow; - if( bShadow || bTxtOut ) - { - rRTFWrt.bOutFmtAttr = TRUE; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_SHAD; - } - if( bTxtOut ) - rWrt.Strm() << '0'; - return rWrt; -} - - - -static Writer& OutRTF_SwContour( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - const BOOL bContour = ((const SvxContourItem&)rHt).GetValue(); - int bTxtOut = rRTFWrt.bTxtAttr && !bContour; - if( bContour || bTxtOut ) - { - rRTFWrt.bOutFmtAttr = TRUE; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_OUTL; - } - if( bTxtOut ) - rWrt.Strm() << '0'; - return rWrt; -} - -static Writer& OutRTF_SwCrossedOut( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - const FontStrikeout nStrike = ((const SvxCrossedOutItem&)rHt).GetStrikeout(); - int bTxtOut = rRTFWrt.bTxtAttr && STRIKEOUT_NONE == nStrike; - - if( (STRIKEOUT_NONE != nStrike && STRIKEOUT_DONTKNOW != nStrike) || bTxtOut ) - { - rRTFWrt.bOutFmtAttr = TRUE; - if( STRIKEOUT_DOUBLE == nStrike ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_STRIKED; - if( !bTxtOut ) - rWrt.Strm() << '1'; - } - else - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_STRIKE; - } - if( bTxtOut ) - rWrt.Strm() << '0'; - return rWrt; -} - - - -static Writer& OutRTF_SwCaseMap( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - switch( ((const SvxCaseMapItem&)rHt).GetValue() ) - { - case SVX_CASEMAP_KAPITAELCHEN: - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_SCAPS; - break; - - case SVX_CASEMAP_VERSALIEN: - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_CAPS; - break; - - case SVX_CASEMAP_NOT_MAPPED: - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_CAPS << '0' << OOO_STRING_SVTOOLS_RTF_SCAPS << '0'; // beide aus !! - break; - - default: - return rWrt; - } - - rRTFWrt.bOutFmtAttr = TRUE; - return rWrt; -} - - -static Writer& OutRTF_SwUnderline( Writer& rWrt, const SfxPoolItem& rHt ) -{ - const char* pStr = 0; - switch( ((const SvxUnderlineItem&)rHt).GetLineStyle() ) - { - case UNDERLINE_SINGLE: - pStr = OOO_STRING_SVTOOLS_RTF_UL; - break; - case UNDERLINE_DOUBLE: - pStr = OOO_STRING_SVTOOLS_RTF_ULDB; - break; - case UNDERLINE_NONE: - pStr = OOO_STRING_SVTOOLS_RTF_ULNONE; - break; - case UNDERLINE_DOTTED: - pStr = OOO_STRING_SVTOOLS_RTF_ULD; - break; - case UNDERLINE_DASH: - pStr = OOO_STRING_SVTOOLS_RTF_ULDASH; - break; - case UNDERLINE_DASHDOT: - pStr = OOO_STRING_SVTOOLS_RTF_ULDASHD; - break; - case UNDERLINE_DASHDOTDOT: - pStr = OOO_STRING_SVTOOLS_RTF_ULDASHDD; - break; - case UNDERLINE_BOLD: - pStr = OOO_STRING_SVTOOLS_RTF_ULTH; - break; - case UNDERLINE_WAVE: - pStr = OOO_STRING_SVTOOLS_RTF_ULWAVE; - break; - case UNDERLINE_BOLDDOTTED: - pStr = OOO_STRING_SVTOOLS_RTF_ULTHD; - break; - case UNDERLINE_BOLDDASH: - pStr = OOO_STRING_SVTOOLS_RTF_ULTHDASH; - break; - case UNDERLINE_LONGDASH: - pStr = OOO_STRING_SVTOOLS_RTF_ULLDASH; - break; - case UNDERLINE_BOLDLONGDASH: - pStr = OOO_STRING_SVTOOLS_RTF_ULTHLDASH; - break; - case UNDERLINE_BOLDDASHDOT: - pStr = OOO_STRING_SVTOOLS_RTF_ULTHDASHD; - break; - case UNDERLINE_BOLDDASHDOTDOT: - pStr = OOO_STRING_SVTOOLS_RTF_ULTHDASHDD; - break; - case UNDERLINE_BOLDWAVE: - pStr = OOO_STRING_SVTOOLS_RTF_ULHWAVE; - break; - case UNDERLINE_DOUBLEWAVE: - pStr = OOO_STRING_SVTOOLS_RTF_ULULDBWAVE; - break; - default: - break; - } - - if( pStr ) - { - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - - if( UNDERLINE_SINGLE == ((const SvxUnderlineItem&)rHt).GetLineStyle() - && ((SvxWordLineModeItem&)rRTFWrt.GetItem( - RES_CHRATR_WORDLINEMODE )).GetValue() ) - pStr = OOO_STRING_SVTOOLS_RTF_ULW; - - rRTFWrt.Strm() << pStr; - rRTFWrt.bOutFmtAttr = TRUE; - - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_ULC; - rWrt.OutULong( rRTFWrt.GetId(((const SvxUnderlineItem&)rHt).GetColor()) ); - - } - - return rWrt; -} - - - -static Writer& OutRTF_SwOverline( Writer& rWrt, const SfxPoolItem& rHt ) -{ - const char* pStr = 0; - switch( ((const SvxOverlineItem&)rHt).GetLineStyle() ) - { - case UNDERLINE_SINGLE: - pStr = OOO_STRING_SVTOOLS_RTF_OL; - break; - case UNDERLINE_DOUBLE: - pStr = OOO_STRING_SVTOOLS_RTF_OLDB; - break; - case UNDERLINE_NONE: - pStr = OOO_STRING_SVTOOLS_RTF_OLNONE; - break; - case UNDERLINE_DOTTED: - pStr = OOO_STRING_SVTOOLS_RTF_OLD; - break; - case UNDERLINE_DASH: - pStr = OOO_STRING_SVTOOLS_RTF_OLDASH; - break; - case UNDERLINE_DASHDOT: - pStr = OOO_STRING_SVTOOLS_RTF_OLDASHD; - break; - case UNDERLINE_DASHDOTDOT: - pStr = OOO_STRING_SVTOOLS_RTF_OLDASHDD; - break; - case UNDERLINE_BOLD: - pStr = OOO_STRING_SVTOOLS_RTF_OLTH; - break; - case UNDERLINE_WAVE: - pStr = OOO_STRING_SVTOOLS_RTF_OLWAVE; - break; - case UNDERLINE_BOLDDOTTED: - pStr = OOO_STRING_SVTOOLS_RTF_OLTHD; - break; - case UNDERLINE_BOLDDASH: - pStr = OOO_STRING_SVTOOLS_RTF_OLTHDASH; - break; - case UNDERLINE_LONGDASH: - pStr = OOO_STRING_SVTOOLS_RTF_OLLDASH; - break; - case UNDERLINE_BOLDLONGDASH: - pStr = OOO_STRING_SVTOOLS_RTF_OLTHLDASH; - break; - case UNDERLINE_BOLDDASHDOT: - pStr = OOO_STRING_SVTOOLS_RTF_OLTHDASHD; - break; - case UNDERLINE_BOLDDASHDOTDOT: - pStr = OOO_STRING_SVTOOLS_RTF_OLTHDASHDD; - break; - case UNDERLINE_BOLDWAVE: - pStr = OOO_STRING_SVTOOLS_RTF_OLHWAVE; - break; - case UNDERLINE_DOUBLEWAVE: - pStr = OOO_STRING_SVTOOLS_RTF_OLOLDBWAVE; - break; - default: - break; - } - - if( pStr ) - { - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - if ( rRTFWrt.bNonStandard ) - { - if( UNDERLINE_SINGLE == ((const SvxOverlineItem&)rHt).GetLineStyle() - && ((SvxWordLineModeItem&)rRTFWrt.GetItem( - RES_CHRATR_WORDLINEMODE )).GetValue() ) - pStr = OOO_STRING_SVTOOLS_RTF_OLW; - - rRTFWrt.Strm() << pStr; - rRTFWrt.bOutFmtAttr = TRUE; - - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_OLC; - rWrt.OutULong( rRTFWrt.GetId(((const SvxOverlineItem&)rHt).GetColor()) ); - } - - } - - return rWrt; -} - - - -static Writer& OutRTF_SwLanguage( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - if( !rRTFWrt.bTxtAttr || - ( rRTFWrt.GetEndPosLst() && - rRTFWrt.GetEndPosLst()->MatchScriptToId( rHt.Which() ) )) - { - - rRTFWrt.bOutFmtAttr = TRUE; - const sal_Char* p = RES_CHRATR_CJK_LANGUAGE == rHt.Which() - ? OOO_STRING_SVTOOLS_RTF_LANGFE : OOO_STRING_SVTOOLS_RTF_LANG; - rWrt.Strm() << p; - rWrt.OutULong( ((const SvxLanguageItem&)rHt).GetLanguage() ); - } - return rWrt; -} - - - -static Writer& OutRTF_SwEscapement( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - const SvxEscapementItem& rEsc = (const SvxEscapementItem&)rHt; - const char * pUpDn; - - SwTwips nH = ((SvxFontHeightItem&)rRTFWrt.GetItem( - RES_CHRATR_FONTSIZE )).GetHeight(); - - if( 0 < rEsc.GetEsc() ) - pUpDn = OOO_STRING_SVTOOLS_RTF_UP; - else if( 0 > rEsc.GetEsc() ) - { - pUpDn = OOO_STRING_SVTOOLS_RTF_DN; - nH = -nH; // den negativen Wert herrausrechnen - } - else - return rWrt; - - // prozentuale Veraenderung speichern ! - short nEsc = rEsc.GetEsc(); - short nProp = rEsc.GetProp() * 100; - if( DFLT_ESC_AUTO_SUPER == nEsc ) - { - nEsc = 100 - rEsc.GetProp(); - ++nProp; - } - else if( DFLT_ESC_AUTO_SUB == nEsc ) - { - nEsc = - 100 + rEsc.GetProp(); - ++nProp; - } - - OutComment( rWrt, OOO_STRING_SVTOOLS_RTF_UPDNPROP, TRUE ); - rWrt.OutULong( nProp ) << '}' << pUpDn; - - /* - * berechne aus der akt. FontSize und dem ProzentWert die Verschiebung, - * wobei im RTF File 1/2 Points stehen muessen, waehrend intern - * mit Twips gerechnet wird. - * Formel : (FontSize * 1/20 ) pts x * 2 - * ----------------------- = ------------ - * 100% Escapement - */ - - rWrt.OutULong( ( (long( nEsc ) * nH) + 500L ) / 1000L ); - // 500L zum Aufrunden !! - return rWrt; -} - - - -static Writer& OutRTF_SwSize( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - if( !rRTFWrt.bTxtAttr || - ( rRTFWrt.GetEndPosLst() && - rRTFWrt.GetEndPosLst()->MatchScriptToId( rHt.Which() ) )) - { - if ( - rRTFWrt.IsAssociatedFlag() && - rHt.Which() == RES_CHRATR_CJK_FONTSIZE - ) - { - /* - #i21422# - Sadly in word rtf we can't retain CJK fontsize when we are not - exporting asian text as it doesn't have a seperate fontsize for - western and asian. - */ - return rWrt; - } - - rRTFWrt.bOutFmtAttr = TRUE; - - const sal_Char* pCmd = rRTFWrt.IsAssociatedFlag() ? OOO_STRING_SVTOOLS_RTF_AFS : OOO_STRING_SVTOOLS_RTF_FS; - rWrt.Strm() << pCmd; - rWrt.OutULong( ((const SvxFontHeightItem&)rHt).GetHeight() / 10 ); - } - return rWrt; -} - - - -static Writer& OutRTF_SwColor( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - /* trage die Color in die Color-Liste vom Writer ein und gebe hier nur - * die entsprechende Nummer aus. Die Color wird spaeter ueber diese - * Tabelle im RTF-Dokument referenziert. - */ - rRTFWrt.bOutFmtAttr = TRUE; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_CF; - rWrt.OutULong( rRTFWrt.GetId( ((const SvxColorItem&)rHt).GetValue() )); - return rWrt; -} - -static Writer& OutRTF_SvxCharHiddenItem(Writer& rWrt, const SfxPoolItem& rHt) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - rRTFWrt.bOutFmtAttr = true; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_V; - if (!((const SvxCharHiddenItem&)rHt).GetValue()) - rWrt.OutULong(0); - return rWrt; -} - -extern void sw3io_ConvertToOldField( const SwField* pFld, USHORT& rWhich, - ULONG& rFmt, ULONG nFFVersion ); - -static Writer& OutRTF_SwField( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwFmtFld & rFld = (SwFmtFld&)rHt; - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - - const SwField* pFld = rFld.GetFld(); - - ByteString aFldStt( '{' ); - ((((aFldStt += OOO_STRING_SVTOOLS_RTF_FIELD) += '{' ) += OOO_STRING_SVTOOLS_RTF_IGNORE) += OOO_STRING_SVTOOLS_RTF_FLDINST) += ' '; - switch( pFld->GetTyp()->Which() ) - { - case RES_COMBINED_CHARS: - { - /* - We need a font size to fill in the defaults, if these are overridden - (as they generally are) by character properties then those properties - win. - - The fontsize that is used in MS for determing the defaults is always - the CJK fontsize even if the text is not in that language, in OOo the - largest fontsize used in the field is the one we should take, but - whatever we do, word will actually render using the fontsize set for - CJK text. Nevertheless we attempt to guess whether the script is in - asian or western text based up on the first character and use the - font size of that script as our default. - */ - const String& rFldPar1 = pFld->GetPar1(); - USHORT nScript; - if( pBreakIt->GetBreakIter().is() ) - nScript = pBreakIt->GetBreakIter()->getScriptType( rFldPar1, 0); - else - nScript = i18n::ScriptType::ASIAN; - - long nHeight = ((SvxFontHeightItem&)rRTFWrt.GetItem( - GetWhichOfScript(RES_CHRATR_FONTSIZE, nScript ))).GetHeight(); - nHeight = (nHeight + 10) / 20; //Font Size in points; - - /* - Divide the combined char string into its up and down part. Get the - font size and fill in the defaults as up == half the font size and - down == a fifth the font size - */ - xub_StrLen nAbove = (rFldPar1.Len()+1)/2; - rWrt.Strm() << aFldStt.GetBuffer() << "EQ \\\\o (\\\\s\\\\up "; - rWrt.OutLong( nHeight/2 ) << '('; - RTFOutFuncs::Out_String( rWrt.Strm(), rFldPar1.Copy(0,nAbove), - rRTFWrt.eDefaultEncoding, rRTFWrt.bWriteHelpFmt ); - rWrt.Strm() << "), \\\\s\\\\do "; - rWrt.OutLong( nHeight/5 ) << '('; - RTFOutFuncs::Out_String( rWrt.Strm(), rFldPar1.Copy( nAbove ), - rRTFWrt.eDefaultEncoding, rRTFWrt.bWriteHelpFmt ) - << "))"; - } - break; - - case RES_DBFLD: - aFldStt += "MERGEFIELD "; - // kein break !! - case RES_USERFLD: - rWrt.Strm() << aFldStt.GetBuffer(); - RTFOutFuncs::Out_String( rWrt.Strm(), pFld->GetTyp()->GetName(), - rRTFWrt.eDefaultEncoding, rRTFWrt.bWriteHelpFmt ); - break; - case RES_GETREFFLD: - { - BYTE nFldTyp = 0; - rWrt.Strm() << aFldStt.GetBuffer() << " REF "; - const SwGetRefField& rRFld = *(SwGetRefField*)pFld; - switch( pFld->GetSubType() ) - { - case REF_SETREFATTR: - case REF_BOOKMARK: - RTFOutFuncs::Out_String( rWrt.Strm(), rRFld.GetSetRefName(), - rRTFWrt.eDefaultEncoding, rRTFWrt.bWriteHelpFmt ); - nFldTyp = 3; - break; - } - - if( nFldTyp ) - { - switch( pFld->GetFormat() ) - { - case REF_PAGE_PGDESC: - case REF_PAGE: - rWrt.Strm() << "SEITEN"; - nFldTyp = 37; - break; - case REF_UPDOWN: - rWrt.Strm() << " \\p"; - nFldTyp = 3; - break; - case REF_CHAPTER: - rWrt.Strm() << " \\n"; - break; - case REF_ONLYNUMBER: - case REF_ONLYCAPTION: - case REF_ONLYSEQNO: - break; - // default: - // case REF_CONTENT: - } - rWrt.Strm() << " \\\\h "; // insert hyperlink - } - } - break; -// case RES_CHAPTERFLD: -// rWrt.Strm() << ' '; -// break; - case RES_PAGENUMBERFLD: - rWrt.Strm() << aFldStt.GetBuffer() << "\\\\page"; - { - char __READONLY_DATA - sNType0[] = "ALPHABETIC", /* CHARS_UPPER_LETTER*/ - sNType1[] = "alphabetic", /* CHARS_LOWER_LETTER*/ - sNType2[] = "ROMAN", /* ROMAN_UPPER */ - sNType3[] = "roman", /* ROMAN_LOWER */ - sNType4[] = "ARABIC"; /* ARABIC */ - - const char* pFmtStr = 0; - switch( pFld->GetFormat() ) - { - case SVX_NUM_CHARS_UPPER_LETTER: - case SVX_NUM_CHARS_UPPER_LETTER_N: pFmtStr = sNType0; break; - case SVX_NUM_CHARS_LOWER_LETTER: - case SVX_NUM_CHARS_LOWER_LETTER_N: pFmtStr = sNType1; break; - case SVX_NUM_ROMAN_UPPER: pFmtStr = sNType2; break; - case SVX_NUM_ROMAN_LOWER: pFmtStr = sNType3; break; - case SVX_NUM_ARABIC: pFmtStr = sNType4; break; - } - - if( pFmtStr ) - rWrt.Strm() << "\\\\* " << pFmtStr; - } - break; - case RES_FILENAMEFLD: - rWrt.Strm() << aFldStt.GetBuffer() << "\\\\filename "; - break; - case RES_DBNAMEFLD: - { - rWrt.Strm() << aFldStt.GetBuffer() << "\\\\data "; - SwDBData aData = rWrt.pDoc->GetDBData(); - String sOut(aData.sDataSource); - sOut += DB_DELIM; - sOut += (String)aData.sCommand; - RTFOutFuncs::Out_String( rWrt.Strm(), sOut, - rRTFWrt.eDefaultEncoding, rRTFWrt.bWriteHelpFmt ); - } - break; - case RES_AUTHORFLD: - rWrt.Strm() << aFldStt.GetBuffer() << "\\\\author "; - break; - - case RES_HIDDENTXTFLD: - if( TYP_CONDTXTFLD == ((SwHiddenTxtField*)pFld)->GetSubType() ) - RTFOutFuncs::Out_String( rWrt.Strm(), - pFld->ExpandField(rWrt.pDoc->IsClipBoard()), - rRTFWrt.eDefaultEncoding, rRTFWrt.bWriteHelpFmt ); - else - { - rWrt.Strm() << '{' << OOO_STRING_SVTOOLS_RTF_V << ' '; - OutRTF_AsByteString( rWrt, pFld->GetPar2(), rRTFWrt.eDefaultEncoding ).Strm() - << '}' << SwRTFWriter::sNewLine; - } - return rWrt; // nicht bis zum Ende, kein RTF-Feld !! - - case RES_DATETIMEFLD: - if (!(pFld->GetSubType() & FIXEDFLD)) - { - USHORT nWhich = RES_DATETIMEFLD; - ULONG nFmt = pFld->GetFormat(); - sw3io_ConvertToOldField(pFld, nWhich, nFmt, SOFFICE_FILEFORMAT_40 ); - if (pFld->GetSubType() & DATEFLD) - { - rWrt.Strm() << aFldStt.GetBuffer() << "\\\\date \\\\@\""; - switch( nFmt ) - { - case DF_SSYS: rWrt.Strm() << "tt.MM.yy"; break; - case DF_LSYS: rWrt.Strm() << "tttt, t. MMMM yyyy"; break; - case DF_SHORT: rWrt.Strm() << "tt.MM.yy"; break; - case DF_SCENT: rWrt.Strm() << "tt.MM.yyyy"; break; - case DF_LMON: rWrt.Strm() << "t. MMM yyyy"; break; - case DF_LMONTH: rWrt.Strm() << "t. MMMM yyyy"; break; - case DF_LDAYMON: rWrt.Strm() << "ttt, t. MMMM yyyy"; break; - case DF_LDAYMONTH: rWrt.Strm() << "tttt, t. MMMM yyyy"; break; - } - } - else - { - rWrt.Strm() << aFldStt.GetBuffer() << "\\\\date \\\\@\""; - switch( nFmt ) - { - case TF_SSMM_24: rWrt.Strm() << "HH:mm"; break; - case TF_SSMM_12: rWrt.Strm() << "hh:mm"; break; // ??? - case TF_SYSTEM: rWrt.Strm() << "HH:mm"; break; - } - } - rWrt.Strm() << '\"'; - break; - } - // Kein break: in default-Zweig laufen! - - default: - { - aFldStt.Erase(); - - // JP 20.07.95: warum nicht das Expandierte rausschreiben ? - sal_Char cCh; - rWrt.Strm().SeekRel(-1); - rWrt.Strm() >> cCh; - if( ' ' != cCh ) // vorweg immer einen Trenner - rWrt.Strm() << ' '; - RTFOutFuncs::Out_String( rWrt.Strm(), - pFld->ExpandField(rWrt.pDoc->IsClipBoard()), - rRTFWrt.eDefaultEncoding, rRTFWrt.bWriteHelpFmt ); - } - break; - } - - if( aFldStt.Len() ) - { - rWrt.Strm() << "}{" << OOO_STRING_SVTOOLS_RTF_FLDRSLT << ' '; - RTFOutFuncs::Out_String( rWrt.Strm(), - pFld->ExpandField(rWrt.pDoc->IsClipBoard()), - rRTFWrt.eDefaultEncoding, rRTFWrt.bWriteHelpFmt ); - rWrt.Strm() << "}}"; - rRTFWrt.bOutFmtAttr = FALSE; - } - - return rWrt; -} - -static Writer& OutRTF_SwFlyCntnt( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwFrmFmt* pFmt = ((SwFmtFlyCnt&)rHt).GetFrmFmt(); - if (RES_DRAWFRMFMT != pFmt->Which()) - { - ((SwRTFWriter&)rWrt).OutRTFFlyFrms( *((SwFlyFrmFmt*)pFmt) ); - ((SwRTFWriter&)rWrt).bOutFmtAttr = false; - } - return rWrt; -} - -static Writer& OutRTF_SwFtn( Writer& rWrt, const SfxPoolItem& rHt ) -{ - const SwFmtFtn& rFtn = (const SwFmtFtn&)rHt; - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - - do { // middle-check-loop - if( !rFtn.GetTxtFtn() || !rFtn.GetTxtFtn()->GetStartNode() ) - break; // es gibt keine Kopf-/Fusszeile/Fussnote - - // Hole vom Node und vom letzten Node die Position in der Section - ULONG nStart = rFtn.GetTxtFtn()->GetStartNode()->GetIndex()+1, - nEnd = rWrt.pDoc->GetNodes()[ nStart-1 ]->EndOfSectionIndex(); - - // kein Bereich also kein gueltiger Node - if( nStart >= nEnd ) - break; - - rWrt.Strm() << '{' << OOO_STRING_SVTOOLS_RTF_SUPER << ' '; - if( !rFtn.GetNumStr().Len() ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_CHFTN; - OutComment( rWrt, OOO_STRING_SVTOOLS_RTF_FOOTNOTE ); - if( rFtn.IsEndNote() ) - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_FTNALT; - rWrt.Strm() << ' ' << OOO_STRING_SVTOOLS_RTF_CHFTN; - } - else - { - OutRTF_AsByteString( rWrt, rFtn.GetNumStr(), rRTFWrt.eDefaultEncoding ); - OutComment( rWrt, OOO_STRING_SVTOOLS_RTF_FOOTNOTE ); - if( rFtn.IsEndNote() ) - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_FTNALT; - rWrt.Strm() << ' '; - OutRTF_AsByteString( rWrt, rFtn.GetNumStr(), rRTFWrt.eDefaultEncoding ); - } - RTFSaveData aSaveData( rRTFWrt, nStart, nEnd ); - // damit kein \par ausgegeben wird !! - rRTFWrt.pCurPam->GetMark()->nContent++; - rRTFWrt.Out_SwDoc( rRTFWrt.pCurPam ); - - rWrt.Strm() << "}}" << SwRTFWriter::sNewLine; - rRTFWrt.bOutFmtAttr = FALSE; - - } while( FALSE ); - return rWrt; -} - -static Writer& OutRTF_SwTxtCharFmt( Writer& rWrt, const SfxPoolItem& rHt ) -{ - const SwFmtCharFmt& rChrFmt = (const SwFmtCharFmt&)rHt; - const SwCharFmt* pFmt = rChrFmt.GetCharFmt(); - - if( pFmt ) - OutRTF_SwFmt( rWrt, *pFmt ); - return rWrt; -} - -static Writer& OutRTF_SwTxtAutoFmt( Writer& rWrt, const SfxPoolItem& rHt ) -{ - const SwFmtAutoFmt& rAutoFmt = (const SwFmtAutoFmt&)rHt; - const boost::shared_ptr<SfxItemSet> pSet = rAutoFmt.GetStyleHandle(); - - if( pSet.get() ) - { - SwRTFWriter & rRTFWrt = (SwRTFWriter&)rWrt; - OutRTF_SfxItemSet( rRTFWrt, *pSet.get(), FALSE ); - } - return rWrt; -} - -static Writer& OutRTF_SwTxtRuby( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - const SwFmtRuby& rRuby = (const SwFmtRuby&)rHt; - const SwTxtRuby* pRubyTxt = rRuby.GetTxtRuby(); - const SwTxtNode* pNd; - - if( !pRubyTxt || 0 == (pNd = pRubyTxt->GetpTxtNode() )) - return rWrt; - - sal_Char cDirective = 0, cJC = '0'; - switch( rRuby.GetAdjustment() ) - { - case 0: cJC = '3'; cDirective = 'l'; break; - case 2: cJC = '4'; cDirective = 'r'; break; - case 3: cJC = '1'; cDirective = 'd'; break; - case 4: cJC = '2'; cDirective = 'd'; break; - case 1: break; //defaults to 0 - default: - ASSERT( FALSE, "Unhandled Ruby justication code" ); - break; - } - - /* - MS needs to know the name and size of the font used in the ruby item, - but we coud have written it in a mixture of asian and western - scripts, and each of these can be a different font and size than the - other, so we make a guess based upon the first character of the text, - defaulting to asian. - */ - USHORT nScript; - if( pBreakIt->GetBreakIter().is() ) - nScript = pBreakIt->GetBreakIter()->getScriptType( rRuby.GetText(), 0); - else - nScript = i18n::ScriptType::ASIAN; - - const SwCharFmt* pFmt = pRubyTxt->GetCharFmt(); - const SvxFontItem *pFont; - long nHeight; - - if( pFmt ) - { - const SwAttrSet& rSet = pFmt->GetAttrSet(); - pFont = &(const SvxFontItem&)rSet.Get( GetWhichOfScript( - RES_CHRATR_FONT, nScript )); - - nHeight = ((SvxFontHeightItem&)rSet.Get( - GetWhichOfScript( RES_CHRATR_FONTSIZE, nScript ))).GetHeight(); - } - else - { - /*Get document defaults if no formatting on ruby text*/ - const SfxItemPool *pPool = pNd->GetSwAttrSet().GetPool(); - pFont = &(const SvxFontItem&)pPool->GetDefaultItem( - GetWhichOfScript( RES_CHRATR_FONT, nScript )); - - nHeight = ((SvxFontHeightItem&)pPool->GetDefaultItem( - GetWhichOfScript( RES_CHRATR_FONTSIZE, nScript ))).GetHeight(); - } - ( nHeight += 5 ) /= 10; - - // don't change " EQ " to any other without changing the code in RTFFLD.CXX - rWrt.Strm() << '{' << OOO_STRING_SVTOOLS_RTF_FIELD << '{' << OOO_STRING_SVTOOLS_RTF_IGNORE << OOO_STRING_SVTOOLS_RTF_FLDINST - << " EQ \\\\* jc" << cJC - << " \\\\* \"Font:"; - RTFOutFuncs::Out_String( rWrt.Strm(), pFont->GetFamilyName(), - rRTFWrt.eDefaultEncoding, rRTFWrt.bWriteHelpFmt ); - rWrt.Strm() << "\" \\\\* hps"; - rWrt.OutLong( nHeight ); - rWrt.Strm() << " \\\\o"; - if( cDirective ) - rWrt.Strm() << "\\\\a" << cDirective; - rWrt.Strm() << "(\\\\s\\\\up "; - - if( pBreakIt->GetBreakIter().is() ) - nScript = pBreakIt->GetBreakIter()->getScriptType( pNd->GetTxt(), - *pRubyTxt->GetStart() ); - else - nScript = i18n::ScriptType::ASIAN; - - const SwAttrSet& rSet = pNd->GetSwAttrSet(); - nHeight = ((SvxFontHeightItem&)rSet.Get( - GetWhichOfScript( RES_CHRATR_FONTSIZE, nScript ))).GetHeight(); - (nHeight += 10) /= 20-1; - rWrt.OutLong( nHeight ) << '('; - - if( pFmt ) - { - rWrt.Strm() << '{'; - OutRTF_SwFmt( rWrt, *pFmt ); - if( rRTFWrt.bOutFmtAttr ) - rWrt.Strm() << ' '; - } - RTFOutFuncs::Out_String( rWrt.Strm(), rRuby.GetText(), - rRTFWrt.eDefaultEncoding, rRTFWrt.bWriteHelpFmt ); - if( pFmt ) - rWrt.Strm() << '}'; - - rWrt.Strm() << "),"; - rRTFWrt.bOutFmtAttr = FALSE; - - return rWrt; -} - - -/* File FRMATR.HXX */ - -static Writer& OutRTF_SwFrmSize( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - const SwFmtFrmSize& rSz = (const SwFmtFrmSize&)rHt; - if( rRTFWrt.pFlyFmt ) // wird das FlyFrmFmt ausgegeben ? - { - if( !rRTFWrt.bRTFFlySyntax ) - return rWrt; - - if( rSz.GetWidth() ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_ABSW; - rWrt.OutLong( rSz.GetWidth() ); - rRTFWrt.bOutFmtAttr = TRUE; - } - - if( rSz.GetHeight() ) - { - long nH = rSz.GetHeight(); - if( ATT_FIX_SIZE == rSz.GetHeightSizeType() ) - nH = -nH; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_ABSH; - rWrt.OutLong( nH ); - rRTFWrt.bOutFmtAttr = TRUE; - } - } - else if( rRTFWrt.bOutPageDesc ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_PGWSXN; - rWrt.OutLong( rSz.GetWidth() ); - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_PGHSXN; - rWrt.OutLong( rSz.GetHeight() ); - rRTFWrt.bOutFmtAttr = TRUE; - } - return rWrt; -} - -static Writer& OutRTF_SwFmtLRSpace( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - const SvxLRSpaceItem & rLR = (const SvxLRSpaceItem&) rHt; - if( !rRTFWrt.pFlyFmt ) - { - if( rRTFWrt.bOutPageDesc ) - { - if( rLR.GetLeft() ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_MARGLSXN; - rWrt.OutLong( rLR.GetLeft() ); - rRTFWrt.bOutFmtAttr = TRUE; - } - if( rLR.GetRight() ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_MARGRSXN; - rWrt.OutLong( rLR.GetRight() ); - rRTFWrt.bOutFmtAttr = TRUE; - } - } - else - { - rRTFWrt.bOutFmtAttr = TRUE; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_LI; - rWrt.OutLong( rLR.GetTxtLeft() ) << OOO_STRING_SVTOOLS_RTF_RI; - rWrt.OutLong( rLR.GetRight() ); - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_LIN; - rWrt.OutLong( rLR.GetTxtLeft() ) << OOO_STRING_SVTOOLS_RTF_RIN; - rWrt.OutLong( rLR.GetRight() ); - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_FI; - rWrt.OutLong( rLR.GetTxtFirstLineOfst() ); - } - } - else if( rLR.GetLeft() == rLR.GetRight() && rRTFWrt.bRTFFlySyntax ) - { - rRTFWrt.bOutFmtAttr = TRUE; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_DFRMTXTX; - rWrt.OutLong( rLR.GetLeft() ); - } - return rWrt; -} - -static Writer& OutRTF_SwFmtULSpace( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - const SvxULSpaceItem & rUL = (const SvxULSpaceItem&) rHt; - if( rRTFWrt.pFlyFmt ) - { - if( rUL.GetUpper() == rUL.GetLower() && rRTFWrt.bRTFFlySyntax ) - { - rRTFWrt.bOutFmtAttr = TRUE; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_DFRMTXTY; - rWrt.OutLong( rUL.GetLower() ); - } - } - else - { - const char* p; - USHORT nValue = rUL.GetUpper(); - if( rRTFWrt.bOutPageDesc ) - { - p = OOO_STRING_SVTOOLS_RTF_MARGTSXN; - if( !rRTFWrt.bOutPageDescTbl ) - { - SwRect aRect; - const SwFmtHeader* pHdr; - if( SFX_ITEM_SET == rRTFWrt.pAktPageDesc->GetMaster(). - GetItemState( RES_HEADER, FALSE, - (const SfxPoolItem**)&pHdr ) && pHdr->IsActive() ) - { - aRect = pHdr->GetHeaderFmt()->FindLayoutRect( FALSE ); - if( aRect.Height() ) - nValue = nValue + static_cast< USHORT >(aRect.Height()); - else - { - const SwFmtFrmSize& rSz = pHdr->GetHeaderFmt()->GetFrmSize(); - if( ATT_VAR_SIZE != rSz.GetHeightSizeType() ) - nValue = nValue + static_cast< USHORT >(rSz.GetHeight()); - else - nValue = nValue + 274; // defaulten fuer 12pt Schrift - nValue = nValue + pHdr->GetHeaderFmt()->GetULSpace().GetLower(); - } - } - } - } - else - p = OOO_STRING_SVTOOLS_RTF_SB; - - if( rRTFWrt.bOutPageDesc || nValue ) - { - rRTFWrt.bOutFmtAttr = TRUE; - rWrt.Strm() << p; - rWrt.OutLong( nValue ); - } - - - nValue = rUL.GetLower(); - if( rRTFWrt.bOutPageDesc ) - { - p = OOO_STRING_SVTOOLS_RTF_MARGBSXN; - if( !rRTFWrt.bOutPageDescTbl ) - { - SwRect aRect; - const SwFmtFooter* pFtr; - if( SFX_ITEM_SET == rRTFWrt.pAktPageDesc->GetMaster(). - GetItemState( RES_FOOTER, FALSE, - (const SfxPoolItem**)&pFtr ) && pFtr->IsActive() ) - { - aRect = pFtr->GetFooterFmt()->FindLayoutRect( FALSE ); - if( aRect.Height() ) - nValue = nValue + static_cast< USHORT >(aRect.Height()); - else - { - const SwFmtFrmSize& rSz = pFtr->GetFooterFmt()->GetFrmSize(); - if( ATT_VAR_SIZE != rSz.GetHeightSizeType() ) - nValue = nValue + static_cast< USHORT >(rSz.GetHeight()); - else - nValue += 274; // defaulten fuer 12pt Schrift - nValue = nValue + pFtr->GetFooterFmt()->GetULSpace().GetUpper(); - } - } - } - } - else - p = OOO_STRING_SVTOOLS_RTF_SA; - - if( rRTFWrt.bOutPageDesc || nValue ) - { - rRTFWrt.bOutFmtAttr = TRUE; - rWrt.Strm() << p; - rWrt.OutLong( nValue ); - } - } - return rWrt; -} - -// Header-Footer werden auch vom RTF-Writer direkt gerufen, also kein static! - - -Writer& OutRTF_SwFmtHeader( Writer& rWrt, const SfxPoolItem& rHt ) -{ - const SwFmtHeader& rHd = (const SwFmtHeader&)rHt; - if( !rHd.IsActive() ) // nicht aktiv, dann nichts weiter ausgeben - return rWrt; - - // hole einen Node zu dem Request - SwStartNode *pSttNode = 0; - const SwFmtCntnt& rCntnt = rHd.GetHeaderFmt()->GetCntnt(); - if( rCntnt.GetCntntIdx() ) - pSttNode = rCntnt.GetCntntIdx()->GetNode().GetStartNode(); - - do { // middle-check-loop - if( !pSttNode ) - break; // es gibt keine Kopf-/Fusszeile/Fussnote - - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - - // Hole vom Node und vom letzten Node die Position in der Section - ULONG nStart = pSttNode->GetIndex() + 1, - nEnd = pSttNode->EndOfSectionIndex(); - - // kein Bereich also kein gueltiger Node - if( nStart >= nEnd ) - break; - ASSERT( rRTFWrt.pAktPageDesc, "Header-Attribut ohne PageDesc" ); - - const sal_Char * pHdNm = OOO_STRING_SVTOOLS_RTF_HEADER; - rWrt.Strm() << pHdNm << 'y'; - if( rRTFWrt.bOutPageDescTbl ) - { - // hole die Ober-/Unterkanten vom Header - const SvxULSpaceItem& rUL = rHd.GetHeaderFmt()->GetULSpace(); - const SvxLRSpaceItem& rLR = rHd.GetHeaderFmt()->GetLRSpace(); - const SwFmtFrmSize& rSz = rHd.GetHeaderFmt()->GetFrmSize(); - - rWrt.OutLong( rUL.GetUpper() ); - OutComment( rWrt, pHdNm ) << "yb"; - rWrt.OutLong( rUL.GetLower() ) << pHdNm << "xl"; - rWrt.OutLong( rLR.GetLeft() ) << pHdNm << "xr"; - rWrt.OutLong( rLR.GetRight() ) << pHdNm << "yh"; - rWrt.OutLong( ATT_FIX_SIZE == rSz.GetHeightSizeType() - ? -rSz.GetHeight() - : rSz.GetHeight() ) << '}'; - } - else - rWrt.OutLong( rRTFWrt.pAktPageDesc->GetMaster(). - GetULSpace().GetUpper() ); - - // wird nicht die PageDesc-Tabelle ausgegeben und gibt es einen - // Nachfolger, dann handelt es sich um die "1.Seite" nach RTF. - sal_Char cTyp = 0; - if( rRTFWrt.pAktPageDesc->GetFollow() && - rRTFWrt.pAktPageDesc->GetFollow() != rRTFWrt.pAktPageDesc ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_TITLEPG; //i13107 - cTyp = 'f'; // dann FirstPage-Header - } - else if( !rRTFWrt.pAktPageDesc->IsHeaderShared() ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_FACINGP; //i13107 - cTyp = rRTFWrt.bOutLeftHeadFoot ? 'l' : 'r'; - } - - rWrt.Strm() << '{'<< pHdNm; - if( cTyp ) rWrt.Strm() << cTyp; - rWrt.Strm() << ' '; - - { - RTFSaveData aSaveData( rRTFWrt, nStart, nEnd ); - rRTFWrt.Out_SwDoc( rRTFWrt.pCurPam ); - } - - rWrt.Strm() << '}' << SwRTFWriter::sNewLine; - - } while( FALSE ); - return rWrt; -} -// Header-Footer werden auch vom RTF-Writer direkt gerufen, also kein static! - - -Writer& OutRTF_SwFmtFooter( Writer& rWrt, const SfxPoolItem& rHt ) -{ - const SwFmtFooter& rFt = (const SwFmtFooter&)rHt; - if( !rFt.IsActive() ) // nicht aktiv, dann nichts weiter ausgeben - return rWrt; - - SwStartNode *pSttNode = 0; - const SwFmtCntnt& rCntnt = rFt.GetFooterFmt()->GetCntnt(); - if( rCntnt.GetCntntIdx() ) - pSttNode = rCntnt.GetCntntIdx()->GetNode().GetStartNode(); - - do { // middle-check-loop - if( !pSttNode ) - break; // es gibt keine Kopf-/Fusszeile/Fussnote - - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - - // Hole vom Node und vom letzten Node die Position in der Section - ULONG nStart = pSttNode->GetIndex()+1, - nEnd = pSttNode->EndOfSectionIndex(); - - // kein Bereich also kein gueltiger Node - if( nStart >= nEnd ) - break; - ASSERT( rRTFWrt.pAktPageDesc, "Footer-Attribut ohne PageDesc" ); - - const sal_Char * pFtNm = OOO_STRING_SVTOOLS_RTF_FOOTER; - rWrt.Strm() << pFtNm << 'y'; - if( rRTFWrt.bOutPageDescTbl ) - { - // hole die Ober-/Unterkanten vom Footer - const SvxULSpaceItem& rUL = rFt.GetFooterFmt()->GetULSpace(); - const SvxLRSpaceItem& rLR = rFt.GetFooterFmt()->GetLRSpace(); - const SwFmtFrmSize& rSz = rFt.GetFooterFmt()->GetFrmSize(); - - rWrt.OutLong( rUL.GetLower() ); - OutComment( rWrt, pFtNm ) << "yt"; - rWrt.OutLong( rUL.GetUpper() ) << pFtNm << "xl"; - rWrt.OutLong( rLR.GetLeft() ) << pFtNm << "xr"; - rWrt.OutLong( rLR.GetRight() ) << pFtNm << "yh"; - rWrt.OutLong( ATT_FIX_SIZE == rSz.GetHeightSizeType() - ? -rSz.GetHeight() - : rSz.GetHeight() ) << '}'; - } - else - rWrt.OutLong( rRTFWrt.pAktPageDesc->GetMaster(). - GetULSpace().GetLower() ); - - // wird nicht die PageDesc-Tabelle ausgegeben und gibt es einen - // Nachfolger, dann handelt es sich um die "1.Seite" nach RTF. - sal_Char cTyp = 0; - if( !rRTFWrt.bOutPageDesc && rRTFWrt.pAktPageDesc->GetFollow() && - rRTFWrt.pAktPageDesc->GetFollow() != rRTFWrt.pAktPageDesc ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_TITLEPG; //i13107 - cTyp = 'f'; // dann FirstPage-Header - } - else if( !rRTFWrt.pAktPageDesc->IsFooterShared() ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_FACINGP; //i13107 - cTyp = rRTFWrt.bOutLeftHeadFoot ? 'l' : 'r'; - } - - rWrt.Strm() << '{'<< pFtNm; - if( cTyp ) rWrt.Strm() << cTyp; - rWrt.Strm() << ' '; - - { - RTFSaveData aSaveData( rRTFWrt, nStart, nEnd ); - rRTFWrt.Out_SwDoc( rRTFWrt.pCurPam ); - } - - rWrt.Strm() << '}' << SwRTFWriter::sNewLine; - - } while( FALSE ); - return rWrt; -} - -static Writer& OutRTF_SwFmtPrint( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - if( !rRTFWrt.bRTFFlySyntax && !((const SvxPrintItem&)rHt).GetValue() ) - { - rRTFWrt.bOutFmtAttr = TRUE; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_FLYPRINT; - } - return rWrt; -} - - -static Writer& OutRTF_SwFmtOpaque( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - if( !rRTFWrt.bRTFFlySyntax && !((const SvxOpaqueItem&)rHt).GetValue() ) - { - rRTFWrt.bOutFmtAttr = TRUE; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_FLYOPAQUE; - } - return rWrt; -} - - -static Writer& OutRTF_SwFmtProtect( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - if( !rRTFWrt.bRTFFlySyntax ) - { - const SvxProtectItem & rFlyProtect = (const SvxProtectItem&) rHt; - RTFProtect aP( rFlyProtect.IsCntntProtected(), - rFlyProtect.IsSizeProtected(), - rFlyProtect.IsPosProtected() ); - rRTFWrt.bOutFmtAttr = TRUE; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_FLYPRTCTD; - rWrt.OutULong( aP.GetValue() ); - } - return rWrt; -} - - -static Writer& OutRTF_SwFmtSurround( Writer& rWrt, const SfxPoolItem& rHt ) -{ - const SwFmtSurround& rFlySurround = (const SwFmtSurround&) rHt; - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - if( rRTFWrt.bRTFFlySyntax ) - { - if( SURROUND_NONE == rFlySurround.GetSurround() ) - { - rRTFWrt.bOutFmtAttr = TRUE; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_NOWRAP; - } - } - else - { - SwSurround eSurround = rFlySurround.GetSurround(); - BOOL bGold = SURROUND_IDEAL == eSurround; - if( bGold ) - eSurround = SURROUND_PARALLEL; - RTFSurround aMC( bGold, static_cast< BYTE >(eSurround) ); - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_FLYMAINCNT; - rWrt.OutULong( aMC.GetValue() ); - rRTFWrt.bOutFmtAttr = TRUE; - } - return rWrt; -} - -static Writer& OutRTF_SwFmtVertOrient ( Writer& rWrt, const SfxPoolItem& rHt ) -{ - const SwFmtVertOrient& rFlyVert = (const SwFmtVertOrient&) rHt; - RTFVertOrient aVO( static_cast< USHORT >(rFlyVert.GetVertOrient()), static_cast< USHORT >(rFlyVert.GetRelationOrient()) ); - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - - if( rRTFWrt.bRTFFlySyntax && rRTFWrt.pFlyFmt ) - { - rRTFWrt.bOutFmtAttr = TRUE; - const char* pOrient; - RndStdIds eAnchor = rRTFWrt.pFlyFmt->GetAnchor().GetAnchorId(); - sal_Int16 eOrient = rFlyVert.GetRelationOrient(); - if (FLY_AT_PAGE == eAnchor) - { - if( text::RelOrientation::PAGE_FRAME == eOrient || text::RelOrientation::FRAME == eOrient ) - pOrient = OOO_STRING_SVTOOLS_RTF_PVPG; - else - pOrient = OOO_STRING_SVTOOLS_RTF_PVMRG; - } - else - pOrient = OOO_STRING_SVTOOLS_RTF_PVPARA; - rWrt.Strm() << pOrient; - - switch (rFlyVert.GetVertOrient()) - { - case text::VertOrientation::TOP: - case text::VertOrientation::LINE_TOP: - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_POSYT; - break; - case text::VertOrientation::BOTTOM: - case text::VertOrientation::LINE_BOTTOM: - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_POSYB; - break; - case text::VertOrientation::CENTER: - case text::VertOrientation::LINE_CENTER: - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_POSYC; - break; - case text::VertOrientation::NONE: - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_POSY; - rWrt.OutULong(rFlyVert.GetPos()); - break; - default: - break; - } - } - else if( !rRTFWrt.bRTFFlySyntax ) - { - rRTFWrt.bOutFmtAttr = TRUE; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_FLYVERT; - rWrt.OutULong( aVO.GetValue() ); - } - - return rWrt; -} - -static Writer& OutRTF_SwFmtHoriOrient( Writer& rWrt, const SfxPoolItem& rHt ) -{ - const SwFmtHoriOrient& rFlyHori = (const SwFmtHoriOrient&) rHt; - RTFHoriOrient aHO( static_cast< USHORT >(rFlyHori.GetHoriOrient()), - static_cast< USHORT >(rFlyHori.GetRelationOrient()) ); - - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - if( rRTFWrt.bRTFFlySyntax && rRTFWrt.pFlyFmt ) - { - rRTFWrt.bOutFmtAttr = TRUE; - const char* pS; - RndStdIds eAnchor = rRTFWrt.pFlyFmt->GetAnchor().GetAnchorId(); - sal_Int16 eOrient = rFlyHori.GetRelationOrient(); - if (FLY_AT_PAGE == eAnchor) - { - if( text::RelOrientation::PAGE_FRAME == eOrient || text::RelOrientation::FRAME == eOrient ) - pS = OOO_STRING_SVTOOLS_RTF_PHPG; - else - pS = OOO_STRING_SVTOOLS_RTF_PHMRG; - } - else - pS = OOO_STRING_SVTOOLS_RTF_PHCOL; - rWrt.Strm() << pS; - - pS = 0; - switch(rFlyHori.GetHoriOrient()) - { - case text::HoriOrientation::RIGHT: - pS = rFlyHori.IsPosToggle() ? OOO_STRING_SVTOOLS_RTF_POSXO : OOO_STRING_SVTOOLS_RTF_POSXR; - break; - case text::HoriOrientation::LEFT: - pS = rFlyHori.IsPosToggle() ? OOO_STRING_SVTOOLS_RTF_POSXI : OOO_STRING_SVTOOLS_RTF_POSXL; - break; - case text::HoriOrientation::CENTER: - pS = OOO_STRING_SVTOOLS_RTF_POSXC; - break; - case text::HoriOrientation::NONE: - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_POSX; - rWrt.OutULong( rFlyHori.GetPos() ); - break; - default: - break; - } - if (pS) - rWrt.Strm() << pS; - } - else - { - rRTFWrt.bOutFmtAttr = TRUE; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_FLYHORZ; - rWrt.OutULong( aHO.GetValue() ); - } - return rWrt; -} - -static Writer& OutRTF_SwFmtAnchor( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - if( !rRTFWrt.bRTFFlySyntax ) - { - const SwFmtAnchor& rAnchor = (const SwFmtAnchor&) rHt; - USHORT nId = static_cast< USHORT >(rAnchor.GetAnchorId()); - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_FLYANCHOR; - rWrt.OutULong( nId ); - rRTFWrt.bOutFmtAttr = TRUE; - switch( nId ) - { - case FLY_AT_PAGE: - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_FLYPAGE; - rWrt.OutULong( rAnchor.GetPageNum() ); - break; - case FLY_AT_PARA: - case FLY_AS_CHAR: - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_FLYCNTNT; - break; - } - } - return rWrt; -} - - - -static Writer& OutRTF_SwFmtBackground( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - // wird das FlyFrmFmt ausgegeben, dann Background nur ausgeben, wenn - // RTF-Syntax gesetzt ist ! - if( !rRTFWrt.pFlyFmt || !rRTFWrt.bRTFFlySyntax ) - { - const SvxBrushItem& rBack = (const SvxBrushItem&)rHt; - if( !rBack.GetColor().GetTransparency() ) - { - ByteString sOut( OOO_STRING_SVTOOLS_RTF_CBPAT ); - sOut += ByteString::CreateFromInt32( - rRTFWrt.GetId( rBack.GetColor() )); - - if( rRTFWrt.pFlyFmt || rRTFWrt.bOutPageDesc ) - { - rWrt.Strm() << '{' << sOut.GetBuffer() << '}'; - } - else - { - rRTFWrt.bOutFmtAttr = TRUE; - rWrt.Strm() << sOut.GetBuffer(); - } - } - } - return rWrt; -} - - -static Writer& OutRTF_SwFmtShadow( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - // wird das FlyFrmFmt ausgegeben, dann Schatten nur ausgeben, wenn - // nicht RTF-Syntax gesetzt ist ! - if( rRTFWrt.pFlyFmt && rRTFWrt.bRTFFlySyntax ) - return rWrt; - - const SvxShadowItem& rShadow = (const SvxShadowItem&)rHt; - // FALSE wegen schliessender Klammer !! - OutComment( rWrt, OOO_STRING_SVTOOLS_RTF_SHADOW, FALSE ); - rWrt.OutULong( rShadow.GetLocation() ) << OOO_STRING_SVTOOLS_RTF_SHDWDIST; - rWrt.OutULong( rShadow.GetWidth() ) << OOO_STRING_SVTOOLS_RTF_SHDWSTYLE; - const Color& rColor = rShadow.GetColor(); - rWrt.OutULong( rColor.GetTransparency() ? SW_SV_BRUSH_NULL : SW_SV_BRUSH_SOLID ); - rWrt.OutULong( rRTFWrt.GetId( rColor ) ) << OOO_STRING_SVTOOLS_RTF_SHDWFCOL; - rWrt.OutULong( 0 ) << '}'; - return rWrt; -} - - -static void OutBorderLine( SwRTFWriter& rWrt, const SvxBorderLine* pLine, - const char* pStr ) -{ - rWrt.Strm() << pStr << OOO_STRING_SVTOOLS_RTF_BRDLNCOL; - rWrt.OutULong( rWrt.GetId( pLine->GetColor() ) ) << OOO_STRING_SVTOOLS_RTF_BRDLNIN; - rWrt.OutULong( pLine->GetInWidth() ) << OOO_STRING_SVTOOLS_RTF_BRDLNOUT; - rWrt.OutULong( pLine->GetOutWidth() ) << OOO_STRING_SVTOOLS_RTF_BRDLNDIST; - rWrt.OutULong( pLine->GetDistance() ); -} - - -static Writer& OutRTF_SwFmtBox( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - - const SvxBoxItem& rBox = (const SvxBoxItem&)rHt; - - static USHORT __READONLY_DATA aBorders[] = { - BOX_LINE_TOP, BOX_LINE_LEFT, BOX_LINE_BOTTOM, BOX_LINE_RIGHT }; - static const sal_Char* __READONLY_DATA aBorderNames[] = { - OOO_STRING_SVTOOLS_RTF_BRDRT, OOO_STRING_SVTOOLS_RTF_BRDRL, OOO_STRING_SVTOOLS_RTF_BRDRB, OOO_STRING_SVTOOLS_RTF_BRDRR }; - - USHORT nDist = rBox.GetDistance(); - - // wird das FlyFrmFmt ausgegeben, dann Border nur ausgeben, wenn - // nicht RTF-Syntax gesetzt ist! - if( rRTFWrt.pFlyFmt && rRTFWrt.bRTFFlySyntax ) - { -/* -RTF kennt keine Rahmen Umrandung! - // die normale RTF-Definition - if( rBox.GetTop() && rBox.GetBottom() && - rBox.GetLeft() && rBox.GetRight() && - *rBox.GetTop() == *rBox.GetBottom() && - *rBox.GetTop() == *rBox.GetLeft() && - *rBox.GetTop() == *rBox.GetRight() ) - OutBorderLine( rRTFWrt, rBox.GetTop(), OOO_STRING_SVTOOLS_RTF_BOX, nDist ); - else - { - OUT_BRDLINE( rBox.GetTop(), OOO_STRING_SVTOOLS_RTF_BRDRT, nDist ); - OUT_BRDLINE( rBox.GetBottom(), OOO_STRING_SVTOOLS_RTF_BRDRB, nDist ); - OUT_BRDLINE( rBox.GetLeft(), OOO_STRING_SVTOOLS_RTF_BRDRL, nDist ); - OUT_BRDLINE( rBox.GetRight(), OOO_STRING_SVTOOLS_RTF_BRDRR, nDist ); - } -*/ - return rWrt; - } - else if( !rRTFWrt.pFlyFmt ) - { - // erst die normale RTF-Definition, dann unsere eigene - if( rBox.GetTop() && rBox.GetBottom() && - rBox.GetLeft() && rBox.GetRight() && - *rBox.GetTop() == *rBox.GetBottom() && - *rBox.GetTop() == *rBox.GetLeft() && - *rBox.GetTop() == *rBox.GetRight() && - nDist == rBox.GetDistance( BOX_LINE_TOP ) && - nDist == rBox.GetDistance( BOX_LINE_LEFT ) && - nDist == rBox.GetDistance( BOX_LINE_BOTTOM ) && - nDist == rBox.GetDistance( BOX_LINE_RIGHT )) - OutBorderLine( rRTFWrt, rBox.GetTop(), OOO_STRING_SVTOOLS_RTF_BOX, nDist ); - else - { - const USHORT* pBrd = aBorders; - const sal_Char** pBrdNms = (const sal_Char**)aBorderNames; - for(int i = 0; i < 4; ++i, ++pBrd, ++pBrdNms) - { - if (const SvxBorderLine* pLn = rBox.GetLine(*pBrd)) - { - OutBorderLine(rRTFWrt, pLn, *pBrdNms, - rBox.GetDistance(*pBrd)); - } - } - } - } - - const USHORT* pBrd = aBorders; - const sal_Char** pBrdNms = (const sal_Char**)aBorderNames; - for( int i = 0; i < 4; ++i, ++pBrd, ++pBrdNms ) - { - const SvxBorderLine* pLn = rBox.GetLine( *pBrd ); - if( pLn ) - { - rWrt.Strm() << '{' << OOO_STRING_SVTOOLS_RTF_IGNORE; - OutBorderLine( rRTFWrt, pLn, *pBrdNms ); - rWrt.Strm() << '}' << OOO_STRING_SVTOOLS_RTF_BRSP; - rWrt.OutULong( rBox.GetDistance( *pBrd )); - } - } - - rRTFWrt.bOutFmtAttr = FALSE; - return rWrt; -} - -static Writer& OutRTF_SwFmtCol( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = ((SwRTFWriter&)rWrt); - if( rRTFWrt.pFlyFmt && rRTFWrt.bRTFFlySyntax ) - return rWrt; - - const SwFmtCol& rCol = (const SwFmtCol&)rHt; - const SwColumns& rColumns = rCol.GetColumns(); - - USHORT nCols = rColumns.Count(); - if( 1 < nCols ) - { - // dann besorge mal die Seitenbreite ohne Raender !! - const SwFrmFmt* pFmt; - - if( rRTFWrt.pFlyFmt ) - pFmt = rRTFWrt.pFlyFmt; - else if( rRTFWrt.pAktPageDesc ) - pFmt = &rRTFWrt.pAktPageDesc->GetMaster(); - else - pFmt = &const_cast<const SwDoc *>(rWrt.pDoc) - ->GetPageDesc(0).GetMaster(); - - const SvxLRSpaceItem& rLR = pFmt->GetLRSpace(); - - USHORT nPageSize = static_cast< USHORT >( pFmt->GetFrmSize().GetWidth() - - rLR.GetLeft() - rLR.GetRight() ); - - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_COLS; - rWrt.OutLong( nCols ); - - if( rCol.IsOrtho() ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_COLSX; - rWrt.OutLong( rCol.GetGutterWidth( TRUE ) ); - } - else - for( USHORT n = 0; n < nCols; ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_COLNO; - rWrt.OutLong( n+1 ); - - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_COLW; - rWrt.OutLong( rCol.CalcPrtColWidth( n, nPageSize ) ); - if( ++n != nCols ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_COLSR; - rWrt.OutLong( rColumns[ n-1 ]->GetRight() + - rColumns[ n ]->GetLeft() ); - } - } - ((SwRTFWriter&)rWrt).bOutFmtAttr = TRUE; - } - return rWrt; -} - -static Writer& OutRTF_SvxFmtKeep( Writer& rWrt, const SfxPoolItem& rHt ) -{ - const SvxFmtKeepItem& rItem = (const SvxFmtKeepItem&)rHt; - if( rItem.GetValue() ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_KEEPN; - ((SwRTFWriter&)rWrt).bOutFmtAttr = TRUE; - } - return rWrt; -} - -static Writer& OutRTF_SvxFrmDir( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = ((SwRTFWriter&)rWrt); - if (rRTFWrt.pFlyFmt || rRTFWrt.bOutPageDesc) - OutSvxFrmDir(rRTFWrt, rHt); - return rWrt; -} - -/* File GRFATR.HXX */ - -static Writer& OutRTF_SwMirrorGrf( Writer& rWrt, const SfxPoolItem& rHt ) -{ - const SwMirrorGrf & rMirror = (const SwMirrorGrf&)rHt; - if( RES_MIRROR_GRAPH_DONT == rMirror.GetValue() ) - return rWrt; - - ((SwRTFWriter&)rWrt).bOutFmtAttr = TRUE; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_IGNORE << OOO_STRING_SVTOOLS_RTF_GRFMIRROR; - rWrt.OutULong( rMirror.GetValue() ); - return rWrt; -} - -static Writer& OutRTF_SwCropGrf( Writer& rWrt, const SfxPoolItem& rHt ) -{ - const SwCropGrf & rCrop = (const SwCropGrf&)rHt; - ByteString aStr; - if( rCrop.GetLeft() ) - ( aStr += OOO_STRING_SVTOOLS_RTF_PICCROPL ) += - ByteString::CreateFromInt32( (short)rCrop.GetLeft() ); - if( rCrop.GetRight() ) - ( aStr += OOO_STRING_SVTOOLS_RTF_PICCROPR ) += - ByteString::CreateFromInt32( (short)rCrop.GetRight() ); - if( rCrop.GetTop() ) - ( aStr += OOO_STRING_SVTOOLS_RTF_PICCROPT ) += - ByteString::CreateFromInt32( (short)rCrop.GetTop() ); - if( rCrop.GetBottom() ) - ( aStr += OOO_STRING_SVTOOLS_RTF_PICCROPB ) += - ByteString::CreateFromInt32( (short)rCrop.GetBottom() ); - if( aStr.Len() ) - { - ((SwRTFWriter&)rWrt).bOutFmtAttr = TRUE; - rWrt.Strm() << aStr.GetBuffer(); - } - return rWrt; -} - - - -/* File PARATR.HXX */ - -static Writer& OutRTF_SwLineSpacing( Writer& rWrt, const SfxPoolItem& rHt ) -{ - const SvxLineSpacingItem &rLs = (const SvxLineSpacingItem&)rHt; - - switch (rLs.GetLineSpaceRule()) - { - default: - break; - case SVX_LINE_SPACE_AUTO: - case SVX_LINE_SPACE_FIX: - case SVX_LINE_SPACE_MIN: - { - ((SwRTFWriter&)rWrt).bOutFmtAttr = TRUE; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_SL; - sal_Char cMult = '0'; - switch (rLs.GetInterLineSpaceRule()) - { - case SVX_INTER_LINE_SPACE_FIX: - // unser Durchschuss gibt es aber nicht in WW - also wie - // kommt man an die MaxLineHeight heran? - rWrt.OutLong((short)rLs.GetInterLineSpace()); - break; - case SVX_INTER_LINE_SPACE_PROP: - rWrt.OutLong((240L * rLs.GetPropLineSpace()) / 100L); - cMult = '1'; - break; - default: - if (SVX_LINE_SPACE_FIX == rLs.GetLineSpaceRule()) - rWrt.Strm() << '-'; - rWrt.OutLong( rLs.GetLineHeight() ); - break; - } - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_SLMULT << cMult; - } - break; - } - return rWrt; -} - -static Writer& OutRTF_SwAdjust( Writer& rWrt, const SfxPoolItem& rHt ) -{ - const SvxAdjustItem & rAdjust = ((const SvxAdjustItem&)rHt); - ByteString aAttr( "\\q" ); - switch( rAdjust.GetAdjust() ) - { - case SVX_ADJUST_LEFT: aAttr += 'l'; break; - case SVX_ADJUST_RIGHT: aAttr += 'r'; break; - case SVX_ADJUST_BLOCKLINE: - case SVX_ADJUST_BLOCK: aAttr += 'j'; break; - case SVX_ADJUST_CENTER: aAttr += 'c'; break; - - default: - return rWrt; // kein gueltiges Attriut, also returnen - } - ((SwRTFWriter&)rWrt).bOutFmtAttr = TRUE; - rWrt.Strm() << aAttr.GetBuffer(); - return rWrt; -} - -static Writer& OutRTF_SvxFmtSplit( Writer& rWrt, const SfxPoolItem& rHt ) -{ - const SvxFmtSplitItem& rItem = (const SvxFmtSplitItem&)rHt; - if( !rItem.GetValue() ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_KEEP; - ((SwRTFWriter&)rWrt).bOutFmtAttr = TRUE; - } - return rWrt; -} - -static Writer& OutRTF_SwTabStop( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - const SvxTabStopItem & rTStops = (const SvxTabStopItem&)rHt; - long nOffset = ((SvxLRSpaceItem&)rRTFWrt.GetItem( RES_LR_SPACE )).GetTxtLeft(); - for( USHORT n = 0; n < rTStops.Count(); n++ ) - { - const SvxTabStop & rTS = rTStops[ n ]; - if( SVX_TAB_ADJUST_DEFAULT != rTS.GetAdjustment() ) - { - BOOL bOutDecimal = TRUE; - const char* pFill = 0; - switch( rTS.GetFill() ) - { - case cDfltFillChar: - break; - - case '.': pFill = OOO_STRING_SVTOOLS_RTF_TLDOT; break; - case '_': pFill = OOO_STRING_SVTOOLS_RTF_TLUL; break; - case '-': pFill = OOO_STRING_SVTOOLS_RTF_TLTH; break; - case '=': pFill = OOO_STRING_SVTOOLS_RTF_TLEQ; break; - default: - if( !rRTFWrt.bWriteHelpFmt ) - { - OutComment( rWrt, OOO_STRING_SVTOOLS_RTF_TLSWG, FALSE ); - rWrt.OutULong( (((USHORT)rTS.GetFill()) << 8 ) + - rTS.GetDecimal() ) - << '}'; - bOutDecimal = FALSE; - } - } - if( pFill ) - rWrt.Strm() << pFill; - - if( !rRTFWrt.bWriteHelpFmt && bOutDecimal && - rTS.GetDecimal() != ((SvxTabStopItem&)*GetDfltAttr( - RES_PARATR_TABSTOP ))[ 0 ].GetDecimal() ) - { - OutComment( rWrt, OOO_STRING_SVTOOLS_RTF_TLSWG, FALSE ); - rWrt.OutULong( (((USHORT)rTS.GetFill()) << 8 ) + - rTS.GetDecimal() ) << '}'; - } - - const sal_Char* pAdjStr = 0; - switch (rTS.GetAdjustment()) - { - case SVX_TAB_ADJUST_RIGHT: - pAdjStr = OOO_STRING_SVTOOLS_RTF_TQR; - break; - case SVX_TAB_ADJUST_DECIMAL: - pAdjStr = OOO_STRING_SVTOOLS_RTF_TQDEC; - break; - case SVX_TAB_ADJUST_CENTER: - pAdjStr = OOO_STRING_SVTOOLS_RTF_TQC; - break; - default: - break; - } - if (pAdjStr) - rWrt.Strm() << pAdjStr; - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_TX; - rWrt.OutLong(rTS.GetTabPos() + nOffset); - } - } - rRTFWrt.bOutFmtAttr = TRUE; - return rWrt; -} - -static Writer& OutRTF_SwHypenZone( Writer& rWrt, const SfxPoolItem& rHt ) -{ - if( !((SwRTFWriter&)rWrt).bWriteHelpFmt ) - { - const SvxHyphenZoneItem& rAttr = (const SvxHyphenZoneItem&)rHt; - USHORT nFlags = rAttr.IsHyphen() ? 1 : 0; - if( rAttr.IsPageEnd() ) nFlags += 2; - - OutComment( rWrt, OOO_STRING_SVTOOLS_RTF_HYPHEN, FALSE ); - rWrt.OutULong( nFlags ) << OOO_STRING_SVTOOLS_RTF_HYPHLEAD; - rWrt.OutULong( rAttr.GetMinLead() ) << OOO_STRING_SVTOOLS_RTF_HYPHTRAIL; - rWrt.OutULong( rAttr.GetMinTrail() ) << OOO_STRING_SVTOOLS_RTF_HYPHMAX; - rWrt.OutULong( rAttr.GetMaxHyphens() ) << '}'; - } - return rWrt; -} - -static Writer& OutRTF_SwNumRule( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - if( !rRTFWrt.bOutListNumTxt ) - { - const SwNumRuleItem& rAttr = (const SwNumRuleItem&)rHt; - USHORT nId; - if( rAttr.GetValue().Len() && - USHRT_MAX != (nId = rRTFWrt.GetId( rAttr ) )) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_LS; - rWrt.OutULong( nId ); - rRTFWrt.bOutFmtAttr = TRUE; - } - } - return rWrt; -} - -static Writer& OutRTF_SwScriptSpace( Writer& rWrt, const SfxPoolItem& rHt ) -{ - if( ((const SvxScriptSpaceItem&)rHt).GetValue() ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_ASPALPHA; - ((SwRTFWriter&)rWrt).bOutFmtAttr = TRUE; - } - return rWrt; -} -static Writer& OutRTF_SwHangPunctuation( Writer& rWrt, const SfxPoolItem& rHt ) -{ - if( !((const SvxHangingPunctuationItem&)rHt).GetValue() ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_NOOVERFLOW; - ((SwRTFWriter&)rWrt).bOutFmtAttr = TRUE; - } - return rWrt; -} -static Writer& OutRTF_SwForbiddenRule( Writer& rWrt, const SfxPoolItem& rHt ) -{ - if( !((const SvxForbiddenRuleItem&)rHt).GetValue() ) - { - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_NOCWRAP; - ((SwRTFWriter&)rWrt).bOutFmtAttr = TRUE; - } - return rWrt; -} - -static Writer& OutRTF_SwFontAlign( Writer& rWrt, const SfxPoolItem& rHt ) -{ - SwRTFWriter& rRTFWrt = (SwRTFWriter&)rWrt; - const SvxParaVertAlignItem & rAttr = (const SvxParaVertAlignItem &)rHt; - const char* pStr; - switch ( rAttr.GetValue() ) - { - case SvxParaVertAlignItem::TOP: pStr = OOO_STRING_SVTOOLS_RTF_FAHANG; break; - case SvxParaVertAlignItem::BOTTOM: pStr = OOO_STRING_SVTOOLS_RTF_FAVAR; break; - case SvxParaVertAlignItem::CENTER: pStr = OOO_STRING_SVTOOLS_RTF_FACENTER; break; - case SvxParaVertAlignItem::BASELINE: pStr = OOO_STRING_SVTOOLS_RTF_FAROMAN; break; - -// case SvxParaVertAlignItem::AUTOMATIC: - default: pStr = OOO_STRING_SVTOOLS_RTF_FAAUTO; break; - } - rWrt.Strm() << pStr; - rRTFWrt.bOutFmtAttr = TRUE; - return rWrt; -} - -/* - * lege hier die Tabellen fuer die RTF-Funktions-Pointer auf - * die Ausgabe-Funktionen an. - * Es sind lokale Strukturen, die nur innerhalb der RTF-DLL - * bekannt sein muessen. - */ - -SwAttrFnTab aRTFAttrFnTab = { -/* RES_CHRATR_CASEMAP */ OutRTF_SwCaseMap, -/* RES_CHRATR_CHARSETCOLOR */ 0, -/* RES_CHRATR_COLOR */ OutRTF_SwColor, -/* RES_CHRATR_CONTOUR */ OutRTF_SwContour, -/* RES_CHRATR_CROSSEDOUT */ OutRTF_SwCrossedOut, -/* RES_CHRATR_ESCAPEMENT */ OutRTF_SwEscapement, -/* RES_CHRATR_FONT */ OutRTF_SwFont, -/* RES_CHRATR_FONTSIZE */ OutRTF_SwSize, -/* RES_CHRATR_KERNING */ 0, // NOT USED!! OutRTF_SwKerning, -/* RES_CHRATR_LANGUAGE */ OutRTF_SwLanguage, -/* RES_CHRATR_POSTURE */ OutRTF_SwPosture, -/* RES_CHRATR_PROPORTIONALFONTSIZE*/0, -/* RES_CHRATR_SHADOWED */ OutRTF_SwShadowed, -/* RES_CHRATR_UNDERLINE */ OutRTF_SwUnderline, -/* RES_CHRATR_WEIGHT */ OutRTF_SwWeight, -/* RES_CHRATR_WORDLINEMODE */ 0, // Neu: Wortweises Unter-/Durchstreichen -/* RES_CHRATR_AUTOKERN */ 0, // Neu: Automatisches Pairkerning -/* RES_CHRATR_BLINK */ 0, // Neu: Blinkender Text -/* RES_CHRATR_NOHYPHEN */ 0, // Neu: nicht trennen -/* RES_CHRATR_NOLINEBREAK */ 0, // Neu: nicht umbrechen -/* RES_CHRATR_BACKGROUND */ OutRTF_SwChrBckgrnd, // Neu: Zeichenhintergrund -/* RES_CHRATR_CJK_FONT */ OutRTF_SwFont, -/* RES_CHRATR_CJK_FONTSIZE */ OutRTF_SwSize, -/* RES_CHRATR_CJK_LANGUAGE */ OutRTF_SwLanguage, -/* RES_CHRATR_CJK_POSTURE */ OutRTF_SwPosture, -/* RES_CHRATR_CJK_WEIGHT */ OutRTF_SwWeight, -/* RES_CHRATR_CTL_FONT */ OutRTF_SwFont, -/* RES_CHRATR_CTL_FONTSIZE */ OutRTF_SwSize, -/* RES_CHRATR_CTL_LANGUAGE */ OutRTF_SwLanguage, -/* RES_CHRATR_CTL_POSTURE */ OutRTF_SwPosture, -/* RES_CHRATR_CTL_WEIGHT */ OutRTF_SwWeight, -/* RES_CHRATR_ROTATE */ OutRTF_SwCharRotate, -/* RES_CHRATR_EMPHASIS_MARK */ OutRTF_SwEmphasisMark, -/* RES_CHRATR_TWO_LINES */ OutRTF_SwTwoInOne, -/* RES_CHRATR_SCALEW */ OutRTF_SwCharScaleW, -/* RES_CHRATR_RELIEF */ OutRTF_SwCharRelief, -/* RES_CHRATR_HIDDEN */ OutRTF_SvxCharHiddenItem, -/* RES_CHRATR_OVERLINE */ OutRTF_SwOverline, -/* RES_CHRATR_DUMMY1 */ 0, -/* RES_CHRATR_DUMMY2 */ 0, - -/* RES_TXTATR_REFMARK */ 0, // NOT USED!! OutRTF_SwRefMark, -/* RES_TXTATR_TOXMARK */ 0, // NOT USED!! OutRTF_SwTOXMark, -/* RES_TXTATR_META */ 0, -/* RES_TXTATR_METAFIELD */ 0, -/* RES_TXTATR_AUTOFMT */ OutRTF_SwTxtAutoFmt, -/* RES_TXTATR_INETFMT */ OutRTF_SwTxtINetFmt, -/* RES_TXTATR_CHARFMT */ OutRTF_SwTxtCharFmt, -/* RES_TXTATR_CJK_RUBY */ OutRTF_SwTxtRuby, -/* RES_TXTATR_UNKNOWN_CONTAINER */ 0, -/* RES_TXTATR_DUMMY5 */ 0, - -/* RES_TXTATR_FIELD */ OutRTF_SwField, -/* RES_TXTATR_FLYCNT */ OutRTF_SwFlyCntnt, -/* RES_TXTATR_FTN */ OutRTF_SwFtn, -/* RES_TXTATR_DUMMY4 */ 0, -/* RES_TXTATR_DUMMY3 */ 0, -/* RES_TXTATR_DUMMY1 */ 0, // Dummy: -/* RES_TXTATR_DUMMY2 */ 0, // Dummy: - -/* RES_PARATR_LINESPACING */ OutRTF_SwLineSpacing, -/* RES_PARATR_ADJUST */ OutRTF_SwAdjust, -/* RES_PARATR_SPLIT */ OutRTF_SvxFmtSplit, -/* RES_PARATR_WIDOWS */ 0, // NOT USED!! OutRTF_SwWidows, -/* RES_PARATR_ORPHANS */ 0, // NOT USED!! OutRTF_SwOrphans, -/* RES_PARATR_TABSTOP */ OutRTF_SwTabStop, -/* RES_PARATR_HYPHENZONE*/ OutRTF_SwHypenZone, -/* RES_PARATR_DROP */ 0, -/* RES_PARATR_REGISTER */ 0, // neu: Registerhaltigkeit -/* RES_PARATR_NUMRULE */ OutRTF_SwNumRule, -/* RES_PARATR_SCRIPTSPACE */ OutRTF_SwScriptSpace, -/* RES_PARATR_HANGINGPUNCTUATION */ OutRTF_SwHangPunctuation, -/* RES_PARATR_FORBIDDEN_RULE*/ OutRTF_SwForbiddenRule, -/* RES_PARATR_VERTALIGN */ OutRTF_SwFontAlign, -/* RES_PARATR_SNAPTOGRID*/ 0, // new -/* RES_PARATR_CONNECT_TO_BORDER */ 0, // new -/* RES_PARATR_OUTLINELEVEL */ 0, // new - outlinelevel - -/* RES_PARATR_LIST_ID */ 0, // new -/* RES_PARATR_LIST_LEVEL */ 0, // new -/* RES_PARATR_LIST_ISRESTART */ 0, // new -/* RES_PARATR_LIST_RESTARTVALUE */ 0, // new -/* RES_PARATR_LIST_ISCOUNTED */ 0, // new - -/* RES_FILL_ORDER */ 0, // NOT USED!! OutRTF_SwFillOrder, -/* RES_FRM_SIZE */ OutRTF_SwFrmSize, -/* RES_PAPER_BIN */ 0, // NOT USED!! OutRTF_SwFmtPaperBin, -/* RES_LR_SPACE */ OutRTF_SwFmtLRSpace, -/* RES_UL_SPACE */ OutRTF_SwFmtULSpace, -/* RES_PAGEDESC */ 0, -/* RES_BREAK */ 0, -/* RES_CNTNT */ 0, -/* RES_HEADER */ OutRTF_SwFmtHeader, -/* RES_FOOTER */ OutRTF_SwFmtFooter, -/* RES_PRINT */ OutRTF_SwFmtPrint, -/* RES_OPAQUE */ OutRTF_SwFmtOpaque, -/* RES_PROTECT */ OutRTF_SwFmtProtect, -/* RES_SURROUND */ OutRTF_SwFmtSurround, -/* RES_VERT_ORIENT */ OutRTF_SwFmtVertOrient, -/* RES_HORI_ORIENT */ OutRTF_SwFmtHoriOrient, -/* RES_ANCHOR */ OutRTF_SwFmtAnchor, -/* RES_BACKGROUND */ OutRTF_SwFmtBackground, -/* RES_BOX */ OutRTF_SwFmtBox, -/* RES_SHADOW */ OutRTF_SwFmtShadow, -/* RES_FRMMACRO */ 0, // NOT USED!! OutRTF_SwFmtFrmMacro, -/* RES_COL */ OutRTF_SwFmtCol, -/* RES_KEEP */ OutRTF_SvxFmtKeep, -/* RES_URL */ 0, // URL -/* RES_EDIT_IN_READONLY */ 0, -/* RES_LAYOUT_SPLIT */ 0, -/* RES_FRMATR_DUMMY1 */ 0, // Dummy: -/* RES_FRMATR_DUMMY2 */ 0, // Dummy: -/* RES_AUTO_STYLE */ 0, // Dummy: -/* RES_FRMATR_DUMMY4 */ 0, // Dummy: -/* RES_FRMATR_DUMMY5 */ 0, // Dummy: -/* RES_FRMATR_DUMMY6 */ 0, // Dummy: -/* RES_FRAMEDIR*/ OutRTF_SvxFrmDir, -/* RES_FRMATR_DUMMY8 */ 0, // Dummy: -/* RES_FRMATR_DUMMY9 */ 0, // Dummy: -/* RES_FOLLOW_TEXT_FLOW */ 0, -/* RES_WRAP_INFLUENCE_ON_OBJPOS */ 0, -/* RES_FRMATR_DUMMY2 */ 0, // Dummy: -/* RES_AUTO_STYLE */ 0, // Dummy: -/* RES_FRMATR_DUMMY4 */ 0, // Dummy: -/* RES_FRMATR_DUMMY5 */ 0, // Dummy: - -/* RES_GRFATR_MIRRORGRF */ OutRTF_SwMirrorGrf, -/* RES_GRFATR_CROPGRF */ OutRTF_SwCropGrf, -/* RES_GRFATR_ROTATION */ 0, -/* RES_GRFATR_LUMINANCE */ 0, -/* RES_GRFATR_CONTRAST */ 0, -/* RES_GRFATR_CHANNELR */ 0, -/* RES_GRFATR_CHANNELG */ 0, -/* RES_GRFATR_CHANNELB */ 0, -/* RES_GRFATR_GAMMA */ 0, -/* RES_GRFATR_INVERT */ 0, -/* RES_GRFATR_TRANSPARENCY */ 0, -/* RES_GRFATR_DRWAMODE */ 0, -/* RES_GRFATR_DUMMY1 */ 0, -/* RES_GRFATR_DUMMY2 */ 0, -/* RES_GRFATR_DUMMY3 */ 0, -/* RES_GRFATR_DUMMY4 */ 0, -/* RES_GRFATR_DUMMY5 */ 0, - -/* RES_BOXATR_FORMAT */ 0, -/* RES_BOXATR_FORMULA */ 0, -/* RES_BOXATR_VALUE */ 0, - -/* RES_UNKNOWNATR_CONTAINER */ 0 -}; - -SwNodeFnTab aRTFNodeFnTab = { -/* RES_TXTNODE */ OutRTF_SwTxtNode, -/* RES_GRFNODE */ OutRTF_SwGrfNode, -/* RES_OLENODE */ OutRTF_SwOLENode -}; - -/* vi:set tabstop=4 shiftwidth=4 expandtab: */ diff --git a/sw/source/filter/rtf/rtffly.cxx b/sw/source/filter/rtf/rtffly.cxx index 260762fbf2..d1d8efcac0 100644 --- a/sw/source/filter/rtf/rtffly.cxx +++ b/sw/source/filter/rtf/rtffly.cxx @@ -61,6 +61,7 @@ #include <txtflcnt.hxx> #include <fmtflcnt.hxx> #include <fltini.hxx> +#include <unoframe.hxx> #include <deque> #include <map> #include <utility> @@ -1293,7 +1294,7 @@ void SwRTFParser::InsPicture( const String& rGrfNm, const Graphic* pGrf, aFlySet.Put(aSurroundItem); } - SwFrmFmt* pFlyFmt = pDoc->Insert( *pPam, + SwFlyFrmFmt* pFlyFmt = pDoc->Insert( *pPam, rGrfNm, aEmptyStr, // Name der Graphic !! pGrf, &aFlySet, // Attribute fuer den FlyFrm @@ -1305,6 +1306,26 @@ void SwRTFParser::InsPicture( const String& rGrfNm, const Graphic* pGrf, _SetPictureSize( *pGrfNd, pPos->nNode, (SfxItemSet&)pFlyFmt->GetAttrSet(), pPicType ); + if( pPicType ) + { + PictPropertyNameValuePairs::const_iterator aIt = pPicType->aPropertyPairs.begin(); + PictPropertyNameValuePairs::const_iterator aEnd = pPicType->aPropertyPairs.end(); + while( aIt != aEnd) + { + if( aIt->first.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM( "wzDescription") )) + { + SwXFrame::GetOrCreateSdrObject( pFlyFmt ); + pDoc->SetFlyFrmDescription( *(pFlyFmt), aIt->second ); + } + else if( aIt->first.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM( "wzName") )) + { + SwXFrame::GetOrCreateSdrObject( pFlyFmt ); + pDoc->SetFlyFrmTitle( *(pFlyFmt), aIt->second ); + } + ++aIt; + } + } + } if( pGrfAttrSet ) diff --git a/sw/source/filter/rtf/rtfnum.cxx b/sw/source/filter/rtf/rtfnum.cxx index e4702387fa..5da220f0db 100644 --- a/sw/source/filter/rtf/rtfnum.cxx +++ b/sw/source/filter/rtf/rtfnum.cxx @@ -47,7 +47,6 @@ #include <fltini.hxx> #include <swtypes.hxx> #include <swparrtf.hxx> -#include <wrtrtf.hxx> #include <ndtxt.hxx> #include <doc.hxx> #include <docary.hxx> @@ -62,9 +61,6 @@ #define RTF_NUMRULE_NAME "RTF_Num" -SV_IMPL_VARARR( SwListArr, SwListEntry ) - - void lcl_ExpandNumFmts( SwNumRule& rRule ) { // dann noch das NumFormat in alle Ebenen setzen @@ -343,7 +339,7 @@ void SwRTFParser::ReadListTable() if( 1 == nNumOpenBrakets ) { if( aEntry.nListId ) - aListArr.Insert( aEntry, aListArr.Count() ); + aListArr.push_back( aEntry ); aEntry.Clear(); } } @@ -510,7 +506,7 @@ void SwRTFParser::ReadListOverrideTable() if( aEntry.nListId && aEntry.nListNo ) { int nMatch=-1; - for( USHORT n = aListArr.Count(); n; ) + for( size_t n = aListArr.size(); n; ) { if( aListArr[ --n ].nListId == aEntry.nListId) { @@ -529,7 +525,7 @@ void SwRTFParser::ReadListOverrideTable() { aEntry.nListDocPos=aListArr[nMatch2].nListDocPos; aEntry.nListTemplateId=aListArr[nMatch2].nListTemplateId; - aListArr.Insert(aEntry, aListArr.Count()); + aListArr.push_back( aEntry ); } if(pOrigRule) aListArr[nMatch2].nListDocPos = aEntry.nListDocPos; @@ -573,7 +569,7 @@ void SwRTFParser::ReadListOverrideTable() // dann erzeugen wir mal schnell eine Kopie von der NumRule, // denn diese wird jetzt mal kurz veraendert. if( aEntry.nListId ) - for( USHORT n = 0; n < aListArr.Count(); ++n ) + for( size_t n = 0; n < aListArr.size(); ++n ) if( aListArr[ n ].nListId == aEntry.nListId ) { pRule = pDoc->GetNumRuleTbl()[ @@ -590,7 +586,7 @@ void SwRTFParser::ReadListOverrideTable() // <-- pRule->SetAutoRule( FALSE ); nNumLvl = (BYTE)-1; - aListArr.Insert( aEntry, aListArr.Count() ); + aListArr.push_back( aEntry ); break; } @@ -671,11 +667,11 @@ void SwRTFParser::ReadListOverrideTable() // now decrement all position in the listtable, which will // behind the doc-rule position - for( USHORT n = aListArr.Count(); n; ) + for( size_t n = aListArr.size(); n; ) { SwListEntry& rEntry = aListArr[ --n ]; if( rEntry.nListDocPos == nRulePos ) - aListArr.Remove( n ); + aListArr.erase( aListArr.begin()+n ); else if( rEntry.nListDocPos > nRulePos ) --rEntry.nListDocPos; } @@ -699,11 +695,11 @@ SwNumRule* SwRTFParser::GetNumRuleOfListNo( long nListNo, BOOL bRemoveFromList ) { SwNumRule* pRet = 0; SwListEntry* pEntry; - for( USHORT n = aListArr.Count(); n; ) + for( size_t n = aListArr.size(); n; ) if( ( pEntry = &aListArr[ --n ])->nListNo == nListNo ) { if( bRemoveFromList ) - aListArr.Remove( n ); + aListArr.erase( aListArr.begin()+n ); else { pEntry->bRuleUsed = TRUE; @@ -743,14 +739,14 @@ void SwRTFParser::RemoveUnusedNumRules() { SwListEntry* pEntry; SvPtrarr aDelArr; - USHORT n; - for( n = aListArr.Count(); n; ) + size_t n; + for( n = aListArr.size(); n; ) { if( !( pEntry = &aListArr[ --n ])->bRuleUsed ) { // really *NOT* used by anyone else? BOOL unused=TRUE; - for(USHORT j = 0; j < aListArr.Count(); ++j) + for(size_t j = 0; j < aListArr.size(); ++j) { if (aListArr[n].nListNo==aListArr[j].nListNo) unused&=!aListArr[j].bRuleUsed; @@ -847,7 +843,7 @@ SwNumRule *SwRTFParser::ReadNumSecLevel( int nToken ) RTL_CONSTASCII_STRINGPARAM( RTF_NUMRULE_NAME " 1" ))); SwListEntry aEntry( nListNo, 0, pDoc->MakeNumRule( sTmp )); aEntry.nListNo = nListNo; - aListArr.Insert( aEntry, aListArr.Count() ); + aListArr.push_back( aEntry ); pCurRule = pDoc->GetNumRuleTbl()[ aEntry.nListDocPos ]; // --> OD 2008-07-08 #i91400# pCurRule->SetName( pDoc->GetUniqueNumRuleName( &sTmp, FALSE ), *pDoc ); @@ -1129,332 +1125,3 @@ BOOL lcl_IsExportNumRule( const SwNumRule& rRule, BYTE* pEnd = 0 ) *pEnd = nEnd; return nLvl != nEnd; } - -void SwRTFWriter::OutRTFListTab() -{ - ByteString sOverrideList; - USHORT nId = 1, nTmplId = 1, n; - - // prepare the NodeNum to generate the NumString - SwNumberTree::tNumberVector aNumVector; - for( n = 0; n < MAXLEVEL; ++n ) - aNumVector.push_back(n); - BYTE aNumLvlPos[ MAXLEVEL ]; - - if( !pNumRuleTbl ) - BuildNumRuleTbl(); - - for( n = 0; n < pNumRuleTbl->Count(); ++n ) - { - const SwNumRule* pRule = (*pNumRuleTbl)[ n ]; - - // mit der ersten Rule wird auch die ListTable geschrieben - if( !sOverrideList.Len() ) - OutComment( *this, OOO_STRING_SVTOOLS_RTF_LISTTABLE ); - - Strm() << '{' << OOO_STRING_SVTOOLS_RTF_LIST << OOO_STRING_SVTOOLS_RTF_LISTTEMPLATEID; - OutULong( nTmplId ); - ByteString sTmp; - - if( pRule->IsContinusNum() ) - Strm() << OOO_STRING_SVTOOLS_RTF_LISTSIMPLE; - - BYTE nLvl, nEnd; - lcl_IsExportNumRule( *pRule, &nEnd ); - - for( nLvl = 0; nLvl < nEnd; ++nLvl ) - { - const SwNumFmt& rFmt = pRule->Get( nLvl ); - Strm() << sNewLine; - if( nLvl > 8 ) // RTF-kennt nur 9 Ebenen - OutComment( *this, OOO_STRING_SVTOOLS_RTF_SOUTLVL ); - - Strm() << '{' << OOO_STRING_SVTOOLS_RTF_LISTLEVEL << OOO_STRING_SVTOOLS_RTF_LEVELNFC; - - USHORT nVal = 0; - switch( rFmt.GetNumberingType() ) - { - case SVX_NUM_ROMAN_UPPER: nVal = 1; break; - case SVX_NUM_ROMAN_LOWER: nVal = 2; break; - case SVX_NUM_CHARS_UPPER_LETTER: - case SVX_NUM_CHARS_UPPER_LETTER_N: nVal = 3; break; - case SVX_NUM_CHARS_LOWER_LETTER: - case SVX_NUM_CHARS_LOWER_LETTER_N: nVal = 4; break; - - case SVX_NUM_BITMAP: - case SVX_NUM_CHAR_SPECIAL: nVal = 23; break; - } - OutLong( nVal ) << OOO_STRING_SVTOOLS_RTF_LEVELJC; - - switch( rFmt.GetNumAdjust() ) - { - case SVX_ADJUST_CENTER: nVal = 1; break; - case SVX_ADJUST_RIGHT: nVal = 2; break; - default: nVal = 0; break; - } - OutLong( nVal ) << OOO_STRING_SVTOOLS_RTF_LEVELSTARTAT; - OutLong( rFmt.GetStart() ) - << OOO_STRING_SVTOOLS_RTF_LEVELFOLLOW << "0{" << OOO_STRING_SVTOOLS_RTF_LEVELTEXT << ' '; - - BOOL bWriteBulletFont = FALSE; - memset( aNumLvlPos, 0, MAXLEVEL ); - if( SVX_NUM_CHAR_SPECIAL == rFmt.GetNumberingType() || - SVX_NUM_BITMAP == rFmt.GetNumberingType() ) - { - Strm() << "\\'01"; - ByteString sNo( ByteString::CreateFromInt32( rFmt.GetBulletChar())); - Strm() << "\\u" << sNo.GetBuffer() << " ?"; - bWriteBulletFont = TRUE; - } - else if( SVX_NUM_NUMBER_NONE == rFmt.GetNumberingType() ) - { - String sOut( rFmt.GetPrefix() ); sOut += rFmt.GetSuffix(); - if( sOut.Len() ) - { - Strm() << "\\'"; - OutHex( sOut.Len() ); - RTFOutFuncs::Out_String( Strm(), sOut, - eDefaultEncoding, bWriteHelpFmt ); - } - } - else - { - memset( aNumLvlPos, 0, MAXLEVEL ); - BYTE* pLvlPos = aNumLvlPos; - // --> OD 2005-11-18 #128056# - // correction of refactoring done by cws swnumtree: - // - the numbering string has to be restrict to the level - // currently working on. - String sNumStr( pRule->MakeNumString( aNumVector, FALSE, TRUE, nLvl )); - // <-- - - // now search the nums in the string - for( BYTE i = 0; i <= nLvl; ++i ) - { - String sSrch( String::CreateFromInt32( i )); - xub_StrLen nFnd = sNumStr.Search( sSrch ); - if( STRING_NOTFOUND != nFnd ) - { - *pLvlPos = (BYTE)(nFnd + rFmt.GetPrefix().Len() + 1 ); - ++pLvlPos; - sNumStr.SetChar( nFnd, (sal_Unicode)i ); - } - } - - Strm() << "\\'"; - OutHex( sNumStr.Len() + rFmt.GetPrefix().Len() + - rFmt.GetSuffix().Len() ); - - if( rFmt.GetPrefix().Len() ) - RTFOutFuncs::Out_String( Strm(), rFmt.GetPrefix(), - eDefaultEncoding, bWriteHelpFmt ); - - - for( xub_StrLen x = 0; x < sNumStr.Len(); ++x ) - if( sNumStr.GetChar( x ) < 0x20 || - sNumStr.GetChar( x ) > 0xFF ) - { - Strm() << "\\'"; OutHex( sNumStr.GetChar( x ) ); - } - else - Strm() << (sal_Char)sNumStr.GetChar( x ); - - if( rFmt.GetSuffix().Len() ) - RTFOutFuncs::Out_String( Strm(), rFmt.GetSuffix(), - eDefaultEncoding, bWriteHelpFmt ); - } - - // write the levelnumbers - Strm() << ";}{" << OOO_STRING_SVTOOLS_RTF_LEVELNUMBERS; - for( BYTE i = 0; i <= nLvl && aNumLvlPos[ i ]; ++i ) - { - Strm() << "\\'"; OutHex( aNumLvlPos[ i ] ); - } - Strm() << ";}"; - - if( rFmt.GetCharFmt() ) - Out_SfxItemSet( aRTFAttrFnTab, *this, - rFmt.GetCharFmt()->GetAttrSet(), TRUE ); - - if( bWriteBulletFont ) - { - Strm() << OOO_STRING_SVTOOLS_RTF_F; - const Font* pFont = rFmt.GetBulletFont(); - if( !pFont ) - // --> OD 2006-06-27 #b6440955# - pFont = &numfunc::GetDefBulletFont(); - // <-- - OutULong( GetId( *pFont )); - } - - Strm() << OOO_STRING_SVTOOLS_RTF_FI; - OutLong( rFmt.GetFirstLineOffset() ) << OOO_STRING_SVTOOLS_RTF_LI; - OutLong( rFmt.GetAbsLSpace() ); - - Strm() << '}'; - - if( nLvl > 8 ) // RTF-kennt nur 9 Ebenen - Strm() << '}'; - } - - if( !pRule->IsAutoRule() ) - { - Strm() << '{' << OOO_STRING_SVTOOLS_RTF_LISTNAME << ' '; - RTFOutFuncs::Out_String( Strm(), pRule->GetName(), eDefaultEncoding, - bWriteHelpFmt ) << ";}" ; - } - Strm() << OOO_STRING_SVTOOLS_RTF_LISTID; - OutULong( nId ) << '}' << sNewLine; - - sTmp = '{'; - ((((((( sTmp += OOO_STRING_SVTOOLS_RTF_LISTOVERRIDE ) += - OOO_STRING_SVTOOLS_RTF_LISTID ) += ByteString::CreateFromInt32( nId )) += - OOO_STRING_SVTOOLS_RTF_LISTOVERRIDECOUNT ) += '0' ) += - OOO_STRING_SVTOOLS_RTF_LS ) += ByteString::CreateFromInt32( n )) += '}'; - sOverrideList += sTmp; - - ++nId, ++nTmplId; - } - - if( sOverrideList.Len() ) - Strm() << "}{" << OOO_STRING_SVTOOLS_RTF_LISTOVERRIDETABLE - << sOverrideList.GetBuffer() << '}' << sNewLine; -} - -USHORT SwRTFWriter::GetId( const SwNumRuleItem& rItem ) const -{ - USHORT n, nId = USHRT_MAX; - if( !pNumRuleTbl ) - { - SwRTFWriter* pThis = (SwRTFWriter*)this; - pThis->BuildNumRuleTbl(); - } - const String& rNm = rItem.GetValue(); - for( n = pNumRuleTbl->Count(); n; ) - if( (*pNumRuleTbl)[ --n ]->GetName() == rNm ) - { - nId = n; - break; - } - - return nId; -} - -USHORT SwRTFWriter::GetNumRuleId( const SwNumRule& rRule ) -{ - if( !pNumRuleTbl ) - BuildNumRuleTbl(); - SwNumRulePtr pR = (SwNumRulePtr)&rRule; - return pNumRuleTbl->GetPos( pR ); -} - -void SwRTFWriter::BuildNumRuleTbl() -{ - const SwNumRuleTbl& rListTbl = pDoc->GetNumRuleTbl(); - if( !pNumRuleTbl ) - pNumRuleTbl = new SwNumRuleTbl( (BYTE)rListTbl.Count() ); - for( USHORT n = rListTbl.Count()+1; n; ) - { - SwNumRule* pRule; - --n; - if( n == rListTbl.Count() ) - pRule = (SwNumRule*)pDoc->GetOutlineNumRule(); - else - { - pRule = rListTbl[ n ]; - if( !pDoc->IsUsed( *pRule )) - continue; - } - - if( lcl_IsExportNumRule( *pRule )) - pNumRuleTbl->Insert( pRule, pNumRuleTbl->Count() ); - } -} - -BOOL SwRTFWriter::OutListNum( const SwTxtNode& rNd ) -{ - BOOL bRet = FALSE; - const SwNumRule* pRule = rNd.GetNumRule(); - - // --> OD 2008-03-18 #refactorlists# -// if( pRule && MAXLEVEL > rNd.GetActualListLevel() ) - if( pRule && rNd.IsInList() ) - // <-- - { - // --> OD 2008-03-18 #refactorlists# - ASSERT( rNd.GetActualListLevel() >= 0 && rNd.GetActualListLevel() < MAXLEVEL, - "<SwRTFWriter::OutListNum(..)> - text node does not have valid list level. Serious defect -> please inform OD" ); - // <-- - - bOutFmtAttr = FALSE; - bOutListNumTxt = TRUE; - bRet = TRUE; - - const bool bExportNumRule = USHRT_MAX != GetNumRuleId( *pRule ); - const BYTE nLvl = static_cast< BYTE >(rNd.GetActualListLevel()); - const SwNumFmt* pFmt = pRule->GetNumFmt( nLvl ); - if( !pFmt ) - pFmt = &pRule->Get( nLvl ); - - const SfxItemSet& rNdSet = rNd.GetSwAttrSet(); - - SfxItemSet aSet( *rNdSet.GetPool(), rNdSet.GetRanges() ); - aSet.SetParent( &rNdSet ); - SvxLRSpaceItem aLR( (SvxLRSpaceItem&)rNdSet.Get( RES_LR_SPACE ) ); - aLR.SetTxtLeft( aLR.GetTxtLeft() + pFmt->GetAbsLSpace() ); - - aLR.SetTxtFirstLineOfst( pFmt->GetFirstLineOffset() ); - if ( bExportNumRule ) - Strm() << '{' << OOO_STRING_SVTOOLS_RTF_LISTTEXT << OOO_STRING_SVTOOLS_RTF_PARD << OOO_STRING_SVTOOLS_RTF_PLAIN << ' '; - - aSet.Put( aLR ); - Out_SfxItemSet( aRTFAttrFnTab, *this, aSet, TRUE ); - - if( pFmt->GetCharFmt() ) - Out_SfxItemSet( aRTFAttrFnTab, *this, - pFmt->GetCharFmt()->GetAttrSet(), TRUE ); - - { - String sTxt; - if( SVX_NUM_CHAR_SPECIAL == pFmt->GetNumberingType() || SVX_NUM_BITMAP == pFmt->GetNumberingType() ) - sTxt = pFmt->GetBulletChar(); - else - sTxt = rNd.GetNumString(); - - if( bOutFmtAttr ) - { - Strm() << ' '; - bOutFmtAttr = FALSE; - } - - if (sTxt.Len()) - { - RTFOutFuncs::Out_String(Strm(), sTxt, eDefaultEncoding, - bWriteHelpFmt); - } - - if( bExportNumRule ) - { - if( OUTLINE_RULE != pRule->GetRuleType() ) - { - Strm() << OOO_STRING_SVTOOLS_RTF_TAB << '}' << OOO_STRING_SVTOOLS_RTF_ILVL; - if( nLvl > 8 ) // RTF-kennt nur 9 Ebenen - { - OutULong( 8 ); - OutComment( *this, OOO_STRING_SVTOOLS_RTF_SOUTLVL ); - OutULong( nLvl ) << '}'; - } - else - OutULong( nLvl ); - Strm() << ' '; - } - else - Strm() << OOO_STRING_SVTOOLS_RTF_TAB << '}'; - } - else if( sTxt.Len() ) - Strm() << OOO_STRING_SVTOOLS_RTF_TAB; - } - bOutListNumTxt = FALSE; - } - return bRet; -} diff --git a/sw/source/filter/rtf/rtftbl.cxx b/sw/source/filter/rtf/rtftbl.cxx index 67dcd3f797..aee78ae585 100644 --- a/sw/source/filter/rtf/rtftbl.cxx +++ b/sw/source/filter/rtf/rtftbl.cxx @@ -165,10 +165,7 @@ void SwRTFParser::ReadTable( int nToken ) enum Limits {eMAXCELLS=64000}; - SvBools aMergeBackup; - int nCount = aMergeBoxes.Count(); - for (USHORT i = 0; i < nCount; ++i) - aMergeBackup.Insert(aMergeBoxes[i], i); + SvBools aMergeBackup(aMergeBoxes); // kein TROWD aber ein TabellenToken -> zwischen TROWD und Tab.Token // waren andere Zeichen (siehe Bug 27445.rtf) @@ -177,10 +174,10 @@ void SwRTFParser::ReadTable( int nToken ) if( RTF_TROWD == nToken ) nToken = GetNextToken(); // RTF_TROWD ueberlesen - // Flags fuer die gemergten Boxen loeschen - aMergeBoxes.Remove( 0, aMergeBoxes.Count() ); - aMergeBoxes.Insert( (BOOL)FALSE, USHORT(0) ); - nAktBox = 0; + // Flag for delete merged boxes + aMergeBoxes.clear(); + aMergeBoxes.push_back( (BOOL)FALSE ); + m_nCurrentBox = 0; // wenn schon in einer Tabellen, dann splitte oder benutze // die bisherigen Boxen weiter @@ -194,11 +191,11 @@ void SwRTFParser::ReadTable( int nToken ) // very robust to avoid crashes like bug 127425 + crash reports 118743 if( pLine ) { - USHORT nTmpBox = nAktBox; + USHORT nTmpBox = m_nCurrentBox; if( nTmpBox > pLine->GetTabBoxes().Count() ) nTmpBox = pLine->GetTabBoxes().Count(); - for( USHORT n = nTmpBox; n; ) + for (USHORT n = nTmpBox; n; ) { const SwTableBox *pTmp = pLine->GetTabBoxes()[ --n ]; if( pTmp ) @@ -223,7 +220,7 @@ void SwRTFParser::ReadTable( int nToken ) sal_Int16 eVerOrient = text::VertOrientation::NONE; long nLineHeight = 0; - USHORT nBoxCnt = aMergeBoxes.Count()-1; + size_t nBoxCnt = aMergeBoxes.size()-1; SwBoxFrmFmts aBoxFmts; SwTableBoxFmt* pBoxFmt = pDoc->MakeTableBoxFmt(); SvxFrameDirection eDir = FRMDIR_HORI_LEFT_TOP; @@ -292,15 +289,16 @@ void SwRTFParser::ReadTable( int nToken ) // the first cell cannot be merged with earlier ones. if (nBoxCnt != 0) { - aMergeBoxes[ nBoxCnt ] = TRUE; + aMergeBoxes.back() = TRUE; } break; case RTF_CELLX: - if (!bTrowdRead) { + if (!bTrowdRead && (aMergeBoxes.size() < (SAL_MAX_UINT16 - 1))) + { SwTableBoxFmt* pFmt = pBoxFmt; SwTwips nSize = nTokenValue - nTblSz; - if( aMergeBoxes[ nBoxCnt ] ) + if( aMergeBoxes.back() ) { // neue Zellen lesen und noch keine Formate vorhanden, // dann benutze das der vorhergebende @@ -308,9 +306,12 @@ void SwRTFParser::ReadTable( int nToken ) { SwTableLines& rLns = pTableNode->GetTable().GetTabLines(); SwTableLine* pLine = rLns[ rLns.Count()-1 ]; - if(nAktBox!=0) - --nAktBox; - pFmt = (SwTableBoxFmt*)pLine->GetTabBoxes()[ nAktBox ]->GetFrmFmt(); + if (m_nCurrentBox != 0) + { + --m_nCurrentBox; + } + pFmt = static_cast<SwTableBoxFmt*>( + pLine->GetTabBoxes()[ m_nCurrentBox ]->GetFrmFmt()); } else pFmt = aBoxFmts[ aBoxFmts.Count()-1 ]; @@ -336,7 +337,8 @@ void SwRTFParser::ReadTable( int nToken ) nSize = COL_DFLT_WIDTH; pFmt->SetFmtAttr( SwFmtFrmSize( ATT_VAR_SIZE, nSize, 0 )); nTblSz = nTokenValue; - aMergeBoxes.Insert( (BOOL)FALSE, ++nBoxCnt ); + aMergeBoxes.push_back( (BOOL)FALSE ); + ++nBoxCnt; SvxBoxItem aBox(pFmt->GetBox()); @@ -483,7 +485,7 @@ void SwRTFParser::ReadTable( int nToken ) default: if( ( nToken & ~(0xff | RTF_TABLEDEF)) == RTF_SHADINGDEF ) { - if( aMergeBoxes[ nBoxCnt ] ) + if( aMergeBoxes.back() ) break; ReadBackgroundAttr( nToken, (SfxItemSet&)pBoxFmt->GetAttrSet(), TRUE ); @@ -491,7 +493,7 @@ void SwRTFParser::ReadTable( int nToken ) else if( ( nToken & ~(0xff | RTF_TABLEDEF) ) == RTF_BRDRDEF || IsBorderToken(nToken)) { - if( aMergeBoxes[ nBoxCnt ] ) + if( aMergeBoxes.back() ) break; SfxItemSet& rSet = (SfxItemSet&)pBoxFmt->GetAttrSet(); @@ -512,7 +514,7 @@ void SwRTFParser::ReadTable( int nToken ) if( text::VertOrientation::NONE != eVerOrient ) { - if( !aMergeBoxes[ nBoxCnt ] ) + if( !aMergeBoxes.back() ) pBoxFmt->SetFmtAttr( SwFmtVertOrient( 0, eVerOrient )); eVerOrient = text::VertOrientation::NONE; } @@ -523,13 +525,11 @@ void SwRTFParser::ReadTable( int nToken ) // das letzte temp. BoxFmt loeschen delete pBoxFmt; - // es wurde keine einzige Box erkannt - if( nAktBox == nBoxCnt || ( bReadNewCell && !pTableNode )) + // It has been recognized as not single box + if ((m_nCurrentBox == nBoxCnt) || ( bReadNewCell && !pTableNode )) { - int nC = aMergeBackup.Count(); - for (USHORT i = 0; i < nC; ++i) - aMergeBoxes.Insert(aMergeBackup[i], i); - SkipToken( -1 ); // zum Letzen gueltigen zurueck + aMergeBoxes = aMergeBackup; + SkipToken( -1 ); // go back to the last valid return; } @@ -636,7 +636,9 @@ void SwRTFParser::ReadTable( int nToken ) aBoxFmts.Remove( 0, n ); if( aBoxFmts.Count() ) // es muessen noch neue zugefuegt werden - nAktBox = n; + { + m_nCurrentBox = n; + } else // es mussen noch Boxen geloescht werden { // remove ContentIndex of other Bound @@ -746,7 +748,7 @@ void SwRTFParser::ReadTable( int nToken ) ((SfxItemSet&)pFmt->GetAttrSet()).Put( aL ); } - nAktBox = 0; + m_nCurrentBox = 0; pOldTblNd = pTableNode; { @@ -798,12 +800,14 @@ void SwRTFParser::ReadTable( int nToken ) aBoxFmts[ nStt ], // Formate fuer den TextNode der Box pColl, 0, - nAktBox + nStt, 1 ); + m_nCurrentBox + nStt, 1 ); } } if( bChkExistTbl ) - nAktBox = 0; + { + m_nCurrentBox = 0; + } maInsertedTables.InsertTable(*pTableNode, *pPam); @@ -815,7 +819,8 @@ void SwRTFParser::ReadTable( int nToken ) if (pNewLine) { SwTableBoxes &rBoxes = pNewLine->GetTabBoxes(); - if (SwTableBox* pBox = (nAktBox < rBoxes.Count() ? rBoxes[nAktBox] : 0)) + if (SwTableBox* pBox = ((m_nCurrentBox < rBoxes.Count()) + ? rBoxes[m_nCurrentBox] : 0)) { if (const SwStartNode *pStart = pBox->GetSttNd()) { @@ -861,7 +866,7 @@ void SwRTFParser::ReadTable( int nToken ) //which were intended to be inside the tablerow are now left outside //the table after the row was placed before the current insertion point SvxRTFItemStack& rAttrStk = GetAttrStack(); - for (USHORT n = 0; n < rAttrStk.Count(); ++n) + for (size_t n = 0; n < rAttrStk.size(); ++n) { SvxRTFItemStackType* pStk = rAttrStk[n]; pStk->MoveFullNode(aOldPos, aNewPos); @@ -885,16 +890,19 @@ void SwRTFParser::GotoNextBox() SwTableBoxes& rBoxes = pLine->GetTabBoxes(); SwTableBox* pBox = rBoxes[ rBoxes.Count()-1 ]; - if( ++nAktBox >= aMergeBoxes.Count() ) - nAktBox = aMergeBoxes.Count()-1; + if (++m_nCurrentBox >= aMergeBoxes.size()) + { + OSL_ENSURE(aMergeBoxes.size() < SAL_MAX_UINT16, "too many boxes?"); + m_nCurrentBox = static_cast<USHORT>(aMergeBoxes.size()-1); + } - if( !aMergeBoxes[ nAktBox ] ) + if (!aMergeBoxes[ m_nCurrentBox ]) { int bMove = TRUE; if( pBox->GetSttIdx() > pPam->GetPoint()->nNode.GetIndex() ) { USHORT nRealBox = 0; - for( USHORT nTmp = 0; nTmp < nAktBox; ++nTmp ) + for (USHORT nTmp = 0; nTmp < m_nCurrentBox; ++nTmp) if( !aMergeBoxes[ nTmp ] ) ++nRealBox; @@ -906,7 +914,8 @@ void SwRTFParser::GotoNextBox() } } - if( bMove && nAktBox + 1 == aMergeBoxes.Count() ) + if (bMove && + (static_cast<size_t>(m_nCurrentBox + 1) == aMergeBoxes.size())) // dann hinter die Tabelle pPam->Move( fnMoveForward, fnGoNode ); } @@ -972,7 +981,7 @@ void SwRTFParser::NewTblLine() ULONG nOldPos = pPam->GetPoint()->nNode.GetIndex(); pPam->GetPoint()->nNode = *pBox->GetSttNd(); pPam->Move( fnMoveForward ); - nAktBox = 0; + m_nCurrentBox = 0; // alle Nodes in den Boxen auf die "default" Vorlage setzten { @@ -1002,11 +1011,10 @@ void SwRTFParser::NewTblLine() pPam->DeleteMark(); } - // alle Attribute, die schon auf den nachfolgen zeigen auf die neue - // Box umsetzen !! + // all attributes which will be displayed in new Box SvxRTFItemStack& rAttrStk = GetAttrStack(); const SvxRTFItemStackType* pStk; - for( USHORT n = 0; n < rAttrStk.Count(); ++n ) + for( size_t n = 0; n < rAttrStk.size(); ++n ) if( ( pStk = rAttrStk[ n ])->GetSttNodeIdx() == ULONG(nOldPos) && !pStk->GetSttCnt() ) ((SvxRTFItemStackType*)pStk)->SetStartPos( SwxPosition( pPam ) ); diff --git a/sw/source/filter/rtf/swparrtf.cxx b/sw/source/filter/rtf/swparrtf.cxx index e437f2450e..e1958adcd1 100644 --- a/sw/source/filter/rtf/swparrtf.cxx +++ b/sw/source/filter/rtf/swparrtf.cxx @@ -179,6 +179,12 @@ ULONG RtfReader::Read( SwDoc &rDoc, const String& rBaseURL, SwPaM &rPam, const S return nRet; } +ULONG RtfReader::Read(SvStream* pStream, SwDoc& rDoc, const String& rBaseURL, SwPaM& rPam) +{ + pStrm = pStream; + return Read(rDoc, rBaseURL, rPam, rBaseURL); +} + SwRTFParser::SwRTFParser(SwDoc* pD, uno::Reference<document::XDocumentProperties> i_xDocProps, const SwPaM& rCrsr, SvStream& rIn, const String& rBaseURL, @@ -188,7 +194,6 @@ SwRTFParser::SwRTFParser(SwDoc* pD, maCharStyleMapper(*pD), maSegments(*this), maInsertedTables(*pD), - aMergeBoxes(0, 5), aTblFmts(0, 10), mpBookmarkStart(0), mpRedlineStack(0), @@ -205,7 +210,7 @@ SwRTFParser::SwRTFParser(SwDoc* pD, sBaseURL( rBaseURL ), nAktPageDesc(0), nAktFirstPageDesc(0), - nAktBox(0), + m_nCurrentBox(0), nInsTblRow(USHRT_MAX), nNewNumSectDef(USHRT_MAX), nRowsToRepeat(0), @@ -1370,6 +1375,7 @@ void SwRTFParser::ReadShapeObject() String shpTxt; bool bshpTxt=false; int txflTextFlow=0; + ::rtl::OUString sDescription, sName; while (level>0 && IsParserWorking()) @@ -1427,7 +1433,14 @@ void SwRTFParser::ReadShapeObject() { txflTextFlow=aToken.ToInt32(); } - + else if (sn.EqualsAscii("wzDescription")) + { + sDescription = aToken; + } + else if(sn.EqualsAscii("wzName")) + { + sName = aToken; + } } break; case RTF_PICT: @@ -1453,6 +1466,7 @@ void SwRTFParser::ReadShapeObject() } SkipToken(-1); + SdrObject* pSdrObject = 0; switch(shapeType) { case 202: /* Text Box */ @@ -1472,6 +1486,7 @@ void SwRTFParser::ReadShapeObject() const Rectangle aRect(FRound(aRange.getMinX()), FRound(aRange.getMinY()), FRound(aRange.getMaxX()), FRound(aRange.getMaxY())); SdrRectObj* pStroke = new SdrRectObj(aRect); + pSdrObject = pStroke; pStroke->SetSnapRect(aRect); pDoc->GetOrCreateDrawModel(); // create model InsertShpObject(pStroke, this->nZOrder++); @@ -1519,6 +1534,7 @@ void SwRTFParser::ReadShapeObject() aLine.append(aPointRightBottom); SdrPathObj* pStroke = new SdrPathObj(OBJ_PLIN, ::basegfx::B2DPolyPolygon(aLine)); + pSdrObject = pStroke; //pStroke->SetSnapRect(aRect); InsertShpObject(pStroke, this->nZOrder++); @@ -1539,11 +1555,17 @@ void SwRTFParser::ReadShapeObject() const Rectangle aRect(FRound(aRange.getMinX()), FRound(aRange.getMinY()), FRound(aRange.getMaxX()), FRound(aRange.getMaxY())); SdrRectObj* pStroke = new SdrGrafObj(aGrf); + pSdrObject = pStroke; pStroke->SetSnapRect(aRect); InsertShpObject(pStroke, this->nZOrder++); } } + if( pSdrObject ) + { + pSdrObject->SetDescription(sDescription); + pSdrObject->SetTitle(sName); + } } extern void sw3io_ConvertFromOldField( SwDoc& rDoc, USHORT& rWhich, @@ -1606,14 +1628,29 @@ void SwRTFParser::NextToken( int nToken ) switch( nToken ) { case RTF_FOOTNOTE: + { //We can only insert a footnote if we're not inside a footnote. e.g. //#i7713# - if (!mbIsFootnote) + + // in insert mode it's also possible to be inside of a footnote! + bool bInsertIntoFootnote = false; + if( !IsNewDoc() ) + { + SwStartNode* pSttNode = pPam->GetNode()->StartOfSectionNode(); + while(pSttNode && pSttNode->IsSectionNode()) + { + pSttNode = pSttNode->StartOfSectionNode(); + } + if( SwFootnoteStartNode == pSttNode->GetStartNodeType() ) + bInsertIntoFootnote = true; + } + if (!mbIsFootnote && !bInsertIntoFootnote) { ReadHeaderFooter( nToken ); SkipToken( -1 ); // Klammer wieder zurueck } - break; + } + break; case RTF_SWG_PRTDATA: ReadPrtData(); break; @@ -1759,7 +1796,7 @@ void SwRTFParser::NextToken( int nToken ) if (!CantUseTables()) { // aus der Line raus - nAktBox = 0; + m_nCurrentBox = 0; pTableNode = 0; // noch in der Tabelle drin? SwNodeIndex& rIdx = pPam->GetPoint()->nNode; @@ -3548,14 +3585,13 @@ void SwRTFParser::ReadHeaderFooter( int nToken, SwPageDesc* pPageDesc ) { ASSERT( RTF_FOOTNOTE == nToken || RTF_FLY_INPARA == nToken || - pPageDesc, "PageDesc fehlt" ); + pPageDesc, "PageDesc is missing" ); bool bContainsParaCache = bContainsPara; - // alle wichtigen Sachen sichern + // backup all important data SwPosition aSavePos( *pPam->GetPoint() ); - SvxRTFItemStack aSaveStack; - aSaveStack.Insert( &GetAttrStack(), 0 ); - GetAttrStack().Remove( 0, GetAttrStack().Count() ); + SvxRTFItemStack aSaveStack(GetAttrStack()); + GetAttrStack().clear(); // save the fly array - after read, all flys may be set into // the header/footer @@ -3605,7 +3641,7 @@ void SwRTFParser::ReadHeaderFooter( int nToken, SwPageDesc* pPageDesc ) // wurde an der Position ein Escapement aufgespannt, so entferne // das jetzt. Fussnoten sind bei uns immer hochgestellt. - SvxRTFItemStackTypePtr pTmp = aSaveStack.Top(); + SvxRTFItemStackTypePtr pTmp = aSaveStack.back(); if( pTmp && pTmp->GetSttNodeIdx() == pPam->GetPoint()->nNode.GetIndex() && pTmp->GetSttCnt() == nPos ) @@ -3764,8 +3800,8 @@ void SwRTFParser::ReadHeaderFooter( int nToken, SwPageDesc* pPageDesc ) else SetNewGroup( FALSE ); // { - Klammer war kein Group-Start! mbIsFootnote = bOldIsFootnote; - GetAttrStack().Insert( &aSaveStack, 0 ); - + GetAttrStack() = aSaveStack; + aFlyArr.Insert( &aSaveArray, 0 ); aSaveArray.Remove( 0, aSaveArray.Count() ); bContainsPara = bContainsParaCache; @@ -4123,12 +4159,12 @@ void SwRTFParser::DelLastNode() if( pCNd && pCNd->StartOfSectionIndex()+2 < pCNd->EndOfSectionIndex() ) { - if( GetAttrStack().Count() ) + if( !GetAttrStack().empty() ) { // Attribut Stack-Eintraege, muessen ans Ende des vorherigen // Nodes verschoben werden. BOOL bMove = FALSE; - for( USHORT n = GetAttrStack().Count(); n; ) + for( size_t n = GetAttrStack().size(); n; ) { SvxRTFItemStackType* pStkEntry = (SvxRTFItemStackType*) GetAttrStack()[ --n ]; @@ -4180,7 +4216,7 @@ void SwRTFParser::UnknownAttrToken( int nToken, SfxItemSet* pSet ) // auf die neue Box umsetzen !! SvxRTFItemStack& rAttrStk = GetAttrStack(); const SvxRTFItemStackType* pStk; - for( USHORT n = 0; n < rAttrStk.Count(); ++n ) + for( size_t n = 0; n < rAttrStk.size(); ++n ) if( ( pStk = rAttrStk[ n ])->GetSttNodeIdx() == nOldPos && !pStk->GetSttCnt() ) ((SvxRTFItemStackType*)pStk)->SetStartPos( SwxPosition( pPam ) ); diff --git a/sw/source/filter/rtf/swparrtf.hxx b/sw/source/filter/rtf/swparrtf.hxx index a5a943fa46..a547e29086 100644 --- a/sw/source/filter/rtf/swparrtf.hxx +++ b/sw/source/filter/rtf/swparrtf.hxx @@ -29,9 +29,6 @@ #ifndef _SWPARRTF_HXX #define _SWPARRTF_HXX -#ifndef __SGI_STL_MAP -#include <map> -#endif #ifndef __SGI_STL_DEQUE #include <deque> #endif @@ -47,9 +44,7 @@ #include <editeng/numitem.hxx> #include <editeng/boxitem.hxx> #include <redline.hxx> -#ifndef __SGI_STL_ALGORITHM -#include <algorithm> -#endif + #include <fltshell.hxx> // fuer den Attribut Stack #include <ndindex.hxx> #include "../inc/msfilter.hxx" @@ -81,6 +76,8 @@ struct SvxRTFPictureType; class RtfReader: public Reader { virtual ULONG Read( SwDoc &, const String& rBaseURL, SwPaM &,const String &); +public: + virtual ULONG Read( SvStream* pStrm, SwDoc &, const String& rBaseURL, SwPaM &); }; class SwNodeIdx : public SvxNodeIdx @@ -160,7 +157,7 @@ DECLARE_TABLE( SwRTFStyleTbl, SwTxtFmtColl* ) DECLARE_TABLE( SwRTFCharStyleTbl, SwCharFmt* ) typedef SwFlySave* SwFlySavePtr; SV_DECL_PTRARR_DEL( SwFlySaveArr, SwFlySavePtr, 0, 20 ) -SV_DECL_VARARR( SwListArr, SwListEntry, 0, 20 ) +typedef std::deque< SwListEntry > SwListArr; struct DocPageInformation { @@ -323,7 +320,7 @@ class SwRTFParser : public SvxRTFParser String sBaseURL; USHORT nAktPageDesc, nAktFirstPageDesc; - USHORT nAktBox; // akt. Box + USHORT m_nCurrentBox; USHORT nInsTblRow; // beim nach \row kein \pard -> neue Line anlegen USHORT nNewNumSectDef; // jeder SectionWechsel kann neue Rules definieren USHORT nRowsToRepeat; diff --git a/sw/source/filter/rtf/wrtrtf.cxx b/sw/source/filter/rtf/wrtrtf.cxx deleted file mode 100644 index 31c77c5f86..0000000000 --- a/sw/source/filter/rtf/wrtrtf.cxx +++ /dev/null @@ -1,1806 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_sw.hxx" -#include <stdlib.h> -#include <hintids.hxx> - -#include <comphelper/string.hxx> -#include <tools/stream.hxx> -#include <tools/datetime.hxx> -#include <unotools/fontcvt.hxx> -#include <rtl/tencinfo.h> -#include <svtools/rtfkeywd.hxx> -#include <svtools/rtfout.hxx> -#include <editeng/paperinf.hxx> -#include <editeng/fontitem.hxx> -#include <editeng/shaditem.hxx> -#include <editeng/brshitem.hxx> -#include <editeng/colritem.hxx> -#include <editeng/boxitem.hxx> -#include <editeng/tstpitem.hxx> -#include <editeng/ulspitem.hxx> -#include <editeng/lrspitem.hxx> -#include <editeng/frmdiritem.hxx> -#include <editeng/udlnitem.hxx> -#include <fmtpdsc.hxx> -#include <fmtcntnt.hxx> -#include <fmtfsize.hxx> -#include <fmthdft.hxx> -#include <frmatr.hxx> -#include <fmtanchr.hxx> -#include <docary.hxx> -#include <pam.hxx> -#include <doc.hxx> -#include <paratr.hxx> -#include <fldbas.hxx> -#include <ndtxt.hxx> -#include <wrtrtf.hxx> -#include <flypos.hxx> -#include <IMark.hxx> -#include <pagedesc.hxx> // fuer SwPageDesc... -#include <ftninfo.hxx> -#include <charfmt.hxx> -#include <SwStyleNameMapper.hxx> -#include <section.hxx> -#include <swtable.hxx> // fuer SwPageDesc ... -#include <swmodule.hxx> -#include <swerror.h> -#include <mdiexp.hxx> // ...Percent() -#include <statstr.hrc> // ResId fuer Statusleiste -#include <docsh.hxx> - -#include <com/sun/star/document/XDocumentProperties.hpp> -#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp> - - -#if defined(UNX) -const sal_Char SwRTFWriter::sNewLine = '\012'; -#else -const sal_Char __FAR_DATA SwRTFWriter::sNewLine[] = "\015\012"; -#endif - -SV_DECL_VARARR( RTFColorTbl, Color, 5, 8 ) -SV_IMPL_VARARR( RTFColorTbl, Color ) - - -SwRTFWriter::SwRTFWriter( const String& rFltName, const String & rBaseURL ) : - eDefaultEncoding( - rtl_getTextEncodingFromWindowsCharset( - sw::ms::rtl_TextEncodingToWinCharset(DEF_ENCODING))), - eCurrentEncoding(eDefaultEncoding) -{ - SetBaseURL( rBaseURL ); - // schreibe Win-RTF-HelpFileFmt - bWriteHelpFmt = 'W' == rFltName.GetChar( 0 ); - // schreibe nur Gliederungs Absaetze - bOutOutlineOnly = 'O' == rFltName.GetChar( 0 ); - // enable non-standard tags for cut and paste - bNonStandard = '\0' == rFltName.GetChar( 0 ); -} - - -SwRTFWriter::~SwRTFWriter() -{} - - -ULONG SwRTFWriter::WriteStream() -{ - bOutPageAttr = bOutSection = TRUE; - - bOutStyleTab = bOutTable = bOutPageDesc = bOutPageDescTbl = - bAutoAttrSet = bOutListNumTxt = bOutLeftHeadFoot = bIgnoreNextPgBreak = - bTxtAttr = bAssociated = FALSE; - - nCurScript = 1; // latin - ask the doc?? - - nCurRedline = USHRT_MAX; - if(pDoc->GetRedlineTbl().Count()) - nCurRedline = 0; - - - pCurEndPosLst = 0; - nBkmkTabPos = -1; - pAktPageDesc = 0; - pAttrSet = 0; - pFlyFmt = 0; // kein FlyFrmFormat gesetzt - - pColTbl = new RTFColorTbl; - pNumRuleTbl = 0; - - BYTE nSz = (BYTE)Min( pDoc->GetSpzFrmFmts()->Count(), USHORT(255) ); - SwPosFlyFrms aFlyPos( nSz, nSz ); - - //Abkuerzung wenn nur Gliederung ausgegeben werden soll, und keine - //Gliederungsabsaetze ausserhalb des Body stehen. - if ( bOutOutlineOnly && - pDoc->GetNodes().GetOutLineNds().Count() && - pDoc->GetNodes().GetOutLineNds()[0]->GetIndex() > - pDoc->GetNodes().GetEndOfExtras().GetIndex() ) - { - nAktFlyPos = 0; - pFlyPos = 0; - MakeHeader(); - - const SwOutlineNodes &rOutLine = pDoc->GetNodes().GetOutLineNds(); - for ( USHORT i = 0; i < rOutLine.Count(); ++i ) - { - const SwNode *pNd = pDoc->GetNodes()[*rOutLine[i]]; - ASSERT( pNd->IsCntntNode(), "Outlinenode and no CntNode!?" ); - - SwCntntNode* pCNd = (SwCntntNode*)pNd; - - // erfrage den aktuellen PageDescriptor. - const SwPageDesc* pTmp = pCNd->GetSwAttrSet().GetPageDesc().GetPageDesc(); - if( pTmp ) - pAktPageDesc = pTmp; - pCurPam->GetPoint()->nContent.Assign( pCNd, 0 ); - Out( aRTFNodeFnTab, *pCNd, *this ); - } - } - else - { - long nMaxNode = pDoc->GetNodes().Count(); - - if( bShowProgress ) - ::StartProgress( STR_STATSTR_W4WWRITE, 0, nMaxNode, pDoc->GetDocShell() ); - - // Tabelle am Doc.-Anfang beachten - { - SwTableNode * pTNd = pCurPam->GetNode()->FindTableNode(); - if( pTNd && bWriteAll ) - { - // mit dem TabellenNode anfangen !! - pCurPam->GetPoint()->nNode = *pTNd; - - if( bWriteOnlyFirstTable ) - pCurPam->GetMark()->nNode = *pTNd->EndOfSectionNode(); - } - } - - // Tabelle fuer die freifliegenden Rahmen erzeugen, aber nur wenn - // das gesamte Dokument geschrieben wird - nAktFlyPos = 0; - pDoc->GetAllFlyFmts( aFlyPos, bWriteAll ? 0 : pOrigPam ); - - // sollten nur Rahmen vorhanden sein? - // (Moeglich, wenn eine Rahmen-Selektion ins Clipboard - // gestellt wurde) - if( bWriteAll && - // keine Laenge - *pCurPam->GetPoint() == *pCurPam->GetMark() && - // Rahmen vorhanden - pDoc->GetSpzFrmFmts()->Count() && !aFlyPos.Count() && - // nur ein Node im Array - pDoc->GetNodes().GetEndOfExtras().GetIndex() + 3 == - pDoc->GetNodes().GetEndOfContent().GetIndex() && - // und genau der ist selektiert - pDoc->GetNodes().GetEndOfContent().GetIndex() - 1 == - pCurPam->GetPoint()->nNode.GetIndex() ) - { - // dann den Inhalt vom Rahmen ausgeben. - // dieser steht immer an Position 0 !! - SwFrmFmt* pFmt = (*pDoc->GetSpzFrmFmts())[ 0 ]; - const SwNodeIndex* pIdx = pFmt->GetCntnt().GetCntntIdx(); - if( pIdx ) - { - SwPosFlyFrm* pFPos = new SwPosFlyFrm( pCurPam->GetPoint()->nNode, - pFmt, aFlyPos.Count() ); - aFlyPos.Insert( pFPos ); - } - } - - pFlyPos = &aFlyPos; - - // schreibe die StyleTabelle, allgemeine Angaben,Header/Footer/Footnotes - MakeHeader(); - - Out_SwDoc( pOrigPam ); - - if( bShowProgress ) - ::EndProgress( pDoc->GetDocShell() ); - } - - Strm() << '}'; - - // loesche die Tabelle mit den freifliegenden Rahmen - for( USHORT i = aFlyPos.Count(); i > 0; ) - delete aFlyPos[ --i ]; - - pFlyPos = 0; - delete pColTbl; - if( pNumRuleTbl ) - { - // don't destroy the numrule pointers in the DTOR. - pNumRuleTbl->Remove( 0, pNumRuleTbl->Count() ); - delete pNumRuleTbl; - } - delete pRedlAuthors; - - // schreibe Win-RTF-HelpFileFmt - bOutOutlineOnly = bWriteHelpFmt = FALSE; - pAttrSet = 0; - - return 0; -} - - -void SwRTFWriter::Out_SwDoc( SwPaM* pPam ) -{ - BOOL bSaveWriteAll = bWriteAll; // sichern - // suche die naechste Bookmark-Position aus der Bookmark-Tabelle - nBkmkTabPos = bWriteAll ? FindPos_Bkmk( *pCurPam->GetPoint() ) : -1; - - // gebe alle Bereiche des Pams in das RTF-File aus. - do { - bWriteAll = bSaveWriteAll; - bFirstLine = TRUE; - - // suche den ersten am Pam-auszugebenen FlyFrame - // fehlt noch: - - while( pCurPam->GetPoint()->nNode < pCurPam->GetMark()->nNode || - (pCurPam->GetPoint()->nNode == pCurPam->GetMark()->nNode && - pCurPam->GetPoint()->nContent.GetIndex() <= pCurPam->GetMark()->nContent.GetIndex()) ) - { - SwNode& rNd = pCurPam->GetPoint()->nNode.GetNode(); - - if( &rNd == &pDoc->GetNodes().GetEndOfContent() ) - break; - - if( rNd.IsCntntNode() ) - { - SwCntntNode& rCNd = (SwCntntNode&)rNd; - - OutBreaks( rCNd.GetSwAttrSet() ); - OutFlyFrm(); - - if( !bFirstLine ) - pCurPam->GetPoint()->nContent.Assign( &rCNd, 0 ); - - if( !bOutOutlineOnly || - //( rCNd.IsTxtNode() && NO_NUMBERING != //#outline level,removed by zhaojianwei - //((SwTxtNode&)rCNd).GetTxtColl()->GetOutlineLevel() )) - ( rCNd.IsTxtNode() && //->add by zhaojianwei - ((SwTxtNode&)rCNd).GetTxtColl()->IsAssignedToListLevelOfOutlineStyle()))//<-end,zhaojianwei - Out( aRTFNodeFnTab, rCNd, *this ); - - } - else if( !bOutOutlineOnly ) - { - if (rNd.IsTableNode()) - { - bool bAllOk = false; - if (const SwTableNode *pNd = rNd.GetTableNode()) - { - if (const SwFrmFmt *pFmt = pNd->GetTable().GetFrmFmt()) - { - OutBreaks(pFmt->GetAttrSet()); - bAllOk = true; - } - OutRTF_SwTblNode(*this, *pNd); - } - ASSERT(bAllOk, "Unexpected missing properties from tables"); - } - else if( rNd.IsSectionNode() ) - { - OutBreaks( ((SwSectionNode&)rNd).GetSection().GetFmt() - ->GetAttrSet() ); - OutRTF_SwSectionNode( *this, (SwSectionNode&)rNd ); - } - else if( rNd.IsEndNode() ) - CheckEndNodeForSection( rNd ); - } - - ULONG nPos = pCurPam->GetPoint()->nNode++; // Bewegen - - if( bShowProgress ) - ::SetProgressState( nPos, pDoc->GetDocShell() ); // Wie weit ? - - /* sollen nur die Selectierten Bereiche gesichert werden, so - * duerfen nur die vollstaendigen Nodes gespeichert werde, - * d.H. der 1. und n. Node teilweise, der 2. bis n-1. Node - * vollstaendig. (vollstaendig heisst mit allen Formaten! ) - */ - bWriteAll = bSaveWriteAll || - pCurPam->GetPoint()->nNode != pCurPam->GetMark()->nNode; - bFirstLine = FALSE; - } - } while( CopyNextPam( &pPam ) ); // bis alle PaM's bearbeitet - - bWriteAll = bSaveWriteAll; // wieder auf alten Wert zurueck -} - - -// schreibe die StyleTabelle, algemeine Angaben,Header/Footer/Footnotes - - -void SwRTFWriter::MakeHeader() -{ - // baue den Vorspann wie Header, ColorTbl, FontTbl - Strm() << '{' << OOO_STRING_SVTOOLS_RTF_RTF << '1' - << OOO_STRING_SVTOOLS_RTF_ANSI; - if( bWriteAll ) - { - Strm() << OOO_STRING_SVTOOLS_RTF_DEFF; - OutULong( GetId( (SvxFontItem&)pDoc->GetAttrPool().GetDefaultItem( - RES_CHRATR_FONT ) )); - } - // JP 13.02.2001 - if this not exist, MS don't understand our ansi - // characters (0x80-0xff). - Strm() << "\\adeflang1025"; - - OutRTFFontTab(); - OutRTFColorTab(); - OutRTFStyleTab(); - OutRTFListTab(); - OutRTFRevTab(); - - Strm() << SwRTFWriter::sNewLine; // ein Trenner - - // wenn teilweise ausgegeben wird, die globalen Daten nicht speichern - if( !bWriteAll ) - return; - - // Ausgeben der Doc-Info/-Statistik - OutDocInfoStat(); - - // einige globale Daten Schreiben - { // Default-TabSize - const SvxTabStopItem& rTabs = (const SvxTabStopItem&) - pDoc->GetAttrPool().GetDefaultItem( RES_PARATR_TABSTOP ); - Strm() << OOO_STRING_SVTOOLS_RTF_DEFTAB; - OutLong( rTabs[0].GetTabPos() ); - if ( !pDoc->get(IDocumentSettingAccess::USE_VIRTUAL_DEVICE) ) - Strm() << OOO_STRING_SVTOOLS_RTF_LYTPRTMET; - } - - // PageDescriptor ausgeben (??nur wenn das gesamte Dokument??) - OutPageDesc(); - - // gebe die Groesse und die Raender der Seite aus - if( pDoc->GetPageDescCnt() ) - { - //JP 06.04.99: Bug 64361 - suche den ersten SwFmtPageDesc. Ist - // keiner gesetzt, so ist der Standard gueltig - const SwFmtPageDesc* pSttPgDsc = 0; - { - const SwNode& rSttNd = *pDoc->GetNodes()[ - pDoc->GetNodes().GetEndOfExtras().GetIndex() + 2 ]; - const SfxItemSet* pSet = 0; - - if( rSttNd.IsCntntNode() ) - pSet = &rSttNd.GetCntntNode()->GetSwAttrSet(); - else if( rSttNd.IsTableNode() ) - pSet = &rSttNd.GetTableNode()->GetTable(). - GetFrmFmt()->GetAttrSet(); - else if( rSttNd.IsSectionNode() ) - pSet = &rSttNd.GetSectionNode()->GetSection(). - GetFmt()->GetAttrSet(); - - if( pSet ) - { - USHORT nPosInDoc; - pSttPgDsc = (SwFmtPageDesc*)&pSet->Get( RES_PAGEDESC ); - if( !pSttPgDsc->GetPageDesc() ) - pSttPgDsc = 0; - else if( pDoc->FindPageDescByName( pSttPgDsc-> - GetPageDesc()->GetName(), &nPosInDoc )) - { - // FALSE wegen schliessender Klammer !! - OutComment( *this, OOO_STRING_SVTOOLS_RTF_PGDSCNO, FALSE ); - OutULong( nPosInDoc ) << '}'; - } - } - } - const SwPageDesc& rPageDesc = pSttPgDsc ? *pSttPgDsc->GetPageDesc() - : const_cast<const SwDoc *>(pDoc)->GetPageDesc( 0 ); - const SwFrmFmt &rFmtPage = rPageDesc.GetMaster(); - - { - if( rPageDesc.GetLandscape() ) - Strm() << OOO_STRING_SVTOOLS_RTF_LANDSCAPE; - - const SwFmtFrmSize& rSz = rFmtPage.GetFrmSize(); - // Clipboard-Dokument wird immer ohne Drucker angelegt, so ist - // der Std.PageDesc immer aug LONG_MAX !! Mappe dann auf DIN A4 - if( LONG_MAX == rSz.GetHeight() || LONG_MAX == rSz.GetWidth() ) - { - Strm() << OOO_STRING_SVTOOLS_RTF_PAPERH; - Size a4 = SvxPaperInfo::GetPaperSize(PAPER_A4); - OutULong( a4.Height() ) << OOO_STRING_SVTOOLS_RTF_PAPERW; - OutULong( a4.Width() ); - } - else - { - Strm() << OOO_STRING_SVTOOLS_RTF_PAPERH; - OutULong( rSz.GetHeight() ) << OOO_STRING_SVTOOLS_RTF_PAPERW; - OutULong( rSz.GetWidth() ); - } - } - - { - const SvxLRSpaceItem& rLR = rFmtPage.GetLRSpace(); - Strm() << OOO_STRING_SVTOOLS_RTF_MARGL; - OutLong( rLR.GetLeft() ) << OOO_STRING_SVTOOLS_RTF_MARGR; - OutLong( rLR.GetRight() ); - } - - { - const SvxULSpaceItem& rUL = rFmtPage.GetULSpace(); - Strm() << OOO_STRING_SVTOOLS_RTF_MARGT; - OutLong( rUL.GetUpper() ) << OOO_STRING_SVTOOLS_RTF_MARGB; - OutLong( rUL.GetLower() ); - } - - Strm() << OOO_STRING_SVTOOLS_RTF_SECTD << OOO_STRING_SVTOOLS_RTF_SBKNONE; - OutRTFPageDescription( rPageDesc, FALSE, TRUE ); // Changed bCheckForFirstPage to TRUE so headers - // following title page are correctly added - i13107 - if( pSttPgDsc ) - { - bIgnoreNextPgBreak = TRUE; - pAktPageDesc = &rPageDesc; - } - } - - - { - // schreibe die Fussnoten- und Endnoten-Info raus - const SwFtnInfo& rFtnInfo = pDoc->GetFtnInfo(); - - const char* pOut = FTNPOS_CHAPTER == rFtnInfo.ePos - ? OOO_STRING_SVTOOLS_RTF_ENDDOC - : OOO_STRING_SVTOOLS_RTF_FTNBJ; - Strm() << pOut << OOO_STRING_SVTOOLS_RTF_FTNSTART; - OutLong( rFtnInfo.nFtnOffset + 1 ); - - switch( rFtnInfo.eNum ) - { - case FTNNUM_PAGE: pOut = OOO_STRING_SVTOOLS_RTF_FTNRSTPG; break; - case FTNNUM_DOC: pOut = OOO_STRING_SVTOOLS_RTF_FTNRSTCONT; break; -// case FTNNUM_CHAPTER: - default: pOut = OOO_STRING_SVTOOLS_RTF_FTNRESTART; break; - } - Strm() << pOut; - - switch( rFtnInfo.aFmt.GetNumberingType() ) - { - case SVX_NUM_CHARS_LOWER_LETTER: - case SVX_NUM_CHARS_LOWER_LETTER_N: pOut = OOO_STRING_SVTOOLS_RTF_FTNNALC; break; - case SVX_NUM_CHARS_UPPER_LETTER: - case SVX_NUM_CHARS_UPPER_LETTER_N: pOut = OOO_STRING_SVTOOLS_RTF_FTNNAUC; break; - case SVX_NUM_ROMAN_LOWER: pOut = OOO_STRING_SVTOOLS_RTF_FTNNRLC; break; - case SVX_NUM_ROMAN_UPPER: pOut = OOO_STRING_SVTOOLS_RTF_FTNNRUC; break; - case SVX_NUM_CHAR_SPECIAL: pOut = OOO_STRING_SVTOOLS_RTF_FTNNCHI; break; -// case SVX_NUM_ARABIC: - default: pOut = OOO_STRING_SVTOOLS_RTF_FTNNAR; break; - } - Strm() << pOut; - - - const SwEndNoteInfo& rEndNoteInfo = pDoc->GetEndNoteInfo(); - - Strm() << OOO_STRING_SVTOOLS_RTF_AENDDOC << OOO_STRING_SVTOOLS_RTF_AFTNRSTCONT - << OOO_STRING_SVTOOLS_RTF_AFTNSTART; - OutLong( rEndNoteInfo.nFtnOffset + 1 ); - - switch( rEndNoteInfo.aFmt.GetNumberingType() ) - { - case SVX_NUM_CHARS_LOWER_LETTER: - case SVX_NUM_CHARS_LOWER_LETTER_N: pOut = OOO_STRING_SVTOOLS_RTF_AFTNNALC; break; - case SVX_NUM_CHARS_UPPER_LETTER: - case SVX_NUM_CHARS_UPPER_LETTER_N: pOut = OOO_STRING_SVTOOLS_RTF_AFTNNAUC; break; - case SVX_NUM_ROMAN_LOWER: pOut = OOO_STRING_SVTOOLS_RTF_AFTNNRLC; break; - case SVX_NUM_ROMAN_UPPER: pOut = OOO_STRING_SVTOOLS_RTF_AFTNNRUC; break; - case SVX_NUM_CHAR_SPECIAL: pOut = OOO_STRING_SVTOOLS_RTF_AFTNNCHI; break; -// case SVX_NUM_ARABIC: - default: pOut = OOO_STRING_SVTOOLS_RTF_AFTNNAR; break; - } - Strm() << pOut; - } - - if( pDoc->_GetDBDesc().sDataSource.getLength() ) - { - // stelle erstmal fest, ob ueberhaupt Datenbankfelder benutzt werden! - const SwFldTypes* pTypes = pDoc->GetFldTypes(); - for( USHORT nCnt = pTypes->Count(); nCnt >= INIT_FLDTYPES; ) - if( RES_DBFLD == (*pTypes)[ --nCnt ]->Which() && - (*pTypes)[ nCnt ]->GetDepends() ) - { - Strm() << '{' << OOO_STRING_SVTOOLS_RTF_FIELD; - OutComment( *this, OOO_STRING_SVTOOLS_RTF_FLDINST ) << " DATA "; - SwDBData aData = pDoc->GetDBData(); - String sOut(aData.sDataSource); - sOut += DB_DELIM; - sOut += (String)aData.sCommand; - RTFOutFuncs::Out_String( Strm(), sOut, - eDefaultEncoding, bWriteHelpFmt ); - Strm() << "}{" << OOO_STRING_SVTOOLS_RTF_FLDRSLT << " }}"; - break; - } - } - - pAttrSet = 0; - - Strm() << SwRTFWriter::sNewLine; // ein Trenner -} - -void SwRTFWriter::OutInfoDateTime( const sal_Char* i_pStr, - const util::DateTime& i_rDT ) -{ - Strm() << '{' << i_pStr << OOO_STRING_SVTOOLS_RTF_YR; - OutLong( Strm(), i_rDT.Year ) << OOO_STRING_SVTOOLS_RTF_MO; - OutLong( Strm(), i_rDT.Month ) << OOO_STRING_SVTOOLS_RTF_DY; - OutLong( Strm(), i_rDT.Day ) << OOO_STRING_SVTOOLS_RTF_HR; - OutLong( Strm(), i_rDT.Hours ) << OOO_STRING_SVTOOLS_RTF_MIN; - OutLong( Strm(), i_rDT.Minutes ) << '}'; -} - -bool CharsetSufficient(const String &rString, rtl_TextEncoding eChrSet) -{ - const sal_uInt32 nFlags = - RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR | - RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR; - rtl::OString sDummy; - rtl::OUString sStr(rString); - return sStr.convertToString(&sDummy, eChrSet, nFlags); -} - -void SwRTFWriter::OutUnicodeSafeRecord(const sal_Char *pToken, - const String &rContent) -{ - if (rContent.Len()) - { - bool bNeedUnicodeWrapper = !CharsetSufficient(rContent, eDefaultEncoding); - - if (bNeedUnicodeWrapper) - Strm() << '{' << OOO_STRING_SVTOOLS_RTF_UPR; - - Strm() << '{' << pToken << ' '; - OutRTF_AsByteString(*this, rContent, eDefaultEncoding); - Strm() << '}'; - - if (bNeedUnicodeWrapper) - { - OutComment(*this, OOO_STRING_SVTOOLS_RTF_UD); - Strm() << '{' << pToken << ' '; - RTFOutFuncs::Out_String(Strm(), rContent, eDefaultEncoding, - bWriteHelpFmt); - Strm() << "}}}"; - } - - } -} - -void SwRTFWriter::OutDocInfoStat() -{ - Strm() << '{' << OOO_STRING_SVTOOLS_RTF_INFO; - - SwDocShell *pDocShell(pDoc->GetDocShell()); - uno::Reference<document::XDocumentProperties> xDocProps; - if (pDocShell) { - uno::Reference<document::XDocumentPropertiesSupplier> xDPS( - pDocShell->GetModel(), uno::UNO_QUERY_THROW); - xDocProps.set(xDPS->getDocumentProperties()); - } - - // may be null (in case of copying) - if (xDocProps.is()) - { - OutUnicodeSafeRecord(OOO_STRING_SVTOOLS_RTF_TITLE, xDocProps->getTitle()); - OutUnicodeSafeRecord(OOO_STRING_SVTOOLS_RTF_SUBJECT, xDocProps->getSubject()); - - OutUnicodeSafeRecord(OOO_STRING_SVTOOLS_RTF_KEYWORDS, - ::comphelper::string::convertCommaSeparated(xDocProps->getKeywords())); - OutUnicodeSafeRecord(OOO_STRING_SVTOOLS_RTF_DOCCOMM, xDocProps->getDescription()); - - OutUnicodeSafeRecord(OOO_STRING_SVTOOLS_RTF_AUTHOR, xDocProps->getAuthor() ); - OutInfoDateTime(OOO_STRING_SVTOOLS_RTF_CREATIM, xDocProps->getCreationDate()); - - OutUnicodeSafeRecord(OOO_STRING_SVTOOLS_RTF_AUTHOR, xDocProps->getModifiedBy() ); - OutInfoDateTime(OOO_STRING_SVTOOLS_RTF_REVTIM, xDocProps->getModificationDate()); - - OutInfoDateTime(OOO_STRING_SVTOOLS_RTF_PRINTIM, xDocProps->getPrintDate()); - - } - - // fuer interne Zwecke - Versionsnummer rausschreiben - Strm() << '{' << OOO_STRING_SVTOOLS_RTF_COMMENT << " StarWriter}{" << OOO_STRING_SVTOOLS_RTF_VERN; - OutLong( Strm(), SUPD*10 ) << '}'; - - Strm() << '}'; -} - -static void InsColor( RTFColorTbl& rTbl, const Color& rCol ) -{ - USHORT n; - for( n = 0; n < rTbl.Count(); ++n ) - if( rTbl[n] == rCol ) - return; // schon vorhanden, zurueck - - n = COL_AUTO == rCol.GetColor() ? 0 : rTbl.Count(); - rTbl.Insert( rCol, n ); -} - -static void InsColorLine( RTFColorTbl& rTbl, const SvxBoxItem& rBox ) -{ - const SvxBorderLine* pLine = 0; - - if( rBox.GetTop() ) - InsColor( rTbl, (pLine = rBox.GetTop())->GetColor() ); - if( rBox.GetBottom() && pLine != rBox.GetBottom() ) - InsColor( rTbl, (pLine = rBox.GetBottom())->GetColor() ); - if( rBox.GetLeft() && pLine != rBox.GetLeft() ) - InsColor( rTbl, (pLine = rBox.GetLeft())->GetColor() ); - if( rBox.GetRight() && pLine != rBox.GetRight() ) - InsColor( rTbl, rBox.GetRight()->GetColor() ); -} - -void SwRTFWriter::OutRTFColorTab() -{ - ASSERT( pColTbl, "Wo ist meine Color-Tabelle?" ); - - // dann baue die ColorTabelle aus allen Attributen, die Colors - // enthalten und im Pool angemeldet sind auf. - USHORT n, nMaxItem; - const SfxItemPool& rPool = pDoc->GetAttrPool(); - - // das Charakter - Color Attribut - { - const SvxColorItem* pCol = (const SvxColorItem*)GetDfltAttr( - RES_CHRATR_COLOR ); - InsColor( *pColTbl, pCol->GetValue() ); - if( 0 != ( pCol = (const SvxColorItem*)rPool.GetPoolDefaultItem( - RES_CHRATR_COLOR ) )) - InsColor( *pColTbl, pCol->GetValue() ); - nMaxItem = rPool.GetItemCount(RES_CHRATR_COLOR); - for( n = 0; n < nMaxItem; ++n ) - { - if( 0 != (pCol = (const SvxColorItem*)rPool.GetItem( - RES_CHRATR_COLOR, n ) ) ) - InsColor( *pColTbl, pCol->GetValue() ); - } - - const SvxUnderlineItem* pUnder = (const SvxUnderlineItem*)GetDfltAttr( RES_CHRATR_UNDERLINE ); - InsColor( *pColTbl, pUnder->GetColor() ); - nMaxItem = rPool.GetItemCount(RES_CHRATR_UNDERLINE); - for( n = 0; n < nMaxItem;n++) - { - if( 0 != (pUnder = (const SvxUnderlineItem*)rPool.GetItem( RES_CHRATR_UNDERLINE, n ) ) ) - InsColor( *pColTbl, pUnder->GetColor() ); - - } - - const SvxOverlineItem* pOver = (const SvxOverlineItem*)GetDfltAttr( RES_CHRATR_OVERLINE ); - InsColor( *pColTbl, pOver->GetColor() ); - nMaxItem = rPool.GetItemCount(RES_CHRATR_OVERLINE); - for( n = 0; n < nMaxItem;n++) - { - if( 0 != (pOver = (const SvxOverlineItem*)rPool.GetItem( RES_CHRATR_OVERLINE, n ) ) ) - InsColor( *pColTbl, pOver->GetColor() ); - - } - - } - - // das Frame Hintergrund - Attribut - static const USHORT aBrushIds[] = { - RES_BACKGROUND, RES_CHRATR_BACKGROUND, 0 }; - - for( const USHORT* pIds = aBrushIds; *pIds; ++pIds ) - { - const SvxBrushItem* pBkgrd = (const SvxBrushItem*)GetDfltAttr( *pIds ); - InsColor( *pColTbl, pBkgrd->GetColor() ); - if( 0 != ( pBkgrd = (const SvxBrushItem*)rPool.GetPoolDefaultItem( - *pIds ) )) - { - InsColor( *pColTbl, pBkgrd->GetColor() ); - } - nMaxItem = rPool.GetItemCount( *pIds ); - for( n = 0; n < nMaxItem; ++n ) - if( 0 != (pBkgrd = (const SvxBrushItem*)rPool.GetItem( - *pIds , n ) )) - { - InsColor( *pColTbl, pBkgrd->GetColor() ); - } - } - - // das Frame Schatten - Attribut - { - const SvxShadowItem* pShadow = (const SvxShadowItem*)GetDfltAttr( - RES_SHADOW ); - InsColor( *pColTbl, pShadow->GetColor() ); - if( 0 != ( pShadow = (const SvxShadowItem*)rPool.GetPoolDefaultItem( - RES_SHADOW ) )) - { - InsColor( *pColTbl, pShadow->GetColor() ); - } - nMaxItem = rPool.GetItemCount(RES_SHADOW); - for( n = 0; n < nMaxItem; ++n ) - if( 0 != (pShadow = (const SvxShadowItem*)rPool.GetItem( - RES_SHADOW, n ) ) ) - { - InsColor( *pColTbl, pShadow->GetColor() ); - } - } - - // das Frame Umrandungs - Attribut - { - // Box muesste noch gemacht werden, aber default nie eine Line gesetzt! - const SvxBoxItem* pBox; - if( 0 != ( pBox = (const SvxBoxItem*)rPool.GetPoolDefaultItem( - RES_BOX ) )) - InsColorLine( *pColTbl, *pBox ); - nMaxItem = rPool.GetItemCount(RES_BOX); - for( n = 0; n < nMaxItem; ++n ) - if( 0 != (pBox = (const SvxBoxItem*)rPool.GetItem( RES_BOX, n ) )) - InsColorLine( *pColTbl, *pBox ); - } - - // und raus damit - Strm() << SwRTFWriter::sNewLine << '{' << OOO_STRING_SVTOOLS_RTF_COLORTBL; - - for( n = 0; n < pColTbl->Count(); n++ ) - { - const Color& rCol = (*pColTbl)[ n ]; - if( n || COL_AUTO != rCol.GetColor() ) - { - Strm() << OOO_STRING_SVTOOLS_RTF_RED; - OutULong( rCol.GetRed() ) << OOO_STRING_SVTOOLS_RTF_GREEN; - OutULong( rCol.GetGreen() ) << OOO_STRING_SVTOOLS_RTF_BLUE; - OutULong( rCol.GetBlue() ); - } - Strm() << ';'; - } - Strm() << '}'; -} - -bool FontCharsetSufficient(const String &rFntNm, const String &rAltNm, - rtl_TextEncoding eChrSet) -{ - bool bRet = CharsetSufficient(rFntNm, eChrSet); - if (bRet) - bRet = CharsetSufficient(rAltNm, eChrSet); - return bRet; -} - -static void _OutFont( SwRTFWriter& rWrt, const SvxFontItem& rFont, USHORT nNo ) -{ - rWrt.Strm() << '{' << OOO_STRING_SVTOOLS_RTF_F; - - const char* pStr = OOO_STRING_SVTOOLS_RTF_FNIL; - switch (rFont.GetFamily()) - { - case FAMILY_ROMAN: - pStr = OOO_STRING_SVTOOLS_RTF_FROMAN; - break; - case FAMILY_SWISS: - pStr = OOO_STRING_SVTOOLS_RTF_FSWISS; - break; - case FAMILY_MODERN: - pStr = OOO_STRING_SVTOOLS_RTF_FMODERN; - break; - case FAMILY_SCRIPT: - pStr = OOO_STRING_SVTOOLS_RTF_FSCRIPT; - break; - case FAMILY_DECORATIVE: - pStr = OOO_STRING_SVTOOLS_RTF_FDECOR; - break; - default: - break; - } - rWrt.OutULong(nNo) << pStr << OOO_STRING_SVTOOLS_RTF_FPRQ; - - USHORT nVal = 0; - switch (rFont.GetPitch()) - { - case PITCH_FIXED: - nVal = 1; - break; - case PITCH_VARIABLE: - nVal = 2; - break; - default: - nVal = 0; - break; - } - rWrt.OutULong(nVal); - - sw::util::FontMapExport aRes(rFont.GetFamilyName()); - - /* - #i10538# - In rtf the fontname is in the fontcharset, so if that isn't possible - then bump the charset up to unicode - */ - sal_uInt8 nChSet = 0; - rtl_TextEncoding eChrSet = rFont.GetCharSet(); - nChSet = sw::ms::rtl_TextEncodingToWinCharset(eChrSet); - eChrSet = rtl_getTextEncodingFromWindowsCharset(nChSet); - if (!FontCharsetSufficient(aRes.msPrimary, aRes.msSecondary, eChrSet)) - { - eChrSet = RTL_TEXTENCODING_UNICODE; - nChSet = sw::ms::rtl_TextEncodingToWinCharset(eChrSet); - eChrSet = rtl_getTextEncodingFromWindowsCharset(nChSet); - } - - rWrt.Strm() << OOO_STRING_SVTOOLS_RTF_FCHARSET; - rWrt.OutULong( nChSet ); - rWrt.Strm() << ' '; - if (aRes.HasDistinctSecondary()) - { - RTFOutFuncs::Out_Fontname(rWrt.Strm(), aRes.msPrimary, eChrSet, - rWrt.bWriteHelpFmt); - OutComment(rWrt, OOO_STRING_SVTOOLS_RTF_FALT) << ' '; - RTFOutFuncs::Out_Fontname(rWrt.Strm(), aRes.msSecondary, eChrSet, - rWrt.bWriteHelpFmt) << '}'; - } - else - { - RTFOutFuncs::Out_Fontname(rWrt.Strm(), aRes.msPrimary, eChrSet, - rWrt.bWriteHelpFmt); - } - rWrt.Strm() << ";}"; -} - -void SwRTFWriter::OutRTFFontTab() -{ - USHORT n = 0; - const SfxItemPool& rPool = pDoc->GetAttrPool(); - const SvxFontItem* pFont = (const SvxFontItem*)GetDfltAttr(RES_CHRATR_FONT); - - Strm() << SwRTFWriter::sNewLine << '{' << OOO_STRING_SVTOOLS_RTF_FONTTBL; - _OutFont( *this, *pFont, n++ ); - - pFont = (const SvxFontItem*)rPool.GetPoolDefaultItem(RES_CHRATR_FONT); - if (pFont) - _OutFont(*this, *pFont, n++); - - PutNumFmtFontsInAttrPool(); - PutCJKandCTLFontsInAttrPool(); - - USHORT nMaxItem = rPool.GetItemCount(RES_CHRATR_FONT); - for (USHORT nGet = 0; nGet < nMaxItem; ++nGet) - { - pFont = (const SvxFontItem*)rPool.GetItem(RES_CHRATR_FONT, nGet); - if (pFont) - _OutFont(*this, *pFont, n++); - } - - Strm() << '}'; -} - -void RTF_WrtRedlineAuthor::Write(Writer &rWrt) -{ - SwRTFWriter & rRTFWrt = (SwRTFWriter&)rWrt; - - rRTFWrt.Strm() << '{' << OOO_STRING_SVTOOLS_RTF_IGNORE << OOO_STRING_SVTOOLS_RTF_REVTBL << ' '; - typedef std::vector<String>::iterator myiter; - - for(std::vector<String>::iterator aIter = maAuthors.begin(); aIter != maAuthors.end(); ++aIter) - { - rRTFWrt.Strm() << '{'; - // rWrt.bWriteHelpFmt - RTFOutFuncs::Out_String( rRTFWrt.Strm(), *aIter, rRTFWrt.eDefaultEncoding, rRTFWrt.bWriteHelpFmt ) << ";}"; - } - rRTFWrt.Strm() << '}' << SwRTFWriter::sNewLine; -} - -bool SwRTFWriter::OutRTFRevTab() -{ - // Writes the revision author table - int nRevAuthors = pDoc->GetRedlineTbl().Count(); - - pRedlAuthors = new RTF_WrtRedlineAuthor; - // RTF always seems to use Unknown as the default first entry - String sUnknown(RTL_CONSTASCII_STRINGPARAM("Unknown")); - pRedlAuthors->AddName(sUnknown); - - if (nRevAuthors < 1) - return false; - - // pull out all the redlines and make a vector of all the author names - for( USHORT i = 0; i < pDoc->GetRedlineTbl().Count(); ++i ) - { - const SwRedline* pRedl = pDoc->GetRedlineTbl()[ i ]; - const String sAuthor = SW_MOD()->GetRedlineAuthor( pRedl->GetAuthor() ); - pRedlAuthors->AddName(sAuthor); - } - - pRedlAuthors->Write(*this); - return true; -} - -//Takashi Ono for CJK -const rtl::OUString SwRTFWriter::XlateFmtName( const rtl::OUString &rName, SwGetPoolIdFromName eFlags ) -{ -#define RES_NONE RES_POOLCOLL_DOC_END - - static const RES_POOL_COLLFMT_TYPE aArr[]={ - RES_POOLCOLL_STANDARD, RES_POOLCOLL_HEADLINE1, RES_POOLCOLL_HEADLINE2, - RES_POOLCOLL_HEADLINE3, RES_POOLCOLL_HEADLINE4, RES_POOLCOLL_HEADLINE5, - RES_POOLCOLL_HEADLINE6, RES_POOLCOLL_HEADLINE7, RES_POOLCOLL_HEADLINE8, - RES_POOLCOLL_HEADLINE9, - - RES_POOLCOLL_TOX_IDX1, RES_POOLCOLL_TOX_IDX2, RES_POOLCOLL_TOX_IDX3, - RES_NONE, RES_NONE, RES_NONE, RES_NONE, RES_NONE, RES_NONE, - RES_POOLCOLL_TOX_CNTNT1, - - RES_POOLCOLL_TOX_CNTNT2, RES_POOLCOLL_TOX_CNTNT3, RES_POOLCOLL_TOX_CNTNT4, - RES_POOLCOLL_TOX_CNTNT5, RES_POOLCOLL_TOX_CNTNT6, RES_POOLCOLL_TOX_CNTNT7, - RES_POOLCOLL_TOX_CNTNT8, RES_POOLCOLL_TOX_CNTNT9, - RES_POOLCOLL_TEXT_IDENT, RES_POOLCOLL_FOOTNOTE, - - RES_NONE, RES_POOLCOLL_HEADER, RES_POOLCOLL_FOOTER, RES_POOLCOLL_TOX_IDXH, - RES_POOLCOLL_LABEL, RES_POOLCOLL_TOX_ILLUSH, RES_POOLCOLL_JAKETADRESS, RES_POOLCOLL_SENDADRESS, - RES_NONE, RES_NONE, - - RES_NONE, RES_NONE, RES_NONE, RES_POOLCOLL_ENDNOTE, RES_POOLCOLL_TOX_AUTHORITIESH, RES_NONE, RES_NONE, - RES_POOLCOLL_BUL_LEVEL1, RES_POOLCOLL_BUL_LEVEL1, RES_POOLCOLL_NUM_LEVEL1, - - RES_POOLCOLL_BUL_LEVEL2, RES_POOLCOLL_BUL_LEVEL3, RES_POOLCOLL_BUL_LEVEL4, RES_POOLCOLL_BUL_LEVEL5, - RES_POOLCOLL_BUL_LEVEL2, RES_POOLCOLL_BUL_LEVEL3, RES_POOLCOLL_BUL_LEVEL4, RES_POOLCOLL_BUL_LEVEL5, - RES_POOLCOLL_NUM_LEVEL2, RES_POOLCOLL_NUM_LEVEL3, RES_POOLCOLL_NUM_LEVEL4, RES_POOLCOLL_NUM_LEVEL5, - - RES_POOLCOLL_DOC_TITEL, RES_NONE, RES_POOLCOLL_SIGNATURE, RES_NONE, - RES_POOLCOLL_TEXT, RES_POOLCOLL_TEXT_MOVE, RES_NONE, RES_NONE, - - RES_NONE, RES_NONE, RES_NONE, RES_NONE, RES_POOLCOLL_DOC_SUBTITEL }; - - static const sal_Char *stiName[] = { - "Normal", "heading 1", "heading 2", - "heading 3", "heading 4", "heading 5", - "heading 6", "heading 7", "heading 8", - "heading 9", - - "index 1", "index 2", "index 3", - "index 4", "index 5", "index 6", - "index 7", "index 8", "index 9", - - "toc 1", "toc 2", "toc 3", - "toc 4", "toc 5", "toc 6", - "toc 7", "toc 8", "toc 9", - "Normal Indent", "footnote text", - - "annotation text", "header", "footer", "index heading", - "caption", "table of figures", "envelope address", "envelope return", - "footnote reference", "annotation reference", - - "line number", "page number", "endnote reference", "endnote text", "table of authorities", "macro", "toa heading", - "List", "List Bullet", "List Number", - - "List 2", "List 3", "List 4", "List 5", - "List Bullet 2", "List Bullet 3", "List Bullet 4", "List Bullet 5", - "List Number 2", "List Number 3", "List Number 4", "List Number 5", - - "Title", "Closing", "Signature", "Default Paragraph Font", - "Body Text", "Body Text Indent", "List Continue", - - "List Continue 2", "List Continue 3", "List Continue 4", "List Continue 5", "Message Header", "Subtitle"}; - - ASSERT( ( sizeof( aArr ) / sizeof( RES_POOL_COLLFMT_TYPE ) == 75 ), - "Style-UEbersetzungstabelle hat falsche Groesse" ); - ASSERT( ( sizeof( stiName ) / sizeof( *stiName ) == 75 ), - "Style-UEbersetzungstabelle hat falsche Groesse" ); - - sal_uInt16 idcol = ::SwStyleNameMapper::GetPoolIdFromUIName( rName, eFlags ); - if (idcol==USHRT_MAX) //#i40770# user defined style names get lost - return rName; - - for (size_t i = 0; i < sizeof( aArr ) / sizeof( *aArr ); i++) - { - if ( idcol == aArr[i] ) - { - return rtl::OUString::createFromAscii(stiName[i]); - } - } - return ::SwStyleNameMapper::GetProgName( idcol, String() ); -} - -void SwRTFWriter::OutRTFStyleTab() -{ - USHORT n; - - // das 0-Style ist das Default, wird nie ausgegeben !! - USHORT nArrLen = pDoc->GetTxtFmtColls()->Count(); - if( nArrLen <= 1 && pDoc->GetCharFmts()->Count() <= 1 ) - return; - - bOutStyleTab = TRUE; - Strm() << SwRTFWriter::sNewLine << '{' << OOO_STRING_SVTOOLS_RTF_STYLESHEET; - - // das Default-TextStyle wird nicht mit ausgegeben !! - for( n = 1; n < nArrLen; ++n ) - { - const SwTxtFmtColl* pColl = (*pDoc->GetTxtFmtColls())[ n ]; - pAttrSet = &pColl->GetAttrSet(); - - Strm() << '{'; - // gebe Attribute aus - OutRTF_SwFmt( *this, *pColl ); - - if( pColl->DerivedFrom() ) - // suche die Id vom "Parent" Format - for( USHORT nBasedOn=1; nBasedOn < nArrLen; nBasedOn++) - if( (*pDoc->GetTxtFmtColls())[ nBasedOn ] == - pColl->DerivedFrom() ) - { - // die Ableitung vom Format - Strm() << OOO_STRING_SVTOOLS_RTF_SBASEDON; - OutULong( nBasedOn ); - break; - } - - if( pColl == &pColl->GetNextTxtFmtColl() ) - { - Strm() << OOO_STRING_SVTOOLS_RTF_SNEXT; - OutULong( n ); - } - else - // suche die Id vom "Naechsten" Format - for( USHORT nNext=1; nNext < nArrLen; nNext++) - if( (*pDoc->GetTxtFmtColls())[ nNext ] == - &pColl->GetNextTxtFmtColl() ) - { - // die Ableitung vom Format - Strm() << OOO_STRING_SVTOOLS_RTF_SNEXT; - OutULong( nNext ); - break; - } - - //if( NO_NUMBERING != pColl->GetOutlineLevel() )//#outline level,zhaojianwei - if(pColl->IsAssignedToListLevelOfOutlineStyle())//<-end,zhaojianwei - { - Strm() << '{' << OOO_STRING_SVTOOLS_RTF_IGNORE << OOO_STRING_SVTOOLS_RTF_SOUTLVL; - //OutULong( pColl->GetOutlineLevel() ) << '}';//#outline level,zhaojianwei - OutULong( pColl->GetAssignedOutlineStyleLevel() ) << '}';//<-end,zhaojianwei - } - - Strm() << ' '; - RTFOutFuncs::Out_String( Strm(), XlateFmtName( pColl->GetName(), nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL ), eDefaultEncoding, - bWriteHelpFmt ) << ";}" << SwRTFWriter::sNewLine; - } - - USHORT nChrArrLen = pDoc->GetCharFmts()->Count(); - for( n = 1; n < nChrArrLen; ++n ) - { - const SwCharFmt* pFmt = (*pDoc->GetCharFmts())[ n ]; - pAttrSet = &pFmt->GetAttrSet(); - - Strm() << '{'; - // gebe Attribute aus - OutRTF_SwFmt( *this, *pFmt ); - - if( pFmt->DerivedFrom() ) - // suche die Id vom "Parent" Format - for( USHORT nBasedOn=1; nBasedOn < nChrArrLen; nBasedOn++) - if( (*pDoc->GetCharFmts())[ nBasedOn ] == - pFmt->DerivedFrom() ) - { - // die Ableitung vom Format - Strm() << OOO_STRING_SVTOOLS_RTF_SBASEDON; - OutULong( nArrLen + nBasedOn ); - break; - } - - Strm() << ' '; - RTFOutFuncs::Out_String( Strm(), XlateFmtName( pFmt->GetName(), nsSwGetPoolIdFromName::GET_POOLID_CHRFMT ), eDefaultEncoding, - bWriteHelpFmt ) << ";}" << SwRTFWriter::sNewLine; - } - - Strm() << '}'; - bOutStyleTab = FALSE; -} - -bool ExportAsInline(const SwFlyFrmFmt& rFlyFrmFmt) -{ - //if not an inline element (hack in our limitations here as to only - //graphics like this!!!! - return rFlyFrmFmt.GetAnchor().GetAnchorId() == FLY_AS_CHAR; -} - -void SwRTFWriter::OutRTFFlyFrms(const SwFlyFrmFmt& rFlyFrmFmt) -{ - // ein FlyFrame wurde erkannt, gebe erstmal den aus - - // Hole vom Node und vom letzten Node die Position in der Section - const SwFmtCntnt& rFlyCntnt = rFlyFrmFmt.GetCntnt(); - - ULONG nStt = rFlyCntnt.GetCntntIdx()->GetIndex()+1; - ULONG nEnd = pDoc->GetNodes()[ nStt - 1 ]->EndOfSectionIndex(); - - if( nStt >= nEnd ) // kein Bereich, also kein gueltiger Node - return; - - if (!ExportAsInline(rFlyFrmFmt)) - Strm() << SwRTFWriter::sNewLine << OOO_STRING_SVTOOLS_RTF_PARD << OOO_STRING_SVTOOLS_RTF_PLAIN; - //If we are only exporting an inline graphic/object then we - //only need the its pFlyFmt for the duration of exporting it - //for floating objects its a little more complex at the moment - const SwFlyFrmFmt *pOldFlyFmt = pFlyFmt; - pFlyFmt = &rFlyFrmFmt; - - { - RTFSaveData aSaveData( *this, nStt, nEnd ); - Out_SwDoc( pCurPam ); - } - - if (!ExportAsInline(rFlyFrmFmt)) - Strm() << OOO_STRING_SVTOOLS_RTF_PARD << SwRTFWriter::sNewLine; -//#i46098#: else - pFlyFmt = pOldFlyFmt; -} - - - -void SwRTFWriter::OutRedline( xub_StrLen nCntntPos ) -{ - const SwRedline *pCurRedline = 0; - USHORT nCount = pDoc->GetRedlineTbl().Count(); - - if (nCurRedline < nCount) - { - pCurRedline = pDoc->GetRedlineTbl()[nCurRedline]; - if(pCurRedline) - { - const SwPosition* pStartPos = pCurRedline->Start(); - const SwPosition* pEndPos = pStartPos == pCurRedline->GetPoint() - ? pCurRedline->GetMark() - : pCurRedline->GetPoint(); - - USHORT nStart = pStartPos->nContent.GetIndex(); - USHORT nEnd = pEndPos->nContent.GetIndex(); - - ULONG nCurPam = pCurPam->GetPoint()->nNode.GetIndex(); - ULONG nStartIndex = pStartPos->nNode.GetIndex(); - ULONG nEndIndex = pEndPos->nNode.GetIndex(); - const String& rStr = pCurPam->GetNode()->GetTxtNode()->GetTxt(); - xub_StrLen nEnde = rStr.Len(); - - bool bSpanRedline = (nCurPam >= nStartIndex) && (nCurPam <= nEndIndex) && (nStartIndex != nEndIndex); - - if ((bSpanRedline && nCntntPos == 0) || - (nStartIndex == nCurPam && nStart == nCntntPos)) - { - // We are at the start of a redline just need to find out which type - Strm() << '{'; - if(pCurRedline->GetType() == nsRedlineType_t::REDLINE_INSERT) - { - Strm() << OOO_STRING_SVTOOLS_RTF_REVISED; - Strm() << OOO_STRING_SVTOOLS_RTF_REVAUTH; - String sName = SW_MOD()->GetRedlineAuthor(pCurRedline->GetAuthor()); - OutLong( pRedlAuthors->AddName(sName) ); - Strm() << OOO_STRING_SVTOOLS_RTF_REVDTTM; - OutLong( sw::ms::DateTime2DTTM(pCurRedline->GetTimeStamp()) ); - Strm() << ' '; - } - else if(pCurRedline->GetType() == nsRedlineType_t::REDLINE_DELETE) - { - Strm() << OOO_STRING_SVTOOLS_RTF_DELETED; - Strm() << OOO_STRING_SVTOOLS_RTF_REVAUTHDEL; - String sDelName = SW_MOD()->GetRedlineAuthor(pCurRedline->GetAuthor()); - OutLong( pRedlAuthors->AddName(sDelName) ); - Strm() << OOO_STRING_SVTOOLS_RTF_REVDTTMDEL; - OutLong( sw::ms::DateTime2DTTM(pCurRedline->GetTimeStamp()) ); - Strm() << ' '; - } - } - - // this is either then of the end of the node or the end of the redline - // time to close off this one - if( (bSpanRedline && nCntntPos == nEnde) || - (nEndIndex == nCurPam && nEnd == nCntntPos) ) - { - Strm() << '}'; - } - - // We have come to the end of a redline move to the next one - // and use resursion to see if another redline starts here - if (nEndIndex == nCurPam && nEnd == nCntntPos) - { - nCurRedline++; - OutRedline(nCntntPos); - } - } - } -} - -void SwRTFWriter::OutBookmarks( xub_StrLen nCntntPos) -{ - IDocumentMarkAccess* const pMarkAccess = pDoc->getIDocumentMarkAccess(); - if (-1 == nBkmkTabPos) - return; - - const ::sw::mark::IMark* pBookmark = (pMarkAccess->getMarksBegin() + nBkmkTabPos)->get(); - if(!pBookmark) - return; - - const SwPosition* pStartPos = &pBookmark->GetMarkStart(); - const SwPosition* pEndPos = &pBookmark->GetMarkEnd(); - - ASSERT(pStartPos && pEndPos, "Impossible"); - if (!(pStartPos && pEndPos)) - return; - - if (pStartPos->nNode.GetIndex() == pCurPam->GetPoint()->nNode.GetIndex() && - pStartPos->nContent.GetIndex() == nCntntPos) - { - // zur Zeit umspannt das SwBookmark keinen Bereich also kann - // es hier vollstaendig ausgegeben werden. - - // erst die SWG spezifischen Daten: - const ::sw::mark::IBookmark* const pAsBookmark = dynamic_cast< const ::sw::mark::IBookmark* >(pBookmark); - if(pAsBookmark && (pAsBookmark->GetShortName().getLength() || pAsBookmark->GetKeyCode().GetCode())) - { - OutComment( *this, OOO_STRING_SVTOOLS_RTF_BKMKKEY ); - OutULong( ( pAsBookmark->GetKeyCode().GetCode() | - pAsBookmark->GetKeyCode().GetModifier() )); - if( !pAsBookmark->GetShortName().getLength() ) - Strm() << " " ; - else - { - Strm() << ' '; - OutRTF_AsByteString( *this, pAsBookmark->GetShortName(), eDefaultEncoding ); - } - Strm() << '}'; - } - OutComment( *this, OOO_STRING_SVTOOLS_RTF_BKMKSTART ) << ' '; - RTFOutFuncs::Out_String( Strm(), pBookmark->GetName(), - eDefaultEncoding, bWriteHelpFmt ) << '}'; - } - - if (pEndPos->nNode.GetIndex() == pCurPam->GetPoint()->nNode.GetIndex() && - pEndPos->nContent.GetIndex() == nCntntPos) - { - // zur Zeit umspannt das SwBookmark keinen Bereich also kann - // es hier vollstaendig ausgegeben werden. - - // erst die SWG spezifischen Daten: - const ::sw::mark::IBookmark* const pAsBookmark = dynamic_cast< const ::sw::mark::IBookmark* >(pBookmark); - if(pAsBookmark && (pAsBookmark->GetShortName().getLength() || pAsBookmark->GetKeyCode().GetCode())) - { - OutComment( *this, OOO_STRING_SVTOOLS_RTF_BKMKKEY ); - OutULong( ( pAsBookmark->GetKeyCode().GetCode() | - pAsBookmark->GetKeyCode().GetModifier() )); - if( !pAsBookmark->GetShortName().getLength() ) - Strm() << " " ; - else - { - Strm() << ' '; - OutRTF_AsByteString( *this, pAsBookmark->GetShortName(), eDefaultEncoding ); - } - Strm() << '}'; - } - OutComment( *this, OOO_STRING_SVTOOLS_RTF_BKMKEND ) << ' '; - - { - ::rtl::OUString aEmpty; - ::rtl::OUString & rBookmarkName = aEmpty; - - if (pAsBookmark) - rBookmarkName = pAsBookmark->GetName(); - - RTFOutFuncs::Out_String( Strm(), rBookmarkName, - eDefaultEncoding, bWriteHelpFmt ) << '}'; - } - - if(++nBkmkTabPos >= pMarkAccess->getMarksCount()) - nBkmkTabPos = -1; - else - pBookmark = (pMarkAccess->getMarksBegin() + nBkmkTabPos)->get(); - } -} - -void SwRTFWriter::OutFlyFrm() -{ - USHORT n; - - if( !pFlyPos ) - return; - - // gebe alle freifliegenden Rahmen die sich auf den akt. Absatz - // und evt. auf das aktuelle Zeichen beziehen, aus. - - // suche nach dem Anfang der FlyFrames - for( n = 0; n < pFlyPos->Count() && - (*pFlyPos)[n]->GetNdIndex().GetIndex() < - pCurPam->GetPoint()->nNode.GetIndex(); ++n ) - ; - if( n < pFlyPos->Count() ) - while( n < pFlyPos->Count() && - pCurPam->GetPoint()->nNode.GetIndex() == - (*pFlyPos)[n]->GetNdIndex().GetIndex() ) - { - // den Array-Iterator weiterschalten, damit nicht doppelt - // ausgegeben wird !! - OutRTFFlyFrms( (const SwFlyFrmFmt&)(*pFlyPos)[n++]->GetFmt() ); - } -} - - -USHORT SwRTFWriter::GetId( const Color& rColor ) const -{ - ASSERT( pColTbl, "Wo ist meine Color-Tabelle?" ); - for( USHORT n = 0; n < pColTbl->Count(); n++ ) - if( rColor == (*pColTbl)[ n ] ) - return n; - - ASSERT( FALSE, "Color nicht in der Tabelle" ); - return 0; -} - -USHORT SwRTFWriter::GetId( const SvxFontItem& rFont ) const -{ - const SfxItemPool& rPool = pDoc->GetAttrPool(); - const SvxFontItem* pFont = (const SvxFontItem*)GetDfltAttr( RES_CHRATR_FONT ); - if( rFont == *pFont ) - return 0; - - USHORT n = 1; - if( 0 != ( pFont = (const SvxFontItem*)rPool.GetPoolDefaultItem( - RES_CHRATR_FONT ))) - { - if( rFont == *pFont ) - return 1; - ++n; - } - - USHORT nMaxItem = rPool.GetItemCount( RES_CHRATR_FONT ); - for( USHORT nGet = 0; nGet < nMaxItem; ++nGet ) - if( 0 != (pFont = (const SvxFontItem*)rPool.GetItem( - RES_CHRATR_FONT, nGet )) ) - { - if( rFont == *pFont ) - return n; - ++n; - } - - ASSERT( FALSE, "Font nicht in der Tabelle" ); - return 0; -} - -USHORT SwRTFWriter::GetId( const Font& rFont ) const -{ - return GetId( SvxFontItem( rFont.GetFamily(), rFont.GetName(), - rFont.GetStyleName(), rFont.GetPitch(), - rFont.GetCharSet(), - RES_CHRATR_FONT ) ); -} - -USHORT SwRTFWriter::GetId( const SwTxtFmtColl& rColl ) const -{ - // suche das angegebene Format - const SvPtrarr & rArr = *pDoc->GetTxtFmtColls(); - for( USHORT n = 0; n < rArr.Count(); n++ ) - if( (SwTxtFmtColl*)rArr[ n ] == &rColl ) - return n; - ASSERT( FALSE, "TextCollection nicht in der Tabelle" ); - return 0; -} - -USHORT SwRTFWriter::GetId( const SwCharFmt& rFmt ) const -{ - // suche das angegebene Format - const SvPtrarr & rArr = *pDoc->GetCharFmts(); - for( USHORT n = 0; n < rArr.Count(); n++ ) - if( (SwCharFmt*)rArr[ n ] == &rFmt ) - return n + pDoc->GetTxtFmtColls()->Count(); - ASSERT( FALSE, "CharDFFormat nicht in der Tabelle" ); - return 0; -} - -void SwRTFWriter::OutPageDesc() -{ - // Ausgabe der Page-Descriptoren - USHORT nSize = pDoc->GetPageDescCnt(); - if( !nSize ) - return; - - Strm() << SwRTFWriter::sNewLine; // ein Trenner - bOutPageDesc = bOutPageDescTbl = TRUE; - OutComment( *this, OOO_STRING_SVTOOLS_RTF_PGDSCTBL ); - for( USHORT n = 0; n < nSize; ++n ) - { - const SwPageDesc& rPageDesc = - const_cast<const SwDoc*>(pDoc)->GetPageDesc( n ); - - Strm() << SwRTFWriter::sNewLine << '{' << OOO_STRING_SVTOOLS_RTF_PGDSC; - OutULong( n ) << OOO_STRING_SVTOOLS_RTF_PGDSCUSE; - OutULong( rPageDesc.ReadUseOn() ); - - OutRTFPageDescription( rPageDesc, FALSE, FALSE ); - - // suche den Folge-PageDescriptor: - USHORT i = nSize; - while( i ) - if( rPageDesc.GetFollow() == - &const_cast<const SwDoc *>(pDoc)->GetPageDesc( --i ) ) - break; - Strm() << OOO_STRING_SVTOOLS_RTF_PGDSCNXT; - OutULong( i ) << ' '; - RTFOutFuncs::Out_String( Strm(), XlateFmtName( rPageDesc.GetName(), nsSwGetPoolIdFromName::GET_POOLID_PAGEDESC ), eDefaultEncoding, - bWriteHelpFmt ) << ";}"; - } - Strm() << '}' << SwRTFWriter::sNewLine; - bOutPageDesc = bOutPageDescTbl = FALSE; -} - -void SwRTFWriter::OutRTFBorder(const SvxBorderLine* aLine, const USHORT nSpace ) -{ - // M.M. This function writes out border lines in RTF similar to what - // WW8_BRC SwWW8Writer::TranslateBorderLine does in the winword filter - // Eventually it would be nice if all this functionality was in the one place - int nDistance = aLine->GetDistance(); - int nOutWidth = aLine->GetOutWidth(); - int nInWidth = aLine->GetInWidth(); - int nWidth = aLine->GetOutWidth(); - - if(nDistance == 0) // Single Line - Strm() << OOO_STRING_SVTOOLS_RTF_BRDRS; - else // Double Line - { - if(nOutWidth == nInWidth) - Strm() << OOO_STRING_SVTOOLS_RTF_BRDRDB; - else if (nOutWidth > nInWidth) - Strm() << OOO_STRING_SVTOOLS_RTF_BRDRTNTHSG; - else if (nOutWidth < nInWidth) - Strm() << OOO_STRING_SVTOOLS_RTF_BRDRTHTNSG; - } - Strm() << OOO_STRING_SVTOOLS_RTF_BRDRW; - OutULong(nWidth); - - Strm() << OOO_STRING_SVTOOLS_RTF_BRSP; - OutULong(nSpace); -} - -void SwRTFWriter::OutRTFBorders(SvxBoxItem aBox) -{ - const SvxBorderLine *pLine = aBox.GetTop(); - if(pLine) - { - Strm() << OOO_STRING_SVTOOLS_RTF_PGBRDRT; - OutRTFBorder(pLine, aBox.GetDistance(BOX_LINE_TOP)); - } - - pLine = aBox.GetBottom(); - if(pLine) - { - Strm() << OOO_STRING_SVTOOLS_RTF_PGBRDRB; - OutRTFBorder(pLine, aBox.GetDistance(BOX_LINE_BOTTOM)); - } - - pLine = aBox.GetRight(); - if(pLine) - { - Strm() << OOO_STRING_SVTOOLS_RTF_PGBRDRR; - OutRTFBorder(pLine, aBox.GetDistance(BOX_LINE_LEFT)); - } - - pLine = aBox.GetLeft(); - if(pLine) - { - Strm() << OOO_STRING_SVTOOLS_RTF_PGBRDRL; - OutRTFBorder(pLine, aBox.GetDistance(BOX_LINE_RIGHT)); - } -} - -void SwRTFWriter::OutRTFPageDescription( const SwPageDesc& rPgDsc, - BOOL bWriteReset, - BOOL bCheckForFirstPage ) -{ - // jetzt noch den Teil fuer alle anderen Applikationen: - const SwPageDesc *pSave = pAktPageDesc; - bool bOldOut = bOutPageDesc; - bool bOldHDFT = bOutLeftHeadFoot; - - // falls es einen Follow gibt, - pAktPageDesc = &rPgDsc; - if( bCheckForFirstPage && pAktPageDesc->GetFollow() && - pAktPageDesc->GetFollow() != pAktPageDesc ) - pAktPageDesc = pAktPageDesc->GetFollow(); - - bOutPageDesc = TRUE; - bOutLeftHeadFoot = FALSE; - - if( bWriteReset ) - { - if( bFirstLine && bWriteAll && - pCurPam->GetPoint()->nNode == pOrigPam->Start()->nNode ) - Strm() << OOO_STRING_SVTOOLS_RTF_SECTD << OOO_STRING_SVTOOLS_RTF_SBKNONE; - else - Strm() << OOO_STRING_SVTOOLS_RTF_SECT << OOO_STRING_SVTOOLS_RTF_SECTD; - } - - if( pAktPageDesc->GetLandscape() ) - Strm() << OOO_STRING_SVTOOLS_RTF_LNDSCPSXN; - - const SwFmt *pFmt = &pAktPageDesc->GetMaster(); //GetLeft(); - OutRTF_SwFmt( *this, *pFmt ); - - SvxBoxItem aBox = pFmt->GetAttrSet().GetBox(); - OutRTFBorders(pFmt->GetAttrSet().GetBox()); - - // falls es gesharte Heaer/Footer gibt, so gebe diese auch noch aus - if ( - (nsUseOnPage::PD_MIRROR & pAktPageDesc->GetUseOn()) && - (!pAktPageDesc->IsFooterShared() || !pAktPageDesc->IsHeaderShared()) - ) - { - bOutLeftHeadFoot = TRUE; - const SfxPoolItem* pHt; - if( !pAktPageDesc->IsHeaderShared() && - SFX_ITEM_SET == pAktPageDesc->GetLeft().GetAttrSet(). - GetItemState( RES_HEADER, FALSE, &pHt )) - OutRTF_SwFmtHeader( *this, *pHt ); - - if( !pAktPageDesc->IsFooterShared() && - SFX_ITEM_SET == pAktPageDesc->GetLeft().GetAttrSet(). - GetItemState( RES_FOOTER, FALSE, &pHt )) - OutRTF_SwFmtFooter( *this, *pHt ); - bOutLeftHeadFoot = FALSE; - } - - if( pAktPageDesc != &rPgDsc ) - { - pAktPageDesc = &rPgDsc; - Strm() << OOO_STRING_SVTOOLS_RTF_TITLEPG; - - // die Header/Footer der 1. Seite ausgeben - const SfxPoolItem* pHt; - if( SFX_ITEM_SET == pAktPageDesc->GetMaster().GetAttrSet(). - GetItemState( RES_HEADER, FALSE, &pHt )) - OutRTF_SwFmtHeader( *this, *pHt ); - - if( SFX_ITEM_SET == pAktPageDesc->GetMaster().GetAttrSet(). - GetItemState( RES_FOOTER, FALSE, &pHt )) - OutRTF_SwFmtFooter( *this, *pHt ); - } - - pAktPageDesc = pSave; - bOutPageDesc = bOldOut; - bOutLeftHeadFoot = bOldHDFT; -} - -BOOL SwRTFWriter::OutBreaks( const SfxItemSet& rSet ) -{ - // dann nie Seitenumbrueche ausgeben - BOOL bPgDscWrite = FALSE; - - if( !bOutOutlineOnly && bOutPageAttr && !bIgnoreNextPgBreak) - { - const SfxPoolItem *pItem; - if( SFX_ITEM_SET == rSet.GetItemState( RES_PAGEDESC, TRUE, &pItem ) - && ((SwFmtPageDesc*)pItem)->GetPageDesc() ) - { - const SwFmtPageDesc& rPgDsc = *(SwFmtPageDesc*)pItem; - for( USHORT nPos = pDoc->GetPageDescCnt(); nPos; ) - if( &const_cast<const SwDoc *>(pDoc) - ->GetPageDesc( --nPos ) == rPgDsc.GetPageDesc() ) - { - pAktPageDesc = ((SwFmtPageDesc*)pItem)->GetPageDesc(); - // FALSE wegen schliessender Klammer !! - OutComment( *this, OOO_STRING_SVTOOLS_RTF_PGDSCNO, FALSE ); - OutULong( nPos ) << '}'; - - // nicht weiter, in Styles gibts keine SectionControls !! - if( !bOutStyleTab ) - OutRTFPageDescription( *rPgDsc.GetPageDesc(), - TRUE, TRUE ); - bPgDscWrite = TRUE; - break; - } - } - else if( SFX_ITEM_SET == rSet.GetItemState( RES_BREAK, TRUE, &pItem ) ) - { - const SvxFmtBreakItem &rBreak = *(SvxFmtBreakItem*)pItem; - if( bWriteHelpFmt ) - { - if( SVX_BREAK_PAGE_BEFORE == rBreak.GetBreak() || - SVX_BREAK_PAGE_AFTER == rBreak.GetBreak() || - SVX_BREAK_PAGE_BOTH == rBreak.GetBreak() ) - { - bOutFmtAttr = true; - Strm() << OOO_STRING_SVTOOLS_RTF_PAGE; - } - } - else - { - switch( rBreak.GetBreak() ) - { - case SVX_BREAK_COLUMN_BEFORE: - case SVX_BREAK_COLUMN_AFTER: - case SVX_BREAK_COLUMN_BOTH: - break; - case SVX_BREAK_PAGE_BEFORE: - bOutFmtAttr = true; - Strm() << OOO_STRING_SVTOOLS_RTF_PAGE; - break; - case SVX_BREAK_PAGE_AFTER: - OutComment(*this, OOO_STRING_SVTOOLS_RTF_PGBRK, false) << "0}"; - break; - case SVX_BREAK_PAGE_BOTH: - OutComment(*this, OOO_STRING_SVTOOLS_RTF_PGBRK, false) << "1}"; - break; - default: - break; - } - } - } - } - bIgnoreNextPgBreak = false; - return bPgDscWrite; -} - - -void SwRTFWriter::CheckEndNodeForSection( const SwNode& rNd ) -{ - const SwSectionNode* pSectNd = rNd.StartOfSectionNode()->GetSectionNode(); - if( pSectNd /*&& CONTENT_SECTION == pSectNd->GetSection().GetType()*/ ) - { - const SwSectionFmt* pSectFmt = pSectNd->GetSection().GetFmt(); - - // diese Section hatte den akt. Abschnitt bestimmt - // wer bestimmt den nachsten?? - SwNodeIndex aIdx( rNd, 1 ); - pSectNd = aIdx.GetNode().GetSectionNode(); - if( !( ( pSectNd || (aIdx.GetNode().IsEndNode() && - 0 != ( pSectNd = aIdx.GetNode().StartOfSectionNode()->GetSectionNode() )) ) - /*&& CONTENT_SECTION == pSectNd->GetSection().GetType()*/ )) - { - // wer bestimmt denn nun den neuen Abschnitt? - // PageDesc oder eine uebergeordnete Section? - SwSection* pParent = pSectFmt->GetParentSection(); -// while( pParent /*&& CONTENT_SECTION != pParent->GetType()*/ ) -// pParent = pParent->GetParent(); - - if( pParent /*&& CONTENT_SECTION == pParent->GetType()*/ ) - OutRTF_SwSectionNode( *this, *pParent-> - GetFmt()->GetSectionNode( TRUE ) ); - else - { - if (! bOutPageDesc) - { - Strm() << OOO_STRING_SVTOOLS_RTF_SECT << OOO_STRING_SVTOOLS_RTF_SECTD << OOO_STRING_SVTOOLS_RTF_SBKNONE; - OutRTFPageDescription( ( pAktPageDesc - ? *pAktPageDesc - : const_cast<const SwDoc *>(pDoc) - ->GetPageDesc(0) ), - FALSE, TRUE ); - Strm() << SwRTFWriter::sNewLine; - } - } - } - // else - // weiter machen, der naechste definiert den neuen Abschnitt - } -} - -// Struktur speichert die aktuellen Daten des Writers zwischen, um -// einen anderen Dokument-Teil auszugeben, wie z.B. Header/Footer -RTFSaveData::RTFSaveData( SwRTFWriter& rWriter, ULONG nStt, ULONG nEnd ) - : rWrt( rWriter ), - pOldPam( rWrt.pCurPam ), pOldEnd( rWrt.GetEndPaM() ), - pOldFlyFmt( rWrt.pFlyFmt ), pOldPageDesc( rWrt.pAktPageDesc ), - pOldAttrSet( rWrt.GetAttrSet() ) -{ - bOldWriteAll = rWrt.bWriteAll; - bOldOutTable = rWrt.bOutTable; - bOldOutPageAttr = rWrt.bOutPageAttr; - bOldAutoAttrSet = rWrt.bAutoAttrSet; - bOldOutSection = rWrt.bOutSection; - - rWrt.pCurPam = rWrt.NewSwPaM( *rWrt.pDoc, nStt, nEnd ); - - // Tabelle in Sonderbereichen erkennen - if( nStt != rWrt.pCurPam->GetMark()->nNode.GetIndex() && - rWrt.pDoc->GetNodes()[ nStt ]->IsTableNode() ) - rWrt.pCurPam->GetMark()->nNode = nStt; - - rWrt.SetEndPaM( rWrt.pCurPam ); - rWrt.pCurPam->Exchange( ); - rWrt.bWriteAll = TRUE; - rWrt.bOutTable = FALSE; - rWrt.bOutPageAttr = FALSE; - rWrt.SetAttrSet( 0 ); - rWrt.bAutoAttrSet = FALSE; - rWrt.bOutSection = FALSE; -} - - -RTFSaveData::~RTFSaveData() -{ - delete rWrt.pCurPam; // Pam wieder loeschen - - rWrt.pCurPam = pOldPam; - rWrt.SetEndPaM( pOldEnd ); - rWrt.bWriteAll = bOldWriteAll; - rWrt.bOutTable = bOldOutTable; - rWrt.pFlyFmt = pOldFlyFmt; - rWrt.pAktPageDesc = pOldPageDesc; - rWrt.SetAttrSet( pOldAttrSet ); - rWrt.bAutoAttrSet = bOldAutoAttrSet; - rWrt.bOutPageAttr = bOldOutPageAttr; - rWrt.bOutSection = bOldOutSection; -} - -extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL ExportRTF( const String& rFltName, const String& rBaseURL, WriterRef& xRet ) -{ - xRet = new SwRTFWriter( rFltName, rBaseURL ); -} - -short SwRTFWriter::GetCurrentPageDirection() const -{ - const SwFrmFmt &rFmt = pAktPageDesc - ? pAktPageDesc->GetMaster() - : const_cast<const SwDoc *>(pDoc) - ->GetPageDesc(0).GetMaster(); - const SvxFrameDirectionItem* pItem = &rFmt.GetFrmDir(); - - if (!pItem) - { - pItem = (const SvxFrameDirectionItem*) - &pDoc->GetAttrPool().GetDefaultItem(RES_FRAMEDIR); - } - return pItem->GetValue(); -} - -short SwRTFWriter::TrueFrameDirection(const SwFrmFmt &rFlyFmt) const -{ - const SwFrmFmt *pFlyFmt2 = &rFlyFmt; - const SvxFrameDirectionItem* pItem = 0; - while (pFlyFmt2) - { - pItem = &pFlyFmt2->GetFrmDir(); - if (FRMDIR_ENVIRONMENT == pItem->GetValue()) - { - pItem = 0; - const SwFmtAnchor* pAnchor = &pFlyFmt2->GetAnchor(); - if ((FLY_AT_PAGE != pAnchor->GetAnchorId()) && - pAnchor->GetCntntAnchor() ) - { - pFlyFmt2 = pAnchor->GetCntntAnchor()->nNode. - GetNode().GetFlyFmt(); - } - else - pFlyFmt2 = 0; - } - else - pFlyFmt2 = 0; - } - - short nRet; - if (pItem) - nRet = pItem->GetValue(); - else - nRet = GetCurrentPageDirection(); - - ASSERT(nRet != FRMDIR_ENVIRONMENT, "leaving with environment direction"); - return nRet; -} - -/* vi:set tabstop=4 shiftwidth=4 expandtab: */ diff --git a/sw/source/filter/rtf/wrtrtf.hxx b/sw/source/filter/rtf/wrtrtf.hxx deleted file mode 100644 index 1c51a21dcf..0000000000 --- a/sw/source/filter/rtf/wrtrtf.hxx +++ /dev/null @@ -1,253 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef _WRTRTF_HXX -#define _WRTRTF_HXX - -#include <shellio.hxx> -#include <wrt_fn.hxx> -#include "../inc/msfilter.hxx" - -#include <com/sun/star/util/DateTime.hpp> - -// einige Forward Deklarationen -class Color; -class Font; -class SvPtrarr; -class RTFColorTbl; -class SwFmt; -class SwFlyFrmFmt; -class SwPosFlyFrms; -class SwPageDesc; -class SwTableNode; -class SwTxtFmtColl; -class SwNumRule; -class SwNumRuleTbl; -class DateTime; -class RTFEndPosLst; -class SvxBorderLine; - -extern SwAttrFnTab aRTFAttrFnTab; -extern SwNodeFnTab aRTFNodeFnTab; - -// the default text encoding for the export, if it doesn't fit unicode will -// be used -#define DEF_ENCODING RTL_TEXTENCODING_ASCII_US - - -class RTF_WrtRedlineAuthor : public sw::util::WrtRedlineAuthor -{ - public: - virtual void Write(Writer &rWrt); -}; - -// der RTF-Writer - -class SwRTFWriter : public Writer -{ - friend class RTFEndPosLst; - - SvPtrarr* pFontRemoveLst; - RTFColorTbl* pColTbl; - SwPosFlyFrms* pFlyPos; // Pointer auf die aktuelle "FlyFrmTabelle" - RTFEndPosLst* pCurEndPosLst; - const SfxItemSet* pAttrSet; // akt. Format/Collection vom Node - // fuer den Zugriff auf einige Attribute - // z.B. Font-Size, LR-Space,.. - SwNumRuleTbl* pNumRuleTbl; // list of all exported numrules - RTF_WrtRedlineAuthor *pRedlAuthors; - - USHORT nAktFlyPos; // Index auf das naechste "FlyFrmFmt" - void OutRTFColorTab(); - void OutRTFFontTab(); - const rtl::OUString XlateFmtName( const rtl::OUString &rName, SwGetPoolIdFromName eFlags ); - void OutRTFStyleTab(); - void OutRTFListTab(); - bool OutRTFRevTab(); - - void MakeHeader(); - void OutUnicodeSafeRecord(const sal_Char *pToken, - const String &rContent); - void OutDocInfoStat(); - void OutInfoDateTime( const sal_Char*, - const ::com::sun::star::util::DateTime& ); - void CheckEndNodeForSection( const SwNode& rNd ); - - void BuildNumRuleTbl(); - - - -public: - // --- public Member -------------------------------------------------- - - USHORT nCurRedline; - - - const SwFlyFrmFmt* pFlyFmt; // liegt der Node in einem FlyFrame, - // ist das Format gesetzt, sonst 0 - const SwPageDesc* pAktPageDesc; // aktuell gesetzter PageDesc. - sal_Int32 nBkmkTabPos; // akt. Position in der Bookmark-Tabelle - USHORT nCurScript; // actual scripttype - rtl_TextEncoding eDefaultEncoding; - rtl_TextEncoding eCurrentEncoding; - -#if defined(UNX) - static const sal_Char sNewLine; // nur \012 oder \015 -#else - static const sal_Char __FAR_DATA sNewLine[]; // \015\012 -#endif - - - BOOL bFirstLine : 1; // wird die 1. Zeile ausgegeben ? - BOOL bOutFmtAttr : 1; // TRUE: beim Schreiben eines Formates - // existierte mindestens ein Attribut - BOOL bRTFFlySyntax : 1; // gebe nur original RTFSyntax aus - // (nur fuer die fliegenden Rahmen) - BOOL bOutPageDesc: 1; // gebe einen PageDescriptor aus - BOOL bOutPageDescTbl: 1; // gebe die PageDescriptor-Tabelle aus - BOOL bOutTable : 1; // gebe eine Tabelle aus - BOOL bTxtAttr : 1; // werden TextAttribute ausgegeben ? - BOOL bWriteHelpFmt : 1; // schreibe Win-RTF-HelpFileFmt - BOOL bOutStyleTab : 1; // gebe die StyleSheet-Tabelle aus - BOOL bOutPageAttr : 1; // PageDescAttribut ausgeben? - BOOL bAutoAttrSet : 1; // TRUE: pAttrSet ist harte Attributierung - // FALSE: pAttrSet ist vom Format/Collection - BOOL bOutOutlineOnly : 1; // TRUE: nur Gliederungs-Absaetze schreiben - BOOL bOutListNumTxt : 1; // TRUE: der ListNumText wird ausgegeben - BOOL bOutLeftHeadFoot : 1; // gebe vom PageDesc. den linkten - // Header/Footer aus - BOOL bOutSection : 1; // TRUE: Section PageDesc ausgeben - BOOL bIgnoreNextPgBreak : 1; // TRUE: naechsten PageDesc/Break ignorieren - BOOL bAssociated : 1; // use associated tokens - - BOOL bNonStandard : 1; // use non-standard tags (for cut and paste) - - // --- public Methoden ------------------------------------------------ - - SwRTFWriter( const String& rFilterName, const String& rBaseURL ); - virtual ~SwRTFWriter(); - virtual ULONG WriteStream(); - - void Out_SwDoc( SwPaM* ); // schreibe den makierten Bereich - - // gebe die evt. an der akt. Position stehenden FlyFrame aus. - void OutFlyFrm(); - void OutRTFFlyFrms( const SwFlyFrmFmt& ); - // gebe alle an der Position stehenden Bookmarks aus - void OutBookmarks( xub_StrLen nCntntPos ); - // gebe die PageDesc-Daten im normalen RTF-Format aus - void OutRTFPageDescription( const SwPageDesc&, BOOL , BOOL ); - void OutRTFBorders( SvxBoxItem aBox ); - void OutRTFBorder( const SvxBorderLine* aLine, const USHORT nSpace ); - BOOL OutBreaks( const SfxItemSet& rSet ); - void OutRedline( xub_StrLen nCntntPos ); - - // gebe die PageDescriptoren aus - USHORT GetId( const Color& ) const; - USHORT GetId( const SvxFontItem& ) const; - USHORT GetId( const Font& ) const; - USHORT GetId( const SwTxtFmtColl& ) const; - USHORT GetId( const SwCharFmt& ) const; - USHORT GetId( const SwNumRuleItem& rItem ) const; - - void OutPageDesc(); - - BOOL OutListNum( const SwTxtNode& rNd ); - USHORT GetNumRuleId( const SwNumRule& rRule ); - - // fuer RTFSaveData - SwPaM* GetEndPaM() { return pOrigPam; } - void SetEndPaM( SwPaM* pPam ) { pOrigPam = pPam; } - - const SfxPoolItem& GetItem( USHORT nWhich ) const; - - const SfxItemSet* GetAttrSet() const { return pAttrSet; } - void SetAttrSet( const SfxItemSet* p ) { pAttrSet = p; } - - const RTFEndPosLst* GetEndPosLst() const { return pCurEndPosLst; } - - void SetAssociatedFlag( BOOL b ) { bAssociated = b; } - BOOL IsAssociatedFlag() const { return bAssociated; } - - void SetCurrScriptType( USHORT n ) { nCurScript = n; } - USHORT GetCurrScriptType() const { return nCurScript; } - - short TrueFrameDirection(const SwFrmFmt &rFlyFmt) const; - short GetCurrentPageDirection() const; -}; - - -// Struktur speichert die aktuellen Daten des Writers zwischen, um -// einen anderen Dokument-Teil auszugeben, wie z.B. Header/Footer -// Mit den beiden USHORTs im CTOR wird ein neuer PaM erzeugt und auf -// die Position im Dokument gesetzt. -// Im Destructor werden alle Daten wieder restauriert und der angelegte -// Pam wieder geloescht. - -struct RTFSaveData -{ - SwRTFWriter& rWrt; - SwPaM* pOldPam, *pOldEnd; - const SwFlyFrmFmt* pOldFlyFmt; - const SwPageDesc* pOldPageDesc; - const SfxItemSet* pOldAttrSet; // akt. Attribute vom Node - - BOOL bOldWriteAll : 1; - BOOL bOldOutTable : 1; - BOOL bOldOutPageAttr : 1; - BOOL bOldAutoAttrSet : 1; - BOOL bOldOutSection : 1; - - RTFSaveData( SwRTFWriter&, ULONG nStt, ULONG nEnd ); - ~RTFSaveData(); -}; - - -// einige Funktions-Deklarationen -Writer& OutRTF_AsByteString( Writer& rWrt, const String& rStr, rtl_TextEncoding eEncoding); -Writer& OutRTF_SwFmt( Writer& rWrt, const SwFmt& ); -Writer& OutRTF_SwTblNode(Writer& , const SwTableNode&); -Writer& OutRTF_SwSectionNode( Writer& , SwSectionNode & ); - - -// Augabe von RTF-Bitmaps (steht im File "wrtpict.cxx") -//struct SvxRTFPictureType; -//class Bitmap; -//USHORT WriteRTFPict( const SwPictureType&, Bitmap&, SvStream& ); - -// Ausagbe von Footer-/Headers -Writer& OutRTF_SwFmtHeader( Writer& , const SfxPoolItem& ); -Writer& OutRTF_SwFmtFooter( Writer& , const SfxPoolItem& ); - -// Kommentar und zusaetzlichen String ausgeben -SvStream& OutComment( Writer& rWrt, const sal_Char* pStr ); - // zusaetzlich das bOutFmtAttr-Flag manipulieren -SvStream& OutComment( Writer& rWrt, const sal_Char* pStr, BOOL bSetFlag ); -bool ExportAsInline(const SwFlyFrmFmt& rFlyFrmFmt); - -#endif // _WRTRTF_HXX - - diff --git a/sw/source/filter/writer/writer.cxx b/sw/source/filter/writer/writer.cxx index 8e7f67997c..03c07448bd 100644 --- a/sw/source/filter/writer/writer.cxx +++ b/sw/source/filter/writer/writer.cxx @@ -487,9 +487,9 @@ void Writer::_AddFontItems( SfxItemPool& rPool, USHORT nW ) if( 0 != ( pFont = (const SvxFontItem*)rPool.GetPoolDefaultItem( nW )) ) _AddFontItem( rPool, *pFont ); - USHORT nMaxItem = rPool.GetItemCount( nW ); - for( USHORT nGet = 0; nGet < nMaxItem; ++nGet ) - if( 0 != (pFont = (const SvxFontItem*)rPool.GetItem( nW, nGet )) ) + sal_uInt32 nMaxItem = rPool.GetItemCount2( nW ); + for( sal_uInt32 nGet = 0; nGet < nMaxItem; ++nGet ) + if( 0 != (pFont = (const SvxFontItem*)rPool.GetItem2( nW, nGet )) ) _AddFontItem( rPool, *pFont ); } diff --git a/sw/source/filter/ww8/README-rtf.txt b/sw/source/filter/ww8/README-rtf.txt new file mode 100644 index 0000000000..2ae4872311 --- /dev/null +++ b/sw/source/filter/ww8/README-rtf.txt @@ -0,0 +1,227 @@ + +--------------------------------------------------------------------- + +Summary of new features in RtfExport + +--------------------------------------------------------------------- + +Miklos Vajna + +<vmiklos@frugalware.org> +--------------------------------------------------------------------- + +Table of Contents + +1. Introduction + + 1.1. Terminology + 1.2. General + +2. List if fixed bugs +3. List of new features + + 3.1. Nested tables + 3.2. Character properties + 3.3. Sections + 3.4. Graphics + 3.5. Bookmarks + 3.6. Fields + 3.7. Drawing + 3.8. Form fields + 3.9. OLE objects + +4. Changes in the source code outside RTF + + +--------------------------------------------------------------------- + +1. Introduction + +--------------------------------------------------------------------- + +The biggest difference is that the new exporter is an UNO component, +and it?s based on the MSWord base classes, the vision here is that +this way much less code can achieve the same set of features, +reducing the amount of duplicated code. + + +1.1. Terminology + +-------------- + + * The "MSO OK, OOo KO" and similar abbreviations describe if the + given new feature is supported by the OOo RTF importer or it can + be tested using Microsoft Office. + * RtfExport refers to the new UNO-based exporter, RtfWriter refers + to the old built-in one. + + +1.2. General + +-------------- + +RtfWriter sometimes created documents where the first { is closed in +the middle of the document. MSO ignores this problem, but OOo stops +parsing the rest of the document if this happens, in other words +everything after such a bug is ignored. This can be reproduced by for +example parprops.odt, but it?s triggered in several other cases as +well. RtfExport has no automatic prevention for this, either - but +during development I primarily test the output with OOo, so hopefully +the bug will pop up less frequently. + + +--------------------------------------------------------------------- + +2. List if fixed bugs + +--------------------------------------------------------------------- + + * http://www.openoffice.org/issues/show_bug.cgi?id=51469 postit + fields + * http://www.openoffice.org/issues/show_bug.cgi?id=66619 page + margins + * http://www.openoffice.org/issues/show_bug.cgi?id=69856 page + numbers + * http://www.openoffice.org/issues/show_bug.cgi?id=81569 { and } in + document title + * http://www.openoffice.org/issues/show_bug.cgi?id=84703 redlines + * http://www.openoffice.org/issues/show_bug.cgi?id=91166 russian + chars + * http://www.openoffice.org/issues/show_bug.cgi?id=92673 bookmarks + across tables + * http://www.openoffice.org/issues/show_bug.cgi?id=100507 ole + object export + * http://www.openoffice.org/issues/show_bug.cgi?id=103993 same as # + 81569 just for doc comments + * http://www.openoffice.org/issues/show_bug.cgi?id=106677 + listoverride index starts at zero + * http://www.openoffice.org/issues/show_bug.cgi?id=38344 enhanced + character space + + +--------------------------------------------------------------------- + +3. List of new features + +--------------------------------------------------------------------- + + +3.1. Nested tables + +-------------- + +This was new in Word2000 and it?s now supported by RtfExport (MSO OK, +OOo KO) + + +3.2. Character properties + +-------------- + +The followings are now supported: + + * blinking (MSO OK, OOo KO) + * expanded spacing (MSO OK, OOo OK) + * pair kerning (MSO OK, OOo OK) + + +3.3. Sections + +-------------- + +RtfExport writes: + + * column breaks (MSO OK, OOo OK) + * special breaks (when the next page should be an odd or an even + page; MSO OK, OOo KO) + * the write-protected property of sections is experted properly + (MSO OK, OOo KO) + * better page numbers (inherited type from page styles, restarts; + MSO OK, OOo KO) + * line numbering (MSO OK, OOo KO) + + +3.4. Graphics + +-------------- + +PNG graphics are exported in WMF format as well, so that not only MSO +and OOo can display graphics from the output document, but Wordpad as +well. + + +3.5. Bookmarks + +-------------- + +Implicit bookmarks like reference to a footnote did not work in OOo +(one got an Error: Reference source not found message when opening +the result), this now works as expected. (MSO OK - the importer +previously autocorrected this as well, OO OK) + + +3.6. Fields + +-------------- + + * Table of contents is now written as a field, so it?s properly + read-only (MSO OK, OOo KO) + * Postit comments are now exported. (MSO OK, OOo KO) + + +3.7. Drawing + +-------------- + +Drawing objects for Word 97 through Word 2007 (shapes) are now +implemented: + + * basic shapes (rectangle, ellipse, etc.) + * lines, including free-form ones + * texts, including vertical ones and their (paragraph and + character) formatting + +(MSO OK, OOo KO) + + +3.8. Form fields + +-------------- + +All types supported by the RTF format are exported, namely: + + * text boxes + * check boxes + * list boxes + +(MSO OK, OOo KO) + + +3.9. OLE objects + +-------------- + +Their result is exported as a picture - RtfWriter did not export +anything. (MSO OK, OOo OK) + +For math, the native data is written as well, so you can edit the +object, too. (MSO OK, OOo KO) + + +--------------------------------------------------------------------- + +4. Changes in the source code outside RTF + +--------------------------------------------------------------------- + +These are refactorings I needed for RTF. To my best knowledge they do +not change the output of other filters from a user?s point of view. + + * The code that splits runs according to bookmarks is moved from + DocxExport to MSWordExportBase + * WW8_SdrAttrIter has been refactored to MSWord_SdrAttrIter + * MSWordExportBase::SubstituteBullet can avoid replacing bullets + * wwFontHelper::InitFontTable can really load all fonts + * An obvious typo in WW8AttributeOutput::CharTwoLines has been + fixed + diff --git a/sw/source/filter/ww8/docxexport.cxx b/sw/source/filter/ww8/docxexport.cxx index 8752ff2f3c..16fc06ec4f 100644 --- a/sw/source/filter/ww8/docxexport.cxx +++ b/sw/source/filter/ww8/docxexport.cxx @@ -116,131 +116,6 @@ bool DocxExport::CollapseScriptsforWordOk( USHORT nScript, USHORT nWhich ) return true; } -bool DocxExport::GetBookmarks( const SwTxtNode& rNd, xub_StrLen nStt, - xub_StrLen nEnd, IMarkVector& rArr ) -{ - IDocumentMarkAccess* const pMarkAccess = pDoc->getIDocumentMarkAccess(); - ULONG nNd = rNd.GetIndex( ); - - const sal_Int32 nMarks = pMarkAccess->getMarksCount(); - for ( sal_Int32 i = 0; i < nMarks; i++ ) - { - IMark* pMark = ( pMarkAccess->getMarksBegin() + i )->get(); - - // Only keep the bookmarks starting or ending in this node - if ( pMark->GetMarkStart().nNode == nNd || - pMark->GetMarkEnd().nNode == nNd ) - { - xub_StrLen nBStart = pMark->GetMarkStart().nContent.GetIndex(); - xub_StrLen nBEnd = pMark->GetMarkEnd().nContent.GetIndex(); - - // Keep only the bookmars starting or ending in the snippet - bool bIsStartOk = ( nBStart >= nStt ) && ( nBStart <= nEnd ); - bool bIsEndOk = ( nBEnd >= nStt ) && ( nBEnd <= nEnd ); - - if ( bIsStartOk || bIsEndOk ) - rArr.push_back( pMark ); - } - } - return ( rArr.size() > 0 ); -} - -class CompareMarksEnd : public std::binary_function < const IMark *, const IMark *, bool > -{ -public: - inline bool operator() ( const IMark * pOneB, const IMark * pTwoB ) const - { - xub_StrLen nOEnd = pOneB->GetMarkEnd().nContent.GetIndex(); - xub_StrLen nTEnd = pTwoB->GetMarkEnd().nContent.GetIndex(); - - return nOEnd < nTEnd; - } -}; - -bool DocxExport::NearestBookmark( xub_StrLen& rNearest ) -{ - bool bHasBookmark = false; - - if ( m_rSortedMarksStart.size( ) > 0 ) - { - IMark* pMarkStart = m_rSortedMarksStart.front(); - rNearest = pMarkStart->GetMarkStart().nContent.GetIndex(); - bHasBookmark = true; - } - - if ( m_rSortedMarksEnd.size( ) > 0 ) - { - IMark* pMarkEnd = m_rSortedMarksEnd[0]; - if ( !bHasBookmark ) - rNearest = pMarkEnd->GetMarkEnd().nContent.GetIndex(); - else - rNearest = std::min( rNearest, pMarkEnd->GetMarkEnd().nContent.GetIndex() ); - bHasBookmark = true; - } - - return bHasBookmark; -} - -xub_StrLen DocxExport::GetNextPos( SwAttrIter* pAttrIter, const SwTxtNode& rNode, xub_StrLen nAktPos ) -{ - // Get the bookmarks for the normal run - xub_StrLen nNextPos = MSWordExportBase::GetNextPos( pAttrIter, rNode, nAktPos ); - - GetSortedBookmarks( rNode, nAktPos, nNextPos - nAktPos ); - - xub_StrLen nNextBookmark = nNextPos; - NearestBookmark( nNextPos ); - - return std::min( nNextPos, nNextBookmark ); -} - -void DocxExport::UpdatePosition( SwAttrIter* pAttrIter, xub_StrLen nAktPos, xub_StrLen nEnd ) -{ - xub_StrLen nNextPos; - - // either no bookmark, or it is not at the current position - if ( !NearestBookmark( nNextPos ) || nNextPos > nAktPos ) - { - MSWordExportBase::UpdatePosition( pAttrIter, nAktPos, nEnd ); - } -} - -void DocxExport::GetSortedBookmarks( const SwTxtNode& rNode, xub_StrLen nAktPos, xub_StrLen nLen ) -{ - IMarkVector aMarksStart; - if ( GetBookmarks( rNode, nAktPos, nAktPos + nLen, aMarksStart ) ) - { - IMarkVector aSortedEnd; - IMarkVector aSortedStart; - for ( IMarkVector::const_iterator it = aMarksStart.begin(), end = aMarksStart.end(); - it < end; ++it ) - { - IMark* pMark = (*it); - - // Remove the positions egals to the current pos - xub_StrLen nStart = pMark->GetMarkStart().nContent.GetIndex(); - xub_StrLen nEnd = pMark->GetMarkEnd().nContent.GetIndex(); - - if ( nStart > nAktPos ) - aSortedStart.push_back( pMark ); - - if ( nEnd > nAktPos ) - aSortedEnd.push_back( pMark ); - } - - // Sort the bookmarks by end position - std::sort( aSortedEnd.begin(), aSortedEnd.end(), CompareMarksEnd() ); - - m_rSortedMarksStart.swap( aSortedStart ); - m_rSortedMarksEnd.swap( aSortedEnd ); - } - else - { - m_rSortedMarksStart.clear( ); - m_rSortedMarksEnd.clear( ); - } -} - void DocxExport::AppendBookmarks( const SwTxtNode& rNode, xub_StrLen nAktPos, xub_StrLen nLen ) { std::vector< OUString > aStarts; diff --git a/sw/source/filter/ww8/docxexport.hxx b/sw/source/filter/ww8/docxexport.hxx index 06d39a68d7..df385be268 100644 --- a/sw/source/filter/ww8/docxexport.hxx +++ b/sw/source/filter/ww8/docxexport.hxx @@ -76,11 +76,6 @@ class DocxExport : public MSWordExportBase /// Footer counter. sal_Int32 m_nFooters; - /// Used to split the runs according to the bookmarks start and ends - typedef std::vector< ::sw::mark::IMark* > IMarkVector; - IMarkVector m_rSortedMarksStart; - IMarkVector m_rSortedMarksEnd; - /// Exporter of the VML shapes. oox::vml::VMLExport *m_pVMLExport; @@ -162,24 +157,7 @@ protected: const SwFmtPageDesc* pNewPgDescFmt = 0, const SwPageDesc* pNewPgDesc = 0 ); - /// Get the next position in the text node to output - virtual xub_StrLen GetNextPos( SwAttrIter* pAttrIter, const SwTxtNode& rNode, xub_StrLen nAktPos ); - - /// Update the information for GetNextPos(). - virtual void UpdatePosition( SwAttrIter* pAttrIter, xub_StrLen nAktPos, xub_StrLen nEnd ); - private: - /// Find the nearest bookmark from the current position. - /// - /// Returns false when there is no bookmark. - bool NearestBookmark( xub_StrLen& rNearest ); - - void GetSortedBookmarks( const SwTxtNode& rNd, xub_StrLen nAktPos, - xub_StrLen nLen ); - - bool GetBookmarks( const SwTxtNode& rNd, xub_StrLen nStt, xub_StrLen nEnd, - IMarkVector& rArr ); - /// Setup pStyles and write styles.xml void InitStyles(); diff --git a/sw/source/filter/ww8/docxexportfilter.cxx b/sw/source/filter/ww8/docxexportfilter.cxx index 1fbbf83aa1..15acf1a691 100644 --- a/sw/source/filter/ww8/docxexportfilter.cxx +++ b/sw/source/filter/ww8/docxexportfilter.cxx @@ -26,6 +26,8 @@ ************************************************************************/ #include "docxexportfilter.hxx" +#include "rtfexportfilter.hxx" +#include "rtfimportfilter.hxx" #include "docxexport.hxx" #include <docsh.hxx> @@ -133,6 +135,7 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( const SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( const sal_Char* pImplName, void* pServiceManager, void* /* pRegistryKey */ ) { + OSL_TRACE("%s, pImplName is '%s'", OSL_THIS_FUNC, pImplName); uno::Reference< lang::XSingleServiceFactory > xFactory; void* pRet = 0; @@ -145,6 +148,22 @@ SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( const sal_Char* pImplN DocxExport_getImplementationName(), DocxExport_createInstance, DocxExport_getSupportedServiceNames() ) ); + } else if ( rtl_str_compare( pImplName, IMPL_NAME_RTFEXPORT ) == 0 ) { + const OUString aServiceName( OUString::createFromAscii( IMPL_NAME_RTFEXPORT ) ); + + xFactory = uno::Reference< lang::XSingleServiceFactory >( ::cppu::createSingleFactory( + reinterpret_cast< lang::XMultiServiceFactory* >( pServiceManager ), + RtfExport_getImplementationName(), + RtfExport_createInstance, + RtfExport_getSupportedServiceNames() ) ); + } else if ( rtl_str_compare( pImplName, IMPL_NAME_RTFIMPORT ) == 0 ) { + const OUString aServiceName( OUString::createFromAscii( IMPL_NAME_RTFIMPORT ) ); + + xFactory = uno::Reference< lang::XSingleServiceFactory >( ::cppu::createSingleFactory( + reinterpret_cast< lang::XMultiServiceFactory* >( pServiceManager ), + RtfImport_getImplementationName(), + RtfImport_createInstance, + RtfImport_getSupportedServiceNames() ) ); } if ( xFactory.is() ) diff --git a/sw/source/filter/ww8/makefile.mk b/sw/source/filter/ww8/makefile.mk index b25887e3e2..a1d12422f9 100644 --- a/sw/source/filter/ww8/makefile.mk +++ b/sw/source/filter/ww8/makefile.mk @@ -67,7 +67,12 @@ EXCEPTIONSFILES = \ $(SLO)$/WW8TableInfo.obj \ $(SLO)$/WW8FFData.obj \ $(SLO)$/WW8Sttbf.obj \ - $(SLO)$/WW8FibData.obj + $(SLO)$/WW8FibData.obj \ + $(SLO)$/rtfexportfilter.obj \ + $(SLO)$/rtfimportfilter.obj \ + $(SLO)$/rtfattributeoutput.obj \ + $(SLO)$/rtfsdrexport.obj \ + $(SLO)$/rtfexport.obj SLOFILES = \ @@ -96,7 +101,12 @@ SLOFILES = \ $(SLO)$/WW8TableInfo.obj \ $(SLO)$/WW8FFData.obj \ $(SLO)$/WW8Sttbf.obj \ - $(SLO)$/WW8FibData.obj + $(SLO)$/WW8FibData.obj \ + $(SLO)$/rtfexportfilter.obj \ + $(SLO)$/rtfimportfilter.obj \ + $(SLO)$/rtfattributeoutput.obj \ + $(SLO)$/rtfsdrexport.obj \ + $(SLO)$/rtfexport.obj # --- Tagets ------------------------------------------------------- diff --git a/sw/source/filter/ww8/rtfattributeoutput.cxx b/sw/source/filter/ww8/rtfattributeoutput.cxx new file mode 100644 index 0000000000..09b2bbabcd --- /dev/null +++ b/sw/source/filter/ww8/rtfattributeoutput.cxx @@ -0,0 +1,3447 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * Copyright 2010 Miklos Vajna. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#include "rtfattributeoutput.hxx" +#include "rtfexport.hxx" +#include "rtfsdrexport.hxx" +#include "writerwordglue.hxx" +#include "wrtww8.hxx" +#include "ww8par.hxx" +#include "fmtcntnt.hxx" +#include "fmtsrnd.hxx" +#include "fchrfmt.hxx" +#include "tgrditem.hxx" +#include "fmtruby.hxx" +#include "charfmt.hxx" +#include "breakit.hxx" + +#include <i18npool/mslangid.hxx> + +#include <hintids.hxx> + +#include <svl/poolitem.hxx> +#include <svtools/rtfkeywd.hxx> + +#include <editeng/fontitem.hxx> +#include <editeng/tstpitem.hxx> +#include <editeng/adjitem.hxx> +#include <editeng/spltitem.hxx> +#include <editeng/widwitem.hxx> +#include <editeng/lspcitem.hxx> +#include <editeng/keepitem.hxx> +#include <editeng/shaditem.hxx> +#include <editeng/brshitem.hxx> +#include <editeng/postitem.hxx> +#include <editeng/wghtitem.hxx> +#include <editeng/kernitem.hxx> +#include <editeng/crsditem.hxx> +#include <editeng/cmapitem.hxx> +#include <editeng/wrlmitem.hxx> +#include <editeng/udlnitem.hxx> +#include <editeng/langitem.hxx> +#include <editeng/escpitem.hxx> +#include <editeng/fhgtitem.hxx> +#include <editeng/colritem.hxx> +#include <editeng/hyznitem.hxx> +#include <editeng/brkitem.hxx> +#include <editeng/lrspitem.hxx> +#include <editeng/ulspitem.hxx> +#include <editeng/boxitem.hxx> +#include <editeng/cntritem.hxx> +#include <editeng/shdditem.hxx> +#include <editeng/akrnitem.hxx> +#include <editeng/pbinitem.hxx> +#include <editeng/emphitem.hxx> +#include <editeng/twolinesitem.hxx> +#include <editeng/charscaleitem.hxx> +#include <editeng/charrotateitem.hxx> +#include <editeng/charreliefitem.hxx> +#include <editeng/paravertalignitem.hxx> +#include <editeng/pgrditem.hxx> +#include <editeng/frmdiritem.hxx> +#include <editeng/blnkitem.hxx> +#include <editeng/charhiddenitem.hxx> +#include <svx/svdmodel.hxx> +#include <svx/svdobj.hxx> +#include <svx/fmglob.hxx> +#include <svx/svdouno.hxx> +#include <filter/msfilter/msoleexp.hxx> + +#include <docufld.hxx> +#include <flddropdown.hxx> +#include <format.hxx> +#include <fmtclds.hxx> +#include <fmtinfmt.hxx> +#include <fmtfld.hxx> +#include <fmtfsize.hxx> +#include <fmtftn.hxx> +#include <fmtrowsplt.hxx> +#include <fmtline.hxx> +#include <fmtanchr.hxx> +#include <frmfmt.hxx> +#include <frmatr.hxx> +#include <ftninfo.hxx> +#include <htmltbl.hxx> +#include <ndgrf.hxx> +#include <ndtxt.hxx> +#include <node.hxx> +#include <pagedesc.hxx> +#include <paratr.hxx> +#include <swmodule.hxx> +#include <swtable.hxx> +#include <txtftn.hxx> +#include <txtinet.hxx> +#include <numrule.hxx> +#include <grfatr.hxx> +#include <ndole.hxx> +#include <lineinfo.hxx> +#include <rtf.hxx> + +#include <rtl/strbuf.hxx> +#include <rtl/ustrbuf.hxx> +#include <rtl/ustring.hxx> + +#include <tools/color.hxx> + +#include <vcl/cvtgrf.hxx> + +#include <com/sun/star/i18n/ScriptType.hdl> +#include <com/sun/star/drawing/XShape.hpp> +#include <com/sun/star/frame/XModel.hpp> +#include <com/sun/star/chart2/XChartDocument.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <com/sun/star/container/XNamed.hpp> + +#include <osl/diagnose.h> + +using rtl::OString; +using rtl::OStringBuffer; +using rtl::OUString; +using rtl::OUStringBuffer; +using rtl::OUStringToOString; + +using namespace nsSwDocInfoSubType; +using namespace nsFieldFlags; +using namespace sw::util; +using namespace ::com::sun::star; + +static OString OutTBLBorderLine(RtfExport &rExport, const SvxBorderLine* pLine, const sal_Char* pStr) +{ + OStringBuffer aRet; + aRet.append(pStr); + if( pLine->GetInWidth() ) + { + // double line + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRDB); + switch( pLine->GetInWidth() ) + { + case DEF_LINE_WIDTH_0: + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRW "15"); + break; + case DEF_LINE_WIDTH_1: + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRW "30"); + break; + case DEF_LINE_WIDTH_2: + case DEF_LINE_WIDTH_3: + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRW "45"); + break; + } + } + else + { + // single line + if( DEF_LINE_WIDTH_1 >= pLine->GetOutWidth() ) + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRS OOO_STRING_SVTOOLS_RTF_BRDRW).append((sal_Int32)pLine->GetOutWidth()); + else + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRTH OOO_STRING_SVTOOLS_RTF_BRDRW).append((sal_Int32)pLine->GetOutWidth() / 2); + } + + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRCF); + aRet.append((sal_Int32)rExport.GetColor(pLine->GetColor())); + return aRet.makeStringAndClear(); +} + +static OString OutBorderLine(RtfExport &rExport, const SvxBorderLine* pLine, + const sal_Char* pStr, USHORT nDist) +{ + OStringBuffer aRet; + aRet.append(OutTBLBorderLine(rExport, pLine, pStr)); + aRet.append(OOO_STRING_SVTOOLS_RTF_BRSP); + aRet.append((sal_Int32)nDist); + return aRet.makeStringAndClear(); +} + +static OString OutBorderLine( RtfExport &rExport, const SvxBorderLine* pLine, + const char* pStr ) +{ + OStringBuffer aRet; + aRet.append(pStr); + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDLNCOL); + aRet.append((sal_Int32)rExport.GetColor( pLine->GetColor() ) ); + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDLNIN); + aRet.append((sal_Int32)pLine->GetInWidth()); + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDLNOUT); + aRet.append((sal_Int32)pLine->GetOutWidth()); + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDLNDIST); + aRet.append((sal_Int32)pLine->GetDistance()); + return aRet.makeStringAndClear(); +} + +void RtfAttributeOutput::RTLAndCJKState( bool bIsRTL, sal_uInt16 nScript ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + /* + You would have thought that + m_rExport.Strm() << (bIsRTL ? OOO_STRING_SVTOOLS_RTF_RTLCH : OOO_STRING_SVTOOLS_RTF_LTRCH); would be sufficent here , + but looks like word needs to see the other directional token to be + satisified that all is kosher, otherwise it seems in ver 2003 to go and + semi-randomlyly stick strike through about the place. Perhaps + strikethrough is some ms developers "something is wrong signal" debugging + code that we're triggering ? + */ + if (bIsRTL) { + m_aStylesEnd.append(OOO_STRING_SVTOOLS_RTF_LTRCH); + m_aStylesEnd.append(' '); + m_aStylesEnd.append(OOO_STRING_SVTOOLS_RTF_RTLCH); + } else { + m_aStylesEnd.append(OOO_STRING_SVTOOLS_RTF_RTLCH); + m_aStylesEnd.append(' '); + m_aStylesEnd.append(OOO_STRING_SVTOOLS_RTF_LTRCH); + } + + switch (nScript) { + case i18n::ScriptType::LATIN: + m_aStylesEnd.append(OOO_STRING_SVTOOLS_RTF_LOCH); + break; + case i18n::ScriptType::ASIAN: + m_aStylesEnd.append(OOO_STRING_SVTOOLS_RTF_DBCH); + break; + case i18n::ScriptType::COMPLEX: + /* noop */ + break; + default: + /* should not happen? */ + break; + } +} + +void RtfAttributeOutput::StartParagraph( ww8::WW8TableNodeInfo::Pointer_t pTextNodeInfo ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + // Output table/table row/table cell starts if needed + if ( pTextNodeInfo.get() ) + { + sal_uInt32 nRow = pTextNodeInfo->getRow(); + sal_uInt32 nCell = pTextNodeInfo->getCell(); + + // New cell/row? + if ( m_nTableDepth > 0 && !m_bTableCellOpen ) + { + ww8::WW8TableNodeInfoInner::Pointer_t pDeepInner( pTextNodeInfo->getInnerForDepth( m_nTableDepth ) ); + OSL_ENSURE( pDeepInner, "TableNodeInfoInner not found"); + if ( pDeepInner && pDeepInner->getCell() == 0 ) + StartTableRow( pDeepInner ); + + StartTableCell( pDeepInner ); + } + + if ( nRow == 0 && nCell == 0 ) + { + // Do we have to start the table? + // [If we are at the rigth depth already, it means that we + // continue the table cell] + sal_uInt32 nCurrentDepth = pTextNodeInfo->getDepth(); + + if ( nCurrentDepth > m_nTableDepth ) + { + // Start all the tables that begin here + for ( sal_uInt32 nDepth = m_nTableDepth + 1; nDepth <= pTextNodeInfo->getDepth(); ++nDepth ) + { + ww8::WW8TableNodeInfoInner::Pointer_t pInner( pTextNodeInfo->getInnerForDepth( nDepth ) ); + + m_bLastTable = (nDepth == pTextNodeInfo->getDepth()); + StartTable( pInner ); + StartTableRow( pInner ); + StartTableCell( pInner ); + } + + m_nTableDepth = nCurrentDepth; + } + } + } + + OSL_ENSURE(m_aRun.getLength() == 0, "m_aRun is not empty"); +} + +void RtfAttributeOutput::EndParagraph( ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + FinishTableRowCell( pTextNodeInfoInner ); + + OStringBuffer aParagraph; + + aParagraph.append(m_aRun.makeStringAndClear()); + aParagraph.append(m_aAfterRuns.makeStringAndClear()); + if (m_bTblAfterCell) + m_bTblAfterCell = false; + else + { + aParagraph.append(m_rExport.sNewLine); + aParagraph.append(OOO_STRING_SVTOOLS_RTF_PAR); + aParagraph.append(' '); + } + if (m_nColBreakNeeded) + { + aParagraph.append(OOO_STRING_SVTOOLS_RTF_COLUMN); + m_nColBreakNeeded = false; + } + + if (!m_bBufferSectionHeaders) + m_rExport.Strm() << aParagraph.makeStringAndClear(); + else + m_aSectionHeaders.append(aParagraph.makeStringAndClear()); +} + +void RtfAttributeOutput::EmptyParagraph() +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_rExport.Strm() << m_rExport.sNewLine << OOO_STRING_SVTOOLS_RTF_PAR << ' '; +} + +void RtfAttributeOutput::StartParagraphProperties( const SwTxtNode& rNode ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + OSL_ENSURE(m_aStyles.getLength() == 0, "m_aStyles is not empty"); + + // output page/section breaks + SwNodeIndex aNextIndex( rNode, 1 ); + m_rExport.Strm() << m_aSectionBreaks.makeStringAndClear(); + m_bBufferSectionBreaks = true; + + // output section headers / footers + if (!m_bBufferSectionHeaders) + m_rExport.Strm() << m_aSectionHeaders.makeStringAndClear(); + + if ( aNextIndex.GetNode().IsTxtNode() ) + { + const SwTxtNode* pTxtNode = static_cast< SwTxtNode* >( &aNextIndex.GetNode() ); + m_rExport.OutputSectionBreaks( pTxtNode->GetpSwAttrSet(), *pTxtNode ); + } + else if ( aNextIndex.GetNode().IsTableNode() ) + { + const SwTableNode* pTableNode = static_cast< SwTableNode* >( &aNextIndex.GetNode() ); + const SwFrmFmt *pFmt = pTableNode->GetTable().GetFrmFmt(); + m_rExport.OutputSectionBreaks( &(pFmt->GetAttrSet()), *pTableNode ); + } + m_bBufferSectionBreaks = false; + + OStringBuffer aPar; + if (!m_rExport.bRTFFlySyntax) + { + aPar.append(OOO_STRING_SVTOOLS_RTF_PARD); + aPar.append(OOO_STRING_SVTOOLS_RTF_PLAIN); + aPar.append(' '); + } + if (!m_bBufferSectionHeaders) + m_rExport.Strm() << aPar.makeStringAndClear(); + else + m_aSectionHeaders.append(aPar.makeStringAndClear()); +} + +void RtfAttributeOutput::EndParagraphProperties() +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + m_aStyles.append(m_aStylesEnd.makeStringAndClear()); + m_rExport.Strm() << m_aStyles.makeStringAndClear(); +} + +void RtfAttributeOutput::StartRun( const SwRedlineData* pRedlineData ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aRun.append('{'); + + // if there is some redlining in the document, output it + Redline( pRedlineData ); + + OSL_ENSURE(m_aRunText.getLength() == 0, "m_aRunText is not empty"); +} + +void RtfAttributeOutput::EndRun() +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + m_aRun.append(m_rExport.sNewLine); + m_aRun.append(m_aRunText.makeStringAndClear()); + m_aRun.append('}'); +} + +void RtfAttributeOutput::StartRunProperties() +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + OSL_ENSURE(m_aStyles.getLength() == 0, "m_aStyles is not empty"); +} + +void RtfAttributeOutput::EndRunProperties( const SwRedlineData* /*pRedlineData*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + m_aStyles.append(m_aStylesEnd.makeStringAndClear()); + m_aRun.append(m_aStyles.makeStringAndClear()); +} + +void RtfAttributeOutput::RunText( const String& rText, rtl_TextEncoding eCharSet ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + RawText( rText, 0, eCharSet ); +} + +OStringBuffer& RtfAttributeOutput::RunText() +{ + return m_aRunText; +} + +OStringBuffer& RtfAttributeOutput::Styles() +{ + return m_aStyles; +} + +void RtfAttributeOutput::RawText( const String& rText, bool /*bForceUnicode*/, rtl_TextEncoding eCharSet ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + m_aRunText.append(m_rExport.OutString(rText, eCharSet)); +} + +void RtfAttributeOutput::StartRuby( const SwTxtNode& /*rNode*/, const SwFmtRuby& /*rRuby*/ ) +{ + OSL_TRACE("TODO: %s", OSL_THIS_FUNC); +} + +void RtfAttributeOutput::EndRuby() +{ + OSL_TRACE("TODO: %s", OSL_THIS_FUNC); +} + +bool RtfAttributeOutput::StartURL( const String& rUrl, const String& rTarget ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aStyles.append('{'); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_FIELD); + m_aStyles.append('{'); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_IGNORE); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_FLDINST); + m_aStyles.append(" HYPERLINK "); + + String sURL( rUrl ); + if( sURL.Len() ) + { + m_aStyles.append("\""); + m_aStyles.append(m_rExport.OutString( sURL, m_rExport.eCurrentEncoding)); + m_aStyles.append("\" "); + } + + if( rTarget.Len() ) + { + m_aStyles.append("\\\\t \""); + m_aStyles.append(m_rExport.OutString( rTarget, m_rExport.eCurrentEncoding)); + m_aStyles.append("\" "); + } + + m_aStyles.append("}"); + return true; +} + +bool RtfAttributeOutput::EndURL() +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + // close the fldrslt group + m_aRunText.append('}'); + // close the field group + m_aRunText.append('}'); + return true; +} + +void RtfAttributeOutput::FieldVanish( const String& /*rTxt*/, ww::eField /*eType*/ ) +{ + OSL_TRACE("TODO: %s", OSL_THIS_FUNC); +} + +void RtfAttributeOutput::Redline( const SwRedlineData* pRedline ) +{ + if (!pRedline) + return; + + OSL_TRACE("%s", OSL_THIS_FUNC); + + if (pRedline->GetType() == nsRedlineType_t::REDLINE_INSERT) + { + m_aRun.append(OOO_STRING_SVTOOLS_RTF_REVISED); + m_aRun.append(OOO_STRING_SVTOOLS_RTF_REVAUTH); + m_aRun.append((sal_Int32)m_rExport.GetRedline(SW_MOD()->GetRedlineAuthor(pRedline->GetAuthor()))); + m_aRun.append(OOO_STRING_SVTOOLS_RTF_REVDTTM); + } + else if(pRedline->GetType() == nsRedlineType_t::REDLINE_DELETE) + { + m_aRun.append(OOO_STRING_SVTOOLS_RTF_DELETED); + m_aRun.append(OOO_STRING_SVTOOLS_RTF_REVAUTHDEL); + m_aRun.append((sal_Int32)m_rExport.GetRedline(SW_MOD()->GetRedlineAuthor(pRedline->GetAuthor()))); + m_aRun.append(OOO_STRING_SVTOOLS_RTF_REVDTTMDEL); + } + m_aRun.append((sal_Int32)sw::ms::DateTime2DTTM(pRedline->GetTimeStamp())); + m_aRun.append(' '); +} + +void RtfAttributeOutput::FormatDrop( const SwTxtNode& /*rNode*/, const SwFmtDrop& /*rSwFmtDrop*/, USHORT /*nStyle*/, ww8::WW8TableNodeInfo::Pointer_t /*pTextNodeInfo*/, ww8::WW8TableNodeInfoInner::Pointer_t /*pTextNodeInfoInner*/ ) +{ + OSL_TRACE("TODO: %s", OSL_THIS_FUNC); +} + +void RtfAttributeOutput::ParagraphStyle( USHORT nStyle ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + OString *pStyle = m_rExport.GetStyle(nStyle); + OStringBuffer aStyle; + aStyle.append(OOO_STRING_SVTOOLS_RTF_S); + aStyle.append((sal_Int32)nStyle); + if (pStyle) + aStyle.append(pStyle->getStr()); + if (!m_bBufferSectionHeaders) + m_rExport.Strm() << aStyle.makeStringAndClear(); + else + m_aSectionHeaders.append(aStyle.makeStringAndClear()); +} + +void RtfAttributeOutput::TableInfoCell( ww8::WW8TableNodeInfoInner::Pointer_t /*pTableTextNodeInfoInner*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_INTBL); + if ( m_nTableDepth > 1 ) + { + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_ITAP); + m_aStyles.append((sal_Int32)m_nTableDepth); + } + m_bWroteCellInfo = true; +} + +void RtfAttributeOutput::TableInfoRow( ww8::WW8TableNodeInfoInner::Pointer_t /*pTableTextNodeInfo*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + /* noop */ +} + +void RtfAttributeOutput::TableDefinition( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if ( !m_pTableWrt ) + InitTableHelper( pTableTextNodeInfoInner ); + + const SwTableBox *pTblBox = pTableTextNodeInfoInner->getTableBox( ); + SwFrmFmt *pFmt = pTblBox->GetFrmFmt( ); + + m_aRowDefs.append(OOO_STRING_SVTOOLS_RTF_TROWD); + TableOrientation( pTableTextNodeInfoInner ); + TableBidi( pTableTextNodeInfoInner ); + TableHeight( pTableTextNodeInfoInner ); + TableCanSplit( pTableTextNodeInfoInner ); + + // Cell margins + const SvxBoxItem& rBox = pFmt->GetBox( ); + static const USHORT aBorders[] = + { + BOX_LINE_TOP, BOX_LINE_LEFT, BOX_LINE_BOTTOM, BOX_LINE_RIGHT + }; + + static const char* aRowPadNames[] = + { + OOO_STRING_SVTOOLS_RTF_TRPADDT, OOO_STRING_SVTOOLS_RTF_TRPADDL, OOO_STRING_SVTOOLS_RTF_TRPADDB, OOO_STRING_SVTOOLS_RTF_TRPADDR + }; + + static const char* aRowPadUnits[] = + { + OOO_STRING_SVTOOLS_RTF_TRPADDFT, OOO_STRING_SVTOOLS_RTF_TRPADDFL, OOO_STRING_SVTOOLS_RTF_TRPADDFB, OOO_STRING_SVTOOLS_RTF_TRPADDFR + }; + + for (int i = 0; i < 4; ++i) + { + m_aRowDefs.append(aRowPadUnits[i]); + m_aRowDefs.append((sal_Int32)3); + m_aRowDefs.append(aRowPadNames[i]); + m_aRowDefs.append((sal_Int32)rBox.GetDistance(aBorders[i])); + } + + // The cell-dependent properties + const SwWriteTableRows& aRows = m_pTableWrt->GetRows( ); + SwWriteTableRow *pRow = aRows[ pTableTextNodeInfoInner->getRow( ) ]; + SwTwips nSz = 0; + Point aPt; + SwRect aRect( pFmt->FindLayoutRect( false, &aPt )); + SwTwips nPageSize = aRect.Width(); + SwTwips nTblSz = pFmt->GetFrmSize().GetWidth(); + for( USHORT i = 0; i < pRow->GetCells().Count(); i++ ) + { + SwWriteTableCell *pCell = pRow->GetCells( )[ i ]; + const SwFrmFmt *pCellFmt = pCell->GetBox()->GetFrmFmt(); + + pTableTextNodeInfoInner->setCell( i ); + TableCellProperties(pTableTextNodeInfoInner); + + // Right boundary: this can't be in TableCellProperties as the old + // value of nSz is needed. + nSz += pCellFmt->GetFrmSize().GetWidth(); + m_aRowDefs.append(OOO_STRING_SVTOOLS_RTF_CELLX); + SwTwips nCalc = nSz; + nCalc *= nPageSize; + nCalc /= nTblSz; + m_aRowDefs.append( (sal_Int32)(pFmt->GetLRSpace().GetLeft() + nCalc) ); + } +} + +void RtfAttributeOutput::TableDefaultBorders( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + /* + * The function name is a bit misleading: given that we write borders + * before each row, we just have borders, not default ones. Additionally, + * this function actually writes borders for a specific cell only and is + * called for each cell. + */ + + const SwTableBox *pTblBox = pTableTextNodeInfoInner->getTableBox( ); + SwFrmFmt *pFmt = pTblBox->GetFrmFmt( ); + const SvxBoxItem& rDefault = pFmt->GetBox( ); + const SwWriteTableRows& aRows = m_pTableWrt->GetRows( ); + SwWriteTableRow *pRow = aRows[ pTableTextNodeInfoInner->getRow( ) ]; + SwWriteTableCell *pCell = pRow->GetCells( )[ pTableTextNodeInfoInner->getCell( ) ]; + const SwFrmFmt *pCellFmt = pCell->GetBox()->GetFrmFmt(); + const SfxPoolItem* pItem; + if (SFX_ITEM_SET == pCellFmt->GetAttrSet().GetItemState(RES_BOX, TRUE, &pItem)) + { + const SvxBoxItem& rBox = (SvxBoxItem&)*pItem; + static const USHORT aBorders[] = + { + BOX_LINE_TOP, BOX_LINE_LEFT, BOX_LINE_BOTTOM, BOX_LINE_RIGHT + }; + static const char* aBorderNames[] = + { + OOO_STRING_SVTOOLS_RTF_CLBRDRT, OOO_STRING_SVTOOLS_RTF_CLBRDRL, OOO_STRING_SVTOOLS_RTF_CLBRDRB, OOO_STRING_SVTOOLS_RTF_CLBRDRR + }; + //Yes left and top are swapped with eachother for cell padding! Because + //that's what the thunderingly annoying rtf export/import word xp does. + static const char* aCellPadNames[] = + { + OOO_STRING_SVTOOLS_RTF_CLPADL, OOO_STRING_SVTOOLS_RTF_CLPADT, OOO_STRING_SVTOOLS_RTF_CLPADB, OOO_STRING_SVTOOLS_RTF_CLPADR + }; + static const char* aCellPadUnits[] = + { + OOO_STRING_SVTOOLS_RTF_CLPADFL, OOO_STRING_SVTOOLS_RTF_CLPADFT, OOO_STRING_SVTOOLS_RTF_CLPADFB, OOO_STRING_SVTOOLS_RTF_CLPADFR + }; + for (int i = 0; i < 4; ++i) + { + if (const SvxBorderLine* pLn = rBox.GetLine(aBorders[i])) + m_aRowDefs.append(OutTBLBorderLine(m_rExport, pLn, aBorderNames[i])); + if (rDefault.GetDistance(aBorders[i]) != + rBox.GetDistance(aBorders[i])) + { + m_aRowDefs.append(aCellPadUnits[i]); + m_aRowDefs.append((sal_Int32)3); + m_aRowDefs.append(aCellPadNames[i]); + m_aRowDefs.append((sal_Int32)rBox.GetDistance(aBorders[i])); + } + } + } +} + +void RtfAttributeOutput::TableBackgrounds( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + const SwWriteTableRows& aRows = m_pTableWrt->GetRows( ); + SwWriteTableRow *pRow = aRows[ pTableTextNodeInfoInner->getRow( ) ]; + SwWriteTableCell *pCell = pRow->GetCells( )[ pTableTextNodeInfoInner->getCell( ) ]; + const SwFrmFmt *pCellFmt = pCell->GetBox()->GetFrmFmt(); + const SfxPoolItem* pItem; + if( SFX_ITEM_SET == pCellFmt->GetAttrSet().GetItemState( + RES_BACKGROUND, TRUE, &pItem )) + { + const SvxBrushItem& rBack = (SvxBrushItem&)*pItem; + if( !rBack.GetColor().GetTransparency() ) + { + m_aRowDefs.append(OOO_STRING_SVTOOLS_RTF_CLCBPAT); + m_aRowDefs.append((sal_Int32)m_rExport.GetColor(rBack.GetColor())); + } + } +} + +void RtfAttributeOutput::TableHeight( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + const SwTableBox * pTabBox = pTableTextNodeInfoInner->getTableBox(); + const SwTableLine * pTabLine = pTabBox->GetUpper(); + const SwFrmFmt * pLineFmt = pTabLine->GetFrmFmt(); + const SwFmtFrmSize& rLSz = pLineFmt->GetFrmSize(); + + if ( ATT_VAR_SIZE != rLSz.GetHeightSizeType() && rLSz.GetHeight() ) + { + sal_Int32 nHeight = 0; + + switch ( rLSz.GetHeightSizeType() ) + { + case ATT_FIX_SIZE: nHeight = -rLSz.GetHeight(); break; + case ATT_MIN_SIZE: nHeight = rLSz.GetHeight(); break; + default: break; + } + + if ( nHeight ) + { + m_aRowDefs.append(OOO_STRING_SVTOOLS_RTF_TRRH); + m_aRowDefs.append(nHeight); + } + } +} + +void RtfAttributeOutput::TableCanSplit( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + const SwTableBox * pTabBox = pTableTextNodeInfoInner->getTableBox(); + const SwTableLine * pTabLine = pTabBox->GetUpper(); + const SwFrmFmt * pLineFmt = pTabLine->GetFrmFmt(); + const SwFmtRowSplit& rSplittable = pLineFmt->GetRowSplit( ); + + // The rtf default is to allow a row to break + if (rSplittable.GetValue() == 0) + m_aRowDefs.append(OOO_STRING_SVTOOLS_RTF_TRKEEP); +} + +void RtfAttributeOutput::TableBidi( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + const SwTable * pTable = pTableTextNodeInfoInner->getTable(); + const SwFrmFmt * pFrmFmt = pTable->GetFrmFmt(); + + if ( m_rExport.TrueFrameDirection( *pFrmFmt ) != FRMDIR_HORI_RIGHT_TOP ) + m_aRowDefs.append(OOO_STRING_SVTOOLS_RTF_LTRROW); + else + m_aRowDefs.append(OOO_STRING_SVTOOLS_RTF_RTLROW); +} + +void RtfAttributeOutput::TableVerticalCell( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + const SwWriteTableRows& aRows = m_pTableWrt->GetRows( ); + SwWriteTableRow *pRow = aRows[ pTableTextNodeInfoInner->getRow( ) ]; + SwWriteTableCell *pCell = pRow->GetCells( )[ pTableTextNodeInfoInner->getCell( ) ]; + const SwFrmFmt *pCellFmt = pCell->GetBox()->GetFrmFmt(); + const SfxPoolItem* pItem; + + // vertical merges + if (pCell->GetRowSpan() > 1) + m_aRowDefs.append(OOO_STRING_SVTOOLS_RTF_CLVMGF); + else if (pCell->GetRowSpan() == 0) + m_aRowDefs.append(OOO_STRING_SVTOOLS_RTF_CLVMRG); + + // vertical alignment + if( SFX_ITEM_SET == pCellFmt->GetAttrSet().GetItemState( + RES_VERT_ORIENT, TRUE, &pItem ) ) + switch( ((SwFmtVertOrient*)pItem)->GetVertOrient() ) + { + case text::VertOrientation::CENTER: m_aRowDefs.append(OOO_STRING_SVTOOLS_RTF_CLVERTALC); break; + case text::VertOrientation::BOTTOM: m_aRowDefs.append(OOO_STRING_SVTOOLS_RTF_CLVERTALB); break; + default: m_aRowDefs.append(OOO_STRING_SVTOOLS_RTF_CLVERTALT); break; + } +} + +void RtfAttributeOutput::TableNodeInfo( ww8::WW8TableNodeInfo::Pointer_t /*pNodeInfo*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + /* noop */ +} + +void RtfAttributeOutput::TableNodeInfoInner( ww8::WW8TableNodeInfoInner::Pointer_t pNodeInfoInner ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + // This is called when the nested table ends in a cell, and there's no + // paragraph benhind that; so we must check for the ends of cell, rows, + // and tables + // ['true' to write an empty paragraph, MS Word insists on that] + FinishTableRowCell( pNodeInfoInner, true ); +} + +void RtfAttributeOutput::TableOrientation( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + const SwTable *pTable = pTableTextNodeInfoInner->getTable(); + SwFrmFmt *pFmt = pTable->GetFrmFmt( ); + + OStringBuffer aTblAdjust( OOO_STRING_SVTOOLS_RTF_TRQL ); + switch (pFmt->GetHoriOrient().GetHoriOrient()) + { + case text::HoriOrientation::CENTER: + aTblAdjust.setLength(0); + aTblAdjust.append(OOO_STRING_SVTOOLS_RTF_TRQC); + break; + case text::HoriOrientation::RIGHT: + aTblAdjust.setLength(0); + aTblAdjust.append(OOO_STRING_SVTOOLS_RTF_TRQR); + break; + case text::HoriOrientation::NONE: + case text::HoriOrientation::LEFT_AND_WIDTH: + aTblAdjust.append(OOO_STRING_SVTOOLS_RTF_TRLEFT); + aTblAdjust.append((sal_Int32)pFmt->GetLRSpace().GetLeft()); + break; + default: + break; + } + + m_aRowDefs.append(aTblAdjust.makeStringAndClear()); +} + +void RtfAttributeOutput::TableSpacing( ww8::WW8TableNodeInfoInner::Pointer_t /*pTableTextNodeInfoInner*/ ) +{ + OSL_TRACE("TODO: %s", OSL_THIS_FUNC); +} + +void RtfAttributeOutput::TableRowEnd( sal_uInt32 /*nDepth*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + /* noop, see EndTableRow() */ +} + +/* + * Our private table methods. + */ + +void RtfAttributeOutput::InitTableHelper( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + sal_uInt32 nPageSize = 0; + bool bRelBoxSize = false; + + // Create the SwWriteTable instance to use col spans + GetTablePageSize( pTableTextNodeInfoInner.get(), nPageSize, bRelBoxSize ); + + const SwTable* pTable = pTableTextNodeInfoInner->getTable( ); + const SwFrmFmt *pFmt = pTable->GetFrmFmt( ); + SwTwips nTblSz = pFmt->GetFrmSize( ).GetWidth( ); + + const SwHTMLTableLayout *pLayout = pTable->GetHTMLTableLayout(); + if( pLayout && pLayout->IsExportable() ) + m_pTableWrt = new SwWriteTable( pLayout ); + else + m_pTableWrt = new SwWriteTable( pTable->GetTabLines(), (USHORT)nPageSize, + (USHORT)nTblSz, false); +} + +void RtfAttributeOutput::StartTable( ww8::WW8TableNodeInfoInner::Pointer_t /*pTableTextNodeInfoInner*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + // To trigger calling InitTableHelper() + delete m_pTableWrt, m_pTableWrt = NULL; +} + +void RtfAttributeOutput::StartTableRow( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) +{ + sal_uInt32 nCurrentDepth = pTableTextNodeInfoInner->getDepth(); + OSL_TRACE("%s, (depth is %d)", OSL_THIS_FUNC, (int)nCurrentDepth); + + TableDefinition(pTableTextNodeInfoInner); + + if (!m_bLastTable) + m_aTables.push_back(m_aRowDefs.makeStringAndClear()); + + // We'll write the table definition for nested tables later + if ( nCurrentDepth > 1 ) + return; + m_rExport.Strm() << m_aRowDefs.makeStringAndClear(); +} + +void RtfAttributeOutput::StartTableCell( ww8::WW8TableNodeInfoInner::Pointer_t /*pTableTextNodeInfoInner*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_bTableCellOpen = true; +} + +void RtfAttributeOutput::TableCellProperties( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + TableDefaultBorders(pTableTextNodeInfoInner); + TableBackgrounds(pTableTextNodeInfoInner); + TableVerticalCell(pTableTextNodeInfoInner); +} + +void RtfAttributeOutput::EndTableCell( ) +{ + OSL_TRACE("%s, (depth is %d)", OSL_THIS_FUNC, (int)m_nTableDepth); + + if (!m_bWroteCellInfo) + { + m_aAfterRuns.append(OOO_STRING_SVTOOLS_RTF_INTBL); + m_aAfterRuns.append(OOO_STRING_SVTOOLS_RTF_ITAP); + m_aAfterRuns.append((sal_Int32)m_nTableDepth); + } + if ( m_nTableDepth > 1 ) + m_aAfterRuns.append(OOO_STRING_SVTOOLS_RTF_NESTCELL); + else + m_aAfterRuns.append(OOO_STRING_SVTOOLS_RTF_CELL); + + m_bTableCellOpen = false; + m_bTblAfterCell = true; + m_bWroteCellInfo = false; +} + +void RtfAttributeOutput::EndTableRow( ) +{ + OSL_TRACE("%s, (depth is %d)", OSL_THIS_FUNC, (int)m_nTableDepth); + + if ( m_nTableDepth > 1 ) + { + m_aAfterRuns.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_NESTTABLEPROPRS); + if (m_aRowDefs.getLength() > 0) + m_aAfterRuns.append(m_aRowDefs.makeStringAndClear()); + else if (m_aTables.size() > 0) + { + m_aAfterRuns.append(m_aTables.back()); + m_aTables.pop_back(); + } + m_aAfterRuns.append(OOO_STRING_SVTOOLS_RTF_NESTROW "}" "{" OOO_STRING_SVTOOLS_RTF_NONESTTABLES OOO_STRING_SVTOOLS_RTF_PAR "}"); + } + else + { + if (m_aTables.size() > 0) + { + m_aAfterRuns.append(m_aTables.back()); + m_aTables.pop_back(); + } + m_aAfterRuns.append(OOO_STRING_SVTOOLS_RTF_ROW); + } +} + +void RtfAttributeOutput::EndTable() +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if ( m_nTableDepth > 0 ) { + m_nTableDepth--; + delete m_pTableWrt, m_pTableWrt = NULL; + } + + // We closed the table; if it is a nested table, the cell that contains it + // still continues + m_bTableCellOpen = true; + + // Cleans the table helper + delete m_pTableWrt, m_pTableWrt = NULL; +} + +void RtfAttributeOutput::FinishTableRowCell( ww8::WW8TableNodeInfoInner::Pointer_t pInner, bool /*bForceEmptyParagraph*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if ( pInner.get() ) + { + // Where are we in the table + sal_uInt32 nRow = pInner->getRow( ); + + const SwTable *pTable = pInner->getTable( ); + const SwTableLines& rLines = pTable->GetTabLines( ); + USHORT nLinesCount = rLines.Count( ); + + if ( pInner->isEndOfCell() ) + EndTableCell(); + + // This is a line end + if ( pInner->isEndOfLine() ) + EndTableRow(); + + // This is the end of the table + if ( pInner->isEndOfLine( ) && ( nRow + 1 ) == nLinesCount ) + EndTable(); + } +} + +void RtfAttributeOutput::StartStyles() +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + m_rExport.Strm() << m_rExport.sNewLine << '{' << OOO_STRING_SVTOOLS_RTF_COLORTBL; + m_rExport.OutColorTable(); + OSL_ENSURE(m_aStylesheet.getLength() == 0, "m_aStylesheet is not empty"); + m_aStylesheet.append(m_rExport.sNewLine); + m_aStylesheet.append('{'); + m_aStylesheet.append(OOO_STRING_SVTOOLS_RTF_STYLESHEET); +} + +void RtfAttributeOutput::EndStyles( USHORT /*nNumberOfStyles*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + m_rExport.Strm() << '}'; + m_rExport.Strm() << m_aStylesheet.makeStringAndClear(); + m_rExport.Strm() << '}'; +} + +void RtfAttributeOutput::DefaultStyle( USHORT /*nStyle*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + /* noop, the default style is always 0 in RTF */ +} + +void RtfAttributeOutput::StartStyle( const String& rName, bool bPapFmt, + USHORT nBase, USHORT nNext, USHORT /*nWwId*/, USHORT nId ) +{ + OSL_TRACE("%s, rName = '%s'", OSL_THIS_FUNC, + OUStringToOString( OUString( rName ), m_rExport.eCurrentEncoding ).getStr()); + + m_aStylesheet.append('{'); + if (bPapFmt) + m_aStylesheet.append(OOO_STRING_SVTOOLS_RTF_S); + else + m_aStylesheet.append( OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_CS); + m_aStylesheet.append( (sal_Int32)nId ); + + if ( nBase != 0x0FFF ) + { + m_aStylesheet.append(OOO_STRING_SVTOOLS_RTF_SBASEDON); + m_aStylesheet.append((sal_Int32)nBase); + } + + m_aStylesheet.append(OOO_STRING_SVTOOLS_RTF_SNEXT); + m_aStylesheet.append((sal_Int32)nNext); + + m_rStyleName = rName; + m_nStyleId = nId; +} + +void RtfAttributeOutput::EndStyle() +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + m_aStyles.append(m_aStylesEnd.makeStringAndClear()); + OString aStyles = m_aStyles.makeStringAndClear(); + m_rExport.InsStyle(m_nStyleId, aStyles); + m_aStylesheet.append(aStyles); + m_aStylesheet.append(' '); + m_aStylesheet.append(OUStringToOString( OUString( m_rStyleName ), m_rExport.eCurrentEncoding )); + m_aStylesheet.append(";}"); + m_aStylesheet.append(m_rExport.sNewLine); +} + +void RtfAttributeOutput::StartStyleProperties( bool /*bParProp*/, USHORT /*nStyle*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + /* noop */ +} + +void RtfAttributeOutput::EndStyleProperties( bool /*bParProp*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + /* noop */ +} + +void RtfAttributeOutput::OutlineNumbering( BYTE nLvl, const SwNumFmt& /*rNFmt*/, const SwFmt& /*rFmt*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if ( nLvl >= WW8ListManager::nMaxLevel ) + nLvl = WW8ListManager::nMaxLevel - 1; + + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_ILVL); + m_aStyles.append((sal_Int32)nLvl); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_OUTLINELEVEL); + m_aStyles.append((sal_Int32)nLvl); +} + +void RtfAttributeOutput::PageBreakBefore( bool bBreak ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if (bBreak) + { + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_PAGEBB; + } +} + +void RtfAttributeOutput::SectionBreak( BYTE nC, const WW8_SepInfo* pSectionInfo ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + switch (nC) + { + case msword::ColumnBreak: + m_nColBreakNeeded = true; + break; + case msword::PageBreak: + if ( pSectionInfo ) + m_rExport.SectionProperties( *pSectionInfo ); + break; + } +} + +void RtfAttributeOutput::StartSection() +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aSectionBreaks.append(OOO_STRING_SVTOOLS_RTF_SECT OOO_STRING_SVTOOLS_RTF_SECTD); + if (!m_bBufferSectionBreaks) + m_rExport.Strm() << m_aSectionBreaks.makeStringAndClear(); +} + +void RtfAttributeOutput::EndSection() +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + /* + * noop, \sect must go to StartSection or Word won't notice multiple + * columns... + */ +} + +void RtfAttributeOutput::SectionFormProtection( bool bProtected ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aSectionBreaks.append(OOO_STRING_SVTOOLS_RTF_SECTUNLOCKED); + m_aSectionBreaks.append((sal_Int32)!bProtected); +} + +void RtfAttributeOutput::SectionLineNumbering( ULONG /*nRestartNo*/, const SwLineNumberInfo& rLnNumInfo ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_LINEMOD; + m_rExport.OutLong(rLnNumInfo.GetCountBy()); + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_LINEX; + m_rExport.OutLong(rLnNumInfo.GetPosFromLeft()); + if (!rLnNumInfo.IsRestartEachPage()) + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_LINECONT; +} + +void RtfAttributeOutput::SectionTitlePage() +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + /* + * noop, handled in RtfExport::WriteHeaderFooter() + */ +} + +void RtfAttributeOutput::SectionPageBorders( const SwFrmFmt* pFmt, const SwFrmFmt* /*pFirstPageFmt*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + const SvxBoxItem& rBox = pFmt->GetBox(); + const SvxBorderLine *pLine = rBox.GetTop(); + if(pLine) + m_aSectionBreaks.append(OutBorderLine( m_rExport, pLine, + OOO_STRING_SVTOOLS_RTF_PGBRDRT, + rBox.GetDistance(BOX_LINE_TOP) )); + pLine = rBox.GetBottom(); + if(pLine) + m_aSectionBreaks.append(OutBorderLine( m_rExport, pLine, + OOO_STRING_SVTOOLS_RTF_PGBRDRB, + rBox.GetDistance(BOX_LINE_BOTTOM) )); + pLine = rBox.GetLeft(); + if(pLine) + m_aSectionBreaks.append(OutBorderLine( m_rExport, pLine, + OOO_STRING_SVTOOLS_RTF_PGBRDRL, + rBox.GetDistance(BOX_LINE_LEFT) )); + pLine = rBox.GetRight(); + if(pLine) + m_aSectionBreaks.append(OutBorderLine( m_rExport, pLine, + OOO_STRING_SVTOOLS_RTF_PGBRDRR, + rBox.GetDistance(BOX_LINE_RIGHT) )); +} + +void RtfAttributeOutput::SectionBiDi( bool bBiDi ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_rExport.Strm() << (bBiDi ? OOO_STRING_SVTOOLS_RTF_RTLSECT : OOO_STRING_SVTOOLS_RTF_LTRSECT); +} + +void RtfAttributeOutput::SectionPageNumbering( USHORT nNumType, USHORT nPageRestartNumber ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if (nPageRestartNumber > 0) + { + m_aSectionBreaks.append(OOO_STRING_SVTOOLS_RTF_PGNSTARTS); + m_aSectionBreaks.append((sal_Int32)nPageRestartNumber); + m_aSectionBreaks.append(OOO_STRING_SVTOOLS_RTF_PGNRESTART); + } + + const char* pStr = 0; + switch ( nNumType ) + { + case SVX_NUM_CHARS_UPPER_LETTER: + case SVX_NUM_CHARS_UPPER_LETTER_N: pStr = OOO_STRING_SVTOOLS_RTF_PGNUCLTR; break; + case SVX_NUM_CHARS_LOWER_LETTER: + case SVX_NUM_CHARS_LOWER_LETTER_N: pStr = OOO_STRING_SVTOOLS_RTF_PGNLCLTR; break; + case SVX_NUM_ROMAN_UPPER: pStr = OOO_STRING_SVTOOLS_RTF_PGNUCRM; break; + case SVX_NUM_ROMAN_LOWER: pStr = OOO_STRING_SVTOOLS_RTF_PGNLCRM; break; + + case SVX_NUM_ARABIC: pStr = OOO_STRING_SVTOOLS_RTF_PGNDEC; break; + } + if (pStr) + m_aSectionBreaks.append(pStr); +} + +void RtfAttributeOutput::SectionType( BYTE nBreakCode ) +{ + OSL_TRACE("%s, nBreakCode = %d", OSL_THIS_FUNC, nBreakCode); + + /* + * break code: 0 No break, 1 New column + * 2 New page, 3 Even page, 4 Odd page + */ + const char* sType = NULL; + switch ( nBreakCode ) + { + case 1: sType = OOO_STRING_SVTOOLS_RTF_SBKCOL; break; + case 2: sType = OOO_STRING_SVTOOLS_RTF_SBKPAGE; break; + case 3: sType = OOO_STRING_SVTOOLS_RTF_SBKEVEN; break; + case 4: sType = OOO_STRING_SVTOOLS_RTF_SBKODD; break; + default: sType = OOO_STRING_SVTOOLS_RTF_SBKNONE; break; + } + m_aSectionBreaks.append(sType); + if (!m_bBufferSectionBreaks) + m_rExport.Strm() << m_aSectionBreaks.makeStringAndClear(); +} + +void RtfAttributeOutput::NumberingDefinition( USHORT nId, const SwNumRule &/*rRule*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_rExport.Strm() << '{' << OOO_STRING_SVTOOLS_RTF_LISTOVERRIDE; + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_LISTID; + m_rExport.OutULong(nId); + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_LISTOVERRIDECOUNT << '0'; + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_LS; + m_rExport.OutULong(nId) << '}'; +} + +void RtfAttributeOutput::StartAbstractNumbering( USHORT nId ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_rExport.Strm() << '{' << OOO_STRING_SVTOOLS_RTF_LIST << OOO_STRING_SVTOOLS_RTF_LISTTEMPLATEID; + m_rExport.OutULong( nId ); + m_nListId = nId; +} + +void RtfAttributeOutput::EndAbstractNumbering() +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_LISTID; + m_rExport.OutULong( m_nListId ) << '}' << m_rExport.sNewLine; +} + +void RtfAttributeOutput::NumberingLevel( BYTE nLevel, + USHORT nStart, + USHORT nNumberingType, + SvxAdjust eAdjust, + const BYTE * pNumLvlPos, + BYTE /*nFollow*/, + const wwFont * pFont, + const SfxItemSet * pOutSet, + sal_Int16 nIndentAt, + sal_Int16 nFirstLineIndex, + sal_Int16 /*nListTabPos*/, + const String &rNumberingString ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_rExport.Strm() << m_rExport.sNewLine; + if( nLevel > 8 ) // RTF knows only 9 levels + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_IGNORE << OOO_STRING_SVTOOLS_RTF_SOUTLVL; + + m_rExport.Strm() << '{' << OOO_STRING_SVTOOLS_RTF_LISTLEVEL; + + USHORT nVal = 0; + switch( nNumberingType ) + { + case SVX_NUM_ROMAN_UPPER: nVal = 1; break; + case SVX_NUM_ROMAN_LOWER: nVal = 2; break; + case SVX_NUM_CHARS_UPPER_LETTER: + case SVX_NUM_CHARS_UPPER_LETTER_N: nVal = 3; break; + case SVX_NUM_CHARS_LOWER_LETTER: + case SVX_NUM_CHARS_LOWER_LETTER_N: nVal = 4; break; + + case SVX_NUM_BITMAP: + case SVX_NUM_CHAR_SPECIAL: nVal = 23; break; + } + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_LEVELNFC; + m_rExport.OutULong( nVal ); + + switch( eAdjust ) + { + case SVX_ADJUST_CENTER: nVal = 1; break; + case SVX_ADJUST_RIGHT: nVal = 2; break; + default: nVal = 0; break; + } + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_LEVELJC; + m_rExport.OutULong( nVal ); + + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_LEVELSTARTAT; + m_rExport.OutULong( nStart ); + + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_LEVELFOLLOW << "0"; + + // leveltext group + m_rExport.Strm() << '{' << OOO_STRING_SVTOOLS_RTF_LEVELTEXT << ' '; + + if( SVX_NUM_CHAR_SPECIAL == nNumberingType || + SVX_NUM_BITMAP == nNumberingType ) + { + m_rExport.Strm() << "\\'01"; + sal_Unicode cChar = rNumberingString.GetChar(0); + m_rExport.Strm() << "\\u"; + m_rExport.OutULong(cChar); + m_rExport.Strm() << " ?"; + } + else + { + m_rExport.Strm() << "\\'" << m_rExport.OutHex( rNumberingString.Len(), 2 ); + m_rExport.Strm() << m_rExport.OutString( rNumberingString, m_rExport.eDefaultEncoding ); + } + + m_rExport.Strm() << ";}"; + + // write the levelnumbers + m_rExport.Strm() << "{" << OOO_STRING_SVTOOLS_RTF_LEVELNUMBERS; + for( BYTE i = 0; i <= nLevel && pNumLvlPos[ i ]; ++i ) + { + m_rExport.Strm() << "\\'" << m_rExport.OutHex(pNumLvlPos[ i ], 2).getStr(); + } + m_rExport.Strm() << ";}"; + + if( pOutSet ) + { + if (pFont) + { + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_F; + m_rExport.OutULong(m_rExport.maFontHelper.GetId(*pFont)); + } + m_rExport.OutputItemSet( *pOutSet, false, true, i18n::ScriptType::LATIN, m_rExport.mbExportModeRTF ); + m_rExport.Strm() << m_aStyles.makeStringAndClear(); + } + + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_FI; + m_rExport.OutLong( nFirstLineIndex ) << OOO_STRING_SVTOOLS_RTF_LI; + m_rExport.OutLong( nIndentAt ); + + m_rExport.Strm() << '}'; + if( nLevel > 8 ) + m_rExport.Strm() << '}'; +} + +void RtfAttributeOutput::WriteField_Impl( const SwField* pFld, ww::eField /*eType*/, const String& rFldCmd, BYTE /*nMode*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + // NEEDSWORK this has beeen tested only with page numbers + m_aRunText.append("{" OOO_STRING_SVTOOLS_RTF_FIELD); + m_aRunText.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FLDINST " "); + m_aRunText.append(m_rExport.OutString(rFldCmd, m_rExport.eCurrentEncoding)); + m_aRunText.append("}{" OOO_STRING_SVTOOLS_RTF_FLDRSLT " "); + if (pFld) + m_aRunText.append(m_rExport.OutString(pFld->ExpandField(true), m_rExport.eDefaultEncoding)); + m_aRunText.append("}}"); +} + +void RtfAttributeOutput::WriteBookmarks_Impl( std::vector< rtl::OUString >& rStarts, std::vector< rtl::OUString >& rEnds ) +{ + for ( std::vector< OUString >::const_iterator it = rStarts.begin(), end = rStarts.end(); it < end; ++it ) + { + m_aRun.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_BKMKSTART " "); + m_aRun.append(m_rExport.OutString(*it, m_rExport.eCurrentEncoding)); + m_aRun.append('}'); + } + rStarts.clear(); + + for ( std::vector< OUString >::const_iterator it = rEnds.begin(), end = rEnds.end(); it < end; ++it ) + { + m_aRun.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_BKMKEND " "); + m_aRun.append(m_rExport.OutString(*it, m_rExport.eCurrentEncoding)); + m_aRun.append('}'); + } + rEnds.clear(); +} + +void RtfAttributeOutput::WriteHeaderFooter_Impl( const SwFrmFmt& rFmt, bool bHeader, const sal_Char* pStr ) +{ + OStringBuffer aSectionBreaks = m_aSectionBreaks; + m_aSectionBreaks.setLength(0); + OStringBuffer aRun = m_aRun; + m_aRun.setLength(0); + + m_aSectionHeaders.append(bHeader ? OOO_STRING_SVTOOLS_RTF_HEADERY : OOO_STRING_SVTOOLS_RTF_FOOTERY); + m_aSectionHeaders.append((sal_Int32)m_rExport.pAktPageDesc->GetMaster().GetULSpace().GetUpper()); + m_aSectionHeaders.append('{'); + m_aSectionHeaders.append(pStr); + m_bBufferSectionHeaders = true; + m_rExport.WriteHeaderFooterText(rFmt, bHeader); + m_bBufferSectionHeaders = false; + m_aSectionHeaders.append('}'); + + m_aSectionBreaks = aSectionBreaks; + m_aRun = aRun; +} + +void RtfAttributeOutput::OutputFlyFrame_Impl( const sw::Frame& rFrame, const Point& /*rNdTopLeft*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + const SwNode *pNode = rFrame.GetContent(); + const SwGrfNode *pGrfNode = pNode ? pNode->GetGrfNode() : 0; + + switch ( rFrame.GetWriterType() ) + { + case sw::Frame::eTxtBox: + OSL_ENSURE(m_aRunText.getLength() == 0, "m_aRunText is not empty"); + m_rExport.mpParentFrame = &rFrame; + m_rExport.bOutFlyFrmAttrs = m_rExport.bRTFFlySyntax = true; + m_rExport.OutputFormat( rFrame.GetFrmFmt(), false, false, true ); + m_rExport.Strm() << m_aRunText.makeStringAndClear(); + m_rExport.Strm() << m_aStyles.makeStringAndClear(); + m_rExport.bOutFlyFrmAttrs = m_rExport.bRTFFlySyntax = false; + m_rExport.Strm() << "{" OOO_STRING_SVTOOLS_RTF_IGNORE; + m_rExport.OutputFormat( rFrame.GetFrmFmt(), false, false, true ); + m_rExport.Strm() << m_aRunText.makeStringAndClear(); + m_rExport.Strm() << m_aStyles.makeStringAndClear(); + m_rExport.Strm() << '}'; + + { + /* + * Save m_aRun as we should not loose the opening brace. + * OTOH, just drop the contents of m_aRunText in case something + * would be there, causing a problem later. + */ + OString aSave = m_aRun.makeStringAndClear(); + m_rExport.bRTFFlySyntax = true; + + const SwFrmFmt& rFrmFmt = rFrame.GetFrmFmt( ); + const SwNodeIndex* pNodeIndex = rFrmFmt.GetCntnt().GetCntntIdx(); + ULONG nStt = pNodeIndex ? pNodeIndex->GetIndex()+1 : 0; + ULONG nEnd = pNodeIndex ? pNodeIndex->GetNode().EndOfSectionIndex() : 0; + m_rExport.SaveData( nStt, nEnd ); + m_rExport.mpParentFrame = &rFrame; + m_rExport.WriteText( ); + m_rExport.RestoreData(); + + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_PARD; + m_rExport.bRTFFlySyntax = false; + m_aRun.append(aSave); + m_aRunText.setLength(0); + } + + m_rExport.mpParentFrame = NULL; + m_rExport.Strm() << RtfExport::sNewLine; + break; + case sw::Frame::eGraphic: + if (!rFrame.IsInline()) + { + m_rExport.mpParentFrame = &rFrame; + m_rExport.bRTFFlySyntax = true; + m_rExport.OutputFormat( rFrame.GetFrmFmt(), false, false, true ); + m_rExport.bRTFFlySyntax = false; + m_aRunText.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE); + m_rExport.OutputFormat( rFrame.GetFrmFmt(), false, false, true ); + m_aRunText.append('}'); + m_rExport.mpParentFrame = NULL; + } + + if ( pGrfNode ) + FlyFrameGraphic( dynamic_cast<const SwFlyFrmFmt*>( &rFrame.GetFrmFmt() ), *pGrfNode, rFrame.GetLayoutSize() ); + break; + case sw::Frame::eDrawing: + { + const SdrObject* pSdrObj = rFrame.GetFrmFmt().FindRealSdrObject(); + if ( pSdrObj ) + { + bool bSwapInPage = false; + if ( !pSdrObj->GetPage() ) + { + if ( SdrModel* pModel = m_rExport.pDoc->GetDrawModel() ) + { + if ( SdrPage *pPage = pModel->GetPage( 0 ) ) + { + bSwapInPage = true; + const_cast< SdrObject* >( pSdrObj )->SetPage( pPage ); + } + } + } + + m_aRunText.append("{" OOO_STRING_SVTOOLS_RTF_FIELD "{"); + m_aRunText.append(OOO_STRING_SVTOOLS_RTF_IGNORE); + m_aRunText.append(OOO_STRING_SVTOOLS_RTF_FLDINST); + m_aRunText.append(" SHAPE "); + m_aRunText.append("}" "{" OOO_STRING_SVTOOLS_RTF_FLDRSLT); + + m_rExport.SdrExporter().AddSdrObject( *pSdrObj ); + + m_aRunText.append('}'); + m_aRunText.append('}'); + + if ( bSwapInPage ) + const_cast< SdrObject* >( pSdrObj )->SetPage( 0 ); + } + } + break; + case sw::Frame::eFormControl: + { + const SwFrmFmt &rFrmFmt = rFrame.GetFrmFmt(); + const SdrObject *pObject = rFrmFmt.FindRealSdrObject(); + + m_aRun.append("{" OOO_STRING_SVTOOLS_RTF_FIELD); + m_aRun.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FLDINST); + + if (pObject && pObject->GetObjInventor() == FmFormInventor) + { + if (SdrUnoObj *pFormObj = PTR_CAST(SdrUnoObj,pObject)) + { + uno::Reference< awt::XControlModel > xControlModel = + pFormObj->GetUnoControlModel(); + uno::Reference< lang::XServiceInfo > xInfo(xControlModel, uno::UNO_QUERY); + uno::Reference<beans::XPropertySet> xPropSet(xControlModel, uno::UNO_QUERY); + uno::Reference<beans::XPropertySetInfo> xPropSetInfo = xPropSet->getPropertySetInfo(); + OUString sName; + if (xInfo->supportsService(C2U("com.sun.star.form.component.CheckBox"))) + { + + m_aRun.append(OUStringToOString(OUString(FieldString(ww::eFORMCHECKBOX)), m_rExport.eCurrentEncoding)); + m_aRun.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FORMFIELD "{"); + m_aRun.append(OOO_STRING_SVTOOLS_RTF_FFTYPE "1"); // 1 = checkbox + // checkbox size in half points, this seems to be always 20, see WW8Export::DoCheckBox() + m_aRun.append(OOO_STRING_SVTOOLS_RTF_FFHPS "20"); + + OUString aStr; + sName = C2U("Name"); + if (xPropSetInfo->hasPropertyByName(sName)) + { + xPropSet->getPropertyValue(sName) >>= aStr; + m_aRun.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FFNAME " "); + m_aRun.append(OUStringToOString(aStr, m_rExport.eCurrentEncoding)); + m_aRun.append('}'); + } + + sName = C2U("HelpText"); + if (xPropSetInfo->hasPropertyByName(sName)) + { + xPropSet->getPropertyValue(sName) >>= aStr; + m_aRun.append(OOO_STRING_SVTOOLS_RTF_FFOWNHELP); + m_aRun.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FFHELPTEXT " "); + m_aRun.append(OUStringToOString(aStr, m_rExport.eCurrentEncoding)); + m_aRun.append('}'); + } + + sName = C2U("HelpF1Text"); + if (xPropSetInfo->hasPropertyByName(sName)) + { + xPropSet->getPropertyValue(sName) >>= aStr; + m_aRun.append(OOO_STRING_SVTOOLS_RTF_FFOWNSTAT); + m_aRun.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FFSTATTEXT " "); + m_aRun.append(OUStringToOString(aStr, m_rExport.eCurrentEncoding)); + m_aRun.append('}'); + } + + sal_Int16 nTemp = 0; + xPropSet->getPropertyValue(C2U("DefaultState")) >>= nTemp; + m_aRun.append(OOO_STRING_SVTOOLS_RTF_FFDEFRES); + m_aRun.append((sal_Int32)nTemp); + xPropSet->getPropertyValue(C2U("State")) >>= nTemp; + m_aRun.append(OOO_STRING_SVTOOLS_RTF_FFRES); + m_aRun.append((sal_Int32)nTemp); + + m_aRun.append("}}"); + + // field result is empty, ffres already contains the form result + m_aRun.append("}{" OOO_STRING_SVTOOLS_RTF_FLDRSLT " "); + } + else if (xInfo->supportsService(C2U("com.sun.star.form.component.TextField"))) + { + OStringBuffer aBuf; + OString aStr; + OUString aTmp; + const sal_Char* pStr; + + m_aRun.append(OUStringToOString(OUString(FieldString(ww::eFORMTEXT)), m_rExport.eCurrentEncoding)); + m_aRun.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_DATAFIELD " "); + for (int i = 0; i < 8; i++) aBuf.append((sal_Char)0x00); + xPropSet->getPropertyValue(C2U("Name")) >>= aTmp; + aStr = OUStringToOString(aTmp, m_rExport.eCurrentEncoding); + aBuf.append((sal_Char)aStr.getLength()); + aBuf.append(aStr); + aBuf.append((sal_Char)0x00); + xPropSet->getPropertyValue(C2U("DefaultText")) >>= aTmp; + aStr = OUStringToOString(aTmp, m_rExport.eCurrentEncoding); + aBuf.append((sal_Char)aStr.getLength()); + aBuf.append(aStr); + for (int i = 0; i < 11; i++) aBuf.append((sal_Char)0x00); + aStr = aBuf.makeStringAndClear(); + pStr = aStr.getStr(); + for (int i = 0; i < aStr.getLength(); i++, pStr++) + m_aRun.append(m_rExport.OutHex(*pStr, 2)); + m_aRun.append('}'); + m_aRun.append("}{" OOO_STRING_SVTOOLS_RTF_FLDRSLT " "); + xPropSet->getPropertyValue(C2U("Text")) >>= aTmp; + m_aRun.append(OUStringToOString(aTmp, m_rExport.eCurrentEncoding)); + m_aRun.append('}'); + m_aRun.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FORMFIELD "{"); + sName = C2U("HelpText"); + if (xPropSetInfo->hasPropertyByName(sName)) + { + xPropSet->getPropertyValue(sName) >>= aTmp; + m_aRun.append(OOO_STRING_SVTOOLS_RTF_FFOWNHELP); + m_aRun.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FFHELPTEXT " "); + m_aRun.append(OUStringToOString(aTmp, m_rExport.eCurrentEncoding)); + m_aRun.append('}'); + } + + sName = C2U("HelpF1Text"); + if (xPropSetInfo->hasPropertyByName(sName)) + { + xPropSet->getPropertyValue(sName) >>= aTmp; + m_aRun.append(OOO_STRING_SVTOOLS_RTF_FFOWNSTAT); + m_aRun.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FFSTATTEXT " "); + m_aRun.append(OUStringToOString(aTmp, m_rExport.eCurrentEncoding)); + m_aRun.append('}'); + } + m_aRun.append("}"); + } + else if (xInfo->supportsService(C2U("com.sun.star.form.component.ListBox"))) + { + OUString aStr; + uno::Sequence<sal_Int16> aIntSeq; + uno::Sequence<OUString> aStrSeq; + + m_aRun.append(OUStringToOString(OUString(FieldString(ww::eFORMDROPDOWN)), m_rExport.eCurrentEncoding)); + m_aRun.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FORMFIELD "{"); + m_aRun.append(OOO_STRING_SVTOOLS_RTF_FFTYPE "2"); // 2 = list + m_aRun.append(OOO_STRING_SVTOOLS_RTF_FFHASLISTBOX); + + xPropSet->getPropertyValue(C2U("DefaultSelection")) >>= aIntSeq; + if( aIntSeq.getLength() ) + { + m_aRun.append(OOO_STRING_SVTOOLS_RTF_FFDEFRES); + // a dropdown list can have only one 'selected item by default' + m_aRun.append((sal_Int32)aIntSeq[0]); + } + + xPropSet->getPropertyValue(C2U("SelectedItems")) >>= aIntSeq; + if( aIntSeq.getLength() ) + { + m_aRun.append(OOO_STRING_SVTOOLS_RTF_FFRES); + // a dropdown list can have only one 'currently selected item' + m_aRun.append((sal_Int32)aIntSeq[0]); + } + + sName = C2U("Name"); + if (xPropSetInfo->hasPropertyByName(sName)) + { + xPropSet->getPropertyValue(sName) >>= aStr; + m_aRun.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FFNAME " "); + m_aRun.append(OUStringToOString(aStr, m_rExport.eCurrentEncoding)); + m_aRun.append('}'); + } + + sName = C2U("HelpText"); + if (xPropSetInfo->hasPropertyByName(sName)) + { + xPropSet->getPropertyValue(sName) >>= aStr; + m_aRun.append(OOO_STRING_SVTOOLS_RTF_FFOWNHELP); + m_aRun.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FFHELPTEXT " "); + m_aRun.append(OUStringToOString(aStr, m_rExport.eCurrentEncoding)); + m_aRun.append('}'); + } + + sName = C2U("HelpF1Text"); + if (xPropSetInfo->hasPropertyByName(sName)) + { + xPropSet->getPropertyValue(sName) >>= aStr; + m_aRun.append(OOO_STRING_SVTOOLS_RTF_FFOWNSTAT); + m_aRun.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FFSTATTEXT " "); + m_aRun.append(OUStringToOString(aStr, m_rExport.eCurrentEncoding)); + m_aRun.append('}'); + } + + + xPropSet->getPropertyValue(C2U("StringItemList")) >>= aStrSeq; + sal_uInt32 nListItems = aStrSeq.getLength(); + for (sal_uInt32 i = 0; i < nListItems; i++) + m_aRun.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FFL " ") + .append(OUStringToOString(aStrSeq[i], m_rExport.eCurrentEncoding)).append('}'); + + m_aRun.append("}}"); + + // field result is empty, ffres already contains the form result + m_aRun.append("}{" OOO_STRING_SVTOOLS_RTF_FLDRSLT " "); + } + else + OSL_TRACE("%s unhandled form control: '%s'", OSL_THIS_FUNC, + OUStringToOString(xInfo->getImplementationName(), m_rExport.eCurrentEncoding).getStr()); + m_aRun.append('}'); + } + } + + m_aRun.append('}'); + } + break; + case sw::Frame::eOle: + { + const SwFrmFmt &rFrmFmt = rFrame.GetFrmFmt(); + const SdrObject *pSdrObj = rFrmFmt.FindRealSdrObject(); + if ( pSdrObj ) + { + SwNodeIndex aIdx(*rFrmFmt.GetCntnt().GetCntntIdx(), 1); + SwOLENode& rOLENd = *aIdx.GetNode().GetOLENode(); + FlyFrameOLE(dynamic_cast<const SwFlyFrmFmt*>( &rFrmFmt ), rOLENd, rFrame.GetLayoutSize()); + } + } + break; + default: + OSL_TRACE("%s: unknown type (%d)", OSL_THIS_FUNC, rFrame.GetWriterType()); + break; + } +} + +void RtfAttributeOutput::CharCaseMap( const SvxCaseMapItem& rCaseMap ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + switch ( rCaseMap.GetValue() ) + { + case SVX_CASEMAP_KAPITAELCHEN: + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_SCAPS); + break; + case SVX_CASEMAP_VERSALIEN: + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_CAPS); + break; + default: // Something that rtf does not support + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_SCAPS); + m_aStyles.append((sal_Int32)0); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_CAPS); + m_aStyles.append((sal_Int32)0); + break; + } +} + +void RtfAttributeOutput::CharColor( const SvxColorItem& rColor ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + const Color aColor( rColor.GetValue() ); + + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_CF); + m_aStyles.append( (sal_Int32)m_rExport.GetColor( aColor )); +} + +void RtfAttributeOutput::CharContour( const SvxContourItem& rContour ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_OUTL); + if ( !rContour.GetValue() ) + m_aStyles.append((sal_Int32)0); +} + +void RtfAttributeOutput::CharCrossedOut( const SvxCrossedOutItem& rCrossedOut ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + switch ( rCrossedOut.GetStrikeout() ) + { + case STRIKEOUT_NONE: + if (!m_bStrikeDouble) + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_STRIKE); + else + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_STRIKED); + m_aStyles.append((sal_Int32)0); + break; + case STRIKEOUT_DOUBLE: + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_STRIKED); + m_aStyles.append((sal_Int32)1); + break; + default: + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_STRIKE); + break; + } +} + +void RtfAttributeOutput::CharEscapement( const SvxEscapementItem& rEsc ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + const char * pUpDn; + + SwTwips nH = ((SvxFontHeightItem&)m_rExport.GetItem( RES_CHRATR_FONTSIZE )).GetHeight(); + + if( 0 < rEsc.GetEsc() ) + pUpDn = OOO_STRING_SVTOOLS_RTF_UP; + else if( 0 > rEsc.GetEsc() ) + { + pUpDn = OOO_STRING_SVTOOLS_RTF_DN; + nH = -nH; + } + else + return; + + short nEsc = rEsc.GetEsc(); + short nProp = rEsc.GetProp() * 100; + if( DFLT_ESC_AUTO_SUPER == nEsc ) + { + nEsc = 100 - rEsc.GetProp(); + ++nProp; + } + else if( DFLT_ESC_AUTO_SUB == nEsc ) + { + nEsc = - 100 + rEsc.GetProp(); + ++nProp; + } + + m_aStyles.append('{'); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_IGNORE); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_UPDNPROP); + m_aStyles.append( (sal_Int32)nProp ); + m_aStyles.append('}'); + m_aStyles.append(pUpDn); + + /* + * Calculate the act. FontSize and the percentage of the displacement; + * RTF file expects half points, while internally it's in twips. + * Formally : (FontSize * 1/20 ) pts x * 2 + * ----------------------- = ------------ + * 100% Escapement + */ + + m_aStyles.append( (sal_Int32) ( (long( nEsc ) * nH) + 500L ) / 1000L ); + // 500L to round !! +} + +void RtfAttributeOutput::CharFont( const SvxFontItem& rFont) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aStylesEnd.append(OOO_STRING_SVTOOLS_RTF_LOCH); + m_aStylesEnd.append(OOO_STRING_SVTOOLS_RTF_F); + m_aStylesEnd.append((sal_Int32)m_rExport.maFontHelper.GetId(rFont)); + m_rExport.eCurrentEncoding = rtl_getTextEncodingFromWindowsCharset(sw::ms::rtl_TextEncodingToWinCharset(rFont.GetCharSet())); +} + +void RtfAttributeOutput::CharFontSize( const SvxFontHeightItem& rFontSize) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + switch ( rFontSize.Which() ) + { + case RES_CHRATR_FONTSIZE: + m_aStylesEnd.append(OOO_STRING_SVTOOLS_RTF_FS); + m_aStylesEnd.append((sal_Int32)(rFontSize.GetHeight() / 10 )); + break; + case RES_CHRATR_CJK_FONTSIZE: + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_FS); + m_aStyles.append((sal_Int32)(rFontSize.GetHeight() / 10 )); + break; + case RES_CHRATR_CTL_FONTSIZE: + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_AFS); + m_aStyles.append((sal_Int32)(rFontSize.GetHeight() / 10 )); + break; + } +} + +void RtfAttributeOutput::CharKerning( const SvxKerningItem& rKerning ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + // in quater points then in twips + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_EXPND); + m_aStyles.append((sal_Int32)(rKerning.GetValue() / 5)); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_EXPNDTW); + m_aStyles.append((sal_Int32)(rKerning.GetValue())); +} + +void RtfAttributeOutput::CharLanguage( const SvxLanguageItem& rLanguage ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + switch (rLanguage.Which()) + { + case RES_CHRATR_LANGUAGE: + m_aStylesEnd.append(OOO_STRING_SVTOOLS_RTF_LANG); + m_aStylesEnd.append((sal_Int32)rLanguage.GetLanguage()); + break; + case RES_CHRATR_CJK_LANGUAGE: + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_LANGFE); + m_aStyles.append((sal_Int32)rLanguage.GetLanguage()); + break; + case RES_CHRATR_CTL_LANGUAGE: + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_LANG); + m_aStyles.append((sal_Int32)rLanguage.GetLanguage()); + break; + } +} + +void RtfAttributeOutput::CharPosture( const SvxPostureItem& rPosture ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_I); + if ( rPosture.GetPosture() == ITALIC_NONE ) + m_aStyles.append((sal_Int32)0); +} + +void RtfAttributeOutput::CharShadow( const SvxShadowedItem& rShadow ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_SHAD); + if ( !rShadow.GetValue() ) + m_aStyles.append((sal_Int32)0); +} + +void RtfAttributeOutput::CharUnderline( const SvxUnderlineItem& rUnderline ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + const char* pStr = 0; + const SfxPoolItem* pItem = m_rExport.HasItem( RES_CHRATR_WORDLINEMODE ); + bool bWord = false; + if (pItem) + bWord = ((const SvxWordLineModeItem*)pItem)->GetValue() ? true : false; + switch(rUnderline.GetLineStyle() ) + { + case UNDERLINE_SINGLE: + pStr = bWord ? OOO_STRING_SVTOOLS_RTF_ULW : OOO_STRING_SVTOOLS_RTF_UL; + break; + case UNDERLINE_DOUBLE: + pStr = OOO_STRING_SVTOOLS_RTF_ULDB; + break; + case UNDERLINE_NONE: + pStr = OOO_STRING_SVTOOLS_RTF_ULNONE; + break; + case UNDERLINE_DOTTED: + pStr = OOO_STRING_SVTOOLS_RTF_ULD; + break; + case UNDERLINE_DASH: + pStr = OOO_STRING_SVTOOLS_RTF_ULDASH; + break; + case UNDERLINE_DASHDOT: + pStr = OOO_STRING_SVTOOLS_RTF_ULDASHD; + break; + case UNDERLINE_DASHDOTDOT: + pStr = OOO_STRING_SVTOOLS_RTF_ULDASHDD; + break; + case UNDERLINE_BOLD: + pStr = OOO_STRING_SVTOOLS_RTF_ULTH; + break; + case UNDERLINE_WAVE: + pStr = OOO_STRING_SVTOOLS_RTF_ULWAVE; + break; + case UNDERLINE_BOLDDOTTED: + pStr = OOO_STRING_SVTOOLS_RTF_ULTHD; + break; + case UNDERLINE_BOLDDASH: + pStr = OOO_STRING_SVTOOLS_RTF_ULTHDASH; + break; + case UNDERLINE_LONGDASH: + pStr = OOO_STRING_SVTOOLS_RTF_ULLDASH; + break; + case UNDERLINE_BOLDLONGDASH: + pStr = OOO_STRING_SVTOOLS_RTF_ULTHLDASH; + break; + case UNDERLINE_BOLDDASHDOT: + pStr = OOO_STRING_SVTOOLS_RTF_ULTHDASHD; + break; + case UNDERLINE_BOLDDASHDOTDOT: + pStr = OOO_STRING_SVTOOLS_RTF_ULTHDASHDD; + break; + case UNDERLINE_BOLDWAVE: + pStr = OOO_STRING_SVTOOLS_RTF_ULHWAVE; + break; + case UNDERLINE_DOUBLEWAVE: + pStr = OOO_STRING_SVTOOLS_RTF_ULULDBWAVE; + break; + default: + break; + } + + if( pStr ) + { + m_aStyles.append(pStr); + // NEEDSWORK looks like here rUnderline.GetColor() is always black, + // even if the color in the odt is for example green... + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_ULC); + m_aStyles.append( (sal_Int32)m_rExport.GetColor(rUnderline.GetColor()) ); + } +} + +void RtfAttributeOutput::CharWeight( const SvxWeightItem& rWeight ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_B); + if ( rWeight.GetWeight() != WEIGHT_BOLD ) + m_aStyles.append((sal_Int32)0); +} + +void RtfAttributeOutput::CharAutoKern( const SvxAutoKernItem& rAutoKern) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_KERNING); + m_aStyles.append((sal_Int32) (rAutoKern.GetValue() ? 1 : 0)); +} + +void RtfAttributeOutput::CharAnimatedText( const SvxBlinkItem& rBlink ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_ANIMTEXT); + m_aStyles.append((sal_Int32) (rBlink.GetValue() ? 2 : 0)); +} + +void RtfAttributeOutput::CharBackground( const SvxBrushItem& rBrush ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if( !rBrush.GetColor().GetTransparency() ) + { + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_CHCBPAT); + m_aStyles.append((sal_Int32)m_rExport.GetColor(rBrush.GetColor())); + } +} + +void RtfAttributeOutput::CharFontCJK( const SvxFontItem& rFont ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_HICH); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_AF); + m_aStyles.append((sal_Int32)m_rExport.maFontHelper.GetId(rFont)); +} + +void RtfAttributeOutput::CharFontSizeCJK( const SvxFontHeightItem& rFontSize ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + CharFontSize( rFontSize ); +} + +void RtfAttributeOutput::CharLanguageCJK( const SvxLanguageItem& rLanguageItem ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + CharLanguage( rLanguageItem ); +} + +void RtfAttributeOutput::CharPostureCJK( const SvxPostureItem& rPosture ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_I); + if ( rPosture.GetPosture() == ITALIC_NONE ) + m_aStyles.append((sal_Int32)0); +} + +void RtfAttributeOutput::CharWeightCJK( const SvxWeightItem& rWeight ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_B); + if ( rWeight.GetWeight() != WEIGHT_BOLD ) + m_aStyles.append((sal_Int32)0); +} + +void RtfAttributeOutput::CharFontCTL( const SvxFontItem& rFont ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_DBCH); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_AF); + m_aStyles.append((sal_Int32)m_rExport.maFontHelper.GetId(rFont)); +} + +void RtfAttributeOutput::CharFontSizeCTL( const SvxFontHeightItem& rFontSize ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + CharFontSize( rFontSize ); +} + +void RtfAttributeOutput::CharLanguageCTL( const SvxLanguageItem& rLanguageItem ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + CharLanguage( rLanguageItem ); +} + +void RtfAttributeOutput::CharPostureCTL( const SvxPostureItem& rPosture) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_AI); + if ( rPosture.GetPosture() == ITALIC_NONE ) + m_aStyles.append((sal_Int32)0); +} + +void RtfAttributeOutput::CharWeightCTL( const SvxWeightItem& rWeight ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_AB); + if ( rWeight.GetWeight() != WEIGHT_BOLD ) + m_aStyles.append((sal_Int32)0); +} + +void RtfAttributeOutput::CharRotate( const SvxCharRotateItem& rRotate) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_HORZVERT); + m_aStyles.append((sal_Int32)(rRotate.IsFitToLine() ? 1 : 0)); +} + +void RtfAttributeOutput::CharEmphasisMark( const SvxEmphasisMarkItem& rEmphasisMark ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + const sal_Char* pStr; + switch( rEmphasisMark.GetEmphasisMark()) + { + case EMPHASISMARK_NONE: pStr = OOO_STRING_SVTOOLS_RTF_ACCNONE; break; + case EMPHASISMARK_SIDE_DOTS: pStr = OOO_STRING_SVTOOLS_RTF_ACCCOMMA; break; + default: pStr = OOO_STRING_SVTOOLS_RTF_ACCDOT; break; + } + m_aStyles.append(pStr); +} + +void RtfAttributeOutput::CharTwoLines( const SvxTwoLinesItem& rTwoLines ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if( rTwoLines.GetValue() ) + { + sal_Unicode cStart = rTwoLines.GetStartBracket(); + sal_Unicode cEnd = rTwoLines.GetEndBracket(); + + USHORT nType; + if( !cStart && !cEnd ) + nType = 0; + else if( '{' == cStart || '}' == cEnd ) + nType = 4; + else if( '<' == cStart || '>' == cEnd ) + nType = 3; + else if( '[' == cStart || ']' == cEnd ) + nType = 2; + else // all other kind of brackets + nType = 1; + + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_TWOINONE); + m_aStyles.append((sal_Int32)nType); + } +} + +void RtfAttributeOutput::CharScaleWidth( const SvxCharScaleWidthItem& rScaleWidth ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_CHARSCALEX); + m_aStyles.append((sal_Int32)rScaleWidth.GetValue()); +} + +void RtfAttributeOutput::CharRelief( const SvxCharReliefItem& rRelief ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + const sal_Char* pStr; + switch (rRelief.GetValue()) + { + case RELIEF_EMBOSSED: + pStr = OOO_STRING_SVTOOLS_RTF_EMBO; + break; + case RELIEF_ENGRAVED: + pStr = OOO_STRING_SVTOOLS_RTF_IMPR; + break; + default: + pStr = 0; + break; + } + + if (pStr) + m_aStyles.append(pStr); +} + +void RtfAttributeOutput::CharHidden( const SvxCharHiddenItem& rHidden ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_V); + if ( !rHidden.GetValue() ) + m_aStyles.append((sal_Int32)0); +} + +void RtfAttributeOutput::TextINetFormat( const SwFmtINetFmt& rURL ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if( rURL.GetValue().Len() ) + { + const SwCharFmt* pFmt; + const SwTxtINetFmt* pTxtAtr = rURL.GetTxtINetFmt(); + + m_aStyles.append("{" OOO_STRING_SVTOOLS_RTF_FLDRSLT " "); + if( pTxtAtr && 0 != ( pFmt = pTxtAtr->GetCharFmt() )) + { + USHORT nStyle = m_rExport.GetId( *pFmt ); + OString* pString = m_rExport.GetStyle(nStyle); + if (pString) + m_aStyles.append(*pString); + } + } +} + +void RtfAttributeOutput::TextCharFormat( const SwFmtCharFmt& rCharFmt ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + USHORT nStyle = m_rExport.GetId( *rCharFmt.GetCharFmt() ); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_CS); + m_aStyles.append((sal_Int32)nStyle); + OString* pString = m_rExport.GetStyle(nStyle); + if (pString) + m_aStyles.append(*pString); +} + +void RtfAttributeOutput::WriteTextFootnoteNumStr(const SwFmtFtn& rFootnote) +{ + if (!rFootnote.GetNumStr().Len()) + m_aRun.append(OOO_STRING_SVTOOLS_RTF_CHFTN); + else + m_aRun.append(m_rExport.OutString(rFootnote.GetNumStr(), m_rExport.eCurrentEncoding)); +} + +void RtfAttributeOutput::TextFootnote_Impl( const SwFmtFtn& rFootnote ) +{ + OSL_TRACE("%s start", OSL_THIS_FUNC); + + m_aRun.append("{" OOO_STRING_SVTOOLS_RTF_SUPER " "); + WriteTextFootnoteNumStr(rFootnote); + m_aRun.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FOOTNOTE); + if( rFootnote.IsEndNote() ) + m_aRun.append(OOO_STRING_SVTOOLS_RTF_FTNALT); + m_aRun.append(' '); + WriteTextFootnoteNumStr(rFootnote); + + /* + * The footnote contains a whole paragraph, so we have to: + * 1) Reset, then later restore the contents of our run buffer. + * 2) Buffer the output of the whole paragraph, as we do so for section headers already. + */ + const SwNodeIndex* pIndex = rFootnote.GetTxtFtn()->GetStartNode(); + OStringBuffer aRun = m_aRun; + m_aRun.setLength(0); + m_bBufferSectionHeaders = true; + m_rExport.WriteSpecialText( pIndex->GetIndex() + 1, + pIndex->GetNode().EndOfSectionIndex(), + !rFootnote.IsEndNote() ? TXT_FTN : TXT_EDN); + m_bBufferSectionHeaders = false; + m_aRun = aRun; + m_aRun.append(m_aSectionHeaders.makeStringAndClear()); + + m_aRun.append("}"); + m_aRun.append("}"); + + OSL_TRACE("%s end", OSL_THIS_FUNC); +} + +void RtfAttributeOutput::ParaLineSpacing_Impl( short nSpace, short nMulti ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_SL); + m_aStyles.append((sal_Int32)nSpace); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_SLMULT); + m_aStyles.append((sal_Int32)nMulti); + +} + +void RtfAttributeOutput::ParaAdjust( const SvxAdjustItem& rAdjust ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + switch ( rAdjust.GetAdjust() ) + { + case SVX_ADJUST_LEFT: + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_QL); + break; + case SVX_ADJUST_RIGHT: + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_QR); + break; + case SVX_ADJUST_BLOCKLINE: + case SVX_ADJUST_BLOCK: + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_QJ); + break; + case SVX_ADJUST_CENTER: + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_QC); + break; + default: + break; + } +} + +void RtfAttributeOutput::ParaSplit( const SvxFmtSplitItem& rSplit ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if( !rSplit.GetValue() ) + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_KEEP); +} + +void RtfAttributeOutput::ParaWidows( const SvxWidowsItem& rWidows ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if (rWidows.GetValue()) + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_WIDCTLPAR); + else + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_NOWIDCTLPAR); +} + +void RtfAttributeOutput::ParaTabStop( const SvxTabStopItem& rTabStop ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + long nOffset = ((SvxLRSpaceItem&)m_rExport.GetItem( RES_LR_SPACE )).GetTxtLeft(); + for( USHORT n = 0; n < rTabStop.Count(); n++ ) + { + const SvxTabStop & rTS = rTabStop[ n ]; + if( SVX_TAB_ADJUST_DEFAULT != rTS.GetAdjustment() ) + { + const char* pFill = 0; + switch( rTS.GetFill() ) + { + case cDfltFillChar: + break; + + case '.': pFill = OOO_STRING_SVTOOLS_RTF_TLDOT; break; + case '_': pFill = OOO_STRING_SVTOOLS_RTF_TLUL; break; + case '-': pFill = OOO_STRING_SVTOOLS_RTF_TLTH; break; + case '=': pFill = OOO_STRING_SVTOOLS_RTF_TLEQ; break; + default: + break; + } + if( pFill ) + m_aStyles.append(pFill); + + const sal_Char* pAdjStr = 0; + switch (rTS.GetAdjustment()) + { + case SVX_TAB_ADJUST_RIGHT: + pAdjStr = OOO_STRING_SVTOOLS_RTF_TQR; + break; + case SVX_TAB_ADJUST_DECIMAL: + pAdjStr = OOO_STRING_SVTOOLS_RTF_TQDEC; + break; + case SVX_TAB_ADJUST_CENTER: + pAdjStr = OOO_STRING_SVTOOLS_RTF_TQC; + break; + default: + break; + } + if (pAdjStr) + m_aStyles.append(pAdjStr); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_TX); + m_aStyles.append((sal_Int32)(rTS.GetTabPos() + nOffset)); + } + else + { + m_aTabStop.append( OOO_STRING_SVTOOLS_RTF_DEFTAB ); + m_aTabStop.append( (sal_Int32)rTabStop[0].GetTabPos() ); + } + } +} + +void RtfAttributeOutput::ParaHyphenZone( const SvxHyphenZoneItem& rHyphenZone ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + sal_Int32 nFlags = rHyphenZone.IsHyphen() ? 1 : 0; + if( rHyphenZone.IsPageEnd() ) + nFlags += 2; + m_aStyles.append('{'); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_IGNORE); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_HYPHEN); + m_aStyles.append((sal_Int32)nFlags); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_HYPHLEAD); + m_aStyles.append((sal_Int32)rHyphenZone.GetMinLead()); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_HYPHTRAIL); + m_aStyles.append((sal_Int32)rHyphenZone.GetMinTrail()); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_HYPHMAX); + m_aStyles.append((sal_Int32)rHyphenZone.GetMaxHyphens()); + m_aStyles.append('}'); +} + +void RtfAttributeOutput::ParaNumRule_Impl( const SwTxtNode* pTxtNd, sal_Int32 nLvl, sal_Int32 nNumId ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if ( USHRT_MAX == nNumId || 0 == nNumId || 0 == pTxtNd) + return; + + const SwNumRule* pRule = pTxtNd->GetNumRule(); + + // --> OD 2008-03-18 #refactorlists# + // if( pRule && MAXLEVEL > pTxtNd->GetActualListLevel() ) + if( pRule && pTxtNd->IsInList() ) + // <-- + { + // --> OD 2008-03-18 #refactorlists# + ASSERT( pTxtNd->GetActualListLevel() >= 0 && pTxtNd->GetActualListLevel() < MAXLEVEL, + "<SwRTFWriter::OutListNum(..)> - text node does not have valid list level. Serious defect -> please inform OD" ); + // <-- + + const bool bExportNumRule = USHRT_MAX != nNumId; + const SwNumFmt* pFmt = pRule->GetNumFmt( nLvl ); + if( !pFmt ) + pFmt = &pRule->Get( nLvl ); + + const SfxItemSet& rNdSet = pTxtNd->GetSwAttrSet(); + + if ( bExportNumRule ) { + m_aStyles.append('{'); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_LISTTEXT); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_PARD); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_PLAIN); + m_aStyles.append(' '); + } + + SvxLRSpaceItem aLR( (SvxLRSpaceItem&)rNdSet.Get( RES_LR_SPACE ) ); + aLR.SetTxtLeft( aLR.GetTxtLeft() + pFmt->GetIndentAt() ); + aLR.SetTxtFirstLineOfst( pFmt->GetFirstLineOffset() ); + + USHORT nStyle = m_rExport.GetId( *pFmt->GetCharFmt() ); + OString* pString = m_rExport.GetStyle(nStyle); + if (pString) + m_aStyles.append(*pString); + + { + String sTxt; + if( SVX_NUM_CHAR_SPECIAL == pFmt->GetNumberingType() || SVX_NUM_BITMAP == pFmt->GetNumberingType() ) + sTxt = pFmt->GetBulletChar(); + else + sTxt = pTxtNd->GetNumString(); + + m_aStyles.append(' '); + + if (sTxt.Len()) + { + m_aStyles.append(m_rExport.OutString(sTxt, m_rExport.eDefaultEncoding)); + } + + if( bExportNumRule ) + { + if( OUTLINE_RULE != pRule->GetRuleType() ) + { + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_TAB); + m_aStyles.append('}'); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_ILVL); + if( nLvl > 8 ) // RTF knows only 9 levels + { + m_aStyles.append((sal_Int32)8); + m_aStyles.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_SOUTLVL); + m_aStyles.append((sal_Int32)nLvl); + m_aStyles.append('}'); + } + else + m_aStyles.append((sal_Int32)nLvl); + } + else + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_TAB "}"); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_LS); + m_aStyles.append((sal_Int32)m_rExport.GetId(*pRule)+1); + m_aStyles.append(' '); + } + else if( sTxt.Len() ) + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_TAB); + } + FormatLRSpace(aLR); + } +} + +void RtfAttributeOutput::ParaScriptSpace( const SfxBoolItem& rScriptSpace ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if (!rScriptSpace.GetValue( )) + return; + switch ( rScriptSpace.Which( ) ) + { + case RES_PARATR_SCRIPTSPACE: + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_ASPALPHA); + break; + /* Is this needed? + case RES_PARATR_HANGINGPUNCTUATION: + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_NOOVERFLOW); + break; + case RES_PARATR_FORBIDDEN_RULES: + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_NOCWRAP); + break;*/ + default: + break; + } +} + +void RtfAttributeOutput::ParaVerticalAlign( const SvxParaVertAlignItem& rAlign ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + const char* pStr; + switch ( rAlign.GetValue() ) + { + case SvxParaVertAlignItem::TOP: pStr = OOO_STRING_SVTOOLS_RTF_FAHANG; break; + case SvxParaVertAlignItem::BOTTOM: pStr = OOO_STRING_SVTOOLS_RTF_FAVAR; break; + case SvxParaVertAlignItem::CENTER: pStr = OOO_STRING_SVTOOLS_RTF_FACENTER; break; + case SvxParaVertAlignItem::BASELINE: pStr = OOO_STRING_SVTOOLS_RTF_FAROMAN; break; + // default == SvxParaVertAlignItem::AUTOMATIC + default: pStr = OOO_STRING_SVTOOLS_RTF_FAAUTO; break; + } + m_aStyles.append(pStr); +} + +void RtfAttributeOutput::ParaSnapToGrid( const SvxParaGridItem& /*rGrid*/ ) +{ + OSL_TRACE("TODO: %s", OSL_THIS_FUNC); +} + +void RtfAttributeOutput::FormatFrameSize( const SwFmtFrmSize& rSize ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if ( m_rExport.bOutFlyFrmAttrs && m_rExport.bRTFFlySyntax ) + { + if( rSize.GetWidth() ) + { + m_aRunText.append(OOO_STRING_SVTOOLS_RTF_ABSW); + m_aRunText.append((sal_Int32)rSize.GetWidth()); + } + + if( rSize.GetHeight() ) + { + long nH = rSize.GetHeight(); + if( ATT_FIX_SIZE == rSize.GetHeightSizeType() ) + nH = -nH; + m_aRunText.append(OOO_STRING_SVTOOLS_RTF_ABSH); + m_aRunText.append((sal_Int32)nH); + } + } + else if (m_rExport.bOutPageDescs) + { + m_aSectionBreaks.append(OOO_STRING_SVTOOLS_RTF_PGWSXN); + m_aSectionBreaks.append((sal_Int32)rSize.GetWidth()); + m_aSectionBreaks.append(OOO_STRING_SVTOOLS_RTF_PGHSXN); + m_aSectionBreaks.append((sal_Int32)rSize.GetHeight()); + if (!m_bBufferSectionBreaks) + m_rExport.Strm() << m_aSectionBreaks.makeStringAndClear(); + } +} + +void RtfAttributeOutput::FormatPaperBin( const SvxPaperBinItem& ) +{ + OSL_TRACE("TODO: %s", OSL_THIS_FUNC); +} + +void RtfAttributeOutput::FormatLRSpace( const SvxLRSpaceItem& rLRSpace ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if ( !m_rExport.bOutFlyFrmAttrs ) + { + if( m_rExport.bOutPageDescs ) + { + if( rLRSpace.GetLeft() ) + { + m_aSectionBreaks.append(OOO_STRING_SVTOOLS_RTF_MARGLSXN); + m_aSectionBreaks.append((sal_Int32)rLRSpace.GetLeft()); + } + if( rLRSpace.GetRight() ) + { + m_aSectionBreaks.append(OOO_STRING_SVTOOLS_RTF_MARGRSXN); + m_aSectionBreaks.append((sal_Int32)rLRSpace.GetRight()); + } + if (!m_bBufferSectionBreaks) + m_rExport.Strm() << m_aSectionBreaks.makeStringAndClear(); + } + else + { + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_LI); + m_aStyles.append( (sal_Int32) rLRSpace.GetTxtLeft() ); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_RI); + m_aStyles.append( (sal_Int32) rLRSpace.GetRight() ); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_LIN); + m_aStyles.append( (sal_Int32) rLRSpace.GetTxtLeft() ); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_RIN); + m_aStyles.append( (sal_Int32) rLRSpace.GetRight() ); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_FI); + m_aStyles.append( (sal_Int32) rLRSpace.GetTxtFirstLineOfst() ); + } + } + else if (rLRSpace.GetLeft() == rLRSpace.GetRight() && m_rExport.bRTFFlySyntax) + { + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_DFRMTXTX; + m_rExport.OutLong( rLRSpace.GetLeft() ); + } +} + +void RtfAttributeOutput::FormatULSpace( const SvxULSpaceItem& rULSpace ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if ( !m_rExport.bOutFlyFrmAttrs ) + { + if( m_rExport.bOutPageDescs ) + { + + ASSERT( m_rExport.GetCurItemSet(), "Impossible" ); + if ( !m_rExport.GetCurItemSet() ) + return; + + HdFtDistanceGlue aDistances( *m_rExport.GetCurItemSet() ); + + if ( aDistances.HasHeader() ) + { + if( aDistances.dyaTop ) + { + m_aSectionBreaks.append(OOO_STRING_SVTOOLS_RTF_MARGTSXN); + m_aSectionBreaks.append((sal_Int32)aDistances.dyaTop); + } + m_aSectionBreaks.append(OOO_STRING_SVTOOLS_RTF_HEADERY); + m_aSectionBreaks.append((sal_Int32)aDistances.dyaHdrTop); + } + + if( aDistances.HasFooter() ) + { + if( aDistances.dyaBottom ) + { + m_aSectionBreaks.append(OOO_STRING_SVTOOLS_RTF_MARGBSXN); + m_aSectionBreaks.append((sal_Int32)aDistances.dyaBottom); + } + m_aSectionBreaks.append(OOO_STRING_SVTOOLS_RTF_FOOTERY); + m_aSectionBreaks.append((sal_Int32)aDistances.dyaHdrBottom); + } + if (!m_bBufferSectionBreaks) + m_rExport.Strm() << m_aSectionBreaks.makeStringAndClear(); + } + else + { + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_SB); + m_aStyles.append( (sal_Int32) rULSpace.GetUpper() ); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_SA); + m_aStyles.append( (sal_Int32) rULSpace.GetLower() ); + } + } + else if (rULSpace.GetUpper() == rULSpace.GetLower() && m_rExport.bRTFFlySyntax) + { + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_DFRMTXTY; + m_rExport.OutLong( rULSpace.GetLower() ); + } +} + +void RtfAttributeOutput::FormatSurround( const SwFmtSurround& rSurround ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if ( m_rExport.bOutFlyFrmAttrs && !m_rExport.bRTFFlySyntax ) + { + SwSurround eSurround = rSurround.GetSurround(); + BOOL bGold = SURROUND_IDEAL == eSurround; + if( bGold ) + eSurround = SURROUND_PARALLEL; + RTFSurround aMC( bGold, static_cast< BYTE >(eSurround) ); + m_aRunText.append(OOO_STRING_SVTOOLS_RTF_FLYMAINCNT); + m_aRunText.append( (sal_Int32) aMC.GetValue() ); + } +} + +void RtfAttributeOutput::FormatVertOrientation( const SwFmtVertOrient& rFlyVert ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if ( m_rExport.bOutFlyFrmAttrs && m_rExport.bRTFFlySyntax ) + { + m_aRunText.append(OOO_STRING_SVTOOLS_RTF_PVPARA); + + switch (rFlyVert.GetVertOrient()) + { + case text::VertOrientation::TOP: + case text::VertOrientation::LINE_TOP: + m_aRunText.append(OOO_STRING_SVTOOLS_RTF_POSYT); + break; + case text::VertOrientation::BOTTOM: + case text::VertOrientation::LINE_BOTTOM: + m_aRunText.append(OOO_STRING_SVTOOLS_RTF_POSYB); + break; + case text::VertOrientation::CENTER: + case text::VertOrientation::LINE_CENTER: + m_aRunText.append(OOO_STRING_SVTOOLS_RTF_POSYC); + break; + case text::VertOrientation::NONE: + m_aRunText.append(OOO_STRING_SVTOOLS_RTF_POSY); + m_aRunText.append((sal_Int32)rFlyVert.GetPos()); + break; + default: + break; + } + } + else if ( !m_rExport.bRTFFlySyntax ) + { + RTFVertOrient aVO( static_cast< USHORT >(rFlyVert.GetVertOrient()), static_cast< USHORT >(rFlyVert.GetRelationOrient()) ); + m_aRunText.append(OOO_STRING_SVTOOLS_RTF_FLYVERT); + m_aRunText.append((sal_Int32)aVO.GetValue()); + } +} + +void RtfAttributeOutput::FormatHorizOrientation( const SwFmtHoriOrient& rFlyHori ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if ( m_rExport.bOutFlyFrmAttrs && m_rExport.bRTFFlySyntax ) + { + m_aRunText.append(OOO_STRING_SVTOOLS_RTF_PHCOL); + + const char* pS = 0; + switch(rFlyHori.GetHoriOrient()) + { + case text::HoriOrientation::RIGHT: + pS = rFlyHori.IsPosToggle() ? OOO_STRING_SVTOOLS_RTF_POSXO : OOO_STRING_SVTOOLS_RTF_POSXR; + break; + case text::HoriOrientation::LEFT: + pS = rFlyHori.IsPosToggle() ? OOO_STRING_SVTOOLS_RTF_POSXI : OOO_STRING_SVTOOLS_RTF_POSXL; + break; + case text::HoriOrientation::CENTER: + pS = OOO_STRING_SVTOOLS_RTF_POSXC; + break; + case text::HoriOrientation::NONE: + m_aRunText.append(OOO_STRING_SVTOOLS_RTF_POSX); + m_aRunText.append((sal_Int32)rFlyHori.GetPos()); + break; + default: + break; + } + if (pS) + m_aRunText.append(pS); + } else if ( !m_rExport.bRTFFlySyntax ) + { + RTFHoriOrient aHO( static_cast< USHORT >(rFlyHori.GetHoriOrient()), + static_cast< USHORT >(rFlyHori.GetRelationOrient()) ); + m_aRunText.append(OOO_STRING_SVTOOLS_RTF_FLYHORZ); + m_aRunText.append((sal_Int32)aHO.GetValue()); + } +} + +void RtfAttributeOutput::FormatAnchor( const SwFmtAnchor& rAnchor ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if ( !m_rExport.bRTFFlySyntax ) + { + USHORT nId = static_cast< USHORT >(rAnchor.GetAnchorId()); + m_aRunText.append(OOO_STRING_SVTOOLS_RTF_FLYANCHOR); + m_aRunText.append((sal_Int32)nId); + switch( nId ) + { + case FLY_AT_PAGE: + m_aRunText.append(OOO_STRING_SVTOOLS_RTF_FLYPAGE); + m_aRunText.append((sal_Int32)rAnchor.GetPageNum()); + break; + case FLY_AT_PARA: + case FLY_AS_CHAR: + m_aRunText.append(OOO_STRING_SVTOOLS_RTF_FLYCNTNT); + break; + } + } +} + +void RtfAttributeOutput::FormatBackground( const SvxBrushItem& rBrush ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if( !rBrush.GetColor().GetTransparency() ) + { + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_CBPAT); + m_aStyles.append((sal_Int32)m_rExport.GetColor(rBrush.GetColor())); + } +} + +void RtfAttributeOutput::FormatBox( const SvxBoxItem& rBox ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + static USHORT __READONLY_DATA aBorders[] = { + BOX_LINE_TOP, BOX_LINE_LEFT, BOX_LINE_BOTTOM, BOX_LINE_RIGHT }; + static const sal_Char* aBorderNames[] = { + OOO_STRING_SVTOOLS_RTF_BRDRT, OOO_STRING_SVTOOLS_RTF_BRDRL, OOO_STRING_SVTOOLS_RTF_BRDRB, OOO_STRING_SVTOOLS_RTF_BRDRR }; + + USHORT nDist = rBox.GetDistance(); + + if ( m_rExport.bRTFFlySyntax ) + return; + + if( rBox.GetTop() && rBox.GetBottom() && + rBox.GetLeft() && rBox.GetRight() && + *rBox.GetTop() == *rBox.GetBottom() && + *rBox.GetTop() == *rBox.GetLeft() && + *rBox.GetTop() == *rBox.GetRight() && + nDist == rBox.GetDistance( BOX_LINE_TOP ) && + nDist == rBox.GetDistance( BOX_LINE_LEFT ) && + nDist == rBox.GetDistance( BOX_LINE_BOTTOM ) && + nDist == rBox.GetDistance( BOX_LINE_RIGHT )) + m_aSectionBreaks.append(OutBorderLine( m_rExport, rBox.GetTop(), OOO_STRING_SVTOOLS_RTF_BOX, nDist )); + else + { + const USHORT* pBrd = aBorders; + const sal_Char** pBrdNms = (const sal_Char**)aBorderNames; + for(int i = 0; i < 4; ++i, ++pBrd, ++pBrdNms) + { + if (const SvxBorderLine* pLn = rBox.GetLine(*pBrd)) + { + m_aSectionBreaks.append(OutBorderLine(m_rExport, pLn, *pBrdNms, + rBox.GetDistance(*pBrd))); + } + } + } + + const USHORT* pBrd = aBorders; + const sal_Char** pBrdNms = (const sal_Char**)aBorderNames; + for( int i = 0; i < 4; ++i, ++pBrd, ++pBrdNms ) + { + const SvxBorderLine* pLn = rBox.GetLine( *pBrd ); + if( pLn ) + { + m_aSectionBreaks.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE); + m_aSectionBreaks.append(OutBorderLine( m_rExport, pLn, *pBrdNms )); + m_aSectionBreaks.append("}" OOO_STRING_SVTOOLS_RTF_BRSP); + m_aSectionBreaks.append((sal_Int32)rBox.GetDistance( *pBrd )); + } + } + + if (!m_bBufferSectionBreaks) + m_aStyles.append(m_aSectionBreaks.makeStringAndClear()); +} + +void RtfAttributeOutput::FormatColumns_Impl( USHORT nCols, const SwFmtCol& rCol, bool bEven, SwTwips nPageSize ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_COLS; + m_rExport.OutLong( nCols ); + + if( bEven ) + { + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_COLSX; + m_rExport.OutLong( rCol.GetGutterWidth( TRUE ) ); + } + else + { + const SwColumns & rColumns = rCol.GetColumns( ); + for( USHORT n = 0; n < nCols; ) + { + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_COLNO; + m_rExport.OutLong( n+1 ); + + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_COLW; + m_rExport.OutLong( rCol.CalcPrtColWidth( n, nPageSize ) ); + + if( ++n != nCols ) + { + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_COLSR; + m_rExport.OutLong( rColumns[ n-1 ]->GetRight() + + rColumns[ n ]->GetLeft() ); + } + } + } +} + +void RtfAttributeOutput::FormatKeep( const SvxFmtKeepItem& rItem ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if( rItem.GetValue() ) + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_KEEPN); +} + +void RtfAttributeOutput::FormatTextGrid( const SwTextGridItem& /*rGrid*/ ) +{ + OSL_TRACE("TODO: %s", OSL_THIS_FUNC); +} + +void RtfAttributeOutput::FormatLineNumbering( const SwFmtLineNumber& rNumbering ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if ( !rNumbering.IsCount( ) ) + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_NOLINE); +} + +void RtfAttributeOutput::FormatFrameDirection( const SvxFrameDirectionItem& rDirection ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if (!m_rExport.bOutPageDescs) + { + if (rDirection.GetValue() == FRMDIR_HORI_RIGHT_TOP) + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_RTLPAR); + else + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_LTRPAR); + } +} + +void RtfAttributeOutput::WriteExpand( const SwField* /*pFld*/ ) +{ + OSL_TRACE("TODO: %s", OSL_THIS_FUNC); +} + +void RtfAttributeOutput::RefField( const SwField& /*rFld*/, const String& /*rRef*/ ) +{ + OSL_TRACE("TODO: %s", OSL_THIS_FUNC); +} + +void RtfAttributeOutput::HiddenField( const SwField& /*rFld*/ ) +{ + OSL_TRACE("TODO: %s", OSL_THIS_FUNC); +} + +void RtfAttributeOutput::SetField( const SwField& /*rFld*/, ww::eField /*eType*/, const String& /*rCmd*/ ) +{ + OSL_TRACE("TODO: %s", OSL_THIS_FUNC); +} + +void RtfAttributeOutput::PostitField( const SwField* pFld ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + const SwPostItField& rPFld = *(SwPostItField*)pFld; + + m_aRunText.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_ATNID " "); + m_aRunText.append(OUStringToOString(OUString(rPFld.GetPar1()), m_rExport.eCurrentEncoding)); + m_aRunText.append("}"); + m_aRunText.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_ATNAUTHOR " "); + m_aRunText.append(OUStringToOString(OUString(rPFld.GetPar1()), m_rExport.eCurrentEncoding)); + m_aRunText.append("}"); + m_aRunText.append(OOO_STRING_SVTOOLS_RTF_CHATN); + + m_aRunText.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_ANNOTATION); + m_aRunText.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_ATNDATE " "); + m_aRunText.append((sal_Int32)sw::ms::DateTime2DTTM(rPFld.GetDate())); + m_aRunText.append('}'); + m_aRunText.append(OUStringToOString(OUString(rPFld.GetTxt()), m_rExport.eCurrentEncoding)); + m_aRunText.append('}'); +} + +bool RtfAttributeOutput::DropdownField( const SwField* /*pFld*/ ) +{ + // this is handled in OutputFlyFrame_Impl() + return true; +} + +RtfAttributeOutput::RtfAttributeOutput( RtfExport &rExport ) + : m_rExport( rExport ), + m_pTableWrt( NULL ), + m_bTableCellOpen( false ), + m_nTableDepth( 0 ), + m_bTblAfterCell( false ), + m_nColBreakNeeded( false ), + m_bBufferSectionBreaks( false ), + m_bBufferSectionHeaders( false ), + m_bLastTable( true ), + m_bWroteCellInfo( false ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); +} + +RtfAttributeOutput::~RtfAttributeOutput() +{ + OSL_TRACE("%s", OSL_THIS_FUNC); +} + +MSWordExportBase& RtfAttributeOutput::GetExport() +{ + return m_rExport; +} + +// These are used by wwFont::WriteRtf() + +/// Start the font. +void RtfAttributeOutput::StartFont( const String& rFamilyName ) const +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_rExport.Strm() << OUStringToOString( OUString( rFamilyName ), m_rExport.eCurrentEncoding ).getStr(); +} + +/// End the font. +void RtfAttributeOutput::EndFont() const +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_rExport.Strm() << ";}"; +} + +/// Alternate name for the font. +void RtfAttributeOutput::FontAlternateName( const String& rName ) const +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_rExport.Strm() << '{' << OOO_STRING_SVTOOLS_RTF_IGNORE << OOO_STRING_SVTOOLS_RTF_FALT << ' '; + m_rExport.Strm() << OUStringToOString( OUString( rName ), m_rExport.eCurrentEncoding ) << '}'; +} + +/// Font charset. +void RtfAttributeOutput::FontCharset( sal_uInt8 nCharSet ) const +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_FCHARSET; + m_rExport.OutULong( nCharSet ); + m_rExport.Strm() << ' '; +} + +/// Font family. +void RtfAttributeOutput::FontFamilyType( FontFamily eFamily, const wwFont &rFont ) const +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_rExport.Strm() << '{' << OOO_STRING_SVTOOLS_RTF_F; + + const char* pStr = OOO_STRING_SVTOOLS_RTF_FNIL; + switch (eFamily) + { + case FAMILY_ROMAN: + pStr = OOO_STRING_SVTOOLS_RTF_FROMAN; + break; + case FAMILY_SWISS: + pStr = OOO_STRING_SVTOOLS_RTF_FSWISS; + break; + case FAMILY_MODERN: + pStr = OOO_STRING_SVTOOLS_RTF_FMODERN; + break; + case FAMILY_SCRIPT: + pStr = OOO_STRING_SVTOOLS_RTF_FSCRIPT; + break; + case FAMILY_DECORATIVE: + pStr = OOO_STRING_SVTOOLS_RTF_FDECOR; + break; + default: + break; + } + m_rExport.OutULong(m_rExport.maFontHelper.GetId(rFont)) << pStr; +} + +/// Font pitch. +void RtfAttributeOutput::FontPitchType( FontPitch ePitch ) const +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_FPRQ; + + USHORT nVal = 0; + switch (ePitch) + { + case PITCH_FIXED: + nVal = 1; + break; + case PITCH_VARIABLE: + nVal = 2; + break; + default: + break; + } + m_rExport.OutULong(nVal); +} + +static bool IsEMF(const sal_uInt8 *pGraphicAry, unsigned long nSize) +{ + if (pGraphicAry && (nSize > 0x2c )) + { + // check the magic number + if ( + (pGraphicAry[0x28] == 0x20 ) && (pGraphicAry[0x29] == 0x45) && + (pGraphicAry[0x2a] == 0x4d ) && (pGraphicAry[0x2b] == 0x46) + ) + { + //emf detected + return true; + } + } + return false; +} + +static bool StripMetafileHeader(const sal_uInt8 *&rpGraphicAry, unsigned long &rSize) +{ + if (rpGraphicAry && (rSize > 0x22)) + { + if ( + (rpGraphicAry[0] == 0xd7) && (rpGraphicAry[1] == 0xcd) && + (rpGraphicAry[2] == 0xc6) && (rpGraphicAry[3] == 0x9a) + ) + { // we have to get rid of the metafileheader + rpGraphicAry += 22; + rSize -= 22; + return true; + } + } + return false; +} + +static OString WriteHex(const sal_uInt8* pData, sal_uInt32 nSize, sal_uInt32 nLimit = 64) +{ + OStringBuffer aRet; + + sal_uInt32 nBreak = 0; + for (sal_uInt32 i = 0; i < nSize; i++) + { + OString sNo = OString::valueOf(sal_Int32(pData[i]), 16); + if (sNo.getLength() < 2) + aRet.append('0'); + aRet.append(sNo); + if (++nBreak == nLimit) + { + aRet.append(RtfExport::sNewLine); + nBreak = 0; + } + } + + return aRet.makeStringAndClear(); +} + +static OString WriteHex(sal_Int32 nNum) +{ + return WriteHex((sal_uInt8*)&nNum, sizeof(sal_Int32)); +} + +static OString WriteHex(OString sString) +{ + OStringBuffer aRet; + + aRet.append(WriteHex(sString.getLength()+1)); + aRet.append(WriteHex((sal_uInt8*)sString.getStr(), sString.getLength()+1)); + + return aRet.makeStringAndClear(); +} + +void lcl_AppendSP( OStringBuffer& rBuffer, + const char cName[], + const ::rtl::OUString& rValue, + const RtfExport& rExport ) +{ + rBuffer.append( "{" OOO_STRING_SVTOOLS_RTF_SP "{" ); // "{\sp{" + rBuffer.append( OOO_STRING_SVTOOLS_RTF_SN " " );//" \sn " + rBuffer.append( cName ); //"PropName" + rBuffer.append( "}{" OOO_STRING_SVTOOLS_RTF_SV " " ); +// "}{ \sv " + rBuffer.append( rExport.OutString( rValue, rExport.eCurrentEncoding ) ); + rBuffer.append( "}}" ); +} + +static OString ExportPICT( const SwFlyFrmFmt* pFlyFrmFmt, const Size &rOrig, const Size &rRendered, const Size &rMapped, + const SwCropGrf &rCr, const char *pBLIPType, const sal_uInt8 *pGraphicAry, + unsigned long nSize, const RtfExport& rExport ) +{ + OStringBuffer aRet; + bool bIsWMF = (const char *)pBLIPType == (const char *)OOO_STRING_SVTOOLS_RTF_WMETAFILE ? true : false; + if (pBLIPType && nSize && pGraphicAry) + { + aRet.append("{" OOO_STRING_SVTOOLS_RTF_PICT); + + if( pFlyFrmFmt ) + { + String sDescription = pFlyFrmFmt->GetObjDescription(); + //write picture properties - wzDescription at first + //looks like: "{\*\picprop{\sp{\sn PropertyName}{\sv PropertyValue}}}" + aRet.append( "{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_PICPROP );//"{\*\picprop + lcl_AppendSP( aRet, "wzDescription", sDescription, rExport ); + String sName = pFlyFrmFmt->GetObjTitle(); + lcl_AppendSP( aRet, "wzName", sName, rExport ); + aRet.append( "}" ); //"}" + } + + long nXCroppedSize = rOrig.Width()-(rCr.GetLeft() + rCr.GetRight()); + long nYCroppedSize = rOrig.Height()-(rCr.GetTop() + rCr.GetBottom()); + /* #127543#: Graphic with a zero height or width, typically copied from webpages, caused + crashes. */ + if( !nXCroppedSize ) + nXCroppedSize = 100; + if( !nYCroppedSize ) + nYCroppedSize = 100; + + //Given the original size and taking cropping into account + //first, how much has the original been scaled to get the + //final rendered size + aRet.append(OOO_STRING_SVTOOLS_RTF_PICSCALEX); + aRet.append((sal_Int32)((100 * rRendered.Width()) / nXCroppedSize)); + aRet.append(OOO_STRING_SVTOOLS_RTF_PICSCALEY); + aRet.append((sal_Int32)((100 * rRendered.Height()) / nYCroppedSize)); + + aRet.append(OOO_STRING_SVTOOLS_RTF_PICCROPL); + aRet.append((sal_Int32)rCr.GetLeft()); + aRet.append(OOO_STRING_SVTOOLS_RTF_PICCROPR); + aRet.append((sal_Int32)rCr.GetRight()); + aRet.append(OOO_STRING_SVTOOLS_RTF_PICCROPT); + aRet.append((sal_Int32)rCr.GetTop()); + aRet.append(OOO_STRING_SVTOOLS_RTF_PICCROPB); + aRet.append((sal_Int32)rCr.GetBottom()); + + aRet.append(OOO_STRING_SVTOOLS_RTF_PICW); + aRet.append((sal_Int32)rMapped.Width()); + aRet.append(OOO_STRING_SVTOOLS_RTF_PICH); + aRet.append((sal_Int32)rMapped.Height()); + + aRet.append(OOO_STRING_SVTOOLS_RTF_PICWGOAL); + aRet.append((sal_Int32)rOrig.Width()); + aRet.append(OOO_STRING_SVTOOLS_RTF_PICHGOAL); + aRet.append((sal_Int32)rOrig.Height()); + + aRet.append(pBLIPType); + if (bIsWMF) + { + aRet.append((sal_Int32)8); + StripMetafileHeader(pGraphicAry, nSize); + } + aRet.append(RtfExport::sNewLine); + aRet.append(WriteHex(pGraphicAry, nSize)); + aRet.append('}'); + } + return aRet.makeStringAndClear(); +} + +void RtfAttributeOutput::FlyFrameOLEData( SwOLENode& rOLENode ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + uno::Reference < embed::XEmbeddedObject > xObj(const_cast<SwOLENode&>(rOLENode).GetOLEObj().GetOleRef()); + sal_Int64 nAspect = rOLENode.GetAspect(); + svt::EmbeddedObjectRef aObjRef( xObj, nAspect ); + SvGlobalName aObjName(aObjRef->getClassID()); + + if (SotExchange::IsMath(aObjName)) + { + // ObjectHeader + m_aRunText.append(WriteHex(0x00000501)); // OLEVersion + m_aRunText.append(WriteHex(0x00000002)); // FormatID + m_aRunText.append(WriteHex(OString("Equation.3"))); // ClassName + m_aRunText.append(WriteHex(0x00000000)); // TopicName + m_aRunText.append(WriteHex(0x00000000)); // ItemName + + // NativeData + SvMemoryStream *pStream = new SvMemoryStream; + SvStorage* pStorage = new SvStorage(*pStream); + m_rExport.pOLEExp->ExportOLEObject( aObjRef, *pStorage ); + pStream->Seek(STREAM_SEEK_TO_END); + sal_uInt32 nNativeDataSize = pStream->Tell(); + const sal_uInt8* pNativeData = (sal_uInt8*)pStream->GetData(); + m_aRunText.append(WriteHex(nNativeDataSize)); + m_aRunText.append(RtfExport::sNewLine); + m_aRunText.append(WriteHex(pNativeData, nNativeDataSize, 126)); + m_aRunText.append(RtfExport::sNewLine); + delete pStream; + + // MetaFilePresentationObject + pStream = new SvMemoryStream; + Graphic* pGraphic = rOLENode.GetGraphic(); + if (GraphicConverter::Export(*pStream, *pGraphic, CVT_WMF) != ERRCODE_NONE) + OSL_ENSURE(false, "failed to export the presentation data"); + pStream->Seek(STREAM_SEEK_TO_END); + sal_uInt32 nPresentationDataSize = pStream->Tell(); + const sal_uInt8* pPresentationData = (sal_uInt8*)pStream->GetData(); + m_aRunText.append(WriteHex(pPresentationData, nPresentationDataSize, 126)); + } +} + +void RtfAttributeOutput::FlyFrameOLE( const SwFlyFrmFmt* pFlyFrmFmt, SwOLENode& rOLENode, const Size& rSize ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + SvMemoryStream aStream; + const sal_uInt8* pGraphicAry = 0; + sal_uInt32 nSize = 0; + Graphic* pGraphic = rOLENode.GetGraphic(); + + Size aSize(sw::util::GetSwappedInSize(rOLENode)); + Size aRendered(aSize); + aRendered.Width() = rSize.Width(); + aRendered.Height() = rSize.Height(); + Size aMapped(pGraphic->GetPrefSize()); + const SwCropGrf &rCr = (const SwCropGrf &)rOLENode.GetAttr(RES_GRFATR_CROPGRF); + const sal_Char* pBLIPType = OOO_STRING_SVTOOLS_RTF_WMETAFILE; + + if (GraphicConverter::Export(aStream, *pGraphic, CVT_WMF) != ERRCODE_NONE) + OSL_ENSURE(false, "failed to export the graphic"); + aStream.Seek(STREAM_SEEK_TO_END); + nSize = aStream.Tell(); + pGraphicAry = (sal_uInt8*)aStream.GetData(); + + m_aRunText.append("{" OOO_STRING_SVTOOLS_RTF_OBJECT OOO_STRING_SVTOOLS_RTF_OBJEMB); + + // export the object data in the appropriate format; RTF requires the usage of the OLE 1.0 format + m_aRunText.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_OBJDATA " "); + FlyFrameOLEData(rOLENode); + m_aRunText.append("}{" OOO_STRING_SVTOOLS_RTF_RESULT); + + SwTwips nHeight = aSize.Height(); + nHeight/=20; //nHeight was in twips, want it in half points, but then half of total height. + long nFontHeight = ((const SvxFontHeightItem&)m_rExport.GetItem(RES_CHRATR_FONTSIZE)).GetHeight(); + nHeight-=nFontHeight/20; + m_aRunText.append("{" OOO_STRING_SVTOOLS_RTF_DN).append(nHeight); + m_aRunText.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_SHPPICT); + m_aRunText.append(ExportPICT( pFlyFrmFmt, aSize, aRendered, aMapped, rCr, pBLIPType, pGraphicAry, nSize, m_rExport )); + m_aRunText.append("}}}}"); +} + +void RtfAttributeOutput::FlyFrameGraphic( const SwFlyFrmFmt* pFlyFrmFmt, const SwGrfNode& rGrfNode, const Size& rSize ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + SvMemoryStream aStream; + const sal_uInt8* pGraphicAry = 0; + sal_uInt32 nSize = 0; + + Graphic aGraphic(rGrfNode.GetGrf()); + + // If there is no graphic there is not much point in parsing it + if(aGraphic.GetType()==GRAPHIC_NONE) + return; + + GfxLink aGraphicLink; + const sal_Char* pBLIPType = 0; + if (aGraphic.IsLink()) + { + aGraphicLink = aGraphic.GetLink(); + nSize = aGraphicLink.GetDataSize(); + pGraphicAry = aGraphicLink.GetData(); + switch (aGraphicLink.GetType()) + { + case GFX_LINK_TYPE_NATIVE_JPG: + pBLIPType = OOO_STRING_SVTOOLS_RTF_JPEGBLIP; + break; + case GFX_LINK_TYPE_NATIVE_PNG: + pBLIPType = OOO_STRING_SVTOOLS_RTF_PNGBLIP; + break; + case GFX_LINK_TYPE_NATIVE_WMF: + pBLIPType = + IsEMF(pGraphicAry, nSize) ? OOO_STRING_SVTOOLS_RTF_EMFBLIP : OOO_STRING_SVTOOLS_RTF_WMETAFILE; + break; + default: + break; + } + } + + GraphicType eGraphicType = aGraphic.GetType(); + if (!pGraphicAry) + { + if (ERRCODE_NONE == GraphicConverter::Export(aStream, aGraphic, + (eGraphicType == GRAPHIC_BITMAP) ? CVT_PNG : CVT_WMF)) + { + pBLIPType = (eGraphicType == GRAPHIC_BITMAP) ? + OOO_STRING_SVTOOLS_RTF_PNGBLIP : OOO_STRING_SVTOOLS_RTF_WMETAFILE; + aStream.Seek(STREAM_SEEK_TO_END); + nSize = aStream.Tell(); + pGraphicAry = (sal_uInt8*)aStream.GetData(); + } + } + + Size aMapped(eGraphicType == GRAPHIC_BITMAP ? aGraphic.GetSizePixel() : aGraphic.GetPrefSize()); + + const SwCropGrf &rCr = (const SwCropGrf &)rGrfNode.GetAttr(RES_GRFATR_CROPGRF); + + //Get original size in twips + Size aSize(sw::util::GetSwappedInSize(rGrfNode)); + Size aRendered(aSize); + aRendered.Width() = rSize.Width(); + aRendered.Height() = rSize.Height(); + + /* + If the graphic is not of type WMF then we will have to store two + graphics, one in the native format wrapped in shppict, and the other in + the wmf format wrapped in nonshppict, so as to keep wordpad happy. If its + a wmf already then we don't need any such wrapping + */ + bool bIsWMF = (const sal_Char*)pBLIPType == (const sal_Char*)OOO_STRING_SVTOOLS_RTF_WMETAFILE ? true : false; + if (!bIsWMF) + m_aRunText.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_SHPPICT); + + if (pBLIPType) + m_aRunText.append(ExportPICT( pFlyFrmFmt, aSize, aRendered, aMapped, rCr, pBLIPType, pGraphicAry, nSize, m_rExport)); + else + { + aStream.Seek(0); + GraphicConverter::Export(aStream, aGraphic, CVT_WMF); + pBLIPType = OOO_STRING_SVTOOLS_RTF_WMETAFILE; + aStream.Seek(STREAM_SEEK_TO_END); + nSize = aStream.Tell(); + pGraphicAry = (sal_uInt8*)aStream.GetData(); + + m_aRunText.append(ExportPICT(pFlyFrmFmt, aSize, aRendered, aMapped, rCr, pBLIPType, pGraphicAry, nSize, m_rExport )); + } + + if (!bIsWMF) + { + m_aRunText.append("}" "{" OOO_STRING_SVTOOLS_RTF_NONSHPPICT); + + aStream.Seek(0); + GraphicConverter::Export(aStream, aGraphic, CVT_WMF); + pBLIPType = OOO_STRING_SVTOOLS_RTF_WMETAFILE; + aStream.Seek(STREAM_SEEK_TO_END); + nSize = aStream.Tell(); + pGraphicAry = (sal_uInt8*)aStream.GetData(); + + m_aRunText.append(ExportPICT(pFlyFrmFmt, aSize, aRendered, aMapped, rCr, pBLIPType, pGraphicAry, nSize, m_rExport )); + + m_aRunText.append('}'); + } + + m_aRunText.append(m_rExport.sNewLine); +} + +/* vi:set shiftwidth=4 expandtab: */ diff --git a/sw/source/filter/ww8/rtfattributeoutput.hxx b/sw/source/filter/ww8/rtfattributeoutput.hxx new file mode 100644 index 0000000000..0d153b843f --- /dev/null +++ b/sw/source/filter/ww8/rtfattributeoutput.hxx @@ -0,0 +1,590 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * Copyright 2010 Miklos Vajna. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _RTFATTRIBUTEOUTPUT_HXX_ +#define _RTFATTRIBUTEOUTPUT_HXX_ + +#include <set> +#include "attributeoutputbase.hxx" +#include "fields.hxx" + +#include <vcl/vclenum.hxx> + +#include <fldbas.hxx> +#include <rtl/strbuf.hxx> + +#include <vector> + +class RtfExport; + +class SwGrfNode; +class SwOLENode; +class SdrObject; +class SwFlyFrmFmt; + +class RtfAttributeOutput : public AttributeOutputBase +{ +public: + /// Export the state of RTL/CJK. + virtual void RTLAndCJKState( bool bIsRTL, sal_uInt16 nScript ); + + /// Start of the paragraph. + virtual void StartParagraph( ww8::WW8TableNodeInfo::Pointer_t pTextNodeInfo ); + + /// End of the paragraph. + virtual void EndParagraph( ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner ); + + /// Empty paragraph. + virtual void EmptyParagraph(); + + /// Called before we start outputting the attributes. + virtual void StartParagraphProperties( const SwTxtNode& rNode ); + + /// Called after we end outputting the attributes. + virtual void EndParagraphProperties(); + + /// Start of the text run. + virtual void StartRun( const SwRedlineData* pRedlineData ); + + /// End of the text run. + virtual void EndRun(); + + /// Called before we start outputting the attributes. + virtual void StartRunProperties(); + + /// Called after we end outputting the attributes. + virtual void EndRunProperties( const SwRedlineData* pRedlineData ); + + /// Output text (inside a run). + virtual void RunText( const String& rText, rtl_TextEncoding eCharSet = RTL_TEXTENCODING_UTF8 ); + + // Access to (anyway) private buffers, used by the sdr exporter + rtl::OStringBuffer& RunText(); + rtl::OStringBuffer& Styles(); + + /// Output text (without markup). + virtual void RawText( const String& rText, bool bForceUnicode, rtl_TextEncoding eCharSet ); + + /// Output ruby start. + virtual void StartRuby( const SwTxtNode& rNode, const SwFmtRuby& rRuby ); + + /// Output ruby end. + virtual void EndRuby(); + + /// Output URL start. + virtual bool StartURL( const String& rUrl, const String& rTarget ); + + /// Output URL end. + virtual bool EndURL(); + + virtual void FieldVanish( const String& rTxt, ww::eField eType ); + + /// Output redlining. + /// + /// The common attribute that can be among the run properties. + virtual void Redline( const SwRedlineData* pRedline ); + + virtual void FormatDrop( const SwTxtNode& rNode, const SwFmtDrop& rSwFmtDrop, USHORT nStyle, ww8::WW8TableNodeInfo::Pointer_t pTextNodeInfo, ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner ); + + /// Output style. + virtual void ParagraphStyle( USHORT nStyle ); + + virtual void TableInfoCell( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ); + + virtual void TableInfoRow( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ); + + virtual void TableDefinition( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ); + + virtual void TableDefaultBorders( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ); + + virtual void TableBackgrounds( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ); + + virtual void TableHeight( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ); + + virtual void TableCanSplit( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ); + + virtual void TableBidi( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ); + + virtual void TableVerticalCell( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ); + + virtual void TableNodeInfo( ww8::WW8TableNodeInfo::Pointer_t pNodeInfo ); + + virtual void TableNodeInfoInner( ww8::WW8TableNodeInfoInner::Pointer_t pNodeInfoInner ); + + virtual void TableOrientation( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ); + + virtual void TableSpacing( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ); + + virtual void TableRowEnd( sal_uInt32 nDepth ); + + /// Start of the styles table. + virtual void StartStyles(); + + /// End of the styles table. + virtual void EndStyles( USHORT nNumberOfStyles ); + + /// Write default style. + virtual void DefaultStyle( USHORT nStyle ); + + /// Start of a style in the styles table. + virtual void StartStyle( const String& rName, bool bPapFmt, + USHORT nBase, USHORT nNext, USHORT nWwId, USHORT nId ); + + /// End of a style in the styles table. + virtual void EndStyle(); + + /// Start of (paragraph or run) properties of a style. + virtual void StartStyleProperties( bool bParProp, USHORT nStyle ); + + /// End of (paragraph or run) properties of a style. + virtual void EndStyleProperties( bool bParProp ); + + /// Numbering rule and Id. + virtual void OutlineNumbering( BYTE nLvl, const SwNumFmt &rNFmt, const SwFmt &rFmt ); + + /// Page break + /// As a paragraph property - the paragraph should be on the next page. + virtual void PageBreakBefore( bool bBreak ); + + /// Write a section break + /// msword::ColumnBreak or msword::PageBreak + virtual void SectionBreak( BYTE nC, const WW8_SepInfo* pSectionInfo = NULL ); + + /// Start of the section properties. + virtual void StartSection(); + + /// End of the section properties. + virtual void EndSection(); + + /// Protection of forms. + virtual void SectionFormProtection( bool bProtected ); + + /// Numbering of the lines in the document. + virtual void SectionLineNumbering( ULONG nRestartNo, const SwLineNumberInfo& rLnNumInfo ); + + /// Has different headers/footers for the title page. + virtual void SectionTitlePage(); + + /// Description of the page borders. + virtual void SectionPageBorders( const SwFrmFmt* pFmt, const SwFrmFmt* pFirstPageFmt ); + + /// Columns populated from right/numbers on the right side? + virtual void SectionBiDi( bool bBiDi ); + + /// The style of the page numbers. + /// + /// nPageRestartNumberr being 0 means no restart. + virtual void SectionPageNumbering( USHORT nNumType, USHORT nPageRestartNumber ); + + /// The type of breaking. + virtual void SectionType( BYTE nBreakCode ); + + /// Definition of a numbering instance. + virtual void NumberingDefinition( USHORT nId, const SwNumRule &rRule ); + + /// Start of the abstract numbering definition instance. + virtual void StartAbstractNumbering( USHORT nId ); + + /// End of the abstract numbering definition instance. + virtual void EndAbstractNumbering(); + + /// All the numbering level information. + virtual void NumberingLevel( BYTE nLevel, + USHORT nStart, + USHORT nNumberingType, + SvxAdjust eAdjust, + const BYTE *pNumLvlPos, + BYTE nFollow, + const wwFont *pFont, + const SfxItemSet *pOutSet, + sal_Int16 nIndentAt, + sal_Int16 nFirstLineIndex, + sal_Int16 nListTabPos, + const String &rNumberingString ); + + void WriteField_Impl( const SwField* pFld, ww::eField eType, const String& rFldCmd, BYTE nMode ); + void WriteBookmarks_Impl( std::vector< rtl::OUString >& rStarts, std::vector< rtl::OUString >& rEnds ); + void WriteHeaderFooter_Impl( const SwFrmFmt& rFmt, bool bHeader, const sal_Char* pStr ); + +protected: + /// Output frames - the implementation. + virtual void OutputFlyFrame_Impl( const sw::Frame& rFmt, const Point& rNdTopLeft ); + + /// Sfx item Sfx item RES_CHRATR_CASEMAP + virtual void CharCaseMap( const SvxCaseMapItem& rCaseMap ); + + /// Sfx item Sfx item RES_CHRATR_COLOR + virtual void CharColor( const SvxColorItem& rColor); + + /// Sfx item Sfx item RES_CHRATR_CONTOUR + virtual void CharContour( const SvxContourItem& rContour ); + + /// Sfx item RES_CHRATR_CROSSEDOUT + virtual void CharCrossedOut( const SvxCrossedOutItem& rCrossedOut ); + + /// Sfx item RES_CHRATR_ESCAPEMENT + virtual void CharEscapement( const SvxEscapementItem& rEscapement ); + + /// Sfx item RES_CHRATR_FONT + virtual void CharFont( const SvxFontItem& rFont ); + + /// Sfx item RES_CHRATR_FONTSIZE + virtual void CharFontSize( const SvxFontHeightItem& rFontSize ); + + /// Sfx item RES_CHRATR_KERNING + virtual void CharKerning( const SvxKerningItem& rKerning ); + + /// Sfx item RES_CHRATR_LANGUAGE + virtual void CharLanguage( const SvxLanguageItem& rLanguage ); + + /// Sfx item RES_CHRATR_POSTURE + virtual void CharPosture( const SvxPostureItem& rPosture ); + + /// Sfx item RES_CHRATR_SHADOWED + virtual void CharShadow( const SvxShadowedItem& rShadow ); + + /// Sfx item RES_CHRATR_UNDERLINE + virtual void CharUnderline( const SvxUnderlineItem& rUnderline ); + + /// Sfx item RES_CHRATR_WEIGHT + virtual void CharWeight( const SvxWeightItem& rWeight ); + + /// Sfx item RES_CHRATR_AUTOKERN + virtual void CharAutoKern( const SvxAutoKernItem& ); + + /// Sfx item RES_CHRATR_BLINK + virtual void CharAnimatedText( const SvxBlinkItem& rBlink ); + + /// Sfx item RES_CHRATR_BACKGROUND + virtual void CharBackground( const SvxBrushItem& rBrush ); + + /// Sfx item RES_CHRATR_CJK_FONT + virtual void CharFontCJK( const SvxFontItem& rFont ); + + /// Sfx item RES_CHRATR_CJK_FONTSIZE + virtual void CharFontSizeCJK( const SvxFontHeightItem& rFontSize ); + + /// Sfx item RES_CHRATR_CJK_LANGUAGE + virtual void CharLanguageCJK( const SvxLanguageItem& rLanguageItem ); + + /// Sfx item RES_CHRATR_CJK_POSTURE + virtual void CharPostureCJK( const SvxPostureItem& rPosture ); + + /// Sfx item RES_CHRATR_CJK_WEIGHT + virtual void CharWeightCJK( const SvxWeightItem& rWeight ); + + /// Sfx item RES_CHRATR_CTL_FONT + virtual void CharFontCTL( const SvxFontItem& rFont ); + + /// Sfx item RES_CHRATR_CTL_FONTSIZE + virtual void CharFontSizeCTL( const SvxFontHeightItem& rFontSize ); + + /// Sfx item RES_CHRATR_CTL_LANGUAGE + virtual void CharLanguageCTL( const SvxLanguageItem& rLanguageItem ); + + /// Sfx item RES_CHRATR_CTL_POSTURE + virtual void CharPostureCTL( const SvxPostureItem& rWeight ); + + /// Sfx item RES_CHRATR_CTL_WEIGHT + virtual void CharWeightCTL( const SvxWeightItem& rWeight ); + + /// Sfx item RES_CHRATR_ROTATE + virtual void CharRotate( const SvxCharRotateItem& rRotate ); + + /// Sfx item RES_CHRATR_EMPHASIS_MARK + virtual void CharEmphasisMark( const SvxEmphasisMarkItem& rEmphasisMark ); + + /// Sfx item RES_CHRATR_TWO_LINES + virtual void CharTwoLines( const SvxTwoLinesItem& rTwoLines ); + + /// Sfx item RES_CHRATR_SCALEW + virtual void CharScaleWidth( const SvxCharScaleWidthItem& rScaleWidth ); + + /// Sfx item RES_CHRATR_RELIEF + virtual void CharRelief( const SvxCharReliefItem& rRelief); + + /// Sfx item RES_CHRATR_HIDDEN + virtual void CharHidden( const SvxCharHiddenItem& rHidden ); + + /// Sfx item RES_TXTATR_INETFMT + virtual void TextINetFormat( const SwFmtINetFmt& ); + + /// Sfx item RES_TXTATR_CHARFMT + virtual void TextCharFormat( const SwFmtCharFmt& ); + + /// Sfx item RES_TXTATR_FTN + virtual void TextFootnote_Impl( const SwFmtFtn& ); + + /// Sfx item RES_PARATR_LINESPACING + virtual void ParaLineSpacing_Impl( short nSpace, short nMulti ); + + /// Sfx item RES_PARATR_ADJUST + virtual void ParaAdjust( const SvxAdjustItem& rAdjust ); + + /// Sfx item RES_PARATR_SPLIT + virtual void ParaSplit( const SvxFmtSplitItem& rSplit ); + + /// Sfx item RES_PARATR_WIDOWS + virtual void ParaWidows( const SvxWidowsItem& rWidows ); + + /// Sfx item RES_PARATR_TABSTOP + virtual void ParaTabStop( const SvxTabStopItem& rTabStop ); + + /// Sfx item RES_PARATR_HYPHENZONE + virtual void ParaHyphenZone( const SvxHyphenZoneItem& ); + + /// Sfx item RES_PARATR_NUMRULE + virtual void ParaNumRule_Impl( const SwTxtNode *pTxtNd, sal_Int32 nLvl, sal_Int32 nNumId ); + + /// Sfx item RES_PARATR_SCRIPTSPACE + virtual void ParaScriptSpace( const SfxBoolItem& ); + + /// Sfx item RES_PARATR_VERTALIGN + virtual void ParaVerticalAlign( const SvxParaVertAlignItem& rAlign ); + + /// Sfx item RES_PARATR_SNAPTOGRID + virtual void ParaSnapToGrid( const SvxParaGridItem& ); + + /// Sfx item RES_FRM_SIZE + virtual void FormatFrameSize( const SwFmtFrmSize& ); + + /// Sfx item RES_PAPER_BIN + virtual void FormatPaperBin( const SvxPaperBinItem& ); + + /// Sfx item RES_LR_SPACE + virtual void FormatLRSpace( const SvxLRSpaceItem& rLRSpace ); + + /// Sfx item RES_UL_SPACE + virtual void FormatULSpace( const SvxULSpaceItem& rULSpace ); + + /// Sfx item RES_SURROUND + virtual void FormatSurround( const SwFmtSurround& ); + + /// Sfx item RES_VERT_ORIENT + virtual void FormatVertOrientation( const SwFmtVertOrient& ); + + /// Sfx item RES_HORI_ORIENT + virtual void FormatHorizOrientation( const SwFmtHoriOrient& ); + + /// Sfx item RES_ANCHOR + virtual void FormatAnchor( const SwFmtAnchor& ); + + /// Sfx item RES_BACKGROUND + virtual void FormatBackground( const SvxBrushItem& ); + + /// Sfx item RES_BOX + virtual void FormatBox( const SvxBoxItem& ); + + /// Sfx item RES_COL + virtual void FormatColumns_Impl( USHORT nCols, const SwFmtCol & rCol, bool bEven, SwTwips nPageSize ); + + /// Sfx item RES_KEEP + virtual void FormatKeep( const SvxFmtKeepItem& ); + + /// Sfx item RES_TEXTGRID + virtual void FormatTextGrid( const SwTextGridItem& ); + + /// Sfx item RES_LINENUMBER + virtual void FormatLineNumbering( const SwFmtLineNumber& ); + + /// Sfx item RES_FRAMEDIR + virtual void FormatFrameDirection( const SvxFrameDirectionItem& ); + + /// Write the expanded field + virtual void WriteExpand( const SwField* pFld ); + + virtual void RefField( const SwField& rFld, const String& rRef ); + virtual void HiddenField( const SwField& rFld ); + virtual void SetField( const SwField& rFld, ww::eField eType, const String& rCmd ); + virtual void PostitField( const SwField* pFld ); + virtual bool DropdownField( const SwField* pFld ); + + /// Reference to the export, where to get the data from + RtfExport &m_rExport; + +private: + + /// Output graphic fly frames. + void FlyFrameGraphic( const SwFlyFrmFmt* pFlyFrmFmt, const SwGrfNode& rGrfNode, const Size& rSize ); + void FlyFrameOLE( const SwFlyFrmFmt* pFlyFrmFmt, SwOLENode& rOLENode, const Size& rSize ); + void FlyFrameOLEData( SwOLENode& rOLENode ); + + /* + * Table methods. + */ + + void InitTableHelper( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ); + + void StartTable( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ); + + void StartTableRow( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ); + + void StartTableCell( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ); + + void TableCellProperties( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ); + + void EndTableCell( ); + + void EndTableRow( ); + + void EndTable(); + + /// End cell, row, and even the entire table if necessary. + void FinishTableRowCell( ww8::WW8TableNodeInfoInner::Pointer_t pInner, bool bForceEmptyParagraph = false ); + + void WriteTextFootnoteNumStr(const SwFmtFtn& rFootnote); + + /* + * Current style name and its ID. + */ + String m_rStyleName; + USHORT m_nStyleId; + /* + * Current list ID. + */ + USHORT m_nListId; + /* + * This is needed because the call order is: run text, run properties, paragraph properties. + * What we need is the opposite. + */ + rtl::OStringBuffer m_aRun; + rtl::OStringBuffer m_aRunText; + /* + * This is written after runs. + */ + rtl::OStringBuffer m_aAfterRuns; + /* + * Same for colors and stylesheets: first we just want to output colors, + * need to buffer the stylesheet table to output it after the color one. + */ + rtl::OStringBuffer m_aStylesheet; + /* + * This one just holds the style commands in the current style. + */ + rtl::OStringBuffer m_aStyles; + /* + * This is the same as m_aStyles but the conents of it is written last. + */ + rtl::OStringBuffer m_aStylesEnd; + + /* + * We just get a "end of strike" mark at the end of strike, store here what to finish: single or double strike. + */ + bool m_bStrikeDouble; + + /* + * The current table helper. + */ + SwWriteTable *m_pTableWrt; + + /* + * Remember if we are in an open cell, or not. + */ + bool m_bTableCellOpen; + + /* + * Remember the current table depth. + */ + sal_uInt32 m_nTableDepth; + + /* + * Remember if we wrote a \cell or not. + */ + bool m_bTblAfterCell; + + /* + * For late output of row definitions. + */ + rtl::OStringBuffer m_aRowDefs; + + /* + * Is a column break needed after the next \par? + */ + bool m_nColBreakNeeded; + + /* + * If section breaks should be buffered to m_aSectionBreaks + */ + bool m_bBufferSectionBreaks; + rtl::OStringBuffer m_aSectionBreaks; + + /* + * If section headers (and footers) should be buffered to + * m_aSectionHeaders. + */ + bool m_bBufferSectionHeaders; + rtl::OStringBuffer m_aSectionHeaders; + + /* + * Support for starting multiple tables at the same cell. + * If the current table is the last started one. + */ + bool m_bLastTable; + /* + * List of already started but not yet defined tables (need to be defined + * after the nested tables). + */ + std::vector< rtl::OString > m_aTables; + /* + * If cell info is already output. + */ + bool m_bWroteCellInfo; + +public: + RtfAttributeOutput( RtfExport &rExport ); + + virtual ~RtfAttributeOutput(); + + /// Return the right export class. + virtual MSWordExportBase& GetExport(); + + rtl::OStringBuffer m_aTabStop; + + // These are used by wwFont::WriteRtf() + /// Start the font. + void StartFont( const String& rFamilyName ) const; + + /// End the font. + void EndFont() const; + + /// Alternate name for the font. + void FontAlternateName( const String& rName ) const; + + /// Font charset. + void FontCharset( sal_uInt8 nCharSet ) const; + + /// Font family. + void FontFamilyType( FontFamily eFamily, const wwFont &rFont ) const; + + /// Font pitch. + void FontPitchType( FontPitch ePitch ) const; +}; + +#endif // _RTFATTRIBUTEOUTPUT_HXX_ + +/* vi:set shiftwidth=4 expandtab: */ diff --git a/sw/source/filter/ww8/rtfexport.cxx b/sw/source/filter/ww8/rtfexport.cxx new file mode 100644 index 0000000000..b6192e1027 --- /dev/null +++ b/sw/source/filter/ww8/rtfexport.cxx @@ -0,0 +1,1269 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * Copyright 2010 Miklos Vajna. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#include "rtfexport.hxx" +#include "rtfexportfilter.hxx" +#include "rtfsdrexport.hxx" + +#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp> +#include <com/sun/star/document/XDocumentProperties.hpp> +#include <com/sun/star/i18n/ScriptType.hdl> +#include <com/sun/star/frame/XModel.hpp> + +#include <map> +#include <algorithm> +#include <iostream> +#include <iomanip> +#include <string> +#include <sstream> + +#include <IMark.hxx> +#include <docsh.hxx> +#include <ndtxt.hxx> +#include <wrtww8.hxx> +#include <fltini.hxx> +#include <fmtline.hxx> +#include <fmtpdsc.hxx> +#include <frmfmt.hxx> +#include <section.hxx> +#include <pagedesc.hxx> +#include <swtable.hxx> +#include <fmtfsize.hxx> +#include <frmatr.hxx> +#include <ftninfo.hxx> +#include <fmthdft.hxx> +#include <editeng/fontitem.hxx> +#include <editeng/colritem.hxx> +#include <editeng/udlnitem.hxx> +#include <editeng/boxitem.hxx> +#include <editeng/brshitem.hxx> +#include <editeng/shaditem.hxx> +#include <editeng/lrspitem.hxx> +#include <editeng/ulspitem.hxx> +#include <editeng/paperinf.hxx> +#include <editeng/protitem.hxx> + +#include <docary.hxx> +#include <numrule.hxx> +#include <charfmt.hxx> +#include <lineinfo.hxx> +#include <swmodule.hxx> + +#include "ww8par.hxx" +#include "ww8scan.hxx" + +#include <comphelper/string.hxx> +#include <rtl/ustrbuf.hxx> +#include <vcl/font.hxx> +#include <svtools/rtfkeywd.hxx> +#include <unotools/configmgr.hxx> + +using namespace ::comphelper; +using namespace ::com::sun::star; + +using rtl::OString; +using rtl::OUString; +using rtl::OStringBuffer; +using rtl::OUStringBuffer; + +using sw::mark::IMark; + +#if defined(UNX) +const sal_Char RtfExport::sNewLine = '\012'; +#else +const sal_Char __FAR_DATA RtfExport::sNewLine[] = "\015\012"; +#endif + +// the default text encoding for the export, if it doesn't fit unicode will +// be used +#define DEF_ENCODING RTL_TEXTENCODING_ASCII_US + +AttributeOutputBase& RtfExport::AttrOutput() const +{ + return *m_pAttrOutput; +} + +MSWordSections& RtfExport::Sections() const +{ + return *m_pSections; +} + +RtfSdrExport& RtfExport::SdrExporter() const +{ + return *m_pSdrExport; +} + +bool RtfExport::CollapseScriptsforWordOk( USHORT nScript, USHORT nWhich ) +{ + // FIXME is this actually true for rtf? - this is copied from DOCX + if ( nScript == i18n::ScriptType::ASIAN ) + { + // for asian in ww8, there is only one fontsize + // and one fontstyle (posture/weight) + switch ( nWhich ) + { + case RES_CHRATR_FONTSIZE: + case RES_CHRATR_POSTURE: + case RES_CHRATR_WEIGHT: + return false; + default: + break; + } + } + else if ( nScript != i18n::ScriptType::COMPLEX ) + { + // for western in ww8, there is only one fontsize + // and one fontstyle (posture/weight) + switch ( nWhich ) + { + case RES_CHRATR_CJK_FONTSIZE: + case RES_CHRATR_CJK_POSTURE: + case RES_CHRATR_CJK_WEIGHT: + return false; + default: + break; + } + } + return true; +} + +void RtfExport::AppendBookmarks( const SwTxtNode& rNode, xub_StrLen nAktPos, xub_StrLen nLen ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + std::vector< OUString > aStarts; + std::vector< OUString > aEnds; + + IMarkVector aMarks; + if ( GetBookmarks( rNode, nAktPos, nAktPos + nLen, aMarks ) ) + { + for ( IMarkVector::const_iterator it = aMarks.begin(), end = aMarks.end(); + it < end; ++it ) + { + IMark* pMark = (*it); + xub_StrLen nStart = pMark->GetMarkStart().nContent.GetIndex(); + xub_StrLen nEnd = pMark->GetMarkEnd().nContent.GetIndex(); + + if ( nStart == nAktPos ) + aStarts.push_back( pMark->GetName() ); + + if ( nEnd == nAktPos ) + aEnds.push_back( pMark->GetName() ); + } + } + + m_pAttrOutput->WriteBookmarks_Impl( aStarts, aEnds ); +} + +void RtfExport::AppendBookmark( const OUString& rName, bool /*bSkip*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + std::vector<OUString> aStarts; + std::vector<OUString> aEnds; + + aStarts.push_back(rName); + aEnds.push_back(rName); + + m_pAttrOutput->WriteBookmarks_Impl(aStarts, aEnds); +} + +void RtfExport::WriteChar( sal_Unicode ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + /* WriteChar() has nothing to do for rtf. */ +} + +static bool IsExportNumRule( const SwNumRule& rRule, BYTE* pEnd = 0 ) +{ + BYTE nEnd = MAXLEVEL; + while( nEnd-- && !rRule.GetNumFmt( nEnd )) + ; + ++nEnd; + + const SwNumFmt* pNFmt; + BYTE nLvl; + + for( nLvl = 0; nLvl < nEnd; ++nLvl ) + if( SVX_NUM_NUMBER_NONE != ( pNFmt = &rRule.Get( nLvl )) + ->GetNumberingType() || pNFmt->GetPrefix().Len() || + (pNFmt->GetSuffix().Len() && pNFmt->GetSuffix() != aDotStr )) + break; + + if( pEnd ) + *pEnd = nEnd; + return nLvl != nEnd; +} + +void RtfExport::BuildNumbering() +{ + const SwNumRuleTbl& rListTbl = pDoc->GetNumRuleTbl(); + + for( USHORT n = rListTbl.Count()+1; n; ) + { + SwNumRule* pRule; + --n; + if( n == rListTbl.Count() ) + pRule = (SwNumRule*)pDoc->GetOutlineNumRule(); + else + { + pRule = rListTbl[ n ]; + if( !pDoc->IsUsed( *pRule )) + continue; + } + + if( IsExportNumRule( *pRule )) + GetId( *pRule ); + } +} + +void RtfExport::WriteNumbering() +{ + OSL_TRACE("%s start", OSL_THIS_FUNC); + + if ( !pUsedNumTbl ) + return; // no numbering is used + + Strm() << '{' << OOO_STRING_SVTOOLS_RTF_IGNORE << OOO_STRING_SVTOOLS_RTF_LISTTABLE; + AbstractNumberingDefinitions(); + Strm() << '}'; + + Strm() << '{' << OOO_STRING_SVTOOLS_RTF_LISTOVERRIDETABLE; + NumberingDefinitions(); + Strm() << '}'; + + OSL_TRACE("%s end", OSL_THIS_FUNC); +} + +void RtfExport::WriteRevTab() +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + int nRevAuthors = pDoc->GetRedlineTbl().Count(); + + if (nRevAuthors < 1) + return; + + // RTF always seems to use Unknown as the default first entry + String sUnknown(RTL_CONSTASCII_USTRINGPARAM("Unknown")); + GetRedline(sUnknown); + + for( USHORT i = 0; i < pDoc->GetRedlineTbl().Count(); ++i ) + { + const SwRedline* pRedl = pDoc->GetRedlineTbl()[ i ]; + + GetRedline(SW_MOD()->GetRedlineAuthor(pRedl->GetAuthor())); + } + + // Now write the table + Strm() << '{' << OOO_STRING_SVTOOLS_RTF_IGNORE << OOO_STRING_SVTOOLS_RTF_REVTBL << ' '; + for(USHORT i = 0; i < m_aRedlineTbl.size(); ++i) + { + const String* pAuthor = GetRedline(i); + Strm() << '{'; + if (pAuthor) + Strm() << OutString(*pAuthor, eDefaultEncoding); + Strm() << ";}"; + } + Strm() << '}' << sNewLine; +} + +void RtfExport::WriteHeadersFooters( BYTE nHeadFootFlags, + const SwFrmFmt& rFmt, const SwFrmFmt& rLeftFmt, const SwFrmFmt& rFirstPageFmt, BYTE /*nBreakCode*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + // headers + if ( nHeadFootFlags & nsHdFtFlags::WW8_HEADER_EVEN ) + WriteHeaderFooter( rLeftFmt, true, OOO_STRING_SVTOOLS_RTF_HEADERL ); + + if ( nHeadFootFlags & nsHdFtFlags::WW8_HEADER_ODD ) + WriteHeaderFooter( rFmt, true, OOO_STRING_SVTOOLS_RTF_HEADER ); + + if ( nHeadFootFlags & nsHdFtFlags::WW8_HEADER_FIRST ) + WriteHeaderFooter( rFirstPageFmt, true, OOO_STRING_SVTOOLS_RTF_HEADERF ); + + // footers + if ( nHeadFootFlags & nsHdFtFlags::WW8_FOOTER_EVEN ) + WriteHeaderFooter( rLeftFmt, false, OOO_STRING_SVTOOLS_RTF_FOOTERL ); + + if ( nHeadFootFlags & nsHdFtFlags::WW8_FOOTER_ODD ) + WriteHeaderFooter( rFmt, false, OOO_STRING_SVTOOLS_RTF_FOOTER ); + + if ( nHeadFootFlags & nsHdFtFlags::WW8_FOOTER_FIRST ) + WriteHeaderFooter( rFirstPageFmt, false, OOO_STRING_SVTOOLS_RTF_FOOTERF ); +} + +void RtfExport::OutputField( const SwField* pFld, ww::eField eFldType, const String& rFldCmd, BYTE nMode ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_pAttrOutput->WriteField_Impl( pFld, eFldType, rFldCmd, nMode ); +} + +void RtfExport::WriteFormData( const ::sw::mark::IFieldmark& /*rFieldmark*/ ) +{ + OSL_TRACE("TODO: %s", OSL_THIS_FUNC); +} + +void RtfExport::WriteHyperlinkData( const ::sw::mark::IFieldmark& /*rFieldmark*/ ) +{ + OSL_TRACE("TODO: %s", OSL_THIS_FUNC); +} + +void RtfExport::DoComboBox(const rtl::OUString& /*rName*/, + const rtl::OUString& /*rHelp*/, + const rtl::OUString& /*rToolTip*/, + const rtl::OUString& /*rSelected*/, + uno::Sequence<rtl::OUString>& /*rListItems*/) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + // this is handled in RtfAttributeOutput::OutputFlyFrame_Impl +} + +void RtfExport::DoFormText(const SwInputField* pFld ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + ::rtl::OUString sResult = pFld->ExpandField(pDoc->IsClipBoard()); + ::rtl::OUString sHelp( pFld->GetHelp() ); + ::rtl::OUString sName = pFld->GetPar2(); + ::rtl::OUString sStatus = pFld->GetToolTip(); + m_pAttrOutput->RunText().append("{" OOO_STRING_SVTOOLS_RTF_FIELD "{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FLDINST "{ FORMTEXT }"); + m_pAttrOutput->RunText().append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FORMFIELD " {" OOO_STRING_SVTOOLS_RTF_FFTYPE "0" ); + if( sHelp.getLength() ) + m_pAttrOutput->RunText().append( OOO_STRING_SVTOOLS_RTF_FFOWNHELP ); + if( sStatus.getLength() ) + m_pAttrOutput->RunText().append( OOO_STRING_SVTOOLS_RTF_FFOWNSTAT ); + m_pAttrOutput->RunText().append( OOO_STRING_SVTOOLS_RTF_FFTYPETXT "0" ); + + if( sName.getLength() ) + m_pAttrOutput->RunText().append( "{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FFNAME " ").append( OutString( sName, eDefaultEncoding )).append( "}" ); + if( sHelp.getLength() ) + m_pAttrOutput->RunText().append( "{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FFHELPTEXT " ").append( OutString( sHelp, eDefaultEncoding )).append( "}" ); + m_pAttrOutput->RunText().append( "{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FFDEFTEXT " ").append( OutString( sResult, eDefaultEncoding )).append( "}" ); + if( sStatus.getLength() ) + m_pAttrOutput->RunText().append( "{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FFSTATTEXT " ").append( OutString( sStatus, eDefaultEncoding )).append( "}"); + m_pAttrOutput->RunText().append( "}}}{" OOO_STRING_SVTOOLS_RTF_FLDRSLT " " ); + m_pAttrOutput->RunText().append( OutString( sResult, eDefaultEncoding )).append( "}}" ); +} + +ULONG RtfExport::ReplaceCr( BYTE ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + // Completely unused for Rtf export... only here for code sharing + // purpose with binary export + + return 0; +} + +void RtfExport::WriteFonts() +{ + Strm() << sNewLine << '{' << OOO_STRING_SVTOOLS_RTF_FONTTBL; + maFontHelper.WriteFontTable( *m_pAttrOutput ); + Strm() << '}'; +} + +void RtfExport::WriteStyles() +{ + OSL_TRACE("%s start", OSL_THIS_FUNC); + pStyles->OutputStylesTable(); + OSL_TRACE("%s end", OSL_THIS_FUNC); +} + +void RtfExport::WriteMainText() +{ + OSL_TRACE("%s start", OSL_THIS_FUNC); + pCurPam->GetPoint()->nNode = pDoc->GetNodes().GetEndOfContent().StartOfSectionNode()->GetIndex(); + WriteText(); + OSL_TRACE("%s end", OSL_THIS_FUNC); +} + +void RtfExport::WriteInfo() +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + Strm() << '{' << OOO_STRING_SVTOOLS_RTF_INFO; + + SwDocShell *pDocShell(pDoc->GetDocShell()); + uno::Reference<document::XDocumentProperties> xDocProps; + if (pDocShell) { + uno::Reference<document::XDocumentPropertiesSupplier> xDPS( + pDocShell->GetModel(), uno::UNO_QUERY); + xDocProps.set(xDPS->getDocumentProperties()); + } + + if (xDocProps.is()) { + OutUnicode(OOO_STRING_SVTOOLS_RTF_TITLE, xDocProps->getTitle()); + OutUnicode(OOO_STRING_SVTOOLS_RTF_SUBJECT, xDocProps->getSubject()); + + OutUnicode(OOO_STRING_SVTOOLS_RTF_KEYWORDS, + ::comphelper::string::convertCommaSeparated(xDocProps->getKeywords())); + OutUnicode(OOO_STRING_SVTOOLS_RTF_DOCCOMM, xDocProps->getDescription()); + + OutUnicode(OOO_STRING_SVTOOLS_RTF_AUTHOR, xDocProps->getAuthor()); + OutDateTime(OOO_STRING_SVTOOLS_RTF_CREATIM, xDocProps->getCreationDate()); + + OutUnicode(OOO_STRING_SVTOOLS_RTF_AUTHOR,xDocProps->getModifiedBy()); + OutDateTime(OOO_STRING_SVTOOLS_RTF_REVTIM, xDocProps->getModificationDate()); + + OutDateTime(OOO_STRING_SVTOOLS_RTF_PRINTIM, xDocProps->getPrintDate()); + } + + Strm() << '{' << OOO_STRING_SVTOOLS_RTF_COMMENT << " "; + OUString sProduct; + utl::ConfigManager::GetDirectConfigProperty(utl::ConfigManager::PRODUCTNAME) >>= sProduct; + Strm() << OUStringToOString( sProduct, eCurrentEncoding) << "}{" << OOO_STRING_SVTOOLS_RTF_VERN; + OutULong( SUPD*10 ) << '}'; + Strm() << '}'; +} + +void RtfExport::WritePageDescTable() +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + // Write page descriptions (page styles) + USHORT nSize = pDoc->GetPageDescCnt(); + if( !nSize ) + return; + + Strm() << sNewLine; // a separator + bOutPageDescs = TRUE; + Strm() << '{' << OOO_STRING_SVTOOLS_RTF_IGNORE << OOO_STRING_SVTOOLS_RTF_PGDSCTBL; + for( USHORT n = 0; n < nSize; ++n ) + { + const SwPageDesc& rPageDesc = + const_cast<const SwDoc*>(pDoc)->GetPageDesc( n ); + + Strm() << sNewLine << '{' << OOO_STRING_SVTOOLS_RTF_PGDSC; + OutULong( n ) << OOO_STRING_SVTOOLS_RTF_PGDSCUSE; + OutULong( rPageDesc.ReadUseOn() ); + + OutPageDescription( rPageDesc, FALSE, FALSE ); + + // search for the next page description + USHORT i = nSize; + while( i ) + if( rPageDesc.GetFollow() == + &const_cast<const SwDoc *>(pDoc)->GetPageDesc( --i ) ) + break; + Strm() << OOO_STRING_SVTOOLS_RTF_PGDSCNXT; + OutULong( i ) << ' '; + Strm() << OutString( rPageDesc.GetName(), eDefaultEncoding) << ";}"; + } + Strm() << '}' << sNewLine; + bOutPageDescs = FALSE; +} + +void RtfExport::ExportDocument_Impl() +{ +#ifdef DEBUG + // MSWordExportBase::WriteText and others write debug messages to std::clog + // which is not interesting while debugging RtfExport + std::ostringstream aOss; + std::streambuf *pOldBuf = std::clog.rdbuf(aOss.rdbuf()); +#endif + + // Make the header + Strm() << '{' << OOO_STRING_SVTOOLS_RTF_RTF << '1' + << OOO_STRING_SVTOOLS_RTF_ANSI; + Strm() << OOO_STRING_SVTOOLS_RTF_DEFF; + OutULong( maFontHelper.GetId( (SvxFontItem&)pDoc->GetAttrPool().GetDefaultItem( + RES_CHRATR_FONT ) )); + // If this not exist, MS don't understand our ansi characters (0x80-0xff). + Strm() << "\\adeflang1025"; + + // Font table + WriteFonts(); + + pStyles = new MSWordStyles( *this ); + // Color and stylesheet table + WriteStyles(); + + // List table + BuildNumbering(); + WriteNumbering(); + + WriteRevTab(); + + WriteInfo(); + // Default TabSize + Strm() << m_pAttrOutput->m_aTabStop.makeStringAndClear() << sNewLine; + // Page description + WritePageDescTable(); + + // Enable form protection by default if needed, as there is no switch to + // enable it on a per-section basis. OTOH don't always enable it as it + // breaks moving of drawings - so write it only in case there is really a + // protected section in the document. + { + const SfxItemPool& rPool = pDoc->GetAttrPool(); + USHORT nMaxItem = rPool.GetItemCount2(RES_PROTECT); + for( USHORT n = 0; n < nMaxItem; ++n ) + { + const SvxProtectItem* pProtect = (const SvxProtectItem*)rPool.GetItem2(RES_PROTECT, n); + if (pProtect && pProtect->IsCntntProtected()) + { + Strm() << OOO_STRING_SVTOOLS_RTF_FORMPROT; + break; + } + } + } + + // enable form field shading + Strm() << OOO_STRING_SVTOOLS_RTF_FORMSHADE; + + // size and empty margins of the page + if( pDoc->GetPageDescCnt() ) + { + //JP 06.04.99: Bug 64361 - Seeking the first SwFmtPageDesc. If + // no set, the default is valid + const SwFmtPageDesc* pSttPgDsc = 0; + { + const SwNode& rSttNd = *pDoc->GetNodes()[ + pDoc->GetNodes().GetEndOfExtras().GetIndex() + 2 ]; + const SfxItemSet* pSet = 0; + + if( rSttNd.IsCntntNode() ) + pSet = &rSttNd.GetCntntNode()->GetSwAttrSet(); + else if( rSttNd.IsTableNode() ) + pSet = &rSttNd.GetTableNode()->GetTable(). + GetFrmFmt()->GetAttrSet(); + else if( rSttNd.IsSectionNode() ) + pSet = &rSttNd.GetSectionNode()->GetSection(). + GetFmt()->GetAttrSet(); + + if( pSet ) + { + USHORT nPosInDoc; + pSttPgDsc = (SwFmtPageDesc*)&pSet->Get( RES_PAGEDESC ); + if( !pSttPgDsc->GetPageDesc() ) + pSttPgDsc = 0; + else if( pDoc->FindPageDescByName( pSttPgDsc-> + GetPageDesc()->GetName(), &nPosInDoc )) + { + Strm() << '{' << OOO_STRING_SVTOOLS_RTF_IGNORE << OOO_STRING_SVTOOLS_RTF_PGDSCNO; + OutULong( nPosInDoc ) << '}'; + } + } + } + const SwPageDesc& rPageDesc = pSttPgDsc ? *pSttPgDsc->GetPageDesc() + : const_cast<const SwDoc *>(pDoc)->GetPageDesc( 0 ); + const SwFrmFmt &rFmtPage = rPageDesc.GetMaster(); + + { + if( rPageDesc.GetLandscape() ) + Strm() << OOO_STRING_SVTOOLS_RTF_LANDSCAPE; + + const SwFmtFrmSize& rSz = rFmtPage.GetFrmSize(); + // Clipboard document is always created without a printer, then + // the size will be always LONG_MAX! Solution then is to use A4 + if( LONG_MAX == rSz.GetHeight() || LONG_MAX == rSz.GetWidth() ) + { + Strm() << OOO_STRING_SVTOOLS_RTF_PAPERH; + Size a4 = SvxPaperInfo::GetPaperSize(PAPER_A4); + OutULong( a4.Height() ) << OOO_STRING_SVTOOLS_RTF_PAPERW; + OutULong( a4.Width() ); + } + else + { + Strm() << OOO_STRING_SVTOOLS_RTF_PAPERH; + OutULong( rSz.GetHeight() ) << OOO_STRING_SVTOOLS_RTF_PAPERW; + OutULong( rSz.GetWidth() ); + } + } + + { + const SvxLRSpaceItem& rLR = rFmtPage.GetLRSpace(); + Strm() << OOO_STRING_SVTOOLS_RTF_MARGL; + OutLong( rLR.GetLeft() ) << OOO_STRING_SVTOOLS_RTF_MARGR; + OutLong( rLR.GetRight() ); + } + + { + const SvxULSpaceItem& rUL = rFmtPage.GetULSpace(); + Strm() << OOO_STRING_SVTOOLS_RTF_MARGT; + OutLong( rUL.GetUpper() ) << OOO_STRING_SVTOOLS_RTF_MARGB; + OutLong( rUL.GetLower() ); + } + + Strm() << OOO_STRING_SVTOOLS_RTF_SECTD << OOO_STRING_SVTOOLS_RTF_SBKNONE; + // All sections are unlocked by default + Strm() << OOO_STRING_SVTOOLS_RTF_SECTUNLOCKED; + OutLong(1); + OutPageDescription( rPageDesc, FALSE, TRUE ); // Changed bCheckForFirstPage to TRUE so headers + // following title page are correctly added - i13107 + if( pSttPgDsc ) + { + pAktPageDesc = &rPageDesc; + } + } + + // line numbering + const SwLineNumberInfo& rLnNumInfo = pDoc->GetLineNumberInfo(); + if ( rLnNumInfo.IsPaintLineNumbers() ) + AttrOutput().SectionLineNumbering( 0, rLnNumInfo ); + + { + // write the footnotes and endnotes-out Info + const SwFtnInfo& rFtnInfo = pDoc->GetFtnInfo(); + + const char* pOut = FTNPOS_CHAPTER == rFtnInfo.ePos + ? OOO_STRING_SVTOOLS_RTF_ENDDOC + : OOO_STRING_SVTOOLS_RTF_FTNBJ; + Strm() << pOut << OOO_STRING_SVTOOLS_RTF_FTNSTART; + OutLong( rFtnInfo.nFtnOffset + 1 ); + + switch( rFtnInfo.eNum ) + { + case FTNNUM_PAGE: pOut = OOO_STRING_SVTOOLS_RTF_FTNRSTPG; break; + case FTNNUM_DOC: pOut = OOO_STRING_SVTOOLS_RTF_FTNRSTCONT; break; + // case FTNNUM_CHAPTER: + default: pOut = OOO_STRING_SVTOOLS_RTF_FTNRESTART; break; + } + Strm() << pOut; + + switch( rFtnInfo.aFmt.GetNumberingType() ) + { + case SVX_NUM_CHARS_LOWER_LETTER: + case SVX_NUM_CHARS_LOWER_LETTER_N: pOut = OOO_STRING_SVTOOLS_RTF_FTNNALC; break; + case SVX_NUM_CHARS_UPPER_LETTER: + case SVX_NUM_CHARS_UPPER_LETTER_N: pOut = OOO_STRING_SVTOOLS_RTF_FTNNAUC; break; + case SVX_NUM_ROMAN_LOWER: pOut = OOO_STRING_SVTOOLS_RTF_FTNNRLC; break; + case SVX_NUM_ROMAN_UPPER: pOut = OOO_STRING_SVTOOLS_RTF_FTNNRUC; break; + case SVX_NUM_CHAR_SPECIAL: pOut = OOO_STRING_SVTOOLS_RTF_FTNNCHI; break; + // case SVX_NUM_ARABIC: + default: pOut = OOO_STRING_SVTOOLS_RTF_FTNNAR; break; + } + Strm() << pOut; + + + const SwEndNoteInfo& rEndNoteInfo = pDoc->GetEndNoteInfo(); + + Strm() << OOO_STRING_SVTOOLS_RTF_AENDDOC << OOO_STRING_SVTOOLS_RTF_AFTNRSTCONT + << OOO_STRING_SVTOOLS_RTF_AFTNSTART; + OutLong( rEndNoteInfo.nFtnOffset + 1 ); + + switch( rEndNoteInfo.aFmt.GetNumberingType() ) + { + case SVX_NUM_CHARS_LOWER_LETTER: + case SVX_NUM_CHARS_LOWER_LETTER_N: pOut = OOO_STRING_SVTOOLS_RTF_AFTNNALC; break; + case SVX_NUM_CHARS_UPPER_LETTER: + case SVX_NUM_CHARS_UPPER_LETTER_N: pOut = OOO_STRING_SVTOOLS_RTF_AFTNNAUC; break; + case SVX_NUM_ROMAN_LOWER: pOut = OOO_STRING_SVTOOLS_RTF_AFTNNRLC; break; + case SVX_NUM_ROMAN_UPPER: pOut = OOO_STRING_SVTOOLS_RTF_AFTNNRUC; break; + case SVX_NUM_CHAR_SPECIAL: pOut = OOO_STRING_SVTOOLS_RTF_AFTNNCHI; break; + // case SVX_NUM_ARABIC: + default: pOut = OOO_STRING_SVTOOLS_RTF_AFTNNAR; break; + } + Strm() << pOut; + } + + Strm() << sNewLine; + + // Init sections + m_pSections = new MSWordSections( *this ); + + WriteMainText(); + + Strm() << '}'; + +#ifdef DEBUG + std::clog.rdbuf(pOldBuf); +#endif +} + +void RtfExport::PrepareNewPageDesc( const SfxItemSet* pSet, + const SwNode& rNd, const SwFmtPageDesc* pNewPgDescFmt, + const SwPageDesc* pNewPgDesc ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + const SwSectionFmt* pFmt = GetSectionFormat( rNd ); + const ULONG nLnNm = GetSectionLineNo( pSet, rNd ); + + OSL_ENSURE( pNewPgDescFmt || pNewPgDesc, "Neither page desc format nor page desc provided." ); + + if ( pNewPgDescFmt ) + m_pSections->AppendSection( *pNewPgDescFmt, rNd, pFmt, nLnNm ); + else if ( pNewPgDesc ) + m_pSections->AppendSection( pNewPgDesc, rNd, pFmt, nLnNm ); + + AttrOutput().SectionBreak( msword::PageBreak, m_pSections->CurrentSectionInfo() ); +} + +bool RtfExport::DisallowInheritingOutlineNumbering( const SwFmt& rFmt ) +{ + bool bRet( false ); + + OSL_TRACE("%s", OSL_THIS_FUNC); + + if (SFX_ITEM_SET != rFmt.GetItemState(RES_PARATR_NUMRULE, false)) + { + if (const SwFmt *pParent = rFmt.DerivedFrom()) + { + if (((const SwTxtFmtColl*)pParent)->IsAssignedToListLevelOfOutlineStyle()) + { + // Level 9 disables the outline + Strm() << OOO_STRING_SVTOOLS_RTF_LEVEL << 9; + + bRet = true; + } + } + } + + return bRet; +} + +void RtfExport::OutputGrfNode( const SwGrfNode& ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + /* noop, see RtfAttributeOutput::FlyFrameGraphic */ +} + +void RtfExport::OutputOLENode( const SwOLENode& ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + /* noop, see RtfAttributeOutput::FlyFrameOLE */ +} + +void RtfExport::AppendSection( const SwPageDesc* pPageDesc, const SwSectionFmt* pFmt, ULONG nLnNum ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_pSections->AppendSection( pPageDesc, pFmt, nLnNum ); + AttrOutput().SectionBreak( msword::PageBreak, m_pSections->CurrentSectionInfo() ); +} + +RtfExport::RtfExport( RtfExportFilter *pFilter, SwDoc *pDocument, SwPaM *pCurrentPam, SwPaM *pOriginalPam, Writer* pWriter ) + : MSWordExportBase( pDocument, pCurrentPam, pOriginalPam ), + m_pFilter( pFilter ), + m_pWriter( pWriter ), + m_pAttrOutput( NULL ), + m_pSections( NULL ), + m_pSdrExport( NULL ), + eDefaultEncoding( + rtl_getTextEncodingFromWindowsCharset( + sw::ms::rtl_TextEncodingToWinCharset(DEF_ENCODING))), + eCurrentEncoding(eDefaultEncoding), + bRTFFlySyntax(false) +{ + mbExportModeRTF = true; + // the attribute output for the document + m_pAttrOutput = new RtfAttributeOutput( *this ); + // that just causes problems for RTF + bSubstituteBullets = false; + // needed to have a complete font table + maFontHelper.bLoadAllFonts = true; + // the related SdrExport + m_pSdrExport = new RtfSdrExport( *this ); + + if (!m_pWriter) + m_pWriter = &m_pFilter->m_aWriter; +} + +RtfExport::~RtfExport() +{ + delete m_pAttrOutput, m_pAttrOutput = NULL; + delete m_pSdrExport, m_pSdrExport = NULL; +} + +SvStream& RtfExport::Strm() +{ + return m_pWriter->Strm(); +} + +SvStream& RtfExport::OutULong( ULONG nVal ) +{ + return m_pWriter->OutULong( Strm(), nVal ); +} + +SvStream& RtfExport::OutLong( long nVal ) +{ + return m_pWriter->OutLong( Strm(), nVal ); +} + +void RtfExport::OutUnicode(const sal_Char *pToken, const String &rContent) +{ + if (rContent.Len()) + { + Strm() << '{' << pToken << ' '; + Strm() << OutString( rContent, eCurrentEncoding ).getStr(); + Strm() << '}'; + } +} + +OString RtfExport::OutHex(ULONG nHex, BYTE nLen) +{ + sal_Char aNToABuf[] = "0000000000000000"; + + OSL_ENSURE( nLen < sizeof(aNToABuf), "nLen is too big" ); + if( nLen >= sizeof(aNToABuf) ) + nLen = (sizeof(aNToABuf)-1); + + // Set pointer to the buffer end + sal_Char* pStr = aNToABuf + (sizeof(aNToABuf)-1); + for( BYTE n = 0; n < nLen; ++n ) + { + *(--pStr) = (sal_Char)(nHex & 0xf ) + 48; + if( *pStr > '9' ) + *pStr += 39; + nHex >>= 4; + } + return OString(pStr); +} + +OString RtfExport::OutChar(sal_Unicode c, int *pUCMode, rtl_TextEncoding eDestEnc) +{ + OStringBuffer aBuf; + const sal_Char* pStr = 0; + // 0x0b instead of \n, etc because of the replacements in SwAttrIter::GetSnippet() + switch (c) + { + case 0x0b: + // hard line break + pStr = OOO_STRING_SVTOOLS_RTF_LINE; + break; + case '\t': + pStr = OOO_STRING_SVTOOLS_RTF_TAB; + break; + case '\\': + case '}': + case '{': + aBuf.append('\\'); + aBuf.append((sal_Char)c); + break; + case 0xa0: + // non-breaking space + pStr = "\\~"; + break; + case 0x1e: + // non-breaking hyphen + pStr = "\\_"; + break; + case 0x1f: + // optional hyphen + pStr = "\\-"; + break; + default: + if (c >= ' ' && c <= '~') + aBuf.append((sal_Char)c); + else { + //If we can't convert to the dest encoding, or if + //its an uncommon multibyte sequence which most + //readers won't be able to handle correctly, then + //If we can't convert to the dest encoding, then + //export as unicode + OUString sBuf(&c, 1); + OString sConverted; + sal_uInt32 nFlags = + RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR | + RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR; + bool bWriteAsUnicode = !(sBuf.convertToString(&sConverted, + eDestEnc, nFlags)) + || (RTL_TEXTENCODING_UTF8==eDestEnc); // #i43933# do not export UTF-8 chars in RTF; + if (bWriteAsUnicode) + sBuf.convertToString(&sConverted, + eDestEnc, OUSTRING_TO_OSTRING_CVTFLAGS); + const sal_Int32 nLen = sConverted.getLength(); + + if (bWriteAsUnicode && pUCMode) + { + // then write as unicode - character + if (*pUCMode != nLen) + { + aBuf.append("\\uc"); + aBuf.append((sal_Int32)nLen); + // #i47831# add an additional whitespace, so that "document whitespaces" are not ignored. + aBuf.append(' '); + *pUCMode = nLen; + } + aBuf.append("\\u"); + aBuf.append((sal_Int32)c); + } + + for (sal_Int32 nI = 0; nI < nLen; ++nI) + { + aBuf.append("\\'"); + aBuf.append(OutHex(sConverted.getStr()[nI], 2)); + } + } + } + if (pStr) { + aBuf.append(pStr); + aBuf.append(' '); + } + return aBuf.makeStringAndClear(); +} + +OString RtfExport::OutString(const String &rStr, rtl_TextEncoding eDestEnc) +{ + OSL_TRACE("%s, rStr = '%s'", OSL_THIS_FUNC, + OUStringToOString( OUString( rStr ), eDestEnc ).getStr()); + OStringBuffer aBuf; + int nUCMode = 1; + for (xub_StrLen n = 0; n < rStr.Len(); ++n) + aBuf.append(OutChar(rStr.GetChar(n), &nUCMode, eDestEnc)); + if (nUCMode != 1) { + aBuf.append(OOO_STRING_SVTOOLS_RTF_UC); + aBuf.append((sal_Int32)1); + aBuf.append(" "); // #i47831# add an additional whitespace, so that "document whitespaces" are not ignored.; + } + return aBuf.makeStringAndClear(); +} + +void RtfExport::OutDateTime(const sal_Char* pStr, const util::DateTime& rDT ) +{ + Strm() << '{' << pStr << OOO_STRING_SVTOOLS_RTF_YR; + OutULong( rDT.Year ) << OOO_STRING_SVTOOLS_RTF_MO; + OutULong( rDT.Month ) << OOO_STRING_SVTOOLS_RTF_DY; + OutULong( rDT.Day ) << OOO_STRING_SVTOOLS_RTF_HR; + OutULong( rDT.Hours ) << OOO_STRING_SVTOOLS_RTF_MIN; + OutULong( rDT.Minutes ) << '}'; +} + +USHORT RtfExport::GetColor( const Color& rColor ) const +{ + for (RtfColorTbl::const_iterator it=m_aColTbl.begin() ; it != m_aColTbl.end(); it++ ) + if ((*it).second == rColor) { + OSL_TRACE("%s returning %d (%d,%d,%d)", OSL_THIS_FUNC, (*it).first, rColor.GetRed(), rColor.GetGreen(), rColor.GetBlue()); + return (*it).first; + } + OSL_ENSURE( FALSE, "No such Color in m_aColTbl!" ); + return 0; +} + +void RtfExport::InsColor( const Color& rCol ) +{ + USHORT n; + for (RtfColorTbl::iterator it=m_aColTbl.begin() ; it != m_aColTbl.end(); it++ ) + if ((*it).second == rCol) + return; // Already in the table + if (rCol.GetColor() == COL_AUTO) + n = 0; + else + { + n = m_aColTbl.size(); + // Fix for the case when first a !COL_AUTO gets inserted as #0, then + // gets overwritten by COL_AUTO + if (!n) + n++; + } + m_aColTbl.insert(std::pair<USHORT,Color>( n, rCol )); +} + +void RtfExport::InsColorLine( const SvxBoxItem& rBox ) +{ + const SvxBorderLine* pLine = 0; + + if( rBox.GetTop() ) + InsColor( (pLine = rBox.GetTop())->GetColor() ); + if( rBox.GetBottom() && pLine != rBox.GetBottom() ) + InsColor( (pLine = rBox.GetBottom())->GetColor() ); + if( rBox.GetLeft() && pLine != rBox.GetLeft() ) + InsColor( (pLine = rBox.GetLeft())->GetColor() ); + if( rBox.GetRight() && pLine != rBox.GetRight() ) + InsColor( rBox.GetRight()->GetColor() ); +} +void RtfExport::OutColorTable() +{ + // Build the table from rPool since the colors provided to + // RtfAttributeOutput callbacks are too late. + USHORT n, nMaxItem; + const SfxItemPool& rPool = pDoc->GetAttrPool(); + + // char color + { + const SvxColorItem* pCol = (const SvxColorItem*)GetDfltAttr( + RES_CHRATR_COLOR ); + InsColor( pCol->GetValue() ); + if( 0 != ( pCol = (const SvxColorItem*)rPool.GetPoolDefaultItem( + RES_CHRATR_COLOR ) )) + InsColor( pCol->GetValue() ); + nMaxItem = rPool.GetItemCount2(RES_CHRATR_COLOR); + for( n = 0; n < nMaxItem; ++n ) + { + if( 0 != (pCol = (const SvxColorItem*)rPool.GetItem2( + RES_CHRATR_COLOR, n ) ) ) + InsColor( pCol->GetValue() ); + } + + const SvxUnderlineItem* pUnder = (const SvxUnderlineItem*)GetDfltAttr( RES_CHRATR_UNDERLINE ); + InsColor( pUnder->GetColor() ); + nMaxItem = rPool.GetItemCount2(RES_CHRATR_UNDERLINE); + for( n = 0; n < nMaxItem;n++) + { + if( 0 != (pUnder = (const SvxUnderlineItem*)rPool.GetItem2( RES_CHRATR_UNDERLINE, n ) ) ) + InsColor( pUnder->GetColor() ); + + } + + const SvxOverlineItem* pOver = (const SvxOverlineItem*)GetDfltAttr( RES_CHRATR_OVERLINE ); + InsColor( pOver->GetColor() ); + nMaxItem = rPool.GetItemCount2(RES_CHRATR_OVERLINE); + for( n = 0; n < nMaxItem;n++) + { + if( 0 != (pOver = (const SvxOverlineItem*)rPool.GetItem2( RES_CHRATR_OVERLINE, n ) ) ) + InsColor( pOver->GetColor() ); + + } + + } + + // background color + static const USHORT aBrushIds[] = { + RES_BACKGROUND, RES_CHRATR_BACKGROUND, 0 }; + + for( const USHORT* pIds = aBrushIds; *pIds; ++pIds ) + { + const SvxBrushItem* pBkgrd = (const SvxBrushItem*)GetDfltAttr( *pIds ); + InsColor( pBkgrd->GetColor() ); + if( 0 != ( pBkgrd = (const SvxBrushItem*)rPool.GetPoolDefaultItem( + *pIds ) )) + { + InsColor( pBkgrd->GetColor() ); + } + nMaxItem = rPool.GetItemCount2( *pIds ); + for( n = 0; n < nMaxItem; ++n ) + if( 0 != (pBkgrd = (const SvxBrushItem*)rPool.GetItem2( + *pIds , n ) )) + { + InsColor( pBkgrd->GetColor() ); + } + } + + // shadow color + { + const SvxShadowItem* pShadow = (const SvxShadowItem*)GetDfltAttr( + RES_SHADOW ); + InsColor( pShadow->GetColor() ); + if( 0 != ( pShadow = (const SvxShadowItem*)rPool.GetPoolDefaultItem( + RES_SHADOW ) )) + { + InsColor( pShadow->GetColor() ); + } + nMaxItem = rPool.GetItemCount2(RES_SHADOW); + for( n = 0; n < nMaxItem; ++n ) + if( 0 != (pShadow = (const SvxShadowItem*)rPool.GetItem2( + RES_SHADOW, n ) ) ) + { + InsColor( pShadow->GetColor() ); + } + } + + // frame border color + { + const SvxBoxItem* pBox; + if( 0 != ( pBox = (const SvxBoxItem*)rPool.GetPoolDefaultItem( + RES_BOX ) )) + InsColorLine( *pBox ); + nMaxItem = rPool.GetItemCount2(RES_BOX); + for( n = 0; n < nMaxItem; ++n ) + if( 0 != (pBox = (const SvxBoxItem*)rPool.GetItem2( RES_BOX, n ) )) + InsColorLine( *pBox ); + } + + for( n = 0; n < m_aColTbl.size(); n++ ) + { + const Color& rCol = m_aColTbl[ n ]; + if( n || COL_AUTO != rCol.GetColor() ) + { + Strm() << OOO_STRING_SVTOOLS_RTF_RED; + OutULong( rCol.GetRed() ) << OOO_STRING_SVTOOLS_RTF_GREEN; + OutULong( rCol.GetGreen() ) << OOO_STRING_SVTOOLS_RTF_BLUE; + OutULong( rCol.GetBlue() ); + } + Strm() << ';'; + } +} + +void RtfExport::InsStyle( USHORT nId, const OString& rStyle ) +{ + m_aStyTbl.insert(std::pair<USHORT,OString>(nId, rStyle) ); +} + +OString* RtfExport::GetStyle( USHORT nId ) +{ + std::map<USHORT,OString>::iterator i = m_aStyTbl.find(nId); + if (i != m_aStyTbl.end()) + return &i->second; + return NULL; +} + +USHORT RtfExport::GetRedline( const String& rAuthor ) +{ + std::map<String,USHORT>::iterator i = m_aRedlineTbl.find(rAuthor); + if (i != m_aRedlineTbl.end()) + return i->second; + else + { + int nId = m_aRedlineTbl.size(); + m_aRedlineTbl.insert(std::pair<String,USHORT>(rAuthor,nId)); + return nId; + } +} + +const String* RtfExport::GetRedline( USHORT nId ) +{ + for(std::map<String,USHORT>::iterator aIter = m_aRedlineTbl.begin(); aIter != m_aRedlineTbl.end(); ++aIter) + if ((*aIter).second == nId) + return &(*aIter).first; + return NULL; +} + +void RtfExport::OutPageDescription( const SwPageDesc& rPgDsc, BOOL bWriteReset, BOOL bCheckForFirstPage ) +{ + OSL_TRACE("%s start", OSL_THIS_FUNC); + const SwPageDesc *pSave = pAktPageDesc; + + pAktPageDesc = &rPgDsc; + if( bCheckForFirstPage && pAktPageDesc->GetFollow() && + pAktPageDesc->GetFollow() != pAktPageDesc ) + pAktPageDesc = pAktPageDesc->GetFollow(); + + if( bWriteReset ) + { + if( pCurPam->GetPoint()->nNode == pOrigPam->Start()->nNode ) + Strm() << OOO_STRING_SVTOOLS_RTF_SECTD << OOO_STRING_SVTOOLS_RTF_SBKNONE; + else + Strm() << OOO_STRING_SVTOOLS_RTF_SECT << OOO_STRING_SVTOOLS_RTF_SECTD; + } + + if( pAktPageDesc->GetLandscape() ) + Strm() << OOO_STRING_SVTOOLS_RTF_LNDSCPSXN; + + const SwFmt *pFmt = &pAktPageDesc->GetMaster(); //GetLeft(); + bOutPageDescs = true; + OutputFormat(*pFmt, true, false); + bOutPageDescs = false; + + // normal header / footer (without a style) + const SfxPoolItem* pItem; + if( pAktPageDesc->GetLeft().GetAttrSet().GetItemState( RES_HEADER, FALSE, + &pItem ) == SFX_ITEM_SET) + WriteHeaderFooter(*pItem, true); + if( pAktPageDesc->GetLeft().GetAttrSet().GetItemState( RES_FOOTER, FALSE, + &pItem ) == SFX_ITEM_SET) + WriteHeaderFooter(*pItem, false); + + // title page + if( pAktPageDesc != &rPgDsc ) + { + pAktPageDesc = &rPgDsc; + Strm() << OOO_STRING_SVTOOLS_RTF_TITLEPG; + if( pAktPageDesc->GetMaster().GetAttrSet().GetItemState( RES_HEADER, + FALSE, &pItem ) == SFX_ITEM_SET ) + WriteHeaderFooter(*pItem, true); + if( pAktPageDesc->GetMaster().GetAttrSet().GetItemState( RES_FOOTER, + FALSE, &pItem ) == SFX_ITEM_SET ) + WriteHeaderFooter(*pItem, false); + } + + // numbering type + AttrOutput().SectionPageNumbering(pAktPageDesc->GetNumType().GetNumberingType(), 0); + + pAktPageDesc = pSave; + //bOutPageDesc = bOldOut; + OSL_TRACE("%s end", OSL_THIS_FUNC); +} + +void RtfExport::WriteHeaderFooter(const SfxPoolItem& rItem, bool bHeader) +{ + if (bHeader) + { + const SwFmtHeader& rHeader = (const SwFmtHeader&)rItem; + if (!rHeader.IsActive()) + return; + } + else + { + const SwFmtFooter& rFooter = (const SwFmtFooter&)rItem; + if (!rFooter.IsActive()) + return; + } + + OSL_TRACE("%s start", OSL_THIS_FUNC); + + const sal_Char* pStr = (bHeader ? OOO_STRING_SVTOOLS_RTF_HEADER : OOO_STRING_SVTOOLS_RTF_FOOTER); + /* is this a title page? */ + if( pAktPageDesc->GetFollow() && pAktPageDesc->GetFollow() != pAktPageDesc ) + { + Strm() << OOO_STRING_SVTOOLS_RTF_TITLEPG; + pStr = (bHeader ? OOO_STRING_SVTOOLS_RTF_HEADERF : OOO_STRING_SVTOOLS_RTF_FOOTERF); + } + Strm() << '{' << pStr; + WriteHeaderFooterText(pAktPageDesc->GetMaster(), bHeader); + Strm() << '}'; + + OSL_TRACE("%s end", OSL_THIS_FUNC); +} + +void RtfExport::WriteHeaderFooter(const SwFrmFmt& rFmt, bool bHeader, const sal_Char* pStr) +{ + OSL_TRACE("%s start", OSL_THIS_FUNC); + + m_pAttrOutput->WriteHeaderFooter_Impl( rFmt, bHeader, pStr ); + + OSL_TRACE("%s end", OSL_THIS_FUNC); +} + +class SwRTFWriter : public Writer +{ + public: + SwRTFWriter( const String& rFilterName, const String& rBaseURL ); + virtual ~SwRTFWriter(); + virtual ULONG WriteStream(); +}; + +SwRTFWriter::SwRTFWriter( const String& /*rFltName*/, const String & rBaseURL ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + SetBaseURL( rBaseURL ); +} + +SwRTFWriter::~SwRTFWriter() +{} + +ULONG SwRTFWriter::WriteStream() +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + RtfExport aExport( NULL, pDoc, new SwPaM( *pCurPam->End(), *pCurPam->Start() ), pCurPam, this ); + aExport.ExportDocument( true ); + return 0; +} + +extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL ExportRTF( const String& rFltName, const String& rBaseURL, WriterRef& xRet ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + xRet = new SwRTFWriter( rFltName, rBaseURL ); +} + +/* vi:set shiftwidth=4 expandtab: */ diff --git a/sw/source/filter/ww8/rtfexport.hxx b/sw/source/filter/ww8/rtfexport.hxx new file mode 100644 index 0000000000..9b866f673d --- /dev/null +++ b/sw/source/filter/ww8/rtfexport.hxx @@ -0,0 +1,212 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * Copyright 2010 Miklos Vajna. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _RTFEXPORT_HXX_ +#define _RTFEXPORT_HXX_ + +#include <set> +#include "rtfattributeoutput.hxx" +#include "wrtww8.hxx" + +#include <rtl/ustring.hxx> + +#include <cstdio> +#include <map> + +class RtfExportFilter; +class RtfSdrExport; +typedef std::map<USHORT,Color> RtfColorTbl; +typedef std::map<USHORT,rtl::OString> RtfStyleTbl; +typedef std::map<String,USHORT> RtfRedlineTbl; +class SwNode; +class SwEndNode; +class SwTableNode; +class SwTxtNode; +class SwGrfNode; +class SwOLENode; +class SwSectionNode; +class SwNumRuleTbl; + +namespace com { namespace sun { namespace star { + namespace frame { class XModel; } +} } } + +/// The class that does all the actual RTF export-related work. +class RtfExport : public MSWordExportBase +{ + /// Pointer to the filter that owns us. + RtfExportFilter *m_pFilter; + Writer* m_pWriter; + + /// Attribute output for document. + RtfAttributeOutput *m_pAttrOutput; + + /// Sections/headers/footers + MSWordSections *m_pSections; + + RtfSdrExport *m_pSdrExport; + +public: + /// Access to the attribute output class. + virtual AttributeOutputBase& AttrOutput() const; + + /// Access to the sections/headers/footres. + virtual MSWordSections& Sections() const; + + /// Access to the Rtf Sdr exporter. + virtual RtfSdrExport& SdrExporter() const; + + /// Hack, unfortunately necessary at some places for now. + virtual bool HackIsWW8OrHigher() const { return false; } + + /// Guess the script (asian/western). + virtual bool CollapseScriptsforWordOk( USHORT nScript, USHORT nWhich ); + + virtual void AppendBookmarks( const SwTxtNode& rNode, xub_StrLen nAktPos, xub_StrLen nLen ); + + virtual void AppendBookmark( const rtl::OUString& rName, bool bSkip = false ); + + virtual void WriteCR( ww8::WW8TableNodeInfoInner::Pointer_t /*pTableTextNodeInfoInner = ww8::WW8TableNodeInfoInner::Pointer_t()*/ ) { /* no-op for rtf, most probably should not even be in MSWordExportBase */ } + virtual void WriteChar( sal_Unicode ); + + /// Write the numbering table. + virtual void WriteNumbering(); + + /// Write the revision table. + virtual void WriteRevTab(); + + /// Output the actual headers and footers. + virtual void WriteHeadersFooters( BYTE nHeadFootFlags, + const SwFrmFmt& rFmt, const SwFrmFmt& rLeftFmt, const SwFrmFmt& rFirstPageFmt, BYTE nBreakCode ); + + /// Write the field + virtual void OutputField( const SwField* pFld, ww::eField eFldType, + const String& rFldCmd, BYTE nMode = nsFieldFlags::WRITEFIELD_ALL ); + + /// Write the data of the form field + virtual void WriteFormData( const ::sw::mark::IFieldmark& rFieldmark ); + virtual void WriteHyperlinkData( const ::sw::mark::IFieldmark& rFieldmark ); + + virtual void DoComboBox(const rtl::OUString &rName, + const rtl::OUString &rHelp, + const rtl::OUString &ToolTip, + const rtl::OUString &rSelected, + com::sun::star::uno::Sequence<rtl::OUString> &rListItems); + + virtual void DoFormText(const SwInputField * pFld); + + virtual ULONG ReplaceCr( BYTE nChar ); + +protected: + /// Format-dependant part of the actual export. + virtual void ExportDocument_Impl(); + + virtual void SectionBreaksAndFrames( const SwTxtNode& /*rNode*/ ) {} + + /// Get ready for a new section. + virtual void PrepareNewPageDesc( const SfxItemSet* pSet, + const SwNode& rNd, + const SwFmtPageDesc* pNewPgDescFmt = 0, + const SwPageDesc* pNewPgDesc = 0 ); + + /// Return value indicates if an inherited outline numbering is suppressed. + virtual bool DisallowInheritingOutlineNumbering(const SwFmt &rFmt); + + /// Output SwGrfNode + virtual void OutputGrfNode( const SwGrfNode& ); + + /// Output SwOLENode + virtual void OutputOLENode( const SwOLENode& ); + + virtual void AppendSection( const SwPageDesc *pPageDesc, const SwSectionFmt* pFmt, ULONG nLnNum ); + +public: + /// Pass the pDocument, pCurrentPam and pOriginalPam to the base class. + RtfExport( RtfExportFilter *pFilter, SwDoc *pDocument, + SwPaM *pCurrentPam, SwPaM *pOriginalPam, Writer* pWriter ); + + /// Destructor. + virtual ~RtfExport(); + +#if defined(UNX) + static const sal_Char sNewLine; // \012 or \015 +#else + static const sal_Char __FAR_DATA sNewLine[]; // \015\012 +#endif + + rtl_TextEncoding eDefaultEncoding; + rtl_TextEncoding eCurrentEncoding; + /// This is used by OutputFlyFrame_Impl() to control the written syntax + bool bRTFFlySyntax; + + BOOL m_bOutStyleTab : 1; + SvStream& Strm(); + SvStream& OutULong( ULONG nVal ); + SvStream& OutLong( long nVal ); + void OutUnicode(const sal_Char *pToken, const String &rContent); + void OutDateTime(const sal_Char* pStr, const util::DateTime& rDT ); + static rtl::OString OutChar(sal_Unicode c, int *pUCMode, rtl_TextEncoding eDestEnc); + static rtl::OString OutString(const String &rStr, rtl_TextEncoding eDestEnc); + static rtl::OString OutHex(ULONG nHex, BYTE nLen); + void OutPageDescription( const SwPageDesc& rPgDsc, BOOL bWriteReset, BOOL bCheckForFirstPage ); + + USHORT GetColor( const Color& rColor ) const; + void InsColor( const Color& rCol ); + void InsColorLine( const SvxBoxItem& rBox ); + void OutColorTable(); + USHORT GetRedline( const String& rAuthor ); + const String* GetRedline( USHORT nId ); + + void InsStyle( USHORT nId, const rtl::OString& rStyle ); + rtl::OString* GetStyle( USHORT nId ); + +private: + /// No copying. + RtfExport( const RtfExport& ); + + /// No copying. + RtfExport& operator=( const RtfExport& ); + + void WriteFonts(); + void WriteStyles(); + void WriteMainText(); + void WriteInfo(); + /// Writes the writer-specific \pgdsctbl group. + void WritePageDescTable(); + /// This is necessary to have the numbering table ready before the main text is being processed. + void BuildNumbering(); + void WriteHeaderFooter(const SfxPoolItem& rItem, bool bHeader); + void WriteHeaderFooter(const SwFrmFmt& rFmt, bool bHeader, const sal_Char* pStr); + + RtfColorTbl m_aColTbl; + RtfStyleTbl m_aStyTbl; + RtfRedlineTbl m_aRedlineTbl; +}; + +#endif // _RTFEXPORT_HXX_ +/* vi:set shiftwidth=4 expandtab: */ diff --git a/sw/source/filter/ww8/rtfexportfilter.cxx b/sw/source/filter/ww8/rtfexportfilter.cxx new file mode 100644 index 0000000000..ff4ed180d0 --- /dev/null +++ b/sw/source/filter/ww8/rtfexportfilter.cxx @@ -0,0 +1,226 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * Copyright 2010 Miklos Vajna. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#include <rtfexportfilter.hxx> +#include <rtfexport.hxx> +#include <rtfimportfilter.hxx> + +#include <docsh.hxx> +#include <doc.hxx> +#include <pam.hxx> +#include <unotxdoc.hxx> + +#include <cppuhelper/factory.hxx> +#include <comphelper/mediadescriptor.hxx> +#include <unotools/ucbstreamhelper.hxx> + +using namespace ::comphelper; +using namespace ::com::sun::star; +using ::rtl::OUString; + +RtfExportFilter::RtfExportFilter( const uno::Reference< lang::XMultiServiceFactory >& xMSF) : + m_xMSF( xMSF ) +{ +} + +RtfExportFilter::~RtfExportFilter() +{ +} + +sal_Bool RtfExportFilter::filter( const uno::Sequence< beans::PropertyValue >& aDescriptor ) + throw (uno::RuntimeException) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + MediaDescriptor aMediaDesc = aDescriptor; + ::uno::Reference< io::XStream > xStream = + aMediaDesc.getUnpackedValueOrDefault( MediaDescriptor::PROP_STREAMFOROUTPUT(), uno::Reference< io::XStream >() ); + m_pStream = utl::UcbStreamHelper::CreateStream( xStream, sal_True ); + m_aWriter.SetStream(m_pStream); + + // get SwDoc* + uno::Reference< uno::XInterface > xIfc( m_xSrcDoc, uno::UNO_QUERY ); + SwXTextDocument *pTxtDoc = dynamic_cast< SwXTextDocument * >( xIfc.get() ); + if ( !pTxtDoc ) { + return sal_False; + } + + SwDoc *pDoc = pTxtDoc->GetDocShell()->GetDoc(); + if ( !pDoc ) { + return sal_False; + } + + // get SwPaM* + // we get SwPaM for the entire document; copy&paste is handled internally, not via UNO + SwPaM aPam( pDoc->GetNodes().GetEndOfContent() ); + aPam.SetMark(); + aPam.Move( fnMoveBackward, fnGoDoc ); + + SwPaM *pCurPam = new SwPaM( *aPam.End(), *aPam.Start() ); + + // export the document + // (in a separate block so that it's destructed before the commit) + { + RtfExport aExport( this, pDoc, pCurPam, &aPam, NULL ); + aExport.ExportDocument( true ); + } + + // delete the pCurPam + if ( pCurPam ) + { + while ( pCurPam->GetNext() != pCurPam ) + delete pCurPam->GetNext(); + delete pCurPam; + } + delete m_pStream; + + return sal_True; +} + + +void RtfExportFilter::cancel( ) throw (uno::RuntimeException) +{ +} + +void RtfExportFilter::setSourceDocument( const uno::Reference< lang::XComponent >& xDoc ) + throw (lang::IllegalArgumentException, uno::RuntimeException) +{ + m_xSrcDoc = xDoc; +} + +////////////////////////////////////////////////////////////////////////// +// UNO helpers +////////////////////////////////////////////////////////////////////////// + +OUString RtfExport_getImplementationName() +{ + return OUString( RTL_CONSTASCII_USTRINGPARAM( IMPL_NAME_RTFEXPORT ) ); +} + +uno::Sequence< OUString > SAL_CALL RtfExport_getSupportedServiceNames() throw() +{ + const OUString aServiceName( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.document.ExportFilter" ) ); + const uno::Sequence< OUString > aSeq( &aServiceName, 1 ); + return aSeq; +} + +uno::Reference< uno::XInterface > SAL_CALL RtfExport_createInstance(const uno::Reference< lang::XMultiServiceFactory > & rSMgr ) throw( uno::Exception ) +{ + return (cppu::OWeakObject*) new RtfExportFilter( rSMgr ); +} +#ifdef __cplusplus +extern "C" +{ +#endif + +SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( const sal_Char ** ppEnvTypeName, uno_Environment ** /* ppEnv */ ) +{ + *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; +} + +SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void* /* pServiceManager */, void* pRegistryKey ) +{ + sal_Bool bRet = sal_False; + + if( pRegistryKey ) + { + try + { + uno::Reference< registry::XRegistryKey > xNewKey1( + static_cast< registry::XRegistryKey* >( pRegistryKey )->createKey( + OUString::createFromAscii( IMPL_NAME_RTFEXPORT "/UNO/SERVICES/" ) ) ); + xNewKey1->createKey( RtfExport_getSupportedServiceNames().getConstArray()[0] ); + + bRet = sal_True; + } + catch( registry::InvalidRegistryException& ) + { + OSL_ENSURE( sal_False, "### InvalidRegistryException (rtfexport)!" ); + } + + try + { + uno::Reference< registry::XRegistryKey > xNewKey1( + static_cast< registry::XRegistryKey* >( pRegistryKey )->createKey( + OUString::createFromAscii( IMPL_NAME_RTFIMPORT "/UNO/SERVICES/" ) ) ); + xNewKey1->createKey( RtfExport_getSupportedServiceNames().getConstArray()[0] ); + + bRet = sal_True; + } + catch( registry::InvalidRegistryException& ) + { + OSL_ENSURE( sal_False, "### InvalidRegistryException (rtfimport)!" ); + } + } + + return bRet; +} + +// ------------------------ +// - component_getFactory - +// ------------------------ + +SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( const sal_Char* pImplName, void* pServiceManager, void* /* pRegistryKey */ ) +{ + OSL_TRACE("%s, pImplName is '%s'", OSL_THIS_FUNC, pImplName); + uno::Reference< lang::XSingleServiceFactory > xFactory; + void* pRet = 0; + + if ( rtl_str_compare( pImplName, IMPL_NAME_RTFEXPORT ) == 0 ) { + const OUString aServiceName( OUString::createFromAscii( IMPL_NAME_RTFEXPORT ) ); + + xFactory = uno::Reference< lang::XSingleServiceFactory >( ::cppu::createSingleFactory( + reinterpret_cast< lang::XMultiServiceFactory* >( pServiceManager ), + RtfExport_getImplementationName(), + RtfExport_createInstance, + RtfExport_getSupportedServiceNames() ) ); + } + else if ( rtl_str_compare( pImplName, IMPL_NAME_RTFIMPORT ) == 0 ) { + const OUString aServiceName( OUString::createFromAscii( IMPL_NAME_RTFIMPORT ) ); + + xFactory = uno::Reference< lang::XSingleServiceFactory >( ::cppu::createSingleFactory( + reinterpret_cast< lang::XMultiServiceFactory* >( pServiceManager ), + RtfImport_getImplementationName(), + RtfImport_createInstance, + RtfImport_getSupportedServiceNames() ) ); + } + + if ( xFactory.is() ) + { + xFactory->acquire(); + pRet = xFactory.get(); + } + + return pRet; +} + +#ifdef __cplusplus +} +#endif + +/* vi:set shiftwidth=4 expandtab: */ diff --git a/sw/source/filter/ww8/rtfexportfilter.hxx b/sw/source/filter/ww8/rtfexportfilter.hxx new file mode 100644 index 0000000000..e3ccc3a9d3 --- /dev/null +++ b/sw/source/filter/ww8/rtfexportfilter.hxx @@ -0,0 +1,85 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * Copyright 2010 Miklos Vajna. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _RTFEXPORTFILTER_HXX_ +#define _RTFEXPORTFILTER_HXX_ + +#include <com/sun/star/document/XFilter.hpp> +#include <com/sun/star/document/XExporter.hpp> +#include <com/sun/star/uno/XComponentContext.hpp> +#include <cppuhelper/implbase2.hxx> +#include <tools/stream.hxx> +#include <shellio.hxx> + +// This is just here so that we don't have to copy&paste its string format methods +class RtfWriter : public Writer +{ +protected: + ULONG WriteStream() { return 0; } +}; + +/// The physical access to the RTF document (for writing). +class RtfExportFilter : public cppu::WeakImplHelper2 +< + com::sun::star::document::XFilter, + com::sun::star::document::XExporter +> +{ +protected: + ::com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > m_xMSF; + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > m_xSrcDoc; + SvStream* m_pStream; +public: + RtfExportFilter( const ::com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& xMSF ); + virtual ~RtfExportFilter(); + + // XFilter + virtual sal_Bool SAL_CALL filter( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aDescriptor ) + throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL cancel( ) + throw (::com::sun::star::uno::RuntimeException); + + // XExporter + virtual void SAL_CALL setSourceDocument( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& xDoc ) + throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); + + RtfWriter m_aWriter; +}; + +::rtl::OUString RtfExport_getImplementationName(); +::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL RtfExport_getSupportedServiceNames() + throw(); +::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL RtfExport_createInstance( + const ::com::sun::star::uno::Reference< + com::sun::star::lang::XMultiServiceFactory > &xMSF) + throw( ::com::sun::star::uno::Exception ); + +#define IMPL_NAME_RTFEXPORT "com.sun.star.comp.Writer.RtfExport" + +#endif // _RTFEXPORTFILTER_HXX_ +/* vi:set shiftwidth=4 expandtab: */ diff --git a/sw/source/filter/ww8/rtfimportfilter.cxx b/sw/source/filter/ww8/rtfimportfilter.cxx new file mode 100644 index 0000000000..d44a42db4f --- /dev/null +++ b/sw/source/filter/ww8/rtfimportfilter.cxx @@ -0,0 +1,137 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * Copyright 2010 Miklos Vajna. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#include "rtfimportfilter.hxx" +#include "../rtf/swparrtf.hxx" + +#include <docsh.hxx> +#include <doc.hxx> +#include <pam.hxx> +#include <unotxdoc.hxx> +#include <swerror.h> + +#include <cppuhelper/factory.hxx> +#include <comphelper/mediadescriptor.hxx> +#include <unotools/ucbstreamhelper.hxx> + +#include <com/sun/star/frame/XDesktop.hpp> +#include <com/sun/star/frame/XComponentLoader.hpp> + +using namespace ::comphelper; +using namespace ::com::sun::star; +using ::rtl::OUString; +using rtl::OUStringToOString; + +RtfImportFilter::RtfImportFilter( const uno::Reference< lang::XMultiServiceFactory >& xMSF) : + m_xMSF( xMSF ) +{ +} + +RtfImportFilter::~RtfImportFilter() +{ +} + +sal_Bool RtfImportFilter::filter( const uno::Sequence< beans::PropertyValue >& aDescriptor ) + throw (uno::RuntimeException) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + MediaDescriptor aMediaDesc = aDescriptor; + ::uno::Reference< io::XInputStream > xInputStream = + aMediaDesc.getUnpackedValueOrDefault( MediaDescriptor::PROP_INPUTSTREAM(), uno::Reference< io::XInputStream >() ); + SvStream* pStream = utl::UcbStreamHelper::CreateStream( xInputStream, sal_True ); + if (!pStream) + return sal_False; + + // get SwDoc* + uno::Reference< uno::XInterface > xIfc( m_xDstDoc, uno::UNO_QUERY ); + SwXTextDocument *pTxtDoc = dynamic_cast< SwXTextDocument * >( xIfc.get() ); + if (!pTxtDoc) + return sal_False; + SwDoc *pDoc = pTxtDoc->GetDocShell()->GetDoc(); + if (!pDoc) + return sal_False; + + // get SwPaM* + // NEEDSWORK should we care about partial imports? For now we just import + // the whole document + SwPaM aPam( pDoc->GetNodes().GetEndOfContent() ); + aPam.SetMark(); + aPam.Move( fnMoveBackward, fnGoDoc ); + SwPaM *pCurPam = new SwPaM( *aPam.End(), *aPam.Start() ); + + String aURL; + OUString sTemp; + for ( sal_Int32 i = 0; i < aDescriptor.getLength(); i++ ) + { + if( aDescriptor[i].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("URL")) ) + { + aDescriptor[i].Value >>= sTemp; + aURL = sTemp; + } + } + + RtfReader aReader; + sal_Bool bRet = aReader.Read(pStream, *pDoc, aURL, *pCurPam) == 0; + delete pStream; + return bRet; +} + + +void RtfImportFilter::cancel( ) throw (uno::RuntimeException) +{ +} + +void RtfImportFilter::setTargetDocument( const uno::Reference< lang::XComponent >& xDoc ) + throw (lang::IllegalArgumentException, uno::RuntimeException) +{ + m_xDstDoc = xDoc; +} + +////////////////////////////////////////////////////////////////////////// +// UNO helpers +////////////////////////////////////////////////////////////////////////// + +OUString RtfImport_getImplementationName() +{ + return OUString( RTL_CONSTASCII_USTRINGPARAM( IMPL_NAME_RTFIMPORT ) ); +} + +uno::Sequence< OUString > SAL_CALL RtfImport_getSupportedServiceNames() throw() +{ + const OUString aServiceName( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.document.ImportFilter" ) ); + const uno::Sequence< OUString > aSeq( &aServiceName, 1 ); + return aSeq; +} + +uno::Reference< uno::XInterface > SAL_CALL RtfImport_createInstance(const uno::Reference< lang::XMultiServiceFactory > & rSMgr ) throw( uno::Exception ) +{ + return (cppu::OWeakObject*) new RtfImportFilter( rSMgr ); +} + +/* vi:set shiftwidth=4 expandtab: */ diff --git a/sw/source/filter/ww8/rtfimportfilter.hxx b/sw/source/filter/ww8/rtfimportfilter.hxx new file mode 100644 index 0000000000..9026d63573 --- /dev/null +++ b/sw/source/filter/ww8/rtfimportfilter.hxx @@ -0,0 +1,75 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * Copyright 2010 Miklos Vajna. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _RTFIMPORTFILTER_HXX_ +#define _RTFIMPORTFILTER_HXX_ + +#include <com/sun/star/document/XFilter.hpp> +#include <com/sun/star/document/XImporter.hpp> +#include <com/sun/star/uno/XComponentContext.hpp> +#include <cppuhelper/implbase2.hxx> +#include <tools/stream.hxx> +#include <shellio.hxx> + +/// The physical access to the RTF document (for reading). +class RtfImportFilter : public cppu::WeakImplHelper2 +< + com::sun::star::document::XFilter, + com::sun::star::document::XImporter +> +{ +protected: + ::com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > m_xMSF; + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > m_xDstDoc; +public: + RtfImportFilter( const ::com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& xMSF ); + virtual ~RtfImportFilter(); + + // XFilter + virtual sal_Bool SAL_CALL filter( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aDescriptor ) + throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL cancel( ) + throw (::com::sun::star::uno::RuntimeException); + + // XImporter + virtual void SAL_CALL setTargetDocument( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& xDoc ) + throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); +}; + +::rtl::OUString RtfImport_getImplementationName(); +::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL RtfImport_getSupportedServiceNames() + throw(); +::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL RtfImport_createInstance( + const ::com::sun::star::uno::Reference< + com::sun::star::lang::XMultiServiceFactory > &xMSF) + throw( ::com::sun::star::uno::Exception ); + +#define IMPL_NAME_RTFIMPORT "com.sun.star.comp.Writer.RtfImport" + +#endif // _RTFIMPORTFILTER_HXX_ +/* vi:set shiftwidth=4 expandtab: */ diff --git a/sw/source/filter/ww8/rtfsdrexport.cxx b/sw/source/filter/ww8/rtfsdrexport.cxx new file mode 100644 index 0000000000..9953ffb871 --- /dev/null +++ b/sw/source/filter/ww8/rtfsdrexport.cxx @@ -0,0 +1,586 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * Copyright 2010 Miklos Vajna. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#include "rtfsdrexport.hxx" +#include "rtfexport.hxx" +#include "writerhelper.hxx" + +#include <com/sun/star/i18n/ScriptType.hdl> +#include <osl/diagnose.h> +#include <rtl/strbuf.hxx> +#include <rtl/ustring.hxx> +#include <svl/itemiter.hxx> +#include <svtools/rtfkeywd.hxx> +#include <editeng/editdata.hxx> +#include <editeng/editobj.hxx> +#include <editeng/flditem.hxx> +#include <editeng/fontitem.hxx> +#include <svx/svdotext.hxx> +#include <tools/stream.hxx> +#include <breakit.hxx> + +using rtl::OString; +using rtl::OStringBuffer; +using rtl::OUString; +using rtl::OUStringBuffer; +using namespace sw::util; + +/// Implementation of an empty stream that silently succeeds, but does nothing. +/// +/// In fact, this is a hack. The right solution is to abstract EscherEx to be +/// able to work without SvStream; but at the moment it is better to live with +/// this I guess. +class SvNullStream : public SvStream +{ +protected: + virtual sal_Size GetData( void* pData, sal_Size nSize ) { memset( pData, 0, nSize ); return nSize; } + virtual sal_Size PutData( const void*, sal_Size nSize ) { return nSize; } + virtual sal_Size SeekPos( sal_Size nPos ) { return nPos; } + virtual void SetSize( sal_Size ) {} + virtual void FlushData() {} + +public: + SvNullStream() : SvStream() {} + virtual ~SvNullStream() {} +}; + +RtfSdrExport::RtfSdrExport( RtfExport &rExport ) + : EscherEx( EscherExGlobalRef( new EscherExGlobal ), *( new SvNullStream )), + m_rExport( rExport ), + m_rAttrOutput( (RtfAttributeOutput&)m_rExport.AttrOutput() ), + m_nShapeType( ESCHER_ShpInst_Nil ), + m_pShapeStyle( new OStringBuffer( 200 ) ), + m_pShapeTypeWritten( new bool[ ESCHER_ShpInst_COUNT ] ) +{ + mnGroupLevel = 1; + memset( m_pShapeTypeWritten, 0, ESCHER_ShpInst_COUNT * sizeof( bool ) ); +} + +RtfSdrExport::~RtfSdrExport() +{ + delete mpOutStrm, mpOutStrm = NULL; + delete m_pShapeStyle, m_pShapeStyle = NULL; + delete[] m_pShapeTypeWritten, m_pShapeTypeWritten = NULL; +} + +void RtfSdrExport::OpenContainer( UINT16 nEscherContainer, int nRecInstance ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + EscherEx::OpenContainer( nEscherContainer, nRecInstance ); + + if ( nEscherContainer == ESCHER_SpContainer ) + { + m_nShapeType = ESCHER_ShpInst_Nil; + if ( m_pShapeStyle->getLength() ) + m_pShapeStyle->makeStringAndClear(); + m_pShapeStyle->ensureCapacity( 200 ); + m_aShapeProps.clear(); + } +} + +void RtfSdrExport::CloseContainer() +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if ( mRecTypes.back() == ESCHER_SpContainer ) + { + // write the shape now when we have all the info + sal_Int32 nShapeElement = StartShape(); + EndShape( nShapeElement ); + + // cleanup + m_nShapeType = ESCHER_ShpInst_Nil; + } + + EscherEx::CloseContainer(); +} + +UINT32 RtfSdrExport::EnterGroup( const String& /*rShapeName*/, const Rectangle* /*pRect*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + return GenerateShapeId(); +} + +void RtfSdrExport::LeaveGroup() +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + /* noop */ +} + +void RtfSdrExport::AddShape( UINT32 nShapeType, UINT32 nShapeFlags, UINT32 /*nShapeId*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + m_nShapeType = nShapeType; + m_nShapeFlags = nShapeFlags; +} + +inline sal_uInt16 impl_GetUInt16( const sal_uInt8* &pVal ) +{ + sal_uInt16 nRet = *pVal++; + nRet += ( *pVal++ ) << 8; + return nRet; +} + +inline sal_Int32 impl_GetPointComponent( const sal_uInt8* &pVal, sal_uInt16 nPointSize ) +{ + sal_Int32 nRet = 0; + if ( ( nPointSize == 0xfff0 ) || ( nPointSize == 4 ) ) + { + sal_uInt16 nUnsigned = *pVal++; + nUnsigned += ( *pVal++ ) << 8; + + nRet = sal_Int16( nUnsigned ); + } + else if ( nPointSize == 8 ) + { + sal_uInt32 nUnsigned = *pVal++; + nUnsigned += ( *pVal++ ) << 8; + nUnsigned += ( *pVal++ ) << 16; + nUnsigned += ( *pVal++ ) << 24; + + nRet = nUnsigned; + } + + return nRet; +} + +void RtfSdrExport::Commit( EscherPropertyContainer& rProps, const Rectangle& rRect ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if ( m_nShapeType == ESCHER_ShpInst_Nil ) + return; + + if ( m_nShapeType == ESCHER_ShpInst_Line ) + AddLineDimensions( rRect ); + else + AddRectangleDimensions( *m_pShapeStyle, rRect ); + + // properties + const EscherProperties &rOpts = rProps.GetOpts(); + for ( EscherProperties::const_iterator it = rOpts.begin(); it != rOpts.end(); ++it ) + { + sal_uInt16 nId = ( it->nPropId & 0x0FFF ); + + switch ( nId ) + { + case ESCHER_Prop_WrapText: + { + int nWrapType = 0; + switch ( it->nPropValue ) + { + case ESCHER_WrapSquare: nWrapType = 2; break; + case ESCHER_WrapByPoints: nWrapType = 4; break; + case ESCHER_WrapNone: nWrapType = 3; break; + case ESCHER_WrapTopBottom: nWrapType = 1; break; + case ESCHER_WrapThrough: nWrapType = 5; break; + } + if ( nWrapType ) + m_pShapeStyle->append(OOO_STRING_SVTOOLS_RTF_SHPWR).append((sal_Int32)nWrapType); + } + break; + case ESCHER_Prop_fillColor: + m_aShapeProps.insert(std::pair<OString,OString>(OString("fillColor"), OString::valueOf(sal_Int32(it->nPropValue)))); + break; + case ESCHER_Prop_fillBackColor: + m_aShapeProps.insert(std::pair<OString,OString>(OString("fillBackColor"), OString::valueOf(sal_Int32(it->nPropValue)))); + break; + case ESCHER_Prop_AnchorText: + m_aShapeProps.insert(std::pair<OString,OString>(OString("anchorText"), OString::valueOf(sal_Int32(it->nPropValue)))); + break; + case ESCHER_Prop_fNoFillHitTest: + if (it->nPropValue) + m_aShapeProps.insert(std::pair<OString,OString>(OString("fNoFillHitTest"), OString::valueOf(sal_Int32(1)))); + break; + case ESCHER_Prop_fNoLineDrawDash: + // for some reason the value is set to 0x90000 if lines are switched off + if( it->nPropValue == 0x90000 ) + m_aShapeProps.insert(std::pair<OString,OString>(OString("fLine"), OString::valueOf(sal_Int32(0)))); + break; + case ESCHER_Prop_lineColor: + m_aShapeProps.insert(std::pair<OString,OString>(OString("lineColor"), OString::valueOf(sal_Int32(it->nPropValue)))); + break; + case ESCHER_Prop_lineBackColor: + m_aShapeProps.insert(std::pair<OString,OString>(OString("lineBackColor"), OString::valueOf(sal_Int32(it->nPropValue)))); + break; + case ESCHER_Prop_lineJoinStyle: + m_aShapeProps.insert(std::pair<OString,OString>(OString("lineJoinStyle"), OString::valueOf(sal_Int32(it->nPropValue)))); + break; + case ESCHER_Prop_fshadowObscured: + if (it->nPropValue) + m_aShapeProps.insert(std::pair<OString,OString>(OString("fshadowObscured"), OString::valueOf(sal_Int32(1)))); + break; + case ESCHER_Prop_geoLeft: + case ESCHER_Prop_geoTop: + { + sal_uInt32 nLeft = 0, nTop = 0; + + if ( nId == ESCHER_Prop_geoLeft ) + { + nLeft = it->nPropValue; + rProps.GetOpt( ESCHER_Prop_geoTop, nTop ); + } + else + { + nTop = it->nPropValue; + rProps.GetOpt( ESCHER_Prop_geoLeft, nLeft ); + } + + m_aShapeProps.insert(std::pair<OString,OString>(OString("geoLeft"), + OString::valueOf(sal_Int32(sal_Int32( nLeft ))))); + m_aShapeProps.insert(std::pair<OString,OString>(OString("geoTop"), + OString::valueOf(sal_Int32(sal_Int32( nTop ))))); + } + break; + + case ESCHER_Prop_geoRight: + case ESCHER_Prop_geoBottom: + { + sal_uInt32 nLeft = 0, nRight = 0, nTop = 0, nBottom = 0; + rProps.GetOpt( ESCHER_Prop_geoLeft, nLeft ); + rProps.GetOpt( ESCHER_Prop_geoTop, nTop ); + + if ( nId == ESCHER_Prop_geoRight ) + { + nRight = it->nPropValue; + rProps.GetOpt( ESCHER_Prop_geoBottom, nBottom ); + } + else + { + nBottom = it->nPropValue; + rProps.GetOpt( ESCHER_Prop_geoRight, nRight ); + } + + m_aShapeProps.insert(std::pair<OString,OString>(OString("geoRight"), + OString::valueOf(sal_Int32(sal_Int32( nRight ) - sal_Int32( nLeft ))))); + m_aShapeProps.insert(std::pair<OString,OString>(OString("geoBottom"), + OString::valueOf(sal_Int32(sal_Int32( nBottom ) - sal_Int32( nTop ))))); + } + break; + case ESCHER_Prop_pVertices: + case ESCHER_Prop_pSegmentInfo: + { + EscherPropSortStruct aVertices; + EscherPropSortStruct aSegments; + + if ( rProps.GetOpt( ESCHER_Prop_pVertices, aVertices ) && + rProps.GetOpt( ESCHER_Prop_pSegmentInfo, aSegments ) ) + { + const sal_uInt8 *pVerticesIt = aVertices.pBuf + 6; + const sal_uInt8 *pSegmentIt = aSegments.pBuf; + + OStringBuffer aSegmentInfo( 512 ); + OStringBuffer aVerticies( 512 ); + + sal_uInt16 nPointSize = aVertices.pBuf[4] + ( aVertices.pBuf[5] << 8 ); + + // number of segments + sal_uInt16 nSegments = impl_GetUInt16( pSegmentIt ); + sal_Int32 nVertices = 0; + aSegmentInfo.append("2;").append((sal_Int32)nSegments); + pSegmentIt += 4; + + for ( ; nSegments; --nSegments ) + { + sal_uInt16 nSeg = impl_GetUInt16( pSegmentIt ); + aSegmentInfo.append(';').append((sal_Int32)nSeg); + switch ( nSeg ) + { + case 0x0001: // lineto + case 0x4000: // moveto + { + sal_Int32 nX = impl_GetPointComponent( pVerticesIt, nPointSize ); + sal_Int32 nY = impl_GetPointComponent( pVerticesIt, nPointSize ); + aVerticies.append( ";(" ).append( nX ).append( "," ).append( nY ).append( ")" ); + nVertices ++; + } + break; + case 0x2001: // curveto + { + for (int i = 0; i < 3; i++) + { + sal_Int32 nX = impl_GetPointComponent( pVerticesIt, nPointSize ); + sal_Int32 nY = impl_GetPointComponent( pVerticesIt, nPointSize ); + aVerticies.append( ";(" ).append( nX ).append( "," ).append( nY ).append( ")" ); + nVertices ++; + } + } + break; + case 0xb300: + case 0xac00: + case 0xaa00: // nofill + case 0xab00: // nostroke + case 0x6001: // close + case 0x8000: // end + break; + default: + OSL_TRACE("%s: unhandled segment '%x' in the path", OSL_THIS_FUNC, nSeg); + break; + } + } + + if (aVerticies.getLength() ) + { + // We know the number of vertices at the end only, so we have to prepend them here. + OStringBuffer aBuf; + aBuf.append("8;").append((sal_Int32)nVertices); + aBuf.append(aVerticies.makeStringAndClear()); + m_aShapeProps.insert(std::pair<OString,OString>(OString("pVerticies"), aBuf.makeStringAndClear())); + } + if ( aSegmentInfo.getLength() ) + m_aShapeProps.insert(std::pair<OString,OString>(OString("pSegmentInfo"), aSegmentInfo.makeStringAndClear())); + } + else + OSL_TRACE("%s: unhandled shape path, missing either pVertices or pSegmentInfo", OSL_THIS_FUNC); + } + break; + case ESCHER_Prop_shapePath: + // noop, we use pSegmentInfo instead + break; + case ESCHER_Prop_fFillOK: + if (!it->nPropValue) + m_aShapeProps.insert(std::pair<OString,OString>(OString("fFillOK"), OString::valueOf(sal_Int32(0)))); + break; + case ESCHER_Prop_dxTextLeft: + m_aShapeProps.insert(std::pair<OString,OString>(OString("dxTextLeft"), OString::valueOf(sal_Int32(it->nPropValue)))); + break; + case ESCHER_Prop_dyTextTop: + m_aShapeProps.insert(std::pair<OString,OString>(OString("dyTextTop"), OString::valueOf(sal_Int32(it->nPropValue)))); + break; + case ESCHER_Prop_dxTextRight: + m_aShapeProps.insert(std::pair<OString,OString>(OString("dxTextRight"), OString::valueOf(sal_Int32(it->nPropValue)))); + break; + case ESCHER_Prop_dyTextBottom: + m_aShapeProps.insert(std::pair<OString,OString>(OString("dyTextBottom"), OString::valueOf(sal_Int32(it->nPropValue)))); + break; + case ESCHER_Prop_FitTextToShape: + // Size text to fit shape size: not supported by RTF + break; + case ESCHER_Prop_adjustValue: + m_aShapeProps.insert(std::pair<OString,OString>(OString("adjustValue"), OString::valueOf(sal_Int32(it->nPropValue)))); + break; + case ESCHER_Prop_txflTextFlow: + m_aShapeProps.insert(std::pair<OString,OString>(OString("txflTextFlow"), OString::valueOf(sal_Int32(it->nPropValue)))); + break; + default: + OSL_TRACE("%s: unhandled property: %d (value: %d)", OSL_THIS_FUNC, nId, it->nPropValue); + break; + } + } +} + +void RtfSdrExport::AddLineDimensions( const Rectangle& rRectangle ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + // We get the position relative to (the current?) character + m_aShapeProps.insert(std::pair<OString,OString>(OString("posrelh"), OString::valueOf(sal_Int32(3)))); + + switch ( m_nShapeFlags & 0xC0 ) + { + case 0x40: + m_aShapeProps.insert(std::pair<OString,OString>(OString("fFlipV"), OString::valueOf(sal_Int32(1)))); + break; + case 0x80: + m_aShapeProps.insert(std::pair<OString,OString>(OString("fFlipH"), OString::valueOf(sal_Int32(1)))); + break; + case 0xC0: + m_aShapeProps.insert(std::pair<OString,OString>(OString("fFlipV"), OString::valueOf(sal_Int32(1)))); + m_aShapeProps.insert(std::pair<OString,OString>(OString("fFlipH"), OString::valueOf(sal_Int32(1)))); + break; + } + + // the actual dimensions + m_pShapeStyle->append(OOO_STRING_SVTOOLS_RTF_SHPLEFT).append(rRectangle.Left()); + m_pShapeStyle->append(OOO_STRING_SVTOOLS_RTF_SHPTOP).append(rRectangle.Top()); + m_pShapeStyle->append(OOO_STRING_SVTOOLS_RTF_SHPRIGHT).append(rRectangle.Right()); + m_pShapeStyle->append(OOO_STRING_SVTOOLS_RTF_SHPBOTTOM).append(rRectangle.Bottom()); +} + +void RtfSdrExport::AddRectangleDimensions( rtl::OStringBuffer& rBuffer, const Rectangle& rRectangle ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + // We get the position relative to (the current?) character + m_aShapeProps.insert(std::pair<OString,OString>(OString("posrelh"), OString::valueOf(sal_Int32(3)))); + + rBuffer.append(OOO_STRING_SVTOOLS_RTF_SHPLEFT).append(rRectangle.Left()); + rBuffer.append(OOO_STRING_SVTOOLS_RTF_SHPTOP).append(rRectangle.Top()); + rBuffer.append(OOO_STRING_SVTOOLS_RTF_SHPRIGHT).append(rRectangle.Right()); + rBuffer.append(OOO_STRING_SVTOOLS_RTF_SHPBOTTOM).append(rRectangle.Bottom()); +} + +void RtfSdrExport::AddShapeAttribute( sal_Int32 /*nAttribute*/, const rtl::OString& /*rValue*/ ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + /* noop */ +} + +extern const char* pShapeTypes[]; + +void lcl_AppendSP( ::rtl::OStringBuffer& rRunText, const char cName[], const ::rtl::OString& rValue) +{ + rRunText.append('{').append(OOO_STRING_SVTOOLS_RTF_SP) + .append('{').append(OOO_STRING_SVTOOLS_RTF_SN " ").append(cName).append('}') + .append('{').append(OOO_STRING_SVTOOLS_RTF_SV " ").append(rValue).append('}') + .append('}'); +} +sal_Int32 RtfSdrExport::StartShape() +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if ( m_nShapeType == ESCHER_ShpInst_Nil ) + return -1; + + m_aShapeProps.insert(std::pair<OString,OString>(OString("shapeType"), OString::valueOf(sal_Int32(m_nShapeType)))); + + m_rAttrOutput.RunText().append('{').append(OOO_STRING_SVTOOLS_RTF_SHP); + m_rAttrOutput.RunText().append('{').append(OOO_STRING_SVTOOLS_RTF_IGNORE).append(OOO_STRING_SVTOOLS_RTF_SHPINST); + + m_rAttrOutput.RunText().append(m_pShapeStyle->makeStringAndClear()); + // Ignore \shpbxpage, \shpbxmargin, and \shpbxcolumn, in favor of the posrelh property. + m_rAttrOutput.RunText().append(OOO_STRING_SVTOOLS_RTF_SHPBXIGNORE); + // Ignore \shpbypage, \shpbymargin, and \shpbycolumn, in favor of the posrelh property. + m_rAttrOutput.RunText().append(OOO_STRING_SVTOOLS_RTF_SHPBYIGNORE); + + for(std::map<OString,OString>::reverse_iterator i = m_aShapeProps.rbegin(); i != m_aShapeProps.rend(); i++) + lcl_AppendSP(m_rAttrOutput.RunText(), (*i).first, (*i).second ); + + lcl_AppendSP(m_rAttrOutput.RunText(), "wzDescription", RtfExport::OutString( m_pSdrObject->GetDescription(), m_rExport.eCurrentEncoding)); + lcl_AppendSP(m_rAttrOutput.RunText(), "wzName", RtfExport::OutString( m_pSdrObject->GetTitle(), m_rExport.eCurrentEncoding)); + + // now check if we have some text + const SdrTextObj* pTxtObj = PTR_CAST(SdrTextObj, m_pSdrObject); + if (pTxtObj) + { + const OutlinerParaObject* pParaObj = 0; + bool bOwnParaObj = false; + + /* + #i13885# + When the object is actively being edited, that text is not set into + the objects normal text object, but lives in a seperate object. + */ + if (pTxtObj->IsTextEditActive()) + { + pParaObj = pTxtObj->GetEditOutlinerParaObject(); + bOwnParaObj = true; + } + else + { + pParaObj = pTxtObj->GetOutlinerParaObject(); + } + + if( pParaObj ) + { + // this is reached only in case some text is attached to the shape + WriteOutliner(*pParaObj); + if( bOwnParaObj ) + delete pParaObj; + } + } + + return m_nShapeType; +} + +void RtfSdrExport::WriteOutliner(const OutlinerParaObject& rParaObj) +{ + OSL_TRACE("%s start", OSL_THIS_FUNC); + + const EditTextObject& rEditObj = rParaObj.GetTextObject(); + MSWord_SdrAttrIter aAttrIter( m_rExport, rEditObj, TXT_HFTXTBOX ); + + USHORT nPara = rEditObj.GetParagraphCount(); + + m_rAttrOutput.RunText().append('{').append(OOO_STRING_SVTOOLS_RTF_SHPTXT).append(' '); + for (USHORT n = 0; n < nPara; ++n) + { + if( n ) + aAttrIter.NextPara( n ); + + rtl_TextEncoding eChrSet = aAttrIter.GetNodeCharSet(); + + String aStr( rEditObj.GetText( n )); + xub_StrLen nAktPos = 0; + xub_StrLen nEnd = aStr.Len(); + + aAttrIter.OutParaAttr(false); + m_rAttrOutput.RunText().append(m_rAttrOutput.Styles().makeStringAndClear()); + + do { + xub_StrLen nNextAttr = aAttrIter.WhereNext(); + rtl_TextEncoding eNextChrSet = aAttrIter.GetNextCharSet(); + + if( nNextAttr > nEnd ) + nNextAttr = nEnd; + + aAttrIter.OutAttr( nAktPos ); + m_rAttrOutput.RunText().append('{').append(m_rAttrOutput.Styles().makeStringAndClear()).append(m_rExport.sNewLine); + bool bTxtAtr = aAttrIter.IsTxtAttr( nAktPos ); + if( !bTxtAtr ) + { + String aOut( aStr.Copy( nAktPos, nNextAttr - nAktPos ) ); + m_rAttrOutput.RunText().append( m_rExport.OutString( aOut, eChrSet ) ); + } + + m_rAttrOutput.RunText().append('}'); + + nAktPos = nNextAttr; + eChrSet = eNextChrSet; + aAttrIter.NextPos(); + } + while( nAktPos < nEnd ); + } + m_rAttrOutput.RunText().append(OOO_STRING_SVTOOLS_RTF_PAR).append('}'); + + OSL_TRACE("%s end", OSL_THIS_FUNC); +} + +void RtfSdrExport::EndShape( sal_Int32 nShapeElement ) +{ + OSL_TRACE("%s", OSL_THIS_FUNC); + + if ( nShapeElement >= 0 ) + { + // end of the shape + m_rAttrOutput.RunText().append('}').append('}'); + } +} + +UINT32 RtfSdrExport::AddSdrObject( const SdrObject& rObj ) +{ + m_pSdrObject = &rObj; + return EscherEx::AddSdrObject(rObj); +} + +/* vi:set shiftwidth=4 expandtab: */ diff --git a/sw/source/filter/ww8/rtfsdrexport.hxx b/sw/source/filter/ww8/rtfsdrexport.hxx new file mode 100644 index 0000000000..775e348eef --- /dev/null +++ b/sw/source/filter/ww8/rtfsdrexport.hxx @@ -0,0 +1,115 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * Copyright 2010 Miklos Vajna. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _RTFSdrEXPORT_HXX_ +#define _RTFSdrEXPORT_HXX_ + +#include <filter/msfilter/escherex.hxx> +#include <editeng/outlobj.hxx> +#include <rtl/strbuf.hxx> + +#include <map> + +class RtfExport; +class RtfAttributeOutput; + +class RtfSdrExport : public EscherEx +{ + RtfExport &m_rExport; + + RtfAttributeOutput &m_rAttrOutput; + + const SdrObject* m_pSdrObject; + + /// Remember the shape type. + sal_uInt32 m_nShapeType; + + /// Remember the shape flags. + sal_uInt32 m_nShapeFlags; + + /// Remember style, the most important shape attribute ;-) + rtl::OStringBuffer *m_pShapeStyle; + + std::map<rtl::OString,rtl::OString> m_aShapeProps; + + /// Remember which shape types we had already written. + bool *m_pShapeTypeWritten; + +public: + RtfSdrExport( RtfExport &rExport ); + virtual ~RtfSdrExport(); + + /// Export the sdr object as Sdr. + /// + /// Call this when you need to export the object as Sdr in RTF. + UINT32 AddSdrObject( const SdrObject& rObj ); + +protected: + /// Add an attribute to the generated shape element. + /// + /// This should be called from within StartShape() to ensure that the + /// added attribute is preserved. + void AddShapeAttribute( sal_Int32 nAttribute, const rtl::OString& sValue ); + + /// Start the shape for which we just collected the information. + /// + /// Returns the element's tag number, -1 means we wrote nothing. + using EscherEx::StartShape; + virtual sal_Int32 StartShape(); + + /// End the shape. + /// + /// The parameter is just what we got from StartShape(). + using EscherEx::EndShape; + virtual void EndShape( sal_Int32 nShapeElement ); + + virtual void Commit( EscherPropertyContainer& rProps, const Rectangle& rRect ); + +private: + + virtual void OpenContainer( UINT16 nEscherContainer, int nRecInstance = 0 ); + virtual void CloseContainer(); + + using EscherEx::EnterGroup; + virtual UINT32 EnterGroup( const String& rShapeName, const Rectangle* pBoundRect = 0 ); + virtual void LeaveGroup(); + + virtual void AddShape( UINT32 nShapeType, UINT32 nShapeFlags, UINT32 nShapeId = 0 ); + +private: + /// Add starting and ending point of a line to the m_pShapeAttrList. + void AddLineDimensions( const Rectangle& rRectangle ); + + /// Add position and size to the OStringBuffer. + void AddRectangleDimensions( rtl::OStringBuffer& rBuffer, const Rectangle& rRectangle ); + + void WriteOutliner(const OutlinerParaObject& rParaObj); +}; + +#endif // _RTFSdrEXPORT_HXX_ +/* vi:set shiftwidth=4 expandtab: */ diff --git a/sw/source/filter/ww8/writerhelper.cxx b/sw/source/filter/ww8/writerhelper.cxx index 652d8a4a12..2680ca7690 100644 --- a/sw/source/filter/ww8/writerhelper.cxx +++ b/sw/source/filter/ww8/writerhelper.cxx @@ -466,9 +466,21 @@ namespace sw } //SetLayer boilerplate end - void GetPoolItems(const SfxItemSet &rSet, PoolItems &rItems) + void GetPoolItems(const SfxItemSet &rSet, PoolItems &rItems, bool bExportParentItemSet ) { - if (rSet.Count()) + if( bExportParentItemSet ) + { + USHORT nTotal = rSet.TotalCount(); + for( USHORT nItem =0; nItem < nTotal; ++nItem ) + { + const SfxPoolItem* pItem = 0; + if( SFX_ITEM_SET == rSet.GetItemState( rSet.GetWhichByPos( nItem ), true, &pItem ) ) + { + rItems[pItem->Which()] = pItem; + } + } + } + else if( rSet.Count()) { SfxItemIter aIter(rSet); if (const SfxPoolItem *pItem = aIter.GetCurItem()) diff --git a/sw/source/filter/ww8/writerhelper.hxx b/sw/source/filter/ww8/writerhelper.hxx index 94ea0bf08d..1606d0d0df 100644 --- a/sw/source/filter/ww8/writerhelper.hxx +++ b/sw/source/filter/ww8/writerhelper.hxx @@ -590,7 +590,7 @@ namespace sw @author <a href="mailto:cmc@openoffice.org">Caolán McNamara</a> */ - void GetPoolItems(const SfxItemSet &rSet, PoolItems &rItems); + void GetPoolItems(const SfxItemSet &rSet, PoolItems &rItems, bool bExportParentItemSet ); const SfxPoolItem *SearchPoolItems(const PoolItems &rItems, sal_uInt16 eType); diff --git a/sw/source/filter/ww8/wrtw8esh.cxx b/sw/source/filter/ww8/wrtw8esh.cxx index 72dbabefd9..a573d9a6b7 100644 --- a/sw/source/filter/ww8/wrtw8esh.cxx +++ b/sw/source/filter/ww8/wrtw8esh.cxx @@ -343,7 +343,8 @@ void WW8Export::DoFormText(const SwInputField * pFld) OutputField(0, ww::eFORMTEXT, aEmptyStr, WRITEFIELD_CMD_END); - SwWW8Writer::WriteString16(Strm(), pFld->Expand(), false); + String const fieldStr( pFld->ExpandField(true) ); + SwWW8Writer::WriteString16(Strm(), fieldStr, false); static BYTE aArr2[] = { 0x03, 0x6a, 0x00, 0x00, 0x00, 0x00, // sprmCPicLocation @@ -811,49 +812,7 @@ void WW8Export::AppendFlyInFlys(const sw::Frame& rFrmFmt, OutputField(0, ww::eSHAPE, aEmptyStr, WRITEFIELD_CLOSE); } -class WW8_SdrAttrIter : public MSWordAttrIter -{ -private: - const EditTextObject* pEditObj; - const SfxItemPool* pEditPool; - EECharAttribArray aTxtAtrArr; - SvPtrarr aChrTxtAtrArr; - SvUShorts aChrSetArr; - USHORT nPara; - xub_StrLen nAktSwPos; - xub_StrLen nTmpSwPos; // fuer HasItem() - rtl_TextEncoding eNdChrSet; - USHORT nScript; - BYTE mnTyp; - - xub_StrLen SearchNext( xub_StrLen nStartPos ); - void SetCharSet(const EECharAttrib& rTxtAttr, bool bStart); - - //No copying - WW8_SdrAttrIter(const WW8_SdrAttrIter&); - WW8_SdrAttrIter& operator=(const WW8_SdrAttrIter&); -public: - WW8_SdrAttrIter( WW8Export& rWr, const EditTextObject& rEditObj, - BYTE nType ); - void NextPara( USHORT nPar ); - void OutParaAttr(bool bCharAttr); - void OutEEField(const SfxPoolItem& rHt); - - bool IsTxtAttr(xub_StrLen nSwPos); - - void NextPos() { nAktSwPos = SearchNext( nAktSwPos + 1 ); } - - void OutAttr( xub_StrLen nSwPos ); - virtual const SfxPoolItem* HasTextItem( USHORT nWhich ) const; - virtual const SfxPoolItem& GetItem( USHORT nWhich ) const; - bool OutAttrWithRange(xub_StrLen nPos); - xub_StrLen WhereNext() const { return nAktSwPos; } - rtl_TextEncoding GetNextCharSet() const; - rtl_TextEncoding GetNodeCharSet() const { return eNdChrSet; } -}; - - -WW8_SdrAttrIter::WW8_SdrAttrIter( WW8Export& rWr, +MSWord_SdrAttrIter::MSWord_SdrAttrIter( MSWordExportBase& rWr, const EditTextObject& rEditObj, BYTE nTyp ) : MSWordAttrIter( rWr ), pEditObj(&rEditObj), pEditPool(0), aTxtAtrArr( 0, 4 ), aChrTxtAtrArr( 0, 4 ), aChrSetArr( 0, 4 ), @@ -862,7 +821,7 @@ WW8_SdrAttrIter::WW8_SdrAttrIter( WW8Export& rWr, NextPara( 0 ); } -void WW8_SdrAttrIter::NextPara( USHORT nPar ) +void MSWord_SdrAttrIter::NextPara( USHORT nPar ) { nPara = nPar; // Attributwechsel an Pos 0 wird ignoriert, da davon ausgegangen @@ -885,7 +844,7 @@ void WW8_SdrAttrIter::NextPara( USHORT nPar ) nAktSwPos = SearchNext( 1 ); } -rtl_TextEncoding WW8_SdrAttrIter::GetNextCharSet() const +rtl_TextEncoding MSWord_SdrAttrIter::GetNextCharSet() const { if( aChrSetArr.Count() ) return (rtl_TextEncoding)aChrSetArr[ aChrSetArr.Count() - 1 ]; @@ -893,7 +852,7 @@ rtl_TextEncoding WW8_SdrAttrIter::GetNextCharSet() const } // der erste Parameter in SearchNext() liefert zurueck, ob es ein TxtAtr ist. -xub_StrLen WW8_SdrAttrIter::SearchNext( xub_StrLen nStartPos ) +xub_StrLen MSWord_SdrAttrIter::SearchNext( xub_StrLen nStartPos ) { xub_StrLen nPos; xub_StrLen nMinPos = STRING_MAXLEN; @@ -932,7 +891,7 @@ xub_StrLen WW8_SdrAttrIter::SearchNext( xub_StrLen nStartPos ) return nMinPos; } -void WW8_SdrAttrIter::SetCharSet(const EECharAttrib& rAttr, bool bStart) +void MSWord_SdrAttrIter::SetCharSet(const EECharAttrib& rAttr, bool bStart) { void* p = 0; rtl_TextEncoding eChrSet; @@ -962,7 +921,7 @@ void WW8_SdrAttrIter::SetCharSet(const EECharAttrib& rAttr, bool bStart) } } -void WW8_SdrAttrIter::OutEEField(const SfxPoolItem& rHt) +void MSWord_SdrAttrIter::OutEEField(const SfxPoolItem& rHt) { const SvxFieldItem &rField = (const SvxFieldItem &)rHt; const SvxFieldData *pFld = rField.GetField(); @@ -981,7 +940,7 @@ void WW8_SdrAttrIter::OutEEField(const SfxPoolItem& rHt) } } -void WW8_SdrAttrIter::OutAttr( xub_StrLen nSwPos ) +void MSWord_SdrAttrIter::OutAttr( xub_StrLen nSwPos ) { OutParaAttr(true); @@ -1038,7 +997,7 @@ void WW8_SdrAttrIter::OutAttr( xub_StrLen nSwPos ) } } -bool WW8_SdrAttrIter::IsTxtAttr(xub_StrLen nSwPos) +bool MSWord_SdrAttrIter::IsTxtAttr(xub_StrLen nSwPos) { for (USHORT i = 0; i < aTxtAtrArr.Count(); ++i) { @@ -1063,7 +1022,7 @@ bool WW8_SdrAttrIter::IsTxtAttr(xub_StrLen nSwPos) // Attribut-Anfangposition fragen kann. // Es koennen nur Attribute mit Ende abgefragt werden. // Es wird mit bDeep gesucht -const SfxPoolItem* WW8_SdrAttrIter::HasTextItem(USHORT nWhich) const +const SfxPoolItem* MSWord_SdrAttrIter::HasTextItem(USHORT nWhich) const { const SfxPoolItem* pRet = 0; nWhich = sw::hack::TransformWhichBetweenPools(*pEditPool, @@ -1088,7 +1047,7 @@ const SfxPoolItem* WW8_SdrAttrIter::HasTextItem(USHORT nWhich) const return pRet; } -const SfxPoolItem& WW8_SdrAttrIter::GetItem( USHORT nWhich ) const +const SfxPoolItem& MSWord_SdrAttrIter::GetItem( USHORT nWhich ) const { using sw::hack::GetSetWhichFromSwDocWhich; const SfxPoolItem* pRet = HasTextItem(nWhich); @@ -1102,7 +1061,7 @@ const SfxPoolItem& WW8_SdrAttrIter::GetItem( USHORT nWhich ) const return *pRet; } -void WW8_SdrAttrIter::OutParaAttr(bool bCharAttr) +void MSWord_SdrAttrIter::OutParaAttr(bool bCharAttr) { SfxItemSet aSet( pEditObj->GetParaAttribs( nPara )); if( aSet.Count() ) @@ -1175,7 +1134,7 @@ void WW8Export::WriteOutliner(const OutlinerParaObject& rParaObj, BYTE nTyp) { bool bAnyWrite = false; const EditTextObject& rEditObj = rParaObj.GetTextObject(); - WW8_SdrAttrIter aAttrIter( *this, rEditObj, nTyp ); + MSWord_SdrAttrIter aAttrIter( *this, rEditObj, nTyp ); USHORT nPara = rEditObj.GetParagraphCount(); BYTE bNul = 0; diff --git a/sw/source/filter/ww8/wrtw8nds.cxx b/sw/source/filter/ww8/wrtw8nds.cxx index d22decdf9a..8099c3037f 100644 --- a/sw/source/filter/ww8/wrtw8nds.cxx +++ b/sw/source/filter/ww8/wrtw8nds.cxx @@ -540,7 +540,7 @@ void SwAttrIter::OutAttr( xub_StrLen nSwPos ) ClearOverridesFromSet( *pCharFmtItem, aExportSet ); sw::PoolItems aExportItems; - GetPoolItems( aExportSet, aExportItems ); + GetPoolItems( aExportSet, aExportItems, false ); sw::cPoolItemIter aEnd = aRangeItems.end(); for ( sw::cPoolItemIter aI = aRangeItems.begin(); aI != aEnd; ++aI ) @@ -1646,14 +1646,136 @@ void WW8AttributeOutput::FormatDrop( const SwTxtNode& rNode, const SwFmtDrop &rS m_rWW8Export.pO->Remove( 0, m_rWW8Export.pO->Count() ); } -xub_StrLen MSWordExportBase::GetNextPos( SwAttrIter* aAttrIter, const SwTxtNode& /*rNode*/, xub_StrLen /*nAktPos*/ ) +xub_StrLen MSWordExportBase::GetNextPos( SwAttrIter* aAttrIter, const SwTxtNode& rNode, xub_StrLen nAktPos ) { - return aAttrIter->WhereNext(); + // Get the bookmarks for the normal run + xub_StrLen nNextPos = aAttrIter->WhereNext(); + + GetSortedBookmarks( rNode, nAktPos, nNextPos - nAktPos ); + + xub_StrLen nNextBookmark = nNextPos; + NearestBookmark( nNextPos, nAktPos, false ); + + return std::min( nNextPos, nNextBookmark ); +} + +void MSWordExportBase::UpdatePosition( SwAttrIter* aAttrIter, xub_StrLen nAktPos, xub_StrLen /*nEnd*/ ) +{ + xub_StrLen nNextPos; + + // go to next attribute if no bookmark is found of if the bookmark is behind the next attribute position + bool bNextBookmark = NearestBookmark( nNextPos, nAktPos, true ); + if( !bNextBookmark || nNextPos < aAttrIter->WhereNext() ) + aAttrIter->NextPos(); +} + +bool MSWordExportBase::GetBookmarks( const SwTxtNode& rNd, xub_StrLen nStt, + xub_StrLen nEnd, IMarkVector& rArr ) +{ + IDocumentMarkAccess* const pMarkAccess = pDoc->getIDocumentMarkAccess(); + ULONG nNd = rNd.GetIndex( ); + + const sal_Int32 nMarks = pMarkAccess->getMarksCount(); + for ( sal_Int32 i = 0; i < nMarks; i++ ) + { + IMark* pMark = ( pMarkAccess->getMarksBegin() + i )->get(); + + // Only keep the bookmarks starting or ending in this node + if ( pMark->GetMarkStart().nNode == nNd || + pMark->GetMarkEnd().nNode == nNd ) + { + xub_StrLen nBStart = pMark->GetMarkStart().nContent.GetIndex(); + xub_StrLen nBEnd = pMark->GetMarkEnd().nContent.GetIndex(); + + // Keep only the bookmars starting or ending in the snippet + bool bIsStartOk = ( nBStart >= nStt ) && ( nBStart <= nEnd ); + bool bIsEndOk = ( nBEnd >= nStt ) && ( nBEnd <= nEnd ); + + if ( bIsStartOk || bIsEndOk ) + rArr.push_back( pMark ); + } + } + return ( rArr.size() > 0 ); } -void MSWordExportBase::UpdatePosition( SwAttrIter* aAttrIter, xub_StrLen /*nAktPos*/, xub_StrLen /*nEnd*/ ) +class CompareMarksEnd : public std::binary_function < const IMark *, const IMark *, bool > { - aAttrIter->NextPos(); +public: + inline bool operator() ( const IMark * pOneB, const IMark * pTwoB ) const + { + xub_StrLen nOEnd = pOneB->GetMarkEnd().nContent.GetIndex(); + xub_StrLen nTEnd = pTwoB->GetMarkEnd().nContent.GetIndex(); + + return nOEnd < nTEnd; + } +}; + +bool MSWordExportBase::NearestBookmark( xub_StrLen& rNearest, const xub_StrLen nAktPos, bool bNextPositionOnly ) +{ + bool bHasBookmark = false; + + if ( m_rSortedMarksStart.size( ) > 0 ) + { + IMark* pMarkStart = m_rSortedMarksStart.front(); + xub_StrLen nNext = pMarkStart->GetMarkStart().nContent.GetIndex(); + if( !bNextPositionOnly || (nNext > nAktPos )) + { + rNearest = nNext; + bHasBookmark = true; + } + } + + if ( m_rSortedMarksEnd.size( ) > 0 ) + { + IMark* pMarkEnd = m_rSortedMarksEnd[0]; + xub_StrLen nNext = pMarkEnd->GetMarkEnd().nContent.GetIndex(); + if( !bNextPositionOnly || nNext > nAktPos ) + { + if ( !bHasBookmark ) + rNearest = nNext; + else + rNearest = std::min( rNearest, nNext ); + bHasBookmark = true; + } + } + + return bHasBookmark; +} + +void MSWordExportBase::GetSortedBookmarks( const SwTxtNode& rNode, xub_StrLen nAktPos, xub_StrLen nLen ) +{ + IMarkVector aMarksStart; + if ( GetBookmarks( rNode, nAktPos, nAktPos + nLen, aMarksStart ) ) + { + IMarkVector aSortedEnd; + IMarkVector aSortedStart; + for ( IMarkVector::const_iterator it = aMarksStart.begin(), end = aMarksStart.end(); + it < end; ++it ) + { + IMark* pMark = (*it); + + // Remove the positions egals to the current pos + xub_StrLen nStart = pMark->GetMarkStart().nContent.GetIndex(); + xub_StrLen nEnd = pMark->GetMarkEnd().nContent.GetIndex(); + + if ( nStart > nAktPos && ( pMark->GetMarkStart().nNode == rNode.GetIndex()) ) + aSortedStart.push_back( pMark ); + + if ( nEnd > nAktPos && nEnd <= ( nAktPos + nLen ) && (pMark->GetMarkEnd().nNode == rNode.GetIndex()) ) + aSortedEnd.push_back( pMark ); + } + + // Sort the bookmarks by end position + std::sort( aSortedEnd.begin(), aSortedEnd.end(), CompareMarksEnd() ); + + m_rSortedMarksStart.swap( aSortedStart ); + m_rSortedMarksEnd.swap( aSortedEnd ); + } + else + { + m_rSortedMarksStart.clear( ); + m_rSortedMarksEnd.clear( ); + } } void MSWordExportBase::OutputTextNode( const SwTxtNode& rNode ) @@ -2188,7 +2310,7 @@ void MSWordExportBase::OutputTextNode( const SwTxtNode& rNode ) pOutFmtNode = &rNode; // Pap-Attrs, so script is not necessary - OutputItemSet( *pNewSet, true, false, i18n::ScriptType::LATIN); + OutputItemSet( *pNewSet, true, false, i18n::ScriptType::LATIN, false); pStyAttr = 0; pOutFmtNode = pOldMod; diff --git a/sw/source/filter/ww8/wrtw8num.cxx b/sw/source/filter/ww8/wrtw8num.cxx index 2ed01f48a8..0fc020a84b 100644 --- a/sw/source/filter/ww8/wrtw8num.cxx +++ b/sw/source/filter/ww8/wrtw8num.cxx @@ -268,7 +268,7 @@ void WW8AttributeOutput::NumberingLevel( BYTE /*nLevel*/, m_rWW8Export.InsUInt16( nFontID ); } - m_rWW8Export.OutputItemSet( *pOutSet, false, true, i18n::ScriptType::LATIN ); + m_rWW8Export.OutputItemSet( *pOutSet, false, true, i18n::ScriptType::LATIN, m_rWW8Export.mbExportModeRTF ); m_rWW8Export.pO = pOldpO; } @@ -721,6 +721,9 @@ void MSWordExportBase::SubstituteBullet( String& rNumStr, StarSymbolToMSMultiFont *pConvert = 0; FontFamily eFamily = FAMILY_DECORATIVE; + if (!bSubstituteBullets) + return; + if (!pConvert) { pConvert = CreateStarSymbolToMSMultiFont(); diff --git a/sw/source/filter/ww8/wrtw8sty.cxx b/sw/source/filter/ww8/wrtw8sty.cxx index 651c09e0ae..8a8b12ceb6 100644 --- a/sw/source/filter/ww8/wrtw8sty.cxx +++ b/sw/source/filter/ww8/wrtw8sty.cxx @@ -79,6 +79,7 @@ #include "ww8par.hxx" #include "ww8attributeoutput.hxx" #include "docxattributeoutput.hxx" +#include "rtfattributeoutput.hxx" using namespace sw::util; using namespace nsHdFtFlags; @@ -713,6 +714,17 @@ void wwFont::WriteDocx( const DocxAttributeOutput* rAttrOutput ) const } #endif +void wwFont::WriteRtf( const RtfAttributeOutput* rAttrOutput ) const +{ + rAttrOutput->FontFamilyType( meFamily, *this ); + rAttrOutput->FontPitchType( mePitch ); + rAttrOutput->FontCharset( sw::ms::rtl_TextEncodingToWinCharset( meChrSet ) ); + rAttrOutput->StartFont( msFamilyNm ); + if ( mbAlt ) + rAttrOutput->FontAlternateName( msAltNm ); + rAttrOutput->EndFont(); +} + bool operator<(const wwFont &r1, const wwFont &r2) { int nRet = memcmp(r1.maWW8_FFN, r2.maWW8_FFN, sizeof(r1.maWW8_FFN)); @@ -765,6 +777,22 @@ void wwFontHelper::InitFontTable(bool bWrtWW8,const SwDoc& rDoc) GetId(wwFont(pFont->GetFamilyName(), pFont->GetPitch(), pFont->GetFamily(), pFont->GetCharSet(),bWrtWW8)); } + + if (!bLoadAllFonts) + return; + + const USHORT aTypes[] = { RES_CHRATR_FONT, RES_CHRATR_CJK_FONT, RES_CHRATR_CTL_FONT, 0 }; + for (const USHORT* pId = aTypes; *pId; ++pId) + { + USHORT nMaxItem = rPool.GetItemCount2( *pId ); + for( USHORT nGet = 0; nGet < nMaxItem; ++nGet ) + if( 0 != (pFont = (const SvxFontItem*)rPool.GetItem2( + *pId, nGet )) ) + { + GetId(wwFont(pFont->GetFamilyName(), pFont->GetPitch(), + pFont->GetFamily(), pFont->GetCharSet(),bWrtWW8)); + } + } } USHORT wwFontHelper::GetId(const Font& rFont) @@ -839,6 +867,14 @@ void wwFontHelper::WriteFontTable( const DocxAttributeOutput& rAttrOutput ) } #endif +void wwFontHelper::WriteFontTable( const RtfAttributeOutput& rAttrOutput ) +{ + ::std::vector<const wwFont *> aFontList( AsVector() ); + + ::std::for_each( aFontList.begin(), aFontList.end(), + ::std::bind2nd( ::std::mem_fun( &wwFont::WriteRtf ), &rAttrOutput ) ); +} + /* */ WW8_WrPlc0::WW8_WrPlc0( ULONG nOffset ) diff --git a/sw/source/filter/ww8/wrtww8.cxx b/sw/source/filter/ww8/wrtww8.cxx index 2cf3a421e2..656059ac25 100644 --- a/sw/source/filter/ww8/wrtww8.cxx +++ b/sw/source/filter/ww8/wrtww8.cxx @@ -1284,7 +1284,7 @@ void WW8_WrtBookmarks::Append( WW8_CP nStartCp, const String& rNm, const ::sw:: aSttCps.Insert(nStartCp, nPos); aEndCps.Insert(nStartCp, nPos); - aFieldMarks.Insert(BOOL(false), nPos); + aFieldMarks.insert(aFieldMarks.begin() + nPos, BOOL(false)); maSwBkmkNms.insert(aIter, rNm); } else @@ -2859,10 +2859,10 @@ void MSWordExportBase::CollectOutlineBookmarks(const SwDoc &rDoc) const SwTxtINetFmt* pTxtAttr; const SwTxtNode* pTxtNd; - USHORT n, nMaxItems = rDoc.GetAttrPool().GetItemCount( RES_TXTATR_INETFMT ); + sal_uInt32 n, nMaxItems = rDoc.GetAttrPool().GetItemCount2( RES_TXTATR_INETFMT ); for( n = 0; n < nMaxItems; ++n ) { - if( 0 != (pINetFmt = (SwFmtINetFmt*)rDoc.GetAttrPool().GetItem( + if( 0 != (pINetFmt = (SwFmtINetFmt*)rDoc.GetAttrPool().GetItem2( RES_TXTATR_INETFMT, n ) ) && 0 != ( pTxtAttr = pINetFmt->GetTxtINetFmt()) && 0 != ( pTxtNd = pTxtAttr->GetpTxtNode() ) && @@ -2873,10 +2873,10 @@ void MSWordExportBase::CollectOutlineBookmarks(const SwDoc &rDoc) } const SwFmtURL *pURL; - nMaxItems = rDoc.GetAttrPool().GetItemCount( RES_URL ); + nMaxItems = rDoc.GetAttrPool().GetItemCount2( RES_URL ); for( n = 0; n < nMaxItems; ++n ) { - if( 0 != (pURL = (SwFmtURL*)rDoc.GetAttrPool().GetItem( + if( 0 != (pURL = (SwFmtURL*)rDoc.GetAttrPool().GetItem2( RES_URL, n ) ) ) { AddLinkTarget( pURL->GetURL() ); @@ -3371,7 +3371,8 @@ MSWordExportBase::MSWordExportBase( SwDoc *pDocument, SwPaM *pCurrentPam, SwPaM mpTableInfo(new ww8::WW8TableInfo()), nUniqueList(0), mnHdFtIndex(0), pAktPageDesc(0), pPapPlc(0), pChpPlc(0), pChpIter(0), pStyles( NULL ), - bHasHdr(false), bHasFtr(false), + bHasHdr(false), bHasFtr(false), bSubstituteBullets(true), + mbExportModeRTF( false ), pDoc( pDocument ), pCurPam( pCurrentPam ), pOrigPam( pOriginalPam ) diff --git a/sw/source/filter/ww8/wrtww8.hxx b/sw/source/filter/ww8/wrtww8.hxx index 43211a962e..d170acbd7f 100644 --- a/sw/source/filter/ww8/wrtww8.hxx +++ b/sw/source/filter/ww8/wrtww8.hxx @@ -35,6 +35,7 @@ #define _SVSTDARR_ULONGS #include <svl/svstdarr.hxx> #endif +#include <editeng/editdata.hxx> #include <map> #include <vector> @@ -55,6 +56,7 @@ class SwAttrIter; class AttributeOutputBase; class DocxAttributeOutput; +class RtfAttributeOutput; class BitmapPalette; class SwEscherEx; class DateTime; @@ -296,6 +298,7 @@ public: #ifdef DOCX void WriteDocx( const DocxAttributeOutput* rAttrOutput ) const; #endif + void WriteRtf( const RtfAttributeOutput* rAttrOutput ) const; rtl::OUString GetFamilyName() const { return rtl::OUString( msFamilyNm ); } friend bool operator < (const wwFont &r1, const wwFont &r2); }; @@ -311,7 +314,7 @@ private: ::std::vector< const wwFont* > AsVector() const; public: - wwFontHelper() : mbWrtWW8(false) {} + wwFontHelper() : mbWrtWW8(false), bLoadAllFonts(false) {} /// rDoc used only to get the initial standard font(s) in use. void InitFontTable(bool bWrtWW8, const SwDoc& rDoc); USHORT GetId(const Font& rFont); @@ -321,6 +324,10 @@ public: #ifdef DOCX void WriteFontTable( const DocxAttributeOutput& rAttrOutput ); #endif + void WriteFontTable( const RtfAttributeOutput& rAttrOutput ); + + /// If true, all fonts are loaded before processing the document. + BYTE bLoadAllFonts: 1; }; class DrawObj @@ -539,6 +546,9 @@ public: BYTE bEndAtTxtEnd : 1; // true: all END at Textend BYTE bHasHdr : 1; BYTE bHasFtr : 1; + BYTE bSubstituteBullets : 1; // true: SubstituteBullet() gets called + + bool mbExportModeRTF; SwDoc *pDoc; SwPaM *pCurPam, *pOrigPam; @@ -546,6 +556,11 @@ public: /// Stack to remember the nesting (see MSWordSaveData for more) ::std::stack< MSWordSaveData > maSaveData; + /// Used to split the runs according to the bookmarks start and ends + typedef std::vector< ::sw::mark::IMark* > IMarkVector; + IMarkVector m_rSortedMarksStart; + IMarkVector m_rSortedMarksEnd; + public: /// The main function to export the document. void ExportDocument( bool bWriteAll ); @@ -584,7 +599,7 @@ public: void AppendWordBookmark( const String& rName ); /// Use OutputItem() on an item set according to the parameters. - void OutputItemSet( const SfxItemSet& rSet, bool bPapFmt, bool bChpFmt, USHORT nScript ); + void OutputItemSet( const SfxItemSet& rSet, bool bPapFmt, bool bChpFmt, USHORT nScript, bool bExportParentItemSet ); short GetDefaultFrameDirection( ) const; @@ -785,6 +800,17 @@ protected: /// One of OutputTextNode(), OutputGrfNode(), or OutputOLENode() void OutputContentNode( const SwCntntNode& ); + /// Find the nearest bookmark from the current position. + /// + /// Returns false when there is no bookmark. + bool NearestBookmark( xub_StrLen& rNearest, const xub_StrLen nAktPos, bool bNextPositionOnly ); + + void GetSortedBookmarks( const SwTxtNode& rNd, xub_StrLen nAktPos, + xub_StrLen nLen ); + + bool GetBookmarks( const SwTxtNode& rNd, xub_StrLen nStt, xub_StrLen nEnd, + IMarkVector& rArr ); + public: MSWordExportBase( SwDoc *pDocument, SwPaM *pCurrentPam, SwPaM *pOriginalPam ); virtual ~MSWordExportBase(); @@ -1350,6 +1376,47 @@ public: virtual const SfxPoolItem& GetItem( USHORT nWhich ) const = 0; }; +class MSWord_SdrAttrIter : public MSWordAttrIter +{ +private: + const EditTextObject* pEditObj; + const SfxItemPool* pEditPool; + EECharAttribArray aTxtAtrArr; + SvPtrarr aChrTxtAtrArr; + SvUShorts aChrSetArr; + USHORT nPara; + xub_StrLen nAktSwPos; + xub_StrLen nTmpSwPos; // for HasItem() + rtl_TextEncoding eNdChrSet; + USHORT nScript; + BYTE mnTyp; + + xub_StrLen SearchNext( xub_StrLen nStartPos ); + void SetCharSet(const EECharAttrib& rTxtAttr, bool bStart); + + //No copying + MSWord_SdrAttrIter(const MSWord_SdrAttrIter&); + MSWord_SdrAttrIter& operator=(const MSWord_SdrAttrIter&); +public: + MSWord_SdrAttrIter( MSWordExportBase& rWr, const EditTextObject& rEditObj, + BYTE nType ); + void NextPara( USHORT nPar ); + void OutParaAttr(bool bCharAttr); + void OutEEField(const SfxPoolItem& rHt); + + bool IsTxtAttr(xub_StrLen nSwPos); + + void NextPos() { nAktSwPos = SearchNext( nAktSwPos + 1 ); } + + void OutAttr( xub_StrLen nSwPos ); + virtual const SfxPoolItem* HasTextItem( USHORT nWhich ) const; + virtual const SfxPoolItem& GetItem( USHORT nWhich ) const; + bool OutAttrWithRange(xub_StrLen nPos); + xub_StrLen WhereNext() const { return nAktSwPos; } + rtl_TextEncoding GetNextCharSet() const; + rtl_TextEncoding GetNodeCharSet() const { return eNdChrSet; } +}; + /// Class to collect and output the styles table. class MSWordStyles { diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx index 1e5d01101f..67e9dd64b1 100644 --- a/sw/source/filter/ww8/ww8atr.cxx +++ b/sw/source/filter/ww8/ww8atr.cxx @@ -271,20 +271,21 @@ void MSWordExportBase::ExportPoolItemsToCHP( sw::PoolItems &rItems, USHORT nScri * - gebe die Attribute aus; ohne Parents! */ -void MSWordExportBase::OutputItemSet( const SfxItemSet& rSet, bool bPapFmt, bool bChpFmt, USHORT nScript ) +void MSWordExportBase::OutputItemSet( const SfxItemSet& rSet, bool bPapFmt, bool bChpFmt, USHORT nScript, + bool bExportParentItemSet ) { - if ( rSet.Count() ) + if( bExportParentItemSet || rSet.Count() ) { const SfxPoolItem* pItem; pISet = &rSet; // fuer Doppel-Attribute // If frame dir is set, but not adjust, then force adjust as well - if ( bPapFmt && SFX_ITEM_SET == rSet.GetItemState( RES_FRAMEDIR, false ) ) + if ( bPapFmt && SFX_ITEM_SET == rSet.GetItemState( RES_FRAMEDIR, bExportParentItemSet ) ) { // No explicit adjust set ? - if ( SFX_ITEM_SET != rSet.GetItemState( RES_PARATR_ADJUST, false ) ) + if ( SFX_ITEM_SET != rSet.GetItemState( RES_PARATR_ADJUST, bExportParentItemSet ) ) { - if ( 0 != ( pItem = rSet.GetItem( RES_PARATR_ADJUST ) ) ) + if ( 0 != ( pItem = rSet.GetItem( RES_PARATR_ADJUST, bExportParentItemSet ) ) ) { // then set the adjust used by the parent format AttrOutput().OutputItem( *pItem ); @@ -292,7 +293,7 @@ void MSWordExportBase::OutputItemSet( const SfxItemSet& rSet, bool bPapFmt, bool } } - if ( bPapFmt && SFX_ITEM_SET == rSet.GetItemState( RES_PARATR_NUMRULE, false, &pItem ) ) + if ( bPapFmt && SFX_ITEM_SET == rSet.GetItemState( RES_PARATR_NUMRULE, bExportParentItemSet, &pItem ) ) { AttrOutput().OutputItem( *pItem ); @@ -307,7 +308,7 @@ void MSWordExportBase::OutputItemSet( const SfxItemSet& rSet, bool bPapFmt, bool } sw::PoolItems aItems; - GetPoolItems( rSet, aItems ); + GetPoolItems( rSet, aItems, bExportParentItemSet ); if ( bChpFmt ) ExportPoolItemsToCHP(aItems, nScript); @@ -783,7 +784,7 @@ void MSWordExportBase::OutputFormat( const SwFmt& rFmt, bool bPapFmt, bool bChpF aSet.Put( aLR ); CorrectTabStopInSet( aSet, rNFmt.GetAbsLSpace() ); OutputItemSet( aSet, bPapFmt, bChpFmt, - i18n::ScriptType::LATIN); + i18n::ScriptType::LATIN, mbExportModeRTF); bCallOutSet = false; } } @@ -801,7 +802,7 @@ void MSWordExportBase::OutputFormat( const SwFmt& rFmt, bool bPapFmt, bool bChpF ItemGet<SvxLRSpaceItem>(aSet, RES_LR_SPACE)); aSet.Put( aLR ); OutputItemSet( aSet, bPapFmt, bChpFmt, - com::sun::star::i18n::ScriptType::LATIN); + com::sun::star::i18n::ScriptType::LATIN, mbExportModeRTF); bCallOutSet = false; } // <-- @@ -841,7 +842,7 @@ void MSWordExportBase::OutputFormat( const SwFmt& rFmt, bool bPapFmt, bool bChpF bOutFlyFrmAttrs = true; //script doesn't matter if not exporting chp OutputItemSet(aSet, true, false, - i18n::ScriptType::LATIN); + i18n::ScriptType::LATIN, mbExportModeRTF); bOutFlyFrmAttrs = false; bCallOutSet = false; @@ -855,7 +856,7 @@ void MSWordExportBase::OutputFormat( const SwFmt& rFmt, bool bPapFmt, bool bChpF if( bCallOutSet ) OutputItemSet( rFmt.GetAttrSet(), bPapFmt, bChpFmt, - i18n::ScriptType::LATIN); + i18n::ScriptType::LATIN, mbExportModeRTF); pOutFmtNode = pOldMod; } @@ -1743,9 +1744,9 @@ static void InsertSpecialChar( WW8Export& rWrt, BYTE c, aItems.GetData()); } -String lcl_GetExpandedField(const SwField &rFld, SwDoc const& rDoc) +String lcl_GetExpandedField(const SwField &rFld) { - String sRet(rFld.ExpandField(rDoc.IsClipBoard())); + String sRet(rFld.ExpandField(true)); //replace LF 0x0A with VT 0x0B sRet.SearchAndReplaceAll(0x0A, 0x0B); @@ -1871,7 +1872,7 @@ void WW8Export::OutputField( const SwField* pFld, ww::eField eFldType, { String sOut; if( pFld ) - sOut = lcl_GetExpandedField(*pFld, *pDoc); + sOut = lcl_GetExpandedField(*pFld); else sOut = rFldCmd; if( sOut.Len() ) @@ -2598,7 +2599,7 @@ void WW8AttributeOutput::RefField( const SwField &rFld, const String &rRef) sStr.APPEND_CONST_ASC( "\" " ); m_rWW8Export.OutputField( &rFld, ww::eREF, sStr, WRITEFIELD_START | WRITEFIELD_CMD_START | WRITEFIELD_CMD_END ); - String sVar = lcl_GetExpandedField( rFld, *GetExport().pDoc ); + String sVar = lcl_GetExpandedField( rFld ); if ( sVar.Len() ) { if ( m_rWW8Export.IsUnicode() ) @@ -2614,7 +2615,7 @@ void WW8AttributeOutput::RefField( const SwField &rFld, const String &rRef) void WW8AttributeOutput::WriteExpand( const SwField* pFld ) { - String sExpand( lcl_GetExpandedField( *pFld, *GetExport().pDoc ) ); + String sExpand( lcl_GetExpandedField( *pFld ) ); if ( m_rWW8Export.IsUnicode() ) SwWW8Writer::WriteString16( m_rWW8Export.Strm(), sExpand, false ); else @@ -2773,12 +2774,12 @@ void AttributeOutputBase::TextField( const SwFmtFld& rField ) static String sQuotes('\"'); const SwDocInfoField * pDocInfoField = dynamic_cast<const SwDocInfoField *> (pFld); - + if (pDocInfoField != NULL) { - String sFieldname = pDocInfoField->GetCntnt(TRUE); + String sFieldname = pDocInfoField->GetFieldName(); xub_StrLen nIndex = sFieldname.Search(':'); - + if (nIndex != sFieldname.Len()) sFieldname = sFieldname.Copy(nIndex + 1); @@ -3340,7 +3341,7 @@ void WW8AttributeOutput::CharTwoLines( const SvxTwoLinesItem& rTwoLines ) m_rWW8Export.pO->Insert( (BYTE)0x02, m_rWW8Export.pO->Count() ); sal_Unicode cStart = rTwoLines.GetStartBracket(); - sal_Unicode cEnd = rTwoLines.GetStartBracket(); + sal_Unicode cEnd = rTwoLines.GetEndBracket(); /* As per usual we have problems. We can have seperate left and right brackets diff --git a/sw/source/filter/xml/xmlexp.cxx b/sw/source/filter/xml/xmlexp.cxx index 1250b589b0..c4412887f0 100644 --- a/sw/source/filter/xml/xmlexp.cxx +++ b/sw/source/filter/xml/xmlexp.cxx @@ -244,10 +244,10 @@ sal_uInt32 SwXMLExport::exportDoc( enum XMLTokenEnum eClass ) for( sal_uInt16 j=0; j < nWhichIds; j++ ) { sal_uInt16 nWhichId = aWhichIds[j]; - sal_uInt16 i=0, nItems = rPool.GetItemCount( nWhichId ); + sal_uInt32 i=0, nItems = rPool.GetItemCount2( nWhichId ); for( i = 0; i < nItems; ++i ) { - if( 0 != (pItem = rPool.GetItem( nWhichId , i ) ) ) + if( 0 != (pItem = rPool.GetItem2( nWhichId , i ) ) ) { const SvXMLAttrContainerItem *pUnknown = PTR_CAST( SvXMLAttrContainerItem, pItem ); diff --git a/sw/source/filter/xml/xmlfonte.cxx b/sw/source/filter/xml/xmlfonte.cxx index c7bfacf509..308d839b7d 100644 --- a/sw/source/filter/xml/xmlfonte.cxx +++ b/sw/source/filter/xml/xmlfonte.cxx @@ -80,10 +80,10 @@ SwXMLFontAutoStylePool_Impl::SwXMLFontAutoStylePool_Impl( Add( rFont.GetFamilyName(), rFont.GetStyleName(), static_cast< sal_uInt16 >(rFont.GetFamily()), static_cast< sal_uInt16 >(rFont.GetPitch()), rFont.GetCharSet() ); - sal_uInt16 nItems = rPool.GetItemCount( nWhichId ); - for( sal_uInt16 j = 0; j < nItems; ++j ) + sal_uInt32 nItems = rPool.GetItemCount2( nWhichId ); + for( sal_uInt32 j = 0; j < nItems; ++j ) { - if( 0 != (pItem = rPool.GetItem( nWhichId, j ) ) ) + if( 0 != (pItem = rPool.GetItem2( nWhichId, j ) ) ) { const SvxFontItem *pFont = (const SvxFontItem *)pItem; diff --git a/sw/source/filter/xml/xmltbli.cxx b/sw/source/filter/xml/xmltbli.cxx index c3beb63cc0..ab5e1acb99 100644 --- a/sw/source/filter/xml/xmltbli.cxx +++ b/sw/source/filter/xml/xmltbli.cxx @@ -1539,14 +1539,14 @@ void SwXMLTableContext::InsertColumn( sal_Int32 nWidth2, sal_Bool bRelWidth2, else if( nWidth2 > USHRT_MAX ) nWidth2 = USHRT_MAX; aColumnWidths.Insert( (sal_uInt16)nWidth2, aColumnWidths.Count() ); - aColumnRelWidths.Insert( bRelWidth2, aColumnRelWidths.Count() ); + aColumnRelWidths.push_back( bRelWidth2 ); if( (pDfltCellStyleName && pDfltCellStyleName->getLength() > 0) || pColumnDefaultCellStyleNames ) { if( !pColumnDefaultCellStyleNames ) { pColumnDefaultCellStyleNames = new SvStringsDtor; - sal_uInt16 nCount = aColumnRelWidths.Count() - 1; + size_t nCount = aColumnRelWidths.size() - 1; while( nCount-- ) pColumnDefaultCellStyleNames->Insert( new String, pColumnDefaultCellStyleNames->Count() ); @@ -1649,7 +1649,7 @@ void SwXMLTableContext::InsertCell( const OUString& rStyleName, for( i=GetColumnCount(); i<nColsReq; i++ ) { aColumnWidths.Insert( MINLAY, aColumnWidths.Count() ); - aColumnRelWidths.Insert( sal_True, aColumnRelWidths.Count() ); + aColumnRelWidths.push_back( sal_True ); } // adjust columns in *all* rows, if columns must be inserted for( i=0; i<pRows->Count(); i++ ) diff --git a/sw/source/ui/app/appopt.cxx b/sw/source/ui/app/appopt.cxx index a248ac8aff..ae6e4720b2 100644 --- a/sw/source/ui/app/appopt.cxx +++ b/sw/source/ui/app/appopt.cxx @@ -27,19 +27,15 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" -#include <hintids.hxx> -#ifndef _CMDID_H -#include <cmdid.h> // Funktion-Ids -#endif - -#include <com/sun/star/i18n/ScriptType.hpp> #define _SVSTDARR_STRINGSDTOR #include <svl/svstdarr.hxx> -#ifndef _MSGBOX_HXX //autogen +#include <com/sun/star/i18n/ScriptType.hpp> + +#include <hintids.hxx> +#include <cmdid.h> // Funktion-Ids #include <vcl/msgbox.hxx> -#endif #include <svl/eitem.hxx> #include <sfx2/request.hxx> #include <sfx2/app.hxx> @@ -47,9 +43,7 @@ #include <svx/htmlmode.hxx> #include <sfx2/bindings.hxx> #include <editeng/brshitem.hxx> -#ifndef _SVX_TSTPITEM_HXX //autogen #include <editeng/tstpitem.hxx> -#endif #include <svx/optgrid.hxx> #include <svx/svxdlg.hxx> #include <svx/dialogs.hrc> @@ -59,37 +53,25 @@ #include <optcomp.hxx> #include <edtwin.hxx> #include <swmodule.hxx> -#ifndef _VIEW_HXX #include <view.hxx> -#endif +#include <doc.hxx> #include <wrtsh.hxx> -#ifndef IDOCUMENTDEVICEACCESS_HXX_INCLUDED #include <IDocumentDeviceAccess.hxx> -#endif #include <uitool.hxx> #include <initui.hxx> // fuer ::GetGlossaries() #include <fldbas.hxx> //fuer UpdateFields -#ifndef _WVIEW_HXX #include <wview.hxx> -#endif #include <cfgitems.hxx> #include <prtopt.hxx> -#ifndef _PVIEW_HXX #include <pview.hxx> -#endif #include <usrpref.hxx> -#ifndef _MODCFG_HXX #include <modcfg.hxx> -#endif #include <glosdoc.hxx> #include <uiitems.hxx> #include <editeng/langitem.hxx> #include <unotools/lingucfg.hxx> #include <editeng/unolingu.hxx> - -#ifndef _GLOBALS_HRC #include <globals.hrc> -#endif #include <globals.h> // globale Konstanten z.B. #include <svl/slstitm.hxx> #include "swabstdlg.hxx" @@ -334,8 +316,7 @@ void SwModule::ApplyItemSet( USHORT nId, const SfxItemSet& rSet ) /*--------------------------------------------------------------------- Seite Dokumentansicht auswerten -----------------------------------------------------------------------*/ - if( SFX_ITEM_SET == rSet.GetItemState( - FN_PARAM_DOCDISP, FALSE, &pItem )) + if( SFX_ITEM_SET == rSet.GetItemState( FN_PARAM_DOCDISP, FALSE, &pItem )) { const SwDocDisplayItem* pDocDispItem = (const SwDocDisplayItem*)pItem; @@ -364,23 +345,20 @@ void SwModule::ApplyItemSet( USHORT nId, const SfxItemSet& rSet ) Elemente - Item auswerten -----------------------------------------------------------------------*/ - if( SFX_ITEM_SET == rSet.GetItemState( - FN_PARAM_ELEM, FALSE, &pItem ) ) + if( SFX_ITEM_SET == rSet.GetItemState( FN_PARAM_ELEM, FALSE, &pItem ) ) { const SwElemItem* pElemItem = (const SwElemItem*)pItem; pElemItem->FillViewOptions( aViewOpt ); } - if( SFX_ITEM_SET == rSet.GetItemState(SID_ATTR_METRIC, - FALSE, &pItem ) ) + if( SFX_ITEM_SET == rSet.GetItemState(SID_ATTR_METRIC, FALSE, &pItem ) ) { SFX_APP()->SetOptions(rSet); const SfxUInt16Item* pMetricItem = (const SfxUInt16Item*)pItem; ::SetDfltMetric((FieldUnit)pMetricItem->GetValue(), !bTextDialog); } - if( SFX_ITEM_SET == rSet.GetItemState(FN_HSCROLL_METRIC, - FALSE, &pItem ) ) + if( SFX_ITEM_SET == rSet.GetItemState(FN_HSCROLL_METRIC, FALSE, &pItem ) ) { const SfxUInt16Item* pMetricItem = (const SfxUInt16Item*)pItem; FieldUnit eUnit = (FieldUnit)pMetricItem->GetValue(); @@ -389,8 +367,7 @@ void SwModule::ApplyItemSet( USHORT nId, const SfxItemSet& rSet ) pAppView->ChangeTabMetric(eUnit); } - if( SFX_ITEM_SET == rSet.GetItemState(FN_VSCROLL_METRIC, - FALSE, &pItem ) ) + if( SFX_ITEM_SET == rSet.GetItemState(FN_VSCROLL_METRIC, FALSE, &pItem ) ) { const SfxUInt16Item* pMetricItem = (const SfxUInt16Item*)pItem; FieldUnit eUnit = (FieldUnit)pMetricItem->GetValue(); @@ -399,8 +376,7 @@ void SwModule::ApplyItemSet( USHORT nId, const SfxItemSet& rSet ) pAppView->ChangeVLinealMetric(eUnit); } - if( SFX_ITEM_SET == rSet.GetItemState(SID_ATTR_DEFTABSTOP, - FALSE, &pItem ) ) + if( SFX_ITEM_SET == rSet.GetItemState(SID_ATTR_DEFTABSTOP, FALSE, &pItem ) ) { USHORT nTabDist = ((const SfxUInt16Item*)pItem)->GetValue(); pPref->SetDefTab(nTabDist); @@ -427,8 +403,7 @@ void SwModule::ApplyItemSet( USHORT nId, const SfxItemSet& rSet ) Seite Rastereinstellungen auswerten ----------------------------------------------------------------------*/ - if( SFX_ITEM_SET == rSet.GetItemState( - SID_ATTR_GRID_OPTIONS, FALSE, &pItem )) + if( SFX_ITEM_SET == rSet.GetItemState( SID_ATTR_GRID_OPTIONS, FALSE, &pItem )) { const SvxGridItem* pGridItem = (const SvxGridItem*)pItem; @@ -458,8 +433,7 @@ void SwModule::ApplyItemSet( USHORT nId, const SfxItemSet& rSet ) // Writer Drucker Zusatzeinstellungen auswerten //---------------------------------------------------------------------------- - if( SFX_ITEM_SET == rSet.GetItemState( - FN_PARAM_ADDPRINTER, FALSE, &pItem )) + if( SFX_ITEM_SET == rSet.GetItemState( FN_PARAM_ADDPRINTER, FALSE, &pItem )) { SwPrintOptions* pOpt = GetPrtOptions(!bTextDialog); if (pOpt) @@ -473,16 +447,25 @@ void SwModule::ApplyItemSet( USHORT nId, const SfxItemSet& rSet ) } - if( SFX_ITEM_SET == rSet.GetItemState( - FN_PARAM_SHADOWCURSOR, FALSE, &pItem )) + if( SFX_ITEM_SET == rSet.GetItemState( FN_PARAM_SHADOWCURSOR, FALSE, &pItem )) { ((SwShadowCursorItem*)pItem)->FillViewOptions( aViewOpt ); if(pBindings) pBindings->Invalidate(FN_SHADOWCURSOR); } - if( SFX_ITEM_SET == rSet.GetItemState( - FN_PARAM_CRSR_IN_PROTECTED, FALSE, &pItem )) + if( pAppView ) + { + SwWrtShell &rWrtSh = pAppView->GetWrtShell(); + const bool bAlignFormulas = rWrtSh.GetDoc()->get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT ); + pPref->SetAlignMathObjectsToBaseline( bAlignFormulas ); + + // don't align formulas in documents that are currently loading + if (bAlignFormulas && !rWrtSh.GetDoc()->IsInReading()) + rWrtSh.AlignAllFormulasToBaseline(); + } + + if( SFX_ITEM_SET == rSet.GetItemState( FN_PARAM_CRSR_IN_PROTECTED, FALSE, &pItem )) { aViewOpt.SetCursorInProtectedArea(((const SfxBoolItem*)pItem)->GetValue()); } @@ -510,8 +493,7 @@ void SwModule::ApplyItemSet( USHORT nId, const SfxItemSet& rSet ) } #endif // dann an der akt. View und Shell die entsp. Elemente setzen - ApplyUsrPref( aViewOpt, pAppView, - bTextDialog? VIEWOPT_DEST_TEXT : VIEWOPT_DEST_WEB); + ApplyUsrPref( aViewOpt, pAppView, bTextDialog? VIEWOPT_DEST_TEXT : VIEWOPT_DEST_WEB); } /* -----------------12.02.99 12:28------------------- * @@ -609,6 +591,15 @@ SfxTabPage* SwModule::CreateTabPage( USHORT nId, Window* pParent, const SfxItemS if ( fnCreatePage ) pRet = (*fnCreatePage)( pParent, rSet ); } + if (pRet && (nId == RID_SW_TP_OPTSHDWCRSR || nId == RID_SW_TP_HTML_OPTSHDWCRSR)) + { + SwView* pCurrView = GetView(); + if(pCurrView) + { + aSet.Put( SwWrtShellItem( SID_WRT_SHELL, pCurrView->GetWrtShellPtr() ) ); + pRet->PageCreated(aSet); + } + } } break; #ifdef DBG_UTIL @@ -653,5 +644,3 @@ SfxTabPage* SwModule::CreateTabPage( USHORT nId, Window* pParent, const SfxItemS return pRet; } - - diff --git a/sw/source/ui/app/docsh.cxx b/sw/source/ui/app/docsh.cxx index a5a8bad22c..a397788b23 100755..100644 --- a/sw/source/ui/app/docsh.cxx +++ b/sw/source/ui/app/docsh.cxx @@ -65,7 +65,7 @@ #include <fmtfld.hxx> #include <node.hxx> #include <swwait.hxx> -#include <swprtopt.hxx> +#include <printdata.hxx> #include <frmatr.hxx> #include <view.hxx> // fuer die aktuelle Sicht #include <edtwin.hxx> @@ -895,7 +895,7 @@ void SwDocShell::Draw( OutputDevice* pDev, const JobSetup& rSetup, pDev->SetLineColor(); pDev->SetBackground(); BOOL bWeb = 0 != PTR_CAST(SwWebDocShell, this); - SwPrtOptions aOpts( aEmptyStr ); + SwPrintData aOpts; ViewShell::PrtOle2( pDoc, SW_MOD()->GetUsrPref(bWeb), aOpts, pDev, aRect ); pDev->Pop(); @@ -1147,6 +1147,23 @@ void SwDocShell::GetState(SfxItemSet& rSet) rSet.Put( SvxFontListItem( pFontList, SID_ATTR_CHAR_FONTLIST ) ); } break; + case SID_MAIL_PREPAREEXPORT: + { + //check if linked content or possibly hidden content is available + //pDoc->UpdateFlds( NULL, false ); + sfx2::LinkManager& rLnkMgr = pDoc->GetLinkManager(); + const ::sfx2::SvBaseLinks& rLnks = rLnkMgr.GetLinks(); + sal_Bool bRet = sal_False; + if( rLnks.Count() ) + bRet = sal_True; + else + { + //sections with hidden flag, hidden character attribute, hidden paragraph/text or conditional text fields + bRet = pDoc->HasInvisibleContent(); + } + rSet.Put( SfxBoolItem( nWhich, bRet ) ); + } + break; default: DBG_ASSERT(!this,"Hier darfst Du nicht hinein!"); diff --git a/sw/source/ui/app/docsh2.cxx b/sw/source/ui/app/docsh2.cxx index b0ae69370f..3f1884987f 100644 --- a/sw/source/ui/app/docsh2.cxx +++ b/sw/source/ui/app/docsh2.cxx @@ -324,7 +324,7 @@ USHORT SwDocShell::PrepareClose( BOOL bUI, BOOL bForBrowsing ) } #endif return nRet; -} +} /*-------------------------------------------------------------------- Beschreibung: Organizer @@ -1209,7 +1209,19 @@ void SwDocShell::Execute(SfxRequest& rReq) } break; - case SID_MAIL_EXPORT_FINISHED: + case SID_MAIL_PREPAREEXPORT: + { + //pWrtShell is not set in page preview + if(pWrtShell) + pWrtShell->StartAllAction(); + pDoc->UpdateFlds( NULL, false ); + pDoc->EmbedAllLinks(); + pDoc->RemoveInvisibleContent(); + if(pWrtShell) + pWrtShell->EndAllAction(); + } + break; + case SID_MAIL_EXPORT_FINISHED: { if(pWrtShell) pWrtShell->StartAllAction(); @@ -1240,7 +1252,7 @@ void SwDocShell::Execute(SfxRequest& rReq) if ( !aFileName.Len() ) { FileDialogHelper aDlgHelper( TemplateDescription::FILESAVE_AUTOEXTENSION_TEMPLATE, 0 ); - //set HelpIds + const sal_Int16 nControlIds[] = { CommonFilePickerElementIds::PUSHBUTTON_OK, CommonFilePickerElementIds::PUSHBUTTON_CANCEL, @@ -1251,17 +1263,33 @@ void SwDocShell::Execute(SfxRequest& rReq) ExtendedFilePickerElementIds::LISTBOX_TEMPLATE, 0 }; - sal_Int32 nHelpIds[8]; - sal_Int32 nStartHelpId = - bCreateHtml ? - HID_SEND_HTML_CTRL_PUSHBUTTON_OK : HID_SEND_MASTER_CTRL_PUSHBUTTON_OK ; - for(int nHelp = 0; nHelp < 7; nHelp++) - nHelpIds[nHelp] = nStartHelpId++; - nHelpIds[7] = 0; - aDlgHelper.SetControlHelpIds( nControlIds, nHelpIds ); -// aDlgHelper.SetDialogHelpId( bCreateHtml ? HID_SEND_HTML_DIALOG : HID_SEND_MASTER_DIALOG ); + const char* aHTMLHelpIds[] = + { + HID_SEND_HTML_CTRL_PUSHBUTTON_OK, + HID_SEND_HTML_CTRL_PUSHBUTTON_CANCEL, + HID_SEND_HTML_CTRL_LISTBOX_FILTER, + HID_SEND_HTML_CTRL_CONTROL_FILEVIEW, + HID_SEND_HTML_CTRL_EDIT_FILEURL, + HID_SEND_HTML_CTRL_CHECKBOX_AUTOEXTENSION, + HID_SEND_HTML_CTRL_LISTBOX_TEMPLATE, + "" + }; + + const char* aMasterHelpIds[] = + { + HID_SEND_MASTER_CTRL_PUSHBUTTON_OK, + HID_SEND_MASTER_CTRL_PUSHBUTTON_CANCEL, + HID_SEND_MASTER_CTRL_LISTBOX_FILTER, + HID_SEND_MASTER_CTRL_CONTROL_FILEVIEW, + HID_SEND_MASTER_CTRL_EDIT_FILEURL, + HID_SEND_MASTER_CTRL_CHECKBOX_AUTOEXTENSION, + HID_SEND_MASTER_CTRL_LISTBOX_TEMPLATE, + "" + }; + const char** pHelpIds = bCreateHtml ? aHTMLHelpIds : aMasterHelpIds; + aDlgHelper.SetControlHelpIds( nControlIds, pHelpIds ); uno::Reference < XFilePicker > xFP = aDlgHelper.GetFilePicker(); const SfxFilter* pFlt; diff --git a/sw/source/ui/app/docshini.cxx b/sw/source/ui/app/docshini.cxx index 4b0e3575a6..f9ee757b23 100644 --- a/sw/source/ui/app/docshini.cxx +++ b/sw/source/ui/app/docshini.cxx @@ -336,6 +336,12 @@ sal_Bool SwDocShell::InitNew( const uno::Reference < embed::XStorage >& xStor ) pColl->SetFmtAttr( aFontHeight ); } } + + // the default for documents created via 'File/New' should be 'on' + // (old documents, where this property was not yet implemented, will get the + // value 'false' in the SwDoc c-tor) + pDoc->set( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT, + SW_MOD()->GetUsrPref( bWeb )->IsAlignMathObjectsToBaseline() ); } /* #106748# If the default frame direction of a document is RTL @@ -823,4 +829,3 @@ void SwDocShell::SubInitNew() IDocumentDeviceAccess* SwDocShell::getIDocumentDeviceAccess() { return pDoc; } const IDocumentSettingAccess* SwDocShell::getIDocumentSettingAccess() const { return pDoc; } IDocumentChartDataProviderAccess* SwDocShell::getIDocumentChartDataProviderAccess() { return pDoc; } - diff --git a/sw/source/ui/app/mn.src b/sw/source/ui/app/mn.src index aeb8fca52d..423ec4777c 100644 --- a/sw/source/ui/app/mn.src +++ b/sw/source/ui/app/mn.src @@ -28,6 +28,7 @@ #include "swmn.hrc" +#include "helpid.h" /*------------------------------------------------------------------------ Beschreibung: Menu Window @@ -37,7 +38,7 @@ MenuItem\ {\ Identifier = FN_INSERT_CAPTION ;\ - HelpID = FN_INSERT_CAPTION ;\ + HelpId = CMD_FN_INSERT_CAPTION ;\ Text [ en-US ] = "~Caption..." ;\ }; @@ -45,31 +46,30 @@ MenuItem\ {\ Identifier = FN_FORMAT_TABLE_DLG ; \ - HelpID = FN_FORMAT_TABLE_DLG ; \ + HelpId = CMD_FN_FORMAT_TABLE_DLG ; \ Text [ en-US ] = "~Table..." ; \ };\ MenuItem\ {\ Identifier = FN_TABLE_MERGE_TABLE ; \ - HelpID = FN_TABLE_MERGE_TABLE ; \ + HelpId = CMD_FN_TABLE_MERGE_TABLE ; \ Text [ en-US ] = "Merge Tables";\ };\ MenuItem\ {\ Identifier = FN_TABLE_SPLIT_TABLE ; \ - HelpID = FN_TABLE_SPLIT_TABLE ; \ + HelpId = CMD_FN_TABLE_SPLIT_TABLE ; \ Text [ en-US ] = "~Split Table" ; \ };\ MenuItem\ {\ Identifier = FN_NUM_FORMAT_TABLE_DLG ; \ - HelpID = FN_NUM_FORMAT_TABLE_DLG ; \ + HelpId = CMD_FN_NUM_FORMAT_TABLE_DLG ; \ Text [ en-US ] = "N~umber Format..." ; \ };\ MenuItem\ {\ Identifier = MN_CELL ; \ - HelpID = MN_CELL ; \ Command = ".uno:CellMenu" ; \ /* ### ACHTUNG: Neuer Text in Resource? Ze~lle : Zelle */\ Text [ en-US ] = "~Cell" ; \ @@ -81,46 +81,46 @@ MenuItem\ {\ Identifier = FN_TABLE_MERGE_CELLS ; \ - HelpID = FN_TABLE_MERGE_CELLS ; \ + HelpId = CMD_FN_TABLE_MERGE_CELLS ; \ Text [ en-US ] = "~Merge" ; \ };\ MenuItem\ {\ Identifier = FN_TABLE_SPLIT_CELLS ; \ - HelpID = FN_TABLE_SPLIT_CELLS ; \ + HelpId = CMD_FN_TABLE_SPLIT_CELLS ; \ Text [ en-US ] = "~Split..." ; \ };\ SEPARATOR ; \ MenuItem\ {\ Identifier = FN_TABLE_VERT_NONE ; \ - HelpID = FN_TABLE_VERT_NONE ; \ + HelpId = CMD_FN_TABLE_VERT_NONE ; \ Text [ en-US ] = "~Top" ; \ };\ MenuItem\ {\ Identifier = FN_TABLE_VERT_CENTER ; \ - HelpID = FN_TABLE_VERT_CENTER ; \ + HelpId = CMD_FN_TABLE_VERT_CENTER ; \ Text [ en-US ] = "C~enter" ; \ };\ MenuItem\ {\ Identifier = FN_TABLE_VERT_BOTTOM ; \ - HelpID = FN_TABLE_VERT_BOTTOM ; \ + HelpId = CMD_FN_TABLE_VERT_BOTTOM ; \ Text [ en-US ] = "~Bottom" ; \ };\ SEPARATOR ; \ MenuItem\ {\ Identifier = FN_TABLE_SET_READ_ONLY_CELLS ; \ - HelpID = FN_TABLE_SET_READ_ONLY_CELLS ; \ + HelpId = CMD_FN_TABLE_SET_READ_ONLY_CELLS ; \ /* ### ACHTUNG: Neuer Text in Resource? ~Schützen : ~Sch³tzen */\ Text [ en-US ] = "~Protect" ; \ };\ MenuItem\ {\ Identifier = FN_TABLE_UNSET_READ_ONLY_CELLS ; \ - HelpID = FN_TABLE_UNSET_READ_ONLY_CELLS ; \ + HelpId = CMD_FN_TABLE_UNSET_READ_ONLY_CELLS ; \ Text [ en-US ] = "~Unprotect" ; \ };\ };\ @@ -143,27 +143,27 @@ MenuItem\ {\ Identifier = FN_TABLE_SET_ROW_HEIGHT ; \ - HelpID = FN_TABLE_SET_ROW_HEIGHT ; \ + HelpId = CMD_FN_TABLE_SET_ROW_HEIGHT ; \ /* ### ACHTUNG: Neuer Text in Resource? ~Höhe... : ~H÷he... */\ Text [ en-US ] = "~Height..." ; \ };\ MenuItem\ {\ Identifier = FN_TABLE_ROW_SPLIT;\ - HelpID = FN_TABLE_ROW_SPLIT ; \ + HelpId = CMD_FN_TABLE_ROW_SPLIT ; \ Text [ en-US ] = "Allow Row to Break A~cross Pages and Columns" ; \ };\ MenuItem\ {\ Identifier = FN_TABLE_OPTIMAL_HEIGHT ; \ - HelpID = FN_TABLE_OPTIMAL_HEIGHT ; \ + HelpId = CMD_FN_TABLE_OPTIMAL_HEIGHT ; \ /* ### ACHTUNG: Neuer Text in Resource? ~Optimale Höhe : ~Optimale H÷he */\ Text [ en-US ] = "~Optimal Height" ; \ };\ MenuItem\ {\ Identifier = FN_TABLE_BALANCE_ROWS ; \ - HelpID = FN_TABLE_BALANCE_ROWS ; \ + HelpId = CMD_FN_TABLE_BALANCE_ROWS ; \ /* ### ACHTUNG: Neuer Text in Resource? Gleichmäßig ~verteilen : Gleichmõ˜ig ~verteilen */\ Text [ en-US ] = "Space ~Equally" ; \ };\ @@ -171,7 +171,7 @@ MenuItem\ {\ Identifier = FN_TABLE_SELECT_ROW ; \ - HelpID = FN_TABLE_SELECT_ROW ; \ + HelpId = CMD_FN_TABLE_SELECT_ROW ; \ /* ### ACHTUNG: Neuer Text in Resource? Ausw~ählen : Auswählen */\ /* ### ACHTUNG: Neuer Text in Resource? Ausw~ählen : Ausw~õhlen */\ Text [ en-US ] = "~Select" ; \ @@ -179,14 +179,14 @@ MenuItem\ {\ Identifier = FN_TABLE_INSERT_ROW_DLG ; \ - HelpID = FN_TABLE_INSERT_ROW_DLG ; \ + HelpId = CMD_FN_TABLE_INSERT_ROW_DLG ; \ /* ### ACHTUNG: Neuer Text in Resource? ~Einfügen... : ~Einf³gen... */\ Text [ en-US ] = "~Insert..." ; \ };\ MenuItem\ {\ Identifier = FN_TABLE_DELETE_ROW ; \ - HelpID = FN_TABLE_DELETE_ROW ; \ + HelpId = CMD_FN_TABLE_DELETE_ROW ; \ /* ### ACHTUNG: Neuer Text in Resource? ~Löschen : ~L÷schen */\ Text [ en-US ] = "~Delete" ; \ };\ @@ -207,19 +207,19 @@ MenuItem\ {\ Identifier = FN_TABLE_SET_COL_WIDTH ; \ - HelpID = FN_TABLE_SET_COL_WIDTH ; \ + HelpId = CMD_FN_TABLE_SET_COL_WIDTH ; \ Text [ en-US ] = "~Width..." ; \ };\ MenuItem\ {\ Identifier = FN_TABLE_ADJUST_CELLS ; \ - HelpID = FN_TABLE_ADJUST_CELLS ; \ + HelpId = CMD_FN_TABLE_ADJUST_CELLS ; \ Text [ en-US ] = "~Optimal Width " ; \ };\ MenuItem\ {\ Identifier = FN_TABLE_BALANCE_CELLS ; \ - HelpID = FN_TABLE_BALANCE_CELLS ; \ + HelpId = CMD_FN_TABLE_BALANCE_CELLS ; \ /* ### ACHTUNG: Neuer Text in Resource? Gleichmäßig ~verteilen : Gleichmõ˜ig ~verteilen */\ Text [ en-US ] = "Space ~Equally" ; \ };\ @@ -227,7 +227,7 @@ MenuItem\ {\ Identifier = FN_TABLE_SELECT_COL ; \ - HelpID = FN_TABLE_SELECT_COL ; \ + HelpId = CMD_FN_TABLE_SELECT_COL ; \ /* ### ACHTUNG: Neuer Text in Resource? Ausw~ählen : Auswählen */\ /* ### ACHTUNG: Neuer Text in Resource? Ausw~ählen : Ausw~õhlen */\ Text [ en-US ] = "~Select" ; \ @@ -235,14 +235,14 @@ MenuItem\ {\ Identifier = FN_TABLE_INSERT_COL_DLG ; \ - HelpID = FN_TABLE_INSERT_COL_DLG ; \ + HelpId = CMD_FN_TABLE_INSERT_COL_DLG ; \ /* ### ACHTUNG: Neuer Text in Resource? ~Einfügen... : ~Einf³gen... */\ Text [ en-US ] = "~Insert..." ; \ };\ MenuItem\ {\ Identifier = FN_TABLE_DELETE_COL ; \ - HelpID = FN_TABLE_DELETE_COL ; \ + HelpId = CMD_FN_TABLE_DELETE_COL ; \ /* ### ACHTUNG: Neuer Text in Resource? ~Löschen : ~L÷schen */\ Text [ en-US ] = "~Delete" ; \ };\ @@ -264,7 +264,7 @@ MenuItem\ {\ Identifier = FN_DRAWTEXT_ATTR_DLG ; \ - HelpID = FN_DRAWTEXT_ATTR_DLG ; \ + HelpId = CMD_FN_DRAWTEXT_ATTR_DLG ; \ Text [ en-US ] = "Te~xt..." ; \ }; @@ -272,7 +272,7 @@ MenuItem\ {\ Identifier = FN_NAME_SHAPE ; \ - HelpID = FN_NAME_SHAPE ; \ + HelpId = CMD_FN_NAME_SHAPE ; \ Text [ en-US ] = "Name..." ; \ }; @@ -281,7 +281,7 @@ MenuItem\ {\ Identifier = FN_TITLE_DESCRIPTION_SHAPE; \ - HelpID = FN_TITLE_DESCRIPTION_SHAPE; \ + HelpId = CMD_FN_TITLE_DESCRIPTION_SHAPE; \ Text [ en-US ] = "Description..." ; \ }; @@ -289,7 +289,7 @@ MenuItem\ {\ Identifier = FN_FORMAT_FRAME_DLG ; \ - HelpID = FN_FORMAT_FRAME_DLG ; \ + HelpId = CMD_FN_FORMAT_FRAME_DLG ; \ Text [ en-US ] = "~Frame..." ; \ }; @@ -344,13 +344,13 @@ MenuItem\ {\ Identifier = FN_FRAME_UP ; \ - HelpID = FN_FRAME_UP ; \ + HelpId = CMD_FN_FRAME_UP ; \ Text [ en-US ] = "Bring ~Forward" ; \ };\ MenuItem\ {\ Identifier = FN_FRAME_DOWN ; \ - HelpID = FN_FRAME_DOWN ; \ + HelpId = CMD_FN_FRAME_DOWN ; \ Text [ en-US ] = "Send Back~ward" ; \ }; @@ -430,45 +430,45 @@ MenuItem\ {\ Identifier = FN_REPLY ;\ - HelpID = FN_DELETE_NOTE ;\ + HelpID = CMD_FN_REPLY ;\ Text [ en-US ] = "Reply" ;\ };\ SEPARATOR ; \ MenuItem\ {\ - Identifier = FN_DELETE_NOTE ;\ - HelpID = FN_DELETE_NOTE ;\ + Identifier = FN_DELETE_COMMENT ;\ + HelpID = CMD_FN_DELETE_COMMENT ;\ Text [ en-US ] = "Delete ~Comment" ;\ };\ MenuItem\ {\ Identifier = FN_DELETE_NOTE_AUTHOR ;\ - HelpID = FN_DELETE_NOTE_AUTHOR ;\ + HelpId = CMD_FN_DELETE_NOTE_AUTHOR ;\ Text [ en-US ] = "Delete ~All Comments by $1" ;\ };\ MenuItem\ {\ Identifier = FN_DELETE_ALL_NOTES ;\ - HelpID = FN_DELETE_ALL_NOTES ;\ + HelpId = CMD_FN_DELETE_ALL_NOTES ;\ Text [ en-US ] = "~Delete All Comments" ;\ };\ /* MenuItem\ {\ Identifier = FN_HIDE_NOTE ;\ - HelpID = FN_HIDE_NOTE ;\ + HelpId = CMD_FN_HIDE_NOTE ;\ Text [ en-US ] = "~Hide comment" ;\ };\ MenuItem\ {\ Identifier = FN_HIDE_NOTE_AUTHOR ;\ - HelpID = FN_HIDE_NOTE_AUTHOR ;\ + HelpId = CMD_FN_HIDE_NOTE_AUTHOR ;\ Text [ en-US ] = "Hide ~author" ;\ };\ MenuItem\ {\ Identifier = FN_HIDE_ALL_NOTES ;\ - HelpID = FN_HIDE_ALL_NOTES ;\ + HelpId = CMD_FN_HIDE_ALL_NOTES ;\ Text [ en-US ] = "Hide all ~comments" ;\ }; */ @@ -513,13 +513,13 @@ Menu MN_TAB_POPUPMENU MenuItem { Identifier = FN_VIEW_TABLEGRID ; - HelpID = FN_VIEW_TABLEGRID ; + HelpId = CMD_FN_VIEW_TABLEGRID ; Text [ en-US ] = "Table Boundaries" ; }; MenuItem { Identifier = FN_SET_MODOPT_TBLNUMFMT ; - HelpID = FN_SET_MODOPT_TBLNUMFMT ; + HelpId = CMD_FN_SET_MODOPT_TBLNUMFMT ; Text [ en-US ] = "~Number Recognition"; }; SEPARATOR ; @@ -531,7 +531,7 @@ Menu MN_TAB_POPUPMENU MenuItem\ {\ Identifier = FN_FRAME_WRAP_CONTOUR ; \ - HelpID = FN_FRAME_WRAP_CONTOUR ; \ + HelpId = CMD_FN_FRAME_WRAP_CONTOUR ; \ Text [ en-US ] = "~Contour" ; \ }; @@ -539,7 +539,7 @@ Menu MN_TAB_POPUPMENU MenuItem\ {\ Identifier = SID_CONTOUR_DLG ; \ - HelpID = SID_CONTOUR_DLG ; \ + HelpId = CMD_SID_CONTOUR_DLG ; \ Text [ en-US ] = "~Edit Contour..." ; \ }; @@ -550,7 +550,6 @@ Menu MN_TAB_POPUPMENU MenuItem\ {\ Identifier = MN_WRAP ; \ - HelpID = MN_WRAP ; \ Command = ".uno:WrapMenu" ; \ Text [ en-US ] = "~Wrap" ; \ SubMenu = Menu\ @@ -561,35 +560,35 @@ Menu MN_TAB_POPUPMENU {\ RadioCheck = TRUE ; \ Identifier = FN_FRAME_NOWRAP ; \ - HelpID = FN_FRAME_NOWRAP ; \ + HelpId = CMD_FN_FRAME_NOWRAP ; \ Text [ en-US ] = "~No Wrap" ; \ };\ MenuItem\ {\ RadioCheck = TRUE ; \ Identifier = FN_FRAME_WRAP ; \ - HelpID = FN_FRAME_WRAP ; \ + HelpId = CMD_FN_FRAME_WRAP ; \ Text [ en-US ] = "~Page Wrap" ; \ };\ MenuItem\ {\ RadioCheck = TRUE ; \ Identifier = FN_FRAME_WRAP_IDEAL ; \ - HelpID = FN_FRAME_WRAP_IDEAL ; \ + HelpId = CMD_FN_FRAME_WRAP_IDEAL ; \ Text [ en-US ] = "~Optimal Page Wrap" ; \ };\ MenuItem\ {\ RadioCheck = TRUE ; \ Identifier = FN_FRAME_WRAPTHRU ; \ - HelpID = FN_FRAME_WRAPTHRU ; \ + HelpId = CMD_FN_FRAME_WRAPTHRU ; \ Text [ en-US ] = "~Wrap Through" ; \ };\ MenuItem\ {\ RadioCheck = TRUE ; \ Identifier = FN_FRAME_WRAPTHRU_TRANSP ; \ - HelpID = FN_FRAME_WRAPTHRU_TRANSP ; \ + HelpId = CMD_FN_FRAME_WRAPTHRU_TRANSP ; \ Text [ en-US ] = "In ~Background" ; \ };\ SEPARATOR ; \ @@ -599,7 +598,7 @@ Menu MN_TAB_POPUPMENU {\ Checkable = TRUE ; \ Identifier = FN_WRAP_ANCHOR_ONLY ; \ - HelpID = FN_WRAP_ANCHOR_ONLY ; \ + HelpId = CMD_FN_WRAP_ANCHOR_ONLY ; \ Text [ en-US ] = "~First Paragraph" ; \ };\ };\ @@ -617,7 +616,6 @@ String MN_DRAW_POPUPMENU MenuItem\ {\ Identifier = MN_WRAP ; \ - HelpID = MN_WRAP ; \ Command = ".uno:WrapMenu" ; \ SubMenu = Menu\ {\ @@ -627,35 +625,35 @@ String MN_DRAW_POPUPMENU {\ RadioCheck = TRUE ; \ Identifier = FN_FRAME_NOWRAP ; \ - HelpID = FN_FRAME_NOWRAP ; \ + HelpId = CMD_FN_FRAME_NOWRAP ; \ Text [ en-US ] = "~No Wrap" ; \ };\ MenuItem\ {\ RadioCheck = TRUE ; \ Identifier = FN_FRAME_WRAP ; \ - HelpID = FN_FRAME_WRAP ; \ + HelpId = CMD_FN_FRAME_WRAP ; \ Text [ en-US ] = "~Page Wrap" ; \ };\ MenuItem\ {\ RadioCheck = TRUE ; \ Identifier = FN_FRAME_WRAP_IDEAL ; \ - HelpID = FN_FRAME_WRAP_IDEAL ; \ + HelpId = CMD_FN_FRAME_WRAP_IDEAL ; \ Text [ en-US ] = "~Optimal Page Wrap" ; \ };\ MenuItem\ {\ RadioCheck = TRUE ; \ Identifier = FN_FRAME_WRAPTHRU ; \ - HelpID = FN_FRAME_WRAPTHRU ; \ + HelpId = CMD_FN_FRAME_WRAPTHRU ; \ Text [ en-US ] = "~Wrap Through" ; \ };\ MenuItem\ {\ RadioCheck = TRUE ; \ Identifier = FN_FRAME_WRAPTHRU_TRANSP ; \ - HelpID = FN_FRAME_WRAPTHRU_TRANSP ; \ + HelpId = CMD_FN_FRAME_WRAPTHRU_TRANSP ; \ Text [ en-US ] = "In ~Background" ; \ };\ SEPARATOR ; \ @@ -664,14 +662,14 @@ String MN_DRAW_POPUPMENU {\ Checkable = TRUE ; \ Identifier = FN_WRAP_ANCHOR_ONLY ; \ - HelpID = FN_WRAP_ANCHOR_ONLY ; \ + HelpId = CMD_FN_WRAP_ANCHOR_ONLY ; \ Text [ en-US ] = "~First Paragraph" ; \ };\ SEPARATOR ; \ MenuItem\ {\ Identifier = FN_DRAW_WRAP_DLG ; \ - HelpID = FN_DRAW_WRAP_DLG ; \ + HelpId = CMD_FN_DRAW_WRAP_DLG ; \ Text [ en-US ] = "~Edit..." ; \ };\ };\ @@ -690,7 +688,7 @@ String MN_DRAW_POPUPMENU {\ RadioCheck = TRUE ; \ Identifier = FN_TOOL_ANKER_FRAME ; \ - HelpID = FN_TOOL_ANKER_FRAME ; \ + HelpId = CMD_FN_TOOL_ANKER_FRAME ; \ Text [ en-US ] = "To ~Frame" ; \ }; @@ -698,7 +696,7 @@ String MN_DRAW_POPUPMENU MenuItem\ {\ Identifier = FN_TOOL_ANKER ; \ - HelpID = FN_TOOL_ANKER ; \ + HelpId = CMD_FN_TOOL_ANKER ; \ Command = ".uno:AnchorMenu" ; \ Text [ en-US ] = "An~chor" ; \ SubMenu = Menu\ @@ -709,28 +707,28 @@ String MN_DRAW_POPUPMENU {\ RadioCheck = TRUE ; \ Identifier = FN_TOOL_ANKER_PAGE ; \ - HelpID = FN_TOOL_ANKER_PAGE ; \ + HelpId = CMD_FN_TOOL_ANKER_PAGE ; \ Text [ en-US ] = "To P~age" ; \ };\ MenuItem\ {\ RadioCheck = TRUE ; \ Identifier = FN_TOOL_ANKER_PARAGRAPH ; \ - HelpID = FN_TOOL_ANKER_PARAGRAPH ; \ + HelpId = CMD_FN_TOOL_ANKER_PARAGRAPH ; \ Text [ en-US ] = "To ~Paragraph" ; \ };\ MenuItem\ {\ RadioCheck = TRUE ; \ Identifier = FN_TOOL_ANKER_AT_CHAR ; \ - HelpID = FN_TOOL_ANKER_AT_CHAR ; \ + HelpId = CMD_FN_TOOL_ANKER_AT_CHAR ; \ Text [ en-US ] = "To ~Character" ; \ };\ MenuItem\ {\ RadioCheck = TRUE ; \ Identifier = FN_TOOL_ANKER_CHAR ; \ - HelpID = FN_TOOL_ANKER_CHAR ; \ + HelpId = CMD_FN_TOOL_ANKER_CHAR ; \ Text [ en-US ] = "As C~haracter" ; \ };\ MN_AT_FRAME\ @@ -820,7 +818,7 @@ Menu MN_DRWTXT_POPUPMENU MenuItem\ {\ Identifier = FN_DELETE_COMMENT ;\ - HelpID = FN_DELETE_COMMENT ;\ + HelpId = CMD_FN_DELETE_COMMENT ;\ Text [ en-US ] = "Delete ~Changes Note" ;\ };\ @@ -905,7 +903,6 @@ String MN_GRF_POPUPMENU MenuItem\ {\ Identifier = MN_FORMAT_FRM_HORZ ; \ - HelpID = MN_FORMAT_FRM_HORZ ; \ Command = ".uno:AlignFrameMenu" ; \ SubMenu = Menu\ {\ @@ -914,38 +911,38 @@ String MN_GRF_POPUPMENU MenuItem\ {\ Identifier = FN_FRAME_ALIGN_HORZ_LEFT ; \ - HelpID = FN_FRAME_ALIGN_HORZ_LEFT ; \ + HelpId = CMD_FN_FRAME_ALIGN_HORZ_LEFT ; \ Text [ en-US ] = "~Left" ; \ };\ MenuItem\ {\ Identifier = FN_FRAME_ALIGN_HORZ_CENTER ; \ - HelpID = FN_FRAME_ALIGN_HORZ_CENTER ; \ + HelpId = CMD_FN_FRAME_ALIGN_HORZ_CENTER ; \ Text [ en-US ] = "~Centered" ; \ };\ MenuItem\ {\ Identifier = FN_FRAME_ALIGN_HORZ_RIGHT ; \ - HelpID = FN_FRAME_ALIGN_HORZ_RIGHT ; \ + HelpId = CMD_FN_FRAME_ALIGN_HORZ_RIGHT ; \ Text [ en-US ] = "~Right" ; \ };\ SEPARATOR ; \ MenuItem\ {\ Identifier = FN_FRAME_ALIGN_VERT_TOP ; \ - HelpID = FN_FRAME_ALIGN_VERT_TOP ; \ + HelpId = CMD_FN_FRAME_ALIGN_VERT_TOP ; \ Text [ en-US ] = "Base at ~Top" ; \ };\ MenuItem\ {\ Identifier = FN_FRAME_ALIGN_VERT_CENTER ; \ - HelpID = FN_FRAME_ALIGN_VERT_CENTER ; \ + HelpId = CMD_FN_FRAME_ALIGN_VERT_CENTER ; \ Text [ en-US ] = "Base in ~Middle" ; \ };\ MenuItem\ {\ Identifier = FN_FRAME_ALIGN_VERT_BOTTOM ; \ - HelpID = FN_FRAME_ALIGN_VERT_BOTTOM ; \ + HelpId = CMD_FN_FRAME_ALIGN_VERT_BOTTOM ; \ Text [ en-US ] = "Base at ~Bottom" ; \ };\ };\ @@ -968,13 +965,13 @@ Menu MN_GRF_POPUPMENU MenuItem { Identifier = FN_FORMAT_GRAFIC_DLG ; - HelpID = FN_FORMAT_GRAFIC_DLG ; + HelpId = CMD_FN_FORMAT_GRAFIC_DLG ; Text [ en-US ] = "~Picture..." ; }; MenuItem { Identifier = FN_SAVE_GRAPHIC; - HelpID = FN_SAVE_GRAPHIC; + HelpId = CMD_FN_SAVE_GRAPHIC; Text [ en-US ] = "Save Graphics..." ; }; MN_FRM_CAPTION_ITEM @@ -1005,7 +1002,7 @@ Menu MN_OLE_POPUPMENU MenuItem { Identifier = FN_FORMAT_FRAME_DLG ; - HelpID = FN_FORMAT_FRAME_DLG ; + HelpId = CMD_FN_FORMAT_FRAME_DLG ; Text [ en-US ] = "Object..." ; }; MN_FRM_CAPTION_ITEM @@ -1047,13 +1044,13 @@ Menu MN_PPREVIEW_POPUPMENU MenuItem { Identifier = FN_PAGEUP ; - HelpID = FN_PAGEUP ; + HelpId = CMD_FN_PAGEUP ; Text [ en-US ] = "Previous Page" ; }; MenuItem { Identifier = FN_PAGEDOWN ; - HelpID = FN_PAGEDOWN ; + HelpId = CMD_FN_PAGEDOWN ; /* ### ACHTUNG: Neuer Text in Resource? Nächste Seite : Nõchste Seite */ Text [ en-US ] = "Next Page" ; }; @@ -1066,14 +1063,14 @@ Menu MN_PPREVIEW_POPUPMENU MenuItem { Identifier = FN_PRINT_PAGEPREVIEW ; - HelpID = FN_PRINT_PAGEPREVIEW ; + HelpId = CMD_FN_PRINT_PAGEPREVIEW ; Text [ en-US ] = "Print" ; }; SEPARATOR ; MenuItem { Identifier = SID_PRINTPREVIEW; - HelpID = SID_PRINTPREVIEW; + HelpId = CMD_SID_PRINTPREVIEW; Text [ en-US ] = "Close Preview" ; }; }; diff --git a/sw/source/ui/chrdlg/ccoll.src b/sw/source/ui/chrdlg/ccoll.src index 0d8baf2b2b..41dcaa9852 100644 --- a/sw/source/ui/chrdlg/ccoll.src +++ b/sw/source/ui/chrdlg/ccoll.src @@ -45,6 +45,7 @@ TabPage TP_CONDCOLL }; CheckBox CB_CONDITION { + HelpID = "sw:CheckBox:TP_CONDCOLL:CB_CONDITION"; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; TabStop = TRUE ; @@ -84,6 +85,7 @@ TabPage TP_CONDCOLL }; ListBox LB_STYLE { + HelpID = "sw:ListBox:TP_CONDCOLL:LB_STYLE"; Pos = MAP_APPFONT ( 188 , 39 ) ; Size = MAP_APPFONT ( 60 , 108 ) ; TabStop = TRUE ; @@ -94,6 +96,7 @@ TabPage TP_CONDCOLL }; ListBox LB_FILTER { + HelpID = "sw:ListBox:TP_CONDCOLL:LB_FILTER"; Pos = MAP_APPFONT ( 188 , 150 ) ; Size = MAP_APPFONT ( 60 , 50 ) ; DropDown = TRUE ; @@ -104,6 +107,7 @@ TabPage TP_CONDCOLL }; PushButton PB_REMOVE { + HelpID = "sw:PushButton:TP_CONDCOLL:PB_REMOVE"; Pos = MAP_APPFONT ( 129 , 165 ) ; Size = MAP_APPFONT ( 50 , 12 ) ; TabStop = TRUE ; @@ -112,6 +116,7 @@ TabPage TP_CONDCOLL }; PushButton PB_ASSIGN { + HelpID = "sw:PushButton:TP_CONDCOLL:PB_ASSIGN"; Pos = MAP_APPFONT ( 185 , 165 ) ; Size = MAP_APPFONT ( 50 , 12 ) ; TabStop = TRUE ; diff --git a/sw/source/ui/chrdlg/chardlg.src b/sw/source/ui/chrdlg/chardlg.src index e6a6a82729..ba39ec72a8 100644 --- a/sw/source/ui/chrdlg/chardlg.src +++ b/sw/source/ui/chrdlg/chardlg.src @@ -120,6 +120,7 @@ TabPage TP_CHAR_URL }; Edit ED_URL { + HelpID = "sw:Edit:TP_CHAR_URL:ED_URL"; Pos = MAP_APPFONT ( 88 , 15 ) ; Size = MAP_APPFONT ( 104 , 12 ) ; Border = TRUE ; @@ -127,6 +128,7 @@ TabPage TP_CHAR_URL }; PushButton PB_URL { + HelpID = "sw:PushButton:TP_CHAR_URL:PB_URL"; Pos = MAP_APPFONT ( 198 , 14 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; TabStop = TRUE ; @@ -140,6 +142,7 @@ TabPage TP_CHAR_URL }; Edit ED_TEXT { + HelpID = "sw:Edit:TP_CHAR_URL:ED_TEXT"; Pos = MAP_APPFONT ( 88 , 31 ) ; Size = MAP_APPFONT ( 104 , 12 ) ; Border = TRUE ; @@ -154,6 +157,7 @@ TabPage TP_CHAR_URL }; Edit ED_NAME { + HelpID = "sw:Edit:TP_CHAR_URL:ED_NAME"; Pos = MAP_APPFONT ( 88 , 47 ) ; Size = MAP_APPFONT ( 104 , 12 ) ; Border = TRUE ; @@ -168,6 +172,7 @@ TabPage TP_CHAR_URL }; ComboBox LB_TARGET { + HelpID = "sw:ComboBox:TP_CHAR_URL:LB_TARGET"; Pos = MAP_APPFONT ( 88 , 63 ) ; Size = MAP_APPFONT ( 104 , 60 ) ; TabStop = TRUE ; @@ -177,6 +182,7 @@ TabPage TP_CHAR_URL }; PushButton PB_EVENT { + HelpID = "sw:PushButton:TP_CHAR_URL:PB_EVENT"; Pos = MAP_APPFONT ( 12 , 79 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; TabStop = TRUE ; @@ -196,6 +202,7 @@ TabPage TP_CHAR_URL }; ListBox LB_VISITED { + HelpID = "sw:ListBox:TP_CHAR_URL:LB_VISITED"; Pos = MAP_APPFONT ( 88 , 113 ) ; Size = MAP_APPFONT ( 104 , 60 ) ; Border = TRUE ; @@ -212,6 +219,7 @@ TabPage TP_CHAR_URL }; ListBox LB_NOT_VISITED { + HelpID = "sw:ListBox:TP_CHAR_URL:LB_NOT_VISITED"; Pos = MAP_APPFONT ( 88 , 129 ) ; Size = MAP_APPFONT ( 104 , 60 ) ; Border = TRUE ; diff --git a/sw/source/ui/chrdlg/drpcps.cxx b/sw/source/ui/chrdlg/drpcps.cxx index d05fe5976e..f69fcc577f 100644 --- a/sw/source/ui/chrdlg/drpcps.cxx +++ b/sw/source/ui/chrdlg/drpcps.cxx @@ -364,10 +364,10 @@ void SwDropCapsPict::DrawPrev( const Point& rPt ) Font aOldFont = mpPrinter->GetFont(); USHORT nScript; - USHORT nIdx = 0; + size_t nIdx = 0; xub_StrLen nStart = 0; xub_StrLen nEnd; - USHORT nCnt = maScriptChg.Count(); + size_t nCnt = maScriptChg.size(); if( nCnt ) { @@ -406,10 +406,10 @@ void SwDropCapsPict::CheckScript( void ) return; maScriptText = maText; - USHORT nCnt = maScriptChg.Count(); + size_t nCnt = maScriptChg.size(); if( nCnt ) { - maScriptChg.Remove( 0, nCnt ); + maScriptChg.clear(); maScriptType.Remove( 0, nCnt ); maTextWidth.Remove( 0, nCnt ); nCnt = 0; @@ -436,7 +436,7 @@ void SwDropCapsPict::CheckScript( void ) do { nChg = (xub_StrLen)xBreak->endOfScript( maText, nChg, nScript ); - maScriptChg.Insert( nChg, nCnt ); + maScriptChg.push_back( nChg ); maScriptType.Insert( nScript, nCnt ); maTextWidth.Insert( ULONG(0), nCnt++ ); @@ -453,10 +453,10 @@ Size SwDropCapsPict::CalcTextSize( void ) InitPrinter(); USHORT nScript; - USHORT nIdx = 0; + size_t nIdx = 0; xub_StrLen nStart = 0; xub_StrLen nEnd; - USHORT nCnt = maScriptChg.Count(); + size_t nCnt = maScriptChg.size(); if( nCnt ) { nEnd = maScriptChg[ nIdx ]; diff --git a/sw/source/ui/chrdlg/drpcps.src b/sw/source/ui/chrdlg/drpcps.src index ae3da330c4..edf373fcd3 100644 --- a/sw/source/ui/chrdlg/drpcps.src +++ b/sw/source/ui/chrdlg/drpcps.src @@ -59,12 +59,14 @@ TabPage TP_DROPCAPS Hide = TRUE ; CheckBox CB_SWITCH { + HelpID = "sw:CheckBox:TP_DROPCAPS:CB_SWITCH"; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 90 , 10 ) ; Text [ en-US ] = "Display drop caps" ; }; CheckBox CB_WORD { + HelpID = "sw:CheckBox:TP_DROPCAPS:CB_WORD"; Pos = MAP_APPFONT ( 12 , 28 ) ; Size = MAP_APPFONT ( 90 , 10 ) ; Text [ en-US ] = "~Whole word" ; @@ -77,6 +79,7 @@ TabPage TP_DROPCAPS }; NumericField FLD_DROPCAPS { + HelpID = "sw:NumericField:TP_DROPCAPS:FLD_DROPCAPS"; Border = TRUE ; First = 1 ; Last = 9 ; @@ -98,6 +101,7 @@ TabPage TP_DROPCAPS }; NumericField FLD_LINES { + HelpID = "sw:NumericField:TP_DROPCAPS:FLD_LINES"; Border = TRUE ; First = 2 ; Last = 9 ; @@ -119,6 +123,7 @@ TabPage TP_DROPCAPS }; MetricField FLD_DISTANCE { + HelpID = "sw:MetricField:TP_DROPCAPS:FLD_DISTANCE"; Border = TRUE ; DecimalDigits = 2 ; First = 0 ; @@ -155,6 +160,7 @@ TabPage TP_DROPCAPS }; Edit EDT_TEXT { + HelpID = "sw:Edit:TP_DROPCAPS:EDT_TEXT"; Border = TRUE ; Left = TRUE ; Pos = MAP_APPFONT ( 143 , 100 ) ; @@ -171,6 +177,7 @@ TabPage TP_DROPCAPS }; ListBox BOX_TEMPLATE { + HelpID = "sw:ListBox:TP_DROPCAPS:BOX_TEMPLATE"; Border = TRUE ; DropDown = TRUE ; Pos = MAP_APPFONT ( 143 , 116 ) ; diff --git a/sw/source/ui/chrdlg/makefile.mk b/sw/source/ui/chrdlg/makefile.mk index 42aad1aedd..6b05d0fbfb 100644 --- a/sw/source/ui/chrdlg/makefile.mk +++ b/sw/source/ui/chrdlg/makefile.mk @@ -30,6 +30,9 @@ PRJ=..$/..$/.. PRJNAME=sw TARGET=chrdlg LIBTARGET=NO + +ENABLE_EXCEPTIONS=TRUE + # --- Settings ----------------------------------------------------- .INCLUDE : $(PRJ)$/inc$/swpre.mk diff --git a/sw/source/ui/chrdlg/numpara.src b/sw/source/ui/chrdlg/numpara.src index 14ed11fa0a..591333766b 100644 --- a/sw/source/ui/chrdlg/numpara.src +++ b/sw/source/ui/chrdlg/numpara.src @@ -51,6 +51,7 @@ TabPage TP_NUMPARA }; ListBox LB_OUTLINE_LEVEL { + HelpID = "sw:ListBox:TP_NUMPARA:LB_OUTLINE_LEVEL"; Pos = MAP_APPFONT ( 130 , 14 ) ; Size = MAP_APPFONT ( 118 , 65 ) ; DropDown = TRUE ; @@ -98,6 +99,7 @@ TabPage TP_NUMPARA }; ListBox LB_NUMBER_STYLE { + HelpID = "sw:ListBox:TP_NUMPARA:LB_NUMBER_STYLE"; Pos = MAP_APPFONT ( 130 , 41 ) ; Size = MAP_APPFONT ( 118 , 65 ) ; DropDown = TRUE ; @@ -109,6 +111,7 @@ TabPage TP_NUMPARA }; TriStateBox CB_NEW_START { + HelpID = "sw:TriStateBox:TP_NUMPARA:CB_NEW_START"; Pos = MAP_APPFONT ( 12 , 58 ) ; Size = MAP_APPFONT ( 160 , 10 ) ; Hide = TRUE ; @@ -117,6 +120,7 @@ TabPage TP_NUMPARA }; TriStateBox CB_NUMBER_NEW_START { + HelpID = "sw:TriStateBox:TP_NUMPARA:CB_NUMBER_NEW_START"; Pos = MAP_APPFONT ( 21 , 73 ) ; Size = MAP_APPFONT ( 103 , 10 ) ; Hide = TRUE ; @@ -125,6 +129,7 @@ TabPage TP_NUMPARA }; NumericField NF_NEW_START { + HelpID = "sw:NumericField:TP_NUMPARA:NF_NEW_START"; Border = TRUE ; Pos = MAP_APPFONT ( 130 , 72 ) ; Size = MAP_APPFONT ( 26 , 12 ) ; @@ -148,6 +153,7 @@ TabPage TP_NUMPARA }; TriStateBox CB_COUNT_PARA { + HelpID = "sw:TriStateBox:TP_NUMPARA:CB_COUNT_PARA"; Pos = MAP_APPFONT ( 12 , 100 ) ; Size = MAP_APPFONT ( 160 , 10 ) ; TabStop = TRUE ; @@ -155,6 +161,7 @@ TabPage TP_NUMPARA }; TriStateBox CB_RESTART_PARACOUNT { + HelpID = "sw:TriStateBox:TP_NUMPARA:CB_RESTART_PARACOUNT"; Pos = MAP_APPFONT ( 12 , 116 ) ; Size = MAP_APPFONT ( 160 , 10 ) ; TabStop = TRUE ; @@ -169,6 +176,7 @@ TabPage TP_NUMPARA }; NumericField NF_RESTART_PARA { + HelpID = "sw:NumericField:TP_NUMPARA:NF_RESTART_PARA"; Border = TRUE ; Pos = MAP_APPFONT ( 130 , 130 ) ; Size = MAP_APPFONT ( 26 , 12 ) ; diff --git a/sw/source/ui/chrdlg/swbreak.src b/sw/source/ui/chrdlg/swbreak.src index c626278748..1ed8491a31 100644 --- a/sw/source/ui/chrdlg/swbreak.src +++ b/sw/source/ui/chrdlg/swbreak.src @@ -32,7 +32,7 @@ // #define DLG_BREAK 256 ModalDialog DLG_BREAK { - HelpID = FN_INSERT_BREAK_DLG ; + HelpID = CMD_FN_INSERT_BREAK_DLG ; OutputSize = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 161 , 114 ) ; @@ -63,6 +63,7 @@ ModalDialog DLG_BREAK }; RadioButton RB_LINE { + HelpID = "sw:RadioButton:DLG_BREAK:RB_LINE"; Pos = MAP_APPFONT ( 12 , 15 ) ; Size = MAP_APPFONT ( 63 , 10 ) ; Text [ en-US ] = "~Line break" ; @@ -71,6 +72,7 @@ ModalDialog DLG_BREAK }; RadioButton RB_PAGE { + HelpID = "sw:RadioButton:DLG_BREAK:RB_PAGE"; Pos = MAP_APPFONT ( 12 , 39 ) ; Size = MAP_APPFONT ( 63 , 10 ) ; Text [ en-US ] = "~Page break" ; @@ -79,6 +81,7 @@ ModalDialog DLG_BREAK }; RadioButton RB_COL { + HelpID = "sw:RadioButton:DLG_BREAK:RB_COL"; Pos = MAP_APPFONT ( 12 , 27 ) ; Size = MAP_APPFONT ( 69 , 10 ) ; Text [ en-US ] = "~Column break" ; @@ -100,6 +103,7 @@ ModalDialog DLG_BREAK }; ListBox LB_COLL { + HelpID = "sw:ListBox:DLG_BREAK:LB_COLL"; Pos = MAP_APPFONT ( 12 , 62 ) ; Size = MAP_APPFONT ( 75 , 50 ) ; TabStop = TRUE ; @@ -112,6 +116,7 @@ ModalDialog DLG_BREAK }; CheckBox CB_PAGENUM { + HelpID = "sw:CheckBox:DLG_BREAK:CB_PAGENUM"; Pos = MAP_APPFONT ( 12 , 79 ) ; Size = MAP_APPFONT ( 84 , 10 ) ; /* ### ACHTUNG: Neuer Text in Resource? Seitennummer ~ändern : Seitennummer ~õndern */ @@ -120,6 +125,7 @@ ModalDialog DLG_BREAK }; NumericField ED_PAGENUM { + HelpID = "sw:NumericField:DLG_BREAK:ED_PAGENUM"; Border = TRUE ; Pos = MAP_APPFONT ( 12 , 94 ) ; Size = MAP_APPFONT ( 31 , 12 ) ; diff --git a/sw/source/ui/chrdlg/swuiccoll.cxx b/sw/source/ui/chrdlg/swuiccoll.cxx index 7fb20bf3f8..f5e8c1e4ef 100644 --- a/sw/source/ui/chrdlg/swuiccoll.cxx +++ b/sw/source/ui/chrdlg/swuiccoll.cxx @@ -109,7 +109,7 @@ SwCondCollPage::SwCondCollPage(Window *pParent, const SfxItemSet &rSet) aStyleLB.SetSelectHdl( LINK(this, SwCondCollPage, SelectHdl)); aFilterLB.SetSelectHdl( LINK(this, SwCondCollPage, SelectHdl)); - aTbLinks.SetWindowBits(WB_HSCROLL|WB_CLIPCHILDREN); + aTbLinks.SetStyle(aTbLinks.GetStyle()|WB_HSCROLL|WB_CLIPCHILDREN); aTbLinks.SetSelectionMode( SINGLE_SELECTION ); aTbLinks.SetTabs( &nTabs[0], MAP_APPFONT ); aTbLinks.Resize(); // OS: Hack fuer richtige Selektion diff --git a/sw/source/ui/config/cfgitems.cxx b/sw/source/ui/config/cfgitems.cxx index 352819a184..6fa2666579 100644 --- a/sw/source/ui/config/cfgitems.cxx +++ b/sw/source/ui/config/cfgitems.cxx @@ -458,4 +458,3 @@ int SwTestItem::operator==( const SfxPoolItem& rAttr ) const #endif - diff --git a/sw/source/ui/config/mailconfigpage.cxx b/sw/source/ui/config/mailconfigpage.cxx index e8752bd08f..c48a8b64fe 100644 --- a/sw/source/ui/config/mailconfigpage.cxx +++ b/sw/source/ui/config/mailconfigpage.cxx @@ -330,7 +330,7 @@ SwTestAccountSettingsDialog::SwTestAccountSettingsDialog(SwMailConfigPage* pPare m_aStatusLB.SetHelpId(HID_MM_TESTACCOUNTSETTINGS_TLB); static long nTabs[] = {2, 0, aSz.Width()/2 }; - m_aStatusLB.SetWindowBits( WB_SORT | WB_HSCROLL | WB_CLIPCHILDREN | WB_TABSTOP ); + m_aStatusLB.SetStyle( m_aStatusLB.GetStyle() | WB_SORT | WB_HSCROLL | WB_CLIPCHILDREN | WB_TABSTOP ); m_aStatusLB.SetSelectionMode( SINGLE_SELECTION ); m_aStatusLB.SetTabs(&nTabs[0], MAP_PIXEL); short nEntryHeight = m_aStatusLB.GetEntryHeight(); diff --git a/sw/source/ui/config/mailconfigpage.src b/sw/source/ui/config/mailconfigpage.src index f76f01ccab..1673f1952e 100644 --- a/sw/source/ui/config/mailconfigpage.src +++ b/sw/source/ui/config/mailconfigpage.src @@ -53,6 +53,7 @@ TabPage TP_MAILCONFIG }; Edit ED_DISPLAYNAME { + HelpID = "sw:Edit:TP_MAILCONFIG:ED_DISPLAYNAME"; Pos = MAP_APPFONT ( 88 , 14 ) ; Size = MAP_APPFONT ( 160 , 12 ) ; Border = TRUE; @@ -65,12 +66,14 @@ TabPage TP_MAILCONFIG }; Edit ED_ADDRESS { + HelpID = "sw:Edit:TP_MAILCONFIG:ED_ADDRESS"; Pos = MAP_APPFONT ( 88 , 29 ) ; Size = MAP_APPFONT ( 160 , 12 ) ; Border = TRUE; }; CheckBox CB_REPLYTO { + HelpID = "sw:CheckBox:TP_MAILCONFIG:CB_REPLYTO"; Pos = MAP_APPFONT ( 12 , 45 ) ; Size = MAP_APPFONT ( 242 , 10 ) ; Text[ en-US ] = "Send replies to ~different e-mail address"; @@ -83,6 +86,7 @@ TabPage TP_MAILCONFIG }; Edit ED_REPLYTO { + HelpID = "sw:Edit:TP_MAILCONFIG:ED_REPLYTO"; Pos = MAP_APPFONT ( 88 , 58 ) ; Size = MAP_APPFONT ( 160 , 12 ) ; Border = TRUE; @@ -101,6 +105,7 @@ TabPage TP_MAILCONFIG }; Edit ED_SERVER { + HelpID = "sw:Edit:TP_MAILCONFIG:ED_SERVER"; Pos = MAP_APPFONT ( 88 , 87 ) ; Size = MAP_APPFONT ( 105 , 12 ) ; Border = TRUE; @@ -114,6 +119,7 @@ TabPage TP_MAILCONFIG }; NumericField NF_PORT { + HelpID = "sw:NumericField:TP_MAILCONFIG:NF_PORT"; Pos = MAP_APPFONT ( 223 , 87 ) ; Size = MAP_APPFONT ( 25 , 12 ) ; Border = TRUE; @@ -127,12 +133,14 @@ TabPage TP_MAILCONFIG }; CheckBox CB_SECURE { + HelpID = "sw:CheckBox:TP_MAILCONFIG:CB_SECURE"; Pos = MAP_APPFONT ( 12 , 104 ) ; Size = MAP_APPFONT ( 242 , 10 ) ; Text[ en-US ] = "~Use secure connection (SSL)"; }; PushButton PB_AUTHENTICATION { + HelpID = "sw:PushButton:TP_MAILCONFIG:PB_AUTHENTICATION"; Pos = MAP_APPFONT ( 88 , 118 ) ; Size = MAP_APPFONT ( 105 , 14 ) ; Text[ en-US ] = "Server Au~thentication"; @@ -144,6 +152,7 @@ TabPage TP_MAILCONFIG }; PushButton PB_TEST { + HelpID = "sw:PushButton:TP_MAILCONFIG:PB_TEST"; Pos = MAP_APPFONT ( 88 , 164 ) ; Size = MAP_APPFONT ( 105 , 14 ) ; Text[ en-US ] = "Test S~ettings..."; @@ -179,6 +188,7 @@ ModalDialog DLG_MM_TESTACCOUNTSETTINGS }; MultiLineEdit ED_ERROR { + HelpID = "sw:MultiLineEdit:DLG_MM_TESTACCOUNTSETTINGS:ED_ERROR"; Pos = MAP_APPFONT ( 6 , 79 ) ; Size = MAP_APPFONT ( 238 , 60 ) ; Border = TRUE; @@ -191,6 +201,7 @@ ModalDialog DLG_MM_TESTACCOUNTSETTINGS }; PushButton PB_STOP { + HelpID = "sw:PushButton:DLG_MM_TESTACCOUNTSETTINGS:PB_STOP"; Pos = MAP_APPFONT ( 85 , 156 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text[ en-US ] = "~Stop"; @@ -268,12 +279,14 @@ ModalDialog DLG_MM_SERVERAUTHENTICATION CheckBox CB_AUTHENTICATION { + HelpID = "sw:CheckBox:DLG_MM_SERVERAUTHENTICATION:CB_AUTHENTICATION"; Pos = MAP_APPFONT ( 6 , 3 ) ; Size = MAP_APPFONT ( 238 , 10 ) ; Text[ en-US ] = "The outgoing mail server (SMTP) requires au~thentication"; }; RadioButton RB_SEP_AUTHENTICATION { + HelpID = "sw:RadioButton:DLG_MM_SERVERAUTHENTICATION:RB_SEP_AUTHENTICATION"; Pos = MAP_APPFONT ( 12 , 17 ) ; Size = MAP_APPFONT ( 232 , 10 ) ; Text[ en-US ] = "The outgoing mail server (SMTP) requires ~separate authentication"; @@ -292,6 +305,7 @@ ModalDialog DLG_MM_SERVERAUTHENTICATION }; Edit ED_USERNAME { + HelpID = "sw:Edit:DLG_MM_SERVERAUTHENTICATION:ED_USERNAME"; Pos = MAP_APPFONT ( 78 , 42 ) ; Size = MAP_APPFONT ( 115 , 12 ) ; Border = TRUE; @@ -304,6 +318,7 @@ ModalDialog DLG_MM_SERVERAUTHENTICATION }; Edit ED_OUTPASSWORD { + HelpID = "sw:Edit:DLG_MM_SERVERAUTHENTICATION:ED_OUTPASSWORD"; Pos = MAP_APPFONT ( 78 , 57 ) ; Size = MAP_APPFONT ( 115 , 12 ) ; Border = TRUE; @@ -311,6 +326,7 @@ ModalDialog DLG_MM_SERVERAUTHENTICATION }; RadioButton RB_SMPTAFTERPOP { + HelpID = "sw:RadioButton:DLG_MM_SERVERAUTHENTICATION:RB_SMPTAFTERPOP"; Pos = MAP_APPFONT ( 12 , 73 ) ; Size = MAP_APPFONT ( 232 , 20 ) ; WordBreak = TRUE; @@ -330,6 +346,7 @@ ModalDialog DLG_MM_SERVERAUTHENTICATION }; Edit ED_SERVER { + HelpID = "sw:Edit:DLG_MM_SERVERAUTHENTICATION:ED_SERVER"; Pos = MAP_APPFONT ( 78 , 108 ) ; Size = MAP_APPFONT ( 115 , 12 ) ; Border = TRUE; @@ -343,6 +360,7 @@ ModalDialog DLG_MM_SERVERAUTHENTICATION }; NumericField NF_PORT { + HelpID = "sw:NumericField:DLG_MM_SERVERAUTHENTICATION:NF_PORT"; Pos = MAP_APPFONT ( 219 , 108 ) ; Size = MAP_APPFONT ( 25 , 12 ) ; Border = TRUE; @@ -362,12 +380,14 @@ ModalDialog DLG_MM_SERVERAUTHENTICATION }; RadioButton RB_POP3 { + HelpID = "sw:RadioButton:DLG_MM_SERVERAUTHENTICATION:RB_POP3"; Pos = MAP_APPFONT ( 78 , 125 ) ; Size = MAP_APPFONT ( 115 , 10 ) ; Text[ en-US ] = "~POP 3"; }; RadioButton RB_IMAP { + HelpID = "sw:RadioButton:DLG_MM_SERVERAUTHENTICATION:RB_IMAP"; Pos = MAP_APPFONT ( 78 , 138 ) ; Size = MAP_APPFONT ( 115 , 10 ) ; Text[ en-US ] = "~IMAP"; @@ -380,6 +400,7 @@ ModalDialog DLG_MM_SERVERAUTHENTICATION }; Edit ED_INUSERNAME { + HelpID = "sw:Edit:DLG_MM_SERVERAUTHENTICATION:ED_INUSERNAME"; Pos = MAP_APPFONT ( 78 , 150 ) ; Size = MAP_APPFONT ( 115 , 12 ) ; Border = TRUE; @@ -392,6 +413,7 @@ ModalDialog DLG_MM_SERVERAUTHENTICATION }; Edit ED_INPASSWORD { + HelpID = "sw:Edit:DLG_MM_SERVERAUTHENTICATION:ED_INPASSWORD"; Pos = MAP_APPFONT ( 78 , 165 ) ; Size = MAP_APPFONT ( 115 , 12 ) ; Border = TRUE; diff --git a/sw/source/ui/config/makefile.mk b/sw/source/ui/config/makefile.mk index 4b8ed01ca9..c093b18ce0 100644 --- a/sw/source/ui/config/makefile.mk +++ b/sw/source/ui/config/makefile.mk @@ -83,5 +83,4 @@ LIB1OBJFILES = \ # --- Targets ------------------------------------------------------- -.INCLUDE : target.mk - +.INCLUDE : target.mk
\ No newline at end of file diff --git a/sw/source/ui/config/optcomp.cxx b/sw/source/ui/config/optcomp.cxx index 53603031e1..0dbd938359 100644 --- a/sw/source/ui/config/optcomp.cxx +++ b/sw/source/ui/config/optcomp.cxx @@ -152,7 +152,7 @@ SwCompatibilityOptPage::SwCompatibilityOptPage( Window* pParent, const SfxItemSe pEntry->SetUserData( (void*)(ULONG)nResId ); } } - m_aOptionsLB.SetWindowBits( m_aOptionsLB.GetStyle() | WB_HSCROLL | WB_HIDESELECTION ); + m_aOptionsLB.SetStyle( m_aOptionsLB.GetStyle() | WB_HSCROLL | WB_HIDESELECTION ); m_aOptionsLB.SetHighlightRange(); FreeResource(); diff --git a/sw/source/ui/config/optcomp.src b/sw/source/ui/config/optcomp.src index 3682b49477..fee89d732d 100644 --- a/sw/source/ui/config/optcomp.src +++ b/sw/source/ui/config/optcomp.src @@ -50,6 +50,7 @@ TabPage TP_OPTCOMPATIBILITY_PAGE }; ListBox LB_FORMATTING { + HelpID = "sw:ListBox:TP_OPTCOMPATIBILITY_PAGE:LB_FORMATTING"; Pos = MAP_APPFONT ( 12 , 25 ) ; Size = MAP_APPFONT ( 118 , 24 ) ; DropDown = TRUE; @@ -70,12 +71,14 @@ TabPage TP_OPTCOMPATIBILITY_PAGE }; PushButton PB_RESET { + HelpID = "sw:PushButton:TP_OPTCOMPATIBILITY_PAGE:PB_RESET"; Pos = MAP_APPFONT ( 125 , 165 ) ; Size = MAP_APPFONT ( 60 , 14 ) ; Text [ en-US ] = "~Reset"; }; PushButton PB_DEFAULT { + HelpID = "sw:PushButton:TP_OPTCOMPATIBILITY_PAGE:PB_DEFAULT"; Pos = MAP_APPFONT ( 188 , 165 ) ; Size = MAP_APPFONT ( 60 , 14 ) ; Text [ en-US ] = "Use as ~Default"; diff --git a/sw/source/ui/config/optdlg.hrc b/sw/source/ui/config/optdlg.hrc index 31f2e7041f..d58d1b6ac4 100644 --- a/sw/source/ui/config/optdlg.hrc +++ b/sw/source/ui/config/optdlg.hrc @@ -30,7 +30,7 @@ #define FL_NOPRINT 2 #define FL_WINDOW 3 -#define CB_GRF 1 +#define CB_GRF 1 #define CB_TBL 2 #define CB_DRWFAST 3 #define CB_FIELD 4 @@ -39,10 +39,10 @@ #define CB_SPACE 7 #define CB_HSPACE 8 #define CB_SHYPH 9 -#define CB_FLD_HIDDEN 10 +#define CB_FLD_HIDDEN 10 #define CB_BREAK 11 #define CB_ANY_RULER 12 -#define CB_CROSS 14 +#define CB_CROSS 14 #define CB_HSCROLL 15 #define CB_VSCROLL 16 #define CB_HRULER 17 @@ -50,7 +50,7 @@ #define FL_LINE 22 #define CB_POSTIT 23 #define CB_VRULER_RIGHT 24 -#define CB_BIGHANDLE 25 +#define CB_BIGHANDLE 25 #define FL_SETTINGS 26 #define LB_METRIC 27 @@ -191,7 +191,7 @@ #define FL_TABLE_SEPARATOR 139 #define CB_PROSPECT_RTL 140 -#define FL_SHDWCRSFLAG 1 +#define FL_SHDWCRSFLAG 1 #define CB_SHDWCRSONOFF 2 #define FL_SHDWCRSMODE 3 #define FT_SHDWCRSFILLMODE 4 @@ -201,5 +201,8 @@ #define RB_SHDWCRSFILLSPACE 8 #define CB_ALLOW_IN_PROT 12 #define FL_CRSR_OPT 13 -#define FL_SEPARATOR_SHDW 14 +#define FL_SEPARATOR_SHDW 14 +#define FL_LAYOUT_OPTIONS 15 +#define CB_MATH_BASELINE_ALIGNMENT 16 + diff --git a/sw/source/ui/config/optdlg.src b/sw/source/ui/config/optdlg.src index a2573ed3c1..bd7133612a 100755..100644 --- a/sw/source/ui/config/optdlg.src +++ b/sw/source/ui/config/optdlg.src @@ -56,18 +56,21 @@ TabPage TP_CONTENT_OPT }; CheckBox CB_CROSS { + HelpID = "sw:CheckBox:TP_CONTENT_OPT:CB_CROSS"; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 118 , 10 ) ; Text [ en-US ] = "Guides ~while moving"; }; CheckBox CB_HANDLE { + HelpID = "sw:CheckBox:TP_CONTENT_OPT:CB_HANDLE"; Pos = MAP_APPFONT ( 12 , 27 ) ; Size = MAP_APPFONT ( 118 , 10 ) ; Text [ en-US ] = "Sim~ple handles"; }; CheckBox CB_BIGHANDLE { + HelpID = "sw:CheckBox:TP_CONTENT_OPT:CB_BIGHANDLE"; Pos = MAP_APPFONT ( 12 , 40 ) ; Size = MAP_APPFONT ( 118 , 10 ) ; Text [ en-US ] = "Large handles"; @@ -81,54 +84,63 @@ TabPage TP_CONTENT_OPT }; CheckBox CB_HSCROLL { + HelpID = "sw:CheckBox:TP_CONTENT_OPT:CB_HSCROLL"; Pos = MAP_APPFONT ( 136 , 14 ) ; Size = MAP_APPFONT ( 108 , 10 ) ; Text [ en-US ] = "H~orizontal scrollbar" ; }; CheckBox CB_VSCROLL { + HelpID = "sw:CheckBox:TP_CONTENT_OPT:CB_VSCROLL"; Pos = MAP_APPFONT ( 136 , 27 ) ; Size = MAP_APPFONT ( 108 , 10 ) ; Text [ en-US ] = "~Vertical scrollbar" ; }; CheckBox CB_ANY_RULER { + HelpID = "sw:CheckBox:TP_CONTENT_OPT:CB_ANY_RULER"; Pos = MAP_APPFONT ( 136 , 40 ) ; Size = MAP_APPFONT ( 65 , 10 ) ; Text [ en-US ] = "R~uler" ; }; CheckBox CB_HRULER { + HelpID = "sw:CheckBox:TP_CONTENT_OPT:CB_HRULER"; Pos = MAP_APPFONT ( 142 , 53 ) ; Size = MAP_APPFONT ( 62 , 10 ) ; Text [ en-US ] = "Hori~zontal ruler" ; }; ListBox LB_HMETRIC { + HelpID = "sw:ListBox:TP_CONTENT_OPT:LB_HMETRIC"; Pos = MAP_APPFONT ( 206 , 51 ) ; Size = MAP_APPFONT ( 45 , 60 ) ; DropDown = TRUE; }; CheckBox CB_VRULER { + HelpID = "sw:CheckBox:TP_CONTENT_OPT:CB_VRULER"; Pos = MAP_APPFONT ( 142 , 66 ) ; Size = MAP_APPFONT ( 62 , 10 ) ; Text [ en-US ] = "Verti~cal ruler" ; }; CheckBox CB_VRULER_RIGHT { + HelpID = "sw:CheckBox:TP_CONTENT_OPT:CB_VRULER_RIGHT"; Pos = MAP_APPFONT ( 148 , 79 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; Text [ en-US ] = "Right-aligned"; }; ListBox LB_VMETRIC { + HelpID = "sw:ListBox:TP_CONTENT_OPT:LB_VMETRIC"; Pos = MAP_APPFONT ( 206 , 64 ) ; Size = MAP_APPFONT ( 45 , 60 ) ; DropDown = TRUE; }; CheckBox CB_SMOOTH_SCROLL { + HelpID = "sw:CheckBox:TP_CONTENT_OPT:CB_SMOOTH_SCROLL"; Pos = MAP_APPFONT ( 136 , 79 ) ; Size = MAP_APPFONT ( 108 , 10 ) ; Text [ en-US ] = "S~mooth scroll" ; @@ -142,6 +154,7 @@ TabPage TP_CONTENT_OPT }; CheckBox CB_GRF { + HelpID = "sw:CheckBox:TP_CONTENT_OPT:CB_GRF"; Pos = MAP_APPFONT ( 12 , 67 ) ; Size = MAP_APPFONT ( 108 , 10 ) ; Text [ en-US ] = "~Graphics and objects" ; @@ -150,24 +163,28 @@ TabPage TP_CONTENT_OPT }; CheckBox CB_TBL { + HelpID = "sw:CheckBox:TP_CONTENT_OPT:CB_TBL"; Pos = MAP_APPFONT ( 12 , 80 ) ; Size = MAP_APPFONT ( 108 , 10 ) ; Text [ en-US ] = "~Tables " ; }; CheckBox CB_DRWFAST { + HelpID = "sw:CheckBox:TP_CONTENT_OPT:CB_DRWFAST"; Pos = MAP_APPFONT ( 12 , 93 ) ; Size = MAP_APPFONT ( 108 , 10 ) ; Text [ en-US ] = "Dra~wings and controls" ; }; CheckBox CB_FIELD { + HelpID = "sw:CheckBox:TP_CONTENT_OPT:CB_FIELD"; Pos = MAP_APPFONT ( 12 , 106 ) ; Size = MAP_APPFONT ( 108 , 10 ) ; Text [ en-US ] = "~Field codes" ; }; CheckBox CB_POSTIT { + HelpID = "sw:CheckBox:TP_CONTENT_OPT:CB_POSTIT"; Pos = MAP_APPFONT ( 12 , 119 ) ; Size = MAP_APPFONT ( 108 , 10 ) ; Text [ en-US ] = "~Comments" ; @@ -188,6 +205,7 @@ TabPage TP_CONTENT_OPT }; ListBox LB_METRIC { + HelpID = "sw:ListBox:TP_CONTENT_OPT:LB_METRIC"; Pos = MAP_APPFONT ( 199, 133 ) ; Size = MAP_APPFONT ( 50 , 50 ) ; Border = TRUE ; @@ -214,6 +232,7 @@ TabPage TP_OPTPRINT_PAGE }; CheckBox CB_PGRF /*functionally merged with CB_PDRAW*/ { + HelpID = "sw:CheckBox:TP_OPTPRINT_PAGE:CB_PGRF"; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "~Pictures and objects" ; @@ -224,6 +243,7 @@ TabPage TP_OPTPRINT_PAGE removed, tables now always get printed CheckBox CB_PTAB { + HelpID = "sw:CheckBox:TP_OPTPRINT_PAGE:CB_PTAB"; Pos = MAP_APPFONT ( 12 , 27 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "~Tables" ; @@ -233,6 +253,7 @@ TabPage TP_OPTPRINT_PAGE functionally merged with CB_PGRF (pictures and graphics) CheckBox CB_PDRAW { + HelpID = "sw:CheckBox:TP_OPTPRINT_PAGE:CB_PDRAW"; Pos = MAP_APPFONT ( 12 , 40 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "Dra~wings" ; @@ -240,30 +261,35 @@ TabPage TP_OPTPRINT_PAGE */ CheckBox CB_CTRLFLD { + HelpID = "sw:CheckBox:TP_OPTPRINT_PAGE:CB_CTRLFLD"; Pos = MAP_APPFONT ( 12 , 27 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "Form control~s" ; }; CheckBox CB_BACKGROUND { + HelpID = "sw:CheckBox:TP_OPTPRINT_PAGE:CB_BACKGROUND"; Pos = MAP_APPFONT ( 12 , 40 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "Page ba~ckground" ; }; CheckBox CB_BLACK_FONT { + HelpID = "sw:CheckBox:TP_OPTPRINT_PAGE:CB_BLACK_FONT"; Pos = MAP_APPFONT ( 12 , 53 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "Print text in blac~k" ; }; CheckBox CB_HIDDEN_TEXT { + HelpID = "sw:CheckBox:TP_OPTPRINT_PAGE:CB_HIDDEN_TEXT"; Pos = MAP_APPFONT ( 12 , 66 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "Hidden te~xt" ; }; CheckBox CB_TEXT_PLACEHOLDER { + HelpID = "sw:CheckBox:TP_OPTPRINT_PAGE:CB_TEXT_PLACEHOLDER"; Pos = MAP_APPFONT ( 12 , 79 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "Text ~placeholder" ; @@ -283,6 +309,7 @@ TabPage TP_OPTPRINT_PAGE }; CheckBox CB_LEFTP { + HelpID = "sw:CheckBox:TP_OPTPRINT_PAGE:CB_LEFTP"; Pos = MAP_APPFONT ( 96 , 14 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "~Left pages" ; @@ -291,6 +318,7 @@ TabPage TP_OPTPRINT_PAGE }; CheckBox CB_RIGHTP { + HelpID = "sw:CheckBox:TP_OPTPRINT_PAGE:CB_RIGHTP"; Pos = MAP_APPFONT ( 96 , 27 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "~Right pages" ; @@ -299,6 +327,7 @@ TabPage TP_OPTPRINT_PAGE removed, noe handled by the new print dialog (i.e. vcl) itself CheckBox CB_REVERSE { + HelpID = "sw:CheckBox:TP_OPTPRINT_PAGE:CB_REVERSE"; Pos = MAP_APPFONT ( 96 , 40 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "Re~versed" ; @@ -306,12 +335,14 @@ TabPage TP_OPTPRINT_PAGE */ CheckBox CB_PROSPECT { + HelpID = "sw:CheckBox:TP_OPTPRINT_PAGE:CB_PROSPECT"; Pos = MAP_APPFONT ( 96 , 40 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "Broch~ure" ; }; CheckBox CB_PROSPECT_RTL { + HelpID = "sw:CheckBox:TP_OPTPRINT_PAGE:CB_PROSPECT_RTL"; Pos = MAP_APPFONT ( 103 , 53 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "Right to Left" ; @@ -319,6 +350,7 @@ TabPage TP_OPTPRINT_PAGE }; RadioButton RB_NO { + HelpID = "sw:RadioButton:TP_OPTPRINT_PAGE:RB_NO"; Pos = MAP_APPFONT ( 180 , 14 ) ; Size = MAP_APPFONT ( 74 , 10 ) ; Text [ en-US ] = "~None" ; @@ -327,18 +359,21 @@ TabPage TP_OPTPRINT_PAGE }; RadioButton RB_ONLY { + HelpID = "sw:RadioButton:TP_OPTPRINT_PAGE:RB_ONLY"; Pos = MAP_APPFONT ( 180 , 27 ) ; Size = MAP_APPFONT ( 74 , 10 ) ; Text [ en-US ] = "Comments ~only" ; }; RadioButton RB_END { + HelpID = "sw:RadioButton:TP_OPTPRINT_PAGE:RB_END"; Pos = MAP_APPFONT ( 180 , 40 ) ; Size = MAP_APPFONT ( 74 , 10 ) ; Text [ en-US ] = "End of docu~ment" ; }; RadioButton RB_PAGEEND { + HelpID = "sw:RadioButton:TP_OPTPRINT_PAGE:RB_PAGEEND"; Pos = MAP_APPFONT ( 180 , 53 ) ; Size = MAP_APPFONT ( 74 , 10 ) ; Text [ en-US ] = "~End of page" ; @@ -365,6 +400,7 @@ TabPage TP_OPTPRINT_PAGE }; CheckBox CB_PRINTEMPTYPAGES { + HelpID = "sw:CheckBox:TP_OPTPRINT_PAGE:CB_PRINTEMPTYPAGES"; Pos = MAP_APPFONT ( 12 , 106 ) ; Size = MAP_APPFONT ( 200 , 10 ) ; TabStop = TRUE ; @@ -373,6 +409,7 @@ TabPage TP_OPTPRINT_PAGE /* CheckBox CB_SINGLEJOBS { + HelpID = "sw:CheckBox:TP_OPTPRINT_PAGE:CB_SINGLEJOBS"; Pos = MAP_APPFONT ( 12 , 119 ) ; Size = MAP_APPFONT ( 200 , 10 ) ; TabStop = TRUE ; @@ -381,6 +418,7 @@ TabPage TP_OPTPRINT_PAGE */ CheckBox CB_PAPERFROMSETUP { + HelpID = "sw:CheckBox:TP_OPTPRINT_PAGE:CB_PAPERFROMSETUP"; Pos = MAP_APPFONT ( 12 , 119 ) ; Size = MAP_APPFONT ( 200 , 10 ) ; TabStop = TRUE ; @@ -395,6 +433,7 @@ TabPage TP_OPTPRINT_PAGE }; ListBox LB_FAX { + HelpID = "sw:ListBox:TP_OPTPRINT_PAGE:LB_FAX"; Border = TRUE ; Pos = MAP_APPFONT ( 70 , 132 ) ; Size = MAP_APPFONT ( 184 , 70 ) ; @@ -437,6 +476,7 @@ TabPage TP_STD_FONT }; MetricBox LB_STANDARD_SIZE { + HelpID = "sw:MetricBox:TP_STD_FONT:LB_STANDARD_SIZE"; Pos = MAP_APPFONT ( 204 , 25 ) ; Size = MAP_APPFONT ( 30 , 60 ) ; Border = TRUE ; @@ -444,6 +484,7 @@ TabPage TP_STD_FONT }; MetricBox LB_TITLE_SIZE { + HelpID = "sw:MetricBox:TP_STD_FONT:LB_TITLE_SIZE"; Pos = MAP_APPFONT ( 204 , 42 ) ; Size = MAP_APPFONT ( 30 , 60 ) ; Border = TRUE ; @@ -451,6 +492,7 @@ TabPage TP_STD_FONT }; MetricBox LB_LIST_SIZE { + HelpID = "sw:MetricBox:TP_STD_FONT:LB_LIST_SIZE"; Pos = MAP_APPFONT ( 204 , 59 ) ; Size = MAP_APPFONT ( 30 , 60 ) ; Border = TRUE ; @@ -458,6 +500,7 @@ TabPage TP_STD_FONT }; MetricBox LB_LABEL_SIZE { + HelpID = "sw:MetricBox:TP_STD_FONT:LB_LABEL_SIZE"; Pos = MAP_APPFONT ( 204 , 76 ) ; Size = MAP_APPFONT ( 30 , 60 ) ; Border = TRUE ; @@ -465,6 +508,7 @@ TabPage TP_STD_FONT }; MetricBox LB_INDEX_SIZE { + HelpID = "sw:MetricBox:TP_STD_FONT:LB_INDEX_SIZE"; Pos = MAP_APPFONT ( 204 , 93 ) ; Size = MAP_APPFONT ( 30 , 60 ) ; Border = TRUE ; @@ -507,6 +551,7 @@ TabPage TP_STD_FONT }; ComboBox LB_STANDARD { + HelpID = "sw:ComboBox:TP_STD_FONT:LB_STANDARD"; Pos = MAP_APPFONT ( 63 , 25 ) ; Size = MAP_APPFONT ( 135 , 73 ) ; TabStop = TRUE ; @@ -515,6 +560,7 @@ TabPage TP_STD_FONT }; ComboBox LB_TITLE { + HelpID = "sw:ComboBox:TP_STD_FONT:LB_TITLE"; Pos = MAP_APPFONT ( 63 , 42 ) ; Size = MAP_APPFONT ( 135, 73 ) ; TabStop = TRUE ; @@ -523,6 +569,7 @@ TabPage TP_STD_FONT }; ComboBox LB_LIST { + HelpID = "sw:ComboBox:TP_STD_FONT:LB_LIST"; Pos = MAP_APPFONT ( 63 , 59 ) ; Size = MAP_APPFONT ( 135 , 73 ) ; TabStop = TRUE ; @@ -531,6 +578,7 @@ TabPage TP_STD_FONT }; ComboBox LB_LABEL { + HelpID = "sw:ComboBox:TP_STD_FONT:LB_LABEL"; Pos = MAP_APPFONT ( 63 , 76 ) ; Size = MAP_APPFONT ( 135 , 73 ) ; TabStop = TRUE ; @@ -539,6 +587,7 @@ TabPage TP_STD_FONT }; ComboBox LB_IDX { + HelpID = "sw:ComboBox:TP_STD_FONT:LB_IDX"; Pos = MAP_APPFONT ( 63 , 94 ) ; Size = MAP_APPFONT ( 135, 73 ) ; TabStop = TRUE ; @@ -547,12 +596,14 @@ TabPage TP_STD_FONT }; CheckBox CB_DOCONLY { + HelpID = "sw:CheckBox:TP_STD_FONT:CB_DOCONLY"; Pos = MAP_APPFONT ( 12 , 111 ) ; Size = MAP_APPFONT ( 147 , 10 ) ; Text [ en-US ] = "C~urrent document only" ; }; PushButton PB_STANDARD { + HelpID = "sw:PushButton:TP_STD_FONT:PB_STANDARD"; Pos = MAP_APPFONT ( 204 , 165 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "~Default" ; @@ -588,6 +639,7 @@ TabPage TP_OPTTABLE_PAGE }; CheckBox CB_HEADER { + HelpID = "sw:CheckBox:TP_OPTTABLE_PAGE:CB_HEADER"; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 107 , 10 ) ; TabStop = TRUE ; @@ -595,6 +647,7 @@ TabPage TP_OPTTABLE_PAGE }; CheckBox CB_REPEAT_HEADER { + HelpID = "sw:CheckBox:TP_OPTTABLE_PAGE:CB_REPEAT_HEADER"; Pos = MAP_APPFONT ( 21 , 27 ) ; Size = MAP_APPFONT ( 99 , 10 ) ; TabStop = TRUE ; @@ -602,6 +655,7 @@ TabPage TP_OPTTABLE_PAGE }; CheckBox CB_DONT_SPLIT { + HelpID = "sw:CheckBox:TP_OPTTABLE_PAGE:CB_DONT_SPLIT"; Pos = MAP_APPFONT ( 12 , 40 ) ; Size = MAP_APPFONT ( 107 , 10 ) ; TabStop = TRUE ; @@ -609,6 +663,7 @@ TabPage TP_OPTTABLE_PAGE }; CheckBox CB_BORDER { + HelpID = "sw:CheckBox:TP_OPTTABLE_PAGE:CB_BORDER"; Pos = MAP_APPFONT ( 12 , 53 ) ; Size = MAP_APPFONT ( 107 , 10 ) ; TabStop = TRUE ; @@ -628,6 +683,7 @@ TabPage TP_OPTTABLE_PAGE }; CheckBox CB_NUMFORMATTING { + HelpID = "sw:CheckBox:TP_OPTTABLE_PAGE:CB_NUMFORMATTING"; Pos = MAP_APPFONT ( 131 , 14 ) ; Size = MAP_APPFONT ( 118 , 10 ) ; TabStop = TRUE ; @@ -635,6 +691,7 @@ TabPage TP_OPTTABLE_PAGE }; CheckBox CB_NUMFMT_FORMATTING { + HelpID = "sw:CheckBox:TP_OPTTABLE_PAGE:CB_NUMFMT_FORMATTING"; Pos = MAP_APPFONT ( 140 , 27 ) ; Size = MAP_APPFONT ( 114 , 10 ) ; TabStop = TRUE ; @@ -642,6 +699,7 @@ TabPage TP_OPTTABLE_PAGE }; CheckBox CB_NUMALIGNMENT { + HelpID = "sw:CheckBox:TP_OPTTABLE_PAGE:CB_NUMALIGNMENT"; Pos = MAP_APPFONT ( 140 , 40 ) ; Size = MAP_APPFONT ( 114 , 10 ) ; TabStop = TRUE ; @@ -667,6 +725,7 @@ TabPage TP_OPTTABLE_PAGE }; MetricField MF_ROWMOVE { + HelpID = "sw:MetricField:TP_OPTTABLE_PAGE:MF_ROWMOVE"; Border = TRUE ; Pos = MAP_APPFONT ( 83 , 91 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -689,6 +748,7 @@ TabPage TP_OPTTABLE_PAGE }; MetricField MF_COLMOVE { + HelpID = "sw:MetricField:TP_OPTTABLE_PAGE:MF_COLMOVE"; Border = TRUE ; Pos = MAP_APPFONT ( 83 , 106 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -717,6 +777,7 @@ TabPage TP_OPTTABLE_PAGE }; MetricField MF_ROWINSERT { + HelpID = "sw:MetricField:TP_OPTTABLE_PAGE:MF_ROWINSERT"; Border = TRUE ; Pos = MAP_APPFONT ( 211 , 91 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -739,6 +800,7 @@ TabPage TP_OPTTABLE_PAGE }; MetricField MF_COLINSERT { + HelpID = "sw:MetricField:TP_OPTTABLE_PAGE:MF_COLINSERT"; Border = TRUE ; Pos = MAP_APPFONT ( 211 , 106 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -761,6 +823,7 @@ TabPage TP_OPTTABLE_PAGE }; RadioButton RB_FIX { + HelpID = "sw:RadioButton:TP_OPTTABLE_PAGE:RB_FIX"; Pos = MAP_APPFONT ( 21 , 133 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "~Fixed" ; @@ -774,6 +837,7 @@ TabPage TP_OPTTABLE_PAGE }; RadioButton RB_FIXPROP { + HelpID = "sw:RadioButton:TP_OPTTABLE_PAGE:RB_FIXPROP"; Pos = MAP_APPFONT ( 21 , 151 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "Fi~xed, proportional" ; @@ -787,6 +851,7 @@ TabPage TP_OPTTABLE_PAGE }; RadioButton RB_VAR { + HelpID = "sw:RadioButton:TP_OPTTABLE_PAGE:RB_VAR"; Pos = MAP_APPFONT ( 21 , 169 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "~Variable" ; @@ -820,6 +885,7 @@ TabPage TP_OPTSHDWCRSR }; CheckBox CB_PARA { + HelpID = "sw:CheckBox:TP_OPTSHDWCRSR:CB_PARA"; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 108 , 10 ) ; Text [ en-US ] = "Pa~ragraph end" ; @@ -828,48 +894,56 @@ TabPage TP_OPTSHDWCRSR }; CheckBox CB_SHYPH { + HelpID = "sw:CheckBox:TP_OPTSHDWCRSR:CB_SHYPH"; Pos = MAP_APPFONT ( 12 , 27 ) ; Size = MAP_APPFONT ( 108 , 10 ) ; Text [ en-US ] = "Custom h~yphens" ; }; CheckBox CB_SPACE { + HelpID = "sw:CheckBox:TP_OPTSHDWCRSR:CB_SPACE"; Pos = MAP_APPFONT ( 12 , 40 ) ; Size = MAP_APPFONT ( 108 , 10 ) ; Text [ en-US ] = "Spac~es" ; }; CheckBox CB_HSPACE { + HelpID = "sw:CheckBox:TP_OPTSHDWCRSR:CB_HSPACE"; Pos = MAP_APPFONT ( 12 , 53 ) ; Size = MAP_APPFONT ( 108 , 10 ) ; Text [ en-US ] = "Non-breaking s~paces" ; }; CheckBox CB_TAB { + HelpID = "sw:CheckBox:TP_OPTSHDWCRSR:CB_TAB"; Pos = MAP_APPFONT ( 12 , 66 ) ; Size = MAP_APPFONT ( 108 , 10 ) ; Text [ en-US ] = "Ta~bs" ; }; CheckBox CB_BREAK { + HelpID = "sw:CheckBox:TP_OPTSHDWCRSR:CB_BREAK"; Pos = MAP_APPFONT ( 12 , 79 ) ; Size = MAP_APPFONT ( 108 , 10 ) ; Text [ en-US ] = "Brea~ks" ; }; CheckBox CB_CHAR_HIDDEN { + HelpID = "sw:CheckBox:TP_OPTSHDWCRSR:CB_CHAR_HIDDEN"; Pos = MAP_APPFONT ( 12 , 92 ) ; Size = MAP_APPFONT ( 108 , 10 ) ; Text [ en-US ] = "Hidden text" ; }; CheckBox CB_FLD_HIDDEN { + HelpID = "sw:CheckBox:TP_OPTSHDWCRSR:CB_FLD_HIDDEN"; Pos = MAP_APPFONT ( 12 , 105 ) ; Size = MAP_APPFONT ( 108 , 10 ) ; Text [ en-US ] = "Fields: Hidden te~xt" ; }; CheckBox CB_FLD_HIDDEN_PARA { + HelpID = "sw:CheckBox:TP_OPTSHDWCRSR:CB_FLD_HIDDEN_PARA"; Pos = MAP_APPFONT ( 12 , 118 ) ; Size = MAP_APPFONT ( 108 , 10 ) ; Text [ en-US ] = "Fields: Hidden p~aragraphs" ; @@ -888,6 +962,7 @@ TabPage TP_OPTSHDWCRSR }; CheckBox CB_SHDWCRSONOFF { + HelpID = "sw:CheckBox:TP_OPTSHDWCRSR:CB_SHDWCRSONOFF"; Pos = MAP_APPFONT ( 136 , 14 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; TabStop = TRUE ; @@ -903,6 +978,7 @@ TabPage TP_OPTSHDWCRSR }; RadioButton RB_SHDWCRSFILLMARGIN { + HelpID = "sw:RadioButton:TP_OPTSHDWCRSR:RB_SHDWCRSFILLMARGIN"; Pos = MAP_APPFONT ( 145 , 39 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; TabStop = TRUE ; @@ -911,18 +987,21 @@ TabPage TP_OPTSHDWCRSR }; RadioButton RB_SHDWCRSFILLINDENT { + HelpID = "sw:RadioButton:TP_OPTSHDWCRSR:RB_SHDWCRSFILLINDENT"; Pos = MAP_APPFONT ( 145 , 52 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; Text [ en-US ] = "~Left paragraph margin" ; }; RadioButton RB_SHDWCRSFILLTAB { + HelpID = "sw:RadioButton:TP_OPTSHDWCRSR:RB_SHDWCRSFILLTAB"; Pos = MAP_APPFONT ( 145 , 66 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; Text [ en-US ] = "~Tabs" ; }; RadioButton RB_SHDWCRSFILLSPACE { + HelpID = "sw:RadioButton:TP_OPTSHDWCRSR:RB_SHDWCRSFILLSPACE"; Pos = MAP_APPFONT ( 145 , 79 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; Text [ en-US ] = "Tabs a~nd spaces" ; @@ -935,12 +1014,25 @@ TabPage TP_OPTSHDWCRSR }; CheckBox CB_ALLOW_IN_PROT { + HelpID = "sw:CheckBox:TP_OPTSHDWCRSR:CB_ALLOW_IN_PROT"; Pos = MAP_APPFONT ( 136 , 107 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; TabStop = TRUE ; Group = TRUE ; Text [ en-US ] = "Enable"; }; + FixedLine FL_LAYOUT_OPTIONS + { + Pos = MAP_APPFONT ( 6 , 133 ) ; + Size = MAP_APPFONT ( 118 , 8 ) ; + Text [ en-US ] = "Layout assistance"; + }; + CheckBox CB_MATH_BASELINE_ALIGNMENT + { + Pos = MAP_APPFONT ( 12 , 144 ) ; + Size = MAP_APPFONT ( 236 , 10 ) ; + Text [ en-US ] = "Math baseline alignment"; + }; }; diff --git a/sw/source/ui/config/optload.src b/sw/source/ui/config/optload.src index 618c0db35b..9fad441773 100644 --- a/sw/source/ui/config/optload.src +++ b/sw/source/ui/config/optload.src @@ -53,6 +53,7 @@ TabPage TP_OPTLOAD_PAGE }; RadioButton RB_ALWAYS { + HelpID = "sw:RadioButton:TP_OPTLOAD_PAGE:RB_ALWAYS"; Pos = MAP_APPFONT ( 18 , 26 ) ; Size = MAP_APPFONT ( 75 , 10 ) ; TabStop = TRUE ; @@ -60,6 +61,7 @@ TabPage TP_OPTLOAD_PAGE }; RadioButton RB_REQUEST { + HelpID = "sw:RadioButton:TP_OPTLOAD_PAGE:RB_REQUEST"; Pos = MAP_APPFONT ( 18 , 39 ) ; Size = MAP_APPFONT ( 75 , 10 ) ; TabStop = TRUE ; @@ -67,6 +69,7 @@ TabPage TP_OPTLOAD_PAGE }; RadioButton RB_NEVER { + HelpID = "sw:RadioButton:TP_OPTLOAD_PAGE:RB_NEVER"; Pos = MAP_APPFONT ( 18 , 52 ) ; Size = MAP_APPFONT ( 75 , 10 ) ; TabStop = TRUE ; @@ -80,12 +83,14 @@ TabPage TP_OPTLOAD_PAGE }; CheckBox CB_AUTO_UPDATE_FIELDS { + HelpID = "sw:CheckBox:TP_OPTLOAD_PAGE:CB_AUTO_UPDATE_FIELDS"; Pos = MAP_APPFONT ( 136 , 26) ; Size = MAP_APPFONT ( 118 , 10 ) ; Text [ en-US ] = "~Fields"; }; CheckBox CB_AUTO_UPDATE_CHARTS { + HelpID = "sw:CheckBox:TP_OPTLOAD_PAGE:CB_AUTO_UPDATE_CHARTS"; Pos = MAP_APPFONT ( 136 , 39) ; Size = MAP_APPFONT ( 109 , 10 ) ; Text [ en-US ] = "~Charts"; @@ -104,6 +109,7 @@ TabPage TP_OPTLOAD_PAGE }; ListBox LB_METRIC { + HelpID = "sw:ListBox:TP_OPTLOAD_PAGE:LB_METRIC"; Pos = MAP_APPFONT ( 130, 77 ) ; Size = MAP_APPFONT ( 50 , 50 ) ; Border = TRUE ; @@ -118,6 +124,7 @@ TabPage TP_OPTLOAD_PAGE }; MetricField MF_TAB { + HelpID = "sw:MetricField:TP_OPTLOAD_PAGE:MF_TAB"; Border = TRUE ; Pos = MAP_APPFONT ( 130 , 93 ) ; Size = MAP_APPFONT ( 50 , 12 ) ; @@ -134,6 +141,7 @@ TabPage TP_OPTLOAD_PAGE }; CheckBox CB_USE_SQUARE_PAGE_MODE { + HelpID = "sw:CheckBox:TP_OPTLOAD_PAGE:CB_USE_SQUARE_PAGE_MODE"; Pos = MAP_APPFONT ( 12 , 111) ; Size = MAP_APPFONT ( 248 , 10 ) ; Text [ en-US ] = "Use square page mode for text grid"; @@ -173,6 +181,7 @@ TabPage TP_OPTCAPTION_PAGE }; ListBox LB_ORDER { + HelpID = "sw:ListBox:TP_OPTCAPTION_PAGE:LB_ORDER"; Border = TRUE ; Pos = MAP_APPFONT ( 6 , 141 ) ; Size = MAP_APPFONT ( 106 , 60 ) ; @@ -222,6 +231,7 @@ TabPage TP_OPTCAPTION_PAGE }; ComboBox BOX_CATEGORY { + HelpID = "sw:ComboBox:TP_OPTCAPTION_PAGE:BOX_CATEGORY"; Pos = MAP_APPFONT ( 189 , 14 ) ; Size = MAP_APPFONT ( 59 , 61 ) ; DropDown = TRUE ; @@ -237,6 +247,7 @@ TabPage TP_OPTCAPTION_PAGE }; ListBox BOX_FORMAT { + HelpID = "sw:ListBox:TP_OPTCAPTION_PAGE:BOX_FORMAT"; Border = TRUE ; Pos = MAP_APPFONT ( 189 , 29 ) ; Size = MAP_APPFONT ( 59 , 61 ) ; @@ -252,6 +263,7 @@ TabPage TP_OPTCAPTION_PAGE }; Edit ED_NUM_SEP { + HelpID = "sw:Edit:TP_OPTCAPTION_PAGE:ED_NUM_SEP"; Pos = MAP_APPFONT ( 189 , 44 ) ; Size = MAP_APPFONT ( 59 , 12 ) ; Border = TRUE ; @@ -268,6 +280,7 @@ TabPage TP_OPTCAPTION_PAGE }; Edit EDT_TEXT { + HelpID = "sw:Edit:TP_OPTCAPTION_PAGE:EDT_TEXT"; Pos = MAP_APPFONT ( 189 , 59 ) ; Size = MAP_APPFONT ( 59 , 12 ) ; Border = TRUE ; @@ -283,6 +296,7 @@ TabPage TP_OPTCAPTION_PAGE }; ListBox BOX_POS { + HelpID = "sw:ListBox:TP_OPTCAPTION_PAGE:BOX_POS"; Pos = MAP_APPFONT ( 189 , 74 ) ; Size = MAP_APPFONT ( 59 , 61 ) ; DropDown = TRUE ; @@ -304,6 +318,7 @@ TabPage TP_OPTCAPTION_PAGE }; ListBox LB_LEVEL { + HelpID = "sw:ListBox:TP_OPTCAPTION_PAGE:LB_LEVEL"; Border = TRUE ; Pos = MAP_APPFONT ( 189 , 100 ) ; Size = MAP_APPFONT ( 59 , 60 ) ; @@ -322,6 +337,7 @@ TabPage TP_OPTCAPTION_PAGE }; Edit ED_SEPARATOR { + HelpID = "sw:Edit:TP_OPTCAPTION_PAGE:ED_SEPARATOR"; Pos = MAP_APPFONT ( 189 , 115 ) ; Size = MAP_APPFONT ( 59 , 12 ) ; Border = TRUE ; @@ -342,6 +358,7 @@ TabPage TP_OPTCAPTION_PAGE }; ListBox LB_CHARSTYLE { + HelpID = "sw:ListBox:TP_OPTCAPTION_PAGE:LB_CHARSTYLE"; Border = TRUE ; Pos = MAP_APPFONT ( 189 , 141 ) ; Size = MAP_APPFONT ( 59 , 60 ) ; @@ -354,6 +371,7 @@ TabPage TP_OPTCAPTION_PAGE }; CheckBox CB_APPLYBORDER { + HelpID = "sw:CheckBox:TP_OPTCAPTION_PAGE:CB_APPLYBORDER"; Pos = MAP_APPFONT ( 125 , 158 ) ; Size = MAP_APPFONT ( 124 , 10 ) ; Text [ en-US ] = "Apply border and shadow" ; diff --git a/sw/source/ui/config/optpage.cxx b/sw/source/ui/config/optpage.cxx index 8d3943834c..126cc68852 100755..100644 --- a/sw/source/ui/config/optpage.cxx +++ b/sw/source/ui/config/optpage.cxx @@ -27,79 +27,62 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" + #ifdef SW_DLLIMPLEMENTATION #undef SW_DLLIMPLEMENTATION #endif - -#include <hintids.hxx> -#ifndef _CMDID_H -#include <cmdid.h> -#endif -#include <vcl/svapp.hxx> #ifndef _SVSTDARR_HXX #define _SVSTDARR_STRINGSDTOR #include <svl/svstdarr.hxx> #endif -#include <svl/cjkoptions.hxx> -#include <svtools/ctrltool.hxx> -#include <svl/eitem.hxx> -#include <svx/htmlmode.hxx> -#include <sfx2/printer.hxx> -#include <sfx2/bindings.hxx> -#include <svx/xtable.hxx> -#include <editeng/fhgtitem.hxx> -#include <editeng/fontitem.hxx> -#include <editeng/langitem.hxx> -#include <svx/dlgutil.hxx> + +#include <optpage.hxx> +#include <doc.hxx> +#include <hintids.hxx> +#include <cmdid.h> #include <fmtcol.hxx> #include <charatr.hxx> #include <swtypes.hxx> -#ifndef _VIEW_HXX #include <view.hxx> -#endif -#ifndef _DOCSH_HXX #include <docsh.hxx> -#endif -#ifndef IDOCUMENTDEVICEACCESS_HXX_INCLUDED #include <IDocumentDeviceAccess.hxx> -#endif #include <swmodule.hxx> #include <wrtsh.hxx> #include <uitool.hxx> -#include <cfgitems.hxx> //Items fuer Sw-Seiten +#include <cfgitems.hxx> #include <poolfmt.hxx> #include <uiitems.hxx> #include <initui.hxx> -#include <optpage.hxx> -#include <swprtopt.hxx> -#ifndef _MODCFG_HXX +#include <printdata.hxx> #include <modcfg.hxx> -#endif -#ifndef _SRCVIEW_HXX #include <srcview.hxx> -#endif #include <crstate.hxx> #include <viewopt.hxx> -#ifndef _GLOBALS_HRC #include <globals.hrc> -#endif -#ifndef _CONFIG_HRC #include <config.hrc> -#endif -#ifndef _REDLOPT_HRC #include <redlopt.hrc> -#endif -#ifndef _OPTDLG_HRC #include <optdlg.hrc> -#endif -#include <svx/strarray.hxx> -#include <svl/slstitm.hxx> -#include <sfx2/request.hxx> #include <swwrtshitem.hxx> +#include <unomid.h> + +#include <editeng/fhgtitem.hxx> +#include <editeng/fontitem.hxx> +#include <editeng/langitem.hxx> +#include <sfx2/request.hxx> +#include <sfx2/printer.hxx> +#include <sfx2/bindings.hxx> +#include <svl/slstitm.hxx> #include <svl/ctloptions.hxx> +#include <svl/eitem.hxx> +#include <svl/cjkoptions.hxx> +#include <svtools/ctrltool.hxx> +#include <svx/htmlmode.hxx> +#include <svx/xtable.hxx> +#include <svx/dlgutil.hxx> +#include <svx/strarray.hxx> +#include <vcl/svapp.hxx> -#include <unomid.h> using namespace ::com::sun::star; @@ -1510,6 +1493,7 @@ IMPL_LINK(SwTableOptionsTabPage, CheckBoxHdl, CheckBox*, EMPTYARG) aRepeatHeaderCB.Enable(aHeaderCB.IsChecked()); return 0; } + void SwTableOptionsTabPage::PageCreated (SfxAllItemSet aSet) { SFX_ITEMSET_ARG (&aSet,pWrtSh,SwWrtShellItem,SID_WRT_SHELL,sal_False); @@ -1547,15 +1531,17 @@ SwShdwCrsrOptionsTabPage::SwShdwCrsrOptionsTabPage( Window* pParent, aFillTabRB( this, SW_RES( RB_SHDWCRSFILLTAB )), aFillSpaceRB( this, SW_RES( RB_SHDWCRSFILLSPACE )), aCrsrOptFL ( this, SW_RES( FL_CRSR_OPT)), - aCrsrInProtCB( this, SW_RES( CB_ALLOW_IN_PROT )) + aCrsrInProtCB( this, SW_RES( CB_ALLOW_IN_PROT )), + m_aLayoutOptionsFL( this, SW_RES( FL_LAYOUT_OPTIONS ) ), + m_aMathBaselineAlignmentCB( this, SW_RES( CB_MATH_BASELINE_ALIGNMENT ) ), + m_pWrtShell( NULL ) { FreeResource(); const SfxPoolItem* pItem = 0; - SwShadowCursorItem aOpt; + SwShadowCursorItem aOpt; if( SFX_ITEM_SET == rSet.GetItemState( FN_PARAM_SHADOWCURSOR, FALSE, &pItem )) aOpt = *(SwShadowCursorItem*)pItem; - aOnOffCB.Check( aOpt.IsOn() ); BYTE eMode = aOpt.GetMode(); @@ -1600,6 +1586,15 @@ SfxTabPage* SwShdwCrsrOptionsTabPage::Create( Window* pParent, const SfxItemSet& return new SwShdwCrsrOptionsTabPage( pParent, rSet ); } + +void SwShdwCrsrOptionsTabPage::PageCreated( SfxAllItemSet aSet ) +{ + SFX_ITEMSET_ARG (&aSet,pWrtSh,SwWrtShellItem,SID_WRT_SHELL,sal_False); + if (pWrtSh) + SetWrtShell(pWrtSh->GetValue()); +} + + BOOL SwShdwCrsrOptionsTabPage::FillItemSet( SfxItemSet& rSet ) { SwShadowCursorItem aOpt; @@ -1625,6 +1620,10 @@ BOOL SwShdwCrsrOptionsTabPage::FillItemSet( SfxItemSet& rSet ) bRet = TRUE; } + m_pWrtShell->GetDoc()->set( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT, + m_aMathBaselineAlignmentCB.IsChecked() ); + bRet |= m_aMathBaselineAlignmentCB.IsChecked() != m_aMathBaselineAlignmentCB.GetSavedValue(); + if( aCrsrInProtCB.IsChecked() != aCrsrInProtCB.GetSavedValue()) { rSet.Put(SfxBoolItem(FN_PARAM_CRSR_IN_PROTECTED, aCrsrInProtCB.IsChecked())); @@ -1658,11 +1657,10 @@ BOOL SwShdwCrsrOptionsTabPage::FillItemSet( SfxItemSet& rSet ) void SwShdwCrsrOptionsTabPage::Reset( const SfxItemSet& rSet ) { const SfxPoolItem* pItem = 0; - SwShadowCursorItem aOpt; + SwShadowCursorItem aOpt; if( SFX_ITEM_SET == rSet.GetItemState( FN_PARAM_SHADOWCURSOR, FALSE, &pItem )) aOpt = *(SwShadowCursorItem*)pItem; - aOnOffCB.Check( aOpt.IsOn() ); BYTE eMode = aOpt.GetMode(); @@ -1671,6 +1669,9 @@ void SwShdwCrsrOptionsTabPage::Reset( const SfxItemSet& rSet ) aFillTabRB.Check( FILL_TAB == eMode ); aFillSpaceRB.Check( FILL_SPACE == eMode ); + m_aMathBaselineAlignmentCB.Check( m_pWrtShell->GetDoc()->get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT ) ); + m_aMathBaselineAlignmentCB.SaveValue(); + if( SFX_ITEM_SET == rSet.GetItemState( FN_PARAM_CRSR_IN_PROTECTED, FALSE, &pItem )) aCrsrInProtCB.Check(((const SfxBoolItem*)pItem)->GetValue()); aCrsrInProtCB.SaveValue(); @@ -2615,4 +2616,3 @@ IMPL_LINK_INLINE_END( SwTestTabPage, AutoClickHdl, CheckBox *, EMPTYARG ) #endif - diff --git a/sw/source/ui/config/prtopt.cxx b/sw/source/ui/config/prtopt.cxx index b6631686df..188db077cf 100644 --- a/sw/source/ui/config/prtopt.cxx +++ b/sw/source/ui/config/prtopt.cxx @@ -28,16 +28,15 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" - #include <unotools/configmgr.hxx> #include <prtopt.hxx> -#include <swprtopt.hxx> #include <tools/debug.hxx> #include <com/sun/star/uno/Any.hxx> #include <com/sun/star/uno/Sequence.hxx> #include <unomid.h> + using namespace utl; using rtl::OUString; using namespace com::sun::star::uno; diff --git a/sw/source/ui/config/redlopt.src b/sw/source/ui/config/redlopt.src index 2d5da19772..35211f60a7 100644 --- a/sw/source/ui/config/redlopt.src +++ b/sw/source/ui/config/redlopt.src @@ -65,6 +65,7 @@ TabPage TP_REDLINE_OPT }; ListBox LB_INS_ATTR { + HelpID = "sw:ListBox:TP_REDLINE_OPT:LB_INS_ATTR"; Pos = MAP_APPFONT ( 90 , 25 ) ; Size = MAP_APPFONT ( 80 , 80 ) ; TabStop = TRUE ; @@ -92,6 +93,7 @@ TabPage TP_REDLINE_OPT }; ListBox LB_INS_COL { + HelpID = "sw:ListBox:TP_REDLINE_OPT:LB_INS_COL"; Pos = MAP_APPFONT ( 90 , 40 ) ; Size = MAP_APPFONT ( 80 , 80 ) ; TabStop = TRUE ; @@ -118,6 +120,7 @@ TabPage TP_REDLINE_OPT }; ListBox LB_DEL_ATTR { + HelpID = "sw:ListBox:TP_REDLINE_OPT:LB_DEL_ATTR"; Pos = MAP_APPFONT ( 90 , 67 ) ; Size = MAP_APPFONT ( 80 , 80 ) ; TabStop = TRUE ; @@ -131,6 +134,7 @@ TabPage TP_REDLINE_OPT }; ListBox LB_DEL_COL { + HelpID = "sw:ListBox:TP_REDLINE_OPT:LB_DEL_COL"; Pos = MAP_APPFONT ( 90 , 82 ) ; Size = MAP_APPFONT ( 80 , 80 ) ; TabStop = TRUE ; @@ -157,6 +161,7 @@ TabPage TP_REDLINE_OPT }; ListBox LB_CHG_ATTR { + HelpID = "sw:ListBox:TP_REDLINE_OPT:LB_CHG_ATTR"; Pos = MAP_APPFONT ( 90 , 111 ) ; Size = MAP_APPFONT ( 80 , 80 ) ; TabStop = TRUE ; @@ -170,6 +175,7 @@ TabPage TP_REDLINE_OPT }; ListBox LB_CHG_COL { + HelpID = "sw:ListBox:TP_REDLINE_OPT:LB_CHG_COL"; Pos = MAP_APPFONT ( 90 , 126 ) ; Size = MAP_APPFONT ( 80 , 80 ) ; TabStop = TRUE ; @@ -196,6 +202,7 @@ TabPage TP_REDLINE_OPT }; ListBox LB_MARKPOS { + HelpID = "sw:ListBox:TP_REDLINE_OPT:LB_MARKPOS"; Pos = MAP_APPFONT ( 90 , 155 ) ; Size = MAP_APPFONT ( 80 , 80 ) ; TabStop = TRUE ; @@ -217,6 +224,7 @@ TabPage TP_REDLINE_OPT }; ListBox LB_LC_COL { + HelpID = "sw:ListBox:TP_REDLINE_OPT:LB_LC_COL"; Pos = MAP_APPFONT ( 90 , 170 ) ; Size = MAP_APPFONT ( 80 , 80 ) ; TabStop = TRUE ; diff --git a/sw/source/ui/config/usrpref.cxx b/sw/source/ui/config/usrpref.cxx index 2571361b6d..46cd317ed1 100644 --- a/sw/source/ui/config/usrpref.cxx +++ b/sw/source/ui/config/usrpref.cxx @@ -245,27 +245,29 @@ Sequence<OUString> SwLayoutViewConfig::GetPropertyNames() { static const char* aPropNames[] = { - "Line/Guide", // 0 - "Line/SimpleControlPoint", // 1 - "Line/LargeControlPoint", // 2 - "Window/HorizontalScroll", // 3 - "Window/VerticalScroll", // 4 - "Window/ShowRulers", // 5 - "Window/HorizontalRuler", // 6 - "Window/VerticalRuler", // 7 - "Window/HorizontalRulerUnit", // 8 - "Window/VerticalRulerUnit", // 9 - "Window/SmoothScroll", //10 - "Zoom/Value", //11 - "Zoom/Type", //12 - "Other/MeasureUnit", //13 - "Other/TabStop", //14 - "Window/IsVerticalRulerRight", //15 - "ViewLayout/Columns", //16 - "ViewLayout/BookMode", //17 - "Other/IsSquaredPageMode" //18 + "Line/Guide", // 0 + "Line/SimpleControlPoint", // 1 + "Line/LargeControlPoint", // 2 + "Window/HorizontalScroll", // 3 + "Window/VerticalScroll", // 4 + "Window/ShowRulers", // 5 + "Window/HorizontalRuler", // 6 + "Window/VerticalRuler", // 7 + "Window/HorizontalRulerUnit", // 8 + "Window/VerticalRulerUnit", // 9 + "Window/SmoothScroll", //10 + "Zoom/Value", //11 + "Zoom/Type", //12 + "Other/IsAlignMathObjectsToBaseline", //13 + "Other/MeasureUnit", //14 + // below properties are not available in WriterWeb + "Other/TabStop", //15 + "Window/IsVerticalRulerRight", //16 + "ViewLayout/Columns", //17 + "ViewLayout/BookMode", //18 + "Other/IsSquaredPageMode" //19 }; - const int nCount = bWeb ? 14 : 19; + const int nCount = bWeb ? 15 : 20; Sequence<OUString> aNames(nCount); OUString* pNames = aNames.getArray(); for(int i = 0; i < nCount; i++) @@ -302,39 +304,38 @@ void SwLayoutViewConfig::Commit() for(int nProp = 0; nProp < aNames.getLength(); nProp++) { - sal_Bool bSet; + Any &rVal = pValues[nProp]; switch(nProp) { - case 0: bSet = rParent.IsCrossHair(); break;// "Line/Guide", - case 1: bSet = rParent.IsSolidMarkHdl(); break;// "Line/SimpleControlPoint", - case 2: bSet = rParent.IsBigMarkHdl(); break;// "Line/LargeControlPoint", - case 3: bSet = rParent.IsViewHScrollBar(); break;// "Window/HorizontalScroll", - case 4: bSet = rParent.IsViewVScrollBar(); break;// "Window/VerticalScroll", - case 5: bSet = rParent.IsViewAnyRuler(); break; // "Window/ShowRulers" + case 0: rVal <<= (sal_Bool) rParent.IsCrossHair(); break; // "Line/Guide", + case 1: rVal <<= (sal_Bool) rParent.IsSolidMarkHdl(); break; // "Line/SimpleControlPoint", + case 2: rVal <<= (sal_Bool) rParent.IsBigMarkHdl(); break; // "Line/LargeControlPoint", + case 3: rVal <<= (sal_Bool) rParent.IsViewHScrollBar(); break; // "Window/HorizontalScroll", + case 4: rVal <<= (sal_Bool) rParent.IsViewVScrollBar(); break; // "Window/VerticalScroll", + case 5: rVal <<= (sal_Bool) rParent.IsViewAnyRuler(); break; // "Window/ShowRulers" // #i14593# use IsView*Ruler(TRUE) instead of IsView*Ruler() // this preserves the single ruler states even if "Window/ShowRulers" is off - case 6: bSet = rParent.IsViewHRuler(TRUE); break;// "Window/HorizontalRuler", - case 7: bSet = rParent.IsViewVRuler(TRUE); break;// "Window/VerticalRuler", + case 6: rVal <<= (sal_Bool) rParent.IsViewHRuler(TRUE); break; // "Window/HorizontalRuler", + case 7: rVal <<= (sal_Bool) rParent.IsViewVRuler(TRUE); break; // "Window/VerticalRuler", case 8: if(rParent.bIsHScrollMetricSet) - pValues[nProp] <<= (sal_Int32)rParent.eHScrollMetric; // "Window/HorizontalRulerUnit" + rVal <<= (sal_Int32)rParent.eHScrollMetric; // "Window/HorizontalRulerUnit" break; case 9: if(rParent.bIsVScrollMetricSet) - pValues[nProp] <<= (sal_Int32)rParent.eVScrollMetric; // "Window/VerticalRulerUnit" + rVal <<= (sal_Int32)rParent.eVScrollMetric; // "Window/VerticalRulerUnit" break; - case 10: bSet = rParent.IsSmoothScroll(); break;// "Window/SmoothScroll", - case 11: pValues[nProp] <<= (sal_Int32)rParent.GetZoom(); break;// "Zoom/Value", - case 12: pValues[nProp] <<= (sal_Int32)rParent.GetZoomType(); break;// "Zoom/Type", - case 13: pValues[nProp] <<= (sal_Int32)rParent.GetMetric(); break;// "Other/MeasureUnit", - case 14: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(rParent.GetDefTab())); break;// "Other/TabStop", - case 15: bSet = rParent.IsVRulerRight(); break;// "Window/IsVerticalRulerRight", - case 16: pValues[nProp] <<= (sal_Int32)rParent.GetViewLayoutColumns(); break;// "ViewLayout/Columns", - case 17: bSet = rParent.IsViewLayoutBookMode(); break;// "ViewLayout/BookMode", - case 18: bSet = rParent.IsSquaredPageMode(); break;// "Other/IsSquaredPageMode", + case 10: rVal <<= (sal_Bool) rParent.IsSmoothScroll(); break; // "Window/SmoothScroll", + case 11: rVal <<= (sal_Int32)rParent.GetZoom(); break; // "Zoom/Value", + case 12: rVal <<= (sal_Int32)rParent.GetZoomType(); break; // "Zoom/Type", + case 13: rVal <<= (sal_Bool) rParent.IsAlignMathObjectsToBaseline(); break; // "Other/IsAlignMathObjectsToBaseline" + case 14: rVal <<= (sal_Int32)rParent.GetMetric(); break; // "Other/MeasureUnit", + case 15: rVal <<= static_cast<sal_Int32>(TWIP_TO_MM100(rParent.GetDefTab())); break;// "Other/TabStop", + case 16: rVal <<= (sal_Bool) rParent.IsVRulerRight(); break; // "Window/IsVerticalRulerRight", + case 17: rVal <<= (sal_Int32)rParent.GetViewLayoutColumns(); break; // "ViewLayout/Columns", + case 18: rVal <<= (sal_Bool) rParent.IsViewLayoutBookMode(); break; // "ViewLayout/BookMode", + case 19: rVal <<= (sal_Bool) rParent.IsSquaredPageMode(); break; // "Other/IsSquaredPageMode", } - if(nProp < 8 || nProp == 10 || nProp == 15 || nProp == 17 || nProp == 18 ) - pValues[nProp].setValue(&bSet, ::getBooleanCppuType()); } PutProperties(aNames, aValues); } @@ -353,7 +354,11 @@ void SwLayoutViewConfig::Load() { if(pValues[nProp].hasValue()) { - sal_Bool bSet = nProp < 8 || nProp == 10 || nProp == 17 || nProp == 18 ? *(sal_Bool*)pValues[nProp].getValue() : sal_False; + sal_Int32 nInt32Val = 0; + sal_Bool bSet = sal_False; + pValues[nProp] >>= nInt32Val; + pValues[nProp] >>= bSet; + switch(nProp) { case 0: rParent.SetCrossHair(bSet); break;// "Line/Guide", @@ -367,58 +372,25 @@ void SwLayoutViewConfig::Load() case 8: { rParent.bIsHScrollMetricSet = sal_True; - sal_Int32 nUnit = 0; - pValues[nProp] >>= nUnit; - rParent.eHScrollMetric = ((FieldUnit)nUnit); // "Window/HorizontalRulerUnit" + rParent.eHScrollMetric = ((FieldUnit)nInt32Val); // "Window/HorizontalRulerUnit" } break; case 9: { rParent.bIsVScrollMetricSet = sal_True; - sal_Int32 nUnit = 0; - pValues[nProp] >>= nUnit; - rParent.eVScrollMetric = ((FieldUnit)nUnit); // "Window/VerticalRulerUnit" + rParent.eVScrollMetric = ((FieldUnit)nInt32Val); // "Window/VerticalRulerUnit" } break; case 10: rParent.SetSmoothScroll(bSet); break;// "Window/SmoothScroll", - case 11: - { - sal_Int32 nVal = 0; - pValues[nProp] >>= nVal; - rParent.SetZoom( static_cast< USHORT >(nVal) ); - } - break;// "Zoom/Value", - case 12: - { - sal_Int32 nVal = 0; - pValues[nProp] >>= nVal; - rParent.SetZoomType( static_cast< SvxZoomType >(nVal) ); - } - break;// "Zoom/Type", - case 13: - { - sal_Int32 nUnit = 0; - pValues[nProp] >>= nUnit; - rParent.SetMetric((FieldUnit)nUnit, TRUE); - } - break;// "Other/MeasureUnit", - case 14: - { - sal_Int32 nTab = 0; - pValues[nProp] >>= nTab; - rParent.SetDefTab(MM100_TO_TWIP(nTab), TRUE); - } - break;// "Other/TabStop", - case 15: rParent.SetVRulerRight(bSet); break;// "Window/IsVerticalRulerRight", - case 16: - { - sal_Int32 nColumns = 0; - pValues[nProp] >>= nColumns; - rParent.SetViewLayoutColumns( static_cast<USHORT>(nColumns) ); - } - break;// "ViewLayout/Columns", - case 17: rParent.SetViewLayoutBookMode(bSet); break;// "ViewLayout/BookMode", - case 18: rParent.SetDefaultPageMode(bSet,TRUE); break;// "Other/IsSquaredPageMode", + case 11: rParent.SetZoom( static_cast< USHORT >(nInt32Val) ); break;// "Zoom/Value", + case 12: rParent.SetZoomType( static_cast< SvxZoomType >(nInt32Val) ); break;// "Zoom/Type", + case 13: rParent.SetAlignMathObjectsToBaseline(bSet); break;// "Other/IsAlignMathObjectsToBaseline" + case 14: rParent.SetMetric((FieldUnit)nInt32Val, TRUE); break;// "Other/MeasureUnit", + case 15: rParent.SetDefTab(MM100_TO_TWIP(nInt32Val), TRUE); break;// "Other/TabStop", + case 16: rParent.SetVRulerRight(bSet); break;// "Window/IsVerticalRulerRight", + case 17: rParent.SetViewLayoutColumns( static_cast<USHORT>(nInt32Val) ); break;// "ViewLayout/Columns", + case 18: rParent.SetViewLayoutBookMode(bSet); break;// "ViewLayout/BookMode", + case 19: rParent.SetDefaultPageMode(bSet,TRUE); break;// "Other/IsSquaredPageMode", } } } diff --git a/sw/source/ui/dbui/addresslistdialog.cxx b/sw/source/ui/dbui/addresslistdialog.cxx index c543cf702c..4ddc467655 100644 --- a/sw/source/ui/dbui/addresslistdialog.cxx +++ b/sw/source/ui/dbui/addresslistdialog.cxx @@ -219,7 +219,7 @@ SwAddressListDialog::SwAddressListDialog(SwMailMergeAddressBlockPage* pParent) : m_aListLB.SetHelpId(HID_MM_ADDRESSLIST_TLB); static long nTabs[] = {2, 0, aSz.Width()/2 }; - m_aListLB.SetWindowBits( WB_SORT | WB_HSCROLL | WB_CLIPCHILDREN | WB_TABSTOP ); + m_aListLB.SetStyle( m_aListLB.GetStyle() | WB_SORT | WB_HSCROLL | WB_CLIPCHILDREN | WB_TABSTOP ); m_aListLB.SetSelectionMode( SINGLE_SELECTION ); m_aListLB.SetTabs(&nTabs[0], MAP_PIXEL); m_aOK.SetClickHdl( LINK( this, SwAddressListDialog, OKHdl_Impl)); diff --git a/sw/source/ui/dbui/addresslistdialog.src b/sw/source/ui/dbui/addresslistdialog.src index 64fcaf7806..a9f933ecda 100644 --- a/sw/source/ui/dbui/addresslistdialog.src +++ b/sw/source/ui/dbui/addresslistdialog.src @@ -61,30 +61,35 @@ ModalDialog DLG_MM_ADDRESSLISTDIALOG }; PushButton PB_LOADLIST { + HelpID = "sw:PushButton:DLG_MM_ADDRESSLISTDIALOG:PB_LOADLIST"; Pos = MAP_APPFONT ( 194 , 43 ) ; Size = MAP_APPFONT ( 60 , 14 ) ; Text [ en-US ] = "~Add..."; }; PushButton PB_CREATELIST { + HelpID = "sw:PushButton:DLG_MM_ADDRESSLISTDIALOG:PB_CREATELIST"; Pos = MAP_APPFONT ( 194 , 60 ) ; Size = MAP_APPFONT ( 60 , 14 ) ; Text [ en-US ] = "~Create..."; }; PushButton PB_FILTER { + HelpID = "sw:PushButton:DLG_MM_ADDRESSLISTDIALOG:PB_FILTER"; Pos = MAP_APPFONT ( 194 , 77 ) ; Size = MAP_APPFONT ( 60 , 14 ) ; Text [ en-US ] = "~Filter..."; }; PushButton PB_EDIT { + HelpID = "sw:PushButton:DLG_MM_ADDRESSLISTDIALOG:PB_EDIT"; Pos = MAP_APPFONT ( 194 , 94 ) ; Size = MAP_APPFONT ( 60 , 14 ) ; Text [ en-US ] = "~Edit..."; }; PushButton PB_TABLE { + HelpID = "sw:PushButton:DLG_MM_ADDRESSLISTDIALOG:PB_TABLE"; Pos = MAP_APPFONT ( 194 , 111 ) ; Size = MAP_APPFONT ( 60 , 14 ) ; Text [ en-US ] = "Change ~Table..."; diff --git a/sw/source/ui/dbui/createaddresslistdialog.src b/sw/source/ui/dbui/createaddresslistdialog.src index c1c0c1c748..dabce5ecc9 100644 --- a/sw/source/ui/dbui/createaddresslistdialog.src +++ b/sw/source/ui/dbui/createaddresslistdialog.src @@ -70,24 +70,28 @@ ModalDialog DLG_MM_CREATEADDRESSLIST }; PushButton PB_NEW { + HelpID = "sw:PushButton:DLG_MM_CREATEADDRESSLIST:PB_NEW"; Pos = MAP_APPFONT ( 262 , 14 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "~New"; }; PushButton PB_DELETE { + HelpID = "sw:PushButton:DLG_MM_CREATEADDRESSLIST:PB_DELETE"; Pos = MAP_APPFONT ( 262 , 32 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "~Delete"; }; PushButton PB_FIND { + HelpID = "sw:PushButton:DLG_MM_CREATEADDRESSLIST:PB_FIND"; Pos = MAP_APPFONT ( 262 , 50 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "~Find..."; }; PushButton PB_CUSTOMIZE { + HelpID = "sw:PushButton:DLG_MM_CREATEADDRESSLIST:PB_CUSTOMIZE"; Pos = MAP_APPFONT ( 262 , 68 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "C~ustomize..."; @@ -100,18 +104,21 @@ ModalDialog DLG_MM_CREATEADDRESSLIST }; PushButton PB_START { + HelpID = "sw:PushButton:DLG_MM_CREATEADDRESSLIST:PB_START"; Pos = MAP_APPFONT ( 100 , 180 ) ; Size = MAP_APPFONT ( 20 , 14 ) ; Text = "|<"; }; PushButton PB_PREV { + HelpID = "sw:PushButton:DLG_MM_CREATEADDRESSLIST:PB_PREV"; Pos = MAP_APPFONT ( 123 , 180 ) ; Size = MAP_APPFONT ( 20 , 14 ) ; Text = "<"; }; NumericField NF_SETNO { + HelpID = "sw:NumericField:DLG_MM_CREATEADDRESSLIST:NF_SETNO"; Pos = MAP_APPFONT ( 146 , 180 ) ; Size = MAP_APPFONT ( 20 , 14 ) ; Border = TRUE; @@ -125,12 +132,14 @@ ModalDialog DLG_MM_CREATEADDRESSLIST }; PushButton PB_NEXT { + HelpID = "sw:PushButton:DLG_MM_CREATEADDRESSLIST:PB_NEXT"; Pos = MAP_APPFONT ( 169 , 180 ) ; Size = MAP_APPFONT ( 20 , 14 ) ; Text = ">"; }; PushButton PB_END { + HelpID = "sw:PushButton:DLG_MM_CREATEADDRESSLIST:PB_END"; Pos = MAP_APPFONT ( 192 , 180 ) ; Size = MAP_APPFONT ( 20 , 14 ) ; Text = ">|"; @@ -185,18 +194,21 @@ ModelessDialog DLG_MM_FIND_ENTRY }; Edit ED_FIND { + HelpID = "sw:Edit:DLG_MM_FIND_ENTRY:ED_FIND"; Pos = MAP_APPFONT ( 6 , 14) ; Size = MAP_APPFONT ( 120 , 12 ) ; Border = TRUE; }; CheckBox CB_FINDONLY { + HelpID = "sw:CheckBox:DLG_MM_FIND_ENTRY:CB_FINDONLY"; Pos = MAP_APPFONT ( 6 , 32 ) ; Size = MAP_APPFONT ( 120 , 10 ) ; Text [ en-US ] = "Find ~only in"; }; ListBox LB_FINDONLY { + HelpID = "sw:ListBox:DLG_MM_FIND_ENTRY:LB_FINDONLY"; Pos = MAP_APPFONT ( 12 , 45 ) ; Size = MAP_APPFONT ( 114 , 50 ) ; Border = TRUE; @@ -204,6 +216,7 @@ ModelessDialog DLG_MM_FIND_ENTRY }; PushButton PB_FIND { + HelpID = "sw:PushButton:DLG_MM_FIND_ENTRY:PB_FIND"; Pos = MAP_APPFONT ( 132 , 3 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; DefButton = TRUE; diff --git a/sw/source/ui/dbui/customizeaddresslistdialog.src b/sw/source/ui/dbui/customizeaddresslistdialog.src index 05892d90ec..b5a6881970 100644 --- a/sw/source/ui/dbui/customizeaddresslistdialog.src +++ b/sw/source/ui/dbui/customizeaddresslistdialog.src @@ -50,30 +50,35 @@ ModalDialog DLG_MM_CUSTOMIZE_ADDRESS_LIST }; ListBox LB_FIELDS { + HelpID = "sw:ListBox:DLG_MM_CUSTOMIZE_ADDRESS_LIST:LB_FIELDS"; Pos = MAP_APPFONT ( 6 , 14 ) ; Size = MAP_APPFONT ( 112 , 120 ) ; Border = TRUE; }; PushButton PB_ADD { + HelpID = "sw:PushButton:DLG_MM_CUSTOMIZE_ADDRESS_LIST:PB_ADD"; Pos = MAP_APPFONT ( 144 , 3 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "~Add..."; }; PushButton PB_DELETE { + HelpID = "sw:PushButton:DLG_MM_CUSTOMIZE_ADDRESS_LIST:PB_DELETE"; Pos = MAP_APPFONT ( 144 , 20 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "~Delete"; }; PushButton PB_RENAME { + HelpID = "sw:PushButton:DLG_MM_CUSTOMIZE_ADDRESS_LIST:PB_RENAME"; Pos = MAP_APPFONT ( 144 , 37 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "~Rename..."; }; ImageButton PB_UP { + HelpID = "sw:ImageButton:DLG_MM_CUSTOMIZE_ADDRESS_LIST:PB_UP"; Pos = MAP_APPFONT ( 124 , 58 ) ; Size = MAP_APPFONT ( 14 , 14 ) ; SYMBOL = IMAGEBUTTON_ARROW_UP; @@ -81,6 +86,7 @@ ModalDialog DLG_MM_CUSTOMIZE_ADDRESS_LIST }; ImageButton PB_DOWN { + HelpID = "sw:ImageButton:DLG_MM_CUSTOMIZE_ADDRESS_LIST:PB_DOWN"; Pos = MAP_APPFONT ( 124 , 75 ) ; Size = MAP_APPFONT ( 14 , 14 ) ; SYMBOL = IMAGEBUTTON_ARROW_DOWN; @@ -129,6 +135,7 @@ ModalDialog DLG_MM_ADD_RENAME_ENTRY }; Edit ED_FIELDNAME { + HelpID = "sw:Edit:DLG_MM_ADD_RENAME_ENTRY:ED_FIELDNAME"; Pos = MAP_APPFONT ( 6 , 14 ) ; Size = MAP_APPFONT ( 120 , 12 ) ; Border = TRUE; diff --git a/sw/source/ui/dbui/dbinsdlg.src b/sw/source/ui/dbui/dbinsdlg.src index d08305dde1..5a3292d1d0 100644 --- a/sw/source/ui/dbui/dbinsdlg.src +++ b/sw/source/ui/dbui/dbinsdlg.src @@ -46,6 +46,7 @@ ModalDialog DLG_AP_INSERT_DB_SEL }; RadioButton RB_AS_TABLE { + HelpID = "sw:RadioButton:DLG_AP_INSERT_DB_SEL:RB_AS_TABLE"; Pos = MAP_APPFONT ( 80 , 6 ) ; Size = MAP_APPFONT ( 60 , 10 ) ; TabStop = TRUE ; @@ -54,6 +55,7 @@ ModalDialog DLG_AP_INSERT_DB_SEL }; RadioButton RB_AS_FIELD { + HelpID = "sw:RadioButton:DLG_AP_INSERT_DB_SEL:RB_AS_FIELD"; Pos = MAP_APPFONT ( 145 , 6 ) ; Size = MAP_APPFONT ( 60 , 10 ) ; TabStop = TRUE ; @@ -61,6 +63,7 @@ ModalDialog DLG_AP_INSERT_DB_SEL }; RadioButton RB_AS_TEXT { + HelpID = "sw:RadioButton:DLG_AP_INSERT_DB_SEL:RB_AS_TEXT"; Pos = MAP_APPFONT ( 210 , 6 ) ; Size = MAP_APPFONT ( 60 , 10 ) ; TabStop = TRUE ; @@ -106,6 +109,7 @@ ModalDialog DLG_AP_INSERT_DB_SEL }; RadioButton RB_DBFMT_FROM_DB { + HelpID = "sw:RadioButton:DLG_AP_INSERT_DB_SEL:RB_DBFMT_FROM_DB"; Pos = MAP_APPFONT ( 15 , 128 ) ; Size = MAP_APPFONT ( 90 , 10 ) ; TabStop = TRUE ; @@ -114,12 +118,14 @@ ModalDialog DLG_AP_INSERT_DB_SEL }; RadioButton RB_DBFMT_FROM_USR { + HelpID = "sw:RadioButton:DLG_AP_INSERT_DB_SEL:RB_DBFMT_FROM_USR"; Pos = MAP_APPFONT ( 15 , 143 ) ; Size = MAP_APPFONT ( 10 , 10 ) ; TabStop = TRUE ; }; ListBox LB_DBFMT_FROM_USR { + HelpID = "sw:ListBox:DLG_AP_INSERT_DB_SEL:LB_DBFMT_FROM_USR"; Border = TRUE ; Pos = MAP_APPFONT ( 30 , 142 ) ; Size = MAP_APPFONT ( 75 , 44 ) ; @@ -130,6 +136,7 @@ ModalDialog DLG_AP_INSERT_DB_SEL /* -------------- Page Text / Fields -------------------------------- */ ListBox LB_TXT_DB_COLUMN { + HelpID = "sw:ListBox:DLG_AP_INSERT_DB_SEL:LB_TXT_DB_COLUMN"; Border = TRUE ; Pos = MAP_APPFONT ( 12 , 41 ) ; Size = MAP_APPFONT ( 93 , 70 ) ; @@ -138,6 +145,7 @@ ModalDialog DLG_AP_INSERT_DB_SEL }; ImageButton IB_DBCOL_TOEDIT { + HelpID = "sw:ImageButton:DLG_AP_INSERT_DB_SEL:IB_DBCOL_TOEDIT"; Pos = MAP_APPFONT ( 111 , 41 ) ; Size = MAP_APPFONT ( 20 , 12 ) ; TabStop = TRUE ; @@ -153,6 +161,7 @@ ModalDialog DLG_AP_INSERT_DB_SEL }; MultiLineEdit ED_DB_TEXT { + HelpID = "sw:MultiLineEdit:DLG_AP_INSERT_DB_SEL:ED_DB_TEXT"; Border = TRUE ; Pos = MAP_APPFONT ( 137 , 41 ) ; Size = MAP_APPFONT ( 142 , 70 ) ; @@ -172,6 +181,7 @@ ModalDialog DLG_AP_INSERT_DB_SEL }; ListBox LB_DB_PARA_COLL { + HelpID = "sw:ListBox:DLG_AP_INSERT_DB_SEL:LB_DB_PARA_COLL"; Border = TRUE ; Pos = MAP_APPFONT ( 182 , 127 ) ; Size = MAP_APPFONT ( 97 , 59 ) ; @@ -183,6 +193,7 @@ ModalDialog DLG_AP_INSERT_DB_SEL /* -------------- Page Table ---------------------------------------- */ ListBox LB_TBL_DB_COLUMN { + HelpID = "sw:ListBox:DLG_AP_INSERT_DB_SEL:LB_TBL_DB_COLUMN"; Border = TRUE ; Pos = MAP_APPFONT ( 12 , 41 ) ; Size = MAP_APPFONT ( 93 , 70 ) ; @@ -190,6 +201,7 @@ ModalDialog DLG_AP_INSERT_DB_SEL }; ImageButton IB_DBCOL_ALL_TO { + HelpID = "sw:ImageButton:DLG_AP_INSERT_DB_SEL:IB_DBCOL_ALL_TO"; Pos = MAP_APPFONT ( 111 , 41 ) ; Size = MAP_APPFONT ( 20 , 12 ) ; TabStop = TRUE ; @@ -204,6 +216,7 @@ ModalDialog DLG_AP_INSERT_DB_SEL }; ImageButton IB_DBCOL_ONE_TO { + HelpID = "sw:ImageButton:DLG_AP_INSERT_DB_SEL:IB_DBCOL_ONE_TO"; Pos = MAP_APPFONT ( 111 , 56 ) ; Size = MAP_APPFONT ( 20 , 12 ) ; TabStop = TRUE ; @@ -218,6 +231,7 @@ ModalDialog DLG_AP_INSERT_DB_SEL }; ImageButton IB_DBCOL_ONE_FROM { + HelpID = "sw:ImageButton:DLG_AP_INSERT_DB_SEL:IB_DBCOL_ONE_FROM"; Pos = MAP_APPFONT ( 111 , 84 ) ; Size = MAP_APPFONT ( 20 , 12 ) ; TabStop = TRUE ; @@ -232,6 +246,7 @@ ModalDialog DLG_AP_INSERT_DB_SEL }; ImageButton IB_DBCOL_ALL_FROM { + HelpID = "sw:ImageButton:DLG_AP_INSERT_DB_SEL:IB_DBCOL_ALL_FROM"; Pos = MAP_APPFONT ( 111 , 99 ) ; Size = MAP_APPFONT ( 20 , 12 ) ; TabStop = TRUE ; @@ -253,6 +268,7 @@ ModalDialog DLG_AP_INSERT_DB_SEL }; ListBox LB_TABLE_COL { + HelpID = "sw:ListBox:DLG_AP_INSERT_DB_SEL:LB_TABLE_COL"; Border = TRUE ; Pos = MAP_APPFONT ( 137 , 41 ) ; Size = MAP_APPFONT ( 75 , 70 ) ; @@ -265,6 +281,7 @@ ModalDialog DLG_AP_INSERT_DB_SEL }; CheckBox CB_TABLE_HEADON { + HelpID = "sw:CheckBox:DLG_AP_INSERT_DB_SEL:CB_TABLE_HEADON"; Pos = MAP_APPFONT ( 111 , 128 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; TabStop = TRUE ; @@ -273,6 +290,7 @@ ModalDialog DLG_AP_INSERT_DB_SEL }; RadioButton RB_HEADL_COLNMS { + HelpID = "sw:RadioButton:DLG_AP_INSERT_DB_SEL:RB_HEADL_COLNMS"; Pos = MAP_APPFONT ( 120 , 142 ) ; Size = MAP_APPFONT ( 90 , 10 ) ; TabStop = TRUE ; @@ -281,6 +299,7 @@ ModalDialog DLG_AP_INSERT_DB_SEL }; RadioButton RB_HEADL_EMPTY { + HelpID = "sw:RadioButton:DLG_AP_INSERT_DB_SEL:RB_HEADL_EMPTY"; Pos = MAP_APPFONT ( 120 , 155 ) ; Size = MAP_APPFONT ( 90 , 10 ) ; TabStop = TRUE ; @@ -288,6 +307,7 @@ ModalDialog DLG_AP_INSERT_DB_SEL }; PushButton PB_TBL_FORMAT { + HelpID = "sw:PushButton:DLG_AP_INSERT_DB_SEL:PB_TBL_FORMAT"; Pos = MAP_APPFONT ( 214 , 128 ) ; Size = MAP_APPFONT ( 65 , 12 ) ; Text [ en-US ] = "Pr~operties..." ; @@ -295,6 +315,7 @@ ModalDialog DLG_AP_INSERT_DB_SEL }; PushButton PB_TBL_AUTOFMT { + HelpID = "sw:PushButton:DLG_AP_INSERT_DB_SEL:PB_TBL_AUTOFMT"; Pos = MAP_APPFONT ( 214 , 144 ) ; Size = MAP_APPFONT ( 65 , 12 ) ; TabStop = TRUE ; diff --git a/sw/source/ui/dbui/dbmgr.cxx b/sw/source/ui/dbui/dbmgr.cxx index d550c3b3af..052b48ba71 100644 --- a/sw/source/ui/dbui/dbmgr.cxx +++ b/sw/source/ui/dbui/dbmgr.cxx @@ -62,10 +62,8 @@ #include <unotools/tempfile.hxx> #include <unotools/pathoptions.hxx> #include <svl/urihelper.hxx> -#ifndef _SVSTDARR_HXX #define _SVSTDARR_STRINGSDTOR #include <svl/svstdarr.hxx> -#endif #include <svl/zforlist.hxx> #include <svl/zformat.hxx> #include <svl/stritem.hxx> @@ -86,7 +84,6 @@ #include <swundo.hxx> #include <flddat.hxx> #include <modcfg.hxx> -#include <swprtopt.hxx> #include <shellio.hxx> #include <dbui.hxx> #include <dbmgr.hxx> @@ -137,6 +134,7 @@ #include <memory> #include <vector> #include <unomid.h> +#include <section.hxx> using namespace ::osl; using namespace ::svx; @@ -845,6 +843,23 @@ void lcl_CopyFollowPageDesc( } } +void lcl_RemoveSectionLinks( SwWrtShell& rWorkShell ) +{ + //reset all links of the sections of synchronized labels + USHORT nSections = rWorkShell.GetSectionFmtCount(); + for( USHORT nSection = 0; nSection < nSections; ++nSection ) + { + SwSectionData aSectionData( *rWorkShell.GetSectionFmt( nSection ).GetSection() ); + if( aSectionData.GetType() == FILE_LINK_SECTION ) + { + aSectionData.SetType( CONTENT_SECTION ); + aSectionData.SetLinkFileName( String() ); + rWorkShell.UpdateSection( nSection, aSectionData ); + } + } + rWorkShell.SetLabelDoc( sal_False ); +} + BOOL SwNewDBMgr::MergeMailFiles(SwWrtShell* pSourceShell, const SwMergeDescriptor& rMergeDescriptor) { @@ -1085,6 +1100,10 @@ BOOL SwNewDBMgr::MergeMailFiles(SwWrtShell* pSourceShell, // copy created file into the target document rWorkShell.ConvertFieldsToText(); rWorkShell.SetNumberingRestart(); + if( bSynchronizedDoc ) + { + lcl_RemoveSectionLinks( rWorkShell ); + } // insert the document into the target document rWorkShell.SttEndDoc(FALSE); @@ -2934,7 +2953,10 @@ sal_Int32 SwNewDBMgr::MergeDocuments( SwMailMergeConfigItem& rMMConfig, rWorkShell.RemoveInvisibleContent(); rWorkShell.ConvertFieldsToText(); rWorkShell.SetNumberingRestart(); - + if( bSynchronizedDoc ) + { + lcl_RemoveSectionLinks( rWorkShell ); + } // insert the document into the target document rWorkShell.SttEndDoc(FALSE); diff --git a/sw/source/ui/dbui/dbtree.cxx b/sw/source/ui/dbui/dbtree.cxx index 4b31760592..ba6c6bd225 100644 --- a/sw/source/ui/dbui/dbtree.cxx +++ b/sw/source/ui/dbui/dbtree.cxx @@ -260,7 +260,7 @@ void SwDBTreeList::InitTreeList() if(!pImpl->HasContext() && pImpl->GetWrtShell()) return; SetSelectionMode(SINGLE_SELECTION); - SetWindowBits(WB_HASLINES|WB_CLIPCHILDREN|WB_SORT|WB_HASBUTTONS|WB_HASBUTTONSATROOT|WB_HSCROLL); + SetStyle(GetStyle()|WB_HASLINES|WB_CLIPCHILDREN|WB_SORT|WB_HASBUTTONS|WB_HASBUTTONSATROOT|WB_HSCROLL); // Font nicht setzen, damit der Font des Controls uebernommen wird! SetSpaceBetweenEntries(0); SetNodeBitmaps( aImageList.GetImage(IMG_COLLAPSE), diff --git a/sw/source/ui/dbui/dbui.src b/sw/source/ui/dbui/dbui.src index 8d073412ab..49ddd67948 100644 --- a/sw/source/ui/dbui/dbui.src +++ b/sw/source/ui/dbui/dbui.src @@ -31,6 +31,7 @@ #include "helpid.h" ModalDialog DLG_DBSELECTION { + HelpID = "sw:ModalDialog:DLG_DBSELECTION"; OutputSize = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 168 , 132 ) ; diff --git a/sw/source/ui/dbui/mailmergechildwindow.cxx b/sw/source/ui/dbui/mailmergechildwindow.cxx index e03b129034..94fd53a80f 100644 --- a/sw/source/ui/dbui/mailmergechildwindow.cxx +++ b/sw/source/ui/dbui/mailmergechildwindow.cxx @@ -418,7 +418,7 @@ SwSendMailDialog::SwSendMailDialog(Window *pParent, SwMailMergeConfigItem& rConf m_aStatusLB.SetHelpId(HID_MM_MAILSTATUS_TLB); static long nTabs[] = {3, 0, nPos1, aSz.Width() }; - m_aStatusLB.SetWindowBits( WB_SORT | WB_HSCROLL | WB_CLIPCHILDREN | WB_TABSTOP ); + m_aStatusLB.SetStyle( m_aStatusLB.GetStyle() | WB_SORT | WB_HSCROLL | WB_CLIPCHILDREN | WB_TABSTOP ); m_aStatusLB.SetSelectionMode( SINGLE_SELECTION ); m_aStatusLB.SetTabs(&nTabs[0], MAP_PIXEL); m_aStatusLB.SetSpaceBetweenEntries(3); diff --git a/sw/source/ui/dbui/mailmergechildwindow.src b/sw/source/ui/dbui/mailmergechildwindow.src index 187f50b584..9e8253c917 100644 --- a/sw/source/ui/dbui/mailmergechildwindow.src +++ b/sw/source/ui/dbui/mailmergechildwindow.src @@ -258,6 +258,7 @@ ModalDialog DLG_MM_SENDWARNING }; MultiLineEdit ED_DETAILS { + HelpID = "sw:MultiLineEdit:DLG_MM_SENDWARNING:ED_DETAILS"; Pos = MAP_APPFONT ( 40 , 50 ) ; Size = MAP_APPFONT ( 194 , 50 ) ; Border = TRUE; diff --git a/sw/source/ui/dbui/mailmergewizard.src b/sw/source/ui/dbui/mailmergewizard.src index ad7d574800..2756f5ff7a 100644 --- a/sw/source/ui/dbui/mailmergewizard.src +++ b/sw/source/ui/dbui/mailmergewizard.src @@ -30,6 +30,7 @@ ModalDialog DLG_MAILMERGEWIZARD { + HelpID = "sw:ModalDialog:DLG_MAILMERGEWIZARD"; OutputSize = TRUE ; SVLook = TRUE ; Text [ en-US ] = "Mail Merge Wizard" ; diff --git a/sw/source/ui/dbui/mmaddressblockpage.cxx b/sw/source/ui/dbui/mmaddressblockpage.cxx index ae6b6b0cb0..8d32644b12 100644 --- a/sw/source/ui/dbui/mmaddressblockpage.cxx +++ b/sw/source/ui/dbui/mmaddressblockpage.cxx @@ -1097,6 +1097,25 @@ SwAssignFieldsControl::SwAssignFieldsControl( uno::Sequence< ::rtl::OUString> aAssignments = rConfigItem.GetColumnAssignment( rConfigItem.GetCurrentDBData() ); Link aMatchHdl = LINK(this, SwAssignFieldsControl, MatchHdl_Impl); Link aFocusHdl = LINK(this, SwAssignFieldsControl, GotFocusHdl_Impl); + + static const char* aHIDs[] = + { + HID_MM_HEADER_0, + HID_MM_HEADER_1, + HID_MM_HEADER_2, + HID_MM_HEADER_3, + HID_MM_HEADER_4, + HID_MM_HEADER_5, + HID_MM_HEADER_6, + HID_MM_HEADER_7, + HID_MM_HEADER_8, + HID_MM_HEADER_9, + HID_MM_HEADER_10, + HID_MM_HEADER_11, + HID_MM_HEADER_12, + HID_MM_HEADER_13 + }; + //fill the controls for(USHORT i = 0; i < rHeaders.Count(); ++i) { @@ -1106,7 +1125,7 @@ SwAssignFieldsControl::SwAssignFieldsControl( sLabel.Insert(rHeader, 1); pNewText->SetText(sLabel); ListBox* pNewLB = new ListBox(&m_aWindow, ResId(LB_FIELDS, *rResId.GetResMgr())); - pNewLB->SetHelpId( HID_MM_HEADER_0 + i ); + pNewLB->SetHelpId( aHIDs[i] ); pNewLB->SelectEntryPos(0); for(sal_Int32 nField = 0; nField < aFields.getLength(); ++nField) pNewLB->InsertEntry(pFields[nField]); @@ -1434,7 +1453,7 @@ DDListBox::DDListBox(SwCustomizeAddressBlockDialog* pParent, const ResId rResId) SvTreeListBox(pParent, rResId), m_pParentDialog(pParent) { - SetWindowBits( /*WB_HASBUTTONS|WB_HASBUTTONSATROOT|*/ + SetStyle( GetStyle() | /*WB_HASBUTTONS|WB_HASBUTTONSATROOT|*/ WB_CLIPCHILDREN ); // SetSpaceBetweenEntries(3); SetSelectionMode( SINGLE_SELECTION ); diff --git a/sw/source/ui/dbui/mmaddressblockpage.src b/sw/source/ui/dbui/mmaddressblockpage.src index 7052b27f25..d06ced7e29 100644 --- a/sw/source/ui/dbui/mmaddressblockpage.src +++ b/sw/source/ui/dbui/mmaddressblockpage.src @@ -63,6 +63,7 @@ TabPage DLG_MM_ADDRESSBLOCK_PAGE }; PushButton PB_ADDRESSLIST { + HelpID = "sw:PushButton:DLG_MM_ADDRESSBLOCK_PAGE:PB_ADDRESSLIST"; Pos = MAP_APPFONT ( 154 , 27 ) ; Size = MAP_APPFONT ( 100 , 14 ) ; Text[ en-US ] = "Select A~ddress List..."; @@ -91,6 +92,7 @@ TabPage DLG_MM_ADDRESSBLOCK_PAGE }; CheckBox CB_ADDRESS { + HelpID = "sw:CheckBox:DLG_MM_ADDRESSBLOCK_PAGE:CB_ADDRESS"; Pos = MAP_APPFONT ( 16 , 66 ) ; Size = MAP_APPFONT ( 242 , 10 ) ; Text[ en-US ] = "~This document shall contain an address block"; @@ -103,6 +105,7 @@ TabPage DLG_MM_ADDRESSBLOCK_PAGE }; PushButton PB_SETTINGS { + HelpID = "sw:PushButton:DLG_MM_ADDRESSBLOCK_PAGE:PB_SETTINGS"; Pos = MAP_APPFONT ( 194 , 110 ) ; Size = MAP_APPFONT ( 60 , 14 ) ; Group = FALSE; @@ -110,6 +113,7 @@ TabPage DLG_MM_ADDRESSBLOCK_PAGE }; CheckBox CB_HIDE_EMPTY_PARA { + HelpID = "sw:CheckBox:DLG_MM_ADDRESSBLOCK_PAGE:CB_HIDE_EMPTY_PARA"; Pos = MAP_APPFONT ( 24 , 127 ) ; Size = MAP_APPFONT ( 230 , 10 ) ; Text[ en-US ] = "~Suppress lines with just empty fields"; @@ -134,6 +138,7 @@ TabPage DLG_MM_ADDRESSBLOCK_PAGE }; PushButton PB_ASSIGN { + HelpID = "sw:PushButton:DLG_MM_ADDRESSBLOCK_PAGE:PB_ASSIGN"; Pos = MAP_APPFONT ( 194 , 151 ) ; Size = MAP_APPFONT ( 60 , 14 ) ; Text[ en-US ] = "Match ~Fields..."; @@ -169,6 +174,7 @@ TabPage DLG_MM_ADDRESSBLOCK_PAGE }; ImageButton IB_PREVSET { + HelpID = "sw:ImageButton:DLG_MM_ADDRESSBLOCK_PAGE:IB_PREVSET"; Pos = MAP_APPFONT ( 167 , 238 ) ; Size = MAP_APPFONT ( 10 , 10 ) ; SYMBOL = IMAGEBUTTON_PREV; @@ -176,6 +182,7 @@ TabPage DLG_MM_ADDRESSBLOCK_PAGE }; ImageButton IB_NEXTSET { + HelpID = "sw:ImageButton:DLG_MM_ADDRESSBLOCK_PAGE:IB_NEXTSET"; Pos = MAP_APPFONT ( 178 , 238 ) ; Size = MAP_APPFONT ( 10 , 10 ) ; SYMBOL = IMAGEBUTTON_NEXT ; @@ -215,18 +222,21 @@ ModalDialog DLG_MM_SELECTADDRESSBLOCK }; PushButton PB_NEW { + HelpID = "sw:PushButton:DLG_MM_SELECTADDRESSBLOCK:PB_NEW"; Pos = MAP_APPFONT ( 204 , 14 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text[ en-US ] = "~New..."; }; PushButton PB_CUSTOMIZE { + HelpID = "sw:PushButton:DLG_MM_SELECTADDRESSBLOCK:PB_CUSTOMIZE"; Pos = MAP_APPFONT ( 204 , 31 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text[ en-US ] = "~Edit..."; }; PushButton PB_DELETE { + HelpID = "sw:PushButton:DLG_MM_SELECTADDRESSBLOCK:PB_DELETE"; Pos = MAP_APPFONT ( 204 , 48 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Group = FALSE; @@ -241,24 +251,28 @@ ModalDialog DLG_MM_SELECTADDRESSBLOCK }; RadioButton RB_NEVER { + HelpID = "sw:RadioButton:DLG_MM_SELECTADDRESSBLOCK:RB_NEVER"; Pos = MAP_APPFONT ( 12 , 131 ) ; Size = MAP_APPFONT ( 150 , 10 ) ; Text[ en-US ] = "N~ever include the country/region"; }; RadioButton RB_ALWAYS { + HelpID = "sw:RadioButton:DLG_MM_SELECTADDRESSBLOCK:RB_ALWAYS"; Pos = MAP_APPFONT ( 12 , 145 ) ; Size = MAP_APPFONT ( 150 , 10 ) ; Text[ en-US ] = "~Always include the country/region"; }; RadioButton RB_DEPENDENT { + HelpID = "sw:RadioButton:DLG_MM_SELECTADDRESSBLOCK:RB_DEPENDENT"; Pos = MAP_APPFONT ( 12 , 159 ) ; Size = MAP_APPFONT ( 150 , 10 ) ; Text[ en-US ] = "Only ~include the country/region if it is not:"; }; Edit ED_COUNTRY { + HelpID = "sw:Edit:DLG_MM_SELECTADDRESSBLOCK:ED_COUNTRY"; Pos = MAP_APPFONT ( 18 , 172 ) ; Size = MAP_APPFONT ( 180 , 12 ) ; Border = TRUE; @@ -337,6 +351,7 @@ ModalDialog DLG_MM_CUSTOMIZEADDRESSBLOCK }; ImageButton IB_INSERTFIELD { + HelpID = "sw:ImageButton:DLG_MM_CUSTOMIZEADDRESSBLOCK:IB_INSERTFIELD"; Pos = MAP_APPFONT ( 80 , 29 ) ; Size = MAP_APPFONT ( 14 , 14 ) ; Symbol = IMAGEBUTTON_ARROW_RIGHT; @@ -348,6 +363,7 @@ ModalDialog DLG_MM_CUSTOMIZEADDRESSBLOCK }; ImageButton IB_REMOVEFIELD { + HelpID = "sw:ImageButton:DLG_MM_CUSTOMIZEADDRESSBLOCK:IB_REMOVEFIELD"; Pos = MAP_APPFONT ( 80 , 46 ) ; Size = MAP_APPFONT ( 14 , 14 ) ; Symbol = IMAGEBUTTON_ARROW_LEFT; @@ -369,12 +385,14 @@ ModalDialog DLG_MM_CUSTOMIZEADDRESSBLOCK }; MultiLineEdit ED_DRAG { + HelpID = "sw:MultiLineEdit:DLG_MM_CUSTOMIZEADDRESSBLOCK:ED_DRAG"; Pos = MAP_APPFONT ( 106 , 14 ) ; Size = MAP_APPFONT ( 160 , 60 ) ; Border = TRUE; }; ImageButton IB_UP { + HelpID = "sw:ImageButton:DLG_MM_CUSTOMIZEADDRESSBLOCK:IB_UP"; Pos = MAP_APPFONT ( 285 , 14 ) ; Size = MAP_APPFONT ( 14 , 14 ) ; Symbol = IMAGEBUTTON_ARROW_UP; @@ -382,6 +400,7 @@ ModalDialog DLG_MM_CUSTOMIZEADDRESSBLOCK }; ImageButton IB_LEFT { + HelpID = "sw:ImageButton:DLG_MM_CUSTOMIZEADDRESSBLOCK:IB_LEFT"; Pos = MAP_APPFONT ( 270 , 29 ) ; Size = MAP_APPFONT ( 14 , 14 ) ; Symbol = IMAGEBUTTON_ARROW_LEFT; @@ -389,6 +408,7 @@ ModalDialog DLG_MM_CUSTOMIZEADDRESSBLOCK }; ImageButton IB_RIGHT { + HelpID = "sw:ImageButton:DLG_MM_CUSTOMIZEADDRESSBLOCK:IB_RIGHT"; Pos = MAP_APPFONT ( 300 , 29 ) ; Size = MAP_APPFONT ( 14 , 14 ) ; Symbol = IMAGEBUTTON_ARROW_RIGHT; @@ -396,6 +416,7 @@ ModalDialog DLG_MM_CUSTOMIZEADDRESSBLOCK }; ImageButton IB_DOWN { + HelpID = "sw:ImageButton:DLG_MM_CUSTOMIZEADDRESSBLOCK:IB_DOWN"; Pos = MAP_APPFONT ( 285 , 48 ) ; Size = MAP_APPFONT ( 14 , 14 ) ; Symbol = IMAGEBUTTON_ARROW_DOWN; @@ -410,6 +431,7 @@ ModalDialog DLG_MM_CUSTOMIZEADDRESSBLOCK }; ComboBox CB_FIELD { + HelpID = "sw:ComboBox:DLG_MM_CUSTOMIZEADDRESSBLOCK:CB_FIELD"; Pos = MAP_APPFONT ( 106 , 89 ) ; Size = MAP_APPFONT ( 160 , 50 ) ; Border = TRUE; @@ -560,6 +582,7 @@ ModalDialog DLG_MM_ASSIGNFIELDS }; ListBox LB_FIELDS { + HelpID = "sw:ListBox:DLG_MM_ASSIGNFIELDS:LB_FIELDS"; Pos = MAP_APPFONT ( 83 , 4 ) ; Size = MAP_APPFONT ( 74 , 50 ) ; TabStop = TRUE; diff --git a/sw/source/ui/dbui/mmdocselectpage.src b/sw/source/ui/dbui/mmdocselectpage.src index ace679af4f..9f6c1df5df 100644 --- a/sw/source/ui/dbui/mmdocselectpage.src +++ b/sw/source/ui/dbui/mmdocselectpage.src @@ -47,48 +47,56 @@ TabPage DLG_MM_DOCSELECT_PAGE }; RadioButton RB_CURRENTDOC { + HelpID = "sw:RadioButton:DLG_MM_DOCSELECT_PAGE:RB_CURRENTDOC"; Pos = MAP_APPFONT ( 12 , 48 ) ; Size = MAP_APPFONT ( 190 , 10 ) ; Text[ en-US ] = "Use the current ~document"; }; RadioButton RB_NEWDOC { + HelpID = "sw:RadioButton:DLG_MM_DOCSELECT_PAGE:RB_NEWDOC"; Pos = MAP_APPFONT ( 12 , 66 ) ; Size = MAP_APPFONT ( 190 , 10 ) ; Text[ en-US ] = "Create a ne~w document"; }; RadioButton RB_LOADDOC { + HelpID = "sw:RadioButton:DLG_MM_DOCSELECT_PAGE:RB_LOADDOC"; Pos = MAP_APPFONT ( 12 , 84) ; Size = MAP_APPFONT ( 190 , 10 ) ; Text[ en-US ] = "Start from ~existing document"; }; PushButton PB_LOADDOC { + HelpID = "sw:PushButton:DLG_MM_DOCSELECT_PAGE:PB_LOADDOC"; Pos = MAP_APPFONT ( 204 , 80) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text[ en-US ] = "B~rowse..."; }; RadioButton RB_LOADTEMPLATE { + HelpID = "sw:RadioButton:DLG_MM_DOCSELECT_PAGE:RB_LOADTEMPLATE"; Pos = MAP_APPFONT ( 12 , 103 ) ; Size = MAP_APPFONT ( 190 , 10 ) ; Text[ en-US ] = "Start from a t~emplate"; }; PushButton PB_BROWSETEMPLATE { + HelpID = "sw:PushButton:DLG_MM_DOCSELECT_PAGE:PB_BROWSETEMPLATE"; Pos = MAP_APPFONT ( 204 , 99 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text[ en-US ] = "B~rowse..."; }; RadioButton RB_RECENTDOC { + HelpID = "sw:RadioButton:DLG_MM_DOCSELECT_PAGE:RB_RECENTDOC"; Pos = MAP_APPFONT ( 12 , 120) ; Size = MAP_APPFONT ( 190 , 10 ) ; Text[ en-US ] = "Start fro~m a recently saved starting document"; }; ListBox LB_RECENTDOC { + HelpID = "sw:ListBox:DLG_MM_DOCSELECT_PAGE:LB_RECENTDOC"; Pos = MAP_APPFONT ( 20 , 134 ) ; Size = MAP_APPFONT ( 180 , 50 ) ; DropDown = TRUE; diff --git a/sw/source/ui/dbui/mmgreetingspage.src b/sw/source/ui/dbui/mmgreetingspage.src index fff77d9240..5cae953a35 100644 --- a/sw/source/ui/dbui/mmgreetingspage.src +++ b/sw/source/ui/dbui/mmgreetingspage.src @@ -144,6 +144,7 @@ TabPage DLG_MM_GREETINGS_PAGE }; CheckBox CB_GREETINGLINE { + HelpID = "sw:CheckBox:DLG_MM_GREETINGS_PAGE:CB_GREETINGLINE"; Pos = MAP_APPFONT ( 12 , 27 ); Size = MAP_APPFONT ( 242 , 10 ); Text[ en-US ] = "This document should contain a salutation"; @@ -163,6 +164,7 @@ TabPage DLG_MM_GREETINGS_PAGE }; PushButton PB_ASSIGN { + HelpID = "sw:PushButton:DLG_MM_GREETINGS_PAGE:PB_ASSIGN"; Pos = MAP_APPFONT ( 204 , 179 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text[ en-US ] = "~Match fields..."; @@ -175,6 +177,7 @@ TabPage DLG_MM_GREETINGS_PAGE }; ImageButton IB_PREVSET { + HelpID = "sw:ImageButton:DLG_MM_GREETINGS_PAGE:IB_PREVSET"; Pos = MAP_APPFONT ( 177 , 204 ) ; Size = MAP_APPFONT ( 10 , 10 ) ; SYMBOL = IMAGEBUTTON_PREV; @@ -182,6 +185,7 @@ TabPage DLG_MM_GREETINGS_PAGE }; ImageButton IB_NEXTSET { + HelpID = "sw:ImageButton:DLG_MM_GREETINGS_PAGE:IB_NEXTSET"; Pos = MAP_APPFONT ( 188 , 204 ) ; Size = MAP_APPFONT ( 10 , 10 ) ; SYMBOL = IMAGEBUTTON_NEXT ; @@ -208,6 +212,7 @@ ModalDialog DLG_MM_MAILBODY Text [ en-US ] = "E-Mail Message"; CheckBox CB_GREETINGLINE { + HelpID = "sw:CheckBox:DLG_MM_MAILBODY:CB_GREETINGLINE"; Pos = MAP_APPFONT ( 6 , 3 ) ; Size = MAP_APPFONT ( 242 , 10 ) ; Text[ en-US ] = "This e-mail should contain a salutation"; @@ -221,6 +226,7 @@ ModalDialog DLG_MM_MAILBODY }; MultiLineEdit MLE_BODY { + HelpID = "sw:MultiLineEdit:DLG_MM_MAILBODY:MLE_BODY"; Pos = MAP_APPFONT ( 12, 151 ) ; Size = MAP_APPFONT ( 180 , 50 ) ; Border = TRUE; diff --git a/sw/source/ui/dbui/mmlayoutpage.src b/sw/source/ui/dbui/mmlayoutpage.src index 07582a45ef..94e1387306 100644 --- a/sw/source/ui/dbui/mmlayoutpage.src +++ b/sw/source/ui/dbui/mmlayoutpage.src @@ -48,6 +48,7 @@ TabPage DLG_MM_LAYOUT_PAGE }; CheckBox CB_ALIGN { + HelpID = "sw:CheckBox:DLG_MM_LAYOUT_PAGE:CB_ALIGN"; Pos = MAP_APPFONT ( 6 , 40 ) ; Size = MAP_APPFONT ( 118 , 10 ) ; Text[ en-US ] = "Align to text body"; @@ -60,6 +61,7 @@ TabPage DLG_MM_LAYOUT_PAGE }; MetricField MF_LEFT { + HelpID = "sw:MetricField:DLG_MM_LAYOUT_PAGE:MF_LEFT"; Pos = MAP_APPFONT ( 78 , 52 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; Border = TRUE ; @@ -83,6 +85,7 @@ TabPage DLG_MM_LAYOUT_PAGE }; MetricField MF_TOP { + HelpID = "sw:MetricField:DLG_MM_LAYOUT_PAGE:MF_TOP"; Pos = MAP_APPFONT ( 78 , 67 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; Border = TRUE ; @@ -112,6 +115,7 @@ TabPage DLG_MM_LAYOUT_PAGE }; PushButton MF_UP { + HelpID = "sw:PushButton:DLG_MM_LAYOUT_PAGE:MF_UP"; Pos = MAP_APPFONT ( 68 , 96 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text[ en-US ] = "~Up"; @@ -124,6 +128,7 @@ TabPage DLG_MM_LAYOUT_PAGE }; PushButton PB_DOWN { + HelpID = "sw:PushButton:DLG_MM_LAYOUT_PAGE:PB_DOWN"; Pos = MAP_APPFONT ( 68 , 113 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text[ en-US ] = "~Down"; @@ -143,6 +148,7 @@ TabPage DLG_MM_LAYOUT_PAGE }; ListBox LB_ZOOM { + HelpID = "sw:ListBox:DLG_MM_LAYOUT_PAGE:LB_ZOOM"; Pos = MAP_APPFONT ( 204 , 182 ) ; Size = MAP_APPFONT ( 50 , 50 ) ; Border = TRUE; diff --git a/sw/source/ui/dbui/mmmergepage.src b/sw/source/ui/dbui/mmmergepage.src index fd9fffc0de..8480e97e0e 100644 --- a/sw/source/ui/dbui/mmmergepage.src +++ b/sw/source/ui/dbui/mmmergepage.src @@ -49,6 +49,7 @@ TabPage DLG_MM_MERGE_PAGE }; PushButton PB_EDIT { + HelpID = "sw:PushButton:DLG_MM_MERGE_PAGE:PB_EDIT"; Pos = MAP_APPFONT ( 70 , 67 ) ; Size = MAP_APPFONT ( 120 , 14 ) ; Text [ en-US ] = "~Edit individual document..."; @@ -67,30 +68,35 @@ TabPage DLG_MM_MERGE_PAGE }; Edit ED_FIND { + HelpID = "sw:Edit:DLG_MM_MERGE_PAGE:ED_FIND"; Pos = MAP_APPFONT ( 55 ,114 ) ; Size = MAP_APPFONT ( 140 , 12 ) ; Border = TRUE; }; PushButton PB_FIND { + HelpID = "sw:PushButton:DLG_MM_MERGE_PAGE:PB_FIND"; Pos = MAP_APPFONT ( 198 ,113 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "~Find..."; }; CheckBox CB_WHOLEWORDS { + HelpID = "sw:CheckBox:DLG_MM_MERGE_PAGE:CB_WHOLEWORDS"; Pos = MAP_APPFONT ( 55 , 131 ) ; Size = MAP_APPFONT ( 180 , 10 ) ; Text [ en-US ] = "Whole wor~ds only"; }; CheckBox CB_BACKWARDS { + HelpID = "sw:CheckBox:DLG_MM_MERGE_PAGE:CB_BACKWARDS"; Pos = MAP_APPFONT ( 55 , 144 ) ; Size = MAP_APPFONT ( 180 , 10 ) ; Text [ en-US ] = "Back~wards"; }; CheckBox CB_MATCHCASE { + HelpID = "sw:CheckBox:DLG_MM_MERGE_PAGE:CB_MATCHCASE"; Pos = MAP_APPFONT ( 55 , 157 ) ; Size = MAP_APPFONT ( 180 , 10 ) ; Text [ en-US ] = "Ma~tch case"; diff --git a/sw/source/ui/dbui/mmoutputpage.src b/sw/source/ui/dbui/mmoutputpage.src index 29e54bbb40..4801706083 100644 --- a/sw/source/ui/dbui/mmoutputpage.src +++ b/sw/source/ui/dbui/mmoutputpage.src @@ -48,24 +48,28 @@ TabPage DLG_MM_OUTPUT_PAGE }; RadioButton RB_SAVESTARTDOC { + HelpID = "sw:RadioButton:DLG_MM_OUTPUT_PAGE:RB_SAVESTARTDOC"; Pos = MAP_APPFONT ( 45 , 40 ) ; Size = MAP_APPFONT ( 209 , 10 ) ; Text[ en-US ] = "~Save starting document"; }; RadioButton RB_SAVEMERGEDDOC { + HelpID = "sw:RadioButton:DLG_MM_OUTPUT_PAGE:RB_SAVEMERGEDDOC"; Pos = MAP_APPFONT ( 45 , 53 ) ; Size = MAP_APPFONT ( 209 , 10 ) ; Text[ en-US ] = "Save ~merged document" ; }; RadioButton RB_PRINT { + HelpID = "sw:RadioButton:DLG_MM_OUTPUT_PAGE:RB_PRINT"; Pos = MAP_APPFONT ( 45 , 66 ) ; Size = MAP_APPFONT ( 209 , 10 ) ; Text[ en-US ] = "~Print merged document"; }; RadioButton RB_SENDMAIL { + HelpID = "sw:RadioButton:DLG_MM_OUTPUT_PAGE:RB_SENDMAIL"; Pos = MAP_APPFONT ( 45 , 79 ) ; Size = MAP_APPFONT ( 209 , 10 ) ; Text[ en-US ] = "Send merged document as ~E-Mail"; @@ -77,30 +81,35 @@ TabPage DLG_MM_OUTPUT_PAGE }; PushButton PB_SAVESTARTDOC { + HelpID = "sw:PushButton:DLG_MM_OUTPUT_PAGE:PB_SAVESTARTDOC"; Pos = MAP_APPFONT ( 55 , 108 ) ; Size = MAP_APPFONT ( 100 , 14 ) ; Text[ en-US ] = "Save starting ~document"; }; RadioButton RB_SAVEASONE { + HelpID = "sw:RadioButton:DLG_MM_OUTPUT_PAGE:RB_SAVEASONE"; Pos = MAP_APPFONT ( 45 , 109 ) ; Size = MAP_APPFONT ( 150 , 10 ) ; Text[ en-US ] = "S~ave as single document"; }; RadioButton RB_SAVEINDIVIDUAL { + HelpID = "sw:RadioButton:DLG_MM_OUTPUT_PAGE:RB_SAVEINDIVIDUAL"; Pos = MAP_APPFONT ( 45, 123 ) ; Size = MAP_APPFONT ( 150 , 10 ) ; Text[ en-US ] = "Sa~ve as individual documents"; }; RadioButton RB_FROM { + HelpID = "sw:RadioButton:DLG_MM_OUTPUT_PAGE:RB_FROM"; Pos = MAP_APPFONT ( 45 , 137 ) ; Size = MAP_APPFONT ( 30 , 10 ) ; Text[ en-US ] = "~From"; }; NumericField NF_FROM { + HelpID = "sw:NumericField:DLG_MM_OUTPUT_PAGE:NF_FROM"; Pos = MAP_APPFONT ( 78 , 136 ) ; Size = MAP_APPFONT ( 20 , 10 ) ; Border = TRUE; @@ -120,6 +129,7 @@ TabPage DLG_MM_OUTPUT_PAGE }; NumericField NF_TO { + HelpID = "sw:NumericField:DLG_MM_OUTPUT_PAGE:NF_TO"; Pos = MAP_APPFONT ( 124 , 136 ) ; Size = MAP_APPFONT ( 20 , 10 ) ; Border = TRUE; @@ -132,6 +142,7 @@ TabPage DLG_MM_OUTPUT_PAGE }; PushButton PB_SAVENOW { + HelpID = "sw:PushButton:DLG_MM_OUTPUT_PAGE:PB_SAVENOW"; Pos = MAP_APPFONT ( 45 , 150 ) ; Size = MAP_APPFONT ( 80 , 14 ) ; Text[ en-US ] = "Save Do~cuments"; @@ -144,6 +155,7 @@ TabPage DLG_MM_OUTPUT_PAGE }; ListBox LB_PRINT { + HelpID = "sw:ListBox:DLG_MM_OUTPUT_PAGE:LB_PRINT"; Pos = MAP_APPFONT ( 45 , 109 ) ; Size = MAP_APPFONT ( 147 , 50 ) ; Border = TRUE; @@ -152,18 +164,21 @@ TabPage DLG_MM_OUTPUT_PAGE }; PushButton PB_PRINTERSETTINGS { + HelpID = "sw:PushButton:DLG_MM_OUTPUT_PAGE:PB_PRINTERSETTINGS"; Pos = MAP_APPFONT ( 198 , 108 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text[ en-US ] = "P~roperties..."; }; RadioButton RB_PRINTALL { + HelpID = "sw:RadioButton:DLG_MM_OUTPUT_PAGE:RB_PRINTALL"; Pos = MAP_APPFONT ( 45 , 126 ) ; Size = MAP_APPFONT ( 150 , 10 ) ; Text[ en-US ] = "Print ~all documents"; }; PushButton PB_PRINTNOW { + HelpID = "sw:PushButton:DLG_MM_OUTPUT_PAGE:PB_PRINTNOW"; Pos = MAP_APPFONT ( 45 , 155 ) ; Size = MAP_APPFONT ( 80 , 14 ) ; Text[ en-US ] = "Prin~t Documents"; @@ -177,6 +192,7 @@ TabPage DLG_MM_OUTPUT_PAGE }; ListBox LB_MAILTO { + HelpID = "sw:ListBox:DLG_MM_OUTPUT_PAGE:LB_MAILTO"; Pos = MAP_APPFONT ( 45 , 109 ) ; Size = MAP_APPFONT ( 147 , 50 ) ; DropDown = TRUE; @@ -184,6 +200,7 @@ TabPage DLG_MM_OUTPUT_PAGE }; PushButton PB_COPYTO { + HelpID = "sw:PushButton:DLG_MM_OUTPUT_PAGE:PB_COPYTO"; Pos = MAP_APPFONT ( 198 , 108 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text[ en-US ] = "~Copy to..."; @@ -196,6 +213,7 @@ TabPage DLG_MM_OUTPUT_PAGE }; Edit ED_SUBJECT { + HelpID = "sw:Edit:DLG_MM_OUTPUT_PAGE:ED_SUBJECT"; Pos = MAP_APPFONT ( 45 , 125 ) ; Size = MAP_APPFONT ( 147 , 12 ) ; Border = TRUE; @@ -208,6 +226,7 @@ TabPage DLG_MM_OUTPUT_PAGE }; ListBox LB_SENDAS { + HelpID = "sw:ListBox:DLG_MM_OUTPUT_PAGE:LB_SENDAS"; Pos = MAP_APPFONT ( 45 , 141 ) ; Size = MAP_APPFONT (147 , 70 ) ; DropDown = TRUE; @@ -231,6 +250,7 @@ TabPage DLG_MM_OUTPUT_PAGE }; PushButton PB_SENDAS { + HelpID = "sw:PushButton:DLG_MM_OUTPUT_PAGE:PB_SENDAS"; Pos = MAP_APPFONT ( 198 , 140 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text[ en-US ] = "Pr~operties..."; @@ -243,18 +263,21 @@ TabPage DLG_MM_OUTPUT_PAGE }; Edit ED_ATTACHMENT { + HelpID = "sw:Edit:DLG_MM_OUTPUT_PAGE:ED_ATTACHMENT"; Pos = MAP_APPFONT ( 45 , 168 ) ; Size = MAP_APPFONT ( 147 , 12 ) ; Border = TRUE; }; RadioButton RB_SENDALL { + HelpID = "sw:RadioButton:DLG_MM_OUTPUT_PAGE:RB_SENDALL"; Pos = MAP_APPFONT ( 45 , 184 ) ; Size = MAP_APPFONT ( 153 , 10 ) ; Text[ en-US ] = "S~end all documents"; }; PushButton PB_SENDDOCUMENTS { + HelpID = "sw:PushButton:DLG_MM_OUTPUT_PAGE:PB_SENDDOCUMENTS"; Pos = MAP_APPFONT ( 45 , 212 ) ; Size = MAP_APPFONT ( 80 , 14 ) ; Text[ en-US ] = "Se~nd documents"; @@ -321,6 +344,7 @@ ModalDialog DLG_MM_COPYTO }; Edit ED_CC { + HelpID = "sw:Edit:DLG_MM_COPYTO:ED_CC"; Pos = MAP_APPFONT ( 40 , 15 ) ; Size = MAP_APPFONT ( 204 , 12 ) ; Border = TRUE; @@ -333,6 +357,7 @@ ModalDialog DLG_MM_COPYTO }; Edit ED_BCC { + HelpID = "sw:Edit:DLG_MM_COPYTO:ED_BCC"; Pos = MAP_APPFONT ( 40 , 31 ) ; Size = MAP_APPFONT ( 204 , 12 ) ; Border = TRUE; @@ -396,6 +421,7 @@ ModalDialog DLG_MM_SAVEWARNING }; Edit ED_FILENAME { + HelpID = "sw:Edit:DLG_MM_SAVEWARNING:ED_FILENAME"; Pos = MAP_APPFONT ( 40 , 50 ) ; Size = MAP_APPFONT ( 154 , 12 ) ; Border = TRUE; @@ -439,6 +465,7 @@ ModalDialog DLG_MM_QUERY }; Edit ED_TEXT { + HelpID = "sw:Edit:DLG_MM_QUERY:ED_TEXT"; Pos = MAP_APPFONT ( 40 , 39 ) ; Size = MAP_APPFONT ( 194 , 12 ) ; Border = TRUE; diff --git a/sw/source/ui/dbui/mmoutputtypepage.src b/sw/source/ui/dbui/mmoutputtypepage.src index a6dd74cc7a..72d7e39365 100644 --- a/sw/source/ui/dbui/mmoutputtypepage.src +++ b/sw/source/ui/dbui/mmoutputtypepage.src @@ -48,12 +48,14 @@ TabPage DLG_MM_OUTPUTTYPE_PAGE }; RadioButton RB_LETTER { + HelpID = "sw:RadioButton:DLG_MM_OUTPUTTYPE_PAGE:RB_LETTER"; Pos = MAP_APPFONT ( 12 , 43 ) ; Size = MAP_APPFONT ( 240 , 10 ) ; Text[ en-US ] = "~Letter"; }; RadioButton RB_MAIL { + HelpID = "sw:RadioButton:DLG_MM_OUTPUTTYPE_PAGE:RB_MAIL"; Pos = MAP_APPFONT ( 12 , 57 ) ; Size = MAP_APPFONT ( 240 , 10 ) ; Text[ en-US ] = "~E-mail message"; diff --git a/sw/source/ui/dbui/mmpreparemergepage.src b/sw/source/ui/dbui/mmpreparemergepage.src index b1ecd375d4..c763cfa465 100644 --- a/sw/source/ui/dbui/mmpreparemergepage.src +++ b/sw/source/ui/dbui/mmpreparemergepage.src @@ -57,6 +57,7 @@ TabPage DLG_MM_PREPAREMERGE_PAGE PushButton PB_FIRST { + HelpID = "sw:PushButton:DLG_MM_PREPAREMERGE_PAGE:PB_FIRST"; Pos = MAP_APPFONT ( 75 , 55 ) ; Size = MAP_APPFONT ( 20 , 14 ) ; Text = "|<" ; @@ -64,6 +65,7 @@ TabPage DLG_MM_PREPAREMERGE_PAGE }; PushButton PB_PREV { + HelpID = "sw:PushButton:DLG_MM_PREPAREMERGE_PAGE:PB_PREV"; Pos = MAP_APPFONT ( 98 , 55 ) ; Size = MAP_APPFONT ( 20 , 14 ) ; Text = "<" ; @@ -71,6 +73,7 @@ TabPage DLG_MM_PREPAREMERGE_PAGE }; NumericField ED_RECORD { + HelpID = "sw:NumericField:DLG_MM_PREPAREMERGE_PAGE:ED_RECORD"; Pos = MAP_APPFONT ( 121 , 56 ) ; Size = MAP_APPFONT ( 20 , 12 ) ; Border = TRUE ; @@ -83,6 +86,7 @@ TabPage DLG_MM_PREPAREMERGE_PAGE }; PushButton PB_NEXT { + HelpID = "sw:PushButton:DLG_MM_PREPAREMERGE_PAGE:PB_NEXT"; Pos = MAP_APPFONT ( 144 , 55 ) ; Size = MAP_APPFONT ( 20 , 14 ) ; Text = ">" ; @@ -90,6 +94,7 @@ TabPage DLG_MM_PREPAREMERGE_PAGE }; PushButton PB_LAST { + HelpID = "sw:PushButton:DLG_MM_PREPAREMERGE_PAGE:PB_LAST"; Pos = MAP_APPFONT ( 167 , 55 ) ; Size = MAP_APPFONT ( 20 , 14 ) ; Text = ">|" ; @@ -97,6 +102,7 @@ TabPage DLG_MM_PREPAREMERGE_PAGE }; CheckBox CB_EXCLUDE { + HelpID = "sw:CheckBox:DLG_MM_PREPAREMERGE_PAGE:CB_EXCLUDE"; Pos = MAP_APPFONT ( 75, 77 ) ; Size = MAP_APPFONT ( 179 , 10 ) ; Text[ en-US ] = "E~xclude this recipient"; @@ -116,6 +122,7 @@ TabPage DLG_MM_PREPAREMERGE_PAGE }; PushButton PB_EDIT { + HelpID = "sw:PushButton:DLG_MM_PREPAREMERGE_PAGE:PB_EDIT"; Pos = MAP_APPFONT ( 90 , 185 ) ; Size = MAP_APPFONT ( 80 , 14 ) ; Text[ en-US ] = "~Edit Document..."; diff --git a/sw/source/ui/dbui/selectdbtabledialog.cxx b/sw/source/ui/dbui/selectdbtabledialog.cxx index 51277a1fed..049b99e611 100644 --- a/sw/source/ui/dbui/selectdbtabledialog.cxx +++ b/sw/source/ui/dbui/selectdbtabledialog.cxx @@ -109,7 +109,7 @@ SwSelectDBTableDialog::SwSelectDBTableDialog(Window* pParent, static long nTabs[] = {3, 0, aSz.Width()/2, aSz.Width() }; m_aTableLB.SetTabs(&nTabs[0], MAP_PIXEL); m_aTableLB.SetHelpId(HID_MM_SELECTDBTABLEDDIALOG_LISTBOX); - m_aTableLB.SetWindowBits( WB_CLIPCHILDREN ); + m_aTableLB.SetStyle( m_aTableLB.GetStyle() | WB_CLIPCHILDREN ); m_aTableLB.SetSpaceBetweenEntries(3); m_aTableLB.SetSelectionMode( SINGLE_SELECTION ); m_aTableLB.SetDragDropMode( 0 ); diff --git a/sw/source/ui/dbui/selectdbtabledialog.src b/sw/source/ui/dbui/selectdbtabledialog.src index 467cb8333e..61d68f6fde 100644 --- a/sw/source/ui/dbui/selectdbtabledialog.src +++ b/sw/source/ui/dbui/selectdbtabledialog.src @@ -54,6 +54,7 @@ ModalDialog DLG_MM_SELECTDBTABLEDDIALOG }; PushButton PB_PREVIEW { + HelpID = "sw:PushButton:DLG_MM_SELECTDBTABLEDDIALOG:PB_PREVIEW"; Pos = MAP_APPFONT ( 6 , 84 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "~Preview"; diff --git a/sw/source/ui/dialog/abstract.src b/sw/source/ui/dialog/abstract.src index ab5a86394b..a29b7e6339 100644 --- a/sw/source/ui/dialog/abstract.src +++ b/sw/source/ui/dialog/abstract.src @@ -53,6 +53,7 @@ ModalDialog DLG_INSERT_ABSTRACT }; NumericField NF_LEVEL { + HelpID = "sw:NumericField:DLG_INSERT_ABSTRACT:NF_LEVEL"; Border = TRUE ; Pos = MAP_APPFONT ( 153 , 12 ) ; Size = MAP_APPFONT ( 24 , 12 ) ; @@ -75,6 +76,7 @@ ModalDialog DLG_INSERT_ABSTRACT }; NumericField NF_PARA { + HelpID = "sw:NumericField:DLG_INSERT_ABSTRACT:NF_PARA"; Border = TRUE ; Pos = MAP_APPFONT ( 153 , 27 ) ; Size = MAP_APPFONT ( 24 , 12 ) ; diff --git a/sw/source/ui/dialog/ascfldlg.src b/sw/source/ui/dialog/ascfldlg.src index f10fed8a87..66be6d35c9 100644 --- a/sw/source/ui/dialog/ascfldlg.src +++ b/sw/source/ui/dialog/ascfldlg.src @@ -50,6 +50,7 @@ ModalDialog DLG_ASCII_FILTER }; ListBox LB_CHARSET { + HelpID = "sw:ListBox:DLG_ASCII_FILTER:LB_CHARSET"; Pos = MAP_APPFONT ( 80 , 14 ) ; Size = MAP_APPFONT ( 90 , 61 ) ; TabStop = TRUE ; @@ -64,6 +65,7 @@ ModalDialog DLG_ASCII_FILTER }; ListBox LB_FONT { + HelpID = "sw:ListBox:DLG_ASCII_FILTER:LB_FONT"; Pos = MAP_APPFONT ( 80 , 30 ) ; Size = MAP_APPFONT ( 90 , 61 ) ; TabStop = TRUE ; @@ -78,6 +80,7 @@ ModalDialog DLG_ASCII_FILTER }; ListBox LB_LANGUAGE { + HelpID = "sw:ListBox:DLG_ASCII_FILTER:LB_LANGUAGE"; Pos = MAP_APPFONT ( 80 , 46 ) ; Size = MAP_APPFONT ( 90 , 61 ) ; TabStop = TRUE ; @@ -92,6 +95,7 @@ ModalDialog DLG_ASCII_FILTER }; RadioButton RB_CRLF { + HelpID = "sw:RadioButton:DLG_ASCII_FILTER:RB_CRLF"; Pos = MAP_APPFONT ( 80 , 64 ) ; Size = MAP_APPFONT ( 40 , 10 ) ; TabStop = TRUE ; @@ -100,6 +104,7 @@ ModalDialog DLG_ASCII_FILTER }; RadioButton RB_CR { + HelpID = "sw:RadioButton:DLG_ASCII_FILTER:RB_CR"; Pos = MAP_APPFONT ( 121 , 64 ) ; Size = MAP_APPFONT ( 20 , 10 ) ; // TabStop = TRUE ; @@ -107,6 +112,7 @@ ModalDialog DLG_ASCII_FILTER }; RadioButton RB_LF { + HelpID = "sw:RadioButton:DLG_ASCII_FILTER:RB_LF"; Pos = MAP_APPFONT ( 155 , 64 ) ; Size = MAP_APPFONT ( 20 , 10 ) ; // TabStop = TRUE ; diff --git a/sw/source/ui/dialog/docstdlg.src b/sw/source/ui/dialog/docstdlg.src index 5926321d88..3cce7454c5 100644 --- a/sw/source/ui/dialog/docstdlg.src +++ b/sw/source/ui/dialog/docstdlg.src @@ -140,6 +140,7 @@ TabPage TP_DOC_STAT }; PushButton PB_PDATE { + HelpID = "sw:PushButton:TP_DOC_STAT:PB_PDATE"; Pos = MAP_APPFONT ( 204 , 94 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "~Update" ; diff --git a/sw/source/ui/dialog/regionsw.src b/sw/source/ui/dialog/regionsw.src index e0da42f07f..833426fd8a 100644 --- a/sw/source/ui/dialog/regionsw.src +++ b/sw/source/ui/dialog/regionsw.src @@ -87,7 +87,7 @@ *************************************************************************/ ModalDialog MD_EDIT_REGION { - HelpID = FN_EDIT_REGION ; + HelpID = CMD_FN_EDIT_REGION ; OutputSize = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 316 , 185 ) ; @@ -102,6 +102,7 @@ ModalDialog MD_EDIT_REGION }; Edit ED_RANAME { + HelpID = "sw:Edit:MD_EDIT_REGION:ED_RANAME"; Border = TRUE ; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 71 , 12 ) ; @@ -124,6 +125,7 @@ ModalDialog MD_EDIT_REGION }; TriStateBox CB_FILE { + HelpID = "sw:TriStateBox:MD_EDIT_REGION:CB_FILE"; Pos = MAP_APPFONT ( 98 , 14 ) ; Size = MAP_APPFONT ( 59 , 10 ) ; TabStop = TRUE ; @@ -131,6 +133,7 @@ ModalDialog MD_EDIT_REGION }; CheckBox CB_DDE { + HelpID = "sw:CheckBox:MD_EDIT_REGION:CB_DDE"; Pos = MAP_APPFONT ( 98 , 28 ) ; Size = MAP_APPFONT ( 30 , 10 ) ; Disable = TRUE ; @@ -152,6 +155,7 @@ ModalDialog MD_EDIT_REGION }; Edit ED_FILE { + HelpID = "sw:Edit:MD_EDIT_REGION:ED_FILE"; Border = TRUE ; Pos = MAP_APPFONT ( 165 , 42 ) ; Size = MAP_APPFONT ( 68 , 12 ) ; @@ -160,6 +164,7 @@ ModalDialog MD_EDIT_REGION }; PushButton PB_FILE { + HelpID = "sw:PushButton:MD_EDIT_REGION:PB_FILE"; Pos = MAP_APPFONT ( 239 , 42 ) ; Size = MAP_APPFONT ( 12 , 12 ) ; TabStop = TRUE ; @@ -175,6 +180,7 @@ ModalDialog MD_EDIT_REGION }; ComboBox LB_SUBREG { + HelpID = "sw:ComboBox:MD_EDIT_REGION:LB_SUBREG"; Pos = MAP_APPFONT ( 165 , 57 ) ; Size = MAP_APPFONT ( 68 , 50 ) ; Disable = TRUE ; @@ -191,6 +197,7 @@ ModalDialog MD_EDIT_REGION }; TriStateBox CB_PROTECT { + HelpID = "sw:TriStateBox:MD_EDIT_REGION:CB_PROTECT"; Pos = MAP_APPFONT ( 98 , 86 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; TabStop = TRUE ; @@ -200,6 +207,7 @@ ModalDialog MD_EDIT_REGION }; CheckBox CB_PASSWD { + HelpID = "sw:CheckBox:MD_EDIT_REGION:CB_PASSWD"; Pos = MAP_APPFONT ( 107 , 100 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; TabStop = TRUE ; @@ -207,6 +215,7 @@ ModalDialog MD_EDIT_REGION }; PushButton PB_PASSWD { + HelpID = "sw:PushButton:MD_EDIT_REGION:PB_PASSWD"; Pos = MAP_APPFONT ( 239 , 98 ) ; Size = MAP_APPFONT ( 12 , 12 ) ; TabStop = TRUE ; @@ -221,6 +230,7 @@ ModalDialog MD_EDIT_REGION }; TriStateBox CB_HIDE { + HelpID = "sw:TriStateBox:MD_EDIT_REGION:CB_HIDE"; Pos = MAP_APPFONT ( 98 , 127 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; TabStop = TRUE ; @@ -236,6 +246,7 @@ ModalDialog MD_EDIT_REGION }; Edit ED_CONDITION { + HelpID = "sw:Edit:MD_EDIT_REGION:ED_CONDITION"; Border = TRUE ; Pos = MAP_APPFONT ( 165 , 141) ; Size = MAP_APPFONT ( 86 , 12 ) ; @@ -252,6 +263,7 @@ ModalDialog MD_EDIT_REGION }; TriStateBox CB_EDIT_IN_READONLY { + HelpID = "sw:TriStateBox:MD_EDIT_REGION:CB_EDIT_IN_READONLY"; Pos = MAP_APPFONT ( 98 , 170 ) ; Size = MAP_APPFONT ( 156 , 10 ) ; TabStop = TRUE ; @@ -275,6 +287,7 @@ ModalDialog MD_EDIT_REGION }; PushButton PB_OPTIONS { + HelpID = "sw:PushButton:MD_EDIT_REGION:PB_OPTIONS"; Pos = MAP_APPFONT ( 263 , 40 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; TabStop = TRUE ; @@ -283,6 +296,7 @@ ModalDialog MD_EDIT_REGION }; PushButton CB_DISMISS { + HelpID = "sw:PushButton:MD_EDIT_REGION:CB_DISMISS"; Pos = MAP_APPFONT ( 263 , 57 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Disable = TRUE ; @@ -412,6 +426,7 @@ TabPage TP_INSERT_SECTION }; ComboBox ED_RNAME { + HelpID = "sw:ComboBox:TP_INSERT_SECTION:ED_RNAME"; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 69 , 140 ) ; TabStop = TRUE ; @@ -427,6 +442,7 @@ TabPage TP_INSERT_SECTION }; CheckBox CB_FILE { + HelpID = "sw:CheckBox:TP_INSERT_SECTION:CB_FILE"; Pos = MAP_APPFONT ( 96 , 14 ) ; Size = MAP_APPFONT ( 60 , 10 ) ; TabStop = TRUE ; @@ -434,6 +450,7 @@ TabPage TP_INSERT_SECTION }; CheckBox CB_DDE { + HelpID = "sw:CheckBox:TP_INSERT_SECTION:CB_DDE"; Pos = MAP_APPFONT ( 96 , 28) ; Size = MAP_APPFONT ( 60 , 10 ) ; Disable = TRUE ; @@ -455,6 +472,7 @@ TabPage TP_INSERT_SECTION }; Edit ED_FILE { + HelpID = "sw:Edit:TP_INSERT_SECTION:ED_FILE"; Border = TRUE ; Pos = MAP_APPFONT ( 160 , 42 ) ; Size = MAP_APPFONT ( 76 , 12 ) ; @@ -463,6 +481,7 @@ TabPage TP_INSERT_SECTION }; PushButton PB_FILE { + HelpID = "sw:PushButton:TP_INSERT_SECTION:PB_FILE"; Pos = MAP_APPFONT ( 239 , 42 ) ; Size = MAP_APPFONT ( 12 , 12 ) ; Disable = TRUE ; @@ -478,6 +497,7 @@ TabPage TP_INSERT_SECTION }; ComboBox LB_SUBREG { + HelpID = "sw:ComboBox:TP_INSERT_SECTION:LB_SUBREG"; Pos = MAP_APPFONT ( 160 , 58 ) ; Size = MAP_APPFONT ( 76 , 50 ) ; DropDown = TRUE ; @@ -494,6 +514,7 @@ TabPage TP_INSERT_SECTION }; CheckBox CB_PROTECT { + HelpID = "sw:CheckBox:TP_INSERT_SECTION:CB_PROTECT"; Pos = MAP_APPFONT ( 96 , 87 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; TabStop = TRUE ; @@ -501,6 +522,7 @@ TabPage TP_INSERT_SECTION }; CheckBox CB_PASSWD { + HelpID = "sw:CheckBox:TP_INSERT_SECTION:CB_PASSWD"; Pos = MAP_APPFONT ( 105 , 101 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; TabStop = TRUE ; @@ -508,6 +530,7 @@ TabPage TP_INSERT_SECTION }; PushButton PB_PASSWD { + HelpID = "sw:PushButton:TP_INSERT_SECTION:PB_PASSWD"; Pos = MAP_APPFONT ( 239 , 99 ) ; Size = MAP_APPFONT ( 12 , 12 ) ; TabStop = TRUE ; @@ -522,6 +545,7 @@ TabPage TP_INSERT_SECTION }; CheckBox CB_HIDE { + HelpID = "sw:CheckBox:TP_INSERT_SECTION:CB_HIDE"; Pos = MAP_APPFONT ( 96 , 128 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; CB_HIDE_TEXT @@ -535,6 +559,7 @@ TabPage TP_INSERT_SECTION }; Edit ED_CONDITION { + HelpID = "sw:Edit:TP_INSERT_SECTION:ED_CONDITION"; Border = TRUE ; Pos = MAP_APPFONT ( 160 , 142 ) ; Size = MAP_APPFONT ( 91 , 12 ) ; @@ -551,6 +576,7 @@ TabPage TP_INSERT_SECTION }; CheckBox CB_EDIT_IN_READONLY { + HelpID = "sw:CheckBox:TP_INSERT_SECTION:CB_EDIT_IN_READONLY"; Pos = MAP_APPFONT ( 96 , 170 ) ; Size = MAP_APPFONT ( 158 , 10 ) ; CB_EDIT_IN_READONLY_TEXT @@ -615,6 +641,7 @@ TabPage TP_SECTION_FTNENDNOTES }; CheckBox CB_FTN_AT_TXTEND { + HelpID = "sw:CheckBox:TP_SECTION_FTNENDNOTES:CB_FTN_AT_TXTEND"; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 90 , 10 ) ; TabStop = TRUE ; @@ -623,6 +650,7 @@ TabPage TP_SECTION_FTNENDNOTES }; CheckBox CB_FTN_NUM { + HelpID = "sw:CheckBox:TP_SECTION_FTNENDNOTES:CB_FTN_NUM"; Pos = MAP_APPFONT ( 18 , 29 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; TabStop = TRUE ; @@ -637,6 +665,7 @@ TabPage TP_SECTION_FTNENDNOTES }; NumericField FLD_FTN_OFFSET { + HelpID = "sw:NumericField:TP_SECTION_FTNENDNOTES:FLD_FTN_OFFSET"; Pos = MAP_APPFONT ( 90 , 44 ) ; Size = MAP_APPFONT ( 30 , 12 ) ; Spin = TRUE ; @@ -649,6 +678,7 @@ TabPage TP_SECTION_FTNENDNOTES }; CheckBox CB_FTN_NUM_FMT { + HelpID = "sw:CheckBox:TP_SECTION_FTNENDNOTES:CB_FTN_NUM_FMT"; Pos = MAP_APPFONT ( 24 , 61 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; TabStop = TRUE ; @@ -663,6 +693,7 @@ TabPage TP_SECTION_FTNENDNOTES }; Edit ED_FTN_PREFIX { + HelpID = "sw:Edit:TP_SECTION_FTNENDNOTES:ED_FTN_PREFIX"; Border = TRUE ; Pos = MAP_APPFONT ( 90 , 74 ) ; Size = MAP_APPFONT ( 30 , 12 ) ; @@ -672,6 +703,7 @@ TabPage TP_SECTION_FTNENDNOTES }; ListBox LB_FTN_NUMVIEW { + HelpID = "sw:ListBox:TP_SECTION_FTNENDNOTES:LB_FTN_NUMVIEW"; Border = TRUE ; Pos = MAP_APPFONT ( 123 , 74 ) ; Size = MAP_APPFONT ( 62 , 50 ) ; @@ -688,6 +720,7 @@ TabPage TP_SECTION_FTNENDNOTES }; Edit ED_FTN_SUFFIX { + HelpID = "sw:Edit:TP_SECTION_FTNENDNOTES:ED_FTN_SUFFIX"; Border = TRUE ; Pos = MAP_APPFONT ( 219 , 74 ) ; Size = MAP_APPFONT ( 30 , 12 ) ; @@ -706,6 +739,7 @@ TabPage TP_SECTION_FTNENDNOTES }; CheckBox CB_END_AT_TXTEND { + HelpID = "sw:CheckBox:TP_SECTION_FTNENDNOTES:CB_END_AT_TXTEND"; Pos = MAP_APPFONT ( 12 , 103 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; TabStop = TRUE ; @@ -713,6 +747,7 @@ TabPage TP_SECTION_FTNENDNOTES }; CheckBox CB_END_NUM { + HelpID = "sw:CheckBox:TP_SECTION_FTNENDNOTES:CB_END_NUM"; Pos = MAP_APPFONT ( 16 , 118 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; TabStop = TRUE ; @@ -727,6 +762,7 @@ TabPage TP_SECTION_FTNENDNOTES }; NumericField FLD_END_OFFSET { + HelpID = "sw:NumericField:TP_SECTION_FTNENDNOTES:FLD_END_OFFSET"; Pos = MAP_APPFONT ( 90 , 133 ) ; Size = MAP_APPFONT ( 30 , 12 ) ; Spin = TRUE ; @@ -739,6 +775,7 @@ TabPage TP_SECTION_FTNENDNOTES }; CheckBox CB_END_NUM_FMT { + HelpID = "sw:CheckBox:TP_SECTION_FTNENDNOTES:CB_END_NUM_FMT"; Pos = MAP_APPFONT ( 24 , 150 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; TabStop = TRUE ; @@ -754,6 +791,7 @@ TabPage TP_SECTION_FTNENDNOTES }; Edit ED_END_PREFIX { + HelpID = "sw:Edit:TP_SECTION_FTNENDNOTES:ED_END_PREFIX"; Border = TRUE ; Pos = MAP_APPFONT ( 90 , 163 ) ; Size = MAP_APPFONT ( 30 , 12 ) ; @@ -763,6 +801,7 @@ TabPage TP_SECTION_FTNENDNOTES }; ListBox LB_END_NUMVIEW { + HelpID = "sw:ListBox:TP_SECTION_FTNENDNOTES:LB_END_NUMVIEW"; Border = TRUE ; Pos = MAP_APPFONT ( 123 , 163 ) ; Size = MAP_APPFONT ( 62 , 50 ) ; @@ -780,6 +819,7 @@ TabPage TP_SECTION_FTNENDNOTES }; Edit ED_END_SUFFIX { + HelpID = "sw:Edit:TP_SECTION_FTNENDNOTES:ED_END_SUFFIX"; Border = TRUE ; Pos = MAP_APPFONT ( 219 , 163 ) ; Size = MAP_APPFONT ( 30 , 12 ) ; @@ -811,6 +851,7 @@ TabPage TP_SECTION_INDENTS }; MetricField MF_BEFORE { + HelpID = "sw:MetricField:TP_SECTION_INDENTS:MF_BEFORE"; Border = TRUE ; Pos = MAP_APPFONT ( 135 , 14 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -834,6 +875,7 @@ TabPage TP_SECTION_INDENTS }; MetricField MF_AFTER { + HelpID = "sw:MetricField:TP_SECTION_INDENTS:MF_AFTER"; Border = TRUE ; Pos = MAP_APPFONT ( 135 , 30 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; diff --git a/sw/source/ui/dialog/swdlgfact.cxx b/sw/source/ui/dialog/swdlgfact.cxx index 9af9dfbd0b..284b26135a 100644 --- a/sw/source/ui/dialog/swdlgfact.cxx +++ b/sw/source/ui/dialog/swdlgfact.cxx @@ -451,9 +451,9 @@ String AbstractInsFootNoteDlg_Impl::GetStr() { return pDlg->GetStr(); } -void AbstractInsFootNoteDlg_Impl::SetHelpId( ULONG nHelpId ) +void AbstractInsFootNoteDlg_Impl::SetHelpId( const rtl::OString& sHelpId ) { - pDlg->SetHelpId( nHelpId ); + pDlg->SetHelpId( sHelpId ); } void AbstractInsFootNoteDlg_Impl::SetText( const XubString& rStr ) { diff --git a/sw/source/ui/dialog/swdlgfact.hxx b/sw/source/ui/dialog/swdlgfact.hxx index 8c3355bb6b..3793d6c57f 100644 --- a/sw/source/ui/dialog/swdlgfact.hxx +++ b/sw/source/ui/dialog/swdlgfact.hxx @@ -283,7 +283,7 @@ class AbstractInsFootNoteDlg_Impl : public AbstractInsFootNoteDlg virtual BOOL IsEndNote(); virtual String GetStr(); //from class Window - virtual void SetHelpId( ULONG nHelpId ); + virtual void SetHelpId( const rtl::OString& sHelpId ); virtual void SetText( const XubString& rStr ); }; //for SwInsFootNoteDlg end @@ -582,5 +582,3 @@ struct SwDialogsResMgr }; #endif - - diff --git a/sw/source/ui/dialog/uiregionsw.cxx b/sw/source/ui/dialog/uiregionsw.cxx index 440457f0b1..01c8abcbbe 100644 --- a/sw/source/ui/dialog/uiregionsw.cxx +++ b/sw/source/ui/dialog/uiregionsw.cxx @@ -432,7 +432,7 @@ SwEditRegionDlg::SwEditRegionDlg( Window* pParent, SwWrtShell& rWrtSh ) aTree.SetHelpId(HID_REGION_TREE); aTree.SetSelectionMode( MULTIPLE_SELECTION ); - aTree.SetWindowBits(WB_HASBUTTONSATROOT|WB_CLIPCHILDREN|WB_HSCROLL); + aTree.SetStyle(aTree.GetStyle()|WB_HASBUTTONSATROOT|WB_CLIPCHILDREN|WB_HSCROLL); aTree.SetSpaceBetweenEntries(0); if(bWeb) diff --git a/sw/source/ui/dochdl/selglos.src b/sw/source/ui/dochdl/selglos.src index 81162518c1..5a79079fe7 100644 --- a/sw/source/ui/dochdl/selglos.src +++ b/sw/source/ui/dochdl/selglos.src @@ -33,7 +33,7 @@ // #define DLG_SEL_GLOS 256 ModalDialog DLG_SEL_GLOS { - HelpID = FN_EXPAND_GLOSSARY ; + HelpID = CMD_FN_EXPAND_GLOSSARY ; OutputSize = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 220 , 100 ) ; @@ -68,6 +68,7 @@ ModalDialog DLG_SEL_GLOS }; ListBox LB_GLOS { + HelpID = "sw:ListBox:DLG_SEL_GLOS:LB_GLOS"; Border = TRUE ; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 140 , 74 ) ; diff --git a/sw/source/ui/docvw/AnnotationMenuButton.cxx b/sw/source/ui/docvw/AnnotationMenuButton.cxx index 6022a4646a..c49c689851 100644 --- a/sw/source/ui/docvw/AnnotationMenuButton.cxx +++ b/sw/source/ui/docvw/AnnotationMenuButton.cxx @@ -85,20 +85,13 @@ void AnnotationMenuButton::MouseButtonDown( const MouseEvent& rMEvt ) if ( mrSidebarWin.IsReadOnly() ) { pButtonPopup->EnableItem( FN_REPLY, false ); - pButtonPopup->EnableItem( FN_DELETE_NOTE, false ); + pButtonPopup->EnableItem( FN_DELETE_COMMENT, false ); pButtonPopup->EnableItem( FN_DELETE_NOTE_AUTHOR, false ); pButtonPopup->EnableItem( FN_DELETE_ALL_NOTES, false ); } else { - if ( mrSidebarWin.IsProtected() ) - { - pButtonPopup->EnableItem( FN_DELETE_NOTE, false ); - } - else - { - pButtonPopup->EnableItem( FN_DELETE_NOTE, true ); - } + pButtonPopup->EnableItem( FN_DELETE_COMMENT, !mrSidebarWin.IsProtected() ); pButtonPopup->EnableItem( FN_DELETE_NOTE_AUTHOR, true ); pButtonPopup->EnableItem( FN_DELETE_ALL_NOTES, true ); } diff --git a/sw/source/ui/docvw/AnnotationWin.cxx b/sw/source/ui/docvw/AnnotationWin.cxx index 91ea1e13b0..08fb91dcc3 100644 --- a/sw/source/ui/docvw/AnnotationWin.cxx +++ b/sw/source/ui/docvw/AnnotationWin.cxx @@ -208,7 +208,8 @@ void SwAnnotationWin::InitAnswer(OutlinerParaObject* pText) { //collect our old meta data SwSidebarWin* pWin = Mgr().GetNextPostIt(KEY_PAGEUP, this); - const LocaleDataWrapper& rLocalData = SvtSysLocale().GetLocaleData(); + const SvtSysLocale aSysLocale; + const LocaleDataWrapper& rLocalData = aSysLocale.GetLocaleData(); String aText = String(SW_RES(STR_REPLY)); SwRewriter aRewriter; aRewriter.AddRule(UNDO_ARG1, pWin->GetAuthor()); diff --git a/sw/source/ui/docvw/SidebarWin.cxx b/sw/source/ui/docvw/SidebarWin.cxx index 8caf11c84d..8ce45ae318 100755..100644 --- a/sw/source/ui/docvw/SidebarWin.cxx +++ b/sw/source/ui/docvw/SidebarWin.cxx @@ -389,7 +389,8 @@ void SwSidebarWin::InitControls() void SwSidebarWin::CheckMetaText() { - const LocaleDataWrapper& rLocalData = SvtSysLocale().GetLocaleData(); + const SvtSysLocale aSysLocale; + const LocaleDataWrapper& rLocalData = aSysLocale.GetLocaleData(); String sMeta = GetAuthor(); if (sMeta.Len() == 0) { @@ -934,7 +935,6 @@ void SwSidebarWin::ExecuteCommand(USHORT nSlot) break; } case FN_DELETE_COMMENT: - case FN_DELETE_NOTE: //Delete(); // do not kill the parent of our open popup menu mnEventId = Application::PostUserEvent( LINK( this, SwSidebarWin, DeleteHdl), 0 ); diff --git a/sw/source/ui/docvw/docvw.src b/sw/source/ui/docvw/docvw.src index dcd0f98103..459b673cb1 100644 --- a/sw/source/ui/docvw/docvw.src +++ b/sw/source/ui/docvw/docvw.src @@ -36,56 +36,56 @@ Menu MN_READONLY_POPUP MenuItem { Identifier = MN_READONLY_OPENURL ; - HelpID = SID_OPENDOC ; + HelpId = CMD_SID_OPENDOC ; Text [ en-US ] = "~Open" ; }; MenuItem { Identifier = MN_READONLY_OPENURLNEW ; - HelpID = SID_OPENDOC ; + HelpId = CMD_SID_OPENDOC ; Text [ en-US ] = "Open in New Window" ; }; MenuItem { Identifier = MN_READONLY_EDITDOC ; - HelpID = SID_EDITDOC ; + HelpId = CMD_SID_EDITDOC ; Text [ en-US ] = "~Edit" ; }; MenuItem { Identifier = MN_READONLY_SELECTION_MODE ; - HelpID = FN_READONLY_SELECTION_MODE ; + HelpId = CMD_FN_READONLY_SELECTION_MODE ; Text [ en-US ] = "Select Text"; }; MenuItem { Identifier = MN_READONLY_RELOAD; - HelpID = SID_RELOAD; + HelpId = CMD_SID_RELOAD; Text [ en-US ] = "Re~load"; }; MenuItem { Identifier = MN_READONLY_RELOAD_FRAME; - HelpID = SID_RELOAD; + HelpId = CMD_SID_RELOAD; Text [ en-US ] = "Reload Frame"; }; MenuItem { Identifier = MN_READONLY_SOURCEVIEW ; - HelpID = HID_SOURCEVIEW ; + HelpId = HID_SOURCEVIEW ; Text [ en-US ] = "HT~ML Source" ; }; SEPARATOR MenuItem { Identifier = MN_READONLY_BROWSE_BACKWARD ; - HelpID = SID_BROWSE_BACKWARD ; + HelpId = CMD_SID_BROWSE_BACKWARD ; Text [ en-US ] = "Backwards" ; }; MenuItem { Identifier = MN_READONLY_BROWSE_FORWARD ; - HelpID = SID_BROWSE_FORWARD ; + HelpId = CMD_SID_BROWSE_FORWARD ; Text [ en-US ] = "~Forward" ; }; SEPARATOR @@ -190,14 +190,14 @@ Menu MN_READONLY_POPUP MenuItem { Identifier = SID_WIN_FULLSCREEN; - HelpID = SID_WIN_FULLSCREEN; + HelpId = CMD_SID_WIN_FULLSCREEN; Text [ en-US ] = "Leave Full-Screen Mode" ; }; SEPARATOR MenuItem { Identifier = MN_READONLY_COPY ; - HelpID = SID_COPY; + HelpId = CMD_SID_COPY; Text [ en-US ] = "~Copy" ; }; }; diff --git a/sw/source/ui/docvw/edtwin2.cxx b/sw/source/ui/docvw/edtwin2.cxx index 8aa6c2e766..f84c74f0a2 100644 --- a/sw/source/ui/docvw/edtwin2.cxx +++ b/sw/source/ui/docvw/edtwin2.cxx @@ -304,8 +304,7 @@ void SwEditWin::RequestHelp(const HelpEvent &rEvt) { USHORT nOldSubType = pFld->GetSubType(); ((SwField*)pFld)->SetSubType(nsSwExtendedSubType::SUB_CMD); - sTxt = - pFld->ExpandField(rSh.GetDoc()->IsClipBoard()); + sTxt = pFld->ExpandField(true); ((SwField*)pFld)->SetSubType(nOldSubType); } break; @@ -340,7 +339,7 @@ void SwEditWin::RequestHelp(const HelpEvent &rEvt) break; case RES_DBFLD: - sTxt = ((SwDBField*)pFld)->GetCntnt(TRUE); + sTxt = pFld->GetFieldName(); break; case RES_USERFLD: diff --git a/sw/source/ui/docvw/srcedtw.cxx b/sw/source/ui/docvw/srcedtw.cxx index 2ea48e2a7e..be71b1aa38 100644 --- a/sw/source/ui/docvw/srcedtw.cxx +++ b/sw/source/ui/docvw/srcedtw.cxx @@ -62,6 +62,8 @@ #ifndef _HELPID_H #include <helpid.h> #endif +#include <deque> + struct SwTextPortion @@ -75,17 +77,8 @@ struct SwTextPortion #define MAX_HIGHLIGHTTIME 200 #define SYNTAX_HIGHLIGHT_TIMEOUT 200 -SV_DECL_VARARR(SwTextPortions, SwTextPortion,16,16) - -/* -----------------15.01.97 12.07------------------- - ---------------------------------------------------*/ +typedef std::deque<SwTextPortion> SwTextPortions; -SV_IMPL_VARARR(SwTextPortions, SwTextPortion) - -/*-----------------15.01.97 12.08------------------- - ---------------------------------------------------*/ static void lcl_Highlight(const String& rSource, SwTextPortions& aPortionList) { @@ -101,11 +94,11 @@ static void lcl_Highlight(const String& rSource, SwTextPortions& aPortionList) const USHORT nStrLen = rSource.Len(); - USHORT nInsert = 0; // Anzahl der eingefuegten Portions - USHORT nActPos = 0; //Position, an der '<' gefunden wurde - USHORT nOffset = 0; //Offset von nActPos zur '<' - USHORT nPortStart = USHRT_MAX; // fuer die TextPortion - USHORT nPortEnd = 0; // + USHORT nInsert = 0; // Number of inserted Portions + USHORT nActPos = 0; // Position, at the '<' was found + USHORT nOffset = 0; // Offset of nActPos for '<' + USHORT nPortStart = USHRT_MAX; // For the TextPortion + USHORT nPortEnd = 0; // SwTextPortion aText; while(nActPos < nStrLen) { @@ -122,7 +115,8 @@ static void lcl_Highlight(const String& rSource, SwTextPortions& aPortionList) aText.nStart += 1; aText.nEnd = nActPos - 1; aText.eType = svtools::HTMLUNKNOWN; - aPortionList.Insert(aText, nInsert++); + aPortionList.push_back( aText ); + nInsert++; } sal_Unicode cFollowFirst = rSource.GetChar((xub_StrLen)(nActPos + 1)); sal_Unicode cFollowNext = rSource.GetChar((xub_StrLen)(nActPos + 2)); @@ -212,7 +206,8 @@ static void lcl_Highlight(const String& rSource, SwTextPortions& aPortionList) aTextPortion.nStart = nPortStart + 1; aTextPortion.nEnd = nPortEnd; aTextPortion.eType = eFoundType; - aPortionList.Insert(aTextPortion, nInsert++); + aPortionList.push_back( aTextPortion ); + nInsert++; eFoundType = svtools::HTMLUNKNOWN; } @@ -226,7 +221,8 @@ static void lcl_Highlight(const String& rSource, SwTextPortions& aPortionList) aText.nStart = nPortEnd + 1; aText.nEnd = nActPos - 1; aText.eType = svtools::HTMLUNKNOWN; - aPortionList.Insert(aText, nInsert++); + aPortionList.push_back( aText ); + nInsert++; } } @@ -749,7 +745,7 @@ void SwSrcEditWindow::ImpDoHighlight( const String& rSource, USHORT nLineOff ) SwTextPortions aPortionList; lcl_Highlight(rSource, aPortionList); - USHORT nCount = aPortionList.Count(); + size_t nCount = aPortionList.size(); if ( !nCount ) return; @@ -757,7 +753,7 @@ void SwSrcEditWindow::ImpDoHighlight( const String& rSource, USHORT nLineOff ) if ( rLast.nStart > rLast.nEnd ) // Nur bis Bug von MD behoeben { nCount--; - aPortionList.Remove( nCount); + aPortionList.pop_back(); if ( !nCount ) return; } @@ -777,7 +773,7 @@ void SwSrcEditWindow::ImpDoHighlight( const String& rSource, USHORT nLineOff ) #ifdef DBG_UTIL USHORT nLine = aPortionList[0].nLine; #endif - for ( USHORT i = 0; i < nCount; i++ ) + for ( size_t i = 0; i < nCount; i++ ) { SwTextPortion& r = aPortionList[i]; DBG_ASSERT( r.nLine == nLine, "doch mehrere Zeilen ?" ); @@ -796,7 +792,7 @@ void SwSrcEditWindow::ImpDoHighlight( const String& rSource, USHORT nLineOff ) } } - for ( USHORT i = 0; i < aPortionList.Count(); i++ ) + for ( size_t i = 0; i < aPortionList.size(); i++ ) { SwTextPortion& r = aPortionList[i]; if ( r.nStart > r.nEnd ) // Nur bis Bug von MD behoeben diff --git a/sw/source/ui/envelp/envfmt.src b/sw/source/ui/envelp/envfmt.src index 16987430b7..ccca0c6b44 100644 --- a/sw/source/ui/envelp/envfmt.src +++ b/sw/source/ui/envelp/envfmt.src @@ -57,6 +57,7 @@ TabPage TP_ENV_FMT }; MetricField FLD_ADDR_LEFT { + HelpID = "sw:MetricField:TP_ENV_FMT:FLD_ADDR_LEFT"; Border = TRUE ; Pos = MAP_APPFONT ( 60 , 25 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -81,6 +82,7 @@ TabPage TP_ENV_FMT }; MetricField FLD_ADDR_TOP { + HelpID = "sw:MetricField:TP_ENV_FMT:FLD_ADDR_TOP"; Border = TRUE ; Pos = MAP_APPFONT ( 60 , 41 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -105,6 +107,7 @@ TabPage TP_ENV_FMT }; MenuButton BTN_ADDR_EDIT { + HelpID = "sw:MenuButton:TP_ENV_FMT:BTN_ADDR_EDIT"; Pos = MAP_APPFONT ( 194 , 24 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; TabStop = TRUE ; @@ -132,6 +135,7 @@ TabPage TP_ENV_FMT }; MetricField FLD_SEND_LEFT { + HelpID = "sw:MetricField:TP_ENV_FMT:FLD_SEND_LEFT"; Border = TRUE ; Pos = MAP_APPFONT ( 60 , 78 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -156,6 +160,7 @@ TabPage TP_ENV_FMT }; MetricField FLD_SEND_TOP { + HelpID = "sw:MetricField:TP_ENV_FMT:FLD_SEND_TOP"; Border = TRUE ; Pos = MAP_APPFONT ( 60 , 94 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -180,6 +185,7 @@ TabPage TP_ENV_FMT }; MenuButton BTN_SEND_EDIT { + HelpID = "sw:MenuButton:TP_ENV_FMT:BTN_SEND_EDIT"; Pos = MAP_APPFONT ( 194 , 77 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "Edit" ; @@ -200,6 +206,7 @@ TabPage TP_ENV_FMT }; ListBox BOX_SIZE_FORMAT { + HelpID = "sw:ListBox:TP_ENV_FMT:BOX_SIZE_FORMAT"; Border = TRUE ; Pos = MAP_APPFONT ( 60 , 120 ) ; Size = MAP_APPFONT ( 40 , 72 ) ; @@ -215,6 +222,7 @@ TabPage TP_ENV_FMT }; MetricField FLD_SIZE_WIDTH { + HelpID = "sw:MetricField:TP_ENV_FMT:FLD_SIZE_WIDTH"; Border = TRUE ; Pos = MAP_APPFONT ( 60 , 136 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -239,6 +247,7 @@ TabPage TP_ENV_FMT }; MetricField FLD_SIZE_HEIGHT { + HelpID = "sw:MetricField:TP_ENV_FMT:FLD_SIZE_HEIGHT"; Border = TRUE ; Pos = MAP_APPFONT ( 60 , 152 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; diff --git a/sw/source/ui/envelp/envlop.src b/sw/source/ui/envelp/envlop.src index 2c025633b0..8f27ff976d 100644 --- a/sw/source/ui/envelp/envlop.src +++ b/sw/source/ui/envelp/envlop.src @@ -86,6 +86,7 @@ TabPage TP_ENV_ENV }; MultiLineEdit EDT_ADDR { + HelpID = "sw:MultiLineEdit:TP_ENV_ENV:EDT_ADDR"; Border = TRUE ; Pos = MAP_APPFONT ( 6 , 17 ) ; Size = MAP_APPFONT ( 124 , 66 ) ; @@ -103,6 +104,7 @@ TabPage TP_ENV_ENV }; ListBox LB_DATABASE { + HelpID = "sw:ListBox:TP_ENV_ENV:LB_DATABASE"; Border = TRUE ; Pos = MAP_APPFONT ( 162 , 17 ) ; Size = MAP_APPFONT ( 82 , 50 ) ; @@ -117,6 +119,7 @@ TabPage TP_ENV_ENV }; ListBox LB_TABLE { + HelpID = "sw:ListBox:TP_ENV_ENV:LB_TABLE"; Border = TRUE ; Pos = MAP_APPFONT ( 162 , 44 ) ; Size = MAP_APPFONT ( 82 , 50 ) ; @@ -125,6 +128,7 @@ TabPage TP_ENV_ENV }; ImageButton BTN_INSERT { + HelpID = "sw:ImageButton:TP_ENV_ENV:BTN_INSERT"; Pos = MAP_APPFONT ( 137 , 71 ) ; Size = MAP_APPFONT ( 18 , 12 ) ; SYMBOL = IMAGEBUTTON_ARROW_LEFT ; @@ -138,6 +142,7 @@ TabPage TP_ENV_ENV }; ListBox LB_DBFIELD { + HelpID = "sw:ListBox:TP_ENV_ENV:LB_DBFIELD"; Border = TRUE ; Pos = MAP_APPFONT ( 162 , 71 ) ; Size = MAP_APPFONT ( 82 , 50 ) ; @@ -146,6 +151,7 @@ TabPage TP_ENV_ENV }; CheckBox BOX_SEND { + HelpID = "sw:CheckBox:TP_ENV_ENV:BOX_SEND"; Pos = MAP_APPFONT ( 6 , 105 ) ; Size = MAP_APPFONT ( 124 , 8 ) ; Text [ en-US ] = "~Sender" ; @@ -153,6 +159,7 @@ TabPage TP_ENV_ENV }; MultiLineEdit EDT_SEND { + HelpID = "sw:MultiLineEdit:TP_ENV_ENV:EDT_SEND"; Border = TRUE ; Pos = MAP_APPFONT ( 6 , 116) ; Size = MAP_APPFONT ( 124 , 63 ) ; diff --git a/sw/source/ui/envelp/envlop1.cxx b/sw/source/ui/envelp/envlop1.cxx index 12b0f1f38f..2c68ee52a6 100644 --- a/sw/source/ui/envelp/envlop1.cxx +++ b/sw/source/ui/envelp/envlop1.cxx @@ -103,9 +103,9 @@ void SwEnvPreview::Paint(const Rectangle &) USHORT nPageW = (USHORT) Max(rItem.lWidth, rItem.lHeight), nPageH = (USHORT) Min(rItem.lWidth, rItem.lHeight); - float fx = static_cast< float >(GetOutputSizePixel().Width () / nPageW), - fy = static_cast< float >(GetOutputSizePixel().Height() / nPageH), - f = static_cast< float >(0.8 * ( fx < fy ? fx : fy )); + float fx = (float)GetOutputSizePixel().Width () / (float)nPageW, + fy = (float)GetOutputSizePixel().Height() / (float)nPageH, + f = 0.8f * ( fx < fy ? fx : fy ); Color aBack = rSettings.GetWindowColor( ); Color aFront = SwViewOption::GetFontColor(); diff --git a/sw/source/ui/envelp/envprt.src b/sw/source/ui/envelp/envprt.src index 25a92fcda2..6b5801b0cf 100644 --- a/sw/source/ui/envelp/envprt.src +++ b/sw/source/ui/envelp/envprt.src @@ -49,37 +49,38 @@ TabPage TP_ENV_PRT ToolBoxItem { Identifier = ITM_HOR_LEFT ; - HelpID = ITM_HOR_LEFT ; + HelpID = HID_ITM_HOR_LEFT ; }; ToolBoxItem { Identifier = ITM_HOR_CNTR ; - HelpID = ITM_HOR_CNTR ; + HelpID = HID_ITM_HOR_CNTR ; }; ToolBoxItem { Identifier = ITM_HOR_RGHT ; - HelpID = ITM_HOR_RGHT ; + HelpID = HID_ITM_HOR_RGHT ; }; ToolBoxItem { Identifier = ITM_VER_LEFT ; - HelpID = ITM_VER_LEFT ; + HelpID = HID_ITM_VER_LEFT ; }; ToolBoxItem { Identifier = ITM_VER_CNTR ; - HelpID = ITM_VER_CNTR ; + HelpID = HID_ITM_VER_CNTR ; }; ToolBoxItem { Identifier = ITM_VER_RGHT ; - HelpID = ITM_VER_RGHT ; + HelpID = HID_ITM_VER_RGHT ; }; }; }; RadioButton BTN_TOP { + HelpID = "sw:RadioButton:TP_ENV_PRT:BTN_TOP"; Pos = MAP_APPFONT ( 18 , 42 ) ; Size = MAP_APPFONT ( 179 , 10 ) ; Text [ en-US ] = "~Print from top" ; @@ -89,6 +90,7 @@ TabPage TP_ENV_PRT }; RadioButton BTN_BOTTOM { + HelpID = "sw:RadioButton:TP_ENV_PRT:BTN_BOTTOM"; Pos = MAP_APPFONT ( 18 , 56 ) ; Size = MAP_APPFONT ( 179 , 10 ) ; Text [ en-US ] = "Print from ~bottom" ; @@ -103,6 +105,7 @@ TabPage TP_ENV_PRT }; MetricField FLD_RIGHT { + HelpID = "sw:MetricField:TP_ENV_PRT:FLD_RIGHT"; Border = TRUE ; Pos = MAP_APPFONT ( 86 , 72 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -127,6 +130,7 @@ TabPage TP_ENV_PRT }; MetricField FLD_DOWN { + HelpID = "sw:MetricField:TP_ENV_PRT:FLD_DOWN"; Border = TRUE ; Pos = MAP_APPFONT ( 86 , 88 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -157,6 +161,7 @@ TabPage TP_ENV_PRT }; PushButton BTN_PRTSETUP { + HelpID = "sw:PushButton:TP_ENV_PRT:BTN_PRTSETUP"; Pos = MAP_APPFONT ( 198 , 114 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; TabStop = TRUE ; diff --git a/sw/source/ui/envelp/label.src b/sw/source/ui/envelp/label.src index f2200a0c44..dbcea27b94 100644 --- a/sw/source/ui/envelp/label.src +++ b/sw/source/ui/envelp/label.src @@ -110,6 +110,7 @@ TabPage TP_LAB_LAB }; CheckBox BOX_ADDR { + HelpID = "sw:CheckBox:TP_LAB_LAB:BOX_ADDR"; Pos = MAP_APPFONT ( 67 , 14 ) ; Size = MAP_APPFONT ( 50 , 10 ) ; TabStop = TRUE ; @@ -117,6 +118,7 @@ TabPage TP_LAB_LAB }; MultiLineEdit EDT_WRITING { + HelpID = "sw:MultiLineEdit:TP_LAB_LAB:EDT_WRITING"; Border = TRUE ; Pos = MAP_APPFONT ( 12 , 27 ) ; Size = MAP_APPFONT ( 105 , 89 ) ; @@ -134,6 +136,7 @@ TabPage TP_LAB_LAB }; ListBox LB_DATABASE { + HelpID = "sw:ListBox:TP_LAB_LAB:LB_DATABASE"; Border = TRUE ; Pos = MAP_APPFONT ( 149 , 27 ) ; Size = MAP_APPFONT ( 99 , 70 ) ; @@ -148,6 +151,7 @@ TabPage TP_LAB_LAB }; ListBox LB_TABLE { + HelpID = "sw:ListBox:TP_LAB_LAB:LB_TABLE"; Border = TRUE ; Pos = MAP_APPFONT ( 149 , 56 ) ; Size = MAP_APPFONT ( 99 , 70 ) ; @@ -156,6 +160,7 @@ TabPage TP_LAB_LAB }; ImageButton BTN_INSERT { + HelpID = "sw:ImageButton:TP_LAB_LAB:BTN_INSERT"; Pos = MAP_APPFONT ( 124 , 92 ) ; Size = MAP_APPFONT ( 18 , 12 ) ; SYMBOL = IMAGEBUTTON_ARROW_LEFT ; @@ -169,6 +174,7 @@ TabPage TP_LAB_LAB }; ListBox LB_DBFIELD { + HelpID = "sw:ListBox:TP_LAB_LAB:LB_DBFIELD"; Border = TRUE ; Pos = MAP_APPFONT ( 149 , 92 ) ; Size = MAP_APPFONT ( 99 , 70 ) ; @@ -184,6 +190,7 @@ TabPage TP_LAB_LAB }; RadioButton BTN_CONT { + HelpID = "sw:RadioButton:TP_LAB_LAB:BTN_CONT"; Pos = MAP_APPFONT ( 12 , 137 ) ; Size = MAP_APPFONT ( 65 , 10 ) ; TabStop = TRUE ; @@ -192,6 +199,7 @@ TabPage TP_LAB_LAB }; RadioButton BTN_SHEET { + HelpID = "sw:RadioButton:TP_LAB_LAB:BTN_SHEET"; Pos = MAP_APPFONT ( 12 , 153 ) ; Size = MAP_APPFONT ( 65 , 10 ) ; Text [ en-US ] = "~Sheet" ; @@ -205,6 +213,7 @@ TabPage TP_LAB_LAB }; ListBox BOX_MAKE { + HelpID = "sw:ListBox:TP_LAB_LAB:BOX_MAKE"; Border = TRUE ; Pos = MAP_APPFONT ( 124 , 136 ) ; Size = MAP_APPFONT ( 124 , 90 ) ; @@ -220,6 +229,7 @@ TabPage TP_LAB_LAB }; ListBox BOX_TYPE { + HelpID = "sw:ListBox:TP_LAB_LAB:BOX_TYPE"; Border = TRUE ; Pos = MAP_APPFONT ( 124 , 152 ) ; Size = MAP_APPFONT ( 124 , 90 ) ; @@ -255,6 +265,7 @@ FloatingWindow DLG_SYNC_BTN Hide = TRUE ; PushButton BTN_SYNC { + HelpID = "sw:PushButton:DLG_SYNC_BTN:BTN_SYNC"; Pos = MAP_APPFONT ( 1 , 1 ) ; Size = MAP_APPFONT ( WIDTH - 1 , HEIGHT - 1 ) ; Text [ en-US ] = "Synchronize Labels" ; @@ -291,6 +302,7 @@ TabPage TP_VISITING_CARDS }; ListBox LB_AUTO_TEXT_GROUP { + HelpID = "sw:ListBox:TP_VISITING_CARDS:LB_AUTO_TEXT_GROUP"; Pos = MAP_APPFONT ( 12 , 164) ; Size = MAP_APPFONT ( 109 , 50 ) ; Border = TRUE ; @@ -332,18 +344,21 @@ TabPage TP_PRIVATE_DATA }; Edit ED_FIRSTNAME { + HelpID = "sw:Edit:TP_PRIVATE_DATA:ED_FIRSTNAME"; Pos = MAP_APPFONT ( 105 , 14 ) ; Size = MAP_APPFONT ( 55 , 12 ) ; Border = TRUE ; }; Edit ED_NAME { + HelpID = "sw:Edit:TP_PRIVATE_DATA:ED_NAME"; Pos = MAP_APPFONT ( 163 , 14 ) ; Size = MAP_APPFONT ( 55 , 12 ) ; Border = TRUE ; }; Edit ED_SHORTCUT { + HelpID = "sw:Edit:TP_PRIVATE_DATA:ED_SHORTCUT"; Pos = MAP_APPFONT ( 221 , 14 ) ; Size = MAP_APPFONT ( 27 , 12 ) ; Border = TRUE ; @@ -356,18 +371,21 @@ TabPage TP_PRIVATE_DATA }; Edit ED_FIRSTNAME_2 { + HelpID = "sw:Edit:TP_PRIVATE_DATA:ED_FIRSTNAME_2"; Pos = MAP_APPFONT ( 105 , 30 ) ; Size = MAP_APPFONT ( 55 , 12 ) ; Border = TRUE ; }; Edit ED_NAME_2 { + HelpID = "sw:Edit:TP_PRIVATE_DATA:ED_NAME_2"; Pos = MAP_APPFONT ( 163 , 30 ) ; Size = MAP_APPFONT ( 55 , 12 ) ; Border = TRUE ; }; Edit ED_SHORTCUT_2 { + HelpID = "sw:Edit:TP_PRIVATE_DATA:ED_SHORTCUT_2"; Pos = MAP_APPFONT ( 221 , 30 ) ; Size = MAP_APPFONT ( 27 , 12 ) ; Border = TRUE ; @@ -380,6 +398,7 @@ TabPage TP_PRIVATE_DATA }; Edit ED_STREET { + HelpID = "sw:Edit:TP_PRIVATE_DATA:ED_STREET"; Pos = MAP_APPFONT ( 105 , 46 ) ; Size = MAP_APPFONT ( 143 , 12 ) ; Border = TRUE ; @@ -392,12 +411,14 @@ TabPage TP_PRIVATE_DATA }; Edit ED_ZIP { + HelpID = "sw:Edit:TP_PRIVATE_DATA:ED_ZIP"; Pos = MAP_APPFONT ( 105 , 62 ) ; Size = MAP_APPFONT ( 50 , 12 ) ; Border = TRUE ; }; Edit ED_CITY { + HelpID = "sw:Edit:TP_PRIVATE_DATA:ED_CITY"; Pos = MAP_APPFONT ( 158 , 62 ) ; Size = MAP_APPFONT ( 90 , 12 ) ; Border = TRUE ; @@ -410,12 +431,14 @@ TabPage TP_PRIVATE_DATA }; Edit ED_COUNTRY { + HelpID = "sw:Edit:TP_PRIVATE_DATA:ED_COUNTRY"; Pos = MAP_APPFONT ( 105 , 78 ) ; Size = MAP_APPFONT ( 71 , 12 ) ; Border = TRUE ; }; Edit ED_STATE { + HelpID = "sw:Edit:TP_PRIVATE_DATA:ED_STATE"; Pos = MAP_APPFONT ( 179 , 78 ) ; Size = MAP_APPFONT ( 69 , 12 ) ; Border = TRUE ; @@ -428,12 +451,14 @@ TabPage TP_PRIVATE_DATA }; Edit ED_TITLE { + HelpID = "sw:Edit:TP_PRIVATE_DATA:ED_TITLE"; Pos = MAP_APPFONT ( 105 , 94 ) ; Size = MAP_APPFONT ( 71 , 12 ) ; Border = TRUE ; }; Edit ED_PROFESSION { + HelpID = "sw:Edit:TP_PRIVATE_DATA:ED_PROFESSION"; Pos = MAP_APPFONT ( 179 , 94 ) ; Size = MAP_APPFONT ( 69 , 12 ) ; Border = TRUE ; @@ -446,12 +471,14 @@ TabPage TP_PRIVATE_DATA }; Edit ED_PHONE { + HelpID = "sw:Edit:TP_PRIVATE_DATA:ED_PHONE"; Pos = MAP_APPFONT ( 105 , 110 ) ; Size = MAP_APPFONT ( 71 , 12 ) ; Border = TRUE ; }; Edit ED_MOBILE { + HelpID = "sw:Edit:TP_PRIVATE_DATA:ED_MOBILE"; Pos = MAP_APPFONT ( 179 , 110 ) ; Size = MAP_APPFONT ( 69 , 12 ) ; Border = TRUE ; @@ -464,6 +491,7 @@ TabPage TP_PRIVATE_DATA }; Edit ED_FAX { + HelpID = "sw:Edit:TP_PRIVATE_DATA:ED_FAX"; Pos = MAP_APPFONT ( 105 , 126 ) ; Size = MAP_APPFONT ( 143 , 12 ) ; Border = TRUE ; @@ -476,12 +504,14 @@ TabPage TP_PRIVATE_DATA }; Edit ED_WWW { + HelpID = "sw:Edit:TP_PRIVATE_DATA:ED_WWW"; Pos = MAP_APPFONT ( 105 , 142) ; Size = MAP_APPFONT ( 71 , 12 ) ; Border = TRUE ; }; Edit ED_MAIL { + HelpID = "sw:Edit:TP_PRIVATE_DATA:ED_MAIL"; Pos = MAP_APPFONT ( 179 , 142) ; Size = MAP_APPFONT ( 69 , 12 ) ; Border = TRUE ; @@ -506,6 +536,7 @@ TabPage TP_BUSINESS_DATA }; Edit ED_COMP { + HelpID = "sw:Edit:TP_BUSINESS_DATA:ED_COMP"; Pos = MAP_APPFONT ( 105 , 14) ; Size = MAP_APPFONT ( 143 , 12 ) ; Border = TRUE ; @@ -518,6 +549,7 @@ TabPage TP_BUSINESS_DATA }; Edit ED_COMP_EXT { + HelpID = "sw:Edit:TP_BUSINESS_DATA:ED_COMP_EXT"; Pos = MAP_APPFONT ( 105 , 30) ; Size = MAP_APPFONT ( 143 , 12 ) ; Border = TRUE ; @@ -530,6 +562,7 @@ TabPage TP_BUSINESS_DATA }; Edit ED_SLOGAN { + HelpID = "sw:Edit:TP_BUSINESS_DATA:ED_SLOGAN"; Pos = MAP_APPFONT ( 105 , 46) ; Size = MAP_APPFONT ( 143 , 12 ) ; Border = TRUE ; @@ -542,6 +575,7 @@ TabPage TP_BUSINESS_DATA }; Edit ED_STREET { + HelpID = "sw:Edit:TP_BUSINESS_DATA:ED_STREET"; Pos = MAP_APPFONT ( 105 , 62) ; Size = MAP_APPFONT ( 143 , 12 ) ; Border = TRUE ; @@ -554,12 +588,14 @@ TabPage TP_BUSINESS_DATA }; Edit ED_ZIP { + HelpID = "sw:Edit:TP_BUSINESS_DATA:ED_ZIP"; Pos = MAP_APPFONT ( 105 , 78) ; Size = MAP_APPFONT ( 50 , 12 ) ; Border = TRUE ; }; Edit ED_CITY { + HelpID = "sw:Edit:TP_BUSINESS_DATA:ED_CITY"; Pos = MAP_APPFONT ( 158 , 78) ; Size = MAP_APPFONT ( 90 , 12 ) ; Border = TRUE ; @@ -572,12 +608,14 @@ TabPage TP_BUSINESS_DATA }; Edit ED_COUNTRY { + HelpID = "sw:Edit:TP_BUSINESS_DATA:ED_COUNTRY"; Pos = MAP_APPFONT ( 105 , 94) ; Size = MAP_APPFONT ( 71 , 12 ) ; Border = TRUE ; }; Edit ED_STATE { + HelpID = "sw:Edit:TP_BUSINESS_DATA:ED_STATE"; Pos = MAP_APPFONT ( 179 , 94) ; Size = MAP_APPFONT ( 69 , 12 ) ; Border = TRUE ; @@ -590,6 +628,7 @@ TabPage TP_BUSINESS_DATA }; Edit ED_POSITION { + HelpID = "sw:Edit:TP_BUSINESS_DATA:ED_POSITION"; Pos = MAP_APPFONT ( 105 , 110) ; Size = MAP_APPFONT ( 143 , 12 ) ; Border = TRUE ; @@ -602,12 +641,14 @@ TabPage TP_BUSINESS_DATA }; Edit ED_PHONE { + HelpID = "sw:Edit:TP_BUSINESS_DATA:ED_PHONE"; Pos = MAP_APPFONT ( 105 , 126) ; Size = MAP_APPFONT ( 71 , 12 ) ; Border = TRUE ; }; Edit ED_MOBILE { + HelpID = "sw:Edit:TP_BUSINESS_DATA:ED_MOBILE"; Pos = MAP_APPFONT ( 179 , 126) ; Size = MAP_APPFONT ( 69 , 12 ) ; Border = TRUE ; @@ -620,6 +661,7 @@ TabPage TP_BUSINESS_DATA }; Edit ED_FAX { + HelpID = "sw:Edit:TP_BUSINESS_DATA:ED_FAX"; Pos = MAP_APPFONT ( 105 , 142) ; Size = MAP_APPFONT ( 143 , 12 ) ; Border = TRUE ; @@ -632,12 +674,14 @@ TabPage TP_BUSINESS_DATA }; Edit ED_WWW { + HelpID = "sw:Edit:TP_BUSINESS_DATA:ED_WWW"; Pos = MAP_APPFONT ( 105 , 158) ; Size = MAP_APPFONT ( 71 , 12 ) ; Border = TRUE ; }; Edit ED_MAIL { + HelpID = "sw:Edit:TP_BUSINESS_DATA:ED_MAIL"; Pos = MAP_APPFONT ( 179 , 158) ; Size = MAP_APPFONT ( 69 , 12 ) ; Border = TRUE ; diff --git a/sw/source/ui/envelp/label1.cxx b/sw/source/ui/envelp/label1.cxx index 05c2cf90be..a9f6af7ba6 100644 --- a/sw/source/ui/envelp/label1.cxx +++ b/sw/source/ui/envelp/label1.cxx @@ -724,7 +724,7 @@ SwVisitingCardPage::SwVisitingCardPage(Window* pParent, const SfxItemSet& rSet) pExampleFrame(0) { FreeResource(); - aAutoTextLB.SetWindowBits( WB_HSCROLL ); + aAutoTextLB.SetStyle( aAutoTextLB.GetStyle() | WB_HSCROLL ); aAutoTextLB.SetSpaceBetweenEntries(0); aAutoTextLB.SetSelectionMode( SINGLE_SELECTION ); aAutoTextLB.SetHelpId(HID_BUSINESS_CARD_CONTENT); diff --git a/sw/source/ui/envelp/labfmt.src b/sw/source/ui/envelp/labfmt.src index 8d39f44b58..107791b2e8 100644 --- a/sw/source/ui/envelp/labfmt.src +++ b/sw/source/ui/envelp/labfmt.src @@ -61,6 +61,7 @@ TabPage TP_LAB_FMT }; MetricField FLD_HDIST { + HelpID = "sw:MetricField:TP_LAB_FMT:FLD_HDIST"; Border = TRUE ; Pos = MAP_APPFONT ( 60 , 17 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -81,6 +82,7 @@ TabPage TP_LAB_FMT }; MetricField FLD_VDIST { + HelpID = "sw:MetricField:TP_LAB_FMT:FLD_VDIST"; Border = TRUE ; Pos = MAP_APPFONT ( 60 , 33 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -101,6 +103,7 @@ TabPage TP_LAB_FMT }; MetricField FLD_WIDTH { + HelpID = "sw:MetricField:TP_LAB_FMT:FLD_WIDTH"; Border = TRUE ; Pos = MAP_APPFONT ( 60 , 49 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -121,6 +124,7 @@ TabPage TP_LAB_FMT }; MetricField FLD_HEIGHT { + HelpID = "sw:MetricField:TP_LAB_FMT:FLD_HEIGHT"; Border = TRUE ; Pos = MAP_APPFONT ( 60 , 65 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -141,6 +145,7 @@ TabPage TP_LAB_FMT }; MetricField FLD_LEFT { + HelpID = "sw:MetricField:TP_LAB_FMT:FLD_LEFT"; Border = TRUE ; Pos = MAP_APPFONT ( 60 , 81 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -163,6 +168,7 @@ TabPage TP_LAB_FMT }; MetricField FLD_UPPER { + HelpID = "sw:MetricField:TP_LAB_FMT:FLD_UPPER"; Border = TRUE ; Pos = MAP_APPFONT ( 60 , 97 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -185,6 +191,7 @@ TabPage TP_LAB_FMT }; NumericField FLD_COLUMNS { + HelpID = "sw:NumericField:TP_LAB_FMT:FLD_COLUMNS"; Border = TRUE ; Pos = MAP_APPFONT ( 60 , 113 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -204,6 +211,7 @@ TabPage TP_LAB_FMT }; NumericField FLD_ROWS { + HelpID = "sw:NumericField:TP_LAB_FMT:FLD_ROWS"; Border = TRUE ; Pos = MAP_APPFONT ( 60 , 129 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -216,6 +224,7 @@ TabPage TP_LAB_FMT }; PushButton PB_SAVE { + HelpID = "sw:PushButton:TP_LAB_FMT:PB_SAVE"; Pos = MAP_APPFONT ( 50 , 148 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "~Save..."; @@ -270,6 +279,7 @@ ModalDialog DLG_SAVE_LABEL }; ComboBox CB_MAKE { + HelpID = "sw:ComboBox:DLG_SAVE_LABEL:CB_MAKE"; Pos = MAP_APPFONT ( 65 , 15 ) ; Size = MAP_APPFONT ( 100 , 50 ) ; Border = TRUE; @@ -284,6 +294,7 @@ ModalDialog DLG_SAVE_LABEL }; Edit ED_TYPE { + HelpID = "sw:Edit:DLG_SAVE_LABEL:ED_TYPE"; Pos = MAP_APPFONT ( 65 , 30 ) ; Size = MAP_APPFONT ( 100 , 12 ) ; Border = TRUE; diff --git a/sw/source/ui/envelp/labprt.src b/sw/source/ui/envelp/labprt.src index b6452f56ce..7e1b5c4c58 100644 --- a/sw/source/ui/envelp/labprt.src +++ b/sw/source/ui/envelp/labprt.src @@ -37,6 +37,7 @@ TabPage TP_LAB_PRT Hide = TRUE ; RadioButton BTN_PAGE { + HelpID = "sw:RadioButton:TP_LAB_PRT:BTN_PAGE"; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; TabStop = TRUE ; @@ -45,6 +46,7 @@ TabPage TP_LAB_PRT }; RadioButton BTN_SINGLE { + HelpID = "sw:RadioButton:TP_LAB_PRT:BTN_SINGLE"; Pos = MAP_APPFONT ( 12 , 28 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "~Single label" ; @@ -58,6 +60,7 @@ TabPage TP_LAB_PRT }; NumericField FLD_COL { + HelpID = "sw:NumericField:TP_LAB_PRT:FLD_COL"; Border = TRUE ; Pos = MAP_APPFONT ( 160 , 27 ) ; Size = MAP_APPFONT ( 24 , 12 ) ; @@ -77,6 +80,7 @@ TabPage TP_LAB_PRT }; NumericField FLD_ROW { + HelpID = "sw:NumericField:TP_LAB_PRT:FLD_ROW"; Border = TRUE ; Pos = MAP_APPFONT ( 224 , 27 ) ; Size = MAP_APPFONT ( 24 , 12 ) ; @@ -89,6 +93,7 @@ TabPage TP_LAB_PRT }; CheckBox CB_SYNCHRON { + HelpID = "sw:CheckBox:TP_LAB_PRT:CB_SYNCHRON"; Pos = MAP_APPFONT ( 12 , 43 ) ; Size = MAP_APPFONT ( 120 , 10 ) ; TabStop = TRUE ; @@ -109,6 +114,7 @@ TabPage TP_LAB_PRT }; PushButton BTN_PRTSETUP { + HelpID = "sw:PushButton:TP_LAB_PRT:BTN_PRTSETUP"; Pos = MAP_APPFONT ( 198 , 70 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; TabStop = TRUE ; diff --git a/sw/source/ui/envelp/mailmrge.cxx b/sw/source/ui/envelp/mailmrge.cxx index a80438afe8..76595d5543 100644 --- a/sw/source/ui/envelp/mailmrge.cxx +++ b/sw/source/ui/envelp/mailmrge.cxx @@ -779,7 +779,7 @@ bool SwMailMergeDlg::ExecQryShell() m_aSelection.realloc(nEnd - nStart + 1); Any* pSelection = m_aSelection.getArray(); - for (sal_Int32 i = nStart; i != nEnd; ++i, ++pSelection) + for (sal_Int32 i = nStart; i <= nEnd; ++i, ++pSelection) *pSelection <<= i; } else if (aAllRB.IsChecked() ) diff --git a/sw/source/ui/envelp/mailmrge.src b/sw/source/ui/envelp/mailmrge.src index f87f08478a..48eedbf3ce 100644 --- a/sw/source/ui/envelp/mailmrge.src +++ b/sw/source/ui/envelp/mailmrge.src @@ -41,7 +41,7 @@ ModalDialog DLG_MAILMERGE _MAIL_MERGE_STRING_ Moveable = TRUE ; Sizeable = TRUE; - HelpID = FN_QRY_MERGE ; + HelpID = CMD_FN_QRY_MERGE ; Window WIN_BEAMER { Pos = MAP_APPFONT ( 6 , 3 ) ; @@ -49,6 +49,7 @@ ModalDialog DLG_MAILMERGE }; RadioButton RB_ALL { + HelpID = "sw:RadioButton:DLG_MAILMERGE:RB_ALL"; Pos = MAP_APPFONT ( 12 , 97 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; Text [ en-US ] = "~All" ; @@ -56,6 +57,7 @@ ModalDialog DLG_MAILMERGE }; RadioButton RB_MARKED { + HelpID = "sw:RadioButton:DLG_MAILMERGE:RB_MARKED"; Pos = MAP_APPFONT ( 12 , 110 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; Text [ en-US ] = "~Selected records" ; @@ -63,6 +65,7 @@ ModalDialog DLG_MAILMERGE }; RadioButton RB_FROM { + HelpID = "sw:RadioButton:DLG_MAILMERGE:RB_FROM"; Pos = MAP_APPFONT ( 12 , 123 ) ; Size = MAP_APPFONT ( 33 , 10 ) ; Text [ en-US ] = "~From:" ; @@ -70,6 +73,7 @@ ModalDialog DLG_MAILMERGE }; NumericField NF_FROM { + HelpID = "sw:NumericField:DLG_MAILMERGE:NF_FROM"; Border = TRUE ; Pos = MAP_APPFONT ( 48 , 122 ) ; Size = MAP_APPFONT ( 24 , 12 ) ; @@ -87,6 +91,7 @@ ModalDialog DLG_MAILMERGE }; NumericField NF_TO { + HelpID = "sw:NumericField:DLG_MAILMERGE:NF_TO"; Border = TRUE ; Pos = MAP_APPFONT ( 105 , 122 ) ; Size = MAP_APPFONT ( 24 , 12 ) ; @@ -103,6 +108,7 @@ ModalDialog DLG_MAILMERGE }; RadioButton RB_PRINTER { + HelpID = "sw:RadioButton:DLG_MAILMERGE:RB_PRINTER"; Pos = MAP_APPFONT ( 144 , 97 ) ; Size = MAP_APPFONT ( 53 , 10 ) ; Check = TRUE ; @@ -111,6 +117,7 @@ ModalDialog DLG_MAILMERGE }; RadioButton RB_MAILING { + HelpID = "sw:RadioButton:DLG_MAILMERGE:RB_MAILING"; Pos = MAP_APPFONT ( 200 , 97 ) ; Size = MAP_APPFONT ( 53 , 10 ) ; TabStop = TRUE ; @@ -118,6 +125,7 @@ ModalDialog DLG_MAILMERGE }; RadioButton RB_FILE { + HelpID = "sw:RadioButton:DLG_MAILMERGE:RB_FILE"; Pos = MAP_APPFONT ( 256 , 97 ) ; Size = MAP_APPFONT ( 56 , 10 ) ; TabStop = TRUE ; @@ -125,6 +133,7 @@ ModalDialog DLG_MAILMERGE }; CheckBox CB_SINGLE_JOBS { + HelpID = "sw:CheckBox:DLG_MAILMERGE:CB_SINGLE_JOBS"; Pos = MAP_APPFONT ( 150 , 112 ) ; Size = MAP_APPFONT ( 142 , 10 ) ; TabStop = TRUE ; @@ -138,6 +147,7 @@ ModalDialog DLG_MAILMERGE }; RadioButton RB_SAVE_SINGLE_DOC { + HelpID = "sw:RadioButton:DLG_MAILMERGE:RB_SAVE_SINGLE_DOC"; Pos = MAP_APPFONT ( 150, 139 ) ; Size = MAP_APPFONT ( 150 , 10 ) ; TabStop = TRUE ; @@ -145,6 +155,7 @@ ModalDialog DLG_MAILMERGE }; RadioButton RB_SAVE_INDIVIDUAL { + HelpID = "sw:RadioButton:DLG_MAILMERGE:RB_SAVE_INDIVIDUAL"; Pos = MAP_APPFONT ( 150, 152 ) ; Size = MAP_APPFONT ( 150 , 10 ) ; TabStop = TRUE ; @@ -152,6 +163,7 @@ ModalDialog DLG_MAILMERGE }; CheckBox RB_GENERATE_FROM_DATABASE { + HelpID = "sw:CheckBox:DLG_MAILMERGE:RB_GENERATE_FROM_DATABASE"; Pos = MAP_APPFONT ( 156, 168 ) ; Size = MAP_APPFONT ( 144 , 10 ) ; TabStop = TRUE ; @@ -165,6 +177,7 @@ ModalDialog DLG_MAILMERGE }; ListBox LB_COLUMN { + HelpID = "sw:ListBox:DLG_MAILMERGE:LB_COLUMN"; Border = TRUE ; Pos = MAP_APPFONT ( 205 , 182 ) ; Size = MAP_APPFONT ( 103 , 84 ) ; @@ -179,6 +192,7 @@ ModalDialog DLG_MAILMERGE }; Edit ED_PATH { + HelpID = "sw:Edit:DLG_MAILMERGE:ED_PATH"; Pos = MAP_APPFONT ( 205 , 198 ) ; Size = MAP_APPFONT ( 86 , 12 ) ; Border = TRUE ; @@ -186,6 +200,7 @@ ModalDialog DLG_MAILMERGE }; PushButton PB_PATH { + HelpID = "sw:PushButton:DLG_MAILMERGE:PB_PATH"; Pos = MAP_APPFONT ( 294 , 198 ) ; Size = MAP_APPFONT ( 14 , 12 ) ; // Soll Groesse des Edits haben (12)! @@ -200,6 +215,7 @@ ModalDialog DLG_MAILMERGE }; ListBox LB_FILTER { + HelpID = "sw:ListBox:DLG_MAILMERGE:LB_FILTER"; Border = TRUE ; Pos = MAP_APPFONT ( 205 , 214 ) ; Size = MAP_APPFONT ( 103 , 84 ) ; @@ -209,6 +225,7 @@ ModalDialog DLG_MAILMERGE }; ListBox LB_ADDRESSFLD { + HelpID = "sw:ListBox:DLG_MAILMERGE:LB_ADDRESSFLD"; Border = TRUE ; Pos = MAP_APPFONT ( 220 , 110 ) ; Size = MAP_APPFONT ( 74 , 84 ) ; @@ -226,6 +243,7 @@ ModalDialog DLG_MAILMERGE }; Edit ED_SUBJECT { + HelpID = "sw:Edit:DLG_MAILMERGE:ED_SUBJECT"; Border = TRUE ; Pos = MAP_APPFONT ( 220 , 127 ) ; Size = MAP_APPFONT ( 88 , 12 ) ; @@ -241,6 +259,7 @@ ModalDialog DLG_MAILMERGE }; Edit ED_ATTACH { + HelpID = "sw:Edit:DLG_MAILMERGE:ED_ATTACH"; Border = TRUE ; Pos = MAP_APPFONT ( 220 , 140 ) ; Size = MAP_APPFONT ( 72 , 12 ) ; @@ -250,6 +269,7 @@ ModalDialog DLG_MAILMERGE }; PushButton PB_ATTACH { + HelpID = "sw:PushButton:DLG_MAILMERGE:PB_ATTACH"; Pos = MAP_APPFONT ( 294 , 140 ) ; Size = MAP_APPFONT ( 14 , 12 ) ; // Soll Groesse des Edits haben (12)! @@ -266,6 +286,7 @@ ModalDialog DLG_MAILMERGE }; CheckBox CB_FORMAT_HTML { + HelpID = "sw:CheckBox:DLG_MAILMERGE:CB_FORMAT_HTML"; Pos = MAP_APPFONT ( 220 , 156 ) ; Size = MAP_APPFONT ( 90 , 10 ) ; Disable = TRUE ; @@ -275,6 +296,7 @@ ModalDialog DLG_MAILMERGE }; CheckBox CB_FORMAT_RTF { + HelpID = "sw:CheckBox:DLG_MAILMERGE:CB_FORMAT_RTF"; Pos = MAP_APPFONT ( 220 , 169 ) ; Size = MAP_APPFONT ( 90 , 10 ) ; Disable = TRUE ; @@ -283,6 +305,7 @@ ModalDialog DLG_MAILMERGE }; CheckBox CB_FORMAT_SW { + HelpID = "sw:CheckBox:DLG_MAILMERGE:CB_FORMAT_SW"; Pos = MAP_APPFONT ( 220, 182 ) ; Size = MAP_APPFONT ( 90 , 10 ) ; Disable = TRUE ; @@ -340,6 +363,7 @@ ModalDialog DLG_MERGE_CREATE }; RadioButton RB_THISDOC { + HelpID = "sw:RadioButton:DLG_MERGE_CREATE:RB_THISDOC"; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Check = TRUE; @@ -348,6 +372,7 @@ ModalDialog DLG_MERGE_CREATE }; RadioButton RB_TEMPLATE { + HelpID = "sw:RadioButton:DLG_MERGE_CREATE:RB_TEMPLATE"; Pos = MAP_APPFONT ( 12 , 27 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; TabStop = TRUE ; @@ -387,6 +412,7 @@ ModalDialog DLG_MERGE_FIELD_CONNECTIONS }; RadioButton RB_USEEXISTING { + HelpID = "sw:RadioButton:DLG_MERGE_FIELD_CONNECTIONS:RB_USEEXISTING"; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 130 , 10 ) ; Check = TRUE; @@ -395,6 +421,7 @@ ModalDialog DLG_MERGE_FIELD_CONNECTIONS }; RadioButton RB_CREATENEW { + HelpID = "sw:RadioButton:DLG_MERGE_FIELD_CONNECTIONS:RB_CREATENEW"; Pos = MAP_APPFONT ( 12 , 27 ) ; Size = MAP_APPFONT ( 130 , 10 ) ; TabStop = TRUE ; diff --git a/sw/source/ui/fldui/DropDownFieldDialog.cxx b/sw/source/ui/fldui/DropDownFieldDialog.cxx index a32e6634b2..823ce5570c 100644 --- a/sw/source/ui/fldui/DropDownFieldDialog.cxx +++ b/sw/source/ui/fldui/DropDownFieldDialog.cxx @@ -32,21 +32,14 @@ #undef SW_DLLIMPLEMENTATION #endif - #include <wrtsh.hxx> #include <fldbas.hxx> #include <fldmgr.hxx> -#ifndef _MSGBOX_HXX #include <vcl/msgbox.hxx> -#endif #include <DropDownFieldDialog.hxx> #include <flddropdown.hxx> -#ifndef _FLDUI_HRC #include <fldui.hrc> -#endif -#ifndef _SW_DROPDOWNFIELDDIALOG_HRC #include <DropDownFieldDialog.hrc> -#endif using namespace ::com::sun::star; @@ -124,13 +117,12 @@ void sw::DropDownFieldDialog::Apply() { rSh.StartAllAction(); - SwDropDownField * pCopy = (SwDropDownField *) pDropField->Copy(); + ::std::auto_ptr<SwDropDownField> const pCopy( + static_cast<SwDropDownField *>( pDropField->CopyField() ) ); pCopy->SetPar1(sSelect); rSh.SwEditShell::UpdateFlds(*pCopy); - delete pCopy; - rSh.SetUndoNoResetModified(); rSh.EndAllAction(); } diff --git a/sw/source/ui/fldui/DropDownFieldDialog.src b/sw/source/ui/fldui/DropDownFieldDialog.src index 25f6c4ac15..2d5c98cfe5 100644 --- a/sw/source/ui/fldui/DropDownFieldDialog.src +++ b/sw/source/ui/fldui/DropDownFieldDialog.src @@ -45,6 +45,7 @@ ModalDialog DLG_FLD_DROPDOWN }; ListBox LB_LISTITEMS { + HelpID = "sw:ListBox:DLG_FLD_DROPDOWN:LB_LISTITEMS"; Border = TRUE ; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 115 , 99 ) ; @@ -67,6 +68,7 @@ ModalDialog DLG_FLD_DROPDOWN }; PushButton PB_NEXT { + HelpID = "sw:PushButton:DLG_FLD_DROPDOWN:PB_NEXT"; Pos = MAP_APPFONT ( 139 , 40 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; TabStop = TRUE ; @@ -81,6 +83,7 @@ ModalDialog DLG_FLD_DROPDOWN }; PushButton PB_EDIT { + HelpID = "sw:PushButton:DLG_FLD_DROPDOWN:PB_EDIT"; Pos = MAP_APPFONT ( 139 , 99 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; TabStop = TRUE ; diff --git a/sw/source/ui/fldui/changedb.cxx b/sw/source/ui/fldui/changedb.cxx index bd35309e68..17759f7a3b 100644 --- a/sw/source/ui/fldui/changedb.cxx +++ b/sw/source/ui/fldui/changedb.cxx @@ -115,7 +115,7 @@ SwChangeDBDlg::SwChangeDBDlg(SwView& rVw) : aAddDBPB.SetClickHdl(LINK(this, SwChangeDBDlg, AddDBHdl)); aUsedDBTLB.SetSelectionMode(MULTIPLE_SELECTION); - aUsedDBTLB.SetWindowBits(WB_HASLINES|WB_CLIPCHILDREN|WB_SORT|WB_HASBUTTONS|WB_HASBUTTONSATROOT|WB_HSCROLL); + aUsedDBTLB.SetStyle(aUsedDBTLB.GetStyle()|WB_HASLINES|WB_CLIPCHILDREN|WB_SORT|WB_HASBUTTONS|WB_HASBUTTONSATROOT|WB_HSCROLL); aUsedDBTLB.SetSpaceBetweenEntries(0); aUsedDBTLB.SetNodeBitmaps( aImageList.GetImage(IMG_COLLAPSE), diff --git a/sw/source/ui/fldui/changedb.src b/sw/source/ui/fldui/changedb.src index a461a1d7ac..8c4e21d5b3 100644 --- a/sw/source/ui/fldui/changedb.src +++ b/sw/source/ui/fldui/changedb.src @@ -31,6 +31,7 @@ ModalDialog DLG_CHANGE_DB { + HelpID = "sw:ModalDialog:DLG_CHANGE_DB"; OutputSize = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 286 , 175 ) ; @@ -74,6 +75,7 @@ ModalDialog DLG_CHANGE_DB }; PushButton PB_ADDDB { + HelpID = "sw:PushButton:DLG_CHANGE_DB:PB_ADDDB"; Pos = MAP_APPFONT ( 118 , 90 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "Browse..." ; diff --git a/sw/source/ui/fldui/flddb.src b/sw/source/ui/fldui/flddb.src index e7bc8b99f9..d88d8790ba 100644 --- a/sw/source/ui/fldui/flddb.src +++ b/sw/source/ui/fldui/flddb.src @@ -43,6 +43,7 @@ TabPage TP_FLD_DB }; ListBox LB_DBTYPE { + HelpID = "sw:ListBox:TP_FLD_DB:LB_DBTYPE"; Border = TRUE ; Pos = MAP_APPFONT ( 6 , 14 ) ; Size = MAP_APPFONT ( 76 , 104 ) ; @@ -67,6 +68,7 @@ TabPage TP_FLD_DB }; Edit ED_DBCONDITION { + HelpID = "sw:Edit:TP_FLD_DB:ED_DBCONDITION"; Border = TRUE ; Pos = MAP_APPFONT ( 6 , 137 ) ; Size = MAP_APPFONT ( 76 , 12 ) ; @@ -82,6 +84,7 @@ TabPage TP_FLD_DB }; Edit ED_DBSETNUMBER { + HelpID = "sw:Edit:TP_FLD_DB:ED_DBSETNUMBER"; Border = TRUE ; Pos = MAP_APPFONT ( 6 , 167 ) ; Size = MAP_APPFONT ( 76 , 12 ) ; @@ -110,6 +113,7 @@ TabPage TP_FLD_DB }; PushButton PB_ADDDB { + HelpID = "sw:PushButton:TP_FLD_DB:PB_ADDDB"; Pos = MAP_APPFONT ( 198 , 121) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "Browse..." ; @@ -117,6 +121,7 @@ TabPage TP_FLD_DB RadioButton RB_DBOWNFORMAT { + HelpID = "sw:RadioButton:TP_FLD_DB:RB_DBOWNFORMAT"; Pos = MAP_APPFONT ( 94 , 153 ) ; Size = MAP_APPFONT ( 150 , 10 ) ; Check = TRUE ; @@ -124,12 +129,14 @@ TabPage TP_FLD_DB }; RadioButton RB_DBFORMAT { + HelpID = "sw:RadioButton:TP_FLD_DB:RB_DBFORMAT"; Pos = MAP_APPFONT ( 94 , 166 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; Text [ en-US ] = "User-defined" ; }; ListBox LB_DBNUMFORMAT { + HelpID = "sw:ListBox:TP_FLD_DB:LB_DBNUMFORMAT"; Border = TRUE ; Pos = MAP_APPFONT ( 195 , 164 ) ; Size = MAP_APPFONT ( 53 , 60 ) ; @@ -139,6 +146,7 @@ TabPage TP_FLD_DB }; ListBox LB_DBFORMAT { + HelpID = "sw:ListBox:TP_FLD_DB:LB_DBFORMAT"; Border = TRUE ; Pos = MAP_APPFONT ( 195 , 163 ) ; Size = MAP_APPFONT ( 53 , 60 ) ; diff --git a/sw/source/ui/fldui/flddinf.cxx b/sw/source/ui/fldui/flddinf.cxx index dabb6b91e5..9243037bb2 100644 --- a/sw/source/ui/fldui/flddinf.cxx +++ b/sw/source/ui/fldui/flddinf.cxx @@ -89,7 +89,7 @@ SwFldDokInfPage::SwFldDokInfPage(Window* pWindow, const SfxItemSet& rCoreSet ) : aTypeTLB.SetHelpId(HID_FIELD_DINF_TYPE); aTypeTLB.SetSelectionMode(SINGLE_SELECTION); - aTypeTLB.SetWindowBits(WB_HASLINES|WB_CLIPCHILDREN|WB_SORT|WB_HASBUTTONS|WB_HASBUTTONSATROOT|WB_HSCROLL); + aTypeTLB.SetStyle(aTypeTLB.GetStyle()|WB_HASLINES|WB_CLIPCHILDREN|WB_SORT|WB_HASBUTTONS|WB_HASBUTTONSATROOT|WB_HSCROLL); // Font nicht setzen, damit der Font des Controls uebernommen wird! // Sonst bei falschem Font Bug an OV. aTypeTLB.SetSpaceBetweenEntries(0); diff --git a/sw/source/ui/fldui/flddinf.src b/sw/source/ui/fldui/flddinf.src index 9f65b88fa3..8f68883456 100644 --- a/sw/source/ui/fldui/flddinf.src +++ b/sw/source/ui/fldui/flddinf.src @@ -57,6 +57,7 @@ TabPage TP_FLD_DOKINF }; ListBox LB_DOKINFSELECTION { + HelpID = "sw:ListBox:TP_FLD_DOKINF:LB_DOKINFSELECTION"; Border = TRUE ; Pos = MAP_APPFONT ( 88 , 16 ) ; Size = MAP_APPFONT ( 76 , 163 ) ; @@ -78,6 +79,7 @@ TabPage TP_FLD_DOKINF }; ListBox LB_DOKINFFORMAT { + HelpID = "sw:ListBox:TP_FLD_DOKINF:LB_DOKINFFORMAT"; Border = TRUE ; Pos = MAP_APPFONT ( 170 , 16 ) ; Size = MAP_APPFONT ( 84 , 148 ) ; @@ -86,6 +88,7 @@ TabPage TP_FLD_DOKINF }; CheckBox CB_DOKINFFIXEDCONTENT { + HelpID = "sw:CheckBox:TP_FLD_DOKINF:CB_DOKINFFIXEDCONTENT"; Pos = MAP_APPFONT ( 170 , 170 ) ; Size = MAP_APPFONT ( 72 , 10 ) ; TabStop = TRUE ; diff --git a/sw/source/ui/fldui/flddok.src b/sw/source/ui/fldui/flddok.src index 6a60f8b53f..4723a55425 100644 --- a/sw/source/ui/fldui/flddok.src +++ b/sw/source/ui/fldui/flddok.src @@ -43,6 +43,7 @@ TabPage TP_FLD_DOK }; ListBox LB_DOKTYPE { + HelpID = "sw:ListBox:TP_FLD_DOK:LB_DOKTYPE"; Border = TRUE ; Pos = MAP_APPFONT ( 6 , 14 ) ; Size = MAP_APPFONT ( 76 , 165 ) ; @@ -59,6 +60,7 @@ TabPage TP_FLD_DOK }; ListBox LB_DOKSELECTION { + HelpID = "sw:ListBox:TP_FLD_DOK:LB_DOKSELECTION"; Border = TRUE ; Pos = MAP_APPFONT ( 88 , 15 ) ; Size = MAP_APPFONT ( 76 , 165 ) ; @@ -73,6 +75,7 @@ TabPage TP_FLD_DOK }; ListBox LB_DOKFORMAT { + HelpID = "sw:ListBox:TP_FLD_DOK:LB_DOKFORMAT"; Border = TRUE ; Pos = MAP_APPFONT ( 170 , 14 ) ; Size = MAP_APPFONT ( 84 , 151 ) ; @@ -83,6 +86,7 @@ TabPage TP_FLD_DOK }; ListBox LB_DOKNUMFORMAT { + HelpID = "sw:ListBox:TP_FLD_DOK:LB_DOKNUMFORMAT"; Border = TRUE ; Pos = MAP_APPFONT ( 170 , 14 ) ; Size = MAP_APPFONT ( 84 , 151 ) ; @@ -100,6 +104,7 @@ TabPage TP_FLD_DOK }; Edit ED_DOKVALUE { + HelpID = "sw:Edit:TP_FLD_DOK:ED_DOKVALUE"; Border = TRUE ; Pos = MAP_APPFONT ( 170 , 167 ) ; Size = MAP_APPFONT ( 84 , 12 ) ; @@ -109,6 +114,7 @@ TabPage TP_FLD_DOK }; NumericField ED_DOKLEVEL { + HelpID = "sw:NumericField:TP_FLD_DOK:ED_DOKLEVEL"; Border = TRUE ; Pos = MAP_APPFONT ( 170 , 167 ) ; Size = MAP_APPFONT ( 84 , 12 ) ; @@ -125,6 +131,7 @@ TabPage TP_FLD_DOK }; NumericField ED_DOKDATEOFF { + HelpID = "sw:NumericField:TP_FLD_DOK:ED_DOKDATEOFF"; Border = TRUE ; Pos = MAP_APPFONT ( 170 , 167 ) ; Size = MAP_APPFONT ( 84 , 12 ) ; @@ -138,6 +145,7 @@ TabPage TP_FLD_DOK }; CheckBox CB_DOKFIXEDCONTENT { + HelpID = "sw:CheckBox:TP_FLD_DOK:CB_DOKFIXEDCONTENT"; Pos = MAP_APPFONT ( 170 , 170 ) ; Size = MAP_APPFONT ( 72 , 10 ) ; TabStop = TRUE ; diff --git a/sw/source/ui/fldui/fldedt.cxx b/sw/source/ui/fldui/fldedt.cxx index 76f0fbcfc7..832dabf344 100644 --- a/sw/source/ui/fldui/fldedt.cxx +++ b/sw/source/ui/fldui/fldedt.cxx @@ -195,21 +195,21 @@ SfxTabPage* SwFldEditDlg::CreatePage(USHORT nGroup) { // TabPage erzeugen SfxTabPage* pTabPage = 0; - USHORT nHelpId = 0; + const char* pHelpId = 0; switch (nGroup) { case GRP_DOC: pTabPage = SwFldDokPage::Create(this, *(SfxItemSet*)0); - nHelpId = HID_EDIT_FLD_DOK; + pHelpId = HID_EDIT_FLD_DOK; break; case GRP_FKT: pTabPage = SwFldFuncPage::Create(this, *(SfxItemSet*)0); - nHelpId = HID_EDIT_FLD_FUNC; + pHelpId = HID_EDIT_FLD_FUNC; break; case GRP_REF: pTabPage = SwFldRefPage::Create(this, *(SfxItemSet*)0); - nHelpId = HID_EDIT_FLD_REF; + pHelpId = HID_EDIT_FLD_REF; break; case GRP_REG: { @@ -233,21 +233,22 @@ SfxTabPage* SwFldEditDlg::CreatePage(USHORT nGroup) // } pSet->Put( SfxUnoAnyItem( SID_DOCINFO, uno::makeAny(xUDProps) ) ); pTabPage = SwFldDokInfPage::Create(this, *pSet); - nHelpId = HID_EDIT_FLD_DOKINF; + pHelpId = HID_EDIT_FLD_DOKINF; break; } case GRP_DB: pTabPage = SwFldDBPage::Create(this, *(SfxItemSet*)0); static_cast<SwFldDBPage*>(pTabPage)->SetWrtShell(*pSh); - nHelpId = HID_EDIT_FLD_DB; + pHelpId = HID_EDIT_FLD_DB; break; case GRP_VAR: pTabPage = SwFldVarPage::Create(this, *(SfxItemSet*)0); - nHelpId = HID_EDIT_FLD_VAR; + pHelpId = HID_EDIT_FLD_VAR; break; } - pTabPage->SetHelpId(nHelpId); + + pTabPage->SetHelpId(pHelpId); static_cast<SwFldPage*>(pTabPage)->SetWrtShell(pSh); SetTabPage(pTabPage); diff --git a/sw/source/ui/fldui/fldfunc.src b/sw/source/ui/fldui/fldfunc.src index ca67c448fb..aa5e42b078 100644 --- a/sw/source/ui/fldui/fldfunc.src +++ b/sw/source/ui/fldui/fldfunc.src @@ -43,6 +43,7 @@ TabPage TP_FLD_FUNC }; ListBox LB_FUNCTYPE { + HelpID = "sw:ListBox:TP_FLD_FUNC:LB_FUNCTYPE"; Border = TRUE ; Pos = MAP_APPFONT ( 6 , 14 ) ; Size = MAP_APPFONT ( 76 , 165 ) ; @@ -60,6 +61,7 @@ TabPage TP_FLD_FUNC }; ListBox LB_FUNCSELECTION { + HelpID = "sw:ListBox:TP_FLD_FUNC:LB_FUNCSELECTION"; Border = TRUE ; Pos = MAP_APPFONT ( 88 , 14 ) ; Size = MAP_APPFONT ( 76 , 165 ) ; @@ -77,6 +79,7 @@ TabPage TP_FLD_FUNC }; ListBox LB_FUNCFORMAT { + HelpID = "sw:ListBox:TP_FLD_FUNC:LB_FUNCFORMAT"; Border = TRUE ; Pos = MAP_APPFONT ( 88 , 14 ) ; Size = MAP_APPFONT ( 76 , 165 ) ; @@ -91,6 +94,7 @@ TabPage TP_FLD_FUNC }; Edit ED_FUNCNAME { + HelpID = "sw:Edit:TP_FLD_FUNC:ED_FUNCNAME"; Border = TRUE ; Pos = MAP_APPFONT ( 170 , 14 ) ; Size = MAP_APPFONT ( 84 , 12 ) ; @@ -106,6 +110,7 @@ TabPage TP_FLD_FUNC }; Edit ED_FUNCVALUE { + HelpID = "sw:Edit:TP_FLD_FUNC:ED_FUNCVALUE"; Border = TRUE ; Pos = MAP_APPFONT ( 170 , 41 ) ; Size = MAP_APPFONT ( 84 , 12 ) ; @@ -122,6 +127,7 @@ TabPage TP_FLD_FUNC }; Edit ED_FUNCCOND1 { + HelpID = "sw:Edit:TP_FLD_FUNC:ED_FUNCCOND1"; Border = TRUE ; Pos = MAP_APPFONT ( 170 , 41 ) ; Size = MAP_APPFONT ( 84 , 12 ) ; @@ -139,6 +145,7 @@ TabPage TP_FLD_FUNC }; Edit ED_FUNCCOND2 { + HelpID = "sw:Edit:TP_FLD_FUNC:ED_FUNCCOND2"; Border = TRUE ; Pos = MAP_APPFONT ( 170 , 68 ) ; Size = MAP_APPFONT ( 84 , 12 ) ; @@ -148,6 +155,7 @@ TabPage TP_FLD_FUNC }; PushButton BT_FUNCMACRO { + HelpID = "sw:PushButton:TP_FLD_FUNC:BT_FUNCMACRO"; Pos = MAP_APPFONT ( 204 , 165 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "~Macro..." ; @@ -163,6 +171,7 @@ TabPage TP_FLD_FUNC }; Edit ED_LISTITEM { + HelpID = "sw:Edit:TP_FLD_FUNC:ED_LISTITEM"; Border = TRUE ; Pos = MAP_APPFONT ( 170 , 14 ) ; Size = MAP_APPFONT ( 84 , 12 ) ; @@ -172,6 +181,7 @@ TabPage TP_FLD_FUNC }; PushButton PB_LISTADD { + HelpID = "sw:PushButton:TP_FLD_FUNC:PB_LISTADD"; Pos = MAP_APPFONT ( 170 , 29 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Hide = TRUE; @@ -186,6 +196,7 @@ TabPage TP_FLD_FUNC }; ListBox LB_LISTITEMS { + HelpID = "sw:ListBox:TP_FLD_FUNC:LB_LISTITEMS"; Border = TRUE ; Pos = MAP_APPFONT ( 170 , 57 ) ; Size = MAP_APPFONT ( 83 , 44 ) ; @@ -195,6 +206,7 @@ TabPage TP_FLD_FUNC }; PushButton PB_LISTREMOVE { + HelpID = "sw:PushButton:TP_FLD_FUNC:PB_LISTREMOVE"; Pos = MAP_APPFONT ( 203 , 104 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Hide = TRUE; @@ -202,6 +214,7 @@ TabPage TP_FLD_FUNC }; PushButton PB_LISTUP { + HelpID = "sw:PushButton:TP_FLD_FUNC:PB_LISTUP"; Pos = MAP_APPFONT ( 203 , 121 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Hide = TRUE; @@ -209,6 +222,7 @@ TabPage TP_FLD_FUNC }; PushButton PB_LISTDOWN { + HelpID = "sw:PushButton:TP_FLD_FUNC:PB_LISTDOWN"; Pos = MAP_APPFONT ( 203 , 138 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Hide = TRUE; @@ -223,6 +237,7 @@ TabPage TP_FLD_FUNC }; Edit ED_LISTNAME { + HelpID = "sw:Edit:TP_FLD_FUNC:ED_LISTNAME"; Border = TRUE ; Pos = MAP_APPFONT ( 170 , 167 ) ; Size = MAP_APPFONT ( 84 , 12 ) ; diff --git a/sw/source/ui/fldui/fldref.cxx b/sw/source/ui/fldui/fldref.cxx index 10ee25b477..5b7b70b5f9 100644 --- a/sw/source/ui/fldui/fldref.cxx +++ b/sw/source/ui/fldui/fldref.cxx @@ -124,7 +124,7 @@ SwFldRefPage::SwFldRefPage(Window* pParent, const SfxItemSet& rCoreSet ) : // --> OD 2007-11-21 #i83479# aSelectionToolTipLB.SetSelectHdl( LINK(this, SwFldRefPage, SubTypeHdl) ); aSelectionToolTipLB.SetDoubleClickHdl( LINK(this, SwFldRefPage, InsertHdl) ); - aSelectionToolTipLB.SetWindowBits( aSelectionToolTipLB.GetWindowBits() | WB_HSCROLL ); + aSelectionToolTipLB.SetStyle( aSelectionToolTipLB.GetStyle() | WB_HSCROLL ); aSelectionToolTipLB.SetSpaceBetweenEntries(1); aSelectionToolTipLB.SetHighlightRange(); // <-- diff --git a/sw/source/ui/fldui/fldref.src b/sw/source/ui/fldui/fldref.src index 8abf02e980..c3aa0f737e 100644 --- a/sw/source/ui/fldui/fldref.src +++ b/sw/source/ui/fldui/fldref.src @@ -43,6 +43,7 @@ TabPage TP_FLD_REF }; ListBox LB_REFTYPE { + HelpID = "sw:ListBox:TP_FLD_REF:LB_REFTYPE"; Border = TRUE ; Pos = MAP_APPFONT ( 6 , 14 ) ; Size = MAP_APPFONT ( 76 , 165 ) ; @@ -58,6 +59,7 @@ TabPage TP_FLD_REF }; ListBox LB_REFSELECTION { + HelpID = "sw:ListBox:TP_FLD_REF:LB_REFSELECTION"; Border = TRUE ; Pos = MAP_APPFONT ( 88 , 14 ) ; Size = MAP_APPFONT ( 166 , 73 ) ; @@ -82,6 +84,7 @@ TabPage TP_FLD_REF }; ListBox LB_REFFORMAT { + HelpID = "sw:ListBox:TP_FLD_REF:LB_REFFORMAT"; Border = TRUE ; Pos = MAP_APPFONT ( 88 , 104 ) ; Size = MAP_APPFONT ( 76 , 75 ) ; @@ -98,6 +101,7 @@ TabPage TP_FLD_REF }; Edit ED_REFNAME { + HelpID = "sw:Edit:TP_FLD_REF:ED_REFNAME"; Border = TRUE ; Pos = MAP_APPFONT ( 170 , 104 ) ; Size = MAP_APPFONT ( 84 , 12 ) ; @@ -114,6 +118,7 @@ TabPage TP_FLD_REF }; Edit ED_REFVALUE { + HelpID = "sw:Edit:TP_FLD_REF:ED_REFVALUE"; Border = TRUE ; Pos = MAP_APPFONT ( 170 , 136 ) ; Size = MAP_APPFONT ( 84 , 12 ) ; diff --git a/sw/source/ui/fldui/fldvar.src b/sw/source/ui/fldui/fldvar.src index eda28b7fb4..4c42c971d2 100644 --- a/sw/source/ui/fldui/fldvar.src +++ b/sw/source/ui/fldui/fldvar.src @@ -44,6 +44,7 @@ TabPage TP_FLD_VAR }; ListBox LB_VARTYPE { + HelpID = "sw:ListBox:TP_FLD_VAR:LB_VARTYPE"; Border = TRUE ; Pos = MAP_APPFONT ( 6 , 14 ) ; Size = MAP_APPFONT ( 76 , 135 ) ; @@ -60,6 +61,7 @@ TabPage TP_FLD_VAR }; ListBox LB_VARSELECTION { + HelpID = "sw:ListBox:TP_FLD_VAR:LB_VARSELECTION"; Border = TRUE ; Pos = MAP_APPFONT ( 88 , 14 ) ; Size = MAP_APPFONT ( 76 , 135 ) ; @@ -75,6 +77,7 @@ TabPage TP_FLD_VAR }; ListBox LB_VARFORMAT { + HelpID = "sw:ListBox:TP_FLD_VAR:LB_VARFORMAT"; Border = TRUE ; Pos = MAP_APPFONT ( 170 , 14 ) ; Size = MAP_APPFONT ( 84 , 123 ) ; @@ -83,6 +86,7 @@ TabPage TP_FLD_VAR }; ListBox LB_VARNUMFORMAT { + HelpID = "sw:ListBox:TP_FLD_VAR:LB_VARNUMFORMAT"; Border = TRUE ; Pos = MAP_APPFONT ( 170 , 14 ) ; Size = MAP_APPFONT ( 84 , 123 ) ; @@ -91,6 +95,7 @@ TabPage TP_FLD_VAR }; CheckBox CB_VARINVISIBLE { + HelpID = "sw:CheckBox:TP_FLD_VAR:CB_VARINVISIBLE"; Pos = MAP_APPFONT ( 170 , 141 ) ; Size = MAP_APPFONT ( 84 , 10 ) ; Text [ en-US ] = "Invisi~ble" ; @@ -112,6 +117,7 @@ TabPage TP_FLD_VAR }; ListBox LB_VARCHAPTERLEVEL { + HelpID = "sw:ListBox:TP_FLD_VAR:LB_VARCHAPTERLEVEL"; Border = TRUE ; Hide = TRUE ; Pos = MAP_APPFONT ( 208 , 123 ) ; @@ -132,6 +138,7 @@ TabPage TP_FLD_VAR }; Edit ED_VARSEPARATOR { + HelpID = "sw:Edit:TP_FLD_VAR:ED_VARSEPARATOR"; Pos = MAP_APPFONT ( 208 , 138 ) ; Size = MAP_APPFONT ( 46 , 12 ) ; Border = TRUE ; @@ -148,6 +155,7 @@ TabPage TP_FLD_VAR }; Edit ED_VARNAME { + HelpID = "sw:Edit:TP_FLD_VAR:ED_VARNAME"; Border = TRUE ; Pos = MAP_APPFONT ( 6 , 166 ) ; Size = MAP_APPFONT ( 76 , 12 ) ; @@ -163,6 +171,7 @@ TabPage TP_FLD_VAR }; Edit ED_VARVALUE { + HelpID = "sw:Edit:TP_FLD_VAR:ED_VARVALUE"; Border = TRUE ; Pos = MAP_APPFONT ( 88 , 166 ) ; Size = MAP_APPFONT ( 76 , 12 ) ; diff --git a/sw/source/ui/fldui/inpdlg.cxx b/sw/source/ui/fldui/inpdlg.cxx index 002b312af8..a197147021 100644 --- a/sw/source/ui/fldui/inpdlg.cxx +++ b/sw/source/ui/fldui/inpdlg.cxx @@ -32,13 +32,7 @@ #undef SW_DLLIMPLEMENTATION #endif - - -#define _INPDLG_CXX - -#ifndef _MSGBOX_HXX //autogen #include <vcl/msgbox.hxx> -#endif #include <unotools/charclass.hxx> #include <editeng/unolingu.hxx> #include <wrtsh.hxx> @@ -48,12 +42,8 @@ #include <inpdlg.hxx> #include <fldmgr.hxx> -#ifndef _FLDUI_HRC #include <fldui.hrc> -#endif -#ifndef _INPDLG_HRC #include <inpdlg.hrc> -#endif /*-------------------------------------------------------------------- @@ -128,7 +118,9 @@ SwFldInputDlg::SwFldInputDlg( Window *pParent, SwWrtShell &rS, //values are formatted - formulas are not CharClass aCC( SvxCreateLocale( pSetFld->GetLanguage() )); if( aCC.isNumeric( sFormula )) - aStr = pSetFld->Expand(); + { + aStr = pSetFld->ExpandField(true); + } else aStr = sFormula; aLabelED.SetText( pSetFld->GetPromptText() ); diff --git a/sw/source/ui/fldui/inpdlg.src b/sw/source/ui/fldui/inpdlg.src index f615b68f48..8cd70d8247 100644 --- a/sw/source/ui/fldui/inpdlg.src +++ b/sw/source/ui/fldui/inpdlg.src @@ -46,6 +46,7 @@ ModalDialog DLG_FLD_INPUT };*/ Edit ED_LABEL { + HelpID = "sw:Edit:DLG_FLD_INPUT:ED_LABEL"; Border = TRUE ; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 115 , 12 ) ; @@ -56,6 +57,7 @@ ModalDialog DLG_FLD_INPUT }; MultiLineEdit ED_EDIT { + HelpID = "sw:MultiLineEdit:DLG_FLD_INPUT:ED_EDIT"; Border = TRUE ; Pos = MAP_APPFONT ( 12 , 32 ) ; Size = MAP_APPFONT ( 115 , 72 ) ; @@ -83,6 +85,7 @@ ModalDialog DLG_FLD_INPUT }; PushButton PB_NEXT { + HelpID = "sw:PushButton:DLG_FLD_INPUT:PB_NEXT"; Pos = MAP_APPFONT ( 139 , 40 ) ; Size = MAP_APPFONT ( 50 , 15 ) ; TabStop = TRUE ; diff --git a/sw/source/ui/fldui/javaedit.src b/sw/source/ui/fldui/javaedit.src index ffeb2b84e8..cbcc83f055 100644 --- a/sw/source/ui/fldui/javaedit.src +++ b/sw/source/ui/fldui/javaedit.src @@ -33,6 +33,7 @@ // RID_SVXDLG_POSTIT ----------------------------------------------------- ModalDialog DLG_JAVAEDIT { + HelpID = "sw:ModalDialog:DLG_JAVAEDIT"; OutputSize = TRUE ; SvLook = TRUE ; Size = MAP_APPFONT ( 248 , 157 ) ; @@ -45,6 +46,7 @@ ModalDialog DLG_JAVAEDIT }; Edit ED_TYPE { + HelpID = "sw:Edit:DLG_JAVAEDIT:ED_TYPE"; Border = TRUE ; Text = "JavaScript" ; // Nicht uebersetzen!!! @@ -54,6 +56,7 @@ ModalDialog DLG_JAVAEDIT }; RadioButton RB_URL { + HelpID = "sw:RadioButton:DLG_JAVAEDIT:RB_URL"; Pos = MAP_APPFONT ( 12 , 28 ) ; Size = MAP_APPFONT ( 55 , 10 ) ; TabStop = TRUE ; @@ -61,6 +64,7 @@ ModalDialog DLG_JAVAEDIT }; Edit ED_URL { + HelpID = "sw:Edit:DLG_JAVAEDIT:ED_URL"; Border = TRUE ; Pos = MAP_APPFONT ( 70 , 27 ) ; Size = MAP_APPFONT ( 87 , 12 ) ; @@ -68,6 +72,7 @@ ModalDialog DLG_JAVAEDIT }; PushButton PB_URL { + HelpID = "sw:PushButton:DLG_JAVAEDIT:PB_URL"; Pos = MAP_APPFONT ( 163 , 26 ) ; Size = MAP_APPFONT ( 14 , 14 ) ; Text = "~..." ; @@ -75,6 +80,7 @@ ModalDialog DLG_JAVAEDIT }; RadioButton RB_EDIT { + HelpID = "sw:RadioButton:DLG_JAVAEDIT:RB_EDIT"; Pos = MAP_APPFONT ( 12 , 40 ) ; Size = MAP_APPFONT ( 140 , 10 ) ; Text [ en-US ] = "~Text" ; @@ -83,6 +89,7 @@ ModalDialog DLG_JAVAEDIT }; MultiLineEdit ED_EDIT { + HelpID = "sw:MultiLineEdit:DLG_JAVAEDIT:ED_EDIT"; Border = TRUE ; Pos = MAP_APPFONT ( 23 , 54 ) ; Size = MAP_APPFONT ( 155 , 91 ) ; @@ -116,12 +123,14 @@ ModalDialog DLG_JAVAEDIT }; ImageButton BTN_PREV { + HelpID = "sw:ImageButton:DLG_JAVAEDIT:BTN_PREV"; Pos = MAP_APPFONT ( 191 , 60 ) ; Size = MAP_APPFONT ( 24 , 14 ) ; Symbol = IMAGEBUTTON_ARROW_LEFT ; }; ImageButton BTN_NEXT { + HelpID = "sw:ImageButton:DLG_JAVAEDIT:BTN_NEXT"; Pos = MAP_APPFONT ( 217 , 60 ) ; Size = MAP_APPFONT ( 24 , 14 ) ; Symbol = IMAGEBUTTON_ARROW_RIGHT ; diff --git a/sw/source/ui/frmdlg/column.src b/sw/source/ui/frmdlg/column.src index 449fbbf121..537cf1ce9c 100644 --- a/sw/source/ui/frmdlg/column.src +++ b/sw/source/ui/frmdlg/column.src @@ -46,6 +46,7 @@ TabPage TP_COLUMN }; NumericField ED_NUMBER { + HelpID = "sw:NumericField:TP_COLUMN:ED_NUMBER"; Border = TRUE ; Pos = MAP_APPFONT ( 12 , 30 ) ; Size = MAP_APPFONT ( 24 , 12 ) ; @@ -68,6 +69,7 @@ TabPage TP_COLUMN }; CheckBox CB_BALANCECOLS { + HelpID = "sw:CheckBox:TP_COLUMN:CB_BALANCECOLS"; Pos = MAP_APPFONT ( 7 , 46 ) ; Size = MAP_APPFONT ( 163 , 10 ) ; Hide = TRUE; @@ -93,6 +95,7 @@ TabPage TP_COLUMN }; ImageButton BTN_DOWN { + HelpID = "sw:ImageButton:TP_COLUMN:BTN_DOWN"; Disable = TRUE ; Pos = MAP_APPFONT ( 62 , 69 ) ; Size = MAP_APPFONT ( 10 , 10 ) ; @@ -122,6 +125,7 @@ TabPage TP_COLUMN }; ImageButton BTN_UP { + HelpID = "sw:ImageButton:TP_COLUMN:BTN_UP"; Disable = TRUE ; Pos = MAP_APPFONT ( 238 , 69 ) ; Size = MAP_APPFONT ( 10 , 10 ) ; @@ -137,6 +141,7 @@ TabPage TP_COLUMN }; MetricField ED_1 { + HelpID = "sw:MetricField:TP_COLUMN:ED_1"; Disable = TRUE ; Border = TRUE ; Pos = MAP_APPFONT ( 87 , 83 ) ; @@ -155,6 +160,7 @@ TabPage TP_COLUMN }; MetricField ED_2 { + HelpID = "sw:MetricField:TP_COLUMN:ED_2"; Disable = TRUE ; Border = TRUE ; Pos = MAP_APPFONT ( 137 , 83 ) ; @@ -173,6 +179,7 @@ TabPage TP_COLUMN }; MetricField ED_3 { + HelpID = "sw:MetricField:TP_COLUMN:ED_3"; Disable = TRUE ; Border = TRUE ; Pos = MAP_APPFONT ( 187 , 83 ) ; @@ -198,6 +205,7 @@ TabPage TP_COLUMN }; MetricField ED_DIST1 { + HelpID = "sw:MetricField:TP_COLUMN:ED_DIST1"; Disable = TRUE ; Border = TRUE ; Pos = MAP_APPFONT ( 112 , 99 ) ; @@ -216,6 +224,7 @@ TabPage TP_COLUMN }; MetricField ED_DIST2 { + HelpID = "sw:MetricField:TP_COLUMN:ED_DIST2"; Disable = TRUE ; Border = TRUE ; Pos = MAP_APPFONT ( 162 , 99 ) ; @@ -234,6 +243,7 @@ TabPage TP_COLUMN }; CheckBox CB_AUTO_WIDTH { + HelpID = "sw:CheckBox:TP_COLUMN:CB_AUTO_WIDTH"; Pos = MAP_APPFONT ( 87 , 115 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; Text [ en-US ] = "Auto~Width" ; @@ -255,6 +265,7 @@ TabPage TP_COLUMN }; ListBox LB_STYLE { + HelpID = "sw:ListBox:TP_COLUMN:LB_STYLE"; Pos = MAP_APPFONT ( 50 , 138 ) ; Size = MAP_APPFONT ( 60 , 66 ) ; TabStop = TRUE ; @@ -273,6 +284,7 @@ TabPage TP_COLUMN }; MetricField ED_HEIGHT { + HelpID = "sw:MetricField:TP_COLUMN:ED_HEIGHT"; Border = TRUE ; Pos = MAP_APPFONT ( 50 , 154 ) ; Size = MAP_APPFONT ( 60 , 12 ) ; @@ -297,6 +309,7 @@ TabPage TP_COLUMN }; ListBox LB_POSITION { + HelpID = "sw:ListBox:TP_COLUMN:LB_POSITION"; Pos = MAP_APPFONT ( 50 , 170 ) ; Size = MAP_APPFONT ( 60 , 40 ) ; TabStop = TRUE ; @@ -337,6 +350,7 @@ TabPage TP_COLUMN }; ListBox LB_TEXTDIRECTION { + HelpID = "sw:ListBox:TP_COLUMN:LB_TEXTDIRECTION"; Border = TRUE ; Pos = MAP_APPFONT ( 127 , 149 ) ; Size = MAP_APPFONT ( 127 , 50 ) ; @@ -385,6 +399,7 @@ ModalDialog DLG_COLUMN }; ListBox LB_APPLY_TO { + HelpID = "sw:ListBox:DLG_COLUMN:LB_APPLY_TO"; Pos = MAP_APPFONT ( 260 , 74 ) ; Size = MAP_APPFONT ( 50 , 66 ) ; TabStop = TRUE ; diff --git a/sw/source/ui/frmdlg/cption.src b/sw/source/ui/frmdlg/cption.src index da651a4573..30be09080a 100644 --- a/sw/source/ui/frmdlg/cption.src +++ b/sw/source/ui/frmdlg/cption.src @@ -61,6 +61,7 @@ ModalDialog DLG_CAPTION }; PushButton BTN_AUTOCAPTION { + HelpID = "sw:PushButton:DLG_CAPTION:BTN_AUTOCAPTION"; Pos = MAP_APPFONT ( 194 , 63 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; TabStop = TRUE ; @@ -68,6 +69,7 @@ ModalDialog DLG_CAPTION }; PushButton BTN_OPTION { + HelpID = "sw:PushButton:DLG_CAPTION:BTN_OPTION"; Pos = MAP_APPFONT ( 194 , 80 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; TabStop = TRUE ; @@ -83,6 +85,7 @@ ModalDialog DLG_CAPTION }; Edit EDT_TEXT { + HelpID = "sw:Edit:DLG_CAPTION:EDT_TEXT"; Pos = MAP_APPFONT ( 6 , 17 ) ; Size = MAP_APPFONT ( 182 , 12 ) ; Border = TRUE ; @@ -104,6 +107,7 @@ ModalDialog DLG_CAPTION }; ComboBox BOX_CATEGORY { + HelpID = "sw:ComboBox:DLG_CAPTION:BOX_CATEGORY"; Pos = MAP_APPFONT ( 82 , 46 ) ; Size = MAP_APPFONT ( 106 , 61 ) ; DropDown = TRUE ; @@ -119,6 +123,7 @@ ModalDialog DLG_CAPTION }; ListBox BOX_FORMAT { + HelpID = "sw:ListBox:DLG_CAPTION:BOX_FORMAT"; Border = TRUE ; Pos = MAP_APPFONT ( 82 , 63 ) ; Size = MAP_APPFONT ( 106 , 83 ) ; @@ -135,6 +140,7 @@ ModalDialog DLG_CAPTION }; Edit ED_NUM_SEP { + HelpID = "sw:Edit:DLG_CAPTION:ED_NUM_SEP"; Pos = MAP_APPFONT ( 82 , 63 ) ; Size = MAP_APPFONT ( 106 , 12 ) ; Border = TRUE ; @@ -152,6 +158,7 @@ ModalDialog DLG_CAPTION }; Edit EDT_SEP { + HelpID = "sw:Edit:DLG_CAPTION:EDT_SEP"; Pos = MAP_APPFONT ( 82 , 80 ) ; Size = MAP_APPFONT ( 106 , 12 ) ; Border = TRUE ; @@ -168,6 +175,7 @@ ModalDialog DLG_CAPTION }; ListBox BOX_POS { + HelpID = "sw:ListBox:DLG_CAPTION:BOX_POS"; Pos = MAP_APPFONT ( 82 , 97 ) ; Size = MAP_APPFONT ( 106 , 61 ) ; DropDown = TRUE ; @@ -244,6 +252,7 @@ ModalDialog DLG_SEQUENCE_OPTION }; ListBox LB_LEVEL { + HelpID = "sw:ListBox:DLG_SEQUENCE_OPTION:LB_LEVEL"; Border = TRUE ; Pos = MAP_APPFONT ( 65 , 18 ) ; Size = MAP_APPFONT ( 72 , 60 ) ; @@ -262,6 +271,7 @@ ModalDialog DLG_SEQUENCE_OPTION }; Edit ED_SEPARATOR { + HelpID = "sw:Edit:DLG_SEQUENCE_OPTION:ED_SEPARATOR"; Pos = MAP_APPFONT ( 65 , 34 ) ; Size = MAP_APPFONT ( 72 , 12 ) ; Border = TRUE ; @@ -282,6 +292,7 @@ ModalDialog DLG_SEQUENCE_OPTION }; ListBox LB_CHARSTYLE { + HelpID = "sw:ListBox:DLG_SEQUENCE_OPTION:LB_CHARSTYLE"; Border = TRUE ; Pos = MAP_APPFONT ( 65 , 68 ) ; Size = MAP_APPFONT ( 72 , 60 ) ; @@ -294,6 +305,7 @@ ModalDialog DLG_SEQUENCE_OPTION }; CheckBox CB_APPLYBAS { + HelpID = "sw:CheckBox:DLG_SEQUENCE_OPTION:CB_APPLYBAS"; Pos = MAP_APPFONT ( 12 , 84 ) ; Size = MAP_APPFONT ( 136 , 10 ) ; TabStop = TRUE ; @@ -313,6 +325,7 @@ ModalDialog DLG_SEQUENCE_OPTION }; ListBox LB_ORDER { + HelpID = "sw:ListBox:DLG_SEQUENCE_OPTION:LB_ORDER"; Border = TRUE ; Pos = MAP_APPFONT ( 65 , 114 ) ; Size = MAP_APPFONT ( 72 , 60 ) ; diff --git a/sw/source/ui/frmdlg/frmdlg.cxx b/sw/source/ui/frmdlg/frmdlg.cxx index 413845f1eb..52280136a8 100644 --- a/sw/source/ui/frmdlg/frmdlg.cxx +++ b/sw/source/ui/frmdlg/frmdlg.cxx @@ -93,7 +93,8 @@ SwFrmDlg::SwFrmDlg( SfxViewFrame* pViewFrame, aTmp += *pStr; aTmp += ')'; } - AddTabPage(TP_FRM_STD, SwFrmPage::Create, 0); + + AddTabPage(TP_FRM_STD, SwFrmPage::Create, 0); AddTabPage(TP_FRM_ADD, SwFrmAddPage::Create, 0); AddTabPage(TP_FRM_WRAP, SwWrapTabPage::Create, 0); AddTabPage(TP_FRM_URL, SwFrmURLPage::Create, 0); @@ -217,3 +218,4 @@ void SwFrmDlg::PageCreated( USHORT nId, SfxTabPage &rPage ) break; } } + diff --git a/sw/source/ui/frmdlg/frmpage.cxx b/sw/source/ui/frmdlg/frmpage.cxx index 7939957c71..50e9754450 100644 --- a/sw/source/ui/frmdlg/frmpage.cxx +++ b/sw/source/ui/frmdlg/frmpage.cxx @@ -677,7 +677,10 @@ SwFrmPage::SwFrmPage ( Window *pParent, const SfxItemSet &rSet ) : nOldV(text::VertOrientation::TOP), nOldVRel(text::RelOrientation::PRINT_AREA), pVMap( 0 ), - pHMap( 0 ) + pHMap( 0 ), + m_bAllowVertPositioning( true ), + m_bIsMathOLE( false ), + m_bIsMathBaselineAlignment( true ) { FreeResource(); SetExchangeSupport(); @@ -782,9 +785,17 @@ void SwFrmPage::Reset( const SfxItemSet &rSet ) SetMetric( aAtHorzPosED, aMetric ); SetMetric( aAtVertPosED, aMetric ); + const SfxPoolItem* pItem = NULL; const SwFmtAnchor& rAnchor = (const SwFmtAnchor&)rSet.Get(RES_ANCHOR); + if (SFX_ITEM_SET == rSet.GetItemState(FN_OLE_IS_MATH, FALSE, &pItem)) + m_bIsMathOLE = ((const SfxBoolItem*)pItem)->GetValue(); + if (SFX_ITEM_SET == rSet.GetItemState(FN_MATH_BASELINE_ALIGNMENT, FALSE, &pItem)) + m_bIsMathBaselineAlignment = ((const SfxBoolItem*)pItem)->GetValue(); + EnableVerticalPositioning( !(m_bIsMathOLE && m_bIsMathBaselineAlignment + && FLY_AS_CHAR == rAnchor.GetAnchorId()) ); + if (bFormat) { // Bei Formaten keine Ankerbearbeitung @@ -812,7 +823,6 @@ void SwFrmPage::Reset( const SfxItemSet &rSet ) if ( nDlgType == DLG_FRM_GRF || nDlgType == DLG_FRM_OLE ) { ASSERT(pSh , "shell not found"); - const SfxPoolItem* pItem; //OS: nur fuer die Variante Einfuegen/Grafik/Eigenschaften if(SFX_ITEM_SET == rSet.GetItemState(FN_PARAM_GRF_REALSIZE, FALSE, &pItem)) aGrfSize = ((const SvxSizeItem*)pItem)->GetSize(); @@ -1080,7 +1090,7 @@ BOOL SwFrmPage::FillItemSet(SfxItemSet &rSet) aWidthED .GetValue() == aWidthED .GetMin() && aHeightED.GetValue() == aHeightED.GetMin()); - if ((bNew && !bFormat) || (bValueModified || bCheckChanged) && bLegalValue) + if ((bNew && !bFormat) || ((bValueModified || bCheckChanged) && bLegalValue)) { sal_Int64 nNewWidth = aWidthED.DenormalizePercent(aWidthED.GetRealValue(FUNIT_TWIP)); sal_Int64 nNewHeight = aHeightED.DenormalizePercent(aHeightED.GetRealValue(FUNIT_TWIP)); @@ -1280,8 +1290,8 @@ void SwFrmPage::InitPos(RndStdIds eId, if ( nY != LONG_MAX ) aAtVertPosED.SetValue( aAtVertPosED.Normalize(nY), FUNIT_TWIP ); } - aAtVertPosFT.Enable( bEnable ); - aAtVertPosED.Enable( bEnable ); + aAtVertPosFT.Enable( bEnable && m_bAllowVertPositioning ); + aAtVertPosED.Enable( bEnable && m_bAllowVertPositioning ); UpdateExample(); } @@ -1488,8 +1498,10 @@ ULONG SwFrmPage::FillRelLB( const FrmMap* _pMap, } } - _rLB.Enable(_rLB.GetEntryCount() != 0); - _rFT.Enable(_rLB.GetEntryCount() != 0); + const bool bEnable = _rLB.GetEntryCount() != 0 + && (&_rLB != &aVertRelationLB || m_bAllowVertPositioning); + _rLB.Enable( bEnable ); + _rFT.Enable( bEnable ); RelHdl(&_rLB); @@ -1850,6 +1862,10 @@ IMPL_LINK( SwFrmPage, AnchorTypeHdl, RadioButton *, EMPTYARG ) PosHdl(&aHorizontalDLB); PosHdl(&aVerticalDLB); } + + EnableVerticalPositioning( !(m_bIsMathOLE && m_bIsMathBaselineAlignment + && FLY_AS_CHAR == eId) ); + return 0; } @@ -1875,7 +1891,7 @@ IMPL_LINK( SwFrmPage, PosHdl, ListBox *, pLB ) } else { - BOOL bEnable = text::VertOrientation::NONE == nAlign; + BOOL bEnable = text::VertOrientation::NONE == nAlign && m_bAllowVertPositioning; aAtVertPosED.Enable( bEnable ); aAtVertPosFT.Enable( bEnable ); } @@ -2304,6 +2320,19 @@ void SwFrmPage::SetFormatUsed(BOOL bFmt) } } + +void SwFrmPage::EnableVerticalPositioning( bool bEnable ) +{ + m_bAllowVertPositioning = bEnable; + aVerticalFT.Enable( bEnable ); + aVerticalDLB.Enable( bEnable ); + aAtVertPosFT.Enable( bEnable ); + aAtVertPosED.Enable( bEnable ); + aVertRelationFT.Enable( bEnable ); + aVertRelationLB.Enable( bEnable ); +} + + /*-------------------------------------------------------------------- Beschreibung: --------------------------------------------------------------------*/ @@ -3246,4 +3275,3 @@ IMPL_LINK(SwFrmAddPage, ChainModifyHdl, ListBox*, pBox) } return 0; } - diff --git a/sw/source/ui/frmdlg/frmpage.src b/sw/source/ui/frmdlg/frmpage.src index 5ce84d4552..f832061dc7 100644 --- a/sw/source/ui/frmdlg/frmpage.src +++ b/sw/source/ui/frmdlg/frmpage.src @@ -243,6 +243,7 @@ TabPage TP_FRM_STD }; MetricField ED_WIDTH { + HelpID = "sw:MetricField:TP_FRM_STD:ED_WIDTH"; Border = TRUE ; Pos = MAP_APPFONT ( SWFRMPG_COL_3 , SWFRMPG_ROW_1 ) ; Size = MAP_APPFONT ( (SWFRMPG_COL_4-SWFRMPG_COL_3) , RSC_CD_TEXTBOX_HEIGHT ) ; @@ -261,6 +262,7 @@ TabPage TP_FRM_STD }; CheckBox CB_REL_WIDTH { + HelpID = "sw:CheckBox:TP_FRM_STD:CB_REL_WIDTH"; Pos = MAP_APPFONT ( SWFRMPG_COL_2 , SWFRMPG_ROW_3 ) ; Size = MAP_APPFONT ( (SWFRMPG_COL_4-SWFRMPG_COL_2) , RSC_CD_CHECKBOX_HEIGHT ) ; TabStop = TRUE ; @@ -268,6 +270,7 @@ TabPage TP_FRM_STD }; CheckBox CB_AUTOWIDTH { + HelpID = "sw:CheckBox:TP_FRM_STD:CB_AUTOWIDTH"; Pos = MAP_APPFONT ( SWFRMPG_COL_2 , SWFRMPG_ROW_4 ) ; Size = MAP_APPFONT ( (SWFRMPG_COL_4-SWFRMPG_COL_2) , RSC_CD_CHECKBOX_HEIGHT ) ; TabStop = TRUE ; @@ -289,6 +292,7 @@ TabPage TP_FRM_STD }; MetricField ED_HEIGHT { + HelpID = "sw:MetricField:TP_FRM_STD:ED_HEIGHT"; Border = TRUE ; Pos = MAP_APPFONT ( SWFRMPG_COL_3 , SWFRMPG_ROW_5 ) ; Size = MAP_APPFONT ( (SWFRMPG_COL_4-SWFRMPG_COL_3) , RSC_CD_TEXTBOX_HEIGHT ) ; @@ -306,6 +310,7 @@ TabPage TP_FRM_STD }; CheckBox CB_REL_HEIGHT { + HelpID = "sw:CheckBox:TP_FRM_STD:CB_REL_HEIGHT"; Pos = MAP_APPFONT ( SWFRMPG_COL_2 , SWFRMPG_ROW_7 ) ; Size = MAP_APPFONT ( (SWFRMPG_COL_4-SWFRMPG_COL_2) , RSC_CD_CHECKBOX_HEIGHT ) ; TabStop = TRUE ; @@ -313,6 +318,7 @@ TabPage TP_FRM_STD }; CheckBox CB_AUTOHEIGHT { + HelpID = "sw:CheckBox:TP_FRM_STD:CB_AUTOHEIGHT"; Pos = MAP_APPFONT ( SWFRMPG_COL_2 , SWFRMPG_ROW_8 ) ; Size = MAP_APPFONT ( (SWFRMPG_COL_4-SWFRMPG_COL_2) , RSC_CD_CHECKBOX_HEIGHT ) ; TabStop = TRUE ; @@ -320,6 +326,7 @@ TabPage TP_FRM_STD }; CheckBox CB_FIXEDRATIO { + HelpID = "sw:CheckBox:TP_FRM_STD:CB_FIXEDRATIO"; Pos = MAP_APPFONT ( SWFRMPG_COL_1 , SWFRMPG_ROW_9 ) ; Size = MAP_APPFONT ( (SWFRMPG_COL_4-SWFRMPG_COL_1) , RSC_CD_CHECKBOX_HEIGHT ) ; TabStop = TRUE ; @@ -327,6 +334,7 @@ TabPage TP_FRM_STD }; PushButton BT_REALSIZE { + HelpID = "sw:PushButton:TP_FRM_STD:BT_REALSIZE"; Pos = MAP_APPFONT ( 35 , 86 ) ; Size = MAP_APPFONT ( 70 , 14 ) ; TabStop = TRUE ; @@ -347,30 +355,35 @@ TabPage TP_FRM_STD }; RadioButton RB_ANCHOR_PAGE { + HelpID = "sw:RadioButton:TP_FRM_STD:RB_ANCHOR_PAGE"; Pos = MAP_APPFONT ( 122 , 14 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "To ~page"; }; RadioButton RB_ANCHOR_PARA { + HelpID = "sw:RadioButton:TP_FRM_STD:RB_ANCHOR_PARA"; Pos = MAP_APPFONT ( 122 , 28 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "To paragrap~h"; }; RadioButton RB_ANCHOR_AT_CHAR { + HelpID = "sw:RadioButton:TP_FRM_STD:RB_ANCHOR_AT_CHAR"; Pos = MAP_APPFONT ( 122 , 42 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "To cha~racter"; }; RadioButton RB_ANCHOR_AS_CHAR { + HelpID = "sw:RadioButton:TP_FRM_STD:RB_ANCHOR_AS_CHAR"; Pos = MAP_APPFONT ( 122 , 56 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "~As character" ; }; RadioButton RB_ANCHOR_FRAME { + HelpID = "sw:RadioButton:TP_FRM_STD:RB_ANCHOR_FRAME"; Pos = MAP_APPFONT ( 122 , 70 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "To ~frame"; @@ -395,6 +408,7 @@ TabPage TP_FRM_STD }; ListBox DLB_HORIZONTAL { + HelpID = "sw:ListBox:TP_FRM_STD:DLB_HORIZONTAL"; Pos = MAP_APPFONT ( 49 , SWFRMPG_ROW_11 ) ; Size = MAP_APPFONT ( 50 , 60 ) ; TabStop = TRUE ; @@ -409,6 +423,7 @@ TabPage TP_FRM_STD }; MetricField ED_AT_HORZ_POS { + HelpID = "sw:MetricField:TP_FRM_STD:ED_AT_HORZ_POS"; Border = TRUE ; Pos = MAP_APPFONT ( 123 , SWFRMPG_ROW_11 ) ; Size = MAP_APPFONT ( 35 , RSC_CD_TEXTBOX_HEIGHT ) ; @@ -433,6 +448,7 @@ TabPage TP_FRM_STD }; ListBox LB_HORI_RELATION { + HelpID = "sw:ListBox:TP_FRM_STD:LB_HORI_RELATION"; Pos = MAP_APPFONT ( 183 , SWFRMPG_ROW_11 ) ; Size = MAP_APPFONT ( 65 , 60 ) ; TabStop = TRUE ; @@ -440,6 +456,7 @@ TabPage TP_FRM_STD }; CheckBox CB_MIRROR { + HelpID = "sw:CheckBox:TP_FRM_STD:CB_MIRROR"; Pos = MAP_APPFONT ( SWFRMPG_COL_2 , SWFRMPG_ROW_13 ) ; Size = MAP_APPFONT ( (260-SWFRMPG_COL_2-1) , RSC_CD_CHECKBOX_HEIGHT ) ; TabStop = TRUE ; @@ -454,6 +471,7 @@ TabPage TP_FRM_STD }; ListBox DLB_VERTICAL { + HelpID = "sw:ListBox:TP_FRM_STD:DLB_VERTICAL"; Pos = MAP_APPFONT ( 49 , SWFRMPG_ROW_14 ) ; Size = MAP_APPFONT ( 50 , 60 ) ; TabStop = TRUE ; @@ -468,6 +486,7 @@ TabPage TP_FRM_STD }; MetricField ED_AT_VERT_POS { + HelpID = "sw:MetricField:TP_FRM_STD:ED_AT_VERT_POS"; Border = TRUE ; Pos = MAP_APPFONT ( 123 , SWFRMPG_ROW_14 ) ; Size = MAP_APPFONT ( 35 , RSC_CD_TEXTBOX_HEIGHT ) ; @@ -492,6 +511,7 @@ TabPage TP_FRM_STD }; ListBox LB_VERT_RELATION { + HelpID = "sw:ListBox:TP_FRM_STD:LB_VERT_RELATION"; Pos = MAP_APPFONT ( 183 , SWFRMPG_ROW_14 ) ; Size = MAP_APPFONT ( 65 , 60 ) ; TabStop = TRUE ; @@ -499,6 +519,7 @@ TabPage TP_FRM_STD }; CheckBox CB_FOLLOWTEXTFLOW { + HelpID = "sw:CheckBox:TP_FRM_STD:CB_FOLLOWTEXTFLOW"; Pos = MAP_APPFONT ( SWFRMPG_COL_2 , SWFRMPG_ROW_16 ) ; Size = MAP_APPFONT ( (260-SWFRMPG_COL_2-1) , RSC_CD_CHECKBOX_HEIGHT ) ; TabStop = TRUE ; @@ -540,6 +561,7 @@ TabPage TP_GRF_EXT }; Edit ED_CONNECT { + HelpID = "sw:Edit:TP_GRF_EXT:ED_CONNECT"; Pos = MAP_APPFONT ( 13 , 109 ) ; Size = MAP_APPFONT ( 200 , 12 ) ; Text [ en-US ] = "[None]" ; @@ -549,6 +571,7 @@ TabPage TP_GRF_EXT }; PushButton PB_BROWSE { + HelpID = "sw:PushButton:TP_GRF_EXT:PB_BROWSE"; Disable = TRUE ; Pos = MAP_APPFONT ( 230 , 109 ) ; Size = MAP_APPFONT ( 12 , 12 ) ; @@ -558,6 +581,7 @@ TabPage TP_GRF_EXT }; CheckBox CB_VERT { + HelpID = "sw:CheckBox:TP_GRF_EXT:CB_VERT"; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 48 , 10 ) ; TabStop = TRUE ; @@ -566,6 +590,7 @@ TabPage TP_GRF_EXT }; CheckBox CB_HOR { + HelpID = "sw:CheckBox:TP_GRF_EXT:CB_HOR"; Pos = MAP_APPFONT ( 12 , 28 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; TabStop = TRUE ; @@ -573,6 +598,7 @@ TabPage TP_GRF_EXT }; RadioButton RB_MIRROR_ALL_PAGES { + HelpID = "sw:RadioButton:TP_GRF_EXT:RB_MIRROR_ALL_PAGES"; Pos = MAP_APPFONT ( 18 , 42 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; TabStop = TRUE ; @@ -580,6 +606,7 @@ TabPage TP_GRF_EXT }; RadioButton RB_MIRROR_LEFT_PAGES { + HelpID = "sw:RadioButton:TP_GRF_EXT:RB_MIRROR_LEFT_PAGES"; Pos = MAP_APPFONT ( 18 , 56 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; TabStop = TRUE ; @@ -587,6 +614,7 @@ TabPage TP_GRF_EXT }; RadioButton RB_MIRROR_RIGHT_PAGES { + HelpID = "sw:RadioButton:TP_GRF_EXT:RB_MIRROR_RIGHT_PAGES"; Pos = MAP_APPFONT ( 18 , 70 ) ; Size = MAP_APPFONT ( 100 , 10 ) ; TabStop = TRUE ; @@ -624,6 +652,7 @@ TabPage TP_FRM_URL }; Edit ED_URL { + HelpID = "sw:Edit:TP_FRM_URL:ED_URL"; Pos = MAP_APPFONT ( 45 , 14 ) ; Size = MAP_APPFONT ( 149 , 12 ) ; Left = TRUE ; @@ -638,6 +667,7 @@ TabPage TP_FRM_URL }; Edit ED_NAME { + HelpID = "sw:Edit:TP_FRM_URL:ED_NAME"; Pos = MAP_APPFONT ( 45 , 30 ) ; Size = MAP_APPFONT ( 149 , 12 ) ; Left = TRUE ; @@ -652,6 +682,7 @@ TabPage TP_FRM_URL }; ComboBox CB_FRAME { + HelpID = "sw:ComboBox:TP_FRM_URL:CB_FRAME"; Pos = MAP_APPFONT ( 45 , 46 ) ; Size = MAP_APPFONT ( 89 , 50 ) ; Left = TRUE ; @@ -660,6 +691,7 @@ TabPage TP_FRM_URL }; PushButton PB_SEARCH { + HelpID = "sw:PushButton:TP_FRM_URL:PB_SEARCH"; Pos = MAP_APPFONT ( 198 , 13 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; TabStop = TRUE ; @@ -673,12 +705,14 @@ TabPage TP_FRM_URL }; CheckBox CB_SERVER { + HelpID = "sw:CheckBox:TP_FRM_URL:CB_SERVER"; Pos = MAP_APPFONT ( 12 , 75 ) ; Size = MAP_APPFONT ( 236 , 10 ) ; Text [ en-US ] = "~Server-side image map"; }; CheckBox CB_CLIENT { + HelpID = "sw:CheckBox:TP_FRM_URL:CB_CLIENT"; Pos = MAP_APPFONT ( 12 , 89 ) ; Size = MAP_APPFONT ( 236 , 10 ) ; Text [ en-US ] = "~Client-side image map"; @@ -705,6 +739,7 @@ TabPage TP_FRM_ADD }; Edit ED_NAME { + HelpID = "sw:Edit:TP_FRM_ADD:ED_NAME"; Border = TRUE ; Pos = MAP_APPFONT ( 91 , 14 ) ; Size = MAP_APPFONT ( 157 , 12 ) ; @@ -718,6 +753,7 @@ TabPage TP_FRM_ADD }; Edit ED_ALT_NAME { + HelpID = "sw:Edit:TP_FRM_ADD:ED_ALT_NAME"; Border = TRUE ; Pos = MAP_APPFONT ( 91 , 30 ) ; Size = MAP_APPFONT ( 157 , 12 ) ; @@ -731,6 +767,7 @@ TabPage TP_FRM_ADD }; ListBox LB_PREV { + HelpID = "sw:ListBox:TP_FRM_ADD:LB_PREV"; Border = TRUE ; Pos = MAP_APPFONT ( 91 , 46 ) ; Size = MAP_APPFONT ( 157 , 50 ) ; @@ -749,6 +786,7 @@ TabPage TP_FRM_ADD }; ListBox LB_NEXT { + HelpID = "sw:ListBox:TP_FRM_ADD:LB_NEXT"; Border = TRUE ; Pos = MAP_APPFONT ( 91 , 62 ) ; Size = MAP_APPFONT ( 157 , 50 ) ; @@ -767,6 +805,7 @@ TabPage TP_FRM_ADD }; CheckBox CB_PROTECT_CONTENT { + HelpID = "sw:CheckBox:TP_FRM_ADD:CB_PROTECT_CONTENT"; Pos = MAP_APPFONT ( 12 , 91 ) ; Size = MAP_APPFONT ( 80 , 10 ) ; TabStop = TRUE ; @@ -774,6 +813,7 @@ TabPage TP_FRM_ADD }; CheckBox CB_PROTECT_FRAME { + HelpID = "sw:CheckBox:TP_FRM_ADD:CB_PROTECT_FRAME"; Pos = MAP_APPFONT ( 12 , 105 ) ; Size = MAP_APPFONT ( 80 , 10 ) ; TabStop = TRUE ; @@ -781,6 +821,7 @@ TabPage TP_FRM_ADD }; CheckBox CB_PROTECT_SIZE { + HelpID = "sw:CheckBox:TP_FRM_ADD:CB_PROTECT_SIZE"; Pos = MAP_APPFONT ( 12 , 119 ) ; Size = MAP_APPFONT ( 80 , 10 ) ; TabStop = TRUE ; @@ -794,6 +835,7 @@ TabPage TP_FRM_ADD }; CheckBox CB_EDIT_IN_READONLY { + HelpID = "sw:CheckBox:TP_FRM_ADD:CB_EDIT_IN_READONLY"; Pos = MAP_APPFONT ( 12 , 146 ) ; Size = MAP_APPFONT ( 236 , 10 ) ; TabStop = TRUE ; @@ -801,6 +843,7 @@ TabPage TP_FRM_ADD }; CheckBox CB_PRINT_FRAME { + HelpID = "sw:CheckBox:TP_FRM_ADD:CB_PRINT_FRAME"; Pos = MAP_APPFONT ( 12 , 160 ) ; Size = MAP_APPFONT ( 236 , 10 ) ; TabStop = TRUE ; @@ -823,6 +866,7 @@ TabPage TP_FRM_ADD }; ListBox LB_TEXTFLOW { + HelpID = "sw:ListBox:TP_FRM_ADD:LB_TEXTFLOW"; Border = TRUE ; Pos = MAP_APPFONT ( 81 , 172 ) ; Size = MAP_APPFONT ( 167 , 50 ) ; diff --git a/sw/source/ui/frmdlg/wrap.src b/sw/source/ui/frmdlg/wrap.src index 6810f55e1a..1680f3d93b 100644 --- a/sw/source/ui/frmdlg/wrap.src +++ b/sw/source/ui/frmdlg/wrap.src @@ -44,6 +44,7 @@ TabPage TP_FRM_WRAP }; ImageRadioButton RB_NO_WRAP { + HelpID = "sw:ImageRadioButton:TP_FRM_WRAP:RB_NO_WRAP"; Pos = MAP_APPFONT ( 6 , 14 ) ; Size = MAP_APPFONT ( 40 , 37 ) ; WordBreak = TRUE; @@ -52,6 +53,7 @@ TabPage TP_FRM_WRAP }; ImageRadioButton RB_WRAP_LEFT { + HelpID = "sw:ImageRadioButton:TP_FRM_WRAP:RB_WRAP_LEFT"; Pos = MAP_APPFONT ( 65 , 14 ) ; Size = MAP_APPFONT ( 40 , 37 ) ; WordBreak = TRUE; @@ -60,6 +62,7 @@ TabPage TP_FRM_WRAP }; ImageRadioButton RB_WRAP_RIGHT { + HelpID = "sw:ImageRadioButton:TP_FRM_WRAP:RB_WRAP_RIGHT"; Pos = MAP_APPFONT ( 121 , 14 ) ; Size = MAP_APPFONT ( 40 , 37 ) ; WordBreak = TRUE; @@ -68,6 +71,7 @@ TabPage TP_FRM_WRAP }; ImageRadioButton RB_WRAP_PARALLEL { + HelpID = "sw:ImageRadioButton:TP_FRM_WRAP:RB_WRAP_PARALLEL"; Pos = MAP_APPFONT ( 177 , 14 ) ; Size = MAP_APPFONT ( 40 , 37 ) ; WordBreak = TRUE; @@ -76,6 +80,7 @@ TabPage TP_FRM_WRAP }; ImageRadioButton RB_WRAP_THROUGH { + HelpID = "sw:ImageRadioButton:TP_FRM_WRAP:RB_WRAP_THROUGH"; Pos = MAP_APPFONT ( 6 , 57 ) ; Size = MAP_APPFONT ( 40 , 37 ) ; WordBreak = TRUE; @@ -84,6 +89,7 @@ TabPage TP_FRM_WRAP }; ImageRadioButton RB_WRAP_IDEAL { + HelpID = "sw:ImageRadioButton:TP_FRM_WRAP:RB_WRAP_IDEAL"; Pos = MAP_APPFONT ( 65 , 57 ) ; Size = MAP_APPFONT ( 40 , 37 ) ; WordBreak = TRUE; @@ -93,18 +99,21 @@ TabPage TP_FRM_WRAP CheckBox CB_ANCHOR_ONLY { + HelpID = "sw:CheckBox:TP_FRM_WRAP:CB_ANCHOR_ONLY"; Pos = MAP_APPFONT ( 139 , 111 ) ; Size = MAP_APPFONT ( 109 , 10 ) ; Text [ en-US ] = "~First paragraph" ; }; CheckBox CB_TRANSPARENT { + HelpID = "sw:CheckBox:TP_FRM_WRAP:CB_TRANSPARENT"; Pos = MAP_APPFONT ( 139 , 125 ) ; Size = MAP_APPFONT ( 109 , 10 ) ; Text [ en-US ] = "In bac~kground" ; }; CheckBox CB_OUTLINE { + HelpID = "sw:CheckBox:TP_FRM_WRAP:CB_OUTLINE"; Pos = MAP_APPFONT ( 139 , 139 ) ; Size = MAP_APPFONT ( 109 , 10 ) ; Hide = TRUE ; @@ -112,6 +121,7 @@ TabPage TP_FRM_WRAP }; CheckBox CB_ONLYOUTSIDE { + HelpID = "sw:CheckBox:TP_FRM_WRAP:CB_ONLYOUTSIDE"; Pos = MAP_APPFONT ( 139 , 153 ) ; Size = MAP_APPFONT ( 109 , 10 ) ; Hide = TRUE ; @@ -138,6 +148,7 @@ TabPage TP_FRM_WRAP }; MetricField ED_LEFT_MARGIN { + HelpID = "sw:MetricField:TP_FRM_WRAP:ED_LEFT_MARGIN"; Border = TRUE ; Pos = MAP_APPFONT ( 81 , 111 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -160,6 +171,7 @@ TabPage TP_FRM_WRAP }; MetricField ED_RIGHT_MARGIN { + HelpID = "sw:MetricField:TP_FRM_WRAP:ED_RIGHT_MARGIN"; Border = TRUE ; Pos = MAP_APPFONT ( 81 , 127 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -182,6 +194,7 @@ TabPage TP_FRM_WRAP }; MetricField ED_TOP_MARGIN { + HelpID = "sw:MetricField:TP_FRM_WRAP:ED_TOP_MARGIN"; Border = TRUE ; Pos = MAP_APPFONT ( 81 , 143 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -204,6 +217,7 @@ TabPage TP_FRM_WRAP }; MetricField ED_BOTTOM_MARGIN { + HelpID = "sw:MetricField:TP_FRM_WRAP:ED_BOTTOM_MARGIN"; Border = TRUE ; Pos = MAP_APPFONT ( 81 , 159 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; diff --git a/sw/source/ui/inc/frmdlg.hxx b/sw/source/ui/inc/frmdlg.hxx index fa39f4b293..43be092b58 100644 --- a/sw/source/ui/inc/frmdlg.hxx +++ b/sw/source/ui/inc/frmdlg.hxx @@ -41,6 +41,7 @@ class SwFrmDlg : public SfxTabDialog BOOL m_bFormat; BOOL m_bNew; BOOL m_bHTMLMode; + bool m_bEnableVertPos; const SfxItemSet& m_rSet; USHORT m_nDlgType; SwWrtShell* m_pWrtShell; diff --git a/sw/source/ui/inc/frmpage.hxx b/sw/source/ui/inc/frmpage.hxx index a858c23199..1f097d1c29 100644 --- a/sw/source/ui/inc/frmpage.hxx +++ b/sw/source/ui/inc/frmpage.hxx @@ -28,27 +28,17 @@ #ifndef _FRMPAGE_HXX #define _FRMPAGE_HXX -#ifndef _FIXED_HXX //autogen #include <vcl/fixed.hxx> -#endif -#ifndef _BUTTON_HXX //autogen #include <vcl/button.hxx> -#endif -#ifndef _LSTBOX_HXX //autogen #include <vcl/lstbox.hxx> -#endif -#ifndef _FIELD_HXX //autogen #include <vcl/field.hxx> -#endif #include <sfx2/tabdlg.hxx> #include <svx/swframeposstrings.hxx> #include <swtypes.hxx> #include <bmpwin.hxx> #include <svx/swframeexample.hxx> #include <prcntfld.hxx> -#ifndef _GLOBALS_HRC #include <globals.hrc> -#endif namespace sfx2{class FileDialogHelper;} @@ -142,6 +132,10 @@ class SwFrmPage: public SfxTabPage FrmMap* pVMap; FrmMap* pHMap; + bool m_bAllowVertPositioning; + bool m_bIsMathOLE; + bool m_bIsMathBaselineAlignment; + virtual void ActivatePage(const SfxItemSet& rSet); virtual int DeactivatePage(SfxItemSet *pSet); @@ -205,6 +199,7 @@ public: void SetFormatUsed(BOOL bFmt); void SetFrmType(USHORT nType) { nDlgType = nType; } inline BOOL IsInGraficMode( void ) { return nDlgType == DLG_FRM_GRF || nDlgType == DLG_FRM_OLE; } + void EnableVerticalPositioning( bool bEnable ); }; class SwGrfExtPage: public SfxTabPage diff --git a/sw/source/ui/inc/optpage.hxx b/sw/source/ui/inc/optpage.hxx index 60e15f866b..fa0af2e473 100644 --- a/sw/source/ui/inc/optpage.hxx +++ b/sw/source/ui/inc/optpage.hxx @@ -353,6 +353,12 @@ class SwShdwCrsrOptionsTabPage : public SfxTabPage FixedLine aCrsrOptFL; CheckBox aCrsrInProtCB; + FixedLine m_aLayoutOptionsFL; + CheckBox m_aMathBaselineAlignmentCB; + + SwWrtShell * m_pWrtShell; + + SwShdwCrsrOptionsTabPage( Window* pParent, const SfxItemSet& rSet ); ~SwShdwCrsrOptionsTabPage(); @@ -362,6 +368,9 @@ public: virtual BOOL FillItemSet( SfxItemSet& rSet ); virtual void Reset( const SfxItemSet& rSet ); + + void SetWrtShell( SwWrtShell * pSh ) { m_pWrtShell = pSh; } + virtual void PageCreated( SfxAllItemSet aSet ); }; /*----------------------------------------------------------------------- @@ -498,5 +507,3 @@ private: }; #endif //PRODUCT #endif - - diff --git a/sw/source/ui/inc/ribbar.hrc b/sw/source/ui/inc/ribbar.hrc index 892261512a..301acb1ddc 100644 --- a/sw/source/ui/inc/ribbar.hrc +++ b/sw/source/ui/inc/ribbar.hrc @@ -69,10 +69,7 @@ #define MN_CALC_POPUP (RC_RIBBAR_BEGIN + 22) #define MN_NUMNAMES_POPUP (RC_RIBBAR_BEGIN + 23) -#define RID_INSERT_CTRL (RC_RIBBAR_BEGIN + 24) -#define RID_INSERT_OBJ_CTRL (RC_RIBBAR_BEGIN + 25) #define RID_INSERT_FIELD_CTRL (RC_RIBBAR_BEGIN + 26) -#define RID_TBL_OPT_CTRL (RC_RIBBAR_BEGIN + 27) #define RID_BEZIER_WIN (RC_RIBBAR_BEGIN + 28) #define RID_SCROLL_NAVI_TBX (RC_RIBBAR_BEGIN + 29) #define RID_SCROLL_NAVIGATION_WIN (RC_RIBBAR_BEGIN + 30) diff --git a/sw/source/ui/inc/swmn_tmpl.hrc b/sw/source/ui/inc/swmn_tmpl.hrc index af1c013c1a..911309c8a5 100644 --- a/sw/source/ui/inc/swmn_tmpl.hrc +++ b/sw/source/ui/inc/swmn_tmpl.hrc @@ -57,7 +57,7 @@ MenuItem\ {\ Identifier = FN_FORMAT_PAGE_DLG ; \ - HelpID = FN_FORMAT_PAGE_DLG ; \ + HelpId = CMD_FN_FORMAT_PAGE_DLG ; \ Text [ en-US ] = "Pa~ge..." ; \ }; @@ -74,7 +74,6 @@ MenuItem\ {\ Identifier = MN_FORMAT_STYLE ; \ - HelpID = MN_FORMAT_STYLE ; \ Command = ".uno:StyleMenu" ; \ Text [ en-US ] = "St~yle" ; \ SubMenu = Menu\ @@ -113,13 +112,13 @@ MenuItem\ {\ Identifier = FN_SET_SUPER_SCRIPT ; \ - HelpID = FN_SET_SUPER_SCRIPT ; \ + HelpId = CMD_FN_SET_SUPER_SCRIPT ; \ Text [ en-US ] = "Superscript" ; \ };\ MenuItem\ {\ Identifier = FN_SET_SUB_SCRIPT ; \ - HelpID = FN_SET_SUB_SCRIPT ; \ + HelpId = CMD_FN_SET_SUB_SCRIPT ; \ Text [ en-US ] = "Subscript" ; \ };\ };\ @@ -128,7 +127,6 @@ MenuItem\ {\ Identifier = MN_FORMAT_ALGN ; \ - HelpID = MN_FORMAT_ALGN ; \ Command = ".uno:AlignTextMenu" ; \ Text [ en-US ] = "A~lignment" ; \ SubMenu = Menu\ @@ -153,7 +151,7 @@ MenuItem\ {\ Identifier = SID_ATTR_PARA_ADJUST_BLOCK ; \ - HelpID = SID_ATTR_PARA_ADJUST_BLOCK ; \ + HelpId = CMD_SID_ATTR_PARA_ADJUST_BLOCK ; \ RadioCheck = TRUE ; \ Text [ en-US ] = "Justified" ; \ };\ @@ -163,7 +161,6 @@ MenuItem\ {\ Identifier = MN_FORMAT_LINESPACE ; \ - HelpID = MN_FORMAT_LINESPACE ; \ Command = ".uno:LineSpacingMenu" ; \ Text [ en-US ] = "Line Spacing" ; \ _MenuItemFlags = MIB_RADIOCHECK ; \ @@ -208,21 +205,21 @@ location: <project>/uiconfig/[swriter|sweb|sglobal]/menubar/menubar.xml MenuItem \ { \ Identifier = FN_EDIT_FIELD ; \ - HelpID = FN_EDIT_FIELD ; \ + HelpId = CMD_FN_EDIT_FIELD ; \ Text [ en-US ] = "Fields..." ; \ }; #define _MN_EDIT_FOOTNOTE \ MenuItem \ { \ Identifier = FN_EDIT_FOOTNOTE ; \ - HelpID = FN_EDIT_FOOTNOTE ; \ + HelpId = CMD_FN_EDIT_FOOTNOTE ; \ Text [ en-US ] = "Footnote/Endnote~..." ; \ }; #define _MN_EDIT_IDX_ENTRY_DLG \ MenuItem \ { \ Identifier = FN_EDIT_IDX_ENTRY_DLG ; \ - HelpID = FN_EDIT_IDX_ENTRY_DLG ; \ + HelpId = CMD_FN_EDIT_IDX_ENTRY_DLG ; \ Text [ en-US ] = "Inde~x Entry..." ; \ }; @@ -230,13 +227,13 @@ location: <project>/uiconfig/[swriter|sweb|sglobal]/menubar/menubar.xml MenuItem \ { \ Identifier = FN_REDLINE_ACCEPT_DIRECT; \ - HelpID = FN_REDLINE_ACCEPT_DIRECT ; \ + HelpId = CMD_FN_REDLINE_ACCEPT_DIRECT ; \ Text [ en-US ] = "Accept Change" ; \ };\ MenuItem \ { \ Identifier = FN_REDLINE_REJECT_DIRECT ; \ - HelpID = FN_REDLINE_REJECT_DIRECT ; \ + HelpId = CMD_FN_REDLINE_REJECT_DIRECT ; \ Text [ en-US ] = "Reject Change" ; \ }; \ SEPARATOR ; @@ -244,7 +241,7 @@ location: <project>/uiconfig/[swriter|sweb|sglobal]/menubar/menubar.xml MenuItem \ { \ Identifier = FN_EDIT_AUTH_ENTRY_DLG ; \ - HelpID = FN_EDIT_AUTH_ENTRY_DLG ; \ + HelpId = CMD_FN_EDIT_AUTH_ENTRY_DLG ; \ Text [ en-US ] = "~Bibliography Entry..."; \ }; \ SEPARATOR ; @@ -257,19 +254,19 @@ location: <project>/uiconfig/[swriter|sweb|sglobal]/menubar/menubar.xml MenuItem \ { \ Identifier = FN_EDIT_HYPERLINK ; \ - HelpID = FN_EDIT_HYPERLINK ; \ + HelpId = CMD_FN_EDIT_HYPERLINK ; \ Text [ en-US ] = "Edit Hyperlink..."; \ }; \ MenuItem \ { \ Identifier = FN_COPY_HYPERLINK_LOCATION; \ - HelpID = FN_COPY_HYPERLINK_LOCATION; \ + HelpId = CMD_FN_COPY_HYPERLINK_LOCATION; \ Text [ en-US ] = "Copy Hyperlink ~Location"; \ }; \ MenuItem \ { \ Identifier = FN_REMOVE_HYPERLINK ; \ - HelpID = FN_REMOVE_HYPERLINK ; \ + HelpId = CMD_FN_REMOVE_HYPERLINK ; \ Text [ en-US ] = "Remo~ve Hyperlink"; \ }; @@ -283,7 +280,7 @@ location: <project>/uiconfig/[swriter|sweb|sglobal]/menubar/menubar.xml MenuItem\ {\ Identifier = FN_EDIT_HYPERLINK ; \ - HelpID = FN_EDIT_HYPERLINK ; \ + HelpId = CMD_FN_EDIT_HYPERLINK ; \ Text [ en-US ] = "~Edit Hyperlink" ; \ }; @@ -306,7 +303,7 @@ location: <project>/uiconfig/[swriter|sweb|sglobal]/menubar/menubar.xml MenuItem\ {\ Identifier = FN_FORMAT_RESET ; \ - HelpID = FN_FORMAT_RESET ; \ + HelpId = CMD_FN_FORMAT_RESET ; \ Text [ en-US ] = "~Default Formatting" ; \ }; @@ -315,25 +312,25 @@ location: <project>/uiconfig/[swriter|sweb|sglobal]/menubar/menubar.xml MenuItem \ { \ Identifier = FN_NUMBER_NEWSTART; \ - HelpId = FN_NUMBER_NEWSTART; \ + HelpId = CMD_FN_NUMBER_NEWSTART; \ Text[ en-US ] = "Restart Numbering"; \ }; \ MenuItem \ { \ Identifier = FN_NUM_CONTINUE; \ - HelpId = FN_NUM_CONTINUE; \ + HelpId = CMD_FN_NUM_CONTINUE; \ Text[ en-US ] = "Continue previous numbering"; \ }; \ MenuItem \ { \ Identifier = FN_NUM_BULLET_UP; \ - HelpId = FN_NUM_BULLET_UP; \ + HelpId = CMD_FN_NUM_BULLET_UP; \ Text[ en-US ] = "Up One Level"; \ }; \ MenuItem \ { \ Identifier = FN_NUM_BULLET_DOWN; \ - HelpId = FN_NUM_BULLET_DOWN; \ + HelpId = CMD_FN_NUM_BULLET_DOWN; \ Text[ en-US ] = "Down One Level"; \ }; @@ -356,19 +353,19 @@ location: <project>/uiconfig/[swriter|sweb|sglobal]/menubar/menubar.xml MenuItem \ { \ Identifier = FN_UPDATE_CUR_TOX ; \ - HelpID = FN_UPDATE_CUR_TOX ; \ + HelpId = CMD_FN_UPDATE_CUR_TOX ; \ Text [ en-US ] = "~Update Index/Table"; \ }; \ MenuItem \ { \ Identifier = FN_EDIT_CURRENT_TOX; \ - HelpID = FN_EDIT_CURRENT_TOX; \ + HelpId = CMD_FN_EDIT_CURRENT_TOX; \ Text [ en-US ] = "~Edit Index/Table"; \ }; \ MenuItem \ { \ Identifier = FN_REMOVE_CUR_TOX; \ - HelpID = FN_REMOVE_CUR_TOX; \ + HelpId = CMD_FN_REMOVE_CUR_TOX; \ Text [ en-US ] = "Delete Index/Table"; \ }; \ SEPARATOR ; diff --git a/sw/source/ui/inc/swuicnttab.hxx b/sw/source/ui/inc/swuicnttab.hxx index 5bb247187d..6038f4a2de 100644 --- a/sw/source/ui/inc/swuicnttab.hxx +++ b/sw/source/ui/inc/swuicnttab.hxx @@ -163,6 +163,8 @@ class SwTOXSelectTabPage : public SfxTabPage // PushButton aChapterDlgPB; //#outline level,removed by zhaojianwei CheckBox aAddStylesCB; PushButton aAddStylesPB; + Point aAddStylesPosDef; + Point aAddStylesPosUser; //user CheckBox aFromTablesCB; CheckBox aFromFramesCB; diff --git a/sw/source/ui/inc/unotxvw.hxx b/sw/source/ui/inc/unotxvw.hxx index 828016c6e3..e074e37dda 100644 --- a/sw/source/ui/inc/unotxvw.hxx +++ b/sw/source/ui/inc/unotxvw.hxx @@ -156,7 +156,7 @@ public: void Invalidate(); // temporary document used for PDF export of selections/multi-selections - SfxObjectShellRef BuildTmpSelectionDoc( SfxObjectShellRef& ); + SfxObjectShellRef BuildTmpSelectionDoc(); }; /* -----------------17.09.98 12:52------------------- diff --git a/sw/source/ui/inc/usrpref.hxx b/sw/source/ui/inc/usrpref.hxx index 9f3f3e4f39..21b3e64405 100644 --- a/sw/source/ui/inc/usrpref.hxx +++ b/sw/source/ui/inc/usrpref.hxx @@ -147,6 +147,8 @@ class SwMasterUsrPref : public SwViewOption sal_Int32 nDefTab; //default tab stop distance sal_Bool bIsSquaredPageMode; //default page mode for text grid + sal_Bool bIsAlignMathObjectsToBaseline; + SwContentViewConfig aContentConfig; SwLayoutViewConfig aLayoutConfig; SwGridConfig aGridConfig; @@ -271,6 +273,13 @@ public: aLayoutConfig.SetModified(); } + sal_Bool IsAlignMathObjectsToBaseline() const { return bIsAlignMathObjectsToBaseline; } + void SetAlignMathObjectsToBaseline( sal_Bool bVal, sal_Bool bNoModify = sal_False ) + { + bIsAlignMathObjectsToBaseline = bVal; + if(!bNoModify) + aLayoutConfig.SetModified(); + } }; #endif diff --git a/sw/source/ui/inc/view.hxx b/sw/source/ui/inc/view.hxx index 85b33fda78..a5e5ff1918 100644 --- a/sw/source/ui/inc/view.hxx +++ b/sw/source/ui/inc/view.hxx @@ -83,7 +83,6 @@ class CommandEvent; class InsCaptionOpt; class SvGlobalName; class SvtAccessibilityOptions; -class SwPrtOptions; class SwTransferable; class SwMailMergeConfigItem; class SwTxtNode; // #i23726# diff --git a/sw/source/ui/inc/wrtsh.hxx b/sw/source/ui/inc/wrtsh.hxx index 14b26c0391..f7f423a440 100644 --- a/sw/source/ui/inc/wrtsh.hxx +++ b/sw/source/ui/inc/wrtsh.hxx @@ -320,9 +320,6 @@ typedef BOOL (SwWrtShell:: *FNSimpleMove)(); void InsertTableOf(const SwTOXBase& rTOX, const SfxItemSet* pSet = 0); BOOL UpdateTableOf(const SwTOXBase& rTOX, const SfxItemSet* pSet = 0); - // new fields - BOOL UpdateField( sw::mark::IFieldmark &fieldBM); - // Numerierung und Bullets /** Turns on numbering or bullets. diff --git a/sw/source/ui/index/cnttab.cxx b/sw/source/ui/index/cnttab.cxx index 5d9a390600..2da99a6f6c 100644 --- a/sw/source/ui/index/cnttab.cxx +++ b/sw/source/ui/index/cnttab.cxx @@ -828,7 +828,7 @@ SwAddStylesDlg_Impl::SwAddStylesDlg_Impl(Window* pParent, rHB.Show(); SwIndexTreeLB& rTLB = aHeaderTree.GetTreeListBox(); - rTLB.SetWindowBits(WB_CLIPCHILDREN|WB_SORT); + rTLB.SetStyle(rTLB.GetStyle()|WB_CLIPCHILDREN|WB_SORT); //aStylesTLB.SetSelectHdl(LINK(this, SwAddStylesDlg_Impl, SelectHdl)); rTLB.GetModel()->SetSortMode(SortAscending); for(i = 0; i < MAXLEVEL; ++i) @@ -1523,7 +1523,19 @@ IMPL_LINK(SwTOXSelectTabPage, TOXTypeHdl, ListBox*, pBox) //aAddStylesPB.SetPosPixel(aPos); //} //else if( nType & TO_ILLUSTRATION )//<-removed end. - if( nType & TO_ILLUSTRATION ) //add by zhaojianwei + // initialize button positions + + //#i111993# add styles button has two different positions + if( !aAddStylesPosDef.X() ) + { + aAddStylesPosDef = ( aAddStylesPB.GetPosPixel() ); + // move left! + Point aPos(aAddStylesPosDef); + aPos.X() -= 2 * aAddStylesPB.GetSizePixel().Width(); + aAddStylesPosUser = aPos; + } + + if( nType & TO_ILLUSTRATION ) //add by zhaojianwei aCaptionSequenceLB.SelectEntry( SwStyleNameMapper::GetUIName( RES_POOLCOLL_LABEL_ABB, aEmptyStr )); else if( nType & TO_TABLE ) @@ -1532,11 +1544,11 @@ IMPL_LINK(SwTOXSelectTabPage, TOXTypeHdl, ListBox*, pBox) else if( nType & TO_USER ) { aAddStylesCB.SetText(sAddStyleUser); - // move left! - Point aPos(aAddStylesPB.GetPosPixel()); - // aPos.X() = aChapterDlgPB.GetPosPixel().X(); - aPos.X() -= 2 * aAddStylesPB.GetSizePixel().Width(); - aAddStylesPB.SetPosPixel(aPos); + aAddStylesPB.SetPosPixel(aAddStylesPosUser); + } + else if( nType & TO_CONTENT ) + { + aAddStylesPB.SetPosPixel(aAddStylesPosDef); } aCollectSameCB.Show( 0 != (nType & TO_INDEX) ); @@ -2124,7 +2136,7 @@ SwTOXEntryTabPage::SwTOXEntryTabPage(Window* pParent, const SfxItemSet& rAttrSet FreeResource(); sLevelStr = aLevelFT.GetText(); - aLevelLB.SetWindowBits( WB_HSCROLL ); + aLevelLB.SetStyle( aLevelLB.GetStyle() | WB_HSCROLL ); aLevelLB.SetSpaceBetweenEntries(0); aLevelLB.SetSelectionMode( SINGLE_SELECTION ); aLevelLB.SetHighlightRange(); // select full width diff --git a/sw/source/ui/index/cnttab.src b/sw/source/ui/index/cnttab.src index 8220ed42ba..4532c50658 100644 --- a/sw/source/ui/index/cnttab.src +++ b/sw/source/ui/index/cnttab.src @@ -132,6 +132,7 @@ TabPage TP_TOX_SELECT }; Edit ED_TITLE { + HelpID = "sw:Edit:TP_TOX_SELECT:ED_TITLE"; Pos = MAP_APPFONT ( 45 , 14 ) ; Size = MAP_APPFONT ( 203 , 12 ) ; Border = TRUE; @@ -144,6 +145,7 @@ TabPage TP_TOX_SELECT }; ListBox LB_TYPE { + HelpID = "sw:ListBox:TP_TOX_SELECT:LB_TYPE"; Pos = MAP_APPFONT ( 45 , 30 ) ; Size = MAP_APPFONT ( 80 , 80 ) ; TabStop = TRUE ; @@ -161,6 +163,7 @@ TabPage TP_TOX_SELECT }; CheckBox CB_READONLY { + HelpID = "sw:CheckBox:TP_TOX_SELECT:CB_READONLY"; Pos = MAP_APPFONT ( 51 , 46 ) ; Size = MAP_APPFONT ( 200 , 10 ) ; Check = TRUE; @@ -180,6 +183,7 @@ TabPage TP_TOX_SELECT }; ListBox LB_AREA { + HelpID = "sw:ListBox:TP_TOX_SELECT:LB_AREA"; Pos = MAP_APPFONT ( 45 , 70 ) ; Size = MAP_APPFONT ( 80 , 12 ) ; TabStop = TRUE ; @@ -198,6 +202,7 @@ TabPage TP_TOX_SELECT }; NumericField NF_LEVEL { + HelpID = "sw:NumericField:TP_TOX_SELECT:NF_LEVEL"; Pos = MAP_APPFONT ( 231 , 72 ) ; Size = MAP_APPFONT ( 20 , 12 ) ; Border = TRUE ; @@ -218,6 +223,7 @@ TabPage TP_TOX_SELECT }; CheckBox CB_FROMHEADINGS { + HelpID = "sw:CheckBox:TP_TOX_SELECT:CB_FROMHEADINGS"; Pos = MAP_APPFONT ( 12 , 99 ) ; Size = MAP_APPFONT ( 95 , 10 ) ; Check = TRUE; @@ -234,6 +240,7 @@ TabPage TP_TOX_SELECT */ CheckBox CB_ADDSTYLES { + HelpID = "sw:CheckBox:TP_TOX_SELECT:CB_ADDSTYLES"; Pos = MAP_APPFONT ( 12 , 115 ) ; Size = MAP_APPFONT ( 75 , 10 ) ; Text [ en-US ] = "~Additional Styles"; @@ -244,6 +251,7 @@ TabPage TP_TOX_SELECT }; PushButton PB_ADDSTYLES { + HelpID = "sw:PushButton:TP_TOX_SELECT:PB_ADDSTYLES"; Pos = MAP_APPFONT ( 115 , 114 ) ; Size = MAP_APPFONT ( 12 , 12 ) ; Text = "..." ; @@ -251,6 +259,7 @@ TabPage TP_TOX_SELECT }; CheckBox CB_TOXMARKS { + HelpID = "sw:CheckBox:TP_TOX_SELECT:CB_TOXMARKS"; Pos = MAP_APPFONT ( 12 , 131 ) ; Size = MAP_APPFONT ( 90 , 10 ) ; Text [ en-US ] = "Inde~x marks"; @@ -258,6 +267,7 @@ TabPage TP_TOX_SELECT RadioButton RB_FROMCAPTIONS { + HelpID = "sw:RadioButton:TP_TOX_SELECT:RB_FROMCAPTIONS"; Pos = MAP_APPFONT ( 12 , 98 ) ; Size = MAP_APPFONT ( 90 , 10 ) ; Text [ en-US ] = "Captions"; @@ -270,6 +280,7 @@ TabPage TP_TOX_SELECT }; ListBox LB_CAPTIONSEQUENCE { + HelpID = "sw:ListBox:TP_TOX_SELECT:LB_CAPTIONSEQUENCE"; Pos = MAP_APPFONT ( 55 , 112 ) ; Size = MAP_APPFONT ( 70 , 40 ) ; DropDown = TRUE; @@ -283,6 +294,7 @@ TabPage TP_TOX_SELECT }; ListBox LB_DISPLAYTYPE { + HelpID = "sw:ListBox:TP_TOX_SELECT:LB_DISPLAYTYPE"; Pos = MAP_APPFONT ( 55 , 128 ) ; Size = MAP_APPFONT ( 70 , 40 ) ; DropDown = TRUE; @@ -296,54 +308,63 @@ TabPage TP_TOX_SELECT }; RadioButton RB_FROMOBJECTNAMES { + HelpID = "sw:RadioButton:TP_TOX_SELECT:RB_FROMOBJECTNAMES"; Pos = MAP_APPFONT ( 156 , 98 ) ; Size = MAP_APPFONT ( 90 , 10 ) ; Text [ en-US ] = "Object names"; }; CheckBox CB_COLLECTSAME { + HelpID = "sw:CheckBox:TP_TOX_SELECT:CB_COLLECTSAME"; Pos = MAP_APPFONT ( 12 , 98 ) ; Size = MAP_APPFONT ( 121 , 10 ) ; Text [ en-US ] = "Combine identical entries"; }; CheckBox CB_USEFF { + HelpID = "sw:CheckBox:TP_TOX_SELECT:CB_USEFF"; Pos = MAP_APPFONT ( 18 , 111 ) ; Size = MAP_APPFONT ( 115 , 10 ) ; Text [ en-US ] = "Combine identical entries with p or ~pp"; }; CheckBox CB_USE_DASH { + HelpID = "sw:CheckBox:TP_TOX_SELECT:CB_USE_DASH"; Pos = MAP_APPFONT ( 18 , 124 ) ; Size = MAP_APPFONT ( 115 , 10 ) ; Text [ en-US ] = "Combine with -"; }; CheckBox CB_CASESENSITIVE { + HelpID = "sw:CheckBox:TP_TOX_SELECT:CB_CASESENSITIVE"; Pos = MAP_APPFONT ( 18 , 137 ) ; Size = MAP_APPFONT ( 115 , 10 ) ; Text [ en-US ] = "Case sensitive"; }; CheckBox CB_INITIALCAPS { + HelpID = "sw:CheckBox:TP_TOX_SELECT:CB_INITIALCAPS"; Pos = MAP_APPFONT ( 136 , 98 ) ; Size = MAP_APPFONT ( 115 , 10 ) ; Text [ en-US ] = "AutoCapitalize entries"; }; CheckBox CB_KEYASENTRY { + HelpID = "sw:CheckBox:TP_TOX_SELECT:CB_KEYASENTRY"; Pos = MAP_APPFONT ( 136, 111 ) ; Size = MAP_APPFONT ( 115 , 10 ) ; Text [ en-US ] = "Keys as separate entries"; }; CheckBox CB_FROMFILE { + HelpID = "sw:CheckBox:TP_TOX_SELECT:CB_FROMFILE"; Pos = MAP_APPFONT ( 136 , 124 ) ; Size = MAP_APPFONT ( 115 , 10 ) ; Text [ en-US ] = "~Concordance file"; }; MenuButton MB_AUTOMARK { + HelpID = "sw:MenuButton:TP_TOX_SELECT:MB_AUTOMARK"; Pos = MAP_APPFONT ( 136 , 137 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; TabStop = TRUE ; @@ -372,30 +393,35 @@ TabPage TP_TOX_SELECT }; CheckBox CB_FROMTABLES { + HelpID = "sw:CheckBox:TP_TOX_SELECT:CB_FROMTABLES"; Pos = MAP_APPFONT ( 112 , 99 ) ; Size = MAP_APPFONT ( 68 , 10 ) ; Text [ en-US ] = "Tables"; }; CheckBox CB_FROMFRAMES { + HelpID = "sw:CheckBox:TP_TOX_SELECT:CB_FROMFRAMES"; Pos = MAP_APPFONT ( 182 , 99 ) ; Size = MAP_APPFONT ( 68 , 10 ) ; Text [ en-US ] = "Te~xt frames"; }; CheckBox CB_FROMGRAPHICS { + HelpID = "sw:CheckBox:TP_TOX_SELECT:CB_FROMGRAPHICS"; Pos = MAP_APPFONT ( 112 , 113 ) ; Size = MAP_APPFONT ( 68 , 10 ) ; Text [ en-US ] = "Graphics"; }; CheckBox CB_FROMOLE { + HelpID = "sw:CheckBox:TP_TOX_SELECT:CB_FROMOLE"; Pos = MAP_APPFONT ( 182 , 113 ) ; Size = MAP_APPFONT ( 68 , 10 ) ; Text [ en-US ] = "OLE objects"; }; CheckBox CB_LEVELFROMCHAPTER { + HelpID = "sw:CheckBox:TP_TOX_SELECT:CB_LEVELFROMCHAPTER"; Pos = MAP_APPFONT ( 118 , 127 ) ; Size = MAP_APPFONT ( 103 , 10 ) ; Text [ en-US ] = "Use level from source chapter"; @@ -443,6 +469,7 @@ TabPage TP_TOX_SELECT }; CheckBox CB_SEQUENCE { + HelpID = "sw:CheckBox:TP_TOX_SELECT:CB_SEQUENCE"; Pos = MAP_APPFONT ( 12, 70) ; Size = MAP_APPFONT ( 100, 10 ) ; Text [ en-US ] = "~Number entries"; @@ -455,6 +482,7 @@ TabPage TP_TOX_SELECT }; ListBox LB_BRACKET { + HelpID = "sw:ListBox:TP_TOX_SELECT:LB_BRACKET"; Pos = MAP_APPFONT ( 75, 84) ; Size = MAP_APPFONT ( 40, 50 ) ; Border = TRUE; @@ -495,6 +523,7 @@ TabPage TP_TOX_SELECT }; ListBox LB_LANGUAGE { + HelpID = "sw:ListBox:TP_TOX_SELECT:LB_LANGUAGE"; Pos = MAP_APPFONT ( 47, 164) ; Size = MAP_APPFONT ( 80, 50 ) ; Border = TRUE; @@ -508,6 +537,7 @@ TabPage TP_TOX_SELECT }; ListBox LB_SORTALG { + HelpID = "sw:ListBox:TP_TOX_SELECT:LB_SORTALG"; Pos = MAP_APPFONT ( 201, 164) ; Size = MAP_APPFONT ( 50, 50 ) ; Border = TRUE; @@ -549,6 +579,7 @@ TabPage TP_TOX_ENTRY Size = MAP_APPFONT ( 136, 12 ) ; ImageButton WIN_LEFT_SCROLL { + HelpID = "sw:ImageButton:TP_TOX_ENTRY:WIN_LEFT_SCROLL"; Pos = MAP_APPFONT ( 0, 0 ) ; Size = MAP_APPFONT ( 10, 12 ) ; Symbol = IMAGEBUTTON_ARROW_LEFT; @@ -563,6 +594,7 @@ TabPage TP_TOX_ENTRY }; ImageButton WIN_RIGHT_SCROLL { + HelpID = "sw:ImageButton:TP_TOX_ENTRY:WIN_RIGHT_SCROLL"; Pos = MAP_APPFONT ( 126, 0 ) ; Size = MAP_APPFONT ( 10, 12 ) ; Symbol = IMAGEBUTTON_ARROW_RIGHT; @@ -649,48 +681,56 @@ TabPage TP_TOX_ENTRY }; PushButton PB_ALL_LEVELS { + HelpID = "sw:PushButton:TP_TOX_ENTRY:PB_ALL_LEVELS"; Pos = MAP_APPFONT ( 209 , 14 ) ; Size = MAP_APPFONT ( 40, 14 ) ; Text [ en-US ] = "~All"; }; PushButton PB_ENTRYNO { + HelpID = "sw:PushButton:TP_TOX_ENTRY:PB_ENTRYNO"; Pos = MAP_APPFONT ( 37 , 32 ) ; Size = MAP_APPFONT ( 40, 14 ) ; Text [ en-US ] = "Chapter no."; }; PushButton PB_ENTRY { + HelpID = "sw:PushButton:TP_TOX_ENTRY:PB_ENTRY"; Pos = MAP_APPFONT ( 80, 32 ) ; Size = MAP_APPFONT ( 40, 14 ) ; Text [ en-US ] = "Entry text"; }; PushButton PB_CHAPTERINFO { + HelpID = "sw:PushButton:TP_TOX_ENTRY:PB_CHAPTERINFO"; Pos = MAP_APPFONT ( 123 , 32 ) ; Size = MAP_APPFONT ( 40, 14) ; Text [ en-US ] = "~Chapter info"; }; PushButton PB_PAGENO { + HelpID = "sw:PushButton:TP_TOX_ENTRY:PB_PAGENO"; Pos = MAP_APPFONT ( 166 , 32 ) ; Size = MAP_APPFONT ( 40, 14 ) ; Text [ en-US ] = "Page no."; }; PushButton PB_TAB { + HelpID = "sw:PushButton:TP_TOX_ENTRY:PB_TAB"; Pos = MAP_APPFONT ( 209 ,32 ) ; Size = MAP_APPFONT ( 40, 14 ) ; Text [ en-US ] = "Tab stop"; }; PushButton PB_HYPERLINK { + HelpID = "sw:PushButton:TP_TOX_ENTRY:PB_HYPERLINK"; Pos = MAP_APPFONT ( 209 , 32 ) ; Size = MAP_APPFONT ( 40, 14 ) ; Text [ en-US ] = "H~yperlink"; }; ListBox LB_AUTHFIELD { + HelpID = "sw:ListBox:TP_TOX_ENTRY:LB_AUTHFIELD"; Pos = MAP_APPFONT ( 37 , 33 ) ; Size = MAP_APPFONT ( 59, 60 ) ; DropDown = TRUE; @@ -699,12 +739,14 @@ TabPage TP_TOX_ENTRY }; PushButton PB_AUTHINSERT { + HelpID = "sw:PushButton:TP_TOX_ENTRY:PB_AUTHINSERT"; Pos = MAP_APPFONT ( 99 , 32 ) ; Size = MAP_APPFONT ( 39, 14 ) ; Text [ en-US ] = "~Insert"; }; PushButton PB_AUTHREMOVE { + HelpID = "sw:PushButton:TP_TOX_ENTRY:PB_AUTHREMOVE"; Pos = MAP_APPFONT ( 142 , 32 ) ; Size = MAP_APPFONT ( 39, 14 ) ; Text [ en-US ] = "~Remove"; @@ -717,6 +759,7 @@ TabPage TP_TOX_ENTRY }; ListBox LB_CHARSTYLE { + HelpID = "sw:ListBox:TP_TOX_ENTRY:LB_CHARSTYLE"; Pos = MAP_APPFONT ( 100 , 53 ) ; Size = MAP_APPFONT ( 93, 60 ) ; TabStop = TRUE ; @@ -724,6 +767,7 @@ TabPage TP_TOX_ENTRY }; PushButton PB_EDITSTYLE { + HelpID = "sw:PushButton:TP_TOX_ENTRY:PB_EDITSTYLE"; Pos = MAP_APPFONT ( 199 , 52 ) ; Size = MAP_APPFONT ( 50, 14 ) ; Text [ en-US ] = "~Edit..."; @@ -736,6 +780,7 @@ TabPage TP_TOX_ENTRY }; ComboBox CB_FILLCHAR { + HelpID = "sw:ComboBox:TP_TOX_ENTRY:CB_FILLCHAR"; Pos = MAP_APPFONT ( 100 , 69 ) ; Size = MAP_APPFONT ( 40, 40 ) ; TabStop = TRUE ; @@ -749,6 +794,7 @@ TabPage TP_TOX_ENTRY }; ListBox LB_CHAPTERENTRY { + HelpID = "sw:ListBox:TP_TOX_ENTRY:LB_CHAPTERENTRY"; Pos = MAP_APPFONT ( 100 , 69 ) ; Size = MAP_APPFONT ( 93, 40 ) ; TabStop = TRUE ; @@ -769,6 +815,7 @@ TabPage TP_TOX_ENTRY }; ListBox LB_ENTRY_NO { + HelpID = "sw:ListBox:TP_TOX_ENTRY:LB_ENTRY_NO"; Pos = MAP_APPFONT ( 100 , 69 ) ; Size = MAP_APPFONT ( 93, 40 ) ; TabStop = TRUE ; @@ -788,6 +835,7 @@ TabPage TP_TOX_ENTRY }; NumericField NF_LEVEL_OL { + HelpID = "sw:NumericField:TP_TOX_ENTRY:NF_LEVEL_OL"; Pos = MAP_APPFONT ( 100 , 85 ) ; Size = MAP_APPFONT ( 20 , 12 ) ; Border = TRUE ; @@ -809,6 +857,7 @@ TabPage TP_TOX_ENTRY }; MetricField MF_TABPOS { + HelpID = "sw:MetricField:TP_TOX_ENTRY:MF_TABPOS"; Pos = MAP_APPFONT ( 100 , 85 ) ; Size = MAP_APPFONT ( 40, 12 ) ; Border = TRUE ; @@ -827,6 +876,7 @@ TabPage TP_TOX_ENTRY }; CheckBox CB_AUTORIGHT { + HelpID = "sw:CheckBox:TP_TOX_ENTRY:CB_AUTORIGHT"; Pos = MAP_APPFONT ( 143 , 86 ) ; Size = MAP_APPFONT ( 100, 10 ) ; Text [ en-US ] = "Align right"; @@ -839,6 +889,7 @@ TabPage TP_TOX_ENTRY }; CheckBox CB_RELTOSTYLE { + HelpID = "sw:CheckBox:TP_TOX_ENTRY:CB_RELTOSTYLE"; Pos = MAP_APPFONT ( 37 , 110 ) ; Size = MAP_APPFONT ( 200, 10 ) ; Text [ en-US ] = "Tab position relati~ve to Paragraph Style indent"; @@ -851,6 +902,7 @@ TabPage TP_TOX_ENTRY }; ListBox LB_MAIN_ENTRY_STYLE { + HelpID = "sw:ListBox:TP_TOX_ENTRY:LB_MAIN_ENTRY_STYLE"; Pos = MAP_APPFONT ( 157 , 110 ) ; Size = MAP_APPFONT ( 92, 80 ) ; TabStop = TRUE ; @@ -860,12 +912,14 @@ TabPage TP_TOX_ENTRY CheckBox CB_ALPHADELIM { + HelpID = "sw:CheckBox:TP_TOX_ENTRY:CB_ALPHADELIM"; Pos = MAP_APPFONT ( 37 , 126 ) ; Size = MAP_APPFONT ( 105, 10 ) ; Text [ en-US ] = "Alphabetical delimiter"; }; CheckBox CB_COMMASEPARATED { + HelpID = "sw:CheckBox:TP_TOX_ENTRY:CB_COMMASEPARATED"; Pos = MAP_APPFONT ( 37 , 140 ) ; Size = MAP_APPFONT ( 105, 10 ) ; Text [ en-US ] = "Key separated by commas"; @@ -878,12 +932,14 @@ TabPage TP_TOX_ENTRY }; RadioButton RB_DOCPOS { + HelpID = "sw:RadioButton:TP_TOX_ENTRY:RB_DOCPOS"; Pos = MAP_APPFONT ( 40 , 113) ; Size = MAP_APPFONT ( 94, 10 ) ; Text [ en-US ] = "Document ~position "; }; RadioButton RB_SORTCONTENT { + HelpID = "sw:RadioButton:TP_TOX_ENTRY:RB_SORTCONTENT"; Pos = MAP_APPFONT ( 136 , 113 ) ; Size = MAP_APPFONT ( 90, 10 ) ; Text [ en-US ] = "~Content"; @@ -902,6 +958,7 @@ TabPage TP_TOX_ENTRY }; ListBox LB_FIRSTKEY { + HelpID = "sw:ListBox:TP_TOX_ENTRY:LB_FIRSTKEY"; Pos = MAP_APPFONT ( 60 , 138 ) ; Size = MAP_APPFONT ( 159, 50 ) ; Border = TRUE; @@ -919,6 +976,7 @@ TabPage TP_TOX_ENTRY }; ImageRadioButton RB_SORTUP1 { + HelpID = "sw:ImageRadioButton:TP_TOX_ENTRY:RB_SORTUP1"; Pos = MAP_APPFONT ( 222 , 138 ) ; Size = MAP_APPFONT ( 12, 12 ) ; RadioButtonImage = @@ -932,6 +990,7 @@ TabPage TP_TOX_ENTRY }; ImageRadioButton RB_SORTDOWN1 { + HelpID = "sw:ImageRadioButton:TP_TOX_ENTRY:RB_SORTDOWN1"; Pos = MAP_APPFONT ( 237 , 138 ) ; Size = MAP_APPFONT ( 12, 12 ) ; RadioButtonImage = @@ -944,6 +1003,7 @@ TabPage TP_TOX_ENTRY }; ImageRadioButton RB_SORTUP2 { + HelpID = "sw:ImageRadioButton:TP_TOX_ENTRY:RB_SORTUP2"; Pos = MAP_APPFONT ( 222 , 153 ) ; Size = MAP_APPFONT ( 12, 12 ) ; RadioButtonImage = @@ -957,6 +1017,7 @@ TabPage TP_TOX_ENTRY }; ImageRadioButton RB_SORTDOWN2 { + HelpID = "sw:ImageRadioButton:TP_TOX_ENTRY:RB_SORTDOWN2"; Pos = MAP_APPFONT ( 237 , 153 ) ; Size = MAP_APPFONT ( 12, 12 ) ; RadioButtonImage = @@ -969,6 +1030,7 @@ TabPage TP_TOX_ENTRY }; ImageRadioButton RB_SORTUP3 { + HelpID = "sw:ImageRadioButton:TP_TOX_ENTRY:RB_SORTUP3"; Pos = MAP_APPFONT ( 222 , 168 ) ; Size = MAP_APPFONT ( 12, 12 ) ; RadioButtonImage = @@ -982,6 +1044,7 @@ TabPage TP_TOX_ENTRY }; ImageRadioButton RB_SORTDOWN3 { + HelpID = "sw:ImageRadioButton:TP_TOX_ENTRY:RB_SORTDOWN3"; Pos = MAP_APPFONT ( 237 ,168 ) ; Size = MAP_APPFONT ( 12, 12 ) ; RadioButtonImage = @@ -1000,6 +1063,7 @@ TabPage TP_TOX_ENTRY }; ListBox LB_SECONDKEY { + HelpID = "sw:ListBox:TP_TOX_ENTRY:LB_SECONDKEY"; Pos = MAP_APPFONT ( 60 , 153 ) ; Size = MAP_APPFONT ( 159, 50 ) ; Border = TRUE; @@ -1013,6 +1077,7 @@ TabPage TP_TOX_ENTRY }; ListBox LB_THIRDKEY { + HelpID = "sw:ListBox:TP_TOX_ENTRY:LB_THIRDKEY"; Pos = MAP_APPFONT ( 60 , 168 ) ; Size = MAP_APPFONT ( 159, 50 ) ; Border = TRUE; @@ -1052,6 +1117,7 @@ TabPage TP_TOX_STYLES }; ListBox LB_LEVEL { + HelpID = "sw:ListBox:TP_TOX_STYLES:LB_LEVEL"; Border = TRUE ; Pos = MAP_APPFONT ( 12 , 25 ) ; Size = MAP_APPFONT ( 102 , 131 ) ; @@ -1067,6 +1133,7 @@ TabPage TP_TOX_STYLES }; ListBox LB_PARALAY { + HelpID = "sw:ListBox:TP_TOX_STYLES:LB_PARALAY"; Border = TRUE ; Pos = MAP_APPFONT ( 142 , 25 ) ; Size = MAP_APPFONT ( 101 , 131 ) ; @@ -1076,6 +1143,7 @@ TabPage TP_TOX_STYLES }; PushButton BT_STD { + HelpID = "sw:PushButton:TP_TOX_STYLES:BT_STD"; Pos = MAP_APPFONT ( 64 , 162 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; TabStop = TRUE ; @@ -1083,6 +1151,7 @@ TabPage TP_TOX_STYLES }; ImageButton BT_ASSIGN { + HelpID = "sw:ImageButton:TP_TOX_STYLES:BT_ASSIGN"; Pos = MAP_APPFONT ( 118 , 28 ) ; Size = MAP_APPFONT ( 20 , 12 ) ; TabStop = TRUE ; @@ -1097,6 +1166,7 @@ TabPage TP_TOX_STYLES }; PushButton BT_EDIT_STYLE { + HelpID = "sw:PushButton:TP_TOX_STYLES:BT_EDIT_STYLE"; Pos = MAP_APPFONT ( 193 , 162 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; TabStop = TRUE ; @@ -1136,6 +1206,7 @@ ModalDialog DLG_ADD_IDX_STYLES }; ImageButton PB_LEFT { + HelpID = "sw:ImageButton:DLG_ADD_IDX_STYLES:PB_LEFT"; Pos = MAP_APPFONT ( 12 , 182 ) ; Size = MAP_APPFONT ( 50 , 12 ) ; TabStop = TRUE ; @@ -1150,6 +1221,7 @@ ModalDialog DLG_ADD_IDX_STYLES }; ImageButton PB_RIGHT { + HelpID = "sw:ImageButton:DLG_ADD_IDX_STYLES:PB_RIGHT"; Pos = MAP_APPFONT ( 65 , 182 ) ; Size = MAP_APPFONT ( 50 , 12 ) ; TabStop = TRUE ; diff --git a/sw/source/ui/index/idxmrk.src b/sw/source/ui/index/idxmrk.src index 6a4ce1934d..e0a1a4df9c 100644 --- a/sw/source/ui/index/idxmrk.src +++ b/sw/source/ui/index/idxmrk.src @@ -275,7 +275,7 @@ ModalDialog DLG_EDIT_IDXMARK Moveable = TRUE ; Closeable = TRUE; Sizeable = FALSE ; - HelpID = FN_EDIT_IDX_ENTRY_DLG; + HelpId = CMD_FN_EDIT_IDX_ENTRY_DLG; SVLook = TRUE ; #define IDX_WIN_WIDTH IDX_WIN_WIDTH_NORMAL Size = MAP_APPFONT ( IDX_WIN_WIDTH , 118 ) ; @@ -294,7 +294,7 @@ ModalDialog DLG_EDIT_IDXMARK_CJK Moveable = TRUE ; Closeable = TRUE; Sizeable = FALSE ; - HelpID = FN_EDIT_IDX_ENTRY_DLG; + HelpId = CMD_FN_EDIT_IDX_ENTRY_DLG; SVLook = TRUE ; #define IDX_WIN_WIDTH IDX_WIN_WIDTH_CJK Size = MAP_APPFONT ( IDX_WIN_WIDTH , 118 ) ; @@ -315,7 +315,7 @@ ModelessDialog DLG_INSIDXMARK Sizeable = FALSE ; Hide = TRUE ; // Zoomable = TRUE ; - HelpID = FN_INSERT_IDX_ENTRY_DLG; + HelpId = CMD_FN_INSERT_IDX_ENTRY_DLG; SVLook = TRUE ; #define IDX_WIN_WIDTH IDX_WIN_WIDTH_NORMAL Size = MAP_APPFONT ( IDX_WIN_WIDTH , 138) ; @@ -336,7 +336,7 @@ ModelessDialog DLG_INSIDXMARK_CJK Closeable = TRUE; Sizeable = FALSE ; // Zoomable = TRUE ; - HelpID = FN_INSERT_IDX_ENTRY_DLG; + HelpId = CMD_FN_INSERT_IDX_ENTRY_DLG; SVLook = TRUE ; #define IDX_WIN_WIDTH IDX_WIN_WIDTH_CJK Size = MAP_APPFONT ( IDX_WIN_WIDTH , 138) ; @@ -392,6 +392,7 @@ ModalDialog DLG_NEW_USER_IDX }; Edit ED_NAME { + HelpID = "sw:Edit:DLG_NEW_USER_IDX:ED_NAME"; Border = TRUE ; Pos = MAP_APPFONT ( 55 , 15 ) ; Size = MAP_APPFONT ( 78 , 12 ) ; @@ -523,7 +524,7 @@ ModalDialog DLG_EDIT_AUTHMARK Moveable = TRUE ; Closeable = TRUE ; Sizeable = FALSE ; - HelpID = FN_EDIT_AUTH_ENTRY_DLG; + HelpId = CMD_FN_EDIT_AUTH_ENTRY_DLG; SVLook = TRUE ; Size = MAP_APPFONT ( 218 , 118 ) ; #define RADIO_BUTTON_HEIGHT 0 @@ -536,7 +537,7 @@ ModelessDialog DLG_INSAUTHMARK Closeable = TRUE ; Sizeable = FALSE ; // Zoomable = TRUE ; - HelpID = FN_INSERT_AUTH_ENTRY_DLG; + HelpId = CMD_FN_INSERT_AUTH_ENTRY_DLG; SVLook = TRUE ; #define RADIO_BUTTON_HEIGHT 30 Size = MAP_APPFONT ( 218 , 118 + RADIO_BUTTON_HEIGHT) ; diff --git a/sw/source/ui/index/multmrk.src b/sw/source/ui/index/multmrk.src index 83db407d1a..d5d11ed530 100644 --- a/sw/source/ui/index/multmrk.src +++ b/sw/source/ui/index/multmrk.src @@ -31,7 +31,7 @@ #include "helpid.h" ModalDialog DLG_MULTMRK { - HelpID = FN_EDIT_IDX_ENTRY_DLG ; + HelpID = CMD_FN_EDIT_IDX_ENTRY_DLG ; OutputSize = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 220 , 95 ) ; @@ -65,6 +65,7 @@ ModalDialog DLG_MULTMRK }; ListBox LB_TOX { + HelpID = "sw:ListBox:DLG_MULTMRK:LB_TOX"; Border = TRUE ; Pos = MAP_APPFONT ( 12 , 37 ) ; Size = MAP_APPFONT ( 100 , 49 ) ; diff --git a/sw/source/ui/index/swuiidxmrk.cxx b/sw/source/ui/index/swuiidxmrk.cxx index be034b3909..5253673c72 100644 --- a/sw/source/ui/index/swuiidxmrk.cxx +++ b/sw/source/ui/index/swuiidxmrk.cxx @@ -1204,8 +1204,9 @@ public: struct TextInfo { sal_uInt16 nToxField; - sal_uInt16 nHelpId; + const char* pHelpId; }; + static const TextInfo aTextInfoArr[] = { {AUTH_FIELD_IDENTIFIER, HID_AUTH_FIELD_IDENTIFIER }, @@ -1741,7 +1742,7 @@ SwCreateAuthEntryDlg_Impl::SwCreateAuthEntryDlg_Impl(Window* pParent, pTypeListBox->SetPosPixel(bLeft ? aTR1 : aTR2); pTypeListBox->Show(); pTypeListBox->SetSelectHdl(LINK(this, SwCreateAuthEntryDlg_Impl, EnableHdl)); - pTypeListBox->SetHelpId(aCurInfo.nHelpId); + pTypeListBox->SetHelpId(aCurInfo.pHelpId); } else if(AUTH_FIELD_IDENTIFIER == aCurInfo.nToxField && !m_bNewEntryMode) @@ -1769,7 +1770,7 @@ SwCreateAuthEntryDlg_Impl::SwCreateAuthEntryDlg_Impl(Window* pParent, pIdentifierBox->SetSizePixel(aTmp); pIdentifierBox->SetPosPixel(bLeft ? aTR1 : aTR2); pIdentifierBox->Show(); - pIdentifierBox->SetHelpId(aCurInfo.nHelpId); + pIdentifierBox->SetHelpId(aCurInfo.pHelpId); } else { @@ -1780,7 +1781,7 @@ SwCreateAuthEntryDlg_Impl::SwCreateAuthEntryDlg_Impl(Window* pParent, pEdits[nIndex]->SetPosPixel(bLeft ? aTR1 : aTR2); pEdits[nIndex]->SetText(pFields[aCurInfo.nToxField]); pEdits[nIndex]->Show(); - pEdits[nIndex]->SetHelpId(aCurInfo.nHelpId); + pEdits[nIndex]->SetHelpId(aCurInfo.pHelpId); if(AUTH_FIELD_IDENTIFIER == aCurInfo.nToxField) { pEdits[nIndex]->SetModifyHdl(LINK(this, SwCreateAuthEntryDlg_Impl, ShortNameHdl)); diff --git a/sw/source/ui/lingu/olmenu.cxx b/sw/source/ui/lingu/olmenu.cxx index 98eaf8d466..98eaf8d466 100755..100644 --- a/sw/source/ui/lingu/olmenu.cxx +++ b/sw/source/ui/lingu/olmenu.cxx diff --git a/sw/source/ui/misc/bookmark.src b/sw/source/ui/misc/bookmark.src index 9ca4254eb6..39529dd67c 100644 --- a/sw/source/ui/misc/bookmark.src +++ b/sw/source/ui/misc/bookmark.src @@ -31,7 +31,7 @@ #include "helpid.h" ModalDialog DLG_INSERT_BOOKMARK { - HelpID = FN_INSERT_BOOKMARK ; + HelpID = CMD_FN_INSERT_BOOKMARK ; OUTPUTSIZE = TRUE ; Size = MAP_APPFONT ( 179 , 96 ) ; /* ### ACHTUNG: Neuer Text in Resource? Textmarke einfügen : Textmarke einf³gen */ @@ -54,6 +54,7 @@ ModalDialog DLG_INSERT_BOOKMARK }; ComboBox CB_BOOKMARK { + HelpID = "sw:ComboBox:DLG_INSERT_BOOKMARK:CB_BOOKMARK"; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 99 , 76 ) ; TABSTOP = TRUE ; @@ -62,6 +63,7 @@ ModalDialog DLG_INSERT_BOOKMARK }; PushButton BT_DELETE { + HelpID = "sw:PushButton:DLG_INSERT_BOOKMARK:BT_DELETE"; Pos = MAP_APPFONT ( 123 , 40 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; /* ### ACHTUNG: Neuer Text in Resource? ~Löschen : ~L÷schen */ diff --git a/sw/source/ui/misc/docfnote.src b/sw/source/ui/misc/docfnote.src index bdb4d55eb2..bc983676d7 100644 --- a/sw/source/ui/misc/docfnote.src +++ b/sw/source/ui/misc/docfnote.src @@ -78,6 +78,7 @@ TabPage TP_FOOTNOTEOPTION }; ListBox LB_NUMVIEW { + HelpID = "sw:ListBox:TP_FOOTNOTEOPTION:LB_NUMVIEW"; Border = TRUE ; Pos = MAP_APPFONT ( 65 , 14 ) ; Size = MAP_APPFONT ( 59 , 72 ) ; @@ -94,6 +95,7 @@ TabPage TP_FOOTNOTEOPTION }; NumericField FLD_OFFSET { + HelpID = "sw:NumericField:TP_FOOTNOTEOPTION:FLD_OFFSET"; Pos = MAP_APPFONT ( 189 , 14 ) ; Size = MAP_APPFONT ( 30 , 12 ) ; Spin = TRUE ; @@ -112,6 +114,7 @@ TabPage TP_FOOTNOTEOPTION }; ListBox LB_NUMCOUNT { + HelpID = "sw:ListBox:TP_FOOTNOTEOPTION:LB_NUMCOUNT"; Border = TRUE ; Pos = MAP_APPFONT ( 65 , 29 ) ; Size = MAP_APPFONT ( 59 , 50 ) ; @@ -135,6 +138,7 @@ TabPage TP_FOOTNOTEOPTION }; Edit ED_PREFIX { + HelpID = "sw:Edit:TP_FOOTNOTEOPTION:ED_PREFIX"; Border = TRUE ; Pos = MAP_APPFONT ( 65 , 44 ) ; Size = MAP_APPFONT ( 59 , 12 ) ; @@ -151,6 +155,7 @@ TabPage TP_FOOTNOTEOPTION }; Edit ED_SUFFIX { + HelpID = "sw:Edit:TP_FOOTNOTEOPTION:ED_SUFFIX"; Border = TRUE ; Pos = MAP_APPFONT ( 189 , 44 ) ; Size = MAP_APPFONT ( 59 , 12 ) ; @@ -166,6 +171,7 @@ TabPage TP_FOOTNOTEOPTION }; RadioButton RB_POS_PAGE { + HelpID = "sw:RadioButton:TP_FOOTNOTEOPTION:RB_POS_PAGE"; Pos = MAP_APPFONT ( 65 , 62 ) ; Size = MAP_APPFONT ( 150 , 10 ) ; Text [ en-US ] = "~End of page" ; @@ -174,6 +180,7 @@ TabPage TP_FOOTNOTEOPTION }; RadioButton RB_POS_CHAPTER { + HelpID = "sw:RadioButton:TP_FOOTNOTEOPTION:RB_POS_CHAPTER"; Pos = MAP_APPFONT ( 65 , 75 ) ; Size = MAP_APPFONT ( 150 , 10 ) ; Text [ en-US ] = "En~d of document" ; @@ -193,6 +200,7 @@ TabPage TP_FOOTNOTEOPTION }; ListBox LB_PARA_TEMPL { + HelpID = "sw:ListBox:TP_FOOTNOTEOPTION:LB_PARA_TEMPL"; Border = TRUE ; Pos = MAP_APPFONT ( 48 , 100 ) ; Size = MAP_APPFONT ( 58 , 80 ) ; @@ -210,6 +218,7 @@ TabPage TP_FOOTNOTEOPTION }; ListBox LB_PAGE_TEMPL { + HelpID = "sw:ListBox:TP_FOOTNOTEOPTION:LB_PAGE_TEMPL"; Border = TRUE ; Pos = MAP_APPFONT ( 48 , 116) ; Size = MAP_APPFONT ( 58 , 80 ) ; @@ -232,6 +241,7 @@ TabPage TP_FOOTNOTEOPTION }; ListBox LB_ANCHR_CHARFMT { + HelpID = "sw:ListBox:TP_FOOTNOTEOPTION:LB_ANCHR_CHARFMT"; Border = TRUE ; Pos = MAP_APPFONT ( 186 , 100 ) ; Size = MAP_APPFONT ( 65 , 72 ) ; @@ -248,6 +258,7 @@ TabPage TP_FOOTNOTEOPTION }; ListBox LB_TEXT_CHARFMT { + HelpID = "sw:ListBox:TP_FOOTNOTEOPTION:LB_TEXT_CHARFMT"; Border = TRUE ; Pos = MAP_APPFONT ( 186 , 116 ) ; Size = MAP_APPFONT ( 65 , 72 ) ; @@ -270,6 +281,7 @@ TabPage TP_FOOTNOTEOPTION }; Edit ED_CONT { + HelpID = "sw:Edit:TP_FOOTNOTEOPTION:ED_CONT"; Border = TRUE ; Pos = MAP_APPFONT ( 88, 145 ) ; Size = MAP_APPFONT ( 160 , 12 ) ; @@ -286,6 +298,7 @@ TabPage TP_FOOTNOTEOPTION }; Edit ED_CONT_FROM { + HelpID = "sw:Edit:TP_FOOTNOTEOPTION:ED_CONT_FROM"; Border = TRUE ; Pos = MAP_APPFONT ( 88 , 161 ) ; Size = MAP_APPFONT ( 160 , 12 ) ; @@ -316,6 +329,7 @@ TabPage TP_ENDNOTEOPTION }; ListBox LB_NUMVIEW { + HelpID = "sw:ListBox:TP_ENDNOTEOPTION:LB_NUMVIEW"; Border = TRUE ; Pos = MAP_APPFONT ( 65 , 14 ) ; Size = MAP_APPFONT ( 59 , 72 ) ; @@ -343,6 +357,7 @@ TabPage TP_ENDNOTEOPTION }; NumericField FLD_OFFSET { + HelpID = "sw:NumericField:TP_ENDNOTEOPTION:FLD_OFFSET"; Pos = MAP_APPFONT ( 189 , 14 ) ; Size = MAP_APPFONT ( 30 , 12 ) ; Spin = TRUE ; @@ -361,6 +376,7 @@ TabPage TP_ENDNOTEOPTION }; ListBox LB_NUMCOUNT { + HelpID = "sw:ListBox:TP_ENDNOTEOPTION:LB_NUMCOUNT"; Border = TRUE ; Pos = MAP_APPFONT ( 12 , 27 ) ; Size = MAP_APPFONT ( 62 , 72 ) ; @@ -376,6 +392,7 @@ TabPage TP_ENDNOTEOPTION }; Edit ED_PREFIX { + HelpID = "sw:Edit:TP_ENDNOTEOPTION:ED_PREFIX"; Pos = MAP_APPFONT ( 65 , 30 ) ; Size = MAP_APPFONT ( 59 , 12 ) ; Border = TRUE ; @@ -392,6 +409,7 @@ TabPage TP_ENDNOTEOPTION }; Edit ED_SUFFIX { + HelpID = "sw:Edit:TP_ENDNOTEOPTION:ED_SUFFIX"; Pos = MAP_APPFONT ( 189 , 30 ) ; Size = MAP_APPFONT ( 59 , 12 ) ; Border = TRUE ; @@ -407,6 +425,7 @@ TabPage TP_ENDNOTEOPTION }; RadioButton RB_POS_PAGE { + HelpID = "sw:RadioButton:TP_ENDNOTEOPTION:RB_POS_PAGE"; Pos = MAP_APPFONT ( 12 , 104 ) ; Size = MAP_APPFONT ( 60 , 10 ) ; Text [ en-US ] = "End ~of page" ; @@ -415,6 +434,7 @@ TabPage TP_ENDNOTEOPTION }; RadioButton RB_POS_CHAPTER { + HelpID = "sw:RadioButton:TP_ENDNOTEOPTION:RB_POS_CHAPTER"; Pos = MAP_APPFONT ( 12 , 118 ) ; Size = MAP_APPFONT ( 60 , 10 ) ; Text [ en-US ] = "End of ~document" ; @@ -434,6 +454,7 @@ TabPage TP_ENDNOTEOPTION }; ListBox LB_PARA_TEMPL { + HelpID = "sw:ListBox:TP_ENDNOTEOPTION:LB_PARA_TEMPL"; Border = TRUE ; Pos = MAP_APPFONT ( 51 , 56 ) ; Size = MAP_APPFONT ( 67 , 72 ) ; @@ -451,6 +472,7 @@ TabPage TP_ENDNOTEOPTION }; ListBox LB_PAGE_TEMPL { + HelpID = "sw:ListBox:TP_ENDNOTEOPTION:LB_PAGE_TEMPL"; Border = TRUE ; Pos = MAP_APPFONT ( 51 , 72 ) ; Size = MAP_APPFONT ( 67 , 72 ) ; @@ -472,6 +494,7 @@ TabPage TP_ENDNOTEOPTION }; ListBox LB_ANCHR_CHARFMT { + HelpID = "sw:ListBox:TP_ENDNOTEOPTION:LB_ANCHR_CHARFMT"; Border = TRUE ; Pos = MAP_APPFONT ( 186 , 56 ) ; Size = MAP_APPFONT ( 65 , 72 ) ; @@ -488,6 +511,7 @@ TabPage TP_ENDNOTEOPTION }; ListBox LB_TEXT_CHARFMT { + HelpID = "sw:ListBox:TP_ENDNOTEOPTION:LB_TEXT_CHARFMT"; Border = TRUE ; Pos = MAP_APPFONT ( 186 , 72 ) ; Size = MAP_APPFONT ( 65 , 72 ) ; @@ -511,6 +535,7 @@ TabPage TP_ENDNOTEOPTION }; Edit ED_CONT { + HelpID = "sw:Edit:TP_ENDNOTEOPTION:ED_CONT"; Border = TRUE ; Pos = MAP_APPFONT ( 137 , 101 ) ; Size = MAP_APPFONT ( 114 , 12 ) ; @@ -527,6 +552,7 @@ TabPage TP_ENDNOTEOPTION }; Edit ED_CONT_FROM { + HelpID = "sw:Edit:TP_ENDNOTEOPTION:ED_CONT_FROM"; Border = TRUE ; Pos = MAP_APPFONT ( 137 , 116 ) ; Size = MAP_APPFONT ( 114 , 12 ) ; diff --git a/sw/source/ui/misc/glosbib.cxx b/sw/source/ui/misc/glosbib.cxx index 5374ddd2e2..ddb966aad2 100644 --- a/sw/source/ui/misc/glosbib.cxx +++ b/sw/source/ui/misc/glosbib.cxx @@ -107,7 +107,7 @@ SwGlossaryGroupDlg::SwGlossaryGroupDlg(Window * pParent, aGroupTLB.SetHelpId(HID_GLOS_GROUP_TREE); aGroupTLB.SetTabs( &nTabs[0], MAP_APPFONT ); - aGroupTLB.SetWindowBits(WB_HSCROLL|WB_CLIPCHILDREN|WB_SORT); + aGroupTLB.SetStyle(aGroupTLB.GetStyle()|WB_HSCROLL|WB_CLIPCHILDREN|WB_SORT); aGroupTLB.SetSelectHdl(LINK(this, SwGlossaryGroupDlg, SelectHdl)); aGroupTLB.GetModel()->SetSortMode(SortAscending); aNewPB.SetClickHdl(LINK(this, SwGlossaryGroupDlg, NewHdl)); diff --git a/sw/source/ui/misc/glosbib.src b/sw/source/ui/misc/glosbib.src index 75a03eb85e..9bd9489977 100644 --- a/sw/source/ui/misc/glosbib.src +++ b/sw/source/ui/misc/glosbib.src @@ -38,6 +38,7 @@ ModalDialog DLG_BIB_BASE Text [ en-US ] = "Edit Categories" ; PushButton PB_NEW { + HelpID = "sw:PushButton:DLG_BIB_BASE:PB_NEW"; Disable = TRUE ; Pos = MAP_APPFONT ( 293 , 66 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; @@ -46,6 +47,7 @@ ModalDialog DLG_BIB_BASE }; PushButton PB_DELETE { + HelpID = "sw:PushButton:DLG_BIB_BASE:PB_DELETE"; Pos = MAP_APPFONT ( 293 , 83 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; /* ### ACHTUNG: Neuer Text in Resource? ~Löschen : ~L÷schen */ @@ -55,6 +57,7 @@ ModalDialog DLG_BIB_BASE }; PushButton PB_RENAME { + HelpID = "sw:PushButton:DLG_BIB_BASE:PB_RENAME"; Disable = TRUE ; Pos = MAP_APPFONT ( 293 , 100 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; @@ -88,6 +91,7 @@ ModalDialog DLG_BIB_BASE }; Edit ED_NAME { + HelpID = "sw:Edit:DLG_BIB_BASE:ED_NAME"; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 159 , 12 ) ; TabStop = TRUE ; @@ -102,6 +106,7 @@ ModalDialog DLG_BIB_BASE }; ListBox LB_PATH { + HelpID = "sw:ListBox:DLG_BIB_BASE:LB_PATH"; Pos = MAP_APPFONT ( 174 , 14 ) ; Size = MAP_APPFONT ( 107 , 50 ) ; DropDown = TRUE ; diff --git a/sw/source/ui/misc/glossary.cxx b/sw/source/ui/misc/glossary.cxx index faec81b639..b5c137a4e5 100644 --- a/sw/source/ui/misc/glossary.cxx +++ b/sw/source/ui/misc/glossary.cxx @@ -294,7 +294,7 @@ SwGlossaryDlg::SwGlossaryDlg(SfxViewFrame* pViewFrame, aInsertBtn.Enable(sal_False); aNameED.GrabFocus(); aCategoryBox.SetHelpId(HID_MD_GLOS_CATEGORY); - aCategoryBox.SetWindowBits(WB_HASBUTTONS|WB_HASBUTTONSATROOT|WB_HSCROLL|WB_VSCROLL|WB_CLIPCHILDREN|WB_SORT); + aCategoryBox.SetStyle(aCategoryBox.GetStyle()|WB_HASBUTTONS|WB_HASBUTTONSATROOT|WB_HSCROLL|WB_VSCROLL|WB_CLIPCHILDREN|WB_SORT); aCategoryBox.GetModel()->SetSortMode(SortAscending); aCategoryBox.SetHighlightRange(); // ueber volle Breite selektieren aCategoryBox.SetNodeDefaultImages( ); diff --git a/sw/source/ui/misc/glossary.src b/sw/source/ui/misc/glossary.src index 12d6ab9e81..5ad32faa2f 100644 --- a/sw/source/ui/misc/glossary.src +++ b/sw/source/ui/misc/glossary.src @@ -32,7 +32,7 @@ // #define DLG_GLOSSARY 256 ModalDialog DLG_GLOSSARY { - HelpID = FN_GLOSSARY_DLG ; + HelpID = CMD_FN_GLOSSARY_DLG ; OutputSize = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 375 , 164 ) ; @@ -40,6 +40,7 @@ ModalDialog DLG_GLOSSARY Moveable = TRUE ; CheckBox CB_INSERT_TIP { + HelpID = "sw:CheckBox:DLG_GLOSSARY:CB_INSERT_TIP"; Pos = MAP_APPFONT ( 12 , 12 ) ; Size = MAP_APPFONT ( 200 , 12 ) ; TabStop = TRUE ; @@ -54,6 +55,7 @@ ModalDialog DLG_GLOSSARY }; Edit ED_NAME { + HelpID = "sw:Edit:DLG_GLOSSARY:ED_NAME"; Border = TRUE ; Pos = MAP_APPFONT ( 55 , 29 ) ; Size = MAP_APPFONT ( 85 , 12 ) ; @@ -70,6 +72,7 @@ ModalDialog DLG_GLOSSARY }; Edit ED_SHORTNAME { + HelpID = "sw:Edit:DLG_GLOSSARY:ED_SHORTNAME"; Disable = TRUE ; Border = TRUE ; Pos = MAP_APPFONT ( 203 , 29 ) ; @@ -98,6 +101,7 @@ ModalDialog DLG_GLOSSARY }; CheckBox CB_FILE_REL { + HelpID = "sw:CheckBox:DLG_GLOSSARY:CB_FILE_REL"; Pos = MAP_APPFONT ( 14 , 145 ) ; Size = MAP_APPFONT ( 90 , 12 ) ; TabStop = TRUE ; @@ -105,6 +109,7 @@ ModalDialog DLG_GLOSSARY }; CheckBox CB_NET_REL { + HelpID = "sw:CheckBox:DLG_GLOSSARY:CB_NET_REL"; Pos = MAP_APPFONT ( 109 , 145 ) ; Size = MAP_APPFONT ( 90 , 12 ) ; Text [ en-US ] = "Inte~rnet" ; @@ -122,6 +127,7 @@ ModalDialog DLG_GLOSSARY }; CheckBox CB_SHOW_EXAMPLE { + HelpID = "sw:CheckBox:DLG_GLOSSARY:CB_SHOW_EXAMPLE"; Pos = MAP_APPFONT ( 231 , 145 ) ; Size = MAP_APPFONT ( 82 , 12 ) ; Text [ en-US ] = "Sho~w preview"; @@ -151,6 +157,7 @@ ModalDialog DLG_GLOSSARY }; MenuButton PB_EDIT { + HelpID = "sw:MenuButton:DLG_GLOSSARY:PB_EDIT"; Pos = MAP_APPFONT ( 319 , 60 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "AutoTe~xt" ; @@ -158,6 +165,7 @@ ModalDialog DLG_GLOSSARY }; PushButton PB_BIB { + HelpID = "sw:PushButton:DLG_GLOSSARY:PB_BIB"; Pos = MAP_APPFONT ( 319 , 77 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "C~ategories..." ; @@ -165,6 +173,7 @@ ModalDialog DLG_GLOSSARY }; PushButton PB_PATH { + HelpID = "sw:PushButton:DLG_GLOSSARY:PB_PATH"; Pos = MAP_APPFONT ( 319 , 94 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; TabStop = TRUE ; @@ -308,6 +317,7 @@ ModalDialog DLG_RENAME_GLOS }; Edit ED_ON { + HelpID = "sw:Edit:DLG_RENAME_GLOS:ED_ON"; ReadOnly = TRUE ; Border = TRUE ; Pos = MAP_APPFONT ( 44 , 12 ) ; @@ -322,6 +332,7 @@ ModalDialog DLG_RENAME_GLOS }; Edit ED_OS { + HelpID = "sw:Edit:DLG_RENAME_GLOS:ED_OS"; ReadOnly = TRUE ; Border = TRUE ; Pos = MAP_APPFONT ( 200 , 12 ) ; @@ -336,6 +347,7 @@ ModalDialog DLG_RENAME_GLOS }; Edit ED_NN { + HelpID = "sw:Edit:DLG_RENAME_GLOS:ED_NN"; TabStop = TRUE ; Border = TRUE ; Pos = MAP_APPFONT ( 44 , 27 ) ; @@ -350,6 +362,7 @@ ModalDialog DLG_RENAME_GLOS }; Edit ED_NS { + HelpID = "sw:Edit:DLG_RENAME_GLOS:ED_NS"; TabStop = TRUE ; Border = TRUE ; Pos = MAP_APPFONT ( 200 , 27 ) ; diff --git a/sw/source/ui/misc/insfnote.src b/sw/source/ui/misc/insfnote.src index fda4b92b0d..c462e01188 100644 --- a/sw/source/ui/misc/insfnote.src +++ b/sw/source/ui/misc/insfnote.src @@ -31,6 +31,7 @@ // #define DLG_INS_FOOTNOTE 257 ModalDialog DLG_INS_FOOTNOTE { + HelpID = "sw:ModalDialog:DLG_INS_FOOTNOTE"; OutputSize = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 160 , 100 ) ; @@ -39,6 +40,7 @@ ModalDialog DLG_INS_FOOTNOTE Moveable = TRUE ; Edit ED_NUMBER_CHAR { + HelpID = "sw:Edit:DLG_INS_FOOTNOTE:ED_NUMBER_CHAR"; Disable = TRUE ; Border = TRUE ; Pos = MAP_APPFONT ( 69 , 27 ) ; @@ -71,6 +73,7 @@ ModalDialog DLG_INS_FOOTNOTE }; ImageButton BT_PREV { + HelpID = "sw:ImageButton:DLG_INS_FOOTNOTE:BT_PREV"; Pos = MAP_APPFONT ( 104 , 82 ) ; Size = MAP_APPFONT ( 24 , 14 ) ; TabStop = TRUE ; @@ -79,6 +82,7 @@ ModalDialog DLG_INS_FOOTNOTE }; ImageButton BT_NEXT { + HelpID = "sw:ImageButton:DLG_INS_FOOTNOTE:BT_NEXT"; Pos = MAP_APPFONT ( 130 , 82 ) ; Size = MAP_APPFONT ( 24 , 14 ) ; TabStop = TRUE ; @@ -87,6 +91,7 @@ ModalDialog DLG_INS_FOOTNOTE }; RadioButton RB_NUMBER_AUTO { + HelpID = "sw:RadioButton:DLG_INS_FOOTNOTE:RB_NUMBER_AUTO"; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 79 , 10 ) ; Text [ en-US ] = "~Automatic" ; @@ -96,6 +101,7 @@ ModalDialog DLG_INS_FOOTNOTE }; RadioButton RB_NUMBER_CHAR { + HelpID = "sw:RadioButton:DLG_INS_FOOTNOTE:RB_NUMBER_CHAR"; Pos = MAP_APPFONT ( 12 , 27 ) ; Size = MAP_APPFONT ( 54 , 10 ) ; Text [ en-US ] = "~Character" ; @@ -108,12 +114,14 @@ ModalDialog DLG_INS_FOOTNOTE }; PushButton BT_NUMBER_CHAR { + HelpID = "sw:PushButton:DLG_INS_FOOTNOTE:BT_NUMBER_CHAR"; Pos = MAP_APPFONT ( 69 , 42 ) ; Size = MAP_APPFONT ( 12 , 12 ) ; Text = "..." ; }; RadioButton RB_TYPE_FTN { + HelpID = "sw:RadioButton:DLG_INS_FOOTNOTE:RB_TYPE_FTN"; Pos = MAP_APPFONT ( 12 , 70 ) ; Size = MAP_APPFONT ( 79 , 10 ) ; TabStop = TRUE ; @@ -123,6 +131,7 @@ ModalDialog DLG_INS_FOOTNOTE }; RadioButton RB_TYPE_ENDNOTE { + HelpID = "sw:RadioButton:DLG_INS_FOOTNOTE:RB_TYPE_ENDNOTE"; Pos = MAP_APPFONT ( 12 , 83 ) ; Size = MAP_APPFONT ( 79 , 10 ) ; Text [ en-US ] = "~Endnote" ; diff --git a/sw/source/ui/misc/linenum.src b/sw/source/ui/misc/linenum.src index 61cee918d7..feb17ca5bb 100644 --- a/sw/source/ui/misc/linenum.src +++ b/sw/source/ui/misc/linenum.src @@ -47,6 +47,7 @@ TabPage TP_LINENUMBERING Size = MAP_APPFONT ( 260 , 185 ) ; CheckBox CB_NUMBERING_ON { + HelpID = "sw:CheckBox:TP_LINENUMBERING:CB_NUMBERING_ON"; Pos = MAP_APPFONT ( 12 , 6 ) ; Size = MAP_APPFONT ( 242 , 8 ) ; TabStop = TRUE ; @@ -60,6 +61,7 @@ TabPage TP_LINENUMBERING }; ListBox LB_CHAR_STYLE { + HelpID = "sw:ListBox:TP_LINENUMBERING:LB_CHAR_STYLE"; Pos = MAP_APPFONT ( 100 , 30 ) ; Size = MAP_APPFONT ( 148 , 80 ) ; TabStop = TRUE ; @@ -74,6 +76,7 @@ TabPage TP_LINENUMBERING }; ListBox LB_FORMAT { + HelpID = "sw:ListBox:TP_LINENUMBERING:LB_FORMAT"; Pos = MAP_APPFONT ( 100 , 44 ) ; Size = MAP_APPFONT ( 148 , 80 ) ; TabStop = TRUE ; @@ -87,6 +90,7 @@ TabPage TP_LINENUMBERING }; ListBox LB_POS { + HelpID = "sw:ListBox:TP_LINENUMBERING:LB_POS"; Pos = MAP_APPFONT ( 100 , 60 ) ; Size = MAP_APPFONT ( 148 , 60 ) ; TabStop = TRUE ; @@ -107,6 +111,7 @@ TabPage TP_LINENUMBERING }; MetricField MF_OFFSET { + HelpID = "sw:MetricField:TP_LINENUMBERING:MF_OFFSET"; Pos = MAP_APPFONT ( 100 , 76 ) ; Size = MAP_APPFONT ( 45 , 12 ) ; Border = TRUE ; @@ -130,6 +135,7 @@ TabPage TP_LINENUMBERING }; NumericField NF_NUM_INVERVAL { + HelpID = "sw:NumericField:TP_LINENUMBERING:NF_NUM_INVERVAL"; Pos = MAP_APPFONT ( 100 , 92 ) ; Size = MAP_APPFONT ( 30 , 12 ) ; Border = TRUE ; @@ -163,6 +169,7 @@ TabPage TP_LINENUMBERING }; Edit ED_DIVISOR { + HelpID = "sw:Edit:TP_LINENUMBERING:ED_DIVISOR"; Pos = MAP_APPFONT ( 45 , 121 ) ; Size = MAP_APPFONT ( 76 , 12 ) ; Left = TRUE ; @@ -177,6 +184,7 @@ TabPage TP_LINENUMBERING }; NumericField NF_DIV_INTERVAL { + HelpID = "sw:NumericField:TP_LINENUMBERING:NF_DIV_INTERVAL"; Pos = MAP_APPFONT ( 45 , 137 ) ; Size = MAP_APPFONT ( 30 , 12 ) ; Border = TRUE ; @@ -205,6 +213,7 @@ TabPage TP_LINENUMBERING }; CheckBox CB_COUNT_EMPTYLINES { + HelpID = "sw:CheckBox:TP_LINENUMBERING:CB_COUNT_EMPTYLINES"; Pos = MAP_APPFONT ( 139 , 121 ) ; Size = MAP_APPFONT ( 110 , 10 ) ; TabStop = TRUE ; @@ -212,6 +221,7 @@ TabPage TP_LINENUMBERING }; CheckBox CB_COUNT_FRAMELINES { + HelpID = "sw:CheckBox:TP_LINENUMBERING:CB_COUNT_FRAMELINES"; Pos = MAP_APPFONT ( 139 , 135 ) ; Size = MAP_APPFONT ( 110 , 10 ) ; TabStop = TRUE ; @@ -219,6 +229,7 @@ TabPage TP_LINENUMBERING }; CheckBox CB_RESTART_PAGE { + HelpID = "sw:CheckBox:TP_LINENUMBERING:CB_RESTART_PAGE"; Pos = MAP_APPFONT ( 139 , 149 ); Size = MAP_APPFONT ( 110 , 10 ); TabStop = TRUE; diff --git a/sw/source/ui/misc/num.src b/sw/source/ui/misc/num.src index 0fbc45eb1c..9bf1cf54f9 100644 --- a/sw/source/ui/misc/num.src +++ b/sw/source/ui/misc/num.src @@ -53,6 +53,7 @@ TabPage TP_NUM_POSITION }; MultiListBox LB_LEVEL { + HelpID = "sw:MultiListBox:TP_NUM_POSITION:LB_LEVEL"; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 26 , 163 ) ; TabStop = TRUE ; @@ -75,6 +76,7 @@ TabPage TP_NUM_POSITION }; MetricField MF_BORDERDIST { + HelpID = "sw:MetricField:TP_NUM_POSITION:MF_BORDERDIST"; Pos = MAP_APPFONT ( 198 , 25 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; Border = TRUE ; @@ -93,6 +95,7 @@ TabPage TP_NUM_POSITION }; CheckBox CB_RELATIVE { + HelpID = "sw:CheckBox:TP_NUM_POSITION:CB_RELATIVE"; Pos = MAP_APPFONT ( 198 , 41 ) ; Size = MAP_APPFONT ( 52 , 10 ) ; Text [ en-US ] = "Relati~ve" ; @@ -105,6 +108,7 @@ TabPage TP_NUM_POSITION }; MetricField MF_INDENT { + HelpID = "sw:MetricField:TP_NUM_POSITION:MF_INDENT"; Pos = MAP_APPFONT ( 198 , 57 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; Border = TRUE ; @@ -129,6 +133,7 @@ TabPage TP_NUM_POSITION }; MetricField MF_NUMDIST { + HelpID = "sw:MetricField:TP_NUM_POSITION:MF_NUMDIST"; Pos = MAP_APPFONT ( 198 , 73 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; Left = TRUE ; @@ -153,6 +158,7 @@ TabPage TP_NUM_POSITION }; ListBox LB_ALIGN { + HelpID = "sw:ListBox:TP_NUM_POSITION:LB_ALIGN"; Pos = MAP_APPFONT ( 198 , 89 ) ; Size = MAP_APPFONT ( 40 , 40 ) ; TabStop = TRUE ; @@ -172,6 +178,7 @@ TabPage TP_NUM_POSITION }; ListBox LB_LABEL_FOLLOWED_BY { + HelpID = "sw:ListBox:TP_NUM_POSITION:LB_LABEL_FOLLOWED_BY"; Pos = MAP_APPFONT ( 198 , 25 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; TabStop = TRUE ; @@ -192,6 +199,7 @@ TabPage TP_NUM_POSITION }; MetricField MF_LISTTAB { + HelpID = "sw:MetricField:TP_NUM_POSITION:MF_LISTTAB"; Pos = MAP_APPFONT ( 198 , 41 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; Border = TRUE ; @@ -215,6 +223,7 @@ TabPage TP_NUM_POSITION }; ListBox LB_ALIGN_2 { + HelpID = "sw:ListBox:TP_NUM_POSITION:LB_ALIGN_2"; Pos = MAP_APPFONT ( 198 , 57 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; TabStop = TRUE ; @@ -228,6 +237,7 @@ TabPage TP_NUM_POSITION }; MetricField MF_ALIGNED_AT { + HelpID = "sw:MetricField:TP_NUM_POSITION:MF_ALIGNED_AT"; Pos = MAP_APPFONT ( 198 , 73 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; Left = TRUE ; @@ -252,6 +262,7 @@ TabPage TP_NUM_POSITION }; MetricField MF_INDENT_AT { + HelpID = "sw:MetricField:TP_NUM_POSITION:MF_INDENT_AT"; Pos = MAP_APPFONT ( 198 , 89 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; Left = TRUE ; @@ -270,6 +281,7 @@ TabPage TP_NUM_POSITION }; PushButton PB_STANDARD { + HelpID = "sw:PushButton:TP_NUM_POSITION:PB_STANDARD"; Pos = MAP_APPFONT ( 198 , 165 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "Default" ; diff --git a/sw/source/ui/misc/outline.src b/sw/source/ui/misc/outline.src index 64dd97494a..f54025127d 100644 --- a/sw/source/ui/misc/outline.src +++ b/sw/source/ui/misc/outline.src @@ -65,6 +65,7 @@ ModalDialog DLG_NUM_NAMES }; ListBox LB_FORM { + HelpID = "sw:ListBox:DLG_NUM_NAMES:LB_FORM"; Border = TRUE ; Pos = MAP_APPFONT ( 12 , 29 ) ; Size = MAP_APPFONT ( 84 , 42 ) ; @@ -85,6 +86,7 @@ ModalDialog DLG_NUM_NAMES }; Edit ED_FORM { + HelpID = "sw:Edit:DLG_NUM_NAMES:ED_FORM"; Border = TRUE ; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 84 , 12 ) ; @@ -211,6 +213,7 @@ TabPage TP_OUTLINE_NUM Hide = TRUE; ListBox LB_LEVEL { + HelpID = "sw:ListBox:TP_OUTLINE_NUM:LB_LEVEL"; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 23 , 129 ) ; TabStop = TRUE ; @@ -233,6 +236,7 @@ TabPage TP_OUTLINE_NUM }; ListBox LB_COLL { + HelpID = "sw:ListBox:TP_OUTLINE_NUM:LB_COLL"; Border = TRUE ; Pos = MAP_APPFONT ( 50 , 25 ) ; Size = MAP_APPFONT ( 120 , 75 ) ; @@ -251,6 +255,7 @@ TabPage TP_OUTLINE_NUM }; ListBox LB_NUMBER { + HelpID = "sw:ListBox:TP_OUTLINE_NUM:LB_NUMBER"; Pos = MAP_APPFONT ( 104 , 41 ) ; Size = MAP_APPFONT ( 66 , 65 ) ; TabStop = TRUE ; @@ -266,6 +271,7 @@ TabPage TP_OUTLINE_NUM }; ListBox LB_CHARFMT { + HelpID = "sw:ListBox:TP_OUTLINE_NUM:LB_CHARFMT"; TabStop = TRUE ; DropDown = TRUE ; Pos = MAP_APPFONT ( 104 , 57 ) ; @@ -279,6 +285,7 @@ TabPage TP_OUTLINE_NUM }; NumericField NF_ALL_LEVEL { + HelpID = "sw:NumericField:TP_OUTLINE_NUM:NF_ALL_LEVEL"; Border = TRUE ; Pos = MAP_APPFONT ( 104 , 73 ) ; Size = MAP_APPFONT ( 66 , 12 ) ; @@ -308,6 +315,7 @@ TabPage TP_OUTLINE_NUM }; Edit ED_PREFIX { + HelpID = "sw:Edit:TP_OUTLINE_NUM:ED_PREFIX"; Border = TRUE ; Pos = MAP_APPFONT ( 104 , 100 ) ; Size = MAP_APPFONT ( 66 , 12 ) ; @@ -324,6 +332,7 @@ TabPage TP_OUTLINE_NUM }; Edit ED_SUFFIX { + HelpID = "sw:Edit:TP_OUTLINE_NUM:ED_SUFFIX"; Border = TRUE ; Pos = MAP_APPFONT ( 104 , 115 ) ; Size = MAP_APPFONT ( 66 , 12 ) ; @@ -340,6 +349,7 @@ TabPage TP_OUTLINE_NUM }; NumericField ED_START { + HelpID = "sw:NumericField:TP_OUTLINE_NUM:ED_START"; Border = TRUE ; Pos = MAP_APPFONT ( 104 , 131 ) ; Size = MAP_APPFONT ( 66 , 12 ) ; diff --git a/sw/source/ui/misc/pgfnote.src b/sw/source/ui/misc/pgfnote.src index 18acc28267..eebc13ca5d 100644 --- a/sw/source/ui/misc/pgfnote.src +++ b/sw/source/ui/misc/pgfnote.src @@ -35,6 +35,7 @@ TabPage TP_FOOTNOTE_PAGE Hide = TRUE; RadioButton RB_MAXHEIGHT_PAGE { + HelpID = "sw:RadioButton:TP_FOOTNOTE_PAGE:RB_MAXHEIGHT_PAGE"; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 132 , 10 ) ; Text [ en-US ] = "~Not larger than page area" ; @@ -43,12 +44,14 @@ TabPage TP_FOOTNOTE_PAGE }; RadioButton RB_MAXHEIGHT { + HelpID = "sw:RadioButton:TP_FOOTNOTE_PAGE:RB_MAXHEIGHT"; Pos = MAP_APPFONT ( 12 , 28 ) ; Size = MAP_APPFONT ( 132 , 10 ) ; Text [ en-US ] = "Maximum footnote ~height" ; }; MetricField ED_MAXHEIGHT { + HelpID = "sw:MetricField:TP_FOOTNOTE_PAGE:ED_MAXHEIGHT"; Border = TRUE ; Pos = MAP_APPFONT ( 148 , 26 ) ; Size = MAP_APPFONT ( 42 , 12 ) ; @@ -75,6 +78,7 @@ TabPage TP_FOOTNOTE_PAGE }; MetricField ED_DIST { + HelpID = "sw:MetricField:TP_FOOTNOTE_PAGE:ED_DIST"; Border = TRUE ; Pos = MAP_APPFONT ( 148 , 42 ) ; Size = MAP_APPFONT ( 42 , 12 ) ; @@ -105,6 +109,7 @@ TabPage TP_FOOTNOTE_PAGE }; ListBox DLB_LINEPOS { + HelpID = "sw:ListBox:TP_FOOTNOTE_PAGE:DLB_LINEPOS"; Pos = MAP_APPFONT ( 148 , 71 ) ; Size = MAP_APPFONT ( 57 , 40 ) ; TabStop = TRUE ; @@ -128,6 +133,7 @@ TabPage TP_FOOTNOTE_PAGE }; ListBox DLB_LINETYPE { + HelpID = "sw:ListBox:TP_FOOTNOTE_PAGE:DLB_LINETYPE"; Pos = MAP_APPFONT ( 148 , 87 ) ; Size = MAP_APPFONT ( 57 , 50 ) ; TabStop = TRUE ; @@ -145,6 +151,7 @@ TabPage TP_FOOTNOTE_PAGE }; MetricField ED_LINEWIDTH { + HelpID = "sw:MetricField:TP_FOOTNOTE_PAGE:ED_LINEWIDTH"; Border = TRUE ; Pos = MAP_APPFONT ( 148 , 103 ) ; Size = MAP_APPFONT ( 42 , 12 ) ; @@ -168,6 +175,7 @@ TabPage TP_FOOTNOTE_PAGE }; MetricField ED_LINEDIST { + HelpID = "sw:MetricField:TP_FOOTNOTE_PAGE:ED_LINEDIST"; Border = TRUE ; Pos = MAP_APPFONT ( 148 , 119 ) ; Size = MAP_APPFONT ( 42 , 12 ) ; diff --git a/sw/source/ui/misc/pggrid.src b/sw/source/ui/misc/pggrid.src index 76bd70201d..a39ca828f9 100644 --- a/sw/source/ui/misc/pggrid.src +++ b/sw/source/ui/misc/pggrid.src @@ -41,24 +41,28 @@ TabPage TP_TEXTGRID_PAGE }; RadioButton RB_NOGRID { + HelpID = "sw:RadioButton:TP_TEXTGRID_PAGE:RB_NOGRID"; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 158 , 10 ) ; Text [ en-US ] = "No grid" ; }; RadioButton RB_LINESGRID { + HelpID = "sw:RadioButton:TP_TEXTGRID_PAGE:RB_LINESGRID"; Pos = MAP_APPFONT ( 12 , 27 ) ; Size = MAP_APPFONT ( 158 , 10 ) ; Text [ en-US ] = "Grid (lines only)" ; }; RadioButton RB_CHARSGRID { + HelpID = "sw:RadioButton:TP_TEXTGRID_PAGE:RB_CHARSGRID"; Pos = MAP_APPFONT ( 12 , 40 ) ; Size = MAP_APPFONT ( 158 , 10 ) ; Text [ en-US ] = "Grid (lines and characters)" ; }; CheckBox CB_SNAPTOCHARS { + HelpID = "sw:CheckBox:TP_TEXTGRID_PAGE:CB_SNAPTOCHARS"; Pos = MAP_APPFONT ( 14 , 53 ) ; Size = MAP_APPFONT ( 158 , 10 ) ; Text [ en-US ] = "~Snap to characters" ; @@ -83,6 +87,7 @@ TabPage TP_TEXTGRID_PAGE }; NumericField NF_LINESPERPAGE { + HelpID = "sw:NumericField:TP_TEXTGRID_PAGE:NF_LINESPERPAGE"; Pos = MAP_APPFONT ( 74 , 80 ) ; Size = MAP_APPFONT ( 25 , 12 ) ; Border = TRUE ; @@ -105,6 +110,7 @@ TabPage TP_TEXTGRID_PAGE }; MetricField MF_TEXTSIZE { + HelpID = "sw:MetricField:TP_TEXTGRID_PAGE:MF_TEXTSIZE"; Pos = MAP_APPFONT ( 216 , 80 ) ; Size = MAP_APPFONT ( 35 , 12 ) ; Border = TRUE ; @@ -128,6 +134,7 @@ TabPage TP_TEXTGRID_PAGE }; NumericField NF_CHARSPERLINE { + HelpID = "sw:NumericField:TP_TEXTGRID_PAGE:NF_CHARSPERLINE"; Pos = MAP_APPFONT ( 74 , 96 ) ; Size = MAP_APPFONT ( 25 , 12 ) ; Border = TRUE ; @@ -151,6 +158,7 @@ TabPage TP_TEXTGRID_PAGE }; MetricField MF_CHARWIDTH { + HelpID = "sw:MetricField:TP_TEXTGRID_PAGE:MF_CHARWIDTH"; Pos = MAP_APPFONT ( 216 , 96 ) ; Size = MAP_APPFONT ( 35 , 12 ) ; Border = TRUE ; @@ -174,6 +182,7 @@ TabPage TP_TEXTGRID_PAGE }; MetricField MF_RUBYSIZE { + HelpID = "sw:MetricField:TP_TEXTGRID_PAGE:MF_RUBYSIZE"; Pos = MAP_APPFONT ( 216 , 96 ) ; Size = MAP_APPFONT ( 35 , 12 ) ; Border = TRUE ; @@ -191,6 +200,7 @@ TabPage TP_TEXTGRID_PAGE }; CheckBox CB_RUBYBELOW { + HelpID = "sw:CheckBox:TP_TEXTGRID_PAGE:CB_RUBYBELOW"; Pos = MAP_APPFONT ( 14 , 112 ) ; Size = MAP_APPFONT ( 237 , 10 ) ; Text [ en-US ] = "Ruby text below/left from base text" ; @@ -203,12 +213,14 @@ TabPage TP_TEXTGRID_PAGE }; CheckBox CB_DISPLAY { + HelpID = "sw:CheckBox:TP_TEXTGRID_PAGE:CB_DISPLAY"; Pos = MAP_APPFONT ( 12 , 139 ) ; Size = MAP_APPFONT ( 118 , 10 ) ; Text [ en-US ] = "Display grid" ; }; CheckBox CB_PRINT { + HelpID = "sw:CheckBox:TP_TEXTGRID_PAGE:CB_PRINT"; Pos = MAP_APPFONT ( 18 , 154 ) ; Size = MAP_APPFONT ( 112 , 10 ) ; Text [ en-US ] = "Print grid" ; @@ -221,6 +233,7 @@ TabPage TP_TEXTGRID_PAGE }; ListBox LB_COLOR { + HelpID = "sw:ListBox:TP_TEXTGRID_PAGE:LB_COLOR"; Pos = MAP_APPFONT ( 191 , 137 ) ; Size = MAP_APPFONT ( 60 , 50 ) ; TabStop = TRUE; diff --git a/sw/source/ui/misc/redlndlg.cxx b/sw/source/ui/misc/redlndlg.cxx index e2b7e6a151..2947edfcee 100644 --- a/sw/source/ui/misc/redlndlg.cxx +++ b/sw/source/ui/misc/redlndlg.cxx @@ -273,7 +273,7 @@ SwRedlineAcceptDlg::SwRedlineAcceptDlg(Dialog *pParent, BOOL bAutoFmt) : pActLB->SelectEntryPos(0); - pTable->SetWindowBits(WB_HASLINES|WB_CLIPCHILDREN|WB_HASBUTTONS|WB_HASBUTTONSATROOT|WB_HSCROLL); + pTable->SetStyle(pTable->GetStyle()|WB_HASLINES|WB_CLIPCHILDREN|WB_HASBUTTONS|WB_HASBUTTONSATROOT|WB_HSCROLL); pTable->SetNodeDefaultImages(); pTable->SetSelectionMode(MULTIPLE_SELECTION); pTable->SetHighlightRange(1); diff --git a/sw/source/ui/misc/srtdlg.src b/sw/source/ui/misc/srtdlg.src index 8a1eb3a3ee..ddacdac459 100644 --- a/sw/source/ui/misc/srtdlg.src +++ b/sw/source/ui/misc/srtdlg.src @@ -32,7 +32,7 @@ ModalDialog DLG_SORTING { - HelpID = FN_SORTING_DLG ; + HelpID = CMD_FN_SORTING_DLG ; OutputSize = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 268 , 193 ) ; @@ -80,6 +80,7 @@ ModalDialog DLG_SORTING }; CheckBox CB_KEY1 { + HelpID = "sw:CheckBox:DLG_SORTING:CB_KEY1"; Pos = MAP_APPFONT ( 12 , 25 ) ; Size = MAP_APPFONT ( 49 , 8 ) ; /* ### ACHTUNG: Neuer Text in Resource? Schlüssel ~1 : Schl³ssel ~1 */ @@ -88,6 +89,7 @@ ModalDialog DLG_SORTING }; NumericField ED_KEY1 { + HelpID = "sw:NumericField:DLG_SORTING:ED_KEY1"; Border = TRUE ; Pos = MAP_APPFONT ( 66 , 23 ) ; Size = MAP_APPFONT ( 25 , 12 ) ; @@ -109,6 +111,7 @@ ModalDialog DLG_SORTING }; ListBox DLB_KEY1 { + HelpID = "sw:ListBox:DLG_SORTING:DLB_KEY1"; Pos = MAP_APPFONT ( 96 , 23 ) ; Size = MAP_APPFONT ( 55 , 45 ) ; TabStop = TRUE ; @@ -118,6 +121,7 @@ ModalDialog DLG_SORTING }; RadioButton RB_UP { + HelpID = "sw:RadioButton:DLG_SORTING:RB_UP"; Pos = MAP_APPFONT ( 155 , 23 ) ; Size = MAP_APPFONT ( 50 , 10 ) ; Text [ en-US ] = "~Ascending" ; @@ -126,6 +130,7 @@ ModalDialog DLG_SORTING }; RadioButton RB_DN { + HelpID = "sw:RadioButton:DLG_SORTING:RB_DN"; Pos = MAP_APPFONT ( 155 , 35 ) ; Size = MAP_APPFONT ( 50 , 10 ) ; Text [ en-US ] = "~Descending" ; @@ -133,6 +138,7 @@ ModalDialog DLG_SORTING }; CheckBox CB_KEY2 { + HelpID = "sw:CheckBox:DLG_SORTING:CB_KEY2"; Pos = MAP_APPFONT ( 12 , 52 ) ; Size = MAP_APPFONT ( 49 , 8 ) ; /* ### ACHTUNG: Neuer Text in Resource? Schlüssel ~2 : Schl³ssel ~2 */ @@ -140,6 +146,7 @@ ModalDialog DLG_SORTING }; NumericField ED_KEY2 { + HelpID = "sw:NumericField:DLG_SORTING:ED_KEY2"; Border = TRUE ; Pos = MAP_APPFONT ( 66 , 50 ) ; Size = MAP_APPFONT ( 25 , 12 ) ; @@ -156,6 +163,7 @@ ModalDialog DLG_SORTING }; ListBox DLB_KEY2 { + HelpID = "sw:ListBox:DLG_SORTING:DLB_KEY2"; Pos = MAP_APPFONT ( 96 , 50 ) ; Size = MAP_APPFONT ( 55 , 45 ) ; TabStop = TRUE ; @@ -165,6 +173,7 @@ ModalDialog DLG_SORTING }; RadioButton RB_UP2 { + HelpID = "sw:RadioButton:DLG_SORTING:RB_UP2"; Pos = MAP_APPFONT ( 155 , 50 ) ; Size = MAP_APPFONT ( 50 , 10 ) ; Text [ en-US ] = "Ascending" ; @@ -173,6 +182,7 @@ ModalDialog DLG_SORTING }; RadioButton RB_DN2 { + HelpID = "sw:RadioButton:DLG_SORTING:RB_DN2"; Pos = MAP_APPFONT ( 155 , 62 ) ; Size = MAP_APPFONT ( 50 , 10 ) ; Text [ en-US ] = "Descending" ; @@ -180,6 +190,7 @@ ModalDialog DLG_SORTING }; CheckBox CB_KEY3 { + HelpID = "sw:CheckBox:DLG_SORTING:CB_KEY3"; Pos = MAP_APPFONT ( 12 , 81 ) ; Size = MAP_APPFONT ( 49 , 8 ) ; /* ### ACHTUNG: Neuer Text in Resource? Schlüssel ~3 : Schl³ssel ~3 */ @@ -187,6 +198,7 @@ ModalDialog DLG_SORTING }; NumericField ED_KEY3 { + HelpID = "sw:NumericField:DLG_SORTING:ED_KEY3"; Border = TRUE ; Pos = MAP_APPFONT ( 66 , 79 ) ; Size = MAP_APPFONT ( 25 , 12 ) ; @@ -203,6 +215,7 @@ ModalDialog DLG_SORTING }; ListBox DLB_KEY3 { + HelpID = "sw:ListBox:DLG_SORTING:DLB_KEY3"; Pos = MAP_APPFONT ( 96 , 79 ) ; Size = MAP_APPFONT ( 55 , 45 ) ; TabStop = TRUE ; @@ -212,6 +225,7 @@ ModalDialog DLG_SORTING }; RadioButton RB_UP3 { + HelpID = "sw:RadioButton:DLG_SORTING:RB_UP3"; Pos = MAP_APPFONT ( 155 , 79 ) ; Size = MAP_APPFONT ( 50 , 10 ) ; Text [ en-US ] = "Ascending" ; @@ -220,6 +234,7 @@ ModalDialog DLG_SORTING }; RadioButton RB_DN3 { + HelpID = "sw:RadioButton:DLG_SORTING:RB_DN3"; Pos = MAP_APPFONT ( 155 , 91 ) ; Size = MAP_APPFONT ( 50 , 10 ) ; Text [ en-US ] = "Descending" ; @@ -233,6 +248,7 @@ ModalDialog DLG_SORTING }; RadioButton RB_COL { + HelpID = "sw:RadioButton:DLG_SORTING:RB_COL"; Pos = MAP_APPFONT ( 12 , 120 ) ; Size = MAP_APPFONT ( 38 , 10 ) ; Text [ en-US ] = "Col~umns" ; @@ -240,6 +256,7 @@ ModalDialog DLG_SORTING }; RadioButton RB_ROW { + HelpID = "sw:RadioButton:DLG_SORTING:RB_ROW"; Pos = MAP_APPFONT ( 12 , 133 ) ; Size = MAP_APPFONT ( 34 , 10 ) ; Text [ en-US ] = "~Rows" ; @@ -254,6 +271,7 @@ ModalDialog DLG_SORTING }; RadioButton RB_TAB { + HelpID = "sw:RadioButton:DLG_SORTING:RB_TAB"; Pos = MAP_APPFONT ( 113 , 120 ) ; Size = MAP_APPFONT ( 44 , 9 ) ; Text [ en-US ] = "~Tabs" ; @@ -262,6 +280,7 @@ ModalDialog DLG_SORTING }; RadioButton RB_TABCH { + HelpID = "sw:RadioButton:DLG_SORTING:RB_TABCH"; Pos = MAP_APPFONT ( 113 , 133 ) ; Size = MAP_APPFONT ( 38 , 10 ) ; Text [ en-US ] = "~Character" ; @@ -269,6 +288,7 @@ ModalDialog DLG_SORTING }; Edit ED_TABCH { + HelpID = "sw:Edit:DLG_SORTING:ED_TABCH"; Border = TRUE ; Pos = MAP_APPFONT ( 180 , 133 ) ; Size = MAP_APPFONT ( 12 , 12 ) ; @@ -291,6 +311,7 @@ ModalDialog DLG_SORTING }; PushButton PB_DELIM { + HelpID = "sw:PushButton:DLG_SORTING:PB_DELIM"; Pos = MAP_APPFONT ( 195 , 133 ) ; Size = MAP_APPFONT ( 12 , 12 ) ; TabStop = TRUE ; @@ -304,6 +325,7 @@ ModalDialog DLG_SORTING }; ListBox LB_LANG { + HelpID = "sw:ListBox:DLG_SORTING:LB_LANG"; Pos = MAP_APPFONT ( 12 , 158 ) ; Size = MAP_APPFONT ( 83 , 61 ) ; TabStop = TRUE ; @@ -318,6 +340,7 @@ ModalDialog DLG_SORTING }; CheckBox CB_CASE { + HelpID = "sw:CheckBox:DLG_SORTING:CB_CASE"; Pos = MAP_APPFONT ( 113 , 159 ) ; Size = MAP_APPFONT ( 147 , 10 ) ; TabStop = TRUE ; diff --git a/sw/source/ui/ribbar/inputwin.src b/sw/source/ui/ribbar/inputwin.src index e8f8fa58f5..24ae9a48bc 100644 --- a/sw/source/ui/ribbar/inputwin.src +++ b/sw/source/ui/ribbar/inputwin.src @@ -44,7 +44,7 @@ ToolBox RID_TBX_FORMULA ToolBoxItem { Identifier = FN_FORMULA_CALC ; - HelpID = FN_FORMULA_CALC ; + HelpId = HID_TBX_FORMULA_CALC ; DropDown = TRUE ; Text [ en-US ] = "Formula" ; /* ### ACHTUNG: Neuer Text in Resource? Formel auswählen : Formel auswõhlen */ @@ -52,14 +52,14 @@ ToolBox RID_TBX_FORMULA ToolBoxItem { Identifier = FN_FORMULA_CANCEL ; - HelpID = FN_FORMULA_CANCEL ; + HelpId = HID_TBX_FORMULA_CANCEL ; Text [ en-US ] = "Cancel" ; /* ### ACHTUNG: Neuer Text in Resource? Formel nicht übenehmen : Formel nicht ³benehmen */ }; ToolBoxItem { Identifier = FN_FORMULA_APPLY ; - HelpID = FN_FORMULA_APPLY ; + HelpId = HID_TBX_FORMULA_APPLY ; /* ### ACHTUNG: Neuer Text in Resource? Übernehmen : šbernehmen */ Text [ en-US ] = "Apply" ; /* ### ACHTUNG: Neuer Text in Resource? Formel einfügen : Formel einf³gen */ @@ -287,21 +287,21 @@ String STR_TBL_FORMULA ToolBoxItem\ {\ Identifier = FN_FORMULA_CALC ; \ - HelpID = FN_FORMULA_CALC ; \ + HelpID = HID_TBX_FORMULA_CALC ; \ Text [ en-US ] = "Formula" ; \ /* ### ACHTUNG: Neuer Text in Resource? Formel auswählen : Formel auswõhlen */\ };\ ToolBoxItem\ {\ Identifier = FN_FORMULA_CANCEL ; \ - HelpID = FN_FORMULA_CANCEL ; \ + HelpId = HID_TBX_FORMULA_CANCEL ; \ Text [ en-US ] = "Cancel" ; \ /* ### ACHTUNG: Neuer Text in Resource? Formel nicht übenehmen : Formel nicht ³benehmen */\ };\ ToolBoxItem\ {\ Identifier = FN_FORMULA_APPLY ; \ - HelpID = FN_FORMULA_APPLY ; \ + HelpID = HID_TBX_FORMULA_APPLY ; \ /* ### ACHTUNG: Neuer Text in Resource? Übernehmen : šbernehmen */\ Text [ en-US ] = "Apply" ; \ /* ### ACHTUNG: Neuer Text in Resource? Formel einfügen : Formel einf³gen */\ diff --git a/sw/source/ui/ribbar/makefile.mk b/sw/source/ui/ribbar/makefile.mk index 2405d4b16d..2adb59eec1 100644 --- a/sw/source/ui/ribbar/makefile.mk +++ b/sw/source/ui/ribbar/makefile.mk @@ -42,7 +42,6 @@ SRS1NAME=$(TARGET) SRC1FILES = \ tbxanchr.src \ inputwin.src \ - tblctrl.src \ workctrl.src EXCEPTIONSFILES = \ diff --git a/sw/source/ui/ribbar/tblctrl.src b/sw/source/ui/ribbar/tblctrl.src deleted file mode 100644 index afc5949983..0000000000 --- a/sw/source/ui/ribbar/tblctrl.src +++ /dev/null @@ -1,94 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include "tblctrl.hrc" -#include "helpid.h" -#include "cmdid.h" -FloatingWindow RID_TBL_OPT_CTRL -{ - Moveable = TRUE ; - Closeable = TRUE ; - Hide = TRUE ; - SVLook = TRUE ; - HelpID = HID_TBL_OPT_CTRL ; - ToolBox TBX_OPTIMIZE_TABLE - { - MenuStrings = TRUE ; - SVLook = TRUE ; - HelpID = 1 ; - ItemList = - { - ToolBoxItem - { - Identifier = FN_TABLE_BALANCE_CELLS ; - HelpID = FN_TABLE_BALANCE_CELLS ; - }; - ToolBoxItem - { - Identifier = FN_TABLE_BALANCE_ROWS ; - HelpID = FN_TABLE_BALANCE_ROWS ; - }; - ToolBoxItem - { - Identifier = FN_TABLE_OPTIMAL_HEIGHT ; - HelpID = FN_TABLE_OPTIMAL_HEIGHT ; - }; - ToolBoxItem - { - Identifier = FN_TABLE_ADJUST_CELLS ; - HelpID = FN_TABLE_ADJUST_CELLS ; - }; - }; - }; - Text [ en-US ] = "Optimize" ; -}; - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sw/source/ui/ribbar/workctrl.cxx b/sw/source/ui/ribbar/workctrl.cxx index bb69819b8d..313265e853 100644 --- a/sw/source/ui/ribbar/workctrl.cxx +++ b/sw/source/ui/ribbar/workctrl.cxx @@ -454,7 +454,7 @@ static USHORT __READONLY_DATA aNavigationInsertIds[ NAVI_ENTRIES ] = NID_TABLE_FORMULA_ERROR, NID_NEXT }; -static USHORT __READONLY_DATA aNavigationHelpIds[ NAVI_ENTRIES ] = +static const char* __READONLY_DATA aNavigationHelpIds[ NAVI_ENTRIES ] = { // -- first line HID_NID_TBL, diff --git a/sw/source/ui/ribbar/workctrl.src b/sw/source/ui/ribbar/workctrl.src index c50da95313..3cb93cb585 100644 --- a/sw/source/ui/ribbar/workctrl.src +++ b/sw/source/ui/ribbar/workctrl.src @@ -32,138 +32,9 @@ #include <svx/globlmn.hrc> #endif #include "workctrl.hrc" -#include "workctrl.hrc" #include "helpid.h" #include "cmdid.h" -FloatingWindow RID_INSERT_CTRL -{ - Moveable = TRUE ; - Closeable = TRUE ; - Hide = TRUE ; - SVLook = TRUE ; - HelpID = HID_INSERT_CTRL ; - /* ### ACHTUNG: Neuer Text in Resource? Einfügen : Einf³gen */ - ToolBox TBX_INSERT - { - MenuStrings = TRUE ; - SVLook = TRUE ; - HelpID = 1 ; - ItemList = - { - ToolBoxItem - { - Identifier = FN_INSERT_FRAME_INTERACT_NOCOL ; - HelpID = FN_INSERT_FRAME_INTERACT_NOCOL ; - }; - ToolBoxItem - { - Identifier = FN_INSERT_FRAME_INTERACT ; - HelpID = FN_INSERT_FRAME_INTERACT ; - DropDown = TRUE ; - }; - ToolBoxItem - { - Identifier = SID_INSERT_GRAPHIC ; - HelpID = SID_INSERT_GRAPHIC ; - }; - ToolBoxItem - { - Identifier = FN_INSERT_TABLE ; - HelpID = FN_INSERT_TABLE ; - DropDown = TRUE ; - }; - ToolBoxItem - { - Identifier = SID_INSERTDOC ; - HelpID = SID_INSERTDOC ; - }; - ToolBoxItem - { - Identifier = FN_INSERT_FOOTNOTE ; - HelpID = FN_INSERT_FOOTNOTE ; - }; - ToolBoxItem - { - Identifier = FN_INSERT_ENDNOTE ; - HelpID = FN_INSERT_ENDNOTE ; - }; - ToolBoxItem - { - Identifier = FN_INSERT_SYMBOL ; - HelpID = FN_INSERT_SYMBOL ; - }; - ToolBoxItem - { - Identifier = FN_INSERT_REGION ; - HelpID = FN_INSERT_REGION; - DropDown = TRUE ; - }; - ToolBoxItem - { - Identifier = FN_INSERT_IDX_ENTRY_DLG ; - HelpID = FN_INSERT_IDX_ENTRY_DLG ; - }; - ToolBoxItem - { - Identifier = FN_INSERT_BOOKMARK ; - HelpID = FN_INSERT_BOOKMARK ; - RadioCheck = TRUE ; - }; - }; - }; - Text [ en-US ] = "Insert" ; -}; -FloatingWindow RID_INSERT_OBJ_CTRL -{ - Moveable = TRUE ; - Closeable = TRUE ; - Hide = TRUE ; - SVLook = TRUE ; - HelpID = HID_INSERT_OBJ_CTRL ; - /* ### ACHTUNG: Neuer Text in Resource? Objekt einfügen : Objekt einf³gen */ - ToolBox TBX_OBJ_INSERT - { - MenuStrings = TRUE ; - SVLook = TRUE ; - HelpID = 1 ; - ItemList = - { - ToolBoxItem - { - Identifier = SID_INSERT_DIAGRAM ; - HelpID = SID_INSERT_DIAGRAM ; - }; - ToolBoxItem - { - Identifier = FN_INSERT_SMA ; - HelpID = FN_INSERT_SMA ; - }; - ToolBoxItem - { - Identifier = SID_INSERT_FLOATINGFRAME ; - HelpID = SID_INSERT_FLOATINGFRAME ; - }; - ToolBoxItem - { - Identifier = SID_INSERT_OBJECT ; - HelpID = SID_INSERT_OBJECT ; - }; - ToolBoxItem - { - Identifier = SID_INSERT_PLUGIN ; - HelpID = SID_INSERT_PLUGIN ; - }; -#ifdef SOLAR_JAVA - ToolBoxItem - { - Identifier = SID_INSERT_APPLET ; - HelpID = SID_INSERT_APPLET ; - }; -#endif - }; - }; - Text [ en-US ] = "Insert Object" ; -}; + Menu RID_INSERT_FIELD_CTRL { ItemList = @@ -171,45 +42,45 @@ Menu RID_INSERT_FIELD_CTRL MenuItem { Identifier = FN_INSERT_FLD_DATE ; - HelpID = FN_INSERT_FLD_DATE ; + HelpId = CMD_FN_INSERT_FLD_DATE ; Text [ en-US ] = "Date" ; }; MenuItem { Identifier = FN_INSERT_FLD_TIME ; - HelpID = FN_INSERT_FLD_TIME ; + HelpId = CMD_FN_INSERT_FLD_TIME ; Text [ en-US ] = "Time" ; }; //#ifndef MN_SW_WEB MenuItem { Identifier = FN_INSERT_FLD_PGNUMBER ; - HelpID = FN_INSERT_FLD_PGNUMBER ; + HelpId = CMD_FN_INSERT_FLD_PGNUMBER ; Text [ en-US ] = "Page Number" ; }; MenuItem { Identifier = FN_INSERT_FLD_PGCOUNT ; - HelpID = FN_INSERT_FLD_PGCOUNT ; + HelpId = CMD_FN_INSERT_FLD_PGCOUNT ; Text [ en-US ] = "Page Count" ; }; MenuItem { Identifier = FN_INSERT_FLD_TOPIC ; - HelpID = FN_INSERT_FLD_TOPIC ; + HelpId = CMD_FN_INSERT_FLD_TOPIC ; Text [ en-US ] = "Subject" ; }; MenuItem { Identifier = FN_INSERT_FLD_TITLE ; - HelpID = FN_INSERT_FLD_TITLE ; + HelpId = CMD_FN_INSERT_FLD_TITLE ; Text [ en-US ] = "Title" ; }; //#endif MenuItem { Identifier = FN_INSERT_FLD_AUTHOR ; - HelpID = FN_INSERT_FLD_AUTHOR ; + HelpId = CMD_FN_INSERT_FLD_AUTHOR ; Text [ en-US ] = "Author" ; }; MenuItem @@ -219,7 +90,7 @@ Menu RID_INSERT_FIELD_CTRL MenuItem { Identifier = FN_INSERT_FIELD ; - HelpID = FN_INSERT_FIELD ; + HelpId = CMD_FN_INSERT_FIELD ; Text [ en-US ] = "Other..." ; }; }; diff --git a/sw/source/ui/shells/annotsh.cxx b/sw/source/ui/shells/annotsh.cxx index 3486fd06a8..bd465c6dd1 100755 --- a/sw/source/ui/shells/annotsh.cxx +++ b/sw/source/ui/shells/annotsh.cxx @@ -1010,7 +1010,6 @@ void SwAnnotationShell::NoteExec(SfxRequest &rReq) case FN_REPLY: case FN_POSTIT: case FN_DELETE_COMMENT: - case FN_DELETE_NOTE: if ( pPostItMgr->HasActiveSidebarWin() ) pPostItMgr->GetActiveSidebarWin()->ExecuteCommand(nSlot); break; @@ -1058,24 +1057,15 @@ void SwAnnotationShell::GetNoteState(SfxItemSet &rSet) switch( nSlotId ) { case FN_POSTIT: - case FN_DELETE_NOTE: case FN_DELETE_NOTE_AUTHOR: case FN_DELETE_ALL_NOTES: case FN_HIDE_NOTE: case FN_HIDE_NOTE_AUTHOR: case FN_HIDE_ALL_NOTES: - { - if ( !pPostItMgr || - !pPostItMgr->HasActiveAnnotationWin() ) - { - rSet.DisableItem(nWhich); - } - break; - } case FN_DELETE_COMMENT: { if ( !pPostItMgr || - !pPostItMgr->HasActiveSidebarWin() /*HasActiveRedCommentWin()*/ ) + !pPostItMgr->HasActiveAnnotationWin() ) { rSet.DisableItem(nWhich); } @@ -1108,7 +1098,7 @@ void SwAnnotationShell::GetNoteState(SfxItemSet &rSet) if (pPostItMgr->HasActiveSidebarWin()) { if ( (pPostItMgr->GetActiveSidebarWin()->IsProtected()) && - ( (nSlotId==FN_DELETE_NOTE) || (nSlotId==FN_REPLY) ) ) + ( (nSlotId==FN_DELETE_COMMENT) || (nSlotId==FN_REPLY) ) ) rSet.DisableItem( nWhich ); } nWhich = aIter.NextWhich(); diff --git a/sw/source/ui/shells/basesh.cxx b/sw/source/ui/shells/basesh.cxx index 025403cc08..ee845c932b 100644 --- a/sw/source/ui/shells/basesh.cxx +++ b/sw/source/ui/shells/basesh.cxx @@ -1080,6 +1080,14 @@ void SwBaseShell::Execute(SfxRequest &rReq) rSh.SetFlyFrmAttr(aSet); } + // if new anchor is 'as char' and it is a Math object and the usual + // pre-conditions are met then align the formula to the baseline of the text + const uno::Reference < embed::XEmbeddedObject > xObj( rSh.GetOleRef() ); + const bool bDoMathBaselineAlignment = xObj.is() && SotExchange::IsMath( xObj->getClassID() ) + && FLY_AS_CHAR == eSet && rSh.GetDoc()->get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT ); + if (bDoMathBaselineAlignment) + rSh.AlignFormulaToBaseline( xObj ); + USHORT nHtmlMode = ::GetHtmlMode(GetView().GetDocShell()); if( nHtmlMode ) { diff --git a/sw/source/ui/shells/frmsh.cxx b/sw/source/ui/shells/frmsh.cxx index b2dfee2fa4..66043b2eb5 100644 --- a/sw/source/ui/shells/frmsh.cxx +++ b/sw/source/ui/shells/frmsh.cxx @@ -52,7 +52,7 @@ #include <vcl/msgbox.hxx> // <-- - +#include <doc.hxx> #include <fmturl.hxx> #include <fmtclds.hxx> #include <fmtcnct.hxx> @@ -78,6 +78,7 @@ #include <helpid.h> #include <cmdid.h> +#include <cfgitems.hxx> #include <globals.hrc> #include <popup.hrc> #include <shells.hrc> @@ -408,14 +409,13 @@ void SwFrameShell::Execute(SfxRequest &rReq) SID_HTML_MODE, SID_HTML_MODE, FN_SET_FRM_ALT_NAME, FN_SET_FRM_ALT_NAME, FN_PARAM_CHAIN_PREVIOUS, FN_PARAM_CHAIN_NEXT, + FN_OLE_IS_MATH, FN_OLE_IS_MATH, + FN_MATH_BASELINE_ALIGNMENT, FN_MATH_BASELINE_ALIGNMENT, 0); const SwViewOption* pVOpt = rSh.GetViewOptions(); if(nSel & nsSelectionType::SEL_OLE) - { - aSet.Put(SfxBoolItem(FN_KEEP_ASPECT_RATIO, - pVOpt->IsKeepRatio())); - } + aSet.Put( SfxBoolItem(FN_KEEP_ASPECT_RATIO, pVOpt->IsKeepRatio()) ); aSet.Put(SfxUInt16Item(SID_HTML_MODE, ::GetHtmlMode(GetView().GetDocShell()))); aSet.Put(SfxStringItem(FN_SET_FRM_NAME, rSh.GetFlyName())); if( nSel & nsSelectionType::SEL_OLE ) @@ -446,6 +446,12 @@ void SwFrameShell::Execute(SfxRequest &rReq) if (rSize.GetHeightPercent() && rSize.GetHeightPercent() != 0xff) rSize.SetHeight(rSh.GetAnyCurRect(RECT_FLY_EMBEDDED).Height()); + // disable vertical positioning for Math Objects anchored 'as char' if baseline alignment is activated + aSet.Put( SfxBoolItem( FN_MATH_BASELINE_ALIGNMENT, + rSh.GetDoc()->get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT ) ) ); + const uno::Reference < embed::XEmbeddedObject > xObj( rSh.GetOleRef() ); + aSet.Put( SfxBoolItem( FN_OLE_IS_MATH, xObj.is() && SotExchange::IsMath( xObj->getClassID() ) ) ); + UINT16 nDefPage = 0; if(pArgs && pArgs->GetItemState(FN_FORMAT_FRAME_DLG, FALSE, &pItem) == SFX_ITEM_SET) nDefPage = ((SfxUInt16Item *)pItem)->GetValue(); @@ -1146,3 +1152,4 @@ void SwFrameShell::StateInsert(SfxItemSet &rSet) if ((nSel & nsSelectionType::SEL_GRF) || (nSel & nsSelectionType::SEL_OLE)) rSet.DisableItem(FN_INSERT_FRAME); } + diff --git a/sw/source/ui/shells/shells.src b/sw/source/ui/shells/shells.src index 42b3b0029a..76b4580800 100644 --- a/sw/source/ui/shells/shells.src +++ b/sw/source/ui/shells/shells.src @@ -156,880 +156,46 @@ String RID_TEXT_TOOLBOX Text [ en-US ] = "Text Object Bar" ; Text [ x-comment ] = " "; }; -ToolBox RID_TEXT_TOOLBOX -{ - HelpID = HID_TEXT_TOOLBOX ; - Border = TRUE ; - SVLook = TRUE ; - Dockable = TRUE ; - Moveable = TRUE ; - Sizeable = TRUE ; - Closeable = TRUE ; - Zoomable = TRUE ; - HideWhenDeactivate = TRUE ; - LineSpacing = TRUE ; - Customize = TRUE ; - MenuStrings = TRUE ; - Hide = TRUE ; - ItemList = - { - MN_TEMPLATE - MN_FONT - MN_TEXT1(TRUE) - MN_TEXT1_BLOCK - MN_TEXT_LTR_RTL - MN_TEXT_LINESPACE - MN_TEXT2 - MN_TEXT_BACKGROUND - MN_TEXT_DIALOGS(TRUE) - }; - Scroll = TRUE ; -}; String RID_TABLE_TOOLBOX { Text [ en-US ] = "Table Object Bar" ; Text [ x-comment ] = " "; }; -ToolBox RID_TABLE_TOOLBOX -{ - HelpID = HID_TABLE_TOOLBOX ; - Border = TRUE ; - SVLook = TRUE ; - Dockable = TRUE ; - Moveable = TRUE ; - Sizeable = TRUE ; - Closeable = TRUE ; - Zoomable = TRUE ; - LineSpacing = TRUE ; - HideWhenDeactivate = TRUE ; - Customize = TRUE ; - MenuStrings = TRUE ; - Hide = TRUE ; - Scroll = TRUE ; - ItemList = - { - MN_TEMPLATE - MN_FONT - ToolBoxItem - { - Identifier = FN_TABLE_AUTOSUM ; - HelpID = FN_TABLE_AUTOSUM ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = FN_TABLE_MODE_FIX ; - HelpID = FN_TABLE_MODE_FIX ; - }; - ToolBoxItem - { - Identifier = FN_TABLE_MODE_FIX_PROP ; - HelpID = FN_TABLE_MODE_FIX_PROP ; - }; - ToolBoxItem - { - Identifier = FN_TABLE_MODE_VARIABLE ; - HelpID = FN_TABLE_MODE_VARIABLE ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = FN_TABLE_MERGE_CELLS ; - HelpID = FN_TABLE_MERGE_CELLS ; - }; - ToolBoxItem - { - Identifier = FN_TABLE_SPLIT_CELLS ; - HelpID = FN_TABLE_SPLIT_CELLS ; - }; - ToolBoxItem - { - DropDown = TRUE ; - Identifier = FN_OPTIMIZE_TABLE ; - HelpID = FN_OPTIMIZE_TABLE ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = FN_TABLE_INSERT_ROW ; - HelpID = FN_TABLE_INSERT_ROW ; - }; - ToolBoxItem - { - Identifier = FN_TABLE_INSERT_COL ; - HelpID = FN_TABLE_INSERT_COL ; - }; - ToolBoxItem - { - Identifier = FN_TABLE_DELETE_ROW ; - HelpID = FN_TABLE_DELETE_ROW ; - }; - ToolBoxItem - { - Identifier = FN_TABLE_DELETE_COL ; - HelpID = FN_TABLE_DELETE_COL ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = FN_TABLE_SELECT_ALL; - HelpID = FN_TABLE_SELECT_ALL; - Hide = TRUE; - }; - ToolBoxItem - { - Identifier = FN_TABLE_SELECT_COL; - HelpID = FN_TABLE_SELECT_COL; - Hide = TRUE; - }; - ToolBoxItem - { - Identifier = FN_TABLE_SELECT_ROW; - HelpID = FN_TABLE_SELECT_ROW; - Hide = TRUE; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = FN_TABLE_VERT_NONE; - HelpID = FN_TABLE_VERT_NONE; - RadioCheck = TRUE; - Hide = TRUE; - }; - ToolBoxItem - { - Identifier = FN_TABLE_VERT_CENTER; - HelpID = FN_TABLE_VERT_CENTER; - RadioCheck = TRUE; - Hide = TRUE; - }; - ToolBoxItem - { - Identifier = FN_TABLE_VERT_BOTTOM; - HelpID = FN_TABLE_VERT_BOTTOM; - RadioCheck = TRUE; - Hide = TRUE; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - ITEM_TOOLBAR_ATTR_BORDER - }; - ToolBoxItem - { - ITEM_TOOLBAR_FRAME_LINESTYLE - }; - ToolBoxItem - { - ITEM_TOOLBAR_FRAME_LINECOLOR - Hide = TRUE; - }; - ToolBoxItem - { - ITEM_TOOLBAR_BACKGROUND_COLOR - }; - }; -}; String RID_FRAME_TOOLBOX { Text [ en-US ] = "Frame Object Bar" ; Text [ x-comment ] = " "; }; -ToolBox RID_FRAME_TOOLBOX -{ - HelpID = HID_FRAME_TOOLBOX ; - Border = TRUE ; - SVLook = TRUE ; - Dockable = TRUE ; - Moveable = TRUE ; - Sizeable = TRUE ; - Closeable = TRUE ; - Zoomable = TRUE ; - LineSpacing = TRUE ; - MenuStrings = TRUE ; - HideWhenDeactivate = TRUE ; - Customize = TRUE ; - Hide = TRUE ; - ItemList = - { - MN_TEMPLATE - MN_FRAME_WRAP - MN_FRAME1 - MN_FRAME2 - MN_FRAME3 - MN_LINESTYLE - MN_BACKGROUND_COLOR - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - MN_ATTRIBUTES_FRAME - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - MN_LAYER - ToolBoxItem - { - Identifier = FN_TOOL_ANKER ; - HelpID = FN_TOOL_ANKER ; - DropDown = TRUE ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = FN_FRAME_CHAIN ; - HelpID = FN_FRAME_CHAIN ; - }; - ToolBoxItem - { - Identifier = FN_FRAME_UNCHAIN ; - HelpID = FN_FRAME_UNCHAIN ; - }; - }; - Scroll = TRUE ; -}; String RID_GRAFIK_TOOLBOX { Text [ en-US ] = "Graphics Object Bar" ; Text [ x-comment ] = " "; }; -ToolBox RID_GRAFIK_TOOLBOX -{ - HelpID = HID_GRAFIK_TOOLBOX ; - Border = TRUE ; - SVLook = TRUE ; - Dockable = TRUE ; - Moveable = TRUE ; - Sizeable = TRUE ; - Closeable = TRUE ; - Zoomable = TRUE ; - LineSpacing = TRUE ; - HideWhenDeactivate = TRUE ; - MenuStrings = TRUE ; - Customize = TRUE ; - Hide = TRUE ; - ItemList = - { - ToolBoxItem - { - Identifier = SID_GRFFILTER; - HelpID = SID_GRFFILTER; - DropDown = TRUE ; - }; - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - ToolBoxItem - { - Identifier = SID_ATTR_GRAF_MODE; - HelpID = SID_ATTR_GRAF_MODE; - }; - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - - ToolBoxItem - { - Identifier = SID_ATTR_GRAF_RED; - HelpID = SID_ATTR_GRAF_RED; - }; - ToolBoxItem - { - Identifier = SID_ATTR_GRAF_GREEN; - HelpID = SID_ATTR_GRAF_GREEN; - }; - ToolBoxItem - { - Identifier = SID_ATTR_GRAF_BLUE; - HelpID = SID_ATTR_GRAF_BLUE; - }; - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - - ToolBoxItem - { - Identifier = SID_ATTR_GRAF_LUMINANCE; - HelpID = SID_ATTR_GRAF_LUMINANCE; - }; - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - - ToolBoxItem - { - Identifier = SID_ATTR_GRAF_CONTRAST; - HelpID = SID_ATTR_GRAF_CONTRAST; - }; - ToolBoxItem - { - Identifier = SID_ATTR_GRAF_GAMMA; - HelpID = SID_ATTR_GRAF_GAMMA; - }; - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - ToolBoxItem - { - Identifier = SID_ATTR_GRAF_TRANSPARENCE; - HelpID = SID_ATTR_GRAF_TRANSPARENCE; - }; - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - ToolBoxItem - { - Identifier = FN_FLIP_VERT_GRAFIC ; - HelpID = FN_FLIP_VERT_GRAFIC ; - }; - ToolBoxItem - { - Identifier = FN_FLIP_HORZ_GRAFIC ; - HelpID = FN_FLIP_HORZ_GRAFIC ; - }; - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - MN_ATTRIBUTES_GRAFIK - }; - Scroll = TRUE ; -}; String RID_OLE_TOOLBOX { Text [ en-US ] = "Object" ; Text [ x-comment ] = " "; }; -ToolBox RID_OLE_TOOLBOX -{ - HelpID = HID_OLE_TOOLBOX ; - Border = TRUE ; - SVLook = TRUE ; - Dockable = TRUE ; - Moveable = TRUE ; - Sizeable = TRUE ; - Closeable = TRUE ; - Zoomable = TRUE ; - LineSpacing = TRUE ; - HideWhenDeactivate = TRUE ; - Customize = TRUE ; - MenuStrings = TRUE ; - Hide = TRUE ; - Scroll = TRUE ; - ItemList = - { - MN_TEMPLATE - MN_FRAME_WRAP - MN_CONTOUR - MN_FRAME1 - MN_FRAME2 - MN_FRAME3 - MN_LINESTYLE - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - MN_ATTRIBUTES_OLE - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - MN_LAYER - ToolBoxItem - { - Identifier = FN_TOOL_ANKER ; - HelpID = FN_TOOL_ANKER ; - DropDown = TRUE ; - }; - }; -}; String RID_DRAW_TOOLBOX { Text [ en-US ] = "Draw Object Bar" ; Text [ x-comment ] = " "; }; -ToolBox RID_DRAW_TOOLBOX -{ - HelpID = HID_DRAW_TOOLBOX ; - Border = TRUE ; - SVLook = TRUE ; - Dockable = TRUE ; - Moveable = TRUE ; - Sizeable = TRUE ; - Closeable = TRUE ; - Zoomable = TRUE ; - LineSpacing = TRUE ; - HideWhenDeactivate = TRUE ; - Customize = TRUE ; - MenuStrings = TRUE ; - Hide = TRUE ; - ItemList = - { - ToolBoxItem - { - Identifier = SID_BEZIER_EDIT ; - HelpID = SID_BEZIER_EDIT ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = SID_ATTRIBUTES_LINE ; - HelpID = SID_ATTRIBUTES_LINE ; - }; - ToolBoxItem - { - ITEM_TOOLBAR_ATTR_LINEEND_STYLE - }; - ToolBoxItem - { - ITEM_TOOLBAR_ATTR_LINE_STYLE - }; - ToolBoxItem - { - ITEM_TOOLBAR_ATTR_LINE_WIDTH - }; - ToolBoxItem - { - ITEM_TOOLBAR_ATTR_LINE_COLOR - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = SID_ATTRIBUTES_AREA ; - HelpID = SID_ATTRIBUTES_AREA ; - }; - ToolBoxItem - { - ITEM_TOOLBAR_ATTR_FILL_STYLE - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - ITEM_TOOLBAR_OBJECT_ROTATE - }; - ToolBoxItem - { - Identifier = FN_TOOL_ANKER ; - HelpID = FN_TOOL_ANKER ; - DropDown = TRUE ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = FN_FRAME_NOWRAP ; - HelpID = FN_FRAME_NOWRAP ; - RadioCheck = TRUE ; - Hide = TRUE; - }; - ToolBoxItem - { - Identifier = FN_FRAME_WRAP ; - HelpID = FN_FRAME_WRAP ; - RadioCheck = TRUE ; - Hide = TRUE; - }; - ToolBoxItem - { - Identifier = FN_FRAME_WRAP_IDEAL ; - HelpID = FN_FRAME_WRAP_IDEAL ; - RadioCheck = TRUE ; - Hide = TRUE; - }; - ToolBoxItem - { - Identifier = FN_FRAME_WRAP_LEFT ; - HelpID = FN_FRAME_WRAP_LEFT ; - RadioCheck = TRUE ; - Hide = TRUE; - }; - ToolBoxItem - { - Identifier = FN_FRAME_WRAP_RIGHT ; - HelpID = FN_FRAME_WRAP_RIGHT ; - RadioCheck = TRUE ; - Hide = TRUE; - }; - ToolBoxItem - { - Identifier = FN_FRAME_WRAPTHRU ; - HelpID = FN_FRAME_WRAPTHRU ; - RadioCheck = TRUE ; - Hide = TRUE; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = FN_FRAME_WRAP_CONTOUR ; - HelpID = FN_FRAME_WRAP_CONTOUR ; - Hide = TRUE ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = SID_OBJECT_HEAVEN ; - HelpID = SID_OBJECT_HEAVEN ; - }; - ToolBoxItem - { - Identifier = SID_OBJECT_HELL ; - HelpID = SID_OBJECT_HELL ; - }; - MN_LAYER - MN_GRID( HIDE=TRUE ) - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = SID_OBJECT_ALIGN ; - HelpID = SID_OBJECT_ALIGN ; - DropDown = TRUE ; - }; - }; - Scroll = TRUE ; -}; String RID_BEZIER_TOOLBOX { Text [ en-US ] = "Bézier Object Bar" ; Text [ x-comment ] = " "; }; -ToolBox RID_BEZIER_TOOLBOX -{ - HelpID = HID_BEZIER_TOOLBOX ; - Border = TRUE ; - SVLook = TRUE ; - Dockable = TRUE ; - Moveable = TRUE ; - Sizeable = TRUE ; - Closeable = TRUE ; - Zoomable = TRUE ; - LineSpacing = TRUE ; - HideWhenDeactivate = TRUE ; - Customize = TRUE ; - MenuStrings = TRUE ; - Hide = TRUE ; - ItemList = - { - ToolBoxItem - { - Identifier = SID_BEZIER_EDIT ; - HelpID = SID_BEZIER_EDIT ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = SID_BEZIER_MOVE ; - HelpID = SID_BEZIER_MOVE ; - RadioCheck = TRUE ; - }; - ToolBoxItem - { - Identifier = SID_BEZIER_INSERT ; - HelpID = SID_BEZIER_INSERT ; - RadioCheck = TRUE ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = SID_BEZIER_DELETE ; - HelpID = SID_BEZIER_DELETE ; - }; - ToolBoxItem - { - Identifier = SID_BEZIER_CUTLINE ; - HelpID = SID_BEZIER_CUTLINE ; - }; - ToolBoxItem - { - Identifier = SID_BEZIER_CONVERT ; - HelpID = SID_BEZIER_CONVERT ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = SID_BEZIER_EDGE ; - HelpID = SID_BEZIER_EDGE ; - RadioCheck = TRUE ; - }; - ToolBoxItem - { - Identifier = SID_BEZIER_SMOOTH ; - HelpID = SID_BEZIER_SMOOTH ; - RadioCheck = TRUE ; - }; - ToolBoxItem - { - Identifier = SID_BEZIER_SYMMTR ; - HelpID = SID_BEZIER_SYMMTR ; - RadioCheck = TRUE ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = SID_BEZIER_CLOSE ; - HelpID = SID_BEZIER_CLOSE ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = SID_BEZIER_ELIMINATE_POINTS ; - HelpID = SID_BEZIER_ELIMINATE_POINTS ; - }; - }; - Scroll = TRUE ; -}; String RID_DRAW_TEXT_TOOLBOX { Text [ en-US ] = "Text Object Bar/Graphics" ; Text [ x-comment ] = " "; }; -ToolBox RID_DRAW_TEXT_TOOLBOX -{ - HelpID = HID_DRAW_TEXT_TOOLBOX ; - Border = TRUE ; - Customize = TRUE ; - SVLook = TRUE ; - Dockable = TRUE ; - Moveable = TRUE ; - Sizeable = TRUE ; - Closeable = TRUE ; - Zoomable = TRUE ; - LineSpacing = TRUE ; - HideWhenDeactivate = TRUE ; - MenuStrings = TRUE ; - Hide = TRUE ; - ItemList = - { - MN_FONT - MN_TEXT1(FALSE) - MN_TEXT1_BLOCK - MN_TEXT_LINESPACE - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - ITEM_TOOLBAR_ATTR_CHAR_COLOR - Hide = TRUE; - }; - MN_TEXT_LTR_RTL - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = SID_TEXTDIRECTION_LEFT_TO_RIGHT ; - HelpID = SID_TEXTDIRECTION_LEFT_TO_RIGHT ; - }; - ToolBoxItem - { - Identifier = SID_TEXTDIRECTION_TOP_TO_BOTTOM ; - HelpID = SID_TEXTDIRECTION_TOP_TO_BOTTOM ; - }; - - MN_TEXT_DIALOGS(FALSE) - }; - ItemList[ ar ] = - { - MN_FONT - MN_TEXT1_RTL(FALSE) - MN_TEXT1_BLOCK - MN_TEXT_LINESPACE - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - ITEM_TOOLBAR_ATTR_CHAR_COLOR - Hide = TRUE; - }; - MN_TEXT_RTL_LTR - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = SID_TEXTDIRECTION_LEFT_TO_RIGHT ; - HelpID = SID_TEXTDIRECTION_LEFT_TO_RIGHT ; - }; - ToolBoxItem - { - Identifier = SID_TEXTDIRECTION_TOP_TO_BOTTOM ; - HelpID = SID_TEXTDIRECTION_TOP_TO_BOTTOM ; - }; - - MN_TEXT_DIALOGS(FALSE) - }; - ItemList[ he ] = - { - MN_FONT - MN_TEXT1_RTL(FALSE) - MN_TEXT1_BLOCK - MN_TEXT_LINESPACE - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - ITEM_TOOLBAR_ATTR_CHAR_COLOR - Hide = TRUE; - }; - MN_TEXT_RTL_LTR - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = SID_TEXTDIRECTION_LEFT_TO_RIGHT ; - HelpID = SID_TEXTDIRECTION_LEFT_TO_RIGHT ; - }; - ToolBoxItem - { - Identifier = SID_TEXTDIRECTION_TOP_TO_BOTTOM ; - HelpID = SID_TEXTDIRECTION_TOP_TO_BOTTOM ; - }; - - MN_TEXT_DIALOGS(FALSE) - }; - Scroll = TRUE ; -}; String RID_NUM_TOOLBOX { Text [ en-US ] = "Numbering Object Bar" ; Text [ x-comment ] = " "; }; -ToolBox RID_NUM_TOOLBOX -{ - HelpID = HID_NUM_TOOLBOX ; - Border = TRUE ; - SVLook = TRUE ; - Dockable = TRUE ; - Moveable = TRUE ; - Sizeable = TRUE ; - Closeable = TRUE ; - Zoomable = TRUE ; - LineSpacing = TRUE ; - HideWhenDeactivate = TRUE ; - Customize = TRUE ; - MenuStrings = TRUE ; - Hide = TRUE ; - ItemList = - { - MN_TEMPLATE - MN_FONT - ToolBoxItem - { - Identifier = FN_NUM_BULLET_OFF ; - HelpID = FN_NUM_BULLET_OFF ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = FN_NUM_BULLET_UP ; - HelpID = FN_NUM_BULLET_UP ; - }; - ToolBoxItem - { - Identifier = FN_NUM_BULLET_DOWN ; - HelpID = FN_NUM_BULLET_DOWN ; - }; - ToolBoxItem - { - Identifier = FN_NUM_BULLET_OUTLINE_UP ; - HelpID = FN_NUM_BULLET_OUTLINE_UP ; - }; - ToolBoxItem - { - Identifier = FN_NUM_BULLET_OUTLINE_DOWN ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = FN_NUM_BULLET_NONUM ; - HelpID = FN_NUM_BULLET_NONUM ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = FN_NUM_BULLET_MOVEUP ; - HelpID = FN_NUM_BULLET_MOVEUP ; - }; - ToolBoxItem - { - Identifier = FN_NUM_BULLET_MOVEDOWN ; - HelpID = FN_NUM_BULLET_MOVEDOWN ; - }; - ToolBoxItem - { - Identifier = FN_NUM_BULLET_OUTLINE_MOVEUP ; - HelpID = FN_NUM_BULLET_OUTLINE_MOVEUP ; - }; - ToolBoxItem - { - Identifier = FN_NUM_BULLET_OUTLINE_MOVEDOWN ; - HelpID = FN_NUM_BULLET_OUTLINE_MOVEDOWN ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = FN_NUMBER_NEWSTART ; - HelpID = FN_NUMBER_NEWSTART ; - }; - ToolBoxItem - { - Identifier = FN_NUMBER_BULLETS ; - HelpID = FN_NUMBER_BULLETS ; - }; - }; - Scroll = TRUE ; -}; String STR_SHELLNAME_TEXT { Text [ en-US ] = "Text" ; diff --git a/sw/source/ui/shells/tabsh.cxx b/sw/source/ui/shells/tabsh.cxx index 3e17c83893..486737089d 100644 --- a/sw/source/ui/shells/tabsh.cxx +++ b/sw/source/ui/shells/tabsh.cxx @@ -961,10 +961,11 @@ void SwTableShell::Execute(SfxRequest &rReq) case FN_TABLE_INSERT_COL_DLG: case FN_TABLE_INSERT_ROW_DLG: { + const SfxSlot* pSlot = GetStaticInterface()->GetSlot(nSlot); if ( FN_TABLE_INSERT_ROW_DLG != nSlot || !rSh.IsInRepeatedHeadline()) { SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); - ::std::auto_ptr<SvxAbstractInsRowColDlg> pDlg( pFact ? pFact->CreateSvxInsRowColDlg( GetView().GetWindow(), nSlot == FN_TABLE_INSERT_COL_DLG, nSlot) : 0); + ::std::auto_ptr<SvxAbstractInsRowColDlg> pDlg( pFact ? pFact->CreateSvxInsRowColDlg( GetView().GetWindow(), nSlot == FN_TABLE_INSERT_COL_DLG, pSlot->GetCommand() ) : 0); if( pDlg.get() && (pDlg->Execute() == 1) ) { diff --git a/sw/source/ui/shells/textfld.cxx b/sw/source/ui/shells/textfld.cxx index 7bef6d5265..1c1efba2cd 100644 --- a/sw/source/ui/shells/textfld.cxx +++ b/sw/source/ui/shells/textfld.cxx @@ -313,7 +313,7 @@ void SwTextShell::ExecField(SfxRequest &rReq) rReq.Ignore(); } break; - case FN_DELETE_NOTE: + case FN_DELETE_COMMENT: if ( GetView().GetPostItMgr() && GetView().GetPostItMgr()->HasActiveSidebarWin() ) { @@ -622,7 +622,7 @@ void SwTextShell::StateField( SfxItemSet &rSet ) { switch (nWhich) { - case FN_DELETE_NOTE: + case FN_DELETE_COMMENT: case FN_DELETE_NOTE_AUTHOR: case FN_DELETE_ALL_NOTES: case FN_HIDE_NOTE: @@ -634,7 +634,7 @@ void SwTextShell::StateField( SfxItemSet &rSet ) rSet.InvalidateItem( nWhich ); else if ( !pPostItMgr->HasActiveSidebarWin() ) { - rSet.InvalidateItem( FN_DELETE_NOTE ); + rSet.InvalidateItem( FN_DELETE_COMMENT ); rSet.InvalidateItem( FN_HIDE_NOTE ); } } diff --git a/sw/source/ui/shells/textsh.cxx b/sw/source/ui/shells/textsh.cxx index e437de58d4..0326473a08 100644 --- a/sw/source/ui/shells/textsh.cxx +++ b/sw/source/ui/shells/textsh.cxx @@ -282,7 +282,6 @@ void SwTextShell::ExecInsert(SfxRequest &rReq) break; case SID_INSERT_OBJECT: case SID_INSERT_PLUGIN: - case SID_INSERT_APPLET: { SFX_REQUEST_ARG( rReq, pNameItem, SfxGlobalNameItem, SID_INSERT_OBJECT, sal_False ); SvGlobalName *pName = NULL; @@ -293,18 +292,13 @@ void SwTextShell::ExecInsert(SfxRequest &rReq) pName = &aName; } - SFX_REQUEST_ARG( rReq, pClassItem, SfxStringItem, FN_PARAM_1, sal_False ); SFX_REQUEST_ARG( rReq, pClassLocationItem, SfxStringItem, FN_PARAM_2, sal_False ); SFX_REQUEST_ARG( rReq, pCommandsItem, SfxStringItem, FN_PARAM_3, sal_False ); //TODO/LATER: recording currently not working, need code for Commandlist svt::EmbeddedObjectRef xObj; - if((SID_INSERT_APPLET == nSlot || SID_INSERT_PLUGIN) - && (pClassItem || pClassLocationItem || pCommandsItem)) + if( nSlot == SID_INSERT_PLUGIN && ( pClassLocationItem || pCommandsItem ) ) { - String sClass; String sClassLocation; - if(pClassItem) - sClass = pClassItem->GetValue(); if(pClassLocationItem) sClassLocation = pClassLocationItem->GetValue(); @@ -315,36 +309,6 @@ void SwTextShell::ExecInsert(SfxRequest &rReq) aCommandList.AppendCommands( pCommandsItem->GetValue(), &nTemp ); } - if(SID_INSERT_APPLET == nSlot) - { - SwApplet_Impl aApplImpl( rSh.GetAttrPool(), - RES_FRMATR_BEGIN, RES_FRMATR_END-1 ); - String sBaseURL; - SfxMedium* pMedium = GetView().GetDocShell()->GetMedium(); - if(pMedium) - sBaseURL = pMedium->GetURLObject().GetMainURL(INetURLObject::NO_DECODE); - - aApplImpl.CreateApplet(sClass, aEmptyStr, FALSE, sClassLocation, sBaseURL ); - aApplImpl.FinishApplet(); - xObj.Assign( aApplImpl.GetApplet(), embed::Aspects::MSOLE_CONTENT ); - if( aCommandList.Count() ) - { - uno::Reference < beans::XPropertySet > xSet( xObj->getComponent(), uno::UNO_QUERY ); - if ( xSet.is() ) - { - uno::Sequence < beans::PropertyValue > aSeq; - aCommandList.FillSequence( aSeq ); - try - { - xSet->setPropertyValue( ::rtl::OUString::createFromAscii("AppletCommands"), uno::makeAny( aSeq ) ); - } - catch ( uno::Exception& ) - { - } - } - } - } - else { comphelper::EmbeddedObjectContainer aCnt; ::rtl::OUString sName; @@ -851,13 +815,8 @@ void SwTextShell::StateInsert( SfxItemSet &rSet ) case SID_INSERT_FLOATINGFRAME: case SID_INSERT_OBJECT: case SID_INSERT_PLUGIN: - case SID_INSERT_APPLET: { - if( -#ifndef SOLAR_JAVA - nWhich == SID_INSERT_APPLET || -#endif - eCreateMode == SFX_CREATE_MODE_EMBEDDED || bCrsrInHidden ) + if( eCreateMode == SFX_CREATE_MODE_EMBEDDED || bCrsrInHidden ) { rSet.DisableItem( nWhich ); } diff --git a/sw/source/ui/shells/textsh1.cxx b/sw/source/ui/shells/textsh1.cxx index 8a02ce6395..8640319d7f 100644 --- a/sw/source/ui/shells/textsh1.cxx +++ b/sw/source/ui/shells/textsh1.cxx @@ -127,7 +127,7 @@ #include <view.hxx> #include <ndtxt.hxx> #include <pam.hxx> - +#include <sfx2/objface.hxx> #include <langhelper.hxx> using namespace ::com::sun::star; @@ -461,7 +461,7 @@ void SwTextShell::Execute(SfxRequest &rReq) AbstractInsFootNoteDlg* pDlg = pFact->CreateInsFootNoteDlg( DLG_INS_FOOTNOTE, GetView().GetWindow(), rWrtSh, FALSE ); DBG_ASSERT(pDlg, "Dialogdiet fail!"); - pDlg->SetHelpId(nSlot); + pDlg->SetHelpId(GetStaticInterface()->GetSlot(nSlot)->GetCommand()); if ( pDlg->Execute() == RET_OK ) { USHORT nId = pDlg->IsEndNote() ? FN_INSERT_ENDNOTE : FN_INSERT_FOOTNOTE; diff --git a/sw/source/ui/table/chartins.src b/sw/source/ui/table/chartins.src index 6c30097791..92e20c682b 100644 --- a/sw/source/ui/table/chartins.src +++ b/sw/source/ui/table/chartins.src @@ -50,12 +50,14 @@ ModelessDialog DLG_INSERT_CHART }; Edit ED_RANGE { + HelpID = "sw:Edit:DLG_INSERT_CHART:ED_RANGE"; Border = TRUE ; Pos = MAP_APPFONT ( 56 , 14 ) ; Size = MAP_APPFONT ( 229 , 12 ) ; }; CheckBox CB_FIRST_ROW { + HelpID = "sw:CheckBox:DLG_INSERT_CHART:CB_FIRST_ROW"; Pos = MAP_APPFONT ( 12 , 32 ) ; Size = MAP_APPFONT ( 150 , 10 ) ; TabStop = TRUE ; @@ -64,6 +66,7 @@ ModelessDialog DLG_INSERT_CHART }; CheckBox CB_FIRST_COL { + HelpID = "sw:CheckBox:DLG_INSERT_CHART:CB_FIRST_COL"; Pos = MAP_APPFONT ( 12 , 46 ) ; Size = MAP_APPFONT ( 150 , 10 ) ; TabStop = TRUE ; @@ -96,6 +99,7 @@ ModelessDialog DLG_INSERT_CHART }; PushButton BT_PREV { + HelpID = "sw:PushButton:DLG_INSERT_CHART:BT_PREV"; Pos = MAP_APPFONT ( 130 , 151 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; // ### ACHTUNG: Neuer Text in Resource? << ~Zurück : << Zurück @@ -106,6 +110,7 @@ ModelessDialog DLG_INSERT_CHART }; PushButton BT_NEXT { + HelpID = "sw:PushButton:DLG_INSERT_CHART:BT_NEXT"; Pos = MAP_APPFONT ( 185 , 151 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Disable = TRUE ; @@ -114,6 +119,7 @@ ModelessDialog DLG_INSERT_CHART }; PushButton BT_FINISH { + HelpID = "sw:PushButton:DLG_INSERT_CHART:BT_FINISH"; Pos = MAP_APPFONT ( 240 , 151 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; TabStop = TRUE ; diff --git a/sw/source/ui/table/colwd.src b/sw/source/ui/table/colwd.src index cd34b41bd5..1df5fe2cfc 100644 --- a/sw/source/ui/table/colwd.src +++ b/sw/source/ui/table/colwd.src @@ -32,7 +32,7 @@ // #define DLG_COL_WIDTH 256 ModalDialog DLG_COL_WIDTH { - HelpID = FN_TABLE_SET_COL_WIDTH ; + HelpID = CMD_FN_TABLE_SET_COL_WIDTH ; OutputSize = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 159 , 60 ) ; @@ -66,6 +66,7 @@ ModalDialog DLG_COL_WIDTH }; MetricField ED_WIDTH { + HelpID = "sw:MetricField:DLG_COL_WIDTH:ED_WIDTH"; Border = TRUE ; Pos = MAP_APPFONT ( 51 , 30 ) ; Size = MAP_APPFONT ( 38 , 12 ) ; @@ -97,6 +98,7 @@ ModalDialog DLG_COL_WIDTH }; NumericField ED_COL { + HelpID = "sw:NumericField:DLG_COL_WIDTH:ED_COL"; Border = TRUE ; Pos = MAP_APPFONT ( 51 , 14 ) ; Size = MAP_APPFONT ( 38 , 12 ) ; diff --git a/sw/source/ui/table/convert.src b/sw/source/ui/table/convert.src index 50baa2bb9a..13e9b9e860 100644 --- a/sw/source/ui/table/convert.src +++ b/sw/source/ui/table/convert.src @@ -31,7 +31,7 @@ #include "helpid.h" ModalDialog DLG_CONV_TEXT_TABLE { - HelpID = FN_CONVERT_TEXT_TABLE ; + HelpID = CMD_FN_CONVERT_TEXT_TABLE ; OUTPUTSIZE = TRUE ; Size = MAP_APPFONT ( 203 , 169 ) ; Text [ en-US ] = "Convert Table to Text" ; @@ -39,6 +39,7 @@ ModalDialog DLG_CONV_TEXT_TABLE SVLOOK = TRUE ; RadioButton CB_TAB { + HelpID = "sw:RadioButton:DLG_CONV_TEXT_TABLE:CB_TAB"; Pos = MAP_APPFONT ( 12 , 17 ) ; Size = MAP_APPFONT ( 60 , 10 ) ; Text [ en-US ] = "~Tabs" ; @@ -48,6 +49,7 @@ ModalDialog DLG_CONV_TEXT_TABLE }; RadioButton CB_SEMI { + HelpID = "sw:RadioButton:DLG_CONV_TEXT_TABLE:CB_SEMI"; Pos = MAP_APPFONT ( 75 , 17 ) ; Size = MAP_APPFONT ( 60 , 10 ) ; Text [ en-US ] = "~Semicolons" ; @@ -55,6 +57,7 @@ ModalDialog DLG_CONV_TEXT_TABLE }; RadioButton CB_PARA { + HelpID = "sw:RadioButton:DLG_CONV_TEXT_TABLE:CB_PARA"; Pos = MAP_APPFONT ( 12 , 33 ) ; Size = MAP_APPFONT ( 60 , 10 ) ; Text [ en-US ] = "~Paragraph" ; @@ -62,12 +65,14 @@ ModalDialog DLG_CONV_TEXT_TABLE }; RadioButton RB_OTHER { + HelpID = "sw:RadioButton:DLG_CONV_TEXT_TABLE:RB_OTHER"; Pos = MAP_APPFONT ( 75 , 33 ) ; Size = MAP_APPFONT ( 45 , 10 ) ; Text [ en-US ] = "~Other: " ; }; Edit ED_OTHER { + HelpID = "sw:Edit:DLG_CONV_TEXT_TABLE:ED_OTHER"; Border = TRUE ; Left = TRUE ; Pos = MAP_APPFONT ( 123 , 32 ) ; @@ -77,6 +82,7 @@ ModalDialog DLG_CONV_TEXT_TABLE }; CheckBox CB_KEEPCOLUMN { + HelpID = "sw:CheckBox:DLG_CONV_TEXT_TABLE:CB_KEEPCOLUMN"; Pos = MAP_APPFONT ( 12 , 49 ) ; Size = MAP_APPFONT ( 128 , 10 ) ; Check = TRUE; @@ -92,6 +98,7 @@ ModalDialog DLG_CONV_TEXT_TABLE }; CheckBox CB_HEADER { + HelpID = "sw:CheckBox:DLG_CONV_TEXT_TABLE:CB_HEADER"; Pos = MAP_APPFONT ( 12 , 84 ) ; Size = MAP_APPFONT ( 123 , 10 ) ; TabStop = TRUE ; @@ -99,6 +106,7 @@ ModalDialog DLG_CONV_TEXT_TABLE }; CheckBox CB_REPEAT_HEADER { + HelpID = "sw:CheckBox:DLG_CONV_TEXT_TABLE:CB_REPEAT_HEADER"; Pos = MAP_APPFONT ( 22 , 97 ) ; Size = MAP_APPFONT ( 113 , 10 ) ; Text [ en-US ] = "Repeat heading"; @@ -112,6 +120,7 @@ ModalDialog DLG_CONV_TEXT_TABLE }; NumericField NF_REPEAT_HEADER { + HelpID = "sw:NumericField:DLG_CONV_TEXT_TABLE:NF_REPEAT_HEADER"; Border = TRUE ; Pos = MAP_APPFONT ( 191 , 112 ) ; Size = MAP_APPFONT ( 28 , 12 ) ; @@ -130,6 +139,7 @@ ModalDialog DLG_CONV_TEXT_TABLE }; CheckBox CB_DONT_SPLIT { + HelpID = "sw:CheckBox:DLG_CONV_TEXT_TABLE:CB_DONT_SPLIT"; Pos = MAP_APPFONT ( 12 , 126 ) ; Size = MAP_APPFONT ( 123 , 10 ) ; TabStop = TRUE ; @@ -137,6 +147,7 @@ ModalDialog DLG_CONV_TEXT_TABLE }; CheckBox CB_BORDER { + HelpID = "sw:CheckBox:DLG_CONV_TEXT_TABLE:CB_BORDER"; Pos = MAP_APPFONT ( 12 , 139 ) ; Size = MAP_APPFONT ( 123 , 10 ) ; TabStop = TRUE ; @@ -173,6 +184,7 @@ ModalDialog DLG_CONV_TEXT_TABLE }; PushButton BT_AUTOFORMAT { + HelpID = "sw:PushButton:DLG_CONV_TEXT_TABLE:BT_AUTOFORMAT"; Pos = MAP_APPFONT ( 12 , 152 ) ; Size = MAP_APPFONT ( 86 , 14 ) ; TabStop = TRUE ; diff --git a/sw/source/ui/table/instable.src b/sw/source/ui/table/instable.src index 3930bb36ab..e5a636d3b8 100644 --- a/sw/source/ui/table/instable.src +++ b/sw/source/ui/table/instable.src @@ -32,7 +32,7 @@ // #define DLG_INSERT_TABLE 256 ModalDialog DLG_INSERT_TABLE { - HelpID = FN_INSERT_TABLE ; + HelpID = CMD_FN_INSERT_TABLE ; OutputSize = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 280 , 166 ) ; @@ -40,6 +40,7 @@ ModalDialog DLG_INSERT_TABLE Moveable = TRUE ; Edit ED_NAME { + HelpID = "sw:Edit:DLG_INSERT_TABLE:ED_NAME"; Border = TRUE ; Pos = MAP_APPFONT ( 53 , 6 ) ; Size = MAP_APPFONT ( 158, 12 ) ; @@ -60,6 +61,7 @@ ModalDialog DLG_INSERT_TABLE }; NumericField ED_COL { + HelpID = "sw:NumericField:DLG_INSERT_TABLE:ED_COL"; Border = TRUE ; Pos = MAP_APPFONT ( 53 , 32 ) ; Size = MAP_APPFONT ( 28 , 12 ) ; @@ -82,6 +84,7 @@ ModalDialog DLG_INSERT_TABLE }; NumericField ED_ROW { + HelpID = "sw:NumericField:DLG_INSERT_TABLE:ED_ROW"; Border = TRUE ; Pos = MAP_APPFONT ( 53 , 48 ) ; Size = MAP_APPFONT ( 28 , 12 ) ; @@ -103,6 +106,7 @@ ModalDialog DLG_INSERT_TABLE }; CheckBox CB_HEADER { + HelpID = "sw:CheckBox:DLG_INSERT_TABLE:CB_HEADER"; Pos = MAP_APPFONT ( 12 , 74 ) ; Size = MAP_APPFONT (113 , 10 ) ; TabStop = TRUE ; @@ -110,6 +114,7 @@ ModalDialog DLG_INSERT_TABLE }; CheckBox CB_REPEAT_HEADER { + HelpID = "sw:CheckBox:DLG_INSERT_TABLE:CB_REPEAT_HEADER"; Pos = MAP_APPFONT ( 21 , 88 ) ; Size = MAP_APPFONT ( 104 , 10 ) ; TabStop = TRUE ; @@ -123,6 +128,7 @@ ModalDialog DLG_INSERT_TABLE }; NumericField NF_REPEAT_HEADER { + HelpID = "sw:NumericField:DLG_INSERT_TABLE:NF_REPEAT_HEADER"; Border = TRUE ; Pos = MAP_APPFONT ( 130 , 104 ) ; Size = MAP_APPFONT ( 28 , 12 ) ; @@ -141,6 +147,7 @@ ModalDialog DLG_INSERT_TABLE }; CheckBox CB_DONT_SPLIT { + HelpID = "sw:CheckBox:DLG_INSERT_TABLE:CB_DONT_SPLIT"; Pos = MAP_APPFONT ( 12 , 118 ) ; Size = MAP_APPFONT ( 113 , 10 ) ; Text [ en-US ] = "Don't split table"; @@ -148,6 +155,7 @@ ModalDialog DLG_INSERT_TABLE }; CheckBox CB_BORDER { + HelpID = "sw:CheckBox:DLG_INSERT_TABLE:CB_BORDER"; Pos = MAP_APPFONT ( 12 , 132 ) ; Size = MAP_APPFONT ( 113 , 10 ) ; TabStop = TRUE ; @@ -155,6 +163,7 @@ ModalDialog DLG_INSERT_TABLE }; PushButton BT_AUTOFORMAT { + HelpID = "sw:PushButton:DLG_INSERT_TABLE:BT_AUTOFORMAT"; Pos = MAP_APPFONT ( 12 , 146 ) ; Size = MAP_APPFONT ( 86 , 14 ) ; TabStop = TRUE ; diff --git a/sw/source/ui/table/mergetbl.src b/sw/source/ui/table/mergetbl.src index 97ef9cb2cd..de6fa33159 100644 --- a/sw/source/ui/table/mergetbl.src +++ b/sw/source/ui/table/mergetbl.src @@ -31,7 +31,7 @@ #include "helpid.h" ModalDialog DLG_MERGE_TABLE { - HelpID = FN_TABLE_MERGE_TABLE ; + HelpID = CMD_FN_TABLE_MERGE_TABLE ; OutputSize = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 207 , 57 ) ; @@ -63,6 +63,7 @@ ModalDialog DLG_MERGE_TABLE }; RadioButton RB_MERGE_PREV { + HelpID = "sw:RadioButton:DLG_MERGE_TABLE:RB_MERGE_PREV"; Pos = MAP_APPFONT ( 12 , 15 ) ; Size = MAP_APPFONT ( 130 , 10 ) ; Check = TRUE ; @@ -71,6 +72,7 @@ ModalDialog DLG_MERGE_TABLE }; RadioButton RB_MERGE_NEXT { + HelpID = "sw:RadioButton:DLG_MERGE_TABLE:RB_MERGE_NEXT"; Pos = MAP_APPFONT ( 12 , 30 ) ; Size = MAP_APPFONT ( 130 , 10 ) ; Text [ en-US ] = "Join with ~next table"; diff --git a/sw/source/ui/table/rowht.src b/sw/source/ui/table/rowht.src index ea3ac27474..6d537f415a 100644 --- a/sw/source/ui/table/rowht.src +++ b/sw/source/ui/table/rowht.src @@ -31,7 +31,7 @@ #include "helpid.h" ModalDialog DLG_ROW_HEIGHT { - HelpID = FN_TABLE_SET_ROW_HEIGHT ; + HelpID = CMD_FN_TABLE_SET_ROW_HEIGHT ; OutputSize = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 157 , 60 ) ; @@ -59,6 +59,7 @@ ModalDialog DLG_ROW_HEIGHT }; MetricField ED_HEIGHT { + HelpID = "sw:MetricField:DLG_ROW_HEIGHT:ED_HEIGHT"; Border = TRUE ; Pos = MAP_APPFONT ( 12 , 16 ) ; Size = MAP_APPFONT ( 38 , 12 ) ; @@ -76,6 +77,7 @@ ModalDialog DLG_ROW_HEIGHT }; CheckBox CB_AUTOHEIGHT { + HelpID = "sw:CheckBox:DLG_ROW_HEIGHT:CB_AUTOHEIGHT"; Pos = MAP_APPFONT ( 12 , 34 ) ; Size = MAP_APPFONT ( 80 , 10 ) ; /* ### ACHTUNG: Neuer Text in Resource? ~dynamisch anpassen : auto. H~öhe */ diff --git a/sw/source/ui/table/splittbl.src b/sw/source/ui/table/splittbl.src index e58d64ab96..d785f9ea06 100644 --- a/sw/source/ui/table/splittbl.src +++ b/sw/source/ui/table/splittbl.src @@ -31,7 +31,7 @@ #include "helpid.h" ModalDialog DLG_SPLIT_TABLE { - HelpID = FN_TABLE_SPLIT_TABLE ; + HelpID = CMD_FN_TABLE_SPLIT_TABLE ; OutputSize = TRUE ; SVLook = TRUE ; Size = MAP_APPFONT ( 207 , 76 ) ; @@ -63,6 +63,7 @@ ModalDialog DLG_SPLIT_TABLE }; RadioButton RB_CNTNT { + HelpID = "sw:RadioButton:DLG_SPLIT_TABLE:RB_CNTNT"; Pos = MAP_APPFONT ( 12 , 15 ) ; Size = MAP_APPFONT ( 130 , 10 ) ; Check = TRUE ; @@ -71,18 +72,21 @@ ModalDialog DLG_SPLIT_TABLE }; RadioButton RB_BOX_PARA { + HelpID = "sw:RadioButton:DLG_SPLIT_TABLE:RB_BOX_PARA"; Pos = MAP_APPFONT ( 12 , 30 ) ; Size = MAP_APPFONT ( 130 , 10 ) ; Text [ en-US ] = "C~ustom heading (apply Style)" ; }; RadioButton RB_BOX_NOPARA { + HelpID = "sw:RadioButton:DLG_SPLIT_TABLE:RB_BOX_NOPARA"; Pos = MAP_APPFONT ( 12 , 45 ) ; Size = MAP_APPFONT ( 130 , 10 ) ; Text [ en-US ] = "Cu~stom heading" ; }; RadioButton RB_BORDER { + HelpID = "sw:RadioButton:DLG_SPLIT_TABLE:RB_BORDER"; Pos = MAP_APPFONT ( 12 , 60 ) ; Size = MAP_APPFONT ( 130 , 10 ) ; Text [ en-US ] = "~No heading" ; diff --git a/sw/source/ui/table/tabledlg.src b/sw/source/ui/table/tabledlg.src index 0dd3607c2d..b3d52ec516 100644 --- a/sw/source/ui/table/tabledlg.src +++ b/sw/source/ui/table/tabledlg.src @@ -98,6 +98,7 @@ TabPage TP_FORMAT_TABLE }; Edit ED_NAME { + HelpID = "sw:Edit:TP_FORMAT_TABLE:ED_NAME"; Border = TRUE ; Pos = MAP_APPFONT ( 75 , 14 ) ; Size = MAP_APPFONT ( 112 , 12 ) ; @@ -111,6 +112,7 @@ TabPage TP_FORMAT_TABLE }; MetricField ED_WIDTH { + HelpID = "sw:MetricField:TP_FORMAT_TABLE:ED_WIDTH"; Border = TRUE ; Pos = MAP_APPFONT ( 75 , 30 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -129,6 +131,7 @@ TabPage TP_FORMAT_TABLE }; CheckBox CB_REL_WIDTH { + HelpID = "sw:CheckBox:TP_FORMAT_TABLE:CB_REL_WIDTH"; Pos = MAP_APPFONT ( 118 , 32 ) ; Size = MAP_APPFONT ( 69 , 10 ) ; TabStop = TRUE ; @@ -142,6 +145,7 @@ TabPage TP_FORMAT_TABLE }; RadioButton RB_FULL { + HelpID = "sw:RadioButton:TP_FORMAT_TABLE:RB_FULL"; Pos = MAP_APPFONT ( 202 , 14 ) ; Size = MAP_APPFONT ( 50 , 10 ) ; TabStop = TRUE ; @@ -149,6 +153,7 @@ TabPage TP_FORMAT_TABLE }; RadioButton RB_LEFT { + HelpID = "sw:RadioButton:TP_FORMAT_TABLE:RB_LEFT"; Pos = MAP_APPFONT ( 202 , 28 ) ; Size = MAP_APPFONT ( 50 , 10 ) ; Text [ en-US ] = "~Left" ; @@ -156,6 +161,7 @@ TabPage TP_FORMAT_TABLE }; RadioButton RB_FROM_LEFT { + HelpID = "sw:RadioButton:TP_FORMAT_TABLE:RB_FROM_LEFT"; Pos = MAP_APPFONT ( 202 , 42 ) ; Size = MAP_APPFONT ( 50 , 10 ) ; TabStop = TRUE ; @@ -163,6 +169,7 @@ TabPage TP_FORMAT_TABLE }; RadioButton RB_RIGHT { + HelpID = "sw:RadioButton:TP_FORMAT_TABLE:RB_RIGHT"; Pos = MAP_APPFONT ( 202 , 56 ) ; Size = MAP_APPFONT ( 50 , 10 ) ; Text [ en-US ] = "R~ight" ; @@ -170,6 +177,7 @@ TabPage TP_FORMAT_TABLE }; RadioButton RB_CENTER { + HelpID = "sw:RadioButton:TP_FORMAT_TABLE:RB_CENTER"; Pos = MAP_APPFONT ( 202 , 70 ) ; Size = MAP_APPFONT ( 50 , 10 ) ; Text [ en-US ] = "~Center" ; @@ -177,6 +185,7 @@ TabPage TP_FORMAT_TABLE }; RadioButton RB_FREE { + HelpID = "sw:RadioButton:TP_FORMAT_TABLE:RB_FREE"; Pos = MAP_APPFONT ( 202 , 84 ) ; Size = MAP_APPFONT ( 50 , 10 ) ; TabStop = TRUE ; @@ -202,6 +211,7 @@ TabPage TP_FORMAT_TABLE }; MetricField ED_LEFT_DIST { + HelpID = "sw:MetricField:TP_FORMAT_TABLE:ED_LEFT_DIST"; Pos = MAP_APPFONT ( 147 , 59 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; Border = TRUE ; @@ -226,6 +236,7 @@ TabPage TP_FORMAT_TABLE MetricField ED_RIGHT_DIST { + HelpID = "sw:MetricField:TP_FORMAT_TABLE:ED_RIGHT_DIST"; Pos = MAP_APPFONT ( 147 , 75 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; Border = TRUE ; @@ -249,6 +260,7 @@ TabPage TP_FORMAT_TABLE }; MetricField ED_TOP_DIST { + HelpID = "sw:MetricField:TP_FORMAT_TABLE:ED_TOP_DIST"; Pos = MAP_APPFONT ( 147 , 91 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; Border = TRUE ; @@ -272,6 +284,7 @@ TabPage TP_FORMAT_TABLE }; MetricField ED_BOTTOM_DIST { + HelpID = "sw:MetricField:TP_FORMAT_TABLE:ED_BOTTOM_DIST"; Border = TRUE ; Pos = MAP_APPFONT ( 147 , 107 ) ; Size = MAP_APPFONT ( 40 , 12 ) ; @@ -303,6 +316,7 @@ TabPage TP_FORMAT_TABLE }; ListBox LB_TEXTDIRECTION { + HelpID = "sw:ListBox:TP_FORMAT_TABLE:LB_TEXTDIRECTION"; Border = TRUE ; Pos = MAP_APPFONT ( 75 , 136 ) ; Size = MAP_APPFONT ( 176 , 50 ) ; @@ -329,6 +343,7 @@ TabPage TP_TABLE_COLUMN Hide = TRUE; CheckBox CB_MOD_TBL { + HelpID = "sw:CheckBox:TP_TABLE_COLUMN:CB_MOD_TBL"; Pos = MAP_APPFONT ( 6 , 6 ) ; Size = MAP_APPFONT ( 180 , 10 ) ; TabStop = TRUE ; @@ -336,6 +351,7 @@ TabPage TP_TABLE_COLUMN }; CheckBox CB_PROP { + HelpID = "sw:CheckBox:TP_TABLE_COLUMN:CB_PROP"; Pos = MAP_APPFONT ( 6 , 20 ) ; Size = MAP_APPFONT ( 180 , 10 ) ; TabStop = TRUE ; @@ -349,6 +365,7 @@ TabPage TP_TABLE_COLUMN }; MetricField ED_SPACE { + HelpID = "sw:MetricField:TP_TABLE_COLUMN:ED_SPACE"; ReadOnly = TRUE ; Border = TRUE ; Pos = MAP_APPFONT ( 95 , 34 ) ; @@ -365,6 +382,7 @@ TabPage TP_TABLE_COLUMN }; ImageButton COL_BTN_DOWN { + HelpID = "sw:ImageButton:TP_TABLE_COLUMN:COL_BTN_DOWN"; Disable = TRUE ; Pos = MAP_APPFONT ( 12 , 65 ) ; Size = MAP_APPFONT ( 10 , 10 ) ; @@ -373,6 +391,7 @@ TabPage TP_TABLE_COLUMN }; ImageButton COL_BTN_UP { + HelpID = "sw:ImageButton:TP_TABLE_COLUMN:COL_BTN_UP"; Disable = TRUE ; Pos = MAP_APPFONT ( 234 , 65 ) ; Size = MAP_APPFONT ( 10 , 10 ) ; @@ -391,6 +410,7 @@ TabPage TP_TABLE_COLUMN }; MetricField COL_MF_1 { + HelpID = "sw:MetricField:TP_TABLE_COLUMN:COL_MF_1"; Disable = TRUE ; Border = TRUE ; Pos = MAP_APPFONT ( 13 , 81 ) ; @@ -418,6 +438,7 @@ TabPage TP_TABLE_COLUMN }; MetricField COL_MF_2 { + HelpID = "sw:MetricField:TP_TABLE_COLUMN:COL_MF_2"; Disable = TRUE ; Border = TRUE ; Pos = MAP_APPFONT ( 52 , 81 ) ; @@ -445,6 +466,7 @@ TabPage TP_TABLE_COLUMN }; MetricField COL_MF_3 { + HelpID = "sw:MetricField:TP_TABLE_COLUMN:COL_MF_3"; Disable = TRUE ; Border = TRUE ; Pos = MAP_APPFONT ( 91 , 81 ) ; @@ -472,6 +494,7 @@ TabPage TP_TABLE_COLUMN }; MetricField COL_MF_4 { + HelpID = "sw:MetricField:TP_TABLE_COLUMN:COL_MF_4"; Disable = TRUE ; Border = TRUE ; Pos = MAP_APPFONT ( 130 , 81 ) ; @@ -499,6 +522,7 @@ TabPage TP_TABLE_COLUMN }; MetricField COL_MF_5 { + HelpID = "sw:MetricField:TP_TABLE_COLUMN:COL_MF_5"; Disable = TRUE ; Border = TRUE ; Pos = MAP_APPFONT ( 169 , 81 ) ; @@ -526,6 +550,7 @@ TabPage TP_TABLE_COLUMN }; MetricField COL_MF_6 { + HelpID = "sw:MetricField:TP_TABLE_COLUMN:COL_MF_6"; Disable = TRUE ; Border = TRUE ; Pos = MAP_APPFONT ( 208 , 81 ) ; @@ -568,6 +593,7 @@ TabPage TP_TABLE_TEXTFLOW }; CheckBox CB_PAGEBREAK { + HelpID = "sw:CheckBox:TP_TABLE_TEXTFLOW:CB_PAGEBREAK"; // Disable = TRUE; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 90 , 8 ) ; @@ -577,6 +603,7 @@ TabPage TP_TABLE_TEXTFLOW }; RadioButton RB_BREAKPAGE { + HelpID = "sw:RadioButton:TP_TABLE_TEXTFLOW:RB_BREAKPAGE"; Pos = MAP_APPFONT ( 105 , 14 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; Text [ en-US ] = "~Page" ; @@ -585,6 +612,7 @@ TabPage TP_TABLE_TEXTFLOW }; RadioButton RB_BREAKCOLUMN { + HelpID = "sw:RadioButton:TP_TABLE_TEXTFLOW:RB_BREAKCOLUMN"; // Disable = TRUE; Pos = MAP_APPFONT ( 178 , 14 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; @@ -593,6 +621,7 @@ TabPage TP_TABLE_TEXTFLOW }; RadioButton RB_PAGEBREAKBEFORE { + HelpID = "sw:RadioButton:TP_TABLE_TEXTFLOW:RB_PAGEBREAKBEFORE"; // Disable = TRUE; Pos = MAP_APPFONT ( 105 , 28 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; @@ -602,6 +631,7 @@ TabPage TP_TABLE_TEXTFLOW }; RadioButton RB_PAGEBREAKAFTER { + HelpID = "sw:RadioButton:TP_TABLE_TEXTFLOW:RB_PAGEBREAKAFTER"; // Disable = TRUE; Pos = MAP_APPFONT ( 178 , 28 ) ; Size = MAP_APPFONT ( 70 , 10 ) ; @@ -609,6 +639,7 @@ TabPage TP_TABLE_TEXTFLOW }; CheckBox CB_PAGECOLL { + HelpID = "sw:CheckBox:TP_TABLE_TEXTFLOW:CB_PAGECOLL"; // Disable = TRUE; Pos = MAP_APPFONT ( 12 , 44 ) ; Size = MAP_APPFONT ( 90 , 10 ) ; @@ -618,6 +649,7 @@ TabPage TP_TABLE_TEXTFLOW }; ListBox LB_PAGECOLL { + HelpID = "sw:ListBox:TP_TABLE_TEXTFLOW:LB_PAGECOLL"; Pos = MAP_APPFONT ( 105 , 42 ) ; Size = MAP_APPFONT ( 61 , 50 ) ; TabStop = TRUE ; @@ -631,6 +663,7 @@ TabPage TP_TABLE_TEXTFLOW }; NumericField NF_PAGENUM { + HelpID = "sw:NumericField:TP_TABLE_TEXTFLOW:NF_PAGENUM"; Border = TRUE ; Pos = MAP_APPFONT ( 222 , 42 ) ; Size = MAP_APPFONT ( 26 , 12 ) ; @@ -646,6 +679,7 @@ TabPage TP_TABLE_TEXTFLOW }; CheckBox CB_SPLIT { + HelpID = "sw:CheckBox:TP_TABLE_TEXTFLOW:CB_SPLIT"; Pos = MAP_APPFONT ( 12 , 58 ) ; Size = MAP_APPFONT ( 236 , 10 ) ; TabStop = TRUE ; @@ -653,6 +687,7 @@ TabPage TP_TABLE_TEXTFLOW }; TriStateBox CB_SPLIT_ROW { + HelpID = "sw:TriStateBox:TP_TABLE_TEXTFLOW:CB_SPLIT_ROW"; Pos = MAP_APPFONT ( 21 , 71 ) ; Size = MAP_APPFONT ( 227 , 10 ) ; TabStop = TRUE ; @@ -660,6 +695,7 @@ TabPage TP_TABLE_TEXTFLOW }; CheckBox CB_KEEP { + HelpID = "sw:CheckBox:TP_TABLE_TEXTFLOW:CB_KEEP"; Pos = MAP_APPFONT ( 12 , 85 ) ; Size = MAP_APPFONT ( 236 , 10 ) ; Text [ en-US ] = "~Keep with next paragraph" ; @@ -667,6 +703,7 @@ TabPage TP_TABLE_TEXTFLOW }; CheckBox CB_HEADLINE { + HelpID = "sw:CheckBox:TP_TABLE_TEXTFLOW:CB_HEADLINE"; Pos = MAP_APPFONT ( 12 , 99 ) ; Size = MAP_APPFONT ( 236 , 10 ) ; TabStop = TRUE ; @@ -680,6 +717,7 @@ TabPage TP_TABLE_TEXTFLOW }; NumericField NF_REPEAT_HEADER { + HelpID = "sw:NumericField:TP_TABLE_TEXTFLOW:NF_REPEAT_HEADER"; Border = TRUE ; Pos = MAP_APPFONT ( 131 , 113 ) ; Size = MAP_APPFONT ( 28 , 12 ) ; @@ -704,6 +742,7 @@ TabPage TP_TABLE_TEXTFLOW }; ListBox LB_TEXTDIRECTION { + HelpID = "sw:ListBox:TP_TABLE_TEXTFLOW:LB_TEXTDIRECTION"; Pos = MAP_APPFONT ( 85 , 130 ) ; Size = MAP_APPFONT ( 163 , 50 ) ; DropDown = TRUE; @@ -730,6 +769,7 @@ TabPage TP_TABLE_TEXTFLOW }; ListBox LB_VERTORIENT { + HelpID = "sw:ListBox:TP_TABLE_TEXTFLOW:LB_VERTORIENT"; Pos = MAP_APPFONT ( 85 , 162 ) ; Size = MAP_APPFONT ( 61 , 50 ) ; DropDown = TRUE; diff --git a/sw/source/ui/table/tautofmt.src b/sw/source/ui/table/tautofmt.src index ab314e0932..ec6eaad812 100644 --- a/sw/source/ui/table/tautofmt.src +++ b/sw/source/ui/table/tautofmt.src @@ -43,6 +43,7 @@ ModalDialog DLG_AUTOFMT_TABLE }; ListBox LB_FORMAT { + HelpID = "sw:ListBox:DLG_AUTOFMT_TABLE:LB_FORMAT"; Border = TRUE ; Pos = MAP_APPFONT ( 12 , 14 ) ; Size = MAP_APPFONT ( 65 , 100 ) ; @@ -56,6 +57,7 @@ ModalDialog DLG_AUTOFMT_TABLE }; CheckBox BTN_NUMFORMAT { + HelpID = "sw:CheckBox:DLG_AUTOFMT_TABLE:BTN_NUMFORMAT"; Hide = TRUE ; Pos = MAP_APPFONT ( 12 , 131 ) ; Size = MAP_APPFONT ( 60 , 10 ) ; @@ -64,6 +66,7 @@ ModalDialog DLG_AUTOFMT_TABLE }; CheckBox BTN_BORDER { + HelpID = "sw:CheckBox:DLG_AUTOFMT_TABLE:BTN_BORDER"; Hide = TRUE ; Pos = MAP_APPFONT ( 12 , 147 ) ; Size = MAP_APPFONT ( 60 , 10 ) ; @@ -72,6 +75,7 @@ ModalDialog DLG_AUTOFMT_TABLE }; CheckBox BTN_FONT { + HelpID = "sw:CheckBox:DLG_AUTOFMT_TABLE:BTN_FONT"; Hide = TRUE ; Pos = MAP_APPFONT ( 85 , 131 ) ; Size = MAP_APPFONT ( 60 , 10 ) ; @@ -80,6 +84,7 @@ ModalDialog DLG_AUTOFMT_TABLE }; CheckBox BTN_PATTERN { + HelpID = "sw:CheckBox:DLG_AUTOFMT_TABLE:BTN_PATTERN"; Hide = TRUE ; Pos = MAP_APPFONT ( 85 , 147 ) ; Size = MAP_APPFONT ( 60 , 10 ) ; @@ -88,6 +93,7 @@ ModalDialog DLG_AUTOFMT_TABLE }; CheckBox BTN_ALIGNMENT { + HelpID = "sw:CheckBox:DLG_AUTOFMT_TABLE:BTN_ALIGNMENT"; Hide = TRUE ; Pos = MAP_APPFONT ( 150 , 131 ) ; Size = MAP_APPFONT ( 60 , 10 ) ; @@ -116,6 +122,7 @@ ModalDialog DLG_AUTOFMT_TABLE }; MoreButton BTN_MORE { + HelpID = "sw:MoreButton:DLG_AUTOFMT_TABLE:BTN_MORE"; Pos = MAP_APPFONT ( 255 , 101 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "~More" ; @@ -125,6 +132,7 @@ ModalDialog DLG_AUTOFMT_TABLE }; PushButton BTN_ADD { + HelpID = "sw:PushButton:DLG_AUTOFMT_TABLE:BTN_ADD"; Pos = MAP_APPFONT ( 255 , 64 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "~Add" ; @@ -132,6 +140,7 @@ ModalDialog DLG_AUTOFMT_TABLE }; PushButton BTN_REMOVE { + HelpID = "sw:PushButton:DLG_AUTOFMT_TABLE:BTN_REMOVE"; Pos = MAP_APPFONT ( 255 , 81 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; Text [ en-US ] = "~Delete" ; @@ -139,6 +148,7 @@ ModalDialog DLG_AUTOFMT_TABLE }; PushButton BTN_RENAME { + HelpID = "sw:PushButton:DLG_AUTOFMT_TABLE:BTN_RENAME"; Pos = MAP_APPFONT ( 255 , 123 ) ; Size = MAP_APPFONT ( 50 , 14 ) ; TabStop = TRUE ; @@ -219,6 +229,7 @@ ModalDialog DLG_SWDLG_STRINPUT HelpID = HID_SWDLG_STRINPUT ; Edit ED_INPUT { + HelpID = "sw:Edit:DLG_SWDLG_STRINPUT:ED_INPUT"; Border = TRUE ; Pos = MAP_APPFONT ( 6 , 24 ) ; Size = MAP_APPFONT ( 104 , 12 ) ; diff --git a/sw/source/ui/uiview/pview.cxx b/sw/source/ui/uiview/pview.cxx index a633abb3e9..f798aafcb1 100755..100644 --- a/sw/source/ui/uiview/pview.cxx +++ b/sw/source/ui/uiview/pview.cxx @@ -28,8 +28,6 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" - - #include <sfx2/objface.hxx> #include <vcl/timer.hxx> #include <vcl/field.hxx> @@ -54,10 +52,7 @@ #include <svx/svdview.hxx> #include <svx/dlgutil.hxx> #include <svx/zoomslideritem.hxx> -#ifndef _SVX_SVXIDS_HRC //autogen #include <svx/svxids.hrc> -#endif - #include <swwait.hxx> #include <globdoc.hxx> @@ -73,27 +68,16 @@ #include <view.hxx> #include <textsh.hxx> #include <scroll.hxx> -#include <swprtopt.hxx> +#include <prtopt.hxx> #include <docstat.hxx> #include <usrpref.hxx> #include <viewfunc.hxx> - -#ifndef _HELPID_H #include <helpid.h> -#endif -#ifndef _CMDID_H #include <cmdid.h> -#endif -#ifndef _GLOBALS_HRC #include <globals.hrc> -#endif -#ifndef _POPUP_HRC #include <popup.hrc> -#endif -#ifndef _PVIEW_HRC #include <pview.hrc> -#endif #define SwPagePreView #include <sfx2/msg.hxx> @@ -105,6 +89,7 @@ #include <svx/dialogs.hrc> #include <vos/mutex.hxx> + using namespace ::com::sun::star; @@ -1292,8 +1277,7 @@ void SwPagePreView::Init(const SwViewOption * pPrefs) GetViewShell()->ApplyAccessiblityOptions(SW_MOD()->GetAccessibilityOptions()); // OD 09.01.2003 #i6467# - adjust view shell option to the same as for print - SwPrtOptions aPrintOptions( GetViewFrame()->GetObjectShell()->GetTitle(0) ); - aPrintOptions.MakeOptions( false ); + SwPrintData const aPrintOptions = *SW_MOD()->GetPrtOptions(false); GetViewShell()->AdjustOptionsForPagePreview( aPrintOptions ); IDocumentSettingAccess* pIDSA = pESh->getIDocumentSettingAccess(); @@ -1451,9 +1435,9 @@ int SwPagePreView::_CreateScrollbar( BOOL bHori ) { pPageUpBtn = new ImageButton(pMDI, SW_RES( BTN_PAGEUP ) ); - pPageUpBtn->SetHelpId(FN_PAGEUP); + pPageUpBtn->SetHelpId(GetStaticInterface()->GetSlot(FN_PAGEUP)->GetCommand()); pPageDownBtn = new ImageButton(pMDI, SW_RES( BTN_PAGEDOWN ) ); - pPageDownBtn->SetHelpId(FN_PAGEDOWN); + pPageDownBtn->SetHelpId(GetStaticInterface()->GetSlot(FN_PAGEDOWN)->GetCommand()); Link aLk( LINK( this, SwPagePreView, BtnPage ) ); pPageUpBtn->SetClickHdl( aLk ); pPageDownBtn->SetClickHdl( aLk ); diff --git a/sw/source/ui/uiview/pview.src b/sw/source/ui/uiview/pview.src index 4b97c83c43..99b325b3ce 100755..100644 --- a/sw/source/ui/uiview/pview.src +++ b/sw/source/ui/uiview/pview.src @@ -54,6 +54,7 @@ ModalDialog DLG_PAGEPREVIEW_ZOOM }; NumericField ED_COL { + HelpID = "sw:NumericField:DLG_PAGEPREVIEW_ZOOM:ED_COL"; Border = TRUE ; Size = MAP_APPFONT ( 28 , 12 ) ; Pos = MAP_APPFONT ( 48 , 34 ) ; @@ -69,6 +70,7 @@ ModalDialog DLG_PAGEPREVIEW_ZOOM }; NumericField ED_ROW { + HelpID = "sw:NumericField:DLG_PAGEPREVIEW_ZOOM:ED_ROW"; Border = TRUE ; Pos = MAP_APPFONT ( 48 , 13 ) ; Size = MAP_APPFONT ( 28 , 12 ) ; @@ -106,92 +108,4 @@ String RID_PVIEW_TOOLBOX { Text [ en-US ] = "Page Preview" ; }; -ToolBox RID_PVIEW_TOOLBOX -{ - Border = TRUE ; - SVLook = TRUE ; - Dockable = TRUE ; - Moveable = TRUE ; - Sizeable = TRUE ; - Closeable = TRUE ; - Zoomable = TRUE ; - LineSpacing = TRUE ; - HideWhenDeactivate = TRUE ; - Customize = TRUE ; - HelpID = HID_PVIEW_TOOLBOX ; - ItemList = - { - ToolBoxItem - { - Identifier = FN_PAGEUP ; - HelpID = FN_PAGEUP ; - }; - ToolBoxItem - { - Identifier = FN_PAGEDOWN ; - HelpID = FN_PAGEDOWN ; - }; - ToolBoxItem - { - Identifier = FN_START_OF_DOCUMENT ; - HelpID = FN_START_OF_DOCUMENT ; - }; - ToolBoxItem - { - Identifier = FN_END_OF_DOCUMENT ; - HelpID = FN_END_OF_DOCUMENT ; - }; - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - ToolBoxItem - { - Identifier = FN_SHOW_TWO_PAGES ; - HelpID = FN_SHOW_TWO_PAGES ; - }; - ToolBoxItem - { - Identifier = FN_SHOW_MULTIPLE_PAGES ; - HelpID = FN_SHOW_MULTIPLE_PAGES ; - DropDown = TRUE; - }; - ToolBoxItem - { - Identifier = FN_SHOW_BOOKVIEW ; - HelpID = FN_SHOW_BOOKVIEW ; - }; - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - ToolBoxItem - { - Identifier = SID_ZOOM_OUT; - HelpID = SID_ZOOM_OUT ; - }; - ToolBoxItem - { - Identifier = SID_ZOOM_IN; - HelpID = SID_ZOOM_IN ; - }; - ToolBoxItem - { - Identifier = FN_PREVIEW_ZOOM; - HelpID = HID_PREVIEW_ZOOM ; - }; - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - ToolBoxItem - { - Identifier = SID_WIN_FULLSCREEN ; - HelpID = SID_WIN_FULLSCREEN ; - }; - ToolBoxItem - { - Identifier = FN_PRINT_PAGEPREVIEW ; - HelpID = FN_PRINT_PAGEPREVIEW ; - }; - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - ToolBoxItem - { - Identifier = FN_CLOSE_PAGEPREVIEW; - HelpID = SID_PRINTPREVIEW; - }; - }; - Scroll = TRUE ; -}; diff --git a/sw/source/ui/uiview/swcli.cxx b/sw/source/ui/uiview/swcli.cxx index 996ab9b235..f3e8b6f2c5 100644 --- a/sw/source/ui/uiview/swcli.cxx +++ b/sw/source/ui/uiview/swcli.cxx @@ -27,16 +27,17 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" -#include <com/sun/star/embed/NoVisualAreaSizeException.hpp> +#include <com/sun/star/embed/NoVisualAreaSizeException.hpp> #include <wrtsh.hxx> +#include <doc.hxx> #include <swtypes.hxx> -#ifndef _VIEW_HXX #include <view.hxx> -#endif #include <edtwin.hxx> #include <swcli.hxx> +#include <cmdid.h> +#include <cfgitems.hxx> #include <toolkit/helper/vclunohelper.hxx> @@ -169,3 +170,18 @@ void SwOleClient::MakeVisible() const SwWrtShell &rSh = ((SwView*)GetViewShell())->GetWrtShell(); rSh.MakeObjVisible( GetObject() ); } + +// --> #i972# +void SwOleClient::FormatChanged() +{ + const uno::Reference < embed::XEmbeddedObject >& xObj( GetObject() ); + SwView * pView = dynamic_cast< SwView * >( GetViewShell() ); + if ( pView && xObj.is() && SotExchange::IsMath( xObj->getClassID() ) ) + { + SwWrtShell & rWrtSh = pView->GetWrtShell(); + if (rWrtSh.GetDoc()->get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT )) + rWrtSh.AlignFormulaToBaseline( xObj ); + } +} +// <-- + diff --git a/sw/source/ui/uiview/view.cxx b/sw/source/ui/uiview/view.cxx index 8d750d9234..1722c0ac13 100644 --- a/sw/source/ui/uiview/view.cxx +++ b/sw/source/ui/uiview/view.cxx @@ -94,7 +94,6 @@ #include <frmui.hrc> #include <cfgitems.hxx> #include <prtopt.hxx> -#include <swprtopt.hxx> #include <linguistic/lngprops.hxx> #include <editeng/unolingu.hxx> //#include <sfx2/app.hxx> @@ -1912,8 +1911,7 @@ SfxObjectShellRef & SwView::GetOrCreateTmpSelectionDoc() if (!rxTmpDoc.Is()) { SwXTextView *pImpl = GetViewImpl()->GetUNOObject_Impl(); - rxTmpDoc = pImpl->BuildTmpSelectionDoc( - GetViewImpl()->GetEmbeddedObjRef() ); + rxTmpDoc = pImpl->BuildTmpSelectionDoc(); } return rxTmpDoc; } @@ -1927,17 +1925,12 @@ void SwView::AddTransferable(SwTransferable& rTransferable) /* --------------------------------------------------*/ -void SwPrtOptions::MakeOptions( BOOL bWeb ) -{ - *this = *SW_MOD()->GetPrtOptions(bWeb); - - nCopyCount = 1; - bCollate = FALSE; - bPrintSelection = FALSE; - bJobStartet = FALSE; +namespace sw { - aMulti.SetTotalRange( Range( 0, RANGE_MAX ) ); - aMulti.SelectAll(); - aMulti.Select( 0, FALSE ); +void InitPrintOptionsFromApplication(SwPrintData & o_rData, bool const bWeb) +{ + o_rData = *SW_MOD()->GetPrtOptions(bWeb); } +} // namespace sw + diff --git a/sw/source/ui/uiview/view.src b/sw/source/ui/uiview/view.src index 233664b509..e006ee71ae 100644 --- a/sw/source/ui/uiview/view.src +++ b/sw/source/ui/uiview/view.src @@ -196,160 +196,6 @@ String MN_SRCVIEW_POPUPMENU Text [ en-US ] = "HTML source" ; }; -ToolBox RID_TOOLS_TOOLBOX -{ - HelpID = HID_TOOLS_TOOLBOX ; - Border = TRUE ; - SVLook = TRUE ; - Dockable = TRUE ; - Moveable = TRUE ; - Sizeable = TRUE ; - Closeable = TRUE ; - Zoomable = TRUE ; - LineSpacing = TRUE ; - HideWhenDeactivate = TRUE ; - Customize = TRUE ; - MenuStrings = TRUE ; - Scroll = TRUE ; - Align = BOXALIGN_LEFT ; - Hide = TRUE ; - ItemList = - { - ToolBoxItem - { - Identifier = FN_INSERT_CTRL ; - HelpID = HID_INSERT_CTRL ; - DropDown = TRUE ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = FN_INSERT_FIELD_CTRL ; - HelpID = HID_INSERT_FIELD_CTRL ; - DropDown = TRUE ; - }; - ToolBoxItem - { - Identifier = FN_INSERT_OBJ_CTRL ; - HelpID = HID_INSERT_OBJ_CTRL ; - DropDown = TRUE ; - }; - ToolBoxItem - { - ITEM_TOOLBAR_INSERT_DRAW - }; - ToolBoxItem - { - ITEM_FORM_CONFIG - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = FN_GLOSSARY_DLG ; - HelpID = FN_GLOSSARY_DLG ; - DropDown = TRUE ; - }; - ToolBoxItem - { - Identifier = FN_INSERT_CAPTION; - HelpID = FN_INSERT_CAPTION ; - Hide = TRUE ; - }; - ToolBoxItem - { - Identifier = FN_INSERT_IDX_ENTRY_DLG; - HelpId = FN_INSERT_IDX_ENTRY_DLG; - Hide = TRUE; - }; - ToolBoxItem - { - Identifier = FN_INSERT_REF_FIELD; - HelpID = FN_INSERT_REF_FIELD ; - Hide = TRUE ; - }; - ToolBoxItem - { - Identifier = FN_SHADOWCURSOR ; - HelpID = FN_SHADOWCURSOR ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = FN_SPELL_GRAMMAR_DIALOG; - HelpID = FN_SPELL_GRAMMAR_DIALOG; - }; - ToolBoxItem - { - ITEM_TOOLBAR_AUTOSPELL_CHECK - }; - ToolBoxItem - { - Identifier = FN_HYPHENATE_OPT_DLG; - HelpID = FN_HYPHENATE_OPT_DLG; - Hide = TRUE; - }; - ToolBoxItem - { - Identifier = SID_THESAURUS; - HelpID = SID_THESAURUS; - Hide = TRUE; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = SID_SEARCH_DLG ; - HelpID = SID_SEARCH_DLG ; - }; - ToolBoxItem - { - Identifier = SID_VIEW_DATA_SOURCE_BROWSER ; - HelpID = SID_VIEW_DATA_SOURCE_BROWSER ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = SID_ATTR_ZOOM; - HelpID = SID_ATTR_ZOOM ; - Hide = TRUE; - }; - ToolBoxItem - { - Identifier = FN_VIEW_META_CHARS ; - HelpID = FN_VIEW_META_CHARS ; - }; - ToolBoxItem - { - Identifier = FN_VIEW_FIELDNAME ; - HelpID = FN_VIEW_FIELDNAME ; - Hide = TRUE; - }; - ToolBoxItem - { - Identifier = FN_VIEW_GRAPHIC ; - HelpID = FN_VIEW_GRAPHIC ; - }; - ToolBoxItem - { - Identifier = SID_BROWSER_MODE ; - HelpID = SID_BROWSER_MODE ; - }; - }; -}; Menu MN_SRCVIEW_POPUPMENU { ItemList = diff --git a/sw/source/ui/uiview/viewdlg2.cxx b/sw/source/ui/uiview/viewdlg2.cxx index 27f017c517..8388df1566 100644 --- a/sw/source/ui/uiview/viewdlg2.cxx +++ b/sw/source/ui/uiview/viewdlg2.cxx @@ -31,7 +31,7 @@ #include <sfx2/request.hxx> #include <sfx2/viewfrm.hxx> - +#include <sfx2/objface.hxx> #include <fldmgr.hxx> #include <expfld.hxx> @@ -92,7 +92,7 @@ void SwView::ExecDlgExt(SfxRequest &rReq) pMDI, *pWrtShell, TRUE ); DBG_ASSERT(pDlg, "Dialogdiet fail!"); - pDlg->SetHelpId(FN_EDIT_FOOTNOTE); + pDlg->SetHelpId(GetStaticInterface()->GetSlot(FN_EDIT_FOOTNOTE)->GetCommand()); pDlg->SetText( SW_RESSTR(STR_EDIT_FOOTNOTE) ); pDlg->Execute(); delete pDlg; diff --git a/sw/source/ui/uiview/viewprt.cxx b/sw/source/ui/uiview/viewprt.cxx index 88ad18947b..45e9272250 100644 --- a/sw/source/ui/uiview/viewprt.cxx +++ b/sw/source/ui/uiview/viewprt.cxx @@ -70,7 +70,6 @@ #include <docsh.hxx> #include <viewopt.hxx> #include <prtopt.hxx> -#include <swprtopt.hxx> #include <fontcfg.hxx> #include <cfgitems.hxx> #include <dbmgr.hxx> diff --git a/sw/source/ui/uno/SwXDocumentSettings.cxx b/sw/source/ui/uno/SwXDocumentSettings.cxx index 36b7d7afd6..b19a36cba5 100755..100644 --- a/sw/source/ui/uno/SwXDocumentSettings.cxx +++ b/sw/source/ui/uno/SwXDocumentSettings.cxx @@ -123,7 +123,8 @@ enum SwDocumentSettingsPropertyHandles // --> OD 2008-06-05 #i89181# HANDLE_TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST, // <-- - HANDLE_MODIFYPASSWORDINFO + HANDLE_MODIFYPASSWORDINFO, + HANDLE_MATH_BASELINE_ALIGNMENT }; MasterPropertySetInfo * lcl_createSettingsInfo() @@ -178,6 +179,7 @@ MasterPropertySetInfo * lcl_createSettingsInfo() // --> OD 2008-06-05 #i89181# { RTL_CONSTASCII_STRINGPARAM("TabAtLeftIndentForParagraphsInList"), HANDLE_TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST, CPPUTYPE_BOOLEAN, 0, 0}, { RTL_CONSTASCII_STRINGPARAM("ModifyPasswordInfo"), HANDLE_MODIFYPASSWORDINFO, CPPUTYPE_PROPERTYVALUE, 0, 0}, + { RTL_CONSTASCII_STRINGPARAM("MathBaselineAlignment"), HANDLE_MATH_BASELINE_ALIGNMENT, CPPUTYPE_BOOLEAN, 0, 0}, /* * As OS said, we don't have a view when we need to set this, so I have to @@ -686,6 +688,12 @@ void SwXDocumentSettings::_setSingleValue( const comphelper::PropertyInfo & rInf uno::Reference< uno::XInterface >() ); } break; + case HANDLE_MATH_BASELINE_ALIGNMENT: + { + sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); + mpDoc->set( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT, bTmp ); + } + break; default: throw UnknownPropertyException(); } @@ -1018,6 +1026,12 @@ void SwXDocumentSettings::_getSingleValue( const comphelper::PropertyInfo & rInf rValue <<= mpDocSh->GetModifyPasswordInfo(); } break; + case HANDLE_MATH_BASELINE_ALIGNMENT: + { + sal_Bool bTmp = mpDoc->get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT ); + rValue.setValue( &bTmp, ::getBooleanCppuType() ); + } + break; default: throw UnknownPropertyException(); diff --git a/sw/source/ui/uno/unomod.cxx b/sw/source/ui/uno/unomod.cxx index 50c19caaac..f5da10cb6f 100644 --- a/sw/source/ui/uno/unomod.cxx +++ b/sw/source/ui/uno/unomod.cxx @@ -52,7 +52,7 @@ #include <comphelper/ChainablePropertySetInfo.hxx> #include <edtwin.hxx> #include <rtl/ustrbuf.hxx> - +#include <tools/urlobj.hxx> using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -799,14 +799,12 @@ void SwXViewSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, c OUString sHelpURL; if ( ! ( rValue >>= sHelpURL ) ) throw IllegalArgumentException(); - SwEditWin &rEditWin = pView->GetEditWin(); - OUString sPrefix = sHelpURL.copy ( 0, 4 ); - // Make sure we have a valid string...should be in the format HID:12345 - if ( ! sPrefix.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "HID:" ) ) ) + + INetURLObject aHID( sHelpURL ); + if ( aHID.GetProtocol() == INET_PROT_HID ) + pView->GetEditWin().SetHelpId( rtl::OUStringToOString( aHID.GetURLPath(), RTL_TEXTENCODING_UTF8 ) ); + else throw IllegalArgumentException (); - OUString sNumber = sHelpURL.copy ( 4 ); - sal_uInt32 nHelpId = sNumber.toInt32(); - rEditWin.SetHelpId ( nHelpId ); } else throw UnknownPropertyException(); @@ -918,7 +916,7 @@ void SwXViewSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, u case HANDLE_VIEWSET_TABSTOPS : bBoolVal = mpConstViewOption->IsTab(sal_True); break; case HANDLE_VIEWSET_BREAKS : bBoolVal = mpConstViewOption->IsLineBreak(sal_True); break; case HANDLE_VIEWSET_HIDDEN_TEXT : bBoolVal = mpConstViewOption->IsShowHiddenField(); break; - case HANDLE_VIEWSET_HIDDEN_CHARACTERS : bBoolVal = mpConstViewOption->IsShowHiddenChar(); break; + case HANDLE_VIEWSET_HIDDEN_CHARACTERS : bBoolVal = mpConstViewOption->IsShowHiddenChar(sal_True); break; case HANDLE_VIEWSET_HIDDEN_PARAGRAPHS : bBoolVal = mpConstViewOption->IsShowHiddenPara(); break; case HANDLE_VIEWSET_TABLE_BOUNDARIES : bBoolVal = SwViewOption::IsTableBoundaries(); break; case HANDLE_VIEWSET_TEXT_BOUNDARIES : bBoolVal = SwViewOption::IsDocBoundaries(); break; @@ -985,9 +983,9 @@ void SwXViewSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, u { bBool = sal_False; OUStringBuffer sHelpURL; - sHelpURL.appendAscii ( "HID:" ); + sHelpURL.appendAscii ( INET_HID_SCHEME ); SwEditWin &rEditWin = pView->GetEditWin(); - sHelpURL.append ( static_cast < sal_Int32 > ( rEditWin.GetHelpId() ) ); + sHelpURL.append( rtl::OStringToOUString( rEditWin.GetHelpId(), RTL_TEXTENCODING_UTF8 ) ); rValue <<= sHelpURL.makeStringAndClear(); } else diff --git a/sw/source/ui/uno/unotxdoc.cxx b/sw/source/ui/uno/unotxdoc.cxx index 8dd657d3ee..7752e74d28 100644 --- a/sw/source/ui/uno/unotxdoc.cxx +++ b/sw/source/ui/uno/unotxdoc.cxx @@ -47,7 +47,7 @@ #include <srcview.hxx> #include <viewsh.hxx> #include <pvprtdat.hxx> -#include <swprtopt.hxx> +#include <printdata.hxx> #include <svl/stritem.hxx> #include <unotxdoc.hxx> #include <svl/numuno.hxx> @@ -83,7 +83,6 @@ #include <globals.hrc> #include <unomid.h> #include <unotools/printwarningoptions.hxx> - #include <com/sun/star/util/SearchOptions.hpp> #include <com/sun/star/lang/ServiceNotRegisteredException.hpp> #include <com/sun/star/lang/DisposedException.hpp> @@ -948,7 +947,7 @@ SwUnoCrsr* SwXTextDocument::FindAny(const Reference< util::XSearchDescriptor > RES_CHRATR_BEGIN, RES_CHRATR_END-1, RES_PARATR_BEGIN, RES_PARATR_END-1, RES_FRMATR_BEGIN, RES_FRMATR_END-1, - RES_TXTATR_INETFMT, RES_TXTATR_INETFMT, + RES_TXTATR_INETFMT, RES_TXTATR_CHARFMT, 0); pSearch->FillSearchItemSet(aSearch); BOOL bCancel; @@ -2716,14 +2715,15 @@ sal_Int32 SAL_CALL SwXTextDocument::getRendererCount( m_pRenderData->ViewOptionAdjustStart( *pWrtShell, *pWrtShell->GetViewOptions() ); } - m_pRenderData->SetSwPrtOptions( new SwPrtOptions( C2U( bIsPDFExport ? "PDF export" : "Printing" ) ) ); + m_pRenderData->SetSwPrtOptions( new SwPrintData ); m_pRenderData->MakeSwPrtOptions( m_pRenderData->GetSwPrtOptionsRef(), pRenderDocShell, m_pPrintUIOptions, m_pRenderData, bIsPDFExport ); - + if (pView->IsA(aSwViewTypeId)) { // PDF export should not make use of the SwPrtOptions - const SwPrtOptions *pPrtOptions = bIsPDFExport? NULL : m_pRenderData->GetSwPrtOptions(); + const SwPrintData *pPrtOptions = (bIsPDFExport) + ? NULL : m_pRenderData->GetSwPrtOptions(); m_pRenderData->ViewOptionAdjust( pPrtOptions ); } @@ -3080,19 +3080,20 @@ void SAL_CALL SwXTextDocument::render( SwWrtShell* pWrtShell = pView->IsA(aSwViewTypeId) ? ((SwView*)pView)->GetWrtShellPtr() : 0; - + if (bIsPDFExport && bFirstPage && pWrtShell) { SwEnhancedPDFExportHelper aHelper( *pWrtShell, *pOut, aPageRange, bIsSkipEmptyPages, sal_False ); } // <-- - - const SwPrtOptions &rSwPrtOptions = *m_pRenderData->GetSwPrtOptions(); + + SwPrintData const& rSwPrtOptions = + *m_pRenderData->GetSwPrtOptions(); if (bPrintProspect) pVwSh->PrintProspect( pOut, rSwPrtOptions, nRenderer ); else // normal printing and PDF export pVwSh->PrintOrPDFExport( pOut, rSwPrtOptions, nRenderer ); - + // --> FME 2004-10-08 #i35176# // // After printing the last page, we take care for the links coming @@ -4110,8 +4111,8 @@ SwViewOptionAdjust_Impl::~SwViewOptionAdjust_Impl() } -void SwViewOptionAdjust_Impl::AdjustViewOptions( - const SwPrtOptions *pPrtOptions ) +void +SwViewOptionAdjust_Impl::AdjustViewOptions(SwPrintData const*const pPrtOptions) { // to avoid unnecessary reformatting the view options related to the content // below should only change if necessary, that is if respective content is present diff --git a/sw/source/ui/uno/unotxvw.cxx b/sw/source/ui/uno/unotxvw.cxx index 8ba286f926..3ec786f45d 100644 --- a/sw/source/ui/uno/unotxvw.cxx +++ b/sw/source/ui/uno/unotxvw.cxx @@ -903,14 +903,17 @@ void SAL_CALL SwXTextView::setRubyList( /*-- 29.12.02 15:45:29--------------------------------------------------- -----------------------------------------------------------------------*/ -SfxObjectShellRef SwXTextView::BuildTmpSelectionDoc( SfxObjectShellRef& /*rRef*/ ) +SfxObjectShellRef SwXTextView::BuildTmpSelectionDoc() { SwWrtShell& rOldSh = m_pView->GetWrtShell(); SfxPrinter *pPrt = rOldSh.getIDocumentDeviceAccess()->getPrinter( false ); SwDocShell* pDocSh; SfxObjectShellRef xDocSh( pDocSh = new SwDocShell( /*pPrtDoc, */SFX_CREATE_MODE_STANDARD ) ); xDocSh->DoInitNew( 0 ); - rOldSh.FillPrtDoc(pDocSh->GetDoc(), pPrt); + SwDoc *const pTempDoc( pDocSh->GetDoc() ); + // #i103634#, #i112425#: do not expand numbering and fields on PDF export + pTempDoc->SetClipBoard(true); + rOldSh.FillPrtDoc(pTempDoc, pPrt); SfxViewFrame* pDocFrame = SfxViewFrame::LoadHiddenDocument( *xDocSh, 0 ); SwView* pDocView = (SwView*) pDocFrame->GetViewShell(); pDocView->AttrChangedNotify( &pDocView->GetWrtShell() );//Damit SelectShell gerufen wird. diff --git a/sw/source/ui/utlui/content.cxx b/sw/source/ui/utlui/content.cxx index 418d9ace33..e6c98ed02e 100644 --- a/sw/source/ui/utlui/content.cxx +++ b/sw/source/ui/utlui/content.cxx @@ -952,6 +952,7 @@ SwContentTree::SwContentTree(Window* pParent, const ResId& rResId) : aUpdTimer.SetTimeout(1000); Clear(); EnableContextMenuHandling(); + SetStyle( GetStyle() | WB_QUICK_SEARCH ); } /*************************************************************************** diff --git a/sw/source/ui/utlui/glbltree.cxx b/sw/source/ui/utlui/glbltree.cxx index d4e5463790..a118ca13ab 100644 --- a/sw/source/ui/utlui/glbltree.cxx +++ b/sw/source/ui/utlui/glbltree.cxx @@ -117,7 +117,7 @@ using ::rtl::OUString; #define GLBL_TABPOS_SUB 5 const SfxObjectShell* SwGlobalTree::pShowShell = 0; -static const USHORT __FAR_DATA aHelpForMenu[] = +static const char* __FAR_DATA aHelpForMenu[] = { 0, // HID_GLBLTREE_UPDATE, //CTX_UPDATE diff --git a/sw/source/ui/utlui/gloslst.src b/sw/source/ui/utlui/gloslst.src index 1ccf855ffe..db34b8c5ae 100644 --- a/sw/source/ui/utlui/gloslst.src +++ b/sw/source/ui/utlui/gloslst.src @@ -68,6 +68,7 @@ ModalDialog DLG_GLOSSARY_DECIDE_DLG }; ListBox LB_LIST { + HelpID = "sw:ListBox:DLG_GLOSSARY_DECIDE_DLG:LB_LIST"; Pos = MAP_APPFONT ( 12 , 15 ) ; Size = MAP_APPFONT ( 81 , 40 ) ; TabStop = TRUE ; diff --git a/sw/source/ui/utlui/initui.cxx b/sw/source/ui/utlui/initui.cxx index 65731de981..c4147c3910 100644 --- a/sw/source/ui/utlui/initui.cxx +++ b/sw/source/ui/utlui/initui.cxx @@ -260,7 +260,8 @@ ImpAutoFmtNameListLoader::ImpAutoFmtNameListLoader( SvStringsDtor& rLst ) p->SearchAndReplace(C2S("%1"), C2S(",,")); p->SearchAndReplace(C2S("%2"), C2S("''")); #else - const LocaleDataWrapper& rLclD = SvtSysLocale().GetLocaleData(); + const SvtSysLocale aSysLocale; + const LocaleDataWrapper& rLclD = aSysLocale.GetLocaleData(); //unter richtigen Betriebssystemen funktioniert es auch so p->SearchAndReplace(C2S("%1"), rLclD.getDoubleQuotationMarkStart()); p->SearchAndReplace(C2S("%2"), rLclD.getDoubleQuotationMarkEnd()); diff --git a/sw/source/ui/utlui/navipi.cxx b/sw/source/ui/utlui/navipi.cxx index 55276b7e33..9f27fd34e3 100644 --- a/sw/source/ui/utlui/navipi.cxx +++ b/sw/source/ui/utlui/navipi.cxx @@ -429,14 +429,17 @@ IMPL_LINK( SwNavigationPI, ToolBoxDropdownClickHdl, ToolBox*, pBox ) case FN_DROP_REGION: { + static const char* aHIDs[] = + { + HID_NAVI_DRAG_HYP, + HID_NAVI_DRAG_LINK, + HID_NAVI_DRAG_COPY, + }; PopupMenu *pMenu = new PopupMenu; for (USHORT i = 0; i <= REGION_MODE_EMBEDDED; i++) { pMenu->InsertItem( i + 1, aContextArr[i] ); - pMenu->SetHelpId(i + 1, HID_NAVI_DRAG_HYP + i); - /*HID_NAVI_DRAG_HYP - HID_NAVI_DRAG_LINK - HID_NAVI_DRAG_COPY */ + pMenu->SetHelpId(i + 1, aHIDs[i]); } pMenu->CheckItem( nRegionMode + 1 ); pMenu->SetSelectHdl(LINK(this, SwNavigationPI, MenuSelectHdl)); @@ -865,7 +868,7 @@ SwNavigationPI::SwNavigationPI( SfxBindings* _pBindings, ((SfxDockingWindow*)pParent)->SetOutputSizePixel(aMinSize); aContentTree.SetPosSizePixel( 0, nListboxYPos, 0, 0, WINDOW_POSSIZE_Y ); - aContentTree.SetWindowBits( WB_HASBUTTONS|WB_HASBUTTONSATROOT| + aContentTree.SetStyle( aContentTree.GetStyle()|WB_HASBUTTONS|WB_HASBUTTONSATROOT| WB_CLIPCHILDREN|WB_HSCROLL|WB_FORCE_MAKEVISIBLE ); aContentTree.SetSpaceBetweenEntries(3); aContentTree.SetSelectionMode( SINGLE_SELECTION ); @@ -879,7 +882,7 @@ SwNavigationPI::SwNavigationPI( SfxBindings* _pBindings, // TreeListBox fuer Globaldokument aGlobalTree.SetPosSizePixel( 0, nListboxYPos, 0, 0, WINDOW_POSSIZE_Y ); aGlobalTree.SetSelectionMode( MULTIPLE_SELECTION ); - aGlobalTree.SetWindowBits( WB_HASBUTTONS|WB_HASBUTTONSATROOT| + aGlobalTree.SetStyle( aGlobalTree.GetStyle()|WB_HASBUTTONS|WB_HASBUTTONSATROOT| WB_CLIPCHILDREN|WB_HSCROLL ); Size aGlblSize(aGlobalToolBox.CalcWindowSizePixel()); aGlobalToolBox.SetSizePixel(aGlblSize); diff --git a/sw/source/ui/utlui/uitool.cxx b/sw/source/ui/utlui/uitool.cxx index c9e10d69c0..fb28ef5000 100644 --- a/sw/source/ui/utlui/uitool.cxx +++ b/sw/source/ui/utlui/uitool.cxx @@ -730,7 +730,8 @@ SwTwips GetTableWidth( SwFrmFmt* pFmt, SwTabCols& rCols, USHORT *pPercent, String GetAppLangDateTimeString( const DateTime& rDT ) { - const LocaleDataWrapper& rAppLclData = SvtSysLocale().GetLocaleData(); + const SvtSysLocale aSysLocale; + const LocaleDataWrapper& rAppLclData = aSysLocale.GetLocaleData(); String sRet( rAppLclData.getDate( rDT )); ( sRet += ' ' ) += rAppLclData.getTime( rDT, FALSE, FALSE ); return sRet; diff --git a/sw/source/ui/utlui/unotools.src b/sw/source/ui/utlui/unotools.src index aa4be8804c..c6a4443a39 100644 --- a/sw/source/ui/utlui/unotools.src +++ b/sw/source/ui/utlui/unotools.src @@ -44,6 +44,7 @@ ModalDialog DLG_RENAME_XNAMED }; Edit ED_NEW_NAME { + HelpID = "sw:Edit:DLG_RENAME_XNAMED:ED_NEW_NAME"; Pos = MAP_APPFONT ( 65 , 13 ) ; Size = MAP_APPFONT ( 87 , 12 ) ; Border = TRUE; diff --git a/sw/source/ui/web/web.src b/sw/source/ui/web/web.src index 08b6707962..b647d83311 100644 --- a/sw/source/ui/web/web.src +++ b/sw/source/ui/web/web.src @@ -65,124 +65,6 @@ String RID_WEBTOOLS_TOOLBOX { Text [ en-US ] = "Main Toolbar/Web" ; }; -ToolBox RID_WEBTOOLS_TOOLBOX -{ - HelpID = HID_WEBTOOLS_TOOLBOX ; - Border = TRUE ; - SVLook = TRUE ; - Dockable = TRUE ; - Moveable = TRUE ; - Sizeable = TRUE ; - Closeable = TRUE ; - Zoomable = TRUE ; - LineSpacing = TRUE ; - HideWhenDeactivate = TRUE ; - Customize = TRUE ; - MenuStrings = TRUE ; - Scroll = TRUE ; - Hide = TRUE ; - Align = BOXALIGN_LEFT ; - ItemList = - { - ToolBoxItem - { - Identifier = FN_INSERT_CTRL ; - HelpID = HID_INSERT_CTRL ; - DropDown = TRUE ; - }; - ToolBoxItem - { - Identifier = FN_INSERT_FIELD_CTRL ; - HelpID = HID_INSERT_FIELD_CTRL ; - DropDown = TRUE ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = SID_DRAW_TEXT_MARQUEE ; - HelpID = SID_DRAW_TEXT_MARQUEE ; - }; - ToolBoxItem - { - Identifier = SID_FM_CONFIG ; - HelpID = SID_FM_CONFIG; - DropDown = TRUE ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = FN_GLOSSARY_DLG ; - HelpID = FN_GLOSSARY_DLG ; - DropDown = TRUE ; - }; - ToolBoxItem - { - Identifier = FN_SPELL_GRAMMAR_DIALOG; - HelpID = FN_SPELL_GRAMMAR_DIALOG; - }; - ToolBoxItem - { - ITEM_TOOLBAR_AUTOSPELL_CHECK - }; - ToolBoxItem - { - Identifier = FN_HYPHENATE_OPT_DLG; - HelpID = FN_HYPHENATE_OPT_DLG; - Hide = TRUE; - }; - ToolBoxItem - { - Identifier = SID_THESAURUS; - HelpID = SID_THESAURUS; - Hide = TRUE; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = SID_SEARCH_DLG ; - HelpID = SID_SEARCH_DLG ; - }; - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - ToolBoxItem - { - Identifier = SID_ATTR_ZOOM; - HelpID = SID_ATTR_ZOOM ; - Hide = TRUE; - }; - ToolBoxItem - { - Identifier = FN_VIEW_META_CHARS ; - HelpID = FN_VIEW_META_CHARS ; - }; - ToolBoxItem - { - Identifier = FN_VIEW_GRAPHIC ; - HelpID = FN_VIEW_GRAPHIC ; - }; - ToolBoxItem - { - Identifier = FN_PRINT_LAYOUT ; - HelpID = FN_PRINT_LAYOUT ; - }; - ToolBoxItem - { - Identifier = SID_SOURCEVIEW ; - HelpID = HID_SOURCEVIEW ; - }; - }; -}; /************************************************************************* Textleiste *************************************************************************/ @@ -190,152 +72,18 @@ String RID_WEBTEXT_TOOLBOX { Text [ en-US ] = "Text Object Bar/Web" ; }; -ToolBox RID_WEBTEXT_TOOLBOX -{ - HelpID = HID_WEBTEXT_TOOLBOX ; - Border = TRUE ; - SVLook = TRUE ; - Dockable = TRUE ; - Moveable = TRUE ; - Sizeable = TRUE ; - Closeable = TRUE ; - Zoomable = TRUE ; - Hide = TRUE ; - HideWhenDeactivate = TRUE ; - LineSpacing = TRUE ; - Customize = TRUE ; - MenuStrings = TRUE ; - ItemList = - { - MN_TEMPLATE - MN_FONT - MN_TEXT1(TRUE) - MN_TEXT_LTR_RTL - MN_TEXT_LINESPACE - MN_TEXT2 - MN_TEXT_BACKGROUND - MN_TEXT_DIALOGS(TRUE) - }; - Scroll = TRUE ; -}; String RID_WEBFRAME_TOOLBOX { Text [ en-US ] = "Frame Object Bar/Web" ; }; -ToolBox RID_WEBFRAME_TOOLBOX -{ - HelpID = HID_WEBFRAME_TOOLBOX ; - Border = TRUE ; - SVLook = TRUE ; - Dockable = TRUE ; - Moveable = TRUE ; - Sizeable = TRUE ; - Closeable = TRUE ; - Zoomable = TRUE ; - Hide = TRUE ; - LineSpacing = TRUE ; - MenuStrings = TRUE ; - HideWhenDeactivate = TRUE ; - Customize = TRUE ; - ItemList = - { - MN_FRAME_WRAP_WEB - MN_FRAME1 - MN_FRAME3 - MN_LINESTYLE - ToolBoxItem - { - Type = TOOLBOXITEM_SEPARATOR ; - }; - MN_BACKGROUND_COLOR - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - MN_ATTRIBUTES_FRAME - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - MN_LAYER - ToolBoxItem - { - Identifier = FN_TOOL_ANKER ; - HelpID = FN_TOOL_ANKER ; - }; - }; - Scroll = TRUE ; -}; String RID_WEBGRAPHIC_TOOLBOX { Text [ en-US ] = "Graphics Object Bar/Web" ; }; -ToolBox RID_WEBGRAPHIC_TOOLBOX -{ - HelpID = HID_WEBGRAPHIC_TOOLBOX ; - Border = TRUE ; - SVLook = TRUE ; - Dockable = TRUE ; - Moveable = TRUE ; - Sizeable = TRUE ; - Closeable = TRUE ; - Zoomable = TRUE ; - LineSpacing = TRUE ; - HideWhenDeactivate = TRUE ; - MenuStrings = TRUE ; - Customize = TRUE ; - Hide = TRUE ; - ItemList = - { - MN_FRAME_WRAP_WEB - MN_FRAME1 - MN_FRAME3 - MN_LINESTYLE - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - MN_ATTRIBUTES_GRAFIK - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - MN_LAYER - ToolBoxItem - { - Identifier = FN_TOOL_ANKER ; - HelpID = FN_TOOL_ANKER ; - DropDown = TRUE ; - }; - }; - Scroll = TRUE ; -}; String RID_WEBOLE_TOOLBOX { Text [ en-US ] = "Object/Web" ; }; -ToolBox RID_WEBOLE_TOOLBOX -{ - HelpID = HID_OLE_TOOLBOX ; - Border = TRUE ; - SVLook = TRUE ; - Dockable = TRUE ; - Moveable = TRUE ; - Sizeable = TRUE ; - Closeable = TRUE ; - Zoomable = TRUE ; - LineSpacing = TRUE ; - HideWhenDeactivate = TRUE ; - Customize = TRUE ; - MenuStrings = TRUE ; - Hide = TRUE ; - Scroll = TRUE ; - ItemList = - { - MN_FRAME_WRAP_WEB - MN_FRAME1 - MN_FRAME3 - MN_LINESTYLE - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - MN_ATTRIBUTES_OLE - ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; }; - MN_LAYER - ToolBoxItem - { - Identifier = FN_TOOL_ANKER ; - HelpID = FN_TOOL_ANKER ; - DropDown = TRUE ; - }; - }; -}; /************************************************************************* *************************************************************************/ diff --git a/sw/source/ui/wrtsh/wrtsh1.cxx b/sw/source/ui/wrtsh/wrtsh1.cxx index b3087f78fb..3e0a2c8ce7 100644 --- a/sw/source/ui/wrtsh/wrtsh1.cxx +++ b/sw/source/ui/wrtsh/wrtsh1.cxx @@ -27,6 +27,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" + #include <com/sun/star/container/XChild.hpp> #include <com/sun/star/embed/XVisualObject.hpp> #include <com/sun/star/embed/EmbedMisc.hpp> @@ -42,9 +43,7 @@ #include <svx/svdview.hxx> #include <sot/factory.hxx> #include <svl/itemiter.hxx> -#ifndef _SOUND_HXX //autogen #include <vcl/sound.hxx> -#endif #include <tools/bigint.hxx> #include <sot/storage.hxx> #include <svtools/insdlg.hxx> @@ -60,28 +59,21 @@ #include <vcl/graph.hxx> #include <sfx2/printer.hxx> #include <unotools/charclass.hxx> - #include <comphelper/storagehelper.hxx> #include <svx/svxdlg.hxx> #include <svx/extrusionbar.hxx> #include <svx/fontworkbar.hxx> +#include <frmfmt.hxx> #include <fmtftn.hxx> #include <fmtpdsc.hxx> -#ifndef _WDOCSH_HXX #include <wdocsh.hxx> -#endif -#ifndef _BASESH_HXX #include <basesh.hxx> -#endif #include <swmodule.hxx> #include <wrtsh.hxx> -#ifndef _VIEW_HXX #include <view.hxx> -#endif #include <uitool.hxx> -#ifndef _CMDID_H #include <cmdid.h> -#endif +#include <cfgitems.hxx> #include <pagedesc.hxx> #include <frmmgr.hxx> #include <shellio.hxx> @@ -89,9 +81,7 @@ #include <swundo.hxx> // fuer Undo-Ids #include <swcli.hxx> #include <poolfmt.hxx> -#ifndef _WVIEW_HXX #include <wview.hxx> -#endif #include <edtwin.hxx> #include <fmtcol.hxx> #include <swtable.hxx> @@ -100,15 +90,12 @@ #include <swdtflvr.hxx> #include <crsskip.hxx> #include <doc.hxx> -#ifndef _WRTSH_HRC #include <wrtsh.hrc> -#endif #include <SwStyleNameMapper.hxx> #include <sfx2/request.hxx> #include <paratr.hxx> #include <ndtxt.hxx> #include <editeng/acorrcfg.hxx> -//#include <svx/acorrcfg.hxx> #include <IMark.hxx> // -> #111827# @@ -123,6 +110,7 @@ #include <editeng/acorrcfg.hxx> #include "PostItMgr.hxx" +#include <sfx2/msgpool.hxx> using namespace sw::mark; using namespace com::sun::star; @@ -442,16 +430,6 @@ void SwWrtShell::InsertObject( const svt::EmbeddedObjectRef& xRef, SvGlobalName pReq->AppendItem(SfxStringItem(FN_PARAM_2, pURL->GetMainURL(INetURLObject::NO_DECODE))); pReq->AppendItem(SfxStringItem(FN_PARAM_3 , aDlg.GetCommands())); } */ - case SID_INSERT_APPLET: - /* - if(pReq) - { - SvAppletObjectRef xApplet ( xIPObj ); - if(xApplet.Is()) - pReq->AppendItem(SfxStringItem(FN_PARAM_1 , xApplet->GetCodeBase())); - pReq->AppendItem(SfxStringItem(FN_PARAM_2 , aDlg.GetClass())); - pReq->AppendItem(SfxStringItem(FN_PARAM_3 , aDlg.GetCommands())); - }*/ case SID_INSERT_FLOATINGFRAME: /* if(pReq && xFloatingFrame.Is()) @@ -466,9 +444,13 @@ void SwWrtShell::InsertObject( const svt::EmbeddedObjectRef& xRef, SvGlobalName pReq->AppendItem(SfxBoolItem(FN_PARAM_5, pDescriptor->HasFrameBorder())); }*/ { + SfxSlotPool* pSlotPool = SW_MOD()->GetSlotPool(); + const SfxSlot* pSlot = pSlotPool->GetSlot(nSlotId); + rtl::OString aCmd(".uno:"); + aCmd += pSlot->GetUnoName(); SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); SfxAbstractInsertObjectDialog* pDlg = - pFact->CreateInsertObjectDialog( GetWin(), nSlotId, xStor, &aServerList ); + pFact->CreateInsertObjectDialog( GetWin(), rtl::OUString( aCmd, aCmd.getLength(), RTL_TEXTENCODING_UTF8 ), xStor, &aServerList ); if ( pDlg ) { pDlg->Execute(); @@ -614,6 +596,11 @@ BOOL SwWrtShell::InsertOleObject( const svt::EmbeddedObjectRef& xRef, SwFlyFrmFm aFrmMgr.SetSize( aSz ); SwFlyFrmFmt *pFmt = SwFEShell::InsertObject( xRef, &aFrmMgr.GetAttrSet() ); + // --> #i972# + if ( bStarMath && pDoc->get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT ) ) + AlignFormulaToBaseline( xRef.GetObject() ); + // <-- + if (pFlyFrmFmt) *pFlyFrmFmt = pFmt; @@ -774,6 +761,8 @@ void SwWrtShell::CalcAndSetScale( svt::EmbeddedObjectRef& xObj, if ( (embed::EmbedMisc::EMBED_ACTIVATEIMMEDIATELY & nMisc) || bLinkingChart // TODO/LATER: ResizeOnPrinterChange //|| SVOBJ_MISCSTATUS_RESIZEONPRINTERCHANGE & xObj->GetMiscStatus() + || nMisc & embed::EmbedMisc::EMBED_NEVERRESIZE // non-resizable objects need to be + // set the size back by this method ) { pCli = new SwOleClient( &GetView(), &GetView().GetEditWin(), xObj ); @@ -884,6 +873,17 @@ void SwWrtShell::CalcAndSetScale( svt::EmbeddedObjectRef& xObj, if ( bUseObjectSize ) { + // --> this moves non-resizable object so that when adding borders the baseline remains the same + const SwFlyFrmFmt *pFlyFrmFmt = dynamic_cast< const SwFlyFrmFmt * >( GetFlyFrmFmt() ); + ASSERT( pFlyFrmFmt, "Could not find fly frame." ); + if ( pFlyFrmFmt ) + { + const Point &rPoint = pFlyFrmFmt->GetLastFlyFrmPrtRectPos(); + SwRect aRect( pFlyPrtRect ? *pFlyPrtRect + : GetAnyCurRect( RECT_FLY_PRT_EMBEDDED, 0, xObj.GetObject() )); + aArea += rPoint - aRect.Pos(); // adjust area by diff of printing area position in order to keep baseline alignment correct. + } + // <-- aArea.Width ( _aVisArea.Width() ); aArea.Height( _aVisArea.Height() ); RequestObjectResize( aArea, xObj.GetObject() ); @@ -1869,3 +1869,4 @@ String SwWrtShell::GetSelDescr() const return aResult; } + diff --git a/sw/source/ui/wrtsh/wrtsh2.cxx b/sw/source/ui/wrtsh/wrtsh2.cxx index ac874a9791..1874426528 100644 --- a/sw/source/ui/wrtsh/wrtsh2.cxx +++ b/sw/source/ui/wrtsh/wrtsh2.cxx @@ -239,15 +239,8 @@ BOOL SwWrtShell::UpdateTableOf(const SwTOXBase& rTOX, const SfxItemSet* pSet) return bResult; } -BOOL SwWrtShell::UpdateField( sw::mark::IFieldmark &fieldBM ) -{ - return SwEditShell::UpdateField(fieldBM); -} - - - - // ein Klick aus das angegebene Feld. Der Cursor steht auf diesem. - // Fuehre die vor definierten Aktionen aus. +// handler for click on the field given as parameter. +// the cursor is positioned on the field. void SwWrtShell::ClickToField( const SwField& rFld ) diff --git a/sw/util/hidother.src b/sw/util/hidother.src index 5f992c0872..ede4ed2708 100644 --- a/sw/util/hidother.src +++ b/sw/util/hidother.src @@ -25,8 +25,6 @@ * ************************************************************************/ #include "../inc/helpid.h" // HID_FUNC_XXX -//#include "shellid.hxx" // HID_FUNC_XXX da kommen sie eigentlich her -#include "hidother.hrc" // Help-IDs fuer Dokument-Fenster hidspecial HID_EDIT_WIN { HelpID = HID_EDIT_WIN; }; @@ -72,23 +70,6 @@ hidspecial HID_VS_NUM { HelpId = HID_VS_NUM ;}; hidspecial HID_VS_BULLET { HelpId = HID_VS_BULLET ;}; hidspecial HID_VS_NUMBMP { HelpId = HID_VS_NUMBMP ;}; -//Wegen Helferlein jetzt auch die ShellIds hier -hidspecial SW_TEXTSHELL { HelpId = SW_TEXTSHELL ;}; -hidspecial SW_LISTSHELL { HelpId = SW_LISTSHELL ;}; -hidspecial SW_TABSHELL { HelpId = SW_TABSHELL ;}; -hidspecial SW_FRAMESHELL { HelpId = SW_FRAMESHELL ;}; -hidspecial SW_GRFSHELL { HelpId = SW_GRFSHELL ;}; -hidspecial SW_OLESHELL { HelpId = SW_OLESHELL ;}; -hidspecial SW_DRAWSHELL { HelpId = SW_DRAWSHELL ;}; -hidspecial SW_DRWTXTSHELL { HelpId = SW_DRWTXTSHELL ;}; -hidspecial SW_PAGEPREVIEW { HelpId = SW_PAGEPREVIEW ;}; -hidspecial SW_SRC_VIEWSHELL { HelpId = SW_SRC_VIEWSHELL ;}; -hidspecial SW_BEZIERSHELL { HelpId = SW_BEZIERSHELL ;}; -hidspecial SW_DRAWFORMSHELL { HelpId = SW_DRAWFORMSHELL ;}; -hidspecial SW_WEBTEXTSHELL { HelpId = SW_WEBTEXTSHELL ;}; -hidspecial SW_WEBFRAMESHELL { HelpId = SW_WEBFRAMESHELL ;}; -hidspecial SW_MEDIASHELL { HelpId = SW_MEDIASHELL ;}; - // Navigator hidspecial HID_NAVIGATOR_TOOLBOX { HelpId = HID_NAVIGATOR_TOOLBOX;}; hidspecial HID_NAVI_TBX16 { HelpId = HID_NAVI_TBX16;}; diff --git a/sw/util/msword.map b/sw/util/msword.map index 16b9d25b0b..d2a9d9b4f7 100755..100644 --- a/sw/util/msword.map +++ b/sw/util/msword.map @@ -6,6 +6,9 @@ UDK_3_0_0 { ExportDOC; SaveOrDelMSVBAStorage_ww8; GetSaveWarningOfMSVBAStorage_ww8; + component_getImplementationEnvironment; + component_writeInfo; + component_getFactory; local: *; }; |