1/* 2 * Copyright 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 PERSON_VIEW_H 13#define PERSON_VIEW_H 14 15 16#include <GridView.h> 17#include <ObjectList.h> 18#include <String.h> 19 20 21class AttributeTextControl; 22class BFile; 23class BPopUpMenu; 24class PictureView; 25 26enum { 27 M_SAVE = 'save', 28 M_REVERT = 'rvrt', 29 M_SELECT = 'slct', 30 M_GROUP_MENU = 'grmn', 31}; 32 33 34class PersonView : public BGridView { 35public: 36 PersonView(const char* name, 37 const char* categoryAttribute, 38 const entry_ref* ref); 39 virtual ~PersonView(); 40 41 virtual void MakeFocus(bool focus = true); 42 virtual void MessageReceived(BMessage* message); 43 virtual void Draw(BRect updateRect); 44 45 void AddAttribute(const char* label, 46 const char* attribute); 47 48 void BuildGroupMenu(); 49 50 void CreateFile(const entry_ref* ref); 51 52 bool IsSaved() const; 53 void Save(); 54 55 const char* AttributeValue(const char* attribute) const; 56 void SetAttribute(const char* attribute, bool update); 57 void SetAttribute(const char* attribute, 58 const char* value, bool update); 59 60 void UpdatePicture(const entry_ref* ref); 61 62 bool IsTextSelected() const; 63 64private: 65 const entry_ref* fRef; 66 time_t fLastModificationTime; 67 BPopUpMenu* fGroups; 68 typedef BObjectList<AttributeTextControl> AttributeList; 69 AttributeList fControls; 70 71 BString fCategoryAttribute; 72 PictureView* fPictureView; 73 bool fSaving; 74}; 75 76#endif // PERSON_VIEW_H 77