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