]> git.lyx.org Git - features.git/commitdiff
Various fixes to InsetTabular and InsetText + Angus's cleanup patch.
authorJürgen Vigna <jug@sad.it>
Mon, 19 Feb 2001 16:01:31 +0000 (16:01 +0000)
committerJürgen Vigna <jug@sad.it>
Mon, 19 Feb 2001 16:01:31 +0000 (16:01 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@1535 a592a061-630c-0410-9148-cb99ea01b6c8

23 files changed:
po/POTFILES.in
src/BufferView.C
src/BufferView_pimpl.C
src/ChangeLog
src/buffer.h
src/frontends/xforms/ChangeLog
src/frontends/xforms/FormError.C
src/frontends/xforms/FormGraphics.C
src/frontends/xforms/FormInset.C
src/frontends/xforms/FormTabular.C
src/frontends/xforms/form_tabular.C
src/frontends/xforms/forms/form_tabular.fd
src/insets/ChangeLog
src/insets/inset.C
src/insets/insetcommand.h
src/insets/inseterror.h
src/insets/insetgraphics.C
src/insets/insetgraphics.h
src/insets/insettabular.C
src/insets/insettabular.h
src/insets/insettext.C
src/lyxtext.h
src/text.C

index 57191a66e3d02b3116a8a764eca976d614d39ac5..3b7b1bd1e40815283a31d45b45ee65ee4c69bee6 100644 (file)
@@ -71,44 +71,44 @@ src/frontends/qt2/FormTabularCreate.C
 src/frontends/qt2/paragraphdlgimpl.C
 src/frontends/qt2/tabularcreatedlgimpl.C
 src/frontends/xforms/FormBase.h
-src/frontends/xforms/form_bibitem.C
 src/frontends/xforms/FormBibitem.C
-src/frontends/xforms/form_bibtex.C
+src/frontends/xforms/form_bibitem.C
 src/frontends/xforms/FormBibtex.C
+src/frontends/xforms/form_bibtex.C
 src/frontends/xforms/form_browser.C
-src/frontends/xforms/form_citation.C
 src/frontends/xforms/FormCitation.C
-src/frontends/xforms/form_copyright.C
+src/frontends/xforms/form_citation.C
 src/frontends/xforms/FormCopyright.C
-src/frontends/xforms/form_document.C
+src/frontends/xforms/form_copyright.C
 src/frontends/xforms/FormDocument.C
-src/frontends/xforms/form_error.C
+src/frontends/xforms/form_document.C
 src/frontends/xforms/FormError.C
-src/frontends/xforms/form_graphics.C
+src/frontends/xforms/form_error.C
 src/frontends/xforms/FormGraphics.C
-src/frontends/xforms/form_include.C
+src/frontends/xforms/form_graphics.C
 src/frontends/xforms/FormInclude.C
-src/frontends/xforms/form_index.C
+src/frontends/xforms/form_include.C
 src/frontends/xforms/FormIndex.C
+src/frontends/xforms/form_index.C
 src/frontends/xforms/FormInset.h
 src/frontends/xforms/FormLog.C
-src/frontends/xforms/form_paragraph.C
 src/frontends/xforms/FormParagraph.C
-src/frontends/xforms/form_preferences.C
+src/frontends/xforms/form_paragraph.C
 src/frontends/xforms/FormPreferences.C
-src/frontends/xforms/form_print.C
+src/frontends/xforms/form_preferences.C
 src/frontends/xforms/FormPrint.C
-src/frontends/xforms/form_ref.C
+src/frontends/xforms/form_print.C
 src/frontends/xforms/FormRef.C
+src/frontends/xforms/form_ref.C
 src/frontends/xforms/FormSplash.C
-src/frontends/xforms/form_tabular.C
 src/frontends/xforms/FormTabular.C
-src/frontends/xforms/form_tabular_create.C
+src/frontends/xforms/form_tabular.C
 src/frontends/xforms/FormTabularCreate.C
-src/frontends/xforms/form_toc.C
+src/frontends/xforms/form_tabular_create.C
 src/frontends/xforms/FormToc.C
-src/frontends/xforms/form_url.C
+src/frontends/xforms/form_toc.C
 src/frontends/xforms/FormUrl.C
+src/frontends/xforms/form_url.C
 src/frontends/xforms/FormVCLog.C
 src/frontends/xforms/input_validators.C
 src/frontends/xforms/Menubar_pimpl.C
index 99474cf9d804111bcc72c274028dfac75e5bd51f..0eca845aeb5e0e026bc3188abebf39ad6a8189b0 100644 (file)
@@ -116,6 +116,12 @@ void BufferView::updateScrollbar()
 }
 
 
