Author: spitz
Date: Fri Mar  9 12:14:39 2012
New Revision: 40893
URL: http://www.lyx.org/trac/changeset/40893

Log:
Consider specifics for TIPAs T3 font encoding and allow insertion of straight 
quote (stress shortcut) to IPA inset.

Modified:
   lyx-devel/trunk/src/Paragraph.cpp
   lyx-devel/trunk/src/insets/InsetIPA.cpp
   lyx-devel/trunk/src/insets/InsetIPA.h

Modified: lyx-devel/trunk/src/Paragraph.cpp
==============================================================================
--- lyx-devel/trunk/src/Paragraph.cpp   Fri Mar  9 11:18:59 2012        (r40892)
+++ lyx-devel/trunk/src/Paragraph.cpp   Fri Mar  9 12:14:39 2012        (r40893)
@@ -345,6 +345,12 @@
                pos_type i,
                unsigned int & column);
        ///
+       bool latexSpecialT3(
+               char_type const c,
+               otexstream & os,
+               pos_type i,
+               unsigned int & column);
+       ///
        bool latexSpecialTypewriter(
                char_type const c,
                otexstream & os,
@@ -1169,17 +1175,21 @@
                return;
        }
 
+       // TIPA uses its own T3 encoding
+       if (runparams.inIPA && latexSpecialT3(c, os, i, column))
+               return;
        // If T1 font encoding is used, use the special
        // characters it provides.
        // NOTE: some languages reset the font encoding
        // internally
-       if (!running_font.language()->internalFontEncoding()
+       if (!runparams.inIPA && !running_font.language()->internalFontEncoding()
            && lyxrc.fontenc == "T1" && latexSpecialT1(c, os, i, column))
                return;
 
        // \tt font needs special treatment
-       if (running_font.fontInfo().family() == TYPEWRITER_FAMILY
-               && latexSpecialTypewriter(c, os, i, column))
+       if (!runparams.inIPA
+            && running_font.fontInfo().family() == TYPEWRITER_FAMILY
+            && latexSpecialTypewriter(c, os, i, column))
                return;
 
        // Otherwise, we use what LaTeX provides us.
@@ -1331,6 +1341,23 @@
 }
 
 
+bool Paragraph::Private::latexSpecialT3(char_type const c, otexstream & os,
+       pos_type i, unsigned int & column)
+{
+       switch (c) {
+       case '*':
+       case '[':
+       case ']':
+       case '|':
+       case '\"':
+               os.put(c);
+               return true;
+       default:
+               return false;
+       }
+}
+
+
 bool Paragraph::Private::latexSpecialTypewriter(char_type const c, otexstream 
& os,
        pos_type i, unsigned int & column)
 {

Modified: lyx-devel/trunk/src/insets/InsetIPA.cpp
==============================================================================
--- lyx-devel/trunk/src/insets/InsetIPA.cpp     Fri Mar  9 11:18:59 2012        
(r40892)
+++ lyx-devel/trunk/src/insets/InsetIPA.cpp     Fri Mar  9 12:14:39 2012        
(r40893)
@@ -63,6 +63,22 @@
 }
 
 
+void InsetIPA::doDispatch(Cursor & cur, FuncRequest & cmd)
+{
+       switch (cmd.action()) {
+       case LFUN_QUOTE_INSERT: {
+               FuncRequest fr(LFUN_SELF_INSERT, "\"");
+               InsetText::doDispatch(cur, fr);
+               break;
+       }
+       default:
+               InsetText::doDispatch(cur, cmd);
+               break;
+       }
+
+}
+
+
 bool InsetIPA::getStatus(Cursor & cur, FuncRequest const & cmd,
                FuncStatus & flag) const
 {

Modified: lyx-devel/trunk/src/insets/InsetIPA.h
==============================================================================
--- lyx-devel/trunk/src/insets/InsetIPA.h       Fri Mar  9 11:18:59 2012        
(r40892)
+++ lyx-devel/trunk/src/insets/InsetIPA.h       Fri Mar  9 12:14:39 2012        
(r40893)
@@ -56,6 +56,8 @@
        void draw(PainterInfo & pi, int x, int y) const;
 
        ///
+       void doDispatch(Cursor & cur, FuncRequest & cmd);
+       ///
        bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const;
 
        void addPreview(DocIterator const & inset_pos,

Reply via email to