xref: /haiku/headers/os/app/Notification.h (revision f33637d9a8d0a6c080d85d375c8143cd13277d83)
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