+void BufferView::scrollCB(double value)
+{
+       pimpl_->scrollCB(value);
+}
+
+
 Inset * BufferView::checkInsetHit(LyXText * text, int & x, int & y,
                                  unsigned int button)
 {
index fd5cdea0d8de25b31335fc273bf97e6ff5e3c465..dff6e8a53eac36c82d505cf1e572ceac95f45583 100644 (file)
@@ -242,6 +242,8 @@ int BufferView::Pimpl::resizeCurrentBuffer()
        LyXParagraph * par = 0;
        LyXParagraph * selstartpar = 0;
        LyXParagraph * selendpar = 0;
+       UpdatableInset * the_locking_inset;
+       
        int pos = 0;
        int selstartpos = 0;
        int selendpos = 0;
@@ -261,6 +263,7 @@ int BufferView::Pimpl::resizeCurrentBuffer()
                selendpos = bv_->text->sel_end_cursor.pos();
                selection = bv_->text->selection;
                mark_set = bv_->text->mark_set;
+               the_locking_inset = bv_->text->the_locking_inset;
                delete bv_->text;
                bv_->text = new LyXText(bv_);
        } else {
@@ -298,6 +301,8 @@ int BufferView::Pimpl::resizeCurrentBuffer()
                        bv_->text->sel_cursor = bv_->text->cursor;
                        bv_->text->selection = false;
                }
+               // remake the inset locking
+               bv_->text->the_locking_inset = the_locking_inset;
        }
        bv_->text->first = screen_->TopCursorVisible(bv_->text);
        buffer_->resizeInsets(bv_);
index a941dbf506f6debd9022a157b16c69d6a993347f..001068ecf9c089707ccee9250f9813b461bceb90 100644 (file)
@@ -1,3 +1,7 @@
+2001-02-19  Angus Leeming  <a.leeming@ic.ac.uk>
+
+       * src/buffer.h: tiny clean-ups to allow compilation with DEC cxx.
+
 2001-02-17  Dekel Tsur  <dekelts@tau.ac.il>
 
        * LaTeX.C (run): Do not use 'scanres & RERUN' when deciding
index 9d736bf5cc164e01df6320008740d8a6825128cb..9508b1a3bb3414a1520a8ca63668bbd9562bf961 100644 (file)
@@ -527,7 +527,7 @@ void Buffer::markBakClean()
 
 
 inline
-void Buffer::setUnnamed(bool flag = true)
+void Buffer::setUnnamed(bool flag)
 {
        unnamed = flag;
 }
@@ -578,7 +578,7 @@ BufferView * Buffer::getUser() const
 
 
 inline  
-void Buffer::Buffer::setParentName(string const & name)
+void Buffer::setParentName(string const & name)
 {
        params.parentname = name;    
 }
index 27a4ec595f3254170a1e602a9c4a6637f5395451..9c0ea0bbc088739a529c5ccfbaee0c8e18b6e1d5 100644 (file)
@@ -1,3 +1,17 @@
+2001-02-19  Juergen Vigna  <jug@sad.it>
+
+       * FormTabular.C (build): make all input field accepted only after
+       a "RETURN".
+
+       * forms/form_tabular.fd: removed default "Return" on Close-Button.
+
+2001-02-19  Angus Leeming  <a.leeming@ic.ac.uk>
+
+       * FormError.C:
+       * FormGraphics.C:
+       * FormInset.C (showInset): change associated with name change
+       inset::hide to inset::hideDialog.
+
 2001-02-19  Angus Leeming  <a.leeming@ic.ac.uk>
 
        * FormCitation.C (build): altering "Text after" now activates the Ok,
index a5a9fe7f2e29c4718d311abc394716416601920c..46345e92f4bc674888bf3e6b237a709795361ae0 100644 (file)
@@ -65,7 +65,7 @@ void FormError::showInset(InsetError * inset)
 
        inset_ = inset;
        message_ = inset->getContents();
