1de9dcd41SStephan Aßmus /* 2de9dcd41SStephan Aßmus * Copyright 2010, Haiku, Inc. All Rights Reserved. 3de9dcd41SStephan Aßmus * Distributed under the terms of the MIT License. 4de9dcd41SStephan Aßmus */ 5de9dcd41SStephan Aßmus #ifndef _NOTIFICATION_H 6de9dcd41SStephan Aßmus #define _NOTIFICATION_H 7de9dcd41SStephan Aßmus 80cf96104SAxel Dörfler 9de9dcd41SStephan Aßmus #include <Entry.h> 10*f33637d9SStephan Aßmus #include <List.h> 11*f33637d9SStephan Aßmus #include <String.h> 120cf96104SAxel Dörfler 130cf96104SAxel Dörfler 14de9dcd41SStephan Aßmus // notification types 15de9dcd41SStephan Aßmus enum notification_type { 16de9dcd41SStephan Aßmus B_INFORMATION_NOTIFICATION, 17de9dcd41SStephan Aßmus B_IMPORTANT_NOTIFICATION, 18de9dcd41SStephan Aßmus B_ERROR_NOTIFICATION, 19de9dcd41SStephan Aßmus B_PROGRESS_NOTIFICATION 20de9dcd41SStephan Aßmus }; 21de9dcd41SStephan Aßmus 22*f33637d9SStephan Aßmus class BBitmap; 23*f33637d9SStephan Aßmus 24de9dcd41SStephan Aßmus 25de9dcd41SStephan Aßmus class BNotification { 26de9dcd41SStephan Aßmus public: 27de9dcd41SStephan Aßmus BNotification(notification_type type); 28de9dcd41SStephan Aßmus ~BNotification(); 29de9dcd41SStephan Aßmus 30de9dcd41SStephan Aßmus notification_type Type() const; 31de9dcd41SStephan Aßmus 32de9dcd41SStephan Aßmus const char* Application() const; 33de9dcd41SStephan Aßmus void SetApplication(const char* app); 34de9dcd41SStephan Aßmus 35de9dcd41SStephan Aßmus const char* Title() const; 36de9dcd41SStephan Aßmus void SetTitle(const char* title); 37de9dcd41SStephan Aßmus 38de9dcd41SStephan Aßmus const char* Content() const; 39de9dcd41SStephan Aßmus void SetContent(const char* content); 40de9dcd41SStephan Aßmus 41de9dcd41SStephan Aßmus const char* MessageID() const; 42de9dcd41SStephan Aßmus void SetMessageID(const char* id); 43de9dcd41SStephan Aßmus 44de9dcd41SStephan Aßmus float Progress() const; 45de9dcd41SStephan Aßmus void SetProgress(float progress); 46de9dcd41SStephan Aßmus 47de9dcd41SStephan Aßmus const char* OnClickApp() const; 48de9dcd41SStephan Aßmus void SetOnClickApp(const char* app); 49de9dcd41SStephan Aßmus 50*f33637d9SStephan Aßmus const entry_ref* OnClickFile() const; 51*f33637d9SStephan Aßmus status_t SetOnClickFile(const entry_ref* file); 52de9dcd41SStephan Aßmus 53*f33637d9SStephan Aßmus status_t AddOnClickRef(const entry_ref* ref); 54*f33637d9SStephan Aßmus status_t AddOnClickRef(const entry_ref& ref); 55*f33637d9SStephan Aßmus int32 CountOnClickRefs() const; 56*f33637d9SStephan Aßmus const entry_ref* OnClickRefAt(int32 index) const; 57de9dcd41SStephan Aßmus 58*f33637d9SStephan Aßmus status_t AddOnClickArg(const char* arg); 59*f33637d9SStephan Aßmus int32 CountOnClickArgs() const; 60*f33637d9SStephan Aßmus const char* OnClickArgAt(int32 index) const; 61de9dcd41SStephan Aßmus 62*f33637d9SStephan Aßmus const BBitmap* Icon() const; 63*f33637d9SStephan Aßmus status_t SetIcon(const BBitmap* icon); 64de9dcd41SStephan Aßmus 65de9dcd41SStephan Aßmus private: 66de9dcd41SStephan Aßmus notification_type fType; 67*f33637d9SStephan Aßmus BString fAppName; 68*f33637d9SStephan Aßmus BString fTitle; 69*f33637d9SStephan Aßmus BString fContent; 70*f33637d9SStephan Aßmus BString fID; 71de9dcd41SStephan Aßmus float fProgress; 72*f33637d9SStephan Aßmus 73*f33637d9SStephan Aßmus BString fApp; 74de9dcd41SStephan Aßmus entry_ref* fFile; 75*f33637d9SStephan Aßmus BList fRefs; 76*f33637d9SStephan Aßmus BList fArgv; 77de9dcd41SStephan Aßmus BBitmap* fBitmap; 78de9dcd41SStephan Aßmus }; 79de9dcd41SStephan Aßmus 800cf96104SAxel Dörfler 81de9dcd41SStephan Aßmus #endif // _NOTIFICATION_H 82