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 FXARROWBUTTON_H
00025
#define FXARROWBUTTON_H
00026
00027
#ifndef FXFRAME_H
00028
#include "FXFrame.h"
00029
#endif
00030
00031
namespace FX {
00032
00033
00034
00035
enum {
00036
ARROW_NONE = 0,
00037
ARROW_UP = 0x00080000,
00038
ARROW_DOWN = 0x00100000,
00039
ARROW_LEFT = 0x00200000,
00040
ARROW_RIGHT = 0x00400000,
00041
ARROW_AUTO = 0x00800000,
00042
ARROW_REPEAT = 0x01000000,
00043
ARROW_AUTOGRAY = 0x02000000,
00044
ARROW_AUTOHIDE = 0x04000000,
00045
ARROW_TOOLBAR = 0x08000000,
00046 ARROW_NORMAL =
FRAME_RAISED|
FRAME_THICK|
ARROW_UP
00047 };
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
class FXAPI FXArrowButton :
public FXFrame {
00059 FXDECLARE(FXArrowButton)
00060 protected:
00061 FXColor arrowColor;
00062 FXint arrowSize;
00063 FXString tip;
00064 FXString help;
00065 FXbool state;
00066 FXbool fired;
00067 protected:
00068 FXArrowButton();
00069 private:
00070 FXArrowButton(const FXArrowButton&);
00071 FXArrowButton &operator=(const FXArrowButton&);
00072 public:
00073
long onPaint(
FXObject*,FXSelector,
void*);
00074
long onUpdate(FXObject*,FXSelector,
void*);
00075
long onEnter(FXObject*,FXSelector,
void*);
00076
long onLeave(FXObject*,FXSelector,
void*);
00077
long onLeftBtnPress(FXObject*,FXSelector,
void*);
00078
long onLeftBtnRelease(FXObject*,FXSelector,
void*);
00079
long onUngrabbed(FXObject*,FXSelector,
void*);
00080
long onRepeat(FXObject*,FXSelector,
void*);
00081
long onAuto(FXObject*,FXSelector,
void*);
00082
long onKeyPress(FXObject*,FXSelector,
void*);
00083
long onKeyRelease(FXObject*,FXSelector,
void*);
00084
long onHotKeyPress(FXObject*,FXSelector,
void*);
00085
long onHotKeyRelease(FXObject*,FXSelector,
void*);
00086
long onCmdSetHelp(FXObject*,FXSelector,
void*);
00087
long onCmdGetHelp(FXObject*,FXSelector,
void*);
00088
long onCmdSetTip(FXObject*,FXSelector,
void*);
00089
long onCmdGetTip(FXObject*,FXSelector,
void*);
00090
long onQueryHelp(FXObject*,FXSelector,
void*);
00091
long onQueryTip(FXObject*,FXSelector,
void*);
00092 public:
00093 enum {
00094 ID_REPEAT=FXFrame::ID_LAST,
00095 ID_AUTO,
00096 ID_LAST
00097 };
00098
public:
00099
00100
00101 FXArrowButton(
FXComposite* p,
FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=ARROW_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);
00102
00103
00104
virtual FXint getDefaultWidth();
00105
00106
00107
virtual FXint getDefaultHeight();
00108
00109
00110
virtual void enable();
00111
00112
00113
virtual void disable();
00114
00115
00116
virtual FXbool canFocus() const;
00117
00118
00119
void setState(FXbool s);
00120
00121
00122 FXbool getState()
const {
return state; }
00123
00124
00125
void setHelpText(
const FXString& text){ help=text; }
00126
00127
00128
FXString getHelpText()
const {
return help; }
00129
00130
00131
void setTipText(
const FXString& text){ tip=text; }
00132
00133
00134 FXString getTipText()
const {
return tip; }
00135
00136
00137
void setArrowStyle(FXuint style);
00138
00139
00140 FXuint getArrowStyle() const;
00141
00142
00143
void setArrowSize(FXint size);
00144
00145
00146 FXint getArrowSize()
const {
return arrowSize; }
00147
00148
00149
void setJustify(FXuint mode);
00150
00151
00152 FXuint getJustify() const;
00153
00154
00155 FXColor getArrowColor()
const {
return arrowColor; }
00156
00157
00158
void setArrowColor(FXColor clr);
00159
00160
00161
virtual void save(FXStream& store)
const;
00162
00163
00164
virtual void load(FXStream& store);
00165
00166
00167
virtual ~FXArrowButton();
00168 };
00169
00170 }
00171
00172
#endif