You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by or...@apache.org on 2013/11/18 12:29:27 UTC

svn commit: r1542986 [1/9] - in /openoffice/trunk/main/sw: ./ inc/ sdi/ source/core/access/ source/core/bastyp/ source/core/crsr/ source/core/doc/ source/core/docnode/ source/core/edit/ source/core/fields/ source/core/frmedt/ source/core/inc/ source/co...

Author: orw
Date: Mon Nov 18 11:29:24 2013
New Revision: 1542986

URL: http://svn.apache.org/r1542986
Log:
33737: enable in-place editing of Input Fields


Added:
    openoffice/trunk/main/sw/source/core/crsr/overlayrangesoutline.cxx   (with props)
    openoffice/trunk/main/sw/source/core/crsr/overlayrangesoutline.hxx   (with props)
Modified:
    openoffice/trunk/main/sw/Library_sw.mk
    openoffice/trunk/main/sw/inc/IDocumentContentOperations.hxx
    openoffice/trunk/main/sw/inc/crsrsh.hxx
    openoffice/trunk/main/sw/inc/doc.hxx
    openoffice/trunk/main/sw/inc/editsh.hxx
    openoffice/trunk/main/sw/inc/expfld.hxx
    openoffice/trunk/main/sw/inc/fldbas.hxx
    openoffice/trunk/main/sw/inc/fmtfld.hxx
    openoffice/trunk/main/sw/inc/hintids.hxx
    openoffice/trunk/main/sw/inc/ndtxt.hxx
    openoffice/trunk/main/sw/inc/txatbase.hxx
    openoffice/trunk/main/sw/inc/txtfld.hxx
    openoffice/trunk/main/sw/inc/txtrfmrk.hxx
    openoffice/trunk/main/sw/inc/txttxmrk.hxx
    openoffice/trunk/main/sw/inc/viscrs.hxx
    openoffice/trunk/main/sw/sdi/_textsh.sdi
    openoffice/trunk/main/sw/sdi/_viewsh.sdi
    openoffice/trunk/main/sw/source/core/access/accportions.cxx
    openoffice/trunk/main/sw/source/core/bastyp/init.cxx
    openoffice/trunk/main/sw/source/core/crsr/callnk.cxx
    openoffice/trunk/main/sw/source/core/crsr/crsrsh.cxx
    openoffice/trunk/main/sw/source/core/crsr/crstrvl.cxx
    openoffice/trunk/main/sw/source/core/crsr/findattr.cxx
    openoffice/trunk/main/sw/source/core/crsr/findtxt.cxx
    openoffice/trunk/main/sw/source/core/crsr/swcrsr.cxx
    openoffice/trunk/main/sw/source/core/crsr/viscrs.cxx
    openoffice/trunk/main/sw/source/core/doc/dbgoutsw.cxx
    openoffice/trunk/main/sw/source/core/doc/doc.cxx
    openoffice/trunk/main/sw/source/core/doc/docedt.cxx
    openoffice/trunk/main/sw/source/core/doc/docfld.cxx
    openoffice/trunk/main/sw/source/core/doc/docfmt.cxx
    openoffice/trunk/main/sw/source/core/doc/docnum.cxx
    openoffice/trunk/main/sw/source/core/doc/docredln.cxx
    openoffice/trunk/main/sw/source/core/doc/docruby.cxx
    openoffice/trunk/main/sw/source/core/doc/doctxm.cxx
    openoffice/trunk/main/sw/source/core/doc/visiturl.cxx
    openoffice/trunk/main/sw/source/core/docnode/nodes.cxx
    openoffice/trunk/main/sw/source/core/edit/acorrect.cxx
    openoffice/trunk/main/sw/source/core/edit/edatmisc.cxx
    openoffice/trunk/main/sw/source/core/edit/edattr.cxx
    openoffice/trunk/main/sw/source/core/edit/edfld.cxx
    openoffice/trunk/main/sw/source/core/edit/edfldexp.cxx
    openoffice/trunk/main/sw/source/core/edit/editsh.cxx
    openoffice/trunk/main/sw/source/core/edit/edlingu.cxx
    openoffice/trunk/main/sw/source/core/edit/ednumber.cxx
    openoffice/trunk/main/sw/source/core/edit/edtox.cxx
    openoffice/trunk/main/sw/source/core/fields/expfld.cxx
    openoffice/trunk/main/sw/source/core/fields/fldbas.cxx
    openoffice/trunk/main/sw/source/core/fields/reffld.cxx
    openoffice/trunk/main/sw/source/core/frmedt/fefly1.cxx
    openoffice/trunk/main/sw/source/core/inc/docfld.hxx
    openoffice/trunk/main/sw/source/core/inc/rolbck.hxx
    openoffice/trunk/main/sw/source/core/inc/rootfrm.hxx
    openoffice/trunk/main/sw/source/core/inc/swfont.hxx
    openoffice/trunk/main/sw/source/core/inc/txttypes.hxx
    openoffice/trunk/main/sw/source/core/layout/flycnt.cxx
    openoffice/trunk/main/sw/source/core/layout/laycache.cxx
    openoffice/trunk/main/sw/source/core/layout/trvlfrm.cxx
    openoffice/trunk/main/sw/source/core/text/atrhndl.hxx
    openoffice/trunk/main/sw/source/core/text/atrstck.cxx
    openoffice/trunk/main/sw/source/core/text/inftxt.cxx
    openoffice/trunk/main/sw/source/core/text/itrform2.cxx
    openoffice/trunk/main/sw/source/core/text/porfld.cxx
    openoffice/trunk/main/sw/source/core/text/porfld.hxx
    openoffice/trunk/main/sw/source/core/text/porlay.cxx
    openoffice/trunk/main/sw/source/core/text/pormulti.cxx
    openoffice/trunk/main/sw/source/core/text/portxt.cxx
    openoffice/trunk/main/sw/source/core/text/portxt.hxx
    openoffice/trunk/main/sw/source/core/text/txtfld.cxx
    openoffice/trunk/main/sw/source/core/text/txtfrm.cxx
    openoffice/trunk/main/sw/source/core/tox/tox.cxx
    openoffice/trunk/main/sw/source/core/tox/txmsrt.cxx
    openoffice/trunk/main/sw/source/core/txtnode/atrfld.cxx
    openoffice/trunk/main/sw/source/core/txtnode/ndhints.cxx
    openoffice/trunk/main/sw/source/core/txtnode/ndtxt.cxx
    openoffice/trunk/main/sw/source/core/txtnode/swfont.cxx
    openoffice/trunk/main/sw/source/core/txtnode/thints.cxx
    openoffice/trunk/main/sw/source/core/txtnode/txatbase.cxx
    openoffice/trunk/main/sw/source/core/txtnode/txatritr.cxx
    openoffice/trunk/main/sw/source/core/txtnode/txtedt.cxx
    openoffice/trunk/main/sw/source/core/undo/SwUndoField.cxx
    openoffice/trunk/main/sw/source/core/undo/rolbck.cxx
    openoffice/trunk/main/sw/source/core/undo/unsect.cxx
    openoffice/trunk/main/sw/source/core/undo/untbl.cxx
    openoffice/trunk/main/sw/source/core/undo/untblk.cxx
    openoffice/trunk/main/sw/source/core/unocore/unocrsrhelper.cxx
    openoffice/trunk/main/sw/source/core/unocore/unodraw.cxx
    openoffice/trunk/main/sw/source/core/unocore/unofield.cxx
    openoffice/trunk/main/sw/source/core/unocore/unoframe.cxx
    openoffice/trunk/main/sw/source/core/unocore/unoidx.cxx
    openoffice/trunk/main/sw/source/core/unocore/unoportenum.cxx
    openoffice/trunk/main/sw/source/core/unocore/unorefmk.cxx
    openoffice/trunk/main/sw/source/core/view/vprint.cxx
    openoffice/trunk/main/sw/source/filter/ascii/ascatr.cxx
    openoffice/trunk/main/sw/source/filter/ascii/parasc.cxx
    openoffice/trunk/main/sw/source/filter/html/css1atr.cxx
    openoffice/trunk/main/sw/source/filter/html/htmlatr.cxx
    openoffice/trunk/main/sw/source/filter/html/swhtml.cxx
    openoffice/trunk/main/sw/source/filter/html/wrthtml.cxx
    openoffice/trunk/main/sw/source/filter/rtf/rtffly.cxx
    openoffice/trunk/main/sw/source/filter/ww1/fltshell.cxx
    openoffice/trunk/main/sw/source/filter/ww1/w1filter.cxx
    openoffice/trunk/main/sw/source/filter/ww8/attributeoutputbase.hxx
    openoffice/trunk/main/sw/source/filter/ww8/wrtw8esh.cxx
    openoffice/trunk/main/sw/source/filter/ww8/wrtw8nds.cxx
    openoffice/trunk/main/sw/source/filter/ww8/ww8atr.cxx
    openoffice/trunk/main/sw/source/filter/ww8/ww8par.cxx
    openoffice/trunk/main/sw/source/filter/ww8/ww8par3.cxx
    openoffice/trunk/main/sw/source/filter/ww8/ww8par5.cxx
    openoffice/trunk/main/sw/source/ui/app/applab.cxx
    openoffice/trunk/main/sw/source/ui/app/docst.cxx
    openoffice/trunk/main/sw/source/ui/docvw/SidebarTxtControl.hxx
    openoffice/trunk/main/sw/source/ui/docvw/edtdd.cxx
    openoffice/trunk/main/sw/source/ui/docvw/edtwin.cxx
    openoffice/trunk/main/sw/source/ui/docvw/edtwin2.cxx
    openoffice/trunk/main/sw/source/ui/envelp/envfmt.cxx
    openoffice/trunk/main/sw/source/ui/fldui/fldedt.cxx
    openoffice/trunk/main/sw/source/ui/fldui/fldmgr.cxx
    openoffice/trunk/main/sw/source/ui/inc/wrtsh.hxx
    openoffice/trunk/main/sw/source/ui/lingu/hhcwrp.cxx
    openoffice/trunk/main/sw/source/ui/misc/insfnote.cxx
    openoffice/trunk/main/sw/source/ui/shells/annotsh.cxx
    openoffice/trunk/main/sw/source/ui/shells/basesh.cxx
    openoffice/trunk/main/sw/source/ui/shells/drwtxtex.cxx
    openoffice/trunk/main/sw/source/ui/shells/frmsh.cxx
    openoffice/trunk/main/sw/source/ui/shells/grfsh.cxx
    openoffice/trunk/main/sw/source/ui/shells/langhelper.cxx
    openoffice/trunk/main/sw/source/ui/shells/listsh.cxx
    openoffice/trunk/main/sw/source/ui/shells/tabsh.cxx
    openoffice/trunk/main/sw/source/ui/shells/textfld.cxx
    openoffice/trunk/main/sw/source/ui/shells/textidx.cxx
    openoffice/trunk/main/sw/source/ui/shells/textsh.cxx
    openoffice/trunk/main/sw/source/ui/shells/textsh1.cxx
    openoffice/trunk/main/sw/source/ui/shells/txtattr.cxx
    openoffice/trunk/main/sw/source/ui/uiview/formatclipboard.cxx
    openoffice/trunk/main/sw/source/ui/uiview/view.cxx
    openoffice/trunk/main/sw/source/ui/uiview/view2.cxx
    openoffice/trunk/main/sw/source/ui/uiview/viewmdi.cxx
    openoffice/trunk/main/sw/source/ui/uiview/viewsrch.cxx
    openoffice/trunk/main/sw/source/ui/uiview/viewstat.cxx
    openoffice/trunk/main/sw/source/ui/uiview/viewtab.cxx
    openoffice/trunk/main/sw/source/ui/wrtsh/delete.cxx
    openoffice/trunk/main/sw/source/ui/wrtsh/wrtsh1.cxx
    openoffice/trunk/main/sw/source/ui/wrtsh/wrtsh2.cxx

