Chat-O-Matic/application/views/ReplicantStatusView.h

76 lines
1.5 KiB
C++

/*
* Copyright 2011, 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 <Handler.h>
#include <Messenger.h>
#include <Resources.h>
#include <View.h>
#include "CayaConstants.h"
#include "CayaResources.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(CayaStatus 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* fIcon;
BBitmap* fConnectingIcon;
BBitmap* fCayaIcon;
BBitmap* fOfflineIcon;
BBitmap* fBusyIcon;
BBitmap* fAwayIcon;
BBitmap* fExitMenuIcon;
BResources* fResources;
BPopUpMenu* fReplicantMenu;
bool fIsInstalled;
BMessenger* fCayaMsg;
ReplicantHandler* fReplicantHandler;
};
#endif