xref: /AOO41X/main/sfx2/inc/msgnodei.hxx (revision 353d8f4d17010cd2d0ea815067cad67e477f2bee)
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