1/*
2 * Copyright 2005-2010, Haiku, Inc. All rights reserved.
3 * Distributed under the terms of the MIT license.
4 *
5 * Authors:
6 *		Robert Polic
7 *		Stephan A��mus <superstippi@gmx.de>
8 *
9 * Copyright 1999, Be Incorporated.   All Rights Reserved.
10 * This file may be used under the terms of the Be Sample Code License.
11 */
12#ifndef PEOPLE_APP_H
13#define PEOPLE_APP_H
14
15
16#include <Application.h>
17#include <ObjectList.h>
18#include <String.h>
19
20
21#define	B_PERSON_MIMETYPE	"application/x-person"
22#define APP_SIG				"application/x-vnd.Be-PEPL"
23
24
25class BFile;
26
27enum {
28	M_NEW					= 'newp',
29	M_SAVE_AS				= 'svas',
30	M_WINDOW_QUITS			= 'wndq',
31	M_CONFIGURE_ATTRIBUTES	= 'catr',
32};
33
34class PersonWindow;
35
36class TPeopleApp : public BApplication {
37public:
38								TPeopleApp();
39		virtual 				~TPeopleApp();
40
41		virtual void			ArgvReceived(int32, char**);
42		virtual void			MessageReceived(BMessage*);
43		virtual void			RefsReceived(BMessage*);
44		virtual void			ReadyToRun();
45
46private:
47				PersonWindow*	_FindWindow(const entry_ref&) const;
48				PersonWindow*	_NewWindow(entry_ref* = NULL, BMessage* = NULL);
49				void			_AddAttributes(PersonWindow* window) const;
50				void			_SavePreferences(BMessage* message) const;
51
52private:
53				BFile*			fPrefs;
54				uint32			fWindowCount;
55				BRect			fPosition;
56
57				struct Attribute {
58					BString		attribute;
59					int32		width;
60					BString		name;
61				};
62
63				BObjectList<Attribute> fAttributes;
64};
65
66#endif // PEOPLE_APP_H
67
68