mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 18:08:10 +00:00
cleanup ButtonController and rename a few things in ButtonPolicies
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@997 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
f2e1dfc16e
commit
e0c724415c
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
||||
2000-09-01 Allan Rae <rae@lyx.org>
|
||||
|
||||
* src/frontends/ButtonPolicies.C: renamed all the references to
|
||||
PreferencesPolicy::{AllButtons,BOGUS} to be ButtonPolicy.
|
||||
|
||||
* src/frontends/ButtonPolicies.h: rename AllButtons to ALL_BUTTONS
|
||||
since it's a const not a type.
|
||||
|
||||
* src/frontends/xforms/ButtonController.h: cleanup before Lars does.
|
||||
|
||||
2000-08-31 Juergen Vigna <jug@sad.it>
|
||||
|
||||
* src/insets/figinset.C: Various changes to look if the filename has
|
||||
|
@ -48,9 +48,9 @@ void nextState(ButtonPolicy::State & state,
|
||||
|
||||
PreferencesPolicy::PreferencesPolicy()
|
||||
: state_(INITIAL),
|
||||
outputs_(APPLIED + 1, PreferencesPolicy::AllButtons),
|
||||
outputs_(APPLIED + 1, ButtonPolicy::ALL_BUTTONS),
|
||||
state_machine_(APPLIED + 1,
|
||||
StateArray(SMI_TOTAL, PreferencesPolicy::BOGUS))
|
||||
StateArray(SMI_TOTAL, ButtonPolicy::BOGUS))
|
||||
{
|
||||
// Build the state output map
|
||||
outputs_[INITIAL] = CLOSE;
|
||||
@ -121,9 +121,9 @@ void PreferencesPolicy::input(SMInput input)
|
||||
|
||||
OkCancelPolicy::OkCancelPolicy()
|
||||
: state_(INITIAL),
|
||||
outputs_(INVALID + 1, PreferencesPolicy::AllButtons),
|
||||
outputs_(INVALID + 1, ButtonPolicy::ALL_BUTTONS),
|
||||
state_machine_(INVALID + 1,
|
||||
StateArray(SMI_TOTAL, PreferencesPolicy::BOGUS))
|
||||
StateArray(SMI_TOTAL, ButtonPolicy::BOGUS))
|
||||
{
|
||||
// Build the state output map
|
||||
outputs_[INITIAL] = CLOSE;
|
||||
@ -174,9 +174,9 @@ void OkCancelPolicy::input(SMInput input)
|
||||
|
||||
OkCancelReadOnlyPolicy::OkCancelReadOnlyPolicy()
|
||||
: state_(INITIAL),
|
||||
outputs_(RO_INVALID + 1, PreferencesPolicy::AllButtons),
|
||||
outputs_(RO_INVALID + 1, ButtonPolicy::ALL_BUTTONS),
|
||||
state_machine_(RO_INVALID + 1,
|
||||
StateArray(SMI_TOTAL, PreferencesPolicy::BOGUS))
|
||||
StateArray(SMI_TOTAL, ButtonPolicy::BOGUS))
|
||||
{
|
||||
// Build the state output map
|
||||
outputs_[INITIAL] = CLOSE;
|
||||
@ -249,9 +249,9 @@ void OkCancelReadOnlyPolicy::input(SMInput input)
|
||||
|
||||
NoRepeatedApplyReadOnlyPolicy::NoRepeatedApplyReadOnlyPolicy()
|
||||
: state_(INITIAL),
|
||||
outputs_(RO_INVALID + 1, PreferencesPolicy::AllButtons),
|
||||
outputs_(RO_INVALID + 1, ButtonPolicy::ALL_BUTTONS),
|
||||
state_machine_(RO_INVALID + 1,
|
||||
StateArray(SMI_TOTAL, PreferencesPolicy::BOGUS))
|
||||
StateArray(SMI_TOTAL, ButtonPolicy::BOGUS))
|
||||
{
|
||||
// Build the state output map
|
||||
outputs_[INITIAL] = CLOSE;
|
||||
@ -325,9 +325,9 @@ void NoRepeatedApplyReadOnlyPolicy::input(SMInput input)
|
||||
|
||||
OkApplyCancelReadOnlyPolicy::OkApplyCancelReadOnlyPolicy()
|
||||
: state_(INITIAL),
|
||||
outputs_(RO_APPLIED + 1, PreferencesPolicy::AllButtons),
|
||||
outputs_(RO_APPLIED + 1, ButtonPolicy::ALL_BUTTONS),
|
||||
state_machine_(RO_APPLIED + 1,
|
||||
StateArray(SMI_TOTAL, PreferencesPolicy::BOGUS))
|
||||
StateArray(SMI_TOTAL, ButtonPolicy::BOGUS))
|
||||
{
|
||||
// Build the state output map
|
||||
outputs_[INITIAL] = CLOSE;
|
||||
@ -415,9 +415,9 @@ void OkApplyCancelReadOnlyPolicy::input(SMInput input)
|
||||
|
||||
OkApplyCancelPolicy::OkApplyCancelPolicy()
|
||||
: state_(INITIAL),
|
||||
outputs_(APPLIED + 1, PreferencesPolicy::AllButtons),
|
||||
outputs_(APPLIED + 1, ButtonPolicy::ALL_BUTTONS),
|
||||
state_machine_(APPLIED + 1,
|
||||
StateArray(SMI_TOTAL, PreferencesPolicy::BOGUS))
|
||||
StateArray(SMI_TOTAL, ButtonPolicy::BOGUS))
|
||||
{
|
||||
// Build the state output map
|
||||
outputs_[INITIAL] = CLOSE;
|
||||
@ -479,9 +479,9 @@ void OkApplyCancelPolicy::input(SMInput input)
|
||||
|
||||
NoRepeatedApplyPolicy::NoRepeatedApplyPolicy()
|
||||
: state_(INITIAL),
|
||||
outputs_(INVALID + 1, PreferencesPolicy::AllButtons),
|
||||
outputs_(INVALID + 1, ButtonPolicy::ALL_BUTTONS),
|
||||
state_machine_(INVALID + 1,
|
||||
StateArray(SMI_TOTAL, PreferencesPolicy::BOGUS))
|
||||
StateArray(SMI_TOTAL, ButtonPolicy::BOGUS))
|
||||
{
|
||||
// Build the state output map
|
||||
outputs_[INITIAL] = CLOSE;
|
||||
|
@ -106,9 +106,9 @@ public:
|
||||
UNDO_ALL = 8
|
||||
};
|
||||
///
|
||||
static const Button AllButtons =
|
||||
Button(OKAY | APPLY | CANCEL | UNDO_ALL);
|
||||
|
||||
static const Button ALL_BUTTONS =
|
||||
Button(OKAY | APPLY | CANCEL | UNDO_ALL);
|
||||
|
||||
/** State machine inputs.
|
||||
All the policies so far have both CANCEL and HIDE always going to
|
||||
INITIAL. This won't necessarily be true for all [future] policies
|
||||
|
@ -29,13 +29,12 @@
|
||||
Actually supports 4 buttons in all and it's up to the user to decide on
|
||||
the activation policy and which buttons correspond to which output of the
|
||||
state machine.
|
||||
@author Allan Rae <rae@lyx.org>
|
||||
*/
|
||||
template <class Policy>
|
||||
class ButtonController : public noncopyable
|
||||
{
|
||||
public:
|
||||
/**@name Constructors and Deconstructors */
|
||||
//@{
|
||||
/** Constructor.
|
||||
The cancel/close label entries are _not_ managed within the class
|
||||
thereby allowing you to reassign at will and to use static labels.
|
||||
@ -49,153 +48,161 @@ public:
|
||||
read_only_(), cancel_label(cancel), close_label(close) {}
|
||||
/// Somebody else owns the FL_OBJECTs we just manipulate them.
|
||||
~ButtonController() {}
|
||||
//@}
|
||||
|
||||
/**@name Initialise Button Functions */
|
||||
//@{
|
||||
/* Initialise Button Functions */
|
||||
/// Call refresh() when finished setting the buttons.
|
||||
void setOK(FL_OBJECT * obj)
|
||||
{ okay_ = obj; }
|
||||
void setOK(FL_OBJECT * obj) {
|
||||
okay_ = obj;
|
||||
}
|
||||
///
|
||||
void setApply(FL_OBJECT * obj)
|
||||
{ apply_ = obj; }
|
||||
void setApply(FL_OBJECT * obj) {
|
||||
apply_ = obj;
|
||||
}
|
||||
///
|
||||
void setCancel(FL_OBJECT * obj)
|
||||
{ cancel_ = obj; }
|
||||
void setCancel(FL_OBJECT * obj) {
|
||||
cancel_ = obj;
|
||||
}
|
||||
///
|
||||
void setUndoAll(FL_OBJECT * obj)
|
||||
{ undo_all_ = obj; }
|
||||
void setUndoAll(FL_OBJECT * obj) {
|
||||
undo_all_ = obj;
|
||||
}
|
||||
///
|
||||
void setCancelTrueLabel(char const * c)
|
||||
{ cancel_label = c; }
|
||||
void setCancelTrueLabel(char const * c) {
|
||||
cancel_label = c;
|
||||
}
|
||||
///
|
||||
void setCancelFalseLabel(char const * c)
|
||||
{ close_label = c; }
|
||||
void setCancelFalseLabel(char const * c) {
|
||||
close_label = c;
|
||||
}
|
||||
///
|
||||
void addReadOnly(FL_OBJECT * obj)
|
||||
{ read_only_.push_front(obj); }
|
||||
void addReadOnly(FL_OBJECT * obj) {
|
||||
read_only_.push_front(obj);
|
||||
}
|
||||
///
|
||||
void eraseReadOnly()
|
||||
{ read_only_.erase(read_only_.begin(), read_only_.end()); }
|
||||
//@}
|
||||
void eraseReadOnly() {
|
||||
read_only_.erase(read_only_.begin(), read_only_.end());
|
||||
}
|
||||
|
||||
/**@name Action Functions */
|
||||
//@{
|
||||
/* Action Functions */
|
||||
///
|
||||
void input(ButtonPolicy::SMInput in)
|
||||
{
|
||||
bp_.input(in);
|
||||
refresh();
|
||||
}
|
||||
void input(ButtonPolicy::SMInput in) {
|
||||
bp_.input(in);
|
||||
refresh();
|
||||
}
|
||||
///
|
||||
void ok()
|
||||
{ input(ButtonPolicy::SMI_OKAY); }
|
||||
void ok() {
|
||||
input(ButtonPolicy::SMI_OKAY);
|
||||
}
|
||||
///
|
||||
void apply()
|
||||
{ input(ButtonPolicy::SMI_APPLY); }
|
||||
void apply() {
|
||||
input(ButtonPolicy::SMI_APPLY);
|
||||
}
|
||||
///
|
||||
void cancel()
|
||||
{ input(ButtonPolicy::SMI_CANCEL); }
|
||||
void cancel() {
|
||||
input(ButtonPolicy::SMI_CANCEL);
|
||||
}
|
||||
///
|
||||
void undoAll()
|
||||
{ input(ButtonPolicy::SMI_UNDO_ALL); }
|
||||
void undoAll() {
|
||||
input(ButtonPolicy::SMI_UNDO_ALL);
|
||||
}
|
||||
///
|
||||
void hide()
|
||||
{ input(ButtonPolicy::SMI_HIDE); }
|
||||
void hide() {
|
||||
input(ButtonPolicy::SMI_HIDE);
|
||||
}
|
||||
/// Passthrough function -- returns its input value
|
||||
bool readOnly(bool ro = true)
|
||||
{
|
||||
if (ro) {
|
||||
input(ButtonPolicy::SMI_READ_ONLY);
|
||||
} else {
|
||||
input(ButtonPolicy::SMI_READ_WRITE);
|
||||
}
|
||||
return ro;
|
||||
bool readOnly(bool ro = true) {
|
||||
if (ro) {
|
||||
input(ButtonPolicy::SMI_READ_ONLY);
|
||||
} else {
|
||||
input(ButtonPolicy::SMI_READ_WRITE);
|
||||
}
|
||||
return ro;
|
||||
}
|
||||
///
|
||||
void readWrite()
|
||||
{ read_only(false); }
|
||||
void readWrite() {
|
||||
read_only(false);
|
||||
}
|
||||
/// Passthrough function -- returns its input value
|
||||
bool valid(bool v = true)
|
||||
{
|
||||
if (v) {
|
||||
input(ButtonPolicy::SMI_VALID);
|
||||
} else {
|
||||
input(ButtonPolicy::SMI_INVALID);
|
||||
}
|
||||
return v;
|
||||
bool valid(bool v = true) {
|
||||
if (v) {
|
||||
input(ButtonPolicy::SMI_VALID);
|
||||
} else {
|
||||
input(ButtonPolicy::SMI_INVALID);
|
||||
}
|
||||
return v;
|
||||
}
|
||||
///
|
||||
void invalid()
|
||||
{ valid(false); }
|
||||
void invalid() {
|
||||
valid(false);
|
||||
}
|
||||
/// force a refresh of the buttons
|
||||
void refresh()
|
||||
{
|
||||
if (okay_) {
|
||||
if (bp_.buttonStatus(ButtonPolicy::OKAY)) {
|
||||
fl_activate_object(okay_);
|
||||
fl_set_object_lcol(okay_, FL_BLACK);
|
||||
} else {
|
||||
fl_deactivate_object(okay_);
|
||||
fl_set_object_lcol(okay_, FL_INACTIVE);
|
||||
}
|
||||
void refresh() {
|
||||
if (okay_) {
|
||||
if (bp_.buttonStatus(ButtonPolicy::OKAY)) {
|
||||
fl_activate_object(okay_);
|
||||
fl_set_object_lcol(okay_, FL_BLACK);
|
||||
} else {
|
||||
fl_deactivate_object(okay_);
|
||||
fl_set_object_lcol(okay_, FL_INACTIVE);
|
||||
}
|
||||
if (apply_) {
|
||||
if (bp_.buttonStatus(ButtonPolicy::APPLY)) {
|
||||
fl_activate_object(apply_);
|
||||
fl_set_object_lcol(apply_, FL_BLACK);
|
||||
} else {
|
||||
fl_deactivate_object(apply_);
|
||||
fl_set_object_lcol(apply_, FL_INACTIVE);
|
||||
}
|
||||
}
|
||||
if (apply_) {
|
||||
if (bp_.buttonStatus(ButtonPolicy::APPLY)) {
|
||||
fl_activate_object(apply_);
|
||||
fl_set_object_lcol(apply_, FL_BLACK);
|
||||
} else {
|
||||
fl_deactivate_object(apply_);
|
||||
fl_set_object_lcol(apply_, FL_INACTIVE);
|
||||
}
|
||||
if (undo_all_) {
|
||||
if (bp_.buttonStatus(ButtonPolicy::UNDO_ALL)) {
|
||||
fl_activate_object(undo_all_);
|
||||
fl_set_object_lcol(undo_all_, FL_BLACK);
|
||||
} else {
|
||||
fl_deactivate_object(undo_all_);
|
||||
fl_set_object_lcol(undo_all_,
|
||||
}
|
||||
if (undo_all_) {
|
||||
if (bp_.buttonStatus(ButtonPolicy::UNDO_ALL)) {
|
||||
fl_activate_object(undo_all_);
|
||||
fl_set_object_lcol(undo_all_, FL_BLACK);
|
||||
} else {
|
||||
fl_deactivate_object(undo_all_);
|
||||
fl_set_object_lcol(undo_all_,
|
||||
FL_INACTIVE);
|
||||
}
|
||||
}
|
||||
if (cancel_) {
|
||||
if (bp_.buttonStatus(ButtonPolicy::CANCEL)) {
|
||||
fl_set_object_label(cancel_,
|
||||
cancel_label);
|
||||
} else {
|
||||
fl_set_object_label(cancel_,
|
||||
close_label);
|
||||
}
|
||||
}
|
||||
if (!read_only_.empty()) {
|
||||
if (bp_.isReadOnly()) {
|
||||
std::list<FL_OBJECT *>::iterator
|
||||
end = read_only_.end();
|
||||
for (std::list<FL_OBJECT *>::iterator
|
||||
iter = read_only_.begin();
|
||||
iter != end;
|
||||
++iter) {
|
||||
fl_deactivate_object(*iter);
|
||||
fl_set_object_lcol(*iter,
|
||||
FL_INACTIVE);
|
||||
}
|
||||
}
|
||||
if (cancel_) {
|
||||
if (bp_.buttonStatus(ButtonPolicy::CANCEL)) {
|
||||
fl_set_object_label(cancel_,
|
||||
cancel_label);
|
||||
} else {
|
||||
fl_set_object_label(cancel_,
|
||||
close_label);
|
||||
}
|
||||
}
|
||||
if (!read_only_.empty()) {
|
||||
if (bp_.isReadOnly()) {
|
||||
for (std::list<FL_OBJECT *>::iterator
|
||||
iter = read_only_.begin();
|
||||
iter != read_only_.end();
|
||||
++iter) {
|
||||
fl_deactivate_object(*iter);
|
||||
fl_set_object_lcol(*iter,
|
||||
FL_INACTIVE);
|
||||
}
|
||||
} else {
|
||||
for (std::list<FL_OBJECT *>::iterator
|
||||
iter = read_only_.begin();
|
||||
iter != read_only_.end();
|
||||
++iter) {
|
||||
fl_activate_object(*iter);
|
||||
fl_set_object_lcol(*iter,
|
||||
FL_BLACK);
|
||||
}
|
||||
} else {
|
||||
std::list<FL_OBJECT *>::iterator
|
||||
end = read_only_.end();
|
||||
for (std::list<FL_OBJECT *>::iterator
|
||||
iter = read_only_.begin();
|
||||
iter != end;
|
||||
++iter) {
|
||||
fl_activate_object(*iter);
|
||||
fl_set_object_lcol(*iter,
|
||||
FL_BLACK);
|
||||
}
|
||||
}
|
||||
}
|
||||
//@}
|
||||
}
|
||||
private:
|
||||
///
|
||||
Policy bp_;
|
||||
/**@name Button Widgets */
|
||||
//@{
|
||||
///
|
||||
FL_OBJECT * okay_;
|
||||
///
|
||||
@ -206,14 +213,10 @@ private:
|
||||
FL_OBJECT * undo_all_;
|
||||
/// List of items to be deactivated when in one of the read-only states
|
||||
std::list<FL_OBJECT *> read_only_;
|
||||
//@}
|
||||
/**@name Cancel/Close Button Labels */
|
||||
//@{
|
||||
///
|
||||
char const * cancel_label;
|
||||
///
|
||||
char const * close_label;
|
||||
//@}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user