haiku/src/servers/mail/DefaultNotifier.h

55 lines
1.2 KiB
C++

/*
* Copyright 2011-2012, Haiku, Inc. All rights reserved.
* Copyright 2011, Clemens Zeidler <haiku@clemens-zeidler.de>
* Distributed under the terms of the MIT License.
*/
#ifndef DEFAULT_NOTIFIER_H
#define DEFAULT_NOTIFIER_H
#include <Notification.h>
#include <String.h>
#include "MailProtocol.h"
#include "ErrorLogWindow.h"
#include "StatusWindow.h"
class DefaultNotifier : public BMailNotifier {
public:
DefaultNotifier(const char* accountName,
bool inbound, ErrorLogWindow* errorWindow,
uint32 showMode);
~DefaultNotifier();
BMailNotifier* Clone();
void ShowError(const char* error);
void ShowMessage(const char* message);
void SetTotalItems(uint32 items);
void SetTotalItemsSize(uint64 size);
void ReportProgress(uint32 messages, uint64 bytes,
const char* message = NULL);
void ResetProgress(const char* message = NULL);
private:
void _NotifyIfAllowed(int timeout = 0);
private:
BString fAccountName;
bool fIsInbound;
ErrorLogWindow* fErrorWindow;
BNotification fNotification;
uint32 fShowMode;
uint32 fTotalItems;
uint32 fItemsDone;
uint64 fTotalSize;
uint64 fSizeDone;
};
#endif // DEFAULT_NOTIFIER_H