X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finseturl.C;h=848584044fbc0508b1678230eac65aaeacd97637;hb=4a5b7a5952ad2381fcdf4830511293e184c7c5a1;hp=af469908377cd70c9deaff0e6f2ce20d089569c6;hpb=d6fa7c567c47f1af95f026174a83bf75dde08f84;p=lyx.git diff --git a/src/insets/inseturl.C b/src/insets/inseturl.C index af46990837..848584044f 100644 --- a/src/insets/inseturl.C +++ b/src/insets/inseturl.C @@ -1,214 +1,96 @@ #include -#include - #ifdef __GNUG__ #pragma implementation #endif -#include FORMS_H_LOCATION #include "inseturl.h" -#include "LString.h" -#include "commandtags.h" -#include "gettext.h" +#include "BufferView.h" #include "LaTeXFeatures.h" -#include "lyx_gui_misc.h" // CancelCloseBoxCB +#include "LyXView.h" +#include "debug.h" +#include "frontends/Dialogs.h" +#include "support/lstrings.h" +#include "gettext.h" +using std::ostream; -InsetUrl::InsetUrl(string const & cmd) - : fd_form_url(0) -{ - scanCommand(cmd); - if (getCmdName() == "url") - flag = InsetUrl::URL; - else - flag = InsetUrl::HTML_URL; -} +InsetUrl::InsetUrl(InsetCommandParams const & p, bool) + : InsetCommand(p) +{} -InsetUrl::InsetUrl(InsetCommand const & inscmd) - : fd_form_url(0) -{ - setCmdName(inscmd.getCmdName()); - setContents(inscmd.getContents()); - setOptions(inscmd.getOptions()); - if (getCmdName() == "url") - flag = InsetUrl::URL; - else - flag = InsetUrl::HTML_URL; -} - -InsetUrl::InsetUrl(string const & ins_name, string const & ins_cont, - string const & ins_opt) - : fd_form_url(0) -{ - setCmdName(ins_name); - setContents(ins_cont); - setOptions(ins_opt); - if (ins_name == "url") - flag = InsetUrl::URL; - else - flag = InsetUrl::HTML_URL; -} - - -InsetUrl::~InsetUrl() +void InsetUrl::edit(BufferView * bv, int, int, unsigned int) { - if (fd_form_url) { - fl_hide_form(fd_form_url->form_url); - fl_free_form(fd_form_url->form_url); - fd_form_url = 0; - } + bv->owner()->getDialogs()->showUrl(this); } -void InsetUrl::CloseUrlCB(FL_OBJECT * ob, long) +void InsetUrl::edit(BufferView * bv, bool) { - Holder * holder = static_cast(ob->u_vdata); - - InsetUrl * inset = holder->inset; - BufferView * bv = holder->view; - - string url = fl_get_input(inset->fd_form_url->url_name); - string name = fl_get_input(inset->fd_form_url->name_name); - string cmdname; - if (fl_get_button(inset->fd_form_url->radio_html)) - cmdname = "htmlurl"; - else - cmdname = "url"; - - Buffer * buffer = bv->buffer(); - - if ((url != inset->getContents() || - name != inset->getOptions() || - cmdname != inset->getCmdName()) - && !(buffer->isReadonly()) ) { - buffer->markDirty(); - inset->setContents(url); - inset->setOptions(name); - inset->setCmdName(cmdname); - if (cmdname == "url") - inset->flag = InsetUrl::URL; - else - inset->flag = InsetUrl::HTML_URL; - bv->updateInset(inset, true); - } - - if (inset->fd_form_url) { - fl_hide_form(inset->fd_form_url->form_url); - fl_free_form(inset->fd_form_url->form_url); - inset->fd_form_url = 0; - } + edit(bv, 0, 0, 0); } -extern "C" void C_InsetUrl_CloseUrlCB(FL_OBJECT * ob, long data) -{ - InsetUrl::CloseUrlCB(ob, data); -} - - -void InsetUrl::Edit(BufferView * bv, int, int, unsigned int) -{ - static int ow = -1, oh; - - if(bv->buffer()->isReadonly()) - WarnReadonly(bv->buffer()->fileName()); - - if (!fd_form_url) { - fd_form_url = create_form_form_url(); - holder.inset = this; - fd_form_url->button_close->u_vdata = &holder; - fl_set_form_atclose(fd_form_url->form_url, - CancelCloseBoxCB, 0); - } - holder.view = bv; - fl_set_input(fd_form_url->url_name, getContents().c_str()); - fl_set_input(fd_form_url->name_name, getOptions().c_str()); - switch(flag) { - case InsetUrl::URL: - fl_set_button(fd_form_url->radio_html, 0); - break; - case InsetUrl::HTML_URL: - fl_set_button(fd_form_url->radio_html, 1); - break; - } - - if (fd_form_url->form_url->visible) { - fl_raise_form(fd_form_url->form_url); - } else { - fl_show_form(fd_form_url->form_url, - FL_PLACE_MOUSE | FL_FREE_SIZE, - FL_FULLBORDER, _("Insert Url")); - if (ow < 0) { - ow = fd_form_url->form_url->w; - oh = fd_form_url->form_url->h; - } - fl_set_form_minsize(fd_form_url->form_url, ow, oh); - } -} - - -string InsetUrl::getScreenLabel() const +string const InsetUrl::getScreenLabel(Buffer const *) const { string temp; - if (flag == InsetUrl::HTML_URL) - temp += _("HtmlUrl: "); + if (getCmdName() == "url") + temp = _("Url: "); else - temp += _("Url: "); - temp += getContents(); - if(!getOptions().empty()) { - temp += "||"; - temp += getOptions(); - } - return temp; -} - + temp = _("HtmlUrl: "); -int InsetUrl::Latex(ostream & os, signed char fragile) const -{ - string latex_output; - int res = Latex(latex_output, fragile); - os << latex_output; + if (!getOptions().empty()) + temp += getOptions(); + else + temp += getContents(); - return res; + return temp; } -int InsetUrl::Latex(string & file, signed char fragile) const +int InsetUrl::latex(Buffer const *, ostream & os, + bool fragile, bool /*free_spc*/) const { if (!getOptions().empty()) - file += getOptions() + ' '; + os << getOptions() + ' '; if (fragile) - file += "\\protect"; + os << "\\protect"; + os << "\\url{" << getContents() << '}'; + return 0; +} - file += "\\url{" + getContents() + '}'; +int InsetUrl::ascii(Buffer const *, ostream & os, int) const +{ + if (getOptions().empty()) + os << "[" << getContents() << "]"; + else + os << "[" << getContents() << "||" << getOptions() << "]"; return 0; } -int InsetUrl::Linuxdoc(string & file) const +int InsetUrl::linuxdoc(Buffer const *, ostream & os) const { - file += "<"+ getCmdName() + - " url=\"" + getContents()+"\"" + - " name=\"" + getOptions() +"\">"; + os << "<" << getCmdName() + << " url=\"" << getContents() << "\"" + << " name=\"" << getOptions() << "\">"; return 0; } -int InsetUrl::DocBook(string & file) const +int InsetUrl::docbook(Buffer const *, ostream & os) const { - file += "" + - getOptions() +""; - + os << "" << getOptions() << ""; return 0; } -void InsetUrl::Validate(LaTeXFeatures & features) const +void InsetUrl::validate(LaTeXFeatures & features) const { - features.url = true; + features.require("url"); }