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 #ifndef _MSGNODEI_HXX 25 #define _MSGNODEI_HXX 26 27 28 #include <svl/eitem.hxx> 29 #include <tools/string.hxx> 30 #include <svl/poolitem.hxx> 31 #include <tools/list.hxx> 32 struct SfxMsgAttachFile { 33 String aFile; 34 String aName; 35 operator ==SfxMsgAttachFile36 int operator==( const SfxMsgAttachFile& rRec ) const 37 { 38 if( aName == rRec.aName && aFile == rRec.aFile ) 39 return sal_True; 40 return sal_False; 41 } 42 SfxMsgAttachFileSfxMsgAttachFile43 SfxMsgAttachFile( const String& rFile, const String& rName) 44 : aName( rName ), aFile( rFile ) {} 45 SfxMsgAttachFileSfxMsgAttachFile46 SfxMsgAttachFile( const SfxMsgAttachFile& rRec ) 47 : aName( rRec.aName), aFile( rRec.aFile ) {} 48 }; 49 50 enum SfxMsgReceiverRole 51 { 52 MSG_RECEIVER_TO = 0, 53 MSG_RECEIVER_CC, 54 MSG_RECEIVER_BCC, 55 MSG_RECEIVER_NEWSGROUP 56 }; 57 58 struct SfxMsgReceiver { 59 String aName; 60 SfxMsgReceiverRole eRole; 61 operator ==SfxMsgReceiver62 int operator==( const SfxMsgReceiver& rRec ) const 63 { 64 if( aName == rRec.aName && eRole == rRec.eRole ) 65 return sal_True; 66 return sal_False; 67 } 68 SfxMsgReceiverSfxMsgReceiver69 SfxMsgReceiver( const String& rName, SfxMsgReceiverRole _eRole ) 70 : aName( rName ), eRole( _eRole ) {} 71 SfxMsgReceiverSfxMsgReceiver72 SfxMsgReceiver( const SfxMsgReceiver& rRec ) 73 : aName( rRec.aName), eRole( rRec.eRole ) {} 74 }; 75 76 // ------------------------------------------------------------------------ 77 78 class SfxMsgReceiverList_Impl : public List 79 { 80 sal_uIntPtr nRef; 81 ~SfxMsgReceiverList_Impl(); 82 SfxMsgReceiverList_Impl& operator=( const SfxMsgReceiverList_Impl&); //n.i. 83 public: 84 SfxMsgReceiverList_Impl(); 85 SfxMsgReceiverList_Impl(const SfxMsgReceiverList_Impl&); 86 87 void Load( SvStream& ); 88 void Store( SvStream& ) const; IncRef()89 void IncRef() { nRef++; } DecRef()90 void DecRef() { nRef--; if( !nRef ) delete this; } GetRefCount() const91 sal_uIntPtr GetRefCount() const { return nRef; } 92 int operator==( const SfxMsgReceiverList_Impl& ) const; 93 }; 94 95 class SfxMsgReceiverListItem : public SfxPoolItem 96 { 97 void Disconnect(); 98 protected: 99 SfxMsgReceiverList_Impl* pImp; 100 public: 101 TYPEINFO(); 102 103 SfxMsgReceiverListItem(); 104 SfxMsgReceiverListItem( sal_uInt16 nWhich ); 105 SfxMsgReceiverListItem( sal_uInt16 nWhich, SvStream& rStream ); 106 SfxMsgReceiverListItem( const SfxMsgReceiverListItem& rItem ); 107 ~SfxMsgReceiverListItem(); 108 109 virtual int operator==( const SfxPoolItem& ) const; 110 111 virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, 112 SfxMapUnit eCoreMetric, 113 SfxMapUnit ePresMetric, 114 XubString &rText ) const; 115 116 sal_uInt16 Count() const; 117 SfxMsgReceiver* GetObject( sal_uInt16 nPos ); 118 void Remove( sal_uInt16 nPos ); 119 void Add( const SfxMsgReceiver& ); 120 121 virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; 122 virtual SfxPoolItem* Create( SvStream &, sal_uInt16 nVersion ) const; 123 virtual SvStream& Store( SvStream &, sal_uInt16 nItemVersion ) const; 124 }; 125 126 127 // ------------------------------------------------------------------------ 128 129 class SfxMsgAttachFileList_Impl : public List 130 { 131 sal_uIntPtr nRef; 132 ~SfxMsgAttachFileList_Impl(); 133 SfxMsgAttachFileList_Impl& operator=( const SfxMsgAttachFileList_Impl&); //n.i. 134 135 public: 136 SfxMsgAttachFileList_Impl(); 137 SfxMsgAttachFileList_Impl(const SfxMsgAttachFileList_Impl&); 138 139 int operator==( const SfxMsgAttachFileList_Impl& rRec ) const; GetReceiver(sal_uIntPtr nPos)140 SfxMsgAttachFile* GetReceiver(sal_uIntPtr nPos) { return (SfxMsgAttachFile*)List::GetObject(nPos); } 141 void Load( SvStream& ); 142 void Store( SvStream& ) const; IncRef()143 void IncRef() { nRef++; } DecRef()144 void DecRef() { nRef--; if( !nRef ) delete this; } GetRefCount() const145 sal_uIntPtr GetRefCount() const { return nRef; } 146 }; 147 148 class SfxMsgAttachFileListItem : public SfxPoolItem 149 { 150 protected: 151 SfxMsgAttachFileList_Impl* pImp; 152 void Disconnect(); 153 public: 154 TYPEINFO(); 155 156 SfxMsgAttachFileListItem(); 157 SfxMsgAttachFileListItem( sal_uInt16 nWhich ); 158 SfxMsgAttachFileListItem( sal_uInt16 nWhich, SvStream& rStream ); 159 SfxMsgAttachFileListItem( const SfxMsgAttachFileListItem& rItem ); 160 ~SfxMsgAttachFileListItem(); 161 162 virtual int operator==( const SfxPoolItem& ) const; 163 164 virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, 165 SfxMapUnit eCoreMetric, 166 SfxMapUnit ePresMetric, 167 XubString &rText ) const; 168 169 sal_uInt16 Count() const; 170 SfxMsgAttachFile* GetObject( sal_uInt16 nPos ); 171 void Remove( sal_uInt16 nPos ); 172 void Add( const SfxMsgAttachFile& ); 173 174 virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; 175 virtual SfxPoolItem* Create( SvStream &, sal_uInt16 nVersion ) const; 176 virtual SvStream& Store( SvStream &, sal_uInt16 nItemVersion ) const; 177 }; 178 179 180 //========================================================================= 181 182 enum SfxMsgPriority 183 { 184 MSG_PRIORITY_LOW = 0, 185 MSG_PRIORITY_NORMAL, 186 MSG_PRIORITY_URGENT 187 }; 188 #define SFXMSGPRIORITYCOUNT 3 189 190 class SfxMsgPriorityItem : public SfxEnumItem 191 { 192 public: 193 TYPEINFO(); 194 195 SfxMsgPriorityItem( sal_uInt16 nWhich, SfxMsgPriority = MSG_PRIORITY_NORMAL); 196 197 virtual SfxPoolItem* Clone( SfxItemPool* pPool=0 ) const; 198 virtual SfxPoolItem* Create( SvStream&, sal_uInt16 ) const; 199 virtual SvStream& Store( SvStream&, sal_uInt16 ) const; 200 virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePresentation, 201 SfxMapUnit eCoreMetric, 202 SfxMapUnit ePresentationMetric, 203 String &rText ) const; 204 virtual sal_uInt16 GetValueCount() const; 205 virtual String GetValueTextByPos( sal_uInt16 nPos ) const; 206 operator =(const SfxMsgPriorityItem & rPrio)207 inline SfxMsgPriorityItem& operator=(const SfxMsgPriorityItem& rPrio) 208 { 209 SetValue( rPrio.GetValue() ); 210 return *this; 211 } 212 }; 213 214 215 #endif 216