xref: /haiku/src/servers/mail/DefaultNotifier.h (revision 9b326aa28754c521810b369b09ed3900cba041b6)
10f11280eSAxel Dörfler /*
20f11280eSAxel Dörfler  * Copyright 2011-2012, Haiku, Inc. All rights reserved.
30f11280eSAxel Dörfler  * Copyright 2011, Clemens Zeidler <haiku@clemens-zeidler.de>
40f11280eSAxel Dörfler  * Distributed under the terms of the MIT License.
50f11280eSAxel Dörfler  */
60f11280eSAxel Dörfler #ifndef DEFAULT_NOTIFIER_H
70f11280eSAxel Dörfler #define DEFAULT_NOTIFIER_H
80f11280eSAxel Dörfler 
90f11280eSAxel Dörfler 
100f11280eSAxel Dörfler #include <Notification.h>
110f11280eSAxel Dörfler #include <String.h>
120f11280eSAxel Dörfler 
130f11280eSAxel Dörfler #include "MailProtocol.h"
140f11280eSAxel Dörfler 
150f11280eSAxel Dörfler #include "ErrorLogWindow.h"
160f11280eSAxel Dörfler #include "StatusWindow.h"
170f11280eSAxel Dörfler 
180f11280eSAxel Dörfler 
190f11280eSAxel Dörfler class DefaultNotifier : public BMailNotifier {
200f11280eSAxel Dörfler public:
210f11280eSAxel Dörfler 								DefaultNotifier(const char* accountName,
220f11280eSAxel Dörfler 									bool inbound, ErrorLogWindow* errorWindow,
230b90f99bSAdrien Destugues 									uint32 showMode);
240f11280eSAxel Dörfler 								~DefaultNotifier();
250f11280eSAxel Dörfler 
260f11280eSAxel Dörfler 			BMailNotifier*		Clone();
270f11280eSAxel Dörfler 
280f11280eSAxel Dörfler 			void				ShowError(const char* error);
290f11280eSAxel Dörfler 			void				ShowMessage(const char* message);
300f11280eSAxel Dörfler 
310f11280eSAxel Dörfler 			void				SetTotalItems(uint32 items);
320f11280eSAxel Dörfler 			void				SetTotalItemsSize(uint64 size);
330f11280eSAxel Dörfler 			void				ReportProgress(uint32 messages, uint64 bytes,
340f11280eSAxel Dörfler 									const char* message = NULL);
350f11280eSAxel Dörfler 			void				ResetProgress(const char* message = NULL);
360f11280eSAxel Dörfler 
370f11280eSAxel Dörfler private:
380b90f99bSAdrien Destugues 			void				_NotifyIfAllowed(int timeout = 0);
390b90f99bSAdrien Destugues 
400b90f99bSAdrien Destugues private:
410f11280eSAxel Dörfler 			BString				fAccountName;
420f11280eSAxel Dörfler 			bool				fIsInbound;
430f11280eSAxel Dörfler 			ErrorLogWindow*		fErrorWindow;
440f11280eSAxel Dörfler 			BNotification		fNotification;
45*9b326aa2SAugustin Cavalier 			uint32				fShowMode;
460f11280eSAxel Dörfler 
470f11280eSAxel Dörfler 			uint32				fTotalItems;
480f11280eSAxel Dörfler 			uint32				fItemsDone;
490f11280eSAxel Dörfler 			uint64				fTotalSize;
500f11280eSAxel Dörfler 			uint64				fSizeDone;
510f11280eSAxel Dörfler };
520f11280eSAxel Dörfler 
530f11280eSAxel Dörfler 
540f11280eSAxel Dörfler #endif // DEFAULT_NOTIFIER_H
55