xref: /trunk/main/editeng/source/items/optitems.cxx (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 // MARKER(update_precomp.py): autogen include statement, do not remove
29 #include "precompiled_editeng.hxx"
30 #include <tools/shl.hxx>
31 #include <tools/resid.hxx>
32 #include <tools/stream.hxx>
33 #include <com/sun/star/linguistic2/XSpellChecker1.hpp>
34 
35 #include <editeng/optitems.hxx>
36 #include <editeng/eerdll.hxx>
37 #include <editeng/editrids.hrc>
38 #include <editeng/eerdll.hxx>
39 #include <editeng/editrids.hrc>
40 
41 using namespace ::com::sun::star::uno;
42 using namespace ::com::sun::star::linguistic2;
43 
44 // STATIC DATA -----------------------------------------------------------
45 
46 TYPEINIT1(SfxSpellCheckItem, SfxPoolItem);
47 TYPEINIT1(SfxHyphenRegionItem, SfxPoolItem);
48 
49 // class SfxSpellCheckItem -----------------------------------------------
50 
51 SfxSpellCheckItem::SfxSpellCheckItem
52 (
53 	Reference< XSpellChecker1 > &xChecker,
54 	sal_uInt16 _nWhich
55 ) :
56 
57 	SfxPoolItem( _nWhich )
58 {
59 	xSpellCheck = xChecker;
60 }
61 
62 // -----------------------------------------------------------------------
63 
64 SfxSpellCheckItem::SfxSpellCheckItem( const SfxSpellCheckItem& rItem ) :
65 
66 	SfxPoolItem( rItem ),
67 	xSpellCheck( rItem.GetXSpellChecker() )
68 {
69 }
70 
71 //------------------------------------------------------------------------
72 
73 SfxItemPresentation SfxSpellCheckItem::GetPresentation
74 (
75 	SfxItemPresentation	ePres,
76 	SfxMapUnit			,
77 	SfxMapUnit			,
78 	String&				rText,
79     const IntlWrapper*
80 )	const
81 {
82 	switch ( ePres )
83 	{
84 		case SFX_ITEM_PRESENTATION_NONE:
85 			rText.Erase();
86 			return SFX_ITEM_PRESENTATION_NONE;
87 
88 		case SFX_ITEM_PRESENTATION_NAMELESS:
89 		case SFX_ITEM_PRESENTATION_COMPLETE:
90 		{
91 			return ePres;
92 		}
93 		default:
94 			return SFX_ITEM_PRESENTATION_NONE;
95 	}
96 }
97 
98 // -----------------------------------------------------------------------
99 
100 SfxPoolItem* SfxSpellCheckItem::Clone( SfxItemPool* ) const
101 {
102 	return new SfxSpellCheckItem( *this );
103 }
104 
105 // -----------------------------------------------------------------------
106 
107 int SfxSpellCheckItem::operator==( const SfxPoolItem& rItem ) const
108 {
109 	DBG_ASSERT( SfxPoolItem::operator==(rItem), "unequal types" );
110 	return ( xSpellCheck == ( (const SfxSpellCheckItem& )rItem ).GetXSpellChecker() );
111 }
112 
113 // class SfxHyphenRegionItem -----------------------------------------------
114 
115 SfxHyphenRegionItem::SfxHyphenRegionItem( const sal_uInt16 nId ) :
116 
117 	SfxPoolItem( nId )
118 {
119 	nMinLead = nMinTrail = 0;
120 }
121 
122 // -----------------------------------------------------------------------
123 
124 SfxHyphenRegionItem::SfxHyphenRegionItem( const SfxHyphenRegionItem& rItem ) :
125 
126 	SfxPoolItem	( rItem ),
127 
128 	nMinLead	( rItem.GetMinLead() ),
129 	nMinTrail	( rItem.GetMinTrail() )
130 {
131 }
132 
133 // -----------------------------------------------------------------------
134 
135 int SfxHyphenRegionItem::operator==( const SfxPoolItem& rAttr ) const
136 {
137 	DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
138 
139 	return ( ( ( (SfxHyphenRegionItem&)rAttr ).nMinLead == nMinLead ) &&
140 			 ( ( (SfxHyphenRegionItem&)rAttr ).nMinTrail == nMinTrail ) );
141 }
142 
143 // -----------------------------------------------------------------------
144 
145 SfxPoolItem* SfxHyphenRegionItem::Clone( SfxItemPool* ) const
146 {
147 	return new SfxHyphenRegionItem( *this );
148 }
149 
150 //------------------------------------------------------------------------
151 
152 SfxItemPresentation SfxHyphenRegionItem::GetPresentation
153 (
154 	SfxItemPresentation ePres,
155 	SfxMapUnit			,
156 	SfxMapUnit			,
157 	String&				rText,
158     const IntlWrapper*
159 )	const
160 {
161 	switch ( ePres )
162 	{
163 		case SFX_ITEM_PRESENTATION_NONE:
164 			rText.Erase();
165 			return SFX_ITEM_PRESENTATION_NONE;
166 
167 		case SFX_ITEM_PRESENTATION_NAMELESS:
168 		case SFX_ITEM_PRESENTATION_COMPLETE:
169 		{
170 			rText += String::CreateFromInt32( nMinLead );
171 			rText += String( EditResId( RID_SVXITEMS_HYPHEN_MINLEAD ) );
172 			rText += ',';
173 			rText += String::CreateFromInt32( nMinTrail );
174 			rText += String( EditResId( RID_SVXITEMS_HYPHEN_MINTRAIL ) );
175 			return ePres;
176 		}
177 		default:
178 			return SFX_ITEM_PRESENTATION_NONE;
179 	}
180 }
181 
182 // -----------------------------------------------------------------------
183 
184 SfxPoolItem* SfxHyphenRegionItem::Create(SvStream& rStrm, sal_uInt16 ) const
185 {
186 	sal_uInt8 _nMinLead, _nMinTrail;
187 	rStrm >> _nMinLead >> _nMinTrail;
188 	SfxHyphenRegionItem* pAttr = new SfxHyphenRegionItem( Which() );
189 	pAttr->GetMinLead() = _nMinLead;
190 	pAttr->GetMinTrail() = _nMinTrail;
191 	return pAttr;
192 }
193 
194 // -----------------------------------------------------------------------
195 
196 SvStream& SfxHyphenRegionItem::Store( SvStream& rStrm, sal_uInt16 ) const
197 {
198 	rStrm << (sal_uInt8) GetMinLead()
199 		  << (sal_uInt8) GetMinTrail();
200 	return rStrm;
201 }
202 
203 
204