-       ih_ = inset->hide.connect(slot(this, &FormError::hide));
+       ih_ = inset->hideDialog.connect(slot(this, &FormError::hide));
        show();
 }
 
index 170125430fc56fb33ce202823485a8fc8cbb6e6c..48838a712d3464d73d653074cc409db423b4e1c2 100644 (file)
@@ -178,7 +178,7 @@ void FormGraphics::showDialog(InsetGraphics * inset)
 
        inset_ = inset;
 
-       ih_ = inset_->hide.connect(slot(this, &FormGraphics::hide));
+       ih_ = inset_->hideDialog.connect(slot(this, &FormGraphics::hide));
        show();
 }
 
index 88dc3b5202ba3c8a60c1f5162640a9446d478d07..7f81476aaf02e8b13eb7c17a62bc40d875c69239 100644 (file)
@@ -81,7 +81,7 @@ void FormCommand::showInset(InsetCommand * inset)
 
        inset_    = inset;
        params    = inset->params();
-       ih_ = inset->hide.connect(slot(this, &FormCommand::hide));
+       ih_ = inset->hideDialog.connect(slot(this, &FormCommand::hide));
        show();
 }
 
index cb6adf37f949c6f09ae436360c287f05ab121d46..fa7a051ed3c5b35359ec6a2890e1ce665c3a106f 100644 (file)
@@ -118,11 +118,11 @@ void FormTabular::build()
        fl_set_input_return(column_options_->input_column_width,
                            FL_RETURN_END);
        fl_set_input_return(column_options_->input_special_alignment,
-                           FL_RETURN_CHANGED);
+                           FL_RETURN_END);
        fl_set_input_return(cell_options_->input_mcolumn_width,
-                           FL_RETURN_CHANGED);
+                           FL_RETURN_END);
        fl_set_input_return(cell_options_->input_special_multialign,
-                           FL_RETURN_CHANGED);
+                           FL_RETURN_END);
 
        fl_addto_tabfolder(dialog_->tabFolder, _("Tabular"),
                           tabular_options_->form);
index ca7c8d51148a4e3db2907e3943935c10897fee82..d6b674ecd72bd96f8aefe763d8e830358eaceaa0 100644 (file)
@@ -28,7 +28,7 @@ FD_form_tabular * FormTabular::build_tabular()
   fdui->tabFolder = obj = fl_add_tabfolder(FL_TOP_TABFOLDER, 0, 0, 505, 250, _("Tabbed folder"));
     fl_set_object_resize(obj, FL_RESIZE_ALL);
   {
-    char const * const dummy = N_("Close|^[^M");
+    char const * const dummy = N_("Close|^[");
     fdui->button_close = obj = fl_add_button(FL_NORMAL_BUTTON, 415, 260, 90, 30, idex(_(dummy)));
     fl_set_button_shortcut(obj, scex(_(dummy)), 1);
   }
index a62399ed842635c3b88b056c7cf46b986c08d81b..906504f6d0cf119a2404a8bf13f8ceb5253e8753 100644 (file)
@@ -59,7 +59,7 @@ alignment: FL_ALIGN_CENTER
 style: FL_NORMAL_STYLE
 size: FL_NORMAL_SIZE
 lcol: FL_BLACK
