protected:
void set_state(State s) { set_state(s, s); }
void clear_state(State s) { set_state(s, NORMAL); }
void set_state(State, State);
protected:
void set_state(State s) { set_state(s, s); }
void clear_state(State s) { set_state(s, NORMAL); }
void set_state(State, State);