haiku/headers/os/interface/PictureButton.h

105 lines
2.8 KiB
C++

/*
* Copyright 2001-2008, Haiku Inc. All rights reserved.
* Distributed under the terms of the MIT license.
*/
#ifndef _PICTURE_BUTTON_H
#define _PICTURE_BUTTON_H
#include <BeBuild.h>
#include <Control.h>
#include <Picture.h>
enum {
B_ONE_STATE_BUTTON,
B_TWO_STATE_BUTTON
};
class BPictureButton : public BControl {
public:
BPictureButton(BRect frame, const char* name,
BPicture* off, BPicture* on,
BMessage* message,
uint32 behavior = B_ONE_STATE_BUTTON,
uint32 resizeMask = B_FOLLOW_LEFT
| B_FOLLOW_TOP,
uint32 flgs = B_WILL_DRAW | B_NAVIGABLE);
BPictureButton(BMessage* archive);
virtual ~BPictureButton();
static BArchivable* Instantiate(BMessage* archive);
virtual status_t Archive(BMessage* archive,
bool deep = true) const;
virtual void AttachedToWindow();
virtual void DetachedFromWindow();
virtual void AllAttached();
virtual void AllDetached();
virtual void ResizeToPreferred();
virtual void GetPreferredSize(float* _width,
float* _height);
virtual void FrameMoved(BPoint position);
virtual void FrameResized(float width, float height);
virtual void WindowActivated(bool state);
virtual void MakeFocus(bool state = true);
virtual void Draw(BRect updateRect);
virtual void MessageReceived(BMessage* message);
virtual void KeyDown(const char* bytes, int32 numBytes);
virtual void MouseDown(BPoint where);
virtual void MouseUp(BPoint where);
virtual void MouseMoved(BPoint where, uint32 transit,
const BMessage* message);
virtual void SetEnabledOn(BPicture* on);
virtual void SetEnabledOff(BPicture* off);
virtual void SetDisabledOn(BPicture* on);
virtual void SetDisabledOff(BPicture* off);
BPicture* EnabledOn() const;
BPicture* EnabledOff() const;
BPicture* DisabledOn() const;
BPicture* DisabledOff() const;
virtual void SetBehavior(uint32 behavior);
uint32 Behavior() const;
virtual void SetValue(int32 value);
virtual status_t Invoke(BMessage* message = NULL);
virtual BHandler* ResolveSpecifier(BMessage* message,
int32 index, BMessage* specifier,
int32 form, const char* property);
virtual status_t GetSupportedSuites(BMessage* data);
virtual status_t Perform(perform_code code, void* data);
private:
// FBC padding and forbidden methods
virtual void _ReservedPictureButton1();
virtual void _ReservedPictureButton2();
virtual void _ReservedPictureButton3();
BPictureButton& operator=(const BPictureButton& other);
private:
BPicture* fEnabledOff;
BPicture* fEnabledOn;
BPicture* fDisabledOff;
BPicture* fDisabledOn;
bool unused;
uint32 fBehavior;
uint32 _reserved[4];
};
#endif // _PICTURE_BUTTON_H