X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finseterror.C;h=b1a879cfaa531a2959cc8b80029722a9af58f07a;hb=3c8aba3b556871fb1100a2f98cd93d5d4e3f70c9;hp=bac1127fcf4f4e5c08ebe7791e5859ce6db458e5;hpb=27de1486ca34aaad446adb798d71a77d6f6304da;p=lyx.git diff --git a/src/insets/inseterror.C b/src/insets/inseterror.C index bac1127fcf..b1a879cfaa 100644 --- a/src/insets/inseterror.C +++ b/src/insets/inseterror.C @@ -3,10 +3,10 @@ * * LyX, The Document Processor * - * Copyright (C) 1995 Matthias Ettrich - * Copyright (C) 1995-1998 The LyX Team. + * Copyright 1995 Matthias Ettrich + * Copyright 1995-2000 The LyX Team. * - *======================================================*/ + * ====================================================== */ #include @@ -14,30 +14,26 @@ #pragma implementation #endif - -#include "definitions.h" #include "inseterror.h" -#include "lyxdraw.h" #include "gettext.h" #include "lyx_gui_misc.h" // CancelCloseBoxCB +#include "Painter.h" +#include "font.h" -// $Id: inseterror.C,v 1.1 1999/09/27 18:44:39 larsbj Exp $ - -#if !defined(lint) && !defined(WITH_WARNINGS) -static char vcid[] = "$Id: inseterror.C,v 1.1 1999/09/27 18:44:39 larsbj Exp $"; -#endif /* lint */ +using std::ostream; /* Error, used for the LaTeX-Error Messages */ InsetError::InsetError() { - form = NULL; + form = 0; } -InsetError::InsetError(LString const & string) - : contents(string) + +InsetError::InsetError(string const & str) + : contents(str) { - form = NULL; + form = 0; } @@ -46,90 +42,88 @@ InsetError::~InsetError() if (form) { fl_hide_form(form); fl_free_form(form); - form = NULL; + form = 0; } } -int InsetError::Ascent(LyXFont const &font) const +int InsetError::ascent(Painter &, LyXFont const & font) const { LyXFont efont; efont.setSize(font.size()).decSize(); - return efont.maxAscent()+1; + return lyxfont::maxAscent(efont) + 1; } -int InsetError::Descent(LyXFont const &font) const +int InsetError::descent(Painter &, LyXFont const & font) const { LyXFont efont; efont.setSize(font.size()).decSize(); - return efont.maxDescent()+1; + return lyxfont::maxDescent(efont) + 1; } -int InsetError::Width(LyXFont const &font) const +int InsetError::width(Painter &, LyXFont const & font) const { LyXFont efont; efont.setSize(font.size()).decSize(); - return 6 + efont.textWidth(_("Error"), strlen(_("Error"))); + return 6 + lyxfont::width(_("Error"), efont); } -void InsetError::Draw(LyXFont font, LyXScreen &scr, - int baseline, float &x) +void InsetError::draw(Painter & pain, LyXFont const & font, + int baseline, float & x) const { LyXFont efont; efont.setSize(font.size()).decSize(); - efont.setLatex(LyXFont::ON); + efont.setColor(LColor::error); // Draw as "Error" in a framed box x += 1; - //scr.drawFilledRectangle(int(x), baseline - Ascent(font)+1, - // Width(font)-2,Ascent(font)+ Descent(font)-2, - // FL_GRAY80); - scr.fillRectangle(gc_lighted, - int(x), baseline - Ascent(font)+1, - Width(font)-2,Ascent(font)+ Descent(font)-2); - //scr.drawRectangle(int(x), baseline-Ascent(font)+1, - // Width(font)-2, Ascent(font)+Descent(font)-2, - // FL_RED); - scr.drawRectangle(gc_foot, - int(x), baseline-Ascent(font)+1, - Width(font)-2, Ascent(font)+Descent(font)-2); - scr.drawString(efont, _("Error"), baseline, int(x+2)); + pain.fillRectangle(int(x), baseline - ascent(pain, font) + 1, + width(pain, font) - 2, + ascent(pain, font) + descent(pain, font) - 2, + LColor::insetbg); + pain.rectangle(int(x), baseline - ascent(pain, font) + 1, + width(pain, font) - 2, + ascent(pain, font) + descent(pain, font) - 2, + LColor::error); + pain.text(int(x + 2), baseline, _("Error"), efont); - x += Width(font) - 1; + x += width(pain, font) - 1; } -void InsetError::Write(FILE *) +void InsetError::Write(ostream &) const { } + void InsetError::Read(LyXLex &) { } -int InsetError::Latex(FILE *, signed char /*fragile*/) +int InsetError::Latex(ostream &, + bool /*fragile*/, bool /*fs*/) const { return 0; } -int InsetError::Latex(LString &, signed char /*fragile*/) +int InsetError::Ascii(ostream &) const { return 0; } -int InsetError::Linuxdoc(LString &) +int InsetError::Linuxdoc(ostream &) const { return 0; } -int InsetError::DocBook(LString &) +int InsetError::DocBook(ostream &) const { return 0; } @@ -141,49 +135,67 @@ bool InsetError::AutoDelete() const } -unsigned char InsetError::Editable() const +Inset::EDITABLE InsetError::Editable() const { - return 1; + return IS_EDITABLE; } -void InsetError::CloseErrorCB(FL_OBJECT *, long data) +void InsetError::CloseErrorCB(FL_OBJECT * ob, long) { - InsetError *inset = (InsetError*) data; + InsetError * inset = static_cast(ob->u_vdata); if (inset->form) { fl_hide_form(inset->form); fl_free_form(inset->form); - inset->form = NULL; + inset->form = 0; } } -void InsetError::Edit(int, int) + +// A C wrapper +extern "C" void C_InsetError_CloseErrorCB(FL_OBJECT * ob, long data) +{ + InsetError::CloseErrorCB(ob , data); +} + + +char const * InsetError::EditMessage() const { + return _("Opened error"); +} + + +void InsetError::Edit(BufferView *, int, int, unsigned int) +{ + static int ow = 400, oh = 240; + if (!form) { - FL_OBJECT *obj; - form = fl_bgn_form(FL_UP_BOX,400,240); - strobj = fl_add_box(FL_FRAME_BOX,10,10,380,180,""); - fl_set_object_color(strobj,FL_MCOL,FL_MCOL); + FL_OBJECT * obj; + form = fl_bgn_form(FL_UP_BOX, ow, oh); + strobj = fl_add_box(FL_FRAME_BOX, 10, 10, 380, 180, ""); + fl_set_object_color(strobj, FL_MCOL, FL_MCOL); fl_set_object_gravity(strobj, FL_NorthWest, FL_SouthEast); - obj = fl_add_button(FL_RETURN_BUTTON,140,200,120,30,_("Close")); - fl_set_object_callback(obj, CloseErrorCB, (long)this); - fl_set_object_gravity(obj, FL_South, FL_South); + obj = fl_add_button(FL_RETURN_BUTTON, 140, 200, 120, 30, + _("Close")); + fl_set_object_callback(obj, C_InsetError_CloseErrorCB, 0); + obj->u_vdata = this; + fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast); fl_set_object_resize(obj, FL_RESIZE_NONE); fl_end_form(); - fl_set_form_atclose(form, CancelCloseBoxCB, NULL); + fl_set_form_atclose(form, CancelCloseBoxCB, 0); } fl_set_object_label(strobj, contents.c_str()); if (form->visible) { fl_raise_form(form); } else { - fl_show_form(form,FL_PLACE_MOUSE | FL_FREE_SIZE, FL_FULLBORDER, - _("LaTeX Error")); + fl_show_form(form, FL_PLACE_MOUSE | FL_FREE_SIZE, + FL_FULLBORDER, _("LaTeX Error")); + fl_set_form_minsize(form, ow, oh); } } -Inset* InsetError::Clone() +Inset * InsetError::Clone() const { - InsetError *result = new InsetError(contents); - return result; + return new InsetError(contents); }