// -*- C++ -*-
/* This file is part of
* ======================================================
- *
+ *
* LyX, The Document Processor
- *
+ *
* Copyright 1997 Asger Alstrup
* and the LyX Team.
*
* ====================================================== */
#ifndef FONTINFO_H
-#define FONTINFO_H
+#define FONTINFO_H
#ifdef __GNUG__
#pragma interface
#include "LString.h"
+#include <boost/smart_ptr.hpp>
+
/** This class manages a font.
- The idea is to create a FontInfo object with a font name pattern with a
+ The idea is to create a FontInfo object with a font name pattern with a
wildcard at the size field. Then this object can host request for font-
instances of any given size. If no exact match is found, the closest size
is chosen instead. If the font is scalable, the flag
explicit FontInfo(string const & pat)
: pattern(pat) { init(); }
- /// Destructor
- ~FontInfo() { release(); }
-
/// Does any font match our pattern?
bool exist() {
query();
}
/// Get existing pattern
- string getPattern() const { return pattern; }
+ string const & getPattern() const { return pattern; }
/// Set new pattern
void setPattern(string const & pat);
/** Return full name of font close to this size.
If impossible, result is the empty string */
- string getFontname(int size);
+ string const getFontname(int size);
private:
/// Font pattern (with wildcard for size)
string pattern;
/// Available size list
- int * sizes;
+ boost::scoped_array<int> sizes;
/// Corresponding name list
- string * strings;
+ boost::scoped_array<string> strings;
/// Number of matches
int matches;
/// Initialize empty record
void init();
- /// Release allocated stuff
- void release();
-
/// Ask X11 about this font pattern
void query();
- /// Build newly sized font string
- string resize(string const &, int size) const;
+ /// Build newly sized font string
+ string const resize(string const &, int size) const;
};
#endif