xref: /trunk/main/editeng/inc/editeng/editstat.hxx (revision cdf0e10c)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 #ifndef _EDITSTAT_HXX
29 #define _EDITSTAT_HXX
30 
31 #include <tools/string.hxx>
32 #include <i18npool/lang.h>
33 
34 #define EE_CNTRL_USECHARATTRIBS		0x00000001	// Verwendung harter ZeichenAttr.
35 #define EE_CNTRL_USEPARAATTRIBS		0x00000002	// Verwendung von AbsatzAttr.
36 #define EE_CNTRL_CRSRLEFTPARA		0x00000004	// Cursor ist in einen anderen Absatz gewandert
37 #define EE_CNTRL_DOIDLEFORMAT		0x00000008	// Idle-Formatierung
38 #define EE_CNTRL_PASTESPECIAL		0x00000010	// Allow PasteSpecial
39 #define EE_CNTRL_AUTOINDENTING		0x00000020	// Automatisches einruecken
40 #define EE_CNTRL_UNDOATTRIBS		0x00000040	// Undo fuer Attribute....
41 #define EE_CNTRL_ONECHARPERLINE		0x00000080	// Ein Zeichen pro Zeile
42 #define EE_CNTRL_NOCOLORS			0x00000100	// Engine: Keine Farben
43 #define EE_CNTRL_OUTLINER			0x00000200	// Sonderbehandlung Outliner/Gliederungsmodus
44 #define EE_CNTRL_OUTLINER2			0x00000400	// Sonderbehandlung Outliner/Seite
45 #define EE_CNTRL_ALLOWBIGOBJS		0x00000800	// PortionInfo in Textobjekten
46 #define EE_CNTRL_ONLINESPELLING		0x00001000	// Waehrend des editieren Spelling
47 #define EE_CNTRL_STRETCHING			0x00002000	// Stretch-Modus
48 #define EE_CNTRL_MARKFIELDS			0x00004000	// Felder farblich hinterlegen
49 #define EE_CNTRL_URLSFXEXECUTE		0x00008000	// !!!OLD!!!: SFX-URL-Execute.
50 #define EE_CNTRL_RESTOREFONT		0x00010000	// Font im OutDev restaurieren
51 #define EE_CNTRL_RTFSTYLESHEETS		0x00020000	// Stylesheets bei Import verwenden
52 //#define EE_CNTRL_NOREDLINES            0x00040000  // Keine RedLines bei OnlineSpellError     /* removed #i91949 */
53 #define EE_CNTRL_AUTOCORRECT		0x00080000	// AutoKorrektur
54 #define EE_CNTRL_AUTOCOMPLETE		0x00100000	// AutoComplete
55 #define EE_CNTRL_AUTOPAGESIZEX		0x00200000	// Papierbreite an Text anpassen
56 #define EE_CNTRL_AUTOPAGESIZEY		0x00400000	// Papierhoehe an Text anpassen
57 #define EE_CNTRL_AUTOPAGESIZE		(EE_CNTRL_AUTOPAGESIZEX|EE_CNTRL_AUTOPAGESIZEY)
58 #define EE_CNTRL_TABINDENTING		0x00800000	// Einruecken mit Tab
59 #define EE_CNTRL_FORMAT100			0x01000000	// Immer nach 100% formatieren
60 #define EE_CNTRL_ULSPACESUMMATION	0x02000000	// MS Compat: SA und SB aufsummieren, nicht maximalwert
61 #define EE_CNTRL_ULSPACEFIRSTPARA	0x04000000	// MS Compat: SB auch beim ersten Absatz auswerten
62 
63 #define EV_CNTRL_AUTOSCROLL			0x00000001	// Autom. Scrollen horiz.
64 #define EV_CNTRL_BIGSCROLL			0x00000002	// Weiter Scrollen, als nur zum Cursor
65 #define EV_CNTRL_ENABLEPASTE		0x00000004	// Paste erlauben
66 #define EV_CNTRL_SINGLELINEPASTE	0x00000008	// View: Paste in Eingabezeile...
67 #define EV_CNTRL_OVERWRITE			0x00000010	// Ueberschreibmodus
68 #define EV_CNTRL_INVONEMORE			0x00000020	// Ein Pixel mehr invalidieren
69 #define EV_CNTRL_AUTOSIZEX			0x00000040	// Automatisch an Textbreite anpassen
70 #define EV_CNTRL_AUTOSIZEY			0x00000080	// Automatisch an Texthoehe anpassen
71 #define EV_CNTRL_AUTOSIZE			(EV_CNTRL_AUTOSIZEX|EV_CNTRL_AUTOSIZEY)
72 
73 #define EE_STAT_HSCROLL				0x00000001
74 #define EE_STAT_VSCROLL				0x00000002
75 #define EE_STAT_CURSOROUT			0x00000004
76 #define EE_STAT_CRSRMOVEFAIL		0x00000008
77 #define EE_STAT_CRSRLEFTPARA		0x00000010
78 #define EE_STAT_TEXTWIDTHCHANGED	0x00000020
79 #define EE_STAT_TEXTHEIGHTCHANGED	0x00000040
80 #define EE_STAT_WRONGWORDCHANGED	0x00000080
81 // #define EE_STAT_MODIFIED			0x00000100
82 
83 // Nur fuer Update:
84 #define EE_CNTRL_AUTOCENTER		EE_CNTRL_AUTOPAGESIZE
85 #define EE_STAT_GROWY			EE_STAT_TEXTHEIGHTCHANGED
86 
87 /*
88 	EE_STAT_CRSRLEFTPARA zur Zeit bei Cursorbewegungen und Return.
89 */
90 
91 inline void SetFlags( sal_uLong& rBits, const sal_uInt32 nMask, sal_Bool bOn )
92 {
93 	if ( bOn )
94 		rBits |= nMask;
95 	else
96 		rBits &= ~nMask;
97 }
98 
99 class EditStatus
100 {
101 protected:
102 	sal_uLong	nStatusBits;
103 	sal_uLong	nControlBits;
104 	sal_uInt16	nPrevPara;					// fuer EE_STAT_CRSRLEFTPARA
105 
106 public:
107 			EditStatus()				{ nStatusBits = 0; nControlBits = 0; nPrevPara = 0xFFFF; }
108 
109 	void	Clear() 					{ nStatusBits = 0; }
110 	void	SetControlBits( sal_uLong nMask, sal_Bool bOn )
111 				{ SetFlags( nControlBits, nMask, bOn ); }
112 
113 	sal_uLong	GetStatusWord() const		{ return nStatusBits; }
114 	sal_uLong&	GetStatusWord() 			{ return nStatusBits; }
115 
116 	sal_uLong	GetControlWord() const		{ return nControlBits; }
117 	sal_uLong&	GetControlWord() 			{ return nControlBits; }
118 
119 	sal_uInt16	GetPrevParagraph() const	{ return nPrevPara; }
120 	sal_uInt16&	GetPrevParagraph() 			{ return nPrevPara; }
121 };
122 
123 #define SPELLCMD_IGNOREWORD			0x0001
124 #define SPELLCMD_STARTSPELLDLG		0x0002
125 #define SPELLCMD_ADDTODICTIONARY	0x0003
126 #define SPELLCMD_WORDLANGUAGE   	0x0004
127 #define SPELLCMD_PARALANGUAGE	    0x0005
128 
129 struct SpellCallbackInfo
130 {
131 	sal_uInt16		    nCommand;
132 	String		    aWord;
133     LanguageType    eLanguage;
134 
135 	SpellCallbackInfo( sal_uInt16 nCMD, const String& rWord )
136 	: aWord( rWord )
137 	{
138 		nCommand = nCMD;
139         eLanguage = LANGUAGE_DONTKNOW;
140 	}
141 
142     SpellCallbackInfo( sal_uInt16 nCMD, LanguageType eLang )
143 	{
144 		nCommand = nCMD;
145         eLanguage = eLang;
146 	}
147 };
148 
149 #endif // _EDITSTAT_HXX
150 
151