-label: Close|^[^M
+label: Close|^[
 shortcut: 
 resize: FL_RESIZE_ALL
 gravity: FL_NoGravity FL_NoGravity
index 4fbc6d7cf225c6374e1c1f227f898b76223ba48a..d763a57c635ebe1230494bf617a438231158f21d 100644 (file)
@@ -1,3 +1,28 @@
+2001-02-19  Angus Leeming  <a.leeming@ic.ac.uk>
+
+       * insetcommand.h:
+       * inseterror.h:
+       * insetgraphics.C: change name of "hide" signal to "hideDialog",
+       consistent with InsetTabular.
+       
+2001-02-19  Juergen Vigna  <jug@sad.it>
+
+       * insettabular.C (LocalDispatch): implement PAGE up/down.
+
+       * insettext.C (draw): clear all of it on need_update==INIT too!
+
+       * insettabular.C (InsetUnlock): always clear the selection.
+
+       * inset.C (scroll): normally we only want to scroll the inset until
+       it is fully visible so if top_x + offset > 20 then just set scx to 0.
+
+2001-02-14  Juergen Vigna  <jug@sad.it>
+
+       * insettabular.C (LocalDispatch): remove x_fix as it is not used.
+       (resetPos): fixed scroll behaviour.
+       (LocalDispatch): do an update if moving cursor inside a table cell
+       requests a scroll of the tabular.
+
 2001-02-16  Lars Gullik Bjønnes  <larsbj@lyx.org>
 
        * insettext.C (textWidth): constify local var
index 61996ac77cb48bdade048d41689c3b517747f401..d8cd78c143ed4952743071846a1e97d128dbb44d 100644 (file)
@@ -191,7 +191,8 @@ void UpdatableInset::scroll(BufferView * bv, int offset) const
        if (!scx && top_x >= 20)
            return;
        if ((top_x + offset) > 20)
-           scx += offset - (top_x - scx + offset - 20);
+           scx = 0;
+//         scx += offset - (top_x - scx + offset - 20);
        else
            scx += offset;
     } else {
index 0dd010df7e26091fcac2941a69f56b0ecf041d65..d0fb7a5c9fabb6c2a9c90e7015d8cbb8ce2a7203 100644 (file)
@@ -84,7 +84,7 @@ public:
        explicit
        InsetCommand(InsetCommandParams const &);
        ///
-       virtual ~InsetCommand() { hide(); }
+       virtual ~InsetCommand() { hideDialog(); }
        ///
        void Write(Buffer const *, std::ostream & os) const
                { p_.Write( os ); }
@@ -131,7 +131,7 @@ public:
        ///
        void setParams(InsetCommandParams const &);
        ///
-       Signal0<void> hide;
+       Signal0<void> hideDialog;
 private:
        ///
        InsetCommandParams p_;
index a333d543a5276446c88d6d7e6cea8fd33af78557..8233d2dbe61d132f8f47adf3adae0f982fca378d 100644 (file)
@@ -35,7 +35,7 @@ public:
        explicit
        InsetError(string const &);
        ///
-       ~InsetError() { hide(); }
+       ~InsetError() { hideDialog(); }
        ///
        int ascent(BufferView *, LyXFont const &) const;
        ///
@@ -73,7 +73,8 @@ public:
        ///
        string const & getContents() const { return contents; }
        ///
-       Signal0<void> hide;
+       Signal0<void> hideDialog;
+
 private:
        ///
        string contents;
index a5e6b8adea3fd6f310773229a38147dbf2ac10d6..77bfa69b7a8b32f5974c3e97945467ad176e4716 100644 (file)
@@ -176,7 +176,7 @@ InsetGraphics::InsetGraphics()
 InsetGraphics::~InsetGraphics()
 {
        // Emits the hide signal to the dialog connected (if any)
-       hide();
+       hideDialog();
 }
 
 char const *
index 52d0da7a3a827e58181e48e03d4dbe2a531931d3..d0c9925b4703a7dcc866f8852444548efaab0c87 100644 (file)
@@ -100,7 +100,8 @@ public:
        /** This signal is connected by our dialog and called when the inset
            is deleted.
        */
-       Signal0 <void> hide;
+       Signal0 <void> hideDialog;
+
 private:
        /// Update the inset after parameter change.
        void updateInset() const;
index 2c4f73e0fa9b533f74fad902f5bca85398b94c8d..e1fc2a23059ea83ec4998f9725ee2b014548a370 100644 (file)
@@ -121,7 +121,6 @@ InsetTabular::InsetTabular(Buffer const & buf, int rows, int columns)
     // just for test!!!
     the_locking_inset = 0;
     locked = no_selection = cursor_visible = false;
-    cursor.x_fix(-1);
     oldcell = -1;
     actrow = actcell = 0;
     clearSelection();
@@ -136,7 +135,6 @@ InsetTabular::InsetTabular(InsetTabular const & tab, Buffer const & buf)
     tabular = new LyXTabular(this, *(tab.tabular));
     the_locking_inset = 0;
     locked = no_selection = cursor_visible = false;
-    cursor.x_fix(-1);
     oldcell = -1;
     actrow = actcell = 0;
     sel_cell_start = sel_cell_end = 0;
@@ -251,6 +249,7 @@ void InsetTabular::draw(BufferView * bv, LyXFont const & font, int baseline,
     if (cleared) {
        int cell = 0;
        float cx;
+       first_visible_cell = -1;
        for (i = 0; i < tabular->rows(); ++i) {
            nx = int(x);
            dodraw = ((baseline + tabular->GetDescentOfRow(i)) > 0) &&
@@ -260,6 +259,8 @@ void InsetTabular::draw(BufferView * bv, LyXFont const & font, int baseline,
                    continue;
                cx = nx + tabular->GetBeginningOfTextInCell(cell);
                if (dodraw) {
+                   if (first_visible_cell < 0)
+                       first_visible_cell = cell;
                    if (hasSelection())
                        DrawCellSelection(pain, nx, baseline, i, j, cell);
                    tabular->GetCellInset(cell)->draw(bv, font, baseline, cx,
@@ -484,10 +485,9 @@ void InsetTabular::InsetUnlock(BufferView * bv)
     oldcell = -1;
     locked = false;
     if (scroll() || hasSelection()) {
+       sel_cell_start = sel_cell_end = 0;
        if (scroll()) {
            scroll(bv, 0.0F);
-       } else {
-           sel_cell_start = sel_cell_end = 0;
        }
        UpdateLocal(bv, FULL, false);
     }
@@ -731,14 +731,18 @@ UpdatableInset::RESULT InsetTabular::LocalDispatch(BufferView * bv, int action,
     if ((action < 0) && arg.empty())
         return FINISHED;
 
-    if ((action != LFUN_DOWN) && (action != LFUN_UP) &&
-        (action != LFUN_DOWNSEL) && (action != LFUN_UPSEL))
-        cursor.x_fix(-1);
     if (the_locking_inset) {
         result=the_locking_inset->LocalDispatch(bv, action, arg);
-       if (result == DISPATCHED_NOUPDATE)
+       if (result == DISPATCHED_NOUPDATE) {
+           int sc = scroll();
+           resetPos(bv);
+           if (sc != scroll()) { // inset has been scrolled
+               the_locking_inset->ToggleInsetCursor(bv);
+               UpdateLocal(bv, FULL, false);
+               the_locking_inset->ToggleInsetCursor(bv);
+           }
            return result;
-       else if (result == DISPATCHED) {
+       else if (result == DISPATCHED) {
            the_locking_inset->ToggleInsetCursor(bv);
            UpdateLocal(bv, CELL, false);
            the_locking_inset->ToggleInsetCursor(bv);
@@ -814,6 +818,45 @@ UpdatableInset::RESULT InsetTabular::LocalDispatch(BufferView * bv, int action,
        if (hs)
            UpdateLocal(bv, SELECTION, false);
        break;
+    case LFUN_NEXT: {
+       int column = actcol;
+       if (the_locking_inset) {
+           UnlockInsetInInset(bv, the_locking_inset);
+           the_locking_inset = 0;
+       }
+       if (bv->text->first + bv->painter().paperHeight() <
+           (top_baseline + tabular->GetHeightOfTabular()))
+       {
+           bv->scrollCB(bv->text->first + bv->painter().paperHeight());
+           UpdateLocal(bv, FULL, false);
+           actcell = tabular->GetCellBelow(first_visible_cell) + column;
+       } else {
+           actcell = tabular->GetFirstCellInRow(tabular->rows() - 1) + column;
+       }
+       resetPos(bv);
+       UpdateLocal(bv, CURSOR, false);
+       break;
+    }
+    case LFUN_PRIOR: {
+       int column = actcol;
+       if (the_locking_inset) {
+           UnlockInsetInInset(bv, the_locking_inset);
+           the_locking_inset = 0;
+       }
+       if (top_baseline < 0) {
+           bv->scrollCB(bv->text->first - bv->painter().paperHeight());
+           UpdateLocal(bv, FULL, false);
+           if (top_baseline > 0)
+               actcell = column;
+           else
+               actcell = tabular->GetCellBelow(first_visible_cell) + column;
+       } else {
+           actcell = column;
+       }
+       resetPos(bv);
+       UpdateLocal(bv, CURSOR, false);
+       break;
+    }
     case LFUN_BACKSPACE:
        break;
     case LFUN_DELETE:
@@ -1192,9 +1235,25 @@ void InsetTabular::resetPos(BufferView * bv) const
     new_x += offset;
     cursor.x(new_x);
 //    cursor.x(getCellXPos(actcell) + offset);
-    if (((cursor.x() - offset) > 20) &&
-       ((cursor.x()-offset+tabular->GetWidthOfColumn(actcell)) >
-        (bv->workWidth()-20)))
+    if (scroll() && (tabular->GetWidthOfTabular() < bv->workWidth()-20))
+       scroll(bv, 0.0F);
+    else if (the_locking_inset &&
+            (tabular->GetWidthOfColumn(actcell) > bv->workWidth()-20))
+    {
+           int xx = cursor.x() - offset + bv->text->GetRealCursorX(bv);
+           printf("%d\n", xx);
+           if (xx > (bv->workWidth()-20))
+               scroll(bv, -(xx - bv->workWidth() + 60));
+           else if (xx < 20) {
+               if (xx < 0)
+                   xx = -xx + 60;
+               else
+                   xx = 60;
+               scroll(bv, xx);
+           }
+    } else if (((cursor.x() - offset) > 20) &&
+              ((cursor.x()-offset+tabular->GetWidthOfColumn(actcell)) >
+               (bv->workWidth()-20)))
     {
        scroll(bv, -tabular->GetWidthOfColumn(actcell)-20);
        UpdateLocal(bv, FULL, false);
@@ -1208,9 +1267,9 @@ void InsetTabular::resetPos(BufferView * bv) const
     if ((!the_locking_inset ||
         !the_locking_inset->GetFirstLockingInsetOfType(TABULAR_CODE)) &&
        (actcell != oldcell)) {
-           InsetTabular * inset = const_cast<InsetTabular *>(this);
-           bv->owner()->getDialogs()->updateTabular(inset);
-           oldcell = actcell;
+       InsetTabular * inset = const_cast<InsetTabular *>(this);
+       bv->owner()->getDialogs()->updateTabular(inset);
+       oldcell = actcell;
     }
 }
 
index 91a5cfb7df478ad629b9bd4fff53a97ab569824c..d6f87f2dfbb89c79c82335a2d34b2caf49f9d48e 100644 (file)
@@ -178,8 +178,8 @@ public:
     // Public structures and variables
     ///
     LyXTabular * tabular;
-       ///
-       Signal0<void> hideDialog;
+    ///
+    Signal0<void> hideDialog;
 
 private:
     ///
@@ -272,6 +272,8 @@ private:
     ///
     mutable int actrow;
     ///
+    mutable int first_visible_cell;
+    ///
     bool no_selection;
     ///
     bool no_draw;
index 967d41d6bdb660d2e2d35f37a671c3e6e235c6fa..38bfe81a2ee3cfa3def327c665a0ec37fcb39a63 100644 (file)
@@ -291,7 +291,7 @@ void InsetText::draw(BufferView * bv, LyXFont const & f,
 
     // if top_x differs we have a rule down and we don't have to clear anything
     if (!cleared && (top_x == int(x)) &&
-       ((need_update==FULL) || (top_baseline!=baseline)))
+       ((need_update==INIT)||(need_update==FULL)||(top_baseline!=baseline)))
     {
        int w =  insetWidth;
        int h = insetAscent + insetDescent;
index beb32a2da7a41a6e06109aa3ee8a74be4436973f..a2092628ae82bbaa51dfa5bc976a82b38dec2e9c 100644 (file)
@@ -75,6 +75,8 @@ public:
        ///
        UpdatableInset * the_locking_inset;
 
+       ///
+       int GetRealCursorX(BufferView *) const;
        ///
        LyXFont const GetFont(Buffer const *, LyXParagraph * par,
                        LyXParagraph::size_type pos) const;
index a63f0d44651b6596661acd8d29239958cdc4fdee..2964b22df4da5a8e38e7376e1fe31af268c7598e 100644 (file)
@@ -54,6 +54,15 @@ int LyXText::workWidth(BufferView * bview) const
 }
 
 
+int LyXText::GetRealCursorX(BufferView * bview) const
+{
+       int x = cursor.x();
+       if (the_locking_inset && (the_locking_inset->getLyXText(bview)!=this))
+               x = the_locking_inset->getLyXText(bview)->GetRealCursorX(bview);
+       return x;
+}
+
+
 unsigned char LyXText::TransformChar(unsigned char c, LyXParagraph * par,
                        LyXParagraph::size_type pos) const
 {