/* * Copyright 2011-2012, Dario Casalinuovo. All rights reserved. * Distributed under the terms of the MIT License. * * Authors: * Dario Casalinuovo */ #ifndef _REPLICANT_STATUS_VIEW_H #define _REPLICANT_STATUS_VIEW_H #include #include #include #include #include "AppConstants.h" #include "AppResources.h" class BPopUpMenu; class BMenuField; class BitmapView; class NicknameTextControl; class ReplicantHandler; class ReplicantStatusView : public BView { public: ReplicantStatusView(); ReplicantStatusView(BMessage* archive); ~ReplicantStatusView(); virtual void MessageReceived(BMessage* msg); virtual void AttachedToWindow(); virtual void DetachedFromWindow(); virtual void Draw(BRect rect); void SetStatus(UserStatus status); virtual status_t Archive(BMessage* archive, bool deep) const; static ReplicantStatusView* Instantiate(BMessage* archive); void MouseDown(BPoint point); static status_t InstallReplicant(); static status_t RemoveReplicant(); private: void _Init(); void _BuildMenu(); void _ShowMenu(BPoint point); BBitmap* _GetIcon(const uint32 id); BBitmap* fAppIcon; BBitmap* fConnectingIcon; BBitmap* fIcon; BBitmap* fOfflineIcon; BBitmap* fBusyIcon; BBitmap* fAwayIcon; BBitmap* fExitMenuIcon; BBitmap* fPreferencesIcon; BResources fResources; BPopUpMenu* fReplicantMenu; bool fIsInstalled; BMessenger* fCayaMsg; ReplicantHandler* fReplicantHandler; }; #endif