Modified: openoffice/trunk/main/sw/Library_sw.mk
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/Library_sw.mk?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/Library_sw.mk (original)
+++ openoffice/trunk/main/sw/Library_sw.mk Mon Nov 18 11:29:24 2013
@@ -151,6 +151,7 @@ $(eval $(call gb_Library_add_exception_o
 	sw/source/core/crsr/trvltbl \
 	sw/source/core/crsr/unocrsr \
 	sw/source/core/crsr/viscrs \
+	sw/source/core/crsr/overlayrangesoutline \
 	sw/source/core/doc/SwStyleNameMapper \
 	sw/source/core/doc/acmplwrd \
 	sw/source/core/doc/dbgoutsw \

Modified: openoffice/trunk/main/sw/inc/IDocumentContentOperations.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/inc/IDocumentContentOperations.hxx?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/inc/IDocumentContentOperations.hxx (original)
+++ openoffice/trunk/main/sw/inc/IDocumentContentOperations.hxx Mon Nov 18 11:29:24 2013
@@ -21,36 +21,37 @@
 
 
 
- #ifndef IDOCUMENTCONTENTOPERATIONS_HXX_INCLUDED
- #define IDOCUMENTCONTENTOPERATIONS_HXX_INCLUDED
+#ifndef IDOCUMENTCONTENTOPERATIONS_HXX_INCLUDED
+#define IDOCUMENTCONTENTOPERATIONS_HXX_INCLUDED
 
- #ifndef _SAL_TYPES_H_
- #include <sal/types.h>
- #endif
-
- class SwPaM;
- struct SwPosition;
- class SwNode;
- class SwNodeRange;
- class String;
- class Graphic;
- class SfxItemSet;
- class SfxPoolItem;
- class GraphicObject;
- class SdrObject;
- class SwFrmFmt;
- class SwDrawFrmFmt;
- class SwFlyFrmFmt;
- class SwNodeIndex;
-
- namespace utl { class TransliterationWrapper; }
- namespace svt { class EmbeddedObjectRef; }
-
- /** Text operation/manipulation interface
- */
- class IDocumentContentOperations
- {
- public:
+#ifndef _SAL_TYPES_H_
+#include <sal/types.h>
+#endif
+
+class SwPaM;
+struct SwPosition;
+class SwNode;
+class SwNodeRange;
+class String;
+class Graphic;
+class SfxItemSet;
+class SfxPoolItem;
+class GraphicObject;
+class SdrObject;
+class SwFrmFmt;
+class SwDrawFrmFmt;
+class SwFlyFrmFmt;
+class SwNodeIndex;
+class SwFmtFld;
+
+namespace utl { class TransliterationWrapper; }
+namespace svt { class EmbeddedObjectRef; }
+
+/** Text operation/manipulation interface
+*/
+class IDocumentContentOperations
+{
+public:
     enum SwMoveFlags
     {
         DOC_MOVEDEFAULT = 0x00,
@@ -68,15 +69,15 @@
     ,   INS_FORCEHINTEXPAND = 0x04 // expand all hints at insert position
     };
 
- public:
+public:
     /** Kopieren eines Bereiches im oder in ein anderes Dokument !
-	    Die Position kann auch im Bereich liegen !!
+    Die Position kann auch im Bereich liegen !!
     */
     virtual bool CopyRange(SwPaM&, SwPosition&, const bool bCopyAll ) const = 0;
 
-	/** Loesche die Section, in der der Node steht.
+    /** Loesche die Section, in der der Node steht.
     */
-	virtual void DeleteSection(SwNode* pNode) = 0;
+    virtual void DeleteSection(SwNode* pNode) = 0;
 
     /** loeschen eines BereichesSwFlyFrmFmt
     */
@@ -84,16 +85,16 @@
 
     /** loeschen gesamter Absaetze
     */
-	virtual bool DelFullPara(SwPaM&) = 0;
+    virtual bool DelFullPara(SwPaM&) = 0;
 
     /** complete delete of a given PaM
 
-        OD 2009-08-20 #i100466#
-        Add optional parameter <bForceJoinNext>, default value <false>
-        Needed for hiding of deletion redlines
+    OD 2009-08-20 #i100466#
+    Add optional parameter <bForceJoinNext>, default value <false>
+    Needed for hiding of deletion redlines
     */
     virtual bool DeleteAndJoin( SwPaM&,
-                                const bool bForceJoinNext = false ) = 0;
+        const bool bForceJoinNext = false ) = 0;
 
     /** verschieben eines Bereiches
     */
@@ -105,96 +106,99 @@
 
     /** verschieben eines Bereiches
     */
-	virtual bool MoveAndJoin(SwPaM&, SwPosition&, SwMoveFlags) = 0;
+    virtual bool MoveAndJoin(SwPaM&, SwPosition&, SwMoveFlags) = 0;
 
-	/** Ueberschreiben eines Strings in einem bestehenden Textnode.
+    /** Ueberschreiben eines Strings in einem bestehenden Textnode.
     */
-	virtual bool Overwrite(const SwPaM &rRg, const String& rStr) = 0;
+    virtual bool Overwrite(const SwPaM &rRg, const String& rStr) = 0;
 
     /** Insert string into existing text node at position rRg.Point().
     */
     virtual bool InsertString(const SwPaM &rRg, const String&,
-              const enum InsertFlags nInsertMode = INS_EMPTYEXPAND ) = 0;
+        const enum InsertFlags nInsertMode = INS_EMPTYEXPAND ) = 0;
 
-	/** change text to Upper/Lower/Hiragana/Katagana/...
+    /** change text to Upper/Lower/Hiragana/Katagana/...
     */
-	virtual void TransliterateText(const SwPaM& rPaM, utl::TransliterationWrapper&) = 0;
+    virtual void TransliterateText(const SwPaM& rPaM, utl::TransliterationWrapper&) = 0;
 
-	/** Einfuegen einer Grafik, Formel. Die XXXX werden kopiert.
+    /** Einfuegen einer Grafik, Formel. Die XXXX werden kopiert.
     */
-	virtual SwFlyFrmFmt* Insert(const SwPaM &rRg, const String& rGrfName, const String& rFltName, const Graphic* pGraphic,
-						const SfxItemSet* pFlyAttrSet, const SfxItemSet* pGrfAttrSet, SwFrmFmt*) = 0;
+    virtual SwFlyFrmFmt* Insert(const SwPaM &rRg, const String& rGrfName, const String& rFltName, const Graphic* pGraphic,
+        const SfxItemSet* pFlyAttrSet, const SfxItemSet* pGrfAttrSet, SwFrmFmt*) = 0;
 
     /**
     */
-	virtual SwFlyFrmFmt* Insert(const SwPaM& rRg, const GraphicObject& rGrfObj,	const SfxItemSet* pFlyAttrSet,
-						const SfxItemSet* pGrfAttrSet, SwFrmFmt*) = 0;
+    virtual SwFlyFrmFmt* Insert(const SwPaM& rRg, const GraphicObject& rGrfObj,	const SfxItemSet* pFlyAttrSet,
+        const SfxItemSet* pGrfAttrSet, SwFrmFmt*) = 0;
 
-	/** austauschen einer Grafik (mit Undo)
+    /** austauschen einer Grafik (mit Undo)
     */
-	virtual void ReRead(SwPaM&, const String& rGrfName, const String& rFltName, const Graphic* pGraphic, const GraphicObject* pGrfObj) = 0;
+    virtual void ReRead(SwPaM&, const String& rGrfName, const String& rFltName, const Graphic* pGraphic, const GraphicObject* pGrfObj) = 0;
 
-	/** Einfuegen eines DrawObjectes. Das Object muss bereits im DrawModel
-	    angemeldet sein.
+    /** Einfuegen eines DrawObjectes. Das Object muss bereits im DrawModel
+    angemeldet sein.
     */
-	virtual SwDrawFrmFmt* Insert(const SwPaM &rRg, SdrObject& rDrawObj, const SfxItemSet* pFlyAttrSet, SwFrmFmt*) = 0;
+    virtual SwDrawFrmFmt* Insert(const SwPaM &rRg, SdrObject& rDrawObj, const SfxItemSet* pFlyAttrSet, SwFrmFmt*) = 0;
 
-	/** Einfuegen von OLE-Objecten.
+    /** Einfuegen von OLE-Objecten.
     */
     virtual SwFlyFrmFmt* Insert(const SwPaM &rRg, const svt::EmbeddedObjectRef& xObj, const SfxItemSet* pFlyAttrSet,
-						const SfxItemSet* pGrfAttrSet, SwFrmFmt*) = 0;
+        const SfxItemSet* pGrfAttrSet, SwFrmFmt*) = 0;
 
-	virtual SwFlyFrmFmt* InsertOLE(const SwPaM &rRg, const String& rObjName, sal_Int64 nAspect, const SfxItemSet* pFlyAttrSet,
-                           const SfxItemSet* pGrfAttrSet, SwFrmFmt*) = 0;
+    virtual SwFlyFrmFmt* InsertOLE(const SwPaM &rRg, const String& rObjName, sal_Int64 nAspect, const SfxItemSet* pFlyAttrSet,
+        const SfxItemSet* pGrfAttrSet, SwFrmFmt*) = 0;
 
     /** Aufspalten eines Nodes an rPos (nur fuer den TxtNode implementiert)
     */
-	virtual bool SplitNode(const SwPosition &rPos, bool bChkTableStart) = 0;
+    virtual bool SplitNode(const SwPosition &rPos, bool bChkTableStart) = 0;
 
     /**
     */
-	virtual bool AppendTxtNode(SwPosition& rPos) = 0;
+    virtual bool AppendTxtNode(SwPosition& rPos) = 0;
 
-	/** Ersetz einen selektierten Bereich in einem TextNode mit dem
-	    String. Ist fuers Suchen&Ersetzen gedacht.
-        bRegExpRplc - ersetze Tabs (\\t) und setze den gefundenen String
-				 ein ( nicht \& )
-	    			z.B.: Fnd: "zzz", Repl: "xx\t\\t..&..\&"
-						--> "xx\t<Tab>..zzz..&"
+    /** Ersetz einen selektierten Bereich in einem TextNode mit dem
+    String. Ist fuers Suchen&Ersetzen gedacht.
+    bRegExpRplc - ersetze Tabs (\\t) und setze den gefundenen String
+    ein ( nicht \& )
+    z.B.: Fnd: "zzz", Repl: "xx\t\\t..&..\&"
+    --> "xx\t<Tab>..zzz..&"
     */
     virtual bool ReplaceRange(SwPaM& rPam, const String& rNewStr,
-                              const bool bRegExReplace) = 0;
+        const bool bRegExReplace) = 0;
 
     /** Einfuegen eines Attributs. Erstreckt sich rRg ueber
-	    mehrere Nodes, wird das Attribut aufgespaltet, sofern
-        dieses Sinn macht. Nodes, in denen dieses Attribut keinen
-        Sinn macht, werden ignoriert.  In vollstaendig in der
-        Selektion eingeschlossenen Nodes wird das Attribut zu
-        harter Formatierung, in den anderen (Text-)Nodes wird das
-        Attribut in das Attributearray eingefuegt. Bei einem
-        Zeichenattribut wird ein "leerer" Hint eingefuegt,
-        wenn keine Selektion
-        vorliegt; andernfalls wird das Attribut als harte
-        Formatierung dem durch rRg.Start() bezeichneten Node
-        hinzugefuegt.  Wenn das Attribut nicht eingefuegt werden
-        konnte, liefert die Methode sal_False.
-	*/
-	//Modify here for #119405, by chengjh, 2012-08-16
-	//Add a para for the char attribute exp...
-    virtual bool InsertPoolItem(const SwPaM &rRg, const SfxPoolItem&,
-                                const sal_uInt16 nFlags,bool bExpandCharToPara=false) = 0;
-	//End
+    mehrere Nodes, wird das Attribut aufgespaltet, sofern
+    dieses Sinn macht. Nodes, in denen dieses Attribut keinen
+    Sinn macht, werden ignoriert.  In vollstaendig in der
+    Selektion eingeschlossenen Nodes wird das Attribut zu
+    harter Formatierung, in den anderen (Text-)Nodes wird das
+    Attribut in das Attributearray eingefuegt. Bei einem
+    Zeichenattribut wird ein "leerer" Hint eingefuegt,
+    wenn keine Selektion
+    vorliegt; andernfalls wird das Attribut als harte
+    Formatierung dem durch rRg.Start() bezeichneten Node
+    hinzugefuegt.  Wenn das Attribut nicht eingefuegt werden
+    konnte, liefert die Methode sal_False.
+    */
+    //Modify here for #119405, by chengjh, 2012-08-16
+    //Add a para for the char attribute exp...
+    virtual bool InsertPoolItem(
+        const SwPaM &rRg,
+        const SfxPoolItem&,
+        const sal_uInt16 nFlags,
+        const bool bExpandCharToPara=false ) = 0;
+    //End
 
     /**
     */
     virtual bool InsertItemSet (const SwPaM &rRg, const SfxItemSet&,
-                                const sal_uInt16 nFlags) = 0;
+        const sal_uInt16 nFlags) = 0;
 
     /** Removes any leading white space from the paragraph
     */
     virtual void RemoveLeadingWhiteSpace(const SwPosition & rPos ) = 0;
 
