1 /**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_svl.hxx"
26 #include <svl/visitem.hxx>
27 #include <com/sun/star/uno/Any.hxx>
28 #include <tools/stream.hxx>
29
30 //============================================================================
31 //
32 // class SfxVisibilityItem
33 //
34 //============================================================================
35
36 DBG_NAME(SfxVisibilityItem)
37
38 //============================================================================
39 TYPEINIT1_AUTOFACTORY(SfxVisibilityItem, SfxPoolItem);
40
41 //============================================================================
SfxVisibilityItem(sal_uInt16 which,SvStream & rStream)42 SfxVisibilityItem::SfxVisibilityItem(sal_uInt16 which, SvStream & rStream):
43 SfxPoolItem(which)
44 {
45 DBG_CTOR(SfxVisibilityItem, 0);
46 sal_Bool bValue = 0;
47 rStream >> bValue;
48 m_nValue.bVisible = bValue;
49 }
50
51 //============================================================================
52 // virtual
operator ==(const SfxPoolItem & rItem) const53 int SfxVisibilityItem::operator ==(const SfxPoolItem & rItem) const
54 {
55 DBG_CHKTHIS(SfxVisibilityItem, 0);
56 DBG_ASSERT(SfxPoolItem::operator ==(rItem), "unequal type");
57 return m_nValue.bVisible == SAL_STATIC_CAST(const SfxVisibilityItem *, &rItem)->
58 m_nValue.bVisible;
59 }
60
61 //============================================================================
62 // virtual
Compare(const SfxPoolItem & rWith) const63 int SfxVisibilityItem::Compare(const SfxPoolItem & rWith) const
64 {
65 DBG_ASSERT(rWith.ISA(SfxVisibilityItem), "SfxVisibilityItem::Compare(): Bad type");
66 return m_nValue.bVisible == static_cast< SfxVisibilityItem const * >(&rWith)->m_nValue.bVisible ?
67 0 : m_nValue.bVisible ? -1 : 1;
68 }
69
70 //============================================================================
71 // virtual
GetPresentation(SfxItemPresentation,SfxMapUnit,SfxMapUnit,XubString & rText,const IntlWrapper *) const72 SfxItemPresentation SfxVisibilityItem::GetPresentation(SfxItemPresentation,
73 SfxMapUnit, SfxMapUnit,
74 XubString & rText,
75 const IntlWrapper *) const
76 {
77 rText = GetValueTextByVal(m_nValue.bVisible);
78 return SFX_ITEM_PRESENTATION_NAMELESS;
79 }
80
81
82 //============================================================================
83 // virtual
QueryValue(com::sun::star::uno::Any & rVal,sal_uInt8) const84 sal_Bool SfxVisibilityItem::QueryValue(com::sun::star::uno::Any& rVal,sal_uInt8) const
85 {
86 rVal <<= m_nValue;
87 return sal_True;
88 }
89
90 //============================================================================
91 // virtual
PutValue(const com::sun::star::uno::Any & rVal,sal_uInt8)92 sal_Bool SfxVisibilityItem::PutValue(const com::sun::star::uno::Any& rVal,sal_uInt8)
93 {
94 if (rVal >>= m_nValue)
95 return sal_True;
96
97 DBG_ERROR( "SfxInt16Item::PutValue - Wrong type!" );
98 return sal_False;
99 }
100
101 //============================================================================
102 // virtual
Create(SvStream & rStream,sal_uInt16) const103 SfxPoolItem * SfxVisibilityItem::Create(SvStream & rStream, sal_uInt16) const
104 {
105 DBG_CHKTHIS(SfxVisibilityItem, 0);
106 return new SfxVisibilityItem(Which(), rStream);
107 }
108
109 //============================================================================
110 // virtual
Store(SvStream & rStream,sal_uInt16) const111 SvStream & SfxVisibilityItem::Store(SvStream & rStream, sal_uInt16) const
112 {
113 DBG_CHKTHIS(SfxVisibilityItem, 0);
114 rStream << m_nValue.bVisible;
115 return rStream;
116 }
117
118 //============================================================================
119 // virtual
Clone(SfxItemPool *) const120 SfxPoolItem * SfxVisibilityItem::Clone(SfxItemPool *) const
121 {
122 DBG_CHKTHIS(SfxVisibilityItem, 0);
123 return new SfxVisibilityItem(*this);
124 }
125
126 //============================================================================
127 // virtual
GetValueCount() const128 sal_uInt16 SfxVisibilityItem::GetValueCount() const
129 {
130 return 2;
131 }
132
133 //============================================================================
134 // virtual
GetValueTextByVal(sal_Bool bTheValue) const135 UniString SfxVisibilityItem::GetValueTextByVal(sal_Bool bTheValue) const
136 {
137 return
138 bTheValue ?
139 UniString::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("sal_True")) :
140 UniString::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("sal_False"));
141 }
142