1/*
2 * Copyright 2011-2012, Haiku, Inc. All rights reserved.
3 * Copyright 2011, Clemens Zeidler <haiku@clemens-zeidler.de>
4 * Distributed under the terms of the MIT License.
5 */
6#ifndef DEFAULT_NOTIFIER_H
7#define DEFAULT_NOTIFIER_H
8
9
10#include <Notification.h>
11#include <String.h>
12
13#include "MailProtocol.h"
14
15#include "ErrorLogWindow.h"
16#include "StatusWindow.h"
17
18
19class DefaultNotifier : public BMailNotifier {
20public:
21								DefaultNotifier(const char* accountName,
22									bool inbound, ErrorLogWindow* errorWindow,
23									uint32 showMode);
24								~DefaultNotifier();
25
26			BMailNotifier*		Clone();
27
28			void				ShowError(const char* error);
29			void				ShowMessage(const char* message);
30
31			void				SetTotalItems(uint32 items);
32			void				SetTotalItemsSize(uint64 size);
33			void				ReportProgress(uint32 messages, uint64 bytes,
34									const char* message = NULL);
35			void				ResetProgress(const char* message = NULL);
36
37private:
38			void				_NotifyIfAllowed(int timeout = 0);
39
40private:
41			BString				fAccountName;
42			bool				fIsInbound;
43			ErrorLogWindow*		fErrorWindow;
44			BNotification		fNotification;
45			uint32				fShowMode;
46
47			uint32				fTotalItems;
48			uint32				fItemsDone;
49			uint64				fTotalSize;
50			uint64				fSizeDone;
51};
52
53
54#endif // DEFAULT_NOTIFIER_H
55