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 //============================================================================ 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 53 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 63 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 72 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 84 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 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 103 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 111 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 120 SfxPoolItem * SfxVisibilityItem::Clone(SfxItemPool *) const 121 { 122 DBG_CHKTHIS(SfxVisibilityItem, 0); 123 return new SfxVisibilityItem(*this); 124 } 125 126 //============================================================================ 127 // virtual 128 sal_uInt16 SfxVisibilityItem::GetValueCount() const 129 { 130 return 2; 131 } 132 133 //============================================================================ 134 // virtual 135 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