- protected:
+protected:
     virtual ~IDocumentContentOperations() {};
 };
 

Modified: openoffice/trunk/main/sw/inc/crsrsh.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/inc/crsrsh.hxx?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/inc/crsrsh.hxx (original)
+++ openoffice/trunk/main/sw/inc/crsrsh.hxx Mon Nov 18 11:29:24 2013
@@ -71,10 +71,9 @@ class SwCellFrms;
 class SwTOXMark;
 class SwRedline;
 class IBlockCursor;
-class SwCntntNode; //  #i23726#
-// --> OD 2008-06-19 #i90516#
+class SwCntntNode;
 class SwPostItField;
-// <--
+class SwTxtFld;
 struct SwPosition;
 
 namespace com { namespace sun { namespace star { namespace util {
@@ -220,10 +219,8 @@ private:
     sal_uInt16 nBasicActionCnt;     // Actions, die vom Basic geklammert wurden
     CrsrMoveState eMvState;     // Status fuers Crsr-Travelling - GetCrsrOfst
 
-    // --> OD 2008-04-02 #refactorlists#
     String sMarkedListId;
     int nMarkedListLevel;
-    // <--
 
     sal_Bool bHasFocus : 1;         // Shell ist in einem Window "aktiv"
     sal_Bool bSVCrsrVis : 1;        // SV-Cursor Un-/Sichtbar
@@ -251,9 +248,9 @@ private:
     // OD 11.02.2003 #100556# - flag to allow/avoid execution of marcos (default: true)
     bool mbMacroExecAllowed : 1;
 
-    SW_DLLPRIVATE void UpdateCrsr( sal_uInt16 eFlags
-                            =SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE,
-                     sal_Bool bIdleEnd = sal_False );
+    SW_DLLPRIVATE void UpdateCrsr(
+        sal_uInt16 eFlags = SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE,
+        sal_Bool bIdleEnd = sal_False );
 
     SW_DLLPRIVATE void _ParkPams( SwPaM* pDelRg, SwShellCrsr** ppDelRing );
 
@@ -734,12 +731,27 @@ public:
     inline void UnSetVisCrsr();
 
     // springe zum nachsten/vorherigen Feld des entsprechenden Types
-    sal_Bool MoveFldType( const SwFieldType* pFldType, sal_Bool bNext,
-                                            sal_uInt16 nSubType = USHRT_MAX,
-                                            sal_uInt16 nResType = USHRT_MAX );
+    sal_Bool MoveFldType(
+        const SwFieldType* pFldType,
+        const bool bNext,
+        const sal_uInt16 nResType = USHRT_MAX,
+        const bool bAddSetExpressionFldsToInputFlds = true );
     // springe genau zu diesem Feld
     sal_Bool GotoFld( const SwFmtFld& rFld );
 
+    SwTxtFld* GetTxtFldAtPos(
+        const SwPosition* pPos,
+        const bool bIncludeInputFldAtStart ) const;
+    SwField* GetFieldAtCrsr(
+        const SwPaM* pCrsr,
+        const bool bIncludeInputFldAtStart ) const;
+    SwField* GetCurFld( const bool bIncludeInputFldAtStart = false ) const;
+    bool CrsrInsideInputFld() const;
+    bool PosInsideInputFld( const SwPosition& rPos ) const;
+    bool DocPtInsideInputFld( const Point& rDocPt ) const;
+    xub_StrLen StartOfInputFldAtPos( const SwPosition& rPos ) const;
+    xub_StrLen EndOfInputFldAtPos( const SwPosition& rPos ) const;
+
     // returne die Anzahl der Cursor im Ring (Flag besagt ob man nur
     // aufgepspannte haben will - sprich etwas selektiert ist (Basic))
     sal_uInt16 GetCrsrCnt( sal_Bool bAll = sal_True ) const;
@@ -829,15 +841,14 @@ public:
     sal_Bool GotoINetAttr( const SwTxtINetFmt& rAttr );
     const SwFmtINetFmt* FindINetAttr( const String& rName ) const;
 
+    sal_Bool SelectTxt( const xub_StrLen nStart,
+                        const xub_StrLen nEnd );
+
     sal_Bool CheckTblBoxCntnt( const SwPosition* pPos = 0 );
     void SaveTblBoxCntnt( const SwPosition* pPos = 0 );
     void ClearTblBoxCntnt();
     sal_Bool EndAllTblBoxEdit();
 
-    // wird gerufen, wenn eine Tabellenselektion im UpdateCrsr erzeugt wird,
-    // ohne das die UI davon etaws weiss
-    virtual void NewCoreSelection();
-
     void SetSelTblCells( sal_Bool bFlag )           { bSelTblCells = bFlag; }
     sal_Bool IsSelTblCells() const                  { return bSelTblCells; }
 
@@ -892,8 +903,6 @@ public:
        @return the textual description of the current selection
      */
     String GetCrsrDescr() const;
-
-    SwRect GetRectOfCurrentChar();
 };
 
 

Modified: openoffice/trunk/main/sw/inc/doc.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/inc/doc.hxx?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/inc/doc.hxx (original)
+++ openoffice/trunk/main/sw/inc/doc.hxx Mon Nov 18 11:29:24 2013
@@ -867,13 +867,13 @@ public:
        @param rPos position to search at
        @return pointer to field at the given position or NULL in case no field is found
     */
-    static SwField* GetField(const SwPosition& rPos);
+    static SwField* GetFieldAtPos(const SwPosition& rPos);
 
     /** Returns the field at a certain position.
        @param rPos position to search at
        @return pointer to field at the given position or NULL in case no field is found
     */
-    static SwTxtFld* GetTxtFld(const SwPosition& rPos);
+    static SwTxtFld* GetTxtFldAtPos(const SwPosition& rPos);
 
     /** IDocumentContentOperations
     */
@@ -881,12 +881,10 @@ public:
 	virtual void DeleteSection(SwNode* pNode);
     virtual bool DeleteRange(SwPaM&);
 	virtual bool DelFullPara(SwPaM&);
-    // --> OD 2009-08-20 #i100466#
     // Add optional parameter <bForceJoinNext>, default value <false>
     // Needed for hiding of deletion redlines
     virtual bool DeleteAndJoin( SwPaM&,
                                 const bool bForceJoinNext = false );
-    // <--
     virtual bool MoveRange(SwPaM&, SwPosition&, SwMoveFlags);
     virtual bool MoveNodeRange(SwNodeRange&, SwNodeIndex&, SwMoveFlags);
 	virtual bool MoveAndJoin(SwPaM&, SwPosition&, SwMoveFlags);
@@ -900,11 +898,13 @@ public:
     virtual SwDrawFrmFmt* Insert(const SwPaM &rRg, SdrObject& rDrawObj, const SfxItemSet* pFlyAttrSet, SwFrmFmt*);
     virtual SwFlyFrmFmt* Insert(const SwPaM &rRg, const svt::EmbeddedObjectRef& xObj, const SfxItemSet* pFlyAttrSet,
 						const SfxItemSet* pGrfAttrSet, SwFrmFmt*);
-	//Modify here for #119405, by chengjh, 2012-08-16
-	//Add a para for the char attribute exp...
-    virtual bool InsertPoolItem(const SwPaM &rRg, const SfxPoolItem&,
-                                const SetAttrMode nFlags,bool bExpandCharToPara=false);
-	//End
+
+    virtual bool InsertPoolItem(
+        const SwPaM &rRg,
+        const SfxPoolItem&,
+        const SetAttrMode nFlags,
+        const bool bExpandCharToPara=false);
+
     virtual bool InsertItemSet (const SwPaM &rRg, const SfxItemSet&,
                                 const SetAttrMode nFlags);
 	virtual void ReRead(SwPaM&, const String& rGrfName, const String& rFltName, const Graphic* pGraphic, const GraphicObject* pGrfObj);

Modified: openoffice/trunk/main/sw/inc/editsh.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/inc/editsh.hxx?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/inc/editsh.hxx (original)
+++ openoffice/trunk/main/sw/inc/editsh.hxx Mon Nov 18 11:29:24 2013
@@ -54,7 +54,7 @@ class SfxPoolItem;
 class SfxItemSet;
 class SvxAutoCorrect;
 
-class SwField;			// fuer Felder
+class SwField;
 class SwFieldType;
 class SwDDEFieldType;
 class SwNewDBMgr;
@@ -256,8 +256,8 @@ public:
     sal_Bool GetCurAttr( SfxItemSet& ,
                      const bool bMergeIndentValuesOfNumRule = false ) const;
     // <--
-	void SetAttr( const SfxPoolItem&, sal_uInt16 nFlags = 0 );
-	void SetAttr( const SfxItemSet&, sal_uInt16 nFlags = 0 );
+	void SetAttrItem( const SfxPoolItem&, sal_uInt16 nFlags = 0 );
+	void SetAttrSet( const SfxItemSet&, sal_uInt16 nFlags = 0 );
 
 	// Setze das Attribut als neues default Attribut im Dokument.
 	void SetDefault( const SfxPoolItem& );
@@ -332,7 +332,6 @@ public:
 
 	// Felder
     void Insert2(SwField&, const bool bForceExpandHints = false);
-	SwField* GetCurFld() const;
 
 	void UpdateFlds( SwField & );		// ein einzelnes Feld
 

Modified: openoffice/trunk/main/sw/inc/expfld.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/inc/expfld.hxx?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/inc/expfld.hxx (original)
+++ openoffice/trunk/main/sw/inc/expfld.hxx Mon Nov 18 11:29:24 2013
@@ -312,30 +312,50 @@ public:
 
 class SW_DLLPUBLIC SwInputField : public SwField
 {
-	String  aContent;
-	String	aPText;
-    String  aHelp;
-    String  aToolTip;
-	sal_uInt16  nSubType;
+    mutable String aContent;
+    String aPText;
+    String aHelp;
+    String aToolTip;
+    sal_uInt16 nSubType;
+    bool mbIsFormField;
+
+    SwFmtFld* mpFmtFld; // attribute to which the <SwInputField> belongs to
 
     virtual String          Expand() const;
     virtual SwField*        Copy() const;
 
+    // Accessing Input Field's content
+    const String& getContent() const;
+
 public:
-	// Direkte Eingabe ueber Dialog alten Wert loeschen
-	SwInputField(SwInputFieldType*, const String& rContent ,
-				 const String& rPrompt, sal_uInt16 nSubType = 0,
-				 sal_uLong nFmt = 0);
+    // Direkte Eingabe ueber Dialog alten Wert loeschen
+    SwInputField(
+        SwInputFieldType* pFieldType,
+        const String& rContent,
+        const String& rPrompt,
+        sal_uInt16 nSubType = 0,
+        sal_uLong nFmt = 0,
+        bool bIsFormField = true );
+    virtual ~SwInputField();
+
+    void SetFmtFld( SwFmtFld& rFmtFld );
+    SwFmtFld* GetFmtFld();
+
+    // Providing new Input Field's content:
+    // Fill Input Field's content depending on <nSupType>.
+    void applyFieldContent( const String& rNewFieldContent );
+
+    bool isFormField() const;
 
     virtual String          GetFieldName() const;
 
-	// Content
-	virtual const String&	GetPar1() const;
-	virtual void			SetPar1(const String& rStr);
-
-	// aPromptText
-	virtual String			GetPar2() const;
-	virtual void			SetPar2(const String& rStr);
+    // Content
+    virtual const String&   GetPar1() const;
+    virtual void            SetPar1(const String& rStr);
+
+    // aPromptText
+    virtual String          GetPar2() const;
+    virtual void            SetPar2(const String& rStr);
 
     virtual String          GetHelp() const;
     virtual void            SetHelp(const String & rStr);
@@ -343,10 +363,8 @@ public:
     virtual String          GetToolTip() const;
     virtual void            SetToolTip(const String & rStr);
 
-    virtual sal_Bool            isFormField() const;
-
-	virtual sal_uInt16			GetSubType() const;
-	virtual void			SetSubType(sal_uInt16 nSub);
+    virtual sal_uInt16      GetSubType() const;
+    virtual void            SetSubType(sal_uInt16 nSub);
     virtual sal_Bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const;
     virtual sal_Bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich );
 };

Modified: openoffice/trunk/main/sw/inc/fldbas.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/inc/fldbas.hxx?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/inc/fldbas.hxx (original)
+++ openoffice/trunk/main/sw/inc/fldbas.hxx Mon Nov 18 11:29:24 2013
@@ -308,6 +308,8 @@ class SW_DLLPUBLIC SwField
 {
 private:
     mutable String      m_Cache; /// #i85766# cached expansion (for clipboard)
+    bool m_bUseFieldValueCache; /// control the usage of the cached field value
+
 	sal_uInt16				nLang;	// Immer ueber SetLanguage aendern!
     sal_Bool                bIsAutomaticLanguage;
 	sal_uInt32			nFormat;
@@ -320,7 +322,10 @@ private:
 protected:
 	void				SetFormat(sal_uInt32 nSet) {nFormat = nSet;}
 
-	SwField(SwFieldType* pTyp, sal_uInt32 nFmt = 0, sal_uInt16 nLang = LANGUAGE_SYSTEM);
+    SwField( SwFieldType* pTyp,
+             sal_uInt32 nFmt = 0,
+             sal_uInt16 nLang = LANGUAGE_SYSTEM,
+             bool m_bUseFieldValueCache = true );
 
 public:
 	virtual 			~SwField();

Modified: openoffice/trunk/main/sw/inc/fmtfld.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/inc/fmtfld.hxx?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/inc/fmtfld.hxx (original)
+++ openoffice/trunk/main/sw/inc/fmtfld.hxx Mon Nov 18 11:29:24 2013
@@ -39,17 +39,15 @@ class SwFieldType;
 // ATT_FLD ***********************************
 class SW_DLLPUBLIC SwFmtFld : public SfxPoolItem, public SwClient, public SfxBroadcaster
 {
-	friend class SwTxtFld;
-	friend void _InitCore();
+    friend void _InitCore();
+    SwFmtFld( sal_uInt16 nWhich ); // for default-Attibute
 
-	SwField *pField;
-	SwTxtFld* pTxtAttr;		// mein TextAttribut
+    SwField* mpField;
+    SwTxtFld* mpTxtFld; // the TextAttribute
 
-	SwFmtFld();				// das default-Attibut
 
-	// geschuetzter CopyCtor
-	// @@@ copy construction allowed, but copy assignment is not? @@@
-	SwFmtFld& operator=(const SwFmtFld& rFld);
+    // @@@ copy construction allowed, but copy assignment is not? @@@
+    SwFmtFld& operator=(const SwFmtFld& rFld);
 
 protected:
     virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
@@ -74,11 +72,11 @@ public:
 
     const SwField* GetField() const
     {
-        return pField;
+        return mpField;
     }
     SwField* GetField()
     {
-        return pField;
+        return mpField;
     }
 
     // #111840#
@@ -89,14 +87,24 @@ public:
 
        @attention The current field will be destroyed before setting the new field.
      */
-    void SetFld(SwField * pField);
+    void SetField( SwField * pField );
+
+
+    const SwTxtFld* GetTxtFld() const
+    {
+        return mpTxtFld;
+    }
+    SwTxtFld* GetTxtFld()
+    {
+        return mpTxtFld;
+    }
+    void SetTxtFld( SwTxtFld& rTxtFld );
+    void ClearTxtFld();
 
-	const SwTxtFld *GetTxtFld() const	{ return pTxtAttr; }
-	SwTxtFld *GetTxtFld()				{ return pTxtAttr; }
 
     void RegisterToFieldType( SwFieldType& );
-	sal_Bool IsFldInDoc() const;
-	sal_Bool IsProtect() const;
+    bool IsFldInDoc() const;
+    sal_Bool IsProtect() const;
 };
 
 class SW_DLLPUBLIC SwFmtFldHint : public SfxHint

Modified: openoffice/trunk/main/sw/inc/hintids.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/inc/hintids.hxx?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/inc/hintids.hxx (original)
+++ openoffice/trunk/main/sw/inc/hintids.hxx Mon Nov 18 11:29:24 2013
@@ -33,11 +33,15 @@
 #define CH_TXTATR_INWORD		((sal_Unicode)0x02)
 #define CH_TXTATR_TAB           ((sal_Unicode)'\t')
 #define CH_TXTATR_NEWLINE       ((sal_Unicode)'\n')
-#define CH_TXT_ATR_FIELDSTART ((sal_Unicode)0x04)
-#define CH_TXT_ATR_FIELDEND ((sal_Unicode)0x05)
+#define CH_TXT_ATR_INPUTFIELDSTART ((sal_Unicode)0x04)
+#define CH_TXT_ATR_INPUTFIELDEND ((sal_Unicode)0x05)
+
+#define CH_TXT_ATR_FORMELEMENT ((sal_Unicode)0x06)
+
+#define CH_TXT_ATR_FIELDSTART ((sal_Unicode)0x07)
+#define CH_TXT_ATR_FIELDEND ((sal_Unicode)0x08)
 #define CH_TXT_ATR_SUBST_FIELDSTART ("[")
 #define CH_TXT_ATR_SUBST_FIELDEND ("]")
-#define CH_TXT_ATR_FORMELEMENT ((sal_Unicode)0x06)
 
 /*
  * Hier kommen erst mal die enums fuer die Hints
@@ -129,7 +133,7 @@ RES_TXTATR_WITHEND_BEGIN = RES_TXTATR_BE
     RES_TXTATR_CHARFMT,                             // 49
     RES_TXTATR_CJK_RUBY,                            // 50
     RES_TXTATR_UNKNOWN_CONTAINER,                   // 51
-    RES_TXTATR_DUMMY5,                              // 52
+    RES_TXTATR_INPUTFIELD,                          // 52
 RES_TXTATR_WITHEND_END,
 
 // alle TextAttribute ohne ein Ende

Modified: openoffice/trunk/main/sw/inc/ndtxt.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/inc/ndtxt.hxx?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/inc/ndtxt.hxx (original)
+++ openoffice/trunk/main/sw/inc/ndtxt.hxx Mon Nov 18 11:29:24 2013
@@ -52,7 +52,8 @@ namespace utl {
 
 class SwTxtFmtColl;
 class SwCntntFrm;
-class SwTxtFld; 		 // Fuer GetTxtFld()
+class SwTxtFld;
+class SwTxtInputFld;
 class SfxItemSet;
 class SwUndoTransliterate;
 
@@ -92,9 +93,7 @@ class SW_DLLPUBLIC SwTxtNode: public SwC
 	//Also niemals direkt zugreifen!
     SwpHints    *m_pSwpHints;
 
-    // --> OD 2005-11-02 #i51089 - TUNING#
     mutable SwNodeNum* mpNodeNum;  // Numerierung fuer diesen Absatz
-    // <--
     XubString   m_Text;
 
     SwParaIdleData_Impl* m_pParaIdleData_Impl;
@@ -111,20 +110,15 @@ class SW_DLLPUBLIC SwTxtNode: public SwC
     bool m_bNotifiable;
 
     // sal_uInt8 nOutlineLevel; //#outline level, removed by zhaojianwei.
-    // --> OD 2008-11-19 #i70748#
+
     bool mbEmptyListStyleSetDueToSetOutlineLevelAttr;
-    // <--
 
-    // --> OD 2008-03-27 #refactorlists#
     // boolean, indicating that a <SetAttr(..)> or <ResetAttr(..)> or
     // <ResetAllAttr(..)> method is running.
     // Needed to avoid duplicate handling of attribute change actions.
     bool mbInSetOrResetAttr;
-    // <--
-    // --> OD 2008-05-06 #refactorlists#
     // pointer to the list, to whose the text node is added to
     SwList* mpList;
-    // <--
     /// #i111677# cached expansion (for clipboard)
     ::std::auto_ptr< ::rtl::OUString > m_pNumStringCache;
 
@@ -184,9 +178,6 @@ class SW_DLLPUBLIC SwTxtNode: public SwC
 
     /** create number for this text node, if not already existing
 
-        OD 2005-11-02 #i51089 - TUNING#
-        OD 2007-10-26 #i83479# - made private
-
         @return number of this node
     */
     SwNodeNum* CreateNum() const;
@@ -195,6 +186,8 @@ class SW_DLLPUBLIC SwTxtNode: public SwC
 
     SW_DLLPRIVATE void impl_FmtToTxtAttr(const SfxItemSet& i_rAttrSet);
 
+    const SwTxtInputFld* GetOverlappingInputFld( const SwTxtAttr& rTxtAttr ) const;
+
 public:
 	//Bug 120881:Modify here for Directly Page Numbering
 	bool HasPageNumberField();
@@ -211,9 +204,7 @@ public:
     void SetAutoCompleteWordDirty( bool bNew ) const;
     void SetWrong( SwWrongList* pNew, bool bDelete = true );
     SwWrongList* GetWrong();
-    // --> OD 2008-05-23 #i71360#
     const SwWrongList* GetWrong() const;
-    // <--
     void SetGrammarCheck( SwGrammarMarkUp* pNew, bool bDelete = true );
     SwGrammarMarkUp* GetGrammarCheck();
     // SMARTTAGS
@@ -252,14 +243,12 @@ public:
 	void GetMinMaxSize( sal_uLong nIndex, sal_uLong& rMin, sal_uLong &rMax, sal_uLong &rAbs,
 						OutputDevice* pOut = 0 ) const;
 
-    // --> OD 2008-03-13 #refactorlists#
     // overriding to handle change of certain paragraph attributes
     virtual sal_Bool SetAttr( const SfxPoolItem& );
     virtual sal_Bool SetAttr( const SfxItemSet& rSet );
     virtual sal_Bool ResetAttr( sal_uInt16 nWhich1, sal_uInt16 nWhich2 = 0 );
     virtual sal_Bool ResetAttr( const SvUShorts& rWhichArr );
     virtual sal_uInt16 ResetAllAttr();
-    // <--
 
     /// insert text content
     void InsertText( const XubString & rStr, const SwIndex & rIdx,
@@ -285,7 +274,7 @@ public:
             refmarks, toxmarks, and metas will be ignored unless this is true
         ATTENTION: setting bInclRefToxMark is only allowed from UNDO!
      */
-    void RstAttr(
+    void RstTxtAttr(
         const SwIndex &rIdx,
         const xub_StrLen nLen,
         const sal_uInt16 nWhich = 0,
@@ -296,7 +285,7 @@ public:
 	// loesche das Text-Attribut (muss beim Pool abgemeldet werden!)
 	void 	DestroyAttr( SwTxtAttr* pAttr );
 
-	// loesche alle Attribute aus dem SwpHintsArray.
+    // loesche alle Attribute aus dem SwpHintsArray.
     void    ClearSwpHintsArr( bool bDelFields );
 
     /// Insert pAttr into hints array. @return true iff inserted successfully
@@ -308,13 +297,15 @@ public:
                   const xub_StrLen nStart, const xub_StrLen nEnd,
                   const SetAttrMode nMode = nsSetAttrMode::SETATTR_DEFAULT );
 
-	// setze diese Attribute am TextNode. Wird der gesamte Bereich umspannt,
-	// dann setze sie nur im AutoAttrSet (SwCntntNode:: SetAttr)
-    sal_Bool SetAttr( const SfxItemSet& rSet,
-                  xub_StrLen nStt, xub_StrLen nEnd,
-                  const SetAttrMode nMode = nsSetAttrMode::SETATTR_DEFAULT );
-	// erfrage die Attribute vom TextNode ueber den Bereich
-    // --> OD 2008-01-16 #newlistlevelattrs#
+    // setze diese Attribute am TextNode. Wird der gesamte Bereich umspannt,
+    // dann setze sie nur im AutoAttrSet (SwCntntNode:: SetAttr)
+    sal_Bool SetAttr(
+        const SfxItemSet& rSet,
+        const xub_StrLen nStt,
+        const xub_StrLen nEnd,
+        const SetAttrMode nMode = nsSetAttrMode::SETATTR_DEFAULT );
+
+    // erfrage die Attribute vom TextNode ueber den Bereich
     // Introduce 4th optional parameter <bMergeIndentValuesOfNumRule>.
     // If <bMergeIndentValuesOfNumRule> == sal_True, the indent attributes of
     // the corresponding list level of an applied list style is merged into
@@ -337,7 +328,6 @@ public:
     void DeleteAttribute ( SwTxtAttr * const pTxtAttr );
 
 	// Aktionen auf Text und Attributen
-    // --> OD 2008-11-18 #i96213#
     // introduce optional parameter to control, if all attributes have to be copied.
     void CopyText( SwTxtNode * const pDest,
                const SwIndex &rStart,
@@ -348,7 +338,6 @@ public:
                const SwIndex &rStart,
                xub_StrLen nLen,
                const bool bForceCopyOfAllAttrs = false );
-    // <--
 
     void        CutText(SwTxtNode * const pDest,
                     const SwIndex & rStart, const xub_StrLen nLen);
@@ -374,8 +363,8 @@ public:
 						sal_Bool bFmtToTxtAttributes = sal_True );
 
     enum GetTxtAttrMode {
-        DEFAULT,    /// DEFAULT: (Start <  nIndex <= End)
-        EXPAND,     /// EXPAND : (Start <= nIndex <  End)
+        DEFAULT,    /// DEFAULT: (Start <= nIndex <  End)
+        EXPAND,     /// EXPAND : (Start <  nIndex <= End)
         PARENT,     /// PARENT : (Start <  nIndex <  End)
     };
 
@@ -387,20 +376,19 @@ public:
         hints of which several may cover a single position, like
         RES_TXTATR_CHARFMT, RES_TXTATR_REFMARK, RES_TXTATR_TOXMARK
      */
-    SwTxtAttr *GetTxtAttrAt(xub_StrLen const nIndex, RES_TXTATR const nWhich,
-                            enum GetTxtAttrMode const eMode = DEFAULT) const;
-	//Bug 120881:Modify here for Directly Page Numbering
-	SwTxtFld  *GetTxtFld( xub_StrLen const rIdx )
-				{ return (SwTxtFld *)GetTxtAttrAt( rIdx, RES_TXTATR_FIELD ); }
-	//Bug 120881(End)
+    SwTxtAttr *GetTxtAttrAt(
+        xub_StrLen const nIndex,
+        RES_TXTATR const nWhich,
+        enum GetTxtAttrMode const eMode = DEFAULT ) const;
 
     /** get the innermost text attributes covering position nIndex.
         @param nWhich   only attributes with this id are returned.
         @param eMode    the predicate for matching (@see GetTxtAttrMode).
      */
-    ::std::vector<SwTxtAttr *> GetTxtAttrsAt(xub_StrLen const nIndex,
-                            RES_TXTATR const nWhich,
-                            enum GetTxtAttrMode const eMode = DEFAULT) const;
+    ::std::vector<SwTxtAttr *> GetTxtAttrsAt(
+        xub_StrLen const nIndex,
+        RES_TXTATR const nWhich,
+        enum GetTxtAttrMode const eMode = DEFAULT ) const;
 
     /** get the text attribute at position nIndex which owns
         the dummy character CH_TXTATR_* at that position, if one exists.
@@ -409,8 +397,13 @@ public:
                         attribute with given which id
         @return the text attribute at nIndex of type nWhich, if it exists
     */
-    SwTxtAttr *GetTxtAttrForCharAt( const xub_StrLen nIndex,
-                       const RES_TXTATR nWhich = RES_TXTATR_END ) const;
+    SwTxtAttr *GetTxtAttrForCharAt(
+        const xub_StrLen nIndex,
+        const RES_TXTATR nWhich = RES_TXTATR_END ) const;
+
+    SwTxtFld* GetFldTxtAttrAt(
+        const xub_StrLen nIndex,
+        const bool bIncludeInputFldAtStart = false ) const;
 
 	// Aktuelles Wort zurueckliefern
     XubString GetCurWord(xub_StrLen) const;
@@ -427,8 +420,6 @@ public:
 	// (Methode steht im ndcopy.cxx!!)
 	void CopyCollFmt( SwTxtNode& rDestNd );
 
-    //const SwNodeNum* _GetNodeNum() const { return pNdNum; }
-
     //
     // BEGIN OF BULLET/NUMBERING/OUTLINE STUFF:
     //
@@ -461,20 +452,6 @@ public:
 
     void UpdateOutlineState();
 
-    /** -> #i23730#
-
-        Returns if this text node may be numbered.
-
-        A text node may be numbered if
-          - it has no SwNodeNum
-          - it has a SwNodeNum and it has a numbering rule and the according
-            SwNumFmt defines a numbering type that is an enumeration.
-
-       @retval sal_True      this text node may be numbered
-       @retval sal_False     else
-     */
-    //sal_Bool MayBeNumbered() const;
-
     /**
        Notify this textnode that its numbering rule has changed.
      */
@@ -482,7 +459,6 @@ public:
 
     /** Returns outline of numbering string
 
-        OD 2005-11-17 #128041#
         Introduce parameter <_bInclPrefixAndSuffixStrings> in order to control,
         if the prefix and the suffix strings have to been included or not.
 
@@ -518,9 +494,7 @@ public:
      */
     sal_Bool GetFirstLineOfsWithNum( short& rFirstOffset ) const;
 
-    // --> OD 2010-01-05 #b6884103#
     SwTwips GetAdditionalIndentForStartingNewList() const;
-    // <--
 
     // --> OD 2008-12-02 #i96772#
     void ClearLRSpaceItemDueToListLevelIndents( SvxLRSpaceItem& o_rLRSpaceItem ) const;
@@ -667,15 +641,12 @@ public:
      */
     bool HasVisibleNumberingOrBullet() const;
 
-    // --> OD 2008-02-19 #refactorlists#
     void SetListId( const String sListId );
     String GetListId() const;
-    // <--
 
     /** Determines, if the list level indent attributes can be applied to the
         paragraph.
 
-        OD 2008-01-17 #newlistlevelattrs#
         The list level indents can be applied to the paragraph under the one
         of following conditions:
         - the list style is directly applied to the paragraph and the paragraph
@@ -694,8 +665,6 @@ public:
     /** Retrieves the list tab stop position, if the paragraph's list level defines
         one and this list tab stop has to merged into the tap stops of the paragraph
 
-        OD 2008-01-17 #newlistlevelattrs#
-
         @author OD
 
         @param nListTabStopPosition
@@ -708,8 +677,6 @@ public:
     /** Retrieves the character following the list label, if the paragraph's
         list level defines one.
 
-        OD 2008-01-17 #newlistlevelattrs#
-
         @author OD
 
         @return XubString - the list tab stop position
@@ -805,8 +772,11 @@ public:
 	TYPEINFO();	// fuer rtti
 
     // override SwIndexReg
-    virtual void Update( SwIndex const & rPos, const xub_StrLen nChangeLen,
-                 const bool bNegative = false, const bool bDelete = false );
+    virtual void Update(
+        SwIndex const & rPos,
+        const xub_StrLen nChangeLen,
+        const bool bNegative = false,
+        const bool bDelete = false );
 
 	// change text to Upper/Lower/Hiragana/Katagana/...
 	void TransliterateText( utl::TransliterationWrapper& rTrans,
@@ -836,13 +806,9 @@ public:
     void SetCountedInList( bool bCounted );
     bool IsCountedInList() const;
 
-    // --> OD 2008-03-13 #refactorlists#
-//    void SyncNumberAndNumRule();
-//    void UnregisterNumber();
     void AddToList();
     void RemoveFromList();
     bool IsInList() const;
-    // <--
 
     bool IsFirstOfNumRule() const;
 

Modified: openoffice/trunk/main/sw/inc/txatbase.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/inc/txatbase.hxx?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/inc/txatbase.hxx (original)
+++ openoffice/trunk/main/sw/inc/txatbase.hxx Mon Nov 18 11:29:24 2013
@@ -60,6 +60,7 @@ private:
     bool m_bDontExpandStart     : 1;    // don't expand start at paragraph start (ruby)
     bool m_bNesting             : 1;    // SwTxtAttrNesting
     bool m_bHasDummyChar        : 1;    // without end + meta
+    bool m_bHasContent          : 1;    // text attribute with content
 
 protected:
     SwTxtAttr( SfxPoolItem& rAttr, xub_StrLen nStart );
@@ -72,6 +73,7 @@ protected:
     void SetDontExpandStartAttr(bool bFlag) { m_bDontExpandStart = bFlag; }
     void SetNesting(const bool bFlag)       { m_bNesting = bFlag; }
     void SetHasDummyChar(const bool bFlag)  { m_bHasDummyChar = bFlag; }
+    void SetHasContent( const bool bFlag )  { m_bHasContent = bFlag; }
 
 public:
 
@@ -83,10 +85,10 @@ public:
             const xub_StrLen* GetStart() const  { return & m_nStart; }
 
     /// end position
-	virtual 	 xub_StrLen* GetEnd();
-	inline const xub_StrLen* GetEnd() const;
-    /// end (if available), else start
-	inline const xub_StrLen* GetAnyEnd() const;
+            virtual xub_StrLen* GetEnd(); // also used to change the end position
+            inline const xub_StrLen* End() const;
+            /// end (if available), else start
+            inline const xub_StrLen* GetAnyEnd() const;
 
     inline void SetDontExpand( bool bDontExpand );
     bool DontExpand() const                 { return m_bDontExpand; }
@@ -99,6 +101,7 @@ public:
     bool IsDontExpandStartAttr() const      { return m_bDontExpandStart; }
     bool IsNesting() const                  { return m_bNesting; }
     bool HasDummyChar() const               { return m_bHasDummyChar; }
+    bool HasContent() const                 { return m_bHasContent; }
 
 	inline const SfxPoolItem& GetAttr() const;
     inline       SfxPoolItem& GetAttr();
@@ -127,21 +130,20 @@ protected:
 public:
     SwTxtAttrEnd( SfxPoolItem& rAttr, sal_uInt16 nStart, sal_uInt16 nEnd );
 
-    using SwTxtAttr::GetEnd;
     virtual xub_StrLen* GetEnd();
 };
 
 
 // --------------- Inline Implementierungen ------------------------
 
-inline const xub_StrLen* SwTxtAttr::GetEnd() const
+inline const xub_StrLen* SwTxtAttr::End() const
 {
     return const_cast<SwTxtAttr * >(this)->GetEnd();
 }
 
 inline const xub_StrLen* SwTxtAttr::GetAnyEnd() const
 {
-	const xub_StrLen* pEnd = GetEnd();
+	const xub_StrLen* pEnd = End();
     return pEnd ? pEnd : GetStart();
 }
 
@@ -183,8 +185,10 @@ inline const SwFmtAutoFmt& SwTxtAttr::Ge
 
 inline const SwFmtFld& SwTxtAttr::GetFmtFld() const
 {
-    ASSERT( m_pAttr && m_pAttr->Which() == RES_TXTATR_FIELD,
-        "Wrong attribute" );
+    ASSERT( m_pAttr
+            && ( m_pAttr->Which() == RES_TXTATR_FIELD
+                 || m_pAttr->Which() == RES_TXTATR_INPUTFIELD ),
+            "Wrong attribute" );
     return (const SwFmtFld&)(*m_pAttr);
 }
 

Modified: openoffice/trunk/main/sw/inc/txtfld.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/inc/txtfld.hxx?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/inc/txtfld.hxx (original)
+++ openoffice/trunk/main/sw/inc/txtfld.hxx Mon Nov 18 11:29:24 2013
@@ -33,44 +33,69 @@ class SwTxtNode;
 
 class SwTxtFld : public SwTxtAttr
 {
-    mutable   String m_aExpand;
+    mutable String m_aExpand; // only used to determine, if field content is changing in <ExpandTxtFld()>
     SwTxtNode * m_pTxtNode;
 
 public:
-    SwTxtFld(SwFmtFld & rAttr, xub_StrLen const nStart);
+    SwTxtFld(
+        SwFmtFld & rAttr,
+        xub_StrLen const nStart );
+
     virtual ~SwTxtFld();
 
-	void CopyFld( SwTxtFld *pDest ) const;
-    void Expand() const;
-	inline void ExpandAlways();
+    void CopyTxtFld( SwTxtFld *pDest ) const;
+
+    void ExpandTxtFld() const;
+    inline void ExpandAlways()
+    {
+        m_aExpand += ' '; // changing current value to assure that <ExpandTxtFld()> changes the value.
+        ExpandTxtFld();
+    }
 
     // get and set TxtNode pointer
-    SwTxtNode* GetpTxtNode() const { return m_pTxtNode; }
-    inline SwTxtNode& GetTxtNode() const;
-    void ChgTxtNode( SwTxtNode* pNew ) { m_pTxtNode = pNew; }
+    inline SwTxtNode* GetpTxtNode() const
+    {
+        return m_pTxtNode;
+    }
+    inline SwTxtNode& GetTxtNode() const
+    {
+        ASSERT( m_pTxtNode, "SwTxtFld:: where is my TxtNode?" );
+        return *m_pTxtNode;
+    }
+    inline void ChgTxtNode( SwTxtNode* pNew )
+    {
+        m_pTxtNode = pNew;
+    }
+
+    bool IsFldInDoc() const;
+
     // enable notification that field content has changed and needs reformatting
-    void NotifyContentChange(SwFmtFld& rFmtFld);
+    virtual void NotifyContentChange( SwFmtFld& rFmtFld );
 
-    // #111840#
-    /**
-       Returns position of this field.
-
-       @return position of this field. Has to be deleted explicitly.
-    */
-//    SwPosition * GetPosition() const;
 };
 
-inline SwTxtNode& SwTxtFld::GetTxtNode() const
+class SwTxtInputFld : public SwTxtFld
 {
-    ASSERT( m_pTxtNode, "SwTxtFld:: where is my TxtNode?" );
-    return *m_pTxtNode;
-}
+public:
+    SwTxtInputFld(
+        SwFmtFld & rAttr,
+        xub_StrLen const nStart,
+        xub_StrLen const nEnd );
 
-inline void SwTxtFld::ExpandAlways()
-{
-    m_aExpand += ' ';
-    Expand();
-}
+    virtual ~SwTxtInputFld();
+
+    virtual xub_StrLen* GetEnd();
+
+    virtual void NotifyContentChange( SwFmtFld& rFmtFld );
+
+    void UpdateTextNodeContent( const String& rNewContent );
+
+    const String GetFieldContent() const;
+    void UpdateFieldContent();
+
+private:
+    xub_StrLen m_nEnd;
+};
 
 #endif
 

Modified: openoffice/trunk/main/sw/inc/txtrfmrk.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/inc/txtrfmrk.hxx?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/inc/txtrfmrk.hxx (original)
+++ openoffice/trunk/main/sw/inc/txtrfmrk.hxx Mon Nov 18 11:29:24 2013
@@ -40,7 +40,6 @@ public:
             xub_StrLen const nStart, xub_StrLen const*const pEnd = 0);
 
     virtual xub_StrLen * GetEnd();       // SwTxtAttr
-    inline const xub_StrLen * GetEnd() const { return m_pEnd; }
 
     // get and set TxtNode pointer
     inline const SwTxtNode& GetTxtNode() const;

Modified: openoffice/trunk/main/sw/inc/txttxmrk.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/inc/txttxmrk.hxx?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/inc/txttxmrk.hxx (original)
+++ openoffice/trunk/main/sw/inc/txttxmrk.hxx Mon Nov 18 11:29:24 2013
@@ -42,7 +42,6 @@ public:
     virtual ~SwTxtTOXMark();
 
     virtual xub_StrLen *GetEnd();     // SwTxtAttr
-    inline const xub_StrLen* GetEnd() const { return m_pEnd; }
 
     void CopyTOXMark( SwDoc* pDestDoc );
 

Modified: openoffice/trunk/main/sw/inc/viscrs.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/inc/viscrs.hxx?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/inc/viscrs.hxx (original)
+++ openoffice/trunk/main/sw/inc/viscrs.hxx Mon Nov 18 11:29:24 2013
@@ -30,6 +30,7 @@
 
 class SwCrsrShell;
 class SwShellCrsr;
+class SwTxtInputFld;
 
 // --------  Ab hier Klassen / Methoden fuer den nicht Text-Cursor ------
 
@@ -76,6 +77,7 @@ public:
 
 // #i75172# predefines
 namespace sdr { namespace overlay { class OverlayObject; }}
+namespace sw { namespace overlay { class OverlayRangesOutline; }}
 
 class SwSelPaintRects : public SwRects
 {
@@ -89,7 +91,6 @@ class SwSelPaintRects : public SwRects
 	const SwCrsrShell* pCShell;
 
 	virtual void Paint( const Rectangle& rRect );
-	virtual void FillRects() = 0;
 
 	// #i75172#
 	sdr::overlay::OverlayObject*	mpCursorOverlay;
@@ -98,11 +99,18 @@ class SwSelPaintRects : public SwRects
 	sdr::overlay::OverlayObject* getCursorOverlay() const { return mpCursorOverlay; }
 	void setCursorOverlay(sdr::overlay::OverlayObject* pNew) { mpCursorOverlay = pNew; }
 
+    bool mbShowTxtInputFldOverlay;
+    sw::overlay::OverlayRangesOutline* mpTxtInputFldOverlay;
+
+    void HighlightInputFld();
+
 public:
 	SwSelPaintRects( const SwCrsrShell& rCSh );
 	virtual ~SwSelPaintRects();
 
-	// #i75172# in SwCrsrShell::CreateCrsr() the content of SwSelPaintRects is exchanged. To
+	virtual void FillRects() = 0;
+
+    // #i75172# in SwCrsrShell::CreateCrsr() the content of SwSelPaintRects is exchanged. To
 	// make a complete swap access to mpCursorOverlay is needed there
 	void swapContent(SwSelPaintRects& rSwap);
 
@@ -110,6 +118,11 @@ public:
 	void Hide();
 	void Invalidate( const SwRect& rRect );
 
+    inline void SetShowTxtInputFldOverlay( const bool bShow )
+    {
+        mbShowTxtInputFldOverlay = bShow;
+    }
+
 	const SwCrsrShell* GetShell() const { return pCShell; }
 	// check current MapMode of the shell and set possibly the static members.
 	// Optional set the parameters pX, pY
@@ -124,8 +137,6 @@ class SwShellCrsr : public virtual SwCur
 	Point aMkPt, aPtPt;
 	const SwPosition* pPt;		// fuer Zuordung vom GetPoint() zum aPtPt
 
-	virtual void FillRects();	// fuer Table- und normalen Crsr
-
     using SwCursor::UpDown;
 
 public:
@@ -135,6 +146,8 @@ public:
 	SwShellCrsr( SwShellCrsr& );
 	virtual ~SwShellCrsr();
 
+	virtual void FillRects();	// fuer Table- und normalen Crsr
+
 	void Show();			// Update und zeige alle Selektionen an
 	void Hide();	  		// verstecke alle Selektionen
 	void Invalidate( const SwRect& rRect );
@@ -182,7 +195,6 @@ class SwShellTableCrsr : public virtual 
 	// TabellenBoxen. D.h., wird aus dem einen Array an einer Position
 	// etwas geloescht, dann muss es auch im anderen erfolgen!!
 
-
 public:
 	SwShellTableCrsr( const SwCrsrShell& rCrsrSh, const SwPosition& rPos );
 	SwShellTableCrsr( const SwCrsrShell& rCrsrSh,

Modified: openoffice/trunk/main/sw/sdi/_textsh.sdi
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/sdi/_textsh.sdi?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/sdi/_textsh.sdi (original)
+++ openoffice/trunk/main/sw/sdi/_textsh.sdi Mon Nov 18 11:29:24 2013
@@ -36,6 +36,7 @@ interface BaseText
 	FN_INSERT_GLOSSARY // status(final|play|record)
 	[
 		ExecMethod = ExecGlossary ;
+        StateMethod = GetState ;
 	]
 
     FN_TXTATR_INET // status()
@@ -138,7 +139,7 @@ interface BaseText
 	SID_INSERTDOC // status(final|play|rec)
 	[
 		ExecMethod = Execute ;
-		StateMethod = NoState ;
+		StateMethod = GetState ;
 		DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
 	]
 	FN_INSERT_BOOKMARK // status(final|play)
@@ -242,13 +243,13 @@ interface BaseText
     FN_INSERT_BREAK // status(final|play)
 	[
 		ExecMethod = ExecInsert ;
-		StateMethod = NoState ;
+		StateMethod = GetState ;
 		DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
 	]
 	FN_INSERT_PAGEBREAK // status(final|play)
 	[
 		ExecMethod = ExecInsert ;
-		StateMethod = NoState ;
+		StateMethod = GetState ;
 		DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
 	]
 	FN_INSERT_LINEBREAK  // status(final|play)
@@ -260,19 +261,19 @@ interface BaseText
 	FN_INSERT_COLUMN_BREAK // status(final|play)
 	[
 		ExecMethod = ExecInsert ;
-		StateMethod = NoState ;
+		StateMethod = GetState ;
 		DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
 	]
 	FN_INSERT_BREAK_DLG // status(final|play)
 	[
 		ExecMethod = Execute ;
-		StateMethod = NoState ;
+		StateMethod = GetState ;
 		DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
 	]
 	SID_INSERT_AVMEDIA // status(final|play)
 	[
 		ExecMethod = ExecInsert;
-		StateMethod = NoState ;
+		StateMethod = StateInsert ;
 		DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
 	]
 	FN_INSERT_HRULER // status()
@@ -340,6 +341,7 @@ interface BaseText
 	FN_INSERT_HYPERLINK // status()
 	[
 		ExecMethod = Execute ;
+		StateMethod = GetState;
 		DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
 	]
 	SID_HYPERLINK_DIALOG
@@ -931,6 +933,7 @@ interface BaseText
 	FN_EXPAND_GLOSSARY // status(final|play)
 	[
 		ExecMethod = ExecGlossary ;
+		StateMethod = GetState ;
 		DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
 	]
 	FN_POSTIT // status(final|play)

Modified: openoffice/trunk/main/sw/sdi/_viewsh.sdi
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/sdi/_viewsh.sdi?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/sdi/_viewsh.sdi (original)
+++ openoffice/trunk/main/sw/sdi/_viewsh.sdi Mon Nov 18 11:29:24 2013
@@ -641,12 +641,12 @@ interface BaseTextEditView
         ExecMethod = Execute ;
         StateMethod = GetState ;
     ]
-        SID_INSERT_GRAPHIC // status(final|play)
-        [
-                ExecMethod = Execute ;
-                StateMethod = NoState ;
-                DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
-        ]
+    SID_INSERT_GRAPHIC // status(final|play)
+    [
+        ExecMethod = Execute ;
+        StateMethod = GetState ;
+        DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
+    ]
     SID_AUTOSPELL_CHECK
     [
         ExecMethod = ExecViewOptions ;

Modified: openoffice/trunk/main/sw/source/core/access/accportions.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/source/core/access/accportions.cxx?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/source/core/access/accportions.cxx (original)
+++ openoffice/trunk/main/sw/source/core/access/accportions.cxx Mon Nov 18 11:29:24 2013
@@ -326,6 +326,7 @@ sal_Bool SwAccessiblePortionData::IsGray
         case POR_NUMBER:
         case POR_FLD:
         case POR_URL:
+        case POR_INPUTFLD:
         case POR_ISOTOX:
         case POR_TOX:
         case POR_HIDDEN:

Modified: openoffice/trunk/main/sw/source/core/bastyp/init.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/source/core/bastyp/init.cxx?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/source/core/bastyp/init.cxx (original)
+++ openoffice/trunk/main/sw/source/core/bastyp/init.cxx Mon Nov 18 11:29:24 2013
@@ -315,7 +315,7 @@ SfxItemInfo __FAR_DATA aSlotTab[] =
     { 0, 0 },                                           // RES_TXTATR_CHARFMT
     { SID_ATTR_CHAR_CJK_RUBY, 0 },                      // RES_TXTATR_CJK_RUBY
     { 0, SFX_ITEM_POOLABLE },                           // RES_TXTATR_UNKNOWN_CONTAINER
-    { 0, SFX_ITEM_POOLABLE },                           // RES_TXTATR_DUMMY5
+    { 0, 0 },                                           // RES_TXTATR_INPUTFIELD
 
     { 0, 0 },                                           // RES_TXTATR_FIELD
     { 0, 0 },                                           // RES_TXTATR_FLYCNT
@@ -528,8 +528,9 @@ void _InitCore()
     aAttrTab[ RES_TXTATR_CHARFMT- POOLATTR_BEGIN ] = new SwFmtCharFmt( 0 );
     aAttrTab[ RES_TXTATR_CJK_RUBY - POOLATTR_BEGIN ] = new SwFmtRuby( aEmptyStr );
     aAttrTab[ RES_TXTATR_UNKNOWN_CONTAINER - POOLATTR_BEGIN ] = new SvXMLAttrContainerItem( RES_TXTATR_UNKNOWN_CONTAINER );
+    aAttrTab[ RES_TXTATR_INPUTFIELD - POOLATTR_BEGIN ] = new SwFmtFld( RES_TXTATR_INPUTFIELD );
 
-    aAttrTab[ RES_TXTATR_FIELD- POOLATTR_BEGIN ] = new SwFmtFld;
+    aAttrTab[ RES_TXTATR_FIELD- POOLATTR_BEGIN ] = new SwFmtFld( RES_TXTATR_FIELD );
     aAttrTab[ RES_TXTATR_FLYCNT - POOLATTR_BEGIN ] = new SwFmtFlyCnt( 0 );
     aAttrTab[ RES_TXTATR_FTN - POOLATTR_BEGIN ] = new SwFmtFtn;
 
@@ -538,7 +539,6 @@ void _InitCore()
     aAttrTab[ RES_TXTATR_DUMMY3 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_TXTATR_DUMMY3 );
     aAttrTab[ RES_TXTATR_DUMMY1 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_TXTATR_DUMMY1 );
     aAttrTab[ RES_TXTATR_DUMMY2 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_TXTATR_DUMMY2 );
-    aAttrTab[ RES_TXTATR_DUMMY5 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_TXTATR_DUMMY5 );
 // TextAttr - Dummies
 
     aAttrTab[ RES_CHRATR_BIDIRTL - POOLATTR_BEGIN ] = new SfxInt16Item( RES_CHRATR_BIDIRTL, sal_Int16(-1) );

Modified: openoffice/trunk/main/sw/source/core/crsr/callnk.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/source/core/crsr/callnk.cxx?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/source/core/crsr/callnk.cxx (original)
+++ openoffice/trunk/main/sw/source/core/crsr/callnk.cxx Mon Nov 18 11:29:24 2013
@@ -138,7 +138,7 @@ SwCallLink::~SwCallLink()
 				for( n = 0; n < rHts.Count(); n++ )
 				{
 					const SwTxtAttr* pHt = rHts[ n ];
-					pEnd = pHt->GetEnd();
+					pEnd = pHt->End();
 					nStart = *pHt->GetStart();
 
 					// nur Start oder Start und Ende gleich, dann immer

Modified: openoffice/trunk/main/sw/source/core/crsr/crsrsh.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/source/core/crsr/crsrsh.cxx?rev=1542986&r1=1542985&r2=1542986&view=diff
==============================================================================
--- openoffice/trunk/main/sw/source/core/crsr/crsrsh.cxx (original)
+++ openoffice/trunk/main/sw/source/core/crsr/crsrsh.cxx Mon Nov 18 11:29:24 2013
@@ -962,8 +962,10 @@ void SwCrsrShell::SwapPam()
 // Ansonsten wird er auf die gewaehlte SSelection gesetzt.
 
 
-sal_Bool SwCrsrShell::ChgCurrPam( const Point & rPt,
-							  sal_Bool bTstOnly, sal_Bool bTstHit )
+sal_Bool SwCrsrShell::ChgCurrPam(
+    const Point & rPt,
+    sal_Bool bTstOnly,
+    sal_Bool bTstHit )
 {
 	SET_CURR_SHELL( this );
 
@@ -1414,9 +1416,7 @@ void SwCrsrShell::UpdateCrsr( sal_uInt16
 		return;             // wenn nicht, dann kein Update !!
 	}
 
-    // --> OD 2005-12-14 #i27301#
     SwNotifyAccAboutInvalidTextSelections aInvalidateTextSelections( *this );
-    // <--
 
 	if ( bIgnoreReadonly )
 	{
@@ -1832,7 +1832,7 @@ void SwCrsrShell::UpdateCrsr( sal_uInt16
     if( pBlockCrsr )
         RefreshBlockCursor();
 
-	if( !bIdleEnd && bHasFocus && !bBasicHideCrsr )
+    if( !bIdleEnd && bHasFocus && !bBasicHideCrsr )
     {
         if( pTblCrsr )
             pTblCrsr->SwSelPaintRects::Show();
@@ -2148,23 +2148,25 @@ void SwCrsrShell::ShowCrsrs( sal_Bool bC
 
 void SwCrsrShell::ShowCrsr()
 {
-	if( !bBasicHideCrsr )
-	{
-		bSVCrsrVis = sal_True;
-		UpdateCrsr();
-	}
+    if( !bBasicHideCrsr )
+    {
+        bSVCrsrVis = sal_True;
+        pCurCrsr->SetShowTxtInputFldOverlay( true );
+        UpdateCrsr();
+    }
 }
 
 
 void SwCrsrShell::HideCrsr()
 {
-	if( !bBasicHideCrsr )
-	{
-		bSVCrsrVis = sal_False;
-		// evt. die sel. Bereiche aufheben !!
-		SET_CURR_SHELL( this );
-		pVisCrsr->Hide();
-	}
+    if( !bBasicHideCrsr )
+    {
+        bSVCrsrVis = sal_False;
+        // evt. die sel. Bereiche aufheben !!
+        SET_CURR_SHELL( this );
+        pCurCrsr->SetShowTxtInputFldOverlay( false );
+        pVisCrsr->Hide();
+    }
 }
 
 
@@ -3004,42 +3006,38 @@ sal_Bool SwCrsrShell::FindValidCntntNode
 }
 
 
-void SwCrsrShell::NewCoreSelection()
-{
-}
-
-
 sal_Bool SwCrsrShell::IsCrsrReadonly() const
 {
     if ( GetViewOptions()->IsReadonly() ||
-         // --> FME 2004-06-29 #114856# Formular view
-         GetViewOptions()->IsFormView() )
-         // <--
-	{
-		SwFrm *pFrm = GetCurrFrm( sal_False );
+         GetViewOptions()->IsFormView() ) // Formular view
+    {
+        SwFrm *pFrm = GetCurrFrm( sal_False );
         const SwFlyFrm* pFly;
         const SwSection* pSection;
 
         if( pFrm && pFrm->IsInFly() &&
-			 (pFly = pFrm->FindFlyFrm())->GetFmt()->GetEditInReadonly().GetValue() &&
-			 pFly->Lower() &&
-			 !pFly->Lower()->IsNoTxtFrm() &&
-			 !GetDrawView()->GetMarkedObjectList().GetMarkCount() )
-		{
-			return sal_False;
-		}
-        // --> FME 2004-06-22 #114856# edit in readonly sections
+            (pFly = pFrm->FindFlyFrm())->GetFmt()->GetEditInReadonly().GetValue() &&
+            pFly->Lower() &&
+            !pFly->Lower()->IsNoTxtFrm() &&
+            !GetDrawView()->GetMarkedObjectList().GetMarkCount() )
+        {
+            return sal_False;
+        }
+        // edit in readonly sections
         else if ( pFrm && pFrm->IsInSct() &&
-                  0 != ( pSection = pFrm->FindSctFrm()->GetSection() ) &&
-                  pSection->IsEditInReadonlyFlag() )
+            0 != ( pSection = pFrm->FindSctFrm()->GetSection() ) &&
+            pSection->IsEditInReadonlyFlag() )
+        {
+            return sal_False;
+        }
+        else if ( !IsMultiSelection() && CrsrInsideInputFld() )
         {
             return sal_False;
         }
-        // <--
 
-		return sal_True;
-	}
-	return sal_False;
+        return sal_True;
+    }
+    return sal_False;
 }