X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fxforms%2FFormUrl.C;h=276965721708acc310ef2b43e0c74594d0292b05;hb=3e39bef2c13125023f3b72532d90575bbe307335;hp=548141b750d76d2d955ccddfaf890d946ef8f1cb;hpb=2c80c7bdd18297db73e9715f6647c7c10ff06c75;p=lyx.git diff --git a/src/frontends/xforms/FormUrl.C b/src/frontends/xforms/FormUrl.C index 548141b750..2769657217 100644 --- a/src/frontends/xforms/FormUrl.C +++ b/src/frontends/xforms/FormUrl.C @@ -1,113 +1,73 @@ -// -*- C++ -*- -/* This file is part of - * ====================================================== +/** + * \file xforms/FormUrl.C + * Copyright 2000-2001 The LyX Team. + * See the file COPYING. * - * LyX, The Document Processor - * - * Copyright 2000 The LyX Team. - * - * ====================================================== + * \author Angus Leeming, a.leeming@ic.ac.uk */ -#include -#include FORMS_H_LOCATION +#include #ifdef __GNUG__ #pragma implementation #endif - -#include "Dialogs.h" +#include "xformsBC.h" +#include "ControlUrl.h" #include "FormUrl.h" -#include "LyXView.h" -#include "buffer.h" #include "form_url.h" -#include "lyxfunc.h" -FormUrl::FormUrl(LyXView * lv, Dialogs * d) - : FormCommand(lv, d, _("Url")), minh(0), minw(0), dialog_(0) -{ - // let the dialog be shown - // These are permanent connections so we won't bother - // storing a copy because we won't be disconnecting. - d->showUrl.connect(slot(this, &FormUrl::showInset)); - d->createUrl.connect(slot(this, &FormUrl::createInset)); -} +typedef FormCB > base_class; +FormUrl::FormUrl(ControlUrl & c) + : base_class(c, _("Url")) +{} -FormUrl::~FormUrl() -{ - delete dialog_; -} - -FL_FORM * FormUrl::form() const +void FormUrl::build() { - if ( dialog_ ) return dialog_->form; - return 0; -} + dialog_.reset(build_url()); + fl_set_input_return(dialog_->input_name, FL_RETURN_CHANGED); + fl_set_input_return(dialog_->input_url, FL_RETURN_CHANGED); -void FormUrl::build() -{ - dialog_ = build_url(); + setPrehandler(dialog_->input_name); + setPrehandler(dialog_->input_url); + + // Manage the ok, apply, restore and cancel/close buttons + bc().setOK(dialog_->button_ok); + bc().setApply(dialog_->button_apply); + bc().setCancel(dialog_->button_close); + bc().setRestore(dialog_->button_restore); - // XFORMS bug workaround - // Define the min/max dimensions. Actually applied in update() - minw = form()->w; minh = form()->h; + bc().addReadOnly(dialog_->input_name); + bc().addReadOnly(dialog_->input_url); + bc().addReadOnly(dialog_->check_html); } void FormUrl::update() { - fl_set_form_minsize(form(), minw, minh); - fl_set_form_maxsize(form(), 2*minw, minh); + fl_set_input(dialog_->input_url, + controller().params().getContents().c_str()); + fl_set_input(dialog_->input_name, + controller().params().getOptions().c_str()); - fl_set_input(dialog_->url, params.getContents().c_str()); - fl_set_input(dialog_->name, params.getOptions().c_str()); - - if ( params.getCmdName() == "url" ) - fl_set_button(dialog_->radio_html, 0); + if (controller().params().getCmdName() == "url") + fl_set_button(dialog_->check_html, 0); 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 ); - } + fl_set_button(dialog_->check_html, 1); } void FormUrl::apply() { - if (lv_->buffer()->isReadonly()) return; - - params.setContents(fl_get_input(dialog_->url)); - params.setOptions(fl_get_input(dialog_->name)); + controller().params().setContents(fl_get_input(dialog_->input_url)); + controller().params().setOptions(fl_get_input(dialog_->input_name)); - if (fl_get_button(dialog_->radio_html)) - params.setCmdName("htmlurl"); + if (fl_get_button(dialog_->check_html)) + controller().params().setCmdName("htmlurl"); else - params.setCmdName("url"); - - if (inset_ != 0) { - // Only update if contents have changed - if (params != inset_->params()) { - inset_->setParams(params); - lv_->view()->updateInset(inset_, true); - } - } else { - lv_->getLyXFunc()->Dispatch(LFUN_INSERT_URL, - params.getAsString()); - } + controller().params().setCmdName("url"); }