00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#ifndef FXBUTTON_H
00025
#define FXBUTTON_H
00026
00027
#ifndef FXLABEL_H
00028
#include "FXLabel.h"
00029
#endif
00030
00031
namespace FX {
00032
00033
00034
00035
enum {
00036
STATE_UP = 0,
00037
STATE_DOWN = 1,
00038
STATE_ENGAGED = 2,
00039
STATE_UNCHECKED =
STATE_UP,
00040
STATE_CHECKED =
STATE_ENGAGED
00041 };
00042
00043
00044
00045
enum {
00046
BUTTON_AUTOGRAY = 0x00800000,
00047
BUTTON_AUTOHIDE = 0x01000000,
00048
BUTTON_TOOLBAR = 0x02000000,
00049
BUTTON_DEFAULT = 0x04000000,
00050
BUTTON_INITIAL = 0x08000000,
00051 BUTTON_NORMAL = (
FRAME_RAISED|
FRAME_THICK|
JUSTIFY_NORMAL|
ICON_BEFORE_TEXT)
00052 };
00053
00054
00055
00056
00057
00058
00059
class FXAPI FXButton :
public FXLabel {
00060 FXDECLARE(FXButton)
00061 protected:
00062 FXuchar state;
00063 protected:
00064 FXButton();
00065 private:
00066 FXButton(const FXButton&);
00067 FXButton& operator=(const FXButton&);
00068 public:
00069
long onPaint(FXObject*,FXSelector,
void*);
00070
long onUpdate(FXObject*,FXSelector,
void*);
00071 long onEnter(FXObject*,FXSelector,
void*);
00072
long onLeave(FXObject*,FXSelector,
void*);
00073
long onFocusIn(FXObject*,FXSelector,
void*);
00074
long onFocusOut(FXObject*,FXSelector,
void*);
00075
long onUngrabbed(FXObject*,FXSelector,
void*);
00076
long onLeftBtnPress(FXObject*,FXSelector,
void*);
00077
long onLeftBtnRelease(FXObject*,FXSelector,
void*);
00078
long onKeyPress(FXObject*,FXSelector,
void*);
00079
long onKeyRelease(FXObject*,FXSelector,
void*);
00080
long onHotKeyPress(FXObject*,FXSelector,
void*);
00081
long onHotKeyRelease(FXObject*,FXSelector,
void*);
00082
long onCheck(FXObject*,FXSelector,
void*);
00083
long onUncheck(FXObject*,FXSelector,
void*);
00084
long onCmdSetValue(FXObject*,FXSelector,
void*);
00085
long onCmdSetIntValue(FXObject*,FXSelector,
void*);
00086
long onCmdGetIntValue(FXObject*,FXSelector,
void*);
00087 public:
00088
00089
00090 FXButton(
FXComposite* p,const
FXString& text,
FXIcon* ic=NULL,FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=BUTTON_NORMAL,FXint x=0,FXint y=0,FXint w=0,FXint h=0,FXint pl=DEFAULT_PAD,FXint pr=DEFAULT_PAD,FXint pt=DEFAULT_PAD,FXint pb=DEFAULT_PAD);
00091
00092
00093 virtual FXbool canFocus() const;
00094
00095
00096 virtual
void setFocus();
00097
00098
00099 virtual
void killFocus();
00100
00101
00102 virtual
void setDefault(FXbool enable=TRUE);
00103
00104
00105
void setState(FXuint s);
00106
00107
00108 FXuint getState()
const {
return state; }
00109
00110
00111
void setButtonStyle(FXuint style);
00112
00113
00114 FXuint getButtonStyle() const;
00115
00116 };
00117
00118 }
00119
00120 #endif