#ifndef METHOD_REPLICANT_H_
#define METHOD_REPLICANT_H_
#include <PopUpMenu.h>
#include <View.h>
#include "MethodMenuItem.h"
#define REPLICANT_CTL_NAME "MethodReplicant"
class _EXPORT MethodReplicant;
class MethodReplicant : public BView {
public:
MethodReplicant(const char* signature);
MethodReplicant(BMessage *);
virtual ~MethodReplicant();
static MethodReplicant *Instantiate(BMessage *data);
virtual status_t Archive(BMessage *data, bool deep = true) const;
virtual void AttachedToWindow();
virtual void MouseDown(BPoint);
virtual void MouseUp(BPoint);
virtual void Draw(BRect);
virtual void MessageReceived(BMessage *);
private:
BBitmap *fSegments;
char *fSignature;
BPopUpMenu fMenu;
void UpdateMethod(BMessage *);
void UpdateMethodIcon(BMessage *);
void UpdateMethodMenu(BMessage *);
void UpdateMethodName(BMessage *);
void AddMethod(BMessage *message);
void RemoveMethod(BMessage *message);
MethodMenuItem *FindItemByCookie(int32 cookie);
};
#endif