#include "lyxfunc.h"
FormUrl::FormUrl(LyXView * lv, Dialogs * d)
- : FormCommand(lv, d, _("Url"), new OkCancelReadOnlyPolicy),
+ : FormCommand(lv, d, _("Url"), new NoRepeatedApplyReadOnlyPolicy),
dialog_(0)
{
// let the dialog be shown
FL_FORM * FormUrl::form() const
{
- if (dialog_ ) return dialog_->form;
+ if (dialog_) return dialog_->form;
return 0;
}
{
dialog_ = build_url();
-#ifdef WITH_WARNINGS
-#warning use the buttoncontroller
-#endif
// Workaround dumb xforms sizing bug
minw_ = form()->w;
minh_ = form()->h;
+
+ fl_set_input_return(dialog_->name, FL_RETURN_CHANGED);
+ fl_set_input_return(dialog_->url, FL_RETURN_CHANGED);
+
+ // Manage the ok, apply, restore and cancel/close buttons
+ bc_.setOK(dialog_->button_ok);
+ bc_.setApply(dialog_->button_apply);
+ bc_.setCancel(dialog_->button_cancel);
+ bc_.setUndoAll(dialog_->button_restore);
+ bc_.refresh();
+
+ bc_.addReadOnly(dialog_->name);
+ bc_.addReadOnly(dialog_->url);
+ bc_.addReadOnly(dialog_->radio_html);
}
else
fl_set_button(dialog_->radio_html, 1);
- if (lv_->buffer()->isReadonly()) {
- fl_deactivate_object(dialog_->url);
- fl_deactivate_object(dialog_->name);
- fl_deactivate_object(dialog_->radio_html);
- fl_deactivate_object(dialog_->button_ok);
- fl_set_object_lcol(dialog_->button_ok, FL_INACTIVE);
- } else {
- fl_activate_object(dialog_->url);
- fl_activate_object(dialog_->name);
- fl_activate_object(dialog_->radio_html);
- fl_activate_object(dialog_->button_ok);
- fl_set_object_lcol(dialog_->button_ok, FL_BLACK);
- }
+ bc_.readOnly(lv_->buffer()->isReadonly());
}