xref: /haiku/headers/os/app/Notification.h (revision 0cf96104499a321c3767b7ccf1c7c853361a2459)
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 
8*0cf96104SAxel Dörfler 
9de9dcd41SStephan Aßmus #include <Entry.h>
10de9dcd41SStephan Aßmus 
11*0cf96104SAxel Dörfler 
12*0cf96104SAxel Dörfler class BBitmap;
13*0cf96104SAxel Dörfler class BList;
14*0cf96104SAxel Dörfler 
15*0cf96104SAxel Dörfler 
16de9dcd41SStephan Aßmus // notification types
17de9dcd41SStephan Aßmus enum notification_type {
18de9dcd41SStephan Aßmus 	B_INFORMATION_NOTIFICATION,
19de9dcd41SStephan Aßmus 	B_IMPORTANT_NOTIFICATION,
20de9dcd41SStephan Aßmus 	B_ERROR_NOTIFICATION,
21de9dcd41SStephan Aßmus 	B_PROGRESS_NOTIFICATION
22de9dcd41SStephan Aßmus };
23de9dcd41SStephan 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 
50de9dcd41SStephan Aßmus 			entry_ref*			OnClickFile() const;
51de9dcd41SStephan Aßmus 			void				SetOnClickFile(const entry_ref* file);
52de9dcd41SStephan Aßmus 
53de9dcd41SStephan Aßmus 			BList*				OnClickRefs() const;
54de9dcd41SStephan Aßmus 			void				AddOnClickRef(const entry_ref* ref);
55de9dcd41SStephan Aßmus 
56de9dcd41SStephan Aßmus 			BList*				OnClickArgv() const;
57de9dcd41SStephan Aßmus 			void				AddOnClickArg(const char* arg);
58de9dcd41SStephan Aßmus 
59de9dcd41SStephan Aßmus 			BBitmap*			Icon() const;
60de9dcd41SStephan Aßmus 			void				SetIcon(BBitmap* icon);
61de9dcd41SStephan Aßmus 
62de9dcd41SStephan Aßmus private:
63de9dcd41SStephan Aßmus 			notification_type	fType;
64de9dcd41SStephan Aßmus 			char*				fAppName;
65de9dcd41SStephan Aßmus 			char*				fTitle;
66de9dcd41SStephan Aßmus 			char*				fContent;
67de9dcd41SStephan Aßmus 			char*				fID;
68de9dcd41SStephan Aßmus 			float				fProgress;
69de9dcd41SStephan Aßmus 			char*				fApp;
70de9dcd41SStephan Aßmus 			entry_ref*			fFile;
71de9dcd41SStephan Aßmus 			BList*				fRefs;
72de9dcd41SStephan Aßmus 			BList*				fArgv;
73de9dcd41SStephan Aßmus 			BBitmap*			fBitmap;
74de9dcd41SStephan Aßmus };
75de9dcd41SStephan Aßmus 
76*0cf96104SAxel Dörfler 
77de9dcd41SStephan Aßmus #endif	// _NOTIFICATION_H
78