00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
#ifndef _uctrl_hpp_
00026
#define _uctrl_hpp_
00027
00028
#include <ubit/umode.hpp>
00029
00030
00042
class UCtrl:
public UBrick {
00043
public:
00044 UCtrl();
00046
00047
00048
00049
virtual void enable(
bool state,
bool call_callbacks =
true);
00050
void setEnabled(
bool b) {enable(b);}
00057
bool isEnabled() const;
00065
00066
00067 virtual
void select(
bool state,
bool call_callbacks = true);
00068
void setSelected(
bool b) {select(b);}
00075
bool isSelected()
const {
return (cmodes &
UMode::SELECTED) != 0;}
00082
bool isSelectable()
const {
return (cmodes &
UMode::CAN_SELECT) != 0;}
00090
00091
00092
virtual bool isShown() const;
00102
bool isShowable()
const {
return (cmodes &
UMode::CAN_SHOW) != 0;}
00111
00112
00113
virtual void update() = 0;
00114
virtual void update(
UUpdate) = 0;
00120
00121
00122
00123
bool isCmode(u_modes _cmodes)
const {
return ((cmodes & _cmodes) != 0);}
00125
00126 u_modes getCmodes()
const {
return cmodes;}
00128
00129
void setCmodes(u_modes _cmodes,
bool state);
00131
00132
00133
00134
bool isDef(
UMode &m)
const
00135
{
return ((cmodes & m.
cmodes) != 0 || (bmodes & m.bmodes) != 0);}
00137
00138
bool isDef(u_modes some_Bmodes, u_modes some_Cmodes)
const
00139
{
return ((cmodes & some_Cmodes) != 0 || (bmodes & some_Bmodes) != 0);}
00141
00142
bool isAllDef(u_modes all_Bmodes, u_modes all_Cmodes)
const
00143
{
return ((cmodes&all_Cmodes)==all_Cmodes && (bmodes&all_Bmodes)==all_Bmodes);}
00145
00146
void setState(u_state istate);
00147 u_state getState() const {
return istate;}
00149
00150
00151
00152
00153
00154
#ifndef NO_DOC
00155
protected:
00156
friend class UMode;
00157
friend class UOn;
00158
friend class UAppli;
00159
friend class UFlow;
00160
00161
enum {STANDARD, BROWSING, TYPING};
00162 u_modes cmodes;
00163 u_state istate;
00164
00165
virtual void updateView(
UEvent&,
class UView*,
const class UUpdate&) = 0;
00166
00167
virtual void enterBehavior(
class UFlow&,
UEvent&,
int bstyle);
00168
virtual void leaveBehavior(
class UFlow&,
UEvent&);
00169
virtual void armBehavior(
class UFlow&,
UEvent&,
int bstyle);
00170
virtual bool disarmBehavior(
class UFlow&,
UEvent&,
int bstyle);
00171
virtual bool actionBehavior(
class UFlow&,
UEvent&);
00172
virtual void keyPressBehavior(
class UFlow&,
UEvent&);
00173
virtual void keyReleaseBehavior(
class UFlow&,
UEvent&);
00174 };
00175
#endif
00176
00177
00178
00179
#endif
00180