/* * Copyright 2010-2023, Haiku, Inc. All rights reserved. * Distributed under the terms of the MIT license. * * Authors: * Robert Polic * * Copyright 1999, Be Incorporated. All Rights Reserved. * This file may be used under the terms of the Be Sample Code License. */ #ifndef PERSON_WINDOW_H #define PERSON_WINDOW_H #include #include #define TITLE_BAR_HEIGHT 32 #define WIND_WIDTH 420 #define WIND_HEIGHT 600 class PersonView; class BFilePanel; class BMenuItem; class PersonWindow : public BWindow { public: PersonWindow(BRect frame, const char* title, const char* nameAttribute, const char* categoryAttribute, const entry_ref* ref); virtual ~PersonWindow(); virtual void MenusBeginning(); virtual void MessageReceived(BMessage* message); virtual bool QuitRequested(); virtual void Show(); void AddAttribute(const char* label, const char* attribute); void SetInitialValues(BMessage* message); void SaveAs(); bool RefersPersonFile(const entry_ref& ref) const; private: void _GetDefaultFileName(char* name); void _SetToRef(entry_ref* ref); void _WatchChanges(bool doIt); private: entry_ref* fRef; BFilePanel* fPanel; BMenuItem* fCopy; BMenuItem* fCut; BMenuItem* fPaste; BMenuItem* fRevert; BMenuItem* fSave; BMenuItem* fUndo; PersonView* fView; BString fNameAttribute; }; #endif // PERSON_WINDOW_H