X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finseturl.C;h=848584044fbc0508b1678230eac65aaeacd97637;hb=4a5b7a5952ad2381fcdf4830511293e184c7c5a1;hp=540ac5bf458c3a65b40f6eabc04b289ba92417f9;hpb=def72111a5ac739cf8c5377a67adeee64c37e1ab;p=lyx.git diff --git a/src/insets/inseturl.C b/src/insets/inseturl.C index 540ac5bf45..848584044f 100644 --- a/src/insets/inseturl.C +++ b/src/insets/inseturl.C @@ -1,225 +1,78 @@ #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 - - -InsetUrl::InsetUrl(string const & cmd) - : fd_form_url(0) -{ - scanCommand(cmd); - if (getCmdName() == "url") - flag = InsetUrl::URL; - else - flag = InsetUrl::HTML_URL; -} - - -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; -} - +#include "LyXView.h" +#include "debug.h" +#include "frontends/Dialogs.h" +#include "support/lstrings.h" +#include "gettext.h" -InsetUrl::~InsetUrl() -{ - if (fd_form_url) { - fl_hide_form(fd_form_url->form_url); - fl_free_form(fd_form_url->form_url); - fd_form_url = 0; - } -} +using std::ostream; -void InsetUrl::CloseUrlCB(FL_OBJECT * ob, long) -{ - 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; - } -} +InsetUrl::InsetUrl(InsetCommandParams const & p, bool) + : InsetCommand(p) +{} -extern "C" void C_InsetUrl_CloseUrlCB(FL_OBJECT * ob, long data) +void InsetUrl::edit(BufferView * bv, int, int, unsigned int) { - InsetUrl::CloseUrlCB(ob, data); + bv->owner()->getDialogs()->showUrl(this); } -void InsetUrl::Edit(BufferView * bv, int, int, unsigned int) +void InsetUrl::edit(BufferView * bv, bool) { - 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); - } + edit(bv, 0, 0, 0); } -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 = _("HtmlUrl: "); + + if (!getOptions().empty()) temp += getOptions(); - } + else + temp += getContents(); + return temp; } -int InsetUrl::Latex(ostream & os, signed char fragile) const +int InsetUrl::latex(Buffer const *, ostream & os, + bool fragile, bool /*free_spc*/) const { -#ifdef USE_OSTREAM_ONLY if (!getOptions().empty()) os << getOptions() + ' '; if (fragile) os << "\\protect"; os << "\\url{" << getContents() << '}'; return 0; -#else - string latex_output; - int res = Latex(latex_output, fragile); - os << latex_output; - - return res; -#endif } -#ifndef USE_OSTREAM_ONLY -int InsetUrl::Latex(string & file, signed char fragile) const +int InsetUrl::ascii(Buffer const *, ostream & os, int) const { - if (!getOptions().empty()) - file += getOptions() + ' '; - if (fragile) - file += "\\protect"; - - file += "\\url{" + getContents() + '}'; - - return 0; -} - - -int InsetUrl::Linuxdoc(string & file) const -{ - file += "<"+ getCmdName() + - " url=\"" + getContents()+"\"" + - " name=\"" + getOptions() +"\">"; - - return 0; -} - - -int InsetUrl::DocBook(string & file) const -{ - file += "" + - getOptions() +""; - + if (getOptions().empty()) + os << "[" << getContents() << "]"; + else + os << "[" << getContents() << "||" << getOptions() << "]"; return 0; } -#else -int InsetUrl::Linuxdoc(ostream & os) const +int InsetUrl::linuxdoc(Buffer const *, ostream & os) const { os << "<" << getCmdName() << " url=\"" << getContents() << "\"" @@ -229,16 +82,15 @@ int InsetUrl::Linuxdoc(ostream & os) const } -int InsetUrl::DocBook(ostream & os) const +int InsetUrl::docbook(Buffer const *, ostream & os) const { - os << "" - << getOptions() << ""; + os << "" << getOptions() << ""; return 0; } -#endif -void InsetUrl::Validate(LaTeXFeatures & features) const +void InsetUrl::validate(LaTeXFeatures & features) const { - features.url = true; + features.require("url"); }