]> git.lyx.org Git - lyx.git/blobdiff - src/FontInfo.C
removed a warning from screen and added CFLAGS in lyx.spec.in.
[lyx.git] / src / FontInfo.C
index 71cf6e054b32fef27c401e01f1fa83ef34e96fbe..aba45bec468dc792cc326e77bc68125563268b98 100644 (file)
@@ -7,26 +7,28 @@
  *         Copyright (C) 1997 Asger Alstrup
  *           and the LyX Team.
  *
- *======================================================*/
+ * ======================================================*/
 
 #include <config.h>
-#include <math.h>      // fabs()
-#include <stdlib.h>    // atoi()
+#include <cmath>       // fabs()
+#include <cstdlib>     // atoi()
 
 #ifdef __GNUG__
 #pragma implementation "FontInfo.h"
 #endif
 
 #include "FontInfo.h"
-#include "error.h"
+#include "debug.h"
 #include "lyxrc.h"     // lyxrc.use_scalable_fonts
+#include "support/lstrings.h"
+
 extern LyXRC * lyxrc;
 
 /// Load font close to this size
-LString FontInfo::getFontname(int size)
+string FontInfo::getFontname(int size)
 {
        if (!exist())
-               return LString();
+               return string();
 
        int closestind = -1;
        double error = 100000;
@@ -35,8 +37,8 @@ LString FontInfo::getFontname(int size)
                if (sizes[i] == 0) {
                        // Scalable font should not be considered close
                } else if (sizes[i] == size) {
-                       lyxerr.debug(LString("Exact font match with\n")
-                                             + strings[i], Error::FONT);
+                       lyxerr[Debug::FONT] << "Exact font match with\n"
+                                           << strings[i] << endl;
                        return strings[i];
                } else if (fabs(sizes[i] - size - 0.1) < error) {
                        error = fabs(sizes[i] - size - 0.1);
@@ -46,49 +48,51 @@ LString FontInfo::getFontname(int size)
 
        if (scalable && lyxrc->use_scalable_fonts) {
                // We can use scalable
-               LString font = resize(strings[scaleindex], size);
-               lyxerr.debug("Using scalable font to get\n"
-                             + font, Error::FONT);
+               string font = resize(strings[scaleindex], size);
+               lyxerr[Debug::FONT] << "Using scalable font to get\n"
+                                   << font << endl;
                return font;
        }
 
        // Did any fonts get close?
        if (closestind == -1) {
                // No, and we are not allowed to use scalables, so...
-               return LString();
+               return string();
        }
 
        // We use the closest match
-       lyxerr.debug(LString("Using closest font match to get size ") + size 
-                     + " with\n" + strings[closestind], Error::FONT);
+       lyxerr[Debug::FONT] << "Using closest font match to get size "
+                           << size 
+                           << " with\n" << strings[closestind] << endl;
        return strings[closestind];
 }
 
 /// Build newly sized font string 
-LString FontInfo::resize(LString const & font, int size) const {
+string FontInfo::resize(string const & font, int size) const {
        // Find the position of the size spec
-       int cut=0, before=0, after=0;
-       for (int i=0; i<font.length(); i++) {
+#warning rewrite to use std::string constructs
+       int cut = 0, before = 0, after = 0;
+       for (string::size_type i = 0; i < font.length(); ++i) {
                if (font[i] == '-') {
-                       cut++;
-                       if (cut==7) {
+                       ++cut;
+                       if (cut == 7) {
                                before = i;
-                       } else if (cut==8) {
+                       } else if (cut == 8) {
                                after = i;
                                break;
                        }
                }
        }
 
-       LString head = font;
-       head.substring(0, before);
-       LString tail = font;
-       tail.substring(after,tail.length()-1);
-       return head + size + tail;
+       string head = font;
+       head.erase(before + 1, string::npos);
+       string tail = font;
+       tail.erase(0, after);
+       return head + tostr(size) + tail;
 }
 
 /// Set new pattern
-void FontInfo::setPattern(LString const & pat)
+void FontInfo::setPattern(string const & pat)
 {
        release();
        init();
@@ -102,7 +106,7 @@ void FontInfo::query()
                return;
 
        if (pattern.empty()) {
-               lyxerr.print("Can not use empty font name for font query.");
+               lyxerr << "Can not use empty font name for font query." << endl;
                queried = true;
                return;
        }
@@ -116,12 +120,12 @@ void FontInfo::query()
        } else {
                release();
                sizes = new int[matches];
-               strings = new LString[matches];
+               strings = new string[matches];
 
                // We have matches. Run them through
                for(int i=0; i<matches; i++) {
-                       LString name(list[i]);
-                       sizes[i] = atoi(name.token('-',7).c_str());
+                       string name(list[i]);
+                       sizes[i] = atoi(token(name, '-',7).c_str());
                        strings[i] = name;
                        if (sizes[i] == 0) {
                                if (scaleindex == -1) {