1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
/**********************************************************************
Audacity: A Digital Audio Editor
AButton.h
Dominic Mazzoni
This is a custom button class for Audacity. The main feature it
supports that a wxButton does not is mouseovers. It uses an image
for all of its states: up, over, down, and disabled, allowing any
sort of customization you want. Currently it does not support
transparency effects, so the image musts be rectangular and
opaque.
**********************************************************************/
#ifndef __AUDACITY_BUTTON__
#define __AUDACITY_BUTTON__
#include <wx/window.h>
class wxBitmap;
class AButton:public wxWindow {
public:
AButton(wxWindow * parent, wxWindowID id,
const wxPoint & pos,
const wxSize & size,
char **upXPM, char **overXPM, char **downXPM, char **disXPM);
virtual ~ AButton();
virtual void Disable();
virtual void Enable();
virtual void PushDown();
virtual void PopUp();
virtual void OnPaint(wxPaintEvent & event);
virtual void OnMouseEvent(wxMouseEvent & event);
private:
enum AButtonState {
AButtonUp,
AButtonOver,
AButtonDown,
AButtonDis
};
int mWidth;
int mHeight;
bool mButtonIsDown;
bool mIsClicking;
bool mEnabled;
AButtonState mButtonState;
wxBitmap *mBitmap[4];
public:
DECLARE_EVENT_TABLE()
};
#endif
|